From 4f5727a1de3b0b1e2ad08b945a5eab66e3613dd0 Mon Sep 17 00:00:00 2001 From: james Date: Mon, 18 Aug 2008 16:20:55 +0000 Subject: [PATCH] Add FCKEditor, uncompressed, no changes --- fckeditor/_documentation.html | 38 + .../_plugins/findreplace/fckplugin.js | 38 + .../_samples/_plugins/findreplace/find.gif | Bin 0 -> 595 bytes .../_samples/_plugins/findreplace/find.html | 172 + .../_samples/_plugins/findreplace/lang/en.js | 33 + .../_samples/_plugins/findreplace/lang/fr.js | 33 + .../_samples/_plugins/findreplace/lang/it.js | 33 + .../_samples/_plugins/findreplace/replace.gif | Bin 0 -> 326 bytes .../_plugins/findreplace/replace.html | 135 + .../_samples/_plugins/samples/fckplugin.js | 73 + fckeditor/_samples/adobeair/application.xml | 34 + fckeditor/_samples/adobeair/icons/128.png | Bin 0 -> 1242 bytes fckeditor/_samples/adobeair/icons/16.png | Bin 0 -> 273 bytes fckeditor/_samples/adobeair/icons/32.png | Bin 0 -> 562 bytes fckeditor/_samples/adobeair/icons/48.png | Bin 0 -> 563 bytes fckeditor/_samples/adobeair/package.bat | 26 + fckeditor/_samples/adobeair/run.bat | 26 + fckeditor/_samples/adobeair/sample01.html | 58 + fckeditor/_samples/adobeair/sample01_cert.pfx | Bin 0 -> 2514 bytes fckeditor/_samples/afp/fck.afpa | 1 + fckeditor/_samples/afp/fck.afpa.code | 165 + fckeditor/_samples/afp/sample01.afp | 56 + fckeditor/_samples/afp/sample02.afp | 113 + fckeditor/_samples/afp/sample03.afp | 91 + fckeditor/_samples/afp/sample04.afp | 98 + fckeditor/_samples/afp/sampleposteddata.afp | 63 + fckeditor/_samples/asp/sample01.asp | 62 + fckeditor/_samples/asp/sample02.asp | 108 + fckeditor/_samples/asp/sample03.asp | 92 + fckeditor/_samples/asp/sample04.asp | 98 + fckeditor/_samples/asp/sampleposteddata.asp | 56 + fckeditor/_samples/cfm/sample01.cfm | 63 + fckeditor/_samples/cfm/sample01_mx.cfm | 67 + fckeditor/_samples/cfm/sample02.cfm | 110 + fckeditor/_samples/cfm/sample02_mx.cfm | 114 + fckeditor/_samples/cfm/sample03.cfm | 95 + fckeditor/_samples/cfm/sample03_mx.cfm | 95 + fckeditor/_samples/cfm/sample04.cfm | 100 + fckeditor/_samples/cfm/sample04_mx.cfm | 101 + fckeditor/_samples/cfm/sampleposteddata.cfm | 68 + fckeditor/_samples/default.html | 35 + .../_samples/html/assets/sample06.config.js | 49 + .../_samples/html/assets/sample11_frame.html | 69 + .../_samples/html/assets/sample14.config.js | 121 + .../_samples/html/assets/sample14.styles.css | 228 + .../_samples/html/assets/sample15.config.js | 92 + .../_samples/html/assets/sample16.config.js | 92 + fckeditor/_samples/html/assets/sample16.fla | Bin 0 -> 57856 bytes fckeditor/_samples/html/assets/sample16.swf | Bin 0 -> 12426 bytes fckeditor/_samples/html/assets/swfobject.js | 18 + fckeditor/_samples/html/sample01.html | 59 + fckeditor/_samples/html/sample02.html | 63 + fckeditor/_samples/html/sample03.html | 140 + fckeditor/_samples/html/sample04.html | 95 + fckeditor/_samples/html/sample05.html | 125 + fckeditor/_samples/html/sample06.html | 73 + fckeditor/_samples/html/sample07.html | 59 + fckeditor/_samples/html/sample08.html | 196 + fckeditor/_samples/html/sample09.html | 100 + fckeditor/_samples/html/sample10.html | 79 + fckeditor/_samples/html/sample11.html | 43 + fckeditor/_samples/html/sample12.html | 124 + fckeditor/_samples/html/sample13.html | 148 + fckeditor/_samples/html/sample14.html | 66 + fckeditor/_samples/html/sample15.html | 66 + fckeditor/_samples/html/sample16.html | 91 + fckeditor/_samples/lasso/sample01.lasso | 55 + fckeditor/_samples/lasso/sample02.lasso | 109 + fckeditor/_samples/lasso/sample03.lasso | 87 + fckeditor/_samples/lasso/sample04.lasso | 93 + .../_samples/lasso/sampleposteddata.lasso | 53 + fckeditor/_samples/perl/sample01.cgi | 117 + fckeditor/_samples/perl/sample02.cgi | 182 + fckeditor/_samples/perl/sample03.cgi | 167 + fckeditor/_samples/perl/sample04.cgi | 174 + fckeditor/_samples/perl/sampleposteddata.cgi | 107 + fckeditor/_samples/php/sample01.php | 57 + fckeditor/_samples/php/sample02.php | 108 + fckeditor/_samples/php/sample03.php | 89 + fckeditor/_samples/php/sample04.php | 95 + fckeditor/_samples/php/sampleposteddata.php | 69 + fckeditor/_samples/py/sample01.py | 80 + fckeditor/_samples/py/sampleposteddata.py | 88 + fckeditor/_samples/sample.css | 74 + fckeditor/_samples/sampleslist.html | 120 + fckeditor/_upgrade.html | 39 + fckeditor/_whatsnew.html | 167 + fckeditor/_whatsnew_history.html | 3787 +++++++++++++++++ .../editor/_source/classes/fckcontextmenu.js | 223 + .../_source/classes/fckdataprocessor.js | 119 + .../classes/fckdocumentfragment_gecko.js | 53 + .../_source/classes/fckdocumentfragment_ie.js | 58 + .../editor/_source/classes/fckdomrange.js | 935 ++++ .../_source/classes/fckdomrange_gecko.js | 104 + .../editor/_source/classes/fckdomrange_ie.js | 199 + .../_source/classes/fckdomrangeiterator.js | 327 ++ .../editor/_source/classes/fckeditingarea.js | 368 ++ .../editor/_source/classes/fckelementpath.js | 89 + .../editor/_source/classes/fckenterkey.js | 688 +++ fckeditor/editor/_source/classes/fckevents.js | 71 + .../editor/_source/classes/fckhtmliterator.js | 142 + fckeditor/editor/_source/classes/fckicon.js | 103 + .../editor/_source/classes/fckiecleanup.js | 68 + .../_source/classes/fckimagepreloader.js | 64 + .../_source/classes/fckkeystrokehandler.js | 141 + .../editor/_source/classes/fckmenublock.js | 153 + .../_source/classes/fckmenublockpanel.js | 54 + .../editor/_source/classes/fckmenuitem.js | 161 + fckeditor/editor/_source/classes/fckpanel.js | 386 ++ fckeditor/editor/_source/classes/fckplugin.js | 56 + .../editor/_source/classes/fckspecialcombo.js | 376 ++ fckeditor/editor/_source/classes/fckstyle.js | 1500 +++++++ .../editor/_source/classes/fcktoolbar.js | 103 + .../_source/classes/fcktoolbarbreak_gecko.js | 36 + .../_source/classes/fcktoolbarbreak_ie.js | 38 + .../_source/classes/fcktoolbarbutton.js | 81 + .../_source/classes/fcktoolbarbuttonui.js | 198 + .../classes/fcktoolbarfontformatcombo.js | 139 + .../_source/classes/fcktoolbarfontscombo.js | 98 + .../classes/fcktoolbarfontsizecombo.js | 76 + .../_source/classes/fcktoolbarpanelbutton.js | 103 + .../_source/classes/fcktoolbarspecialcombo.js | 146 + .../_source/classes/fcktoolbarstylecombo.js | 200 + .../editor/_source/classes/fckw3crange.js | 451 ++ fckeditor/editor/_source/classes/fckxml.js | 108 + .../editor/_source/classes/fckxml_gecko.js | 106 + fckeditor/editor/_source/classes/fckxml_ie.js | 93 + .../commandclasses/fck_othercommands.js | 634 +++ .../commandclasses/fckblockquotecommand.js | 250 ++ .../commandclasses/fckcorestylecommand.js | 61 + .../_source/commandclasses/fckfitwindow.js | 190 + .../commandclasses/fckindentcommands.js | 282 ++ .../commandclasses/fckjustifycommands.js | 173 + .../_source/commandclasses/fcklistcommands.js | 382 ++ .../_source/commandclasses/fcknamedcommand.js | 39 + .../fckpasteplaintextcommand.js | 40 + .../commandclasses/fckpastewordcommand.js | 40 + .../commandclasses/fckremoveformatcommand.js | 45 + .../_source/commandclasses/fckshowblocks.js | 91 + .../fckspellcheckcommand_gecko.js | 41 + .../commandclasses/fckspellcheckcommand_ie.js | 69 + .../_source/commandclasses/fckstylecommand.js | 60 + .../_source/commandclasses/fcktablecommand.js | 106 + .../commandclasses/fcktextcolorcommand.js | 201 + fckeditor/editor/_source/fckconstants.js | 56 + fckeditor/editor/_source/fckeditorapi.js | 178 + .../editor/_source/fckjscoreextensions.js | 166 + fckeditor/editor/_source/fckscriptloader.js | 122 + fckeditor/editor/_source/internals/fck.js | 1252 ++++++ .../_source/internals/fck_contextmenu.js | 342 ++ .../editor/_source/internals/fck_gecko.js | 493 +++ fckeditor/editor/_source/internals/fck_ie.js | 456 ++ .../_source/internals/fckbrowserinfo.js | 61 + .../_source/internals/fckcodeformatter.js | 100 + .../editor/_source/internals/fckcommands.js | 172 + .../editor/_source/internals/fckconfig.js | 237 ++ .../editor/_source/internals/fckdebug.js | 59 + .../_source/internals/fckdebug_empty.js | 31 + .../editor/_source/internals/fckdialog.js | 239 ++ .../_source/internals/fckdocumentprocessor.js | 270 ++ .../editor/_source/internals/fckdomtools.js | 1057 +++++ .../_source/internals/fcklanguagemanager.js | 164 + .../_source/internals/fcklisthandler.js | 152 + .../editor/_source/internals/fcklistslib.js | 63 + .../editor/_source/internals/fckplugins.js | 46 + .../editor/_source/internals/fckregexlib.js | 100 + .../editor/_source/internals/fckselection.js | 42 + .../_source/internals/fckselection_gecko.js | 228 + .../_source/internals/fckselection_ie.js | 279 ++ .../editor/_source/internals/fckstyles.js | 381 ++ .../_source/internals/fcktablehandler.js | 872 ++++ .../internals/fcktablehandler_gecko.js | 56 + .../_source/internals/fcktablehandler_ie.js | 64 + .../_source/internals/fcktoolbaritems.js | 124 + .../editor/_source/internals/fcktoolbarset.js | 399 ++ .../editor/_source/internals/fcktools.js | 749 ++++ .../_source/internals/fcktools_gecko.js | 282 ++ .../editor/_source/internals/fcktools_ie.js | 234 + fckeditor/editor/_source/internals/fckundo.js | 223 + .../editor/_source/internals/fckurlparams.js | 39 + .../editor/_source/internals/fckxhtml.js | 534 +++ .../_source/internals/fckxhtml_gecko.js | 114 + .../editor/_source/internals/fckxhtml_ie.js | 213 + .../_source/internals/fckxhtmlentities.js | 354 ++ .../editor/css/behaviors/disablehandles.htc | 15 + .../editor/css/behaviors/showtableborders.htc | 36 + fckeditor/editor/css/fck_editorarea.css | 110 + fckeditor/editor/css/fck_internal.css | 199 + .../editor/css/fck_showtableborders_gecko.css | 49 + fckeditor/editor/css/images/block_address.png | Bin 0 -> 288 bytes .../editor/css/images/block_blockquote.png | Bin 0 -> 293 bytes fckeditor/editor/css/images/block_div.png | Bin 0 -> 229 bytes fckeditor/editor/css/images/block_h1.png | Bin 0 -> 218 bytes fckeditor/editor/css/images/block_h2.png | Bin 0 -> 220 bytes fckeditor/editor/css/images/block_h3.png | Bin 0 -> 219 bytes fckeditor/editor/css/images/block_h4.png | Bin 0 -> 229 bytes fckeditor/editor/css/images/block_h5.png | Bin 0 -> 236 bytes fckeditor/editor/css/images/block_h6.png | Bin 0 -> 216 bytes fckeditor/editor/css/images/block_p.png | Bin 0 -> 205 bytes fckeditor/editor/css/images/block_pre.png | Bin 0 -> 223 bytes fckeditor/editor/css/images/fck_anchor.gif | Bin 0 -> 184 bytes fckeditor/editor/css/images/fck_flashlogo.gif | Bin 0 -> 599 bytes .../editor/css/images/fck_hiddenfield.gif | Bin 0 -> 105 bytes fckeditor/editor/css/images/fck_pagebreak.gif | Bin 0 -> 54 bytes fckeditor/editor/css/images/fck_plugin.gif | Bin 0 -> 1709 bytes .../dialog/common/fck_dialog_common.css | 85 + .../editor/dialog/common/fck_dialog_common.js | 311 ++ .../editor/dialog/common/images/locked.gif | Bin 0 -> 74 bytes .../editor/dialog/common/images/reset.gif | Bin 0 -> 104 bytes .../editor/dialog/common/images/unlocked.gif | Bin 0 -> 75 bytes fckeditor/editor/dialog/fck_about.html | 161 + .../dialog/fck_about/logo_fckeditor.gif | Bin 0 -> 2044 bytes .../editor/dialog/fck_about/logo_fredck.gif | Bin 0 -> 920 bytes .../fck_about/sponsors/spellchecker_net.gif | Bin 0 -> 1447 bytes fckeditor/editor/dialog/fck_anchor.html | 220 + fckeditor/editor/dialog/fck_button.html | 104 + fckeditor/editor/dialog/fck_checkbox.html | 104 + .../editor/dialog/fck_colorselector.html | 172 + fckeditor/editor/dialog/fck_div.html | 364 ++ fckeditor/editor/dialog/fck_docprops.html | 600 +++ .../fck_docprops/fck_document_preview.html | 113 + fckeditor/editor/dialog/fck_flash.html | 152 + .../editor/dialog/fck_flash/fck_flash.js | 300 ++ .../dialog/fck_flash/fck_flash_preview.html | 50 + fckeditor/editor/dialog/fck_form.html | 109 + fckeditor/editor/dialog/fck_hiddenfield.html | 115 + fckeditor/editor/dialog/fck_image.html | 258 ++ .../editor/dialog/fck_image/fck_image.js | 512 +++ .../dialog/fck_image/fck_image_preview.html | 72 + fckeditor/editor/dialog/fck_link.html | 295 ++ fckeditor/editor/dialog/fck_link/fck_link.js | 893 ++++ fckeditor/editor/dialog/fck_listprop.html | 120 + fckeditor/editor/dialog/fck_paste.html | 346 ++ fckeditor/editor/dialog/fck_radiobutton.html | 104 + fckeditor/editor/dialog/fck_replace.html | 648 +++ fckeditor/editor/dialog/fck_select.html | 180 + .../editor/dialog/fck_select/fck_select.js | 194 + fckeditor/editor/dialog/fck_smiley.html | 111 + fckeditor/editor/dialog/fck_source.html | 68 + fckeditor/editor/dialog/fck_specialchar.html | 121 + fckeditor/editor/dialog/fck_spellerpages.html | 70 + .../fck_spellerpages/spellerpages/blank.html | 0 .../spellerpages/controlWindow.js | 87 + .../spellerpages/controls.html | 153 + .../server-scripts/spellchecker.cfm | 148 + .../server-scripts/spellchecker.php | 199 + .../server-scripts/spellchecker.pl | 181 + .../spellerpages/spellChecker.js | 461 ++ .../spellerpages/spellchecker.html | 71 + .../spellerpages/spellerStyle.css | 49 + .../spellerpages/wordWindow.js | 272 ++ fckeditor/editor/dialog/fck_table.html | 298 ++ fckeditor/editor/dialog/fck_tablecell.html | 257 ++ fckeditor/editor/dialog/fck_template.html | 242 ++ .../dialog/fck_template/images/template1.gif | Bin 0 -> 375 bytes .../dialog/fck_template/images/template2.gif | Bin 0 -> 333 bytes .../dialog/fck_template/images/template3.gif | Bin 0 -> 422 bytes fckeditor/editor/dialog/fck_textarea.html | 94 + fckeditor/editor/dialog/fck_textfield.html | 136 + fckeditor/editor/dtd/fck_dtd_test.html | 41 + fckeditor/editor/dtd/fck_xhtml10strict.js | 116 + .../editor/dtd/fck_xhtml10transitional.js | 140 + fckeditor/editor/fckdebug.html | 153 + fckeditor/editor/fckdialog.html | 812 ++++ fckeditor/editor/fckeditor.html | 317 ++ fckeditor/editor/fckeditor.original.html | 424 ++ .../filemanager/browser/default/browser.css | 87 + .../filemanager/browser/default/browser.html | 200 + .../browser/default/frmactualfolder.html | 95 + .../browser/default/frmcreatefolder.html | 114 + .../browser/default/frmfolders.html | 198 + .../browser/default/frmresourceslist.html | 169 + .../browser/default/frmresourcetype.html | 69 + .../browser/default/frmupload.html | 115 + .../browser/default/images/ButtonArrow.gif | Bin 0 -> 138 bytes .../browser/default/images/Folder.gif | Bin 0 -> 128 bytes .../browser/default/images/Folder32.gif | Bin 0 -> 281 bytes .../browser/default/images/FolderOpened.gif | Bin 0 -> 132 bytes .../browser/default/images/FolderOpened32.gif | Bin 0 -> 264 bytes .../browser/default/images/FolderUp.gif | Bin 0 -> 132 bytes .../browser/default/images/icons/32/ai.gif | Bin 0 -> 1140 bytes .../browser/default/images/icons/32/avi.gif | Bin 0 -> 454 bytes .../browser/default/images/icons/32/bmp.gif | Bin 0 -> 709 bytes .../browser/default/images/icons/32/cs.gif | Bin 0 -> 224 bytes .../default/images/icons/32/default.icon.gif | Bin 0 -> 177 bytes .../browser/default/images/icons/32/dll.gif | Bin 0 -> 258 bytes .../browser/default/images/icons/32/doc.gif | Bin 0 -> 260 bytes .../browser/default/images/icons/32/exe.gif | Bin 0 -> 170 bytes .../browser/default/images/icons/32/fla.gif | Bin 0 -> 946 bytes .../browser/default/images/icons/32/gif.gif | Bin 0 -> 704 bytes .../browser/default/images/icons/32/htm.gif | Bin 0 -> 1527 bytes .../browser/default/images/icons/32/html.gif | Bin 0 -> 1527 bytes .../browser/default/images/icons/32/jpg.gif | Bin 0 -> 463 bytes .../browser/default/images/icons/32/js.gif | Bin 0 -> 274 bytes .../browser/default/images/icons/32/mdb.gif | Bin 0 -> 274 bytes .../browser/default/images/icons/32/mp3.gif | Bin 0 -> 454 bytes .../browser/default/images/icons/32/pdf.gif | Bin 0 -> 567 bytes .../browser/default/images/icons/32/png.gif | Bin 0 -> 464 bytes .../browser/default/images/icons/32/ppt.gif | Bin 0 -> 254 bytes .../browser/default/images/icons/32/rdp.gif | Bin 0 -> 1493 bytes .../browser/default/images/icons/32/swf.gif | Bin 0 -> 725 bytes .../browser/default/images/icons/32/swt.gif | Bin 0 -> 724 bytes .../browser/default/images/icons/32/txt.gif | Bin 0 -> 213 bytes .../browser/default/images/icons/32/vsd.gif | Bin 0 -> 277 bytes .../browser/default/images/icons/32/xls.gif | Bin 0 -> 271 bytes .../browser/default/images/icons/32/xml.gif | Bin 0 -> 408 bytes .../browser/default/images/icons/32/zip.gif | Bin 0 -> 368 bytes .../browser/default/images/icons/ai.gif | Bin 0 -> 403 bytes .../browser/default/images/icons/avi.gif | Bin 0 -> 249 bytes .../browser/default/images/icons/bmp.gif | Bin 0 -> 126 bytes .../browser/default/images/icons/cs.gif | Bin 0 -> 128 bytes .../default/images/icons/default.icon.gif | Bin 0 -> 113 bytes .../browser/default/images/icons/dll.gif | Bin 0 -> 132 bytes .../browser/default/images/icons/doc.gif | Bin 0 -> 140 bytes .../browser/default/images/icons/exe.gif | Bin 0 -> 109 bytes .../browser/default/images/icons/fla.gif | Bin 0 -> 382 bytes .../browser/default/images/icons/gif.gif | Bin 0 -> 125 bytes .../browser/default/images/icons/htm.gif | Bin 0 -> 621 bytes .../browser/default/images/icons/html.gif | Bin 0 -> 621 bytes .../browser/default/images/icons/jpg.gif | Bin 0 -> 125 bytes .../browser/default/images/icons/js.gif | Bin 0 -> 139 bytes .../browser/default/images/icons/mdb.gif | Bin 0 -> 146 bytes .../browser/default/images/icons/mp3.gif | Bin 0 -> 249 bytes .../browser/default/images/icons/pdf.gif | Bin 0 -> 230 bytes .../browser/default/images/icons/png.gif | Bin 0 -> 125 bytes .../browser/default/images/icons/ppt.gif | Bin 0 -> 139 bytes .../browser/default/images/icons/rdp.gif | Bin 0 -> 606 bytes .../browser/default/images/icons/swf.gif | Bin 0 -> 388 bytes .../browser/default/images/icons/swt.gif | Bin 0 -> 388 bytes .../browser/default/images/icons/txt.gif | Bin 0 -> 122 bytes .../browser/default/images/icons/vsd.gif | Bin 0 -> 136 bytes .../browser/default/images/icons/xls.gif | Bin 0 -> 138 bytes .../browser/default/images/icons/xml.gif | Bin 0 -> 231 bytes .../browser/default/images/icons/zip.gif | Bin 0 -> 235 bytes .../browser/default/images/spacer.gif | Bin 0 -> 43 bytes .../filemanager/browser/default/js/common.js | 88 + .../filemanager/browser/default/js/fckxml.js | 147 + .../filemanager/connectors/asp/basexml.asp | 63 + .../connectors/asp/class_upload.asp | 353 ++ .../filemanager/connectors/asp/commands.asp | 198 + .../filemanager/connectors/asp/config.asp | 128 + .../filemanager/connectors/asp/connector.asp | 88 + .../editor/filemanager/connectors/asp/io.asp | 236 + .../filemanager/connectors/asp/upload.asp | 65 + .../filemanager/connectors/asp/util.asp | 55 + .../filemanager/connectors/aspx/config.ascx | 98 + .../connectors/aspx/connector.aspx | 32 + .../filemanager/connectors/aspx/upload.aspx | 32 + .../connectors/cfm/ImageObject.cfc | 273 ++ .../connectors/cfm/cf5_connector.cfm | 315 ++ .../filemanager/connectors/cfm/cf5_upload.cfm | 299 ++ .../filemanager/connectors/cfm/cf_basexml.cfm | 68 + .../connectors/cfm/cf_commands.cfm | 230 + .../connectors/cfm/cf_connector.cfm | 89 + .../filemanager/connectors/cfm/cf_io.cfm | 291 ++ .../filemanager/connectors/cfm/cf_upload.cfm | 72 + .../filemanager/connectors/cfm/cf_util.cfm | 131 + .../filemanager/connectors/cfm/config.cfm | 189 + .../filemanager/connectors/cfm/connector.cfm | 32 + .../filemanager/connectors/cfm/image.cfc | 1324 ++++++ .../filemanager/connectors/cfm/upload.cfm | 31 + .../filemanager/connectors/lasso/config.lasso | 65 + .../connectors/lasso/connector.lasso | 322 ++ .../filemanager/connectors/lasso/upload.lasso | 168 + .../filemanager/connectors/perl/basexml.pl | 63 + .../filemanager/connectors/perl/commands.pl | 187 + .../filemanager/connectors/perl/connector.cgi | 136 + .../editor/filemanager/connectors/perl/io.pl | 141 + .../filemanager/connectors/perl/upload.cgi | 117 + .../filemanager/connectors/perl/upload_fck.pl | 686 +++ .../filemanager/connectors/perl/util.pl | 68 + .../filemanager/connectors/php/basexml.php | 93 + .../filemanager/connectors/php/commands.php | 273 ++ .../filemanager/connectors/php/config.php | 151 + .../filemanager/connectors/php/connector.php | 87 + .../editor/filemanager/connectors/php/io.php | 295 ++ .../filemanager/connectors/php/phpcompat.php | 17 + .../filemanager/connectors/php/upload.php | 59 + .../filemanager/connectors/php/util.php | 220 + .../filemanager/connectors/py/config.py | 146 + .../filemanager/connectors/py/connector.py | 118 + .../filemanager/connectors/py/fckcommands.py | 198 + .../filemanager/connectors/py/fckconnector.py | 90 + .../filemanager/connectors/py/fckoutput.py | 116 + .../filemanager/connectors/py/fckutil.py | 126 + .../filemanager/connectors/py/htaccess.txt | 23 + .../filemanager/connectors/py/upload.py | 88 + .../editor/filemanager/connectors/py/wsgi.py | 58 + .../editor/filemanager/connectors/py/zope.py | 188 + .../editor/filemanager/connectors/test.html | 210 + .../filemanager/connectors/uploadtest.html | 192 + fckeditor/editor/images/anchor.gif | Bin 0 -> 184 bytes fckeditor/editor/images/arrow_ltr.gif | Bin 0 -> 49 bytes fckeditor/editor/images/arrow_rtl.gif | Bin 0 -> 49 bytes .../editor/images/smiley/msn/angel_smile.gif | Bin 0 -> 445 bytes .../editor/images/smiley/msn/angry_smile.gif | Bin 0 -> 453 bytes .../editor/images/smiley/msn/broken_heart.gif | Bin 0 -> 423 bytes fckeditor/editor/images/smiley/msn/cake.gif | Bin 0 -> 453 bytes .../images/smiley/msn/confused_smile.gif | Bin 0 -> 322 bytes .../editor/images/smiley/msn/cry_smile.gif | Bin 0 -> 473 bytes .../editor/images/smiley/msn/devil_smile.gif | Bin 0 -> 444 bytes .../images/smiley/msn/embaressed_smile.gif | Bin 0 -> 1077 bytes .../editor/images/smiley/msn/envelope.gif | Bin 0 -> 1030 bytes fckeditor/editor/images/smiley/msn/heart.gif | Bin 0 -> 1012 bytes fckeditor/editor/images/smiley/msn/kiss.gif | Bin 0 -> 978 bytes .../editor/images/smiley/msn/lightbulb.gif | Bin 0 -> 303 bytes .../editor/images/smiley/msn/omg_smile.gif | Bin 0 -> 342 bytes .../images/smiley/msn/regular_smile.gif | Bin 0 -> 1036 bytes .../editor/images/smiley/msn/sad_smile.gif | Bin 0 -> 1039 bytes .../editor/images/smiley/msn/shades_smile.gif | Bin 0 -> 1059 bytes .../editor/images/smiley/msn/teeth_smile.gif | Bin 0 -> 1064 bytes .../editor/images/smiley/msn/thumbs_down.gif | Bin 0 -> 992 bytes .../editor/images/smiley/msn/thumbs_up.gif | Bin 0 -> 989 bytes .../editor/images/smiley/msn/tounge_smile.gif | Bin 0 -> 1055 bytes .../smiley/msn/whatchutalkingabout_smile.gif | Bin 0 -> 1034 bytes .../editor/images/smiley/msn/wink_smile.gif | Bin 0 -> 1041 bytes fckeditor/editor/images/spacer.gif | Bin 0 -> 43 bytes fckeditor/editor/js/fckadobeair.js | 176 + fckeditor/editor/js/fckeditorcode_gecko.js | 108 + fckeditor/editor/js/fckeditorcode_ie.js | 109 + fckeditor/editor/lang/_translationstatus.txt | 78 + fckeditor/editor/lang/af.js | 526 +++ fckeditor/editor/lang/ar.js | 526 +++ fckeditor/editor/lang/bg.js | 526 +++ fckeditor/editor/lang/bn.js | 526 +++ fckeditor/editor/lang/bs.js | 526 +++ fckeditor/editor/lang/ca.js | 526 +++ fckeditor/editor/lang/cs.js | 526 +++ fckeditor/editor/lang/da.js | 526 +++ fckeditor/editor/lang/de.js | 526 +++ fckeditor/editor/lang/el.js | 526 +++ fckeditor/editor/lang/en-au.js | 526 +++ fckeditor/editor/lang/en-ca.js | 526 +++ fckeditor/editor/lang/en-uk.js | 526 +++ fckeditor/editor/lang/en.js | 526 +++ fckeditor/editor/lang/eo.js | 526 +++ fckeditor/editor/lang/es.js | 526 +++ fckeditor/editor/lang/et.js | 526 +++ fckeditor/editor/lang/eu.js | 527 +++ fckeditor/editor/lang/fa.js | 526 +++ fckeditor/editor/lang/fi.js | 526 +++ fckeditor/editor/lang/fo.js | 526 +++ fckeditor/editor/lang/fr-ca.js | 526 +++ fckeditor/editor/lang/fr.js | 526 +++ fckeditor/editor/lang/gl.js | 526 +++ fckeditor/editor/lang/gu.js | 526 +++ fckeditor/editor/lang/he.js | 526 +++ fckeditor/editor/lang/hi.js | 526 +++ fckeditor/editor/lang/hr.js | 526 +++ fckeditor/editor/lang/hu.js | 526 +++ fckeditor/editor/lang/it.js | 526 +++ fckeditor/editor/lang/ja.js | 526 +++ fckeditor/editor/lang/km.js | 526 +++ fckeditor/editor/lang/ko.js | 526 +++ fckeditor/editor/lang/lt.js | 526 +++ fckeditor/editor/lang/lv.js | 526 +++ fckeditor/editor/lang/mn.js | 526 +++ fckeditor/editor/lang/ms.js | 526 +++ fckeditor/editor/lang/nb.js | 526 +++ fckeditor/editor/lang/nl.js | 526 +++ fckeditor/editor/lang/no.js | 526 +++ fckeditor/editor/lang/pl.js | 526 +++ fckeditor/editor/lang/pt-br.js | 526 +++ fckeditor/editor/lang/pt.js | 526 +++ fckeditor/editor/lang/ro.js | 526 +++ fckeditor/editor/lang/ru.js | 526 +++ fckeditor/editor/lang/sk.js | 526 +++ fckeditor/editor/lang/sl.js | 526 +++ fckeditor/editor/lang/sr-latn.js | 526 +++ fckeditor/editor/lang/sr.js | 526 +++ fckeditor/editor/lang/sv.js | 526 +++ fckeditor/editor/lang/th.js | 526 +++ fckeditor/editor/lang/tr.js | 526 +++ fckeditor/editor/lang/uk.js | 526 +++ fckeditor/editor/lang/vi.js | 526 +++ fckeditor/editor/lang/zh-cn.js | 526 +++ fckeditor/editor/lang/zh.js | 526 +++ .../editor/plugins/autogrow/fckplugin.js | 99 + .../plugins/bbcode/_sample/sample.config.js | 26 + .../editor/plugins/bbcode/_sample/sample.html | 67 + fckeditor/editor/plugins/bbcode/fckplugin.js | 123 + .../plugins/dragresizetable/fckplugin.js | 524 +++ .../plugins/placeholder/fck_placeholder.html | 105 + .../editor/plugins/placeholder/fckplugin.js | 187 + .../editor/plugins/placeholder/lang/de.js | 27 + .../editor/plugins/placeholder/lang/en.js | 27 + .../editor/plugins/placeholder/lang/es.js | 27 + .../editor/plugins/placeholder/lang/fr.js | 27 + .../editor/plugins/placeholder/lang/it.js | 27 + .../editor/plugins/placeholder/lang/pl.js | 27 + .../plugins/placeholder/placeholder.gif | Bin 0 -> 96 bytes .../plugins/simplecommands/fckplugin.js | 29 + .../editor/plugins/tablecommands/fckplugin.js | 33 + fckeditor/editor/skins/_fckviewstrips.html | 121 + fckeditor/editor/skins/default/fck_dialog.css | 402 ++ .../editor/skins/default/fck_dialog_ie6.js | 110 + fckeditor/editor/skins/default/fck_editor.css | 464 ++ fckeditor/editor/skins/default/fck_strip.gif | Bin 0 -> 5067 bytes .../skins/default/images/dialog.sides.gif | Bin 0 -> 48 bytes .../skins/default/images/dialog.sides.png | Bin 0 -> 178 bytes .../skins/default/images/dialog.sides.rtl.png | Bin 0 -> 181 bytes .../editor/skins/default/images/sprites.gif | Bin 0 -> 959 bytes .../editor/skins/default/images/sprites.png | Bin 0 -> 3250 bytes .../default/images/toolbar.arrowright.gif | Bin 0 -> 53 bytes .../default/images/toolbar.buttonarrow.gif | Bin 0 -> 46 bytes .../skins/default/images/toolbar.collapse.gif | Bin 0 -> 152 bytes .../skins/default/images/toolbar.end.gif | Bin 0 -> 43 bytes .../skins/default/images/toolbar.expand.gif | Bin 0 -> 152 bytes .../default/images/toolbar.separator.gif | Bin 0 -> 58 bytes .../skins/default/images/toolbar.start.gif | Bin 0 -> 105 bytes .../editor/skins/office2003/fck_dialog.css | 402 ++ .../editor/skins/office2003/fck_dialog_ie6.js | 110 + .../editor/skins/office2003/fck_editor.css | 476 +++ .../editor/skins/office2003/fck_strip.gif | Bin 0 -> 9668 bytes .../skins/office2003/images/dialog.sides.gif | Bin 0 -> 48 bytes .../skins/office2003/images/dialog.sides.png | Bin 0 -> 203 bytes .../office2003/images/dialog.sides.rtl.png | Bin 0 -> 205 bytes .../skins/office2003/images/sprites.gif | Bin 0 -> 959 bytes .../skins/office2003/images/sprites.png | Bin 0 -> 3305 bytes .../office2003/images/toolbar.arrowright.gif | Bin 0 -> 53 bytes .../skins/office2003/images/toolbar.bg.gif | Bin 0 -> 73 bytes .../office2003/images/toolbar.buttonarrow.gif | Bin 0 -> 46 bytes .../office2003/images/toolbar.collapse.gif | Bin 0 -> 152 bytes .../skins/office2003/images/toolbar.end.gif | Bin 0 -> 124 bytes .../office2003/images/toolbar.expand.gif | Bin 0 -> 152 bytes .../office2003/images/toolbar.separator.gif | Bin 0 -> 67 bytes .../skins/office2003/images/toolbar.start.gif | Bin 0 -> 99 bytes fckeditor/editor/skins/silver/fck_dialog.css | 402 ++ .../editor/skins/silver/fck_dialog_ie6.js | 110 + fckeditor/editor/skins/silver/fck_editor.css | 473 ++ fckeditor/editor/skins/silver/fck_strip.gif | Bin 0 -> 5067 bytes .../skins/silver/images/dialog.sides.gif | Bin 0 -> 48 bytes .../skins/silver/images/dialog.sides.png | Bin 0 -> 198 bytes .../skins/silver/images/dialog.sides.rtl.png | Bin 0 -> 200 bytes .../editor/skins/silver/images/sprites.gif | Bin 0 -> 959 bytes .../editor/skins/silver/images/sprites.png | Bin 0 -> 3278 bytes .../silver/images/toolbar.arrowright.gif | Bin 0 -> 53 bytes .../silver/images/toolbar.buttonarrow.gif | Bin 0 -> 46 bytes .../skins/silver/images/toolbar.buttonbg.gif | Bin 0 -> 829 bytes .../skins/silver/images/toolbar.collapse.gif | Bin 0 -> 152 bytes .../skins/silver/images/toolbar.end.gif | Bin 0 -> 43 bytes .../skins/silver/images/toolbar.expand.gif | Bin 0 -> 152 bytes .../skins/silver/images/toolbar.separator.gif | Bin 0 -> 58 bytes .../skins/silver/images/toolbar.start.gif | Bin 0 -> 105 bytes fckeditor/fckconfig.js | 325 ++ fckeditor/fckeditor.afp | 159 + fckeditor/fckeditor.asp | 235 + fckeditor/fckeditor.cfc | 232 + fckeditor/fckeditor.cfm | 159 + fckeditor/fckeditor.js | 328 ++ fckeditor/fckeditor.lasso | 108 + fckeditor/fckeditor.php | 31 + fckeditor/fckeditor.pl | 143 + fckeditor/fckeditor.py | 160 + fckeditor/fckeditor_php4.php | 262 ++ fckeditor/fckeditor_php5.php | 257 ++ fckeditor/fckpackager.xml | 262 ++ fckeditor/fckstyles.xml | 111 + fckeditor/fcktemplates.xml | 103 + fckeditor/fckutils.cfm | 78 + fckeditor/license.txt | 1246 ++++++ 561 files changed, 94023 insertions(+) create mode 100644 fckeditor/_documentation.html create mode 100644 fckeditor/_samples/_plugins/findreplace/fckplugin.js create mode 100644 fckeditor/_samples/_plugins/findreplace/find.gif create mode 100644 fckeditor/_samples/_plugins/findreplace/find.html create mode 100644 fckeditor/_samples/_plugins/findreplace/lang/en.js create mode 100644 fckeditor/_samples/_plugins/findreplace/lang/fr.js create mode 100644 fckeditor/_samples/_plugins/findreplace/lang/it.js create mode 100644 fckeditor/_samples/_plugins/findreplace/replace.gif create mode 100644 fckeditor/_samples/_plugins/findreplace/replace.html create mode 100644 fckeditor/_samples/_plugins/samples/fckplugin.js create mode 100644 fckeditor/_samples/adobeair/application.xml create mode 100644 fckeditor/_samples/adobeair/icons/128.png create mode 100644 fckeditor/_samples/adobeair/icons/16.png create mode 100644 fckeditor/_samples/adobeair/icons/32.png create mode 100644 fckeditor/_samples/adobeair/icons/48.png create mode 100644 fckeditor/_samples/adobeair/package.bat create mode 100644 fckeditor/_samples/adobeair/run.bat create mode 100644 fckeditor/_samples/adobeair/sample01.html create mode 100644 fckeditor/_samples/adobeair/sample01_cert.pfx create mode 100644 fckeditor/_samples/afp/fck.afpa create mode 100644 fckeditor/_samples/afp/fck.afpa.code create mode 100644 fckeditor/_samples/afp/sample01.afp create mode 100644 fckeditor/_samples/afp/sample02.afp create mode 100644 fckeditor/_samples/afp/sample03.afp create mode 100644 fckeditor/_samples/afp/sample04.afp create mode 100644 fckeditor/_samples/afp/sampleposteddata.afp create mode 100644 fckeditor/_samples/asp/sample01.asp create mode 100644 fckeditor/_samples/asp/sample02.asp create mode 100644 fckeditor/_samples/asp/sample03.asp create mode 100644 fckeditor/_samples/asp/sample04.asp create mode 100644 fckeditor/_samples/asp/sampleposteddata.asp create mode 100644 fckeditor/_samples/cfm/sample01.cfm create mode 100644 fckeditor/_samples/cfm/sample01_mx.cfm create mode 100644 fckeditor/_samples/cfm/sample02.cfm create mode 100644 fckeditor/_samples/cfm/sample02_mx.cfm create mode 100644 fckeditor/_samples/cfm/sample03.cfm create mode 100644 fckeditor/_samples/cfm/sample03_mx.cfm create mode 100644 fckeditor/_samples/cfm/sample04.cfm create mode 100644 fckeditor/_samples/cfm/sample04_mx.cfm create mode 100644 fckeditor/_samples/cfm/sampleposteddata.cfm create mode 100644 fckeditor/_samples/default.html create mode 100644 fckeditor/_samples/html/assets/sample06.config.js create mode 100644 fckeditor/_samples/html/assets/sample11_frame.html create mode 100644 fckeditor/_samples/html/assets/sample14.config.js create mode 100644 fckeditor/_samples/html/assets/sample14.styles.css create mode 100644 fckeditor/_samples/html/assets/sample15.config.js create mode 100644 fckeditor/_samples/html/assets/sample16.config.js create mode 100644 fckeditor/_samples/html/assets/sample16.fla create mode 100644 fckeditor/_samples/html/assets/sample16.swf create mode 100644 fckeditor/_samples/html/assets/swfobject.js create mode 100644 fckeditor/_samples/html/sample01.html create mode 100644 fckeditor/_samples/html/sample02.html create mode 100644 fckeditor/_samples/html/sample03.html create mode 100644 fckeditor/_samples/html/sample04.html create mode 100644 fckeditor/_samples/html/sample05.html create mode 100644 fckeditor/_samples/html/sample06.html create mode 100644 fckeditor/_samples/html/sample07.html create mode 100644 fckeditor/_samples/html/sample08.html create mode 100644 fckeditor/_samples/html/sample09.html create mode 100644 fckeditor/_samples/html/sample10.html create mode 100644 fckeditor/_samples/html/sample11.html create mode 100644 fckeditor/_samples/html/sample12.html create mode 100644 fckeditor/_samples/html/sample13.html create mode 100644 fckeditor/_samples/html/sample14.html create mode 100644 fckeditor/_samples/html/sample15.html create mode 100644 fckeditor/_samples/html/sample16.html create mode 100644 fckeditor/_samples/lasso/sample01.lasso create mode 100644 fckeditor/_samples/lasso/sample02.lasso create mode 100644 fckeditor/_samples/lasso/sample03.lasso create mode 100644 fckeditor/_samples/lasso/sample04.lasso create mode 100644 fckeditor/_samples/lasso/sampleposteddata.lasso create mode 100644 fckeditor/_samples/perl/sample01.cgi create mode 100644 fckeditor/_samples/perl/sample02.cgi create mode 100644 fckeditor/_samples/perl/sample03.cgi create mode 100644 fckeditor/_samples/perl/sample04.cgi create mode 100644 fckeditor/_samples/perl/sampleposteddata.cgi create mode 100644 fckeditor/_samples/php/sample01.php create mode 100644 fckeditor/_samples/php/sample02.php create mode 100644 fckeditor/_samples/php/sample03.php create mode 100644 fckeditor/_samples/php/sample04.php create mode 100644 fckeditor/_samples/php/sampleposteddata.php create mode 100644 fckeditor/_samples/py/sample01.py create mode 100644 fckeditor/_samples/py/sampleposteddata.py create mode 100644 fckeditor/_samples/sample.css create mode 100644 fckeditor/_samples/sampleslist.html create mode 100644 fckeditor/_upgrade.html create mode 100644 fckeditor/_whatsnew.html create mode 100644 fckeditor/_whatsnew_history.html create mode 100644 fckeditor/editor/_source/classes/fckcontextmenu.js create mode 100644 fckeditor/editor/_source/classes/fckdataprocessor.js create mode 100644 fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js create mode 100644 fckeditor/editor/_source/classes/fckdocumentfragment_ie.js create mode 100644 fckeditor/editor/_source/classes/fckdomrange.js create mode 100644 fckeditor/editor/_source/classes/fckdomrange_gecko.js create mode 100644 fckeditor/editor/_source/classes/fckdomrange_ie.js create mode 100644 fckeditor/editor/_source/classes/fckdomrangeiterator.js create mode 100644 fckeditor/editor/_source/classes/fckeditingarea.js create mode 100644 fckeditor/editor/_source/classes/fckelementpath.js create mode 100644 fckeditor/editor/_source/classes/fckenterkey.js create mode 100644 fckeditor/editor/_source/classes/fckevents.js create mode 100644 fckeditor/editor/_source/classes/fckhtmliterator.js create mode 100644 fckeditor/editor/_source/classes/fckicon.js create mode 100644 fckeditor/editor/_source/classes/fckiecleanup.js create mode 100644 fckeditor/editor/_source/classes/fckimagepreloader.js create mode 100644 fckeditor/editor/_source/classes/fckkeystrokehandler.js create mode 100644 fckeditor/editor/_source/classes/fckmenublock.js create mode 100644 fckeditor/editor/_source/classes/fckmenublockpanel.js create mode 100644 fckeditor/editor/_source/classes/fckmenuitem.js create mode 100644 fckeditor/editor/_source/classes/fckpanel.js create mode 100644 fckeditor/editor/_source/classes/fckplugin.js create mode 100644 fckeditor/editor/_source/classes/fckspecialcombo.js create mode 100644 fckeditor/editor/_source/classes/fckstyle.js create mode 100644 fckeditor/editor/_source/classes/fcktoolbar.js create mode 100644 fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js create mode 100644 fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js create mode 100644 fckeditor/editor/_source/classes/fcktoolbarbutton.js create mode 100644 fckeditor/editor/_source/classes/fcktoolbarbuttonui.js create mode 100644 fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js create mode 100644 fckeditor/editor/_source/classes/fcktoolbarfontscombo.js create mode 100644 fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js create mode 100644 fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js create mode 100644 fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js create mode 100644 fckeditor/editor/_source/classes/fcktoolbarstylecombo.js create mode 100644 fckeditor/editor/_source/classes/fckw3crange.js create mode 100644 fckeditor/editor/_source/classes/fckxml.js create mode 100644 fckeditor/editor/_source/classes/fckxml_gecko.js create mode 100644 fckeditor/editor/_source/classes/fckxml_ie.js create mode 100644 fckeditor/editor/_source/commandclasses/fck_othercommands.js create mode 100644 fckeditor/editor/_source/commandclasses/fckblockquotecommand.js create mode 100644 fckeditor/editor/_source/commandclasses/fckcorestylecommand.js create mode 100644 fckeditor/editor/_source/commandclasses/fckfitwindow.js create mode 100644 fckeditor/editor/_source/commandclasses/fckindentcommands.js create mode 100644 fckeditor/editor/_source/commandclasses/fckjustifycommands.js create mode 100644 fckeditor/editor/_source/commandclasses/fcklistcommands.js create mode 100644 fckeditor/editor/_source/commandclasses/fcknamedcommand.js create mode 100644 fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js create mode 100644 fckeditor/editor/_source/commandclasses/fckpastewordcommand.js create mode 100644 fckeditor/editor/_source/commandclasses/fckremoveformatcommand.js create mode 100644 fckeditor/editor/_source/commandclasses/fckshowblocks.js create mode 100644 fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js create mode 100644 fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js create mode 100644 fckeditor/editor/_source/commandclasses/fckstylecommand.js create mode 100644 fckeditor/editor/_source/commandclasses/fcktablecommand.js create mode 100644 fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js create mode 100644 fckeditor/editor/_source/fckconstants.js create mode 100644 fckeditor/editor/_source/fckeditorapi.js create mode 100644 fckeditor/editor/_source/fckjscoreextensions.js create mode 100644 fckeditor/editor/_source/fckscriptloader.js create mode 100644 fckeditor/editor/_source/internals/fck.js create mode 100644 fckeditor/editor/_source/internals/fck_contextmenu.js create mode 100644 fckeditor/editor/_source/internals/fck_gecko.js create mode 100644 fckeditor/editor/_source/internals/fck_ie.js create mode 100644 fckeditor/editor/_source/internals/fckbrowserinfo.js create mode 100644 fckeditor/editor/_source/internals/fckcodeformatter.js create mode 100644 fckeditor/editor/_source/internals/fckcommands.js create mode 100644 fckeditor/editor/_source/internals/fckconfig.js create mode 100644 fckeditor/editor/_source/internals/fckdebug.js create mode 100644 fckeditor/editor/_source/internals/fckdebug_empty.js create mode 100644 fckeditor/editor/_source/internals/fckdialog.js create mode 100644 fckeditor/editor/_source/internals/fckdocumentprocessor.js create mode 100644 fckeditor/editor/_source/internals/fckdomtools.js create mode 100644 fckeditor/editor/_source/internals/fcklanguagemanager.js create mode 100644 fckeditor/editor/_source/internals/fcklisthandler.js create mode 100644 fckeditor/editor/_source/internals/fcklistslib.js create mode 100644 fckeditor/editor/_source/internals/fckplugins.js create mode 100644 fckeditor/editor/_source/internals/fckregexlib.js create mode 100644 fckeditor/editor/_source/internals/fckselection.js create mode 100644 fckeditor/editor/_source/internals/fckselection_gecko.js create mode 100644 fckeditor/editor/_source/internals/fckselection_ie.js create mode 100644 fckeditor/editor/_source/internals/fckstyles.js create mode 100644 fckeditor/editor/_source/internals/fcktablehandler.js create mode 100644 fckeditor/editor/_source/internals/fcktablehandler_gecko.js create mode 100644 fckeditor/editor/_source/internals/fcktablehandler_ie.js create mode 100644 fckeditor/editor/_source/internals/fcktoolbaritems.js create mode 100644 fckeditor/editor/_source/internals/fcktoolbarset.js create mode 100644 fckeditor/editor/_source/internals/fcktools.js create mode 100644 fckeditor/editor/_source/internals/fcktools_gecko.js create mode 100644 fckeditor/editor/_source/internals/fcktools_ie.js create mode 100644 fckeditor/editor/_source/internals/fckundo.js create mode 100644 fckeditor/editor/_source/internals/fckurlparams.js create mode 100644 fckeditor/editor/_source/internals/fckxhtml.js create mode 100644 fckeditor/editor/_source/internals/fckxhtml_gecko.js create mode 100644 fckeditor/editor/_source/internals/fckxhtml_ie.js create mode 100644 fckeditor/editor/_source/internals/fckxhtmlentities.js create mode 100644 fckeditor/editor/css/behaviors/disablehandles.htc create mode 100644 fckeditor/editor/css/behaviors/showtableborders.htc create mode 100644 fckeditor/editor/css/fck_editorarea.css create mode 100644 fckeditor/editor/css/fck_internal.css create mode 100644 fckeditor/editor/css/fck_showtableborders_gecko.css create mode 100644 fckeditor/editor/css/images/block_address.png create mode 100644 fckeditor/editor/css/images/block_blockquote.png create mode 100644 fckeditor/editor/css/images/block_div.png create mode 100644 fckeditor/editor/css/images/block_h1.png create mode 100644 fckeditor/editor/css/images/block_h2.png create mode 100644 fckeditor/editor/css/images/block_h3.png create mode 100644 fckeditor/editor/css/images/block_h4.png create mode 100644 fckeditor/editor/css/images/block_h5.png create mode 100644 fckeditor/editor/css/images/block_h6.png create mode 100644 fckeditor/editor/css/images/block_p.png create mode 100644 fckeditor/editor/css/images/block_pre.png create mode 100644 fckeditor/editor/css/images/fck_anchor.gif create mode 100644 fckeditor/editor/css/images/fck_flashlogo.gif create mode 100644 fckeditor/editor/css/images/fck_hiddenfield.gif create mode 100644 fckeditor/editor/css/images/fck_pagebreak.gif create mode 100644 fckeditor/editor/css/images/fck_plugin.gif create mode 100644 fckeditor/editor/dialog/common/fck_dialog_common.css create mode 100644 fckeditor/editor/dialog/common/fck_dialog_common.js create mode 100644 fckeditor/editor/dialog/common/images/locked.gif create mode 100644 fckeditor/editor/dialog/common/images/reset.gif create mode 100644 fckeditor/editor/dialog/common/images/unlocked.gif create mode 100644 fckeditor/editor/dialog/fck_about.html create mode 100644 fckeditor/editor/dialog/fck_about/logo_fckeditor.gif create mode 100644 fckeditor/editor/dialog/fck_about/logo_fredck.gif create mode 100644 fckeditor/editor/dialog/fck_about/sponsors/spellchecker_net.gif create mode 100644 fckeditor/editor/dialog/fck_anchor.html create mode 100644 fckeditor/editor/dialog/fck_button.html create mode 100644 fckeditor/editor/dialog/fck_checkbox.html create mode 100644 fckeditor/editor/dialog/fck_colorselector.html create mode 100644 fckeditor/editor/dialog/fck_div.html create mode 100644 fckeditor/editor/dialog/fck_docprops.html create mode 100644 fckeditor/editor/dialog/fck_docprops/fck_document_preview.html create mode 100644 fckeditor/editor/dialog/fck_flash.html create mode 100644 fckeditor/editor/dialog/fck_flash/fck_flash.js create mode 100644 fckeditor/editor/dialog/fck_flash/fck_flash_preview.html create mode 100644 fckeditor/editor/dialog/fck_form.html create mode 100644 fckeditor/editor/dialog/fck_hiddenfield.html create mode 100644 fckeditor/editor/dialog/fck_image.html create mode 100644 fckeditor/editor/dialog/fck_image/fck_image.js create mode 100644 fckeditor/editor/dialog/fck_image/fck_image_preview.html create mode 100644 fckeditor/editor/dialog/fck_link.html create mode 100644 fckeditor/editor/dialog/fck_link/fck_link.js create mode 100644 fckeditor/editor/dialog/fck_listprop.html create mode 100644 fckeditor/editor/dialog/fck_paste.html create mode 100644 fckeditor/editor/dialog/fck_radiobutton.html create mode 100644 fckeditor/editor/dialog/fck_replace.html create mode 100644 fckeditor/editor/dialog/fck_select.html create mode 100644 fckeditor/editor/dialog/fck_select/fck_select.js create mode 100644 fckeditor/editor/dialog/fck_smiley.html create mode 100644 fckeditor/editor/dialog/fck_source.html create mode 100644 fckeditor/editor/dialog/fck_specialchar.html create mode 100644 fckeditor/editor/dialog/fck_spellerpages.html create mode 100644 fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html create mode 100644 fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js create mode 100644 fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html create mode 100644 fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm create mode 100644 fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php create mode 100644 fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl create mode 100644 fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js create mode 100644 fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html create mode 100644 fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css create mode 100644 fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js create mode 100644 fckeditor/editor/dialog/fck_table.html create mode 100644 fckeditor/editor/dialog/fck_tablecell.html create mode 100644 fckeditor/editor/dialog/fck_template.html create mode 100644 fckeditor/editor/dialog/fck_template/images/template1.gif create mode 100644 fckeditor/editor/dialog/fck_template/images/template2.gif create mode 100644 fckeditor/editor/dialog/fck_template/images/template3.gif create mode 100644 fckeditor/editor/dialog/fck_textarea.html create mode 100644 fckeditor/editor/dialog/fck_textfield.html create mode 100644 fckeditor/editor/dtd/fck_dtd_test.html create mode 100644 fckeditor/editor/dtd/fck_xhtml10strict.js create mode 100644 fckeditor/editor/dtd/fck_xhtml10transitional.js create mode 100644 fckeditor/editor/fckdebug.html create mode 100644 fckeditor/editor/fckdialog.html create mode 100644 fckeditor/editor/fckeditor.html create mode 100644 fckeditor/editor/fckeditor.original.html create mode 100644 fckeditor/editor/filemanager/browser/default/browser.css create mode 100644 fckeditor/editor/filemanager/browser/default/browser.html create mode 100644 fckeditor/editor/filemanager/browser/default/frmactualfolder.html create mode 100644 fckeditor/editor/filemanager/browser/default/frmcreatefolder.html create mode 100644 fckeditor/editor/filemanager/browser/default/frmfolders.html create mode 100644 fckeditor/editor/filemanager/browser/default/frmresourceslist.html create mode 100644 fckeditor/editor/filemanager/browser/default/frmresourcetype.html create mode 100644 fckeditor/editor/filemanager/browser/default/frmupload.html create mode 100644 fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/Folder.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/Folder32.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/FolderUp.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/ai.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/avi.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/cs.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/dll.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/doc.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/exe.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/fla.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/gif.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/htm.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/html.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/js.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/png.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/swf.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/swt.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/txt.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/xls.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/xml.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/icons/zip.gif create mode 100644 fckeditor/editor/filemanager/browser/default/images/spacer.gif create mode 100644 fckeditor/editor/filemanager/browser/default/js/common.js create mode 100644 fckeditor/editor/filemanager/browser/default/js/fckxml.js create mode 100644 fckeditor/editor/filemanager/connectors/asp/basexml.asp create mode 100644 fckeditor/editor/filemanager/connectors/asp/class_upload.asp create mode 100644 fckeditor/editor/filemanager/connectors/asp/commands.asp create mode 100644 fckeditor/editor/filemanager/connectors/asp/config.asp create mode 100644 fckeditor/editor/filemanager/connectors/asp/connector.asp create mode 100644 fckeditor/editor/filemanager/connectors/asp/io.asp create mode 100644 fckeditor/editor/filemanager/connectors/asp/upload.asp create mode 100644 fckeditor/editor/filemanager/connectors/asp/util.asp create mode 100644 fckeditor/editor/filemanager/connectors/aspx/config.ascx create mode 100644 fckeditor/editor/filemanager/connectors/aspx/connector.aspx create mode 100644 fckeditor/editor/filemanager/connectors/aspx/upload.aspx create mode 100644 fckeditor/editor/filemanager/connectors/cfm/ImageObject.cfc create mode 100644 fckeditor/editor/filemanager/connectors/cfm/cf5_connector.cfm create mode 100644 fckeditor/editor/filemanager/connectors/cfm/cf5_upload.cfm create mode 100644 fckeditor/editor/filemanager/connectors/cfm/cf_basexml.cfm create mode 100644 fckeditor/editor/filemanager/connectors/cfm/cf_commands.cfm create mode 100644 fckeditor/editor/filemanager/connectors/cfm/cf_connector.cfm create mode 100644 fckeditor/editor/filemanager/connectors/cfm/cf_io.cfm create mode 100644 fckeditor/editor/filemanager/connectors/cfm/cf_upload.cfm create mode 100644 fckeditor/editor/filemanager/connectors/cfm/cf_util.cfm create mode 100644 fckeditor/editor/filemanager/connectors/cfm/config.cfm create mode 100644 fckeditor/editor/filemanager/connectors/cfm/connector.cfm create mode 100644 fckeditor/editor/filemanager/connectors/cfm/image.cfc create mode 100644 fckeditor/editor/filemanager/connectors/cfm/upload.cfm create mode 100644 fckeditor/editor/filemanager/connectors/lasso/config.lasso create mode 100644 fckeditor/editor/filemanager/connectors/lasso/connector.lasso create mode 100644 fckeditor/editor/filemanager/connectors/lasso/upload.lasso create mode 100644 fckeditor/editor/filemanager/connectors/perl/basexml.pl create mode 100644 fckeditor/editor/filemanager/connectors/perl/commands.pl create mode 100644 fckeditor/editor/filemanager/connectors/perl/connector.cgi create mode 100644 fckeditor/editor/filemanager/connectors/perl/io.pl create mode 100644 fckeditor/editor/filemanager/connectors/perl/upload.cgi create mode 100644 fckeditor/editor/filemanager/connectors/perl/upload_fck.pl create mode 100644 fckeditor/editor/filemanager/connectors/perl/util.pl create mode 100644 fckeditor/editor/filemanager/connectors/php/basexml.php create mode 100644 fckeditor/editor/filemanager/connectors/php/commands.php create mode 100644 fckeditor/editor/filemanager/connectors/php/config.php create mode 100644 fckeditor/editor/filemanager/connectors/php/connector.php create mode 100644 fckeditor/editor/filemanager/connectors/php/io.php create mode 100644 fckeditor/editor/filemanager/connectors/php/phpcompat.php create mode 100644 fckeditor/editor/filemanager/connectors/php/upload.php create mode 100644 fckeditor/editor/filemanager/connectors/php/util.php create mode 100644 fckeditor/editor/filemanager/connectors/py/config.py create mode 100644 fckeditor/editor/filemanager/connectors/py/connector.py create mode 100644 fckeditor/editor/filemanager/connectors/py/fckcommands.py create mode 100644 fckeditor/editor/filemanager/connectors/py/fckconnector.py create mode 100644 fckeditor/editor/filemanager/connectors/py/fckoutput.py create mode 100644 fckeditor/editor/filemanager/connectors/py/fckutil.py create mode 100644 fckeditor/editor/filemanager/connectors/py/htaccess.txt create mode 100644 fckeditor/editor/filemanager/connectors/py/upload.py create mode 100644 fckeditor/editor/filemanager/connectors/py/wsgi.py create mode 100644 fckeditor/editor/filemanager/connectors/py/zope.py create mode 100644 fckeditor/editor/filemanager/connectors/test.html create mode 100644 fckeditor/editor/filemanager/connectors/uploadtest.html create mode 100644 fckeditor/editor/images/anchor.gif create mode 100644 fckeditor/editor/images/arrow_ltr.gif create mode 100644 fckeditor/editor/images/arrow_rtl.gif create mode 100644 fckeditor/editor/images/smiley/msn/angel_smile.gif create mode 100644 fckeditor/editor/images/smiley/msn/angry_smile.gif create mode 100644 fckeditor/editor/images/smiley/msn/broken_heart.gif create mode 100644 fckeditor/editor/images/smiley/msn/cake.gif create mode 100644 fckeditor/editor/images/smiley/msn/confused_smile.gif create mode 100644 fckeditor/editor/images/smiley/msn/cry_smile.gif create mode 100644 fckeditor/editor/images/smiley/msn/devil_smile.gif create mode 100644 fckeditor/editor/images/smiley/msn/embaressed_smile.gif create mode 100644 fckeditor/editor/images/smiley/msn/envelope.gif create mode 100644 fckeditor/editor/images/smiley/msn/heart.gif create mode 100644 fckeditor/editor/images/smiley/msn/kiss.gif create mode 100644 fckeditor/editor/images/smiley/msn/lightbulb.gif create mode 100644 fckeditor/editor/images/smiley/msn/omg_smile.gif create mode 100644 fckeditor/editor/images/smiley/msn/regular_smile.gif create mode 100644 fckeditor/editor/images/smiley/msn/sad_smile.gif create mode 100644 fckeditor/editor/images/smiley/msn/shades_smile.gif create mode 100644 fckeditor/editor/images/smiley/msn/teeth_smile.gif create mode 100644 fckeditor/editor/images/smiley/msn/thumbs_down.gif create mode 100644 fckeditor/editor/images/smiley/msn/thumbs_up.gif create mode 100644 fckeditor/editor/images/smiley/msn/tounge_smile.gif create mode 100644 fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif create mode 100644 fckeditor/editor/images/smiley/msn/wink_smile.gif create mode 100644 fckeditor/editor/images/spacer.gif create mode 100644 fckeditor/editor/js/fckadobeair.js create mode 100644 fckeditor/editor/js/fckeditorcode_gecko.js create mode 100644 fckeditor/editor/js/fckeditorcode_ie.js create mode 100644 fckeditor/editor/lang/_translationstatus.txt create mode 100644 fckeditor/editor/lang/af.js create mode 100644 fckeditor/editor/lang/ar.js create mode 100644 fckeditor/editor/lang/bg.js create mode 100644 fckeditor/editor/lang/bn.js create mode 100644 fckeditor/editor/lang/bs.js create mode 100644 fckeditor/editor/lang/ca.js create mode 100644 fckeditor/editor/lang/cs.js create mode 100644 fckeditor/editor/lang/da.js create mode 100644 fckeditor/editor/lang/de.js create mode 100644 fckeditor/editor/lang/el.js create mode 100644 fckeditor/editor/lang/en-au.js create mode 100644 fckeditor/editor/lang/en-ca.js create mode 100644 fckeditor/editor/lang/en-uk.js create mode 100644 fckeditor/editor/lang/en.js create mode 100644 fckeditor/editor/lang/eo.js create mode 100644 fckeditor/editor/lang/es.js create mode 100644 fckeditor/editor/lang/et.js create mode 100644 fckeditor/editor/lang/eu.js create mode 100644 fckeditor/editor/lang/fa.js create mode 100644 fckeditor/editor/lang/fi.js create mode 100644 fckeditor/editor/lang/fo.js create mode 100644 fckeditor/editor/lang/fr-ca.js create mode 100644 fckeditor/editor/lang/fr.js create mode 100644 fckeditor/editor/lang/gl.js create mode 100644 fckeditor/editor/lang/gu.js create mode 100644 fckeditor/editor/lang/he.js create mode 100644 fckeditor/editor/lang/hi.js create mode 100644 fckeditor/editor/lang/hr.js create mode 100644 fckeditor/editor/lang/hu.js create mode 100644 fckeditor/editor/lang/it.js create mode 100644 fckeditor/editor/lang/ja.js create mode 100644 fckeditor/editor/lang/km.js create mode 100644 fckeditor/editor/lang/ko.js create mode 100644 fckeditor/editor/lang/lt.js create mode 100644 fckeditor/editor/lang/lv.js create mode 100644 fckeditor/editor/lang/mn.js create mode 100644 fckeditor/editor/lang/ms.js create mode 100644 fckeditor/editor/lang/nb.js create mode 100644 fckeditor/editor/lang/nl.js create mode 100644 fckeditor/editor/lang/no.js create mode 100644 fckeditor/editor/lang/pl.js create mode 100644 fckeditor/editor/lang/pt-br.js create mode 100644 fckeditor/editor/lang/pt.js create mode 100644 fckeditor/editor/lang/ro.js create mode 100644 fckeditor/editor/lang/ru.js create mode 100644 fckeditor/editor/lang/sk.js create mode 100644 fckeditor/editor/lang/sl.js create mode 100644 fckeditor/editor/lang/sr-latn.js create mode 100644 fckeditor/editor/lang/sr.js create mode 100644 fckeditor/editor/lang/sv.js create mode 100644 fckeditor/editor/lang/th.js create mode 100644 fckeditor/editor/lang/tr.js create mode 100644 fckeditor/editor/lang/uk.js create mode 100644 fckeditor/editor/lang/vi.js create mode 100644 fckeditor/editor/lang/zh-cn.js create mode 100644 fckeditor/editor/lang/zh.js create mode 100644 fckeditor/editor/plugins/autogrow/fckplugin.js create mode 100644 fckeditor/editor/plugins/bbcode/_sample/sample.config.js create mode 100644 fckeditor/editor/plugins/bbcode/_sample/sample.html create mode 100644 fckeditor/editor/plugins/bbcode/fckplugin.js create mode 100644 fckeditor/editor/plugins/dragresizetable/fckplugin.js create mode 100644 fckeditor/editor/plugins/placeholder/fck_placeholder.html create mode 100644 fckeditor/editor/plugins/placeholder/fckplugin.js create mode 100644 fckeditor/editor/plugins/placeholder/lang/de.js create mode 100644 fckeditor/editor/plugins/placeholder/lang/en.js create mode 100644 fckeditor/editor/plugins/placeholder/lang/es.js create mode 100644 fckeditor/editor/plugins/placeholder/lang/fr.js create mode 100644 fckeditor/editor/plugins/placeholder/lang/it.js create mode 100644 fckeditor/editor/plugins/placeholder/lang/pl.js create mode 100644 fckeditor/editor/plugins/placeholder/placeholder.gif create mode 100644 fckeditor/editor/plugins/simplecommands/fckplugin.js create mode 100644 fckeditor/editor/plugins/tablecommands/fckplugin.js create mode 100644 fckeditor/editor/skins/_fckviewstrips.html create mode 100644 fckeditor/editor/skins/default/fck_dialog.css create mode 100644 fckeditor/editor/skins/default/fck_dialog_ie6.js create mode 100644 fckeditor/editor/skins/default/fck_editor.css create mode 100644 fckeditor/editor/skins/default/fck_strip.gif create mode 100644 fckeditor/editor/skins/default/images/dialog.sides.gif create mode 100644 fckeditor/editor/skins/default/images/dialog.sides.png create mode 100644 fckeditor/editor/skins/default/images/dialog.sides.rtl.png create mode 100644 fckeditor/editor/skins/default/images/sprites.gif create mode 100644 fckeditor/editor/skins/default/images/sprites.png create mode 100644 fckeditor/editor/skins/default/images/toolbar.arrowright.gif create mode 100644 fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif create mode 100644 fckeditor/editor/skins/default/images/toolbar.collapse.gif create mode 100644 fckeditor/editor/skins/default/images/toolbar.end.gif create mode 100644 fckeditor/editor/skins/default/images/toolbar.expand.gif create mode 100644 fckeditor/editor/skins/default/images/toolbar.separator.gif create mode 100644 fckeditor/editor/skins/default/images/toolbar.start.gif create mode 100644 fckeditor/editor/skins/office2003/fck_dialog.css create mode 100644 fckeditor/editor/skins/office2003/fck_dialog_ie6.js create mode 100644 fckeditor/editor/skins/office2003/fck_editor.css create mode 100644 fckeditor/editor/skins/office2003/fck_strip.gif create mode 100644 fckeditor/editor/skins/office2003/images/dialog.sides.gif create mode 100644 fckeditor/editor/skins/office2003/images/dialog.sides.png create mode 100644 fckeditor/editor/skins/office2003/images/dialog.sides.rtl.png create mode 100644 fckeditor/editor/skins/office2003/images/sprites.gif create mode 100644 fckeditor/editor/skins/office2003/images/sprites.png create mode 100644 fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif create mode 100644 fckeditor/editor/skins/office2003/images/toolbar.bg.gif create mode 100644 fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif create mode 100644 fckeditor/editor/skins/office2003/images/toolbar.collapse.gif create mode 100644 fckeditor/editor/skins/office2003/images/toolbar.end.gif create mode 100644 fckeditor/editor/skins/office2003/images/toolbar.expand.gif create mode 100644 fckeditor/editor/skins/office2003/images/toolbar.separator.gif create mode 100644 fckeditor/editor/skins/office2003/images/toolbar.start.gif create mode 100644 fckeditor/editor/skins/silver/fck_dialog.css create mode 100644 fckeditor/editor/skins/silver/fck_dialog_ie6.js create mode 100644 fckeditor/editor/skins/silver/fck_editor.css create mode 100644 fckeditor/editor/skins/silver/fck_strip.gif create mode 100644 fckeditor/editor/skins/silver/images/dialog.sides.gif create mode 100644 fckeditor/editor/skins/silver/images/dialog.sides.png create mode 100644 fckeditor/editor/skins/silver/images/dialog.sides.rtl.png create mode 100644 fckeditor/editor/skins/silver/images/sprites.gif create mode 100644 fckeditor/editor/skins/silver/images/sprites.png create mode 100644 fckeditor/editor/skins/silver/images/toolbar.arrowright.gif create mode 100644 fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif create mode 100644 fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif create mode 100644 fckeditor/editor/skins/silver/images/toolbar.collapse.gif create mode 100644 fckeditor/editor/skins/silver/images/toolbar.end.gif create mode 100644 fckeditor/editor/skins/silver/images/toolbar.expand.gif create mode 100644 fckeditor/editor/skins/silver/images/toolbar.separator.gif create mode 100644 fckeditor/editor/skins/silver/images/toolbar.start.gif create mode 100644 fckeditor/fckconfig.js create mode 100644 fckeditor/fckeditor.afp create mode 100644 fckeditor/fckeditor.asp create mode 100644 fckeditor/fckeditor.cfc create mode 100644 fckeditor/fckeditor.cfm create mode 100644 fckeditor/fckeditor.js create mode 100644 fckeditor/fckeditor.lasso create mode 100644 fckeditor/fckeditor.php create mode 100644 fckeditor/fckeditor.pl create mode 100644 fckeditor/fckeditor.py create mode 100644 fckeditor/fckeditor_php4.php create mode 100644 fckeditor/fckeditor_php5.php create mode 100644 fckeditor/fckpackager.xml create mode 100644 fckeditor/fckstyles.xml create mode 100644 fckeditor/fcktemplates.xml create mode 100644 fckeditor/fckutils.cfm create mode 100644 fckeditor/license.txt diff --git a/fckeditor/_documentation.html b/fckeditor/_documentation.html new file mode 100644 index 0000000..2bfcc25 --- /dev/null +++ b/fckeditor/_documentation.html @@ -0,0 +1,38 @@ + + + + + FCKeditor - Documentation + + + + +

+ FCKeditor Documentation

+

+ You can find the official documentation for FCKeditor online, at + http://docs.fckeditor.net/.

+ + diff --git a/fckeditor/_samples/_plugins/findreplace/fckplugin.js b/fckeditor/_samples/_plugins/findreplace/fckplugin.js new file mode 100644 index 0000000..6d25ed0 --- /dev/null +++ b/fckeditor/_samples/_plugins/findreplace/fckplugin.js @@ -0,0 +1,38 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This is the sample plugin definition file. + */ + +// Register the related commands. +FCKCommands.RegisterCommand( 'My_Find' , new FCKDialogCommand( FCKLang['DlgMyFindTitle'] , FCKLang['DlgMyFindTitle'] , FCKConfig.PluginsPath + 'findreplace/find.html' , 340, 170 ) ) ; +FCKCommands.RegisterCommand( 'My_Replace' , new FCKDialogCommand( FCKLang['DlgMyReplaceTitle'], FCKLang['DlgMyReplaceTitle'] , FCKConfig.PluginsPath + 'findreplace/replace.html', 340, 200 ) ) ; + +// Create the "Find" toolbar button. +var oFindItem = new FCKToolbarButton( 'My_Find', FCKLang['DlgMyFindTitle'] ) ; +oFindItem.IconPath = FCKConfig.PluginsPath + 'findreplace/find.gif' ; + +FCKToolbarItems.RegisterItem( 'My_Find', oFindItem ) ; // 'My_Find' is the name used in the Toolbar config. + +// Create the "Replace" toolbar button. +var oReplaceItem = new FCKToolbarButton( 'My_Replace', FCKLang['DlgMyReplaceTitle'] ) ; +oReplaceItem.IconPath = FCKConfig.PluginsPath + 'findreplace/replace.gif' ; + +FCKToolbarItems.RegisterItem( 'My_Replace', oReplaceItem ) ; // 'My_Replace' is the name used in the Toolbar config. diff --git a/fckeditor/_samples/_plugins/findreplace/find.gif b/fckeditor/_samples/_plugins/findreplace/find.gif new file mode 100644 index 0000000000000000000000000000000000000000..81915f4f636678b1d7d0d8e05dc7df0eb443787f GIT binary patch literal 595 zcmbu6TThY!0EQpp8=oA64+Oyg# zqRrg0F1oI*f6!H%TlpjMH`G;Of1zj3^?UKWqq&iu-jamG37|rdP#aJQw5?&E#@vS~ zgU(MwD;gVuiS$QOA4t8Y^N>{CcO>7E*r#KkBHQE)Qyxy%3$ik*oiTTF+pP- zLj*$@LkN8kofmB@S~sEt(T>K7&`4|>=M3g7h9G)BdLKFuq7AhcLC>Fm)Z_g>-rs@> z6ym2-r=K8xDl40nYOPwllCO-7-`-MY<%Y_Xy!`T-W~DOOuh}XL^@(#zVI+0)dMzg> zdoC-3av=8k;GF-gFPaFqHaj!7Hg62bHp!wm?6T1kSz1+QdgVrg>8Rzq*?UQ+l+Mf6 zrp1uZA-inu?t)Srj(LJz!^+i>bbDLYa%f&(6?e|m_76(OUysY_{LWb9%g>`1{)HbD XJhgmz@Xp~cW%}gRx7Q)HiVJ@M=o4@Q literal 0 HcmV?d00001 diff --git a/fckeditor/_samples/_plugins/findreplace/find.html b/fckeditor/_samples/_plugins/findreplace/find.html new file mode 100644 index 0000000..546867a --- /dev/null +++ b/fckeditor/_samples/_plugins/findreplace/find.html @@ -0,0 +1,172 @@ + + + + + + + + + +
+ This is my Plugin! +
+ + + + + + + + + +
+   + + + + +
+   +
+ +
+ + diff --git a/fckeditor/_samples/_plugins/findreplace/lang/en.js b/fckeditor/_samples/_plugins/findreplace/lang/en.js new file mode 100644 index 0000000..df00c16 --- /dev/null +++ b/fckeditor/_samples/_plugins/findreplace/lang/en.js @@ -0,0 +1,33 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * English language file for the sample plugin. + */ + +FCKLang['DlgMyReplaceTitle'] = 'Plugin - Replace' ; +FCKLang['DlgMyReplaceFindLbl'] = 'Find what:' ; +FCKLang['DlgMyReplaceReplaceLbl'] = 'Replace with:' ; +FCKLang['DlgMyReplaceCaseChk'] = 'Match case' ; +FCKLang['DlgMyReplaceReplaceBtn'] = 'Replace' ; +FCKLang['DlgMyReplaceReplAllBtn'] = 'Replace All' ; +FCKLang['DlgMyReplaceWordChk'] = 'Match whole word' ; + +FCKLang['DlgMyFindTitle'] = 'Plugin - Find' ; +FCKLang['DlgMyFindFindBtn'] = 'Find' ; diff --git a/fckeditor/_samples/_plugins/findreplace/lang/fr.js b/fckeditor/_samples/_plugins/findreplace/lang/fr.js new file mode 100644 index 0000000..9aba775 --- /dev/null +++ b/fckeditor/_samples/_plugins/findreplace/lang/fr.js @@ -0,0 +1,33 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * French language file for the sample plugin. + */ + +FCKLang['DlgMyReplaceTitle'] = 'Plugin - Remplacer' ; +FCKLang['DlgMyReplaceFindLbl'] = 'Chercher:' ; +FCKLang['DlgMyReplaceReplaceLbl'] = 'Remplacer par:' ; +FCKLang['DlgMyReplaceCaseChk'] = 'Respecter la casse' ; +FCKLang['DlgMyReplaceReplaceBtn'] = 'Remplacer' ; +FCKLang['DlgMyReplaceReplAllBtn'] = 'Remplacer Tout' ; +FCKLang['DlgMyReplaceWordChk'] = 'Mot entier' ; + +FCKLang['DlgMyFindTitle'] = 'Plugin - Chercher' ; +FCKLang['DlgMyFindFindBtn'] = 'Chercher' ; diff --git a/fckeditor/_samples/_plugins/findreplace/lang/it.js b/fckeditor/_samples/_plugins/findreplace/lang/it.js new file mode 100644 index 0000000..414081a --- /dev/null +++ b/fckeditor/_samples/_plugins/findreplace/lang/it.js @@ -0,0 +1,33 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Italian language file for the sample plugin. + */ + +FCKLang['DlgMyReplaceTitle'] = 'Plugin - Sostituisci' ; +FCKLang['DlgMyReplaceFindLbl'] = 'Trova:' ; +FCKLang['DlgMyReplaceReplaceLbl'] = 'Sostituisci con:' ; +FCKLang['DlgMyReplaceCaseChk'] = 'Maiuscole/minuscole' ; +FCKLang['DlgMyReplaceReplaceBtn'] = 'Sostituisci' ; +FCKLang['DlgMyReplaceReplAllBtn'] = 'Sostituisci tutto' ; +FCKLang['DlgMyReplaceWordChk'] = 'Parola intera' ; + +FCKLang['DlgMyFindTitle'] = 'Plugin - Cerca' ; +FCKLang['DlgMyFindFindBtn'] = 'Cerca' ; diff --git a/fckeditor/_samples/_plugins/findreplace/replace.gif b/fckeditor/_samples/_plugins/findreplace/replace.gif new file mode 100644 index 0000000000000000000000000000000000000000..ac0d8937007716a878b350a1a75ddf1f4beaca83 GIT binary patch literal 326 zcmZ?wbhEHb6krfwxXQpF=F7lm$Y5WtDP<@aINek)OitBR!nsDrFj_&@OjyNPLbHuQ zwU$Apj6u1SL8*j6sgOY_pFu8_K{ka!Hi1DVmO&pZE|^UFQ2hui_-Gf#$jh9#KZjrmGkTwbK9%)cy6XGo$|rZol`W| w$d$>7%}K~#fzgRWN84ZAOv+48U)hY=NiA1c#7WDEHP^sZ#e}6K+>yZ=0Go + + + + + + + + +
+ This is my Plugin! +
+ + + + + + + + + + + + + + +
+ + +
+ + +
  +
+   +
+ + diff --git a/fckeditor/_samples/_plugins/samples/fckplugin.js b/fckeditor/_samples/_plugins/samples/fckplugin.js new file mode 100644 index 0000000..b2ac6de --- /dev/null +++ b/fckeditor/_samples/_plugins/samples/fckplugin.js @@ -0,0 +1,73 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This is a sample plugin definition file. + */ + +// Here we define our custom Style combo, with custom widths. +var oMyBigStyleCombo = new FCKToolbarStyleCombo() ; +oMyBigStyleCombo.FieldWidth = 250 ; +oMyBigStyleCombo.PanelWidth = 300 ; +FCKToolbarItems.RegisterItem( 'My_BigStyle', oMyBigStyleCombo ) ; + + +// ##### Defining a custom context menu entry. + +// ## 1. Define the command to be executed when selecting the context menu item. +var oMyCMCommand = new Object() ; +oMyCMCommand.Name = 'OpenImage' ; + +// This is the standard function used to execute the command (called when clicking in the context menu item). +oMyCMCommand.Execute = function() +{ + // This command is called only when an image element is selected (IMG). + // Get image URL (src). + var sUrl = FCKSelection.GetSelectedElement().src ; + + // Open the URL in a new window. + window.top.open( sUrl ) ; +} + +// This is the standard function used to retrieve the command state (it could be disabled for some reason). +oMyCMCommand.GetState = function() +{ + // Let's make it always enabled. + return FCK_TRISTATE_OFF ; +} + +// ## 2. Register our custom command. +FCKCommands.RegisterCommand( 'OpenImage', oMyCMCommand ) ; + +// ## 3. Define the context menu "listener". +var oMyContextMenuListener = new Object() ; + +// This is the standard function called right before sowing the context menu. +oMyContextMenuListener.AddItems = function( contextMenu, tag, tagName ) +{ + // Let's show our custom option only for images. + if ( tagName == 'IMG' ) + { + contextMenu.AddSeparator() ; + contextMenu.AddItem( 'OpenImage', 'Open image in a new window (Custom)' ) ; + } +} + +// ## 4. Register our context menu listener. +FCK.ContextMenu.RegisterListener( oMyContextMenuListener ) ; diff --git a/fckeditor/_samples/adobeair/application.xml b/fckeditor/_samples/adobeair/application.xml new file mode 100644 index 0000000..aec3023 --- /dev/null +++ b/fckeditor/_samples/adobeair/application.xml @@ -0,0 +1,34 @@ + + + net.fckeditor.air.samples.sample01 + FCKeditor Sample Application 1.0 + 1.0 + FCKeditor AIR Sample + This is a sample AIR application including FCKeditor. + Copyright (C) 2003-2008 Frederico Caldeira Knabben + + _samples/adobeair/sample01.html + FCKeditor AIR Sample + standard + false + true + true + true + true + 100 + 80 + 820 + 600 + 600 400 + + FCKeditor/AIR Samples/Sample01 + FCKeditor/AIR Samples + + _samples/adobeair/icons/16.png + _samples/adobeair/icons/32.png + _samples/adobeair/icons/48.png + _samples/adobeair/icons/128.png + + false + false + diff --git a/fckeditor/_samples/adobeair/icons/128.png b/fckeditor/_samples/adobeair/icons/128.png new file mode 100644 index 0000000000000000000000000000000000000000..88cb983ab56ce22f5aa52ef2e354b53ddc796472 GIT binary patch literal 1242 zcmeAS@N?(olHy`uVBq!ia0vp^4Is?H3?#oinD`S&v7|ftIx;YR|DNig)WpGT%PfAtr%uP&B4N6T+sVqF1Y6Dbc6W|l#`m4w1&*qLln>zlze)uzA z{#TRj?-iB5=V$$_)cg1K!=Ix||LmFeYiji0^IQHty7cenk-s+%|4bA74+e|gmstbN z5h)4s3xQWASux45_%4Bp{c-AmG4rsE3*JM=K*!hhs#60^?!>2L|39 z%nVE!2V{Y=%|UXK+kgBm=b9q=Z2{5NMi$lvTrA z4WKmwys`(JrU2d5(Z(n6MEMxdIu~#D0^!F%cPv`UT+vYoGUyUx(-8}hL9ZAXmB8kd zG6)NT%$WuB0|&?)Us;6{o;N_+quDx&>cF4>0c zTk#DUKmtdycae#e@^KtUM@ z)x-nV)KSKu-3tm37wd+`H4g(0LA_8uku4C!TqJwI@9isrS3rxDZZY~?IoBQl@^>m< z!ooc=VEKl%Rw)T$i@-@_3-b)az2{X`Ty}y|-jCG15}z68I9(|KMvCBjhATBE96x%c ztN_VXurFBRWag)+1#)XgIYW?E%2Q#XMbkiXElcm}gq*0J0kU66=73x4p7xg@`wudn zfe8nNUEdr$@4Epgun_&S^{Q}1O@jxMPHpCNxj?NMQuIx9M#CRnb51bE)1qvPY zba4!+n3McxrrH4qu7t#dgoN2Y=XqS+e~C46!q5NlcYkl*BjPK#Ih=FyD%CDt4qkh^ z|NFP``yRH}TA*a7S5{#XtjtQ9%Pu#LUD% zK@b+h#mHcP#wKQqU~Fh0Y@~sK3TvPusDXhp=#1KR4Z0m4)!j2amcn*$XsW2kch5ag zl%21_M}9T{`^P%UYK(6!=l`7Fb2b1pedVe~r4%z8R004n03rgw%*NF#k%$nW-@-ZF z!@;Hi1cWHJeMd*XPVjs{5CM+1oweosweB9Z7ysxxs9cFe1b}cuOh^ZXt1nTU7b~i*oglDxZBvZ^*m0igkx;--Ol5dZ)H07*qoM6N<$f)xVz A00000 literal 0 HcmV?d00001 diff --git a/fckeditor/_samples/adobeair/icons/48.png b/fckeditor/_samples/adobeair/icons/48.png new file mode 100644 index 0000000000000000000000000000000000000000..262ebccc51936f01d1237cf663fbafb6e861f3ef GIT binary patch literal 563 zcmeAS@N?(olHy`uVBq!ia0vp^1|ZDA3?vioaBc-sEa{HEjtmUzPnffIy#(?lOI#yL zg7ec#$`gxH85~pclTsBta}(23gHjVyDhp4h+5i>V2l#}z{+^%ptHxX~OZ~6P^ z(w{xk{vKQQGhhDS*AKr}RQ{S8{byy>uO{1nH;??R)cf7z`)6~3kcwML3Bn4TADCDKnD-laIxr|SG)PIXbh7mvVq#!qxuT%rWFjCU z#=xO4$&`Ub;G`4-Q%4Ff17piFM-Jl{i9nEGBJZIUAaM@fGa3+j4wSZm(uZVDfFvY% z&wyx->1=LGL{wVVFe)?@WC|P+Eo5MH*~HespcKjM!0_;%WF3<3@;rW+Qsg2b;JXjldkKgKLP3uKh#GDe6?5hhOr zS?F;Ms4GJ%f+GuP|A14J*(exUqBrGdfe`T-8Z`K;-!Oacxsq*xpy z8$|tiSwQR=Ev-9ed?bP0l+XkKTHU&p literal 0 HcmV?d00001 diff --git a/fckeditor/_samples/adobeair/package.bat b/fckeditor/_samples/adobeair/package.bat new file mode 100644 index 0000000..d0a6b29 --- /dev/null +++ b/fckeditor/_samples/adobeair/package.bat @@ -0,0 +1,26 @@ +@ECHO OFF + +:: +:: FCKeditor - The text editor for Internet - http://www.fckeditor.net +:: Copyright (C) 2003-2008 Frederico Caldeira Knabben +:: +:: == BEGIN LICENSE == +:: +:: Licensed under the terms of any of the following licenses at your +:: choice: +:: +:: - GNU General Public License Version 2 or later (the "GPL") +:: http://www.gnu.org/licenses/gpl.html +:: +:: - GNU Lesser General Public License Version 2.1 or later (the "LGPL") +:: http://www.gnu.org/licenses/lgpl.html +:: +:: - Mozilla Public License Version 1.1 or later (the "MPL") +:: http://www.mozilla.org/MPL/MPL-1.1.html +:: +:: == END LICENSE == +:: + +:: adt -package SIGNING_OPTIONS air_file app_xml [file_or_dir | -C dir file_or_dir | -e file dir ...] ... + +"C:\Adobe AIR SDK\bin\adt" -package -storetype pkcs12 -keystore sample01_cert.pfx -storepass 123abc FCKeditor.air application.xml -C ../../ . diff --git a/fckeditor/_samples/adobeair/run.bat b/fckeditor/_samples/adobeair/run.bat new file mode 100644 index 0000000..9a8bac8 --- /dev/null +++ b/fckeditor/_samples/adobeair/run.bat @@ -0,0 +1,26 @@ +@ECHO OFF + +:: +:: FCKeditor - The text editor for Internet - http://www.fckeditor.net +:: Copyright (C) 2003-2008 Frederico Caldeira Knabben +:: +:: == BEGIN LICENSE == +:: +:: Licensed under the terms of any of the following licenses at your +:: choice: +:: +:: - GNU General Public License Version 2 or later (the "GPL") +:: http://www.gnu.org/licenses/gpl.html +:: +:: - GNU Lesser General Public License Version 2.1 or later (the "LGPL") +:: http://www.gnu.org/licenses/lgpl.html +:: +:: - Mozilla Public License Version 1.1 or later (the "MPL") +:: http://www.mozilla.org/MPL/MPL-1.1.html +:: +:: == END LICENSE == +:: + +:: adl [-runtime runtime-directory] [-pubId publisher-id] [-nodebug] application.xml [rootdirectory] [-- arguments] + +"C:\Adobe AIR SDK\bin\adl" application.xml ../../ diff --git a/fckeditor/_samples/adobeair/sample01.html b/fckeditor/_samples/adobeair/sample01.html new file mode 100644 index 0000000..0f702b1 --- /dev/null +++ b/fckeditor/_samples/adobeair/sample01.html @@ -0,0 +1,58 @@ + + + + + FCKeditor - Adobe AIR Sample + + + + + + + +

+ FCKeditor - Adobe AIR Sample +

+
+ This sample loads FCKeditor with full features enabled. +
+
+ + + diff --git a/fckeditor/_samples/adobeair/sample01_cert.pfx b/fckeditor/_samples/adobeair/sample01_cert.pfx new file mode 100644 index 0000000000000000000000000000000000000000..ba81d1ecd1d5a8b1e7e31238d174cecd9e578946 GIT binary patch literal 2514 zcmY+Ec{CJ?7sqGUkg;c*LGcg@)ciNb{Vqco*Z;N-a{@v66v!Ti0{M=SgK_>J|2{4T5ky<| z4WoQ!tz6}*M6~+Y4afsdJO~55&!?)_=OK|ea^K0kIaz> zuTel|jN9{gx26c?NyvGz$ku{ks>p}PsEOjK2`3trBJFU{KKIalmMh&(7?hYfZ)1L< zw=w|i1vyn7)Sh~y)Aar6157fD6@N>*@h34T>DnjB(f;>MF>*LqyFb>=C+Bfp>1SPx zvkFtzalL<0(WR(@xv{=qR&-R{lpo?-j8B=!Pwgf-h@$_JsituD*RK~f00@s=zo1X>} ze7&vXzoa8%1P%n)`sJl)sm(E-Sp^dhYO1H@Xz)-#9U9`QE~Ab%Rri5Z|Vnk0!WNp2tFhwDZ((8H9XX z>j>J(Tl+aRZ(C-gy^$H(^OcE-l-d1y5-2m($Z`*WwCv6RU-ElCe0qkUE{qzGQw7#e zmk*L92=AwmuXyC=c^HRS@sU*`T?~if%qs>Ny63Co&WaWls%tZ!x`cN3F8@@NxiMJ% zIIfkV?yu1f-McPy>)Ap`SzR=JgD9-p_@_mrA5B?fh>*}3!8x~pfK1MY#KxC*A=tb7 zldAPg5xF_~h6c0SYkcxF{{?pmy6ph40rfT4z~c`BwBn{S)udG z2&szRDRXoHhd-eCa$PQR?y$d+$bs+N#EV+iYs#UwBr`m^FSD$Xj4M~E z*e}xdd!`pK&U%2acD?X^BEz-WZI6XhdDHOIz~5CQCFJ{;jzsdS`OaHXANv&jIYhBl z_Q$ULiV(1vu`*lRWp1cx`Dsk;vj>d0@pj4$)?H~%P#w{a7JN4k+1fu9yY~L1vuC1j z1EeV2w})`Yz#WOY?N}&m^0~#qw{UEgbBk6wl~o-Z_!hSTOttT<5a>60WYV;&JSwL~ zHzYG%JaU%eD*2J65btBkm+kxlC}>Nr{4`<8pu5^yv$-z|lpU2~WZyT{LCyJ&%K?z8 z#82koPQ*)Td%WxhdpaSSj;hISgJby@4HR+e0%N9!G7|i)FVQY3CDmYs9Z3wTQgkcdWmtU@?6E zm=Z3i0zrZRDj3wiNJvEx!f)+)-AzhG6{CjLJf)(cf>p=-HYV3ULmaSt3V0tw0q=l- zfZuK7-vsy{t-}7+>e7Uk99F+tRaSoHq43MY4V=9fum7#pXbSk{jiPKMsVE^ zzX>>lO3<%?#&>b0n)81v?2ywpn7*`pr*qRH!$@4v!1#9YVC2Rhpu?hQ(-wDMt4;EdV$zRiHrNDaFUN31Ie%*FbYFuUc(7Z#LNSC*Y) zJc3-aa|1q+-#~&kM`c!=to98>WLc+Z)<+7$W0vnud3juIRjn;G0NNuXU9TKORD{=u z&MTDVB`6nevYur;uy?~`uhB^J9k-Vk-+*K?>ZK5bpKb&f=f?~uzV$gPx$!d6e2IKFHKSAS{RkvM@MLH zDgiMT+Pw2srdj4rAI{jbZEQ8s?FoqcClZ5I7Z9OuxKHEV_)bVhPU=Z!SpOafDwXT-cel%tmT}VGk5Qr>C?FlC8Yostujr8GajgLNI z1GQ%AZ-zxdd&TVtn?E!$L`iaNE_kj~`ng9-$<~(~&2KW%XS5Vz+ZyoZX%?xTJJx!K zMC~LBpQa>TDZOBAJOtXjU?*UFaMg3A9N{NW=wn|ta3b{RHRX+B{@OZn@()bO1-PMe z`r>`tq3M`K&4FROWMG2pxc_wI!{nseu%IBSJNH7I&hu5WY>DfkjAK0ITMxsoR!+ZQ zXzT?p7b-8{m511YntENkOA%4G?QYEm+_~KsHz6_ECA}`?*iXQ} zZF;TC?teDZE&jA^Wm(d2AbUMJMQiW=Xl1nWXM3tpcj-o(yf-^+RV=S{^a?9!wjUpU z2w1rKcH8VKAjzcmIRqk)haePvjk$gPUVC@I-G%Wse0CAfTh6xsI zfOr;EN@?bgc1&sqaCEHYkFZKlWgF-lH%9|4!UP!Mq7F+!wk3EH8<~Q4G^@E^7=v9W zlkxyc8-o3`_IvNZ0B(;@mL_Q!ntApbwSo`+WG`!L+C%FnJb`!C)NyNYJw10!)J}J- z^I+ZU$+wN!;V#QR>P;fk6YEEte#zWNXuCJ1D{3f_^K^VAzms3hZBFE(*)FsI&(5zk zbMY7*3K@|{SkQfvI5u6bM1Bz#n+=Yc=^=!@|D_aH=1Q8r)IkWtrW_eoL>H$gA O9ty}A%SihB_5T9(vyLqQ literal 0 HcmV?d00001 diff --git a/fckeditor/_samples/afp/fck.afpa b/fckeditor/_samples/afp/fck.afpa new file mode 100644 index 0000000..99d0306 --- /dev/null +++ b/fckeditor/_samples/afp/fck.afpa @@ -0,0 +1 @@ + diff --git a/fckeditor/_samples/afp/fck.afpa.code b/fckeditor/_samples/afp/fck.afpa.code new file mode 100644 index 0000000..f101541 --- /dev/null +++ b/fckeditor/_samples/afp/fck.afpa.code @@ -0,0 +1,165 @@ + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This is the class definition file for the sample pages. + * + + DEFINE CLASS fckeditor AS custom + cInstanceName ="" + BasePath ="" + cWIDTH ="" + cHEIGHT ="" + ToolbarSet ="" + cValue="" + DIMENSION aConfig(10,2) + +&& ----------------------------------------------------------------------- + FUNCTION fckeditor( tcInstanceName ) + LOCAL lnLoop,lnLoop2 + THIS.cInstanceName = tcInstanceName + THIS.BasePath = '../../../FCKeditor/' + THIS.cWIDTH = '100%' + THIS.cHEIGHT = '200' + THIS.ToolbarSet = 'Default' + THIS.cValue = '' + FOR lnLoop=1 TO 10 + FOR lnLoop2=1 TO 2 + THIS.aConfig(lnLoop,lnLoop2) = "" + NEXT + NEXT + RETURN + ENDFUNC + + +&& ----------------------------------------------------------------------- + FUNCTION CREATE() + RETURN(THIS.CreateHtml()) + ENDFUNC + +&& ----------------------------------------------------------------------- + FUNCTION CreateHtml() + LOCAL html + LOCAL lcLink + + HtmlValue = THIS.cValue && HTMLSPECIALCHARS() + + html = [
] + IF THIS.IsCompatible() + lcLink = THIS.BasePath+[editor/fckeditor.html?InstanceName=]+THIS.cInstanceName + + IF ( !THIS.ToolbarSet == '' ) + lcLink = lcLink + [&Toolbar=]+THIS.ToolbarSet + ENDIF + +&& Render the LINKED HIDDEN FIELD. + html = html + [] + +&& Render the configurations HIDDEN FIELD. + html = html + [] +CHR(13)+CHR(10) + +&& Render the EDITOR IFRAME. + html = html + [] + ELSE + IF ( AT("%", THIS.cWIDTH)=0 ) + WidthCSS = THIS.cWIDTH + 'px' + ELSE + WidthCSS = THIS.cWIDTH + ENDIF + + IF ( AT("%",THIS.cHEIGHT)=0 ) + HeightCSS = THIS.cHEIGHT + 'px' + ELSE + HeightCSS = THIS.cHEIGHT + ENDIF + + html = html + [] + ENDIF + + html = html + [
] + + RETURN (html) + ENDFUNC + + +&& ----------------------------------------------------------------------- + FUNCTION IsCompatible() + LOCAL llRetval + LOCAL sAgent + + llRetval=.F. + + sAgent= LOWER(Request.ServerVariables("HTTP_USER_AGENT")) + + IF AT("msie",sAgent) >0 .AND. AT("mac",sAgent)=0 .AND. AT("opera",sAgent)=0 + iVersion=VAL(SUBSTR(sAgent,AT("msie",sAgent)+5,3)) + llRetval= iVersion > 5.5 + ELSE + IF AT("gecko",sAgent)>0 + iVersion=VAL(SUBSTR(sAgent,AT("gecko/",sAgent)+6,8)) + llRetval =iVersion > 20030210 + ENDIF + ENDIF + RETURN (llRetval) + ENDFUNC + +&& ----------------------------------------------------------------------- + FUNCTION GetConfigFieldString() + LOCAL sParams + LOCAL bFirst + LOCAL sKey + sParams = "" + bFirst = .T. + FOR lnLoop=1 TO 10 && ALEN(this.aconfig) + IF !EMPTY(THIS.aConfig(lnLoop,1)) + IF bFirst = .F. + sParams = sParams + "&" + ELSE + bFirst = .F. + ENDIF + sParams = sParams +THIS.aConfig(lnLoop,1)+[=]+THIS.aConfig(lnLoop,2) + ELSE + EXIT + ENDIF + 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 diff --git a/fckeditor/_samples/afp/sample01.afp b/fckeditor/_samples/afp/sample01.afp new file mode 100644 index 0000000..2450e0d --- /dev/null +++ b/fckeditor/_samples/afp/sample01.afp @@ -0,0 +1,56 @@ +<% + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This page lists the data posted by a form. + * +%> + + + + FCKeditor - AFP Sample 1 + + + + + +

FCKeditor - AFP - Sample 1

+ This sample displays a normal HTML form with an FCKeditor with full features enabled. +
+
+<% + + sBasePath="../../../fckeditor/" && Change this to your local path + + lcText=[

This is some sample text. You are using ] + lcText=lcText+[FCKeditor.] + + oFCKeditor = CREATEOBJECT("FCKeditor") + oFCKeditor.fckeditor("FCKeditor1") + oFCKeditor.BasePath = sBasePath + oFCKeditor.cValue = lcText + + ? oFCKeditor.Create() + +%> +
+ +

+ + diff --git a/fckeditor/_samples/afp/sample02.afp b/fckeditor/_samples/afp/sample02.afp new file mode 100644 index 0000000..e1baf72 --- /dev/null +++ b/fckeditor/_samples/afp/sample02.afp @@ -0,0 +1,113 @@ +<% + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This page is a basic Sample for FCKeditor integration in the AFP script language (www.afpages.de) + * +%> + + + + FCKeditor - AFP Sample 2 + + + + + + + +

FCKeditor - AFP - Sample 2

+ This sample shows the editor in all its available languages. +
+ + + + + +
+ Select a language:  + + +
+
+
+<% + + 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 sample text. You are using ] + lcText=lcText+[FCKeditor.] + + oFCKeditor.BasePath = sBasePath + oFCKeditor.cValue = lcText + + ? oFCKeditor.Create() + +%> +
+ +

+ + diff --git a/fckeditor/_samples/afp/sample03.afp b/fckeditor/_samples/afp/sample03.afp new file mode 100644 index 0000000..a219e74 --- /dev/null +++ b/fckeditor/_samples/afp/sample03.afp @@ -0,0 +1,91 @@ +<% + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This page is a basic Sample for FCKeditor integration in the AFP script language (www.afpages.de) + * +%> + + + + FCKeditor - AFP Sample 3 + + + + + + + +

FCKeditor - AFP - Sample 3

+ This sample shows how to change the editor toolbar. +
+ + + + + +
+ Select the toolbar to load:  + + +
+
+
+<% + + 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 sample text. You are using ] + lcText=lcText+[FCKeditor.] + + oFCKeditor.BasePath = sBasePath + oFCKeditor.cValue = lcText + + ? oFCKeditor.Create() + +%> +
+ +

+ + diff --git a/fckeditor/_samples/afp/sample04.afp b/fckeditor/_samples/afp/sample04.afp new file mode 100644 index 0000000..a9d62d7 --- /dev/null +++ b/fckeditor/_samples/afp/sample04.afp @@ -0,0 +1,98 @@ +<% + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This page is a basic Sample for FCKeditor integration in the AFP script language (www.afpages.de) + * +%> + + + + FCKeditor - AFP Sample 4 + + + + + + + +

FCKeditor - AFP - Sample 4

+ This sample shows how to change the editor skin. +
+ + + + + +
+ Select the skin to load:  + + +
+
+
+<% + + 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 sample text. You are using ] + lcText=lcText+[FCKeditor.] + + oFCKeditor.BasePath = sBasePath + oFCKeditor.cValue = lcText + + ? oFCKeditor.Create() + +%> +
+ +

+ + diff --git a/fckeditor/_samples/afp/sampleposteddata.afp b/fckeditor/_samples/afp/sampleposteddata.afp new file mode 100644 index 0000000..d1ab578 --- /dev/null +++ b/fckeditor/_samples/afp/sampleposteddata.afp @@ -0,0 +1,63 @@ +<% + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This page lists the data posted by a form. + * +%> + + + + FCKeditor - AFP - Samples - Posted Data + + + + + +

FCKeditor - Samples - Posted Data

+ This page lists all data posted by the form. +
+ + + + + + + + +<% + lcForm=REQUEST.Form() + lcForm=STRTRAN(lcForm,"&",CHR(13)+CHR(10)) + + FOR lnLoop=1 TO MEMLINES(lcForm) + lcZeile=ALLTRIM(MLINE(lcForm,lnLoop)) + IF AT("=",lcZeile)>0 + lcVariable=UPPER(ALLTRIM(LEFT(lcZeile,AT("=",lcZeile)-1))) + lcWert=ALLTRIM(RIGHT(lcZeile,LEN(lcZeile)-AT("=",lcZeile))) + lcWert=Server.UrlDecode( lcWert ) + lcWert=STRTRAN(lcWert,"<","<") + lcWert=STRTRAN(lcWert,">",">") && ... if wanted remove/translate HTML Chars ... + + ? [] + ENDIF + NEXT +%> +
Field NameValue
]+lcVariable+[ =
]+lcWert+[
+ + diff --git a/fckeditor/_samples/asp/sample01.asp b/fckeditor/_samples/asp/sample01.asp new file mode 100644 index 0000000..533e91c --- /dev/null +++ b/fckeditor/_samples/asp/sample01.asp @@ -0,0 +1,62 @@ +<%@ codepage="65001" language="VBScript" %> +<% Option Explicit %> + +<% ' You must set "Enable Parent Paths" on your web site in order this relative include to work. %> + + + + + FCKeditor - Sample + + + + + +

+ FCKeditor - ASP - Sample 1 +

+
+ This sample displays a normal HTML form with an FCKeditor with full features enabled. +
+
+
+ <% +' 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. +Dim sBasePath +sBasePath = Request.ServerVariables("PATH_INFO") +sBasePath = Left( sBasePath, InStrRev( sBasePath, "/_samples" ) ) + +Dim oFCKeditor +Set oFCKeditor = New FCKeditor +oFCKeditor.BasePath = sBasePath +oFCKeditor.Value = "

This is some sample text. You are using FCKeditor." +oFCKeditor.Create "FCKeditor1" + %> +
+ +

+ + diff --git a/fckeditor/_samples/asp/sample02.asp b/fckeditor/_samples/asp/sample02.asp new file mode 100644 index 0000000..5907c97 --- /dev/null +++ b/fckeditor/_samples/asp/sample02.asp @@ -0,0 +1,108 @@ +<%@ CodePage=65001 Language="VBScript"%> +<% Option Explicit %> + +<% ' You must set "Enable Parent Paths" on your web site in order this relative include to work. %> + + + + + FCKeditor - Sample + + + + + + +

FCKeditor - ASP - Sample 2

+ This sample shows the editor in all its available languages. +
+ + + + + +
+ Select a language:  + + +
+
+
+<% +' 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. +Dim sBasePath +sBasePath = Request.ServerVariables("PATH_INFO") +sBasePath = Left( sBasePath, InStrRev( sBasePath, "/_samples" ) ) + +Dim oFCKeditor +Set oFCKeditor = New FCKeditor +oFCKeditor.BasePath = sBasePath + +If Request.QueryString("Lang") = "" Then + oFCKeditor.Config("AutoDetectLanguage") = True + oFCKeditor.Config("DefaultLanguage") = "en" +Else + oFCKeditor.Config("AutoDetectLanguage") = False + oFCKeditor.Config("DefaultLanguage") = Request.QueryString("Lang") +End If + +oFCKeditor.Value = "

This is some sample text. You are using FCKeditor." +oFCKeditor.Create "FCKeditor1" +%> +
+ +

+ + diff --git a/fckeditor/_samples/asp/sample03.asp b/fckeditor/_samples/asp/sample03.asp new file mode 100644 index 0000000..8e65080 --- /dev/null +++ b/fckeditor/_samples/asp/sample03.asp @@ -0,0 +1,92 @@ +<%@ CodePage=65001 Language="VBScript"%> +<% Option Explicit %> + +<% ' You must set "Enable Parent Paths" on your web site in order this relative include to work. %> + + + + + FCKeditor - Sample + + + + + + +

FCKeditor - ASP - Sample 3

+ This sample shows how to change the editor toolbar. +
+ + + + + +
+ Select the toolbar to load:  + + +
+
+
+<% +' 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. +Dim sBasePath +sBasePath = Request.ServerVariables("PATH_INFO") +sBasePath = Left( sBasePath, InStrRev( sBasePath, "/_samples" ) ) + +Dim oFCKeditor +Set oFCKeditor = New FCKeditor +oFCKeditor.BasePath = sBasePath + +If Request.QueryString("Toolbar") <> "" Then + oFCKeditor.ToolbarSet = Server.HTMLEncode( Request.QueryString("Toolbar") ) +End If + +oFCKeditor.Value = "

This is some sample text. You are using FCKeditor." +oFCKeditor.Create "FCKeditor1" +%> +
+ +

+ + diff --git a/fckeditor/_samples/asp/sample04.asp b/fckeditor/_samples/asp/sample04.asp new file mode 100644 index 0000000..8c21068 --- /dev/null +++ b/fckeditor/_samples/asp/sample04.asp @@ -0,0 +1,98 @@ +<%@ CodePage=65001 Language="VBScript"%> +<% Option Explicit %> + +<% ' You must set "Enable Parent Paths" on your web site in order this relative include to work. %> + + + + + FCKeditor - Sample + + + + + + +

FCKeditor - ASP - Sample 4

+ This sample shows how to change the editor skin. +
+ + + + + +
+ Select the skin to load:  + + +
+
+
+<% +' 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. +Dim sBasePath +sBasePath = Request.ServerVariables("PATH_INFO") +sBasePath = Left( sBasePath, InStrRev( sBasePath, "/_samples" ) ) + +Dim oFCKeditor +Set oFCKeditor = New FCKeditor +oFCKeditor.BasePath = sBasePath + +If Request.QueryString("Skin") <> "" Then + oFCKeditor.Config("SkinPath") = sBasePath + "editor/skins/" & Server.HTMLEncode( Request.QueryString("Skin") ) + "/" +End If + +oFCKeditor.Value = "

This is some sample text. You are using FCKeditor." +oFCKeditor.Create "FCKeditor1" +%> +
+ +

+ + diff --git a/fckeditor/_samples/asp/sampleposteddata.asp b/fckeditor/_samples/asp/sampleposteddata.asp new file mode 100644 index 0000000..44c86c8 --- /dev/null +++ b/fckeditor/_samples/asp/sampleposteddata.asp @@ -0,0 +1,56 @@ +<%@ CodePage=65001 Language="VBScript"%> +<% Option Explicit %> + + + + + FCKeditor - Samples - Posted Data + + + + + +

FCKeditor - Samples - Posted Data

+ This page lists all data posted by the form. +
+ + + + + + + + + <% + Dim sForm + For Each sForm in Request.Form + %> + + + + + <% Next %> +
Field NameValue
<%=sForm%>
<%=Server.HTMLEncode( Request.Form(sForm) )%>
+ + diff --git a/fckeditor/_samples/cfm/sample01.cfm b/fckeditor/_samples/cfm/sample01.cfm new file mode 100644 index 0000000..ce9113e --- /dev/null +++ b/fckeditor/_samples/cfm/sample01.cfm @@ -0,0 +1,63 @@ + + + + + + + + FCKeditor - Sample + + + + + +

FCKeditor - ColdFusion - Sample 1

+ +This sample displays a normal HTML form with a FCKeditor with full features enabled. +
+ +
+ + + + + + + + +
+ +
+ + + +
+ diff --git a/fckeditor/_samples/cfm/sample01_mx.cfm b/fckeditor/_samples/cfm/sample01_mx.cfm new file mode 100644 index 0000000..4828741 --- /dev/null +++ b/fckeditor/_samples/cfm/sample01_mx.cfm @@ -0,0 +1,67 @@ + + + + + + + + FCKeditor - Sample + + + + + +

FCKeditor - ColdFusion Component (CFC) - Sample 1

+ +This sample displays a normal HTML form with a FCKeditor with full features enabled. +
+ +
+ + + +
This sample works only with a ColdFusion MX server and higher, because it uses some advantages of this version.
+ +
+ + + // 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", "#basePath#fckeditor" ) ; + fckEditor.instanceName = "myEditor" ; + fckEditor.value = '

This is some sample text. You are using FCKeditor.

' ; + fckEditor.basePath = basePath ; + fckEditor.Create() ; // create the editor. +
+ + +
+ +
+ + + +
+ diff --git a/fckeditor/_samples/cfm/sample02.cfm b/fckeditor/_samples/cfm/sample02.cfm new file mode 100644 index 0000000..26c70c1 --- /dev/null +++ b/fckeditor/_samples/cfm/sample02.cfm @@ -0,0 +1,110 @@ + + + + + + + + FCKeditor - Sample + + + + + + +

FCKeditor - ColdFusion - Sample 2

+This sample shows the editor in all its available languages. +
+ + + + + +
+ Select a language:  + + +
+
+
+ + + + + + + + + + + + + + + + +
+ + + + +
+ diff --git a/fckeditor/_samples/cfm/sample02_mx.cfm b/fckeditor/_samples/cfm/sample02_mx.cfm new file mode 100644 index 0000000..51afccc --- /dev/null +++ b/fckeditor/_samples/cfm/sample02_mx.cfm @@ -0,0 +1,114 @@ + + + + + + + + FCKeditor - Sample + + + + + + +

FCKeditor - ColdFusion Component (CFC) - Sample 2

+This sample shows the editor in all its available languages. +
+
+ +
This sample works only with a ColdFusion MX server and higher, because it uses some advantages of this version.
+ +
+ + + + + + +
+ Select a language:  + + +
+
+
+ + + // 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", "#basePath#fckeditor" ) ; + fckEditor.instanceName = "myEditor" ; + fckEditor.value = '

This is some sample text. You are using FCKeditor.

' ; + fckEditor.basePath = basePath ; + if ( isDefined( "URL.Lang" ) ) + { + fckEditor.config["AutoDetectLanguage"] = false ; + fckEditor.config["DefaultLanguage"] = HTMLEditFormat( URL.Lang ) ; + } + else + { + fckEeditor.config["AutoDetectLanguage"] = true ; + fckEeditor.config["DefaultLanguage"] = 'en' ; + } + fckEditor.create() ; // create the editor. +
+ +
+ + + + +
+ diff --git a/fckeditor/_samples/cfm/sample03.cfm b/fckeditor/_samples/cfm/sample03.cfm new file mode 100644 index 0000000..758b48c --- /dev/null +++ b/fckeditor/_samples/cfm/sample03.cfm @@ -0,0 +1,95 @@ + + + + + + + FCKeditor - Sample + + + + + + +

FCKeditor - ColdFusion - Sample 3

+ This sample shows how to change the editor toolbar. +
+ + + + + +
+ Select the toolbar to load:  + + +
+
+
+ + + + + + + + + + + + + + +
+ + + + +
+ diff --git a/fckeditor/_samples/cfm/sample03_mx.cfm b/fckeditor/_samples/cfm/sample03_mx.cfm new file mode 100644 index 0000000..1ad28af --- /dev/null +++ b/fckeditor/_samples/cfm/sample03_mx.cfm @@ -0,0 +1,95 @@ + + + + + + + FCKeditor - Sample + + + + + + +

FCKeditor - ColdFusion Component (CFC) - Sample 3

+ This sample shows how to change the editor toolbar. +
+
+ +
This sample works only with a ColdFusion MX server and higher, because it uses some advantages of this version.
+ +
+ + + + + + +
+ Select the toolbar to load:  + + +
+
+
+ + + // 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", "#basePath#fckeditor" ) ; + fckEditor.instanceName = "myEditor" ; + fckEditor.value = '

This is some sample text. You are using FCKeditor.

' ; + fckEditor.basePath = basePath ; + if ( isDefined( "URL.Toolbar" ) ) + { + fckEditor.ToolbarSet = HTMLEditFormat( URL.Toolbar ) ; + } + fckEditor.create() ; // create the editor. +
+ +
+ + + + +
+ diff --git a/fckeditor/_samples/cfm/sample04.cfm b/fckeditor/_samples/cfm/sample04.cfm new file mode 100644 index 0000000..fa0f643 --- /dev/null +++ b/fckeditor/_samples/cfm/sample04.cfm @@ -0,0 +1,100 @@ + + + + + + + FCKeditor - Sample + + + + + + +

FCKeditor - ColdFusion - Sample 4

+ This sample shows how to change the editor skin. +
+ + + + + +
+ Select the skin to load:  + + +
+
+
+ + + + + + + + + + + + + +
+ + + + +
+ diff --git a/fckeditor/_samples/cfm/sample04_mx.cfm b/fckeditor/_samples/cfm/sample04_mx.cfm new file mode 100644 index 0000000..ac5eb2c --- /dev/null +++ b/fckeditor/_samples/cfm/sample04_mx.cfm @@ -0,0 +1,101 @@ + + + + + + + FCKeditor - Sample + + + + + + +

FCKeditor - ColdFusion Component (CFC) - Sample 4

+ This sample shows how to change the editor skin. +
+
+ +
This sample works only with a ColdFusion MX server and higher, because it uses some advantages of this version.
+ +
+ + + + + + +
+ Select the skin to load:  + + +
+
+
+ + + // 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", "#basePath#fckeditor" ) ; + fckEditor.instanceName = "myEditor" ; + fckEditor.value = '

This is some sample text. You are using FCKeditor.

' ; + fckEditor.basePath = basePath ; + if ( isDefined( "URL.Skin" ) ) + { + fckEditor.config['SkinPath'] = basePath & 'editor/skins/' & HTMLEditFormat( URL.Skin ) & '/' ; + } + fckEditor.create() ; // create the editor. +
+ +
+ + + + +
+ diff --git a/fckeditor/_samples/cfm/sampleposteddata.cfm b/fckeditor/_samples/cfm/sampleposteddata.cfm new file mode 100644 index 0000000..a463a44 --- /dev/null +++ b/fckeditor/_samples/cfm/sampleposteddata.cfm @@ -0,0 +1,68 @@ + + + + + FCKeditor - Samples - Posted Data + + + + + +

FCKeditor - Samples - Posted Data

+ This page lists all data posted by the form. +
+ + + +
+ + + + + + + + + + + + + + + + + + +
Field NameValue
FieldNames#FORM.fieldNames#
#key#
#HTMLEditFormat( evaluate( "FORM.#key#" ) )#
+
+
+ + +
+ + + + diff --git a/fckeditor/_samples/default.html b/fckeditor/_samples/default.html new file mode 100644 index 0000000..23f734f --- /dev/null +++ b/fckeditor/_samples/default.html @@ -0,0 +1,35 @@ + + + + + FCKeditor - Samples + + + + + + + + diff --git a/fckeditor/_samples/html/assets/sample06.config.js b/fckeditor/_samples/html/assets/sample06.config.js new file mode 100644 index 0000000..9edada5 --- /dev/null +++ b/fckeditor/_samples/html/assets/sample06.config.js @@ -0,0 +1,49 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Sample custom configuration settings used in the plugin sample page (sample06). + */ + +// Set our sample toolbar. +FCKConfig.ToolbarSets['PluginTest'] = [ + ['SourceSimple'], + ['My_Find','My_Replace','-','Placeholder'], + ['StyleSimple','FontFormatSimple','FontNameSimple','FontSizeSimple'], + ['Table','-','TableInsertRowAfter','TableDeleteRows','TableInsertColumnAfter','TableDeleteColumns','TableInsertCellAfter','TableDeleteCells','TableMergeCells','TableHorizontalSplitCell','TableCellProp'], + ['Bold','Italic','-','OrderedList','UnorderedList','-','Link','Unlink'], + '/', + ['My_BigStyle','-','Smiley','-','About'] +] ; + +// Change the default plugin path. +FCKConfig.PluginsPath = FCKConfig.BasePath.substr(0, FCKConfig.BasePath.length - 7) + '_samples/_plugins/' ; + +// Add our plugin to the plugins list. +// FCKConfig.Plugins.Add( pluginName, availableLanguages ) +// pluginName: The plugin name. The plugin directory must match this name. +// availableLanguages: a list of available language files for the plugin (separated by a comma). +FCKConfig.Plugins.Add( 'findreplace', 'en,fr,it' ) ; +FCKConfig.Plugins.Add( 'samples' ) ; + +// If you want to use plugins found on other directories, just use the third parameter. +var sOtherPluginPath = FCKConfig.BasePath.substr(0, FCKConfig.BasePath.length - 7) + 'editor/plugins/' ; +FCKConfig.Plugins.Add( 'placeholder', 'de,en,es,fr,it,pl', sOtherPluginPath ) ; +FCKConfig.Plugins.Add( 'tablecommands', null, sOtherPluginPath ) ; +FCKConfig.Plugins.Add( 'simplecommands', null, sOtherPluginPath ) ; diff --git a/fckeditor/_samples/html/assets/sample11_frame.html b/fckeditor/_samples/html/assets/sample11_frame.html new file mode 100644 index 0000000..43a9450 --- /dev/null +++ b/fckeditor/_samples/html/assets/sample11_frame.html @@ -0,0 +1,69 @@ + + + + FCKeditor - Sample + + + + + + +
+ Normal text field:
+ +
+
+ FCKeditor 1: + +
+ FCKeditor 2: + +
+ +
+ + diff --git a/fckeditor/_samples/html/assets/sample14.config.js b/fckeditor/_samples/html/assets/sample14.config.js new file mode 100644 index 0000000..0eeade1 --- /dev/null +++ b/fckeditor/_samples/html/assets/sample14.config.js @@ -0,0 +1,121 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Configuration settings used by the XHTML 1.1 sample page (sample14.html). + */ + +// Our intention is force all formatting features to use CSS classes or +// semantic aware elements. + +// Load our custom CSS files for this sample. +// We are using "BasePath" just for this sample convenience. In normal +// situations it would be just pointed to the file directly, +// like "/css/myfile.css". +FCKConfig.EditorAreaCSS = FCKConfig.BasePath + '../_samples/html/assets/sample14.styles.css' ; + +/** + * Core styles. + */ +FCKConfig.CoreStyles.Bold = { Element : 'span', Attributes : { 'class' : 'Bold' } } ; +FCKConfig.CoreStyles.Italic = { Element : 'span', Attributes : { 'class' : 'Italic' } } ; +FCKConfig.CoreStyles.Underline = { Element : 'span', Attributes : { 'class' : 'Underline' } } ; +FCKConfig.CoreStyles.StrikeThrough = { Element : 'span', Attributes : { 'class' : 'StrikeThrough' } } ; + +/** + * Font face + */ +// List of fonts available in the toolbar combo. Each font definition is +// separated by a semi-colon (;). We are using class names here, so each font +// is defined by {Class Name}/{Combo Label}. +FCKConfig.FontNames = 'FontComic/Comic Sans MS;FontCourier/Courier New;FontTimes/Times New Roman' ; + +// Define the way font elements will be applied to the document. The "span" +// element will be used. When a font is selected, the font name defined in the +// above list is passed to this definition with the name "Font", being it +// injected in the "class" attribute. +// We must also instruct the editor to replace span elements that are used to +// set the font (Overrides). +FCKConfig.CoreStyles.FontFace = + { + Element : 'span', + Attributes : { 'class' : '#("Font")' }, + Overrides : [ { Element : 'span', Attributes : { 'class' : /^Font(?:Comic|Courier|Times)$/ } } ] + } ; + +/** + * Font sizes. + */ +FCKConfig.FontSizes = 'FontSmaller/Smaller;FontLarger/Larger;FontSmall/8pt;FontBig/14pt;FontDouble/Double Size' ; +FCKConfig.CoreStyles.Size = + { + Element : 'span', + Attributes : { 'class' : '#("Size")' }, + Overrides : [ { Element : 'span', Attributes : { 'class' : /^Font(?:Smaller|Larger|Small|Big|Double)$/ } } ] + } ; + +/** + * Font colors. + */ +FCKConfig.EnableMoreFontColors = false ; +FCKConfig.FontColors = 'ff9900/FontColor1,0066cc/FontColor2,ff0000/FontColor3' ; +FCKConfig.CoreStyles.Color = + { + Element : 'span', + Attributes : { 'class' : '#("Color")' }, + Overrides : [ { Element : 'span', Attributes : { 'class' : /^FontColor(?:1|2|3)$/ } } ] + } ; + +FCKConfig.CoreStyles.BackColor = + { + Element : 'span', + Attributes : { 'class' : '#("Color")BG' }, + Overrides : [ { Element : 'span', Attributes : { 'class' : /^FontColor(?:1|2|3)BG$/ } } ] + } ; + +/** + * Indentation. + */ +FCKConfig.IndentClasses = [ 'Indent1', 'Indent2', 'Indent3' ] ; + +/** + * Paragraph justification. + */ +FCKConfig.JustifyClasses = [ 'JustifyLeft', 'JustifyCenter', 'JustifyRight', 'JustifyFull' ] ; + +/** + * Styles combo. + */ +FCKConfig.StylesXmlPath = '' ; +FCKConfig.CustomStyles = + { + 'Strong Emphasis' : { Element : 'strong' }, + 'Emphasis' : { Element : 'em' }, + + 'Computer Code' : { Element : 'code' }, + 'Keyboard Phrase' : { Element : 'kbd' }, + 'Sample Text' : { Element : 'samp' }, + 'Variable' : { Element : 'var' }, + + 'Deleted Text' : { Element : 'del' }, + 'Inserted Text' : { Element : 'ins' }, + + 'Cited Work' : { Element : 'cite' }, + 'Inline Quotation' : { Element : 'q' } + } ; diff --git a/fckeditor/_samples/html/assets/sample14.styles.css b/fckeditor/_samples/html/assets/sample14.styles.css new file mode 100644 index 0000000..cb64d5b --- /dev/null +++ b/fckeditor/_samples/html/assets/sample14.styles.css @@ -0,0 +1,228 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Styles used by the XHTML 1.1 sample page (sample14.html). + */ + +/** + * Basic definitions for the editing area. + */ +body +{ + background-color: #ffffff; + padding: 5px 5px 5px 5px; + margin: 0px; +} + +body, td +{ + font-family: Arial, Verdana, sans-serif; + font-size: 12px; +} + +a[href] +{ + color: #0000FF !important; /* For Firefox... mark as important, otherwise it becomes black */ +} + +/** + * Core styles. + */ + +.Bold +{ + font-weight: bold; +} + +.Italic +{ + font-style: italic; +} + +.Underline +{ + text-decoration: underline; +} + +.StrikeThrough +{ + text-decoration: line-through; +} + +.Subscript +{ + vertical-align: sub; + font-size: smaller; +} + +.Superscript +{ + vertical-align: super; + font-size: smaller; +} + +/** + * Font faces. + */ + +.FontComic +{ + font-family: 'Comic Sans MS'; +} + +.FontCourier +{ + font-family: 'Courier New'; +} + +.FontTimes +{ + font-family: 'Times New Roman'; +} + +/** + * Font sizes. + */ + +.FontSmaller +{ + font-size: smaller; +} + +.FontLarger +{ + font-size: larger; +} + +.FontSmall +{ + font-size: 8pt; +} + +.FontBig +{ + font-size: 14pt; +} + +.FontDouble +{ + font-size: 200%; +} + +/** + * Font colors. + */ +.FontColor1 +{ + color: #ff9900; +} + +.FontColor2 +{ + color: #0066cc; +} + +.FontColor3 +{ + color: #ff0000; +} + +.FontColor1BG +{ + background-color: #ff9900; +} + +.FontColor2BG +{ + background-color: #0066cc; +} + +.FontColor3BG +{ + background-color: #ff0000; +} + +/** + * Indentation. + */ + +.Indent1 +{ + margin-left: 40px; +} + +.Indent2 +{ + margin-left: 80px; +} + +.Indent3 +{ + margin-left: 120px; +} + +/** + * Alignment. + */ + +.JustifyLeft +{ + text-align: left; +} + +.JustifyRight +{ + text-align: right; +} + +.JustifyCenter +{ + text-align: center; +} + +.JustifyFull +{ + text-align: justify; +} + +/** + * Other. + */ + +code +{ + font-family: courier, monospace; + background-color: #eeeeee; + padding-left: 1px; + padding-right: 1px; + border: #c0c0c0 1px solid; +} + +kbd +{ + padding: 0px 1px 0px 1px; + border-width: 1px 2px 2px 1px; + border-style: solid; +} + +blockquote +{ + color: #808080; +} diff --git a/fckeditor/_samples/html/assets/sample15.config.js b/fckeditor/_samples/html/assets/sample15.config.js new file mode 100644 index 0000000..a2f533c --- /dev/null +++ b/fckeditor/_samples/html/assets/sample15.config.js @@ -0,0 +1,92 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Configuration settings used by the XHTML 1.1 sample page (sample14.html). + */ + +// Our intention is force all formatting features to use CSS classes or +// semantic aware elements. + +/** + * Core styles. + */ +FCKConfig.CoreStyles.Bold = { Element : 'b' } ; +FCKConfig.CoreStyles.Italic = { Element : 'i' } ; +FCKConfig.CoreStyles.Underline = { Element : 'u' } ; +FCKConfig.CoreStyles.StrikeThrough = { Element : 'strike' } ; + +/** + * Font face + */ +// Define the way font elements will be applied to the document. The "span" +// element will be used. When a font is selected, the font name defined in the +// above list is passed to this definition with the name "Font", being it +// injected in the "class" attribute. +// We must also instruct the editor to replace span elements that are used to +// set the font (Overrides). +FCKConfig.CoreStyles.FontFace = + { + Element : 'font', + Attributes : { 'face' : '#("Font")' } + } ; + +/** + * Font sizes. + */ +FCKConfig.FontSizes = '1/xx-small;2/x-small;3/small;4/medium;5/large;6/x-large;7/xx-large' ; +FCKConfig.CoreStyles.Size = + { + Element : 'font', + Attributes : { 'size' : '#("Size")' } + } ; + +/** + * Font colors. + */ +FCKConfig.EnableMoreFontColors = true ; +FCKConfig.CoreStyles.Color = + { + Element : 'font', + Attributes : { 'color' : '#("Color")' } + } ; + +FCKConfig.CoreStyles.BackColor = + { + Element : 'font', + Styles : { 'background-color' : '#("Color","color")' } + } ; + +/** + * Styles combo. + */ +FCKConfig.StylesXmlPath = '' ; +FCKConfig.CustomStyles = + { + 'Computer Code' : { Element : 'code' }, + 'Keyboard Phrase' : { Element : 'kbd' }, + 'Sample Text' : { Element : 'samp' }, + 'Variable' : { Element : 'var' }, + + 'Deleted Text' : { Element : 'del' }, + 'Inserted Text' : { Element : 'ins' }, + + 'Cited Work' : { Element : 'cite' }, + 'Inline Quotation' : { Element : 'q' } + } ; diff --git a/fckeditor/_samples/html/assets/sample16.config.js b/fckeditor/_samples/html/assets/sample16.config.js new file mode 100644 index 0000000..840b678 --- /dev/null +++ b/fckeditor/_samples/html/assets/sample16.config.js @@ -0,0 +1,92 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Configuration settings used by the XHTML 1.1 sample page (sample14.html). + */ + +// Our intention is force all formatting features to use CSS classes or +// semantic aware elements. + +/** + * Core styles. + */ +FCKConfig.CoreStyles.Bold = { Element : 'b' } ; +FCKConfig.CoreStyles.Italic = { Element : 'i' } ; +FCKConfig.CoreStyles.Underline = { Element : 'u' } ; + +/** + * Font face + */ +// Define the way font elements will be applied to the document. The "span" +// element will be used. When a font is selected, the font name defined in the +// above list is passed to this definition with the name "Font", being it +// injected in the "class" attribute. +// We must also instruct the editor to replace span elements that are used to +// set the font (Overrides). +FCKConfig.CoreStyles.FontFace = + { + Element : 'font', + Attributes : { 'face' : '#("Font")' } + } ; + +/** + * Font sizes. + * The CSS part of the font sizes isn't used by Flash, it is there to get the + * font rendered correctly in FCKeditor. + */ +FCKConfig.FontSizes = '8/8px;9/9px;10/10px;11/11px;12/12px;14/14px;16/16px;18/18px;20/20px;22/22px;24/24px;26/26px;28/28px;36/36px;48/48px;72/72px' ; +FCKConfig.CoreStyles.Size = + { + Element : 'font', + Attributes : { 'size' : '#("Size")' }, + Styles : { 'font-size' : '#("Size","fontSize")' } + } ; + +/** + * Font colors. + */ +FCKConfig.EnableMoreFontColors = true ; +FCKConfig.CoreStyles.Color = + { + Element : 'font', + Attributes : { 'color' : '#("Color")' } + } ; +/** + * Styles combo. + */ +FCKConfig.StylesXmlPath = '' ; +FCKConfig.CustomStyles = + { + } ; + +/** + * Toolbar set for Flash HTML editing. + */ +FCKConfig.ToolbarSets['Flash'] = [ + ['Source','-','Bold','Italic','Underline','-','UnorderedList','-','Link','Unlink'], + ['FontName','FontSize','-','About'] +] ; + +/** + * Flash specific formatting settings. + */ +FCKConfig.EditorAreaStyles = 'p, ol, ul {margin-top: 0px; margin-bottom: 0px;}' ; +FCKConfig.FormatSource = false ; +FCKConfig.FormatOutput = false ; diff --git a/fckeditor/_samples/html/assets/sample16.fla b/fckeditor/_samples/html/assets/sample16.fla new file mode 100644 index 0000000000000000000000000000000000000000..e37ff4efa61822fcb4f6bda1b1ee164668f38b9b GIT binary patch literal 57856 zcmeI53z%G0mG5^|rIUaJg0vVOLIDB^2Bwn^5F{uuAqM3UNmSHPNzz?OBALc4t|bI26fChJ<8{6P!V4!zCi&WD5?AVuf5kfr%rWORcH9V z`TQ;?Ila!>>#_Get_A|^3;Ry+E za)|8|PF+88{P|emlCYV7+e1B^7e;_v!!9*t&&T1RFKcu8#<<7sCw=|SkH4!D66}NN z+$oWB3AroZVf(vnT=7ncj}Fy}tX+jka9rL~{`tB?zqq#&5)|)`mqyMN)O?Eo&@Cms{3S^ay>UpgL}>R;BkKe+PsV_f-?{l)8i4`=(!u3K(+>2q$_ z`sG7kb<8D;S1wPvr2H>?$LiZY`=h;;hq?W`+utjj;03^4%OdhHw0}i@U*jy=HEJLK z?_!eg?T@sTE&g{#7zhjSKm9#peBn}RPySbunG1gP?3lQuL@S`pW+luBOO|e4yJOSv z$o3Vh*A34)xRbq_`yZV6p@%JT};!p;|^ijT{=PS zsG>l+rKUpYwd401csb5JR)5!5@WnS&*27Xf%}Y&=0&wivvj^K9gh1^k{!~%wZY#=5Nhm~QAr3hOmuF8O^d9SWdToHDJHDM#X+rs*=jA*_!Y=VD#Si#k1 zWQT#cOQ^-O z!_z0M^ER`C@}AGQat54P8IEh!^i-_Um{5<(CChB*UyJ3W?{Te~dTEOnS-HGb(Q#C( zj&An70L!V3RhxPGdrYf*Y?nrA>4{otgjyvJn6{L9HNbaJ&+XE9RJo1Bu?G4&{zacu z`^d{Sfk(>}+W66B`DdCJT!h5-aHX~U<$3u_{`HKoYQna-kWy~POV)=A(Q*ZO4~M1v z-IQyqw_2l*`I3BTB3q-nqTcLY)V!88I{|4(X_1y@1!pV@Zlr7at?i z^Y$oJH9Y9v(6^ZO+d$bjTB80a$fQBaQ2nWrmK}&bYFSu9XIe#tcTyQC8Agd8$$XA_ zAsL8@dh+WOPZR%<5YqA|u@E+&%t?{Osls?hAdKcI@Ua=fhZ|cWyGp_J=}!Mh?Bjx``GE4H{@Q9cVpaIoezu zPaSw8Dd$-$sI<4t8d;8`Bl%pw76gnw6t?zu9xru3f=wv<_` zY+_m;-&)oc(4IP>XZYMgGp?)9rd^zkoLf`NnU#-h)!1qF^KA4CQQ!3{PwjN($m6wr zFEiRLlwost5oPjuz2<3a^Ln1#TB=@jYM$A^TE&^^MQBZP*635ER_R4=KA3v{DQG=- z{I$?Fe7m9Aw0UFKHOt{;|5dALaMz?sURy8BWHY~*RhH5UUvo9hQnkL?0e-nzC-xX5 ztMh0<;0dj^?&klwJ)VO8?O7i{(-iH^4UFp*-L$He)Pq)=mu{g?tMuz^s(|L{vnl@^ z>K^r*-<6_P=QY_%Y#8@Y&3mIa?8jP6(+K0|?6LD3)7Q1dFN@)jR9l3if%xY0u5q8u34E#wN)&9H877O(Ekg^x5$H;GGm7T_C zE!P&=H3ik$Oe2~0DYTl;=h;~)+xkY_3DCIUliy|JSL*Yn)nYeK)P&i!wZ?Uem-W^* z=%y{-Qy2^j*)N=UPobNpV!2il1J1`nnPp0K?A#Z${#6v0cla1lSjV2)TEkvETKg~B zg_7;#K24W6d|YcD-TY130)?Q7DbRDuIfa<&3NnxSYggm8e_WI zKaWr<&9*{(ZP^7VwM6F;I*urDmNrgHlpt^rFFco4T~%erVPl@5(d^ z<-13P_!lGUDXqTIOPSmKZ*pU`dDF~t^jbwbYvk34sW!^2I={7q-Mlx(VZ}CiuIwsp zn)$?(^J%fg`0Q$McTjWD9ulwM&8=}o@h0+6w3K3&oteknMce$oqL7zm2zxr zt96c%`KE|!s<@Mty=1Y@dWx}DQAlHEOB5>g@y_vL+*wR%?Cz`~&e`OHni<+$=+OC$ zOQ+&>8WrmF&^S8OZN3n9JE?oAoSoJQ%TkX~tK05q^o`OyvzLDTVoKC|Pu2|Y3boT= z<(?ep2_9j6J){;juPu2-w~-(p)92$~aYQ#g$F+J`H$C}?vdV0(c@JgMS(;V$uIcIM z*hL#E1|&a|zS13o&OSTAIpEBz5QBv^34C+gAOhp3~X#J>2n_l)l!xS>A^V^Tkp;>>PiJ z@o*en1Fb!%7cZG;FQLo)r8N8NEhnwpy6D}H*>igh)B{H*5&5(>u-H+G(%nY$d_|}p zX5L$hVR4*oP##66iALQx-}V_!)?1G*$KmqsM{(s=r@n1#w^Co~*54=Z`<=b@;nvr+ zFU^^}|L0M%i)WVhXnXN^Ukmg;21~;Ba3|@B6O1{f9hz?byc{1b>>AY;cuYRB?1>jM zvybzgRpxb?;c3Q`&&mrc#WrbKy8Z69ZnX zKdz$&ac^*gt$ee-T+-Ir*Nc&P+?i@=)aWz=^nLmB(n@?+sc&1PDS1dQ{+R8A#aLDH zj$SnQ8Z@)feyn5HGb_~|V3+>(u#5z8U%dDJw?4d>v4Gl5a*aCCU8L40KfN3ytcf&x zl@-UE`F884aeN!1r(9{f*+WT}`9*1D?xt%Mvc*-pm$9&~a8PSY<+rdYf7?oQ6{Xrj z+p27F^jnciNtX`#F+j%ZJVLUFaxH?Cs-q+&2M1c0aqO5ME zyF=YPuWR3s)k^WDn@-Khv~KQr*H(I;&^lA-ruSm==AN}5Tplkkp-jFjp4qF^irrSJ z`AR2$x^BGncW0mSm8Gn&Jzd+olSN8#qqCMc>W|o7mhL{sd&A?bNJ@3=tX0u^XZb#B zO-~crowm{pth3k4;&De~n0vgM84uAHV>t_RlTv@~G%8Qn8%sKR=|$R^$^4)#7U_}(IdvQU~2Eo+W(F_ugB z5u#4>zS1nIn-}Y;N43P}@k>}*v2^wq_cz~>l25nYp?_G`#Bs!J9S41sP)Mpjh1!fCGSx~X*SwzWSy`#?)M$W)9tr0g*%L;c+=Sz_b=Xbj$sq5>PmjrS;vHS zDvj2~crnpFg`!rMK2Ykvy=YxWG-wbF+Mbl3;OUUakLQ&lPq+To>iwD(HRw_3x%ey| zPaNP}z&N9;v)Px9DcakQDQBjXd0EOCDdkM=kVKv+Jr^xe{_Mm%m*?&0C!WD1W@ z+UqRsy?2f#i}6l9lpIS{c+$UQ!OmL7pQULQo86bH$>(g$KdyB~+&QX@uUYMEqrs$f zweIQ_Mpap@boaK?{49<$;>g#N&4Z?S5vXY%G|fvuP4l2>UIuEK2Tk*GP}AJVG@ES0 zH21rzhG|wtk!qSx2Q|$N)2w_=bHg;B3u>B6rW+h2XFFo`%Z3&8I%K1*jCp5cEk#nO(&{M7mYJ0 z^qLGcSy?htM@79HG?`AQ44X_R^fJ(7I-xhY?4W7B&TBN7G-sxZsxs3FeZE(4uqjk+ zWEE@#p=uN>Rl_vzb;#w4pYimFVrdfD~XaaxTtIywro4r2x;G(=`m zWx8mML7{KS(1y_0WT>fW5)JCfxLQSUA;1y65tzn~8 ze}>ve5tv_a(e+-&T7d0p5G1EN5WyehOQ5kBQXJ@EsRvVe- zrfL2OXtZP+VV!E4)kcxoG^>pwYMRwX5jD*+ouOsZnS0BD$207xjaFZWnoOqw=#I=d zX>?98cGO0z*&cyMZM4$3Z~2beXr;N?^>W}b)2t~(GMzO45LPS3Skjzi$4s-@$W)D) zX0=g7O|#}^rnzaFzXzI3C(UXjV{RtR&TN|1kD{z;RzHfUX_n~>Et!t4j^>Gcax`d& z*^BJ**kL1@d0j*^(+SlPZDr%2=4O`fXj4?V_nv4vp!2PsWaMVUCjr-A7Hd<+J7HySAD@Sd#(iFmqF=k`88pSk^**Lh@ zHIJF*y{>u8G;3}aZDpEOg{aCjt5I%OqclzPZJ^0?s)E`md7V)8qhvava(+|QOqyMl zX_o0sGa14h56eiVQxzuZ|#K(%~{F)*u*qMMm!&CQ~%OtbQhvZh%XS&hJuRqGo{Hv-LSM7T<5GM%HzbdH*4 zOqH0UD$^`m-OF#Y)h@CRZ(VEom3Bo8cEr~(=n_F`a#JVCN0X9s7q1@{NoBiVc~Z>% zl~hgJ@|@U0Q{hcVlP9tG(?lLB>lNnx{~b=JQpTmrKnJ zGRN0cGnG(<)KTM96Z{o_PN6wJPQru0@tP%1vp4fhV#g%z^63{zE7>*C`%vQU(Kbp` z2{XfzXRKPhV`#(XmBZV&Zx~r;F9#qu3R}rbqAitRuMCO>Szqx@7FDEt1`uQW< zhd0*GI&Gl7X2*t&L-hq`EvRqbuxWVh<{cy3>*v(x&7U_oFfcf_{naQ6 z0BS5nm_AM!O71B*eua!Th@fJ-=+a-PSzjPt3S%Q?^Id>ZG|ImLS+@FLEO zIahE#gYy#3m7J?MpUL?w&S!I8%K045=W;%e^DjA{&-nt*7jj<4xteng=UUDo&SB05 z=Q_^yoEtb_#CbWV-i@WVGmUU=<}9}x#e3v`LnS=;@;bB25bgtc_Yv!-y<;DUCKDqzge+k~@~nRT z9K$SR?!folso5RR^dfn!|H3&OxB zHL)4^So0X5a=n|$%USR`oWVrq3*Zi`PRNr&nCn!BN25hj4y#VclgP`dMR;N@rVCb` zkS9?YB^J4UmvDzBC58|@sc`8@UqgD}kS7sXoa#_{OUhx@33(FX&8bCrJd;M@ zf>uJQ$&=Uxa;o6+#61i=27D*5<_u9vq)J9)#o%P;cX%xF*T8%n@EyPtf$x_-X9%HA z(pycR6Vc~nPb$N|VXE6i$YIqP@+2zg)YrrPE4W_){08u)z?*?JX9(d{B;7?)B_ks5 zd{;tL>30AxPw-U9J3}PB(d5M>VhCIPay%$MSGr);8S*5=o$An?-=RrKJnt}E_TJCq zBGCK!@2GqI=$og7bHh1}%2jlAI$s$0aPx4jM}N=tg7A+a{A}Ot&HnKD@bmCDVb6l_ zx$qxLn}6E3AbdC6bW8J=eVSd~N+5VsKNHOVWI+FDf2fDM7>#f5=SSxE^BDU5Gi^K_ zxJcn(W_SY<{p=ux@Xl~#fA~HV(eH<6YnHJ7)nR$X=B@80ILK=@BzQLPUEqfSuLahe zfuTOJR5Bu(obTsU>6P&B1#SXf4_qO6X9(eTl3qemB_ks5d@qMM7vg0=EySJ%{1RQM z<_rw~Bpqe)PK4Dj7eIU`{BwZA37#r>XNaU%l2kD!5jn)KOTij&0C*=2e-7{#V9gmK z%RMAjG9vQM_jLH*1@Q&IR|0neH%ZhO{z<*@1mrj&_eXJDc3EEy4b=ldr7zk&Zt zz(Z(h!G*w@GsL7n!cxhI$UC3l%ix!#7361<*&UL1hRAvyNp!wMMBXpev-)t~D}hG< zKbv698R#%6sge5Z>-jugP zlQQ0lCsEglxC5IAl6F|lWjqNZXNe_lXIW1f&Zl?|t4_$1*wS*U!&zuk3p=bjAy1-T zIkgO*O`ei=SapUxiJ`?4oy(!@u`1bGu?Bd;eVsUnveU${e) zQbL|oxO6Ue8HeUWxs)|p^#9)bK%5(pnXLi-3%~fw$G>$N8$>5?K3AjsLE)ir+`x_d z*fZ8L;0QL7PVVROAXfSZ_1pH)`Qd??c>S5Aev^^@Jz-`)cW^=&4R`d1Z-?)2zFVsP zohib5`q^3fDy!?S_S-hVbHkj+gfH8Q{}K==i>uzt}WeuBui!eL4|gyqQz zGs9)1*v98WILg7;OYlKj<^kaCz}ph+bB3Iy67Gli3v0%oCbmi@fL@pVNFx3n@b|F4 z3#h#MoPjxICVvB0KR2CXS5YdN06JaPp%=?x)d{hj$_7_g;(1(N2V4*QSD+^6cPH5A z3?V4j7eK0nPjI!7E6kkODwzN}UA9JxOV^RW?Z5$`rbsnsV9AwOSi~hFO8wH|*^uOW z4y#VclaO+19qy09-K1zY0q;n#<_ydYVG*g45s`PkS0(-xz*oQ|cp9+J8JM>xmP**c zm1c{PO_k%#=Sd(XN>)j7hh4z;0>74EU(Tzm-&vb(;p)p=h49yjt&$0l=(2ODgmj$` zyeq*IRZeH1gC~|sIE}0SFr8xm6;~A#lmLT)5_Ks!2z)B=$-rg6Wx$#(h4gvlE_*-NI`<#KXACkgDB|L_!UvkBOme?zq0EsSp zThj3vV2wNkwaDmmh7i7;SSsN^xRUnBb`WfpOdusnRyr;Peif+R{6Ku7>Qhf#H%2y-#eV2aEDbV zuy345?9BS5!@q#^IfIw4OYFQ+;@HAy+FI)OD-B9WJ0K8~ahkjFz9=@URTg<#DY zxSIltk}4Sy13BNj6945uJsluu5y}}t_)uc0glo8p5lUja|UEdijm`uT`9i+rk$%x21pTm=q zoWrUUxMP$^Ncm+E&L=nFf>kHvNzAaFT82B5ltYu28iuq)!gW;;`D+oXPYV~cl8PZu zDkyM8?wAg%PRN}ZsotX`n_oB%M>f%V^~pP@GMTxb_;i22-KslI6RLyk-?0i@he71x zK2q)!=@+DZSIqa@zwe9ZmqfAe&*RR>CT2#8xHpnWq`d#36e;bd@u#S}`e6}%5W@)< ztU4i2Vgzw&89s`PCFRhhm5?VDE}ctIWpG$^LY|bQid|~3tBmyf#{!DDq#x5s8eh)9~VHUUka+u(k)wfmHV6_vc`H! zXRQ105_=^RK&Q)21S?K}xA#6kTq^W|uY#PKB3N}oo|L4DTv9FE zp-CwrPbyqGm*7&mjzcS9E+rC!fl~!F{(lU(6}UISK4*xEo)4*_?ccD@0*=E;P-%A5UV)@%eYM5iELCl*^|bDH=;-Bf>me8lPHB#zX8`jz;!E71Nw&( ztT_X7{ghP6h#}OS@6Cz$Qs9S?9|67_SaSw`Iw60{PEAxbH!aOvD~%VIA!smSXjr1m#jX=~(LPq=m(&%~U>xth#) zMB(ez)ZKckO(9lU2+&!@I<}2cdUrv*cSmPw=gNd-!2>IPtLy zn?n_QGUuf5^L}oP{*3br5@47QU(^cbZk}bmJFaWK5suK%{}|3Q#B&173ng_p59k~o z*GTqw*z0)i=PLZ6b_IXgj3@m?ho z&{hV{5W)qCr4ml&>P=CetBqVSX-ooA>X*Q8Vwf|5n$2I6U|+^ytZ`*<62yNuD=Htc zvjRz1sPxM_QqrSY(0>ai!8sJ5&lw2gnfx!gimMH=#e7@ zCx`nq$EV(8CU_nuYQiX}EzG6Be*r!PsF+uChRE_ok}4UIj^TV|cy*F@Sak+0nMmAv z_C!x|_*byV2^?0PkSCG1Q_Jv;N!nr68A9+R9v1UNPkJX(|45#n2FgpnmSCSVgzz?! zWSmO)2v;BD3Ouo~A(yV$HTBCoQquPl{4wzTh}E2dSwSLIf)hii`(+XS8ad&DRVU<0 zEIpn2UAXRr>vrHhz%M6gQWDRT=;TiQc;b2&P#&Sm&cgR=&Oo?MER~E%S>H;cRzwcv zLBbtYoscKtUQR7TcQ=PsXUJWZTa{imhn|JQsuS{Jk*8B-fUrBB6F;9MrtIjwA5(Mu zBfqW3{nJx_d%&&C_34p%=5OFhgcrMhUwq8^ZVdKE#2hZCUkZ0vbwZxR^wp{3!Atuh zt6RqCzkm3rNbUaK2_>QwB(`lPZxZMOz5)hjORyre)cs2Sq5 zGI}-l5Gj&V-yhGPC+yn_VF%iWl2`89v}W^0^~rzW=Mt~8!Io-QVy*3O#lFQpmXhKR zt%Uf=r9HM==z)+JfufGx0M0h+{+6Fs%+Qk)9Q{12qT|g77Oi_&IB0#P?fc5clttAj z*%Ax$SCrLx*j+CS-eQ02q4=`H39Vxqck`E%{WjIpkNmptXws_bS915?e?KwPh)qpy zbyO-gp(Xuyl}h!Nr_Vo&xO4bPl?HR%BiTqB2#?j%fK&Bz5v_Ia3k$-B7GS5Fr-qID z7VT*s^w7-a^xrSKsQIS{Z`*g^Zx`)u9{k5&H9vX(qLJ`{Ka5oV^xH+Dvg)CkzrXQM zi{Af-*EbtK`$==rHNSgexa_`FVbSdm*2DDQ%?^ti`=*2gADR*t4c%7_cinT#zD2(c zzo-mUS4>|to5!7Rt-OB5qE+F@DXX|2w`gB;Y3 zXm(im!$Yyg)ZbA11)p7b;DP<&3)3p$PBK~eky~+;IXu!4-oMCxR`Y6{?po}udp8SM zLFn%7+op%`x4@ejGHcF2gTeAzSSlHjQeTau-8hSzQ@{sss#Ab}N$dO?`R@a3&cKae zNJo%V$%qug`EG{4!Ebz~QPINHfqiglU{G#%ZbSQ7QY9lI|AFJVk2sYbfI2<^{1pZK z3hFklIFVxC3;%!8 zZl4F9Ogr8RJP#Xsv1`u25(?5Prp2tjxl*O6vR}Rq*`rYYHDpf&UWyIp0`;8zUjS>) zfSW>k0!fvOh$82E9c?fGaXN4w@Xgp%&>q;AqCBZ^`2q;@IklAe6DIObQ*&{aGkuYz zk`a-2D^JH;rXc@IEb(Zd7q;dMJUxTw9t??HsZ>=&9>VHxq{XJ5%%e5HX~3g^3TvO^ zmvc2|z)~bFgG6LVL@Mp%_oC;A5I+vQ8+c2C|DMuo&VUD!^i$L0M0ES*R)}K|Uj_Ux z;9G#-1-f|68Q98!^c~aVMC#|4uI~phsaM?(yanjxtvLg0R!HA4Jx-+h-^D>jNqjuS z>w(V%ehTQ>*PH>HK>Dc3JCXf0H_^`_?j@>y7Py^XBwj6?o>6lKmgFQo4Hlw8BI0;{ zc_B$h6IG4`ZX+tWGuNB}=Y+J3=C5Q#%Kz%)P)ecRa{^m`z{gOZO+YVp%^BzwkLQs= zE58$w_W<(_3U(pH8;{|69H5KUoPpo35mC=Fc_$+Owo~Ztz|YO04H*Rlb=ySgUqn~U z8F=;@(tGH1Eb|i)IW4;Ggzvk+H&8jj%jroPS#coKk{4s5AFAJlcmzuo& z`R^`_`tt7#QIz;Qtcw}GRV+K0&M>9x^5#41Y z@V!*bv#mJ;KXrigzpUFk5qVcNg4-UB@;9ODn-sE%j*kIr&OlUT5c{Q---*b(o&JgP z-_HP6C6hDgo1SgW8AAApSjeW55t0A9lZkyKeh#>d?pnbcKF^HdS->CA4mD>W{)ei9>Ca|YZC^-8K_M7Hak?{I840&yM2UI=vewcplAD$W+fQpt!Uy1n)! z-}!rd=^~gs+nO^_Onm5RChtV11)sn;U&J|X0lowHFF=hEHv={6uQ>yKh@@ANRLO`; z3!MC1h{xiG8-OPOuSoC}DZSec;UvmcB z50;-ps$@jEhTHFb$W0->yaf0$eEVGC#GRTm;1?vl)}{qcWLn^teGo6DZNEY$8dlvc zYtF!^2kDg-ADl?}7cm`pEroi{iQJS2{^v==ET9*=<_!2Zq_cOvq=42$1?8jR^Ejs%`2sPudckdX_=Zmv1CUpUQ&nKkUY*w8%g z-k=YSrX-2eH=99_Oep-uRN`E@FG3Qmk`76=q_} zQhIbKgPQ*MF)<>ptQ1hqrAOgMMXI(TI$HpCfhh3d29`g?{H z_I8gZmPKV6uW=q+_mbsIne51nk`=hO#yN8R|4)sh_Dv(x?@x(_JNH<@^%Ztq-(WWZ z)?;oz+27`{Kek-lvu6(;#*{zQZZd*eQZLe9XCZf2xWMjk46_FxKff36cfeH{Fg5R0 z+aK5Zfq~8+!sz&kiF&K1-aj9r50jmdK45O2lQ^RM5v2IptU8ax#=&GYbyUz0t^tJC z)y1xHd}|rHeJ&yYK!7y)rvsve_`4q;d(g0{k8<|@u?LqRzmf$zed^!>%DW32w0$%| zmY9T|{39l%k1t41$(o(YqYp!DC!DXh4{7Ryl={GorcLOn*ylLfK0zBlG;$G~+qtWz zyXBYX+-)D@(g%~;KXxk%#82pI%2oKlOX)K)@l#9$=2zahQ!N|3qG9zsHm#i$1Wr7CyDQp3_)DY2pWzk&)fo zJ}OwA-YW`8Cicc8Rf-(le8oS|vLC$w6nTMqf+FMdwTy$wxMG|5d`XO%sz_yIwUJ9?tv za$@9g@*d=?^Wwz#@Um?A^Go$Yl$E8d9&Nteb+jz?v0frlUVCrzi}2PIGY^)}X<53R zIw=~T%C!G9Jn%}E%#^eAY1CfwTZguWS*iU~PpbKNKGKWc_76R21e^F1=$$=RBb~f< zg7LUC$Li)`+Gh97hLyDR`OM_9x|YWFZo2Z1-461K!v)1zR%vwarm0w}*2rpY(B`vo z&ZcPTb;)mdWVLCFuG%co>_MNgT4P>Rr}l;D8e6>W1FZ5!-Ih?>+lR+vpD4`&x<$Na z&?~iVq1N1GHeaB>r4QqE)1uz1k51_WuhOP?xq(PNl8rK1{Y#^9Z=S0$v-jSYeXM>z z<{yfhn$2eAE%{96*+VR294UMzkv{DujiqSN&HwVqu9&$E+iu0GTg=V{t!*B4G5)0X z5cd#QdL}7;vU#XDHkSHmw>DN8{Ilz7HN`zy$s+Nots_b=t=j%MaOKb;=9Na)PBXz} zw4i3^YKizMdF!#IzR|fY<5;IM$>KIXAF7Xfo=PuOZz(<(Cx6dAj94mX=Um2}0hD~M z_eiXER?ll`=hElyI%`ujivBALYO^Y9dN@m3!sR-C=iykv*f)coX>R&Va6Z8=s~U%M*x ziY^gw{^YdB*yi^_}Bd{knI3t1O;s{)`r#rHIu{Q$FL<2WjJHxUC-_R`&fkL-Uc@ z*Z67^<1ej?dTCXC*t&P0*J|$y)vy$=I*$=u=GvuFclHIXkYwpNHo7GWvx!M*>tPS9 zG~esJEtjU5Y1=-@BsIoIcQ%G+*|<1N3l!F`Q|B?x_&?gEG(+e%#!WbGmGt!DN%=Z+ zB7f}cC6jI0&e|s5vfXUegT|xF{k6QFFRrcX^gDgnJFUcH4=%-^-u6JRpg(N2^;hZ# zQCBI(cbf&|YaX@V{?3ZqSLur0Ba?_RTD4jvEv+_s@xi!q>N55Xw8r_~^p-y|9rqr( z`ecgDc!R{0&zc$&6=|gcv6F<(bS$~~5W&XfLVMn#Jrta1& zmZM8M0qf&jueQLVEv1-b@0wr^Q`&Xz#TR{s*ZZg~3A-aPXY!t(NA)hgUYhfC_RS8f zw31yr&ju!JozncWn{VsB##KdcZrhWHcfR8M%lA(;Z_C%1HUpbrPffdT`jx3{xYkxK z>P6~1Ce^maiTP*`S^5im>uobaY4lxlU$8Xbce)0ZXfR{d41aMj_k)iQTvD( z#}3cKy$QQaup7TVyg2TV?#FsiaZCGwt*ueWGkRbtD)thGd<~oVTB+yuq9fbsjPs3B zukAEmPT2EH5w&w1x&%*(YntKkRGWrcnx2@j zN2p3Yt+TE;o{gYGkw!5?yIbR|dL~suUyZAbdN9#;F%*qTT6$mW00ws~b< ziw?e8^0jWUO67>VYnit`ENkUBf9o;>DV4R;*ze<)_7w_GT9x+yJ86imCXRg0T<-Dl z?nGvZ(wwz(k89n_D$KSN2PUOy{24%2s?uoGxet%8OCw))@2{rkVJxDSb^tqTUQA2q z$-y`x7oO>x!KbEJ6xSI?NKrA=F@e{_q76U6+sCyt7-Y=V)pRF7^^ zq&0$RrQg6>)Z^l__{qos=K^NJx;h(Aiz&J<9aGLsDf69vn4fqClazDB^tp^OI_HzOu2dSG^S~)#Y39_+*uD(~>OY?{> zQMA-nonoM3)DC7Sdg^O2n&k;vV-)5prL|NiZR%s1ZE2rWKO)i`$mf>6D{bR?X^qi2 zj&@l~&7Ir|LQy}C8QsUCDyk_CEcC0`ehv%WuMqNnXN`?hCx_9MUc{e?K*{&(u2 z9hUYdS>i01Xrv>?<%W(qdYPdN6_I(T(7{xUq-xMK&vwm&rg;&lX&yAqOF&KYplMzPYMKX4 z^Kwwr+{iSWY{N9`-Qf{6&B`dErulSG)7&u4%GWeEO!K**ra82lZg7yC?J!j(D(?b< zdL6RSR>r(DLmQ$FfkxR;q0a|RrW5*H&}2HHmx3nK3Ec~7noGqPG|ek$rD!YDyaLH+ zt1-#02-hZ6&4}JZ!j#=p8dl~z&>W4EDwtF?O!I8l+%V0HTyw)TFLBKc)2uc!%_ZYB z8kp9OSix4q^2=JNGF>#zpwMeF)MRDJNF5dRa?oTtp)zbTozTlblj(%ssxc;2YNM#iG^>|g zuSO}EZgg}MW*x>1OlSzkEUHWwtuZL{Eg9Mn`kD+iRkCC3gC^4n{fILU zn&#`E8S|iNz9vJHW~Yux_VV0xLe)mebV5Jvnj5D1CRf!k&DUkNN}4m%MOB&UgsLBn zXS%VmF{nEB1hZAibfU_1vHF8T-o1V9Tob@3^mQNWTZAl-2$3SC-erV4w~lc zGHaOTw`8bkeoclZ%~^+)Dz#BEolyC+<=ZgLA92}+X;vFWX49-TifGd8sFhj$Xgt$t zU@^;ud&f1Ms4|_^mnZ`I_6%(Zy*5Kfg9X-C z8mG0xj%L*5GVG|0Rx{8XQ5&s}%1|4vW@o64R`Wrv^>KX)xe(Mc8p|{rb<8v$=*(lL zS;Jzan&x9N)HExjNHxs^pr)Bz_#ZOVG*8b^(>yanP4lb_HO=)5HOr~UMHj2!qS#1$&N~tTu|qNt%9s!X$tV<<*LHXc*(x-1fo?{yljZbA040CRkK#HYQ2 zqc&P;+_wsj+GwS@S+rFetsJ${N>d0c##oSMHHv8-vvF{*YaTPrYNKSj$n3T<&8k9F zWt!C}x2up%(|j9fGM!}AM#<}hsvjlO36=Aks%Fycs!X#?XPU_n=6F~}>aeQ9_@)!} zW~UMuKsD}1TiIx(xmmQ8jaKUWRtyXYvxdcpW^H6B@fhkJsFp7=22^bnZDpD@H#5!n zLdrMFnr3BWH3EaW(^0w+XjUV_RYH^L98IQk)HGwN#B7>T465T^yP{AJ(fIU)#4pP8#b>T-oAaq$U42) zMvg&YBgMz+__sn44~?~H*33+JDHddlt*@IP#U{|9@&8cF~F literal 0 HcmV?d00001 diff --git a/fckeditor/_samples/html/assets/sample16.swf b/fckeditor/_samples/html/assets/sample16.swf new file mode 100644 index 0000000000000000000000000000000000000000..9c9c175f83716c70631df30789169d73b10cb754 GIT binary patch literal 12426 zcmd6udt8lK8~3lh?|XNS-C>tV?n-2rbQG0zR#Ix)yMw_LWkQsM9ELrn9Fl~L^GqmH z?INcfa@dh5Jtl@3#$nPhLzpr1U>rKU*ScoLWBz(S?|*OedA|Mnt+lRot;4;#wbv6C zKS3|w6(9#B9|QC*0WcClh=~XQg2g>OJ)^nfC|4^$AHsqom8m(|fmx}^kd{3=o&5kX zFEu+PIXfA$(`L+r>FLSy(g6L`tU1Z)5c;=>n1jajNjsM^$Ju&^nSu>Bf{z4!0I9(1C)RT~<6U_>AiFyi4 z=rPX}1Bf6;^iV1ETb~U%;ygv0P45g4nFEflM_O+UwMh@pn!1bW=N^pJ1J9m4>yhT3 zuN-MDy1dLGi zx)ypla>(Kj3+g0#dtDuy4rgSQJ_-9*le*ja51#9Nd8jpO^?tGX!#25Ed(#J)*2wM; z-Bb4cu0+;{PHM<{IArX<>L1_ay}ZW4`B>dN^_;u^Dmi7PSmG?2GUw*KWiR!P|0~+& z+gE%q%$js@US*`|zuFv6-S;R{T6fGZ>z)36_*a`n!Iif!^u%tO_nY(jf0qnBw8UAQ z<8t%P2W@b!ak5)lT6*Bcix)j&b7r8$zO%(qjC#EA%D9yUE$tURKjfKzKD_4A zOE>SW^BdakUi_hJd|T_iJ!dC8e)4C1&5KUMUdBI{3HN5KHja-8n6GO1barCd>zZ?t zuIXBXifVPR5kz}BN|d*tx3Ku7?b9Xt-=&5ZCyBh;uNf4jfq(Y$XO;~Yzx{2;#~Lfy zrwJ)`1J1>Tj6Nr9c|CvhFYSBu^sZfo8N>7fPb*J6ElFIz>c)oF6<3q&61h+BE-lNK zh^2>z{V029{LpsPqHtKLqa(si2R)|u1^`Y4FVYFjnt{)Q6?npMXoWw36S<4Vivq-r z;z;f$m%<XbFOECodx2!Z8PF*l@tMjpxpsNjjioOdTVdF?1aPtTHrlUDzgF73&31xAibpd@ z(zb$VpS9{Um(F+sut>woJGF@*+RGyzbs8oQ;M78)~L8Yd^eZQxw^7vIHh-OxT zZnRx$PWdX?i2?b|rOTWg{J>ya4wz_U@~|qUm0n{#X0}d%0SVuKxu*Q&M~3Hm4>Qm3 z>)ZA?eVBf@-$ee=N-fqXe9CI<>OG|6q1m2(XskW{x6%HS_ZDmW?N1fn+q$=SzDkLe zu1Zz=eLu3#;3Y8wH(eN2xH=uHH-8MGm)pDU&#)Z#)#9Nk7~C-UbYft3a1s_ivKTdY z#^=UkJ!KsSbK(zVf_!5MTo|`sBXchTC!ZqGD8o>7>4Er^HD6YYNqn3(FMoC9U1{Bq znvlU~^^70qL*)qgMGl5X+FblK6KWS%fmmYz#^u)X+MGGQi~62y(p{~zv2+gkVOOl# zOgp{o`Qf&$`A0w|S3}>T62RiF_nW{ zR+oRBJ-K&sNKL?`ZdvM$^X`QYxQyHxrX-+-h#>pM1^nscDLXUgemQ?f^l$zONFzRb%z1{5!W%XBxd zon}<{MV@2*G;`gDF(m_v!2V?tsN(joEmKW)DIO1!*ch-Z^SvuiFz;N#D??X=Ul*5uz-i!~`=R2nezP*D$v9=Zn5w2$~? z@v)eBs@qqhW`*0T$_3BuAX&H+bZR{xPdR+#Iv8A0f@#qh)w9_C@rNSPB@rh3n{nEP zOTjMrxN^zZ;wDb3o_x(ENL2(N zD8B@D?lC81&lK~d4MZBW(*k~`BYCN~B=aXirXu1~*rH<|~BoEEo#su@=f z1KPgt-Mn|w=z$x-U}Gj2y_3p4#tjF(kSefT`tYJiez|}@jL*w;;70UToSD@-2K4;d zbMR=^NX6ol!aP-z(dk)Z^i|c?1E=8w`ZMTMdES^(aYPFSzsG?=gKX0n+2&1S^tR$N zsQ^*zT2*4~S|v#AW59gCq0jE?bfDYN8uVUDSCd)X0=EX>~A9pTbiTa z0J1?^=o{vsoY6-OQj-`6wooL?61{TcazHjw4XO1Vsx7+3&|9a!I_wVgT$51-;%DB8LFkkEuwo9(k zq%0Aj+C&RZbJLuh=BBFQOSu-*F5j4DRToD%&2g-(F4|KW4o)Xyz$rW4O81`b>*aDCZ!KwOA9Ou1X4C1#pfFGPPTvxSztA3(Zq?!ym!2>oY z8Z8Teo<3~1l!Yz#{?7ByV9#ug!w}P1L#yt`&YtJ42a>TRpeMv{7CxII-KbUuMLY$= z`!V4D>Yn4vk5cw*QO0kcEJ{o)f(Zja;?r9Et+D>Pp}*v>oNV&kaBXQd9tncpC+Dx1 zf3rSzFdhjtz)jM2G?r-tV9Lo7_{{m7w&T!GTy-1Bj|A1*GfdPNb zdXvg5^|Ex!IK>Lja|^)ycpE%19Xz=>ZRV`$i>uY*9Vy@zoA$L#_G{*@%4fk^;In^^ z`-xU=&w`zQY8EdH4Rp@CkTOOk3+z8A6O=muBJnXu&<2RB6yW^w*Xye6g{u{oV^n%O zt#R^+TLiX$WK{XsTZ3jJ%2D4rMw zo{QSt%fwBh;O1|H=U+FByS#3l{Pq>kGf7a{4BV2HGk4sXt`-j}f%tU|Q$L?;H-BwM z?g%UMl8N$#$=$;~8(X%}oSU>`h*wh$jLZ+OBq>td00 zY2|N+HXU`?!Q*;0$IP4EAr#Dx(lfUxfeD5nd2ma4FKTm>YwDB;ZGgz@OHY&RxQkIC z*+a(6o^$fp%LfZiyxZMyQuWgw-%|-erQj-D@*X_YyWeWLv7LSqI7Wi5<|Lhq{nfDe zlRc-4t?gcFVV@lItM?7rwtd>DDP!m5{qWSR^1#M>ZE$>;)g~Wn`wN+JwJ7Pc)~ZimJF!z13+t;z4XH^#ceZ1>UA|J75xxoRvHqv0a!+$6Jzx}t43&i{i-i<@*b;TfayOqR5;s%bD787?6cO!GV zONnJf4be(q5yHS3`urJ#ta+&<9fvG`9gi${mq>mV=>12PgY%!ekqs|P zNtco4cxUi?WkwW`H=o-f`}}E-OnT`-eh@jq$QOT3Ar_IZgrV4P95Ei5+ntCke_h56 zg;TG?z=g7Pp=_CsLx*MSLfJAui}V5{%a-|zNN?g?C|eiGmgzEd8eVd|3uVhFpk~>! z$o5Enw12^nN2|kpG56)*iYL>GP_FKyNP%lgiybpMG+Y^h30tBKT zMvOtSIE-<`c%)ue;@|#wj49x5%0xad3HP09*)<*&bMYnJLJ+%dtwn%`-bD|sFYDao%7BP z$?DWWT4ylwITRtaZT3t}wS)TFL47gq=9phfEF)@&E4itri;nhj%0l?rxeNhVs$h`0ZP$X$(3Tv z4a8z(%)1?=1t_D^GAu3N%DD8d^+=(615*07n7Ebv9i+b^y^mOd6fp8WoWnvSn*pY` zBiS>%k1}DthDr;$3eLH+6v;AVT0;~-Lpf-$$MqbZsn|Qy#l)@1bQ~RXz9PMkSb-F} zw{uloCyu%bcTPF-MQ1H?=i8Iy*CDmtXOOL3TIBWa2I56>O1WxmRmknf$Yn$gu@;$& zYkC0pXBkmLEahrAqc?@zLGIM+?MT+|LE5p*DM$SRN5ph3lI6ha)FD|82Pubxlmp{M za#nJOv9ArpQl!zFGNdz(;xJd*xt%+L5z3KlTt_gUljPJPSsGU1cl2gc?z#KLq zi*Oy8E+cA)wMaH^Cuu$zHKc2ix!p&&I*fLlc$QdCY$P@jTZmVPh1@C1@Dydpw1%9O z+-aII#!}P;?`n~3uFlY?8S7B9`8k7QFXYbBdYwhT6g4|xm{X2q>&0{}lC2l3Q-@@2 z&(ge|rFmn#NX}kPi?e~Vk4`PJv=eKit|vAUn}{t${Obpnp5)F^2at{3l z;ze=_x$~6gdCK!V<;k3K^jV%v*CJV-tWF)0<$0c>ou_Dw7s=VnHBg=n=+vTSc`{v3 zY$P@jTZmVPrQ8KhcvFWo!gXwSdAM#_gd<><3~n65>#d{~`2WG?2@Ncl8UK8zR1 zS;<|bRbwngUGVM*vbF0hv60wBY$0ADmU5SH^|y0P7{46Jo`NRokvVm!wcT1In@Prt zNVek5+;wgfG850ZX8Ik`%r)>D@=LkP^c1(y=vruWEi^jjlyfaKI;Lw;v(d3Sbx1bb zEg1hIv6TA{#;Ie(=j94zc!e^&Lamrnhd#^j3T4Q65p`>qjUeW=Z)^lZqzNzOJ-bbj z30-E$oo{W(5lGvTwnHX#*^@Jn9A}~n`BL7TFBh94J-f}2ECSO4XJq+O6pJ56~DY-K|fkkTGI3)V44L!JlC%v`AjcM&&}D~Y?*>c{BswEQFhl0J zAk#X{cxzt38L-A^wnS$n%iIQOf|T}{B3b4(*p~(QmgM&(3gp-l?T~5sCd2AG5C@U( zOmsm?d!+mTqAkV8b;J0!6yFxxTA-HpSQ7gZ1)>8oq01TRiF3>9NO?Qj6?WLl6!p%x z7RcvdiDYZad|Mx2Mc72$Py{-=}V3c zlEq}SMY5Ro7+=Z{L~Vj(qhQ(`>Dg^bPG4k5S3lC$M1g3BWP6O!foQ@zU@KGP(oP#> zTBks?MY7D9GZYzutH!jHA53E(jM@}+TBkWOq{|ZN*=>!K_SlfNMY3#}?~K&GaUsV> zV7>`2N17tp%F1!nw#X2C?wBv-hhi%eB-ezsTSP<1aYG8-?nr5m z2hy|K2iYPDA}5#_O6uM}1`tDuVZdHPXSe%Sj^@?D5-NH!a+W-u|DXvUAiR`y7CKKo;~=16uf`D0CM(gKpL zxIgVQR>y%#-H9GZw&JY55Ar$q5(9}ri78^Uvx85JQNeNNLYFr1nh|InhKZAB?^UlEq}&49R9P7=Dc%2 zdUg*%wuoGjY{xRko#;i*aO89FChbGokLXWM05OQ15YiE(rF;msaznD2Ve}>j6GMrn zd?@-hL^~uqXF_qd-H-`gUP#Ywf26c0fEY!LCff61SksgrgEg&@?8IhtMS6C-k?)RV zXAY|~9LaKE+840jH=4#f z9_yR&<1se@$xeXrSjV26p-8rZ<1w;3X%AumF_;)aj3RQpxj=7*NPG`O;(MSV?I|MN zN9ZH4zlK=}?5|-~LczP~$fcqzL&%G7rEe>|7>rD^ZI z#`pCC-VGY^zW2=ExBXw~do|i3 zA2SuhUw0goi!xKE<5eHwT!o-aOBJFr=451}Cj@6?WoBe0XV1u(BV?vea}n6Jq5oU0 zVJw_5AtQZ0Yd24bn1c=7MvinHig0%k0@Kq4#f(qVvgZkk)Oo2{3sO^{M?4Sn;UE(( zhpIvEIY{&iX?5=4-{L&vQROPzfZ)Vlj`8cJc;#Dkd~ckTH`Sc?DY~9l-(Kn}{UOiY zVwGBYB~Kv>Pr#ZREmHM%EAkG>bn|Q#d7@s}U}o@4bKY&>xoW%5!j-!xc~$gsOe_XC zYlJl{{X$6TJCnHlxpD$%I(lIJcTHC*btw5<8nPZ`UTZC(fb(`aUT_s;>N=0VGx z?n53PW{K+L1(BAM4K__p{Vnl7XVXOSj(VYknAKsQzKold6vvr56>6XSErhZmRt=z|}$IAX&4< zvlSc`z}upPtNh1;MMm-VTO&+kbRwE6dWO_!*?9g6TFx1KwVFShK55pwS!R*DQ<6+u zMJw+ddj_k#yG4Vpm(M;ZauWC}ZNA5b<_QU}c-7!zzf^5|l4&|t$1w6z32&+n@~c|4 zuhn#*=;Wn2dnO;w`5<I*W>KH^Yu1N_qz`6aGq=~URPU(K zk>R?jzCDlEGl3kG>^aE^HMxTql&mX^%jer_gDZ@~m)gt>78!?U z@4hn}H~OMtdU)73t6qAGi>|NQ7N$4fwj=oO?JxOY`xoly7-I)b&^y4vXkPt`9@C*Z z06HM~=R%Y*Sc44&z!lgj$`=1Ap2($hhI|n}TC!WBqr)yft!-hSoqxHewQfT4eY=IT zrk%2U^ek#s9%tk1v>;ZCHR?}~nTwY*0?c3K$_GT23{PKK{=K`E=)~BviMJcO!QfU5 zaNi7=dANB%8W?w0f$_cb2VZHNOjg`Tc0~K zCRh8WHuO@c;^PXybVdwJ76l|94SANgCRwX;@D|}i6j!ANS=$zsQ`Tg$#~%y#s)foI zPG8)Lw$MyH?v5YnR=xt`LALU_u}aYED1sH3NL85VyI}Ql4gPPnU^la<&no>9&ngE7 zSAk?sIhY-eHF2*F3Aqfm%~g=Q#}S+=1n`_(WAI|~fsBmAP3&Xg#y4S!za<^$tMvNz z_2&~uChD9V@mUfmpWwAmE-!Mcx8(OkrAufG^oshib6jgVW@vA)cmrQ%xbgMV3J3ql z>;;BL{X2}?Z%!B|d(h%^z2)3#OSNQzEA*)-x-m5_7$gY_u)n{*ym)&@_Ic0wVUpIh zGw#YpZ5d;EF)8z|xmv$^r&sEv``6>~2FX=Hv_(I4Wafs93r#D;zc^NzYZi&G-Tu5o zGpG0dt-THATwMwJQ;T5Jy88X4clthzfgyNvEHSBh{Ht7Z%b7)Y_W|GQ;YmEhjIXq( zZu|8BJW-u0(9h6Osg7Ckn?W+)1#}J{ygTL1kt)2if|qq}$~J}G*t{uZwLeH^1c4~7 zAT%+qz^yZEd`^TYruSfzP}xKIkVL-{(b!_pH5{kNJfi)1XCJ|3(Z(fX&*pzKeDBnX zqZVQX7)%R*qXvts%ZIcXjQNf4izz&C+B;>bs#k?_@Q|Bo@s?uflblwz(&BTWV2JA_ zZKOPZg)3epNj;Si_q5!5T@YTlIK4!7Ky1yJZ}Z+nPrrv3TqeYVSB> ztpfP^OL@uyWxwydewlhkjnB?fx_6TQ_GQ+ZTQN!4>3v_Ppe5#`t{qi5WgqqfQ1pQK zSI^@8KZWP?-7Nnj-o5HXr2KLrF7d_yNDZ!!l>0OWwkQYU5*yxczwVtHcq(mdISig~ z?D(~vFJ}&_fql2Y@cG0cXC-^rIW?b3t5S;=`b~JsQg+-7{F^2517eSk`7SOZTKixN z-s+gFmb`Yl{^N?%P3C1&JQZpy1{#Kr8n0ixg=YSFmuPhCP)H;-K{0P`jgMIV)Uo{x>LnB4v~CWtrV#1Bj>3(KM3 z>x1jEHWys~stw9IKq4C@cdY6FeQ`NBJV`h_ar*_Y-BPIRR&#MiE2e*P6s}s_Ke{zCVP6!Txd> zp^hrAG1iKvlt84(=VNQm@X1zz-PL_W-Thim$i2nCg2b;JEUtYcoq768>C77eu>ZLh zZhk#bUQ<={OJ(1BO!sFuT+-Oju1akjCn>?eQTMYGBbrJtg~fbqvRW&OSP6!k7A@3W zVJkmZUwTLl`*Oi>RDH$a+yBk}#9+az>3^tv4(z+11bcq#xA>&f?b=8E4P>{Mx;)`q zF3!S>VeDaf6pYvGK9TRpxxQz2hsJbO!FK>U{j#zG*hrgtB{`G$Szc=VEe3O+2u{Z5m!`X`jQ+MgD zn!Vl1-oGseV(B4z_l>4{tn@$lX1tQT{_nm2mFB$nTv1iAdZR7y#u%nT@3}%yMtTbT z|M0Twi%IE1n$F#Jk-Ak4yg?!Ujs*x1rHRbU<~D}7J6@WWsS_0Ddgow!RExKBj;QDx z-rY7})7-{ToS?s6T6I78t&K0Oy)dHn_cehf%k|m6AM{}1yWahm*K8+`Z@~n;pa!_xK)_0~7H^~S8cY**c F`9Es`Ml=8b literal 0 HcmV?d00001 diff --git a/fckeditor/_samples/html/assets/swfobject.js b/fckeditor/_samples/html/assets/swfobject.js new file mode 100644 index 0000000..ef6d3b7 --- /dev/null +++ b/fckeditor/_samples/html/assets/swfobject.js @@ -0,0 +1,18 @@ +/** + * SWFObject v1.5: Flash Player detection and embed - http://blog.deconcept.com/swfobject/ + * + * SWFObject is (c) 2007 Geoff Stearns and is released under the MIT License: + * http://www.opensource.org/licenses/mit-license.php + * + */ +/* +Copyright (c) 2007 Geoff Stearns + +Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: + +The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. + +THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + */ +/*jsl:ignoreall*/ +if(typeof deconcept=="undefined"){var deconcept=new Object();}if(typeof deconcept.util=="undefined"){deconcept.util=new Object();}if(typeof deconcept.SWFObjectUtil=="undefined"){deconcept.SWFObjectUtil=new Object();}deconcept.SWFObject=function(_1,id,w,h,_5,c,_7,_8,_9,_a){if(!document.getElementById){return;}this.DETECT_KEY=_a?_a:"detectflash";this.skipDetect=deconcept.util.getRequestParameter(this.DETECT_KEY);this.params=new Object();this.variables=new Object();this.attributes=new Array();if(_1){this.setAttribute("swf",_1);}if(id){this.setAttribute("id",id);}if(w){this.setAttribute("width",w);}if(h){this.setAttribute("height",h);}if(_5){this.setAttribute("version",new deconcept.PlayerVersion(_5.toString().split(".")));}this.installedVer=deconcept.SWFObjectUtil.getPlayerVersion();if(!window.opera&&document.all&&this.installedVer.major>7){deconcept.SWFObject.doPrepUnload=true;}if(c){this.addParam("bgcolor",c);}var q=_7?_7:"high";this.addParam("quality",q);this.setAttribute("useExpressInstall",false);this.setAttribute("doExpressInstall",false);var _c=(_8)?_8:window.location;this.setAttribute("xiRedirectUrl",_c);this.setAttribute("redirectUrl","");if(_9){this.setAttribute("redirectUrl",_9);}};deconcept.SWFObject.prototype={useExpressInstall:function(_d){this.xiSWFPath=!_d?"expressinstall.swf":_d;this.setAttribute("useExpressInstall",true);},setAttribute:function(_e,_f){this.attributes[_e]=_f;},getAttribute:function(_10){return this.attributes[_10];},addParam:function(_11,_12){this.params[_11]=_12;},getParams:function(){return this.params;},addVariable:function(_13,_14){this.variables[_13]=_14;},getVariable:function(_15){return this.variables[_15];},getVariables:function(){return this.variables;},getVariablePairs:function(){var _16=new Array();var key;var _18=this.getVariables();for(key in _18){_16[_16.length]=key+"="+_18[key];}return _16;},getSWFHTML:function(){var _19="";if(navigator.plugins&&navigator.mimeTypes&&navigator.mimeTypes.length){if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","PlugIn");this.setAttribute("swf",this.xiSWFPath);}_19="0){_19+="flashvars=\""+_1c+"\"";}_19+="/>";}else{if(this.getAttribute("doExpressInstall")){this.addVariable("MMplayerType","ActiveX");this.setAttribute("swf",this.xiSWFPath);}_19="";_19+="";var _1d=this.getParams();for(var key in _1d){_19+="";}var _1f=this.getVariablePairs().join("&");if(_1f.length>0){_19+="";}_19+="";}return _19;},write:function(_20){if(this.getAttribute("useExpressInstall")){var _21=new deconcept.PlayerVersion([6,0,65]);if(this.installedVer.versionIsValid(_21)&&!this.installedVer.versionIsValid(this.getAttribute("version"))){this.setAttribute("doExpressInstall",true);this.addVariable("MMredirectURL",escape(this.getAttribute("xiRedirectUrl")));document.title=document.title.slice(0,47)+" - Flash Player Installation";this.addVariable("MMdoctitle",document.title);}}if(this.skipDetect||this.getAttribute("doExpressInstall")||this.installedVer.versionIsValid(this.getAttribute("version"))){var n=(typeof _20=="string")?document.getElementById(_20):_20;n.innerHTML=this.getSWFHTML();return true;}else{if(this.getAttribute("redirectUrl")!=""){document.location.replace(this.getAttribute("redirectUrl"));}}return false;}};deconcept.SWFObjectUtil.getPlayerVersion=function(){var _23=new deconcept.PlayerVersion([0,0,0]);if(navigator.plugins&&navigator.mimeTypes.length){var x=navigator.plugins["Shockwave Flash"];if(x&&x.description){_23=new deconcept.PlayerVersion(x.description.replace(/([a-zA-Z]|\s)+/,"").replace(/(\s+r|\s+b[0-9]+)/,".").split("."));}}else{if(navigator.userAgent&&navigator.userAgent.indexOf("Windows CE")>=0){var axo=1;var _26=3;while(axo){try{_26++;axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash."+_26);_23=new deconcept.PlayerVersion([_26,0,0]);}catch(e){axo=null;}}}else{try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.7");}catch(e){try{var axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash.6");_23=new deconcept.PlayerVersion([6,0,21]);axo.AllowScriptAccess="always";}catch(e){if(_23.major==6){return _23;}}try{axo=new ActiveXObject("ShockwaveFlash.ShockwaveFlash");}catch(e){}}if(axo!=null){_23=new deconcept.PlayerVersion(axo.GetVariable("$version").split(" ")[1].split(","));}}}return _23;};deconcept.PlayerVersion=function(_29){this.major=_29[0]!=null?parseInt(_29[0]):0;this.minor=_29[1]!=null?parseInt(_29[1]):0;this.rev=_29[2]!=null?parseInt(_29[2]):0;};deconcept.PlayerVersion.prototype.versionIsValid=function(fv){if(this.majorfv.major){return true;}if(this.minorfv.minor){return true;}if(this.rev=0;i--){_2f[i].style.display="none";for(var x in _2f[i]){if(typeof _2f[i][x]=="function"){_2f[i][x]=function(){};}}}};if(deconcept.SWFObject.doPrepUnload){if(!deconcept.unloadSet){deconcept.SWFObjectUtil.prepUnload=function(){__flash_unloadHandler=function(){};__flash_savedUnloadHandler=function(){};window.attachEvent("onunload",deconcept.SWFObjectUtil.cleanupSWFs);};window.attachEvent("onbeforeunload",deconcept.SWFObjectUtil.prepUnload);deconcept.unloadSet=true;}}if(!document.getElementById&&document.all){document.getElementById=function(id){return document.all[id];};}var getQueryParamValue=deconcept.util.getRequestParameter;var FlashObject=deconcept.SWFObject;var SWFObject=deconcept.SWFObject; diff --git a/fckeditor/_samples/html/sample01.html b/fckeditor/_samples/html/sample01.html new file mode 100644 index 0000000..ab55f7d --- /dev/null +++ b/fckeditor/_samples/html/sample01.html @@ -0,0 +1,59 @@ + + + + + FCKeditor - Sample + + + + + + +

+ FCKeditor - JavaScript - Sample 1 +

+
+ This sample displays a normal HTML form with an FCKeditor with full features enabled. +
+
+
+ +
+ +
+ + diff --git a/fckeditor/_samples/html/sample02.html b/fckeditor/_samples/html/sample02.html new file mode 100644 index 0000000..f42b858 --- /dev/null +++ b/fckeditor/_samples/html/sample02.html @@ -0,0 +1,63 @@ + + + + + FCKeditor - Sample + + + + + + + +

+ FCKeditor - JavaScript - Sample 2

+
+ This sample displays a normal HTML form with an FCKeditor with full features enabled. + It uses the "ReplaceTextarea" command to create the editor. +
+
+
+
+ +
+
+ +
+ + diff --git a/fckeditor/_samples/html/sample03.html b/fckeditor/_samples/html/sample03.html new file mode 100644 index 0000000..6f7a75c --- /dev/null +++ b/fckeditor/_samples/html/sample03.html @@ -0,0 +1,140 @@ + + + + + FCKeditor - Sample + + + + + + + +

+ FCKeditor - JavaScript - Sample 3

+
+ This sample shows the editor in all its available languages. +
+
+ + + + + + +
+ Select a language:  + + + +   +
+
+
+ +
+ +
+ + diff --git a/fckeditor/_samples/html/sample04.html b/fckeditor/_samples/html/sample04.html new file mode 100644 index 0000000..43ca07c --- /dev/null +++ b/fckeditor/_samples/html/sample04.html @@ -0,0 +1,95 @@ + + + + + FCKeditor - Sample + + + + + + + +

+ FCKeditor - JavaScript - Sample 4

+
+ This sample shows how to change the editor toolbar. +
+
+ + + + + +
+ Select the toolbar to load:  + + +
+
+
+ +
+ +
+ + diff --git a/fckeditor/_samples/html/sample05.html b/fckeditor/_samples/html/sample05.html new file mode 100644 index 0000000..fcb4073 --- /dev/null +++ b/fckeditor/_samples/html/sample05.html @@ -0,0 +1,125 @@ + + + + + FCKeditor - Sample + + + + + + + +

+ FCKeditor - JavaScript - Sample 5

+
+ This sample shows how to change the editor skin. +
+
+ + + + + +
+ Select the skin to load:  + + +
+
+
+ +
+ +
+ + diff --git a/fckeditor/_samples/html/sample06.html b/fckeditor/_samples/html/sample06.html new file mode 100644 index 0000000..d68e029 --- /dev/null +++ b/fckeditor/_samples/html/sample06.html @@ -0,0 +1,73 @@ + + + + + FCKeditor - Sample + + + + + + +

+ FCKeditor - JavaScript - 6

+
+ This sample shows some sample plugins implementations. Things to note:
+
    +
  • 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.
  • +
  • There is also another sample plugin that is available in the package: the "Placeholder" + command (use the yellow icon).
  • +
  • It also shows a custom context menu option when right cliking on images (insert + a smiley to test it).
  • +
+
+
+
+ +
+ +
+ + diff --git a/fckeditor/_samples/html/sample07.html b/fckeditor/_samples/html/sample07.html new file mode 100644 index 0000000..8af901c --- /dev/null +++ b/fckeditor/_samples/html/sample07.html @@ -0,0 +1,59 @@ + + + + + FCKeditor - Sample + + + + + + +

+ FCKeditor - JavaScript - Sample 7

+
+ In this sample the user can edit the complete page contents and header (from <HTML> + to </HTML>). +
+
+
+ +
+ +
+ + diff --git a/fckeditor/_samples/html/sample08.html b/fckeditor/_samples/html/sample08.html new file mode 100644 index 0000000..a536a8a --- /dev/null +++ b/fckeditor/_samples/html/sample08.html @@ -0,0 +1,196 @@ + + + + + FCKeditor - Sample + + + + + + + +

+ FCKeditor - JavaScript - Sample 8 +

+
+ This sample shows how to use the FCKeditor JavaScript API to interact with the editor + at runtime. +
+
+
+ +
+ +
+
+   +
+
+
+   +
+
+   +
+ + + diff --git a/fckeditor/_samples/html/sample09.html b/fckeditor/_samples/html/sample09.html new file mode 100644 index 0000000..ff07747 --- /dev/null +++ b/fckeditor/_samples/html/sample09.html @@ -0,0 +1,100 @@ + + + + + FCKeditor - Sample + + + + + + + +

+ FCKeditor - JavaScript - Sample 9

+
+ This sample shows FCKeditor in a more complex form with two different instances.
+ It also shows and interesting usage of the "OnFocus" and "OnBlur" events available + in the JavaScript API. +
+
+
+ Normal text field:
+ +
+
+ FCKeditor with Basic toolbar: + +
+ FCKeditor with Default toolbar: + +
+ +
+ + diff --git a/fckeditor/_samples/html/sample10.html b/fckeditor/_samples/html/sample10.html new file mode 100644 index 0000000..0015a52 --- /dev/null +++ b/fckeditor/_samples/html/sample10.html @@ -0,0 +1,79 @@ + + + + + FCKeditor - Sample + + + + + + +

+ FCKeditor - JavaScript - Sample 10

+
+ This sample shows a form with two FCKeditor instance. Both instances share the same + toolbar, available in the top. +
+
+
+
+
+ Normal text field:
+ +
+
+ FCKeditor 1: + +
+ FCKeditor 2: + +
+ +
+ + diff --git a/fckeditor/_samples/html/sample11.html b/fckeditor/_samples/html/sample11.html new file mode 100644 index 0000000..ff1030c --- /dev/null +++ b/fckeditor/_samples/html/sample11.html @@ -0,0 +1,43 @@ + + + + + FCKeditor - Sample + + + + + +

+ FCKeditor - JavaScript - Sample 11

+
+ 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). +
+
+
+
+ + + diff --git a/fckeditor/_samples/html/sample12.html b/fckeditor/_samples/html/sample12.html new file mode 100644 index 0000000..dff9b86 --- /dev/null +++ b/fckeditor/_samples/html/sample12.html @@ -0,0 +1,124 @@ + + + + + FCKeditor - Sample + + + + + + + +

+ FCKeditor - JavaScript - Sample 12

+
+ This sample shows the different ways to configure the [Enter] key behavior on FCKeditor. +
+
+ + + + + + + + + +
+ When [Enter] is pressed:  + + +
+ When [Shift] + [Enter] is pressed:  + + +
+
+
+ +
+ +
+ + diff --git a/fckeditor/_samples/html/sample13.html b/fckeditor/_samples/html/sample13.html new file mode 100644 index 0000000..2fc26d4 --- /dev/null +++ b/fckeditor/_samples/html/sample13.html @@ -0,0 +1,148 @@ + + + + + FCKeditor - Sample + + + + + + + +

+ FCKeditor - JavaScript - Sample 13 +

+
+ 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. +
+
+
+
+ +
+
+ +
+ +
+ +
+ + diff --git a/fckeditor/_samples/html/sample14.html b/fckeditor/_samples/html/sample14.html new file mode 100644 index 0000000..29bf194 --- /dev/null +++ b/fckeditor/_samples/html/sample14.html @@ -0,0 +1,66 @@ + + + + + FCKeditor - Sample + + + + + + +

+ FCKeditor - JavaScript - Sample 14 +

+
+ This sample shows FCKeditor configured to produce XHTML 1.1 compliant + HTML. Deprecated elements or attributes, like the <font> and <u> elements + or the "style" attribute, are avoided. +
+
+
+ +
+ +
+ + diff --git a/fckeditor/_samples/html/sample15.html b/fckeditor/_samples/html/sample15.html new file mode 100644 index 0000000..bcaa3b9 --- /dev/null +++ b/fckeditor/_samples/html/sample15.html @@ -0,0 +1,66 @@ + + + + + FCKeditor - Sample + + + + + + +

+ FCKeditor - JavaScript - Sample 15 +

+
+ This sample shows FCKeditor configured to produce a legacy HTML4 document. Traditional + HTML elements like <b>, <i>, and <font> are used in place of + <strong>, <em> and CSS styles. +
+
+
+ +
+ +
+ + diff --git a/fckeditor/_samples/html/sample16.html b/fckeditor/_samples/html/sample16.html new file mode 100644 index 0000000..5bbf01f --- /dev/null +++ b/fckeditor/_samples/html/sample16.html @@ -0,0 +1,91 @@ + + + + + FCKeditor - Sample + + + + + + + + +

+ FCKeditor - JavaScript - Sample 16 +

+
+ This sample shows FCKeditor configured to produce HTML code that can be used with + + Flash. +
+
+ + + + + +
+ + + +
+ + diff --git a/fckeditor/_samples/lasso/sample01.lasso b/fckeditor/_samples/lasso/sample01.lasso new file mode 100644 index 0000000..f868069 --- /dev/null +++ b/fckeditor/_samples/lasso/sample01.lasso @@ -0,0 +1,55 @@ +[//lasso +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Sample page. + */ +] + + + + FCKeditor - Sample + + + + + +

FCKeditor - Lasso - Sample 1

+ This sample displays a normal HTML form with an FCKeditor with full features + enabled. +
+
+[//lasso + include('../../fckeditor.lasso'); + var('basepath') = response_filepath->split('_samples')->get(1); + + var('myeditor') = fck_editor( + -instancename='FCKeditor1', + -basepath=$basepath, + -initialvalue='

This is some sample text. You are using FCKeditor.

' + ); + + $myeditor->create; +] +
+ +
+ + diff --git a/fckeditor/_samples/lasso/sample02.lasso b/fckeditor/_samples/lasso/sample02.lasso new file mode 100644 index 0000000..bd74329 --- /dev/null +++ b/fckeditor/_samples/lasso/sample02.lasso @@ -0,0 +1,109 @@ +[//lasso +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Sample page. + */ +] + + + + FCKeditor - Sample + + + + + + +

FCKeditor - Lasso - Sample 2

+ This sample shows the editor in all its available languages. +
+ + + + + +
+ Select a language:  + + +
+
+
+[//lasso + include('../../fckeditor.lasso'); + var('basepath') = response_filepath->split('_samples')->get(1); + + if(action_param('Lang')); + var('config') = array( + 'AutoDetectLanguage' = 'false', + 'DefaultLanguage' = action_param('Lang') + ); + else; + var('config') = array( + 'AutoDetectLanguage' = 'true', + 'DefaultLanguage' = 'en' + ); + /if; + + var('myeditor') = fck_editor( + -instancename='FCKeditor1', + -basepath=$basepath, + -config=$config, + -initialvalue='

This is some sample text. You are using FCKeditor.

' + ); + + $myeditor->create; +] +
+ +
+ + diff --git a/fckeditor/_samples/lasso/sample03.lasso b/fckeditor/_samples/lasso/sample03.lasso new file mode 100644 index 0000000..6890dc9 --- /dev/null +++ b/fckeditor/_samples/lasso/sample03.lasso @@ -0,0 +1,87 @@ +[//lasso +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Sample page. + */ +] + + + + FCKeditor - Sample + + + + + + +

FCKeditor - Lasso - Sample 3

+ This sample shows how to change the editor toolbar. +
+ + + + + +
+ Select the toolbar to load:  + + +
+
+
+[//lasso + include('../../fckeditor.lasso'); + var('basepath') = response_filepath->split('_samples')->get(1); + + var('myeditor') = fck_editor( + -instancename='FCKeditor1', + -basepath=$basepath, + -initialvalue='

This is some sample text. You are using FCKeditor.

' + ); + + if(action_param('Toolbar')); + $myeditor->toolbarset = action_param('Toolbar'); + /if; + + $myeditor->create; +] +
+ +
+ + diff --git a/fckeditor/_samples/lasso/sample04.lasso b/fckeditor/_samples/lasso/sample04.lasso new file mode 100644 index 0000000..0e39eb9 --- /dev/null +++ b/fckeditor/_samples/lasso/sample04.lasso @@ -0,0 +1,93 @@ +[//lasso +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Sample page. + */ +] + + + + FCKeditor - Sample + + + + + + +

FCKeditor - Lasso - Sample 4

+ This sample shows how to change the editor skin. +
+ + + + + +
+ Select the skin to load:  + + +
+
+
+[//lasso + include('../../fckeditor.lasso'); + var('basepath') = response_filepath->split('_samples')->get(1); + + var('myeditor') = fck_editor( + -instancename='FCKeditor1', + -basepath=$basepath, + -initialvalue='

This is some sample text. You are using FCKeditor.

' + ); + + if(action_param('Skin')); + $myeditor->config = array('SkinPath' = $basepath + 'editor/skins/' + action_param('Skin') + '/'); + /if; + + $myeditor->create; +] +
+ +
+ + diff --git a/fckeditor/_samples/lasso/sampleposteddata.lasso b/fckeditor/_samples/lasso/sampleposteddata.lasso new file mode 100644 index 0000000..6d04ad4 --- /dev/null +++ b/fckeditor/_samples/lasso/sampleposteddata.lasso @@ -0,0 +1,53 @@ +[//lasso +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Sample page. + */ +] + + + + FCKeditor - Samples - Posted Data + + + + + +

FCKeditor - Samples - Posted Data

+ This page lists all data posted by the form. +
+ + + + + + + + +[iterate(client_postparams, local('this'))] + + + + +[/iterate] +
Field NameValue
[#this->first]
[#this->second]
+ + diff --git a/fckeditor/_samples/perl/sample01.cgi b/fckeditor/_samples/perl/sample01.cgi new file mode 100644 index 0000000..3b6debc --- /dev/null +++ b/fckeditor/_samples/perl/sample01.cgi @@ -0,0 +1,117 @@ +#!/usr/bin/env perl + +##### +# FCKeditor - The text editor for Internet - http://www.fckeditor.net +# Copyright (C) 2003-2008 Frederico Caldeira Knabben +# +# == BEGIN LICENSE == +# +# Licensed under the terms of any of the following licenses at your +# choice: +# +# - GNU General Public License Version 2 or later (the "GPL") +# http://www.gnu.org/licenses/gpl.html +# +# - GNU Lesser General Public License Version 2.1 or later (the "LGPL") +# http://www.gnu.org/licenses/lgpl.html +# +# - Mozilla Public License Version 1.1 or later (the "MPL") +# http://www.mozilla.org/MPL/MPL-1.1.html +# +# == END LICENSE == +# +# Sample page. +##### + +## START: Hack for Windows (Not important to understand the editor code... Perl specific). +if(Windows_check()) { + chdir(GetScriptPath($0)); +} + +sub Windows_check +{ + # IIS,PWS(NT/95) + $www_server_os = $^O; + # Win98 & NT(SP4) + if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; } + # AnHTTPd/Omni/IIS + if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; } + # Win Apache + if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; } + if($www_server_os=~ /win/i) { return(1); } + return(0); +} + +sub GetScriptPath { + local($path) = @_; + if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; } + $path; +} +## END: Hack for IIS + +require '../../fckeditor.pl'; + +# When $ENV{'PATH_INFO'} cannot be used by perl. +# $DefRootPath = "/XXXXX/_samples/perl/sample01.cgi"; Please write in script. + +my $DefServerPath = ""; +my $ServerPath; + + $ServerPath = &GetServerPath(); + print "Content-type: text/html\n\n"; + print <<"_HTML_TAG_"; + + + + FCKeditor - Sample + + + + + +

FCKeditor - Perl - Sample 1

+ This sample displays a normal HTML form with an FCKeditor with full features + enabled. +
+
+_HTML_TAG_ + + #// Automatically calculates the editor base path based on the _samples directory. + #// This is usefull only for these samples. A real application should use something like this: + #// $oFCKeditor->BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value. + + $sBasePath = $ServerPath; + $sBasePath = substr($sBasePath,0,index($sBasePath,"_samples")); + &FCKeditor('FCKeditor1'); + $BasePath = $sBasePath; + $Value = '

This is some sample text. You are using FCKeditor.

'; + &Create(); + + print <<"_HTML_TAG_"; +
+ +
+ + +_HTML_TAG_ + +################ +#Please use this function, rewriting it depending on a server's environment. +################ +sub GetServerPath +{ +my $dir; + + if($DefServerPath) { + $dir = $DefServerPath; + } else { + if($ENV{'PATH_INFO'}) { + $dir = $ENV{'PATH_INFO'}; + } elsif($ENV{'FILEPATH_INFO'}) { + $dir = $ENV{'FILEPATH_INFO'}; + } elsif($ENV{'REQUEST_URI'}) { + $dir = $ENV{'REQUEST_URI'}; + } + } + return($dir); +} diff --git a/fckeditor/_samples/perl/sample02.cgi b/fckeditor/_samples/perl/sample02.cgi new file mode 100644 index 0000000..dd7c26d --- /dev/null +++ b/fckeditor/_samples/perl/sample02.cgi @@ -0,0 +1,182 @@ +#!/usr/bin/env perl + +##### +# FCKeditor - The text editor for Internet - http://www.fckeditor.net +# Copyright (C) 2003-2008 Frederico Caldeira Knabben +# +# == BEGIN LICENSE == +# +# Licensed under the terms of any of the following licenses at your +# choice: +# +# - GNU General Public License Version 2 or later (the "GPL") +# http://www.gnu.org/licenses/gpl.html +# +# - GNU Lesser General Public License Version 2.1 or later (the "LGPL") +# http://www.gnu.org/licenses/lgpl.html +# +# - Mozilla Public License Version 1.1 or later (the "MPL") +# http://www.mozilla.org/MPL/MPL-1.1.html +# +# == END LICENSE == +# +# Sample page. +##### + +## START: Hack for Windows (Not important to understand the editor code... Perl specific). +if(Windows_check()) { + chdir(GetScriptPath($0)); +} + +sub Windows_check +{ + # IIS,PWS(NT/95) + $www_server_os = $^O; + # Win98 & NT(SP4) + if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; } + # AnHTTPd/Omni/IIS + if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; } + # Win Apache + if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; } + if($www_server_os=~ /win/i) { return(1); } + return(0); +} + +sub GetScriptPath { + local($path) = @_; + if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; } + $path; +} +## END: Hack for IIS + +require '../../fckeditor.pl'; + +# When $ENV{'PATH_INFO'} cannot be used by perl. +# $DefRootPath = "/XXXXX/_samples/perl/sample02.cgi"; Please write in script. + +my $DefServerPath = ""; +my $ServerPath; + + $ServerPath = &GetServerPath(); + + if($ENV{'REQUEST_METHOD'} eq "POST") { + read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); + } else { + $buffer = $ENV{'QUERY_STRING'}; + } + @pairs = split(/&/,$buffer); + foreach $pair (@pairs) { + ($name,$value) = split(/=/,$pair); + $value =~ tr/+/ /; + $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; + $value =~ s/\t//g; + $value =~ s/\r\n/\n/g; + $FORM{$name} .= "\0" if(defined($FORM{$name})); + $FORM{$name} .= $value; + } + + print "Content-type: text/html\n\n"; + print <<"_HTML_TAG_"; + + + + FCKeditor - Sample + + + + + + +

FCKeditor - Perl - Sample 2

+ This sample shows the editor in all its available languages. +
+ + + + + +
+ Select a language:  + + +
+
+
+_HTML_TAG_ + + #// Automatically calculates the editor base path based on the _samples directory. + #// This is usefull only for these samples. A real application should use something like this: + #// $oFCKeditor->BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value. + $sBasePath = $ServerPath; + $sBasePath = substr( $sBasePath, 0, index($sBasePath,"_samples")); + + &FCKeditor('FCKeditor1'); + $BasePath = $sBasePath; + + if($FORM{'Lang'} ne "") { + $Config{'AutoDetectLanguage'} = "false"; + $Config{'DefaultLanguage'} = $FORM{'Lang'}; + } else { + $Config{'AutoDetectLanguage'} = "true"; + $Config{'DefaultLanguage'} = 'en' ; + } + $Value = '

This is some sample text. You are using FCKeditor.

' ; + &Create(); + + print <<"_HTML_TAG_"; +
+ +
+ + +_HTML_TAG_ + +################ +#Please use this function, rewriting it depending on a server's environment. +################ +sub GetServerPath +{ +my $dir; + + if($DefServerPath) { + $dir = $DefServerPath; + } else { + if($ENV{'PATH_INFO'}) { + $dir = $ENV{'PATH_INFO'}; + } elsif($ENV{'FILEPATH_INFO'}) { + $dir = $ENV{'FILEPATH_INFO'}; + } elsif($ENV{'REQUEST_URI'}) { + $dir = $ENV{'REQUEST_URI'}; + } + } + return($dir); +} diff --git a/fckeditor/_samples/perl/sample03.cgi b/fckeditor/_samples/perl/sample03.cgi new file mode 100644 index 0000000..ef9d723 --- /dev/null +++ b/fckeditor/_samples/perl/sample03.cgi @@ -0,0 +1,167 @@ +#!/usr/bin/env perl + +##### +# FCKeditor - The text editor for Internet - http://www.fckeditor.net +# Copyright (C) 2003-2008 Frederico Caldeira Knabben +# +# == BEGIN LICENSE == +# +# Licensed under the terms of any of the following licenses at your +# choice: +# +# - GNU General Public License Version 2 or later (the "GPL") +# http://www.gnu.org/licenses/gpl.html +# +# - GNU Lesser General Public License Version 2.1 or later (the "LGPL") +# http://www.gnu.org/licenses/lgpl.html +# +# - Mozilla Public License Version 1.1 or later (the "MPL") +# http://www.mozilla.org/MPL/MPL-1.1.html +# +# == END LICENSE == +# +# Sample page. +##### + +## START: Hack for Windows (Not important to understand the editor code... Perl specific). +if(Windows_check()) { + chdir(GetScriptPath($0)); +} + +sub Windows_check +{ + # IIS,PWS(NT/95) + $www_server_os = $^O; + # Win98 & NT(SP4) + if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; } + # AnHTTPd/Omni/IIS + if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; } + # Win Apache + if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; } + if($www_server_os=~ /win/i) { return(1); } + return(0); +} + +sub GetScriptPath { + local($path) = @_; + if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; } + $path; +} +## END: Hack for IIS + +require '../../fckeditor.pl'; + +# When $ENV{'PATH_INFO'} cannot be used by perl. +# $DefRootPath = "/XXXXX/_samples/perl/sample03.cgi"; Please write in script. + +my $DefServerPath = ""; +my $ServerPath; + + $ServerPath = &GetServerPath(); + + if($ENV{'REQUEST_METHOD'} eq "POST") { + read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); + } else { + $buffer = $ENV{'QUERY_STRING'}; + } + @pairs = split(/&/,$buffer); + foreach $pair (@pairs) { + ($name,$value) = split(/=/,$pair); + $value =~ tr/+/ /; + $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; + $value =~ s/\t//g; + $value =~ s/\r\n/\n/g; + $FORM{$name} .= "\0" if(defined($FORM{$name})); + $FORM{$name} .= $value; + } + + print "Content-type: text/html\n\n"; + print <<"_HTML_TAG_"; + + + + FCKeditor - Sample + + + + + + +

FCKeditor - Perl - Sample 3

+ This sample shows how to change the editor toolbar. +
+ + + + + +
+ Select the toolbar to load:  + + +
+
+
+_HTML_TAG_ + + #// Automatically calculates the editor base path based on the _samples directory. + #// This is usefull only for these samples. A real application should use something like this: + #// $oFCKeditor->BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value. + + $sBasePath = $ServerPath; + $sBasePath = substr($sBasePath, 0, index( $sBasePath, "_samples" )); + + &FCKeditor('FCKeditor1') ; + $BasePath = $sBasePath ; + + if($FORM{'Toolbar'} ne "") { + $ToolbarSet = &specialchar_cnv( $FORM{'Toolbar'} ); + } + $Value = '

This is some sample text. You are using FCKeditor.

' ; + &Create(); + + print <<"_HTML_TAG_"; +
+ +
+ + +_HTML_TAG_ + +################ +#Please use this function, rewriting it depending on a server's environment. +################ +sub GetServerPath +{ +my $dir; + + if($DefServerPath) { + $dir = $DefServerPath; + } else { + if($ENV{'PATH_INFO'}) { + $dir = $ENV{'PATH_INFO'}; + } elsif($ENV{'FILEPATH_INFO'}) { + $dir = $ENV{'FILEPATH_INFO'}; + } elsif($ENV{'REQUEST_URI'}) { + $dir = $ENV{'REQUEST_URI'}; + } + } + return($dir); +} diff --git a/fckeditor/_samples/perl/sample04.cgi b/fckeditor/_samples/perl/sample04.cgi new file mode 100644 index 0000000..4eb232c --- /dev/null +++ b/fckeditor/_samples/perl/sample04.cgi @@ -0,0 +1,174 @@ +#!/usr/bin/env perl + +##### +# FCKeditor - The text editor for Internet - http://www.fckeditor.net +# Copyright (C) 2003-2008 Frederico Caldeira Knabben +# +# == BEGIN LICENSE == +# +# Licensed under the terms of any of the following licenses at your +# choice: +# +# - GNU General Public License Version 2 or later (the "GPL") +# http://www.gnu.org/licenses/gpl.html +# +# - GNU Lesser General Public License Version 2.1 or later (the "LGPL") +# http://www.gnu.org/licenses/lgpl.html +# +# - Mozilla Public License Version 1.1 or later (the "MPL") +# http://www.mozilla.org/MPL/MPL-1.1.html +# +# == END LICENSE == +# +# Sample page. +##### + +## START: Hack for Windows (Not important to understand the editor code... Perl specific). +if(Windows_check()) { + chdir(GetScriptPath($0)); +} + +sub Windows_check +{ + # IIS,PWS(NT/95) + $www_server_os = $^O; + # Win98 & NT(SP4) + if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; } + # AnHTTPd/Omni/IIS + if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; } + # Win Apache + if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; } + if($www_server_os=~ /win/i) { return(1); } + return(0); +} + +sub GetScriptPath { + local($path) = @_; + if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; } + $path; +} +## END: Hack for IIS + +require '../../fckeditor.pl'; + +# When $ENV{'PATH_INFO'} cannot be used by perl. +# $DefRootPath = "/XXXXX/_samples/perl/sample04.cgi"; Please write in script. + +my $DefServerPath = ""; +my $ServerPath; + + $ServerPath = &GetServerPath(); + + if($ENV{'REQUEST_METHOD'} eq "POST") { + read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); + } else { + $buffer = $ENV{'QUERY_STRING'}; + } + @pairs = split(/&/,$buffer); + foreach $pair (@pairs) { + ($name,$value) = split(/=/,$pair); + $value =~ tr/+/ /; + $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; + $value =~ s/\t//g; + $value =~ s/\r\n/\n/g; + $FORM{$name} .= "\0" if(defined($FORM{$name})); + $FORM{$name} .= $value; + } + +#!!Caution javascript \ Quart + + print "Content-type: text/html\n\n"; + print <<"_HTML_TAG_"; + + + + FCKeditor - Sample + + + + + + +

FCKeditor - Perl - Sample 4

+ This sample shows how to change the editor skin. +
+ + + + + +
+ Select the skin to load:  + + +
+
+
+_HTML_TAG_ + + #// Automatically calculates the editor base path based on the _samples directory. + #// This is usefull only for these samples. A real application should use something like this: + #// $oFCKeditor->BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value. + $sBasePath = $ServerPath; + $sBasePath = substr( $sBasePath, 0, index( $sBasePath, "_samples" ) ) ; + + &FCKeditor('FCKeditor1'); + $BasePath = $sBasePath; + + if($FORM{'Skin'} ne "") { + $Config{'SkinPath'} = $sBasePath . 'editor/skins/' . &specialchar_cnv( $FORM{'Skin'} ) . '/' ; + } + $Value = '

This is some sample text. You are using FCKeditor.

' ; + &Create() ; + + print <<"_HTML_TAG_"; +
+ +
+ + +_HTML_TAG_ + +################ +#Please use this function, rewriting it depending on a server's environment. +################ +sub GetServerPath +{ +my $dir; + + if($DefServerPath) { + $dir = $DefServerPath; + } else { + if($ENV{'PATH_INFO'}) { + $dir = $ENV{'PATH_INFO'}; + } elsif($ENV{'FILEPATH_INFO'}) { + $dir = $ENV{'FILEPATH_INFO'}; + } elsif($ENV{'REQUEST_URI'}) { + $dir = $ENV{'REQUEST_URI'}; + } + } + return($dir); +} diff --git a/fckeditor/_samples/perl/sampleposteddata.cgi b/fckeditor/_samples/perl/sampleposteddata.cgi new file mode 100644 index 0000000..7702ad5 --- /dev/null +++ b/fckeditor/_samples/perl/sampleposteddata.cgi @@ -0,0 +1,107 @@ +#!/usr/bin/env perl + +##### +# FCKeditor - The text editor for Internet - http://www.fckeditor.net +# Copyright (C) 2003-2008 Frederico Caldeira Knabben +# +# == BEGIN LICENSE == +# +# Licensed under the terms of any of the following licenses at your +# choice: +# +# - GNU General Public License Version 2 or later (the "GPL") +# http://www.gnu.org/licenses/gpl.html +# +# - GNU Lesser General Public License Version 2.1 or later (the "LGPL") +# http://www.gnu.org/licenses/lgpl.html +# +# - Mozilla Public License Version 1.1 or later (the "MPL") +# http://www.mozilla.org/MPL/MPL-1.1.html +# +# == END LICENSE == +# +# This page lists the data posted by a form. +##### + +## START: Hack for Windows (Not important to understand the editor code... Perl specific). +if(Windows_check()) { + chdir(GetScriptPath($0)); +} + +sub Windows_check +{ + # IIS,PWS(NT/95) + $www_server_os = $^O; + # Win98 & NT(SP4) + if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; } + # AnHTTPd/Omni/IIS + if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; } + # Win Apache + if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; } + if($www_server_os=~ /win/i) { return(1); } + return(0); +} + +sub GetScriptPath { + local($path) = @_; + if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; } + $path; +} +## END: Hack for IIS + +require '../../fckeditor.pl'; + + if($ENV{'REQUEST_METHOD'} eq "POST") { + read(STDIN, $buffer, $ENV{'CONTENT_LENGTH'}); + } else { + $buffer = $ENV{'QUERY_STRING'}; + } + @pairs = split(/&/,$buffer); + foreach $pair (@pairs) { + ($name,$value) = split(/=/,$pair); + $value =~ tr/+/ /; + $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; + $value =~ s/\t//g; + $value =~ s/\r\n/\n/g; + $FORM{$name} .= "\0" if(defined($FORM{$name})); + $FORM{$name} .= $value; + } + + print "Content-type: text/html\n\n"; + print <<"_HTML_TAG_"; + + + + FCKeditor - Samples - Posted Data + + + + + +

FCKeditor - Samples - Posted Data

+ This page lists all data posted by the form. +
+ + + + + + + + +_HTML_TAG_ + + foreach $key (keys %FORM) { + $postedValue = &specialchar_cnv($FORM{$key}); + print <<"_HTML_TAG_"; + + + + +_HTML_TAG_ + } + print <<"_HTML_TAG_"; +
Field NameValue
$key
$postedValue
+ + +_HTML_TAG_ diff --git a/fckeditor/_samples/php/sample01.php b/fckeditor/_samples/php/sample01.php new file mode 100644 index 0000000..eb1ccee --- /dev/null +++ b/fckeditor/_samples/php/sample01.php @@ -0,0 +1,57 @@ + + + + + FCKeditor - Sample + + + + + +

FCKeditor - PHP - Sample 1

+ This sample displays a normal HTML form with an FCKeditor with full features + enabled. +
+
+BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value. +$sBasePath = $_SERVER['PHP_SELF'] ; +$sBasePath = substr( $sBasePath, 0, strpos( $sBasePath, "_samples" ) ) ; + +$oFCKeditor = new FCKeditor('FCKeditor1') ; +$oFCKeditor->BasePath = $sBasePath ; +$oFCKeditor->Value = '

This is some sample text. You are using FCKeditor.

' ; +$oFCKeditor->Create() ; +?> +
+ +
+ + diff --git a/fckeditor/_samples/php/sample02.php b/fckeditor/_samples/php/sample02.php new file mode 100644 index 0000000..3682b61 --- /dev/null +++ b/fckeditor/_samples/php/sample02.php @@ -0,0 +1,108 @@ + + + + + FCKeditor - Sample + + + + + + +

FCKeditor - PHP - Sample 2

+ This sample shows the editor in all its available languages. +
+ + + + + +
+ Select a language:  + + +
+
+
+BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value. +$sBasePath = $_SERVER['PHP_SELF'] ; +$sBasePath = substr( $sBasePath, 0, strpos( $sBasePath, "_samples" ) ) ; + +$oFCKeditor = new FCKeditor('FCKeditor1') ; +$oFCKeditor->BasePath = $sBasePath ; + +if ( isset($_GET['Lang']) ) +{ + $oFCKeditor->Config['AutoDetectLanguage'] = false ; + $oFCKeditor->Config['DefaultLanguage'] = $_GET['Lang'] ; +} +else +{ + $oFCKeditor->Config['AutoDetectLanguage'] = true ; + $oFCKeditor->Config['DefaultLanguage'] = 'en' ; +} + +$oFCKeditor->Value = '

This is some sample text. You are using FCKeditor.

' ; +$oFCKeditor->Create() ; +?>
+ +
+ + diff --git a/fckeditor/_samples/php/sample03.php b/fckeditor/_samples/php/sample03.php new file mode 100644 index 0000000..2768e02 --- /dev/null +++ b/fckeditor/_samples/php/sample03.php @@ -0,0 +1,89 @@ + + + + + FCKeditor - Sample + + + + + + +

FCKeditor - PHP - Sample 3

+ This sample shows how to change the editor toolbar. +
+ + + + + +
+ Select the toolbar to load:  + + +
+
+
+BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value. +$sBasePath = $_SERVER['PHP_SELF'] ; +$sBasePath = substr( $sBasePath, 0, strpos( $sBasePath, "_samples" ) ) ; + +$oFCKeditor = new FCKeditor('FCKeditor1') ; +$oFCKeditor->BasePath = $sBasePath ; + +if ( isset($_GET['Toolbar']) ) + $oFCKeditor->ToolbarSet = htmlspecialchars($_GET['Toolbar']); + +$oFCKeditor->Value = '

This is some sample text. You are using FCKeditor.

' ; +$oFCKeditor->Create() ; +?> +
+ +
+ + diff --git a/fckeditor/_samples/php/sample04.php b/fckeditor/_samples/php/sample04.php new file mode 100644 index 0000000..bed9e8b --- /dev/null +++ b/fckeditor/_samples/php/sample04.php @@ -0,0 +1,95 @@ + + + + + FCKeditor - Sample + + + + + + +

FCKeditor - PHP - Sample 4

+ This sample shows how to change the editor skin. +
+ + + + + +
+ Select the skin to load:  + + +
+
+
+BasePath = '/fckeditor/' ; // '/fckeditor/' is the default value. +$sBasePath = $_SERVER['PHP_SELF'] ; +$sBasePath = substr( $sBasePath, 0, strpos( $sBasePath, "_samples" ) ) ; + +$oFCKeditor = new FCKeditor('FCKeditor1') ; +$oFCKeditor->BasePath = $sBasePath ; + +if ( isset($_GET['Skin']) ) + $oFCKeditor->Config['SkinPath'] = $sBasePath . 'editor/skins/' . htmlspecialchars($_GET['Skin']) . '/' ; + +$oFCKeditor->Value = '

This is some sample text. You are using FCKeditor.

' ; +$oFCKeditor->Create() ; +?> +
+ +
+ + diff --git a/fckeditor/_samples/php/sampleposteddata.php b/fckeditor/_samples/php/sampleposteddata.php new file mode 100644 index 0000000..11b87fc --- /dev/null +++ b/fckeditor/_samples/php/sampleposteddata.php @@ -0,0 +1,69 @@ + + + + + FCKeditor - Samples - Posted Data + + + + + +

FCKeditor - Samples - Posted Data

+ This page lists all data posted by the form. +
+ + + + + + + + + $value ) +{ + if ( get_magic_quotes_gpc() ) + $postedValue = htmlspecialchars( stripslashes( $value ) ) ; + else + $postedValue = htmlspecialchars( $value ) ; + +?> + + + + + +
Field NameValue
+ + diff --git a/fckeditor/_samples/py/sample01.py b/fckeditor/_samples/py/sample01.py new file mode 100644 index 0000000..c56f16e --- /dev/null +++ b/fckeditor/_samples/py/sample01.py @@ -0,0 +1,80 @@ +#!/usr/bin/env python + +""" +FCKeditor - The text editor for Internet - http://www.fckeditor.net +Copyright (C) 2003-2008 Frederico Caldeira Knabben + +== BEGIN LICENSE == + +Licensed under the terms of any of the following licenses at your +choice: + + - GNU General Public License Version 2 or later (the "GPL") + http://www.gnu.org/licenses/gpl.html + + - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + http://www.gnu.org/licenses/lgpl.html + + - Mozilla Public License Version 1.1 or later (the "MPL") + http://www.mozilla.org/MPL/MPL-1.1.html + +== END LICENSE == + +Sample page. +""" + +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 """ + + + FCKeditor - Sample + + + + + +

FCKeditor - Python - Sample 1

+ This sample displays a normal HTML form with an FCKeditor with full features + enabled. +
+
+""" + +# 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 sample text. You are using FCKeditor.

""" + print oFCKeditor.Create() +except Exception, e: + print e +print """ +
+ +
+""" + +# For testing your environments +print "
" +for key in os.environ.keys(): + print "%s: %s
" % (key, os.environ.get(key, "")) +print "
" + +# Document footer +print """ + + +""" diff --git a/fckeditor/_samples/py/sampleposteddata.py b/fckeditor/_samples/py/sampleposteddata.py new file mode 100644 index 0000000..bc759d5 --- /dev/null +++ b/fckeditor/_samples/py/sampleposteddata.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python + +""" +FCKeditor - The text editor for Internet - http://www.fckeditor.net +Copyright (C) 2003-2008 Frederico Caldeira Knabben + +== BEGIN LICENSE == + +Licensed under the terms of any of the following licenses at your +choice: + + - GNU General Public License Version 2 or later (the "GPL") + http://www.gnu.org/licenses/gpl.html + + - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + http://www.gnu.org/licenses/lgpl.html + + - Mozilla Public License Version 1.1 or later (the "MPL") + http://www.mozilla.org/MPL/MPL-1.1.html + +== END LICENSE == + +This page lists the data posted by a form. +""" + +import cgi +import os + +# Tell the browser to render html +print "Content-Type: text/html" +print "" + +try: + # Create a cgi object + form = cgi.FieldStorage() +except Exception, e: + print e + +# Document header +print """ + + + FCKeditor - Samples - Posted Data + + + + + +""" + +# This is the real work +print """ +

FCKeditor - Samples - Posted Data

+ This page lists all data posted by the form. +
+ + + + + + + + +""" +for key in form.keys(): + try: + value = form[key].value + print """ + + + + + """ % (key, value) + except Exception, e: + print e +print "
Field NameValue
%s
%s
" + +# For testing your environments +print "
" +for key in os.environ.keys(): + print "%s: %s
" % (key, os.environ.get(key, "")) +print "
" + +# Document footer +print """ + + +""" diff --git a/fckeditor/_samples/sample.css b/fckeditor/_samples/sample.css new file mode 100644 index 0000000..f23fe05 --- /dev/null +++ b/fckeditor/_samples/sample.css @@ -0,0 +1,74 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Styles used in the samples pages. + */ + +body, td, th, input, select, textarea +{ + font-size: 12px; + font-family: Arial, Verdana, Sans-Serif; +} + +h1 +{ + font-weight: bold; + font-size: 180%; + margin-bottom: 10px; +} + +form +{ + margin: 0; + padding: 0; +} + +#outputSample +{ + table-layout: fixed; + width: 100%; +} + +pre +{ + margin: 0; + padding: 0; + + white-space: pre; /* CSS2 */ + white-space: -moz-pre-wrap; /* Mozilla*/ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS 2.1 */ + white-space: pre-line; /* CSS 3 (and 2.1 as well, actually) */ + word-wrap: break-word; /* IE */ +} + +#outputSample thead th +{ + color: #dddddd; + background-color: #999999; + padding: 4px; + white-space: nowrap; +} + +#outputSample tbody th +{ + vertical-align: top; + text-align: left; +} diff --git a/fckeditor/_samples/sampleslist.html b/fckeditor/_samples/sampleslist.html new file mode 100644 index 0000000..65ec5ec --- /dev/null +++ b/fckeditor/_samples/sampleslist.html @@ -0,0 +1,120 @@ + + + + + FCKeditor - Sample Selection + + + + + + + + + + +
+ Please select the sample you want to view: +
+ +
+ + diff --git a/fckeditor/_upgrade.html b/fckeditor/_upgrade.html new file mode 100644 index 0000000..d38e3a9 --- /dev/null +++ b/fckeditor/_upgrade.html @@ -0,0 +1,39 @@ + + + + + FCKeditor - Upgrade + + + + +

+ FCKeditor Upgrade

+

+ Please check the following URL for notes regarding upgrade:
+ + http://docs.fckeditor.net/FCKeditor_2.x/Developers_Guide/Installation/Upgrading

+ + diff --git a/fckeditor/_whatsnew.html b/fckeditor/_whatsnew.html new file mode 100644 index 0000000..a34e704 --- /dev/null +++ b/fckeditor/_whatsnew.html @@ -0,0 +1,167 @@ + + + + + FCKeditor ChangeLog - What's New? + + + + +

+ FCKeditor ChangeLog - What's New?

+

+ Version 2.6.3

+

+ Fixed Bugs:

+
    +
  • [#2412] FCK.InsertHtml() + is now properly removing selected contents after content insertion in Firefox.
  • +
  • [#2420] Spelling + mistake corrections made by the spell checking dialog are now undoable.
  • +
  • [#2411] Insert + anchor was not working for non-empty selections.
  • +
  • [#2426] It was + impossible to switch between editor areas with a single click.
  • +
  • Language file updates for the following languages: +
      +
    • Canadian French
    • +
    • [#2402] Catalan +
    • +
    • [#2400] Chinese + (Simplified and Traditional)
    • +
    • [#2401] Croatian
    • +
    • [#2422] Czech
    • +
    • [#2417] Dutch
    • +
    • [#2428] French
    • +
    • German
    • +
    • [#2427] Hebrew
    • +
    • [#2410] Hindi
    • +
    • [#2405] Japanese
    • +
    • [#2409] Norwegian + and Norwegian Bokmål
    • +
    • [#2429] Spanish
    • +
    • [#2406] Vietnamese
    • +
    +
  • +
+

+ This version has been sponsored by Data Illusion + survey software solutions.

+

+ Version 2.6.3 Beta

+

+ New Features and Improvements:

+
    +
  • [#439] Added a + new context menu option for opening links in the editor.
  • +
  • [#2220] + Email links from the Link dialog are now encoded by default + to prevent being harvested by spammers. (Kudos to asuter for proposing the patch) +
  • +
  • [#2234] Added + the ability to create, modify and remove DIV containers.
  • +
  • [#2247] The + SHIFT+SPACE keystroke will now produce a &nbsp; character. +
  • +
  • [#2252] It's + now possible to enable the browsers default menu using the configuration file (FCKConfig.BrowserContextMenu + option).
  • +
  • [#2032] Added + HTML samples for legacy HTML and Flash HTML.
  • +
  • [#234] Introduced + the "PreventSubmitHandler" setting, which makes it possible to instruct the editor + to not handle the hidden field update on form submit events.
  • +
+

+ Fixed Bugs:

+
    +
  • [#2319] On Opera + and Firefox 3, the entire page was scrolling on SHIFT+ENTER, or when EnterMode='br'.
  • +
  • [#2321] On Firefox + 3, the entire page was scrolling when inserting block elements with the FCK.InsertElement + function, used by the Table and Horizontal Rule buttons..
  • +
  • [#692] Added some + hints in editor/css/fck_editorarea.css on how to handle style items that would break + the style combo.
  • +
  • [#2263] Fixed + a JavaScript error in IE which occurs when there are placeholder elements in the + document and the user has pressed the Source button.
  • +
  • [#2314] Corrected + mixed up Chinese translations for the blockquote command.
  • +
  • [#2323] Fixed + the issue where the show blocks command loses the current selection from the view + area when editing a long document.
  • +
  • [#2322] Fixed + the issue where the fit window command loses the current selection and scroll position + in the editing area.
  • +
  • [#1917] Fixed + the issue where the merge down command for tables cells does not work in IE for + more than two cells.
  • +
  • [#2320] Fixed + the issue where the Find/Replace dialog scrolls the entire page.
  • +
  • [#1645] Added + warning message about Firefox 3's strict origin policy.
  • +
  • [#2272] Improved + the garbage filter in Paste from Word dialog.
  • +
  • [#2327] Fixed + invalid HTML in the Paste dialog.
  • +
  • [#1907] Fixed + sporadic "FCKeditorAPI is not defined" errors in Firefox 3.
  • +
  • [#2356] Fixed + access denied error in IE7 when FCKeditor is launched from local filesystem.
  • +
  • [#1150] Fixed + the type="_moz" attribute that sometimes appear in <br> tags in non-IE browsers.
  • +
  • [#1229] Converting + multiple contiguous paragraphs to Formatted will now be merged into a single <PRE> + block.
  • +
  • [#2363] There + were some sporadic "Permission Denied" errors with IE on some situations.
  • +
  • [#2135] Fixed + a data loss bug in IE when there are @import statements in the editor's CSS files, + and IE's cache is set to "Check for newer versions on every visit".
  • +
  • [#2376] FCK.InsertHtml() + will now insert to the last selected position after the user has selected things + outside of FCKeditor, in IE.
  • +
  • [#2368] Fixed + broken protect source logic for comments in IE.
  • +
  • [#2387] Fixed + JavaScript error with list commands when the editable document is selected with + Ctrl-A.
  • +
  • [#2390] Fixed + the issue where indent styles in JavaScript-generated <p> blocks are erased + in IE.
  • +
  • [#2394] Fixed + JavaScript error with the "split vertically" command in IE when attempting to split + cells in the last row of a table.
  • +
  • [#2316] The sample + posted data page has now the table fixed at 100% width.
  • +
  • [#2396] SpellerPages + was causing a "Permission Denied" error in some situations.
  • +
+

+ See previous versions history

+ + diff --git a/fckeditor/_whatsnew_history.html b/fckeditor/_whatsnew_history.html new file mode 100644 index 0000000..30e1ada --- /dev/null +++ b/fckeditor/_whatsnew_history.html @@ -0,0 +1,3787 @@ + + + + + FCKeditor ChangeLog - What's New? + + + + +

+ FCKeditor ChangeLog - What's New?

+

+ Version 2.6.2

+

+ New Features and Improvements:

+
    +
  • [#2043] The debug + script is not any more part of the compressed files. If FCKeditor native debugging + features (FCKDebug) are required, the _source folder must be present in your installation.
  • +
+

+ Fixed Bugs:

+
    +
  • [#2248] Calling + FCK.InsertHtml( 'nbsp;') was inserting a plain space instead of a non breaking space + character.
  • +
  • [#2273] The dragresizetable + plugin now works in Firefox 3 as well.
  • +
  • [#2254] Minor + fix in FCKSelection for nodeTagName object.
  • +
  • [#1614] Unified + FCKConfig.FullBasePath with FCKConfig.BasePath.
  • +
  • [#2127] Changed + floating dialogs to use fixed positioning so that they are no longer affected by + scrolling.
  • +
  • [#2018] Reversed + the fix for #183 + which broke FCKeditorAPI's cleanup logic. A new configuration directive MsWebBrowserControlCompat + has been added for those who wish to force the #183 fix to be enabled.
  • +
  • [#2276] [#2279] On Opera + and Firefox 3, the entire page was scrolling on ENTER.
  • +
  • [#2149] CSS urls + with querystring parameters were not being accepted for CSS values in the configuration + file (like EditorAreaCSS).
  • +
  • [#2287] On some + specific cases, with Firefox 2, some extra spacing was appearing in the final HTML + on posting, if inserting two successive tables.
  • +
  • [#2287] Block + elements (like tables or horizontal rules) will be inserted correctly now when the + cursor is at the start or the end of blocks. No extra paragraphs will be included + in this operation.
  • +
  • [#2197] The TAB + key will now have the default browser behavior if TabSpaces=0. It will move the + focus out of the editor (expect on Safari).
  • +
  • [#2296] Fixed + permission denied error on clicking on files in the file browser.
  • +
+

+ Version 2.6.1

+

+ New Features and Improvements:

+
    +
  • [#2150] The searching + speed of the Find/Replace dialog has been vastly improved.
  • +
  • New language file for Gujarati (by Nilam Doctor).
  • +
  • A new TabIndex property has been added to the JavaScript integration files.
  • +
  • [#2215] Following + the above new feature, the ReplaceTextarea method will now copy the textarea.tabIndex + value if available.
  • +
  • [#2163] If the + FCKConfig.DocType setting points to a HTML DocType then the output won't generate + self-closing tags (it will output <img > instead of <img />).
  • +
  • [#2173] A throbber + will be shown in the Quick Uploads.
  • +
  • [#2142] HTML + samples will now use sampleposteddata.php in action parameter inside a form.
  • +
+

+ Fixed Bugs:

+
    +
  • [#768] It is no + longer possible for an image to have its width and height defined with both HTML + attributes and inline CSS styles in IE.
  • +
  • [#1426] Fixed + the error loading fckstyles.xml in servers which cannot return the correct content + type header for .xml files.
  • +
  • [#2102] Fixed + FCKConfig.DocType which stopped working in FCKeditor 2.6.
  • +
  • [#2039] Fixed + the locking up issue in the Find/Replace dialog.
  • +
  • [#2124] PHP File + Browser: fixed issue with resolving paths on Windows servers with PHP 5.2.4/5.2.5.
  • +
  • [#2059] Fixed + the error in the toolbar name in fckeditor.py.
  • +
  • [#2065] Floating + dialogs will now block the user from re-selecting the editing area by pressing Tab.
  • +
  • [#2114] Added + a workaround for an IE6 bug which causes floating dialogs to appear blank after + opening it for the first time.
  • +
  • [#2136] Fixed + JavaScript error in IE when opening the bullet list properties dialog.
  • +
  • [#1633] External + styles should no longer interfere with the appearance of the editor and floating + panels now.
  • +
  • [#2113] Fixed + unneeded <span class="Apple-style-span"> created after inserting + special characters.
  • +
  • [#2170] Fixed + Ctrl-Insert hotkey for copying.
  • +
  • [#2125] Fixed + the issue that FCK.InsertHtml() doesn't insert contents at the caret position when + dialogs are opened in IE.
  • +
  • [#1764] FCKeditor + will no longer catch focus in IE on load when StartupFocus is false and the initial + content is empty.
  • +
  • [#2126] Opening + and closing floating dialogs will no longer cause toolbar button states to become + frozen.
  • +
  • [#2159] Selection + are now correctly restored when undoing changes made by the Replace dialog.
  • +
  • [#2160] "Match + whole word" in the Find and Replace dialog will now find words next to punctuation + marks as well.
  • +
  • [#2162] If the + configuration is set to work including the <head> (FullPage), references to + stylesheets added by Firefox extensions won't be added to the output.
  • +
  • [#2168] Comments + won't generate new paragraphs in the output.
  • +
  • [#2184] Fixed + several validation errors in the File Browser.
  • +
  • [#1383] Fixed + an IE issue where pressing backspace may merge a hyperlink on the previous line + with the text on the current line.
  • +
  • [#1691] Creation + of links in Safari failed if there was no selection.
  • +
  • [#2188] PreserveSessionOnFileBrowser + is now removed as it was made obsolete with 2.6.
  • +
  • [#898] The styles + for the editing area are applied in the image preview dialog.
  • +
  • [#2056] Fixed + several validation errors in the dialogs.
  • +
  • [#2063] Fixed + some problems in asp related to the use of network paths for the location of the + uploaded files.
  • +
  • [#1593] The "Sample + Posted Data" page will now properly wrap the text.
  • +
  • [#2239] The PHP + code in sampleposteddata.php has been changed from "<?=" to "<? echo".
  • +
  • [#2241] Fixed + 404 error in floating panels when FCKeditor is installed to a different domain.
  • +
  • [#2066] Added + a workaround for a Mac Safari 3.1 browser bug which caused the Fit Window button + to give a blank screen.
  • +
  • [#2218] Improved + Gecko based browser detection to accept Epiphany/Gecko as well.
  • +
  • [#2193] Fixed + the issue where the caret cannot reach the last character of a paragraph in Opera + 9.50.
  • +
  • [#2264] Fixed + empty spaces that appear at the top of the editor in Opera 9.50.
  • +
  • [#2238] The <object> + placeholder was not being properly displayed in the compressed distribution version + and nightly builds.
  • +
  • [#2115] Fixed + JavaScript (permission denied) error in Firefox when file has been uploaded.
  • +
+

+ Version 2.6

+

+ No changes. The stabilization of the 2.6 RC was completed successfully, as expected.

+

+ Version 2.6 RC

+

+ New Features and Improvements:

+
    +
  • [#2017] The FCKeditorAPI.Instances + object can now be used to access all FCKeditor instances available in the page.
  • +
  • [#1980] Attention: By default, the editor now produces <strong> + and <em> instead of <b> and <i>.
  • +
+

+ Fixed Bugs:

+
    +
  • [#1924] The dialog + close button is now correctly positioned in IE in RTL languages.
  • +
  • [#1933] Placeholder + dialog will now display the placeholder value correctly in IE.
  • +
  • [#957] Pressing + Enter or typing after a placeholder with the placeholder plugin will no longer generate + colored text.
  • +
  • [#1952] Fixed + an issue in FCKTools.FixCssUrls that, other than wrong, was breaking Opera.
  • +
  • [#1695] Removed + Ctrl-Tab hotkey for Source mode and allowed Ctrl-T to work in Firefox.
  • +
  • [#1666] Fixed + permission denied errors during opening popup menus in IE6 under domain relaxation + mode.
  • +
  • [#1934] Fixed + JavaScript errors when calling Selection.EnsureSelection() in dialogs.
  • +
  • [#1920] Fixed + SSL warning message when opening image and flash dialogs under HTTPS in IE6.
  • +
  • [#1955] [#1981] [#1985] [#1989] + Fixed XHTML source formatting errors in non-IE browsers.
  • +
  • [#2000] The # + character is now properly encoded in file names returned by the File Browser.
  • +
  • [#1945] New folders + and file names are now properly sanitized against control characters.
  • +
  • [#1944] Backslash + character is now disallowed in current folder path.
  • +
  • [#1055] Added + logic to override JavaScript errors occurring inside the editing frame due to user + added JavaScript code.
  • +
  • [#1647] Hitting + ENTER on list items containing block elements will now create new list item elements, + instead of adding further blocks to the same list item.
  • +
  • [#1411] Label + only combos now get properly grayed out when moving to source view.
  • +
  • [#2009] Fixed + an important bug regarding styles removal on styled text boundaries, introduced + with the 2.6 Beta 1.
  • +
  • [#2011] Internal + CSS <style> tags where being outputted when FullPage=true.
  • +
  • [#2016] The Link + dialog now properly selects the first field when opening it to modify mailto or + anchor links. This problem was also throwing an error in IE.
  • +
  • [#2021] The caret + will no longer remain behind in the editing area when the placeholder dialog is + opened.
  • +
  • [#2024] Fixed + JavaScript error in IE when the user tries to open dialogs in Source mode.
  • +
  • [#1853] Setting + ShiftEnterMode to p or div now works correctly when EnterMode is br.
  • +
  • [#1838] Fixed + the issue where context menus sometimes don't disappear after selecting an option. +
  • +
  • [#2028] Fixed + JavaScript error when EnterMode=br and user tries to insert a page break.
  • +
  • [#2002] Fixed + the issue where the maximize editor button does not vertically expand the editing + area in Firefox.
  • +
  • [#1842] PHP integration: + fixed filename encoding problems in file browser.
  • +
  • [#1832] Calling + FCK.InsertHtml() in non-IE browsers would now activate the document processor as + expected.
  • +
  • [#1998] The native + XMLHttpRequest class is now used in IE, whenever it is available.
  • +
  • [#1792] In IE, + the browser was able to enter in an infinite loop when working with multiple editors + in the same page.
  • +
  • [#1948] Some + CSS rules are reset to dialog elements to avoid conflict with the page CSS.
  • +
  • [#1965] IE was + having problems with SpellerPages, causing some errors to be thrown when completing + the spell checking in some situations.
  • +
  • [#2042] The FitWindow + command was throwing an error if executed in an editor where its relative button + is not present in the toolbar.
  • +
  • [#922] Implemented + a generic document processor for <OBJECT> and <EMBED> tags.
  • +
  • [#1831] Fixed + the issue where the placeholder icon for <EMBED> tags does not always show + up in IE7.
  • +
  • [#2049] Fixed + a deleted cursor CSS attribute in the minified CSS inside fck_dialog_common.js.
  • +
  • [#1806] In IE, + the caret will not any more move to the previous line when selecting a Format style + inside an empty paragraph.
  • +
  • [#1990] In IE, + dialogs using API calls which deals with the selection, like InsertHtml now can + be sure the selection will be placed in the correct position.
  • +
  • [#1997] With + IE, the first character of table captions where being lost on table creation.
  • +
  • The selection and cursor position was not being properly handled when creating some + elements like forms and tables.
  • +
  • [#662] In the + Perl sample files, the GetServerPath function will now calculate the path properly.
  • +
  • [#2208] Added + missing translations in Italian language file.
  • +
  • [#2096] Added + the codepage to basexml file. Filenames with special chars should now display properly.
  • +
+

+ Version 2.6 Beta 1

+

+ New Features and Improvements:

+
    +
  • [#35] New + (and cool!) floating dialog system, avoiding problems with popup blockers + and enhancing the editor usability.
  • +
  • [#1886] + Adobe AIR compatibility.
  • +
  • [#123] Full support + for document.domain with automatic domain detection.
  • +
  • [#1622] New + inline CSS cache feature, making it possible to avoid downloading the CSS + files for the editing area and skins. For that, it is enough to set the EditorAreaCSS, + SkinEditorCSS and SkinDialogCSS to string values in the format "/absolute/path/for/urls/|<minified + CSS styles". All internal CSS links are already using this feature.
  • +
  • New language file for Canadian French.
  • +
+

+ Fixed Bugs:

+
    +
  • [#1643] Resolved + several "strict warning" messages in Firefox when running FCKeditor.
  • +
  • [#1522] The ENTER + key will now work properly in IE with the cursor at the start of a formatted block.
  • +
  • [#1503] It's + possible to define in the Styles that a Style (with an empty class) must be shown + selected only when no class is present in the current element, and selecting that + item will clear the current class (it does apply to any attribute, not only classes).
  • +
  • [#191] The scrollbars + are now being properly shown in Firefox Mac when placing FCKeditor inside a hidden + div.
  • +
  • [#503] Orphaned + <li> elements now get properly enclosed in a <ul> on output.
  • +
  • [#309] The ENTER + key will not any more break <button> elements at the beginning of paragraphs.
  • +
  • [#1654] The editor + was not loading on a specific unknown situation. The breaking point has been removed.
  • +
  • [#1707] The editor + no longer hangs when operating on documents imported from Microsoft Word.
  • +
  • [#1514] Floating + panels attached to a shared toolbar among multiple FCKeditor instances are no longer + misplaced when the editing areas are absolutely or relatively positioned.
  • +
  • [#1715] The ShowDropDialog + is now enforced only when ForcePasteAsPlainText = true.
  • +
  • [#1336] Sometimes + the autogrow plugin didn't work properly in Firefox.
  • +
  • [#1728] External + toolbars are now properly sized in Opera.
  • +
  • [#1782] Clicking + on radio buttons or checkboxes in the editor in IE will no longer cause lockups + in IE.
  • +
  • [#805] The FCKConfig.Keystrokes + commands where executed even if the command itself was disabled.
  • +
  • [#982] The button + to empty the box in the "Paste from Word" has been removed as it leads to confusion + for some users.
  • +
  • [#1682] Editing + control elements in Firefox, Opera and Safari now works properly.
  • +
  • [#1613] The editor + was surrounded by a <div> element that wasn't really needed.
  • +
  • [#676] If a form + control was moved in IE after creating it, then it did lose its name.
  • +
  • [#738] It wasn't + possible to change the type of an existing button.
  • +
  • [#1854] Indentation + now works inside table cells.
  • +
  • [#1717] The editor + was entering on looping on some specific cases when dealing with invalid source + markup.
  • +
  • [#1530] Pasting + text into the "Find what" fields in the Find and Replace dialog would now activate + the find and replace buttons.
  • +
  • [#1828] The Find/Replace + dialog will no longer display wrong starting positions for the match when there + are multiple and identical characters preceding the character at the real starting + point of the match.
  • +
  • [#1878] Fixed + a JavaScript error which occurs in the Find/Replace dialog when the user presses + "Find" or "Replace" after the "No match found" message has appeared.
  • +
  • [#1355] Line + breaks and spaces are now conserved when converting to and from the "Formatted" + format.
  • +
  • [#1670] Improved + the background color behind smiley icons and special characters in their corresponding + dialogs.
  • +
  • [#1693] Custom + error messages are now properly displayed in the file browser.
  • +
  • [#970] The text + and value fields in the selection box dialog will no longer extend beyond the dialog + limits when the user inputs a very long text or value for one of the selection options.
  • +
  • [#479] Fixed the + issue where pressing Enter in an <o:p> tag in IE does not generate line breaks.
  • +
  • [#481] Fixed the + issue where the image preview in image dialog sometimes doesn't display after selecting + the image from server browser.
  • +
  • [#1488] PHP integration: + the FCKeditor class is now more PHP5/6 friendly ("public" keyword is used instead + of depreciated "var").
  • +
  • [#1815] PHP integration: + removed closing tag: "?>", so no additional whitespace added when files are included.
  • +
  • [#1906] PHP file + browser: fixed problems with DetectHtml() function when open_basedir was set.
  • +
  • [#1871] PHP file + browser: permissions applied with the chmod command are now configurable.
  • +
  • [#1872] Perl + file browser: permissions applied with the chmod command are now configurable.
  • +
  • [#1873] Python + file browser: permissions applied with the chmod command are now configurable.
  • +
  • [#1572] ColdFusion + integration: fixed issues with setting the editor height.
  • +
  • [#1692] ColdFusion + file browser: it is possible now to define TempDirectory to avoid issues with GetTempdirectory() + returning an empty string.
  • +
  • [#1379] ColdFusion + file browser: resolved issues with OnRequestEnd.cfm breaking the file browser.
  • +
  • [#1509] InsertHtml() + in IE will no longer turn the preceding normal whitespace into &nbsp;.
  • +
  • [#958] The AddItem + method now has an additional fifth parameter "customData" that will be sent to the + Execute method of the command for that menu item, allowing a single command to be + used for different menu items..
  • +
  • [#1502] The RemoveFormat + command now also removes the attributes from the cleaned text. The list of attributes + is configurable with FCKConfig.RemoveAttributes.
  • +
  • [#1596] On Safari, + dialogs have now right-to-left layout when it runs a RTL language, like Arabic.
  • +
  • [#1344] Added + warning message on Copy and Cut operation failure on IE due to paste permission + settings.
  • +
  • [#1868] Links + to file browser has been changed to avoid requests containing double dots.
  • +
  • [#1229] Converting + multiple contiguous paragraphs to Formatted will now be merged into a single <PRE> + block.
  • +
  • [#1627] Samples + failed to load from local filesystem in IE7.
  • +
+

+ Version 2.5.1

+

+ New Features and Improvements:

+
    +
  • FCKeditor.Net 2.5 compatibility.
  • +
  • JavaScript integration file: +
      +
    • The new "FCKeditor.ReplaceAllTextareas" function is being introduced, + making it possible to replace many (or unknown) <textarea> elements in a single + call. The replacement can be also filtered by CSS class name, or by a custom function + evaluator.
    • +
    • It is now possible to set the default BasePath for all editor instances by setting + FCKeditor.BasePath. This is extremely useful when working with + the ReplaceAllTextareas function.
    • +
    +
  • +
+

+ Fixed Bugs:

+
    +
  • [#339] [#681] The SpellerPages + spell checker will now completely ignore the presence of HTML tags in the text. +
  • +
  • [#1643] Resolved + several "strict warning" messages in Firefox when running FCKeditor.
  • +
  • [#1603] Certain + specific markup was making FCKeditor entering in a loop, blocking its execution. +
  • +
  • [#1664] The ENTER + key will not any more swap the order of the tags when hit at the end of paragraphs. +
  • +
+

+ Version 2.5

+

+ New Features and Improvements:

+
    +
  • The heading options have been moved to the top, in the default settings for the + Format combo.
  • +
+

+ Fixed Bugs:

+
    +
  • The focus is now correctly set when working on Safari.
  • +
  • [#1436] Nested + context menu panels are now correctly closed on Safari.
  • +
  • Empty anchors are now properly created on Safari.
  • +
  • [#1359] FCKeditor + will no longer produce the strange visual effect of creating a selected space and + then deleting it in Internet Explorer.
  • +
  • [#1399] Removed + the empty entry in the language selection box of sample03.html.
  • +
  • [#1400] Fixed + the issue where the style selection box in sample14.html is not context sensitive.
  • +
  • [#1401] Completed + Hebrew translation of the user interface.
  • +
  • [#1409] Completed + Finnish translation of the user interface.
  • +
  • [#1414] Fixed + the issue where entity code words written inside a <pre> block in Source mode + are not converted to the corresponding characters after switching back to editor + mode.
  • +
  • [#1418] Fixed + the issue where a detached toolbar would flicker when FCKeditor is being loaded.
  • +
  • [#1419] Fixed + the issue where pressing Delete in the middle of two lists would incorrectly move + contents after the lists to the character position.
  • +
  • [#1420] Fixed + the issue where empty list items can become collapsed and uneditable when it has + one of more indented list items directly under it.
  • +
  • [#1431] Fixed + the issue where pressing Enter in a <pre> block in Internet Explorer would + move the caret one space forward instead of sending it to the next line.
  • +
  • [#1472] Completed + Arabic translation of the user interface.
  • +
  • [#1474] Fixed + the issue where reloading a page containing FCKeditor may provoke JavaScript errors + in Internet Explorer.
  • +
  • [#1478] Fixed + the issue where parsing fckstyles.xml fails if the file contains no <style> + nodes.
  • +
  • [#1491] Fixed + the issue where FCKeditor causes the selection to include an "end of line" character + in list items even though the list item is empty.
  • +
  • [#1496] Fixed + the issue where attributes under <area> and <map> nodes are destroyed + or left unprotected when switching to and from Source mode.
  • +
  • [#1500] Fixed + the issue where the function _FCK_PaddingNodeListener() is called excessively which + negatively affects performance.
  • +
  • [#1514] Fixed + the issue where floating menus are incorrectly positioned when the toolbar or the + editor frame are not static positioned.
  • +
  • [#1518] Fixed + the issue where excessive <BR> nodes are not removed after a paragraph is + split when creating lists.
  • +
  • [#1521] Fixed + JavaScript error and erratic behavior of the Replace dialog.
  • +
  • [#1524] Fixed + the issue where the caret jumps to the beginning or end of a list block and when + user is trying to select the end of a list item.
  • +
  • Completed Simplified Chinese translation of the user interface.
  • +
  • Completed Estonian translation of the user interface.
  • +
  • [#1406] Editor + was always "dirty" if flash is available in the contents.
  • +
  • [#1561] Non standard + elements are now properly applied if defined in the styles XML file.
  • +
  • [#1412] The _QuickUploadLanguage + value is now work properly for Perl.
  • +
  • Several compatibility fixes for Firefox 3 (Beta 1): +
      +
    • [#1558] Nested + context menu close properly when one of their options is selected.
    • +
    • [#1556] Dialogs + contents are now showing completely, without scrollbar.
    • +
    • [#1559] It is + not possible to have more than one panel opened at the same time.
    • +
    • [#1554] Links + now get underlined.
    • +
    • [#1557] The "Automatic" + and "More colors..." buttons were improperly styled in the color selector panels + (Opera too).
    • +
    • [#1462] The enter + key will not any more scroll the main window.
    • +
    +
  • +
  • [#1562] Fixed + the issue where empty paragraphs are added around page breaks each time the user + switches to Source mode.
  • +
  • [#1578] The editor + will now scroll correctly when hitting enter in front of a paragraph.
  • +
  • [#1579] Fixed + the issue where the create table and table properties dialogs are too narrow for + certain translations.
  • +
  • [#1580] Completed + Polish translation of the user interface.
  • +
  • [#1591] Fixed + JavaScript error when using the blockquote command in an empty document in IE.
  • +
  • [#1592] Fixed + the issue where attempting to remove a blockquote with an empty paragraph would + leave behind an empty blockquote IE.
  • +
  • [#1594] Undo/Redo + will now work properly for the color selectors.
  • +
  • [#1597] The color + boxes are now properly rendered in the color selector panels on sample14.html.
  • +
+

+ Version 2.5 Beta

+

+ New Features and Improvements:

+
    +
  • [#624] [#634] [#1300] [#1301] + Official compatibility support with Opera 9.50 and Safari 3 + (WebKit based browsers actually). These browsers are still in Beta, but we are confident + that we'll have amazing results as soon as they get stable. We are continuously + collaborating with Opera Software and Apple to bring a wonderful FCKeditor experience + over their browser platforms.
  • +
  • [#494] Introduced + the new Style System. We are not anymore relaying on browser features + to apply and remove styles, which guarantees that the editor will behave in + the same way in all browsers. It is an incredibly flexible system, + which aims to fit all developer's needs, from Flash content or HTML4 to XHTML 1.0 + Strict or XHTML 1.1: +
      +
    • All basic formatting features, like Bold and Italic, can be precisely controlled + by using the configuration file (CoreStyles setting). It means that now, + the Bold button, for example, can produce <b>, <strong>, <span class...>, + <span style...> or anything the developer prefers.
    • +
    • Again with the CoreStyles setting, each block format, font, size, and even + the color pickers can precisely reflect end developer's needs.
    • +
    • Because of the above changes, font sizes are much more flexible. Any kind of + font unit can be used, including a mix of units.
    • +
    • All styles, including toolbar bottom styles, are precisely controlled when being + applied to the document. FCKeditor uses an element table derived from the W3C XHTML + DTDs to precisely create the elements, guarantee standards compliant code.
    • +
    • No more <font> tags... well... actually, the system is so flexible + that it is up to you to use them or not.
    • +
    • It is possible to configure FCKeditor to produce a truly semantic aware and + XHTML 1.1 compliant code. Check out sample14.html.
    • +
    • It's also possible to precisely control which inline elements must be removed with + the "Remove All" button, by using the "RemoveFormatTags" + setting.
    • +
    • [#1231] [#160] Paragraph indentation + and justification now uses style attributes and don't create unnecessary + elements, and <blockquote> is not anymore used for it. Now, even CSS classes + can be used to indent or align text.
    • +
    • All paragraph formatting features work well when EnterMode=br.
    • +
    • [#172] All paragraph + formatting features work well when list items too.
    • +
    +
  • +
  • [#1197] [#132] The toolbar + now presents a new button for Blockquote. The indentation button + will not anymore be used for that.
  • +
  • [#125] Table's + columns size can now be changed by dragging on cell borders, with + the "dragresizetable" plugin.
  • +
  • The EditorAreaCSS config option can now also be set to a string of paths separated + by commas.
  • +
  • [#212] New "Show + Blocks" command button in toolbar to show block details in the editing + area.
  • +
  • [#915] The + undo/redo system has been revamped to work the same across Internet Explorer + and Gecko-based browsers (e.g. Firefox). A number of critical bugs in the undo/redo + system are also fixed.
  • +
  • [#194] The editor + now uses the Data Processor technology, which makes it possible + to handle different input formats. A sample of it may be found at "editor/plugins/bbcode/_sample", + that shows some simple BBCode support.
  • +
  • [#145] The "htaccess.txt" + file has been renamed to ".htaccess" as it doesn't bring security concerns, being + active out of the box.
  • +
  • File Browser and Quick Upload changes: +
      +
    • [#163] Attention: The default connector + in fckconfig.js has been changed from ASP to PHP. If you are using ASP remember + to change the _FileBrowserLanguage and _QuickUploadLanguage settings in your fckconfig.js. + [#454] The file + browser and upload connectors have been unified so they can reuse the same configuration + settings.
    • +
    • [#865] The ASP + and PHP connectors have been improved so it's easy to select the location of the + destination folder for each file type, and it's no longer necessary to use the "file", + "image", "flash" subfolders
      + Attention: The location of + all the connectors have been changed in the fckconfig.js file. Please check your + settings to match the current ones. Also review carefully the config file for your + server language.
    • +
    • [#688] Now the + Perl quick upload is available.
    • +
    • [#575] The Python + connector has been rewritten as a WSGI app to be fully compatible with the latest + python frameworks and servers. The QuickUpload feature has been added as well as + all the features available in the PHP connector. Thanks to Mariano Reingart.
    • +
    • [#561] The ASP + connector provides an AbsolutePath setting so it's possible to set the url to a + full domain or a relative path and specify that way the physical folder where the + files are stored..
    • +
    • [#333] The Quick + Upload now can use the same ServerPath parameter as the full connector.
    • +
    • [#199] The AllowedCommands + configuration setting is available in the asp and php connectors so it's possible + to disallow the upload of files (although the "select file" button will still be + available in the file browser).
    • +
    +
  • +
  • [#100] A new configuration + directive "FCKConfig.EditorAreaStyles" has been implemented to allow setting editing + area styles from JavaScript.
  • +
  • [#102] HTML code + generated by the "Paste As Plain Text" feature now obeys the EnterMode setting.
  • +
  • [#1266] Introducing + the HtmlEncodeOutput setting to instruct the editor to HTML-encode some characters + (&, < and >) in the posted data.
  • +
  • [#357] Added a + "Remove Anchor" option in the context menu for anchors.
  • +
  • [#1060] Compatibility + checks with Firefox 3.0 Alpha.
  • +
  • [#817] [#1077] New "Merge + Down/Right" commands for merging tables cells in non-Gecko browsers.
  • +
  • [#1288] The "More + Colors..." button in color selector popup has been made optional and configurable + by the EnableMoreFontColors option.
  • +
  • [#356] The + Find and Replace dialogs are now unified into a single dialog with tabs.
  • +
  • [#549] Added a + 'None' option to the FCKConfig.ToolbarLocation option to allow for hidden toolbars. +
  • +
  • [#1313] An XHTML + 1.1 target editor sample has been created as sample14.html.
  • +
  • The ASP, ColdFusion and PHP integration have been aligned to our standards.
  • +
+

+ Fixed Bugs:

+
    +
  • [#71] [#243] [#267] + The editor now takes care to not create invalid nested block elements, like creating + <form> or <hr> inside <p>.  
  • +
  • [SF + Patch 1511298] The CF Component failed on CFMX 6.0
  • +
  • [#639] If the + FCKConfig.DefaultLinkTarget setting was missing in fckconfig.js the links has target="undefined".
  • +
  • [#497] Fixed EMBED + attributes handling in IE.
  • +
  • [SF + Patch 1315722] Avoid getting a cached version of the folder contents after uploading + a file
  • +
  • [SF + Patch 1386086] The php connector has been protected so mkdir doesn't fail if + there are double slashes.
  • +
  • [#943] The PHP + connector now specifies that the included files are relative to the current path.
  • +
  • [#560] The PHP + connector will work better if the connector or the userfiles folder is a symlink.
  • +
  • [#784] Fixed a + non initialized $php_errormsg in the PHP connector.
  • +
  • [#802] The replace + dialog will now advance its searching position correctly and is able to search for + strings spanning across multiple inline tags.
  • +
  • [#944] The _samples + didn't work directly from the Mac filesystem.
  • +
  • [#946] Toolbar + images didn't show in non-IE browsers if the path contained a space.
  • +
  • [#291] [#395] [#932] Clicking outside the editor + it was possible to paste or apply formatting to the rest of the page in IE.
  • +
  • [#137] Fixed FCKConfig.TabSpaces + being ignored, and weird behaviors when pressing tab in edit source mode.
  • +
  • [#268] Fixed special + XHTML characters present in event attribute values being converted inappropriately + when switching to source view.
  • +
  • [#272] The toolbar + was cut sometimes in IE to just one row if there are multiple instances of the editor.
  • +
  • [#515] Tables + in Firefox didn't inherit font styles properly in Standards mode.
  • +
  • [#321] If FCKeditor + is initially hidden in Firefox it will no longer be necessary to call the oEditor.MakeEditable() + function.
  • +
  • [#299] The 'Browse + Server' button in the Image and Flash dialogs was a little too high.
  • +
  • [#931] The BodyId + and BodyClass configuration settings weren't applied in the preview window.
  • +
  • [#583] The "noWrap" + attribute for table cells was getting an empty value in Firefox. Thanks to geirhelge.
  • +
  • [#141] Fixed incorrect + startup focus in Internet Explorer after page reloads.
  • +
  • [#143] Fixed browser + lockup when the user writes <!--{PS..x}> into the editor in source mode.
  • +
  • [#174] Fixed incorrect + positioning of FCKeditor in full screen mode.
  • +
  • [#978] Fixed a + SpellerPages error with ColdFusion when no suggestions where available for a word.
  • +
  • [#977] The "shape" + attribute of <area> had its value changed to uppercase in IE.
  • +
  • [#996] "OnPaste" + event listeners will now get executed only once.
  • +
  • [#289] Removed + debugging popups from page load regarding JavaScript and CSS loading errors.
  • +
  • [#328] [#346] [#404] Fixed a number of problems + regarding <pre> blocks: +
      +
    1. Leading whitespaces and line breaks in <pre> blocks are trimmed when the user + switches between editor mode and source mode;
    2. +
    3. Pressing Enter inside a <pre> block would split the block into two, but the + expected behavior is simply inserting a line break;
    4. +
    5. Simple line breaks inside <pre> blocks entered in source mode are being turned + into <br> tags when the user switches to editor mode and back.
    6. +
    +
  • +
  • [#581] Fixed the + issue where the "Maximize the editor size" toolbar button stops working if any of + the following occurs: +
      +
    1. There exists a form input whose name or id is "style" in FCKeditor's host form;
    2. +
    3. There exists a form input whose name or id is "className" in FCKeditor's host form;
    4. +
    5. There exists a form and a form input whose name of id is "style" in the editing + frame.
    6. +
    +
  • +
  • [#183] Fixed the + issue when FCKeditor is being executed in a custom application with the WebBrowser + ActiveX control, hiding the WebBrowser control would incorrectly invoke FCKeditor's + cleanup routines, causing FCKeditor to stop working.
  • +
  • [#539] Fixed the + issue where right clicking on a table inside the editing frame in Firefox would + cause the editor the scroll to the top of the document.
  • +
  • [#523] Fixed the + issue where, under certain circumstances, FCKeditor would obtain focus at startup + even though FCKConfig.StartupFocus is set to false.
  • +
  • [#393] Fixed the + issue where if an inline tag is at the end of the document, the user would have + no way of escaping from the inline tag if he continues typing at the end of the + document. FCKeditor's behaviors regarding inline tags has been made to be more like + MS Word's: +
      +
    1. If the caret is moved to the end of a hyperlink by the keyboard, then hyperlink + mode is disabled.
    2. +
    3. If the caret is moved to the end of other styled inline tags by any key other than + the End key (like bold text or italic text), the original bold/italic/... modes + would continue to be effective.
    4. +
    5. If the caret is moved to the end of other styled inline tags by the End key, all + style tag modes (e.g. bold, italic, underline, etc.) would be canceled. This is + not consistent with MS Word, but provides a convenient way for the user to escape + the inline tag at the end of a line.
    6. +
    +
  • +
  • [#338] Fixed the + issue where the configuration directive FCKConfig.ForcePasteAsPlainText is ignored + when new contents are pasted into the editor via drag-and drop from outside of the + editor.
  • +
  • [#1026] Fixed + the issue where the cursor or selection positions are not restored with undo/redo + commands correctly in IE, under some circumstances.
  • +
  • [#1160] [#1184] Home, End + and Tab keys are working properly for numeric fields in dialogs.
  • +
  • [#68] The style + system now properly handles Format styles when EnterMode=br.
  • +
  • [#525] The union + of successive DIVs will work properly now if EnterMode!=div.
  • +
  • [#1227] The color + commands used an unnecessary temporary variable. Thanks to Matthias Miller
  • +
  • [#67] [#277] [#427] + [#428] [#965] [#1178] + [#1267] The list + insertion/removal/indent/outdent logic in FCKeditor has been rewritten, such that: +
      +
    1. Text separated by <br> will always be treated as separate items during list + insertion regardless of browser;
    2. +
    3. List removal will now always obey the FCKConfig.EnterMode setting;
    4. +
    5. List indentation will be XHTML 1.1 compliant - all child elements under an <ol> + or <ul> must be <li> nodes;
    6. +
    7. IE editor hacks like <ul type="1"> will no longer appear;
    8. +
    9. Excessive <div> nodes are no longer inserted into list items due to alignment + changes.
    10. +
    +
  • +
  • [#205] Fixed the + issue where visible <br> tags at the end of paragraphs are incorrectly removed + after switching to and from source mode.
  • +
  • [#1050] Fixed + a minor PHP/XML incompatibility bug in editor/dialog/fck_docprops.html.
  • +
  • [#462] Fixed an + algorithm bug in switching from source mode to WYSIWYG mode which causes the browser + to spin up and freeze for broken HTML code inputs.
  • +
  • [#1019] Table + command buttons are now disabled when the current selection is not inside a table.
  • +
  • [#135] Fixed the + issue where context menus are misplaced in FCKeditor when FCKeditor is created inside + a <div> node with scrolling.
  • +
  • [#1067] Fixed + the issue where context menus are misplaced in Safari when FCKeditor is scrolled + down.
  • +
  • [#1081] Fixed + the issue where undoing table deletion in IE7 would cause JavaScript errors.
  • +
  • [#1061] Fixed + the issue where backspace and delete cannot delete special characters in Firefox + under some circumstances.
  • +
  • [#403] Fixed the + issue where switching to and from source mode in full page mode under IE would add + excessive line breaks to <style> blocks.
  • +
  • [#121] Fixed the + issue where maximizing FCKeditor inside a frameset would resize FCKeditor to the + whole window's size instead of just the container frame's size.
  • +
  • [#1093] Fixed + the issue where pressing Enter inside an inline tag would not create a new paragraph + correctly.
  • +
  • [#1089] Fixed + the issue where pressing Enter inside a <pre> block do not generate visible + line breaks in IE.
  • +
  • [#332] Hitting + Enter when the caret is at the end of a hyperlink will no longer continue the link + at the new paragraph.
  • +
  • [#1121] Hitting + Enter with FCKConfig.EnterMode=br will now scroll the document correctly when the + new lines have exceeded the lower boundary of the editor frame.
  • +
  • [#1063] [#1084] [#1092] Fixed a few Norwegian + language translation errors.
  • +
  • [#1148] Fixed + the issue where the "Automatic" and "More Colors..." buttons + in the color selection panel are not centered in Safari.
  • +
  • [#1187] Fixed + the issue where the "Paste as plain text" command cannot be undone in + non-IE browsers.
  • +
  • [#1222] Ctrl-Backspace + operations will now save undo snapshots in all browsers.
  • +
  • [#1223] Fixed + the issue where the insert link dialog would save multiple undo snapshots for a + single operation.
  • +
  • [#247] Fixed the + issue where deleting everything in the document in IE would create an empty <p> + block in the document regardless of EnterMode setting.
  • +
  • [#1280] Fixed + the issue where opening a combo box will cause the editor frames to lose focus when + there are multiple editors in the same document.
  • +
  • [#363] Fixed the + issue where the Find dialog does not work under Opera.
  • +
  • [#50] Fixed the + issue where the Paste button is always disabled in Safari.
  • +
  • [#389] Pasting + text with comments from Word won't generate errors in IE, thanks to the idea from + Swift.
  • +
  • The pasting area in the Paste from Word dialog is focused on initial load
  • +
  • Some fixes related to html comment handling in the Word clean up routine
  • +
  • [#1303] <col> + is correctly treated as an empty element.
  • +
  • [#969] Removed + unused files (fcknumericfield.htc and moz-bindings.xml).
  • +
  • [#1166] Fixed + the issue where <meta> tags are incorrectly outputted with closing tags in + full page mode.
  • +
  • [#1200] Fixed + the issue where context menus sometimes disappear prematurely before the user can + click on any items in Opera.
  • +
  • [#1315] Fixed + the issue where the source view text area in Safari is displayed with an excessive + blue border.
  • +
  • [#1201] Fixed + the issue where hitting Backspace or Delete inside a table cell deletes the table + cell instead of its contents in Opera.
  • +
  • [#1311] Fixed + the issue where undoing and redoing a special character insertion would send the + caret to incorrect positions. (e.g. the beginning of document)
  • +
  • [#923] Font colors + are now properly applied on links.
  • +
  • [#1316] Fixed + the issue where the image dialog expands to a size too big in Safari.
  • +
  • [#1306] [#894] The undo system + can now undo text formatting steps like setting fonts to bold and italic.
  • +
  • [#95] Fixed the + issue where FCKeditor breaks <meta> tags in full page mode in some circumstances.
  • +
  • [#175] Fixed the + issue where entering an email address with a '%' sign in the insert link dialog + would cause JavaScript error.
  • +
  • [#180] Improved + backward compatibility with older PHP versions. FCKeditor can now work with PHP + versions down to 4.0.
  • +
  • [#192] Document + modifying actions from the FCKeditor JavaScript API will now save undo steps.
  • +
  • [#246] Using text + formatting commands in EnterMode=div will no longer cause tags to randomly disappear.
  • +
  • [#327] It is no + longer possible for the browser's back action to misfire when a user presses backspace + while an image is being selected in FCKeditor.
  • +
  • [#362] Ctrl-Backspace + now works in FCKeditor.
  • +
  • [#390] Text alignment + and justification commands now respects EnterMode=br paragraph rules.
  • +
  • [#534] Pressing + Ctrl-End while the document contains a list towards the end will no longer make + the cursor disappear.
  • +
  • [#906] It is now + possible to have XHTML 1.0 Strict compliant output from a document pasted from Word.
  • +
  • [#929] Pressing + the Enter key will now produce an undo step.
  • +
  • [#934] Fixed the + "Cannot execute code from a freed script" error in IE from editor dialogs.
  • +
  • [#942] Server + based spell checking with ColdFusion integration no longer breaks fir non en_US + languages.
  • +
  • [#1056] Deleting + everything in the editor document and moving the cursor around will no longer leave + the cursor hanging beyond the top of the editor document.
  • +
+

+ # This version has been partially sponsored + by the Council of Europe. +

+

+ Version 2.4.3

+

+ New Features and Improvements:

+
    +
  • It is now possible to set the default target when creating links, with the new "DefaultLinkTarget" + setting.
  • +
  • [#436] The new + "FirefoxSpellChecker" setting is available, to enable/disable the + Firefox built-in spellchecker while typing. Even if word suggestions will not appear + in the FCKeditor context menu, this feature is useful to quickly identify misspelled + words.
  • +
  • [#311] The new + "BrowserContextMenuOnCtrl" setting is being introduced, to enable/disable + the ability of displaying the default browser's context menu when right-clicking + with the CTRL key pressed.
  • +
+

+ Fixed Bugs:

+
    +
  • [#300] The fck_internal.css + file was not validating with the W3C CSS Validation Service.
  • +
  • [#336] Ordered + list didn't keep the Type attribute properly (it was converted to lowercase when + the properties dialog was opened again).
  • +
  • [#318] Multiple + linked images are merged in a single link in IE.
  • +
  • [#350] The <marquee> + element will no longer append unwanted <p>&nbsp;</p> to the code.
  • +
  • [#351] The content + was being lost for images or comments only HTML inserted directly in the editor + source or loaded in the editor.
  • +
  • [#388] Creating + links in lines separated by <br> in IE can lead to a merge of the links.
  • +
  • [#325] Calling + the GetXHTML can distort visually the rendering in Firefox.
  • +
  • [#391] When ToolbarLocation=Out, + a "Security Warning" alert was being shown in IE if under https. Thanks to reister.
  • +
  • [#360] Form "name" + was being set to "[object]" if it contained an element with id="name".
  • +
  • Fixed a type that was breaking the ColdFusion SpellerPages integration file when + no spelling errors were found.
  • +
  • The ColdFusion SpellerPages integration was not working it Aspell was installed + in a directory with spaces in the name.
  • +
  • Added option to SpellerPages to ignore "alt" attributes.
  • +
  • [#451] Classes + for images in IE didn't take effect immediately.
  • +
  • [#430] Links with + a class did generate a span in Firefox when removing them.
  • +
  • [#274] The PHP + quick upload still tried to use the uppercased types instead of the lowercased ones. +
  • +
  • [#416] The PHP + quick upload didn't check for the existence of the folder before saving.
  • +
  • [#467] If InsertHtml + was called in IE with a comment (or any protected source at the beginning) it was + lost.
  • +
  • [SF + BUG-1518766] Mozilla 1.7.13 wasn't recognized properly as an old Gecko engine.
  • +
  • [#324] Improperly + nested tags could lead to a crash in IE.
  • +
  • [#455] Files and + folders with non-ANSI names were returned with a double UTF-8 encoding in the PHP + File Manager.
  • +
  • [#273] The extensions + "sh", "shtml", "shtm" and "phtm" have been added to the list of denied extensions + on upload.
  • +
  • [#453] No more + errors when hitting del inside an empty table cell.
  • +
  • The perl connector cgi file has been changed to Unix line endings.
  • +
  • [#202] Regression: + The HR tag will not anymore break the contents loaded in the editor.
  • +
  • [#508] The HR + command had a typo.
  • +
  • [#505] Regression: + IE crashed if a table caption was deleted.
  • +
  • [#82] [#359] <object> and <embed> + tags are not anymore lost in IE.
  • +
  • [#493] If the + containing form had a button named "submit" the "Save" command didn't work in Firefox.
  • +
  • [#414] If tracing + was globally enabled in Asp.Net 2.0 then the Asp.Net connector did fail.
  • +
  • [#520] The "Select + Field" properties dialog was not correctly handling select options with &, < + and >.
  • +
  • [#258] The Asp + integration didn't pass boolean values in English, using instead the locale of the + server and failing.
  • +
  • [#487] If an image + with dimensions set as styles was opened with the image manager and then the dialog + was canceled the dimensions in the style were lost.
  • +
  • [#220] The creation + of links or anchors in a selection that results on more than a single link created + will not anymore leave temporary links in the source. All links will be defined + as expected.
  • +
  • [#182] [#261] [#511] Special characters, like + percent signs or accented chars, and spaces are now correctly returned by the File + Browser.
  • +
  • [#281] Custom + toolbar buttons now render correctly in all skins.
  • +
  • [#527] If the + configuration for a toolbar isn't fully valid, try to keep on parsing it.
  • +
  • [#187] [#435] [SF + BUG-1612978] [SF + BUG-1163511] Updated the configuration options in the ColdFusion integration + files.
  • +
  • [SF + Patch-1726781] Updated the upload class for asp to handle large files and other + data in the forms. Thanks to NetRube.
  • +
  • [#225] With ColdFusion, + the target directory is now being automatically created if needed when "quick uploading". + Thanks to sirmeili.
  • +
  • [#295] [#510] Corrected some + path resolution issues with the File Browser connector for ColdFusion.
  • +
  • [#239] The <xml> + tag will not anymore cause troubles.
  • +
  • [SF + BUG-1721787] If the editor is run from a virtual dir, the PHP connector will + detect that and avoid generating a wrong folder.
  • +
  • [#431] PHP: The + File Browser now displays an error message when it is not able to create the configured + target directory for files (instead of sending broken XML responses).
  • +
+

+ Version 2.4.2

+

+ Fixed Bugs:

+
    +
  • [#279] The UTF-8 + BOM was being included in the wrong files, affecting mainly PHP installations.
  • +
+

+ Version 2.4.1

+

+ New Features and Improvements:

+
    +
  • [#118] The SelectAll + command now is available in Source Mode.
  • +
  • The new open source FCKpackager sub-project is now available. It replaces the FCKeditor.Packager + software to compact the editor source.
  • +
  • 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.
  • +
+

+ Fixed Bugs:

+
    +
  • Various fixes to the ColdFusion File Browser connector.
  • +
  • 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).
  • +
  • The Word cleanup has been changed to remove "display:none" tags that may come from + Word.
  • +
  • [SF + BUG-1659613] The 2.4 version introduced a bug in the flash handling code that + generated out of memory errors in IE7.
  • +
  • [SF + BUG-1660456] The icons in context menus were draggable.
  • +
  • [SF + BUG-1653009] If the server is configured to process html files as asp then it + generated ASP error 0138.
  • +
  • [SF + BUG-1288609] The content of iframes is now preserved.
  • +
  • [SF + BUG-1245504] [SF + BUG-1652240] Flash files without the .swf extension weren't recognized upon + reload.
  • +
  • [SF + PATCH-1649753] Node selection for text didn't work in IE. Thanks to yurik dot + m.
  • +
  • [SF + BUG-1573191] The Html code inserted with FCK.InsertHtml didn't have the same + protection for special tags.
  • +
  • [#110] The OK + button in dialogs had its width set as an inline style.
  • +
  • [#113] [#94] [SF + BUG-1659270] ForcePasteAsPlainText didn't work in Firefox.
  • +
  • [#114] The correct + entity is now used to fill empty blocks when ProcessHTMLEntities is disabled.
  • +
  • [#90] The editor + was wrongly removing some <br> tags from the code.
  • +
  • [#139] The CTRL+F + and CTRL+S keystroke default behaviors are now preserved.
  • +
  • [#138] 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.
  • +
  • [#129] In IE, + it was not possible to paste if "Allow paste operation via script" was disabled + in the browser security settings.
  • +
  • [#112] The enter + key now behaves correctly on lists with Firefox, when the EnterMode is set to 'br'.
  • +
  • [#152] Invalid + self-closing tags are now being fixed before loading.
  • +
  • A few tags were being ignored to the check for required contents (not getting stripped + out, as expected). Fixed.
  • +
  • [#202] The HR + tag will not anymore break the contents loaded in the editor.
  • +
  • [#211] Some invalid + inputs, like "<p>" where making the caret disappear in Firefox.
  • +
  • [#99] The <div> + element is now considered a block container if EnterMode=p|br. It acts like a simple + block only if EnterMode=div.
  • +
  • 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.
  • +
  • [#213] Styles + are now preserved when hitting enter at the end of a paragraph.
  • +
  • [#77] 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).
  • +
  • [#209] Links and + images URLs will now be correctly preserved with Netscape 7.1.
  • +
  • [#165] The enter + key now honors the EnterMode settings when outdenting a list item.
  • +
  • [#190] Toolbars + may be wrongly positioned. Fixed.
  • +
  • [#254] The IgnoreEmptyParagraphValue + setting is now correctly handled in Firefox.
  • +
  • [#248] The behavior + of the backspace key has been fixed on some very specific cases.
  • +
+

+ Version 2.4

+

+ New Features and Improvements:

+
    +
  • [SF + Feature-1329273] [SF + Feature-1456005] [SF + BUG-1315002] [SF + BUG-1350180] [SF + BUG-1450689] [SF + BUG-1461033] [SF + BUG-1510111] [SF + BUG-1203560] [SF + BUG-1564838] The advance Enter Key Handler + is now being introduced. It gives you complete freedom to configure the editor to + generate <p>, <div> or <br> 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.
  • +
  • The new and powerful Keyboard Accelerator System 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.
    + It also makes it possible to remove buttons from the toolbar and still invoke their + features by using the keyboard instead. +
    + 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.
  • +
  • The new "ProtectedTags" 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.
  • +
  • Dialog box commands can now open resizable dialogs (by setting oCommand.Resizable + = true).
  • +
  • Updated support for AFP. Thanks to Soenke Freitag.
  • +
  • New language file:
      +
    • Afrikaans (by Willem Petrus Botha).
    • +
    +
  • +
  • [SF + Patch-1456343] New sample file showing how to dynamically exchange a textarea + and an instance of FCKeditor. Thanks to Finn Hakansson
  • +
  • [SF + Patch-1496115] [SF + BUG-1588578] [SF + BUG-1376534] [SF + BUG-1343506] [SF + Feature-1211065] [SF + Feature-949144] The content of anchors are shown and preserved + on creation. *
  • +
  • [SF + Feature-1587175] Local links to an anchor are readjusted if the anchor changes.
  • +
  • [SF + Patch-1500040] New configuration values to specify the Id and Class for the + body element.
  • +
  • [SF + Patch-1577202] The links created with the popup option now are accessible even + if the user has JavaScript disabled.
  • +
  • [SF + Patch-1443472] [SF + BUG-1576488] [SF + BUG-1334305] [SF + BUG-1578312] 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.
  • +
  • [SF + Patch-1472654] The server side script location for SpellerPages can now be set + in the configuration file, by using the SpellerPagesServerScript setting.
  • +
  • Attention: 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.
  • +
  • Attention: The UseBROnCarriageReturn configuration + is not anymore valid. The EnterMode setting can now be used to precisely set the + enter key behavior.
  • +
+

+ Fixed Bugs:

+
    +
  • [SF + BUG-1444937] [SF + BUG-1274364] Shortcut keys are now undoable correctly.
  • +
  • [SF + BUG-1015230] Toolbar buttons now update their state on shortcut keys activation.
  • +
  • [SF + BUG-1485621] It is now possible to precisely control which shortcut keys can + be used.
  • +
  • [SF + BUG-1573714] [SF + BUG-1593323] Paste was not working in IE if both AutoDetectPasteFromWord + and ForcePasteAsPlainText settings were set to "false".
  • +
  • [SF + BUG-1578306] The context menu was wrongly positioned if the editing document + was set to render in strict mode. Thanks to Alfonso Martinez.
  • +
  • [SF + BUG-1567060] [SF + BUG-1565902] [SF + BUG-1440631] IE was getting locked on some specific cases. Fixed.
  • +
  • [SF + BUG-1582859] [SF + Patch-1579507] Firefox' spellchecker is now disabled during editing mode. + Thanks to Alfonso Martinez.
  • +
  • Fixed Safari and Opera detection system (for development purposes only).
  • +
  • Paste from Notepad was including font information in IE. Fixed.
  • +
  • [SF + BUG-1584092] When replacing text area, names with spaces are now accepted.
  • +
  • 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.
  • +
  • [SF + BUG-1596937] InsertHtml() was inserting the HTML outside the editor area on + some very specific cases.
  • +
  • [SF + BUG-1585548] On very specific, rare and strange cases, the XHTML processor was + not working properly in IE. Fixed.
  • +
  • [SF + BUG-1584951] [SF + BUG-1380598] [SF + BUG-1198139] [SF + BUG-1437318] In Firefox, the style selector will not anymore delete + the contents when removing styles on specific cases.
  • +
  • [SF + BUG-1515441] [SF + BUG-1451071] The "Insert/Edit Link" and "Select All" buttons are now working + properly when the editor is running on a IE Modal dialog.
  • +
  • On some very rare cases, IE was throwing a memory error when hiding the context + menus. Fixed.
  • +
  • [SF + BUG-1526154] [SF + BUG-1509208] With Firefox, <style> tags defined in the source are + now preserved.
  • +
  • [SF + BUG-1535946] The IE dialog system has been changed to better work with custom + dialogs.
  • +
  • [SF + BUG-1599520] The table dialog was producing empty tags when leaving some of + its fields empty.
  • +
  • [SF + BUG-1599545] HTML entities are now processed on attribute values too.
  • +
  • [SF + BUG-1598517] Meta tags are now protected from execution during editing (avoiding + the "redirect" meta to be activated).
  • +
  • [SF + BUG-1415601] Firefox internals: styleWithCSS is used instead of the deprecated + useCSS whenever possible.
  • +
  • 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.
  • +
  • [SF + BUG-1592311] Operations in the caption of tables are now working correctly in + both browsers.
  • +
  • Small interface fixes to the about box.
  • +
  • [SF + PATCH-1604576] [SF + BUG-1604301] Link creation failed in Firefox 3 alpha. Thanks to Arpad Borsos
  • +
  • [SF + BUG-1577247] Unneeded call to captureEvents and releaseEvents.
  • +
  • [SF + BUG-1610790] 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.
  • +
  • [SF + BUG-1613167] If the configuration was missing the FCKConfig.AdditionalNumericEntities + entry an error appeared.
  • +
  • [SF + BUG-1590848] [SF + BUG-1626360] Cleaning of JavaScript strict warnings in the source code.
  • +
  • [SF + BUG-1559466] The ol/ul list property window always searched first for a UL element.
  • +
  • [SF + BUG-1516008] Class attribute in IE wasn't loaded in the image dialog.
  • +
  • The "OnAfterSetHTML" event is now fired when being/switching to Source View.
  • +
  • [SF + BUG-1631807] Elements' style properties are now forced to lowercase in IE.
  • +
  • The extensions "html", "htm" and "asis" have been added to the list of denied extensions + on upload.
  • +
  • Empty inline elements (like span and strong) will not be generated any more.
  • +
  • Some elements attributes (like hspace) where not being retrieved when set to "0".
  • +
  • [SF + BUG-1508341] Fix for the ColdFusion script file of SpellerPages.
  • +
+

+ * This version has been partially sponsored by Medical + Media Lab.

+

+ Version 2.3.3

+

+ New Features and Improvements:

+
    +
  • The project has been relicensed under the terms of the + GPL / LGPL / MPL licenses. This change will remove many licensing compatibility + issues with other open source licenses, making the editor even more "open" than + before.
  • +
  • Attention: The default directory in the distribution + package is now named "fckeditor" (in lowercase) instead of "FCKeditor".  This + change may impact installations on case sensitive OSs, like Linux.
  • +
  • Attention: 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.
  • +
+

+ Version 2.3.2

+

+ New Features and Improvements:

+
    +
  • 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.
  • +
  • [SF + Patch-1237693] A new configuration option (ProcessNumericEntities) + is now available to tell the editor to convert non ASCII chars to their relative + numeric entity references. It is disabled by default.
  • +
  • The new "AdditionalNumericEntities" 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.
  • +
  • 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. +
  • +
  • Two new patterns have been added to the Universal Keyboard: +
      +
    • Persian. Thanks to Pooyan Mahdavi
    • +
    • Portuguese. Thanks to Bo Brandt.
    • +
    +
  • +
  • [SF + Patch-1517322] It is now possible to define the start number on numbered lists. + Thanks to Marcel Bennett.
  • +
  • The Font Format combo will now reflect the EditorAreaCSS styles.
  • +
  • [SF + Patch-1461539] The File Browser connector can now optionally return a "url" + attribute for the files. Thanks to Pent.
  • +
  • [SF + BUG-1090851] 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.
  • +
  • [SF + Feature-1421309] [SF + BUG-1489402] 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.
  • +
  • The JavaScript integration file has two new things: +
      +
    • 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()").
    • +
    • 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.
    • +
    +
  • +
+

+ Fixed Bugs:

+
    +
  • [SF + BUG-1525242] [SF + BUG-1500050] 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.
  • +
  • Small security fixes to the File Browser connectors.
  • +
  • [SF + BUG-1546226] Small fix to the ColdFusion CFC integration file.
  • +
  • [SF + Patch-1407500] The Word Cleanup function was breaking the HTML on pasting, on + very specific cases. Fixed, thanks to Frode E. Moe.
  • +
  • [SF + Patch-1551979] [SF + BUG-1418066] [SF + BUG-1439621] [SF + BUG-1501698] Make FCKeditor work with application/xhtml+xml. Thanks + to Arpad Borsos.
  • +
  • [SF + Patch-1547738] [SF + BUG-1550595] [SF + BUG-1540807] [SF + BUG-1510685] Fixed problem with panels wrongly positioned when the + editor is placed on absolute or relative positioned elements. Thanks to Filipe Martins.
  • +
  • [SF + Patch-1511294] Small fix for the File Browser compatibility with IE 5.5.
  • +
  • [SF + Patch-1503178] Small improvement to stop IE from loading smiley images when + one smiley is quickly selected from a huge list of smileys. Thanks to stuckhere.
  • +
  • [SF + BUG-1549112] The Replace dialog window now escapes regular expression specific + characters in the find and replace fields.
  • +
  • [SF + BUG-1548788] Updated the ieSpell download URL.
  • +
  • In FF, the editor was throwing an error when closing the window. Fixed.
  • +
  • [SF + BUG-1538509] The "type" attribute for text fields will always be set now.
  • +
  • [SF + BUG-1551734] The SetHTML function will now update the editing area height no + matter which editing mode is active.
  • +
  • [SF + BUG-1554141] [SF + BUG-1565562] [SF + BUG-1451056] [SF + BUG-1478408] [SF + BUG-1489322] [SF + BUG-1513667] [SF + BUG-1562134] The protection of URLs has been enhanced + and now it will not break URLs on very specific cases.
  • +
  • [SF + BUG-1545732] [SF + BUG-1490919] No security errors will be thrown when loading FCKeditor in + page inside a FRAME defined in a different domain.
  • +
  • [SF + BUG-1512817] [SF + BUG-1571345] Fixed the "undefined" addition to the content when ShowBorders + = false and FullPage = true in Firefox. Thanks to Brett.
  • +
  • [SF + BUG-1512798] BaseHref will now work well on FullPage, even if no <head> + is available.
  • +
  • [SF + BUG-1509923] The DocumentProcessor is now called when using InserHtml().
  • +
  • [SF + BUG-1505964] The DOCTYPE declaration is now preserved when working in FullPage.
  • +
  • [SF + BUG-1553727] The editor was throwing an error when inserting complex templates. + Fixed.
  • +
  • [SF + Patch-1564930] [SF + BUG-1562828] In IE, anchors where incorrectly copied when using the Paste + from Word button. Fixed, thanks to geirhelge.
  • +
  • [SF + BUG-1557709] [SF + BUG-1421810] The link dialog now validates Popup Window names.
  • +
  • [SF + BUG-1556878] Firefox was creating empty tags when deleting the selection in + some special cases.
  • +
  • The context menu for links is now correctly shown when right-clicking on floating + divs.
  • +
  • [SF + BUG-1084404] The XHTML processor now ignores empty span tags.
  • +
  • [SF + BUG-1221728] [SF + BUG-1174503] The <abbr> tag is not anymore getting broken by IE.
  • +
  • [SF + BUG-1182906] IE is not anymore messing up mailto links.
  • +
  • [SF + BUG-1386094] Fixed an issue when setting configuration options to empty ('') + by code.
  • +
  • [SF + BUG-1389435] Fixed an issue in some dialog boxes when handling numeric inputs.
  • +
  • [SF + BUG-1398829] Some links may got broken on very specific cases. Fixed.
  • +
  • [SF + BUG-1409969] <noscript> tags now remain untouched by the editor.
  • +
  • [SF + BUG-1433457] [SF + BUG-1513631] Empty "href" attributes in <a> or empty "src" in <img> + will now be correctly preserved.
  • +
  • [SF + BUG-1435195] Scrollbars are now visible in the File Browser (for custom implementations).
  • +
  • [SF + BUG-1438296] The "ForceSimpleAmpersand" setting is now being honored in all + tags.
  • +
  • If a popup blocker blocks context menu operations, the correct alert message is + displayed now, instead of a ugly JavaScript error.
  • +
  • [SF + BUG-1454116] The GetXHTML() function will not change the IsDirty() value of + the editor.
  • +
  • The spell check may not work correctly when using SpellerPages with ColdFusion. + Fixed.
  • +
  • [SF + BUG-1481861] HTML comments are now removed by the Word Cleanup System.
  • +
  • [SF + BUG-1489390] A few missing hard coded combo options used in some dialogs are + now localizable.
  • +
  • [SF + BUG-1505448] The Form dialog now retrieves the value of the "action" attribute + exactly as defined in the source.
  • +
  • [SF + Patch-1517322] 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).
  • +
  • [SF + Patch-1575261] Some fields in the Table and Cell Properties dialogs were being + cut. Fixed.
  • +
  • Fixed a startup compatibility issue with Firefox 1.0.4.
  • +
+

+ Version 2.3.1

+

+ Fixed Bugs:

+
    +
  • [SF + BUG-1506126] Fixed the Catalan language file, which had been published with + problems in accented letters.
  • +
  • More performance improvements in the default File Browser.
  • +
  • [SF + BUG-1506701] Fixed compatibility issues with IE 5.5.
  • +
  • [SF + BUG-1509073] 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.
  • +
  • [SF + BUG-1507294] [SF + BUG-1507953] The editing area was getting a fixed size when using the "SetHTML" + API command or even when switching back from the source view. Fixed.
  • +
  • [SF + BUG-1507755] Fixed a conflict between the "DisableObjectResizing" and "ShowBorders" + configuration options over IE.
  • +
  • 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.
  • +
  • With Opera 9, the toolbar was jumping on buttons rollover.
  • +
  • [SF + BUG-1509479] 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.
  • +
  • [SF + BUG-1271070] [SF + BUG-1411430] The editor API now works well on DHTML pages that create and + remove instances of FCKeditor dynamically.
  • +
  • A second call to a page with the editor was not working correctly with Firefox 1.0.x. + Fixed.
  • +
  • [SF + BUG-1511460] Small correction to the <script> protected source regex. + Thanks to Randall Severy.
  • +
  • [SF + BUG-1521754] Small fix to the paths of the internal CSS files used by FCKeditor. + Thanks to johnw_ceb.
  • +
  • [SF + BUG-1511442] The <base> tag is now correctly handled in IE, no matter + its position in the source code.
  • +
  • [SF + BUG-1507773] The "Lock" and "Reset" buttons in the Image Properties dialog window + are not anymore jumping with Firefox 1.5.
  • +
+

+ Version 2.3

+

+ New Features and Improvements:

+
    +
  • The Toolbar Sharing system has been completed. See sample10.html + and sample11.html.*
  • +
  • [SF + Patch-1407500] Small enhancement to the Find and Replace dialog windows.
  • +
+

+ Fixed Bugs:

+
    +
  • Small security fixes.
  • +
  • The context menu system has been optimized. Nested menus now open "onmouseover". +
  • +
  • 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.
  • +
  • Fixed many memory leak issues with IE.
  • +
  • [SF + BUG-1489768] 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.
  • +
  • [SF + BUG-1493176] Using ASP, the connector was not working on servers with buffer + disable by default.
  • +
  • [SF + BUG-1491784] Language files have been updated to not include html entities.
  • +
  • [SF + BUG-1490259] No more security warning on IE over HTTPS.
  • +
  • [SF + BUG-1493173] [SF + BUG-1499708] 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. +
  • +
  • [SF + BUG-1490610] The FitWindow is now working on elements set with relative position.
  • +
  • [SF + BUG-1493438] The "Word Wrap" combo in the cell properties dialog now accepts + only Yes/No (no more <Not Set> value).
  • +
  • The context menu is now being hidden when a nested menu option is selected.
  • +
  • Table cell context menu operations are now working correctly.
  • +
  • [SF + BUG-1494549] The code formatter was having problems with dollar signs inside + <pre> tags.
  • +
  • [SF + Patch-1459740] The "src" element of images can now be set by styles definitions. + Thanks to joelwreed.
  • +
  • [SF + Patch-1437052] [SF + Patch-1436166] [SF + Patch-1352385] Small fix to the FCK.InsertHtml, FCKTools.AppendStyleSheet + and FCKSelection.SelectNode functions over IE. Thanks to Alfonso Martinez.
  • +
  • [SF + Patch-1349765] Small fix to the FCKSelection.GetType over Firefox. Thanks to + Alfonso Martinez.
  • +
  • [SF + Patch-1495422] The editor now creates link based on the URL when no selection + is available. Thanks to Dominik Pesch.
  • +
  • [SF + Patch-1478859] 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.
  • +
  • When using the editor in a RTL localized interface, like Arabic, the toolbar combos + were not showing completely in the first click. Fixed.
  • +
  • [SF + BUG-1500212] All "_samples/html" samples are now working when loading directly + from the Windows Explorer. Thanks to Alfonso Martinez.
  • +
  • The "FitWindow" feature was breaking the editor under Firefox 1.0.x.
  • +
  • [SF + Patch-1500032] In Firefox, the caret position now follows the user clicks when + clicking in the white area bellow the editor contents. Thanks to Alfonso Martinez.
  • +
  • [SF + BUG-1499522] 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.
  • +
  • Drastically improved the loading performance of the file list in the default File + Browser.
  • +
  • [SF + BUG-1503059] 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.
  • +
  • The "DisableFFTableHandles" setting is now honored when switching the full screen + mode with FitWindow.
  • +
  • Some fixes has been applied to the cell merging in Firefox.
  • +
+

+ * This version has been partially sponsored by Footsteps + and Kentico.

+

+ Version 2.3 Beta

+

+ New Features and Improvements:

+
    +
  • Extremely Fast Loading! The editor now loads more than 3 + times faster than before, with no impact on its advanced features.
  • +
  • New toolbar system: +
      +
    • [SF + Feature-1454850] The toolbar will now load much faster. All + images have being merged in a single image file using a unique system available + only with FCKeditor.
    • +
    • The "Text Color" and "Background Color" commands buttons have + enhancements on the interface.
    • +
    • Attention: 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.
    • +
    • It is possible to detach the toolbar 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 + sample10.html). This feature is still under development (issues with IE + focus still to be solved).*
    • +
    +
  • +
  • New context menu system: +
      +
    • It uses the same (fast) loading system as the toolbar.
    • +
    • Sub-Menus are now available to group features (try the context menu over a table + cell).
    • +
    • It is now possible to create your own context menu entries by creating plugins. +
    • +
    +
  • +
  • New "FitWindow" toolbar button, based on the + plugin published by Paul Moers. Thanks Paul!
  • +
  • "Auto Grow" Plugin: automatically resizes the editor + until a maximum height, based on its contents size.**
  • +
  • [SF + Feature-1444943] Multiple CSS files 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.
  • +
  • New language files:
      +
    • Bengali / Bangla (by Richard Walledge).
    • +
    • English (Canadian) (by Kevin Bennett).
    • +
    • Khmer (by Sengtha Chay).
    • +
    +
  • +
  • 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).
  • +
  • As some people may prefer the popup way for source editing, a new configuration + option (SourcePopup) has being introduced.
  • +
  • The IEForceVScroll configuration option has been removed. The editor now automatically + shows the vertical scrollbar when needed (for XHTML doctypes).
  • +
  • The configuration file doesn't define a default DOCTYPE to be used now.
  • +
  • It is now possible to easily change the toolbar using the JavaScript API by just + calling <EditorInstance>.ToolbarSet.Load( '<ToolbarName>' ). See _testcases/010.html + for a sample.
  • +
  • The "OnBlur" and "OnFocus" JavaScript API events are now compatible + with all supported browsers.
  • +
  • Some few updates in the Lasso connector and uploader.
  • +
  • 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.
  • +
+

+ Fixed Bugs:

+
    +
  • Important security fixes have been applied to the File Manager, Uploader + and Connectors. Upgrade is highly recommended. Thanks to Alberto Moro, + Baudouin Lamourere and James Bercegay.
  • +
  • [SF + BUG-1399966] [SF + BUG-1249853] The "BaseHref" configuration is now working with + Firefox in both normal and full page modes.
  • +
  • [SF + BUG-1405263] A typo in the configuration file was impacting the Quick Upload + feature.
  • +
  • Nested <ul> and <ol> tags are now generating valid html.
  • +
  • The "wmode" and "quality" 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.
  • +
  • Tables where not being created correctly on Opera.
  • +
  • The XHTML processor will ignore invalid tags with names ending with ":", + like http:.
  • +
  • On Firefox, the scrollbar is not anymore displayed on toolbar dropdown commands + when not needed.
  • +
  • Some small fixes have being done to the dropdown commands rendering for FF. +
  • +
  • The table dialog window has been a little bit enlarged to avoid contents being cropped + on some languages, like Russian.
  • +
  • [SF + BUG-1465203] 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. +
  • +
  • [SF + BUG-1456332] Small fix in the Spanish language file.
  • +
  • [SF + BUG-1457078] The File Manager was generating 404 calls in the server.
  • +
  • [SF + BUG-1459846] Fixed a problem with the config file if PHP is set to parse .js + files.
  • +
  • [SF + BUG-1432120] The "UserFilesAbsolutePath" setting is not correctly + used in the PHP uploader.
  • +
  • [SF + BUG-1408869] The collapse handler is now rendering correctly in Firefox 1.5. +
  • +
  • [SF + BUG-1410082] [SF + BUG-1424240] The "moz-bindings.xml" file is now well formed.
  • +
  • [SF + BUG-1413980] All frameborder "yes/no" values have been changes to + "1/0".
  • +
  • [SF + BUG-1414101] The fake table borders are now showing correctly when running under + the "file://" protocol.
  • +
  • [SF + BUG-1414155] Small typo in the cell properties dialog window.
  • +
  • Fixed a problem in the File Manager. It was not working well with folder or file + names with apostrophes ('). Thanks to René de Jong.
  • +
  • Small "lenght" type corrected in the select dialog window. Thanks to Bernd Nussbaumer.
  • +
  • The about box is now showing correctly in Firefox 1.5.
  • +
  • [SF + Patch-1464020] [SF + BUG-1155793] The "Unlink" command is now working correctly under Firefox + if you don't have a complete link selection. Thanks to Johnny Egeland.
  • +
  • In the File Manager, it was not possible to upload files to folders with ampersands + in the name. Thanks to Mike Pone.
  • +
  • [SF + BUG-1178359] Elements from the toolbar are not anymore draggable in the editing + area.
  • +
  • [SF + BUG-1487544] Fixed a small issue in the code formatter for <br /> and + <hr /> tags.
  • +
  • The "Background Color" command now works correctly when the GeckoUseSPAN setting + is disabled (default).
  • +
  • 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.
  • +
+

+ * This version has been partially sponsored by Footsteps + and Kentico. +
+ ** This version has been partially sponsored by Nextide.

+

+ Version 2.2

+

+ New Features and Improvements:

+
    +
  • 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: +
      +
    • The "Uploader", used for quick uploads, is now available + natively for ColdFusion.
    • +
    • Small bugs have been corrected in the File Browser connector.
    • +
    • The samples now work as is, even if you don't install the editor in the "/FCKeditor" + directory.
    • +
    +
  • +
  • And a big welcome also to "Andrew Liu", our responsible for the + Python integration. This version is bringing native support for Python + , including the File Browser connector and Quick Upload.
  • +
  • The "IsDirty()" and "ResetIsDirty()" + functions have been added to the JavaScript API to check if the editor + content has been changed.*
  • +
  • New language files: +
      +
    • Hindi (by Utkarshraj Atmaram)
    • +
    • Latvian (by Janis Klavinš)
    • +
    +
  • +
  • For the interface, now we have complete RTL support also for + the drop-down toolbar commands, color selectors and context menu.
  • +
  • [SF + BUG-1325113] [SF + BUG-1277661] The new "Delete Table" command is available in the + Context Menu when right-clicking inside a table.
  • +
  • The "FCKConfig.DisableTableHandles" configuration option is now working + on Firefox 1.5.
  • +
  • The new "OnBlur" and "OnFocus" + events have been added to the JavaScript API (IE only). See "_samples/html/sample09.html" * +
  • +
  • Attention: The "GetHTML" + function has been deprecated. It now returns the same value as "GetXHTML". + The same is valid for the "EnableXHTML" and "EnableSourceXHTML" + that have no effects now. The editor now works with XHTML output only.
  • +
  • Attention: A new "PreserveSessionOnFileBrowser" + 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.
  • +
  • Attention: The "fun" + smileys set has been removed from the package. If you are using it, you must manually + copy it to newer installations and upgrades.
  • +
  • Attention: The "mcpuk" + 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 + http://mcpuk.net/fbxp/.
  • +
  • It is now possible to set different CSS styles for the chars in the Special Chars + dialog window by adding the "SpecialCharsOut" and "SpecialCharsOver" + in the "fck_dialog.css" skin file.*
  • +
  • [SF + Patch-1268726] Added table "summary" support in the table dialog. + Thanks to Sebastien-Mahe.
  • +
  • [SF + Patch-1284380] 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.
  • +
  • [SF + Patch-1338610] [SF + Patch-1263009] New characters have been added to the "Special Characters" + dialog window. Thanks to Deian.
  • +
  • You can set the QueryString value "fckdebug=true" to activate "debug + mode" in the editor (showing the debug window), overriding the configurations. + The "AllowQueryStringDebug" configuration option is also available so + you can disable this feature.
  • +
+

+ Fixed Bugs:

+
    +
  • [SF + BUG-1363548] [SF + BUG-1364425] [SF + BUG-1335045] [SF + BUG-1289661] [SF + BUG-1225370] [SF + BUG-1156291] [SF + BUG-1165914] [SF + BUG-1111877] [SF + BUG-1092373] [SF + BUG-1101596] [SF + BUG-1246952] The URLs for links and + images are now correctly preserved as entered, no matter if you are using relative + or absolute paths.
  • +
  • [SF + BUG-1162809] [SF + BUG-1205638] The "Image" and "Flash" dialog windows + now loads the preview correctly if the "BaseHref" configuration option + is set.
  • +
  • [SF + BUG-1329807] 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.
  • +
  • A new "Panel" system (used in the drop-dowm toolbar commands, color selectors + and context menu) has been developed. The following bugs have been fixed with it: +
      +
    • [SF + BUG-1186927] On IE, sometimes the context menu was being partially hidden.* +
    • +
    • On Firefox, the context menu was flashing in the wrong position before showing. +
    • +
    • On Firefox 1.5, the Color Selector was not working.
    • +
    • On Firefox 1.5, the fonts in the panels were too big.
    • +
    • [SF + BUG-1076435] [SF + BUG-1200631] On Firefox, sometimes the context menu was being shown in the + wrong position.
    • +
    +
  • +
  • [SF + BUG-1364094] Font families were + not being rendered correctly on Firefox .
  • +
  • [SF + BUG-1315954] No error is thrown when pasting some case specific code from editor + to editor.
  • +
  • [SF + BUG-1341553] A small fix for a security alert in the File Browser has been + applied.
  • +
  • [SF + BUG-1370953] [SF + BUG-1339898] [SF + BUG-1323319] A message will be shown to the user (instead of a JS error) if + a "popup blocker" blocks the "Browser Server" button. Thanks + to Erwin Verdonk.
  • +
  • [SF + BUG-1370355] Anchor links that points to a single character anchor, like "#A", + are now correctly detected in the Link dialog window. Thanks to Ricky Casey.
  • +
  • [SF + BUG-1368998] Custom error processing has been added to the file upload on the + File Browser.
  • +
  • [SF + BUG-1367802] [SF + BUG-1207740] A message is shown to the user if a dialog box is blocked by + a popup blocker in Firefox.
  • +
  • [SF + BUG-1358891] [SF + BUG-1340960] The editor not works locally (without a web server) on directories + where the path contains spaces.
  • +
  • [SF + BUG-1357247] The editor now intercepts SHIFT + INS keystrokes when needed.
  • +
  • [SF + BUG-1328488] Attention: The Page + Break command now produces different tags to avoid XHTML compatibility + issues. Any Page Break previously applied to content produced with previous versions + of FCKeditor will not me rendered now, even if they will still be working correctly. +
  • +
  • It is now possible to allow cut/copy/past operations on Firefox using the user.js file.
  • +
  • [SF + BUG-1336792] A fix has been applied to the XHTML processor to allow tag names + with the "minus" char (-).
  • +
  • [SF + BUG-1339560] The editor now correctly removes the "selected" option + for checkboxes and radio buttons.
  • +
  • The Table dialog box now selects the table correctly when right-clicking on objects + (like images) placed inside the table.
  • +
  • Attention: 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.
  • +
  • Mouse select (marking 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.
  • +
  • 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.
  • +
  • [SF + BUG-1360717] A wrapping issue in the "Silver" skin has been corrected. + Thanks to Ricky Casey.
  • +
  • [SF + BUG-1251145] In IE, the focus is now maintained in the text when clicking in + the empty area following it.
  • +
  • [SF + BUG-1181386] [SF + BUG-1237791] The "Stylesheet Classes" field in the Link dialog + window in now applied correctly on IE. Thanks to Andrew Crowe.
  • +
  • The "Past from Word" dialog windows is now showing correctly on Firefox + on some languages.
  • +
  • [SF + BUG-1315008] [SF + BUG-1241992] IE, when selecting objects (like images) and hitting the "Backspace" + button, the browser's "back" will not get executed anymore and the object + will be correctly deleted.
  • +
  • The "AutoDetectPasteFromWord" is now working correctly in IE. Thanks to + Juan Ant. Gómez.
  • +
  • A small enhancement has been made in the Word pasting detection. Thanks to Juan + Ant. Gómez.
  • +
  • [SF + BUG-1090686] No more conflict with Firefox "Type-Ahead Find" feature. +
  • +
  • [SF + BUG-942653] [SF + BUG-1155856] The "width" and "height" of images sized + using the inline handlers are now correctly loaded in the image dialog box.
  • +
  • [SF + BUG-1209093] When "Full Page Editing" is active, in the "Document + Properties" dialog, the "Browse Server" button for the page background + is now correctly hidden if "ImageBrowser" is set to "false" + in the configurations file. Thanks to Richard.
  • +
  • [SF + BUG-1120266] [SF + BUG-1186196] The editor now retains the focus when selecting commands in + the toolbar.
  • +
  • [SF + BUG-1244480] The editor now will look first to linked fields "ids" + and second to "names".
  • +
  • [SF + BUG-1252905] The "InsertHtml" function now preserves URLs as entered. +
  • +
  • [SF + BUG-1266317] Toolbar commands are not anymore executed outside the editor.
  • +
  • [SF + BUG-1365664] The "wrap=virtual" attribute has been removed from the + integration files for validation purposes. No big impact.
  • +
  • [SF + BUG-972193] Now just one click is needed to active the cursor inside the editor. +
  • +
  • The hidden fields used by the editor are now protected from changes using the "Web + Developer Add-On > Forms > Display Forms Details" extension. Thanks to + Jean-Marie Griess.
  • +
  • On IE, the "Format" 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 + "Normal (DIV)" type is seen by IE as "Normal", to avoid confusion, + both types are ignored by this fix.
  • +
  • On some very rare cases, IE was loosing the "align" attribute for DIV + tags. Fixed.
  • +
  • [SF + BUG-1388799] The code formatter was removing spaces on the beginning of lines + inside PRE tags. Fixed.
  • +
  • [SF + BUG-1387135] No more "NaN" values in the image dialog, when changing + the sizes in some situations.
  • +
  • Corrected a small type in the table handler.
  • +
  • You can now set the "z-index" 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.
  • +
+

+ Special thanks to + Alfonso Martinez, who have provided many patches and suggestions for the + following features / fixes present in this version. I encourage all you to + donate to Alfonso, as a way to say thanks for his nice open source approach. + Thanks Alfonso!. Check out his contributions:

+
    +
  • [SF + BUG-1352539] [SF + BUG-1208348] With Firefox, no more "fake" selections are appearing + when inserting images, tables, special chars or when using the "insertHtml" + function.
  • +
  • [SF + Patch-1382588] The "FCKConfig.DisableImageHandles" configuration option + is not working on Firefox 1.5.
  • +
  • [SF + Patch-1368586] Some fixes have been applied to the Flash dialog box and the + Flash pre-processor.
  • +
  • [SF + Patch-1360253] [SF + BUG-1378782] [SF + BUG-1305899] [SF + BUG-1344738] [SF + BUG-1347808] On dialogs, some fields became impossible + to select or change when using Firefox. It has been fixed.
  • +
  • [SF + Patch-1357445] Add support for DIV in the Format drop-down combo for Firefox. +
  • +
  • [SF + BUG-1350465] [SF + BUG-1376175] The "Cell Properties" dialog now works correctly + when right-clicking in an object (image, for example) placed inside the cell itself. +
  • +
  • [SF + Patch-1349166] On IE, there is now support for namespaces on tags names.
  • +
  • [SF + Patch-1350552] Fix the display issue when applying styles on tables.
  • +
  • [SF + Patch-1352320 ] Fixed a wrong usage of the "parentElement" + property on Gecko.
  • +
  • [SF + Patch-1355007] The new "FCKDebug.OutputObject" function is available + to dump all object information in the debug window.
  • +
  • [SF + Patch-1329500] It is now possible to delete table columns when clicking on a + TH cell of the column.
  • +
  • [SF + Patch-1315351] It is now possible to pass the image width and height to the + "SetUrl" function of the Flash dialog box.
  • +
  • [SF + Patch-1327384] TH tags are now correctly handled by the source code formatter + and the "FillEmptyBlocks" configuration option.
  • +
  • [SF + Patch-1327406] 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.
  • +
  • Hidden fields now get rendered on Firefox.
  • +
  • The BasePath is now included in the debugger URL to avoid problems when calling + it from plugins.
  • +
+

+ * This version has been partially sponsored by + Alkacon Software.

+

+ Version 2.1.1

+

+ New Features and Improvements:

+
    +
  • The new "Insert Page Break" command (for printing) has + been introduced.*
  • +
  • The editor package now has a root directory called "FCKeditor".
  • +
+

+ Fixed Bugs:

+
    +
  • [SF + BUG-1326285] [SF + BUG-1316430] [SF + BUG-1323662] [SF + BUG-1326223] 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 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).
  • +
  • [SF + BUG-1275714] Comments in the beginning of the source are now preserved when + using the "undo" and "redo" commands.
  • +
  • The "undo" and "redo" commands now work for the Style command. +
  • +
  • An error in the execution of the pasting commands on Firefox has been fixed.
  • +
  • [SF + BUG-1326184] No strange (invalid) entities are created when using Firefox. Also, + the &nbsp; used by the FillEmptyBlocks setting is maintained even if you disable + the ProcessHTMLEntities setting.
  • +
+

+ * This version has been partially sponsored by + Acctive Software S.A..

+

+ Version 2.1

+

+ New Features and Improvements:

+
    +
  • [SF + BUG-1200328] The editor now offers a way to "protect" part of the + source to remain untouched while editing or changing views. 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.
  • +
  • The editor now offers native support for Lasso. Thanks and welcome to + our new developer Jason Huck.
  • +
  • New language files are available: +
      +
    • Faraose (by Símin Lassaberg and Helgi Arnthorsson) +
    • +
    • Malay (by Fairul Izham Mohd Mokhlas)
    • +
    • Mongolian (by Lkamtseren Odonbaatar)
    • +
    • Vietnamese (by Phan Binh Giang)
    • +
    +
  • +
  • A new configurable ColdFusion connector is available. Thanks to Mark Woods. + Many enhancements has been introduced with it.
  • +
  • The PHP connector for the default File Browser now sorts the folders and files names. +
  • +
  • [SF + BUG-1289372] [SF + BUG-1282758] 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.
  • +
  • The ASP.Net uploader (for Quick Uploads) has been added to the package.
  • +
  • A new way to define simple "combo" toolbar items , like + Style and Font, has been introduced. Thanks to Steve Lineberry. See + sample06.html and the "simplecommands" plugin to fully understand + it.
  • +
  • A new test case has been added that shows how to set the editor background dynamically + without using a CSS.
  • +
  • [SF + BUG-1155906] [SF + BUG-1110116] [SF + BUG-1216332] The "AutoDetectPasteFromWord" configuration option + is back (IE only feature).
  • +
  • The new "OnAfterLinkedFieldUpdate" event has been introduced. If + is fired when the editor updates its hidden associated field.
  • +
  • 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. +
  • +
  • A 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.
  • +
  • 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.
  • +
  • [SF + Feature-1246623] The new configuration option "ForceStrongEm" has + been introduced so you can force the editor to convert all <B> and <I> + tags to <STRONG> and <EM> respectively.
  • +
  • A nice contribution has been done by Goss Interactive Ltd: +
      +
    • [SF + BUG-1246949] 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. +
      + 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. +
      + 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.
    • +
    • 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.  +
    • +
    • 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).
    • +
    +
  • +
+

+ Fixed Bugs:

+
    +
  • [SF + BUG-1253255] [SF + BUG-1265520] Due to changes on version 2.0, the anchor list was not anymore + visible in the link dialog window. It has been fixed.
  • +
  • [SF + BUG-1242979] [SF + BUG-1251354] [SF + BUG-1256178] [SF + BUG-1274841] [SF + BUG-1303949] Due to a bug on Firefox, some keys stopped working + on startup over Firefox. It has been fixed.
  • +
  • [SF + BUG-1251373 ] The above fix also has corrected some strange behaviors on + Firefox.
  • +
  • [SF + BUG-1144258] [SF + BUG-1092081] The File Browsers now run on the same server session used + in the page where the editor is placed in (IE issue). Thanks to Simone Chiaretta. +
  • +
  • [SF + BUG-1305619 ] No more repeated login dialogs when running the editor with Windows + Integrated Security with IIS.
  • +
  • [SF + Patch-1245304] The Test Case 004 is now working correctly. It has been changed + to set the editor hidden at startup.
  • +
  • [SF + BUG-1290610 ] Over HTTPS, there were some warnings when loading the Images, + Flash and Link dialogs. Fixed.
  • +
  • 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).
  • +
  • An invalid path in the dialogs CSS file has been corrected.
  • +
  • On IE, the Undo/Redo can now be controlled using the Ctrl+Z and Ctrl+Y shortcut + keys.
  • +
  • [SF + BUG-1295538 ] A few Undo/Redo fixes for IE have been done.
  • +
  • [SF + BUG-1247070] 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.
  • +
  • [SF + BUG-1274303] The "Insert Column" command is now working correctly + on TH cells. It also copies any attribute applied to the source cells.
  • +
  • [SF + Patch-1287070 ] In the Universal Keyboard, the Arabic keystrokes translator + is now working with Firefox. Thanks again to Abdul-Aziz Al-Oraij.
  • +
  • The editor now handles AJAX requests with HTTP status 304.
  • +
  • [SF + BUG-1157780] [SF + BUG-1229077] Weird comments are now handled correctly (ignored on some cases). +
  • +
  • [SF + BUG-1155774] A spelling error in the Bulleted List Properties dialog has been + corrected.
  • +
  • [SF + BUG-1272018] The ampersand character can now be added from the Special Chars + dialog.
  • +
  • [SF + BUG-1263161] A small fix has been applied to the sampleposteddata.php file. + Thanks to Mike Wallace.
  • +
  • [SF + BUG-1241504] The editor now looks also for the ID of the hidden linked field. +
  • +
  • The caption property on tables is now working on Gecko. Thanks to Helen Somers (Goss + Interactive Ltd).
  • +
  • [SF + BUG-1297431] With IE, the editor now works locally when its files are placed + in a directory path that contains spaces.
  • +
  • [SF + BUG-1279551] [SF + BUG-1242105] On IE, some features are dependant of ActiveX components (secure... + distributed 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 by the editor to run.
  • +
  • [SF + BUG-1298880] Firefox can't handle the STRONG and EM tags. Those tags are now + converted to B and I so it works accordingly.
  • +
  • [SF + BUG-1271723] On IE, it is now possible to select the text and work correctly + in the contents of absolute positioned/dimensioned divs.
  • +
  • On IE, there is no need to click twice in the editor to activate the cursor + in the editing area.
  • +
  • [SF + BUG-1221621] Many "warnings" in the Firefox console are not thrown + anymore.
  • +
  • [SF + BUG-1295526] While editing on "FullPage" mode the basehref is + now active for CSS "link" tags.
  • +
  • [SF + Patch-1222584] A small fix to the PHP connector has been applied.
  • +
  • [SF + Patch-1281313] A few small changes to avoid problems with Plone. Thanks to Jean-mat. +
  • +
  • [SF + BUG-1275911] A check for double dots sequences on directory names on creation + has been introduced to the PHP and ASP connectors.
  • +
+

+ Version 2.0

+

+ New Features and Improvements:

+
    +
  • The new "Flash" 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. *
  • +
  • A "Quick Upload " 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 are included. Take + a look at the configuration file.***
  • +
  • Added support for Active FoxPro Pages . Thanks to our new developer, + Sönke Freitag.
  • +
  • It is now possible to disable the size handles for images and tables + (IE only feature). Take a look at the DisableImageHandles and DisableTableHandles + configuration options.
  • +
  • The handles on form fields (small squares around them) and the inline editing + of its contents have been disabled. This makes it easier to users to use + the controls.
  • +
  • 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.**
  • +
  • [SF + Patch-1225372] A small change has been done to the PHP integration file. The + generic __construct constructor has been added for better PHP 5 sub-classing compatibility + (backward compatible). Thanks to Marcus Bointon.
  • +
+

+ Fixed Bugs:

+
    +
  • 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.
  • +
  • [SF + BUG-1211591] [SF + BUG-1204273] The connectors have been changed so it is not possible to use + ".." on directory names.
  • +
  • [SF + Patch-1219734] [SF + BUG-1219728] [SF + BUG-1208654] [SF + BUG-1205442] There was an error in the page unload on some cases + that has been fixed.
  • +
  • [SF + BUG-1209708] [SF + BUG-1214125] The undo on IE is now working correctly when the user starts + typing.
  • +
  • The preview now loads "Full Page" editing correctly. It also uses the + same XHTML code produced by the final output.
  • +
  • The "Templates" dialog was not working on some very specific (and strange) + occasions over IE.
  • +
  • [SF + BUG-1199631] [SF + BUG-1171944] 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.
  • +
  • [SF + Patch-1212026] [SF + BUG-1228860] [SF + BUG-1211775] [SF + BUG-1199824] An error in the Packager has been corrected.
  • +
  • [SF + BUG-1163669] The XHTML processor now adds a space before the closing slash of + tags that don't have a closing tag, like <br />.
  • +
  • [SF + BUG-1213733] [SF + BUG-1216866] [SF + BUG-1209673] [SF + BUG-1155454] [SF + BUG-1187936 ] Now, on Gecko, the source is opened in a + dialog window to avoid fatal errors (Gecko bugs).
  • +
  • Some pages have been changed to avoid importing errors on Plone. Thanks to Arthur + Kalmenson.
  • +
  • [SF + BUG-1171606] There is a bug on IE that makes the editor to not work if + the instance name matches a meta tag name. Fixed.
  • +
  • On Firefox, the source code is now opened in a dialog box, to avoid error on pages + with more than one editor.
  • +
  • [SF + Patch-1225703] [SF + BUG-1214941] The "ForcePasteAsPlainText" configuration option + is now working correctly on Gecko browsers. Thanks to Manuel Polo.
  • +
  • [SF + BUG-1228836] The "Show Table Borders" feature is now working on Gecko + browsers.
  • +
  • [SF + Patch-1212529] [SF + BUG-1212517] The default File Browser now accepts connectors with querystring + parameters (with "?"). Thanks to Tomas Jucius.
  • +
  • [SF + BUG-1233318] A JavaScript error thrown when using the Print command has been + fixed.
  • +
  • [SF + BUG-1229696] A regular expression has been escaped to avoid problems when opening + the code in some editors. It has been moved to a dialog window.
  • +
  • [SF + BUG-1231978] [SF + BUG-1228939] The Preview window is now using the Content Type and Base href. +
  • +
  • [SF + BUG-1232056] The anchor icon is now working correctly on IE.
  • +
  • [SF + BUG-1202468] The anchor icon is now available on Gecko too.
  • +
  • [SF + BUG-1236279] A security warning has been corrected when using the File Browser + over HTTPS.
  • +
  • The ASP implementation now avoid errors when setting the editor value to null values. +
  • +
  • [SF + BUG-1237359] The trailing <BR> added by Gecko at the end of the source + is now removed.
  • +
  • [SF + BUG-1170828] No more &nbsp; is added to the source when using the "New + Page" button.
  • +
  • [SF + BUG-1165264] A new configuration option has been included to force the + editor to ignore empty paragraph values (<p>&nbsp;</p>), returning + empty ("").
  • +
  • No more &nbsp; is added when creating a table or adding columns, rows or cells. +
  • +
  • The <TD> tags are now included in the FillEmptyBlocks configuration handling. +
  • +
  • [SF + BUG-1224829] A small bug in the "Find" dialog has been fixed.
  • +
  • [SF + BUG-1221307] A small bug in the "Image" dialog has been fixed.
  • +
  • [SF + BUG-1219981] [SF + BUG-1155726] [SF + BUG-1178473] It is handling the <FORM>, <TEXTAREA> and <SELECT> + tags "name" attribute correctly. Thanks to thc33.
  • +
  • [SF + BUG-1205403] The checkbox and radio button values are now handled correctly + in their dialog windows. Thanks to thc33.
  • +
  • [SF + BUG-1236626] The toolbar now doesn't need to collapse when unloading the page + (IE only).
  • +
  • [SF + BUG-1212559] [SF + BUG-1017231] The "Save" button now calls the "onsubmit" + event before posting the form. The submit can be cancelled if the onsubmit returns + "false".
  • +
  • [SF + BUG-1215823] The editor now works correctly on Firefox if it values is set to + "<p></p>".
  • +
  • [SF + BUG-1217546] No error is thrown when "pasting as plain text" and no + text is available for pasting (as an image for example).
  • +
  • [SF + BUG-1207031] [SF + BUG-1223978] The context menu is now available in the source view.
  • +
  • [SF + BUG-1213871] Undo has been added to table creation and table operation commands. +
  • +
  • [SF + BUG-1205211] [SF + BUG-1229941] Small bug in the mcpuk file browser have been corrected.
  • +
+

+ * This version has been partially sponsored by + Infineon Technologies AG.
+ ** This version has been partially sponsored by + Visualsoft Web Solutions.
+ *** This version has been partially sponsored by + Web Crossing, Inc.

+

+ Version 2.0 FC (Final Candidate)

+

+ New Features and Improvements:

+
    +
  • A new tab called "Link" is available in the Image + Dialog window. In this way you can insert or modify the image link directly + from that dialog.*
  • +
  • The new "Templates" 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.**
  • +
  • The mcpuk's 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.
  • +
  • New configuration options are available to hide tabs from the + Image Dialog and Link Dialog windows: LinkDlgHideTarget, + LinkDlgHideAdvanced, ImageDlgHideLink and ImageDlgHideAdvanced.
  • +
  • [SF + BUG-1189442] [SF + BUG-1187164] [SF + BUG-1185905] It is now possible to configure the editor to not convert Greek + or special Latin 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.
  • +
  • New language files are available: +
      +
    • Basque (by Ibon Igartua)
    • +
    • English (Australia / United Kingdom) (by Christopher Dawes)
    • +
    • Ukrainian (by Alexander Pervak)
    • +
    +
  • +
  • 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).
  • +
  • [SF + Patch-1159854] Ther HTML output rendered by the server side integration files + are now XHTML compatible.
  • +
  • [SF + BUG-1181823] It is now possible to set the desired DOCTYPE to use when edit + HTML fragments (not in Full Page mode).
  • +
  • There is now an optional way to implement different "mouse over" effects + to the buttons when they are "on" of "off".
  • +
+

+ Fixed Bugs:

+ +

+ * This version has been partially sponsored by the + Hamilton College.
+ ** This version has been partially sponsored by + Infineon Technologies AG.

+

+ Version 2.0 RC3 (Release Candidate 3)

+

+ New Features and Improvements:

+
    +
  • The editor now offers native Perl integration! Thanks and welcome + to Takashi Yamaguchi, our official Perl developer.
  • +
  • [SF + Feature-1026584] [SF + Feature-1112692] Formatting has been introduced to the + Source View. The output HTML can also be formatted. You can choose + to use spaces or tab for indentation. See the configuration file.
  • +
  • [SF + Feature-1031492] [SF + Feature-1004293] [SF + Feature-784281] It is now possible to edit full HTML pages + with the editor. Use the "FullPage" configuration setting to activate + it.
  • +
  • The new toolbar command, "Document Properties" is + available to edit document header info, title, colors, background, etc... Full page + editing must be enabled.
  • +
  • [SF + Feature-1151448] Spell Check is now available. You can use + ieSpell or Speller Pages right from FCKeditor. + More info about configuration can be found in the _docs folder.
  • +
  • [SF + Feature-1041686] [SF + Feature-1086386] [SF + Feature-1124602] New "Insert Anchor" command + has been introduced. (The anchor icon is visible only over IE for now).
  • +
  • [SF + Feature-1123816] It is now possible to configure the editor to show "fake" + table borders when the border size is set to zero. (It is working only + on IE for now).
  • +
  • Numbered and Bulleted lists can now be + configured . Just right click on then.
  • +
  • [SF + Feature-1088608] [SF + Feature-1144047] [SF + Feature-1149808] A new configuration setting is available, "BaseHref + ", to set the URL used to resolve relative links.
  • +
  • It is now possible to set the content language direction . + See the "FCKConfig.ContentLangDirection" configurations setting.
  • +
  • All Field Commands available on version 1.6 have been upgraded + and included in this version: form, checkbox, + radio button, text field, text area, + select field, button, image button + and hidden field .
  • +
  • Context menu options (right-click) has been added for: + anchors, select field, textarea, + checkbox, radio button, text field, + hidden field, textarea, button, + image button, form, bulleted list + and numbered list .
  • +
  • The "Universal Keyboard" has been converted from version + 1.6 to this one and it's now available.
  • +
  • It is now possible to configure the items to be shown in the + context menu . Just use the FCKConfig.ContextMenu option at fckconfig.js. +
  • +
  • A new configuration (FillEmptyBlocks) is available to force the editor to + automatically insert a &nbsp; 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 &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).
  • +
  • It is now possible to configure the toolbar to "break + " between two toolbar strips. Just insert a "/" between then. Take + a look at fckconfig.js for a sample.
  • +
  • New Language files are available: +
      +
    • Brazilian Portuguese (by Carlos Alberto Tomatis Loth)
    • +
    • Bulgarian (by Miroslav Ivanov)
    • +
    • Esperanto (by Tim Morley)
    • +
    • Galician (by Fernando Riveiro Lopez)
    • +
    • Japanese ( by Takashi Yamaguchi)
    • +
    • Persian (by Hamed Taj-Abadi)
    • +
    • Romanian (by Adrian Nicoara)
    • +
    • Slovak (by Gabriel Kiss)
    • +
    • Thai (by Audy Charin Arsakit)
    • +
    • Turkish (by Reha Biçer)
    • +
    • The Chinese Traditional has been set as the default (zn) instead of zn-tw.
    • +
    +
  • +
  • Warning: All toolbar image images have been changed. The "button." prefix + has been removed. If you have your custom skin, please rename your files.
  • +
  • A new plugin is available in the package: "Placeholders". + In this way you can insert non editable tags in your document to be processed on + server side (very specific usage).
  • +
  • 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. +
  • +
  • The FCKeditor.Packager program is now part of the main package. It is not anymore distributed + separately.
  • +
  • The PHP connector now sets the uploaded file permissions (chmod) to 0777.
  • +
  • [SF + Patch-1090215] 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. +
  • +
  • The package files now maintain their original "Last Modified" date, so + incremental FTP uploads can be used to update to new versions of the editor + (from now on).
  • +
  • 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).
  • +
+

+ Fixed Bugs:

+
    +
  • [SF + BUG-1124220] [SF + BUG-1119894] [SF + BUG-1090986] [SF + BUG-1100408] The editor now works correctly when starting with an + empty value and switching to the Source mode.
  • +
  • [SF + BUG-1119380] [SF + BUG-1115750] [SF + BUG-1101808] The problem with the scrollbar and the toolbar combos (Style, + Font, etc...) over Mac has been fixed.
  • +
  • [SF + BUG-1098460] [SF + BUG-1076544] [SF + BUG-1077845] [SF + BUG-1092395] A new upload class has been included for the ASP File + Manager Connector. It uses the "ADODB.Stream" object. Many thanks to "NetRube". +
  • +
  • I small correction has been made to the ColdFusion integration files. Thanks to + Hendrik Kramer.
  • +
  • There was a very specific problem when the editor was running over a FRAME executed + on another domain.
  • +
  • The performance problem on Gecko while typing quickly has been solved.
  • +
  • The <br type= "_moz">is not anymore shown on XHTML source.
  • +
  • It has been introduced a mechanism to avoid automatic contents duplication on very + specific occasions (bad formatted HTML).
  • +
  • [SF + BUG-1146407] [SF + BUG-1145800] [SF + BUG-1118803 ] Other issues in the XHTML processor have been solved. +
  • +
  • [SF + BUG-1143969] The editor now accepts the "accept-charset" attribute + in the FORM tag (IE specific bug).
  • +
  • [SF + BUG-1122742] [SF + BUG-1089548 ] Now, the contents of the SCRIPT and STYLE tags remain untouched. +
  • +
  • [SF + BUG-1114748] The PHP File Manager Connector now sets the new folders permissions + (chmod) to 0777 correctly.
  • +
  • The PHP File Manager Connector now has a configuration file (editor/filemanager/browser/default/connectors/php/config.php) + to set some security preferences.
  • +
  • The ASP File Manager Connector now has a configuration file (editor/filemanager/browser/default/connectors/asp/config.asp) + to set some security preferences.
  • +
  • A small bug in the toolbar rendering (strips auto position) has been corrected. +
  • +
  • [SF + BUG-1093732] [SF + BUG-1091377] [SF + BUG-1083044] [SF + BUG-1096307] The configurations are now encoded so a user can use + values that has special chars (&=/).
  • +
  • [SF + BUG-1103688] [SF + BUG-1092331] [SF + BUG-1088220] PHP samples now use PHP_SELF to automatically discover + the editor's base path.
  • +
  • Some small wrapping problems with some labels in the Image and Table dialog windows + have been fixed.
  • +
  • All .js files are now encoded in UTF-8 format with the BOM (byte order mask) to + avoid some errors on specific Linux installations.
  • +
  • [SF + BUG-1114449] 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.
  • +
  • A small problem with the editor focus while in source mode has been corrected. + Thanks to Eric (ric1607).
  • +
  • [SF + BUG-1108167] [SF + BUG-1085149] [SF + BUG-1151296] [SF + BUG-1082433] 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.
  • +
  • [SF + BUG-1117779] The editor now works well if you have more than one element named + "submit" on its form (even if it is not correct to have this situation). +
  • +
  • The XHTML processor was duplicating the text on some specific situation. It has + been fixed.
  • +
  • [SF + Patch-1090213] [SF + Patch-1098929] With ASP, the editor now works correctly on pages using "Option + Explicit". Thanks to Ben Noblet.
  • +
  • [SF + BUG-1100759] [SF + BUG-1029125] [SF + BUG-966130] The editor was not working with old IE 5.5 browsers. There + was a problem with the XML parser. It has been fixed.
  • +
  • The localization engine is now working correctly over IE 5.5 browsers.
  • +
  • Some commands where not working well over IE 5.5 (emoticons, image,...). It has + been fixed.
  • +
  • [SF + BUG-1146441] [SF + BUG-1149777] The editor now uses the TEXTAREA id in the ReplaceTextarea + function. If the id is now found, it uses the "name". The docs have been + updated.
  • +
  • [SF + BUG-1144297] Some corrections have been made to the Dutch language file. Thanks + to Erwin Dondorp.
  • +
  • [SF + BUG-1121365] [SF + BUG-1090102] [SF + BUG-1152171] [SF + BUG-1102907] There is no problem now to start the editor with values + like "<div></div>" or "<p></p>".
  • +
  • [SF + BUG-1114059] [SF + BUG-1041861] The click on the disabled options in the Context Menu has no + effects now.
  • +
  • [SF + BUG-1152617] [SF + BUG-1102441] [SF + BUG-1095312] Some problems when setting the editor source to very specific + values has been fixed.
  • +
  • [SF + BUG-1093514] [SF + BUG-1089204] [SF + BUG-1077609] The editor now runs correctly if called directly (locally) without + a server installation (just opening the HTML sample files).
  • +
  • [SF + BUG-1088248] The editor now uses a different method to load its contents. In + this way the URLs remain untouched.
  • +
  • The PHP integration file now detects Internet Explorer 5.5 correctly.
  • +
+

+ Version 2.0 RC2 (Release Candidate 2)

+
    +
  • [SF + Feature-1042034] [SF + Feature-1075961] [SF + Feature-1083200] A new dialog window for the table cell properties + is now available (right-click).
  • +
  • [SF + Feature-1042034] The new "Split Cell ", to split + a table cell in two columns, has been introduced (right-click).
  • +
  • [SF + Feature-1042034] The new "Merge Cells", to merge + table cells (in the same row), has been introduced (right-click).
  • +
  • The "fake" TAB key support (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).
  • +
  • It now possible to tell IE to send a <BR> when the user presses + the Enter key. Take a look at the FCKConfig.UseBROnCarriageReturn + configuration setting.
  • +
  • [SF + Feature-1085422] ColdFusion: The File Manager connector + is now available! (Thanks to Hendrik Kramer).
  • +
  • The editor is now available in 29 languages! The new language files + available are:  +
      +
    • [SF + Feature-1067775] Chinese Simplified and Traditional (Taiwan + and Hong Kong) (by NetRube).
    • +
    • Czech (by David Horák).
    • +
    • Danish (by Jesper Michelsen).
    • +
    • Dutch (by Bram Crins).
    • +
    • German (by Maik Unruh).
    • +
    • Portuguese (Portugal) (by Francisco Pereira).
    • +
    • Russian (by Andrey Grebnev).
    • +
    • Slovenian (by Boris Volaric).
    • +
    +
  • +
  • Updates to the French language files (by Hubert Garrido).
  • +
  • [SF + BUG-1085816] [SF + BUG-1083743] [SF + BUG-1078783] [SF + BUG-1077861] [SF + BUG-1037404] Many small bugs in the XHTML processor + has been corrected (workarounds to browser specific bugs). These are some things + to consider regarding the changes: +
      +
    • [SF + BUG-1083744] On Gecko browsers, any element attribute that the name starts with + "_moz" will be ignored.
    • +
    • [SF + BUG-1060073] The <STYLE> and <SCRIPT> 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).
    • +
    +
  • +
  • [SF + BUG-1088310] [SF + BUG-1078837] [SF + BUG-999792] URLs now remain untouched when initializing the editor or + switching from WYSYWYG to Source and vice versa.
  • +
  • [SF + BUG-1082323] The problem in the ASP and PHP connectors when handling non + "strange" chars in file names has been corrected.
  • +
  • [SF + BUG-1085034] [SF + BUG-1076796] Some bugs in the PHP connector have been corrected.
  • +
  • A 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).
  • +
  • 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 a "phanton" randle, the browser + crashes. It doesn't happen (the crash) anymore.
  • +
  • [SF + BUG-1082197] On ASP, the bug in the browser detection system for Gecko browsers + has been corrected. Thanks to Alex Varga.
  • +
  • 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. +
  • +
  • No error is thrown now when non existing language is configured in the + editor. The English language file is loaded in that case.
  • +
  • [SF + BUG-1077747] The missing images on the Office2003 and Silver skins are now included + in the package.
  • +
  • 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.
  • +
  • [SF + BUG-1004078] 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. +
  • +
  • [SF + BUG-1075166] ColdFusion: The "fallback" variant of the texteditor + (<textarea>) has a bug in the fckeditor.cfm. This has been fixed.
  • +
  • A typo in the Polish language file has been corrected. Thanks to Pawel Tomicki. +
  • +
  • [SF + BUG-1086370] A small coding type in the Link dialog window has been corrected. +
  • +
+

+ Version 2.0 RC1 (Release Candidate 1)

+
    +
  • ASP support is now available (including the File Manager connector). +
  • +
  • PHP support is now available (including the File Manager connector). +
  • +
  • [SF + Feature-1063217] The new advanced Style command is available + in the toolbar: full preview, context sensitive, style definitions are loaded from + a XML file (see documentation for more instructions).
  • +
  • The Font Format, Font Name and Font Size + toolbar command now show a preview of the available options.
  • +
  • The new Find and Replace features has been introduced. +
  • +
  • A new Plug-in 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). +
  • +
  • The editor now handles HTML entities in the right way (XHTML support + must be set to "true"). It handles all entities defined in the W3C XHTML + DTD file.
  • +
  • A new "_docs" folder has been introduced for the documentation. + It is not yet complete, but I hope the community will help us to fill it better. +
  • +
  • It is now possible (even if it is not recommended by the W3C) to force the use of + simple ampersands (&) on attributes (like the links href) instead of its entity + &amp;. Just set FCKConfig.ForceSimpleAmpersand = true in the configuration + file.
  • +
  • [SF + Feature-1026866] The "EditorAreaCSS" configuration + option has been introduced. In this way you can set the CSS to use in the editor + (editable area).
  • +
  • The editing area is not anymore clipped if the toolbar is too large and exceeds + the window width.
  • +
  • [SF + BUG-1064902] [SF + BUG-1033933] The editor interface is now completely localizable. + The version ships with 19 languages including: Arabic, Bosnian, Catalan, + English, Spanish, Estonian, Finnish, French, + Greek, Hebrew, Croatian, Italian, Korean, Lithuanian, + Norwegian, Polish, Serbian (Cyrillic), + Serbian (Latin) and Swedish.
  • +
  • [SF + BUG-1027858] Firefox 1.0 PR introduced a bug that made the editor + stop working on it. A workaround has been developed to fix the problem.
  • +
  • There was a positioning problem over IE with the color panel. It has been corrected. +
  • +
  • [SF + BUG-1049842] [SF + BUG-1033832] [SF + BUG-1028623] [SF + BUG-1026610] [SF + BUG-1064498] The combo commands in the toolbar were not opening + in the right way. It has been fixed.
  • +
  • [SF + BUG-1053399] [SF + BUG-965318] [SF + BUG-1018296] The toolbar buttons icons were not showing on some IE and + Firefox/Mac installations. It has been fixed.
  • +
  • [SF + BUG-1054621] Color pickers are now working with the "office2003" and + "silver" skins.
  • +
  • [SF + BUG-1054108] IE doesn’t recognize the "&apos;" entity for + apostrophes, so a workaround has been developed to replace it with "&#39;" + (its numeric entity representation).
  • +
  • [SF + BUG-983434] [SF + BUG-983398] [SF + BUG-1028103] [SF + BUG-1072496] The problem with elements with name "submit" + inside the editor's form has been solved.
  • +
  • [SF + BUG-1018743] The problem with Gecko when collapsing the toolbar while in source + mode has been fixed.
  • +
  • [SF + BUG-1065268] [SF + BUG-1034354] The XHTML processor now doesn’t use the minimized tag + syntax (like <br/>) for empty elements that are not marked as EMPTY in the + W3C XHTML DTD specifications.
  • +
  • [SF + BUG-1029654] [SF + BUG-1046500] Due to a bug on Gecko there was a problem when creating links. + It has been fixed.
  • +
  • [SF + BUG-1065973] [SF + BUG-999792] 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.
  • +
  • [SF + BUG-1071824] The color dialog box bug has been fixed.
  • +
  • [SF + BUG-1052856] [SF + BUG-1046493] [SF + BUG-1023530] [SF + BUG-1025978] The editor now doesn’t throw an error if no selection + was made and the create link command is used.
  • +
  • [SF + BUG-1036756] The XHTML processor has been reviewed.
  • +
  • [SF + BUG-1029101] The Paste from Word feature is working correctly.
  • +
  • [SF + BUG-1034623] There is an IE bug when setting the editor value to "<p><hr></p>". + A workaround has been developed.
  • +
  • [SF + BUG-1052695] 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.
  • +
  • [SF + BUG-1073053] [SF + BUG-1050394] The editor doesn’t throw errors when hidden.
  • +
  • [SF + BUG-1066321] Scrollbars should not appear on dialog boxes (at least for the + Image and Link ones).
  • +
  • [SF + BUG-1046490] Dialogs now are forced to show on foreground over Mac.
  • +
  • [SF + BUG-1073955] A small bug in the image dialog window has been corrected.
  • +
  • [SF + BUG-1049534] The Resources Browser window is now working well over Gecko browsers. +
  • +
  • [SF + BUG-1036675] The Resources Browser window now displays the server error on bad + installations.
  • +
+

+ Version 2.0 Beta 2

+
    +
  • There is a new configuration - "GeckoUseSPAN" - that + can be used to tell Gecko browsers to use <SPAN style...> or <B>, <I> + and <U> for the bold, italic and underline commands.
  • +
  • [SF + Feature-1002622] New Text Color and Background Color +  commands have been added to the editor.
  • +
  • On Gecko browsers, a message is shown when, because of security settings, the + user is not able to cut, copy or paste data from the clipboard using the + toolbar buttons or the context menu.
  • +
  • The new "Paste as Plain Text " command has been introduced. +
  • +
  • The new "Paste from Word " command has been introduced. +
  • +
  • A new configuration named "StartupFocus" can be used to tell the + editor to get the focus when the page is loaded.
  • +
  • All Java integration files has been moved to a new separated package. +
  • +
  • [SF + BUG-1016781] Table operations are now working when right click + inside a table. The following commands has been introduced: Insert Row, + Delete Row, Insert Column, Delete Column, + Insert Cell and Delete Cells .
  • +
  • [SF + BUG-965067] [SF + BUG-1010379] [SF + BUG-977713] XHTML support was not working with FireFox, blocking the + editor when submitting data. It has been fixed.
  • +
  • [SF + BUG-1007547 ] [SF + BUG-974595 ] The "FCKLang not defined" error when loading + has been fixed.
  • +
  • [SF + BUG-1021028] 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.
  • +
  • [SF + BUG-981191] We are now using <!--- ---> for ColdFusion comments.
  • +
+

+ Version 2.0 Beta 1

+

+ This is the first beta of the 2.x series. It brings a lot of new and important things. + Beta versions will be released until all features available on version 1.x will + be introduced in the 2.0.
+
+ Note: As it is a beta, it is not yet completely developed. Future + versions can bring new features that can break backward compatibility with this + version. +

+
    +
  • Gecko browsers (Mozilla and Netscape) support. +
  • +
  • Quick startup response times.
  • +
  • Complete XHTML 1.0 support.
  • +
  • Advanced link dialog box: +
      +
    • Target selection.
    • +
    • Popup configurator.
    • +
    • E-Mail link.
    • +
    • Anchor selector.
    • +
    +
  • +
  • New File Manager.
  • +
  • New dialog box system, with tabbed dialogs support.
  • +
  • New context menus with icons.
  • +
  • New toolbar with "expand/collapse" feature.
  • +
  • Skins support.
  • +
  • Right to left languages support.
  • +
+

+ Version 1.6.1

+
    +
  • [SF + BUG-862364] [SF + BUG-812733] There was a problem when the user tried to delete the last row, + collumn or cell in a table. It has been corrected.*
  • +
  • New Estonian language file. Thanks to Kristjan Kivikangur
  • +
  • New Croatian language file. Thanks to Alex Varga.
  • +
  • Updated language file for Czech. Thanks to Plachow.
  • +
  • Updated language file for Chineze (zh-cn). Thanks to Yanglin.
  • +
  • Updated language file for Catalan. Thanks to Jordi Cerdan.
  • +
+

+ * This version has been partially sponsored by Genuitec, + LLC.

+

+ Version 1.6

+
    +
  • Context Menu support for form elements.*
  • +
  • New "Selection Field" command with advanced dialog box + for options definitions.*
  • +
  • New "Image Button" command is available.*
  • +
  • [SF + Feature-936196] Many form elements bugs has been fixed and + many improvements has been done.*
  • +
  • New Java Integration Module. There is a complete Java API and Tag + Library implementations. Take a look at the _jsp directory. Thanks to Simone Chiaretta + and Hao Jiang.
  • +
  • The Word Spell Checker 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.
  • +
  • [SF + Feature-748807] [SF + Feature-801030] [SF + Feature-880684] New "Anchor" command, including + context menu support. Thanks to G.Meijer.
  • +
  • Special characters are replaced with their decimal HTML entities when the XHMTL + support is enabled (only over IE5.5+).
  • +
  • New Office 2003 Style toolbar icons are available. Just uncomment + the config.ToolbarImagesPath key in the fck_config.js file. Thanks to Abdul-Aziz + A. Al-Oraij. Attention: the default toolbar items have been moved + to the "images/toolbar/default" directory.
  • +
  • [SF + Patch-934566] Double click support for Images, Tables, Links, + Anchors and all Form elements. Thanks to Top Man.
  • +
  • New "New Page" command to start a typing from scratch. + Thanks to Abdul-Aziz A. Al-Oraij.
  • +
  • New "Replace" command. Thanks to Abdul-Aziz A. Al-Oraij. +
  • +
  • New "Advanced Font Style" command. Thanks to Abdul-Aziz + A. Al-Oraij.
  • +
  • [SF + Feature-738193] New "Save" command. 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.
  • +
  • New "Universal Keyboard" command. 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.
  • +
  • [SF + Patch-935358] New "Preview" command. Context menu + option is included and can be deactivated throw the config.ShowPreviewContextMenu + configuration. Thanks to Ben Ramsey.
  • +
  • New "Table Auto Format" context menu command. Hack a + little the fck_config.js and the fck_editorarea.css files. Thanks to Alexandros + Lezos.
  • +
  • New "Bulleted List Properties " context menu to define + its type and class. Thanks to Alexandros Lezos.
  • +
  • The image dialog box has been a redesigned . Thanks + to Mark Fierling.
  • +
  • Images now always have the "alt" attribute set, even + when it's value is empty. Thanks to Andreas Barnet.
  • +
  • [SF + Patch-942250] You can set on fck_config.js to automatically clean Word + pasting operations without a user confirmation.
  • +
  • Forms element dialogs and other localization pending labels has been updated.
  • +
  • A new Lithuanian language file is available. Thanks to Tauras Paliulis. +
  • +
  • A new Hebrew language file is available. Thanks to Ophir Radnitz. +
  • +
  • A new Serbian language file is available. Thanks to Zoran Subic. +
  • +
  • Danish language file updates. Thanks to Flemming Jensen.
  • +
  • Catalan language file updates. Thanks to Jordi Cerdan.
  • +
  • [SF + Patch-936514] [SF + BUG-918716] [SF + BUG-931037] [SF + BUG-865864] [SF + BUG-915410] [SF + BUG-918716] Some languages files were not + saved on UTF-8 format causing some javascript errors on loading + the editor or making "undefined" to show on editor labels. This problem + was solved.
  • +
  • Updates on the testsubmit.php file. Thanks to Geat and Gabriel Schillaci
  • +
  • [SF + BUG-924620] 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 <META name="description"> tag.
  • +
  • [SF + BUG-935018] The "buletted" typo has been corrected.
  • +
  • [SF + BUG-902122] Wrong css and js file references have been corrected.
  • +
  • [SF + BUG-918942] All dialog boxes now accept Enter and Escape keys as Ok and Cancel + buttons.
  • +
+

+ * This version has been partially sponsored by Genuitec, + LLC.

+

+ Version 1.5

+
    +
  • [SF + Feature-913777] New Form Commands are now available! Special + thanks to G.Meijer.
  • +
  • [SF + Feature-861149] Print Command is now available!
  • +
  • [SF + BUG-743546] The XHTML content duplication problem has been + solved . Thanks to Paul Hutchison.
  • +
  • [SF + BUG-875853] The image dialog box 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. +
  • +
  • [SF + Feature-788368] The sample file upload manager for ASPX now + uses guids for the file name generation. In this way a support + XML file is not needed anymore.
  • +
  • It's possible now to programmatically change the Base Path of the + editor if it's installed in a directory different of "/FCKeditor/". Something + like this:
    + oFCKeditor.BasePath = '/FCKeditor/' ;
    + Take a look at the _test directory for samples.
  • +
  • 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.
  • +
  • The problem with accented and international characters on the PHP + test page was solved.
  • +
  • A new Chinese (Taiwan) language file is available. Thanks to Nil. +
  • +
  • A new Slovenian language file is available. Thanks to Pavel Rotar. +
  • +
  • A new Catalan language file is available. Thanks to Jordi Cerdan. +
  • +
  • A new Arabic language file is available. Thanks to Abdul-Aziz A. + Al-Oraij.
  • +
  • Small corrections on the Norwegian language file.
  • +
  • A Java version for the test results (testsubmit.jsp) is now available. Thanks to + Pritpal Dhaliwal.
  • +
  • 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.
  • +
  • If XHTML 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. +
  • +
  • The JS integration object now escapes all configuration settings, + in this way a user can use reserved chars on it. For example: +
    + oFCKeditor.Config["ImageBrowserURL"] = '/imgs/browse.asp?filter=abc*.jpg&userid=1'; +
  • +
  • A minimal browse server sample is now available in ASP. Thanks to Andreas Barnet. +
  • +
+

+ Version 1.4

+
    +
  • ATTENTION: For PHP users: The editor was changed and now uses + htmlspecialchars instead of htmlentities 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!).
  • +
  • The editor is now integrated with ieSpell (http://www.iespell.com) + for Spell Checking. 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)
  • +
  • Table and table cell dialogs has been changed. + Now you can select the class you want to be applied. Thanks to + Alexander Lezos.
  • +
  • [SF + Feature-865378]A new upload support is available for ASP. 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.
  • +
  • [SF + Patch-798128] The user (programmer) can now define a custom separator + for the list items of a combo in the toolbar. Thanks to Wulff D. Heiss.
  • +
  • [SF + Feature-741963][SF + Feature-878941][SF + Patch-869389] A minimal support for a “fake” TAB is now available, + even if HTML has no support for TAB. Now when the user presses the TAB key a configurable + number of spaces (&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.
  • +
  • [SF + BUG-782779][SF + BUG-790939] The problem with big images has been corrected. Thanks to Raver. +
  • +
  • [SF + BUG-862975] Now the editor does nothing if no image is selected in the image + dialog box and the OK button is hit.
  • +
  • [SF + BUG-851609] The problem with ASP and null values has been solved.
  • +
  • Norwegean language pack. Thanks to Martin Kronstad.
  • +
  • Hungarian language pack. Thanks to Balázs Szabó. +
  • +
  • Bosnian language pack. Thanks to Trax.
  • +
  • Japanese language pack. Thanks to Kato Yuichiro.
  • +
  • Updates on the Polish language pack. Thanks to Norbert Neubauer. +
  • +
  • The Chinese (Taiwan) (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. +
  • +
+

+ Version 1.3.1

+
    +
  • It's now possible to configure the editor the insert a <BR> tag instead + of <P> when the user presses the <Enter> key. + Take a look at the fck_config.js configuration file for the "UseBROnCarriageReturn" + key. This option is disabled by default.
  • +
  • Icelandic language pack. Thanks to Andri Óskarsson.
  • +
  • [SF + BUG-853374] On IE 5.0 there was a little error introduced with version 1.3 on + initialization. It was corrected.
  • +
  • [SF + BUG-853372] On IE 5.0 there was a little error introduced with version 1.3 when + setting the focus in the editor. It was corrected.
  • +
  • Minor errors on the language file for english has been corrected. + Thanks to Anders Madsen.
  • +
  • Minor errors on the language file for danish has been corrected. + Thanks to Martin Johansen.
  • +
+

+ Version 1.3

+
    +
  • Language support for Danish, Polish, Simple Chinese, Slovak, Swedish and + Turkish.
  • +
  • Language updates for Romanian.
  • +
  • It's now possible to override any of the editor's configurations + (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. +
  • +
  • A new method is available for PHP users. It's called ReturnFCKeditor. + It works exactly like CreateFCKeditor, but it returns a string with the HTML + 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. +
  • +
  • Many people have had problems with international characters over + PHP. 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. Now it works well in my system.
    + 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.
  • +
  • The "testsubmit.php" file now strips the "Magic + Quotes " that are automatically added by PHP on form posts.
  • +
  • A new language integration module is available for ASP/Jscript. + Thanks to Dimiter Naydenov.
  • +
  • New configuration options are available to customize the + Target combo box in the Insert/Modify Link 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.
  • +
  • The Text as Plain Text toolbar icon has been changed + to avoid confusion with the Normal Paste or. Thanks to Kaupo Kalda. +
  • +
  • The file dhtmled.cab has been removed from the package. It's not + needed to the editor to work and caused some confusion for a few users.
  • +
  • The editor's content now doesn't loose the focus + when the user clicks with the mouse in a toolbar button.
  • +
  • On drag-and-drop operations the data to be inserted in the editor + is now converted to plain text when the "ForcePasteAsPlainText" + configuration is set to true.
  • +
  • The image browser sample in PHP now sorts the files + by name. Thanks to Sergey Lupashko.
  • +
  • Two new configuration options are available to turn on/off + by default the "Show Borders" and "Show + Details" commands.
  • +
  • Some characters have been removed from the "Insert + Special Chars" dialog box because they were causing encoding problems + in some languages. Thanks to Abomb Hua.
  • +
  • JSP versions of the image and file upload and browsing + features. Thanks to Simone Chiaretta.
  • +
+

+ Version 1.2.4

+
    +
  • Language support for Spanish, Finnish, Romanian and Korean.
  • +
  • Language updates for German.
  • +
  • New Zoom toolbar option. (Thanks + to "mtn_roadie")
  • +
+

+ Version 1.2.2

+
    +
  • Language support for French.
  • +
  • [SF + BUG-782779] Version 1.2 introduced a bug on the image dialog window: when changing + the image, no update was done. This bug is now fixed.
  • +
+

+ Version 1.2

+
    +
  • Enhancements to the Word cleaning feature (Thanks to Karl von Randow). +
  • +
  • The Table dialog box 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.
  • +
  • For the Image dialog box: +
      +
    • No image is shown in the preview pane if no image has been set.
    • +
    • 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.
    • +
    +
  • +
  • [SF + BUG-739630] Image with link lost the link when changing its properties. The + problem is solved.
  • +
  • Due to some problems in the XHTML cleaning (content duplication when the source + HTML is dirty and malformed), the XHTML support is turned off by default + from this version. You can still change this behavior and turn it on in the configuration + file.
  • +
  • Some little updates on the English language file.
  • +
  • A few addition of missing entries on all languages files (translations for these + changes are pending).
  • +
  • Language files has been added for the following languages: +
      +
    • Brazilian Portuguese (pt-br)
    • +
    • Czech (cz)
    • +
    • Dutch (nl)
    • +
    • Russian (ru)
    • +
    • Chinese (Taiwan) (zh-tw)
    • +
    • Greek (gr)
    • +
    • German (de)
    • +
    +
  • +
+

+ Version 1.1

+
    +
  • The "Multi Language" 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 fck_config.file.
  • +
  • Two files can now be created to isolate customizations code from the original source + code of the editor: fckeditor.config.js and fckeditor.custom.js. + 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.
  • +
  • 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 editor’s HTML.
  • +
  • [SF + BUG-742168] Mouse drag and drop from toolbar buttons has been disabled.
  • +
  • [SF + BUG-768210] HTML entities, like &lt;, were not load correctly. + The problem is solved.
  • +
  • [SF + BUG-748812] The link dialog window doesn't open when the link button is grayed. +
  • +
+

+ Version 1.0

+
    +
  • 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.
  • +
  • Upload options, for links and images, are automatically hidden on IE 5.0 browsers + (it's not compatible).
  • +
  • [SF BUG-734894] Fixed a problem on XHTML cleaning: the value on INPUT fields were + lost.
  • +
  • [SF BUG-713797] Fixed some image dialog errors when trying to set image properties + when no image is available.
  • +
  • [SF BUG-736414] Developed a workaround for a DHTML control bug when loading in the + editor some HTML started with <p><hr></p>.
  • +
  • [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.
  • +
  • [SF BUG-737233] CSS mappings are now OK on the PHP image browser module.
  • +
  • [SF BUG-737495] The image preview in the image dialog box is now working correctly. +
  • +
  • [SF BUG-737532] The editor automatically switches to WYSIWYG mode when the form + is posted.
  • +
  • [SF BUG-739571] The editor is now working well over Opera (as for Netscape, a TEXTAREA + is shown).
  • +
+

+ Version 1.0 Final Candidate

+
    +
  • 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.
  • +
  • A new configuration option is available to force every paste action to be handled + as plain text. See "config.ForcePasteAsPlainText" in fck_config.js.
  • +
  • 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.
  • +
  • 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. +
  • +
  • Table properties are now available in cells' right click context menu.
  • +
  • It's now possible to edit cells advanced properties from it's right click context + menu.
  • +
+

+ Version 1.0 Release Candidate 1 (RC1)

+
    +
  • Some performance improvements.
  • +
  • The file dhtmled.cab has been added to the package for clients ho needs to install + the Microsoft DHTML Editor component.
  • +
  • [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. +
  • +
  • [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.
  • +
  • [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).
  • +
+

+ Version 0.9.5 beta

+
    +
  • XHTML support is now available! It can be enabled/disabled in the fck_config.js + file.
  • +
  • "Show Table Borders" option: show borders for tables with borders size + set to zero.
  • +
  • "Show Details" option: show hidden elements (comments, scripts, paragraphs, + line breaks)
  • +
  • IE behavior integration module. Thanks to Daniel Shryock.
  • +
  • "Find" option: to find text in the document.
  • +
  • More performance enhancements.
  • +
  • New testsubmit.php file. Thansk to Jim Michaels.
  • +
  • Two initial PHP upload manager implementations (not working yet). Thanks to Frederic + Tyndiuk and Christian Liljedahl.
  • +
  • Initial PHP image browser implementation (not working yet). Thanks to Frederic Tyndiuk. +
  • +
  • Initial CFM upload manager implementation. Thanks to John Watson.
  • +
+

+ Version 0.9.4 beta

+
    +
  • ColdFusion module integration is now available! Thanks to John Watson.
  • +
  • "Insert Smiley" toolbar option! Thanks to Fredox. Take a look at fck_config.js + for configuration options.
  • +
  • "Paste as plain text" toolbar option!
  • +
  • Right click support for links (edit / remove).
  • +
  • Buttons now are shown in gray when disabled.
  • +
  • Buttons are shown just when the image is downloaded (no more "red x" while + waiting for it).
  • +
  • The toolbar background color can be set with a CSS style (see fck_editor.css).
  • +
  • Toolbar images have been reviewed: +
      +
    • Now they are transparent.
    • +
    • No more over...gif for every button (so the editor loads quicker).
    • +
    • Buttons states are controlled with CSS styles. (see fck_editor.css).
    • +
    +
  • +
  • Internet Explorer 5.0 compatibility, except for the image uploading popup.
  • +
  • Optimizations when loading the editor.
  • +
  • [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).
  • +
  • JavaScript integration is now Object Oriented. CreateFCKeditor function is not available + anymore. Take a look in test.html.
  • +
  • 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’s IFRAME (upload=true/false&browse=true/false). All specific + language integration modules handle this option. For sample see the _test directory. +
  • +
+ + diff --git a/fckeditor/editor/_source/classes/fckcontextmenu.js b/fckeditor/editor/_source/classes/fckcontextmenu.js new file mode 100644 index 0000000..1575c49 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckcontextmenu.js @@ -0,0 +1,223 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * FCKContextMenu Class: renders an control a context menu. + */ + +var FCKContextMenu = function( parentWindow, langDir ) +{ + this.CtrlDisable = false ; + + var oPanel = this._Panel = new FCKPanel( parentWindow ) ; + oPanel.AppendStyleSheet( FCKConfig.SkinEditorCSS ) ; + 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 ; + if ( FCKBrowserInfo.IsOpera && !( 'oncontextmenu' in document.createElement('foo') ) ) + { + this._Document.addEventListener( 'mousedown', FCKContextMenu_Document_OnMouseDown, false ) ; + this._Document.addEventListener( 'mouseup', FCKContextMenu_Document_OnMouseUp, false ) ; + } + this._Document.addEventListener( 'contextmenu', FCKContextMenu_Document_OnContextMenu, false ) ; + } +} + +/** + The customData parameter is just a value that will be send to the command that is executed, + so it's possible to reuse the same command for several items just by assigning different data for each one. +*/ +FCKContextMenu.prototype.AddItem = function( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled, customData ) +{ + var oItem = this._MenuBlock.AddItem( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled, customData ) ; + 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 ; +} + +function FCKContextMenu_Document_OnContextMenu( e ) +{ + if ( FCKConfig.BrowserContextMenu ) + return true ; + + var el = e.target ; + + while ( el ) + { + if ( el._FCKContextMenu ) + { + if ( el._FCKContextMenu.CtrlDisable && ( e.ctrlKey || e.metaKey ) ) + return true ; + + FCKTools.CancelEvent( e ) ; + FCKContextMenu_AttachedElement_OnContextMenu( e, el._FCKContextMenu, el ) ; + return false ; + } + el = el.parentNode ; + } + return true ; +} + +var FCKContextMenu_OverrideButton ; + +function FCKContextMenu_Document_OnMouseDown( e ) +{ + if( !e || e.button != 2 ) + return false ; + + if ( FCKConfig.BrowserContextMenu ) + return true ; + + var el = e.target ; + + while ( el ) + { + if ( el._FCKContextMenu ) + { + if ( el._FCKContextMenu.CtrlDisable && ( e.ctrlKey || e.metaKey ) ) + return true ; + + var overrideButton = FCKContextMenu_OverrideButton ; + if( !overrideButton ) + { + var doc = FCKTools.GetElementDocument( e.target ) ; + overrideButton = FCKContextMenu_OverrideButton = doc.createElement('input') ; + overrideButton.type = 'button' ; + var buttonHolder = doc.createElement('p') ; + doc.body.appendChild( buttonHolder ) ; + buttonHolder.appendChild( overrideButton ) ; + } + + overrideButton.style.cssText = 'position:absolute;top:' + ( e.clientY - 2 ) + + 'px;left:' + ( e.clientX - 2 ) + + 'px;width:5px;height:5px;opacity:0.01' ; + } + el = el.parentNode ; + } + return false ; +} + +function FCKContextMenu_Document_OnMouseUp( e ) +{ + if ( FCKConfig.BrowserContextMenu ) + return true ; + + var overrideButton = FCKContextMenu_OverrideButton ; + + if ( overrideButton ) + { + var parent = overrideButton.parentNode ; + parent.parentNode.removeChild( parent ) ; + FCKContextMenu_OverrideButton = undefined ; + + if( e && e.button == 2 ) + { + FCKContextMenu_Document_OnContextMenu( e ) ; + return false ; + } + } + return true ; +} + +function FCKContextMenu_AttachedElement_OnContextMenu( ev, fckContextMenu, el ) +{ + if ( ( fckContextMenu.CtrlDisable && ( ev.ctrlKey || ev.metaKey ) ) || FCKConfig.BrowserContextMenu ) + return true ; + + 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 ) ; + + var x = 0 ; + var y = 0 ; + if ( FCKBrowserInfo.IsIE ) + { + x = ev.screenX ; + y = ev.screenY ; + } + else if ( FCKBrowserInfo.IsSafari ) + { + x = ev.clientX ; + y = ev.clientY ; + } + else + { + x = ev.pageX ; + y = ev.pageY ; + } + fckContextMenu._Panel.Show( x, y, ev.currentTarget || null ) ; + + return false ; +} + +function FCKContextMenu_MenuBlock_OnClick( menuItem, contextMenu ) +{ + contextMenu._Panel.Hide() ; + FCKTools.RunFunction( contextMenu.OnItemClick, contextMenu, menuItem ) ; +} diff --git a/fckeditor/editor/_source/classes/fckdataprocessor.js b/fckeditor/editor/_source/classes/fckdataprocessor.js new file mode 100644 index 0000000..c8726c5 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckdataprocessor.js @@ -0,0 +1,119 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * The Data Processor is responsible for transforming the input and output data + * in the editor. For more info: + * http://dev.fckeditor.net/wiki/Components/DataProcessor + * + * The default implementation offers the base XHTML compatibility features of + * FCKeditor. Further Data Processors may be implemented for other purposes. + * + */ + +var FCKDataProcessor = function() +{} + +FCKDataProcessor.prototype = +{ + /* + * Returns a string representing the HTML format of "data". The returned + * value will be loaded in the editor. + * The HTML must be from to , including , and + * eventually the DOCTYPE. + * Note: HTML comments may already be part of the data because of the + * pre-processing made with ProtectedSource. + * @param {String} data The data to be converted in the + * DataProcessor specific format. + */ + ConvertToHtml : function( data ) + { + // The default data processor must handle two different cases depending + // on the FullPage setting. Custom Data Processors will not be + // compatible with FullPage, much probably. + if ( FCKConfig.FullPage ) + { + // Save the DOCTYPE. + FCK.DocTypeDeclaration = data.match( FCKRegexLib.DocTypeTag ) ; + + // Check if the tag is available. + if ( !FCKRegexLib.HasBodyTag.test( data ) ) + data = '' + data + '' ; + + // Check if the tag is available. + if ( !FCKRegexLib.HtmlOpener.test( data ) ) + data = '' + data + '' ; + + // Check if the tag is available. + if ( !FCKRegexLib.HeadOpener.test( data ) ) + data = data.replace( FCKRegexLib.HtmlOpener, '$&' ) ; + + return data ; + } + else + { + var html = + FCKConfig.DocType + + ' 0 && !FCKRegexLib.Html4DocType.test( FCKConfig.DocType ) ) + html += ' style="overflow-y: scroll"' ; + + html += '>' + + '' + + data + + '' ; + + return html ; + } + }, + + /* + * Converts a DOM (sub-)tree to a string in the data format. + * @param {Object} rootNode The node that contains the DOM tree to be + * converted to the data format. + * @param {Boolean} excludeRoot Indicates that the root node must not + * be included in the conversion, only its children. + * @param {Boolean} format Indicates that the data must be formatted + * for human reading. Not all Data Processors may provide it. + */ + ConvertToDataFormat : function( rootNode, excludeRoot, ignoreIfEmptyParagraph, format ) + { + var data = FCKXHtml.GetXHTML( rootNode, !excludeRoot, format ) ; + + if ( ignoreIfEmptyParagraph && FCKRegexLib.EmptyOutParagraph.test( data ) ) + return '' ; + + return data ; + }, + + /* + * Makes any necessary changes to a piece of HTML for insertion in the + * editor selection position. + * @param {String} html The HTML to be fixed. + */ + FixHtml : function( html ) + { + return html ; + } +} ; diff --git a/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js b/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js new file mode 100644 index 0000000..992ec38 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js @@ -0,0 +1,53 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This is 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 ) ; + }, + + AppendHtml : function( html ) + { + var eTmpDiv = this.RootNode.ownerDocument.createElement( 'div' ) ; + eTmpDiv.innerHTML = html ; + FCKDomTools.MoveChildren( eTmpDiv, this.RootNode ) ; + }, + + InsertAfterNode : function( existingNode ) + { + FCKDomTools.InsertAfterNode( existingNode, this.RootNode ) ; + } +} diff --git a/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js b/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js new file mode 100644 index 0000000..4a50cf4 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js @@ -0,0 +1,58 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This is 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 ) ) ; + } +} ; diff --git a/fckeditor/editor/_source/classes/fckdomrange.js b/fckeditor/editor/_source/classes/fckdomrange.js new file mode 100644 index 0000000..7e032da --- /dev/null +++ b/fckeditor/editor/_source/classes/fckdomrange.js @@ -0,0 +1,935 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Class for working with a selection range, much like the W3C DOM Range, but + * it is not intended to be an implementation of the W3C interface. + */ + +var FCKDomRange = function( sourceWindow ) +{ + this.Window = sourceWindow ; + this._Cache = {} ; +} + +FCKDomRange.prototype = +{ + + _UpdateElementInfo : function() + { + var innerRange = this._Range ; + + if ( !innerRange ) + this.Release( true ) ; + else + { + // For text nodes, the node itself is the StartNode. + var eStart = innerRange.startContainer ; + + var oElementPath = new FCKElementPath( eStart ) ; + this.StartNode = eStart.nodeType == 3 ? eStart : eStart.childNodes[ innerRange.startOffset ] ; + this.StartContainer = eStart ; + this.StartBlock = oElementPath.Block ; + this.StartBlockLimit = oElementPath.BlockLimit ; + + if ( innerRange.collapsed ) + { + this.EndNode = this.StartNode ; + this.EndContainer = this.StartContainer ; + this.EndBlock = this.StartBlock ; + this.EndBlockLimit = this.StartBlockLimit ; + } + else + { + var eEnd = innerRange.endContainer ; + + if ( eStart != eEnd ) + oElementPath = new FCKElementPath( eEnd ) ; + + // The innerRange.endContainer[ innerRange.endOffset ] is not + // usually part of the range, but the marker for the range end. So, + // let's get the previous available node as the real end. + var eEndNode = eEnd ; + if ( innerRange.endOffset == 0 ) + { + while ( eEndNode && !eEndNode.previousSibling ) + eEndNode = eEndNode.parentNode ; + + if ( eEndNode ) + eEndNode = eEndNode.previousSibling ; + } + else if ( eEndNode.nodeType == 1 ) + eEndNode = eEndNode.childNodes[ innerRange.endOffset - 1 ] ; + + this.EndNode = eEndNode ; + this.EndContainer = eEnd ; + this.EndBlock = oElementPath.Block ; + this.EndBlockLimit = oElementPath.BlockLimit ; + } + } + + this._Cache = {} ; + }, + + CreateRange : function() + { + return new FCKW3CRange( this.Window.document ) ; + }, + + DeleteContents : function() + { + if ( this._Range ) + { + this._Range.deleteContents() ; + this._UpdateElementInfo() ; + } + }, + + ExtractContents : function() + { + if ( this._Range ) + { + var docFrag = this._Range.extractContents() ; + this._UpdateElementInfo() ; + return docFrag ; + } + return null ; + }, + + CheckIsCollapsed : function() + { + if ( this._Range ) + return this._Range.collapsed ; + + return false ; + }, + + 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 "

Text

", the start editing point + // is "

^ Text

" (inside ). + MoveToElementEditStart : function( targetElement ) + { + var editableElement ; + + while ( targetElement && targetElement.nodeType == 1 ) + { + if ( FCKDomTools.CheckIsEditable( targetElement ) ) + editableElement = targetElement ; + else if ( editableElement ) + break ; // If we already found an editable element, stop the loop. + + targetElement = targetElement.firstChild ; + } + + if ( editableElement ) + this.MoveToElementStart( editableElement ) ; + }, + + InsertNode : function( node ) + { + if ( this._Range ) + this._Range.insertNode( node ) ; + }, + + CheckIsEmpty : function() + { + 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 ) ; + + return ( eToolDiv.innerHTML.length == 0 ) ; + }, + + /** + * Checks if the start boundary of the current range is "visually" (like a + * selection caret) at the beginning of the block. It means that some + * things could be brefore the range, like spaces or empty inline elements, + * but it would still be considered at the beginning of the block. + */ + CheckStartOfBlock : function() + { + var cache = this._Cache ; + var bIsStartOfBlock = cache.IsStartOfBlock ; + + if ( bIsStartOfBlock != undefined ) + return bIsStartOfBlock ; + + // Take the block reference. + var block = this.StartBlock || this.StartBlockLimit ; + + var container = this._Range.startContainer ; + var offset = this._Range.startOffset ; + var currentNode ; + + if ( offset > 0 ) + { + // First, check the start container. If it is a text node, get the + // substring of the node value before the range offset. + if ( container.nodeType == 3 ) + { + var textValue = container.nodeValue.substr( 0, offset ).Trim() ; + + // If we have some text left in the container, we are not at + // the end for the block. + if ( textValue.length != 0 ) + return cache.IsStartOfBlock = false ; + } + else + currentNode = container.childNodes[ offset - 1 ] ; + } + + // We'll not have a currentNode if the container was a text node, or + // the offset is zero. + if ( !currentNode ) + currentNode = FCKDomTools.GetPreviousSourceNode( container, true, null, block ) ; + + while ( currentNode ) + { + switch ( currentNode.nodeType ) + { + case 1 : + // It's not an inline element. + if ( !FCKListsLib.InlineChildReqElements[ currentNode.nodeName.toLowerCase() ] ) + return cache.IsStartOfBlock = false ; + + break ; + + case 3 : + // It's a text node with real text. + if ( currentNode.nodeValue.Trim().length > 0 ) + return cache.IsStartOfBlock = false ; + } + + currentNode = FCKDomTools.GetPreviousSourceNode( currentNode, false, null, block ) ; + } + + return cache.IsStartOfBlock = true ; + }, + + /** + * Checks if the end boundary of the current range is "visually" (like a + * selection caret) at the end of the block. It means that some things + * could be after the range, like spaces, empty inline elements, or a + * single
, but it would still be considered at the end of the block. + */ + CheckEndOfBlock : function( refreshSelection ) + { + var isEndOfBlock = this._Cache.IsEndOfBlock ; + + if ( isEndOfBlock != undefined ) + return isEndOfBlock ; + + // Take the block reference. + var block = this.EndBlock || this.EndBlockLimit ; + + var container = this._Range.endContainer ; + var offset = this._Range.endOffset ; + var currentNode ; + + // First, check the end container. If it is a text node, get the + // substring of the node value after the range offset. + if ( container.nodeType == 3 ) + { + var textValue = container.nodeValue ; + if ( offset < textValue.length ) + { + textValue = textValue.substr( offset ) ; + + // If we have some text left in the container, we are not at + // the end for the block. + if ( textValue.Trim().length != 0 ) + return this._Cache.IsEndOfBlock = false ; + } + } + else + currentNode = container.childNodes[ offset ] ; + + // We'll not have a currentNode if the container was a text node, of + // the offset is out the container children limits (after it probably). + if ( !currentNode ) + currentNode = FCKDomTools.GetNextSourceNode( container, true, null, block ) ; + + var hadBr = false ; + + while ( currentNode ) + { + switch ( currentNode.nodeType ) + { + case 1 : + var nodeName = currentNode.nodeName.toLowerCase() ; + + // It's an inline element. + if ( FCKListsLib.InlineChildReqElements[ nodeName ] ) + break ; + + // It is the first
found. + if ( nodeName == 'br' && !hadBr ) + { + hadBr = true ; + break ; + } + + return this._Cache.IsEndOfBlock = false ; + + case 3 : + // It's a text node with real text. + if ( currentNode.nodeValue.Trim().length > 0 ) + return this._Cache.IsEndOfBlock = false ; + } + + currentNode = FCKDomTools.GetNextSourceNode( currentNode, false, null, block ) ; + } + + if ( refreshSelection ) + this.Select() ; + + return this._Cache.IsEndOfBlock = true ; + }, + + // This is an "intrusive" way to create a bookmark. It includes tags + // in the range boundaries. The advantage of it is that it is possible to + // handle DOM mutations when moving back to the bookmark. + // Attention: the inclusion of nodes in the DOM is a design choice and + // should not be changed as there are other points in the code that may be + // using those nodes to perform operations. See GetBookmarkNode. + // For performance, includeNodes=true if intended to SelectBookmark. + CreateBookmark : function( includeNodes ) + { + // Create the bookmark info (random IDs). + var oBookmark = + { + StartId : (new Date()).valueOf() + Math.floor(Math.random()*1000) + 'S', + EndId : (new Date()).valueOf() + Math.floor(Math.random()*1000) + 'E' + } ; + + var oDoc = this.Window.document ; + var eStartSpan ; + var eEndSpan ; + var oClone ; + + // For collapsed ranges, add just the start marker. + if ( !this.CheckIsCollapsed() ) + { + eEndSpan = oDoc.createElement( 'span' ) ; + eEndSpan.style.display = 'none' ; + eEndSpan.id = oBookmark.EndId ; + eEndSpan.setAttribute( '_fck_bookmark', true ) ; + + // For IE, it must have something inside, otherwise it may be + // removed during DOM operations. +// if ( FCKBrowserInfo.IsIE ) + eEndSpan.innerHTML = ' ' ; + + oClone = this.Clone() ; + oClone.Collapse( false ) ; + oClone.InsertNode( eEndSpan ) ; + } + + eStartSpan = oDoc.createElement( 'span' ) ; + eStartSpan.style.display = 'none' ; + eStartSpan.id = oBookmark.StartId ; + eStartSpan.setAttribute( '_fck_bookmark', true ) ; + + // For IE, it must have something inside, otherwise it may be removed + // during DOM operations. +// if ( FCKBrowserInfo.IsIE ) + eStartSpan.innerHTML = ' ' ; + + oClone = this.Clone() ; + oClone.Collapse( true ) ; + oClone.InsertNode( eStartSpan ) ; + + if ( includeNodes ) + { + oBookmark.StartNode = eStartSpan ; + oBookmark.EndNode = eEndSpan ; + } + + // Update the range position. + if ( eEndSpan ) + { + this.SetStart( eStartSpan, 4 ) ; + this.SetEnd( eEndSpan, 3 ) ; + } + else + this.MoveToPosition( eStartSpan, 4 ) ; + + return oBookmark ; + }, + + // This one should be a part of a hypothetic "bookmark" object. + GetBookmarkNode : function( bookmark, start ) + { + var doc = this.Window.document ; + + if ( start ) + return bookmark.StartNode || doc.getElementById( bookmark.StartId ) ; + else + return bookmark.EndNode || doc.getElementById( bookmark.EndId ) ; + }, + + MoveToBookmark : function( bookmark, preserveBookmark ) + { + var eStartSpan = this.GetBookmarkNode( bookmark, true ) ; + var eEndSpan = this.GetBookmarkNode( bookmark, false ) ; + + this.SetStart( eStartSpan, 3 ) ; + + if ( !preserveBookmark ) + FCKDomTools.RemoveNode( eStartSpan ) ; + + // If collapsed, the end span will not be available. + if ( eEndSpan ) + { + this.SetEnd( eEndSpan, 3 ) ; + + if ( !preserveBookmark ) + FCKDomTools.RemoveNode( eEndSpan ) ; + } + else + this.Collapse( true ) ; + + this._UpdateElementInfo() ; + }, + + // Non-intrusive bookmark algorithm + CreateBookmark2 : function() + { + // If there is no range then get out of here. + // It happens on initial load in Safari #962 and if the editor it's hidden also in Firefox + if ( ! this._Range ) + return { "Start" : 0, "End" : 0 } ; + + // First, we record down the offset values + var bookmark = + { + "Start" : [ this._Range.startOffset ], + "End" : [ this._Range.endOffset ] + } ; + // Since we're treating the document tree as normalized, we need to backtrack the text lengths + // of previous text nodes into the offset value. + var curStart = this._Range.startContainer.previousSibling ; + var curEnd = this._Range.endContainer.previousSibling ; + + // Also note that the node that we use for "address base" would change during backtracking. + var addrStart = this._Range.startContainer ; + var addrEnd = this._Range.endContainer ; + while ( curStart && addrStart.nodeType == 3 ) + { + bookmark.Start[0] += curStart.length ; + addrStart = curStart ; + curStart = curStart.previousSibling ; + } + while ( curEnd && addrEnd.nodeType == 3 ) + { + bookmark.End[0] += curEnd.length ; + addrEnd = curEnd ; + curEnd = curEnd.previousSibling ; + } + + // If the object pointed to by the startOffset and endOffset are text nodes, we need + // to backtrack and add in the text offset to the bookmark addresses. + if ( addrStart.nodeType == 1 && addrStart.childNodes[bookmark.Start[0]] && addrStart.childNodes[bookmark.Start[0]].nodeType == 3 ) + { + var curNode = addrStart.childNodes[bookmark.Start[0]] ; + var offset = 0 ; + while ( curNode.previousSibling && curNode.previousSibling.nodeType == 3 ) + { + curNode = curNode.previousSibling ; + offset += curNode.length ; + } + addrStart = curNode ; + bookmark.Start[0] = offset ; + } + if ( addrEnd.nodeType == 1 && addrEnd.childNodes[bookmark.End[0]] && addrEnd.childNodes[bookmark.End[0]].nodeType == 3 ) + { + var curNode = addrEnd.childNodes[bookmark.End[0]] ; + var offset = 0 ; + while ( curNode.previousSibling && curNode.previousSibling.nodeType == 3 ) + { + curNode = curNode.previousSibling ; + offset += curNode.length ; + } + addrEnd = curNode ; + bookmark.End[0] = offset ; + } + + // Then, we record down the precise position of the container nodes + // by walking up the DOM tree and counting their childNode index + bookmark.Start = FCKDomTools.GetNodeAddress( addrStart, true ).concat( bookmark.Start ) ; + bookmark.End = FCKDomTools.GetNodeAddress( addrEnd, true ).concat( bookmark.End ) ; + return bookmark; + }, + + MoveToBookmark2 : function( bookmark ) + { + // Reverse the childNode counting algorithm in CreateBookmark2() + var curStart = FCKDomTools.GetNodeFromAddress( this.Window.document, bookmark.Start.slice( 0, -1 ), true ) ; + var curEnd = FCKDomTools.GetNodeFromAddress( this.Window.document, bookmark.End.slice( 0, -1 ), true ) ; + + // Generate the W3C Range object and update relevant data + this.Release( true ) ; + this._Range = new FCKW3CRange( this.Window.document ) ; + var startOffset = bookmark.Start[ bookmark.Start.length - 1 ] ; + var endOffset = bookmark.End[ bookmark.End.length - 1 ] ; + while ( curStart.nodeType == 3 && startOffset > curStart.length ) + { + if ( ! curStart.nextSibling || curStart.nextSibling.nodeType != 3 ) + break ; + startOffset -= curStart.length ; + curStart = curStart.nextSibling ; + } + while ( curEnd.nodeType == 3 && endOffset > curEnd.length ) + { + if ( ! curEnd.nextSibling || curEnd.nextSibling.nodeType != 3 ) + break ; + endOffset -= curEnd.length ; + curEnd = curEnd.nextSibling ; + } + this._Range.setStart( curStart, startOffset ) ; + this._Range.setEnd( curEnd, endOffset ) ; + this._UpdateElementInfo() ; + }, + + MoveToPosition : function( targetElement, position ) + { + this.SetStart( targetElement, position ) ; + 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 ^contents + * 2 = Before End contents^ + * 3 = Before Start ^contents + * 4 = After End contents^ + */ + SetStart : function( targetElement, position, noInfoUpdate ) + { + var oRange = this._Range ; + if ( !oRange ) + oRange = this._Range = this.CreateRange() ; + + switch( position ) + { + case 1 : // After Start ^contents + oRange.setStart( targetElement, 0 ) ; + break ; + + case 2 : // Before End contents^ + oRange.setStart( targetElement, targetElement.childNodes.length ) ; + break ; + + case 3 : // Before Start ^contents + oRange.setStartBefore( targetElement ) ; + break ; + + case 4 : // After End contents^ + oRange.setStartAfter( targetElement ) ; + } + + if ( !noInfoUpdate ) + this._UpdateElementInfo() ; + }, + + /* + * Moves the position of the start boundary of the range to a specific position + * relatively to a element. + * @position: + * 1 = After Start ^contents + * 2 = Before End contents^ + * 3 = Before Start ^contents + * 4 = After End contents^ + */ + SetEnd : function( targetElement, position, noInfoUpdate ) + { + var oRange = this._Range ; + if ( !oRange ) + oRange = this._Range = this.CreateRange() ; + + switch( position ) + { + case 1 : // After Start ^contents + oRange.setEnd( targetElement, 0 ) ; + break ; + + case 2 : // Before End contents^ + oRange.setEnd( targetElement, targetElement.childNodes.length ) ; + break ; + + case 3 : // Before Start ^contents + oRange.setEndBefore( targetElement ) ; + break ; + + case 4 : // After End contents^ + oRange.setEndAfter( targetElement ) ; + } + + if ( !noInfoUpdate ) + this._UpdateElementInfo() ; + }, + + Expand : function( unit ) + { + var oNode, oSibling ; + + switch ( unit ) + { + // Expand the range to include all inline parent elements if we are + // are in their boundary limits. + // For example (where [ ] are the range limits): + // Before => Some [Some sample text]. + // After => Some [Some sample text]. + case 'inline_elements' : + // Expand the start boundary. + if ( this._Range.startOffset == 0 ) + { + oNode = this._Range.startContainer ; + + if ( oNode.nodeType != 1 ) + oNode = oNode.previousSibling ? null : oNode.parentNode ; + + if ( oNode ) + { + while ( FCKListsLib.InlineNonEmptyElements[ oNode.nodeName.toLowerCase() ] ) + { + this._Range.setStartBefore( oNode ) ; + + if ( oNode != oNode.parentNode.firstChild ) + break ; + + oNode = oNode.parentNode ; + } + } + } + + // Expand the end boundary. + oNode = this._Range.endContainer ; + var offset = this._Range.endOffset ; + + if ( ( oNode.nodeType == 3 && offset >= oNode.nodeValue.length ) || ( oNode.nodeType == 1 && offset >= oNode.childNodes.length ) || ( oNode.nodeType != 1 && oNode.nodeType != 3 ) ) + { + if ( oNode.nodeType != 1 ) + oNode = oNode.nextSibling ? null : oNode.parentNode ; + + if ( oNode ) + { + while ( FCKListsLib.InlineNonEmptyElements[ oNode.nodeName.toLowerCase() ] ) + { + this._Range.setEndAfter( oNode ) ; + + if ( oNode != oNode.parentNode.lastChild ) + break ; + + oNode = oNode.parentNode ; + } + } + } + + break ; + + case 'block_contents' : + case 'list_contents' : + var boundarySet = FCKListsLib.BlockBoundaries ; + if ( unit == 'list_contents' || FCKConfig.EnterMode == 'br' ) + boundarySet = FCKListsLib.ListBoundaries ; + + if ( this.StartBlock && FCKConfig.EnterMode != 'br' && unit == 'block_contents' ) + 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 node right before of it (in source order). + if ( oNode.nodeType == 1 ) + { + var lastNode = oNode.childNodes[ this._Range.startOffset ] ; + if ( lastNode ) + oNode = FCKDomTools.GetPreviousSourceNode( lastNode, true ) ; + else + oNode = oNode.lastChild || oNode ; + } + + // We must look for the left boundary, relative to the range + // start, which is limited by a block element. + while ( oNode + && ( oNode.nodeType != 1 + || ( oNode != this.StartBlockLimit + && !boundarySet[ oNode.nodeName.toLowerCase() ] ) ) ) + { + this._Range.setStartBefore( oNode ) ; + oNode = oNode.previousSibling || oNode.parentNode ; + } + } + + if ( this.EndBlock && FCKConfig.EnterMode != 'br' && unit == 'block_contents' && this.EndBlock.nodeName.toLowerCase() != 'li' ) + this.SetEnd( this.EndBlock, 2 ) ; + else + { + oNode = this._Range.endContainer ; + if ( oNode.nodeType == 1 ) + oNode = oNode.childNodes[ this._Range.endOffset ] || oNode.lastChild ; + + // We must look for the right boundary, relative to the range + // end, which is limited by a block element. + while ( oNode + && ( oNode.nodeType != 1 + || ( oNode != this.StartBlockLimit + && !boundarySet[ oNode.nodeName.toLowerCase() ] ) ) ) + { + this._Range.setEndAfter( oNode ) ; + oNode = oNode.nextSibling || oNode.parentNode ; + } + + // In EnterMode='br', the end
boundary element must + // be included in the expanded range. + if ( oNode && oNode.nodeName.toLowerCase() == 'br' ) + this._Range.setEndAfter( oNode ) ; + } + + this._UpdateElementInfo() ; + } + }, + + /** + * Split the block element for the current range. It deletes the contents + * of the range and splits the block in the collapsed position, resulting + * in two sucessive blocks. The range is then positioned in the middle of + * them. + * + * It returns and object with the following properties: + * - PreviousBlock : a reference to the block element that preceeds + * the range after the split. + * - NextBlock : a reference to the block element that follows the + * range after the split. + * - WasStartOfBlock : a boolean indicating that the range was + * originaly at the start of the block. + * - WasEndOfBlock : a boolean indicating that the range was originaly + * at the end of the block. + * + * If the range was originaly at the start of the block, no split will happen + * and the PreviousBlock value will be null. The same is valid for the + * NextBlock value if the range was at the end of the block. + */ + SplitBlock : function( forceBlockTag ) + { + var blockTag = forceBlockTag || FCKConfig.EnterMode ; + + if ( !this._Range ) + this.MoveToSelection() ; + + // The range boundaries must be in the same "block limit" element. + if ( this.StartBlockLimit == this.EndBlockLimit ) + { + // Get the current blocks. + var eStartBlock = this.StartBlock ; + var eEndBlock = this.EndBlock ; + var oElementPath = null ; + + if ( blockTag != 'br' ) + { + if ( !eStartBlock ) + { + eStartBlock = this.FixBlock( true, blockTag ) ; + eEndBlock = this.EndBlock ; // FixBlock may have fixed the EndBlock too. + } + + if ( !eEndBlock ) + eEndBlock = this.FixBlock( false, blockTag ) ; + } + + // Get the range position. + var bIsStartOfBlock = ( eStartBlock != null && this.CheckStartOfBlock() ) ; + var bIsEndOfBlock = ( eEndBlock != null && this.CheckEndOfBlock() ) ; + + // Delete the current contents. + if ( !this.CheckIsEmpty() ) + this.DeleteContents() ; + + if ( eStartBlock && eEndBlock && eStartBlock == eEndBlock ) + { + if ( bIsEndOfBlock ) + { + oElementPath = new FCKElementPath( this.StartContainer ) ; + this.MoveToPosition( eEndBlock, 4 ) ; + eEndBlock = null ; + } + else if ( bIsStartOfBlock ) + { + oElementPath = new FCKElementPath( this.StartContainer ) ; + this.MoveToPosition( eStartBlock, 3 ) ; + eStartBlock = null ; + } + else + { + // Extract the contents of the block from the selection point to the end of its contents. + this.SetEnd( eStartBlock, 2 ) ; + var eDocFrag = this.ExtractContents() ; + + // Duplicate the block element after it. + eEndBlock = eStartBlock.cloneNode( false ) ; + eEndBlock.removeAttribute( 'id', false ) ; + + // Place the extracted contents in the duplicated block. + eDocFrag.AppendTo( eEndBlock ) ; + + FCKDomTools.InsertAfterNode( eStartBlock, eEndBlock ) ; + + this.MoveToPosition( eStartBlock, 4 ) ; + + // In Gecko, the last child node must be a bogus
. + // Note: bogus
added under
    or
      would cause lists to be incorrectly rendered. + if ( FCKBrowserInfo.IsGecko && + ! eStartBlock.nodeName.IEquals( ['ul', 'ol'] ) ) + FCKTools.AppendBogusBr( eStartBlock ) ; + } + } + + return { + PreviousBlock : eStartBlock, + NextBlock : eEndBlock, + WasStartOfBlock : bIsStartOfBlock, + WasEndOfBlock : bIsEndOfBlock, + ElementPath : oElementPath + } ; + } + + return null ; + }, + + // Transform a block without a block tag in a valid block (orphan text in the body or td, usually). + FixBlock : function( isStart, blockTag ) + { + // Bookmark the range so we can restore it later. + var oBookmark = this.CreateBookmark() ; + + // Collapse the range to the requested ending boundary. + this.Collapse( isStart ) ; + + // Expands it to the block contents. + this.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. + this.ExtractContents().AppendTo( oFixedBlock ) ; + FCKDomTools.TrimNode( oFixedBlock ) ; + + // If the fixed block is empty (not counting bookmark nodes) + // Add a
      inside to expand it. + if ( FCKDomTools.CheckIsEmptyElement(oFixedBlock, function( element ) { return element.getAttribute('_fck_bookmark') != 'true' ; } ) + && FCKBrowserInfo.IsGeckoLike ) + FCKTools.AppendBogusBr( oFixedBlock ) ; + + // Insert the fixed block into the DOM. + this.InsertNode( oFixedBlock ) ; + + // Move the range back to the bookmarked place. + this.MoveToBookmark( oBookmark ) ; + + return oFixedBlock ; + }, + + Release : function( preserveWindow ) + { + if ( !preserveWindow ) + this.Window = null ; + + this.StartNode = null ; + this.StartContainer = null ; + this.StartBlock = null ; + this.StartBlockLimit = null ; + this.EndNode = null ; + this.EndContainer = null ; + this.EndBlock = null ; + this.EndBlockLimit = null ; + this._Range = null ; + this._Cache = null ; + }, + + CheckHasRange : function() + { + return !!this._Range ; + }, + + GetTouchedStartNode : function() + { + var range = this._Range ; + var container = range.startContainer ; + + if ( range.collapsed || container.nodeType != 1 ) + return container ; + + return container.childNodes[ range.startOffset ] || container ; + }, + + GetTouchedEndNode : function() + { + var range = this._Range ; + var container = range.endContainer ; + + if ( range.collapsed || container.nodeType != 1 ) + return container ; + + return container.childNodes[ range.endOffset - 1 ] || container ; + } +} ; diff --git a/fckeditor/editor/_source/classes/fckdomrange_gecko.js b/fckeditor/editor/_source/classes/fckdomrange_gecko.js new file mode 100644 index 0000000..ddffb13 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckdomrange_gecko.js @@ -0,0 +1,104 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Class for working with a selection range, much like the W3C DOM Range, but + * it is not intended to be an implementation of the W3C interface. + * (Gecko Implementation) + */ + +FCKDomRange.prototype.MoveToSelection = function() +{ + this.Release( true ) ; + + var oSel = this.Window.getSelection() ; + + if ( oSel && oSel.rangeCount > 0 ) + { + this._Range = FCKW3CRange.CreateFromRange( this.Window.document, oSel.getRangeAt(0) ) ; + this._UpdateElementInfo() ; + } + else + if ( this.Window.document ) + this.MoveToElementStart( this.Window.document.body ) ; +} + +FCKDomRange.prototype.Select = function() +{ + var oRange = this._Range ; + if ( oRange ) + { + var startContainer = oRange.startContainer ; + + // If we have a collapsed range, inside an empty element, we must add + // something to it, otherwise the caret will not be visible. + if ( oRange.collapsed && startContainer.nodeType == 1 && startContainer.childNodes.length == 0 ) + startContainer.appendChild( oRange._Document.createTextNode('') ) ; + + var oDocRange = this.Window.document.createRange() ; + oDocRange.setStart( startContainer, oRange.startOffset ) ; + + try + { + oDocRange.setEnd( oRange.endContainer, oRange.endOffset ) ; + } + catch ( e ) + { + // There is a bug in Firefox implementation (it would be too easy + // otherwise). 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 ) ; + } +} + +// Not compatible with bookmark created with CreateBookmark2. +// The bookmark nodes will be deleted from the document. +FCKDomRange.prototype.SelectBookmark = function( bookmark ) +{ + var domRange = this.Window.document.createRange() ; + + var startNode = this.GetBookmarkNode( bookmark, true ) ; + var endNode = this.GetBookmarkNode( bookmark, false ) ; + + domRange.setStart( startNode.parentNode, FCKDomTools.GetIndexOf( startNode ) ) ; + FCKDomTools.RemoveNode( startNode ) ; + + if ( endNode ) + { + domRange.setEnd( endNode.parentNode, FCKDomTools.GetIndexOf( endNode ) ) ; + FCKDomTools.RemoveNode( endNode ) ; + } + + var selection = this.Window.getSelection() ; + selection.removeAllRanges() ; + selection.addRange( domRange ) ; +} diff --git a/fckeditor/editor/_source/classes/fckdomrange_ie.js b/fckeditor/editor/_source/classes/fckdomrange_ie.js new file mode 100644 index 0000000..3ebe2b9 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckdomrange_ie.js @@ -0,0 +1,199 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Class for working with a selection range, much like the W3C DOM Range, but + * it is not intended 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' ) + { + var eMarkerStart = this._GetSelectionMarkerTag( true ) ; + var eMarkerEnd = this._GetSelectionMarkerTag( false ) ; + + if ( !eMarkerStart && !eMarkerEnd ) + { + this._Range.setStart( this.Window.document.body, 0 ) ; + this._UpdateElementInfo() ; + return ; + } + + // Set the start boundary. + this._Range.setStart( eMarkerStart.parentNode, FCKDomTools.GetIndexOf( eMarkerStart ) ) ; + eMarkerStart.parentNode.removeChild( eMarkerStart ) ; + + // Set the end boundary. + this._Range.setEnd( eMarkerEnd.parentNode, FCKDomTools.GetIndexOf( eMarkerEnd ) ) ; + eMarkerEnd.parentNode.removeChild( eMarkerEnd ) ; + + 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( forceExpand ) +{ + if ( this._Range ) + this.SelectBookmark( this.CreateBookmark( true ), forceExpand ) ; +} + +// Not compatible with bookmark created with CreateBookmark2. +// The bookmark nodes will be deleted from the document. +FCKDomRange.prototype.SelectBookmark = function( bookmark, forceExpand ) +{ + var bIsCollapsed = this.CheckIsCollapsed() ; + var bIsStartMakerAlone ; + var dummySpan ; + + // Create marker tags for the start and end boundaries. + var eStartMarker = this.GetBookmarkNode( bookmark, true ) ; + + if ( !eStartMarker ) + return ; + + var eEndMarker ; + if ( !bIsCollapsed ) + eEndMarker = this.GetBookmarkNode( bookmark, 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 ( eEndMarker ) + { + // 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 ) ; + } + else + { + bIsStartMakerAlone = ( forceExpand || !eStartMarker.previousSibling || eStartMarker.previousSibling.nodeName.toLowerCase() == 'br' ) && !eStartMarker.nextSibing ; + + // Append a temporary  before the selection. + // This is needed to avoid IE destroying selections inside empty + // inline elements, like (#253). + // It is also needed when placing the selection right after an inline + // element to avoid the selection moving inside of it. + dummySpan = this.Window.document.createElement( 'span' ) ; + dummySpan.innerHTML = '' ; // Zero Width No-Break Space (U+FEFF). See #1359. + eStartMarker.parentNode.insertBefore( dummySpan, eStartMarker ) ; + + if ( bIsStartMakerAlone ) + { + // To expand empty blocks or line spaces after
      , we need + // instead to have any char, which will be later deleted using the + // selection. + // \ufeff = Zero Width No-Break Space (U+FEFF). See #1359. + eStartMarker.parentNode.insertBefore( this.Window.document.createTextNode( '\ufeff' ), eStartMarker ) ; + } + } + + if ( !this._Range ) + this._Range = this.CreateRange() ; + + // Remove the markers (reset the position, because of the changes in the DOM tree). + this._Range.setStartBefore( eStartMarker ) ; + eStartMarker.parentNode.removeChild( eStartMarker ) ; + + if ( bIsCollapsed ) + { + if ( bIsStartMakerAlone ) + { + // Move the selection start to include the temporary . + oIERange.moveStart( 'character', -1 ) ; + + oIERange.select() ; + + // Remove our temporary stuff. + this.Window.document.selection.clear() ; + } + else + oIERange.select() ; + + FCKDomTools.RemoveNode( dummySpan ) ; + } + else + { + this._Range.setEndBefore( eEndMarker ) ; + eEndMarker.parentNode.removeChild( eEndMarker ) ; + oIERange.select() ; + } +} + +FCKDomRange.prototype._GetSelectionMarkerTag = function( toStart ) +{ + var doc = this.Window.document ; + var selection = doc.selection ; + + // Get a range for the start boundary. + var oRange ; + + // IE may throw an "unspecified error" on some cases (it happened when + // loading _samples/default.html), so try/catch. + try + { + oRange = selection.createRange() ; + } + catch (e) + { + return null ; + } + + // IE might take the range object to the main window instead of inside the editor iframe window. + // This is known to happen when the editor window has not been selected before (See #933). + // We need to avoid that. + if ( oRange.parentElement().document != doc ) + return null ; + + 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( '' ) ; + + return doc.getElementById( sMarkerId ) ; +} diff --git a/fckeditor/editor/_source/classes/fckdomrangeiterator.js b/fckeditor/editor/_source/classes/fckdomrangeiterator.js new file mode 100644 index 0000000..8aa668b --- /dev/null +++ b/fckeditor/editor/_source/classes/fckdomrangeiterator.js @@ -0,0 +1,327 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This class can be used to interate through nodes inside a range. + * + * During interation, the provided range can become invalid, due to document + * mutations, so CreateBookmark() used to restore it after processing, if + * needed. + */ + +var FCKDomRangeIterator = function( range ) +{ + /** + * The FCKDomRange object that marks the interation boundaries. + */ + this.Range = range ; + + /** + * Indicates that
      elements must be used as paragraph boundaries. + */ + this.ForceBrBreak = false ; + + /** + * Guarantees that the iterator will always return "real" block elements. + * If "false", elements like
    1. , and are returned. If "true", a + * dedicated block element block element will be created inside those + * elements to hold the selected content. + */ + this.EnforceRealBlocks = false ; +} + +FCKDomRangeIterator.CreateFromSelection = function( targetWindow ) +{ + var range = new FCKDomRange( targetWindow ) ; + range.MoveToSelection() ; + return new FCKDomRangeIterator( range ) ; +} + +FCKDomRangeIterator.prototype = +{ + /** + * Get the next paragraph element. It automatically breaks the document + * when necessary to generate block elements for the paragraphs. + */ + GetNextParagraph : function() + { + // The block element to be returned. + var block ; + + // The range object used to identify the paragraph contents. + var range ; + + // Indicated that the current element in the loop is the last one. + var isLast ; + + // Instructs to cleanup remaining BRs. + var removePreviousBr ; + var removeLastBr ; + + var boundarySet = this.ForceBrBreak ? FCKListsLib.ListBoundaries : FCKListsLib.BlockBoundaries ; + + // This is the first iteration. Let's initialize it. + if ( !this._LastNode ) + { + var range = this.Range.Clone() ; + range.Expand( this.ForceBrBreak ? 'list_contents' : 'block_contents' ) ; + + this._NextNode = range.GetTouchedStartNode() ; + this._LastNode = range.GetTouchedEndNode() ; + + // Let's reuse this variable. + range = null ; + } + + var currentNode = this._NextNode ; + var lastNode = this._LastNode ; + + this._NextNode = null ; + + while ( currentNode ) + { + // closeRange indicates that a paragraph boundary has been found, + // so the range can be closed. + var closeRange = false ; + + // includeNode indicates that the current node is good to be part + // of the range. By default, any non-element node is ok for it. + var includeNode = ( currentNode.nodeType != 1 ) ; + + var continueFromSibling = false ; + + // If it is an element node, let's check if it can be part of the + // range. + if ( !includeNode ) + { + var nodeName = currentNode.nodeName.toLowerCase() ; + + if ( boundarySet[ nodeName ] && ( !FCKBrowserInfo.IsIE || currentNode.scopeName == 'HTML' ) ) + { + //
      boundaries must be part of the range. It will + // happen only if ForceBrBreak. + if ( nodeName == 'br' ) + includeNode = true ; + else if ( !range && currentNode.childNodes.length == 0 && nodeName != 'hr' ) + { + // If we have found an empty block, and haven't started + // the range yet, it means we must return this block. + block = currentNode ; + isLast = currentNode == lastNode ; + break ; + } + + // The range must finish right before the boundary, + // including possibly skipped empty spaces. (#1603) + if ( range ) + { + range.SetEnd( currentNode, 3, true ) ; + + // The found boundary must be set as the next one at this + // point. (#1717) + if ( nodeName != 'br' ) + this._NextNode = FCKDomTools.GetNextSourceNode( currentNode, true, null, lastNode ) ; + } + + closeRange = true ; + } + else + { + // If we have child nodes, let's check them. + if ( currentNode.firstChild ) + { + // If we don't have a range yet, let's start it. + if ( !range ) + { + range = new FCKDomRange( this.Range.Window ) ; + range.SetStart( currentNode, 3, true ) ; + } + + currentNode = currentNode.firstChild ; + continue ; + } + includeNode = true ; + } + } + else if ( currentNode.nodeType == 3 ) + { + // Ignore normal whitespaces (i.e. not including   or + // other unicode whitespaces) before/after a block node. + if ( /^[\r\n\t ]+$/.test( currentNode.nodeValue ) ) + includeNode = false ; + } + + // The current node is good to be part of the range and we are + // starting a new range, initialize it first. + if ( includeNode && !range ) + { + range = new FCKDomRange( this.Range.Window ) ; + range.SetStart( currentNode, 3, true ) ; + } + + // The last node has been found. + isLast = ( ( !closeRange || includeNode ) && currentNode == lastNode ) ; +// isLast = ( currentNode == lastNode && ( currentNode.nodeType != 1 || currentNode.childNodes.length == 0 ) ) ; + + // If we are in an element boundary, let's check if it is time + // to close the range, otherwise we include the parent within it. + if ( range && !closeRange ) + { + while ( !currentNode.nextSibling && !isLast ) + { + var parentNode = currentNode.parentNode ; + + if ( boundarySet[ parentNode.nodeName.toLowerCase() ] ) + { + closeRange = true ; + isLast = isLast || ( parentNode == lastNode ) ; + break ; + } + + currentNode = parentNode ; + includeNode = true ; + isLast = ( currentNode == lastNode ) ; + continueFromSibling = true ; + } + } + + // Now finally include the node. + if ( includeNode ) + range.SetEnd( currentNode, 4, true ) ; + + // We have found a block boundary. Let's close the range and move out of the + // loop. + if ( ( closeRange || isLast ) && range ) + { + range._UpdateElementInfo() ; + + if ( range.StartNode == range.EndNode + && range.StartNode.parentNode == range.StartBlockLimit + && range.StartNode.getAttribute && range.StartNode.getAttribute( '_fck_bookmark' ) ) + range = null ; + else + break ; + } + + if ( isLast ) + break ; + + currentNode = FCKDomTools.GetNextSourceNode( currentNode, continueFromSibling, null, lastNode ) ; + } + + // Now, based on the processed range, look for (or create) the block to be returned. + if ( !block ) + { + // If no range has been found, this is the end. + if ( !range ) + { + this._NextNode = null ; + return null ; + } + + block = range.StartBlock ; + + if ( !block + && !this.EnforceRealBlocks + && range.StartBlockLimit.nodeName.IEquals( 'DIV', 'TH', 'TD' ) + && range.CheckStartOfBlock() + && range.CheckEndOfBlock() ) + { + block = range.StartBlockLimit ; + } + else if ( !block || ( this.EnforceRealBlocks && block.nodeName.toLowerCase() == 'li' ) ) + { + // Create the fixed block. + block = this.Range.Window.document.createElement( FCKConfig.EnterMode == 'p' ? 'p' : 'div' ) ; + + // Move the contents of the temporary range to the fixed block. + range.ExtractContents().AppendTo( block ) ; + FCKDomTools.TrimNode( block ) ; + + // Insert the fixed block into the DOM. + range.InsertNode( block ) ; + + removePreviousBr = true ; + removeLastBr = true ; + } + else if ( block.nodeName.toLowerCase() != 'li' ) + { + // If the range doesn't includes the entire contents of the + // block, we must split it, isolating the range in a dedicated + // block. + if ( !range.CheckStartOfBlock() || !range.CheckEndOfBlock() ) + { + // The resulting block will be a clone of the current one. + block = block.cloneNode( false ) ; + + // Extract the range contents, moving it to the new block. + range.ExtractContents().AppendTo( block ) ; + FCKDomTools.TrimNode( block ) ; + + // Split the block. At this point, the range will be in the + // right position for our intents. + var splitInfo = range.SplitBlock() ; + + removePreviousBr = !splitInfo.WasStartOfBlock ; + removeLastBr = !splitInfo.WasEndOfBlock ; + + // Insert the new block into the DOM. + range.InsertNode( block ) ; + } + } + else if ( !isLast ) + { + // LIs are returned as is, with all their children (due to the + // nested lists). But, the next node is the node right after + // the current range, which could be an
    2. child (nested + // lists) or the next sibling
    3. . + + this._NextNode = block == lastNode ? null : FCKDomTools.GetNextSourceNode( range.EndNode, true, null, lastNode ) ; + return block ; + } + } + + if ( removePreviousBr ) + { + var previousSibling = block.previousSibling ; + if ( previousSibling && previousSibling.nodeType == 1 ) + { + if ( previousSibling.nodeName.toLowerCase() == 'br' ) + previousSibling.parentNode.removeChild( previousSibling ) ; + else if ( previousSibling.lastChild && previousSibling.lastChild.nodeName.IEquals( 'br' ) ) + previousSibling.removeChild( previousSibling.lastChild ) ; + } + } + + if ( removeLastBr ) + { + var lastChild = block.lastChild ; + if ( lastChild && lastChild.nodeType == 1 && lastChild.nodeName.toLowerCase() == 'br' ) + block.removeChild( lastChild ) ; + } + + // Get a reference for the next element. This is important because the + // above block can be removed or changed, so we can rely on it for the + // next interation. + if ( !this._NextNode ) + this._NextNode = ( isLast || block == lastNode ) ? null : FCKDomTools.GetNextSourceNode( block, true, null, lastNode ) ; + + return block ; + } +} ; diff --git a/fckeditor/editor/_source/classes/fckeditingarea.js b/fckeditor/editor/_source/classes/fckeditingarea.js new file mode 100644 index 0000000..66d93e1 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckeditingarea.js @@ -0,0 +1,368 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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 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.firstChild ) + eTargetElement.removeChild( eTargetElement.firstChild ) ; + + if ( this.Mode == FCK_EDITMODE_WYSIWYG ) + { + // For FF, document.domain must be set only when different, otherwhise + // we'll strangely have "Permission denied" issues. + if ( FCK_IS_CUSTOM_DOMAIN ) + html = '' + html ; + + // IE has a bug with the tag... it must have a closer, + // otherwise the all successive tags will be set as children nodes of the . + if ( FCKBrowserInfo.IsIE ) + html = html.replace( /(]*?)\s*\/?>(?!\s*<\/base>)/gi, '$1>' ) ; + else if ( !secondCall ) + { + // 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 oMatchBefore = html.match( FCKRegexLib.BeforeBody ) ; + var oMatchAfter = html.match( FCKRegexLib.AfterBody ) ; + + if ( oMatchBefore && oMatchAfter ) + { + var sBody = html.substr( oMatchBefore[1].length, + html.length - oMatchBefore[1].length - oMatchAfter[1].length ) ; // This is the BODY tag contents. + + html = + oMatchBefore[1] + // This is the HTML until the tag, inclusive. + ' ' + + oMatchAfter[1] ; // This is the HTML from the tag, inclusive. + + // If nothing in the body, place a BOGUS tag so the cursor will appear. + if ( FCKBrowserInfo.IsGecko && ( sBody.length == 0 || FCKRegexLib.EmptyParagraph.test( sBody ) ) ) + sBody = '
      ' ; + + this._BodyHTML = sBody ; + + } + else + this._BodyHTML = html ; // Invalid HTML input. + } + + // Create the editing area IFRAME. + var oIFrame = this.IFrame = oTargetDocument.createElement( 'iframe' ) ; + + // IE: Avoid JavaScript errors thrown by the editing are source (like tags events). + // See #1055. + var sOverrideError = '' ; + + oIFrame.frameBorder = 0 ; + oIFrame.style.width = oIFrame.style.height = '100%' ; + + if ( FCK_IS_CUSTOM_DOMAIN && FCKBrowserInfo.IsIE ) + { + window._FCKHtmlToLoad = html.replace( //i, '' + sOverrideError ) ; + oIFrame.src = 'javascript:void( (function(){' + + 'document.open() ;' + + 'document.domain="' + document.domain + '" ;' + + 'document.write( window.parent._FCKHtmlToLoad );' + + 'document.close() ;' + + 'window.parent._FCKHtmlToLoad = null ;' + + '})() )' ; + } + else if ( !FCKBrowserInfo.IsGecko ) + { + // Firefox will render the tables inside the body in Quirks mode if the + // source of the iframe is set to javascript. see #515 + oIFrame.src = 'javascript:void(0)' ; + } + + // Append the new IFRAME to the target. For IE, it must be done after + // setting the "src", to avoid the "secure/unsecure" message under HTTPS. + eTargetElement.appendChild( oIFrame ) ; + + // 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 ; } + + if ( !FCK_IS_CUSTOM_DOMAIN || !FCKBrowserInfo.IsIE ) + { + var oDoc = this.Window.document ; + + oDoc.open() ; + oDoc.write( html.replace( //i, '' + sOverrideError ) ) ; + oDoc.close() ; + } + + if ( FCKBrowserInfo.IsAIR ) + FCKAdobeAIR.EditingArea_Start( oDoc, html ) ; + + // Firefox 1.0.x is buggy... ohh yes... so let's do it two times and it + // will magically work. + if ( FCKBrowserInfo.IsGecko10 && !secondCall ) + { + this.Start( html, true ) ; + return ; + } + + if ( oIFrame.readyState && oIFrame.readyState != 'completed' ) + { + var editArea = this ; + + // Using a IE alternative for DOMContentLoaded, similar to the + // solution proposed at http://javascript.nwbox.com/IEContentLoaded/ + setTimeout( function() + { + try + { + editArea.Window.document.documentElement.doScroll("left") ; + } + catch(e) + { + setTimeout( arguments.callee, 0 ) ; + return ; + } + editArea.Window._FCKEditingArea = editArea ; + FCKEditingArea_CompleteStart.call( editArea.Window ) ; + }, 0 ) ; + } + else + { + 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!!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' ; + FCKDomTools.SetElementStyles( eTextarea, + { + width : '100%', + height : '100%', + border : 'none', + resize : 'none', + outline : 'none' + } ) ; + eTargetElement.appendChild( eTextarea ) ; + + eTextarea.value = html ; + + // Fire the "OnLoad" event. + FCKTools.RunFunction( this.OnLoad ) ; + } +} + +// "this" here is FCKEditingArea.Window +function FCKEditingArea_CompleteStart() +{ + // On 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 ; + + // Save this reference to be re-used later. + oEditorArea.Document = oEditorArea.Window.document ; + + oEditorArea.MakeEditable() ; + + // Fire the "OnLoad" event. + FCKTools.RunFunction( oEditorArea.OnLoad ) ; +} + +FCKEditingArea.prototype.MakeEditable = function() +{ + var oDoc = this.Document ; + + if ( FCKBrowserInfo.IsIE ) + { + // Kludge for #141 and #523 + oDoc.body.disabled = true ; + oDoc.body.contentEditable = true ; + oDoc.body.removeAttribute( "disabled" ) ; + + /* 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 ; + oDoc.body.offsetLeft ; // Don't remove, this is a hack to fix Opera 9.50, see #2264. + this._BodyHTML = null ; + } + + oDoc.designMode = 'on' ; + + // 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) + { + // In Firefox if the iframe is initially hidden it can't be set to designMode and it raises an exception + // So we set up a DOM Mutation event Listener on the HTML, as it will raise several events when the document is visible again + FCKTools.AddEventListener( this.Window.frameElement, 'DOMAttrModified', FCKEditingArea_Document_AttributeNodeModified ) ; + } + + } +} + +// This function processes the notifications of the DOM Mutation event on the document +// We use it to know that the document will be ready to be editable again (or we hope so) +function FCKEditingArea_Document_AttributeNodeModified( evt ) +{ + var editingArea = evt.currentTarget.contentWindow._FCKEditingArea ; + + // We want to run our function after the events no longer fire, so we can know that it's a stable situation + if ( editingArea._timer ) + window.clearTimeout( editingArea._timer ) ; + + editingArea._timer = FCKTools.SetTimeout( FCKEditingArea_MakeEditableByMutation, 1000, editingArea ) ; +} + +// This function ideally should be called after the document is visible, it does clean up of the +// mutation tracking and tries again to make the area editable. +function FCKEditingArea_MakeEditableByMutation() +{ + // Clean up + delete this._timer ; + // Now we don't want to keep on getting this event + FCKTools.RemoveEventListener( this.Window.frameElement, 'DOMAttrModified', FCKEditingArea_Document_AttributeNodeModified ) ; + // Let's try now to set the editing area editable + // If it fails it will set up the Mutation Listener again automatically + this.MakeEditable() ; +} + +FCKEditingArea.prototype.Focus = function() +{ + try + { + if ( this.Mode == FCK_EDITMODE_WYSIWYG ) + { + if ( FCKBrowserInfo.IsIE ) + this._FocusIE() ; + 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) {} +} + +FCKEditingArea.prototype._FocusIE = function() +{ + // In IE it can happen that the document is in theory focused but the + // active element is outside of it. + this.Document.body.setActive() ; + + this.Window.focus() ; + + // Kludge for #141... yet more code to workaround IE bugs + var range = this.Document.selection.createRange() ; + + var parentNode = range.parentElement() ; + var parentTag = parentNode.nodeName.toLowerCase() ; + + // Only apply the fix when in a block, and the block is empty. + if ( parentNode.childNodes.length > 0 || + !( FCKListsLib.BlockElements[parentTag] || + FCKListsLib.NonEmptyBlockElements[parentTag] ) ) + { + return ; + } + + // Force the selection to happen, in this way we guarantee the focus will + // be there. + range = new FCKDomRange( this.Window ) ; + range.MoveToElementEditStart( parentNode ) ; + range.Select() ; +} + +function FCKEditingArea_Cleanup() +{ + if ( this.Document ) + this.Document.body.innerHTML = "" ; + this.TargetElement = null ; + this.IFrame = null ; + this.Document = null ; + this.Textarea = null ; + + if ( this.Window ) + { + this.Window._FCKEditingArea = null ; + this.Window = null ; + } +} diff --git a/fckeditor/editor/_source/classes/fckelementpath.js b/fckeditor/editor/_source/classes/fckelementpath.js new file mode 100644 index 0000000..2bf4eb3 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckelementpath.js @@ -0,0 +1,89 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Manages the DOM ascensors element list of a specific DOM node + * (limited to body, inclusive). + */ + +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 ( FCKBrowserInfo.IsIE && e.scopeName != 'HTML' ) + sElementName = e.scopeName.toLowerCase() + ':' + sElementName ; + + if ( !eBlockLimit ) + { + if ( !eBlock && FCKListsLib.PathBlockElements[ sElementName ] != null ) + eBlock = e ; + + if ( FCKListsLib.PathBlockLimitElements[ sElementName ] != null ) + { + // DIV is considered the Block, if no block is available (#525) + // and if it doesn't contain other blocks. + if ( !eBlock && sElementName == 'div' && !FCKElementPath._CheckHasBlock( e ) ) + eBlock = e ; + else + eBlockLimit = e ; + } + } + + aElements.push( e ) ; + + if ( sElementName == 'body' ) + break ; + } + e = e.parentNode ; + } + + this.Block = eBlock ; + this.BlockLimit = eBlockLimit ; + this.Elements = aElements ; +} + +/** + * Check if an element contains any block element. + */ +FCKElementPath._CheckHasBlock = function( element ) +{ + var childNodes = element.childNodes ; + + for ( var i = 0, count = childNodes.length ; i < count ; i++ ) + { + var child = childNodes[i] ; + + if ( child.nodeType == 1 && FCKListsLib.BlockElements[ child.nodeName.toLowerCase() ] ) + return true ; + } + + return false ; +} diff --git a/fckeditor/editor/_source/classes/fckenterkey.js b/fckeditor/editor/_source/classes/fckenterkey.js new file mode 100644 index 0000000..49f64be --- /dev/null +++ b/fckeditor/editor/_source/classes/fckenterkey.js @@ -0,0 +1,688 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Controls the [Enter] keystroke behavior in a document. + */ + +/* + * Constructor. + * @targetDocument : the target document. + * @enterMode : the behavior for the keystroke. + * May be "p", "div", "br". Default is "p". + * @shiftEnterMode : the behavior for the + keystroke. + * May be "p", "div", "br". Defaults to "br". + */ +var FCKEnterKey = function( targetWindow, enterMode, shiftEnterMode, tabSpaces ) +{ + 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' ], + [ CTRL + 8 , 'CtrlBackspace' ], + [ 46 , 'Delete' ] + ] ) ; + + this.TabText = '' ; + + // Safari by default inserts 4 spaces on TAB, while others make the editor + // loose focus. So, we need to handle it here to not include those spaces. + if ( tabSpaces > 0 || FCKBrowserInfo.IsSafari ) + { + while ( tabSpaces-- ) + this.TabText += '\xa0' ; + + oKeystrokeHandler.SetKeystrokes( [ 9, 'Tab' ] ); + } + + 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() ; + break ; + case 'Tab' : + return oEnterKey.DoTab() ; + break ; + case 'CtrlBackspace' : + return oEnterKey.DoCtrlBackspace() ; + break ; + } + } + catch (e) + { + // If for any reason we are not able to handle it, go + // ahead with the browser default behavior. + } + + return false ; +} + +/* + * Executes the key behavior. + */ +FCKEnterKey.prototype.DoEnter = function( mode, hasShift ) +{ + // Save an undo snapshot before doing anything + FCKUndo.SaveUndoStep() ; + + this._HasShift = ( hasShift === true ) ; + + var parentElement = FCKSelection.GetParentElement() ; + var parentPath = new FCKElementPath( parentElement ) ; + var sMode = mode || this.EnterMode ; + + if ( sMode == 'br' || parentPath.Block && parentPath.Block.tagName.toLowerCase() == 'pre' ) + return this._ExecuteEnterBr() ; + else + return this._ExecuteEnterBlock( sMode ) ; +} + +/* + * Executes the + key behavior. + */ +FCKEnterKey.prototype.DoShiftEnter = function() +{ + return this.DoEnter( this.ShiftEnterMode, true ) ; +} + +/* + * Executes the key behavior. + */ +FCKEnterKey.prototype.DoBackspace = function() +{ + var bCustom = false ; + + // Get the current selection. + var oRange = new FCKDomRange( this.Window ) ; + oRange.MoveToSelection() ; + + // Kludge for #247 + if ( FCKBrowserInfo.IsIE && this._CheckIsAllContentsIncluded( oRange, this.Window.document.body ) ) + { + this._FixIESelectAllBug( oRange ) ; + return true ; + } + + var isCollapsed = oRange.CheckIsCollapsed() ; + + if ( !isCollapsed ) + { + // Bug #327, Backspace with an img selection would activate the default action in IE. + // Let's override that with our logic here. + if ( FCKBrowserInfo.IsIE && this.Window.document.selection.type.toLowerCase() == "control" ) + { + var controls = this.Window.document.selection.createRange() ; + for ( var i = controls.length - 1 ; i >= 0 ; i-- ) + { + var el = controls.item( i ) ; + el.parentNode.removeChild( el ) ; + } + return true ; + } + + return false ; + } + + // On IE, it is better for us handle the deletion if the caret is preceeded + // by a
      (#1383). + if ( FCKBrowserInfo.IsIE ) + { + var previousElement = FCKDomTools.GetPreviousSourceElement( oRange.StartNode, true ) ; + + if ( previousElement && previousElement.nodeName.toLowerCase() == 'br' ) + { + // Create a range that starts after the
      and ends at the + // current range position. + var testRange = oRange.Clone() ; + testRange.SetStart( previousElement, 4 ) ; + + // If that range is empty, we can proceed cleaning that
      manually. + if ( testRange.CheckIsEmpty() ) + { + previousElement.parentNode.removeChild( previousElement ) ; + return true ; + } + } + } + + 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 ( !isCollapsed ) + { + 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.IsGeckoLike ) + { + // Firefox and Opera (#1095) loose the selection when executing + // CheckStartOfBlock, so we must reselect. + oRange.Select() ; + } + } + + oRange.Release() ; + return bCustom ; +} + +FCKEnterKey.prototype.DoCtrlBackspace = function() +{ + FCKUndo.SaveUndoStep() ; + var oRange = new FCKDomRange( this.Window ) ; + oRange.MoveToSelection() ; + if ( FCKBrowserInfo.IsIE && this._CheckIsAllContentsIncluded( oRange, this.Window.document.body ) ) + { + this._FixIESelectAllBug( oRange ) ; + return true ; + } + return false ; +} + +FCKEnterKey.prototype._ExecuteBackspace = function( range, previous, currentBlock ) +{ + var bCustom = false ; + + // We could be in a nested LI. + if ( !previous && currentBlock && 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.LTrimNode( currentBlock ) ; + FCKDomTools.RTrimNode( 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, true ) ; + range.Collapse( true ) ; + var oBookmark = range.CreateBookmark( true ) ; + + // Move the contents of the block to the previous element and delete it. + // But for some block types (e.g. table), moving the children to the previous block makes no sense. + // So a check is needed. (See #1081) + if ( ! currentBlock.tagName.IEquals( [ 'TABLE' ] ) ) + FCKDomTools.MoveChildren( currentBlock, previous ) ; + + // Place the selection at the bookmark. + range.SelectBookmark( oBookmark ) ; + + bCustom = true ; + } + } + + return bCustom ; +} + +/* + * Executes the key behavior. + */ +FCKEnterKey.prototype.DoDelete = function() +{ + // Save an undo snapshot before doing anything + // This is to conform with the behavior seen in MS Word + FCKUndo.SaveUndoStep() ; + + // The has the same effect as the , so we have the same + // results if we just move to the next block and apply the same logic. + + var bCustom = false ; + + // Get the current selection. + var oRange = new FCKDomRange( this.Window ) ; + oRange.MoveToSelection() ; + + // Kludge for #247 + if ( FCKBrowserInfo.IsIE && this._CheckIsAllContentsIncluded( oRange, this.Window.document.body ) ) + { + this._FixIESelectAllBug( oRange ) ; + return true ; + } + + // There is just one special case for collapsed selections at the end of a block. + if ( oRange.CheckIsCollapsed() && oRange.CheckEndOfBlock( FCKBrowserInfo.IsGeckoLike ) ) + { + var oCurrentBlock = oRange.StartBlock ; + var eCurrentCell = FCKTools.GetElementAscensor( oCurrentBlock, 'td' ); + + var eNext = FCKDomTools.GetNextSourceElement( oCurrentBlock, true, [ oRange.StartBlockLimit.nodeName ], + ['UL','OL','TR'], true ) ; + + // Bug #1323 : if we're in a table cell, and the next node belongs to a different cell, then don't + // delete anything. + if ( eCurrentCell ) + { + var eNextCell = FCKTools.GetElementAscensor( eNext, 'td' ); + if ( eNextCell != eCurrentCell ) + return true ; + } + + bCustom = this._ExecuteBackspace( oRange, oCurrentBlock, eNext ) ; + } + + oRange.Release() ; + return bCustom ; +} + +/* + * Executes the key behavior. + */ +FCKEnterKey.prototype.DoTab = function() +{ + var oRange = new FCKDomRange( this.Window ); + oRange.MoveToSelection() ; + + // If the user pressed inside a table, we should give him the default behavior ( moving between cells ) + // instead of giving him more non-breaking spaces. (Bug #973) + var node = oRange._Range.startContainer ; + while ( node ) + { + if ( node.nodeType == 1 ) + { + var tagName = node.tagName.toLowerCase() ; + if ( tagName == "tr" || tagName == "td" || tagName == "th" || tagName == "tbody" || tagName == "table" ) + return false ; + else + break ; + } + node = node.parentNode ; + } + + if ( this.TabText ) + { + oRange.DeleteContents() ; + oRange.InsertNode( this.Window.document.createTextNode( this.TabText ) ) ; + oRange.Collapse( false ) ; + oRange.Select() ; + } + return true ; +} + +FCKEnterKey.prototype._ExecuteEnterBlock = function( blockTag, range ) +{ + // Get the current selection. + var oRange = range || new FCKDomRange( this.Window ) ; + + var oSplitInfo = oRange.SplitBlock( blockTag ) ; + + if ( oSplitInfo ) + { + // Get the current blocks. + var ePreviousBlock = oSplitInfo.PreviousBlock ; + var eNextBlock = oSplitInfo.NextBlock ; + + var bIsStartOfBlock = oSplitInfo.WasStartOfBlock ; + var bIsEndOfBlock = oSplitInfo.WasEndOfBlock ; + + // If there is one block under a list item, modify the split so that the list item gets split as well. (Bug #1647) + if ( eNextBlock ) + { + if ( eNextBlock.parentNode.nodeName.IEquals( 'li' ) ) + { + FCKDomTools.BreakParent( eNextBlock, eNextBlock.parentNode ) ; + FCKDomTools.MoveNode( eNextBlock, eNextBlock.nextSibling, true ) ; + } + } + else if ( ePreviousBlock && ePreviousBlock.parentNode.nodeName.IEquals( 'li' ) ) + { + FCKDomTools.BreakParent( ePreviousBlock, ePreviousBlock.parentNode ) ; + oRange.MoveToElementEditStart( ePreviousBlock.nextSibling ); + FCKDomTools.MoveNode( ePreviousBlock, ePreviousBlock.previousSibling ) ; + } + + // If we have both the previous and next blocks, it means that the + // boundaries were on separated blocks, or none of them where on the + // block limits (start/end). + if ( !bIsStartOfBlock && !bIsEndOfBlock ) + { + // If the next block is an
    4. with another list tree as the first child + // We'll need to append a placeholder or the list item wouldn't be editable. (Bug #1420) + if ( eNextBlock.nodeName.IEquals( 'li' ) && eNextBlock.firstChild + && eNextBlock.firstChild.nodeName.IEquals( ['ul', 'ol'] ) ) + eNextBlock.insertBefore( FCKTools.GetElementDocument( eNextBlock ).createTextNode( '\xa0' ), eNextBlock.firstChild ) ; + // Move the selection to the end block. + if ( eNextBlock ) + oRange.MoveToElementEditStart( eNextBlock ) ; + } + else + { + if ( bIsStartOfBlock && bIsEndOfBlock && ePreviousBlock.tagName.toUpperCase() == 'LI' ) + { + oRange.MoveToElementStart( ePreviousBlock ) ; + this._OutdentWithSelection( ePreviousBlock, oRange ) ; + oRange.Release() ; + return true ; + } + + var eNewBlock ; + + if ( ePreviousBlock ) + { + var sPreviousBlockTag = ePreviousBlock.tagName.toUpperCase() ; + + // If is a header tag, or we are in a Shift+Enter (#77), + // create a new block element (later in the code). + if ( !this._HasShift && !(/^H[1-6]$/).test( sPreviousBlockTag ) ) + { + // Otherwise, duplicate the previous block. + eNewBlock = FCKDomTools.CloneElement( ePreviousBlock ) ; + } + } + else if ( eNextBlock ) + eNewBlock = FCKDomTools.CloneElement( eNextBlock ) ; + + if ( !eNewBlock ) + eNewBlock = this.Window.document.createElement( blockTag ) ; + + // Recreate the inline elements tree, which was available + // before the hitting enter, so the same styles will be + // available in the new block. + var elementPath = oSplitInfo.ElementPath ; + if ( elementPath ) + { + for ( var i = 0, len = elementPath.Elements.length ; i < len ; i++ ) + { + var element = elementPath.Elements[i] ; + + if ( element == elementPath.Block || element == elementPath.BlockLimit ) + break ; + + if ( FCKListsLib.InlineChildReqElements[ element.nodeName.toLowerCase() ] ) + { + element = FCKDomTools.CloneElement( element ) ; + FCKDomTools.MoveChildren( eNewBlock, element ) ; + eNewBlock.appendChild( element ) ; + } + } + } + + if ( FCKBrowserInfo.IsGeckoLike ) + FCKTools.AppendBogusBr( eNewBlock ) ; + + oRange.InsertNode( eNewBlock ) ; + + // 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.MoveToElementEditStart( eNewBlock ) ; + oRange.Select() ; + } + + // Move the selection to the new block. + oRange.MoveToElementEditStart( bIsStartOfBlock && !bIsEndOfBlock ? eNextBlock : eNewBlock ) ; + } + + if ( FCKBrowserInfo.IsGeckoLike ) + FCKDomTools.ScrollIntoView( eNextBlock || eNewBlock, false ) ; + + 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 ; + var bIsPre = false ; + + 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 ) ) + { + // 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 + { + var eLineBreak ; + bIsPre = sStartBlockTag.IEquals( 'pre' ) ; + if ( bIsPre ) + eLineBreak = this.Window.document.createTextNode( FCKBrowserInfo.IsIE ? '\r' : '\n' ) ; + else + eLineBreak = this.Window.document.createElement( 'br' ) ; + + oRange.InsertNode( eLineBreak ) ; + + // The space is required by Gecko only to make the cursor blink. + if ( FCKBrowserInfo.IsGecko ) + FCKDomTools.InsertAfterNode( eLineBreak, 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.IsGeckoLike ) + FCKTools.AppendBogusBr( eLineBreak.parentNode ) ; + + if ( FCKBrowserInfo.IsIE ) + oRange.SetStart( eLineBreak, 4 ) ; + else + oRange.SetStart( eLineBreak.nextSibling, 1 ) ; + + if ( ! FCKBrowserInfo.IsIE ) + { + var dummy = null ; + if ( FCKBrowserInfo.IsOpera ) + dummy = this.Window.document.createElement( 'span' ) ; + else + dummy = this.Window.document.createElement( 'br' ) ; + + eLineBreak.parentNode.insertBefore( dummy, eLineBreak.nextSibling ) ; + + FCKDomTools.ScrollIntoView( dummy, false ) ; + + dummy.parentNode.removeChild( dummy ) ; + } + } + + // This collapse guarantees the cursor will be blinking. + oRange.Collapse( true ) ; + + oRange.Select( bIsPre ) ; + } + + // Release the resources used by the range. + oRange.Release() ; + + return true ; +} + +// Outdents a LI, maintaining the selection defined on a range. +FCKEnterKey.prototype._OutdentWithSelection = function( li, range ) +{ + var oBookmark = range.CreateBookmark() ; + + FCKListHandler.OutdentListItem( li ) ; + + range.MoveToBookmark( oBookmark ) ; + range.Select() ; +} + +// Is all the contents under a node included by a range? +FCKEnterKey.prototype._CheckIsAllContentsIncluded = function( range, node ) +{ + var startOk = false ; + var endOk = false ; + + /* + FCKDebug.Output( 'sc='+range.StartContainer.nodeName+ + ',so='+range._Range.startOffset+ + ',ec='+range.EndContainer.nodeName+ + ',eo='+range._Range.endOffset ) ; + */ + if ( range.StartContainer == node || range.StartContainer == node.firstChild ) + startOk = ( range._Range.startOffset == 0 ) ; + + if ( range.EndContainer == node || range.EndContainer == node.lastChild ) + { + var nodeLength = range.EndContainer.nodeType == 3 ? range.EndContainer.length : range.EndContainer.childNodes.length ; + endOk = ( range._Range.endOffset == nodeLength ) ; + } + + return startOk && endOk ; +} + +// Kludge for #247 +FCKEnterKey.prototype._FixIESelectAllBug = function( range ) +{ + var doc = this.Window.document ; + doc.body.innerHTML = '' ; + var editBlock ; + if ( FCKConfig.EnterMode.IEquals( ['div', 'p'] ) ) + { + editBlock = doc.createElement( FCKConfig.EnterMode ) ; + doc.body.appendChild( editBlock ) ; + } + else + editBlock = doc.body ; + + range.MoveToNodeContents( editBlock ) ; + range.Collapse( true ) ; + range.Select() ; + range.Release() ; +} diff --git a/fckeditor/editor/_source/classes/fckevents.js b/fckeditor/editor/_source/classes/fckevents.js new file mode 100644 index 0000000..ef2e10f --- /dev/null +++ b/fckeditor/editor/_source/classes/fckevents.js @@ -0,0 +1,71 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * FCKEvents Class: used to handle events is a advanced way. + */ + +var FCKEvents = function( eventsOwner ) +{ + this.Owner = eventsOwner ; + this._RegisteredEvents = new Object() ; +} + +FCKEvents.prototype.AttachEvent = function( eventName, functionPointer ) +{ + var aTargets ; + + if ( !( aTargets = this._RegisteredEvents[ eventName ] ) ) + this._RegisteredEvents[ eventName ] = [ functionPointer ] ; + else + { + // Check that the event handler isn't already registered with the same listener + // It doesn't detect function pointers belonging to an object (at least in Gecko) + if ( aTargets.IndexOf( functionPointer ) == -1 ) + aTargets.push( functionPointer ) ; + } +} + +FCKEvents.prototype.FireEvent = function( eventName, params ) +{ + var bReturnValue = true ; + + var oCalls = this._RegisteredEvents[ eventName ] ; + + if ( oCalls ) + { + for ( var i = 0 ; i < oCalls.length ; i++ ) + { + try + { + bReturnValue = ( oCalls[ i ]( this.Owner, params ) && bReturnValue ) ; + } + catch(e) + { + // Ignore the following error. It may happen if pointing to a + // script not anymore available (#934): + // -2146823277 = Can't execute code from a freed script + if ( e.number != -2146823277 ) + throw e ; + } + } + } + + return bReturnValue ; +} diff --git a/fckeditor/editor/_source/classes/fckhtmliterator.js b/fckeditor/editor/_source/classes/fckhtmliterator.js new file mode 100644 index 0000000..9f184b7 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckhtmliterator.js @@ -0,0 +1,142 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This class can be used to interate through nodes inside a range. + * + * During interation, the provided range can become invalid, due to document + * mutations, so CreateBookmark() used to restore it after processing, if + * needed. + */ + +var FCKHtmlIterator = function( source ) +{ + this._sourceHtml = source ; +} +FCKHtmlIterator.prototype = +{ + Next : function() + { + var sourceHtml = this._sourceHtml ; + if ( sourceHtml == null ) + return null ; + + var match = FCKRegexLib.HtmlTag.exec( sourceHtml ) ; + var isTag = false ; + var value = "" ; + if ( match ) + { + if ( match.index > 0 ) + { + value = sourceHtml.substr( 0, match.index ) ; + this._sourceHtml = sourceHtml.substr( match.index ) ; + } + else + { + isTag = true ; + value = match[0] ; + this._sourceHtml = sourceHtml.substr( match[0].length ) ; + } + } + else + { + value = sourceHtml ; + this._sourceHtml = null ; + } + return { 'isTag' : isTag, 'value' : value } ; + }, + + Each : function( func ) + { + var chunk ; + while ( ( chunk = this.Next() ) ) + func( chunk.isTag, chunk.value ) ; + } +} ; +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This class can be used to interate through nodes inside a range. + * + * During interation, the provided range can become invalid, due to document + * mutations, so CreateBookmark() used to restore it after processing, if + * needed. + */ + +var FCKHtmlIterator = function( source ) +{ + this._sourceHtml = source ; +} +FCKHtmlIterator.prototype = +{ + Next : function() + { + var sourceHtml = this._sourceHtml ; + if ( sourceHtml == null ) + return null ; + + var match = FCKRegexLib.HtmlTag.exec( sourceHtml ) ; + var isTag = false ; + var value = "" ; + if ( match ) + { + if ( match.index > 0 ) + { + value = sourceHtml.substr( 0, match.index ) ; + this._sourceHtml = sourceHtml.substr( match.index ) ; + } + else + { + isTag = true ; + value = match[0] ; + this._sourceHtml = sourceHtml.substr( match[0].length ) ; + } + } + else + { + value = sourceHtml ; + this._sourceHtml = null ; + } + return { 'isTag' : isTag, 'value' : value } ; + }, + + Each : function( func ) + { + var chunk ; + while ( ( chunk = this.Next() ) ) + func( chunk.isTag, chunk.value ) ; + } +} ; diff --git a/fckeditor/editor/_source/classes/fckicon.js b/fckeditor/editor/_source/classes/fckicon.js new file mode 100644 index 0000000..89719f6 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckicon.js @@ -0,0 +1,103 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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 ) + { + //
      + + eIcon = document.createElement( 'DIV' ) ; + + eIconImage = eIcon.appendChild( document.createElement( 'IMG' ) ) ; + eIconImage.src = this.Path ; + eIconImage.style.top = sPos ; + } + else + { + // + + 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. + { + if ( FCKBrowserInfo.IsIE ) + { + // IE makes the button 1px higher if using the directly, so we + // are changing to the
      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 ; + } + else + { + // This is not working well with IE. See notes above. + // + eIcon = document.createElement( 'IMG' ) ; + eIcon.src = this.Path ? this.Path : FCK_SPACER_PATH ; + } + } + + eIcon.className = 'TB_Button_Image' ; + + return eIcon ; +} diff --git a/fckeditor/editor/_source/classes/fckiecleanup.js b/fckeditor/editor/_source/classes/fckiecleanup.js new file mode 100644 index 0000000..9a09005 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckiecleanup.js @@ -0,0 +1,68 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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, just 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 || ( FCKConfig.MsWebBrowserControlCompat && !window.FCKUnloadFlag ) ) + 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() ; +} diff --git a/fckeditor/editor/_source/classes/fckimagepreloader.js b/fckeditor/editor/_source/classes/fckimagepreloader.js new file mode 100644 index 0000000..92fd305 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckimagepreloader.js @@ -0,0 +1,64 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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' ) ; + FCKTools.AddEventListenerEx( eImg, 'load', _FCKImagePreloader_OnImage, this ) ; + FCKTools.AddEventListenerEx( eImg, 'error', _FCKImagePreloader_OnImage, 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( ev, imagePreloader ) +{ + if ( (--imagePreloader._PreloadCount) == 0 && imagePreloader.OnComplete ) + imagePreloader.OnComplete() ; +} diff --git a/fckeditor/editor/_source/classes/fckkeystrokehandler.js b/fckeditor/editor/_source/classes/fckkeystrokehandler.js new file mode 100644 index 0000000..31c341b --- /dev/null +++ b/fckeditor/editor/_source/classes/fckkeystrokehandler.js @@ -0,0 +1,141 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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 the configuration for the keystrokes is missing some element or has any extra comma + // this item won't be valid, so skip it and keep on processing. + if ( !keyDef ) + continue ; + + 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, remove 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 explicitly 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 ; +} diff --git a/fckeditor/editor/_source/classes/fckmenublock.js b/fckeditor/editor/_source/classes/fckmenublock.js new file mode 100644 index 0000000..1cd710d --- /dev/null +++ b/fckeditor/editor/_source/classes/fckmenublock.js @@ -0,0 +1,153 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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, customData ) +{ + var oItem = new FCKMenuItem( this, name, label, iconPathOrStripInfoArrayOrIndex, isDisabled, customData ) ; + + 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 ) +{ + if ( menuBlock.Hide ) + menuBlock.Hide() ; + + 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() ; + + // Due to the event model provided by Opera, we need to set + // HasFocus here as the above focus() call will not fire the focus + // event in the panel immediately (#1200). + menuBlock.Panel.HasFocus = true ; + } + + 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' ; +} diff --git a/fckeditor/editor/_source/classes/fckmenublockpanel.js b/fckeditor/editor/_source/classes/fckmenublockpanel.js new file mode 100644 index 0000000..9dbc480 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckmenublockpanel.js @@ -0,0 +1,54 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This 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.SkinEditorCSS ) ; + + // 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() ; +} diff --git a/fckeditor/editor/_source/classes/fckmenuitem.js b/fckeditor/editor/_source/classes/fckmenuitem.js new file mode 100644 index 0000000..038146d --- /dev/null +++ b/fckeditor/editor/_source/classes/fckmenuitem.js @@ -0,0 +1,161 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Defines and renders a menu items in a menu block. + */ + +var FCKMenuItem = function( parentMenuBlock, name, label, iconPathOrStripInfoArray, isDisabled, customData ) +{ + 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 ) ; + this.CustomData = customData ; + + if ( FCK.IECleanup ) + FCK.IECleanup.AddItem( this, FCKMenuItem_Cleanup ) ; +} + + +FCKMenuItem.prototype.AddItem = function( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled, customData ) +{ + this.HasSubMenu = true ; + return this.SubMenu.AddItem( name, label, iconPathOrStripInfoArrayOrIndex, isDisabled, customData ) ; +} + +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 ; +} diff --git a/fckeditor/editor/_source/classes/fckpanel.js b/fckeditor/editor/_source/classes/fckpanel.js new file mode 100644 index 0000000..f041339 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckpanel.js @@ -0,0 +1,386 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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. + // The popup has to be created before playing with domain hacks, see #1666. + this._Popup = this._Window.createPopup() ; + + // this._Window cannot be accessed while playing with domain hacks, but local variable is ok. + // See #1666. + var pDoc = this._Window.document ; + + // This is a trick to IE6 (not IE7). The original domain must be set + // before creating the popup, so we are able to take a refence to the + // document inside of it, and the set the proper domain for it. (#123) + if ( FCK_IS_CUSTOM_DOMAIN && !FCKBrowserInfo.IsIE7 ) + { + pDoc.domain = FCK_ORIGINAL_DOMAIN ; + document.domain = FCK_ORIGINAL_DOMAIN ; + } + + oDocument = this.Document = this._Popup.document ; + + // Set the proper domain inside the popup. + if ( FCK_IS_CUSTOM_DOMAIN ) + { + oDocument.domain = FCK_RUNTIME_DOMAIN ; + pDoc.domain = FCK_RUNTIME_DOMAIN ; + document.domain = FCK_RUNTIME_DOMAIN ; + } + + FCK.IECleanup.AddItem( this, FCKPanel_Cleanup ) ; + } + else + { + var oIFrame = this._IFrame = this._Window.document.createElement('iframe') ; + FCKTools.ResetStyles( oIFrame ); + oIFrame.src = 'javascript:void(0)' ; + oIFrame.allowTransparency = true ; + oIFrame.frameBorder = '0' ; + oIFrame.scrolling = 'no' ; + oIFrame.style.width = oIFrame.style.height = '0px' ; + FCKDomTools.SetElementStyles( oIFrame, + { + position : 'absolute', + zIndex : FCKConfig.FloatingPanelsZIndex + } ) ; + + this._Window.document.body.appendChild( oIFrame ) ; + + var oIFrameWindow = oIFrame.contentWindow ; + + oDocument = this.Document = oIFrameWindow.document ; + + // Workaround for Safari 12256. Ticket #63 + var sBase = '' ; + if ( FCKBrowserInfo.IsSafari ) + sBase = '' ; + + // Initialize the IFRAME document body. + oDocument.open() ; + oDocument.write( '' + sBase + '<\/head><\/body><\/html>' ) ; + oDocument.close() ; + + if( FCKBrowserInfo.IsAIR ) + FCKAdobeAIR.Panel_Contructor( oDocument, window.document.location ) ; + + FCKTools.AddEventListenerEx( oIFrameWindow, 'focus', FCKPanel_Window_OnFocus, this ) ; + FCKTools.AddEventListenerEx( oIFrameWindow, 'blur', FCKPanel_Window_OnBlur, this ) ; + } + + oDocument.dir = FCKLang.Dir ; + + FCKTools.AddEventListener( oDocument, 'contextmenu', 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 correctly. + 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 ; + var eMainNode = this.MainNode ; + + 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. + FCKDomTools.SetElementStyles( eMainNode, + { + width : width ? width + 'px' : '', + height : height ? height + 'px' : '' + } ) ; + + iMainWidth = eMainNode.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, eMainNode.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( FCK.ToolbarSet.CurrentInstance.FocusManager ) != 'undefined' ) + FCK.ToolbarSet.CurrentInstance.FocusManager.Lock() ; + + if ( this.ParentPanel ) + { + this.ParentPanel.Lock() ; + + // Due to a bug on FF3, we must ensure that the parent panel will + // blur (#1584). + FCKPanel_Window_OnBlur( null, this.ParentPanel ) ; + } + + // Toggle the iframe scrolling attribute to prevent the panel + // scrollbars from disappearing in FF Mac. (#191) + if ( FCKBrowserInfo.IsGecko && FCKBrowserInfo.IsMac ) + { + this._IFrame.scrolling = '' ; + FCKTools.RunFunction( function(){ this._IFrame.scrolling = 'no'; }, this ) ; + } + + // Be sure we'll not have more than one Panel opened at the same time. + // Do not unlock focus manager here because we're displaying another floating panel + // instead of returning the editor to a "no panel" state (Bug #1514). + if ( FCK.ToolbarSet.CurrentInstance.GetInstanceObject( 'FCKPanel' )._OpenedPanel && + FCK.ToolbarSet.CurrentInstance.GetInstanceObject( 'FCKPanel' )._OpenedPanel != this ) + FCK.ToolbarSet.CurrentInstance.GetInstanceObject( 'FCKPanel' )._OpenedPanel.Hide( false, true ) ; + + FCKDomTools.SetElementStyles( eMainNode, + { + width : width ? width + 'px' : '', + height : height ? height + 'px' : '' + } ) ; + + iMainWidth = eMainNode.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. + // + // The "|| eMainNode.firstChild.offsetWidth" part has been added + // for Opera compatibility (see #570). + iMainWidth = eMainNode.offsetWidth || eMainNode.firstChild.offsetWidth ; + + // Base the popup coordinates upon the coordinates of relElement. + var oPos = FCKTools.GetDocumentPosition( this._Window, + relElement.nodeType == 9 ? + ( FCKTools.IsStrictMode( relElement ) ? relElement.documentElement : relElement.body ) : + relElement ) ; + + // Minus the offsets provided by any positioned parent element of the panel iframe. + var positionedAncestor = FCKDomTools.GetPositionedAncestor( this._IFrame.parentNode ) ; + if ( positionedAncestor ) + { + var nPos = FCKTools.GetDocumentPosition( FCKTools.GetElementWindow( positionedAncestor ), positionedAncestor ) ; + oPos.x -= nPos.x ; + oPos.y -= nPos.y ; + } + + 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 + eMainNode.offsetHeight ) > iViewPaneHeight ) + y -= y + eMainNode.offsetHeight - iViewPaneHeight ; + } + + // Set the context menu DIV in the specified location. + FCKDomTools.SetElementStyles( this._IFrame, + { + left : x + 'px', + top : y + 'px' + } ) ; + + // Move the focus to the IFRAME so we catch the "onblur". + this._IFrame.contentWindow.focus() ; + this._IsOpened = true ; + + var me = this ; + this._resizeTimer = setTimeout( function() + { + var iWidth = eMainNode.offsetWidth || eMainNode.firstChild.offsetWidth ; + var iHeight = eMainNode.offsetHeight ; + me._IFrame.style.width = iWidth + 'px' ; + me._IFrame.style.height = iHeight + 'px' ; + + }, 0 ) ; + + FCK.ToolbarSet.CurrentInstance.GetInstanceObject( 'FCKPanel' )._OpenedPanel = this ; + } + + FCKTools.RunFunction( this.OnShow, this ) ; +} + +FCKPanel.prototype.Hide = function( ignoreOnHide, ignoreFocusManagerUnlock ) +{ + if ( this._Popup ) + this._Popup.hide() ; + else + { + if ( !this._IsOpened || this._LockCounter > 0 ) + return ; + + // Enable the editor to fire the "OnBlur". + if ( typeof( FCKFocusManager ) != 'undefined' && !ignoreFocusManagerUnlock ) + FCKFocusManager.Unlock() ; + + // It is better to set the sizes to 0, otherwise Firefox would have + // rendering problems. + this._IFrame.style.width = this._IFrame.style.height = '0px' ; + + this._IsOpened = false ; + + if ( this._resizeTimer ) + { + clearTimeout( this._resizeTimer ) ; + this._resizeTimer = null ; + } + + if ( this.ParentPanel ) + this.ParentPanel.Unlock() ; + + if ( !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 ) ; + 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 ; +} diff --git a/fckeditor/editor/_source/classes/fckplugin.js b/fckeditor/editor/_source/classes/fckplugin.js new file mode 100644 index 0000000..16300d1 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckplugin.js @@ -0,0 +1,56 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * FCKPlugin Class: Represents a single plugin. + */ + +var FCKPlugin = function( name, availableLangs, basePath ) +{ + this.Name = name ; + this.BasePath = basePath ? basePath : FCKConfig.PluginsPath ; + this.Path = this.BasePath + name + '/' ; + + if ( !availableLangs || availableLangs.length == 0 ) + this.AvailableLangs = new Array() ; + else + this.AvailableLangs = availableLangs.split(',') ; +} + +FCKPlugin.prototype.Load = function() +{ + // Load the language file, if defined. + if ( this.AvailableLangs.length > 0 ) + { + var sLang ; + + // Check if the plugin has the language file for the active language. + if ( this.AvailableLangs.IndexOf( FCKLanguageManager.ActiveLanguage.Code ) >= 0 ) + sLang = FCKLanguageManager.ActiveLanguage.Code ; + else + // Load the default language file (first one) if the current one is not available. + sLang = this.AvailableLangs[0] ; + + // Add the main plugin script. + LoadScript( this.Path + 'lang/' + sLang + '.js' ) ; + } + + // Add the main plugin script. + LoadScript( this.Path + 'fckplugin.js' ) ; +} diff --git a/fckeditor/editor/_source/classes/fckspecialcombo.js b/fckeditor/editor/_source/classes/fckspecialcombo.js new file mode 100644 index 0000000..7226389 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckspecialcombo.js @@ -0,0 +1,376 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * FCKSpecialCombo Class: represents a special combo. + */ + +var FCKSpecialCombo = function( caption, fieldWidth, panelWidth, panelMaxHeight, parentWindow ) +{ + // Default properties values. + this.FieldWidth = fieldWidth || 100 ; + this.PanelWidth = panelWidth || 150 ; + this.PanelMaxHeight = panelMaxHeight || 150 ; + this.Label = ' ' ; + this.Caption = caption ; + this.Tooltip = caption ; + this.Style = FCK_TOOLBARITEM_ICONTEXT ; + + this.Enabled = true ; + + this.Items = new Object() ; + + this._Panel = new FCKPanel( parentWindow || window ) ; + this._Panel.AppendStyleSheet( FCKConfig.SkinEditorCSS ) ; + this._PanelBox = this._Panel.MainNode.appendChild( this._Panel.Document.createElement( 'DIV' ) ) ; + this._PanelBox.className = 'SC_Panel' ; + this._PanelBox.style.width = this.PanelWidth + 'px' ; + + this._PanelBox.innerHTML = '
      ' ; + + this._ItemsHolderEl = this._PanelBox.getElementsByTagName('TD')[0] ; + + if ( FCK.IECleanup ) + FCK.IECleanup.AddItem( this, FCKSpecialCombo_Cleanup ) ; + +// this._Panel.StyleSheet = FCKConfig.SkinPath + 'fck_contextmenu.css' ; +// this._Panel.Create() ; +// this._Panel.PanelDiv.className += ' SC_Panel' ; +// this._Panel.PanelDiv.innerHTML = '
      ' ; +// 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( ev, specialCombo, itemId ) +{ + this.className = this.originalClass ; + + specialCombo._Panel.Hide() ; + + specialCombo.SetLabel( this.FCKItemLabel ) ; + + if ( typeof( specialCombo.OnSelect ) == 'function' ) + specialCombo.OnSelect( itemId, this ) ; +} + +FCKSpecialCombo.prototype.ClearItems = function () +{ + if ( this.Items ) + this.Items = {} ; + + var itemsholder = this._ItemsHolderEl ; + while ( itemsholder.firstChild ) + itemsholder.removeChild( itemsholder.firstChild ) ; +} + +FCKSpecialCombo.prototype.AddItem = function( id, html, label, bgColor ) +{ + //
      Bold 1
      + var oDiv = this._ItemsHolderEl.appendChild( this._Panel.Document.createElement( 'DIV' ) ) ; + oDiv.className = oDiv.originalClass = 'SC_Item' ; + oDiv.innerHTML = html ; + oDiv.FCKItemLabel = label || id ; + 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 ; + + FCKTools.AddEventListenerEx( oDiv, 'mouseover', FCKSpecialCombo_ItemOnMouseOver ) ; + FCKTools.AddEventListenerEx( oDiv, 'mouseout', FCKSpecialCombo_ItemOnMouseOut ) ; + FCKTools.AddEventListenerEx( oDiv, 'click', FCKSpecialCombo_ItemOnClick, [ this, id ] ) ; + + this.Items[ id.toString().toLowerCase() ] = oDiv ; + + return oDiv ; +} + +FCKSpecialCombo.prototype.SelectItem = function( item ) +{ + if ( typeof item == 'string' ) + item = this.Items[ item.toString().toLowerCase() ] ; + + if ( item ) + { + item.className = item.originalClass = 'SC_ItemSelected' ; + item.Selected = true ; + } +} + +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 ) + { + if ( !this.Items[i] ) continue; + 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 : '' ) ; +} + +FCKSpecialCombo.prototype.SetLabel = function( text ) +{ + text = ( !text || text.length == 0 ) ? ' ' : text ; + + if ( text == this.Label ) + return ; + + this.Label = text ; + + var labelEl = this._LabelEl ; + if ( labelEl ) + { + labelEl.innerHTML = text ; + + // 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( labelEl ) ; + } +} + +FCKSpecialCombo.prototype.SetEnabled = function( isEnabled ) +{ + this.Enabled = isEnabled ; + + // In IE it can happen when the page is reloaded that _OuterTable is null, so check its existence + if ( this._OuterTable ) + this._OuterTable.className = isEnabled ? '' : 'SC_FieldDisabled' ; +} + +FCKSpecialCombo.prototype.Create = function( targetElement ) +{ + 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 : + sClass = 'TB_ButtonType_Icon' ; + bShowLabel = false; + break ; + case FCK_TOOLBARITEM_ONLYTEXT : + sClass = 'TB_ButtonType_Text' ; + bShowLabel = false; + break ; + case FCK_TOOLBARITEM_ICONTEXT : + bShowLabel = true; + break ; + } + + if ( this.Caption && this.Caption.length > 0 && bShowLabel ) + { + var oCaptionCell = eOuterTable.rows[0].insertCell(-1) ; + oCaptionCell.innerHTML = this.Caption ; + oCaptionCell.className = 'SC_FieldCaption' ; + } + + // Create the main DIV element. + var oField = FCKTools.AppendElement( eOuterTable.rows[0].insertCell(-1), 'div' ) ; + if ( bShowLabel ) + { + oField.className = 'SC_Field' ; + oField.style.width = this.FieldWidth + 'px' ; + oField.innerHTML = '
       
      ' ; + + this._LabelEl = oField.getElementsByTagName('label')[0] ; // Memory Leak + this._LabelEl.innerHTML = this.Label ; + } + else + { + oField.className = 'TB_Button_Off' ; + //oField.innerHTML = '' + this.Caption + '
       
      ' ; + //oField.innerHTML = '
       
      ' ; + + // Gets the correct CSS class to use for the specified style (param). + oField.innerHTML = '' + + '' + + //'' + + '' + + '' + + '' + + '' + + '' + + '' + + '
      ' + this.Caption + '
      ' ; + } + + + // Events Handlers + + FCKTools.AddEventListenerEx( oField, 'mouseover', FCKSpecialCombo_OnMouseOver, this ) ; + FCKTools.AddEventListenerEx( oField, 'mouseout', FCKSpecialCombo_OnMouseOut, this ) ; + FCKTools.AddEventListenerEx( oField, 'click', FCKSpecialCombo_OnClick, this ) ; + + FCKTools.DisableSelection( this._Panel.Document.body ) ; +} + +function FCKSpecialCombo_Cleanup() +{ + this._LabelEl = null ; + this._OuterTable = null ; + this._ItemsHolderEl = null ; + this._PanelBox = null ; + + if ( this.Items ) + { + for ( var key in this.Items ) + this.Items[key] = null ; + } +} + +function FCKSpecialCombo_OnMouseOver( ev, specialCombo ) +{ + if ( specialCombo.Enabled ) + { + switch ( specialCombo.Style ) + { + case FCK_TOOLBARITEM_ONLYICON : + this.className = 'TB_Button_On_Over'; + break ; + case FCK_TOOLBARITEM_ONLYTEXT : + this.className = 'TB_Button_On_Over'; + break ; + case FCK_TOOLBARITEM_ICONTEXT : + this.className = 'SC_Field SC_FieldOver' ; + break ; + } + } +} + +function FCKSpecialCombo_OnMouseOut( ev, specialCombo ) +{ + switch ( 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, specialCombo ) +{ + // 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 ( specialCombo.Enabled ) + { + var oPanel = specialCombo._Panel ; + var oPanelBox = specialCombo._PanelBox ; + var oItemsHolder = specialCombo._ItemsHolderEl ; + var iMaxHeight = specialCombo.PanelMaxHeight ; + + if ( specialCombo.OnBeforeClick ) + specialCombo.OnBeforeClick( specialCombo ) ; + + // 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 + oPanelBox.style.height = '' ; + +// oPanel.PanelDiv.style.width = specialCombo.PanelWidth + 'px' ; + + oPanel.Show( 0, this.offsetHeight, this ) ; + } + +// return false ; +} + +/* +Sample Combo Field HTML output: + +
      + + + + + + + +
       
      +
      +*/ diff --git a/fckeditor/editor/_source/classes/fckstyle.js b/fckeditor/editor/_source/classes/fckstyle.js new file mode 100644 index 0000000..756fd67 --- /dev/null +++ b/fckeditor/editor/_source/classes/fckstyle.js @@ -0,0 +1,1500 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * FCKStyle Class: contains a style definition, and all methods to work with + * the style in a document. + */ + +/** + * @param {Object} styleDesc A "style descriptor" object, containing the raw + * style definition in the following format: + * '' ; + 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() +{ + var body = FCK.EditorDocument.body ; + + body.detachEvent( 'onpaste', Doc_OnPaste ) ; + + var ret = FCK.Paste( !FCKConfig.ForcePasteAsPlainText && !FCKConfig.AutoDetectPasteFromWord ) ; + + body.attachEvent( 'onpaste', Doc_OnPaste ) ; + + return ret ; +} + +function Doc_OnDblClick() +{ + FCK.OnDoubleClick( FCK.EditorWindow.event.srcElement ) ; + FCK.EditorWindow.event.cancelBubble = true ; +} + +function Doc_OnSelectionChange() +{ + // Don't fire the event if no document is loaded. + if ( !FCK.IsSelectionChangeLocked && FCK.EditorDocument ) + FCK.Events.FireEvent( "OnSelectionChange" ) ; +} + +function Doc_OnDrop() +{ + if ( FCK.MouseDownFlag ) + { + FCK.MouseDownFlag = false ; + return ; + } + + if ( FCKConfig.ForcePasteAsPlainText ) + { + var evt = FCK.EditorWindow.event ; + + if ( FCK._CheckIsPastingEnabled() || FCKConfig.ShowDropDialog ) + FCK.PasteAsPlainText( evt.dataTransfer.getData( 'Text' ) ) ; + + evt.returnValue = false ; + evt.cancelBubble = true ; + } +} + +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 ) ; + + // Intercept drop operations + this.EditorDocument.body.attachEvent( 'ondrop', Doc_OnDrop ) ; + + // Reset the context menu. + FCK.ContextMenu._InnerContextMenu.AttachToElement( FCK.EditorDocument.body ) ; + + this.EditorDocument.attachEvent("onkeydown", FCK._KeyDownListener ) ; + + this.EditorDocument.attachEvent("ondblclick", Doc_OnDblClick ) ; + + this.EditorDocument.attachEvent("onbeforedeactivate", function(){ FCKSelection.Save( true ) ; } ) ; + + // Catch cursor selection changes. + this.EditorDocument.attachEvent("onselectionchange", Doc_OnSelectionChange ) ; + + FCKTools.AddEventListener( FCK.EditorDocument, 'mousedown', Doc_OnMouseDown ) ; +} + +FCK.InsertHtml = function( html ) +{ + html = FCKConfig.ProtectedSource.Protect( html ) ; + html = FCK.ProtectEvents( html ) ; + html = FCK.ProtectUrls( html ) ; + html = FCK.ProtectTags( html ) ; + +// FCK.Focus() ; + FCKSelection.Restore() ; + FCK.EditorWindow.focus() ; + + FCKUndo.SaveUndoStep() ; + + // Gets the actual selection. + var oSel = FCKSelection.GetSelection() ; + + // Deletes the actual selection contents. + if ( oSel.type.toLowerCase() == 'control' ) + oSel.clear() ; + + // Using the following trick, any comment in the beginning of the HTML will + // be preserved. + html = '' + html ; + + // Insert the HTML. + oSel.createRange().pasteHTML( html ) ; + + // Remove the fake node + FCK.EditorDocument.getElementById('__fakeFCKRemove__').removeNode( true ) ; + + FCKDocumentProcessor.Process( FCK.EditorDocument ) ; + + // For some strange reason the SaveUndoStep() call doesn't activate the undo button at the first InsertHtml() call. + this.Events.FireEvent( "OnSelectionChange" ) ; +} + +FCK.SetInnerHtml = function( html ) // IE Only +{ + var oDoc = FCK.EditorDocument ; + // Using the following trick, any comment in the beginning of the HTML will + // be preserved. + oDoc.body.innerHTML = '
       
      ' + 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.LinkedField = null ; + this.EditorWindow = null ; + this.EditorDocument = null ; +} + +FCK._ExecPaste = 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( forceText ) +{ + 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 = null ; + if ( ! forceText ) + sText = clipboardData.getData("Text") ; + else + sText = forceText ; + + if ( sText && sText.length > 0 ) + { + // Replace the carriage returns with
      + sText = FCKTools.HTMLEncode( sText ) ; + sText = FCKTools.ProcessLineBreaks( window, FCKConfig, sText ) ; + + var closeTagIndex = sText.search( '

      ' ) ; + var startTagIndex = sText.search( '

      ' ) ; + + if ( ( closeTagIndex != -1 && startTagIndex != -1 && closeTagIndex < startTagIndex ) + || ( closeTagIndex != -1 && startTagIndex == -1 ) ) + { + var prefix = sText.substr( 0, closeTagIndex ) ; + sText = sText.substr( closeTagIndex + 4 ) ; + this.InsertHtml( prefix ) ; + } + + // Insert the resulting data in the editor. + FCKUndo.SaveLocked = true ; + this.InsertHtml( sText ) ; + FCKUndo.SaveLocked = false ; + } +} + +FCK._CheckIsPastingEnabled = function( returnContents ) +{ + // The following seams to be the only reliable way to check is script + // pasting operations are enabled in the security 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.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.CreateLink = function( url, noUndo ) +{ + // Creates the array that will be returned. It contains one or more created links (see #220). + var aCreatedLinks = new Array() ; + + // Remove any existing link in the selection. + FCK.ExecuteNamedCommand( 'Unlink', null, false, !!noUndo ) ; + + if ( url.length > 0 ) + { + // If there are several images, and you try to link each one, all the images get inside the link: + // -> -> due to the call to 'CreateLink' (bug in IE) + if (FCKSelection.GetType() == 'Control') + { + // Create a link + var oLink = this.EditorDocument.createElement( 'A' ) ; + oLink.href = url ; + + // Get the selected object + var oControl = FCKSelection.GetSelectedElement() ; + // Put the link just before the object + oControl.parentNode.insertBefore(oLink, oControl) ; + // Move the object inside the link + oControl.parentNode.removeChild( oControl ) ; + oLink.appendChild( oControl ) ; + + return [ oLink ] ; + } + + // 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, false, !!noUndo ) ; + + // Look for the just create link. + var oLinks = this.EditorDocument.links ; + + for ( i = 0 ; i < oLinks.length ; i++ ) + { + var oLink = oLinks[i] ; + + // Check it this a newly created link. + // getAttribute must be used. oLink.url may cause problems with IE7 (#555). + if ( oLink.getAttribute( 'href', 2 ) == 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. + + // If the last child is a
      move it outside the link or it + // will be too easy to select this link again #388. + var oLastChild = oLink.lastChild ; + if ( oLastChild && oLastChild.nodeName == 'BR' ) + { + // Move the BR after the link. + FCKDomTools.InsertAfterNode( oLink, oLink.removeChild( oLastChild ) ) ; + } + + aCreatedLinks.push( oLink ) ; + } + } + } + + return aCreatedLinks ; +} + +function _FCK_RemoveDisabledAtt() +{ + this.removeAttribute( 'disabled' ) ; +} + +function Doc_OnMouseDown( evt ) +{ + var e = evt.srcElement ; + + // Radio buttons and checkboxes should not be allowed to be triggered in IE + // in editable mode. Otherwise the whole browser window may be locked by + // the buttons. (#1782) + if ( e.nodeName.IEquals( 'input' ) && e.type.IEquals( ['radio', 'checkbox'] ) && !e.disabled ) + { + e.disabled = true ; + FCKTools.SetTimeout( _FCK_RemoveDisabledAtt, 1, e ) ; + } +} diff --git a/fckeditor/editor/_source/internals/fckbrowserinfo.js b/fckeditor/editor/_source/internals/fckbrowserinfo.js new file mode 100644 index 0000000..d600ced --- /dev/null +++ b/fckeditor/editor/_source/internals/fckbrowserinfo.js @@ -0,0 +1,61 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Contains browser detection information. + */ + +var s = navigator.userAgent.toLowerCase() ; + +var FCKBrowserInfo = +{ + IsIE : /*@cc_on!@*/false, + IsIE7 : /*@cc_on!@*/false && ( parseInt( s.match( /msie (\d+)/ )[1], 10 ) >= 7 ), + IsIE6 : /*@cc_on!@*/false && ( parseInt( s.match( /msie (\d+)/ )[1], 10 ) >= 6 ), + IsSafari : s.Contains(' applewebkit/'), // Read "IsWebKit" + IsOpera : !!window.opera, + IsAIR : s.Contains(' adobeair/'), + IsMac : s.Contains('macintosh') +} ; + +// Completes the browser info with further Gecko information. +(function( browserInfo ) +{ + browserInfo.IsGecko = ( navigator.product == 'Gecko' ) && !browserInfo.IsSafari && !browserInfo.IsOpera ; + browserInfo.IsGeckoLike = ( browserInfo.IsGecko || browserInfo.IsSafari || browserInfo.IsOpera ) ; + + if ( browserInfo.IsGecko ) + { + var geckoMatch = s.match( /rv:(\d+\.\d+)/ ) ; + var geckoVersion = geckoMatch && parseFloat( geckoMatch[1] ) ; + + // Actually "10" refers to Gecko versions before Firefox 1.5, when + // Gecko 1.8 (build 20051111) has been released. + + // Some browser (like Mozilla 1.7.13) may have a Gecko build greater + // than 20051111, so we must also check for the revision number not to + // be 1.7 (we are assuming that rv < 1.7 will not have build > 20051111). + + if ( geckoVersion ) + { + browserInfo.IsGecko10 = ( geckoVersion < 1.8 ) ; + browserInfo.IsGecko19 = ( geckoVersion > 1.8 ) ; + } + } +})(FCKBrowserInfo) ; diff --git a/fckeditor/editor/_source/internals/fckcodeformatter.js b/fckeditor/editor/_source/internals/fckcodeformatter.js new file mode 100644 index 0000000..8a7f152 --- /dev/null +++ b/fckeditor/editor/_source/internals/fckcodeformatter.js @@ -0,0 +1,100 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Format the HTML. + */ + +var FCKCodeFormatter = new Object() ; + +FCKCodeFormatter.Init = function() +{ + var oRegex = this.Regex = new Object() ; + + // Regex for line breaks. + oRegex.BlocksOpener = /\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi ; + oRegex.BlocksCloser = /\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi ; + + oRegex.NewLineTags = /\<(BR|HR)[^\>]*\>/gi ; + + oRegex.MainTags = /\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi ; + + oRegex.LineSplitter = /\s*\n+\s*/g ; + + // Regex for indentation. + oRegex.IncreaseIndent = /^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i ; + oRegex.DecreaseIndent = /^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i ; + oRegex.FormatIndentatorRemove = new RegExp( '^' + FCKConfig.FormatIndentator ) ; + + oRegex.ProtectedTags = /(]*>)([\s\S]*?)(<\/PRE>)/gi ; +} + +FCKCodeFormatter._ProtectData = function( outer, opener, data, closer ) +{ + return opener + '___FCKpd___' + FCKCodeFormatter.ProtectedData.AddItem( data ) + closer ; +} + +FCKCodeFormatter.Format = function( html ) +{ + if ( !this.Regex ) + this.Init() ; + + // Protected content that remain untouched during the + // process go in the following array. + FCKCodeFormatter.ProtectedData = new Array() ; + + var sFormatted = html.replace( this.Regex.ProtectedTags, FCKCodeFormatter._ProtectData ) ; + + // Line breaks. + sFormatted = sFormatted.replace( this.Regex.BlocksOpener, '\n$&' ) ; + sFormatted = sFormatted.replace( this.Regex.BlocksCloser, '$&\n' ) ; + sFormatted = sFormatted.replace( this.Regex.NewLineTags, '$&\n' ) ; + sFormatted = sFormatted.replace( this.Regex.MainTags, '\n$&\n' ) ; + + // Indentation. + var sIndentation = '' ; + + var asLines = sFormatted.split( this.Regex.LineSplitter ) ; + sFormatted = '' ; + + for ( var i = 0 ; i < asLines.length ; i++ ) + { + var sLine = asLines[i] ; + + if ( sLine.length == 0 ) + continue ; + + if ( this.Regex.DecreaseIndent.test( sLine ) ) + sIndentation = sIndentation.replace( this.Regex.FormatIndentatorRemove, '' ) ; + + sFormatted += sIndentation + sLine + '\n' ; + + if ( this.Regex.IncreaseIndent.test( sLine ) ) + sIndentation += FCKConfig.FormatIndentator ; + } + + // Now we put back the protected data. + for ( var 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() ; +} diff --git a/fckeditor/editor/_source/internals/fckcommands.js b/fckeditor/editor/_source/internals/fckcommands.js new file mode 100644 index 0000000..aca2037 --- /dev/null +++ b/fckeditor/editor/_source/internals/fckcommands.js @@ -0,0 +1,172 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Define all commands available in the editor. + */ + +var FCKCommands = FCK.Commands = new Object() ; +FCKCommands.LoadedCommands = new Object() ; + +FCKCommands.RegisterCommand = function( commandName, command ) +{ + this.LoadedCommands[ commandName ] = command ; +} + +FCKCommands.GetCommand = function( commandName ) +{ + var oCommand = FCKCommands.LoadedCommands[ commandName ] ; + + if ( oCommand ) + return oCommand ; + + switch ( commandName ) + { + case 'Bold' : + case 'Italic' : + case 'Underline' : + case 'StrikeThrough': + case 'Subscript' : + case 'Superscript' : oCommand = new FCKCoreStyleCommand( commandName ) ; break ; + + case 'RemoveFormat' : oCommand = new FCKRemoveFormatCommand() ; break ; + + case 'DocProps' : oCommand = new FCKDialogCommand( 'DocProps' , FCKLang.DocProps , 'dialog/fck_docprops.html' , 400, 380, 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, 300 ) ; break ; + case 'Unlink' : oCommand = new FCKUnlinkCommand() ; break ; + case 'VisitLink' : oCommand = new FCKVisitLinkCommand() ; break ; + case 'Anchor' : oCommand = new FCKDialogCommand( 'Anchor' , FCKLang.DlgAnchorTitle , 'dialog/fck_anchor.html' , 370, 160 ) ; break ; + case 'AnchorDelete' : oCommand = new FCKAnchorDeleteCommand() ; break ; + case 'BulletedList' : oCommand = new FCKDialogCommand( 'BulletedList', FCKLang.BulletedListProp , 'dialog/fck_listprop.html?UL' , 370, 160 ) ; break ; + case 'NumberedList' : oCommand = new FCKDialogCommand( 'NumberedList', FCKLang.NumberedListProp , 'dialog/fck_listprop.html?OL' , 370, 160 ) ; break ; + case 'About' : oCommand = new FCKDialogCommand( 'About' , FCKLang.About , 'dialog/fck_about.html' , 420, 330, function(){ return FCK_TRISTATE_OFF ; } ) ; break ; + case 'Find' : oCommand = new FCKDialogCommand( 'Find' , FCKLang.DlgFindAndReplaceTitle, 'dialog/fck_replace.html' , 340, 230, null, null, 'Find' ) ; break ; + case 'Replace' : oCommand = new FCKDialogCommand( 'Replace' , FCKLang.DlgFindAndReplaceTitle, 'dialog/fck_replace.html' , 340, 230, null, null, 'Replace' ) ; break ; + + case 'Image' : oCommand = new FCKDialogCommand( 'Image' , FCKLang.DlgImgTitle , 'dialog/fck_image.html' , 450, 390 ) ; break ; + case 'Flash' : oCommand = new FCKDialogCommand( 'Flash' , FCKLang.DlgFlashTitle , 'dialog/fck_flash.html' , 450, 390 ) ; break ; + case 'SpecialChar' : oCommand = new FCKDialogCommand( 'SpecialChar', FCKLang.DlgSpecialCharTitle , 'dialog/fck_specialchar.html' , 400, 290 ) ; 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' , 480, 250 ) ; break ; + case 'TableProp' : oCommand = new FCKDialogCommand( 'Table' , FCKLang.DlgTableTitle , 'dialog/fck_table.html?Parent', 480, 250 ) ; break ; + case 'TableCellProp': oCommand = new FCKDialogCommand( 'TableCell' , FCKLang.DlgCellTitle , 'dialog/fck_tablecell.html' , 550, 240 ) ; break ; + + case 'Style' : oCommand = new FCKStyleCommand() ; break ; + + case 'FontName' : oCommand = new FCKFontNameCommand() ; break ; + case 'FontSize' : oCommand = new FCKFontSizeCommand() ; break ; + case 'FontFormat' : oCommand = new FCKFormatBlockCommand() ; break ; + + case 'Source' : oCommand = new FCKSourceCommand() ; break ; + case 'Preview' : oCommand = new FCKPreviewCommand() ; break ; + case 'Save' : oCommand = new FCKSaveCommand() ; break ; + case 'NewPage' : oCommand = new FCKNewPageCommand() ; break ; + case 'PageBreak' : oCommand = new FCKPageBreakCommand() ; break ; + case 'Rule' : oCommand = new FCKRuleCommand() ; break ; + case 'Nbsp' : oCommand = new FCKNbsp() ; break ; + + case 'TextColor' : oCommand = new FCKTextColorCommand('ForeColor') ; break ; + case 'BGColor' : oCommand = new FCKTextColorCommand('BackColor') ; break ; + + case 'Paste' : oCommand = new FCKPasteCommand() ; break ; + case 'PasteText' : oCommand = new FCKPastePlainTextCommand() ; break ; + case 'PasteWord' : oCommand = new FCKPasteWordCommand() ; break ; + + case 'JustifyLeft' : oCommand = new FCKJustifyCommand( 'left' ) ; break ; + case 'JustifyCenter' : oCommand = new FCKJustifyCommand( 'center' ) ; break ; + case 'JustifyRight' : oCommand = new FCKJustifyCommand( 'right' ) ; break ; + case 'JustifyFull' : oCommand = new FCKJustifyCommand( 'justify' ) ; break ; + case 'Indent' : oCommand = new FCKIndentCommand( 'indent', FCKConfig.IndentLength ) ; break ; + case 'Outdent' : oCommand = new FCKIndentCommand( 'outdent', FCKConfig.IndentLength * -1 ) ; break ; + case 'Blockquote' : oCommand = new FCKBlockQuoteCommand() ; break ; + case 'CreateDiv' : oCommand = new FCKDialogCommand( 'CreateDiv', FCKLang.CreateDiv, 'dialog/fck_div.html', 380, 210, null, null, true ) ; break ; + case 'EditDiv' : oCommand = new FCKDialogCommand( 'EditDiv', FCKLang.EditDiv, 'dialog/fck_div.html', 380, 210, null, null, false ) ; break ; + case 'DeleteDiv' : oCommand = new FCKDeleteDivCommand() ; break ; + + case 'TableInsertRowAfter' : oCommand = new FCKTableCommand('TableInsertRowAfter') ; break ; + case 'TableInsertRowBefore' : oCommand = new FCKTableCommand('TableInsertRowBefore') ; break ; + case 'TableDeleteRows' : oCommand = new FCKTableCommand('TableDeleteRows') ; break ; + case 'TableInsertColumnAfter' : oCommand = new FCKTableCommand('TableInsertColumnAfter') ; break ; + case 'TableInsertColumnBefore' : oCommand = new FCKTableCommand('TableInsertColumnBefore') ; break ; + case 'TableDeleteColumns' : oCommand = new FCKTableCommand('TableDeleteColumns') ; break ; + case 'TableInsertCellAfter' : oCommand = new FCKTableCommand('TableInsertCellAfter') ; break ; + case 'TableInsertCellBefore' : oCommand = new FCKTableCommand('TableInsertCellBefore') ; break ; + case 'TableDeleteCells' : oCommand = new FCKTableCommand('TableDeleteCells') ; break ; + case 'TableMergeCells' : oCommand = new FCKTableCommand('TableMergeCells') ; break ; + case 'TableMergeRight' : oCommand = new FCKTableCommand('TableMergeRight') ; break ; + case 'TableMergeDown' : oCommand = new FCKTableCommand('TableMergeDown') ; break ; + case 'TableHorizontalSplitCell' : oCommand = new FCKTableCommand('TableHorizontalSplitCell') ; break ; + case 'TableVerticalSplitCell' : oCommand = new FCKTableCommand('TableVerticalSplitCell') ; break ; + case 'TableDelete' : oCommand = new FCKTableCommand('TableDelete') ; break ; + + case 'Form' : oCommand = new FCKDialogCommand( 'Form' , FCKLang.Form , 'dialog/fck_form.html' , 380, 210 ) ; break ; + case 'Checkbox' : oCommand = new FCKDialogCommand( 'Checkbox' , FCKLang.Checkbox , 'dialog/fck_checkbox.html' , 380, 200 ) ; break ; + case 'Radio' : oCommand = new FCKDialogCommand( 'Radio' , FCKLang.RadioButton , 'dialog/fck_radiobutton.html' , 380, 200 ) ; break ; + case 'TextField' : oCommand = new FCKDialogCommand( 'TextField' , FCKLang.TextField , 'dialog/fck_textfield.html' , 380, 210 ) ; break ; + case 'Textarea' : oCommand = new FCKDialogCommand( 'Textarea' , FCKLang.Textarea , 'dialog/fck_textarea.html' , 380, 210 ) ; break ; + case 'HiddenField' : oCommand = new FCKDialogCommand( 'HiddenField', FCKLang.HiddenField , 'dialog/fck_hiddenfield.html' , 380, 190 ) ; break ; + case 'Button' : oCommand = new FCKDialogCommand( 'Button' , FCKLang.Button , 'dialog/fck_button.html' , 380, 210 ) ; break ; + case 'Select' : oCommand = new FCKDialogCommand( 'Select' , FCKLang.SelectionField, 'dialog/fck_select.html' , 400, 340 ) ; break ; + case 'ImageButton' : oCommand = new FCKDialogCommand( 'ImageButton', FCKLang.ImageButton , 'dialog/fck_image.html?ImageButton', 450, 390 ) ; 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 'Copy' : oCommand = new FCKCutCopyCommand( false ) ; break ; + case 'Cut' : oCommand = new FCKCutCopyCommand( true ) ; break ; + + case 'SelectAll' : oCommand = new FCKSelectAllCommand() ; break ; + case 'InsertOrderedList' : oCommand = new FCKListCommand( 'insertorderedlist', 'ol' ) ; break ; + case 'InsertUnorderedList' : oCommand = new FCKListCommand( 'insertunorderedlist', 'ul' ) ; break ; + case 'ShowBlocks' : oCommand = new FCKShowBlockCommand( 'ShowBlocks', FCKConfig.StartupShowBlocks ? FCK_TRISTATE_ON : FCK_TRISTATE_OFF ) ; break ; + + // Generic Undefined command (usually used when a command is under development). + case 'Undefined' : oCommand = new FCKUndefinedCommand() ; break ; + + // By default we assume that it is a named command. + default: + if ( FCKRegexLib.NamedCommands.test( commandName ) ) + oCommand = new FCKNamedCommand( commandName ) ; + else + { + alert( FCKLang.UnknownCommand.replace( /%1/g, commandName ) ) ; + return null ; + } + } + + FCKCommands.LoadedCommands[ commandName ] = oCommand ; + + return oCommand ; +} + +// Gets the state of the "Document Properties" button. It must be enabled only +// when "Full Page" editing is available. +FCKCommands.GetFullPageState = function() +{ + return FCKConfig.FullPage ? FCK_TRISTATE_OFF : FCK_TRISTATE_DISABLED ; +} + + +FCKCommands.GetBooleanState = function( isDisabled ) +{ + return isDisabled ? FCK_TRISTATE_DISABLED : FCK_TRISTATE_OFF ; +} diff --git a/fckeditor/editor/_source/internals/fckconfig.js b/fckeditor/editor/_source/internals/fckconfig.js new file mode 100644 index 0000000..adcbacb --- /dev/null +++ b/fckeditor/editor/_source/internals/fckconfig.js @@ -0,0 +1,237 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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 = decodeURIComponent( document.location.pathname.substr(1) ) ; + FCKConfig.BasePath = FCKConfig.BasePath.replace( /\\/gi, '/' ) ; + + // The way to address local files is different according to the OS. + // In Windows it is file:// but in MacOs it is file:/// so let's get it automatically + var sFullProtocol = document.location.href.match( /^(file\:\/{2,3})/ )[1] ; + // #945 Opera does strange things with files loaded from the disk, and it fails in Mac to load xml files + if ( FCKBrowserInfo.IsOpera ) + sFullProtocol += 'localhost/' ; + + FCKConfig.BasePath = sFullProtocol + FCKConfig.BasePath.substring( 0, FCKConfig.BasePath.lastIndexOf( '/' ) + 1) ; +} +else + FCKConfig.BasePath = document.location.protocol + '//' + document.location.host + + document.location.pathname.substring( 0, document.location.pathname.lastIndexOf( '/' ) + 1) ; + +FCKConfig.FullBasePath = FCKConfig.BasePath ; + +FCKConfig.EditorPath = FCKConfig.BasePath.replace( /editor\/$/, '' ) ; + +// There is a bug in Gecko. If the editor is hidden on startup, an error is +// thrown when trying to get the screen dimensions. +try +{ + FCKConfig.ScreenWidth = screen.width ; + FCKConfig.ScreenHeight = screen.height ; +} +catch (e) +{ + FCKConfig.ScreenWidth = 800 ; + FCKConfig.ScreenHeight = 600 ; +} + +// Override the actual configuration values with the values passed throw the +// hidden field "___Config". +FCKConfig.ProcessHiddenField = function() +{ + this.PageConfig = new Object() ; + + // Get the hidden field. + var oConfigField = window.parent.document.getElementById( FCK.Name + '___Config' ) ; + + // Do nothing if the config field was not defined. + if ( ! oConfigField ) return ; + + var aCouples = oConfigField.value.split('&') ; + + for ( var i = 0 ; i < aCouples.length ; i++ ) + { + if ( aCouples[i].length == 0 ) + continue ; + + var aConfig = aCouples[i].split( '=' ) ; + var sKey = 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 ( 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 ; + } +} + +function FCKConfig_LoadPageConfig() +{ + var oPageConfig = FCKConfig.PageConfig ; + for ( var sKey in oPageConfig ) + FCKConfig[ sKey ] = oPageConfig[ sKey ] ; +} + +function FCKConfig_PreProcess() +{ + var oConfig = FCKConfig ; + + // Force debug mode if fckdebug=true in the QueryString (main page). + if ( oConfig.AllowQueryStringDebug ) + { + 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 += '/' ; + + // If no ToolbarComboPreviewCSS, point it to EditorAreaCSS. + var sComboPreviewCSS = oConfig.ToolbarComboPreviewCSS ; + if ( !sComboPreviewCSS || sComboPreviewCSS.length == 0 ) + oConfig.ToolbarComboPreviewCSS = oConfig.EditorAreaCSS ; + + // Turn the attributes that will be removed in the RemoveFormat from a string to an array + oConfig.RemoveAttributesArray = (oConfig.RemoveAttributes || '').split( ',' ); + + if ( !FCKConfig.SkinEditorCSS || FCKConfig.SkinEditorCSS.length == 0 ) + FCKConfig.SkinEditorCSS = FCKConfig.SkinPath + 'fck_editor.css' ; + + if ( !FCKConfig.SkinDialogCSS || FCKConfig.SkinDialogCSS.length == 0 ) + FCKConfig.SkinDialogCSS = FCKConfig.SkinPath + 'fck_dialog.css' ; +} + +// Define toolbar sets collection. +FCKConfig.ToolbarSets = new Object() ; + +// Defines the plugins collection. +FCKConfig.Plugins = new Object() ; +FCKConfig.Plugins.Items = new Array() ; + +FCKConfig.Plugins.Add = function( name, langs, path ) +{ + FCKConfig.Plugins.Items.AddItem( [name, langs, path] ) ; +} + +// FCKConfig.ProtectedSource: object that holds a collection of Regular +// Expressions that defined parts of the raw HTML that must remain untouched +// like custom tags, scripts, server side code, etc... +FCKConfig.ProtectedSource = new Object() ; + +// Generates a string used to identify and locate the Protected Tags comments. +FCKConfig.ProtectedSource._CodeTag = (new Date()).valueOf() ; + +// 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). + //g , + + // Script tags will also be forced to be protected, otherwise IE will execute them. + //gi, + + //

      + + + + + Preview
      + + + + + + diff --git a/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html b/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html new file mode 100644 index 0000000..0ac5acc --- /dev/null +++ b/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html @@ -0,0 +1,113 @@ + + + + + Document Properties - Preview + + + + + + + + + + + + + + +
      + Normal Text +
      + Visited Link + + Active Link +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + + diff --git a/fckeditor/editor/dialog/fck_flash.html b/fckeditor/editor/dialog/fck_flash.html new file mode 100644 index 0000000..1569175 --- /dev/null +++ b/fckeditor/editor/dialog/fck_flash.html @@ -0,0 +1,152 @@ + + + + + Flash Properties + + + + + + + +
      + + + + + + + + + + +
      + + + + + + + + +
      URL +
      +
      +
      + + + + + + +
      + Width
      + +
        + Height
      + +
      +
      + + + + +
      + + + + + + + +
      Preview
      +
      +
      +
      + + + + diff --git a/fckeditor/editor/dialog/fck_flash/fck_flash.js b/fckeditor/editor/dialog/fck_flash/fck_flash.js new file mode 100644 index 0000000..993ba8c --- /dev/null +++ b/fckeditor/editor/dialog/fck_flash/fck_flash.js @@ -0,0 +1,300 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Scripts related to the Flash dialog window (see fck_flash.html). + */ + +var dialog = window.parent ; +var oEditor = dialog.InnerDialogLoaded() ; +var FCK = oEditor.FCK ; +var FCKLang = oEditor.FCKLang ; +var FCKConfig = oEditor.FCKConfig ; +var FCKTools = oEditor.FCKTools ; + +//#### Dialog Tabs + +// Set the dialog tabs. +dialog.AddTab( 'Info', oEditor.FCKLang.DlgInfoTab ) ; + +if ( FCKConfig.FlashUpload ) + dialog.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ; + +if ( !FCKConfig.FlashDlgHideAdvanced ) + dialog.AddTab( 'Advanced', oEditor.FCKLang.DlgAdvancedTag ) ; + +// Function called when a dialog tag is selected. +function OnDialogTabChange( tabCode ) +{ + ShowE('divInfo' , ( tabCode == 'Info' ) ) ; + ShowE('divUpload' , ( tabCode == 'Upload' ) ) ; + ShowE('divAdvanced' , ( tabCode == 'Advanced' ) ) ; +} + +// Get the selected flash embed (if available). +var oFakeImage = dialog.Selection.GetSelectedElement() ; +var oEmbed ; + +if ( oFakeImage ) +{ + if ( oFakeImage.tagName == 'IMG' && oFakeImage.getAttribute('_fckflash') ) + oEmbed = FCK.GetRealElement( oFakeImage ) ; + else + oFakeImage = null ; +} + +window.onload = function() +{ + // Translate the dialog box texts. + oEditor.FCKLanguageManager.TranslatePage(document) ; + + // Load the selected element information (if any). + LoadSelection() ; + + // Show/Hide the "Browse Server" button. + GetE('tdBrowse').style.display = FCKConfig.FlashBrowser ? '' : 'none' ; + + // Set the actual uploader URL. + if ( FCKConfig.FlashUpload ) + GetE('frmUpload').action = FCKConfig.FlashUploadURL ; + + dialog.SetAutoSize( true ) ; + + // Activate the "OK" button. + dialog.SetOkButton( true ) ; + + SelectField( 'txtUrl' ) ; +} + +function LoadSelection() +{ + if ( ! oEmbed ) return ; + + GetE('txtUrl').value = GetAttribute( oEmbed, 'src', '' ) ; + GetE('txtWidth').value = GetAttribute( oEmbed, 'width', '' ) ; + GetE('txtHeight').value = GetAttribute( oEmbed, 'height', '' ) ; + + // Get Advances Attributes + GetE('txtAttId').value = oEmbed.id ; + GetE('chkAutoPlay').checked = GetAttribute( oEmbed, 'play', 'true' ) == 'true' ; + GetE('chkLoop').checked = GetAttribute( oEmbed, 'loop', 'true' ) == 'true' ; + GetE('chkMenu').checked = GetAttribute( oEmbed, 'menu', 'true' ) == 'true' ; + GetE('cmbScale').value = GetAttribute( oEmbed, 'scale', '' ).toLowerCase() ; + + GetE('txtAttTitle').value = oEmbed.title ; + + if ( oEditor.FCKBrowserInfo.IsIE ) + { + GetE('txtAttClasses').value = oEmbed.getAttribute('className') || '' ; + GetE('txtAttStyle').value = oEmbed.style.cssText ; + } + else + { + GetE('txtAttClasses').value = oEmbed.getAttribute('class',2) || '' ; + GetE('txtAttStyle').value = oEmbed.getAttribute('style',2) || '' ; + } + + UpdatePreview() ; +} + +//#### The OK button was hit. +function Ok() +{ + if ( GetE('txtUrl').value.length == 0 ) + { + dialog.SetSelectedTab( 'Info' ) ; + GetE('txtUrl').focus() ; + + alert( oEditor.FCKLang.DlgAlertUrl ) ; + + return false ; + } + + oEditor.FCKUndo.SaveUndoStep() ; + if ( !oEmbed ) + { + oEmbed = FCK.EditorDocument.createElement( 'EMBED' ) ; + oFakeImage = null ; + } + UpdateEmbed( oEmbed ) ; + + if ( !oFakeImage ) + { + oFakeImage = oEditor.FCKDocumentProcessor_CreateFakeImage( 'FCK__Flash', oEmbed ) ; + oFakeImage.setAttribute( '_fckflash', 'true', 0 ) ; + oFakeImage = FCK.InsertElement( oFakeImage ) ; + } + + oEditor.FCKEmbedAndObjectProcessor.RefreshView( oFakeImage, oEmbed ) ; + + return true ; +} + +function UpdateEmbed( e ) +{ + SetAttribute( e, 'type' , 'application/x-shockwave-flash' ) ; + SetAttribute( e, 'pluginspage' , 'http://www.macromedia.com/go/getflashplayer' ) ; + + SetAttribute( e, 'src', GetE('txtUrl').value ) ; + SetAttribute( e, "width" , GetE('txtWidth').value ) ; + SetAttribute( e, "height", GetE('txtHeight').value ) ; + + // Advances Attributes + + SetAttribute( e, 'id' , GetE('txtAttId').value ) ; + SetAttribute( e, 'scale', GetE('cmbScale').value ) ; + + SetAttribute( e, 'play', GetE('chkAutoPlay').checked ? 'true' : 'false' ) ; + SetAttribute( e, 'loop', GetE('chkLoop').checked ? 'true' : 'false' ) ; + SetAttribute( e, 'menu', GetE('chkMenu').checked ? 'true' : 'false' ) ; + + SetAttribute( e, 'title' , GetE('txtAttTitle').value ) ; + + if ( oEditor.FCKBrowserInfo.IsIE ) + { + SetAttribute( e, 'className', GetE('txtAttClasses').value ) ; + e.style.cssText = GetE('txtAttStyle').value ; + } + else + { + SetAttribute( e, 'class', GetE('txtAttClasses').value ) ; + SetAttribute( e, 'style', GetE('txtAttStyle').value ) ; + } +} + +var ePreview ; + +function SetPreviewElement( previewEl ) +{ + ePreview = previewEl ; + + if ( GetE('txtUrl').value.length > 0 ) + UpdatePreview() ; +} + +function UpdatePreview() +{ + if ( !ePreview ) + return ; + + while ( ePreview.firstChild ) + ePreview.removeChild( ePreview.firstChild ) ; + + if ( GetE('txtUrl').value.length == 0 ) + ePreview.innerHTML = ' ' ; + else + { + var oDoc = ePreview.ownerDocument || ePreview.document ; + var e = oDoc.createElement( 'EMBED' ) ; + + SetAttribute( e, 'src', GetE('txtUrl').value ) ; + SetAttribute( e, 'type', 'application/x-shockwave-flash' ) ; + SetAttribute( e, 'width', '100%' ) ; + SetAttribute( e, 'height', '100%' ) ; + + ePreview.appendChild( e ) ; + } +} + +// + +function BrowseServer() +{ + OpenFileBrowser( FCKConfig.FlashBrowserURL, FCKConfig.FlashBrowserWindowWidth, FCKConfig.FlashBrowserWindowHeight ) ; +} + +function SetUrl( url, width, height ) +{ + GetE('txtUrl').value = url ; + + if ( width ) + GetE('txtWidth').value = width ; + + if ( height ) + GetE('txtHeight').value = height ; + + UpdatePreview() ; + + dialog.SetSelectedTab( 'Info' ) ; +} + +function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg ) +{ + // Remove animation + window.parent.Throbber.Hide() ; + GetE( 'divUpload' ).style.display = '' ; + + switch ( errorNumber ) + { + case 0 : // No errors + alert( 'Your file has been successfully uploaded' ) ; + break ; + case 1 : // Custom error + alert( customMsg ) ; + return ; + case 101 : // Custom warning + alert( customMsg ) ; + break ; + case 201 : + alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ; + break ; + case 202 : + alert( 'Invalid file type' ) ; + return ; + case 203 : + alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ; + return ; + case 500 : + alert( 'The connector is disabled' ) ; + break ; + default : + alert( 'Error on file upload. Error number: ' + errorNumber ) ; + return ; + } + + SetUrl( fileUrl ) ; + GetE('frmUpload').reset() ; +} + +var oUploadAllowedExtRegex = new RegExp( FCKConfig.FlashUploadAllowedExtensions, 'i' ) ; +var oUploadDeniedExtRegex = new RegExp( FCKConfig.FlashUploadDeniedExtensions, 'i' ) ; + +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 ; + } + + // Show animation + window.parent.Throbber.Show( 100 ) ; + GetE( 'divUpload' ).style.display = 'none' ; + + return true ; +} diff --git a/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html b/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html new file mode 100644 index 0000000..4817c1d --- /dev/null +++ b/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html @@ -0,0 +1,50 @@ + + + + + + + + + + + + diff --git a/fckeditor/editor/dialog/fck_form.html b/fckeditor/editor/dialog/fck_form.html new file mode 100644 index 0000000..71edf49 --- /dev/null +++ b/fckeditor/editor/dialog/fck_form.html @@ -0,0 +1,109 @@ + + + + + + + + + + + + + + + +
      + + + + + + + + + + +
      + Name
      + +
      + Action
      + +
      + Method
      + +
      +
      + + diff --git a/fckeditor/editor/dialog/fck_hiddenfield.html b/fckeditor/editor/dialog/fck_hiddenfield.html new file mode 100644 index 0000000..3ee162f --- /dev/null +++ b/fckeditor/editor/dialog/fck_hiddenfield.html @@ -0,0 +1,115 @@ + + + + + Hidden Field Properties + + + + + + + + + + +
      + + + + + + + +
      + Name
      + +
      + Value
      + +
      +
      + + diff --git a/fckeditor/editor/dialog/fck_image.html b/fckeditor/editor/dialog/fck_image.html new file mode 100644 index 0000000..5ce5ecb --- /dev/null +++ b/fckeditor/editor/dialog/fck_image.html @@ -0,0 +1,258 @@ + + + + + Image Properties + + + + + + + +
      + + + + + + + + + + +
      + + + + + + + + +
      + URL +
      + +
      +
      + Short Description
      +
      +
      + + + + + + +
      +
      + + + + + + + + + + + +
      + Width  + +
      +
      +
      +
      +
      +
      + Height  +
      +
      + + + + + + + + + + + + + + + + + +
      + Border  +
      + HSpace  +
      + VSpace  +
      + Align  + +
      +
      +     + + + + + + + +
      + Preview
      + +
      +
      +
      +
      + + + + + diff --git a/fckeditor/editor/dialog/fck_image/fck_image.js b/fckeditor/editor/dialog/fck_image/fck_image.js new file mode 100644 index 0000000..7498e07 --- /dev/null +++ b/fckeditor/editor/dialog/fck_image/fck_image.js @@ -0,0 +1,512 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Scripts related to the Image dialog window (see fck_image.html). + */ + +var dialog = window.parent ; +var oEditor = dialog.InnerDialogLoaded() ; +var FCK = oEditor.FCK ; +var FCKLang = oEditor.FCKLang ; +var FCKConfig = oEditor.FCKConfig ; +var FCKDebug = oEditor.FCKDebug ; +var FCKTools = oEditor.FCKTools ; + +var bImageButton = ( document.location.search.length > 0 && document.location.search.substr(1) == 'ImageButton' ) ; + +//#### Dialog Tabs + +// Set the dialog tabs. +dialog.AddTab( 'Info', FCKLang.DlgImgInfoTab ) ; + +if ( !bImageButton && !FCKConfig.ImageDlgHideLink ) + dialog.AddTab( 'Link', FCKLang.DlgImgLinkTab ) ; + +if ( FCKConfig.ImageUpload ) + dialog.AddTab( 'Upload', FCKLang.DlgLnkUpload ) ; + +if ( !FCKConfig.ImageDlgHideAdvanced ) + dialog.AddTab( 'Advanced', FCKLang.DlgAdvancedTag ) ; + +// Function called when a dialog tag is selected. +function OnDialogTabChange( tabCode ) +{ + ShowE('divInfo' , ( tabCode == 'Info' ) ) ; + ShowE('divLink' , ( tabCode == 'Link' ) ) ; + ShowE('divUpload' , ( tabCode == 'Upload' ) ) ; + ShowE('divAdvanced' , ( tabCode == 'Advanced' ) ) ; +} + +// Get the selected image (if available). +var oImage = dialog.Selection.GetSelectedElement() ; + +if ( oImage && oImage.tagName != 'IMG' && !( oImage.tagName == 'INPUT' && oImage.type == 'image' ) ) + oImage = null ; + +// Get the active link. +var oLink = dialog.Selection.GetSelection().MoveToAncestorNode( 'A' ) ; + +var oImageOriginal ; + +function UpdateOriginal( resetSize ) +{ + if ( !eImgPreview ) + return ; + + if ( GetE('txtUrl').value.length == 0 ) + { + oImageOriginal = null ; + return ; + } + + oImageOriginal = document.createElement( 'IMG' ) ; // new Image() ; + + if ( resetSize ) + { + oImageOriginal.onload = function() + { + this.onload = null ; + ResetSizes() ; + } + } + + oImageOriginal.src = eImgPreview.src ; +} + +var bPreviewInitialized ; + +window.onload = function() +{ + // Translate the dialog box texts. + oEditor.FCKLanguageManager.TranslatePage(document) ; + + GetE('btnLockSizes').title = FCKLang.DlgImgLockRatio ; + GetE('btnResetSize').title = FCKLang.DlgBtnResetSize ; + + // Load the selected element information (if any). + LoadSelection() ; + + // Show/Hide the "Browse Server" button. + GetE('tdBrowse').style.display = FCKConfig.ImageBrowser ? '' : 'none' ; + GetE('divLnkBrowseServer').style.display = FCKConfig.LinkBrowser ? '' : 'none' ; + + UpdateOriginal() ; + + // Set the actual uploader URL. + if ( FCKConfig.ImageUpload ) + GetE('frmUpload').action = FCKConfig.ImageUploadURL ; + + dialog.SetAutoSize( true ) ; + + // Activate the "OK" button. + dialog.SetOkButton( true ) ; + + SelectField( 'txtUrl' ) ; +} + +function LoadSelection() +{ + if ( ! oImage ) return ; + + var sUrl = oImage.getAttribute( '_fcksavedurl' ) ; + if ( sUrl == null ) + sUrl = GetAttribute( oImage, 'src', '' ) ; + + GetE('txtUrl').value = sUrl ; + GetE('txtAlt').value = GetAttribute( oImage, 'alt', '' ) ; + GetE('txtVSpace').value = GetAttribute( oImage, 'vspace', '' ) ; + GetE('txtHSpace').value = GetAttribute( oImage, 'hspace', '' ) ; + GetE('txtBorder').value = GetAttribute( oImage, 'border', '' ) ; + GetE('cmbAlign').value = GetAttribute( oImage, 'align', '' ) ; + + var iWidth, iHeight ; + + 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 = '' ; + SetAttribute( oImage, 'width' , iWidth ) ; + } + } + + if ( oImage.style.height ) + { + var aMatchH = oImage.style.height.match( regexSize ) ; + if ( aMatchH ) + { + iHeight = aMatchH[1] ; + oImage.style.height = '' ; + SetAttribute( oImage, 'height', iHeight ) ; + } + } + + 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('txtLongDesc').value = oImage.longDesc ; + + if ( oEditor.FCKBrowserInfo.IsIE ) + { + GetE('txtAttClasses').value = oImage.className || '' ; + GetE('txtAttStyle').value = oImage.style.cssText ; + } + else + { + GetE('txtAttClasses').value = oImage.getAttribute('class',2) || '' ; + GetE('txtAttStyle').value = oImage.getAttribute('style',2) ; + } + + if ( oLink ) + { + var sLinkUrl = oLink.getAttribute( '_fcksavedurl' ) ; + if ( sLinkUrl == null ) + sLinkUrl = oLink.getAttribute('href',2) ; + + GetE('txtLnkUrl').value = sLinkUrl ; + GetE('cmbLnkTarget').value = oLink.target ; + } + + UpdatePreview() ; +} + +//#### The OK button was hit. +function Ok() +{ + if ( GetE('txtUrl').value.length == 0 ) + { + dialog.SetSelectedTab( 'Info' ) ; + GetE('txtUrl').focus() ; + + alert( FCKLang.DlgImgAlertUrl ) ; + + return false ; + } + + var bHasImage = ( oImage != null ) ; + + if ( bHasImage && bImageButton && oImage.tagName == 'IMG' ) + { + if ( confirm( 'Do you want to transform the selected image on a image button?' ) ) + oImage = null ; + } + else if ( bHasImage && !bImageButton && oImage.tagName == 'INPUT' ) + { + if ( confirm( 'Do you want to transform the selected image button on a simple image?' ) ) + oImage = null ; + } + + oEditor.FCKUndo.SaveUndoStep() ; + if ( !bHasImage ) + { + if ( bImageButton ) + { + oImage = FCK.EditorDocument.createElement( 'input' ) ; + oImage.type = 'image' ; + oImage = FCK.InsertElement( oImage ) ; + } + else + oImage = FCK.InsertElement( 'img' ) ; + } + + UpdateImage( oImage ) ; + + var sLnkUrl = GetE('txtLnkUrl').value.Trim() ; + + if ( sLnkUrl.length == 0 ) + { + if ( oLink ) + FCK.ExecuteNamedCommand( 'Unlink' ) ; + } + else + { + if ( oLink ) // Modifying an existent link. + oLink.href = sLnkUrl ; + else // Creating a new link. + { + if ( !bHasImage ) + oEditor.FCKSelection.SelectNode( oImage ) ; + + oLink = oEditor.FCK.CreateLink( sLnkUrl )[0] ; + + if ( !bHasImage ) + { + oEditor.FCKSelection.SelectNode( oLink ) ; + oEditor.FCKSelection.Collapse( false ) ; + } + } + + SetAttribute( oLink, '_fcksavedurl', sLnkUrl ) ; + SetAttribute( oLink, 'target', GetE('cmbLnkTarget').value ) ; + } + + return true ; +} + +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 ) ; + SetAttribute( e, "vspace", GetE('txtVSpace').value ) ; + SetAttribute( e, "hspace", GetE('txtHSpace').value ) ; + SetAttribute( e, "border", GetE('txtBorder').value ) ; + SetAttribute( e, "align" , GetE('cmbAlign').value ) ; + + // Advances Attributes + + if ( ! skipId ) + SetAttribute( e, 'id', GetE('txtAttId').value ) ; + + SetAttribute( e, 'dir' , GetE('cmbAttLangDir').value ) ; + SetAttribute( e, 'lang' , GetE('txtAttLangCode').value ) ; + SetAttribute( e, 'title' , GetE('txtAttTitle').value ) ; + SetAttribute( e, 'longDesc' , GetE('txtLongDesc').value ) ; + + if ( oEditor.FCKBrowserInfo.IsIE ) + { + e.className = GetE('txtAttClasses').value ; + e.style.cssText = GetE('txtAttStyle').value ; + } + else + { + SetAttribute( e, 'class' , GetE('txtAttClasses').value ) ; + SetAttribute( e, 'style', GetE('txtAttStyle').value ) ; + } +} + +var eImgPreview ; +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 ) + eImgPreviewLink.style.display = 'none' ; + else + { + UpdateImage( eImgPreview, true ) ; + + if ( GetE('txtLnkUrl').value.Trim().length > 0 ) + eImgPreviewLink.href = 'javascript:void(null);' ; + else + SetAttribute( eImgPreviewLink, 'href', '' ) ; + + eImgPreviewLink.style.display = '' ; + } +} + +var bLockRatio = true ; + +function SwitchLock( lockButton ) +{ + bLockRatio = !bLockRatio ; + lockButton.className = bLockRatio ? 'BtnLocked' : 'BtnUnlocked' ; + lockButton.title = bLockRatio ? 'Lock sizes' : 'Unlock sizes' ; + + if ( bLockRatio ) + { + if ( GetE('txtWidth').value.length > 0 ) + OnSizeChanged( 'Width', GetE('txtWidth').value ) ; + else + OnSizeChanged( 'Height', GetE('txtHeight').value ) ; + } +} + +// Fired when the width or height input texts change +function OnSizeChanged( dimension, value ) +{ + // Verifies if the aspect ration has to be maintained + if ( oImageOriginal && bLockRatio ) + { + var e = dimension == 'Width' ? GetE('txtHeight') : GetE('txtWidth') ; + + if ( value.length == 0 || isNaN( value ) ) + { + e.value = '' ; + return ; + } + + if ( dimension == 'Width' ) + value = value == 0 ? 0 : Math.round( oImageOriginal.height * ( value / oImageOriginal.width ) ) ; + else + value = value == 0 ? 0 : Math.round( oImageOriginal.width * ( value / oImageOriginal.height ) ) ; + + if ( !isNaN( value ) ) + e.value = value ; + } + + UpdatePreview() ; +} + +// Fired when the Reset Size button is clicked +function ResetSizes() +{ + if ( ! oImageOriginal ) return ; + if ( oEditor.FCKBrowserInfo.IsGecko && !oImageOriginal.complete ) + { + setTimeout( ResetSizes, 50 ) ; + return ; + } + + GetE('txtWidth').value = oImageOriginal.width ; + GetE('txtHeight').value = oImageOriginal.height ; + + UpdatePreview() ; +} + +function BrowseServer() +{ + OpenServerBrowser( + 'Image', + FCKConfig.ImageBrowserURL, + FCKConfig.ImageBrowserWindowWidth, + FCKConfig.ImageBrowserWindowHeight ) ; +} + +function LnkBrowseServer() +{ + OpenServerBrowser( + 'Link', + FCKConfig.LinkBrowserURL, + FCKConfig.LinkBrowserWindowWidth, + FCKConfig.LinkBrowserWindowHeight ) ; +} + +function OpenServerBrowser( type, url, width, height ) +{ + sActualBrowser = type ; + OpenFileBrowser( url, width, height ) ; +} + +var sActualBrowser ; + +function SetUrl( url, width, height, alt ) +{ + if ( sActualBrowser == 'Link' ) + { + GetE('txtLnkUrl').value = url ; + UpdatePreview() ; + } + else + { + GetE('txtUrl').value = url ; + GetE('txtWidth').value = width ? width : '' ; + GetE('txtHeight').value = height ? height : '' ; + + if ( alt ) + GetE('txtAlt').value = alt; + + UpdatePreview() ; + UpdateOriginal( true ) ; + } + + dialog.SetSelectedTab( 'Info' ) ; +} + +function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg ) +{ + // Remove animation + window.parent.Throbber.Hide() ; + GetE( 'divUpload' ).style.display = '' ; + + switch ( errorNumber ) + { + case 0 : // No errors + alert( 'Your file has been successfully uploaded' ) ; + break ; + case 1 : // Custom error + alert( customMsg ) ; + return ; + case 101 : // Custom warning + alert( customMsg ) ; + break ; + case 201 : + alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ; + break ; + case 202 : + alert( 'Invalid file type' ) ; + return ; + case 203 : + alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ; + return ; + case 500 : + alert( 'The connector is disabled' ) ; + break ; + default : + alert( 'Error on file upload. Error number: ' + errorNumber ) ; + return ; + } + + sActualBrowser = '' ; + SetUrl( fileUrl ) ; + GetE('frmUpload').reset() ; +} + +var oUploadAllowedExtRegex = new RegExp( FCKConfig.ImageUploadAllowedExtensions, 'i' ) ; +var oUploadDeniedExtRegex = new RegExp( FCKConfig.ImageUploadDeniedExtensions, 'i' ) ; + +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 ; + } + + // Show animation + window.parent.Throbber.Show( 100 ) ; + GetE( 'divUpload' ).style.display = 'none' ; + + return true ; +} diff --git a/fckeditor/editor/dialog/fck_image/fck_image_preview.html b/fckeditor/editor/dialog/fck_image/fck_image_preview.html new file mode 100644 index 0000000..81f44e8 --- /dev/null +++ b/fckeditor/editor/dialog/fck_image/fck_image_preview.html @@ -0,0 +1,72 @@ + + + + + + + + + + + +
      + + 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. +
      + + diff --git a/fckeditor/editor/dialog/fck_link.html b/fckeditor/editor/dialog/fck_link.html new file mode 100644 index 0000000..6d69e6e --- /dev/null +++ b/fckeditor/editor/dialog/fck_link.html @@ -0,0 +1,295 @@ + + + + + Link Properties + + + + + + + + + + + + diff --git a/fckeditor/editor/dialog/fck_link/fck_link.js b/fckeditor/editor/dialog/fck_link/fck_link.js new file mode 100644 index 0000000..817b3e1 --- /dev/null +++ b/fckeditor/editor/dialog/fck_link/fck_link.js @@ -0,0 +1,893 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Scripts related to the Link dialog window (see fck_link.html). + */ + +var dialog = window.parent ; +var oEditor = dialog.InnerDialogLoaded() ; + +var FCK = oEditor.FCK ; +var FCKLang = oEditor.FCKLang ; +var FCKConfig = oEditor.FCKConfig ; +var FCKRegexLib = oEditor.FCKRegexLib ; +var FCKTools = oEditor.FCKTools ; + +//#### Dialog Tabs + +// Set the dialog tabs. +dialog.AddTab( 'Info', FCKLang.DlgLnkInfoTab ) ; + +if ( !FCKConfig.LinkDlgHideTarget ) + dialog.AddTab( 'Target', FCKLang.DlgLnkTargetTab, true ) ; + +if ( FCKConfig.LinkUpload ) + dialog.AddTab( 'Upload', FCKLang.DlgLnkUpload, true ) ; + +if ( !FCKConfig.LinkDlgHideAdvanced ) + dialog.AddTab( 'Advanced', FCKLang.DlgAdvancedTag ) ; + +// Function called when a dialog tag is selected. +function OnDialogTabChange( tabCode ) +{ + ShowE('divInfo' , ( tabCode == 'Info' ) ) ; + ShowE('divTarget' , ( tabCode == 'Target' ) ) ; + ShowE('divUpload' , ( tabCode == 'Upload' ) ) ; + ShowE('divAttribs' , ( tabCode == 'Advanced' ) ) ; + + dialog.SetAutoSize( true ) ; +} + +//#### Regular Expressions library. +var oRegex = new Object() ; + +oRegex.UriProtocol = /^(((http|https|ftp|news):\/\/)|mailto:)/gi ; + +oRegex.UrlOnChangeProtocol = /^(http|https|ftp|news):\/\/(?=.)/gi ; + +oRegex.UrlOnChangeTestOther = /^((javascript:)|[#\/\.])/gi ; + +oRegex.ReserveTarget = /^_(blank|self|top|parent)$/i ; + +oRegex.PopupUri = /^javascript:void\(\s*window.open\(\s*'([^']+)'\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*\)\s*$/ ; + +// Accessible popups +oRegex.OnClickPopup = /^\s*on[cC]lick="\s*window.open\(\s*this\.href\s*,\s*(?:'([^']*)'|null)\s*,\s*'([^']*)'\s*\)\s*;\s*return\s*false;*\s*"$/ ; + +oRegex.PopupFeatures = /(?:^|,)([^=]+)=(\d+|yes|no)/gi ; + +//#### Parser Functions + +var oParser = new Object() ; + +// This method simply returns the two inputs in numerical order. You can even +// provide strings, as the method would parseInt() the values. +oParser.SortNumerical = function(a, b) +{ + return parseInt( a, 10 ) - parseInt( b, 10 ) ; +} + +oParser.ParseEMailParams = function(sParams) +{ + // Initialize the oEMailParams object. + var oEMailParams = new Object() ; + oEMailParams.Subject = '' ; + oEMailParams.Body = '' ; + + var aMatch = sParams.match( /(^|^\?|&)subject=([^&]+)/i ) ; + if ( aMatch ) oEMailParams.Subject = decodeURIComponent( aMatch[2] ) ; + + aMatch = sParams.match( /(^|^\?|&)body=([^&]+)/i ) ; + if ( aMatch ) oEMailParams.Body = decodeURIComponent( aMatch[2] ) ; + + return oEMailParams ; +} + +// This method returns either an object containing the email info, or FALSE +// if the parameter is not an email link. +oParser.ParseEMailUri = function( sUrl ) +{ + // Initializes the EMailInfo object. + var oEMailInfo = new Object() ; + oEMailInfo.Address = '' ; + oEMailInfo.Subject = '' ; + oEMailInfo.Body = '' ; + + var aLinkInfo = sUrl.match( /^(\w+):(.*)$/ ) ; + if ( aLinkInfo && aLinkInfo[1] == 'mailto' ) + { + // This seems to be an unprotected email link. + var aParts = aLinkInfo[2].match( /^([^\?]+)\??(.+)?/ ) ; + if ( aParts ) + { + // Set the e-mail address. + oEMailInfo.Address = aParts[1] ; + + // Look for the optional e-mail parameters. + if ( aParts[2] ) + { + var oEMailParams = oParser.ParseEMailParams( aParts[2] ) ; + oEMailInfo.Subject = oEMailParams.Subject ; + oEMailInfo.Body = oEMailParams.Body ; + } + } + return oEMailInfo ; + } + else if ( aLinkInfo && aLinkInfo[1] == 'javascript' ) + { + // This may be a protected email. + + // Try to match the url against the EMailProtectionFunction. + var func = FCKConfig.EMailProtectionFunction ; + if ( func != null ) + { + try + { + // Escape special chars. + func = func.replace( /([\/^$*+.?()\[\]])/g, '\\$1' ) ; + + // Define the possible keys. + var keys = new Array('NAME', 'DOMAIN', 'SUBJECT', 'BODY') ; + + // Get the order of the keys (hold them in the array ) and + // the function replaced by regular expression patterns. + var sFunc = func ; + var pos = new Array() ; + for ( var i = 0 ; i < keys.length ; i ++ ) + { + var rexp = new RegExp( keys[i] ) ; + var p = func.search( rexp ) ; + if ( p >= 0 ) + { + sFunc = sFunc.replace( rexp, '\'([^\']*)\'' ) ; + pos[pos.length] = p + ':' + keys[i] ; + } + } + + // Sort the available keys. + pos.sort( oParser.SortNumerical ) ; + + // Replace the excaped single quotes in the url, such they do + // not affect the regexp afterwards. + aLinkInfo[2] = aLinkInfo[2].replace( /\\'/g, '###SINGLE_QUOTE###' ) ; + + // Create the regexp and execute it. + var rFunc = new RegExp( '^' + sFunc + '$' ) ; + var aMatch = rFunc.exec( aLinkInfo[2] ) ; + if ( aMatch ) + { + var aInfo = new Array(); + for ( var i = 1 ; i < aMatch.length ; i ++ ) + { + var k = pos[i-1].match(/^\d+:(.+)$/) ; + aInfo[k[1]] = aMatch[i].replace(/###SINGLE_QUOTE###/g, '\'') ; + } + + // Fill the EMailInfo object that will be returned + oEMailInfo.Address = aInfo['NAME'] + '@' + aInfo['DOMAIN'] ; + oEMailInfo.Subject = decodeURIComponent( aInfo['SUBJECT'] ) ; + oEMailInfo.Body = decodeURIComponent( aInfo['BODY'] ) ; + + return oEMailInfo ; + } + } + catch (e) + { + } + } + + // Try to match the email against the encode protection. + var aMatch = aLinkInfo[2].match( /^location\.href='mailto:'\+(String\.fromCharCode\([\d,]+\))\+'(.*)'$/ ) ; + if ( aMatch ) + { + // The link is encoded + oEMailInfo.Address = eval( aMatch[1] ) ; + if ( aMatch[2] ) + { + var oEMailParams = oParser.ParseEMailParams( aMatch[2] ) ; + oEMailInfo.Subject = oEMailParams.Subject ; + oEMailInfo.Body = oEMailParams.Body ; + } + return oEMailInfo ; + } + } + return false; +} + +oParser.CreateEMailUri = function( address, subject, body ) +{ + // Switch for the EMailProtection setting. + switch ( FCKConfig.EMailProtection ) + { + case 'function' : + var func = FCKConfig.EMailProtectionFunction ; + if ( func == null ) + { + if ( FCKConfig.Debug ) + { + alert('EMailProtection alert!\nNo function defined. Please set "FCKConfig.EMailProtectionFunction"') ; + } + return ''; + } + + // Split the email address into name and domain parts. + var aAddressParts = address.split( '@', 2 ) ; + if ( aAddressParts[1] == undefined ) + { + aAddressParts[1] = '' ; + } + + // Replace the keys by their values (embedded in single quotes). + func = func.replace(/NAME/g, "'" + aAddressParts[0].replace(/'/g, '\\\'') + "'") ; + func = func.replace(/DOMAIN/g, "'" + aAddressParts[1].replace(/'/g, '\\\'') + "'") ; + func = func.replace(/SUBJECT/g, "'" + encodeURIComponent( subject ).replace(/'/g, '\\\'') + "'") ; + func = func.replace(/BODY/g, "'" + encodeURIComponent( body ).replace(/'/g, '\\\'') + "'") ; + + return 'javascript:' + func ; + + case 'encode' : + var aParams = [] ; + var aAddressCode = [] ; + + if ( subject.length > 0 ) + aParams.push( 'subject='+ encodeURIComponent( subject ) ) ; + if ( body.length > 0 ) + aParams.push( 'body=' + encodeURIComponent( body ) ) ; + for ( var i = 0 ; i < address.length ; i++ ) + aAddressCode.push( address.charCodeAt( i ) ) ; + + return 'javascript:location.href=\'mailto:\'+String.fromCharCode(' + aAddressCode.join( ',' ) + ')+\'?' + aParams.join( '&' ) + '\'' ; + } + + // EMailProtection 'none' + + var sBaseUri = 'mailto:' + address ; + + var sParams = '' ; + + if ( subject.length > 0 ) + sParams = '?subject=' + encodeURIComponent( subject ) ; + + if ( body.length > 0 ) + { + sParams += ( sParams.length == 0 ? '?' : '&' ) ; + sParams += 'body=' + encodeURIComponent( body ) ; + } + + return sBaseUri + sParams ; +} + +//#### Initialization Code + +// oLink: The actual selected link in the editor. +var oLink = dialog.Selection.GetSelection().MoveToAncestorNode( 'A' ) ; +if ( oLink ) + FCK.Selection.SelectNode( oLink ) ; + +window.onload = function() +{ + // Translate the dialog box texts. + oEditor.FCKLanguageManager.TranslatePage(document) ; + + // Fill the Anchor Names and Ids combos. + LoadAnchorNamesAndIds() ; + + // Load the selected link information (if any). + LoadSelection() ; + + // Update the dialog box. + SetLinkType( GetE('cmbLinkType').value ) ; + + // Show/Hide the "Browse Server" button. + GetE('divBrowseServer').style.display = FCKConfig.LinkBrowser ? '' : 'none' ; + + // Show the initial dialog content. + GetE('divInfo').style.display = '' ; + + // Set the actual uploader URL. + if ( FCKConfig.LinkUpload ) + GetE('frmUpload').action = FCKConfig.LinkUploadURL ; + + // Set the default target (from configuration). + SetDefaultTarget() ; + + // Activate the "OK" button. + dialog.SetOkButton( true ) ; + + // Select the first field. + switch( GetE('cmbLinkType').value ) + { + case 'url' : + SelectField( 'txtUrl' ) ; + break ; + case 'email' : + SelectField( 'txtEMailAddress' ) ; + break ; + case 'anchor' : + if ( GetE('divSelAnchor').style.display != 'none' ) + SelectField( 'cmbAnchorName' ) ; + else + SelectField( 'cmbLinkType' ) ; + } +} + +var bHasAnchors ; + +function LoadAnchorNamesAndIds() +{ + // 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( 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 = FCKTools.GetAllChildrenIds( oEditor.FCK.EditorDocument.body ) ; + + bHasAnchors = ( aAnchors.length > 0 || aIds.length > 0 ) ; + + for ( i = 0 ; i < aAnchors.length ; i++ ) + { + var sName = aAnchors[i].name ; + if ( sName && sName.length > 0 ) + FCKTools.AddSelectOption( GetE('cmbAnchorName'), sName, sName ) ; + } + + for ( i = 0 ; i < aIds.length ; i++ ) + { + FCKTools.AddSelectOption( GetE('cmbAnchorId'), aIds[i], aIds[i] ) ; + } + + ShowE( 'divSelAnchor' , bHasAnchors ) ; + ShowE( 'divNoAnchor' , !bHasAnchors ) ; +} + +function LoadSelection() +{ + if ( !oLink ) return ; + + var sType = 'url' ; + + // Get the actual Link href. + var sHRef = oLink.getAttribute( '_fcksavedurl' ) ; + if ( sHRef == null ) + sHRef = oLink.getAttribute( 'href' , 2 ) || '' ; + + // Look for a popup javascript link. + var oPopupMatch = oRegex.PopupUri.exec( sHRef ) ; + if( oPopupMatch ) + { + GetE('cmbTarget').value = 'popup' ; + sHRef = oPopupMatch[1] ; + FillPopupFields( oPopupMatch[2], oPopupMatch[3] ) ; + SetTarget( 'popup' ) ; + } + + // Accessible popups, the popup data is in the onclick attribute + if ( !oPopupMatch ) + { + var onclick = oLink.getAttribute( 'onclick_fckprotectedatt' ) ; + if ( onclick ) + { + // Decode the protected string + onclick = decodeURIComponent( onclick ) ; + + oPopupMatch = oRegex.OnClickPopup.exec( onclick ) ; + if( oPopupMatch ) + { + GetE( 'cmbTarget' ).value = 'popup' ; + FillPopupFields( oPopupMatch[1], oPopupMatch[2] ) ; + SetTarget( 'popup' ) ; + } + } + } + + // Search for the protocol. + var sProtocol = oRegex.UriProtocol.exec( sHRef ) ; + + // Search for a protected email link. + var oEMailInfo = oParser.ParseEMailUri( sHRef ); + + if ( oEMailInfo ) + { + sType = 'email' ; + + GetE('txtEMailAddress').value = oEMailInfo.Address ; + GetE('txtEMailSubject').value = oEMailInfo.Subject ; + GetE('txtEMailBody').value = oEMailInfo.Body ; + } + else if ( sProtocol ) + { + sProtocol = sProtocol[0].toLowerCase() ; + GetE('cmbLinkProtocol').value = sProtocol ; + + // Remove the protocol and get the remaining URL. + var sUrl = sHRef.replace( oRegex.UriProtocol, '' ) ; + sType = 'url' ; + GetE('txtUrl').value = sUrl ; + } + 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) ; + } + else // It is another type of link. + { + sType = 'url' ; + + GetE('cmbLinkProtocol').value = '' ; + GetE('txtUrl').value = sHRef ; + } + + if ( !oPopupMatch ) + { + // Get the target. + var sTarget = oLink.target ; + + if ( sTarget && sTarget.length > 0 ) + { + if ( oRegex.ReserveTarget.test( sTarget ) ) + { + sTarget = sTarget.toLowerCase() ; + GetE('cmbTarget').value = sTarget ; + } + else + GetE('cmbTarget').value = 'frame' ; + GetE('txtTargetFrame').value = sTarget ; + } + } + + // Get Advances Attributes + GetE('txtAttId').value = oLink.id ; + GetE('txtAttName').value = oLink.name ; + GetE('cmbAttLangDir').value = oLink.dir ; + GetE('txtAttLangCode').value = oLink.lang ; + GetE('txtAttAccessKey').value = oLink.accessKey ; + GetE('txtAttTabIndex').value = oLink.tabIndex <= 0 ? '' : oLink.tabIndex ; + GetE('txtAttTitle').value = oLink.title ; + GetE('txtAttContentType').value = oLink.type ; + GetE('txtAttCharSet').value = oLink.charset ; + + var sClass ; + if ( oEditor.FCKBrowserInfo.IsIE ) + { + 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 + { + 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 ; +} + +//#### Link type selection. +function SetLinkType( linkType ) +{ + ShowE('divLinkTypeUrl' , (linkType == 'url') ) ; + ShowE('divLinkTypeAnchor' , (linkType == 'anchor') ) ; + ShowE('divLinkTypeEMail' , (linkType == 'email') ) ; + + if ( !FCKConfig.LinkDlgHideTarget ) + dialog.SetTabVisibility( 'Target' , (linkType == 'url') ) ; + + if ( FCKConfig.LinkUpload ) + dialog.SetTabVisibility( 'Upload' , (linkType == 'url') ) ; + + if ( !FCKConfig.LinkDlgHideAdvanced ) + dialog.SetTabVisibility( 'Advanced' , (linkType != 'anchor' || bHasAnchors) ) ; + + if ( linkType == 'email' ) + dialog.SetAutoSize( true ) ; +} + +//#### Target type selection. +function SetTarget( targetType ) +{ + GetE('tdTargetFrame').style.display = ( targetType == 'popup' ? 'none' : '' ) ; + GetE('tdPopupName').style.display = + GetE('tablePopupFeatures').style.display = ( targetType == 'popup' ? '' : 'none' ) ; + + switch ( targetType ) + { + case "_blank" : + case "_self" : + case "_parent" : + case "_top" : + GetE('txtTargetFrame').value = targetType ; + break ; + case "" : + GetE('txtTargetFrame').value = '' ; + break ; + } + + if ( targetType == 'popup' ) + dialog.SetAutoSize( true ) ; +} + +//#### Called while the user types the URL. +function OnUrlChange() +{ + var sUrl = GetE('txtUrl').value ; + var sProtocol = oRegex.UrlOnChangeProtocol.exec( sUrl ) ; + + if ( sProtocol ) + { + sUrl = sUrl.substr( sProtocol[0].length ) ; + GetE('txtUrl').value = sUrl ; + GetE('cmbLinkProtocol').value = sProtocol[0].toLowerCase() ; + } + else if ( oRegex.UrlOnChangeTestOther.test( sUrl ) ) + { + GetE('cmbLinkProtocol').value = '' ; + } +} + +//#### Called while the user types the target name. +function OnTargetNameChange() +{ + var sFrame = GetE('txtTargetFrame').value ; + + if ( sFrame.length == 0 ) + GetE('cmbTarget').value = '' ; + else if ( oRegex.ReserveTarget.test( sFrame ) ) + GetE('cmbTarget').value = sFrame.toLowerCase() ; + else + GetE('cmbTarget').value = 'frame' ; +} + +// Accessible popups +function BuildOnClickPopup() +{ + var sWindowName = "'" + GetE('txtPopupName').value.replace(/\W/gi, "") + "'" ; + + var sFeatures = '' ; + var aChkFeatures = document.getElementsByName( 'chkFeature' ) ; + for ( var i = 0 ; i < aChkFeatures.length ; i++ ) + { + if ( i > 0 ) sFeatures += ',' ; + sFeatures += aChkFeatures[i].value + '=' + ( aChkFeatures[i].checked ? 'yes' : 'no' ) ; + } + + if ( GetE('txtPopupWidth').value.length > 0 ) sFeatures += ',width=' + GetE('txtPopupWidth').value ; + if ( GetE('txtPopupHeight').value.length > 0 ) sFeatures += ',height=' + GetE('txtPopupHeight').value ; + if ( GetE('txtPopupLeft').value.length > 0 ) sFeatures += ',left=' + GetE('txtPopupLeft').value ; + if ( GetE('txtPopupTop').value.length > 0 ) sFeatures += ',top=' + GetE('txtPopupTop').value ; + + if ( sFeatures != '' ) + sFeatures = sFeatures + ",status" ; + + return ( "window.open(this.href," + sWindowName + ",'" + sFeatures + "'); return false" ) ; +} + +//#### Fills all Popup related fields. +function FillPopupFields( windowName, features ) +{ + if ( windowName ) + GetE('txtPopupName').value = windowName ; + + var oFeatures = new Object() ; + var oFeaturesMatch ; + while( ( oFeaturesMatch = oRegex.PopupFeatures.exec( features ) ) != null ) + { + var sValue = oFeaturesMatch[2] ; + if ( sValue == ( 'yes' || '1' ) ) + oFeatures[ oFeaturesMatch[1] ] = true ; + else if ( ! isNaN( sValue ) && sValue != 0 ) + oFeatures[ oFeaturesMatch[1] ] = sValue ; + } + + // Update all features check boxes. + var aChkFeatures = document.getElementsByName('chkFeature') ; + for ( var i = 0 ; i < aChkFeatures.length ; i++ ) + { + if ( oFeatures[ aChkFeatures[i].value ] ) + aChkFeatures[i].checked = true ; + } + + // Update position and size text boxes. + if ( oFeatures['width'] ) GetE('txtPopupWidth').value = oFeatures['width'] ; + if ( oFeatures['height'] ) GetE('txtPopupHeight').value = oFeatures['height'] ; + if ( oFeatures['left'] ) GetE('txtPopupLeft').value = oFeatures['left'] ; + if ( oFeatures['top'] ) GetE('txtPopupTop').value = oFeatures['top'] ; +} + +//#### The OK button was hit. +function Ok() +{ + var sUri, sInnerHtml ; + oEditor.FCKUndo.SaveUndoStep() ; + + switch ( GetE('cmbLinkType').value ) + { + case 'url' : + sUri = GetE('txtUrl').value ; + + if ( sUri.length == 0 ) + { + alert( FCKLang.DlnLnkMsgNoUrl ) ; + return false ; + } + + sUri = GetE('cmbLinkProtocol').value + sUri ; + + break ; + + case 'email' : + sUri = GetE('txtEMailAddress').value ; + + if ( sUri.length == 0 ) + { + alert( FCKLang.DlnLnkMsgNoEMail ) ; + return false ; + } + + sUri = oParser.CreateEMailUri( + sUri, + GetE('txtEMailSubject').value, + GetE('txtEMailBody').value ) ; + break ; + + case 'anchor' : + var sAnchor = GetE('cmbAnchorName').value ; + if ( sAnchor.length == 0 ) sAnchor = GetE('cmbAnchorId').value ; + + if ( sAnchor.length == 0 ) + { + alert( FCKLang.DlnLnkMsgNoAnchor ) ; + return false ; + } + + sUri = '#' + sAnchor ; + break ; + } + + // If no link is selected, create a new one (it may result in more than one link creation - #220). + var aLinks = oLink ? [ oLink ] : oEditor.FCK.CreateLink( sUri, true ) ; + + // If no selection, no links are created, so use the uri as the link text (by dom, 2006-05-26) + var aHasSelection = ( aLinks.length > 0 ) ; + if ( !aHasSelection ) + { + sInnerHtml = sUri; + + // Built a better text for empty links. + 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. + aLinks = [ oEditor.FCK.InsertElement( 'a' ) ] ; + } + + for ( var i = 0 ; i < aLinks.length ; i++ ) + { + oLink = aLinks[i] ; + + if ( aHasSelection ) + sInnerHtml = oLink.innerHTML ; // Save the innerHTML (IE changes it if it is like an URL). + + oLink.href = sUri ; + SetAttribute( oLink, '_fcksavedurl', sUri ) ; + + var onclick; + // Accessible popups + if( GetE('cmbTarget').value == 'popup' ) + { + onclick = BuildOnClickPopup() ; + // Encode the attribute + onclick = encodeURIComponent( " onclick=\"" + onclick + "\"" ) ; + SetAttribute( oLink, 'onclick_fckprotectedatt', onclick ) ; + } + else + { + // Check if the previous onclick was for a popup: + // In that case remove the onclick handler. + onclick = oLink.getAttribute( 'onclick_fckprotectedatt' ) ; + if ( onclick ) + { + // Decode the protected string + onclick = decodeURIComponent( onclick ) ; + + if( oRegex.OnClickPopup.test( onclick ) ) + SetAttribute( oLink, 'onclick_fckprotectedatt', '' ) ; + } + } + + oLink.innerHTML = sInnerHtml ; // Set (or restore) the innerHTML + + // Target + if( GetE('cmbTarget').value != 'popup' ) + SetAttribute( oLink, 'target', GetE('txtTargetFrame').value ) ; + else + SetAttribute( oLink, 'target', null ) ; + + // Let's set the "id" only for the first link to avoid duplication. + if ( i == 0 ) + SetAttribute( oLink, 'id', GetE('txtAttId').value ) ; + + // Advances Attributes + SetAttribute( oLink, 'name' , GetE('txtAttName').value ) ; + SetAttribute( oLink, 'dir' , GetE('cmbAttLangDir').value ) ; + SetAttribute( oLink, 'lang' , GetE('txtAttLangCode').value ) ; + SetAttribute( oLink, 'accesskey', GetE('txtAttAccessKey').value ) ; + SetAttribute( oLink, 'tabindex' , ( GetE('txtAttTabIndex').value > 0 ? GetE('txtAttTabIndex').value : null ) ) ; + SetAttribute( oLink, 'title' , GetE('txtAttTitle').value ) ; + SetAttribute( oLink, 'type' , GetE('txtAttContentType').value ) ; + SetAttribute( oLink, 'charset' , GetE('txtAttCharSet').value ) ; + + if ( oEditor.FCKBrowserInfo.IsIE ) + { + var sClass = GetE('txtAttClasses').value ; + // If it's also an anchor add an internal class + if ( GetE('txtAttName').value.length != 0 ) + sClass += ' FCK__AnchorC' ; + SetAttribute( oLink, 'className', sClass ) ; + + oLink.style.cssText = GetE('txtAttStyle').value ; + } + else + { + SetAttribute( oLink, 'class', GetE('txtAttClasses').value ) ; + SetAttribute( oLink, 'style', GetE('txtAttStyle').value ) ; + } + } + + // Select the (first) link. + oEditor.FCKSelection.SelectNode( aLinks[0] ); + + return true ; +} + +function BrowseServer() +{ + OpenFileBrowser( FCKConfig.LinkBrowserURL, FCKConfig.LinkBrowserWindowWidth, FCKConfig.LinkBrowserWindowHeight ) ; +} + +function SetUrl( url ) +{ + GetE('txtUrl').value = url ; + OnUrlChange() ; + dialog.SetSelectedTab( 'Info' ) ; +} + +function OnUploadCompleted( errorNumber, fileUrl, fileName, customMsg ) +{ + // Remove animation + window.parent.Throbber.Hide() ; + GetE( 'divUpload' ).style.display = '' ; + + switch ( errorNumber ) + { + case 0 : // No errors + alert( 'Your file has been successfully uploaded' ) ; + break ; + case 1 : // Custom error + alert( customMsg ) ; + return ; + case 101 : // Custom warning + alert( customMsg ) ; + break ; + case 201 : + alert( 'A file with the same name is already available. The uploaded file has been renamed to "' + fileName + '"' ) ; + break ; + case 202 : + alert( 'Invalid file type' ) ; + return ; + case 203 : + alert( "Security error. You probably don't have enough permissions to upload. Please check your server." ) ; + return ; + case 500 : + alert( 'The connector is disabled' ) ; + break ; + default : + alert( 'Error on file upload. Error number: ' + errorNumber ) ; + return ; + } + + SetUrl( fileUrl ) ; + GetE('frmUpload').reset() ; +} + +var oUploadAllowedExtRegex = new RegExp( FCKConfig.LinkUploadAllowedExtensions, 'i' ) ; +var oUploadDeniedExtRegex = new RegExp( FCKConfig.LinkUploadDeniedExtensions, 'i' ) ; + +function CheckUpload() +{ + var sFile = GetE('txtUploadFile').value ; + + if ( sFile.length == 0 ) + { + alert( 'Please select a file to upload' ) ; + return false ; + } + + if ( ( FCKConfig.LinkUploadAllowedExtensions.length > 0 && !oUploadAllowedExtRegex.test( sFile ) ) || + ( FCKConfig.LinkUploadDeniedExtensions.length > 0 && oUploadDeniedExtRegex.test( sFile ) ) ) + { + OnUploadCompleted( 202 ) ; + return false ; + } + + // Show animation + window.parent.Throbber.Show( 100 ) ; + GetE( 'divUpload' ).style.display = 'none' ; + + return true ; +} + +function SetDefaultTarget() +{ + var target = FCKConfig.DefaultLinkTarget || '' ; + + if ( oLink || target.length == 0 ) + return ; + + switch ( target ) + { + case '_blank' : + case '_self' : + case '_parent' : + case '_top' : + GetE('cmbTarget').value = target ; + break ; + default : + GetE('cmbTarget').value = 'frame' ; + break ; + } + + GetE('txtTargetFrame').value = target ; +} diff --git a/fckeditor/editor/dialog/fck_listprop.html b/fckeditor/editor/dialog/fck_listprop.html new file mode 100644 index 0000000..ef30a94 --- /dev/null +++ b/fckeditor/editor/dialog/fck_listprop.html @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + +
      + + + + + +
      + List Type
      + + +   +
      +
      + + diff --git a/fckeditor/editor/dialog/fck_paste.html b/fckeditor/editor/dialog/fck_paste.html new file mode 100644 index 0000000..40cc6f5 --- /dev/null +++ b/fckeditor/editor/dialog/fck_paste.html @@ -0,0 +1,346 @@ + + + + + + + + + + + + + + + + + + + + + + +
      + +
      + Please paste inside the following box using the keyboard + (Ctrl+V) and hit OK.
      +   +
      +
      + +
      + + + +
      + + + +
      + + diff --git a/fckeditor/editor/dialog/fck_radiobutton.html b/fckeditor/editor/dialog/fck_radiobutton.html new file mode 100644 index 0000000..eb9aa5d --- /dev/null +++ b/fckeditor/editor/dialog/fck_radiobutton.html @@ -0,0 +1,104 @@ + + + + + Radio Button Properties + + + + + + + + + + +
      + + + + + + + + + + +
      + Name
      + +
      + Value
      + +
      +
      + + diff --git a/fckeditor/editor/dialog/fck_replace.html b/fckeditor/editor/dialog/fck_replace.html new file mode 100644 index 0000000..f334d7f --- /dev/null +++ b/fckeditor/editor/dialog/fck_replace.html @@ -0,0 +1,648 @@ + + + + + + + + + + + + + + + diff --git a/fckeditor/editor/dialog/fck_select.html b/fckeditor/editor/dialog/fck_select.html new file mode 100644 index 0000000..a1735a1 --- /dev/null +++ b/fckeditor/editor/dialog/fck_select.html @@ -0,0 +1,180 @@ + + + + + Select Properties + + + + + + + + + + + +
      + + + + + + + + + + + + + + +
      Name 
      Value 
      Size  lines
      +
      +
      +  Available + Options  + + + + + + + + + + + + + + + + + + +
      Text
      + +
      Value
      + +
      + + +
      +
      + +
         +
      +
      + + diff --git a/fckeditor/editor/dialog/fck_select/fck_select.js b/fckeditor/editor/dialog/fck_select/fck_select.js new file mode 100644 index 0000000..167e24d --- /dev/null +++ b/fckeditor/editor/dialog/fck_select/fck_select.js @@ -0,0 +1,194 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Scripts for the fck_select.html page. + */ + +function Select( combo ) +{ + var iIndex = combo.selectedIndex ; + + oListText.selectedIndex = iIndex ; + oListValue.selectedIndex = iIndex ; + + var oTxtText = document.getElementById( "txtText" ) ; + var oTxtValue = document.getElementById( "txtValue" ) ; + + oTxtText.value = oListText.value ; + oTxtValue.value = oListValue.value ; +} + +function Add() +{ + var oTxtText = document.getElementById( "txtText" ) ; + var oTxtValue = document.getElementById( "txtValue" ) ; + + AddComboOption( oListText, oTxtText.value, oTxtText.value ) ; + AddComboOption( oListValue, oTxtValue.value, oTxtValue.value ) ; + + oListText.selectedIndex = oListText.options.length - 1 ; + oListValue.selectedIndex = oListValue.options.length - 1 ; + + oTxtText.value = '' ; + oTxtValue.value = '' ; + + oTxtText.focus() ; +} + +function Modify() +{ + var iIndex = oListText.selectedIndex ; + + if ( iIndex < 0 ) return ; + + var oTxtText = document.getElementById( "txtText" ) ; + var oTxtValue = document.getElementById( "txtValue" ) ; + + oListText.options[ iIndex ].innerHTML = HTMLEncode( oTxtText.value ) ; + oListText.options[ iIndex ].value = oTxtText.value ; + + oListValue.options[ iIndex ].innerHTML = HTMLEncode( oTxtValue.value ) ; + oListValue.options[ iIndex ].value = oTxtValue.value ; + + oTxtText.value = '' ; + oTxtValue.value = '' ; + + oTxtText.focus() ; +} + +function Move( steps ) +{ + ChangeOptionPosition( oListText, steps ) ; + ChangeOptionPosition( oListValue, steps ) ; +} + +function Delete() +{ + RemoveSelectedOptions( oListText ) ; + RemoveSelectedOptions( oListValue ) ; +} + +function SetSelectedValue() +{ + var iIndex = oListValue.selectedIndex ; + if ( iIndex < 0 ) return ; + + var oTxtValue = document.getElementById( "txtSelValue" ) ; + + oTxtValue.value = oListValue.options[ iIndex ].value ; +} + +// Moves the selected option by a number of steps (also negative) +function ChangeOptionPosition( combo, steps ) +{ + var iActualIndex = combo.selectedIndex ; + + if ( iActualIndex < 0 ) + return ; + + var iFinalIndex = iActualIndex + steps ; + + if ( iFinalIndex < 0 ) + iFinalIndex = 0 ; + + if ( iFinalIndex > ( combo.options.length - 1 ) ) + iFinalIndex = combo.options.length - 1 ; + + if ( iActualIndex == iFinalIndex ) + return ; + + var oOption = combo.options[ iActualIndex ] ; + var sText = HTMLDecode( oOption.innerHTML ) ; + var sValue = oOption.value ; + + combo.remove( iActualIndex ) ; + + oOption = AddComboOption( combo, sText, sValue, null, iFinalIndex ) ; + + oOption.selected = true ; +} + +// Remove all selected options from a SELECT object +function RemoveSelectedOptions(combo) +{ + // Save the selected index + var iSelectedIndex = combo.selectedIndex ; + + var oOptions = combo.options ; + + // Remove all selected options + for ( var i = oOptions.length - 1 ; i >= 0 ; i-- ) + { + if (oOptions[i].selected) combo.remove(i) ; + } + + // Reset the selection based on the original selected index + if ( combo.options.length > 0 ) + { + if ( iSelectedIndex >= combo.options.length ) iSelectedIndex = combo.options.length - 1 ; + combo.selectedIndex = iSelectedIndex ; + } +} + +// Add a new option to a SELECT object (combo or list) +function AddComboOption( combo, optionText, optionValue, documentObject, index ) +{ + var oOption ; + + if ( documentObject ) + oOption = documentObject.createElement("OPTION") ; + else + oOption = document.createElement("OPTION") ; + + if ( index != null ) + combo.options.add( oOption, index ) ; + else + combo.options.add( oOption ) ; + + oOption.innerHTML = optionText.length > 0 ? HTMLEncode( optionText ) : ' ' ; + oOption.value = optionValue ; + + return oOption ; +} + +function HTMLEncode( text ) +{ + if ( !text ) + return '' ; + + text = text.replace( /&/g, '&' ) ; + text = text.replace( //g, '>' ) ; + + return text ; +} + + +function HTMLDecode( text ) +{ + if ( !text ) + return '' ; + + text = text.replace( />/g, '>' ) ; + text = text.replace( /</g, '<' ) ; + text = text.replace( /&/g, '&' ) ; + + return text ; +} diff --git a/fckeditor/editor/dialog/fck_smiley.html b/fckeditor/editor/dialog/fck_smiley.html new file mode 100644 index 0000000..0d6f63f --- /dev/null +++ b/fckeditor/editor/dialog/fck_smiley.html @@ -0,0 +1,111 @@ + + + + + + + + + + + + + + +
      + + diff --git a/fckeditor/editor/dialog/fck_source.html b/fckeditor/editor/dialog/fck_source.html new file mode 100644 index 0000000..d66c281 --- /dev/null +++ b/fckeditor/editor/dialog/fck_source.html @@ -0,0 +1,68 @@ + + + + + Source + + + + + + + + + + +
      + + diff --git a/fckeditor/editor/dialog/fck_specialchar.html b/fckeditor/editor/dialog/fck_specialchar.html new file mode 100644 index 0000000..d7fda32 --- /dev/null +++ b/fckeditor/editor/dialog/fck_specialchar.html @@ -0,0 +1,121 @@ + + + + + + + + + + + + + + + + + +
      + + +
      +
           + + + + +
       
      +
      + + diff --git a/fckeditor/editor/dialog/fck_spellerpages.html b/fckeditor/editor/dialog/fck_spellerpages.html new file mode 100644 index 0000000..87cf2c4 --- /dev/null +++ b/fckeditor/editor/dialog/fck_spellerpages.html @@ -0,0 +1,70 @@ + + + + + Spell Check + + + + + + + + + + + diff --git a/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html new file mode 100644 index 0000000..e69de29 diff --git a/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js new file mode 100644 index 0000000..80af849 --- /dev/null +++ b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js @@ -0,0 +1,87 @@ +//////////////////////////////////////////////////// +// controlWindow object +//////////////////////////////////////////////////// +function controlWindow( controlForm ) { + // private properties + this._form = controlForm; + + // public properties + this.windowType = "controlWindow"; +// this.noSuggestionSelection = "- No suggestions -"; // by FredCK + this.noSuggestionSelection = FCKLang.DlgSpellNoSuggestions ; + // set up the properties for elements of the given control form + this.suggestionList = this._form.sugg; + this.evaluatedText = this._form.misword; + this.replacementText = this._form.txtsugg; + this.undoButton = this._form.btnUndo; + + // public methods + this.addSuggestion = addSuggestion; + this.clearSuggestions = clearSuggestions; + this.selectDefaultSuggestion = selectDefaultSuggestion; + this.resetForm = resetForm; + this.setSuggestedText = setSuggestedText; + this.enableUndo = enableUndo; + this.disableUndo = disableUndo; +} + +function resetForm() { + if( this._form ) { + this._form.reset(); + } +} + +function setSuggestedText() { + var slct = this.suggestionList; + var txt = this.replacementText; + var str = ""; + if( (slct.options[0].text) && slct.options[0].text != this.noSuggestionSelection ) { + str = slct.options[slct.selectedIndex].text; + } + txt.value = str; +} + +function selectDefaultSuggestion() { + var slct = this.suggestionList; + var txt = this.replacementText; + if( slct.options.length == 0 ) { + this.addSuggestion( this.noSuggestionSelection ); + } else { + slct.options[0].selected = true; + } + this.setSuggestedText(); +} + +function addSuggestion( sugg_text ) { + var slct = this.suggestionList; + if( sugg_text ) { + var i = slct.options.length; + var newOption = new Option( sugg_text, 'sugg_text'+i ); + slct.options[i] = newOption; + } +} + +function clearSuggestions() { + var slct = this.suggestionList; + for( var j = slct.length - 1; j > -1; j-- ) { + if( slct.options[j] ) { + slct.options[j] = null; + } + } +} + +function enableUndo() { + if( this.undoButton ) { + if( this.undoButton.disabled == true ) { + this.undoButton.disabled = false; + } + } +} + +function disableUndo() { + if( this.undoButton ) { + if( this.undoButton.disabled == false ) { + this.undoButton.disabled = true; + } + } +} diff --git a/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html new file mode 100644 index 0000000..d91bcce --- /dev/null +++ b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html @@ -0,0 +1,153 @@ + + + + + + + +
      + + + + + + + + + + + + + + + + + + +
      Not in dictionary:
      Change to:
      + + + + + + + +
      + +
      + +
      +
         + + + + + + + + + + + + + + + + + + + + + + +
      + +    + +
      + +    + +
      + +    + +
      +
      +
      + + diff --git a/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm new file mode 100644 index 0000000..27e368e --- /dev/null +++ b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm @@ -0,0 +1,148 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + ]+>", " ", "all")> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php new file mode 100644 index 0000000..9c747c9 --- /dev/null +++ b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php @@ -0,0 +1,199 @@ +$val ) { + # $val = str_replace( "'", "%27", $val ); + echo "textinputs[$key] = decodeURIComponent(\"" . $val . "\");\n"; + } +} + +# make declarations for the text input index +function print_textindex_decl( $text_input_idx ) { + echo "words[$text_input_idx] = [];\n"; + echo "suggs[$text_input_idx] = [];\n"; +} + +# set an element of the JavaScript 'words' array to a misspelled word +function print_words_elem( $word, $index, $text_input_idx ) { + echo "words[$text_input_idx][$index] = '" . escape_quote( $word ) . "';\n"; +} + + +# set an element of the JavaScript 'suggs' array to a list of suggestions +function print_suggs_elem( $suggs, $index, $text_input_idx ) { + echo "suggs[$text_input_idx][$index] = ["; + foreach( $suggs as $key=>$val ) { + if( $val ) { + echo "'" . escape_quote( $val ) . "'"; + if ( $key+1 < count( $suggs )) { + echo ", "; + } + } + } + echo "];\n"; +} + +# escape single quote +function escape_quote( $str ) { + return preg_replace ( "/'/", "\\'", $str ); +} + + +# handle a server-side error. +function error_handler( $err ) { + echo "error = '" . preg_replace( "/['\\\\]/", "\\\\$0", $err ) . "';\n"; +} + +## get the list of misspelled words. Put the results in the javascript words array +## for each misspelled word, get suggestions and put in the javascript suggs array +function print_checker_results() { + + global $aspell_prog; + global $aspell_opts; + global $tempfiledir; + global $textinputs; + global $input_separator; + $aspell_err = ""; + # create temp file + $tempfile = tempnam( $tempfiledir, 'aspell_data_' ); + + # open temp file, add the submitted text. + if( $fh = fopen( $tempfile, 'w' )) { + for( $i = 0; $i < count( $textinputs ); $i++ ) { + $text = urldecode( $textinputs[$i] ); + + // Strip all tags for the text. (by FredCK - #339 / #681) + $text = preg_replace( "/<[^>]+>/", " ", $text ) ; + + $lines = explode( "\n", $text ); + fwrite ( $fh, "%\n" ); # exit terse mode + fwrite ( $fh, "^$input_separator\n" ); + fwrite ( $fh, "!\n" ); # enter terse mode + foreach( $lines as $key=>$value ) { + # use carat on each line to escape possible aspell commands + fwrite( $fh, "^$value\n" ); + } + } + fclose( $fh ); + + # exec aspell command - redirect STDERR to STDOUT + $cmd = "$aspell_prog $aspell_opts < $tempfile 2>&1"; + if( $aspellret = shell_exec( $cmd )) { + $linesout = explode( "\n", $aspellret ); + $index = 0; + $text_input_index = -1; + # parse each line of aspell return + foreach( $linesout as $key=>$val ) { + $chardesc = substr( $val, 0, 1 ); + # if '&', then not in dictionary but has suggestions + # if '#', then not in dictionary and no suggestions + # if '*', then it is a delimiter between text inputs + # if '@' then version info + if( $chardesc == '&' || $chardesc == '#' ) { + $line = explode( " ", $val, 5 ); + print_words_elem( $line[1], $index, $text_input_index ); + if( isset( $line[4] )) { + $suggs = explode( ", ", $line[4] ); + } else { + $suggs = array(); + } + print_suggs_elem( $suggs, $index, $text_input_index ); + $index++; + } elseif( $chardesc == '*' ) { + $text_input_index++; + print_textindex_decl( $text_input_index ); + $index = 0; + } elseif( $chardesc != '@' && $chardesc != "" ) { + # assume this is error output + $aspell_err .= $val; + } + } + if( $aspell_err ) { + $aspell_err = "Error executing `$cmd`\\n$aspell_err"; + error_handler( $aspell_err ); + } + } else { + error_handler( "System error: Aspell program execution failed (`$cmd`)" ); + } + } else { + error_handler( "System error: Could not open file '$tempfile' for writing" ); + } + + # close temp file, delete file + unlink( $tempfile ); +} + + +?> + + + + + + + + + + + + + + + diff --git a/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl new file mode 100644 index 0000000..fae010d --- /dev/null +++ b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl @@ -0,0 +1,181 @@ +#!/usr/bin/perl + +use CGI qw/ :standard /; +use File::Temp qw/ tempfile tempdir /; + +# my $spellercss = '/speller/spellerStyle.css'; # by FredCK +my $spellercss = '../spellerStyle.css'; # by FredCK +# my $wordWindowSrc = '/speller/wordWindow.js'; # by FredCK +my $wordWindowSrc = '../wordWindow.js'; # by FredCK +my @textinputs = param( 'textinputs[]' ); # array +# my $aspell_cmd = 'aspell'; # by FredCK (for Linux) +my $aspell_cmd = '"C:\Program Files\Aspell\bin\aspell.exe"'; # by FredCK (for Windows) +my $lang = 'en_US'; +# my $aspell_opts = "-a --lang=$lang --encoding=utf-8"; # by FredCK +my $aspell_opts = "-a --lang=$lang --encoding=utf-8 -H --rem-sgml-check=alt"; # by FredCK +my $input_separator = "A"; + +# set the 'wordtext' JavaScript variable to the submitted text. +sub printTextVar { + for( my $i = 0; $i <= $#textinputs; $i++ ) { + print "textinputs[$i] = decodeURIComponent('" . escapeQuote( $textinputs[$i] ) . "')\n"; + } +} + +sub printTextIdxDecl { + my $idx = shift; + print "words[$idx] = [];\n"; + print "suggs[$idx] = [];\n"; +} + +sub printWordsElem { + my( $textIdx, $wordIdx, $word ) = @_; + print "words[$textIdx][$wordIdx] = '" . escapeQuote( $word ) . "';\n"; +} + +sub printSuggsElem { + my( $textIdx, $wordIdx, @suggs ) = @_; + print "suggs[$textIdx][$wordIdx] = ["; + for my $i ( 0..$#suggs ) { + print "'" . escapeQuote( $suggs[$i] ) . "'"; + if( $i < $#suggs ) { + print ", "; + } + } + print "];\n"; +} + +sub printCheckerResults { + my $textInputIdx = -1; + my $wordIdx = 0; + my $unhandledText; + # create temp file + my $dir = tempdir( CLEANUP => 1 ); + my( $fh, $tmpfilename ) = tempfile( DIR => $dir ); + + # temp file was created properly? + + # open temp file, add the submitted text. + for( my $i = 0; $i <= $#textinputs; $i++ ) { + $text = url_decode( $textinputs[$i] ); + # Strip all tags for the text. (by FredCK - #339 / #681) + $text =~ s/<[^>]+>/ /g; + @lines = split( /\n/, $text ); + print $fh "\%\n"; # exit terse mode + print $fh "^$input_separator\n"; + print $fh "!\n"; # enter terse mode + for my $line ( @lines ) { + # use carat on each line to escape possible aspell commands + print $fh "^$line\n"; + } + + } + # exec aspell command + my $cmd = "$aspell_cmd $aspell_opts < $tmpfilename 2>&1"; + open ASPELL, "$cmd |" or handleError( "Could not execute `$cmd`\\n$!" ) and return; + # parse each line of aspell return + for my $ret ( ) { + chomp( $ret ); + # if '&', then not in dictionary but has suggestions + # if '#', then not in dictionary and no suggestions + # if '*', then it is a delimiter between text inputs + if( $ret =~ /^\*/ ) { + $textInputIdx++; + printTextIdxDecl( $textInputIdx ); + $wordIdx = 0; + + } elsif( $ret =~ /^(&|#)/ ) { + my @tokens = split( " ", $ret, 5 ); + printWordsElem( $textInputIdx, $wordIdx, $tokens[1] ); + my @suggs = (); + if( $tokens[4] ) { + @suggs = split( ", ", $tokens[4] ); + } + printSuggsElem( $textInputIdx, $wordIdx, @suggs ); + $wordIdx++; + } else { + $unhandledText .= $ret; + } + } + close ASPELL or handleError( "Error executing `$cmd`\\n$unhandledText" ) and return; +} + +sub escapeQuote { + my $str = shift; + $str =~ s/'/\\'/g; + return $str; +} + +sub handleError { + my $err = shift; + print "error = '" . escapeQuote( $err ) . "';\n"; +} + +sub url_decode { + local $_ = @_ ? shift : $_; + defined or return; + # change + signs to spaces + tr/+/ /; + # change hex escapes to the proper characters + s/%([a-fA-F0-9]{2})/pack "H2", $1/eg; + return $_; +} + +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # +# Display HTML +# # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # # + +print < + + + + + + + + + + + + + +EOF diff --git a/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js new file mode 100644 index 0000000..c85be9a --- /dev/null +++ b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js @@ -0,0 +1,461 @@ +//////////////////////////////////////////////////// +// spellChecker.js +// +// spellChecker object +// +// This file is sourced on web pages that have a textarea object to evaluate +// for spelling. It includes the implementation for the spellCheckObject. +// +//////////////////////////////////////////////////// + + +// constructor +function spellChecker( textObject ) { + + // public properties - configurable +// this.popUpUrl = '/speller/spellchecker.html'; // by FredCK + this.popUpUrl = 'fck_spellerpages/spellerpages/spellchecker.html'; // by FredCK + this.popUpName = 'spellchecker'; +// 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 = '/cgi-bin/spellchecker.pl'; + + // values used to keep track of what happened to a word + this.replWordFlag = "R"; // single replace + this.ignrWordFlag = "I"; // single ignore + this.replAllFlag = "RA"; // replace all occurances + this.ignrAllFlag = "IA"; // ignore all occurances + this.fromReplAll = "~RA"; // an occurance of a "replace all" word + this.fromIgnrAll = "~IA"; // an occurance of a "ignore all" word + // properties set at run time + this.wordFlags = new Array(); + this.currentTextIndex = 0; + this.currentWordIndex = 0; + this.spellCheckerWin = null; + this.controlWin = null; + this.wordWin = null; + this.textArea = textObject; // deprecated + this.textInputs = arguments; + + // private methods + this._spellcheck = _spellcheck; + this._getSuggestions = _getSuggestions; + this._setAsIgnored = _setAsIgnored; + this._getTotalReplaced = _getTotalReplaced; + this._setWordText = _setWordText; + this._getFormInputs = _getFormInputs; + + // public methods + this.openChecker = openChecker; + this.startCheck = startCheck; + this.checkTextBoxes = checkTextBoxes; + this.checkTextAreas = checkTextAreas; + this.spellCheckAll = spellCheckAll; + this.ignoreWord = ignoreWord; + this.ignoreAll = ignoreAll; + this.replaceWord = replaceWord; + this.replaceAll = replaceAll; + this.terminateSpell = terminateSpell; + this.undo = undo; + + // set the current window's "speller" property to the instance of this class. + // this object can now be referenced by child windows/frames. + window.speller = this; +} + +// call this method to check all text boxes (and only text boxes) in the HTML document +function checkTextBoxes() { + this.textInputs = this._getFormInputs( "^text$" ); + this.openChecker(); +} + +// call this method to check all textareas (and only textareas ) in the HTML document +function checkTextAreas() { + this.textInputs = this._getFormInputs( "^textarea$" ); + this.openChecker(); +} + +// call this method to check all text boxes and textareas in the HTML document +function spellCheckAll() { + this.textInputs = this._getFormInputs( "^text(area)?$" ); + this.openChecker(); +} + +// call this method to check text boxe(s) and/or textarea(s) that were passed in to the +// object's constructor or to the textInputs property +function openChecker() { + this.spellCheckerWin = window.open( this.popUpUrl, this.popUpName, this.popUpProps ); + if( !this.spellCheckerWin.opener ) { + this.spellCheckerWin.opener = window; + } +} + +function startCheck( wordWindowObj, controlWindowObj ) { + + // set properties from args + this.wordWin = wordWindowObj; + this.controlWin = controlWindowObj; + + // reset properties + this.wordWin.resetForm(); + this.controlWin.resetForm(); + this.currentTextIndex = 0; + this.currentWordIndex = 0; + // initialize the flags to an array - one element for each text input + this.wordFlags = new Array( this.wordWin.textInputs.length ); + // each element will be an array that keeps track of each word in the text + for( var i=0; i wi ) || i > ti ) { + // future word: set as "from ignore all" if + // 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] )) { + this._setAsIgnored( i, j, this.fromIgnrAll ); + } + } + } + } + + // finally, move on + this.currentWordIndex++; + this._spellcheck(); + return true; +} + +function replaceWord() { + var wi = this.currentWordIndex; + var ti = this.currentTextIndex; + if( !this.wordWin ) { + alert( 'Error: Word frame not available.' ); + return false; + } + if( !this.wordWin.getTextVal( ti, wi )) { + alert( 'Error: "Not in dictionary" text is missing' ); + return false; + } + if( !this.controlWin.replacementText ) { + return false ; + } + var txt = this.controlWin.replacementText; + if( txt.value ) { + var newspell = new String( txt.value ); + if( this._setWordText( ti, wi, newspell, this.replWordFlag )) { + this.currentWordIndex++; + this._spellcheck(); + } + } + return true; +} + +function replaceAll() { + var ti = this.currentTextIndex; + var wi = this.currentWordIndex; + if( !this.wordWin ) { + alert( 'Error: Word frame not available.' ); + return false; + } + var s_word_to_repl = this.wordWin.getTextVal( ti, wi ); + if( !s_word_to_repl ) { + alert( 'Error: "Not in dictionary" text is missing' ); + return false; + } + var txt = this.controlWin.replacementText; + if( !txt.value ) return false; + var newspell = new String( txt.value ); + + // set this word as a "replace all" word. + this._setWordText( ti, wi, newspell, this.replAllFlag ); + + // loop through all the words after this word + for( var i = ti; i < this.wordWin.textInputs.length; i++ ) { + 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 + // 2) have the same value as s_word_to_repl + if(( this.wordWin.getTextVal( i, j ) == s_word_to_repl ) + && ( !this.wordFlags[i][j] )) { + this._setWordText( i, j, newspell, this.fromReplAll ); + } + } + } + } + + // finally, move on + this.currentWordIndex++; + this._spellcheck(); + return true; +} + +function terminateSpell() { + // called when we have reached the end of the spell checking. + var msg = ""; // by FredCK + var numrepl = this._getTotalReplaced(); + if( numrepl == 0 ) { + // see if there were no misspellings to begin with + if( !this.wordWin ) { + msg = ""; + } else { + if( this.wordWin.totalMisspellings() ) { +// msg += "No words changed."; // by FredCK + msg += FCKLang.DlgSpellNoChanges ; // by FredCK + } else { +// msg += "No misspellings found."; // by FredCK + msg += FCKLang.DlgSpellNoMispell ; // by FredCK + } + } + } else if( numrepl == 1 ) { +// msg += "One word changed."; // by FredCK + msg += FCKLang.DlgSpellOneChange ; // by FredCK + } else { +// msg += numrepl + " words changed."; // by FredCK + msg += FCKLang.DlgSpellManyChanges.replace( /%1/g, numrepl ) ; + } + if( msg ) { +// msg += "\n"; // by FredCK + alert( msg ); + } + + if( numrepl > 0 ) { + // update the text field(s) on the opener window + for( var i = 0; i < this.textInputs.length; i++ ) { + // this.textArea.value = this.wordWin.text; + if( this.wordWin ) { + if( this.wordWin.textInputs[i] ) { + this.textInputs[i].value = this.wordWin.textInputs[i]; + } + } + } + } + + // return back to the calling window +// this.spellCheckerWin.close(); // by FredCK + if ( typeof( this.OnFinished ) == 'function' ) // by FredCK + this.OnFinished(numrepl) ; // by FredCK + + return true; +} + +function undo() { + // skip if this is the first word! + var ti = this.currentTextIndex; + var wi = this.currentWordIndex; + + if( this.wordWin.totalPreviousWords( ti, wi ) > 0 ) { + this.wordWin.removeFocus( ti, wi ); + + // go back to the last word index that was acted upon + do { + // if the current word index is zero then reset the seed + if( this.currentWordIndex == 0 && this.currentTextIndex > 0 ) { + this.currentTextIndex--; + this.currentWordIndex = this.wordWin.totalWords( this.currentTextIndex )-1; + if( this.currentWordIndex < 0 ) this.currentWordIndex = 0; + } else { + if( this.currentWordIndex > 0 ) { + this.currentWordIndex--; + } + } + } 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 + // and revert them all to the original spelling and clear their flags + case this.replAllFlag : + for( i = text_idx; i < this.wordWin.textInputs.length; i++ ) { + for( j = 0; j < this.wordWin.totalWords( i ); j++ ) { + if(( i == text_idx && j >= idx ) || i > text_idx ) { + origSpell = this.wordWin.originalSpellings[i][j]; + if( origSpell == preReplSpell ) { + this._setWordText ( i, j, origSpell, undefined ); + } + } + } + } + break; + + // ignore all: go through all the future occurances of the word + // and clear their flags + case this.ignrAllFlag : + for( i = text_idx; i < this.wordWin.textInputs.length; i++ ) { + for( j = 0; j < this.wordWin.totalWords( i ); j++ ) { + if(( i == text_idx && j >= idx ) || i > text_idx ) { + origSpell = this.wordWin.originalSpellings[i][j]; + if( origSpell == preReplSpell ) { + this.wordFlags[i][j] = undefined; + } + } + } + } + break; + + // replace: revert the word to its original spelling + case this.replWordFlag : + this._setWordText ( text_idx, idx, preReplSpell, undefined ); + break; + } + + // For all four cases, clear the wordFlag of this word. re-start the process + 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 ) { + this._spellcheck(); + return; + } else { + this.terminateSpell(); + return; + } + } + + // if this is after the first one make sure the Undo button is enabled + if( this.currentWordIndex > 0 ) { + this.controlWin.enableUndo(); + } + + // skip the current word if it has already been worked on + if( this.wordFlags[this.currentTextIndex][this.currentWordIndex] ) { + // increment the global current word index and move on. + this.currentWordIndex++; + this._spellcheck(); + } else { + var evalText = ww.getTextVal( this.currentTextIndex, this.currentWordIndex ); + if( evalText ) { + this.controlWin.evaluatedText.value = evalText; + ww.setFocus( this.currentTextIndex, this.currentWordIndex ); + this._getSuggestions( this.currentTextIndex, this.currentWordIndex ); + } + } +} + +function _getSuggestions( text_num, word_num ) { + this.controlWin.clearSuggestions(); + // 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]; + if( a_suggests ) { + // got an array of suggestions. + for( var ii = 0; ii < a_suggests.length; ii++ ) { + this.controlWin.addSuggestion( a_suggests[ii] ); + } + } + this.controlWin.selectDefaultSuggestion(); +} + +function _setAsIgnored( text_num, word_num, flag ) { + // set the UI + this.wordWin.removeFocus( text_num, word_num ); + // do the bookkeeping + this.wordFlags[text_num][word_num] = flag; + return true; +} + +function _getTotalReplaced() { + var i_replaced = 0; + for( var i = 0; i < this.wordFlags.length; i++ ) { + for( var j = 0; j < this.wordFlags[i].length; j++ ) { + if(( this.wordFlags[i][j] == this.replWordFlag ) + || ( this.wordFlags[i][j] == this.replAllFlag ) + || ( this.wordFlags[i][j] == this.fromReplAll )) { + i_replaced++; + } + } + } + return i_replaced; +} + +function _setWordText( text_num, word_num, newText, flag ) { + // set the UI and form inputs + this.wordWin.setText( text_num, word_num, newText ); + // keep track of what happened to this word: + this.wordFlags[text_num][word_num] = flag; + return true; +} + +function _getFormInputs( inputPattern ) { + var inputs = new Array(); + 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]; + } + } + } + return inputs; +} diff --git a/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html new file mode 100644 index 0000000..cbcd7db --- /dev/null +++ b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html @@ -0,0 +1,71 @@ + + + + + + +Speller Pages + + + + + + diff --git a/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css new file mode 100644 index 0000000..9928086 --- /dev/null +++ b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css @@ -0,0 +1,49 @@ +.blend { + font-family: courier new; + font-size: 10pt; + border: 0; + margin-bottom:-1; +} +.normalLabel { + font-size:8pt; +} +.normalText { + font-family:arial, helvetica, sans-serif; + font-size:10pt; + color:000000; + background-color:FFFFFF; +} +.plainText { + font-family: courier new, courier, monospace; + font-size: 10pt; + color:000000; + background-color:FFFFFF; +} +.controlWindowBody { + font-family:arial, helvetica, sans-serif; + font-size:8pt; + padding: 7px ; /* by FredCK */ + margin: 0px ; /* by FredCK */ + /* color:000000; by FredCK */ + /* background-color:DADADA; by FredCK */ +} +.readonlyInput { + background-color:DADADA; + color:000000; + font-size:8pt; + width:392px; +} +.textDefault { + font-size:8pt; + width: 200px; +} +.buttonDefault { + width:90px; + height:22px; + font-size:8pt; +} +.suggSlct { + width:200px; + margin-top:2; + font-size:8pt; +} diff --git a/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js new file mode 100644 index 0000000..7990296 --- /dev/null +++ b/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js @@ -0,0 +1,272 @@ +//////////////////////////////////////////////////// +// wordWindow object +//////////////////////////////////////////////////// +function wordWindow() { + // private properties + this._forms = []; + + // private methods + this._getWordObject = _getWordObject; + //this._getSpellerObject = _getSpellerObject; + this._wordInputStr = _wordInputStr; + this._adjustIndexes = _adjustIndexes; + this._isWordChar = _isWordChar; + this._lastPos = _lastPos; + + // public properties + this.wordChar = /[a-zA-Z]/; + this.windowType = "wordWindow"; + this.originalSpellings = new Array(); + this.suggestions = new Array(); + this.checkWordBgColor = "pink"; + this.normWordBgColor = "white"; + this.text = ""; + this.textInputs = new Array(); + this.indexes = new Array(); + //this.speller = this._getSpellerObject(); + + // public methods + this.resetForm = resetForm; + this.totalMisspellings = totalMisspellings; + this.totalWords = totalWords; + this.totalPreviousWords = totalPreviousWords; + //this.getTextObjectArray = getTextObjectArray; + this.getTextVal = getTextVal; + this.setFocus = setFocus; + this.removeFocus = removeFocus; + this.setText = setText; + //this.getTotalWords = getTotalWords; + this.writeBody = writeBody; + this.printForHtml = printForHtml; +} + +function resetForm() { + if( this._forms ) { + for( var i = 0; i < this._forms.length; i++ ) { + this._forms[i].reset(); + } + } + return true; +} + +function totalMisspellings() { + var total_words = 0; + for( var i = 0; i < this.textInputs.length; i++ ) { + total_words += this.totalWords( i ); + } + return total_words; +} + +function totalWords( textIndex ) { + return this.originalSpellings[textIndex].length; +} + +function totalPreviousWords( textIndex, wordIndex ) { + var total_words = 0; + for( var i = 0; i <= textIndex; i++ ) { + for( var j = 0; j < this.totalWords( i ); j++ ) { + if( i == textIndex && j == wordIndex ) { + break; + } else { + total_words++; + } + } + } + return total_words; +} + +//function getTextObjectArray() { +// return this._form.elements; +//} + +function getTextVal( textIndex, wordIndex ) { + var word = this._getWordObject( textIndex, wordIndex ); + if( word ) { + return word.value; + } +} + +function setFocus( textIndex, wordIndex ) { + var word = this._getWordObject( textIndex, wordIndex ); + if( word ) { + if( word.type == "text" ) { + word.focus(); + word.style.backgroundColor = this.checkWordBgColor; + } + } +} + +function removeFocus( textIndex, wordIndex ) { + var word = this._getWordObject( textIndex, wordIndex ); + if( word ) { + if( word.type == "text" ) { + word.blur(); + word.style.backgroundColor = this.normWordBgColor; + } + } +} + +function setText( textIndex, wordIndex, newText ) { + var word = this._getWordObject( textIndex, wordIndex ); + var beginStr; + var endStr; + if( word ) { + var pos = this.indexes[textIndex][wordIndex]; + 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 + ); + this.textInputs[textIndex] = beginStr + newText + endStr; + + // 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 ); + } +} + + +function writeBody() { + var d = window.document; + var is_html = false; + + d.open(); + + // iterate through each text input. + for( var txtid = 0; txtid < this.textInputs.length; txtid++ ) { + var end_idx = 0; + var begin_idx = 0; + d.writeln( '
      ' ); + var wordtxt = this.textInputs[txtid]; + this.indexes[txtid] = []; + + if( wordtxt ) { + var orig = this.originalSpellings[txtid]; + if( !orig ) break; + + //!!! plain text, or HTML mode? + d.writeln( '
      ' ); + // 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. + // 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 + // 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 ) + || this._isWordChar( after_char ) + ); + + // keep track of its position in the original text. + this.indexes[txtid][i] = begin_idx; + + // write out the characters before the current misspelled word + for( var j = this._lastPos( txtid, i ); j < begin_idx; j++ ) { + // !!! html mode? make it html compatible + d.write( this.printForHtml( wordtxt.charAt( j ))); + } + + // 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( '
      ' ); + + } + d.writeln( '
      ' ); + } + //for ( var j = 0; j < d.forms.length; j++ ) { + // alert( d.forms[j].name ); + // 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(); +} + +// return the character index in the full text after the last word we evaluated +function _lastPos( txtid, idx ) { + if( idx > 0 ) + return this.indexes[txtid][idx-1] + this.originalSpellings[txtid][idx-1].length; + else + return 0; +} + +function printForHtml( n ) { + return n ; // by FredCK +/* + var htmlstr = n; + if( htmlstr.length == 1 ) { + // do simple case statement if it's just one character + switch ( n ) { + case "\n": + htmlstr = '
      '; + break; + case "<": + htmlstr = '<'; + break; + case ">": + htmlstr = '>'; + break; + } + return htmlstr; + } else { + htmlstr = htmlstr.replace( //g, '>' ); + htmlstr = htmlstr.replace( /\n/g, '
      ' ); + return htmlstr; + } +*/ +} + +function _isWordChar( letter ) { + if( letter.search( this.wordChar ) == -1 ) { + return false; + } else { + return true; + } +} + +function _getWordObject( textIndex, wordIndex ) { + if( this._forms[textIndex] ) { + if( this._forms[textIndex].elements[wordIndex] ) { + return this._forms[textIndex].elements[wordIndex]; + } + } + return null; +} + +function _wordInputStr( word ) { + var str = ''; + return str; +} + +function _adjustIndexes( textIndex, wordIndex, lengthDiff ) { + for( var i = wordIndex + 1; i < this.originalSpellings[textIndex].length; i++ ) { + this.indexes[textIndex][i] = this.indexes[textIndex][i] + lengthDiff; + } +} diff --git a/fckeditor/editor/dialog/fck_table.html b/fckeditor/editor/dialog/fck_table.html new file mode 100644 index 0000000..e3792d7 --- /dev/null +++ b/fckeditor/editor/dialog/fck_table.html @@ -0,0 +1,298 @@ + + + + + Table Properties + + + + + + + + + + +
      + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + +
      + Rows: +  
      + Columns: +  
      +   +  
      + Border size: +  
      + Alignment: +  
      +
      +     + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + Width: +   +  
      + Height: +   +  pixels
      +   +   +  
      + Cell spacing: +   +  
      + Cell padding: +   +  
      +
      + + + + + + + + + + + +
      + Caption +   +
      + Summary +   +
      +
      + + diff --git a/fckeditor/editor/dialog/fck_tablecell.html b/fckeditor/editor/dialog/fck_tablecell.html new file mode 100644 index 0000000..3d74296 --- /dev/null +++ b/fckeditor/editor/dialog/fck_tablecell.html @@ -0,0 +1,257 @@ + + + + + Table Cell Properties + + + + + + + + + + +
      + + + + + + +
      + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + Width: +   
      + Height: +   pixels
      +   +  
      + Word Wrap: +  
      +   +  
      + Horizontal Alignment: +  
      + Vertical Alignment: +  
      +
      +     + + + + + + + + + + + + + + + + + + + + + + + + + + +
      + Rows Span: +   + +
      + Columns Span: +   + +
      +   +   +  
      + Background Color: +   +   +
      + Border Color: +   +   +
      +
      +
      + + diff --git a/fckeditor/editor/dialog/fck_template.html b/fckeditor/editor/dialog/fck_template.html new file mode 100644 index 0000000..4f3629b --- /dev/null +++ b/fckeditor/editor/dialog/fck_template.html @@ -0,0 +1,242 @@ + + + + + + + + + + + + + + + + + + + + + + +
      + Please select the template to open in the editor
      + (the actual contents will be lost):
      +
      +
      + + +
      +
      + + diff --git a/fckeditor/editor/dialog/fck_template/images/template1.gif b/fckeditor/editor/dialog/fck_template/images/template1.gif new file mode 100644 index 0000000000000000000000000000000000000000..efdabbebd4503ceb55c948fa73b9b83cbd373e57 GIT binary patch literal 375 zcmV--0f_!bNk%w1VPpVC0FeLyva+%O00960{{R30A^8LV00000EC2ui0Av7000092 zgpaAq?GK}zwAu@W-n{z{hT=$;9b%^H%BpA!$8!13_AS@=&Xal%3~GMDB95pDD3{Ep z^T{;k4xj+g%7JRP+$IPq!1Bb&uKB$DQa@x|8x8NO4b`hO25#TOnRw~9=3yE0xyeE4CQ8$(2)Mz>8udZCXX=BRr7DZbW_#-a zYZEHlJM(KAEc4dditDMnJ4(CC+&uK06fIp0D*Z|wX5EYpGb{?;a*WKVoEoWp!Y!`y zeo4*}FFC(bZf@duda#%D-q zaHzPUxA@lRm;@PFNk%w1VPpVC0FeLyva+%O00960{{R30A^8LV00000EC2ui0Av7000092 zgpaAq?GK}zwAu@W-n{z{hT=$;9b%^H%BpA!$8!13_AS@=&Xal%3~GMDB93TG#*l%g z^9hYgr_`$T`us4l+^+W<)gC_JviY3#AeC&_xD98m<8-m1jvsB&<_@0q~XXRsCap^IRqK$(K#c!N9pBf82AawVH$?WN){q&IjedXiz+EX zOS+od%WDgp+d909toAG5`lTy-9D18rOxWx+T}>D*o&1Qa9n5V^96nACtqfi*?*05t zZSMX~zfpQ^<%jRPUfiDEO8=eEuB)DKv}S_cJW8uTxqL`=(AMXYB~Aenu4SM=e_ zrj6M`kqsZ_xrlC}y^5evW>krApudqWP2zFM5Fo{b%sA$2wGU)SI5vkKVQCad(WEn$ zGF`IFr&KONpB8ayRSwduHn4I{;q@zxs8h=VDkqjl*t8(;n#c+zd*_U=jy QeEa(S3plV~2n7HDJNoX*`2YX_ literal 0 HcmV?d00001 diff --git a/fckeditor/editor/dialog/fck_textarea.html b/fckeditor/editor/dialog/fck_textarea.html new file mode 100644 index 0000000..3a1c56d --- /dev/null +++ b/fckeditor/editor/dialog/fck_textarea.html @@ -0,0 +1,94 @@ + + + + + Text Area Properties + + + + + + + + + + +
      + + + + +
      + Name
      + + Collumns
      + +
      + Rows
      + +
      +
      + + diff --git a/fckeditor/editor/dialog/fck_textfield.html b/fckeditor/editor/dialog/fck_textfield.html new file mode 100644 index 0000000..cf3ce03 --- /dev/null +++ b/fckeditor/editor/dialog/fck_textfield.html @@ -0,0 +1,136 @@ + + + + + + + + + + + + + + + +
      + + + + + + + + + + + + + + + + +
      + Name
      + +
      + + Value
      + +
      + Character Width
      + +
      + + Maximum Characters
      + +
      + Type
      + +
      +   +
      +
      + + diff --git a/fckeditor/editor/dtd/fck_dtd_test.html b/fckeditor/editor/dtd/fck_dtd_test.html new file mode 100644 index 0000000..c149d15 --- /dev/null +++ b/fckeditor/editor/dtd/fck_dtd_test.html @@ -0,0 +1,41 @@ + + + + DTD Test Page + + + + + +

      + DTD Contents +

      + + +
      + + diff --git a/fckeditor/editor/dtd/fck_xhtml10strict.js b/fckeditor/editor/dtd/fck_xhtml10strict.js new file mode 100644 index 0000000..0849b52 --- /dev/null +++ b/fckeditor/editor/dtd/fck_xhtml10strict.js @@ -0,0 +1,116 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Contains the DTD mapping for XHTML 1.0 Strict. + * This file was automatically generated from the file: xhtml10-strict.dtd + */ +FCK.DTD = (function() +{ + var X = FCKTools.Merge ; + + var H,I,J,K,C,L,M,A,B,D,E,G,N,F ; + A = {ins:1, del:1, script:1} ; + B = {hr:1, ul:1, div:1, blockquote:1, noscript:1, table:1, address:1, pre:1, p:1, h5:1, dl:1, h4:1, ol:1, h6:1, h1:1, h3:1, h2:1} ; + C = X({fieldset:1}, B) ; + D = X({sub:1, bdo:1, 'var':1, sup:1, br:1, kbd:1, map:1, samp:1, b:1, acronym:1, '#':1, abbr:1, code:1, i:1, cite:1, tt:1, strong:1, q:1, em:1, big:1, small:1, span:1, dfn:1}, A) ; + E = X({img:1, object:1}, D) ; + F = {input:1, button:1, textarea:1, select:1, label:1} ; + G = X({a:1}, F) ; + H = {img:1, noscript:1, br:1, kbd:1, button:1, h5:1, h4:1, samp:1, h6:1, ol:1, h1:1, h3:1, h2:1, form:1, select:1, '#':1, ins:1, abbr:1, label:1, code:1, table:1, script:1, cite:1, input:1, strong:1, textarea:1, big:1, small:1, span:1, hr:1, sub:1, bdo:1, 'var':1, div:1, object:1, sup:1, map:1, dl:1, del:1, fieldset:1, ul:1, b:1, acronym:1, a:1, blockquote:1, i:1, address:1, tt:1, q:1, pre:1, p:1, em:1, dfn:1} ; + + I = X({form:1, fieldset:1}, B, E, G) ; + J = {tr:1} ; + K = {'#':1} ; + L = X(E, G) ; + M = {li:1} ; + N = X({form:1}, A, C) ; + + return { + col: {}, + tr: {td:1, th:1}, + img: {}, + colgroup: {col:1}, + noscript: N, + td: I, + br: {}, + th: I, + kbd: L, + button: X(B, E), + h5: L, + h4: L, + samp: L, + h6: L, + ol: M, + h1: L, + h3: L, + option: K, + h2: L, + form: X(A, C), + select: {optgroup:1, option:1}, + ins: I, + abbr: L, + label: L, + code: L, + table: {thead:1, col:1, tbody:1, tr:1, colgroup:1, caption:1, tfoot:1}, + script: K, + tfoot: J, + cite: L, + li: I, + input: {}, + strong: L, + textarea: K, + big: L, + small: L, + span: L, + dt: L, + hr: {}, + sub: L, + optgroup: {option:1}, + bdo: L, + param: {}, + 'var': L, + div: I, + object: X({param:1}, H), + sup: L, + dd: I, + area: {}, + map: X({form:1, area:1}, A, C), + dl: {dt:1, dd:1}, + del: I, + fieldset: X({legend:1}, H), + thead: J, + ul: M, + acronym: L, + b: L, + a: X({img:1, object:1}, D, F), + blockquote: N, + caption: L, + i: L, + tbody: J, + address: L, + tt: L, + legend: L, + q: L, + pre: X({a:1}, D, F), + p: L, + em: L, + dfn: L + } ; +})() ; diff --git a/fckeditor/editor/dtd/fck_xhtml10transitional.js b/fckeditor/editor/dtd/fck_xhtml10transitional.js new file mode 100644 index 0000000..5857ea9 --- /dev/null +++ b/fckeditor/editor/dtd/fck_xhtml10transitional.js @@ -0,0 +1,140 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Contains the DTD mapping for XHTML 1.0 Transitional. + * This file was automatically generated from the file: xhtml10-transitional.dtd + */ +FCK.DTD = (function() +{ + var X = FCKTools.Merge ; + + var A,L,J,M,N,O,D,H,P,K,Q,F,G,C,B,E,I ; + A = {isindex:1, fieldset:1} ; + B = {input:1, button:1, select:1, textarea:1, label:1} ; + C = X({a:1}, B) ; + D = X({iframe:1}, C) ; + E = {hr:1, ul:1, menu:1, div:1, blockquote:1, noscript:1, table:1, center:1, address:1, dir:1, pre:1, h5:1, dl:1, h4:1, noframes:1, h6:1, ol:1, h1:1, h3:1, h2:1} ; + F = {ins:1, del:1, script:1} ; + G = X({b:1, acronym:1, bdo:1, 'var':1, '#':1, abbr:1, code:1, br:1, i:1, cite:1, kbd:1, u:1, strike:1, s:1, tt:1, strong:1, q:1, samp:1, em:1, dfn:1, span:1}, F) ; + H = X({sub:1, img:1, object:1, sup:1, basefont:1, map:1, applet:1, font:1, big:1, small:1}, G) ; + I = X({p:1}, H) ; + J = X({iframe:1}, H, B) ; + K = {img:1, noscript:1, br:1, kbd:1, center:1, button:1, basefont:1, h5:1, h4:1, samp:1, h6:1, ol:1, h1:1, h3:1, h2:1, form:1, font:1, '#':1, select:1, menu:1, ins:1, abbr:1, label:1, code:1, table:1, script:1, cite:1, input:1, iframe:1, strong:1, textarea:1, noframes:1, big:1, small:1, span:1, hr:1, sub:1, bdo:1, 'var':1, div:1, object:1, sup:1, strike:1, dir:1, map:1, dl:1, applet:1, del:1, isindex:1, fieldset:1, ul:1, b:1, acronym:1, a:1, blockquote:1, i:1, u:1, s:1, tt:1, address:1, q:1, pre:1, p:1, em:1, dfn:1} ; + + L = X({a:1}, J) ; + M = {tr:1} ; + N = {'#':1} ; + O = X({param:1}, K) ; + P = X({form:1}, A, D, E, I) ; + Q = {li:1} ; + + return { + col: {}, + tr: {td:1, th:1}, + img: {}, + colgroup: {col:1}, + noscript: P, + td: P, + br: {}, + th: P, + center: P, + kbd: L, + button: X(I, E), + basefont: {}, + h5: L, + h4: L, + samp: L, + h6: L, + ol: Q, + h1: L, + h3: L, + option: N, + h2: L, + form: X(A, D, E, I), + select: {optgroup:1, option:1}, + font: J, // Changed from L to J (see (1)) + ins: P, + menu: Q, + abbr: L, + label: L, + table: {thead:1, col:1, tbody:1, tr:1, colgroup:1, caption:1, tfoot:1}, + code: L, + script: N, + tfoot: M, + cite: L, + li: P, + input: {}, + iframe: P, + strong: J, // Changed from L to J (see (1)) + textarea: N, + noframes: P, + big: J, // Changed from L to J (see (1)) + small: J, // Changed from L to J (see (1)) + span: J, // Changed from L to J (see (1)) + hr: {}, + dt: L, + sub: J, // Changed from L to J (see (1)) + optgroup: {option:1}, + param: {}, + bdo: L, + 'var': J, // Changed from L to J (see (1)) + div: P, + object: O, + sup: J, // Changed from L to J (see (1)) + dd: P, + strike: J, // Changed from L to J (see (1)) + area: {}, + dir: Q, + map: X({area:1, form:1, p:1}, A, F, E), + applet: O, + dl: {dt:1, dd:1}, + del: P, + isindex: {}, + fieldset: X({legend:1}, K), + thead: M, + ul: Q, + acronym: L, + b: J, // Changed from L to J (see (1)) + a: J, + blockquote: P, + caption: L, + i: J, // Changed from L to J (see (1)) + u: J, // Changed from L to J (see (1)) + tbody: M, + s: L, + address: X(D, I), + tt: J, // Changed from L to J (see (1)) + legend: L, + q: L, + pre: X(G, C), + p: L, + em: J, // Changed from L to J (see (1)) + dfn: L + } ; +})() ; + +/* + Notes: + (1) According to the DTD, many elements, like accept elements + inside of them. But, to produce better output results, we have manually + changed the map to avoid breaking the links on pieces, having + "this is a link test", instead of + "this is a link test". +*/ diff --git a/fckeditor/editor/fckdebug.html b/fckeditor/editor/fckdebug.html new file mode 100644 index 0000000..ddb6224 --- /dev/null +++ b/fckeditor/editor/fckdebug.html @@ -0,0 +1,153 @@ + + + + + FCKeditor Debug Window + + + + + + + + + + + +
      + + + + + +
      + FCKeditor Debug Window +
      +
      + +
      + + diff --git a/fckeditor/editor/fckdialog.html b/fckeditor/editor/fckdialog.html new file mode 100644 index 0000000..4bbc369 --- /dev/null +++ b/fckeditor/editor/fckdialog.html @@ -0,0 +1,812 @@ + + + + + + + + + + +
      + +
      +
      + + + + + +
        + +   + +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      +
      + + + + + diff --git a/fckeditor/editor/fckeditor.html b/fckeditor/editor/fckeditor.html new file mode 100644 index 0000000..aba4c48 --- /dev/null +++ b/fckeditor/editor/fckeditor.html @@ -0,0 +1,317 @@ + + + + + FCKeditor + + + + + + + + + + + + + + + + + + + +
      + + diff --git a/fckeditor/editor/fckeditor.original.html b/fckeditor/editor/fckeditor.original.html new file mode 100644 index 0000000..5291486 --- /dev/null +++ b/fckeditor/editor/fckeditor.original.html @@ -0,0 +1,424 @@ + + + + + FCKeditor + + + + + + + + + + + + + + + + + + + +
      + + diff --git a/fckeditor/editor/filemanager/browser/default/browser.css b/fckeditor/editor/filemanager/browser/default/browser.css new file mode 100644 index 0000000..9483308 --- /dev/null +++ b/fckeditor/editor/filemanager/browser/default/browser.css @@ -0,0 +1,87 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * CSS styles used by all pages that compose the File Browser. + */ + +body +{ + background-color: #f1f1e3; + margin-top:0; + margin-bottom:0; +} + +form +{ + margin: 0; + padding: 0; +} + +.Frame +{ + background-color: #f1f1e3; + border: thin inset #f1f1e3; +} + +body.FileArea +{ + background-color: #ffffff; + margin: 10px; +} + +body, td, input, select +{ + font-size: 11px; + font-family: 'Microsoft Sans Serif' , Arial, Helvetica, Verdana; +} + +.ActualFolder +{ + font-weight: bold; + font-size: 14px; +} + +.PopupButtons +{ + border-top: #d5d59d 1px solid; + background-color: #e3e3c7; + padding: 7px 10px 7px 10px; +} + +.Button, button +{ + color: #3b3b1f; + border: #737357 1px solid; + background-color: #c7c78f; +} + +.FolderListCurrentFolder img +{ + background-image: url(images/FolderOpened.gif); +} + +.FolderListFolder img +{ + background-image: url(images/Folder.gif); +} + +.fullHeight { + height: 100%; +} diff --git a/fckeditor/editor/filemanager/browser/default/browser.html b/fckeditor/editor/filemanager/browser/default/browser.html new file mode 100644 index 0000000..7a7e920 --- /dev/null +++ b/fckeditor/editor/filemanager/browser/default/browser.html @@ -0,0 +1,200 @@ + + + + + FCKeditor - Resources Browser + + + + + + + + + + + + + + + + + + + + + diff --git a/fckeditor/editor/filemanager/browser/default/frmactualfolder.html b/fckeditor/editor/filemanager/browser/default/frmactualfolder.html new file mode 100644 index 0000000..1b70fa9 --- /dev/null +++ b/fckeditor/editor/filemanager/browser/default/frmactualfolder.html @@ -0,0 +1,95 @@ + + + + + Folder path + + + + + + + + + +
      + +
      + + diff --git a/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html b/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html new file mode 100644 index 0000000..01ca135 --- /dev/null +++ b/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html @@ -0,0 +1,114 @@ + + + + + Create Folder + + + + + + + + + + +
      + +
      + + diff --git a/fckeditor/editor/filemanager/browser/default/frmfolders.html b/fckeditor/editor/filemanager/browser/default/frmfolders.html new file mode 100644 index 0000000..58a3c61 --- /dev/null +++ b/fckeditor/editor/filemanager/browser/default/frmfolders.html @@ -0,0 +1,198 @@ + + + + + Folders + + + + + + + + + + + +
      + + diff --git a/fckeditor/editor/filemanager/browser/default/frmresourceslist.html b/fckeditor/editor/filemanager/browser/default/frmresourceslist.html new file mode 100644 index 0000000..e7d0e8e --- /dev/null +++ b/fckeditor/editor/filemanager/browser/default/frmresourceslist.html @@ -0,0 +1,169 @@ + + + + + Resources + + + + + + + + diff --git a/fckeditor/editor/filemanager/browser/default/frmresourcetype.html b/fckeditor/editor/filemanager/browser/default/frmresourcetype.html new file mode 100644 index 0000000..4e87312 --- /dev/null +++ b/fckeditor/editor/filemanager/browser/default/frmresourcetype.html @@ -0,0 +1,69 @@ + + + + + Available types + + + + + + + + + + +
      + Resource Type
      + +
      + + diff --git a/fckeditor/editor/filemanager/browser/default/frmupload.html b/fckeditor/editor/filemanager/browser/default/frmupload.html new file mode 100644 index 0000000..e806832 --- /dev/null +++ b/fckeditor/editor/filemanager/browser/default/frmupload.html @@ -0,0 +1,115 @@ + + + + + File Upload + + + + + + +
      + + + + +
      + Upload a new file in this folder
      + + + + + +
       
      +
      +
      + + diff --git a/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif b/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif new file mode 100644 index 0000000000000000000000000000000000000000..a355e5a449014d40f6e686aec027356b9e72c626 GIT binary patch literal 138 zcmZ?wbhEHb?doRyP?sz1@R%qk?NW&|^ p|eTtnS=Y)v`XcZE0Wm%(S+{n>TgunLDTH*uh2T&!5`4%$c3C%y;hIyZ_+f R9g8PVpFMx^^0^>`H30UMeqjIr literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif b/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif new file mode 100644 index 0000000000000000000000000000000000000000..0c5dd413efe52ef8df245c62d38abd3fb5531faf GIT binary patch literal 132 zcmZ?wbhEHb6krfwSj5I~?p*T!b93g*Vfg=l&j0`a85n>J5UKc+g^_`QjX?*<2C5Wb zU|{yl*mXxoV3&KA=w%M0D)qo6IdPeS4hsuYt(PRqFy=dMJ1DS(;Y^uj?AqnKDvKH$ h4uqvBmU_;}`s(90J$U9C1Ji>22?c3Bc`6JH)&Op|Ft`8! literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif b/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif new file mode 100644 index 0000000000000000000000000000000000000000..3e3fcf56cc471cb8f44c5edb5f23407f120b75a9 GIT binary patch literal 264 zcmV+j0r&n#Nk%w1VITk?0HOx~fPet_`1s7sW&i*HnVA6p%$fiHng9R)A^8LW000L7 zEC2ui03ZM$000Bcc)HyFFv{78y_ZT7y6*y^J)B{lXE-t?>Kf|WzJ*zbST3@`>l>e7 zXTYP`jx|Fqxg-!3v!5%8G&mPg=26MzE|piEc$^ay3Qmr2&HfAsp|@13xD0Kw@Z;yk4lxJy}TbYwv1&v{IeS%6~q)(8cfvHH9 z1FWAXijuHrXtPjLUZ*y?s=NoSsJ^hlX9AX3p}@()!dFnYxLu3VoKMAM-ecScv*YCD O=I1Nv>g((j2>?5Tf_QiU literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif b/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif new file mode 100644 index 0000000000000000000000000000000000000000..ad5bc202670bfa12195e767c28050b236089e940 GIT binary patch literal 132 zcmV-~0DJ#ONk%w1VGsZi0HOx~_xJbz|IYu;oSd8h&dy{1|C|5-0RR90A^8LW000L7 zEC2ui01yBW0009?c)Hv>5E}PD2&Iha2KgWnMapoU=v5GtnPtYC3GCs*Ml2M2edj

      h0KmVcuWJD*FM9~M9v0;0gPtyf2D4lb<@_VjwB*Bz)~b>#zfjC@IsD5w|Oidff-V#g8}2kNqXb| z3*=vg3;-`U_%`_V2~bM`Zz#+RT^Sx39b;sQ1LKpSLm`J&E4zlMTrP)fis|!OD8)8jZh1;Bx0l-= z|5olUpD))!On*&71F@oVS4HgTQTv+9Iq!CAXG00xRC*#ce9p0;gBC#?#*V6(fm&gZ6(iJ-?<*$cbd*Pk~-cu8ti%)$w~m zF}hZExT5MvJfM2lQ43BrJ}jtiY)z1z1`ujO>Tf(rd_j!es+s?@v3Z@+H#wzy1)VN~ z@>^29db%?9H2l8(hXn%^4iv!}88EbHo(0)mmo&(%=?eP|btA=e;a;G2Q0DP z{-2wtWFHm{1TQkUDOA}p5{MVR_NXWH$j~Q!`r_`FL9mV*0)_R8X_@LhsNeFX+sNR+ zSfg*(_dLbjNJHJs(*8ZS&&0=-PQx#BQM^m*xk9gs-%qS znBFlNEK&BnY6)r2oZVd1)G6?=(lHPMAXN*g^vz7X7pY-0Z6&Aw2(%UNZ;9`9D~)47 zrrC(Kl^)sZ>YQrb0&SZ5`MJ2}gUe;0&|w@Y2TdTqQnY+2%QP)b0SNt_6c z?vCNb#g{jS zqzS1F7Yi`j+&oF3vk@0`c_AlBY-{D z_{yQ;#4A33CbnP$uv<4j5!vO4<#7+FSQ$k_Zp>IRAV4-*NE~_OF;=T}DqVd0X!Bwp wStD5{bcIq>&_CW_%>cTRhtqE{M<8rT)nil z!>wDl1_cGpIX9=cxY)_bDS6JhrAwC@0;zN7lIJ9Qd3jyCc5Tj_ImyXD;@rJ^_ma;g z8yY5`d;cG#;{UlRQ>F+A2pqe249Ed0F-%To`2XJ!Xvn$mii(QIjvZ@hX<_)!zyK8e z52b({B7x#h7DfgJLk1m?dXS$O*!~}wQ6SMQ*?%Hs(g~SEVHZ}EoNC$|w?XZ5<=d*g ztFz3tLuQ?K`?%vx*6#ZsEPVF1?cDu#wReB{`LnL&mDMf!E$w>6I^8|>%FP4+RFsZbl(HUW2zRj7*mpIc#(i7%CXAa&G$1 zb$HJi?&sBSc@@$XSXf!41ycM4mR3*HJEyr}!-dTZEo^K(lB@3>s9p2_-O+~A4J>>T HEDY8FY?%te literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif b/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif new file mode 100644 index 0000000000000000000000000000000000000000..b62bd026061c32a9c6e5e0b7bb0f63f29e2b3dff GIT binary patch literal 224 zcmZ?wbhEHbRA5kGSj5J_(8AEt(sJzBF^2yPK=2<7fDFZ-EQ|~cYz#UeQIJ{&=A{`~ z7yn&Y>lvzH@j8}i<%6w^G1qDysAQ$w*7Cw zb)JWJSY*qv{Jo}@*85%ep#_^mxz@^Ek!v|my$+pkc#iYHgR|<)Hv*145}Xzy*?#uy zW+72u^}VkibX`f?;iJ!XMxcLs>SwXJYbV{lxV?&3^z_y8;(O=jz293O)tFaX(OQ+m V(AC}3+t;1pIBD{fscM`I)&R&*NlyR( literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif b/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif new file mode 100644 index 0000000000000000000000000000000000000000..9b54964576b86bdff354807f15bf8d7b45c26a87 GIT binary patch literal 258 zcmZ?wbhEHbRA5kGSj5KA(!y};*s+$DmjC}5fZ#tE02zuuSr{1@*cfy`q9C;l%*Qjd z?)>vVsp-1YB3p;!?=`iwp6{W_Q5=rtdap9Js!4P!*0z~@{&9%b7hSQiZSf+3>%l=4 zbC?{xRHYJ^JbD!_YN>wVRmm#fINl3>={^y&r(Zh2+A*{0{Dp5OF3+;}xtHpSu`tBg zGna`sL=;C?F*CGG>|*W7kZQMY%L(e5o+#PMJTG{P!~)G$mL+Rfuc**k!@v;4&?&i6 zd2`3?whaZ+?fYX6_}i99@A5dc@yywS=ck>!bS&ZO&I-occkbT1e<$7H@sp>|OgR~> E0d_=epa1{> literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif b/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif new file mode 100644 index 0000000000000000000000000000000000000000..b557568b3d1ca19f9520b38a4c74de4e4abe0301 GIT binary patch literal 260 zcmZ?wbhEHbRA5kGSj5WE($aG5*f9o%{|rD320#W7DE?$&WME)r&;fBkY8jYMM(kq! zXJF^1sbKNi_rQt=M|)>{Hf)}-F6;CphX;mvXV)1h&Uf|7+UJv?arlkMs(3X`m9CP_ zv)3+@oW^!z&6Ep|?ycG7>(EguSdif;%5!b$-mI&xN9DLr?#s-QF^TF-@eHzvD|N|b zOf4v2R;u;NYnoIoQPMuWEU$95PkPn_w-&EyGa42)SIuA0xw3g_dy3)$ug*<%>t}2f z_1`SBb+_-1>AS@Cs_Z|y`tZVS$C7M#_MAI&;Bx2%Zo@;jPiRElfABCu;mOly&tE8T HGFSruuDNnD literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif b/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif new file mode 100644 index 0000000000000000000000000000000000000000..758499394afc5814b9da3e02d6b2996623ea3ece GIT binary patch literal 170 zcmZ?wbhEHbRA5kGSj5V3?AWoEmKKKp{}~v71PA~bK%n@Og^_`Ql|cu@0jXtR&X3r2 z=bynT&((V^Uh}fgcb2F-r!c4K#l%&et8O!#Y3N#3U@Bnaczx0Bu1&8c>vg>^p7?UH zZNaiF>{E4?pUHaCwNz`jZ!Y_szmxXvGM=^K87~uK*>B$dd{+jey?NVLeM+n`tOzMk R;r49r>h9_76XRsC1^{%DM?C-l literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif b/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif new file mode 100644 index 0000000000000000000000000000000000000000..923079fc6bbc36b0f3cef03c381d42fb9962c753 GIT binary patch literal 946 zcmdUs-ET{A9EZO<+S9YC?Wob8m!v&2wj#5`EE?U~b1XJhOV`LE=R#U_A%>LBTk4|S zDr>A5I=U%J+YM1$%pthhOzORHK?$-Hd%=a%c}WpTjsL=P_1t})AeVLSTYuigUXan3z0}9Eu?9h z4g>-bhr_|LX#{*U>a$wohya=sD6q38WU|M2-pz4VO66u*f^)O9+M!lQeLk<%>M)rS z@wg8m9uWb%T~Db3Za0TeOoiOEDnX+NMMe>+W=#Q_8XFq2BNU$qP77YIcVbf*696Fd zj|ur7p?-?809aV`H~#M@Ajvq{CbpuYvZaL}@K*dVj_I0@`ubTVq)>xVDrh4rms5^3Spr$J-t`?u;zkBE4#^Dz7jki4oSKP`v#fm9opMHCnZ;} zz1GBI{`)<+KP-zs;Tg$M-Djcl;f+t)SC6%Q2YyxP#?LXbXR8Ot7T)hy{Qg~6P_(9= zkQdf^l{=`riw%{(Tm{ue)-_qW)%G&WtZSVquZKD9wz*vvb@{U-2|A~ACfIDf%*e$P z?cUS3lIChBh={$LNy`98ZaqW`&r0BuD z4e~{vlsT1)@1B+?J7{TnC0!%;?@hifwn#f%#%SZ*H~5S4*^M6Md&ZgN-V?5w@~~=t z{vj(Nr0)EH;qJQ9o~mu@T=}_;Ri6HWl}~Q2nBysSj+e}{F=hLUxurkNGZZr8)2@BH zc*QJFQiqE)DV<5`2@a_I-->GXJTEl6a!_e0hA-#`rlP|j&e=bb4-A%VXakYh*qgmk zvHe)KIKK@GwKB_#Mav3D*S`~KYRv;jX8bUE+RCqgjUTO z!>wDl1_cGpIX9=cxY)_bDS6JhrAwC@0;zN7lIJ9Qd3jyCc5Tj_ImyXD;@rJ^_ma;g z8yY5`d;cG#;{UlRQ>F+A2pqe249Ed0F-%To`2XJ!Xvn$mii(QIjvZ@hX<=w#VE7Ld z{?7oU!6cAD3{d>Z!pOj2$e;sK4Du5L+y4VI3M85(`%k1yIw5l??81tYQ%!s0HmH5B zd|S15b(Xny$gJ~jA9viz+I|0nh0or$qwC-1oqj!Uc6Wh(V`Y&}TYG3|b5l!oMQw0E zU2}DBPkvau_T>@iN3<4dSxx*7gJJ}yHGHWubb-ZC< zSlGlWA{rr3aE6m1Db7hm;O9fu#z~Ku=EN*`;OKotHpw{YmFPBEF7n0SPh z-5{fcDcGTDk%p2-0>i<1jU3uMQ*0^|Rtd8?vkEi_C^|6;eq&3yu%Yol*KBr%M_EkF zYZ-VLm6m7(GRQOXifBkk9A$F2w>LUu!BPQ*!<<6eDjpXepmF>6I+p(?v&mbqn H!e9*mGolF; literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif b/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif new file mode 100644 index 0000000000000000000000000000000000000000..a9bdf0030869bb72b8115ce01f776f080576c7b9 GIT binary patch literal 1527 zcmeH`{ZA8j0LH)9QYgijQL3Xb9mPUCP}fsqdcG`2MWB@s=vZ*wTcIvP>jLr2GVQVz zsSK7QR(9EZxjA2Q#At5f;%#Q}wifXeUv8S=#l7Ts(Rs#Su5P-onwal!f5HBMJwHBq zl24u|d20PNUb3|WlmN&99U=pwfS}>5j&nK@pj8723W`QKf);~}MALjMAw)PO5@89> zfDlR=jIbgv>yZR6s4zGkQcx(w_#%l=h$UFV6_Z3+4X7x_Nt}U14Kac$Du@;|R?-E< zAbCjekWmes*9A!-SuGF~d@_uPT2MlafpEc4bSMZYz$$`@=!8fLkQ5DEG>Bjf=M9!u zI8hT-gI1AYKr$gSoETIg&gi~S3>TrSL!8wTyv$9bRTzk}E>>5kP0nB?m5`u|(}PjQ zCm=$EQAP;S3`z451-Tf-6`%!(SRLUZhLsTw5wD|!ti?D1XXJ#ABt;Jh22S%n5rqU@ z)*vAwLO_~ss5(+LgA}LfhO8TSLc;|_G71Y3!DzB-Xb{C@o#b?y;YbNZbi`|hD;RSz z8mk$>U_w?kQi34`iPHnh2u~ZYig>O`E6zO$w${GbK~PbwtSb3mHwSqnssSQ)8U-}b8HPg_%>_x zBa>>fIL03gpPN^)w#SV+8-Q)r+?LX&lOIh!p)e}g2`O;-;CQ9i`y!RwzimCp_U?@R zlK+k0JpW9xx(Ev`)qt4;Yv-<6Zk>qV#E1Iqx%Vj0TvCxq^}Y)BV9x9fUX$tOyoD*( z(hLKd)h=*;7*6e`zP{NubIIL9!;aS-hi(tlS3FLaeE~M5utm1heOY8( z`kbR-(VrGJ+_T+Zwk)wJRhHvT{o3{M2G=dn?FM&d=Z@jkGu=rKR@^o?xzDeuOf1vXFIQ&Z5CaSncE@`o)s?@Yvp&Gd|+sxQr}rC5+;yoa`Jb8YWvo}>;o{{qmZ0^wKHN~U0k<{~VI7%+gT2)wO zaTc7dJbCs(+l4fU-X67DTIw=gBc=6?>2%H~$ysb; za64Ysd4;-jJbz>Gud6HcvxI+!XDIbkUigo=xhPC+yI$Ddc-pcn+_I;jLr2GVQVz zsSK7QR(9EZxjA2Q#At5f;%#Q}wifXeUv8S=#l7Ts(Rs#Su5P-onwal!f5HBMJwHBq zl24u|d20PNUb3|WlmN&99U=pwfS}>5j&nK@pj8723W`QKf);~}MALjMAw)PO5@89> zfDlR=jIbgv>yZR6s4zGkQcx(w_#%l=h$UFV6_Z3+4X7x_Nt}U14Kac$Du@;|R?-E< zAbCjekWmes*9A!-SuGF~d@_uPT2MlafpEc4bSMZYz$$`@=!8fLkQ5DEG>Bjf=M9!u zI8hT-gI1AYKr$gSoETIg&gi~S3>TrSL!8wTyv$9bRTzk}E>>5kP0nB?m5`u|(}PjQ zCm=$EQAP;S3`z451-Tf-6`%!(SRLUZhLsTw5wD|!ti?D1XXJ#ABt;Jh22S%n5rqU@ z)*vAwLO_~ss5(+LgA}LfhO8TSLc;|_G71Y3!DzB-Xb{C@o#b?y;YbNZbi`|hD;RSz z8mk$>U_w?kQi34`iPHnh2u~ZYig>O`E6zO$w${GbK~PbwtSb3mHwSqnssSQ)8U-}b8HPg_%>_x zBa>>fIL03gpPN^)w#SV+8-Q)r+?LX&lOIh!p)e}g2`O;-;CQ9i`y!RwzimCp_U?@R zlK+k0JpW9xx(Ev`)qt4;Yv-<6Zk>qV#E1Iqx%Vj0TvCxq^}Y)BV9x9fUX$tOyoD*( z(hLKd)h=*;7*6e`zP{NubIIL9!;aS-hi(tlS3FLaeE~M5utm1heOY8( z`kbR-(VrGJ+_T+Zwk)wJRhHvT{o3{M2G=dn?FM&d=Z@jkGu=rKR@^o?xzDeuOf1vXFIQ&Z5CaSncE@`o)s?@Yvp&Gd|+sxQr}rC5+;yoa`Jb8YWvo}>;o{{qmZ0^wKHN~U0k<{~VI7%+gT2)wO zaTc7dJbCs(+l4fU-X67DTIw=gBc=6?>2%H~$ysb; za64Ysd4;-jJbz>Gud6HcvxI+!XDIbkUigo=xhPC+yI$Ddc-pcn+_I;Rw% zgoK0u0RI60|Nj600RR90A^8LW000jFEC2ui03ZM$000F4@X7g{y*Over%PZcj*8PX zPRD&`>$*wVrjlmgmOR%>@BhG{L$`DMT#J_P^c&hL!A4J-tOAFMtkxNwGON_yXO!SB ztzop!^eUH*;dC<1hM9wS;j7`s`7wKLDp*>DhI@QNg9!o+0tN&L0099CjEIQ}9w`}xc~qK1}B2eunLhO1qbA^(8kG)-OZLR3gZX7ufVg|lgu6kyp9dh2Lp`={0ea3 zRk2Bt6j2zmPk^)m0|*c>7hphwdAIZ_Tu9)AfCB}5AQpJ`>%gY~7hP4_$kEY6ivuWr zG7x}|0$2f9dO*-I!MFjSBu46|fSW;`HDGmoXF$NCPz@$-^C$~x1)sz&7Wm{;z|D>@ zT50Ow!0F9suh7Qo*i~JLu`3*bN(-%0)23ZRSgqsKfC6c-Vo@4Qc<-OXa5)%S%y@AG F06XGF$;AKw literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif b/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif new file mode 100644 index 0000000000000000000000000000000000000000..fe0c98e975c3e36eb30275c584f5cfdaf2bb0b52 GIT binary patch literal 274 zcmV+t0qy=rNk%w1VITk?0HOu}goFUb#>Rw%g#Z5l00030|NsC0{{R30A^8LW000I6 zEC2ui03ZM$000BmXe!+PP|3N9y*Oh*C>2_$F`ZY5XdwigX@IE+vgH@c7VW_sE=S8CAk;96zye@OEi4J7%yYsMBs14lfQi{kx>D-2z!ZXXBlpHGLXfU%%aXw0F>cMSa3P;YN@~85 zXs1wZZWz^I$sBYt#31HnOf{Juf_6(VW^93iSL5Ui2-3o>8d&O_<;{7#7K;Vu(OKI1 z;;nFSdR=&TNjQdbgFbA98Gu(;7;}G#8%mLqI%r`kjz?`jI+KK=hk>Yqn`^8sag(rR zlwho{Z*H_0P?(bV5^7Hid_8W(lfGF~=&@ij1P5SHA!N?yuXeKm(zYURrXvvm z02f3pqh`0;IW=%{9SIi~0s#OTdVEQ2Ol&zEl$9KW28V}scnlMdOpzUuf|p+%1)7?P z01XV0D}SVKrgN#Pn~IA~O|XEpgtw{zx&ywUzrd%Nxy1wo$jCSwwH=v>x)%i*2akTq zHq?X(tPK|nG~C`lOry0C7kB42j-ocmf3*q&0}5#WYDWEvmd}fogI6N`T1e}k!-tOq z(ohn}-H8`1Wc?9D>*5=M-@a9>NX;Y2kQ+xsakOZHqDGMu1u7}oQqW64yn5l}LW1JS wh3#O{lo3win^+%9nY4LhR#Tomen<@mRfIy6Sg}_1V5zIuua$U+O%VbBJG0Wu*8l(j literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif b/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif new file mode 100644 index 0000000000000000000000000000000000000000..4950ec87c13f9918009b13ae2db6732e07317cd0 GIT binary patch literal 567 zcmZ?wbhEHbRA5kGxT?c&?%cWOmX-nn0?EnA&*#k9yLa!kYuBE81--YlJa+8Z+O=z= zqN28L-TFKz$jQm+d3Ls!m)G;X$DT(;JvTIbuW9(arRBM$;q&V1=Rr|Zrc8OBocum0 z>iOQi_cS%Lv$N*_4RmsP@8tEoXUg-Qp6A)c?~98qEiH?Si~j=w0|?x^cMrw{^GPHW zf3h$#Fz5gw5P@~~Qom*ewqZhw7 zKBurJtN!*1^O!YOYu9|)YB8_t^WW6ca;6rh2(6sF+WgwC%rb5DN$RB?)j2&i$xXpi zXH<91Dwz;8FKv0soTXD@*19hVEcJDrymhOr!sL)mzWyOW976j8_W0~Otj(@`;%MZF z07c$2>YI-rW@Nm4^}HZEi}c~Me&>Z*v_(|+KXSSjEdDG&n311fNae_ty(exka&YjA z3b14-FdgnHb#0U7V94icWRT)}X6&|fc5Aw}g~uJWRtM%biI0UgiAk;v%sgIhj0-kh zc1hP(n4!^dprL6J+ky=&8(u%P2${xg#2}GysD*KoI+sXnLPBFRqx9EWgM|t!Ij4C= zs_n>1(muUHq|?e^qLB9WHL>g!0Swn9Z;EDi%b6A`9lXKl>+6tVt+!-b+&ZS;DoLw1 LBt|rC3S literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif b/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif new file mode 100644 index 0000000000000000000000000000000000000000..0a79ebfdf5f97176aa1605e4cc4d779d6c49487c GIT binary patch literal 464 zcmV;>0WbbXNk%w1VITk?0J9GO($&>MW1Lc_&Z()eL9#*Z@$WY`I#66uAt52g#>Rw% zgn$450RI60|Nj600RR90A^8LW000jFEC2ui03ZM$000F4@X7g{y*Over%PZcj*8PX zPRD&`>$*wVrjlmgmOR%>@BhG{L$`DMTD?Xxsq_tPmE*FhZ2pFdtoC_4F&9}#IfTeiWdb` z1O?!L8wIfrwDf?$V*+vlLQRz9PeHeXJ8Q)92oFF3NTM20D zmu}o7y+v%V%zmD2V?;>*==MW7XXv~x5)aMfBoK?F zW6zSoF1YE1%;Xl!+`|~*F%!825>LA^kD=kxDLIWMmuhA@4aseU*nlRFhyRAJe17_T zednEgTH2cH8+u%Xi^xwCx~}JPxqLn^%Q8ZU<2Y8uilPXDpsK1M$f77FRLmRXFfhr&_Mo^w%1SiCjqEi$FfC3CdWW#Vx#+XI9hG0Y#wXle3m_taUP(G1Bk%%bi zd5%*7FENslF#v987>gJtA&5B&>WZQ=Fb5Pp9HGJyIv5N>H3vAAW!Z2z40t7sbU{*C zNskB`r|3|WSp{pFM$*GP~H>s_TyfBt%-F5T8;J#~8H?0~s+ zXXB9PW>r(KZ`8W`gfA8$e1fNO%=5#NJh;x~k4ES33@n~zf1OYA*v&hGHzSS4?YPRQ&w4x)AxOBAXi6+*mu{KIuGh-r|Wzv*e+FR&JZ$xH1zUYu>cG z&uzI9Yq2%M2+ZunHb+$N1&swYAuDxyBGP!IrSI*qb3{MTMZ?x0V6mWcE z|9I}gv+Zq5){pLIssew!b1CU`96NN@Lmgc;S&v>{nR6wN1qU|2T6&+L3hhaM(Mw%* z=Cbw&*_@SYooKank`p0e+U}nkcSN&;J5R;>2P@wHG7vNmO}g(4+wR?39xu;~%vQg< zR5uH^PL`HTjZgH3$5R)tj|9pq+DGQe#QhXwJ1IW#TFzKpt=1433zr-oN$pzWPW3N) z3vDY`$G2a5h9EB2ESek@@obZ&?AYo9?}a@b{_0IaO93CVWK6}Ix*b7F+;uhM-Q5?z=G__V3lY5wu~{Q`c_Bd p$!sXy?YxvMau4r&IQrbrt}oV%E%z;d_m?(Y)4DIetHV#c_%B&pUbg@M literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif b/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif new file mode 100644 index 0000000000000000000000000000000000000000..5df7de574966c8f4738c337d97c97b362cfb9f91 GIT binary patch literal 725 zcmZ?wbhEHbRA5kGxN5}U<>i%K-E;5x^Y7o^pSyOC!7ym=-o5X?f6va&j*5y}yLRol zbJrLYoz9&**D__!lqqwfidzf~4XbDFV}EmQU$yT;&^-7{zD+O2zova1E6 zTHe3^Uft3o5mY>7=~@QOpgC*zdL>sU7gulHdoH_rN_NlEDRY)aRZoe^Zn<~w`L%1; zdU|@^e}7+HUH$&~dj&K6yl zojL~V+xsHH@c`o|9UhyC1r82J zxwvJ|?KtsmX#fwSz>CD02Ob=1WztX6Yq-Gqe2S+w&#yg)7Bt*sVo!_W*x)34c}@Y7 zfW?X=#ttTpbtl%GzNUM0S(}W`jNJ=z7`bH9q-4uKzYW*nGST5k*x}Susnz8aaN);% zk-6GdPqd>OoiEPR_xjSi@ycd_dkEKgTed$ sRj~fxwYl+MVLG=`U+uM14J=|F5Athe7Cva=(YhfkFW{!(D!^b300g%yMgRZ+ literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif b/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif new file mode 100644 index 0000000000000000000000000000000000000000..7807c075c4082d561fd2f08c9a20ab4844d8cee4 GIT binary patch literal 724 zcmZ?wbhEHbRA5kGxN5}U<>i%K-E;5x^Y7o^pSyOC!7ym=-o5X?f6va&j*5y}yLRol zbJrLYoz9&**D__!lqqwfidzf~4XbDFV}EmQU$yT;&^-7{zD+O2zova1E6 zTHe3^Uft3o5mY>7=~@QOpgC*zdL>sU7gulHdoH_rN_NlEDRY)aRZoe^Zn<~w`L%1; zdU|@^e}7+HUH$&~dj6nnc&>9RAQ*ojz&Z49h@M%{gzUy7xRu}X=tXv8QUvk`Ss)JT|f=Hm=e z*-sPK9%x)~MqKsBv4C5Z9>La?bkD@4;205_cZ-x olY3FW;k4_-V{to`9yGAAE9cT`#-ccAhw4`jpjrZ$Po=+>rS<-e!jPxbB|+;eoCFoy*4?8no+b9O@c7 znu6TZTic2fJ10d?=r%vv9_HjDCz zuLzsz8*EthN5gskqy(RPrt4~5-RICX$;@Huv^eHaHuZ)ITCWCd#;pH0iBv~AT` zy{2TX>>jQNx6%cN_>V4GmXLeO{Gvrq>3P1>XKIxXvqqdd(YocrnJ3qzF1@(?>e;q6 V@7}Mula%u1>$flJKLt4%tN|w0c+CI+ literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif b/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif new file mode 100644 index 0000000000000000000000000000000000000000..afe724a3d06a51d2810f8d956f9a2042f4127e39 GIT binary patch literal 271 zcmV+q0r37uNk%w1VITk?0HOr|0E7U9goMV%#sB~S|NsC0|Nj6000000A^8LW000F5 zEC2ui03ZM$000BjSh^MdFg`|UAUNwy!l>ZIjhOQ>0g$e0%aVcMF>cMSLY`-rd^P}* zCI!Rz6e@y?mrRaCgd_3RX;pPt-(bsaDsRo0Mlj9@21Mm|c`cjG1E-q(&D!Bg(+7An)+;^79}G06U9=e5U{a literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif b/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif new file mode 100644 index 0000000000000000000000000000000000000000..4fae35662f0ff048d4004fdc74cda6b63f16d119 GIT binary patch literal 408 zcmZ?wbhEHbRA5kGI3mViIETS7`9A~09EN0urRTmg%=vGa%wTx#zu`GU28RFV-v2*# z?AW>g=g$5AZ}|T|Lkq*XbLR|`=d`r6eEY<3j9Dk`OoZE`nWr*xa<<-Z+HtMSBJn{^u;`V&6mSzrNEt?LH`~3Ax?=4JrY*0GX#-Qk=qQTsLv|qx~^^Qg0 iVuwC~AkkGZCpV>f)n+A~n&Y{-{p@Uu;&~j54AuZc3Y?7q literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif b/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif new file mode 100644 index 0000000000000000000000000000000000000000..7157f72ad82ea877fcb6995070a6563f56ef67d8 GIT binary patch literal 368 zcmZ?wbhEHbRA5kGI3mt)ZwdoL@|2!y|Nno#_WxKm!<2grhC%{EB};slLq*~Wvao7t(4YcThC6;%`Yr24Zi4PaOV6eOA}Gnc(I#ahItQPFz&i!!1#jo#hY7? xFH}7HYVuU?=dbU7{-(T977Tb`-^99F#>8mh!o%$X%5o`g8JrTL0dyds<4RV^aVB z|57BDbA&H|IUoo#=W(zoP=va&U;d8QcCBXbFE`S zIUx{AF)?dGF|DPoy|um8l$26hT61GsrId``*3Q<>#_!(N_xJC;lzX*=bN97#y`_w; zoRr4a-o4J&oRpmJ@Ar&zW5%telzVgk@2%FQQj}6cwR2kk-jp#pIT#oib8~zD|Nj60 z00000A^8LW002DzEC2ui01yBW000KCz@CstEEa{x;b0IOxF9c{E~y-RE*p%ErCXs53AutGm1iI;a&9 x77a8B0W|>v8K@@^5iJcNH3tSG6{sd9*aZa#2L%MDNFqA#5;_tRJN5NJ06RZNq>TUo literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif b/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f3bac9bf1593da0934d7ce02064ef74e484c1a9 GIT binary patch literal 249 zcmZ?wbhEHb6krfwI3mMvZjPa$VRCZvIm6^RbLO1;{{8!$ImuhMZvFrNTynDExpT=; zQBh7#PUq$Tr48R-J9cgk!?|-n9>bhupf;f9IseZw{GY?n($aG5*f9nMhW}syWI%x8 zPZmZ71{nq&5Eo=818bRrdQwVemqvT;n`v8Ts6~~;GQZY}p1#>*LidNJlNo(daVY@{ zWwUaL(+k*J$tlM*YK{1NYI`ZnW)mW{>#=ysy0hLX0`cg&BbkJ4}^gUQzaPeB<)#Q2S7Oc~`%`->q#0Q%_#rF={k17wA&Fi)#cna}i9!sV4Aub8Vl3$Z literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif b/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif new file mode 100644 index 0000000000000000000000000000000000000000..4d927230b980dbbdca5b06f12a98449647ca0fe7 GIT binary patch literal 128 zcmZ?wbhEHb6krfwSj5V}(8AEt(sJzBF$M;P|6l-Q0DA+ z&boq$o(!ph*Rni6Ts&TSB!TY&dxW+s#|ou&Pgs`UaTDBbb9LQ}wC%4m<4%bCYbdc5 Z?pbo_Mu}eVr8OUpyyY@Z@L*!F1^}CaF8}}l literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif b/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif new file mode 100644 index 0000000000000000000000000000000000000000..6ce26a4dc516f5962623445396862c753a875900 GIT binary patch literal 113 zcmZ?wbhEHb6krfwSj56`?AWoEmKFvEhW}syWI%x8PZmZ71{MY#5ErDDf!WMMz)wYHuMVva8^OvzO GSOWls#w7~? literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif b/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif new file mode 100644 index 0000000000000000000000000000000000000000..48d445acd2feab875c2d42c246e9010814314bb6 GIT binary patch literal 132 zcmZ?wbhEHb6krfwSj5KA(!%inKf|$O$6A0a1|S;*fDFZ-EQ|~cYz#U;Hc+Ji0|T>X z#^yWU3Z{52m-ukf%k`k3yP%3-*W8u93=RcNt9)D@gcWkI9QhQriC6L4&!=I+p7|fF f&bcuq9o#ATcbQ|zt0ha__CHv$#zk+n5Q8-UbUQQ< literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif b/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif new file mode 100644 index 0000000000000000000000000000000000000000..6535b4c0e72aa2cded728e28ee6440c1fe0a954c GIT binary patch literal 140 zcmZ?wbhEHb6krfwSj5WE($aG5*f9o%{|rD320#W7DE?$&WME)r&;fBkY8jXVBe?FY z+rZ$Y&Fb8_(OO=7Vq=(Ufb*})xCcUxyE@a|Sq$%KqPl7^Ro&=#&h4hzE(^L jR*hU`(7bxhmuZnxV$QBxlGW+R@Sr5BCvfLoP6lfLw_`LY literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif b/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif new file mode 100644 index 0000000000000000000000000000000000000000..315817f5d93a2a6fa5db3ca5e1c9d9e72297c1b0 GIT binary patch literal 109 zcmZ?wbhEHb6krfwSj5V3?AWoEmKKKpAi%%?qJbn3DE?$&WME)r&;fBkY8jY~B6i*R zXJF>^RLSWASNXZw&O8U&G9N8irFy(4+h@r~EB~#sJ|Y3ajSDg!Grv<&><*gAz+epk D58Wo= literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif b/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif new file mode 100644 index 0000000000000000000000000000000000000000..8f91a98ecb196dbcf5424e266ca58d216cd4a9eb GIT binary patch literal 382 zcmZ?wbhEHb6krfwxT?XhR8hdo%PTuO`&>{EgJIPFI}I;|Dp zc%Pgc6&3aV`}^-fUeCQOdwP0~X-ZUASHFM${{R2~3=9kq63CzsDE?$&WMI%>&;gkP z@)HBwYzL7p7om#2#si)wL?(F!2%98Cm<2ZVZ~3Ch>UA|+?3QVy&oYC{!ISECotivn zi=MmpqCcH_Dg71<%DDkb)jrCNqP!hVYOOUI?7WH`68uu^LH$n3d{a32xdr%?``R=Z z6crRi1i6?MXU<-+T7iX|hf_g(S&gzHs}Re21x4km3ChAO(z2|q%0r28usf7#SE?8FWBAkXi<2r--O4 z|FS1KXsZVL9;`07c&+ei^1O2k*6G|{AtTej{=zM0yDLAt%B`L9e?;#s+CMY!M%Jo; V3vL<)Qnkyb>9`50G6*qP0|1+DE=>Rc literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif b/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b5d6ba1fc35ab7dccc0f27ef14f2bdbefe75859 GIT binary patch literal 621 zcmd6k&ui0A0Dxb+VB4{+?YgxUTV^K{qg5LnvM_(lIJz`RQF6>pa?C||-g?<)1gmc# znuA~%2n(Jb2oms;!(;>zd@zI@a}ZpP&%@y1>FN9{{7&ETgKuNdUy&bHKm{BPf$bAQ zctp74_-+tm!XZvY7?`FD-7q4V=#n7LI(|kO*D!S=`qxAh%U-Hr9ul5XK60@Xu`r=B zBBGZmgli+L*e=OYPhmpijCBxUoJ%MbLzXcv!BBQQ+xAQo#TmCOWTHs45W)$B zkpBbxmvnv$IRJ*Bds27u1Qfn*4!1S;sax6}KQYjbQ3B6j7}Xo@=~BM;N(1VyYBVSI z8e>(xbhXt4Mx}Z?-_VC5xY?bZoxa#MW@hqN!goSp%D6mNTdCj8Pw4U5t#bL!;#_;O zeyAHlYkKhW=-%Y@`E^~83TFlv`p5l+YYX!m-)p~?m8p91_~pKu6ZFTu!$)iDJFV5T zZ$4EQ5B8T%6}v|Mhfpk^(}do$596)Zxh8s0**y3H8nw1;?w$YkcG+37K7V|Fe|HOj F)j#Az*75)V literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/html.gif b/fckeditor/editor/filemanager/browser/default/images/icons/html.gif new file mode 100644 index 0000000000000000000000000000000000000000..0b5d6ba1fc35ab7dccc0f27ef14f2bdbefe75859 GIT binary patch literal 621 zcmd6k&ui0A0Dxb+VB4{+?YgxUTV^K{qg5LnvM_(lIJz`RQF6>pa?C||-g?<)1gmc# znuA~%2n(Jb2oms;!(;>zd@zI@a}ZpP&%@y1>FN9{{7&ETgKuNdUy&bHKm{BPf$bAQ zctp74_-+tm!XZvY7?`FD-7q4V=#n7LI(|kO*D!S=`qxAh%U-Hr9ul5XK60@Xu`r=B zBBGZmgli+L*e=OYPhmpijCBxUoJ%MbLzXcv!BBQQ+xAQo#TmCOWTHs45W)$B zkpBbxmvnv$IRJ*Bds27u1Qfn*4!1S;sax6}KQYjbQ3B6j7}Xo@=~BM;N(1VyYBVSI z8e>(xbhXt4Mx}Z?-_VC5xY?bZoxa#MW@hqN!goSp%D6mNTdCj8Pw4U5t#bL!;#_;O zeyAHlYkKhW=-%Y@`E^~83TFlv`p5l+YYX!m-)p~?m8p91_~pKu6ZFTu!$)iDJFV5T zZ$4EQ5B8T%6}v|Mhfpk^(}do$596)Zxh8s0**y3H8nw1;?w$YkcG+37K7V|Fe|HOj F)j#Az*75)V literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif b/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif new file mode 100644 index 0000000000000000000000000000000000000000..634b386139ac697806757c8d34bed36b5a2e5b45 GIT binary patch literal 125 zcmZ?wbhEHb6krfwSj5WE($aG5*s=fr|F^U-00EEzq8Jzyf3h$#Ft9S{fH)wv49rdu zQCI$DPjt{$4fH)&U2ySQ;nn1M=N7Efxy>W1vu4h(L$B8CcA0nH;sGzmk%w`nkI!Gr Xww$>lL&HF-cG)x?H=$exAqHyz+f*-Z literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/js.gif b/fckeditor/editor/filemanager/browser/default/images/icons/js.gif new file mode 100644 index 0000000000000000000000000000000000000000..4ea17d452edaf63a5f599042879cc05a3b05905d GIT binary patch literal 139 zcmZ?wbhEHb6krfwSj524(!y};*s=frfs7Ug28RDY78of0WC7DUAQGgOfjPip*Bukp zV`_&dr*>@0-Etv>LB&I4!HI?a)6OrXSt1KqtHVsZE6pPt-9GvFF^A}XUv*^C r;ak22hG!S;yY$xUOU2HaM|C{I+Ek;sd6_hJPfqX2@(WjGV6X-NZuBx8 literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif b/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif new file mode 100644 index 0000000000000000000000000000000000000000..6f3bac9bf1593da0934d7ce02064ef74e484c1a9 GIT binary patch literal 249 zcmZ?wbhEHb6krfwI3mMvZjPa$VRCZvIm6^RbLO1;{{8!$ImuhMZvFrNTynDExpT=; zQBh7#PUq$Tr48R-J9cgk!?|-n9>bhupf;f9IseZw{GY?n($aG5*f9nMhW}syWI%x8 zPZmZ71{nq&5Eo=818bRrdQwVemqvT;n`v8Ts6~~;GQZY}p1#>*LidNJlNo(daVY@{ zWwUaL(+k*J$tlM*YK{1NYI`ZnW)mW{>#=ysy0hLX0`cgv>ev^SyhYS64r8X?YK12So`82>fRNfqVDv z{r?YPGARCJVPs&CWzYdhfb3*oO-@kHONmUIxgsy-^|qPQW|^Ek`f1r)oAdK_#q~cu zbtPl{l^0V5_T;S=Z~hQc)}ed!aA|{HGz;^B2|Yz@;*5(PawLd_EmCDzp}@k>p>l2} b%e-`vLRL<;1{wB3!FE?Ijs6J}6d9}meKBOp literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/png.gif b/fckeditor/editor/filemanager/browser/default/images/icons/png.gif new file mode 100644 index 0000000000000000000000000000000000000000..b6d1b32011afe305d35026c66cf3a0564e6cfbe8 GIT binary patch literal 125 zcmZ?wbhEHb6krfwSj5WE($aG5*s=fr|2Hsz0FVKu85DoAFfuT(GU$M~Ahit4P7zU8 z{$)>e&{hrfJy>0E@mk^4!zWU*s{&Jd<`>yWH_^+2I#AA{J%s7G|&p0BKw|IsgCw literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif b/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif new file mode 100644 index 0000000000000000000000000000000000000000..916cd7e639de75276e3fac7d4a4466479285fbc0 GIT binary patch literal 606 zcmchU&ubGw6vrpo{HP7Ji>awd!Ny-jsS1MH`U@LtlcrQ_s3zIwU|DauxyQX|x?q%1 zq|BkhKtPz|fCvMEEP~*e(;VkGD5!f}3&P@Qocc%jk8i|G!%@<`A|b55u$#WP!&Un9G3XLps}Wj7D9Eqf$#fJ8H5p*G7e=-si0JO zNL85WQFn?71c9mX?Aw@`|sb+UAvcE-BaB&M=_}Q+_`f-OSf)4 zb}qYTDT7yb%al3Su3fu#?|E`@wO3T}oV9xy6rIkUyY~J2djY3pLqo%$?CQP8u1N$H zzyJQ;%gbx&)?@dcKL={->FM!Gt_Fhl&)@(5|DS<@0YU;9lmo?|EQ|~c>I^y{qdwUe4Gl+*;-lwkB+sYUz^1v;|)#6j^vpu37T# zmUD%0Y=v2e3tNhqVwDfO5R;r7Q-i8ZOSQU^94jjq2ZyAL>I5eRE_r!5X$}Qpc9pr4 zSQql}D#)`c&1sz^&mzyuz#u2Ed6fdUDiZ^b6pNe!-zs$lh21Qw^6W*$K1?FwqAc7B ROoA@15eoGR5k8I#)&SOyb=v>{ literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif b/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif new file mode 100644 index 0000000000000000000000000000000000000000..314469da14a51a3079a95b10deff5e4af2f14dd3 GIT binary patch literal 388 zcmZ?wbhEHb6krfwxT?;;U>Fn?71c9mX?Aw@`|sb+UAvcE-BaB&M=_}Q+_`f-OSf)4 zb}qYTDT7yb%al3Su3fu#?|E`@wO3T}oV9xy6rIkUyY~J2djY3pLqo%$?CQP8u1N$H zzyJQ;%gbx&)?@dcKL={->FM!Gt_Fhl&)@(5|DS<@0YU;9lmo?|EQ|~c>I^y{qdwUe4Gl+*;-lwkB+sYUz^1v;|)#6j^vpu37T# zmUD%0Y=v2e3tNhqVwDfO5R;r7Q-i8ZOSQU^94jjq2ZyAL>I5eRE_r!5X$}Qpc9pr4 zSQql}D#)`c&1sz^&mzyuz#u2Ed6fdUDiZ^b6pNe!-zs$lh21Qw^6W*$K1?FwqAc7B ROoA@15eoGR5k8I#)&SOyb=v>{ literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif b/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif new file mode 100644 index 0000000000000000000000000000000000000000..1511ba3e9fa53d21b23d74e5430199f52107b8c6 GIT binary patch literal 122 zcmZ?wbhEHb6krfwSj586($aG5*f9nMhW}syWI%x8PZmZ71{MY#5ErDDf!W?edQV`N^25{1 dUq#HdJfRXbF>~kLGf7@*-Ks0MSTQnK0|4?|F*N`H literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif b/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif new file mode 100644 index 0000000000000000000000000000000000000000..f57715d6a0cf03d3d392fb78d1477fcb1756edc1 GIT binary patch literal 138 zcmZ?wbhEHb6krfwSj5V}(86%+*f9nm-O}BIae?UME_83{kohvOm*4@L8Aw=661Zc_WCg}SOWmuf-oWg literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif b/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif new file mode 100644 index 0000000000000000000000000000000000000000..455992877e103d01bd247e45d96e33412ae706d1 GIT binary patch literal 231 zcmZ?wbhEHb6krfwI3mEn(9&}3*fGQ8|AuoI4Cnke{QuwZ+HPD{sTJjBd9|(eHjSNmO^r^D{SzDo6d9}m>N8Dk literal 0 HcmV?d00001 diff --git a/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif b/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif new file mode 100644 index 0000000000000000000000000000000000000000..b1e24921e56f8b71282f953c690d152dd986f6ff GIT binary patch literal 235 zcmZ?wbhEHb6krfwI3mLE|M^yid-wjYW%$3>>;GEC|Np;dAN!x(^Z)< mytest.example.com => example.com ... + d = d.replace( /.*?(?:\.|$)/, '' ) ; + + if ( d.length == 0 ) + break ; // It was not able to detect the domain. + + try + { + document.domain = d ; + } + catch (e) + { + break ; + } + } +})() ; + +function AddSelectOption( selectElement, optionText, optionValue ) +{ + var oOption = document.createElement("OPTION") ; + + oOption.text = optionText ; + oOption.value = optionValue ; + + selectElement.options.add(oOption) ; + + return oOption ; +} + +var oConnector = window.parent.oConnector ; +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( '' ) ; +} diff --git a/fckeditor/editor/filemanager/browser/default/js/fckxml.js b/fckeditor/editor/filemanager/browser/default/js/fckxml.js new file mode 100644 index 0000000..82d1cbb --- /dev/null +++ b/fckeditor/editor/filemanager/browser/default/js/fckxml.js @@ -0,0 +1,147 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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() +{} + +FCKXml.prototype.GetHttpRequest = function() +{ + // Gecko / IE7 + try { return new XMLHttpRequest(); } + catch(e) {} + + // 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 ) +{ + 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 ) + { + var oXml ; + try + { + // this is the same test for an FF2 bug as in fckxml_gecko.js + // but we've moved the responseXML assignment into the try{} + // so we don't even have to check the return status codes. + var test = oXmlHttp.responseXML.firstChild ; + oXml = oXmlHttp.responseXML ; + } + catch ( e ) + { + try + { + oXml = (new DOMParser()).parseFromString( oXmlHttp.responseText, 'text/xml' ) ; + } + catch ( e ) {} + } + + if ( !oXml || !oXml.firstChild || oXml.firstChild.nodeName == 'parsererror' ) + { + alert( 'The server didn\'t send back a proper XML response. Please contact your system administrator.\n\n' + + 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')\n\n' + + 'Requested URL:\n' + urlToCall + '\n\n' + + 'Response text:\n' + oXmlHttp.responseText ) ; + return ; + } + + oFCKXml.DOMDocument = oXml ; + asyncFunctionPointer( oFCKXml ) ; + } + } + } + + oXmlHttp.send( null ) ; + + if ( ! bAsync ) + { + if ( oXmlHttp.status == 200 || oXmlHttp.status == 304 ) + this.DOMDocument = oXmlHttp.responseXML ; + else + { + alert( 'XML request error: ' + oXmlHttp.statusText + ' (' + oXmlHttp.status + ')' ) ; + } + } +} + +FCKXml.prototype.SelectNodes = function( xpath ) +{ + 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, + 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 ( navigator.userAgent.indexOf('MSIE') >= 0 ) // 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 ; + } +} diff --git a/fckeditor/editor/filemanager/connectors/asp/basexml.asp b/fckeditor/editor/filemanager/connectors/asp/basexml.asp new file mode 100644 index 0000000..a015204 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/asp/basexml.asp @@ -0,0 +1,63 @@ +<% + ' FCKeditor - The text editor for Internet - http://www.fckeditor.net + ' Copyright (C) 2003-2008 Frederico Caldeira Knabben + ' + ' == BEGIN LICENSE == + ' + ' Licensed under the terms of any of the following licenses at your + ' choice: + ' + ' - GNU General Public License Version 2 or later (the "GPL") + ' http://www.gnu.org/licenses/gpl.html + ' + ' - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + ' http://www.gnu.org/licenses/lgpl.html + ' + ' - Mozilla Public License Version 1.1 or later (the "MPL") + ' http://www.mozilla.org/MPL/MPL-1.1.html + ' + ' == END LICENSE == + ' + ' This file include the functions that create the base XML output. +%> +<% + +Sub SetXmlHeaders() + ' Cleans the response buffer. + Response.Clear() + + ' Prevent the browser from caching the result. + Response.CacheControl = "no-cache" + + ' Set the response format. + Response.CodePage = 65001 + Response.CharSet = "UTF-8" + Response.ContentType = "text/xml" +End Sub + +Sub CreateXmlHeader( command, resourceType, currentFolder, url ) + ' Create the XML document header. + Response.Write "" + + ' Create the main "Connector" node. + Response.Write "" + + ' Add the current folder node. + Response.Write "" +End Sub + +Sub CreateXmlFooter() + Response.Write "" +End Sub + +Sub SendError( number, text ) + SetXmlHeaders + + ' Create the XML document header. + Response.Write "" + + Response.Write "" + + Response.End +End Sub +%> diff --git a/fckeditor/editor/filemanager/connectors/asp/class_upload.asp b/fckeditor/editor/filemanager/connectors/asp/class_upload.asp new file mode 100644 index 0000000..91c0088 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/asp/class_upload.asp @@ -0,0 +1,353 @@ +<% + ' FCKeditor - The text editor for Internet - http://www.fckeditor.net + ' Copyright (C) 2003-2008 Frederico Caldeira Knabben + ' + ' == BEGIN LICENSE == + ' + ' Licensed under the terms of any of the following licenses at your + ' choice: + ' + ' - GNU General Public License Version 2 or later (the "GPL") + ' http://www.gnu.org/licenses/gpl.html + ' + ' - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + ' http://www.gnu.org/licenses/lgpl.html + ' + ' - Mozilla Public License Version 1.1 or later (the "MPL") + ' http://www.mozilla.org/MPL/MPL-1.1.html + ' + ' == END LICENSE == + ' + ' These are the classes used to handle ASP upload without using third + ' part components (OCX/DLL). +%> +<% +'********************************************** +' File: NetRube_Upload.asp +' Version: NetRube Upload Class Version 2.3 Build 20070528 +' Author: NetRube +' Email: NetRube@126.com +' Date: 05/28/2007 +' Comments: The code for the Upload. +' This can free usage, but please +' not to delete this copyright information. +' If you have a modification version, +' Please send out a duplicate to me. +'********************************************** +' 文件名: NetRube_Upload.asp +' 版本: NetRube Upload Class Version 2.3 Build 20070528 +' 作者: NetRube(网络乡巴佬) +' 电子邮件: NetRube@126.com +' 日期: 2007年05月28日 +' 声明: 文件上传类 +' 本上传类可以自由使用,但请保留此版权声明信息 +' 如果您对本上传类进行修改增强, +' 请发送一份给俺。 +'********************************************** + +Class NetRube_Upload + + Public File, Form + Private oSourceData + Private nMaxSize, nErr, sAllowed, sDenied, sHtmlExtensions + + 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 2.3 Build 20070528" + End Property + + Public Property Get ErrNum + ErrNum = nErr + End Property + + Public Property Let MaxSize(nSize) + nMaxSize = nSize + End Property + + Public Property Let Allowed(sExt) + sAllowed = sExt + End Property + + Public Property Let Denied(sExt) + sDenied = sExt + End Property + + Public Property Let HtmlExtensions(sExt) + sHtmlExtensions = sExt + End Property + + Public Sub GetData + Dim aCType + aCType = Split(Request.ServerVariables("HTTP_CONTENT_TYPE"), ";") + if ( uBound(aCType) < 0 ) then + nErr = 1 + Exit Sub + end if + If aCType(0) <> "multipart/form-data" Then + nErr = 1 + Exit Sub + End If + + Dim nTotalSize + nTotalSize = Request.TotalBytes + If nTotalSize < 1 Then + nErr = 2 + Exit Sub + End If + If nMaxSize > 0 And nTotalSize > nMaxSize Then + nErr = 3 + Exit Sub + End If + + 'Thankful long(yrl031715@163.com) + 'Fix upload large file. + '********************************************** + ' 修正作者:long + ' 联系邮件: yrl031715@163.com + ' 修正时间:2007年5月6日 + ' 修正说明:由于iis6的Content-Length 头信息中包含的请求长度超过了 AspMaxRequestEntityAllowed 的值(默认200K), IIS 将返回一个 403 错误信息. + ' 直接导致在iis6下调试FCKeditor上传功能时,一旦文件超过200K,上传文件时文件管理器失去响应,受此影响,文件的快速上传功能也存在在缺陷。 + ' 在参考 宝玉 的 Asp无组件上传带进度条 演示程序后作出如下修改,以修正在iis6下的错误。 + + Dim nTotalBytes, nPartBytes, ReadBytes + ReadBytes = 0 + nTotalBytes = Request.TotalBytes + '循环分块读取 + Do While ReadBytes < nTotalBytes + '分块读取 + nPartBytes = 64 * 1024 '分成每块64k + If nPartBytes + ReadBytes > nTotalBytes Then + nPartBytes = nTotalBytes - ReadBytes + End If + oSourceData.Write Request.BinaryRead(nPartBytes) + ReadBytes = ReadBytes + nPartBytes + Loop + '********************************************** + oSourceData.Position = 0 + + Dim oTotalData, oFormStream, sFormHeader, sFormName, bCrLf, nBoundLen, nFormStart, nFormEnd, nPosStart, nPosEnd, sBoundary + + oTotalData = oSourceData.Read + bCrLf = ChrB(13) & ChrB(10) + sBoundary = MidB(oTotalData, 1, InStrB(1, oTotalData, bCrLf) - 1) + nBoundLen = LenB(sBoundary) + 2 + nFormStart = nBoundLen + + Set oFormStream = Server.CreateObject("ADODB.Stream") + + Do While (nFormStart + 2) < nTotalSize + nFormEnd = InStrB(nFormStart, oTotalData, bCrLf & bCrLf) + 3 + + With oFormStream + .Type = 1 + .Mode = 3 + .Open + oSourceData.Position = nFormStart + oSourceData.CopyTo oFormStream, nFormEnd - nFormStart + .Position = 0 + .Type = 2 + .CharSet = "UTF-8" + sFormHeader = .ReadText + .Close + End With + + nFormStart = InStrB(nFormEnd, oTotalData, sBoundary) - 1 + nPosStart = InStr(22, sFormHeader, " name=", 1) + 7 + nPosEnd = InStr(nPosStart, sFormHeader, """") + sFormName = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart) + + If InStr(45, sFormHeader, " filename=", 1) > 0 Then + Set File(sFormName) = New NetRube_FileInfo + File(sFormName).FormName = sFormName + File(sFormName).Start = nFormEnd + File(sFormName).Size = nFormStart - nFormEnd - 2 + nPosStart = InStr(nPosEnd, sFormHeader, " filename=", 1) + 11 + nPosEnd = InStr(nPosStart, sFormHeader, """") + File(sFormName).ClientPath = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart) + File(sFormName).Name = Mid(File(sFormName).ClientPath, InStrRev(File(sFormName).ClientPath, "\") + 1) + File(sFormName).Ext = LCase(Mid(File(sFormName).Name, InStrRev(File(sFormName).Name, ".") + 1)) + nPosStart = InStr(nPosEnd, sFormHeader, "Content-Type: ", 1) + 14 + nPosEnd = InStr(nPosStart, sFormHeader, vbCr) + File(sFormName).MIME = Mid(sFormHeader, nPosStart, nPosEnd - nPosStart) + Else + With oFormStream + .Type = 1 + .Mode = 3 + .Open + oSourceData.Position = nFormEnd + oSourceData.CopyTo oFormStream, nFormStart - nFormEnd - 2 + .Position = 0 + .Type = 2 + .CharSet = "UTF-8" + Form(sFormName) = .ReadText + .Close + End With + End If + + nFormStart = nFormStart + nBoundLen + Loop + + oTotalData = "" + Set oFormStream = Nothing + End Sub + + Public Sub SaveAs(sItem, sFileName) + If File(sItem).Size < 1 Then + nErr = 2 + Exit Sub + End If + + If Not IsAllowed(File(sItem).Ext) Then + nErr = 4 + Exit Sub + End If + + If InStr( LCase( sFileName ), "::$data" ) > 0 Then + nErr = 4 + Exit Sub + End If + + Dim sFileExt, iFileSize + sFileExt = File(sItem).Ext + iFileSize = File(sItem).Size + + ' Check XSS. + If Not IsHtmlExtension( sFileExt ) Then + ' Calculate the size of data to load (max 1Kb). + Dim iXSSSize + iXSSSize = iFileSize + + If iXSSSize > 1024 Then + iXSSSize = 1024 + End If + + ' Read the data. + Dim sData + oSourceData.Position = File(sItem).Start + sData = oSourceData.Read( iXSSSize ) ' Byte Array + sData = ByteArray2Text( sData ) ' String + + ' Sniff HTML data. + If SniffHtml( sData ) Then + nErr = 4 + Exit Sub + End If + End If + + Dim oFileStream + Set oFileStream = Server.CreateObject("ADODB.Stream") + With oFileStream + .Type = 1 + .Mode = 3 + .Open + oSourceData.Position = File(sItem).Start + oSourceData.CopyTo oFileStream, File(sItem).Size + .Position = 0 + .SaveToFile sFileName, 2 + .Close + End With + Set oFileStream = Nothing + End Sub + + Private Function IsAllowed(sExt) + Dim oRE + Set oRE = New RegExp + oRE.IgnoreCase = True + oRE.Global = True + + If sDenied = "" Then + oRE.Pattern = sAllowed + IsAllowed = (sAllowed = "") Or oRE.Test(sExt) + Else + oRE.Pattern = sDenied + IsAllowed = Not oRE.Test(sExt) + End If + + Set oRE = Nothing + End Function + + Private Function IsHtmlExtension( sExt ) + If sHtmlExtensions = "" Then + Exit Function + End If + + Dim oRE + Set oRE = New RegExp + oRE.IgnoreCase = True + oRE.Global = True + oRE.Pattern = sHtmlExtensions + + IsHtmlExtension = oRE.Test(sExt) + + Set oRE = Nothing + End Function + + Private Function SniffHtml( sData ) + + Dim oRE + Set oRE = New RegExp + oRE.IgnoreCase = True + oRE.Global = True + + Dim aPatterns + aPatterns = Array( " diff --git a/fckeditor/editor/filemanager/connectors/asp/commands.asp b/fckeditor/editor/filemanager/connectors/asp/commands.asp new file mode 100644 index 0000000..25767cc --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/asp/commands.asp @@ -0,0 +1,198 @@ +<% + ' FCKeditor - The text editor for Internet - http://www.fckeditor.net + ' Copyright (C) 2003-2008 Frederico Caldeira Knabben + ' + ' == BEGIN LICENSE == + ' + ' Licensed under the terms of any of the following licenses at your + ' choice: + ' + ' - GNU General Public License Version 2 or later (the "GPL") + ' http://www.gnu.org/licenses/gpl.html + ' + ' - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + ' http://www.gnu.org/licenses/lgpl.html + ' + ' - Mozilla Public License Version 1.1 or later (the "MPL") + ' http://www.mozilla.org/MPL/MPL-1.1.html + ' + ' == END LICENSE == + ' + ' This file include the functions that handle the Command requests + ' in the ASP Connector. +%> +<% +Sub GetFolders( resourceType, currentFolder ) + ' Map the virtual path to the local server path. + Dim sServerDir + sServerDir = ServerMapFolder( resourceType, currentFolder, "GetFolders" ) + + ' Open the "Folders" node. + Response.Write "" + + Dim oFSO, oCurrentFolder, oFolders, oFolder + Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" ) + if not (oFSO.FolderExists( sServerDir ) ) then + Set oFSO = Nothing + SendError 102, currentFolder + end if + + Set oCurrentFolder = oFSO.GetFolder( sServerDir ) + Set oFolders = oCurrentFolder.SubFolders + + For Each oFolder in oFolders + Response.Write "" + Next + + Set oFSO = Nothing + + ' Close the "Folders" node. + Response.Write "" +End Sub + +Sub GetFoldersAndFiles( resourceType, currentFolder ) + ' Map the virtual path to the local server path. + Dim sServerDir + sServerDir = ServerMapFolder( resourceType, currentFolder, "GetFoldersAndFiles" ) + + Dim oFSO, oCurrentFolder, oFolders, oFolder, oFiles, oFile + Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" ) + if not (oFSO.FolderExists( sServerDir ) ) then + Set oFSO = Nothing + SendError 102, currentFolder + end if + + Set oCurrentFolder = oFSO.GetFolder( sServerDir ) + Set oFolders = oCurrentFolder.SubFolders + Set oFiles = oCurrentFolder.Files + + ' Open the "Folders" node. + Response.Write "" + + For Each oFolder in oFolders + Response.Write "" + Next + + ' Close the "Folders" node. + Response.Write "" + + ' Open the "Files" node. + Response.Write "" + + For Each oFile in oFiles + Dim iFileSize + iFileSize = Round( oFile.size / 1024 ) + If ( iFileSize < 1 AND oFile.size <> 0 ) Then iFileSize = 1 + + Response.Write "" + Next + + ' Close the "Files" node. + Response.Write "" +End Sub + +Sub CreateFolder( resourceType, currentFolder ) + Dim sErrorNumber + + Dim sNewFolderName + sNewFolderName = Request.QueryString( "NewFolderName" ) + sNewFolderName = SanitizeFolderName( sNewFolderName ) + + If ( sNewFolderName = "" OR InStr( 1, sNewFolderName, ".." ) > 0 ) Then + sErrorNumber = "102" + Else + ' Map the virtual path to the local server path of the current folder. + Dim sServerDir + sServerDir = ServerMapFolder( resourceType, CombineLocalPaths(currentFolder, sNewFolderName), "CreateFolder" ) + + On Error Resume Next + + CreateServerFolder sServerDir + + Dim iErrNumber, sErrDescription + iErrNumber = err.number + sErrDescription = err.Description + + On Error Goto 0 + + Select Case iErrNumber + Case 0 + sErrorNumber = "0" + Case 52 + sErrorNumber = "102" ' Invalid Folder Name. + Case 70 + sErrorNumber = "103" ' Security Error. + Case 76 + sErrorNumber = "102" ' Path too long. + Case Else + sErrorNumber = "110" + End Select + End If + + ' Create the "Error" node. + Response.Write "" +End Sub + +Sub FileUpload( resourceType, currentFolder, sCommand ) + Dim oUploader + Set oUploader = New NetRube_Upload + oUploader.MaxSize = 0 + oUploader.Allowed = ConfigAllowedExtensions.Item( resourceType ) + oUploader.Denied = ConfigDeniedExtensions.Item( resourceType ) + oUploader.HtmlExtensions = ConfigHtmlExtensions + oUploader.GetData + + Dim sErrorNumber + sErrorNumber = "0" + + Dim sFileName, sOriginalFileName, sExtension + sFileName = "" + + If oUploader.ErrNum > 0 Then + sErrorNumber = "202" + Else + ' Map the virtual path to the local server path. + Dim sServerDir + sServerDir = ServerMapFolder( resourceType, currentFolder, sCommand ) + + Dim oFSO + Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" ) + if not (oFSO.FolderExists( sServerDir ) ) then + sErrorNumber = "102" + else + ' Get the uploaded file name. + sFileName = oUploader.File( "NewFile" ).Name + sExtension = oUploader.File( "NewFile" ).Ext + sFileName = SanitizeFileName( sFileName ) + sOriginalFileName = sFileName + + Dim iCounter + iCounter = 0 + + Do While ( True ) + Dim sFilePath + sFilePath = CombineLocalPaths(sServerDir, sFileName) + + If ( oFSO.FileExists( sFilePath ) ) Then + iCounter = iCounter + 1 + sFileName = RemoveExtension( sOriginalFileName ) & "(" & iCounter & ")." & sExtension + sErrorNumber = "201" + Else + oUploader.SaveAs "NewFile", sFilePath + If oUploader.ErrNum > 0 Then sErrorNumber = "202" + Exit Do + End If + Loop + end if + End If + + Set oUploader = Nothing + + dim sFileUrl + sFileUrl = CombinePaths( GetResourceTypePath( resourceType, sCommand ) , currentFolder ) + sFileUrl = CombinePaths( sFileUrl, sFileName ) + + SendUploadResults sErrorNumber, sFileUrl, sFileName, "" +End Sub + +%> diff --git a/fckeditor/editor/filemanager/connectors/asp/config.asp b/fckeditor/editor/filemanager/connectors/asp/config.asp new file mode 100644 index 0000000..abc574a --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/asp/config.asp @@ -0,0 +1,128 @@ +<% + ' FCKeditor - The text editor for Internet - http://www.fckeditor.net + ' Copyright (C) 2003-2008 Frederico Caldeira Knabben + ' + ' == BEGIN LICENSE == + ' + ' Licensed under the terms of any of the following licenses at your + ' choice: + ' + ' - GNU General Public License Version 2 or later (the "GPL") + ' http://www.gnu.org/licenses/gpl.html + ' + ' - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + ' http://www.gnu.org/licenses/lgpl.html + ' + ' - Mozilla Public License Version 1.1 or later (the "MPL") + ' http://www.mozilla.org/MPL/MPL-1.1.html + ' + ' == END LICENSE == + ' + ' Configuration file for the File Manager Connector for ASP. +%> +<% + +' SECURITY: You must explicitly enable this "connector" (set it to "True"). +' WARNING: don't just set "ConfigIsEnabled = true", you must be sure that only +' authenticated users can access this file or use some kind of session checking. +Dim ConfigIsEnabled +ConfigIsEnabled = False + +' Path to user files relative to the document root. +' This setting is preserved only for backward compatibility. +' You should look at the settings for each resource type to get the full potential +Dim ConfigUserFilesPath +ConfigUserFilesPath = "/userfiles/" + +' Due to security issues with Apache modules, it is recommended to leave the +' following setting enabled. +Dim ConfigForceSingleExtension +ConfigForceSingleExtension = true + +' What the user can do with this connector +Dim ConfigAllowedCommands +ConfigAllowedCommands = "QuickUpload|FileUpload|GetFolders|GetFoldersAndFiles|CreateFolder" + +' Allowed Resource Types +Dim ConfigAllowedTypes +ConfigAllowedTypes = "File|Image|Flash|Media" + +' For security, HTML is allowed in the first Kb of data for files having the +' following extensions only. +Dim ConfigHtmlExtensions +ConfigHtmlExtensions = "html|htm|xml|xsd|txt|js" +' +' Configuration settings for each Resource Type +' +' - AllowedExtensions: the possible extensions that can be allowed. +' If it is empty then any file type can be uploaded. +' +' - DeniedExtensions: The extensions that won't be allowed. +' If it is empty then no restrictions are done here. +' +' For a file to be uploaded it has to fulfill both the AllowedExtensions +' and DeniedExtensions (that's it: not being denied) conditions. +' +' - FileTypesPath: the virtual folder relative to the document root where +' these resources will be located. +' Attention: It must start and end with a slash: '/' +' +' - FileTypesAbsolutePath: the physical path to the above folder. It must be +' an absolute path. +' If it's an empty string then it will be autocalculated. +' Useful if you are using a virtual directory, symbolic link or alias. +' Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'. +' Attention: The above 'FileTypesPath' must point to the same directory. +' Attention: It must end with a slash: '/' +' +' - QuickUploadPath: the virtual folder relative to the document root where +' these resources will be uploaded using the Upload tab in the resources +' dialogs. +' Attention: It must start and end with a slash: '/' +' +' - QuickUploadAbsolutePath: the physical path to the above folder. It must be +' an absolute path. +' If it's an empty string then it will be autocalculated. +' Useful if you are using a virtual directory, symbolic link or alias. +' Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'. +' Attention: The above 'QuickUploadPath' must point to the same directory. +' Attention: It must end with a slash: '/' +' + +Dim ConfigAllowedExtensions, ConfigDeniedExtensions, ConfigFileTypesPath, ConfigFileTypesAbsolutePath, ConfigQuickUploadPath, ConfigQuickUploadAbsolutePath +Set ConfigAllowedExtensions = CreateObject( "Scripting.Dictionary" ) +Set ConfigDeniedExtensions = CreateObject( "Scripting.Dictionary" ) +Set ConfigFileTypesPath = CreateObject( "Scripting.Dictionary" ) +Set ConfigFileTypesAbsolutePath = CreateObject( "Scripting.Dictionary" ) +Set ConfigQuickUploadPath = CreateObject( "Scripting.Dictionary" ) +Set ConfigQuickUploadAbsolutePath = CreateObject( "Scripting.Dictionary" ) + +ConfigAllowedExtensions.Add "File", "7z|aiff|asf|avi|bmp|csv|doc|fla|flv|gif|gz|gzip|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|ods|odt|pdf|png|ppt|pxd|qt|ram|rar|rm|rmi|rmvb|rtf|sdc|sitd|swf|sxc|sxw|tar|tgz|tif|tiff|txt|vsd|wav|wma|wmv|xls|xml|zip" +ConfigDeniedExtensions.Add "File", "" +ConfigFileTypesPath.Add "File", ConfigUserFilesPath & "file/" +ConfigFileTypesAbsolutePath.Add "File", "" +ConfigQuickUploadPath.Add "File", ConfigUserFilesPath +ConfigQuickUploadAbsolutePath.Add "File", "" + +ConfigAllowedExtensions.Add "Image", "bmp|gif|jpeg|jpg|png" +ConfigDeniedExtensions.Add "Image", "" +ConfigFileTypesPath.Add "Image", ConfigUserFilesPath & "image/" +ConfigFileTypesAbsolutePath.Add "Image", "" +ConfigQuickUploadPath.Add "Image", ConfigUserFilesPath +ConfigQuickUploadAbsolutePath.Add "Image", "" + +ConfigAllowedExtensions.Add "Flash", "swf|flv" +ConfigDeniedExtensions.Add "Flash", "" +ConfigFileTypesPath.Add "Flash", ConfigUserFilesPath & "flash/" +ConfigFileTypesAbsolutePath.Add "Flash", "" +ConfigQuickUploadPath.Add "Flash", ConfigUserFilesPath +ConfigQuickUploadAbsolutePath.Add "Flash", "" + +ConfigAllowedExtensions.Add "Media", "aiff|asf|avi|bmp|fla|flv|gif|jpeg|jpg|mid|mov|mp3|mp4|mpc|mpeg|mpg|png|qt|ram|rm|rmi|rmvb|swf|tif|tiff|wav|wma|wmv" +ConfigDeniedExtensions.Add "Media", "" +ConfigFileTypesPath.Add "Media", ConfigUserFilesPath & "media/" +ConfigFileTypesAbsolutePath.Add "Media", "" +ConfigQuickUploadPath.Add "Media", ConfigUserFilesPath +ConfigQuickUploadAbsolutePath.Add "Media", "" + +%> diff --git a/fckeditor/editor/filemanager/connectors/asp/connector.asp b/fckeditor/editor/filemanager/connectors/asp/connector.asp new file mode 100644 index 0000000..dc113a9 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/asp/connector.asp @@ -0,0 +1,88 @@ +<%@ CodePage=65001 Language="VBScript"%> +<% +Option Explicit +Response.Buffer = True +%> +<% + ' FCKeditor - The text editor for Internet - http://www.fckeditor.net + ' Copyright (C) 2003-2008 Frederico Caldeira Knabben + ' + ' == BEGIN LICENSE == + ' + ' Licensed under the terms of any of the following licenses at your + ' choice: + ' + ' - GNU General Public License Version 2 or later (the "GPL") + ' http://www.gnu.org/licenses/gpl.html + ' + ' - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + ' http://www.gnu.org/licenses/lgpl.html + ' + ' - Mozilla Public License Version 1.1 or later (the "MPL") + ' http://www.mozilla.org/MPL/MPL-1.1.html + ' + ' == END LICENSE == + ' + ' This is the File Manager Connector for ASP. +%> + + + + + + +<% + +If ( ConfigIsEnabled = False ) Then + SendError 1, "This connector is disabled. Please check the ""editor/filemanager/connectors/asp/config.asp"" file" +End If + +DoResponse + +Sub DoResponse() + Dim sCommand, sResourceType, sCurrentFolder + + ' Get the main request information. + sCommand = Request.QueryString("Command") + + sResourceType = Request.QueryString("Type") + If ( sResourceType = "" ) Then sResourceType = "File" + + sCurrentFolder = GetCurrentFolder() + + ' Check if it is an allowed command + if ( Not IsAllowedCommand( sCommand ) ) then + SendError 1, "The """ & sCommand & """ command isn't allowed" + end if + + ' Check if it is an allowed resource type. + if ( Not IsAllowedType( sResourceType ) ) Then + SendError 1, "The """ & sResourceType & """ resource type isn't allowed" + end if + + ' File Upload doesn't have to Return XML, so it must be intercepted before anything. + If ( sCommand = "FileUpload" ) Then + FileUpload sResourceType, sCurrentFolder, sCommand + Exit Sub + End If + + SetXmlHeaders + + CreateXmlHeader sCommand, sResourceType, sCurrentFolder, GetUrlFromPath( sResourceType, sCurrentFolder, sCommand) + + ' Execute the required command. + Select Case sCommand + Case "GetFolders" + GetFolders sResourceType, sCurrentFolder + Case "GetFoldersAndFiles" + GetFoldersAndFiles sResourceType, sCurrentFolder + Case "CreateFolder" + CreateFolder sResourceType, sCurrentFolder + End Select + + CreateXmlFooter + + Response.End +End Sub + +%> diff --git a/fckeditor/editor/filemanager/connectors/asp/io.asp b/fckeditor/editor/filemanager/connectors/asp/io.asp new file mode 100644 index 0000000..ba6315f --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/asp/io.asp @@ -0,0 +1,236 @@ +<% + ' FCKeditor - The text editor for Internet - http://www.fckeditor.net + ' Copyright (C) 2003-2008 Frederico Caldeira Knabben + ' + ' == BEGIN LICENSE == + ' + ' Licensed under the terms of any of the following licenses at your + ' choice: + ' + ' - GNU General Public License Version 2 or later (the "GPL") + ' http://www.gnu.org/licenses/gpl.html + ' + ' - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + ' http://www.gnu.org/licenses/lgpl.html + ' + ' - Mozilla Public License Version 1.1 or later (the "MPL") + ' http://www.mozilla.org/MPL/MPL-1.1.html + ' + ' == END LICENSE == + ' + ' This file include IO specific functions used by the ASP Connector. +%> +<% +function CombinePaths( sBasePath, sFolder) + CombinePaths = RemoveFromEnd( sBasePath, "/" ) & "/" & RemoveFromStart( sFolder, "/" ) +end function + +function CombineLocalPaths( sBasePath, sFolder) + sFolder = replace(sFolder, "/", "\") + ' The RemoveFrom* functions use RegExp, so we must escape the \ + CombineLocalPaths = RemoveFromEnd( sBasePath, "\\" ) & "\" & RemoveFromStart( sFolder, "\\" ) +end function + +Function GetResourceTypePath( resourceType, sCommand ) + if ( sCommand = "QuickUpload") then + GetResourceTypePath = ConfigQuickUploadPath.Item( resourceType ) + else + GetResourceTypePath = ConfigFileTypesPath.Item( resourceType ) + end if +end Function + +Function GetResourceTypeDirectory( resourceType, sCommand ) + if ( sCommand = "QuickUpload") then + + if ( ConfigQuickUploadAbsolutePath.Item( resourceType ) <> "" ) then + GetResourceTypeDirectory = ConfigQuickUploadAbsolutePath.Item( resourceType ) + else + ' Map the "UserFiles" path to a local directory. + GetResourceTypeDirectory = Server.MapPath( ConfigQuickUploadPath.Item( resourceType ) ) + end if + else + if ( ConfigFileTypesAbsolutePath.Item( resourceType ) <> "" ) then + GetResourceTypeDirectory = ConfigFileTypesAbsolutePath.Item( resourceType ) + else + ' Map the "UserFiles" path to a local directory. + GetResourceTypeDirectory = Server.MapPath( ConfigFileTypesPath.Item( resourceType ) ) + end if + end if +end Function + +Function GetUrlFromPath( resourceType, folderPath, sCommand ) + GetUrlFromPath = CombinePaths( GetResourceTypePath( resourceType, sCommand ), folderPath ) +End Function + +Function RemoveExtension( fileName ) + RemoveExtension = Left( fileName, InStrRev( fileName, "." ) - 1 ) +End Function + +Function ServerMapFolder( resourceType, folderPath, sCommand ) + Dim sResourceTypePath + ' Get the resource type directory. + sResourceTypePath = GetResourceTypeDirectory( resourceType, sCommand ) + + ' Ensure that the directory exists. + CreateServerFolder sResourceTypePath + + ' Return the resource type directory combined with the required path. + ServerMapFolder = CombineLocalPaths( sResourceTypePath, folderPath ) +End Function + +Sub CreateServerFolder( folderPath ) + Dim oFSO + Set oFSO = Server.CreateObject( "Scripting.FileSystemObject" ) + + Dim sParent + sParent = oFSO.GetParentFolderName( folderPath ) + + ' If folderPath is a network path (\\server\folder\) then sParent is an empty string. + ' Get out. + if (sParent = "") then exit sub + + ' Check if the parent exists, or create it. + If ( NOT oFSO.FolderExists( sParent ) ) Then CreateServerFolder( sParent ) + + If ( oFSO.FolderExists( folderPath ) = False ) Then + On Error resume next + oFSO.CreateFolder( folderPath ) + + if err.number<>0 then + dim sErrorNumber + Dim iErrNumber, sErrDescription + iErrNumber = err.number + sErrDescription = err.Description + + On Error Goto 0 + + Select Case iErrNumber + Case 52 + sErrorNumber = "102" ' Invalid Folder Name. + Case 70 + sErrorNumber = "103" ' Security Error. + Case 76 + sErrorNumber = "102" ' Path too long. + Case Else + sErrorNumber = "110" + End Select + + SendError sErrorNumber, "CreateServerFolder(" & folderPath & ") : " & sErrDescription + end if + + End If + + Set oFSO = Nothing +End Sub + +Function IsAllowedExt( extension, resourceType ) + Dim oRE + Set oRE = New RegExp + oRE.IgnoreCase = True + oRE.Global = True + + Dim sAllowed, sDenied + sAllowed = ConfigAllowedExtensions.Item( resourceType ) + sDenied = ConfigDeniedExtensions.Item( resourceType ) + + IsAllowedExt = True + + If sDenied <> "" Then + oRE.Pattern = sDenied + IsAllowedExt = Not oRE.Test( extension ) + End If + + If IsAllowedExt And sAllowed <> "" Then + oRE.Pattern = sAllowed + IsAllowedExt = oRE.Test( extension ) + End If + + Set oRE = Nothing +End Function + +Function IsAllowedType( resourceType ) + Dim oRE + Set oRE = New RegExp + oRE.IgnoreCase = True + oRE.Global = True + oRE.Pattern = "^(" & ConfigAllowedTypes & ")$" + + IsAllowedType = oRE.Test( resourceType ) + + Set oRE = Nothing +End Function + +Function IsAllowedCommand( sCommand ) + Dim oRE + Set oRE = New RegExp + oRE.IgnoreCase = True + oRE.Global = True + oRE.Pattern = "^(" & ConfigAllowedCommands & ")$" + + IsAllowedCommand = oRE.Test( sCommand ) + + Set oRE = Nothing +End Function + +function GetCurrentFolder() + dim sCurrentFolder + sCurrentFolder = Request.QueryString("CurrentFolder") + If ( sCurrentFolder = "" ) Then sCurrentFolder = "/" + + ' Check the current folder syntax (must begin and start with a slash). + If ( Right( sCurrentFolder, 1 ) <> "/" ) Then sCurrentFolder = sCurrentFolder & "/" + If ( Left( sCurrentFolder, 1 ) <> "/" ) Then sCurrentFolder = "/" & sCurrentFolder + + ' Check for invalid folder paths (..) + If ( InStr( 1, sCurrentFolder, ".." ) <> 0 OR InStr( 1, sCurrentFolder, "\" ) <> 0) Then + SendError 102, "" + End If + + GetCurrentFolder = sCurrentFolder +end function + +' Do a cleanup of the folder name to avoid possible problems +function SanitizeFolderName( sNewFolderName ) + Dim oRegex + Set oRegex = New RegExp + oRegex.Global = True + +' remove . \ / | : ? * " < > and control characters + oRegex.Pattern = "(\.|\\|\/|\||:|\?|\*|""|\<|\>|[\u0000-\u001F]|\u007F)" + SanitizeFolderName = oRegex.Replace( sNewFolderName, "_" ) + + Set oRegex = Nothing +end function + +' Do a cleanup of the file name to avoid possible problems +function SanitizeFileName( sNewFileName ) + Dim oRegex + Set oRegex = New RegExp + oRegex.Global = True + + if ( ConfigForceSingleExtension = True ) then + oRegex.Pattern = "\.(?![^.]*$)" + sNewFileName = oRegex.Replace( sNewFileName, "_" ) + end if + +' remove \ / | : ? * " < > and control characters + oRegex.Pattern = "(\\|\/|\||:|\?|\*|""|\<|\>|[\u0000-\u001F]|\u007F)" + SanitizeFileName = oRegex.Replace( sNewFileName, "_" ) + + Set oRegex = Nothing +end function + +' This is the function that sends the results of the uploading process. +Sub SendUploadResults( errorNumber, fileUrl, fileName, customMsg ) + Response.Clear + Response.Write "" + Response.End +End Sub + +%> diff --git a/fckeditor/editor/filemanager/connectors/asp/upload.asp b/fckeditor/editor/filemanager/connectors/asp/upload.asp new file mode 100644 index 0000000..8fa11c2 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/asp/upload.asp @@ -0,0 +1,65 @@ +<%@ CodePage=65001 Language="VBScript"%> +<% +Option Explicit +Response.Buffer = True +%> +<% + ' FCKeditor - The text editor for Internet - http://www.fckeditor.net + ' Copyright (C) 2003-2008 Frederico Caldeira Knabben + ' + ' == BEGIN LICENSE == + ' + ' Licensed under the terms of any of the following licenses at your + ' choice: + ' + ' - GNU General Public License Version 2 or later (the "GPL") + ' http://www.gnu.org/licenses/gpl.html + ' + ' - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + ' http://www.gnu.org/licenses/lgpl.html + ' + ' - Mozilla Public License Version 1.1 or later (the "MPL") + ' http://www.mozilla.org/MPL/MPL-1.1.html + ' + ' == END LICENSE == + ' + ' This is the "File Uploader" for ASP. +%> + + + + + +<% + +Sub SendError( number, text ) + SendUploadResults number, "", "", text +End Sub + +' Check if this uploader has been enabled. +If ( ConfigIsEnabled = False ) Then + SendUploadResults "1", "", "", "This file uploader is disabled. Please check the ""editor/filemanager/connectors/asp/config.asp"" file" +End If + + Dim sCommand, sResourceType, sCurrentFolder + + sCommand = "QuickUpload" + + sResourceType = Request.QueryString("Type") + If ( sResourceType = "" ) Then sResourceType = "File" + + sCurrentFolder = GetCurrentFolder() + + ' Is Upload enabled? + if ( Not IsAllowedCommand( sCommand ) ) then + SendUploadResults "1", "", "", "The """ & sCommand & """ command isn't allowed" + end if + + ' Check if it is an allowed resource type. + if ( Not IsAllowedType( sResourceType ) ) Then + SendUploadResults "1", "", "", "The " & sResourceType & " resource type isn't allowed" + end if + + FileUpload sResourceType, sCurrentFolder, sCommand + +%> diff --git a/fckeditor/editor/filemanager/connectors/asp/util.asp b/fckeditor/editor/filemanager/connectors/asp/util.asp new file mode 100644 index 0000000..ba414f5 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/asp/util.asp @@ -0,0 +1,55 @@ +<% + ' FCKeditor - The text editor for Internet - http://www.fckeditor.net + ' Copyright (C) 2003-2008 Frederico Caldeira Knabben + ' + ' == BEGIN LICENSE == + ' + ' Licensed under the terms of any of the following licenses at your + ' choice: + ' + ' - GNU General Public License Version 2 or later (the "GPL") + ' http://www.gnu.org/licenses/gpl.html + ' + ' - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + ' http://www.gnu.org/licenses/lgpl.html + ' + ' - Mozilla Public License Version 1.1 or later (the "MPL") + ' http://www.mozilla.org/MPL/MPL-1.1.html + ' + ' == END LICENSE == + ' + ' This file include generic functions used by the ASP Connector. +%> +<% +Function RemoveFromStart( sourceString, charToRemove ) + Dim oRegex + Set oRegex = New RegExp + oRegex.Pattern = "^" & charToRemove & "+" + + RemoveFromStart = oRegex.Replace( sourceString, "" ) +End Function + +Function RemoveFromEnd( sourceString, charToRemove ) + Dim oRegex + Set oRegex = New RegExp + oRegex.Pattern = charToRemove & "+$" + + RemoveFromEnd = oRegex.Replace( sourceString, "" ) +End Function + +Function ConvertToXmlAttribute( value ) + ConvertToXmlAttribute = Replace( value, "&", "&" ) +End Function + +Function InArray( value, sourceArray ) + Dim i + For i = 0 to UBound( sourceArray ) + If sourceArray(i) = value Then + InArray = True + Exit Function + End If + Next + InArray = False +End Function + +%> diff --git a/fckeditor/editor/filemanager/connectors/aspx/config.ascx b/fckeditor/editor/filemanager/connectors/aspx/config.ascx new file mode 100644 index 0000000..fafd7d7 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/aspx/config.ascx @@ -0,0 +1,98 @@ +<%@ Control Language="C#" EnableViewState="false" AutoEventWireup="false" Inherits="FredCK.FCKeditorV2.FileBrowser.Config" %> +<%-- + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/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 Browser Connector for ASP.NET. +--%> + diff --git a/fckeditor/editor/filemanager/connectors/aspx/connector.aspx b/fckeditor/editor/filemanager/connectors/aspx/connector.aspx new file mode 100644 index 0000000..8f27ade --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/aspx/connector.aspx @@ -0,0 +1,32 @@ +<%@ Page Language="c#" Trace="false" Inherits="FredCK.FCKeditorV2.FileBrowser.Connector" AutoEventWireup="false" %> +<%@ Register Src="config.ascx" TagName="Config" TagPrefix="FCKeditor" %> +<%-- + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/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 +--%> + diff --git a/fckeditor/editor/filemanager/connectors/aspx/upload.aspx b/fckeditor/editor/filemanager/connectors/aspx/upload.aspx new file mode 100644 index 0000000..4c295cd --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/aspx/upload.aspx @@ -0,0 +1,32 @@ +<%@ Page Language="c#" Trace="false" Inherits="FredCK.FCKeditorV2.FileBrowser.Uploader" AutoEventWireup="false" %> +<%@ Register Src="config.ascx" TagName="Config" TagPrefix="FCKeditor" %> +<%-- + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/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 +--%> + diff --git a/fckeditor/editor/filemanager/connectors/cfm/ImageObject.cfc b/fckeditor/editor/filemanager/connectors/cfm/ImageObject.cfc new file mode 100644 index 0000000..b9b919c --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/cfm/ImageObject.cfc @@ -0,0 +1,273 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fckeditor/editor/filemanager/connectors/cfm/cf5_connector.cfm b/fckeditor/editor/filemanager/connectors/cfm/cf5_connector.cfm new file mode 100644 index 0000000..ce21a3a --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/cfm/cf5_connector.cfm @@ -0,0 +1,315 @@ + + + + + + + + + + + + userFilesPath = config.userFilesPath; + + if ( userFilesPath eq "" ) + { + userFilesPath = "/userfiles/"; + } + + // make sure the user files path is correctly formatted + userFilesPath = replace(userFilesPath, "\", "/", "ALL"); + userFilesPath = replace(userFilesPath, '//', '/', 'ALL'); + if ( right(userFilesPath,1) NEQ "/" ) + { + userFilesPath = userFilesPath & "/"; + } + if ( left(userFilesPath,1) NEQ "/" ) + { + userFilesPath = "/" & userFilesPath; + } + + // make sure the current folder is correctly formatted + url.currentFolder = replace(url.currentFolder, "\", "/", "ALL"); + url.currentFolder = replace(url.currentFolder, '//', '/', 'ALL'); + if ( right(url.currentFolder,1) neq "/" ) + { + url.currentFolder = url.currentFolder & "/"; + } + if ( left(url.currentFolder,1) neq "/" ) + { + url.currentFolder = "/" & url.currentFolder; + } + + if ( find("/",getBaseTemplatePath()) neq 0 ) + { + fs = "/"; + } + else + { + fs = "\"; + } + + // Get the base physical path to the web root for this application. The code to determine the path automatically assumes that + // the "FCKeditor" directory in the http request path is directly off the web root for the application and that it's not a + // virtual directory or a symbolic link / junction. Use the serverPath config setting to force a physical path if necessary. + if ( len(config.serverPath) ) + { + serverPath = config.serverPath; + + if ( right(serverPath,1) neq fs ) + { + serverPath = serverPath & fs; + } + } + else + { + serverPath = replaceNoCase(getBaseTemplatePath(),replace(cgi.script_name,"/",fs,"all"),"") & replace(userFilesPath,"/",fs,"all"); + } + + rootPath = left( serverPath, Len(serverPath) - Len(userFilesPath) ) ; + xmlContent = ""; // append to this string to build content + + + + + + + + + + + + + + + + + + + + + + + + "> + + + + "> + + + + '> + + + + '> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + "> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + i=1; + folders = ""; + while( i lte qDir.recordCount ) { + if( not compareNoCase( qDir.type[i], "FILE" )) + break; + if( not listFind(".,..", qDir.name[i]) ) + folders = folders & ''; + i=i+1; + } + + xmlContent = xmlContent & '' & folders & ''; + + + + + + + + + + + + i=1; + folders = ""; + files = ""; + while( i lte qDir.recordCount ) { + if( not compareNoCase( qDir.type[i], "DIR" ) and not listFind(".,..", qDir.name[i]) ) { + folders = folders & ''; + } else if( not compareNoCase( qDir.type[i], "FILE" ) ) { + fileSizeKB = round(qDir.size[i] / 1024); + files = files & ''; + } + i=i+1; + } + + xmlContent = xmlContent & '' & folders & ''; + xmlContent = xmlContent & '' & files & ''; + + + + + + + + + + + newFolderName = url.newFolderName; + if( reFind("[^A-Za-z0-9_\-\.]", newFolderName) ) { + // Munge folder name same way as we do the filename + // This means folder names are always US-ASCII so we don't have to worry about CF5 and UTF-8 + newFolderName = reReplace(newFolderName, "[^A-Za-z0-9\-\.]", "_", "all"); + newFolderName = reReplace(newFolderName, "_{2,}", "_", "all"); + newFolderName = reReplace(newFolderName, "([^_]+)_+$", "\1", "all"); + newFolderName = reReplace(newFolderName, "$_([^_]+)$", "\1", "all"); + } + + + + + + + + + + + + + + + + + + + + + '> + + + + + + + + + + + + xmlHeader = ''; + xmlHeader = xmlHeader & ''; + xmlFooter = ''; + + + + + + +#xmlHeader##xmlContent##xmlFooter# diff --git a/fckeditor/editor/filemanager/connectors/cfm/cf5_upload.cfm b/fckeditor/editor/filemanager/connectors/cfm/cf5_upload.cfm new file mode 100644 index 0000000..daebaf0 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/cfm/cf5_upload.cfm @@ -0,0 +1,299 @@ + + + + + + + + + + + + + function SendUploadResults(errorNumber, fileUrl, fileName, customMsg) + { + WriteOutput(''); + } + + + + + + + + + + + + + + + + + + + + + + + + userFilesPath = config.userFilesPath; + + if ( userFilesPath eq "" ) { + userFilesPath = "/userfiles/"; + } + + // make sure the user files path is correctly formatted + userFilesPath = replace(userFilesPath, "\", "/", "ALL"); + userFilesPath = replace(userFilesPath, '//', '/', 'ALL'); + if ( right(userFilesPath,1) NEQ "/" ) { + userFilesPath = userFilesPath & "/"; + } + if ( left(userFilesPath,1) NEQ "/" ) { + userFilesPath = "/" & userFilesPath; + } + + // make sure the current folder is correctly formatted + url.currentFolder = replace(url.currentFolder, "\", "/", "ALL"); + url.currentFolder = replace(url.currentFolder, '//', '/', 'ALL'); + if ( right(url.currentFolder,1) neq "/" ) { + url.currentFolder = url.currentFolder & "/"; + } + if ( left(url.currentFolder,1) neq "/" ) { + url.currentFolder = "/" & url.currentFolder; + } + + if (find("/",getBaseTemplatePath())) { + 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; + + if ( right(serverPath,1) neq fs ) { + serverPath = serverPath & fs; + } + } else { + serverPath = replaceNoCase(getBaseTemplatePath(),replace(cgi.script_name,"/",fs,"all"),"") & replace(userFilesPath,"/",fs,"all"); + } + + rootPath = left( serverPath, Len(serverPath) - Len(userFilesPath) ) ; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + errorNumber = 0; + fileName = cffile.ClientFileName ; + fileExt = cffile.ServerFileExt ; + fileExisted = false ; + + // 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"); + } + + // remove additional dots from file name + if( isDefined("Config.ForceSingleExtension") and Config.ForceSingleExtension ) + fileName = replace( fileName, '.', "_", "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#") ) { + fileExisted = true ; + counter = counter + 1 ; + fileName = tmpFileName & '(#counter#)' ; + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fckeditor/editor/filemanager/connectors/cfm/cf_basexml.cfm b/fckeditor/editor/filemanager/connectors/cfm/cf_basexml.cfm new file mode 100644 index 0000000..61a784c --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/cfm/cf_basexml.cfm @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fckeditor/editor/filemanager/connectors/cfm/cf_commands.cfm b/fckeditor/editor/filemanager/connectors/cfm/cf_commands.cfm new file mode 100644 index 0000000..2a900ce --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/cfm/cf_commands.cfm @@ -0,0 +1,230 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + sFileExt = GetExtension( sFileName ) ; + sFilePart = RemoveExtension( sFileName ); + while( fileExists( sServerDir & sFileName ) ) + { + counter = counter + 1; + sFileName = sFilePart & '(#counter#).' & CFFILE.ClientFileExt; + errorNumber = 201; + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + while( i lte qDir.recordCount ) + { + if( compareNoCase( qDir.type[i], "FILE" ) and not listFind( ".,..", qDir.name[i] ) ) + { + folders = folders & '' ; + } + i = i + 1; + } + + #folders# + + + + + + + + + + + + + + + + while( i lte qDir.recordCount ) + { + if( not compareNoCase( qDir.type[i], "DIR" ) and not listFind( ".,..", qDir.name[i] ) ) + { + folders = folders & '' ; + } + else if( not compareNoCase( qDir.type[i], "FILE" ) ) + { + fileSizeKB = round(qDir.size[i] / 1024) ; + files = files & '' ; + } + i = i + 1 ; + } + + #folders# + #files# + + + + + + + + + + + + + + + + sNewFolderName = SanitizeFolderName( sNewFolderName ) ; + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fckeditor/editor/filemanager/connectors/cfm/cf_connector.cfm b/fckeditor/editor/filemanager/connectors/cfm/cf_connector.cfm new file mode 100644 index 0000000..8bd1e75 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/cfm/cf_connector.cfm @@ -0,0 +1,89 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fckeditor/editor/filemanager/connectors/cfm/cf_io.cfm b/fckeditor/editor/filemanager/connectors/cfm/cf_io.cfm new file mode 100644 index 0000000..e07e4df --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/cfm/cf_io.cfm @@ -0,0 +1,291 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +|[[:cntrl:]]+', "_", "all" )> + + + + + + + + + + var chunk = ""; + var fileReaderClass = ""; + var fileReader = ""; + var file = ""; + var done = false; + var counter = 0; + var byteArray = ""; + + if( not fileExists( ARGUMENTS.fileName ) ) + { + return "" ; + } + + if (REQUEST.CFVersion gte 8) + { + file = FileOpen( ARGUMENTS.fileName, "readbinary" ) ; + byteArray = FileRead( file, 1024 ) ; + chunk = toString( toBinary( toBase64( byteArray ) ) ) ; + FileClose( file ) ; + } + else + { + fileReaderClass = createObject("java", "java.io.FileInputStream"); + fileReader = fileReaderClass.init(fileName); + + while(not done) + { + char = fileReader.read(); + counter = counter + 1; + if ( char eq -1 or counter eq ARGUMENTS.bytes) + { + done = true; + } + else + { + chunk = chunk & chr(char) ; + } + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + +|[[:cntrl:]]+', "_", "all" )> + + + diff --git a/fckeditor/editor/filemanager/connectors/cfm/cf_upload.cfm b/fckeditor/editor/filemanager/connectors/cfm/cf_upload.cfm new file mode 100644 index 0000000..9bef3c4 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/cfm/cf_upload.cfm @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/fckeditor/editor/filemanager/connectors/cfm/cf_util.cfm b/fckeditor/editor/filemanager/connectors/cfm/cf_util.cfm new file mode 100644 index 0000000..3b8b9b1 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/cfm/cf_util.cfm @@ -0,0 +1,131 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + > + + + + + + + + + + + + + + + diff --git a/fckeditor/editor/filemanager/connectors/cfm/config.cfm b/fckeditor/editor/filemanager/connectors/cfm/config.cfm new file mode 100644 index 0000000..f4b9086 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/cfm/config.cfm @@ -0,0 +1,189 @@ + + + + + Config = StructNew() ; + + // SECURITY: You must explicitly enable this "connector". (Set enabled to "true") + Config.Enabled = false ; + + + // Path to uploaded files relative to the document root. + Config.UserFilesPath = "/userfiles/" ; + + // 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 + // Example: C:\inetpub\wwwroot\myDocs\ + Config.ServerPath = "" ; + + // Due to security issues with Apache modules, it is recommended to leave the + // following setting enabled. + Config.ForceSingleExtension = true ; + + // Perform additional checks for image files - if set to true, validate image size + // (This feature works in MX 6.0 and above) + Config.SecureImageUploads = true; + + // What the user can do with this connector + Config.ConfigAllowedCommands = "QuickUpload,FileUpload,GetFolders,GetFoldersAndFiles,CreateFolder" ; + + //Allowed Resource Types + Config.ConfigAllowedTypes = "File,Image,Flash,Media" ; + + // For security, HTML is allowed in the first Kb of data for files having the + // following extensions only. + // (This feature works in MX 6.0 and above)) + Config.HtmlExtensions = "html,htm,xml,xsd,txt,js" ; + + //Due to known issues with GetTempDirectory function, it is + //recommended to set this vairiable to a valid directory + //instead of using the GetTempDirectory function + //(used by MX 6.0 and above) + Config.TempDirectory = GetTempDirectory(); + +// Configuration settings for each Resource Type +// +// - AllowedExtensions: the possible extensions that can be allowed. +// If it is empty then any file type can be uploaded. +// - DeniedExtensions: The extensions that won't be allowed. +// If it is empty then no restrictions are done here. +// +// For a file to be uploaded it has to fulfill both the AllowedExtensions +// and DeniedExtensions (that's it: not being denied) conditions. +// +// - FileTypesPath: the virtual folder relative to the document root where +// these resources will be located. +// Attention: It must start and end with a slash: '/' +// +// - FileTypesAbsolutePath: the physical path to the above folder. It must be +// an absolute path. +// If it's an empty string then it will be autocalculated. +// Usefull if you are using a virtual directory, symbolic link or alias. +// Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'. +// Attention: The above 'FileTypesPath' must point to the same directory. +// Attention: It must end with a slash: '/' +// +// +// - QuickUploadPath: the virtual folder relative to the document root where +// these resources will be uploaded using the Upload tab in the resources +// dialogs. +// Attention: It must start and end with a slash: '/' +// +// - QuickUploadAbsolutePath: the physical path to the above folder. It must be +// an absolute path. +// If it's an empty string then it will be autocalculated. +// Usefull if you are using a virtual directory, symbolic link or alias. +// Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'. +// Attention: The above 'QuickUploadPath' must point to the same directory. +// Attention: It must end with a slash: '/' + + Config.AllowedExtensions = StructNew() ; + Config.DeniedExtensions = StructNew() ; + Config.FileTypesPath = StructNew() ; + Config.FileTypesAbsolutePath = StructNew() ; + Config.QuickUploadPath = StructNew() ; + Config.QuickUploadAbsolutePath = StructNew() ; + + Config.AllowedExtensions["File"] = "7z,aiff,asf,avi,bmp,csv,doc,fla,flv,gif,gz,gzip,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,ods,odt,pdf,png,ppt,pxd,qt,ram,rar,rm,rmi,rmvb,rtf,sdc,sitd,swf,sxc,sxw,tar,tgz,tif,tiff,txt,vsd,wav,wma,wmv,xls,xml,zip" ; + Config.DeniedExtensions["File"] = "" ; + Config.FileTypesPath["File"] = Config.UserFilesPath & 'file/' ; + Config.FileTypesAbsolutePath["File"] = iif( Config.ServerPath eq "", de(""), de(Config.ServerPath & 'file/') ) ; + Config.QuickUploadPath["File"] = Config.FileTypesPath["File"] ; + Config.QuickUploadAbsolutePath["File"] = Config.FileTypesAbsolutePath["File"] ; + + Config.AllowedExtensions["Image"] = "bmp,gif,jpeg,jpg,png" ; + Config.DeniedExtensions["Image"] = "" ; + Config.FileTypesPath["Image"] = Config.UserFilesPath & 'image/' ; + Config.FileTypesAbsolutePath["Image"] = iif( Config.ServerPath eq "", de(""), de(Config.ServerPath & 'image/') ) ; + Config.QuickUploadPath["Image"] = Config.FileTypesPath["Image"] ; + Config.QuickUploadAbsolutePath["Image"] = Config.FileTypesAbsolutePath["Image"] ; + + Config.AllowedExtensions["Flash"] = "swf,flv" ; + Config.DeniedExtensions["Flash"] = "" ; + Config.FileTypesPath["Flash"] = Config.UserFilesPath & 'flash/' ; + Config.FileTypesAbsolutePath["Flash"] = iif( Config.ServerPath eq "", de(""), de(Config.ServerPath & 'flash/') ) ; + Config.QuickUploadPath["Flash"] = Config.FileTypesPath["Flash"] ; + Config.QuickUploadAbsolutePath["Flash"] = Config.FileTypesAbsolutePath["Flash"] ; + + Config.AllowedExtensions["Media"] = "aiff,asf,avi,bmp,fla,flv,gif,jpeg,jpg,mid,mov,mp3,mp4,mpc,mpeg,mpg,png,qt,ram,rm,rmi,rmvb,swf,tif,tiff,wav,wma,wmv" ; + Config.DeniedExtensions["Media"] = "" ; + Config.FileTypesPath["Media"] = Config.UserFilesPath & 'media/' ; + Config.FileTypesAbsolutePath["Media"] = iif( Config.ServerPath eq "", de(""), de(Config.ServerPath & 'media/') ) ; + Config.QuickUploadPath["Media"] = Config.FileTypesPath["Media"] ; + Config.QuickUploadAbsolutePath["Media"] = Config.FileTypesAbsolutePath["Media"] ; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + function structCopyKeys(stFrom, stTo) { + for ( key in stFrom ) { + if ( isStruct(stFrom[key]) ) { + structCopyKeys(stFrom[key],stTo[key]); + } else { + stTo[key] = stFrom[key]; + } + } + } + structCopyKeys(FCKeditor, config); + + + diff --git a/fckeditor/editor/filemanager/connectors/cfm/connector.cfm b/fckeditor/editor/filemanager/connectors/cfm/connector.cfm new file mode 100644 index 0000000..342e449 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/cfm/connector.cfm @@ -0,0 +1,32 @@ + + + + + + + + + + diff --git a/fckeditor/editor/filemanager/connectors/cfm/image.cfc b/fckeditor/editor/filemanager/connectors/cfm/image.cfc new file mode 100644 index 0000000..378c4b4 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/cfm/image.cfc @@ -0,0 +1,1324 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + paths = arrayNew(1); + paths[1] = expandPath("metadata-extractor-2.3.1.jar"); + loader = createObject("component", "javaloader.JavaLoader").init(paths); + + //at this stage we only have access to the class, but we don't have an instance + JpegMetadataReader = loader.create("com.drew.imaging.jpeg.JpegMetadataReader"); + + myMetaData = JpegMetadataReader.readMetadata(inFile); + directories = myMetaData.getDirectoryIterator(); + while (directories.hasNext()) { + currentDirectory = directories.next(); + tags = currentDirectory.getTagIterator(); + while (tags.hasNext()) { + currentTag = tags.next(); + if (currentTag.getTagName() DOES NOT CONTAIN "Unknown") { //leave out the junk data + queryAddRow(retQry); + querySetCell(retQry,"dirName",replace(currentTag.getDirectoryName(),' ','_','ALL')); + tagName = replace(currentTag.getTagName(),' ','','ALL'); + tagName = replace(tagName,'/','','ALL'); + querySetCell(retQry,"tagName",tagName); + querySetCell(retQry,"tagValue",currentTag.getDescription()); + } + } + } + return retQry; + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + resizedImage = CreateObject("java", "java.awt.image.BufferedImage"); + at = CreateObject("java", "java.awt.geom.AffineTransform"); + op = CreateObject("java", "java.awt.image.AffineTransformOp"); + + w = img.getWidth(); + h = img.getHeight(); + + if (preserveAspect and cropToExact and newHeight gt 0 and newWidth gt 0) + { + if (w / h gt newWidth / newHeight){ + newWidth = 0; + } else if (w / h lt newWidth / newHeight){ + newHeight = 0; + } + } else if (preserveAspect and newHeight gt 0 and newWidth gt 0) { + if (w / h gt newWidth / newHeight){ + newHeight = 0; + } else if (w / h lt newWidth / newHeight){ + newWidth = 0; + } + } + if (newWidth gt 0 and newHeight eq 0) { + scale = newWidth / w; + w = newWidth; + h = round(h*scale); + } else if (newHeight gt 0 and newWidth eq 0) { + scale = newHeight / h; + h = newHeight; + w = round(w*scale); + } else if (newHeight gt 0 and newWidth gt 0) { + w = newWidth; + h = newHeight; + } else { + retVal = throw( retVal.errorMessage); + return retVal; + } + resizedImage.init(javacast("int",w),javacast("int",h),img.getType()); + + w = w / img.getWidth(); + h = h / img.getHeight(); + + + + op.init(at.getScaleInstance(javacast("double",w),javacast("double",h)), rh); + // resizedImage = op.createCompatibleDestImage(img, img.getColorModel()); + op.filter(img, resizedImage); + + imgInfo = getimageinfo(resizedImage, ""); + if (imgInfo.errorCode gt 0) + { + return imgInfo; + } + + cropOffsetX = max( Int( (imgInfo.width/2) - (newWidth/2) ), 0 ); + cropOffsetY = max( Int( (imgInfo.height/2) - (newHeight/2) ), 0 ); + // There is a chance that the image is exactly the correct + // width and height and don't need to be cropped + if + ( + preserveAspect and cropToExact + and + (imgInfo.width IS NOT specifiedWidth OR imgInfo.height IS NOT specifiedHeight) + ) + { + // Get the correct offset to get the center of the image + cropOffsetX = max( Int( (imgInfo.width/2) - (specifiedWidth/2) ), 0 ); + cropOffsetY = max( Int( (imgInfo.height/2) - (specifiedHeight/2) ), 0 ); + + cropImageResult = crop( resizedImage, "", "", cropOffsetX, cropOffsetY, specifiedWidth, specifiedHeight ); + if ( cropImageResult.errorCode GT 0) + { + return cropImageResult; + } else { + resizedImage = cropImageResult.img; + } + } + if (outputFile eq "") + { + retVal.img = resizedImage; + return retVal; + } else { + saveImage = writeImage(outputFile, resizedImage, jpegCompression); + if (saveImage.errorCode gt 0) + { + return saveImage; + } else { + return retVal; + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + if (fromX + newWidth gt img.getWidth() + OR + fromY + newHeight gt img.getHeight() + ) + { + retval = throw( "The cropped image dimensions go beyond the original image dimensions."); + return retVal; + } + croppedImage = img.getSubimage(javaCast("int", fromX), javaCast("int", fromY), javaCast("int", newWidth), javaCast("int", newHeight) ); + if (outputFile eq "") + { + retVal.img = croppedImage; + return retVal; + } else { + saveImage = writeImage(outputFile, croppedImage, jpegCompression); + if (saveImage.errorCode gt 0) + { + return saveImage; + } else { + return retVal; + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + rotatedImage = CreateObject("java", "java.awt.image.BufferedImage"); + at = CreateObject("java", "java.awt.geom.AffineTransform"); + op = CreateObject("java", "java.awt.image.AffineTransformOp"); + + iw = img.getWidth(); h = iw; + ih = img.getHeight(); w = ih; + + if(arguments.degrees eq 180) { w = iw; h = ih; } + + x = (w/2)-(iw/2); + y = (h/2)-(ih/2); + + rotatedImage.init(javacast("int",w),javacast("int",h),img.getType()); + + at.rotate(arguments.degrees * 0.0174532925,w/2,h/2); + at.translate(x,y); + op.init(at, rh); + + op.filter(img, rotatedImage); + + if (outputFile eq "") + { + retVal.img = rotatedImage; + return retVal; + } else { + saveImage = writeImage(outputFile, rotatedImage, jpegCompression); + if (saveImage.errorCode gt 0) + { + return saveImage; + } else { + return retVal; + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + if (outputFile eq "") + { + retVal = throw( "The convert method requires a valid output filename."); + return retVal; + } else { + saveImage = writeImage(outputFile, img, jpegCompression); + if (saveImage.errorCode gt 0) + { + return saveImage; + } else { + return retVal; + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + /* + JPEG output method handles compression + */ + out = createObject("java", "java.io.BufferedOutputStream"); + fos = createObject("java", "java.io.FileOutputStream"); + fos.init(tempOutputFile); + out.init(fos); + JPEGCodec = createObject("java", "com.sun.image.codec.jpeg.JPEGCodec"); + encoder = JPEGCodec.createJPEGEncoder(out); + param = encoder.getDefaultJPEGEncodeParam(img); + param.setQuality(quality, false); + encoder.setJPEGEncodeParam(param); + encoder.encode(img); + out.close(); + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + flippedImage = CreateObject("java", "java.awt.image.BufferedImage"); + at = CreateObject("java", "java.awt.geom.AffineTransform"); + op = CreateObject("java", "java.awt.image.AffineTransformOp"); + + flippedImage.init(img.getWidth(), img.getHeight(), img.getType()); + + if (direction eq "horizontal") { + at = at.getScaleInstance(-1, 1); + at.translate(-img.getWidth(), 0); + } else { + at = at.getScaleInstance(1,-1); + at.translate(0, -img.getHeight()); + } + op.init(at, rh); + op.filter(img, flippedImage); + + if (outputFile eq "") + { + retVal.img = flippedImage; + return retVal; + } else { + saveImage = writeImage(outputFile, flippedImage, jpegCompression); + if (saveImage.errorCode gt 0) + { + return saveImage; + } else { + return retVal; + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // initialize the blur filter + variables.blurFilter.init(arguments.blurAmount); + // move the source image into the destination image + // so we can repeatedly blur it. + destImage = srcImage; + + for (i=1; i lte iterations; i=i+1) + { + // do the blur i times + destImage = variables.blurFilter.filter(destImage); + } + + + if (outputFile eq "") + { + // return the image object + retVal.img = destImage; + return retVal; + } else { + // write the image object to the specified file. + saveImage = writeImage(outputFile, destImage, jpegCompression); + if (saveImage.errorCode gt 0) + { + return saveImage; + } else { + return retVal; + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // initialize the sharpen filter + variables.sharpenFilter.init(); + + destImage = variables.sharpenFilter.filter(srcImage); + + + if (outputFile eq "") + { + // return the image object + retVal.img = destImage; + return retVal; + } else { + // write the image object to the specified file. + saveImage = writeImage(outputFile, destImage, jpegCompression); + if (saveImage.errorCode gt 0) + { + return saveImage; + } else { + return retVal; + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // initialize the posterize filter + variables.posterizeFilter.init(arguments.amount); + + destImage = variables.posterizeFilter.filter(srcImage); + + + if (outputFile eq "") + { + // return the image object + retVal.img = destImage; + return retVal; + } else { + // write the image object to the specified file. + saveImage = writeImage(outputFile, destImage, jpegCompression); + if (saveImage.errorCode gt 0) + { + return saveImage; + } else { + return retVal; + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // load objects + bgImage = CreateObject("java", "java.awt.image.BufferedImage"); + fontImage = CreateObject("java", "java.awt.image.BufferedImage"); + overlayImage = CreateObject("java", "java.awt.image.BufferedImage"); + Color = CreateObject("java","java.awt.Color"); + font = createObject("java","java.awt.Font"); + font_stream = createObject("java","java.io.FileInputStream"); + ac = CreateObject("Java", "java.awt.AlphaComposite"); + + // set up basic needs + fontColor = Color.init(javacast("int", rgb.red), javacast("int", rgb.green), javacast("int", rgb.blue)); + + if (fontDetails.fontFile neq "") + { + font_stream.init(arguments.fontDetails.fontFile); + font = font.createFont(font.TRUETYPE_FONT, font_stream); + font = font.deriveFont(javacast("float",arguments.fontDetails.size)); + } else { + font.init(fontDetails.fontName, evaluate(fontDetails.style), fontDetails.size); + } + // get font metrics using a 1x1 bufferedImage + fontImage.init(1,1,img.getType()); + g2 = fontImage.createGraphics(); + g2.setRenderingHints(getRenderingHints()); + fc = g2.getFontRenderContext(); + bounds = font.getStringBounds(content,fc); + + g2 = img.createGraphics(); + g2.setRenderingHints(getRenderingHints()); + g2.setFont(font); + g2.setColor(fontColor); + // in case you want to change the alpha + // g2.setComposite(ac.getInstance(ac.SRC_OVER, 0.50)); + + // the location (arguments.fontDetails.size+y) doesn't really work + // the way I want it to. + g2.drawString(content,javacast("int",x),javacast("int",arguments.fontDetails.size+y)); + + if (outputFile eq "") + { + retVal.img = img; + return retVal; + } else { + saveImage = writeImage(outputFile, img, jpegCompression); + if (saveImage.errorCode gt 0) + { + return saveImage; + } else { + return retVal; + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + at = CreateObject("java", "java.awt.geom.AffineTransform"); + op = CreateObject("java", "java.awt.image.AffineTransformOp"); + ac = CreateObject("Java", "java.awt.AlphaComposite"); + gfx = originalImage.getGraphics(); + gfx.setComposite(ac.getInstance(ac.SRC_OVER, alpha)); + + at.init(); + // op.init(at,op.TYPE_BILINEAR); + op.init(at, rh); + + gfx.drawImage(wmImage, op, javaCast("int",arguments.placeAtX), javacast("int", arguments.placeAtY)); + + gfx.dispose(); + + if (outputFile eq "") + { + retVal.img = originalImage; + return retVal; + } else { + saveImage = writeImage(outputFile, originalImage, jpegCompression); + if (saveImage.errorCode gt 0) + { + return saveImage; + } else { + return retVal; + } + } + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + // convert the image to a specified BufferedImage type and return it + + var width = bImage.getWidth(); + var height = bImage.getHeight(); + var newImage = createObject("java","java.awt.image.BufferedImage").init(javacast("int",width), javacast("int",height), javacast("int",type)); + // int[] rgbArray = new int[width*height]; + var rgbArray = variables.arrObj.newInstance(variables.intClass, javacast("int",width*height)); + + bImage.getRGB( + javacast("int",0), + javacast("int",0), + javacast("int",width), + javacast("int",height), + rgbArray, + javacast("int",0), + javacast("int",width) + ); + newImage.setRGB( + javacast("int",0), + javacast("int",0), + javacast("int",width), + javacast("int",height), + rgbArray, + javacast("int",0), + javacast("int",width) + ); + return newImage; + + + + + diff --git a/fckeditor/editor/filemanager/connectors/cfm/upload.cfm b/fckeditor/editor/filemanager/connectors/cfm/upload.cfm new file mode 100644 index 0000000..0da40ae --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/cfm/upload.cfm @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/fckeditor/editor/filemanager/connectors/lasso/config.lasso b/fckeditor/editor/filemanager/connectors/lasso/config.lasso new file mode 100644 index 0000000..da683cb --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/lasso/config.lasso @@ -0,0 +1,65 @@ +[//lasso +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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. + */ + + var('connection') = array( + -username='xxxxxxxx', + -password='xxxxxxxx' + ); + + + /*..................................................................... + Set the base path for files that users can upload and browse (relative + to server root). + + Set which file extensions are allowed and/or denied for each file type. + */ + var('config') = map( + 'Enabled' = false, + 'UserFilesPath' = '/userfiles/', + 'Subdirectories' = map( + 'File' = 'File/', + 'Image' = 'Image/', + 'Flash' = 'Flash/', + 'Media' = 'Media/' + ), + 'AllowedExtensions' = map( + 'File' = array('7z','aiff','asf','avi','bmp','csv','doc','fla','flv','gif','gz','gzip','jpeg','jpg','mid','mov','mp3','mp4','mpc','mpeg','mpg','ods','odt','pdf','png','ppt','pxd','qt','ram','rar','rm','rmi','rmvb','rtf','sdc','sitd','swf','sxc','sxw','tar','tgz','tif','tiff','txt','vsd','wav','wma','wmv','xls','xml','zip'), + 'Image' = array('bmp','gif','jpeg','jpg','png'), + 'Flash' = array('swf','flv'), + 'Media' = array('aiff','asf','avi','bmp','fla','flv','gif','jpeg','jpg','mid','mov','mp3','mp4','mpc','mpeg','mpg','png','qt','ram','rm','rmi','rmvb','swf','tif','tiff','wav','wma','wmv') + ), + 'DeniedExtensions' = map( + 'File' = array(), + 'Image' = array(), + 'Flash' = array(), + 'Media' = array() + ) + ); +] diff --git a/fckeditor/editor/filemanager/connectors/lasso/connector.lasso b/fckeditor/editor/filemanager/connectors/lasso/connector.lasso new file mode 100644 index 0000000..96d0db0 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/lasso/connector.lasso @@ -0,0 +1,322 @@ +[//lasso +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This is the File Manager Connector for Lasso. + */ + + /*..................................................................... + Include global configuration. See config.lasso for details. + */ + include('config.lasso'); + + + /*..................................................................... + Translate current date/time to GMT for custom header. + */ + var('headerDate') = date_localtogmt(date)->format('%a, %d %b %Y %T GMT'); + + + /*..................................................................... + Convert query string parameters to variables and initialize output. + */ + var( + 'Command' = action_param('Command'), + 'Type' = action_param('Type'), + 'CurrentFolder' = action_param('CurrentFolder'), + 'ServerPath' = action_param('ServerPath'), + 'NewFolderName' = action_param('NewFolderName'), + 'NewFile' = null, + 'NewFileName' = string, + 'OrigFilePath' = string, + 'NewFilePath' = string, + 'commandData' = string, + 'folders' = '\t\n', + 'files' = '\t\n', + 'errorNumber' = integer, + 'responseType' = 'xml', + 'uploadResult' = '0' + ); + + /*..................................................................... + Custom tag sets the HTML response. + */ + + define_tag( + 'htmlreply', + -namespace='fck_', + -priority='replace', + -required='uploadResult', + -optional='NewFilePath', + -type='string', + -description='Sets the HTML response for the FCKEditor File Upload feature.' + ); + $__html_reply__ = '\ + + '; + else; + $__html_reply__ = $__html_reply__ + '\ + window.parent.OnUploadCompleted(' + $uploadResult + '); + + '; + /if; + /define_tag; + + + /*..................................................................... + Calculate the path to the current folder. + */ + $ServerPath == '' ? $ServerPath = $config->find('UserFilesPath'); + + var('currentFolderURL' = $ServerPath + + $config->find('Subdirectories')->find(action_param('Type')) + + $CurrentFolder + ); + + if($CurrentFolder->(Find: '..') || $CurrentFolder->(Find: '\\')); + if($Command == 'FileUpload'); + $responseType = 'html'; + $uploadResult = '102'; + fck_htmlreply( + -uploadResult=$uploadResult + ); + else; + $errorNumber = 102; + $commandData += '\n'; + /if; + else; + + /*..................................................................... + Build the appropriate response per the 'Command' parameter. Wrap the + entire process in an inline for file tag permissions. + */ + inline($connection); + select($Command); + /*............................................................. + List all subdirectories in the 'Current Folder' directory. + */ + case('GetFolders'); + $commandData += '\t\n'; + + iterate(file_listdirectory($currentFolderURL), local('this')); + #this->endswith('/') ? $commandData += '\t\t\n'; + /iterate; + + $commandData += '\t\n'; + + + /*............................................................. + List both files and folders in the 'Current Folder' directory. + Include the file sizes in kilobytes. + */ + case('GetFoldersAndFiles'); + iterate(file_listdirectory($currentFolderURL), local('this')); + if(#this->endswith('/')); + $folders += '\t\t\n'; + else; + local('size') = file_getsize($currentFolderURL + #this) / 1024; + $files += '\t\t\n'; + /if; + /iterate; + + $folders += '\t\n'; + $files += '\t\n'; + + $commandData += $folders + $files; + + + /*............................................................. + Create a directory 'NewFolderName' within the 'Current Folder.' + */ + case('CreateFolder'); + $NewFolderName = (String_ReplaceRegExp: $NewFolderName, -find='\\.|\\\\|\\/|\\||\\:|\\?|\\*|"|<|>', -replace='_'); + var('newFolder' = $currentFolderURL + $NewFolderName + '/'); + file_create($newFolder); + + + /*......................................................... + Map Lasso's file error codes to FCKEditor's error codes. + */ + select(file_currenterror( -errorcode)); + case(0); + $errorNumber = 0; + case( -9983); + $errorNumber = 101; + case( -9976); + $errorNumber = 102; + case( -9977); + $errorNumber = 102; + case( -9961); + $errorNumber = 103; + case; + $errorNumber = 110; + /select; + + $commandData += '\n'; + + + /*............................................................. + Process an uploaded file. + */ + case('FileUpload'); + /*......................................................... + This is the only command that returns an HTML response. + */ + $responseType = 'html'; + + + /*......................................................... + Was a file actually uploaded? + */ + if(file_uploads->size); + $NewFile = file_uploads->get(1); + else; + $uploadResult = '202'; + /if; + + 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'); + $NewFileName = (String_ReplaceRegExp: $NewFileName, -find='\\\\|\\/|\\||\\:|\\?|\\*|"|<|>', -replace='_'); + $OrigFilePath = $currentFolderURL + $NewFileName; + $NewFilePath = $OrigFilePath; + local('fileExtension') = '.' + $NewFile->find('OrigExtension'); + #fileExtension = (String_ReplaceRegExp: #fileExtension, -find='\\\\|\\/|\\||\\:|\\?|\\*|"|<|>', -replace='_'); + local('shortFileName') = $NewFileName->removetrailing(#fileExtension)&; + + + /*..................................................... + Make sure the file extension is allowed. + */ + if($config->find('DeniedExtensions')->find($Type) >> $NewFile->find('OrigExtension')); + $uploadResult = '202'; + else; + /*................................................. + Rename the target path until it is unique. + */ + while(file_exists($NewFilePath)); + $NewFilePath = $currentFolderURL + #shortFileName + '(' + loop_count + ')' + #fileExtension; + /while; + + + /*................................................. + Copy the uploaded file to its final location. + */ + file_copy($NewFile->find('path'), $NewFilePath); + + + /*................................................. + Set the error code for the response. Note whether + the file had to be renamed. + */ + select(file_currenterror( -errorcode)); + case(0); + $OrigFilePath != $NewFilePath ? $uploadResult = 201; + case; + $uploadResult = file_currenterror( -errorcode); + /select; + /if; + /if; + fck_htmlreply( + -uploadResult=$uploadResult, + -NewFilePath=$NewFilePath + ); + /select; + /inline; + /if; + + /*..................................................................... + Send a custom header for xml responses. + */ + if($responseType == 'xml'); + header; +] +HTTP/1.0 200 OK +Date: [$headerDate] +Server: Lasso Professional [lasso_version( -lassoversion)] +Expires: Mon, 26 Jul 1997 05:00:00 GMT +Last-Modified: [$headerDate] +Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 +Pragma: no-cache +Keep-Alive: timeout=15, max=98 +Connection: Keep-Alive +Content-Type: text/xml; charset=utf-8 +[//lasso +/header; + + /* + Set the content type encoding for Lasso. + */ + content_type('text/xml; charset=utf-8'); + + /* + Wrap the response as XML and output. + */ + $__html_reply__ = '\ + +'; + + if($errorNumber != '102'); + $__html_reply__ += ''; + /if; + + $__html_reply__ += $commandData + ' +'; + /if; +] diff --git a/fckeditor/editor/filemanager/connectors/lasso/upload.lasso b/fckeditor/editor/filemanager/connectors/lasso/upload.lasso new file mode 100644 index 0000000..fbbe915 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/lasso/upload.lasso @@ -0,0 +1,168 @@ +[//lasso +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This is the "File Uploader" for Lasso. + */ + + /*..................................................................... + Include global configuration. See config.lasso for details. + */ + include('config.lasso'); + + + /*..................................................................... + Convert query string parameters to variables and initialize output. + */ + var( + 'Type' = action_param('Type'), + 'CurrentFolder' = action_param('CurrentFolder'), + 'ServerPath' = action_param('ServerPath'), + 'NewFile' = null, + 'NewFileName' = string, + 'OrigFilePath' = string, + 'NewFilePath' = string, + 'errorNumber' = 0, + 'customMsg' = '' + ); + + $Type == '' ? $Type = 'File'; + + + /*..................................................................... + Calculate the path to the current folder. + */ + $ServerPath == '' ? $ServerPath = $config->find('UserFilesPath'); + + var('currentFolderURL' = $ServerPath + + $config->find('Subdirectories')->find(action_param('Type')) + + action_param('CurrentFolder') + ); + + /*..................................................................... + Custom tag sets the HTML response. + */ + + define_tag( + 'sendresults', + -namespace='fck_', + -priority='replace', + -required='errorNumber', + -type='integer', + -optional='fileUrl', + -type='string', + -optional='fileName', + -type='string', + -optional='customMsg', + -type='string', + -description='Sets the HTML response for the FCKEditor Quick Upload feature.' + ); + + $__html_reply__ = ' + '; + /define_tag; + + if($CurrentFolder->(Find: '..') || $CurrentFolder->(Find: '\\')); + $errorNumber = 102; + /if; + + if($config->find('Enabled')); + /*................................................................. + Process an uploaded file. + */ + inline($connection); + /*............................................................. + Was a file actually uploaded? + */ + if($errorNumber != '102'); + file_uploads->size ? $NewFile = file_uploads->get(1) | $errorNumber = 202; + /if; + + if($errorNumber == 0); + /*......................................................... + Split the file's extension from the filename in order + to follow the API's naming convention for duplicate + files. (Test.txt, Test(1).txt, Test(2).txt, etc.) + */ + $NewFileName = $NewFile->find('OrigName'); + $OrigFilePath = $currentFolderURL + $NewFileName; + $NewFilePath = $OrigFilePath; + local('fileExtension') = '.' + $NewFile->find('OrigExtension'); + local('shortFileName') = $NewFileName->removetrailing(#fileExtension)&; + + + /*......................................................... + Make sure the file extension is allowed. + */ + + if($config->find('DeniedExtensions')->find($Type) >> $NewFile->find('OrigExtension')); + $errorNumber = 202; + else; + /*..................................................... + Rename the target path until it is unique. + */ + while(file_exists($NewFilePath)); + $NewFileName = #shortFileName + '(' + loop_count + ')' + #fileExtension; + $NewFilePath = $currentFolderURL + $NewFileName; + /while; + + + /*..................................................... + Copy the uploaded file to its final location. + */ + file_copy($NewFile->find('path'), $NewFilePath); + + + /*..................................................... + Set the error code for the response. + */ + select(file_currenterror( -errorcode)); + case(0); + $OrigFilePath != $NewFilePath ? $errorNumber = 201; + case; + $errorNumber = 202; + /select; + /if; + /if; + /inline; + else; + $errorNumber = 1; + $customMsg = 'This file uploader is disabled. Please check the "editor/filemanager/upload/lasso/config.lasso" file.'; + /if; + + fck_sendresults( + -errorNumber=$errorNumber, + -fileUrl=$NewFilePath, + -fileName=$NewFileName, + -customMsg=$customMsg + ); +] diff --git a/fckeditor/editor/filemanager/connectors/perl/basexml.pl b/fckeditor/editor/filemanager/connectors/perl/basexml.pl new file mode 100644 index 0000000..c3afa72 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/perl/basexml.pl @@ -0,0 +1,63 @@ +##### +# FCKeditor - The text editor for Internet - http://www.fckeditor.net +# Copyright (C) 2003-2008 Frederico Caldeira Knabben +# +# == BEGIN LICENSE == +# +# Licensed under the terms of any of the following licenses at your +# choice: +# +# - GNU General Public License Version 2 or later (the "GPL") +# http://www.gnu.org/licenses/gpl.html +# +# - GNU Lesser General Public License Version 2.1 or later (the "LGPL") +# http://www.gnu.org/licenses/lgpl.html +# +# - Mozilla Public License Version 1.1 or later (the "MPL") +# http://www.mozilla.org/MPL/MPL-1.1.html +# +# == END LICENSE == +# +# This is the File Manager Connector for Perl. +##### + +sub CreateXmlHeader +{ + local($command,$resourceType,$currentFolder) = @_; + + # Create the XML document header. + print ''; + + # Create the main "Connector" node. + print ''; + + # Add the current folder node. + print ''; +} + +sub CreateXmlFooter +{ + print ''; +} + +sub SendError +{ + local( $number, $text ) = @_; + + print << "_HTML_HEAD_"; +Content-Type:text/xml; charset=utf-8 +Pragma: no-cache +Cache-Control: no-cache +Expires: Thu, 01 Dec 1994 16:00:00 GMT + +_HTML_HEAD_ + + # Create the XML document header + print '' ; + + print '' ; + + exit ; +} + +1; diff --git a/fckeditor/editor/filemanager/connectors/perl/commands.pl b/fckeditor/editor/filemanager/connectors/perl/commands.pl new file mode 100644 index 0000000..683f642 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/perl/commands.pl @@ -0,0 +1,187 @@ +##### +# FCKeditor - The text editor for Internet - http://www.fckeditor.net +# Copyright (C) 2003-2008 Frederico Caldeira Knabben +# +# == BEGIN LICENSE == +# +# Licensed under the terms of any of the following licenses at your +# choice: +# +# - GNU General Public License Version 2 or later (the "GPL") +# http://www.gnu.org/licenses/gpl.html +# +# - GNU Lesser General Public License Version 2.1 or later (the "LGPL") +# http://www.gnu.org/licenses/lgpl.html +# +# - Mozilla Public License Version 1.1 or later (the "MPL") +# http://www.mozilla.org/MPL/MPL-1.1.html +# +# == END LICENSE == +# +# This is the File Manager Connector for Perl. +##### + +sub GetFolders +{ + + local($resourceType, $currentFolder) = @_; + + # Map the virtual path to the local server path. + $sServerDir = &ServerMapFolder($resourceType, $currentFolder); + print ""; # Open the "Folders" node. + + opendir(DIR,"$sServerDir"); + @files = grep(!/^\.\.?$/,readdir(DIR)); + closedir(DIR); + + foreach $sFile (@files) { + if($sFile != '.' && $sFile != '..' && (-d "$sServerDir$sFile")) { + $cnv_filename = &ConvertToXmlAttribute($sFile); + print ''; + } + } + print ""; # Close the "Folders" node. +} + +sub GetFoldersAndFiles +{ + + local($resourceType, $currentFolder) = @_; + # Map the virtual path to the local server path. + $sServerDir = &ServerMapFolder($resourceType,$currentFolder); + + # Initialize the output buffers for "Folders" and "Files". + $sFolders = ''; + $sFiles = ''; + + opendir(DIR,"$sServerDir"); + @files = grep(!/^\.\.?$/,readdir(DIR)); + closedir(DIR); + + foreach $sFile (@files) { + if($sFile ne '.' && $sFile ne '..') { + if(-d "$sServerDir$sFile") { + $cnv_filename = &ConvertToXmlAttribute($sFile); + $sFolders .= '' ; + } else { + ($iFileSize,$refdate,$filedate,$fileperm) = (stat("$sServerDir$sFile"))[7,8,9,2]; + if($iFileSize > 0) { + $iFileSize = int($iFileSize / 1024); + if($iFileSize < 1) { + $iFileSize = 1; + } + } + $cnv_filename = &ConvertToXmlAttribute($sFile); + $sFiles .= '' ; + } + } + } + print $sFolders ; + print ''; # Close the "Folders" node. + print $sFiles ; + print ''; # Close the "Files" node. +} + +sub CreateFolder +{ + + local($resourceType, $currentFolder) = @_; + $sErrorNumber = '0' ; + $sErrorMsg = '' ; + + if($FORM{'NewFolderName'} ne "") { + $sNewFolderName = $FORM{'NewFolderName'}; + $sNewFolderName =~ s/\.|\\|\/|\||\:|\?|\*|\"|<|>|[[:cntrl:]]/_/g; + # Map the virtual path to the local server path of the current folder. + $sServerDir = &ServerMapFolder($resourceType, $currentFolder); + if(-w $sServerDir) { + $sServerDir .= $sNewFolderName; + $sErrorMsg = &CreateServerFolder($sServerDir); + if($sErrorMsg == 0) { + $sErrorNumber = '0'; + } elsif($sErrorMsg eq 'Invalid argument' || $sErrorMsg eq 'No such file or directory') { + $sErrorNumber = '102'; #// Path too long. + } else { + $sErrorNumber = '110'; + } + } else { + $sErrorNumber = '103'; + } + } else { + $sErrorNumber = '102' ; + } + # Create the "Error" node. + $cnv_errmsg = &ConvertToXmlAttribute($sErrorMsg); + print ''; +} + +sub FileUpload +{ +eval("use File::Copy;"); + + local($resourceType, $currentFolder) = @_; + + $sErrorNumber = '0' ; + $sFileName = '' ; + if($new_fname) { + # Map the virtual path to the local server path. + $sServerDir = &ServerMapFolder($resourceType,$currentFolder); + + # Get the uploaded file name. + $sFileName = $new_fname; + $sFileName =~ s/\\|\/|\||\:|\?|\*|\"|<|>|[[:cntrl:]]/_/g; + $sOriginalFileName = $sFileName; + + $iCounter = 0; + while(1) { + $sFilePath = $sServerDir . $sFileName; + if(-e $sFilePath) { + $iCounter++ ; + ($path,$BaseName,$ext) = &RemoveExtension($sOriginalFileName); + $sFileName = $BaseName . '(' . $iCounter . ').' . $ext; + $sErrorNumber = '201'; + } else { + copy("$img_dir/$new_fname","$sFilePath"); + if (defined $CHMOD_ON_UPLOAD) { + if ($CHMOD_ON_UPLOAD) { + umask(000); + chmod($CHMOD_ON_UPLOAD,$sFilePath); + } + } + else { + umask(000); + chmod(0777,$sFilePath); + } + unlink("$img_dir/$new_fname"); + last; + } + } + } else { + $sErrorNumber = '202' ; + } + $sFileName =~ s/"/\\"/g; + + SendUploadResults($sErrorNumber, $resourceType.$currentFolder.$sFileName, $sFileName, ''); +} + +sub SendUploadResults +{ + + local($sErrorNumber, $sFileUrl, $sFileName, $customMsg) = @_; + + # Minified version of the document.domain automatic fix script (#1919). + # The original script can be found at _dev/domain_fix_template.js + # Note: in Perl replace \ with \\ and $ with \$ + print < +(function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\\.|\$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})(); + +EOF + print 'window.parent.OnUploadCompleted(' . $sErrorNumber . ',"' . JS_cnv($sFileUrl) . '","' . JS_cnv($sFileName) . '","' . JS_cnv($customMsg) . '") ;'; + print ''; + exit ; +} + +1; diff --git a/fckeditor/editor/filemanager/connectors/perl/connector.cgi b/fckeditor/editor/filemanager/connectors/perl/connector.cgi new file mode 100644 index 0000000..c463157 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/perl/connector.cgi @@ -0,0 +1,136 @@ +#!/usr/bin/env perl + +##### +# FCKeditor - The text editor for Internet - http://www.fckeditor.net +# Copyright (C) 2003-2008 Frederico Caldeira Knabben +# +# == BEGIN LICENSE == +# +# Licensed under the terms of any of the following licenses at your +# choice: +# +# - GNU General Public License Version 2 or later (the "GPL") +# http://www.gnu.org/licenses/gpl.html +# +# - GNU Lesser General Public License Version 2.1 or later (the "LGPL") +# http://www.gnu.org/licenses/lgpl.html +# +# - Mozilla Public License Version 1.1 or later (the "MPL") +# http://www.mozilla.org/MPL/MPL-1.1.html +# +# == END LICENSE == +# +# This is the File Manager Connector for Perl. +##### + +## +# ATTENTION: To enable this connector, look for the "SECURITY" comment in this file. +## + +## START: Hack for Windows (Not important to understand the editor code... Perl specific). +if(Windows_check()) { + chdir(GetScriptPath($0)); +} + +sub Windows_check +{ + # IIS,PWS(NT/95) + $www_server_os = $^O; + # Win98 & NT(SP4) + if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; } + # AnHTTPd/Omni/IIS + if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; } + # Win Apache + if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; } + if($www_server_os=~ /win/i) { return(1); } + return(0); +} + +sub GetScriptPath { + local($path) = @_; + if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; } + $path; +} +## END: Hack for IIS + +require 'util.pl'; +require 'io.pl'; +require 'basexml.pl'; +require 'commands.pl'; +require 'upload_fck.pl'; + +## +# SECURITY: REMOVE/COMMENT THE FOLLOWING LINE TO ENABLE THIS CONNECTOR. +## + &SendError( 1, 'This connector is disabled. Please check the "editor/filemanager/connectors/perl/connector.cgi" file' ) ; + + &read_input(); + + if($FORM{'ServerPath'} ne "") { + $GLOBALS{'UserFilesPath'} = $FORM{'ServerPath'}; + if(!($GLOBALS{'UserFilesPath'} =~ /\/$/)) { + $GLOBALS{'UserFilesPath'} .= '/' ; + } + } else { + $GLOBALS{'UserFilesPath'} = '/userfiles/'; + } + + # Map the "UserFiles" path to a local directory. + $rootpath = &GetRootPath(); + $GLOBALS{'UserFilesDirectory'} = $rootpath . $GLOBALS{'UserFilesPath'}; + + &DoResponse(); + +sub DoResponse +{ + + if($FORM{'Command'} eq "" || $FORM{'Type'} eq "" || $FORM{'CurrentFolder'} eq "") { + return ; + } + # Get the main request informaiton. + $sCommand = $FORM{'Command'}; + $sResourceType = $FORM{'Type'}; + $sCurrentFolder = $FORM{'CurrentFolder'}; + + # Check the current folder syntax (must begin and start with a slash). + if(!($sCurrentFolder =~ /\/$/)) { + $sCurrentFolder .= '/'; + } + if(!($sCurrentFolder =~ /^\//)) { + $sCurrentFolder = '/' . $sCurrentFolder; + } + + # Check for invalid folder paths (..) + if ( $sCurrentFolder =~ /(?:\.\.|\\)/ ) { + SendError( 102, "" ) ; + } + + # File Upload doesn't have to Return XML, so it must be intercepted before anything. + if($sCommand eq 'FileUpload') { + FileUpload($sResourceType,$sCurrentFolder); + return ; + } + + print << "_HTML_HEAD_"; +Content-Type:text/xml; charset=utf-8 +Pragma: no-cache +Cache-Control: no-cache +Expires: Thu, 01 Dec 1994 16:00:00 GMT + +_HTML_HEAD_ + + &CreateXmlHeader($sCommand,$sResourceType,$sCurrentFolder); + + # Execute the required command. + if($sCommand eq 'GetFolders') { + &GetFolders($sResourceType,$sCurrentFolder); + } elsif($sCommand eq 'GetFoldersAndFiles') { + &GetFoldersAndFiles($sResourceType,$sCurrentFolder); + } elsif($sCommand eq 'CreateFolder') { + &CreateFolder($sResourceType,$sCurrentFolder); + } + + &CreateXmlFooter(); + + exit ; +} diff --git a/fckeditor/editor/filemanager/connectors/perl/io.pl b/fckeditor/editor/filemanager/connectors/perl/io.pl new file mode 100644 index 0000000..aa6cb36 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/perl/io.pl @@ -0,0 +1,141 @@ +##### +# FCKeditor - The text editor for Internet - http://www.fckeditor.net +# Copyright (C) 2003-2008 Frederico Caldeira Knabben +# +# == BEGIN LICENSE == +# +# Licensed under the terms of any of the following licenses at your +# choice: +# +# - GNU General Public License Version 2 or later (the "GPL") +# http://www.gnu.org/licenses/gpl.html +# +# - GNU Lesser General Public License Version 2.1 or later (the "LGPL") +# http://www.gnu.org/licenses/lgpl.html +# +# - Mozilla Public License Version 1.1 or later (the "MPL") +# http://www.mozilla.org/MPL/MPL-1.1.html +# +# == END LICENSE == +# +# This is the File Manager Connector for Perl. +##### + +sub GetUrlFromPath +{ + local($resourceType, $folderPath) = @_; + + if($resourceType eq '') { + $rmpath = &RemoveFromEnd($GLOBALS{'UserFilesPath'},'/'); + return("$rmpath$folderPath"); + } else { + return("$GLOBALS{'UserFilesPath'}$resourceType$folderPath"); + } +} + +sub RemoveExtension +{ + local($fileName) = @_; + local($path, $base, $ext); + if($fileName !~ /\./) { + $fileName .= '.'; + } + if($fileName =~ /([^\\\/]*)\.(.*)$/) { + $base = $1; + $ext = $2; + if($fileName =~ /(.*)$base\.$ext$/) { + $path = $1; + } + } + return($path,$base,$ext); + +} + +sub ServerMapFolder +{ + local($resourceType,$folderPath) = @_; + + # Get the resource type directory. + $sResourceTypePath = $GLOBALS{'UserFilesDirectory'} . $resourceType . '/'; + + # Ensure that the directory exists. + &CreateServerFolder($sResourceTypePath); + + # Return the resource type directory combined with the required path. + $rmpath = &RemoveFromStart($folderPath,'/'); + return("$sResourceTypePath$rmpath"); +} + +sub GetParentFolder +{ + local($folderPath) = @_; + + $folderPath =~ s/[\/][^\/]+[\/]?$//g; + return $folderPath; +} + +sub CreateServerFolder +{ + local($folderPath) = @_; + + $sParent = &GetParentFolder($folderPath); + # Check if the parent exists, or create it. + if(!(-e $sParent)) { + $sErrorMsg = &CreateServerFolder($sParent); + if($sErrorMsg == 1) { + return(1); + } + } + if(!(-e $folderPath)) { + if (defined $CHMOD_ON_FOLDER_CREATE && !$CHMOD_ON_FOLDER_CREATE) { + mkdir("$folderPath"); + } + else { + umask(000); + if (defined $CHMOD_ON_FOLDER_CREATE) { + mkdir("$folderPath",$CHMOD_ON_FOLDER_CREATE); + } + else { + mkdir("$folderPath",0777); + } + } + + return(0); + } else { + return(1); + } +} + +sub GetRootPath +{ +#use Cwd; + +# my $dir = getcwd; +# print $dir; +# $dir =~ s/$ENV{'DOCUMENT_ROOT'}//g; +# print $dir; +# return($dir); + +# $wk = $0; +# $wk =~ s/\/connector\.cgi//g; +# if($wk) { +# $current_dir = $wk; +# } else { +# $current_dir = `pwd`; +# } +# return($current_dir); +use Cwd; + + if($ENV{'DOCUMENT_ROOT'}) { + $dir = $ENV{'DOCUMENT_ROOT'}; + } else { + my $dir = getcwd; + $workdir =~ s/\/connector\.cgi//g; + $dir =~ s/$workdir//g; + } + return($dir); + + + +} +1; diff --git a/fckeditor/editor/filemanager/connectors/perl/upload.cgi b/fckeditor/editor/filemanager/connectors/perl/upload.cgi new file mode 100644 index 0000000..1efca61 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/perl/upload.cgi @@ -0,0 +1,117 @@ +#!/usr/bin/env perl + +##### +# FCKeditor - The text editor for Internet - http://www.fckeditor.net +# Copyright (C) 2003-2008 Frederico Caldeira Knabben +# +# == BEGIN LICENSE == +# +# Licensed under the terms of any of the following licenses at your +# choice: +# +# - GNU General Public License Version 2 or later (the "GPL") +# http://www.gnu.org/licenses/gpl.html +# +# - GNU Lesser General Public License Version 2.1 or later (the "LGPL") +# http://www.gnu.org/licenses/lgpl.html +# +# - Mozilla Public License Version 1.1 or later (the "MPL") +# http://www.mozilla.org/MPL/MPL-1.1.html +# +# == END LICENSE == +# +# This is the File Manager Connector for Perl. +##### + +## +# ATTENTION: To enable this connector, look for the "SECURITY" comment in this file. +## + +## START: Hack for Windows (Not important to understand the editor code... Perl specific). +if(Windows_check()) { + chdir(GetScriptPath($0)); +} + +sub Windows_check +{ + # IIS,PWS(NT/95) + $www_server_os = $^O; + # Win98 & NT(SP4) + if($www_server_os eq "") { $www_server_os= $ENV{'OS'}; } + # AnHTTPd/Omni/IIS + if($ENV{'SERVER_SOFTWARE'} =~ /AnWeb|Omni|IIS\//i) { $www_server_os= 'win'; } + # Win Apache + if($ENV{'WINDIR'} ne "") { $www_server_os= 'win'; } + if($www_server_os=~ /win/i) { return(1); } + return(0); +} + +sub GetScriptPath { + local($path) = @_; + if($path =~ /[\:\/\\]/) { $path =~ s/(.*?)[\/\\][^\/\\]+$/$1/; } else { $path = '.'; } + $path; +} +## END: Hack for IIS + +require 'util.pl'; +require 'io.pl'; +require 'basexml.pl'; +require 'commands.pl'; +require 'upload_fck.pl'; + +## +# SECURITY: REMOVE/COMMENT THE FOLLOWING LINE TO ENABLE THIS CONNECTOR. +## + &SendUploadResults(1, '', '', 'This connector is disabled. Please check the "editor/filemanager/connectors/perl/upload.cgi" file' ) ; + + &read_input(); + + if($FORM{'ServerPath'} ne "") { + $GLOBALS{'UserFilesPath'} = $FORM{'ServerPath'}; + if(!($GLOBALS{'UserFilesPath'} =~ /\/$/)) { + $GLOBALS{'UserFilesPath'} .= '/' ; + } + } else { + $GLOBALS{'UserFilesPath'} = '/userfiles/'; + } + + # Map the "UserFiles" path to a local directory. + $rootpath = &GetRootPath(); + $GLOBALS{'UserFilesDirectory'} = $rootpath . $GLOBALS{'UserFilesPath'}; + + &DoResponse(); + +sub DoResponse +{ + # Get the main request information. + $sCommand = 'FileUpload'; #$FORM{'Command'}; + $sResourceType = $FORM{'Type'}; + $sCurrentFolder = $FORM{'CurrentFolder'}; + + if ($sResourceType eq '') { + $sResourceType = 'File' ; + } + if ($sCurrentFolder eq '') { + $sCurrentFolder = '/' ; + } + + # Check the current folder syntax (must begin and start with a slash). + if(!($sCurrentFolder =~ /\/$/)) { + $sCurrentFolder .= '/'; + } + if(!($sCurrentFolder =~ /^\//)) { + $sCurrentFolder = '/' . $sCurrentFolder; + } + + # Check for invalid folder paths (..) + if ( $sCurrentFolder =~ /(?:\.\.|\\)/ ) { + SendError( 102, "" ) ; + } + + # File Upload doesn't have to Return XML, so it must be intercepted before anything. + if($sCommand eq 'FileUpload') { + FileUpload($sResourceType,$sCurrentFolder); + return ; + } + +} diff --git a/fckeditor/editor/filemanager/connectors/perl/upload_fck.pl b/fckeditor/editor/filemanager/connectors/perl/upload_fck.pl new file mode 100644 index 0000000..dad9bb8 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/perl/upload_fck.pl @@ -0,0 +1,686 @@ +##### +# FCKeditor - The text editor for Internet - http://www.fckeditor.net +# Copyright (C) 2003-2008 Frederico Caldeira Knabben +# +# == BEGIN LICENSE == +# +# Licensed under the terms of any of the following licenses at your +# choice: +# +# - GNU General Public License Version 2 or later (the "GPL") +# http://www.gnu.org/licenses/gpl.html +# +# - GNU Lesser General Public License Version 2.1 or later (the "LGPL") +# http://www.gnu.org/licenses/lgpl.html +# +# - Mozilla Public License Version 1.1 or later (the "MPL") +# http://www.mozilla.org/MPL/MPL-1.1.html +# +# == END LICENSE == +# +# This is the File Manager Connector for Perl. +##### + +# image data save dir +$img_dir = './temp/'; + + +# File size max(unit KB) +$MAX_CONTENT_SIZE = 30000; + +# After file is uploaded, sometimes it is required to change its permissions +# so that it was possible to access it at the later time. +# If possible, it is recommended to set more restrictive permissions, like 0755. +# Set to 0 to disable this feature. +$CHMOD_ON_UPLOAD = 0777; + +# See comments above. +# Used when creating folders that does not exist. +$CHMOD_ON_FOLDER_CREATE = 0755; + +# Filelock (1=use,0=not use) +$PM{'flock'} = '1'; + + +# upload Content-Type list +my %UPLOAD_CONTENT_TYPE_LIST = ( + 'image/(x-)?png' => 'png', # PNG image + 'image/p?jpe?g' => 'jpg', # JPEG image + 'image/gif' => 'gif', # GIF image + 'image/x-xbitmap' => 'xbm', # XBM image + + 'image/(x-(MS-)?)?bmp' => 'bmp', # Windows BMP image + 'image/pict' => 'pict', # Macintosh PICT image + 'image/tiff' => 'tif', # TIFF image + 'application/pdf' => 'pdf', # PDF image + 'application/x-shockwave-flash' => 'swf', # Shockwave Flash + + 'video/(x-)?msvideo' => 'avi', # Microsoft Video + 'video/quicktime' => 'mov', # QuickTime Video + 'video/mpeg' => 'mpeg', # MPEG Video + 'video/x-mpeg2' => 'mpv2', # MPEG2 Video + + 'audio/(x-)?midi?' => 'mid', # MIDI Audio + 'audio/(x-)?wav' => 'wav', # WAV Audio + 'audio/basic' => 'au', # ULAW Audio + 'audio/mpeg' => 'mpga', # MPEG Audio + + 'application/(x-)?zip(-compressed)?' => 'zip', # ZIP Compress + + 'text/html' => 'html', # HTML + 'text/plain' => 'txt', # TEXT + '(?:application|text)/(?:rtf|richtext)' => 'rtf', # RichText + + 'application/msword' => 'doc', # Microsoft Word + 'application/vnd.ms-excel' => 'xls', # Microsoft Excel + + '' +); + +# Upload is permitted. +# A regular expression is possible. +my %UPLOAD_EXT_LIST = ( + 'png' => 'PNG image', + 'p?jpe?g|jpe|jfif|pjp' => 'JPEG image', + 'gif' => 'GIF image', + 'xbm' => 'XBM image', + + 'bmp|dib|rle' => 'Windows BMP image', + 'pi?ct' => 'Macintosh PICT image', + 'tiff?' => 'TIFF image', + 'pdf' => 'PDF image', + 'swf' => 'Shockwave Flash', + + 'avi' => 'Microsoft Video', + 'moo?v|qt' => 'QuickTime Video', + 'm(p(e?gv?|e|v)|1v)' => 'MPEG Video', + 'mp(v2|2v)' => 'MPEG2 Video', + + 'midi?|kar|smf|rmi|mff' => 'MIDI Audio', + 'wav' => 'WAVE Audio', + 'au|snd' => 'ULAW Audio', + 'mp(e?ga|2|a|3)|abs' => 'MPEG Audio', + + 'zip' => 'ZIP Compress', + 'lzh' => 'LZH Compress', + 'cab' => 'CAB Compress', + + 'd?html?' => 'HTML', + 'rtf|rtx' => 'RichText', + 'txt|text' => 'Text', + + '' +); + + +# sjis or euc +my $CHARCODE = 'sjis'; + +$TRANS_2BYTE_CODE = 0; + +############################################################################## +# Summary +# +# Form Read input +# +# Parameters +# Returns +# Memo +############################################################################## +sub read_input +{ +eval("use File::Copy;"); +eval("use File::Path;"); + + my ($FORM) = @_; + + if (defined $CHMOD_ON_FOLDER_CREATE && !$CHMOD_ON_FOLDER_CREATE) { + mkdir("$img_dir"); + } + else { + umask(000); + if (defined $CHMOD_ON_FOLDER_CREATE) { + mkdir("$img_dir",$CHMOD_ON_FOLDER_CREATE); + } + else { + mkdir("$img_dir",0777); + } + } + + undef $img_data_exists; + undef @NEWFNAMES; + undef @NEWFNAME_DATA; + + if($ENV{'CONTENT_LENGTH'} > 10000000 || $ENV{'CONTENT_LENGTH'} > $MAX_CONTENT_SIZE * 1024) { + &upload_error( + 'Size Error', + sprintf( + "Transmitting size is too large.MAX %d KB Now Size %d KB(%d bytes Over)", + $MAX_CONTENT_SIZE, + int($ENV{'CONTENT_LENGTH'} / 1024), + $ENV{'CONTENT_LENGTH'} - $MAX_CONTENT_SIZE * 1024 + ) + ); + } + + my $Buffer; + if($ENV{'CONTENT_TYPE'} =~ /multipart\/form-data/) { + # METHOD POST only + return unless($ENV{'CONTENT_LENGTH'}); + + binmode(STDIN); + # STDIN A pause character is detected.'(MacIE3.0 boundary of $ENV{'CONTENT_TYPE'} cannot be trusted.) + my $Boundary = ; + $Boundary =~ s/\x0D\x0A//; + $Boundary = quotemeta($Boundary); + while() { + if(/^\s*Content-Disposition:/i) { + my($name,$ContentType,$FileName); + # form data get + if(/\bname="([^"]+)"/i || /\bname=([^\s:;]+)/i) { + $name = $1; + $name =~ tr/+/ /; + $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; + &Encode(\$name); + } + if(/\bfilename="([^"]*)"/i || /\bfilename=([^\s:;]*)/i) { + $FileName = $1 || 'unknown'; + } + # head read + while() { + last if(! /\w/); + if(/^\s*Content-Type:\s*"([^"]+)"/i || /^\s*Content-Type:\s*([^\s:;]+)/i) { + $ContentType = $1; + } + } + # body read + $value = ""; + while() { + last if(/^$Boundary/o); + $value .= $_; + }; + $lastline = $_; + $value =~s /\x0D\x0A$//; + if($value ne '') { + if($FileName || $ContentType) { + $img_data_exists = 1; + ( + $FileName, # + $Ext, # + $Length, # + $ImageWidth, # + $ImageHeight, # + $ContentName # + ) = &CheckContentType(\$value,$FileName,$ContentType); + + $FORM{$name} = $FileName; + $new_fname = $FileName; + push(@NEWFNAME_DATA,"$FileName\t$Ext\t$Length\t$ImageWidth\t$ImageHeight\t$ContentName"); + + # Multi-upload correspondence + push(@NEWFNAMES,$new_fname); + open(OUT,">$img_dir/$new_fname"); + binmode(OUT); + eval "flock(OUT,2);" if($PM{'flock'} == 1); + print OUT $value; + eval "flock(OUT,8);" if($PM{'flock'} == 1); + close(OUT); + + } elsif($name) { + $value =~ tr/+/ /; + $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; + &Encode(\$value,'trans'); + $FORM{$name} .= "\0" if(defined($FORM{$name})); + $FORM{$name} .= $value; + } + } + }; + last if($lastline =~ /^$Boundary\-\-/o); + } + } elsif($ENV{'CONTENT_LENGTH'}) { + read(STDIN,$Buffer,$ENV{'CONTENT_LENGTH'}); + } + foreach(split(/&/,$Buffer),split(/&/,$ENV{'QUERY_STRING'})) { + my($name, $value) = split(/=/); + $name =~ tr/+/ /; + $name =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; + $value =~ tr/+/ /; + $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg; + + &Encode(\$name); + &Encode(\$value,'trans'); + $FORM{$name} .= "\0" if(defined($FORM{$name})); + $FORM{$name} .= $value; + + } + +} + +############################################################################## +# Summary +# +# CheckContentType +# +# Parameters +# Returns +# Memo +############################################################################## +sub CheckContentType +{ + + my($DATA,$FileName,$ContentType) = @_; + my($Ext,$ImageWidth,$ImageHeight,$ContentName,$Infomation); + my $DataLength = length($$DATA); + + # An unknown file type + + $_ = $ContentType; + my $UnknownType = ( + !$_ + || /^application\/(x-)?macbinary$/i + || /^application\/applefile$/i + || /^application\/octet-stream$/i + || /^text\/plane$/i + || /^x-unknown-content-type/i + ); + + # MacBinary(Mac Unnecessary data are deleted.) + if($UnknownType || $ENV{'HTTP_USER_AGENT'} =~ /Macintosh|Mac_/) { + if($DataLength > 128 && !unpack("C",substr($$DATA,0,1)) && !unpack("C",substr($$DATA,74,1)) && !unpack("C",substr($$DATA,82,1)) ) { + my $MacBinary_ForkLength = unpack("N", substr($$DATA, 83, 4)); # ForkLength Get + my $MacBinary_FileName = quotemeta(substr($$DATA, 2, unpack("C",substr($$DATA, 1, 1)))); + if($MacBinary_FileName && $MacBinary_ForkLength && $DataLength >= $MacBinary_ForkLength + 128 + && ($FileName =~ /$MacBinary_FileName/i || substr($$DATA,102,4) eq 'mBIN')) { # DATA TOP 128byte MacBinary!! + $$DATA = substr($$DATA,128,$MacBinary_ForkLength); + my $ResourceLength = $DataLength - $MacBinary_ForkLength - 128; + $DataLength = $MacBinary_ForkLength; + } + } + } + + # A file name is changed into EUC. +# &jcode::convert(\$FileName,'euc',$FormCodeDefault); +# &jcode::h2z_euc(\$FileName); + $FileName =~ s/^.*\\//; # Windows, Mac + $FileName =~ s/^.*\///; # UNIX + $FileName =~ s/&/&/g; + $FileName =~ s/"/"/g; + $FileName =~ s//>/g; +# +# if($CHARCODE ne 'euc') { +# &jcode::convert(\$FileName,$CHARCODE,'euc'); +# } + + # An extension is extracted and it changes into a small letter. + my $FileExt; + if($FileName =~ /\.(\w+)$/) { + $FileExt = $1; + $FileExt =~ tr/A-Z/a-z/; + } + + # Executable file detection (ban on upload) + if($$DATA =~ /^MZ/) { + $Ext = 'exe'; + } + # text + if(!$Ext && ($UnknownType || $ContentType =~ /^text\//i || $ContentType =~ /^application\/(?:rtf|richtext)$/i || $ContentType =~ /^image\/x-xbitmap$/i) + && ! $$DATA =~ /[\000-\006\177\377]/) { +# $$DATA =~ s/\x0D\x0A/\n/g; +# $$DATA =~ tr/\x0D\x0A/\n\n/; +# +# if( +# $$DATA =~ /<\s*SCRIPT(?:.|\n)*?>/i +# || $$DATA =~ /<\s*(?:.|\n)*?\bONLOAD\s*=(?:.|\n)*?>/i +# || $$DATA =~ /<\s*(?:.|\n)*?\bONCLICK\s*=(?:.|\n)*?>/i +# ) { +# $Infomation = '(JavaScript contains)'; +# } +# if($$DATA =~ /<\s*TABLE(?:.|\n)*?>/i +# || $$DATA =~ /<\s*BLINK(?:.|\n)*?>/i +# || $$DATA =~ /<\s*MARQUEE(?:.|\n)*?>/i +# || $$DATA =~ /<\s*OBJECT(?:.|\n)*?>/i +# || $$DATA =~ /<\s*EMBED(?:.|\n)*?>/i +# || $$DATA =~ /<\s*FRAME(?:.|\n)*?>/i +# || $$DATA =~ /<\s*APPLET(?:.|\n)*?>/i +# || $$DATA =~ /<\s*FORM(?:.|\n)*?>/i +# || $$DATA =~ /<\s*(?:.|\n)*?\bSRC\s*=(?:.|\n)*?>/i +# || $$DATA =~ /<\s*(?:.|\n)*?\bDYNSRC\s*=(?:.|\n)*?>/i +# ) { +# $Infomation = '(the HTML tag which is not safe is included)'; +# } + + if($FileExt =~ /^txt$/i || $FileExt =~ /^cgi$/i || $FileExt =~ /^pl$/i) { # Text File + $Ext = 'txt'; + } elsif($ContentType =~ /^text\/html$/i || $FileExt =~ /html?/i || $$DATA =~ /<\s*HTML(?:.|\n)*?>/i) { # HTML File + $Ext = 'html'; + } elsif($ContentType =~ /^image\/x-xbitmap$/i || $FileExt =~ /^xbm$/i) { # XBM(x-BitMap) Image + my $XbmName = $1; + my ($XbmWidth, $XbmHeight); + if($$DATA =~ /\#define\s*$XbmName\_width\s*(\d+)/i) { + $XbmWidth = $1; + } + if($$DATA =~ /\#define\s*$XbmName\_height\s*(\d+)/i) { + $XbmHeight = $1; + } + if($XbmWidth && $XbmHeight) { + $Ext = 'xbm'; + $ImageWidth = $XbmWidth; + $ImageHeight = $XbmHeight; + } + } else { # + $Ext = 'txt'; + } + } + + # image + if(!$Ext && ($UnknownType || $ContentType =~ /^image\//i)) { + # PNG + if($$DATA =~ /^\x89PNG\x0D\x0A\x1A\x0A/) { + if(substr($$DATA, 12, 4) eq 'IHDR') { + $Ext = 'png'; + ($ImageWidth, $ImageHeight) = unpack("N2", substr($$DATA, 16, 8)); + } + } elsif($$DATA =~ /^GIF8(?:9|7)a/) { # GIF89a(modified), GIF89a, GIF87a + $Ext = 'gif'; + ($ImageWidth, $ImageHeight) = unpack("v2", substr($$DATA, 6, 4)); + } elsif($$DATA =~ /^II\x2a\x00\x08\x00\x00\x00/ || $$DATA =~ /^MM\x00\x2a\x00\x00\x00\x08/) { # TIFF + $Ext = 'tif'; + } elsif($$DATA =~ /^BM/) { # BMP + $Ext = 'bmp'; + } elsif($$DATA =~ /^\xFF\xD8\xFF/ || $$DATA =~ /JFIF/) { # JPEG + my $HeaderPoint = index($$DATA, "\xFF\xD8\xFF", 0); + my $Point = $HeaderPoint + 2; + while($Point < $DataLength) { + my($Maker, $MakerType, $MakerLength) = unpack("C2n",substr($$DATA,$Point,4)); + if($Maker != 0xFF || $MakerType == 0xd9 || $MakerType == 0xda) { + last; + } elsif($MakerType >= 0xC0 && $MakerType <= 0xC3) { + $Ext = 'jpg'; + ($ImageHeight, $ImageWidth) = unpack("n2", substr($$DATA, $Point + 5, 4)); + if($HeaderPoint > 0) { + $$DATA = substr($$DATA, $HeaderPoint); + $DataLength = length($$DATA); + } + last; + } else { + $Point += $MakerLength + 2; + } + } + } + } + + # audio + if(!$Ext && ($UnknownType || $ContentType =~ /^audio\//i)) { + # MIDI Audio + if($$DATA =~ /^MThd/) { + $Ext = 'mid'; + } elsif($$DATA =~ /^\x2esnd/) { # ULAW Audio + $Ext = 'au'; + } elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) { + my $HeaderPoint = index($$DATA, "RIFF", 0); + $_ = substr($$DATA, $HeaderPoint + 8, 8); + if(/^WAVEfmt $/) { + # WAVE + if(unpack("V",substr($$DATA, $HeaderPoint + 16, 4)) == 16) { + $Ext = 'wav'; + } else { # RIFF WAVE MP3 + $Ext = 'mp3'; + } + } elsif(/^RMIDdata$/) { # RIFF MIDI + $Ext = 'rmi'; + } elsif(/^RMP3data$/) { # RIFF MP3 + $Ext = 'rmp'; + } + if($ContentType =~ /^audio\//i) { + $Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')'; + } + } + } + + # a binary file + unless ($Ext) { + # PDF image + if($$DATA =~ /^\%PDF/) { + # Picture size is not measured. + $Ext = 'pdf'; + } elsif($$DATA =~ /^FWS/) { # Shockwave Flash + $Ext = 'swf'; + } elsif($$DATA =~ /^RIFF/ || $$DATA =~ /^ID3/ && $$DATA =~ /RIFF/) { + my $HeaderPoint = index($$DATA, "RIFF", 0); + $_ = substr($$DATA,$HeaderPoint + 8, 8); + # AVI + if(/^AVI LIST$/) { + $Ext = 'avi'; + } + if($ContentType =~ /^video\//i) { + $Infomation .= '(RIFF '. substr($$DATA, $HeaderPoint + 8, 4). ')'; + } + } elsif($$DATA =~ /^PK/) { # ZIP Compress File + $Ext = 'zip'; + } elsif($$DATA =~ /^MSCF/) { # CAB Compress File + $Ext = 'cab'; + } elsif($$DATA =~ /^Rar\!/) { # RAR Compress File + $Ext = 'rar'; + } elsif(substr($$DATA, 2, 5) =~ /^\-lh(\d+|d)\-$/) { # LHA Compress File + $Infomation .= "(lh$1)"; + $Ext = 'lzh'; + } elsif(substr($$DATA, 325, 25) eq "Apple Video Media Handler" || substr($$DATA, 325, 30) eq "Apple \x83\x72\x83\x66\x83\x49\x81\x45\x83\x81\x83\x66\x83\x42\x83\x41\x83\x6E\x83\x93\x83\x68\x83\x89") { + # QuickTime + $Ext = 'mov'; + } + } + + # Header analysis failure + unless ($Ext) { + # It will be followed if it applies for the MIME type from the browser. + foreach (keys %UPLOAD_CONTENT_TYPE_LIST) { + next unless ($_); + if($ContentType =~ /^$_$/i) { + $Ext = $UPLOAD_CONTENT_TYPE_LIST{$_}; + $ContentName = &CheckContentExt($Ext); + if( + grep {$_ eq $Ext;} ( + 'png', + 'gif', + 'jpg', + 'xbm', + 'tif', + 'bmp', + 'pdf', + 'swf', + 'mov', + 'zip', + 'cab', + 'lzh', + 'rar', + 'mid', + 'rmi', + 'au', + 'wav', + 'avi', + 'exe' + ) + ) { + $Infomation .= ' / Header analysis failure'; + } + if($Ext ne $FileExt && &CheckContentExt($FileExt) eq $ContentName) { + $Ext = $FileExt; + } + last; + } + } + # a MIME type is unknown--It judges from an extension. + unless ($Ext) { + $ContentName = &CheckContentExt($FileExt); + if($ContentName) { + $Ext = $FileExt; + $Infomation .= ' / MIME type is unknown('. $ContentType. ')'; + last; + } + } + } + +# $ContentName = &CheckContentExt($Ext) unless($ContentName); +# if($Ext && $ContentName) { +# $ContentName .= $Infomation; +# } else { +# &upload_error( +# 'Extension Error', +# "$FileName A not corresponding extension ($Ext)
      The extension which can be responded ". join(',', sort values(%UPLOAD_EXT_LIST)) +# ); +# } + +# # SSI Tag Deletion +# if($Ext =~ /.?html?/ && $$DATA =~ /<\!/) { +# foreach ( +# 'config', +# 'echo', +# 'exec', +# 'flastmod', +# 'fsize', +# 'include' +# ) { +# $$DATA =~ s/\#\s*$_/\&\#35\;$_/ig +# } +# } + + return ( + $FileName, + $Ext, + int($DataLength / 1024 + 1), + $ImageWidth, + $ImageHeight, + $ContentName + ); +} + +############################################################################## +# Summary +# +# Extension discernment +# +# Parameters +# Returns +# Memo +############################################################################## + +sub CheckContentExt +{ + + my($Ext) = @_; + my $ContentName; + foreach (keys %UPLOAD_EXT_LIST) { + next unless ($_); + if($_ && $Ext =~ /^$_$/) { + $ContentName = $UPLOAD_EXT_LIST{$_}; + last; + } + } + return $ContentName; + +} + +############################################################################## +# Summary +# +# Form decode +# +# Parameters +# Returns +# Memo +############################################################################## +sub Encode +{ + + my($value,$Trans) = @_; + +# my $FormCode = &jcode::getcode($value) || $FormCodeDefault; +# $FormCodeDefault ||= $FormCode; +# +# if($Trans && $TRANS_2BYTE_CODE) { +# if($FormCode ne 'euc') { +# &jcode::convert($value, 'euc', $FormCode); +# } +# &jcode::tr( +# $value, +# "\xA3\xB0-\xA3\xB9\xA3\xC1-\xA3\xDA\xA3\xE1-\xA3\xFA", +# '0-9A-Za-z' +# ); +# if($CHARCODE ne 'euc') { +# &jcode::convert($value,$CHARCODE,'euc'); +# } +# } else { +# if($CHARCODE ne $FormCode) { +# &jcode::convert($value,$CHARCODE,$FormCode); +# } +# } +# if($CHARCODE eq 'euc') { +# &jcode::h2z_euc($value); +# } elsif($CHARCODE eq 'sjis') { +# &jcode::h2z_sjis($value); +# } + +} + +############################################################################## +# Summary +# +# Error Msg +# +# Parameters +# Returns +# Memo +############################################################################## + +sub upload_error +{ + + local($error_message) = $_[0]; + local($error_message2) = $_[1]; + + print "Content-type: text/html\n\n"; + print< + +Error Message + + + + + +
      Error Message
      +

        +

        $error_message

        +$error_message2
        +
      + + +EOF + &rm_tmp_uploaded_files; # Image Temporary deletion + exit; +} + +############################################################################## +# Summary +# +# Image Temporary deletion +# +# Parameters +# Returns +# Memo +############################################################################## + +sub rm_tmp_uploaded_files +{ + if($img_data_exists == 1){ + sleep 1; + foreach $fname_list(@NEWFNAMES) { + if(-e "$img_dir/$fname_list") { + unlink("$img_dir/$fname_list"); + } + } + } + +} +1; diff --git a/fckeditor/editor/filemanager/connectors/perl/util.pl b/fckeditor/editor/filemanager/connectors/perl/util.pl new file mode 100644 index 0000000..8d1220d --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/perl/util.pl @@ -0,0 +1,68 @@ +##### +# FCKeditor - The text editor for Internet - http://www.fckeditor.net +# Copyright (C) 2003-2008 Frederico Caldeira Knabben +# +# == BEGIN LICENSE == +# +# Licensed under the terms of any of the following licenses at your +# choice: +# +# - GNU General Public License Version 2 or later (the "GPL") +# http://www.gnu.org/licenses/gpl.html +# +# - GNU Lesser General Public License Version 2.1 or later (the "LGPL") +# http://www.gnu.org/licenses/lgpl.html +# +# - Mozilla Public License Version 1.1 or later (the "MPL") +# http://www.mozilla.org/MPL/MPL-1.1.html +# +# == END LICENSE == +# +# This is the File Manager Connector for Perl. +##### + +sub RemoveFromStart +{ + local($sourceString, $charToRemove) = @_; + $sPattern = '^' . $charToRemove . '+' ; + $sourceString =~ s/^$charToRemove+//g; + return $sourceString; +} + +sub RemoveFromEnd +{ + local($sourceString, $charToRemove) = @_; + $sPattern = $charToRemove . '+$' ; + $sourceString =~ s/$charToRemove+$//g; + return $sourceString; +} + +sub ConvertToXmlAttribute +{ + local($value) = @_; + return $value; +# return utf8_encode(htmlspecialchars($value)); + +} + +sub specialchar_cnv +{ + local($ch) = @_; + + $ch =~ s/&/&/g; # & + $ch =~ s/\"/"/g; #" + $ch =~ s/\'/'/g; # ' + $ch =~ s//>/g; # > + return($ch); +} + +sub JS_cnv +{ + local($ch) = @_; + + $ch =~ s/\"/\\\"/g; #" + return($ch); +} + +1; diff --git a/fckeditor/editor/filemanager/connectors/php/basexml.php b/fckeditor/editor/filemanager/connectors/php/basexml.php new file mode 100644 index 0000000..76b4158 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/php/basexml.php @@ -0,0 +1,93 @@ +' ; + + // Create the main "Connector" node. + echo '' ; + + // Add the current folder node. + echo '' ; + + $GLOBALS['HeaderSent'] = true ; +} + +function CreateXmlFooter() +{ + echo '' ; +} + +function SendError( $number, $text ) +{ + if ( isset( $GLOBALS['HeaderSent'] ) && $GLOBALS['HeaderSent'] ) + { + SendErrorNode( $number, $text ) ; + CreateXmlFooter() ; + } + else + { + SetXmlHeaders() ; + + // Create the XML document header + echo '' ; + + echo '' ; + + SendErrorNode( $number, $text ) ; + + echo '' ; + } + exit ; +} + +function SendErrorNode( $number, $text ) +{ + echo '' ; +} +?> diff --git a/fckeditor/editor/filemanager/connectors/php/commands.php b/fckeditor/editor/filemanager/connectors/php/commands.php new file mode 100644 index 0000000..382fc19 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/php/commands.php @@ -0,0 +1,273 @@ +' ; + } + + closedir( $oCurrentFolder ) ; + + // Open the "Folders" node. + echo "" ; + + natcasesort( $aFolders ) ; + foreach ( $aFolders as $sFolder ) + echo $sFolder ; + + // Close the "Folders" node. + echo "" ; +} + +function GetFoldersAndFiles( $resourceType, $currentFolder ) +{ + // Map the virtual path to the local server path. + $sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'GetFoldersAndFiles' ) ; + + // Arrays that will hold the folders and files names. + $aFolders = array() ; + $aFiles = array() ; + + $oCurrentFolder = opendir( $sServerDir ) ; + + while ( $sFile = readdir( $oCurrentFolder ) ) + { + if ( $sFile != '.' && $sFile != '..' ) + { + if ( is_dir( $sServerDir . $sFile ) ) + $aFolders[] = '' ; + else + { + $iFileSize = @filesize( $sServerDir . $sFile ) ; + if ( !$iFileSize ) { + $iFileSize = 0 ; + } + if ( $iFileSize > 0 ) + { + $iFileSize = round( $iFileSize / 1024 ) ; + if ( $iFileSize < 1 ) $iFileSize = 1 ; + } + + $aFiles[] = '' ; + } + } + } + + // Send the folders + natcasesort( $aFolders ) ; + echo '' ; + + foreach ( $aFolders as $sFolder ) + echo $sFolder ; + + echo '' ; + + // Send the files + natcasesort( $aFiles ) ; + echo '' ; + + foreach ( $aFiles as $sFiles ) + echo $sFiles ; + + echo '' ; +} + +function CreateFolder( $resourceType, $currentFolder ) +{ + if (!isset($_GET)) { + global $_GET; + } + $sErrorNumber = '0' ; + $sErrorMsg = '' ; + + if ( isset( $_GET['NewFolderName'] ) ) + { + $sNewFolderName = $_GET['NewFolderName'] ; + $sNewFolderName = SanitizeFolderName( $sNewFolderName ) ; + + if ( strpos( $sNewFolderName, '..' ) !== FALSE ) + $sErrorNumber = '102' ; // Invalid folder name. + else + { + // Map the virtual path to the local server path of the current folder. + $sServerDir = ServerMapFolder( $resourceType, $currentFolder, 'CreateFolder' ) ; + + if ( is_writable( $sServerDir ) ) + { + $sServerDir .= $sNewFolderName ; + + $sErrorMsg = CreateServerFolder( $sServerDir ) ; + + switch ( $sErrorMsg ) + { + case '' : + $sErrorNumber = '0' ; + break ; + case 'Invalid argument' : + case 'No such file or directory' : + $sErrorNumber = '102' ; // Path too long. + break ; + default : + $sErrorNumber = '110' ; + break ; + } + } + else + $sErrorNumber = '103' ; + } + } + else + $sErrorNumber = '102' ; + + // Create the "Error" node. + echo '' ; +} + +function FileUpload( $resourceType, $currentFolder, $sCommand ) +{ + if (!isset($_FILES)) { + global $_FILES; + } + $sErrorNumber = '0' ; + $sFileName = '' ; + + if ( isset( $_FILES['NewFile'] ) && !is_null( $_FILES['NewFile']['tmp_name'] ) ) + { + global $Config ; + + $oFile = $_FILES['NewFile'] ; + + // Map the virtual path to the local server path. + $sServerDir = ServerMapFolder( $resourceType, $currentFolder, $sCommand ) ; + + // Get the uploaded file name. + $sFileName = $oFile['name'] ; + $sFileName = SanitizeFileName( $sFileName ) ; + + $sOriginalFileName = $sFileName ; + + // Get the extension. + $sExtension = substr( $sFileName, ( strrpos($sFileName, '.') + 1 ) ) ; + $sExtension = strtolower( $sExtension ) ; + + if ( isset( $Config['SecureImageUploads'] ) ) + { + if ( ( $isImageValid = IsImageValid( $oFile['tmp_name'], $sExtension ) ) === false ) + { + $sErrorNumber = '202' ; + } + } + + if ( isset( $Config['HtmlExtensions'] ) ) + { + if ( !IsHtmlExtension( $sExtension, $Config['HtmlExtensions'] ) && + ( $detectHtml = DetectHtml( $oFile['tmp_name'] ) ) === true ) + { + $sErrorNumber = '202' ; + } + } + + // Check if it is an allowed extension. + if ( !$sErrorNumber && IsAllowedExt( $sExtension, $resourceType ) ) + { + $iCounter = 0 ; + + while ( true ) + { + $sFilePath = $sServerDir . $sFileName ; + + if ( is_file( $sFilePath ) ) + { + $iCounter++ ; + $sFileName = RemoveExtension( $sOriginalFileName ) . '(' . $iCounter . ').' . $sExtension ; + $sErrorNumber = '201' ; + } + else + { + move_uploaded_file( $oFile['tmp_name'], $sFilePath ) ; + + if ( is_file( $sFilePath ) ) + { + if ( isset( $Config['ChmodOnUpload'] ) && !$Config['ChmodOnUpload'] ) + { + break ; + } + + $permissions = 0777; + + if ( isset( $Config['ChmodOnUpload'] ) && $Config['ChmodOnUpload'] ) + { + $permissions = $Config['ChmodOnUpload'] ; + } + + $oldumask = umask(0) ; + chmod( $sFilePath, $permissions ) ; + umask( $oldumask ) ; + } + + break ; + } + } + + if ( file_exists( $sFilePath ) ) + { + //previous checks failed, try once again + if ( isset( $isImageValid ) && $isImageValid === -1 && IsImageValid( $sFilePath, $sExtension ) === false ) + { + @unlink( $sFilePath ) ; + $sErrorNumber = '202' ; + } + else if ( isset( $detectHtml ) && $detectHtml === -1 && DetectHtml( $sFilePath ) === true ) + { + @unlink( $sFilePath ) ; + $sErrorNumber = '202' ; + } + } + } + else + $sErrorNumber = '202' ; + } + else + $sErrorNumber = '202' ; + + + $sFileUrl = CombinePaths( GetResourceTypePath( $resourceType, $sCommand ) , $currentFolder ) ; + $sFileUrl = CombinePaths( $sFileUrl, $sFileName ) ; + + SendUploadResults( $sErrorNumber, $sFileUrl, $sFileName ) ; + + exit ; +} +?> diff --git a/fckeditor/editor/filemanager/connectors/php/config.php b/fckeditor/editor/filemanager/connectors/php/config.php new file mode 100644 index 0000000..24d7c7e --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/php/config.php @@ -0,0 +1,151 @@ + diff --git a/fckeditor/editor/filemanager/connectors/php/connector.php b/fckeditor/editor/filemanager/connectors/php/connector.php new file mode 100644 index 0000000..d6373ac --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/php/connector.php @@ -0,0 +1,87 @@ + diff --git a/fckeditor/editor/filemanager/connectors/php/io.php b/fckeditor/editor/filemanager/connectors/php/io.php new file mode 100644 index 0000000..6d4c1a2 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/php/io.php @@ -0,0 +1,295 @@ + 0 ) + return $Config['QuickUploadAbsolutePath'][$resourceType] ; + + // Map the "UserFiles" path to a local directory. + return Server_MapPath( $Config['QuickUploadPath'][$resourceType] ) ; + } + else + { + if ( strlen( $Config['FileTypesAbsolutePath'][$resourceType] ) > 0 ) + return $Config['FileTypesAbsolutePath'][$resourceType] ; + + // Map the "UserFiles" path to a local directory. + return Server_MapPath( $Config['FileTypesPath'][$resourceType] ) ; + } +} + +function GetUrlFromPath( $resourceType, $folderPath, $sCommand ) +{ + return CombinePaths( GetResourceTypePath( $resourceType, $sCommand ), $folderPath ) ; +} + +function RemoveExtension( $fileName ) +{ + return substr( $fileName, 0, strrpos( $fileName, '.' ) ) ; +} + +function ServerMapFolder( $resourceType, $folderPath, $sCommand ) +{ + // Get the resource type directory. + $sResourceTypePath = GetResourceTypeDirectory( $resourceType, $sCommand ) ; + + // Ensure that the directory exists. + $sErrorMsg = CreateServerFolder( $sResourceTypePath ) ; + if ( $sErrorMsg != '' ) + SendError( 1, "Error creating folder \"{$sResourceTypePath}\" ({$sErrorMsg})" ) ; + + // Return the resource type directory combined with the required path. + return CombinePaths( $sResourceTypePath , $folderPath ) ; +} + +function GetParentFolder( $folderPath ) +{ + $sPattern = "-[/\\\\][^/\\\\]+[/\\\\]?$-" ; + return preg_replace( $sPattern, '', $folderPath ) ; +} + +function CreateServerFolder( $folderPath, $lastFolder = null ) +{ + global $Config ; + $sParent = GetParentFolder( $folderPath ) ; + + // Ensure the folder path has no double-slashes, or mkdir may fail on certain platforms + while ( strpos($folderPath, '//') !== false ) + { + $folderPath = str_replace( '//', '/', $folderPath ) ; + } + + // Check if the parent exists, or create it. + if ( !file_exists( $sParent ) ) + { + //prevents agains infinite loop when we can't create root folder + if ( !is_null( $lastFolder ) && $lastFolder === $sParent) { + return "Can't create $folderPath directory" ; + } + + $sErrorMsg = CreateServerFolder( $sParent, $folderPath ) ; + if ( $sErrorMsg != '' ) + return $sErrorMsg ; + } + + if ( !file_exists( $folderPath ) ) + { + // Turn off all error reporting. + error_reporting( 0 ) ; + + $php_errormsg = '' ; + // Enable error tracking to catch the error. + ini_set( 'track_errors', '1' ) ; + + if ( isset( $Config['ChmodOnFolderCreate'] ) && !$Config['ChmodOnFolderCreate'] ) + { + mkdir( $folderPath ) ; + } + else + { + $permissions = 0777 ; + if ( isset( $Config['ChmodOnFolderCreate'] ) ) + { + $permissions = $Config['ChmodOnFolderCreate'] ; + } + // To create the folder with 0777 permissions, we need to set umask to zero. + $oldumask = umask(0) ; + mkdir( $folderPath, $permissions ) ; + umask( $oldumask ) ; + } + + $sErrorMsg = $php_errormsg ; + + // Restore the configurations. + ini_restore( 'track_errors' ) ; + ini_restore( 'error_reporting' ) ; + + return $sErrorMsg ; + } + else + return '' ; +} + +function GetRootPath() +{ + if (!isset($_SERVER)) { + global $_SERVER; + } + $sRealPath = realpath( './' ) ; + // #2124 ensure that no slash is at the end + $sRealPath = rtrim($sRealPath,"\\/"); + + $sSelfPath = $_SERVER['PHP_SELF'] ; + $sSelfPath = substr( $sSelfPath, 0, strrpos( $sSelfPath, '/' ) ) ; + + $sSelfPath = str_replace( '/', DIRECTORY_SEPARATOR, $sSelfPath ) ; + + $position = strpos( $sRealPath, $sSelfPath ) ; + + // This can check only that this script isn't run from a virtual dir + // But it avoids the problems that arise if it isn't checked + if ( $position === false || $position <> strlen( $sRealPath ) - strlen( $sSelfPath ) ) + SendError( 1, 'Sorry, can\'t map "UserFilesPath" to a physical path. You must set the "UserFilesAbsolutePath" value in "editor/filemanager/connectors/php/config.php".' ) ; + + return substr( $sRealPath, 0, $position ) ; +} + +// Emulate the asp Server.mapPath function. +// given an url path return the physical directory that it corresponds to +function Server_MapPath( $path ) +{ + // This function is available only for Apache + if ( function_exists( 'apache_lookup_uri' ) ) + { + $info = apache_lookup_uri( $path ) ; + return $info->filename . $info->path_info ; + } + + // This isn't correct but for the moment there's no other solution + // If this script is under a virtual directory or symlink it will detect the problem and stop + return GetRootPath() . $path ; +} + +function IsAllowedExt( $sExtension, $resourceType ) +{ + global $Config ; + // Get the allowed and denied extensions arrays. + $arAllowed = $Config['AllowedExtensions'][$resourceType] ; + $arDenied = $Config['DeniedExtensions'][$resourceType] ; + + if ( count($arAllowed) > 0 && !in_array( $sExtension, $arAllowed ) ) + return false ; + + if ( count($arDenied) > 0 && in_array( $sExtension, $arDenied ) ) + return false ; + + return true ; +} + +function IsAllowedType( $resourceType ) +{ + global $Config ; + if ( !in_array( $resourceType, $Config['ConfigAllowedTypes'] ) ) + return false ; + + return true ; +} + +function IsAllowedCommand( $sCommand ) +{ + global $Config ; + + if ( !in_array( $sCommand, $Config['ConfigAllowedCommands'] ) ) + return false ; + + return true ; +} + +function GetCurrentFolder() +{ + if (!isset($_GET)) { + global $_GET; + } + $sCurrentFolder = isset( $_GET['CurrentFolder'] ) ? $_GET['CurrentFolder'] : '/' ; + + // Check the current folder syntax (must begin and start with a slash). + if ( !preg_match( '|/$|', $sCurrentFolder ) ) + $sCurrentFolder .= '/' ; + if ( strpos( $sCurrentFolder, '/' ) !== 0 ) + $sCurrentFolder = '/' . $sCurrentFolder ; + + // Ensure the folder path has no double-slashes + while ( strpos ($sCurrentFolder, '//') !== false ) { + $sCurrentFolder = str_replace ('//', '/', $sCurrentFolder) ; + } + + // Check for invalid folder paths (..) + if ( strpos( $sCurrentFolder, '..' ) || strpos( $sCurrentFolder, "\\" )) + SendError( 102, '' ) ; + + return $sCurrentFolder ; +} + +// Do a cleanup of the folder name to avoid possible problems +function SanitizeFolderName( $sNewFolderName ) +{ + $sNewFolderName = stripslashes( $sNewFolderName ) ; + + // Remove . \ / | : ? * " < > + $sNewFolderName = preg_replace( '/\\.|\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|[[:cntrl:]]/', '_', $sNewFolderName ) ; + + return $sNewFolderName ; +} + +// Do a cleanup of the file name to avoid possible problems +function SanitizeFileName( $sNewFileName ) +{ + global $Config ; + + $sNewFileName = stripslashes( $sNewFileName ) ; + + // Replace dots in the name with underscores (only one dot can be there... security issue). + if ( $Config['ForceSingleExtension'] ) + $sNewFileName = preg_replace( '/\\.(?![^.]*$)/', '_', $sNewFileName ) ; + + // Remove \ / | : ? * " < > + $sNewFileName = preg_replace( '/\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|[[:cntrl:]]/', '_', $sNewFileName ) ; + + return $sNewFileName ; +} + +// This is the function that sends the results of the uploading process. +function SendUploadResults( $errorNumber, $fileUrl = '', $fileName = '', $customMsg = '' ) +{ + // Minified version of the document.domain automatic fix script (#1919). + // The original script can be found at _dev/domain_fix_template.js + echo << +(function(){var d=document.domain;while (true){try{var A=window.parent.document.domain;break;}catch(e) {};d=d.replace(/.*?(?:\.|$)/,'');if (d.length==0) break;try{document.domain=d;}catch (e){break;}}})(); +EOF; + + $rpl = array( '\\' => '\\\\', '"' => '\\"' ) ; + echo 'window.parent.OnUploadCompleted(' . $errorNumber . ',"' . strtr( $fileUrl, $rpl ) . '","' . strtr( $fileName, $rpl ) . '", "' . strtr( $customMsg, $rpl ) . '") ;' ; + echo '' ; + exit ; +} + +?> diff --git a/fckeditor/editor/filemanager/connectors/php/phpcompat.php b/fckeditor/editor/filemanager/connectors/php/phpcompat.php new file mode 100644 index 0000000..6fc89e5 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/php/phpcompat.php @@ -0,0 +1,17 @@ + diff --git a/fckeditor/editor/filemanager/connectors/php/util.php b/fckeditor/editor/filemanager/connectors/php/util.php new file mode 100644 index 0000000..30dc6c0 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/php/util.php @@ -0,0 +1,220 @@ + $val ) + { + $lcaseHtmlExtensions[$key] = strtolower( $val ) ; + } + return in_array( $ext, $lcaseHtmlExtensions ) ; +} + +/** + * Detect HTML in the first KB to prevent against potential security issue with + * IE/Safari/Opera file type auto detection bug. + * Returns true if file contain insecure HTML code at the beginning. + * + * @param string $filePath absolute path to file + * @return boolean + */ +function DetectHtml( $filePath ) +{ + $fp = @fopen( $filePath, 'rb' ) ; + + //open_basedir restriction, see #1906 + if ( $fp === false || !flock( $fp, LOCK_SH ) ) + { + return -1 ; + } + + $chunk = fread( $fp, 1024 ) ; + flock( $fp, LOCK_UN ) ; + fclose( $fp ) ; + + $chunk = strtolower( $chunk ) ; + + if (!$chunk) + { + return false ; + } + + $chunk = trim( $chunk ) ; + + if ( preg_match( "/= 4.0.7 + if ( function_exists( 'version_compare' ) ) { + $sCurrentVersion = phpversion(); + if ( version_compare( $sCurrentVersion, "4.2.0" ) >= 0 ) { + $imageCheckExtensions[] = "tiff"; + $imageCheckExtensions[] = "tif"; + } + if ( version_compare( $sCurrentVersion, "4.3.0" ) >= 0 ) { + $imageCheckExtensions[] = "swc"; + } + if ( version_compare( $sCurrentVersion, "4.3.2" ) >= 0 ) { + $imageCheckExtensions[] = "jpc"; + $imageCheckExtensions[] = "jp2"; + $imageCheckExtensions[] = "jpx"; + $imageCheckExtensions[] = "jb2"; + $imageCheckExtensions[] = "xbm"; + $imageCheckExtensions[] = "wbmp"; + } + } + + if ( !in_array( $extension, $imageCheckExtensions ) ) { + return true; + } + + if ( @getimagesize( $filePath ) === false ) { + return false ; + } + + return true; +} + +?> diff --git a/fckeditor/editor/filemanager/connectors/py/config.py b/fckeditor/editor/filemanager/connectors/py/config.py new file mode 100644 index 0000000..094800d --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/py/config.py @@ -0,0 +1,146 @@ +#!/usr/bin/env python +""" + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Configuration file for the File Manager Connector for Python +""" + +# INSTALLATION NOTE: You must set up your server environment accordingly to run +# python scripts. This connector requires Python 2.4 or greater. +# +# Supported operation modes: +# * WSGI (recommended): You'll need apache + mod_python + modpython_gateway +# or any web server capable of the WSGI python standard +# * Plain Old CGI: Any server capable of running standard python scripts +# (although mod_python is recommended for performance) +# This was the previous connector version operation mode +# +# If you're using Apache web server, replace the htaccess.txt to to .htaccess, +# and set the proper options and paths. +# For WSGI and mod_python, you may need to download modpython_gateway from: +# http://projects.amor.org/misc/svn/modpython_gateway.py and copy it in this +# directory. + + +# SECURITY: You must explicitly enable this "connector". (Set it to "True"). +# WARNING: don't just set "ConfigIsEnabled = True", you must be sure that only +# authenticated users can access this file or use some kind of session checking. +Enabled = False + +# Path to user files relative to the document root. +UserFilesPath = '/userfiles/' + +# Fill the following value it you prefer to specify the absolute path for the +# user files directory. Useful 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. +# WARNING: GetRootPath may not work in virtual or mod_python configurations, and +# may not be thread safe. Use this configuration parameter instead. +UserFilesAbsolutePath = '' + +# Due to security issues with Apache modules, it is recommended to leave the +# following setting enabled. +ForceSingleExtension = True + +# What the user can do with this connector +ConfigAllowedCommands = [ 'QuickUpload', 'FileUpload', 'GetFolders', 'GetFoldersAndFiles', 'CreateFolder' ] + +# Allowed Resource Types +ConfigAllowedTypes = ['File', 'Image', 'Flash', 'Media'] + +# After file is uploaded, sometimes it is required to change its permissions +# so that it was possible to access it at the later time. +# If possible, it is recommended to set more restrictive permissions, like 0755. +# Set to 0 to disable this feature. +# Note: not needed on Windows-based servers. +ChmodOnUpload = 0755 + +# See comments above. +# Used when creating folders that does not exist. +ChmodOnFolderCreate = 0755 + +# Do not touch this 3 lines, see "Configuration settings for each Resource Type" +AllowedExtensions = {}; DeniedExtensions = {}; +FileTypesPath = {}; FileTypesAbsolutePath = {}; +QuickUploadPath = {}; QuickUploadAbsolutePath = {}; + +# Configuration settings for each Resource Type +# +# - AllowedExtensions: the possible extensions that can be allowed. +# If it is empty then any file type can be uploaded. +# - DeniedExtensions: The extensions that won't be allowed. +# If it is empty then no restrictions are done here. +# +# For a file to be uploaded it has to fulfill both the AllowedExtensions +# and DeniedExtensions (that's it: not being denied) conditions. +# +# - FileTypesPath: the virtual folder relative to the document root where +# these resources will be located. +# Attention: It must start and end with a slash: '/' +# +# - FileTypesAbsolutePath: the physical path to the above folder. It must be +# an absolute path. +# If it's an empty string then it will be autocalculated. +# Useful if you are using a virtual directory, symbolic link or alias. +# Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'. +# Attention: The above 'FileTypesPath' must point to the same directory. +# Attention: It must end with a slash: '/' +# +# +# - QuickUploadPath: the virtual folder relative to the document root where +# these resources will be uploaded using the Upload tab in the resources +# dialogs. +# Attention: It must start and end with a slash: '/' +# +# - QuickUploadAbsolutePath: the physical path to the above folder. It must be +# an absolute path. +# If it's an empty string then it will be autocalculated. +# Useful if you are using a virtual directory, symbolic link or alias. +# Examples: 'C:\\MySite\\userfiles\\' or '/root/mysite/userfiles/'. +# Attention: The above 'QuickUploadPath' must point to the same directory. +# Attention: It must end with a slash: '/' + +AllowedExtensions['File'] = ['7z','aiff','asf','avi','bmp','csv','doc','fla','flv','gif','gz','gzip','jpeg','jpg','mid','mov','mp3','mp4','mpc','mpeg','mpg','ods','odt','pdf','png','ppt','pxd','qt','ram','rar','rm','rmi','rmvb','rtf','sdc','sitd','swf','sxc','sxw','tar','tgz','tif','tiff','txt','vsd','wav','wma','wmv','xls','xml','zip'] +DeniedExtensions['File'] = [] +FileTypesPath['File'] = UserFilesPath + 'file/' +FileTypesAbsolutePath['File'] = (not UserFilesAbsolutePath == '') and (UserFilesAbsolutePath + 'file/') or '' +QuickUploadPath['File'] = FileTypesPath['File'] +QuickUploadAbsolutePath['File'] = FileTypesAbsolutePath['File'] + +AllowedExtensions['Image'] = ['bmp','gif','jpeg','jpg','png'] +DeniedExtensions['Image'] = [] +FileTypesPath['Image'] = UserFilesPath + 'image/' +FileTypesAbsolutePath['Image'] = (not UserFilesAbsolutePath == '') and UserFilesAbsolutePath + 'image/' or '' +QuickUploadPath['Image'] = FileTypesPath['Image'] +QuickUploadAbsolutePath['Image']= FileTypesAbsolutePath['Image'] + +AllowedExtensions['Flash'] = ['swf','flv'] +DeniedExtensions['Flash'] = [] +FileTypesPath['Flash'] = UserFilesPath + 'flash/' +FileTypesAbsolutePath['Flash'] = ( not UserFilesAbsolutePath == '') and UserFilesAbsolutePath + 'flash/' or '' +QuickUploadPath['Flash'] = FileTypesPath['Flash'] +QuickUploadAbsolutePath['Flash']= FileTypesAbsolutePath['Flash'] + +AllowedExtensions['Media'] = ['aiff','asf','avi','bmp','fla', 'flv','gif','jpeg','jpg','mid','mov','mp3','mp4','mpc','mpeg','mpg','png','qt','ram','rm','rmi','rmvb','swf','tif','tiff','wav','wma','wmv'] +DeniedExtensions['Media'] = [] +FileTypesPath['Media'] = UserFilesPath + 'media/' +FileTypesAbsolutePath['Media'] = ( not UserFilesAbsolutePath == '') and UserFilesAbsolutePath + 'media/' or '' +QuickUploadPath['Media'] = FileTypesPath['Media'] +QuickUploadAbsolutePath['Media']= FileTypesAbsolutePath['Media'] diff --git a/fckeditor/editor/filemanager/connectors/py/connector.py b/fckeditor/editor/filemanager/connectors/py/connector.py new file mode 100644 index 0000000..e3a4c20 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/py/connector.py @@ -0,0 +1,118 @@ +#!/usr/bin/env python + +""" +FCKeditor - The text editor for Internet - http://www.fckeditor.net +Copyright (C) 2003-2008 Frederico Caldeira Knabben + +== BEGIN LICENSE == + +Licensed under the terms of any of the following licenses at your +choice: + + - GNU General Public License Version 2 or later (the "GPL") + http://www.gnu.org/licenses/gpl.html + + - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + http://www.gnu.org/licenses/lgpl.html + + - Mozilla Public License Version 1.1 or later (the "MPL") + http://www.mozilla.org/MPL/MPL-1.1.html + +== END LICENSE == + +Connector for Python (CGI and WSGI). + +See config.py for configuration settings + +""" +import os + +from fckutil import * +from fckcommands import * # default command's implementation +from fckoutput import * # base http, xml and html output mixins +from fckconnector import FCKeditorConnectorBase # import base connector +import config as Config + +class FCKeditorConnector( FCKeditorConnectorBase, + GetFoldersCommandMixin, + GetFoldersAndFilesCommandMixin, + CreateFolderCommandMixin, + UploadFileCommandMixin, + BaseHttpMixin, BaseXmlMixin, BaseHtmlMixin ): + "The Standard connector class." + def doResponse(self): + "Main function. Process the request, set headers and return a string as response." + s = "" + # Check if this connector is disabled + if not(Config.Enabled): + return self.sendError(1, "This connector is disabled. Please check the connector configurations in \"editor/filemanager/connectors/py/config.py\" and try again.") + # Make sure we have valid inputs + for key in ("Command","Type","CurrentFolder"): + if not self.request.has_key (key): + return + # Get command, resource type and current folder + command = self.request.get("Command") + resourceType = self.request.get("Type") + currentFolder = getCurrentFolder(self.request.get("CurrentFolder")) + # Check for invalid paths + if currentFolder is None: + return self.sendError(102, "") + + # Check if it is an allowed command + if ( not command in Config.ConfigAllowedCommands ): + return self.sendError( 1, 'The %s command isn\'t allowed' % command ) + + if ( not resourceType in Config.ConfigAllowedTypes ): + return self.sendError( 1, 'Invalid type specified' ) + + # Setup paths + if command == "QuickUpload": + self.userFilesFolder = Config.QuickUploadAbsolutePath[resourceType] + self.webUserFilesFolder = Config.QuickUploadPath[resourceType] + else: + self.userFilesFolder = Config.FileTypesAbsolutePath[resourceType] + self.webUserFilesFolder = Config.FileTypesPath[resourceType] + + if not self.userFilesFolder: # no absolute path given (dangerous...) + self.userFilesFolder = mapServerPath(self.environ, + self.webUserFilesFolder) + # Ensure that the directory exists. + if not os.path.exists(self.userFilesFolder): + try: + self.createServerFoldercreateServerFolder( self.userFilesFolder ) + except: + return self.sendError(1, "This connector couldn\'t access to local user\'s files directories. Please check the UserFilesAbsolutePath in \"editor/filemanager/connectors/py/config.py\" and try again. ") + + # File upload doesn't have to return XML, so intercept here + if (command == "FileUpload"): + return self.uploadFile(resourceType, currentFolder) + + # Create Url + url = combinePaths( self.webUserFilesFolder, currentFolder ) + + # Begin XML + s += self.createXmlHeader(command, resourceType, currentFolder, url) + # Execute the command + selector = {"GetFolders": self.getFolders, + "GetFoldersAndFiles": self.getFoldersAndFiles, + "CreateFolder": self.createFolder, + } + s += selector[command](resourceType, currentFolder) + s += self.createXmlFooter() + return s + +# Running from command line (plain old CGI) +if __name__ == '__main__': + try: + # Create a Connector Instance + conn = FCKeditorConnector() + data = conn.doResponse() + for header in conn.headers: + print '%s: %s' % header + print + print data + except: + print "Content-Type: text/plain" + print + import cgi + cgi.print_exception() diff --git a/fckeditor/editor/filemanager/connectors/py/fckcommands.py b/fckeditor/editor/filemanager/connectors/py/fckcommands.py new file mode 100644 index 0000000..0f4f8eb --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/py/fckcommands.py @@ -0,0 +1,198 @@ +#!/usr/bin/env python + +""" +FCKeditor - The text editor for Internet - http://www.fckeditor.net +Copyright (C) 2003-2008 Frederico Caldeira Knabben + +== BEGIN LICENSE == + +Licensed under the terms of any of the following licenses at your +choice: + +- GNU General Public License Version 2 or later (the "GPL") +http://www.gnu.org/licenses/gpl.html + +- GNU Lesser General Public License Version 2.1 or later (the "LGPL") +http://www.gnu.org/licenses/lgpl.html + +- Mozilla Public License Version 1.1 or later (the "MPL") +http://www.mozilla.org/MPL/MPL-1.1.html + +== END LICENSE == + +Connector for Python (CGI and WSGI). + +""" + +import os +try: # Windows needs stdio set for binary mode for file upload to work. + import msvcrt + msvcrt.setmode (0, os.O_BINARY) # stdin = 0 + msvcrt.setmode (1, os.O_BINARY) # stdout = 1 +except ImportError: + pass + +from fckutil import * +from fckoutput import * +import config as Config + +class GetFoldersCommandMixin (object): + def getFolders(self, resourceType, currentFolder): + """ + Purpose: command to recieve a list of folders + """ + # Map the virtual path to our local server + serverPath = mapServerFolder(self.userFilesFolder,currentFolder) + s = """""" # Open the folders node + for someObject in os.listdir(serverPath): + someObjectPath = mapServerFolder(serverPath, someObject) + if os.path.isdir(someObjectPath): + s += """""" % ( + convertToXmlAttribute(someObject) + ) + s += """""" # Close the folders node + return s + +class GetFoldersAndFilesCommandMixin (object): + def getFoldersAndFiles(self, resourceType, currentFolder): + """ + Purpose: command to recieve a list of folders and files + """ + # Map the virtual path to our local server + serverPath = mapServerFolder(self.userFilesFolder,currentFolder) + # Open the folders / files node + folders = """""" + files = """""" + for someObject in os.listdir(serverPath): + someObjectPath = mapServerFolder(serverPath, someObject) + if os.path.isdir(someObjectPath): + folders += """""" % ( + convertToXmlAttribute(someObject) + ) + elif os.path.isfile(someObjectPath): + size = os.path.getsize(someObjectPath) + files += """""" % ( + convertToXmlAttribute(someObject), + os.path.getsize(someObjectPath) + ) + # Close the folders / files node + folders += """""" + files += """""" + return folders + files + +class CreateFolderCommandMixin (object): + def createFolder(self, resourceType, currentFolder): + """ + Purpose: command to create a new folder + """ + errorNo = 0; errorMsg =''; + if self.request.has_key("NewFolderName"): + newFolder = self.request.get("NewFolderName", None) + newFolder = sanitizeFolderName (newFolder) + try: + newFolderPath = mapServerFolder(self.userFilesFolder, combinePaths(currentFolder, newFolder)) + self.createServerFolder(newFolderPath) + except Exception, e: + errorMsg = str(e).decode('iso-8859-1').encode('utf-8') # warning with encodigns!!! + if hasattr(e,'errno'): + if e.errno==17: #file already exists + errorNo=0 + elif e.errno==13: # permission denied + errorNo = 103 + elif e.errno==36 or e.errno==2 or e.errno==22: # filename too long / no such file / invalid name + errorNo = 102 + else: + errorNo = 110 + else: + errorNo = 102 + return self.sendErrorNode ( errorNo, errorMsg ) + + def createServerFolder(self, folderPath): + "Purpose: physically creates a folder on the server" + # No need to check if the parent exists, just create all hierachy + + try: + permissions = Config.ChmodOnFolderCreate + if not permissions: + os.makedirs(folderPath) + except AttributeError: #ChmodOnFolderCreate undefined + permissions = 0755 + + if permissions: + oldumask = os.umask(0) + os.makedirs(folderPath,mode=0755) + os.umask( oldumask ) + +class UploadFileCommandMixin (object): + def uploadFile(self, resourceType, currentFolder): + """ + Purpose: command to upload files to server (same as FileUpload) + """ + errorNo = 0 + 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 + newFileName = sanitizeFileName( newFileName ) + newFileNameOnly = removeExtension(newFileName) + newFileExtension = getExtension(newFileName).lower() + allowedExtensions = Config.AllowedExtensions[resourceType] + deniedExtensions = Config.DeniedExtensions[resourceType] + + if (allowedExtensions): + # Check for allowed + isAllowed = False + if (newFileExtension in allowedExtensions): + isAllowed = True + elif (deniedExtensions): + # Check for denied + isAllowed = True + if (newFileExtension in deniedExtensions): + isAllowed = False + else: + # No extension limitations + isAllowed = True + + if (isAllowed): + # Upload to operating system + # Map the virtual path to the local server path + currentFolderPath = mapServerFolder(self.userFilesFolder, currentFolder) + i = 0 + while (True): + newFilePath = os.path.join (currentFolderPath,newFileName) + if os.path.exists(newFilePath): + i += 1 + newFileName = "%s(%04d).%s" % ( + newFileNameOnly, i, newFileExtension + ) + errorNo= 201 # file renamed + else: + # Read file contents and write to the desired path (similar to php's move_uploaded_file) + fout = file(newFilePath, 'wb') + while (True): + chunk = newFile.file.read(100000) + if not chunk: break + fout.write (chunk) + fout.close() + + if os.path.exists ( newFilePath ): + doChmod = False + try: + doChmod = Config.ChmodOnUpload + permissions = Config.ChmodOnUpload + except AttributeError: #ChmodOnUpload undefined + doChmod = True + permissions = 0755 + if ( doChmod ): + oldumask = os.umask(0) + os.chmod( newFilePath, permissions ) + os.umask( oldumask ) + + newFileUrl = self.webUserFilesFolder + currentFolder + newFileName + + return self.sendUploadResults( errorNo , newFileUrl, newFileName ) + else: + return self.sendUploadResults( errorNo = 203, customMsg = "Extension not allowed" ) + else: + return self.sendUploadResults( errorNo = 202, customMsg = "No File" ) diff --git a/fckeditor/editor/filemanager/connectors/py/fckconnector.py b/fckeditor/editor/filemanager/connectors/py/fckconnector.py new file mode 100644 index 0000000..329aec9 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/py/fckconnector.py @@ -0,0 +1,90 @@ +#!/usr/bin/env python + +""" +FCKeditor - The text editor for Internet - http://www.fckeditor.net +Copyright (C) 2003-2008 Frederico Caldeira Knabben + +== BEGIN LICENSE == + +Licensed under the terms of any of the following licenses at your +choice: + +- GNU General Public License Version 2 or later (the "GPL") +http://www.gnu.org/licenses/gpl.html + +- GNU Lesser General Public License Version 2.1 or later (the "LGPL") +http://www.gnu.org/licenses/lgpl.html + +- Mozilla Public License Version 1.1 or later (the "MPL") +http://www.mozilla.org/MPL/MPL-1.1.html + +== END LICENSE == + +Base Connector for Python (CGI and WSGI). + +See config.py for configuration settings + +""" +import cgi, os + +from fckutil import * +from fckcommands import * # default command's implementation +from fckoutput import * # base http, xml and html output mixins +import config as Config + +class FCKeditorConnectorBase( object ): + "The base connector class. Subclass it to extend functionality (see Zope example)" + + def __init__(self, environ=None): + "Constructor: Here you should parse request fields, initialize variables, etc." + self.request = FCKeditorRequest(environ) # Parse request + self.headers = [] # Clean Headers + if environ: + self.environ = environ + else: + self.environ = os.environ + + # local functions + + def setHeader(self, key, value): + self.headers.append ((key, value)) + return + +class FCKeditorRequest(object): + "A wrapper around the request object" + def __init__(self, environ): + if environ: # WSGI + self.request = cgi.FieldStorage(fp=environ['wsgi.input'], + environ=environ, + keep_blank_values=1) + self.environ = environ + else: # plain old cgi + self.environ = os.environ + self.request = cgi.FieldStorage() + if 'REQUEST_METHOD' in self.environ and 'QUERY_STRING' in self.environ: + if self.environ['REQUEST_METHOD'].upper()=='POST': + # we are in a POST, but GET query_string exists + # cgi parses by default POST data, so parse GET QUERY_STRING too + self.get_request = cgi.FieldStorage(fp=None, + environ={ + 'REQUEST_METHOD':'GET', + 'QUERY_STRING':self.environ['QUERY_STRING'], + }, + ) + else: + self.get_request={} + + def has_key(self, key): + return self.request.has_key(key) or self.get_request.has_key(key) + + def get(self, key, default=None): + if key in self.request.keys(): + field = self.request[key] + elif key in self.get_request.keys(): + field = self.get_request[key] + else: + return default + if hasattr(field,"filename") and field.filename: #file upload, do not convert return value + return field + else: + return field.value diff --git a/fckeditor/editor/filemanager/connectors/py/fckoutput.py b/fckeditor/editor/filemanager/connectors/py/fckoutput.py new file mode 100644 index 0000000..12bcc04 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/py/fckoutput.py @@ -0,0 +1,116 @@ +#!/usr/bin/env python + +""" +FCKeditor - The text editor for Internet - http://www.fckeditor.net +Copyright (C) 2003-2008 Frederico Caldeira Knabben + +== BEGIN LICENSE == + +Licensed under the terms of any of the following licenses at your +choice: + +- GNU General Public License Version 2 or later (the "GPL") +http://www.gnu.org/licenses/gpl.html + +- GNU Lesser General Public License Version 2.1 or later (the "LGPL") +http://www.gnu.org/licenses/lgpl.html + +- Mozilla Public License Version 1.1 or later (the "MPL") +http://www.mozilla.org/MPL/MPL-1.1.html + +== END LICENSE == + +Connector for Python (CGI and WSGI). + +""" + +from time import gmtime, strftime +import string + +def escape(text, replace=string.replace): + """ + Converts the special characters '<', '>', and '&'. + + RFC 1866 specifies that these characters be represented + in HTML as < > and & respectively. In Python + 1.5 we use the new string.replace() function for speed. + """ + text = replace(text, '&', '&') # must be done 1st + text = replace(text, '<', '<') + text = replace(text, '>', '>') + text = replace(text, '"', '"') + return text + +def convertToXmlAttribute(value): + if (value is None): + value = "" + return escape(value) + +class BaseHttpMixin(object): + def setHttpHeaders(self, content_type='text/xml'): + "Purpose: to prepare the headers for the xml to return" + # Prevent the browser from caching the result. + # Date in the past + self.setHeader('Expires','Mon, 26 Jul 1997 05:00:00 GMT') + # always modified + self.setHeader('Last-Modified',strftime("%a, %d %b %Y %H:%M:%S GMT", gmtime())) + # HTTP/1.1 + self.setHeader('Cache-Control','no-store, no-cache, must-revalidate') + self.setHeader('Cache-Control','post-check=0, pre-check=0') + # HTTP/1.0 + self.setHeader('Pragma','no-cache') + + # Set the response format. + self.setHeader( 'Content-Type', content_type + '; charset=utf-8' ) + return + +class BaseXmlMixin(object): + def createXmlHeader(self, command, resourceType, currentFolder, url): + "Purpose: returns the xml header" + self.setHttpHeaders() + # Create the XML document header + s = """""" + # Create the main connector node + s += """""" % ( + command, + resourceType + ) + # Add the current folder node + s += """""" % ( + convertToXmlAttribute(currentFolder), + convertToXmlAttribute(url), + ) + return s + + def createXmlFooter(self): + "Purpose: returns the xml footer" + return """""" + + def sendError(self, number, text): + "Purpose: in the event of an error, return an xml based error" + self.setHttpHeaders() + return ("""""" + + """""" + + self.sendErrorNode (number, text) + + """""" ) + + def sendErrorNode(self, number, text): + return """""" % (number, convertToXmlAttribute(text)) + +class BaseHtmlMixin(object): + def sendUploadResults( self, errorNo = 0, fileUrl = '', fileName = '', customMsg = '' ): + self.setHttpHeaders("text/html") + "This is the function that sends the results of the uploading process" + + "Minified version of the document.domain automatic fix script (#1919)." + "The original script can be found at _dev/domain_fix_template.js" + return """""" % { + 'errorNumber': errorNo, + 'fileUrl': fileUrl.replace ('"', '\\"'), + 'fileName': fileName.replace ( '"', '\\"' ) , + 'customMsg': customMsg.replace ( '"', '\\"' ), + } diff --git a/fckeditor/editor/filemanager/connectors/py/fckutil.py b/fckeditor/editor/filemanager/connectors/py/fckutil.py new file mode 100644 index 0000000..eac508d --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/py/fckutil.py @@ -0,0 +1,126 @@ +#!/usr/bin/env python + +""" +FCKeditor - The text editor for Internet - http://www.fckeditor.net +Copyright (C) 2003-2008 Frederico Caldeira Knabben + +== BEGIN LICENSE == + +Licensed under the terms of any of the following licenses at your +choice: + +- GNU General Public License Version 2 or later (the "GPL") +http://www.gnu.org/licenses/gpl.html + +- GNU Lesser General Public License Version 2.1 or later (the "LGPL") +http://www.gnu.org/licenses/lgpl.html + +- Mozilla Public License Version 1.1 or later (the "MPL") +http://www.mozilla.org/MPL/MPL-1.1.html + +== END LICENSE == + +Utility functions for the File Manager Connector for Python + +""" + +import string, re +import os +import config as Config + +# Generic manipulation functions + +def removeExtension(fileName): + index = fileName.rindex(".") + newFileName = fileName[0:index] + return newFileName + +def getExtension(fileName): + index = fileName.rindex(".") + 1 + fileExtension = fileName[index:] + return fileExtension + +def removeFromStart(string, char): + return string.lstrip(char) + +def removeFromEnd(string, char): + return string.rstrip(char) + +# Path functions + +def combinePaths( basePath, folder ): + return removeFromEnd( basePath, '/' ) + '/' + removeFromStart( folder, '/' ) + +def getFileName(filename): + " Purpose: helper function to extrapolate the filename " + for splitChar in ["/", "\\"]: + array = filename.split(splitChar) + if (len(array) > 1): + filename = array[-1] + return filename + +def sanitizeFolderName( newFolderName ): + "Do a cleanup of the folder name to avoid possible problems" + # Remove . \ / | : ? * " < > and control characters + return re.sub( '(?u)\\.|\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|[^\u0000-\u001f\u007f-\u009f]', '_', newFolderName ) + +def sanitizeFileName( newFileName ): + "Do a cleanup of the file name to avoid possible problems" + # Replace dots in the name with underscores (only one dot can be there... security issue). + if ( Config.ForceSingleExtension ): # remove dots + newFileName = re.sub ( '/\\.(?![^.]*$)/', '_', newFileName ) ; + newFileName = newFileName.replace('\\','/') # convert windows to unix path + newFileName = os.path.basename (newFileName) # strip directories + # Remove \ / | : ? * + return re.sub ( '(?u)/\\\\|\\/|\\||\\:|\\?|\\*|"|<|>|[^\u0000-\u001f\u007f-\u009f]/', '_', newFileName ) + +def getCurrentFolder(currentFolder): + if not currentFolder: + currentFolder = '/' + + # Check the current folder syntax (must begin and end with a slash). + if (currentFolder[-1] <> "/"): + currentFolder += "/" + if (currentFolder[0] <> "/"): + currentFolder = "/" + currentFolder + + # Ensure the folder path has no double-slashes + while '//' in currentFolder: + currentFolder = currentFolder.replace('//','/') + + # Check for invalid folder paths (..) + if '..' in currentFolder or '\\' in currentFolder: + return None + + return currentFolder + +def mapServerPath( environ, url): + " Emulate the asp Server.mapPath function. Given an url path return the physical directory that it corresponds to " + # This isn't correct but for the moment there's no other solution + # If this script is under a virtual directory or symlink it will detect the problem and stop + return combinePaths( getRootPath(environ), url ) + +def mapServerFolder(resourceTypePath, folderPath): + return combinePaths ( resourceTypePath , folderPath ) + +def getRootPath(environ): + "Purpose: returns the root path on the server" + # WARNING: this may not be thread safe, and doesn't work w/ VirtualServer/mod_python + # Use Config.UserFilesAbsolutePath instead + + if environ.has_key('DOCUMENT_ROOT'): + return environ['DOCUMENT_ROOT'] + else: + realPath = os.path.realpath( './' ) + selfPath = environ['SCRIPT_FILENAME'] + selfPath = selfPath [ : selfPath.rfind( '/' ) ] + selfPath = selfPath.replace( '/', os.path.sep) + + position = realPath.find(selfPath) + + # This can check only that this script isn't run from a virtual dir + # But it avoids the problems that arise if it isn't checked + raise realPath + if ( position < 0 or position <> len(realPath) - len(selfPath) or realPath[ : position ]==''): + raise Exception('Sorry, can\'t map "UserFilesPath" to a physical path. You must set the "UserFilesAbsolutePath" value in "editor/filemanager/connectors/py/config.py".') + return realPath[ : position ] diff --git a/fckeditor/editor/filemanager/connectors/py/htaccess.txt b/fckeditor/editor/filemanager/connectors/py/htaccess.txt new file mode 100644 index 0000000..8237419 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/py/htaccess.txt @@ -0,0 +1,23 @@ +# replace the name of this file to .htaccess (if using apache), +# and set the proper options and paths according your enviroment + +Allow from all + +# If using mod_python uncomment this: +PythonPath "[r'C:\Archivos de programa\Apache Software Foundation\Apache2.2\htdocs\fckeditor\editor\filemanager\connectors\py'] + sys.path" + + +# Recomended: WSGI application running with mod_python and modpython_gateway +SetHandler python-program +PythonHandler modpython_gateway::handler +PythonOption wsgi.application wsgi::App + + +# Emulated CGI with mod_python and cgihandler +#AddHandler mod_python .py +#PythonHandler mod_python.cgihandler + + +# Plain old CGI +#Options +ExecCGI +#AddHandler cgi-script py diff --git a/fckeditor/editor/filemanager/connectors/py/upload.py b/fckeditor/editor/filemanager/connectors/py/upload.py new file mode 100644 index 0000000..db5a5ab --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/py/upload.py @@ -0,0 +1,88 @@ +#!/usr/bin/env python + +""" +FCKeditor - The text editor for Internet - http://www.fckeditor.net +Copyright (C) 2003-2008 Frederico Caldeira Knabben + +== BEGIN LICENSE == + +Licensed under the terms of any of the following licenses at your +choice: + +- GNU General Public License Version 2 or later (the "GPL") +http://www.gnu.org/licenses/gpl.html + +- GNU Lesser General Public License Version 2.1 or later (the "LGPL") +http://www.gnu.org/licenses/lgpl.html + +- Mozilla Public License Version 1.1 or later (the "MPL") +http://www.mozilla.org/MPL/MPL-1.1.html + +== END LICENSE == + +This is the "File Uploader" for Python + +""" +import os + +from fckutil import * +from fckcommands import * # default command's implementation +from fckconnector import FCKeditorConnectorBase # import base connector +import config as Config + +class FCKeditorQuickUpload( FCKeditorConnectorBase, + UploadFileCommandMixin, + BaseHttpMixin, BaseHtmlMixin): + def doResponse(self): + "Main function. Process the request, set headers and return a string as response." + # Check if this connector is disabled + if not(Config.Enabled): + return self.sendUploadResults(1, "This file uploader is disabled. Please check the \"editor/filemanager/connectors/py/config.py\"") + command = 'QuickUpload' + # The file type (from the QueryString, by default 'File'). + resourceType = self.request.get('Type','File') + currentFolder = getCurrentFolder(self.request.get("CurrentFolder","")) + # Check for invalid paths + if currentFolder is None: + return self.sendUploadResults(102, '', '', "") + + # Check if it is an allowed command + if ( not command in Config.ConfigAllowedCommands ): + return self.sendUploadResults( 1, '', '', 'The %s command isn\'t allowed' % command ) + + if ( not resourceType in Config.ConfigAllowedTypes ): + return self.sendUploadResults( 1, '', '', 'Invalid type specified' ) + + # Setup paths + self.userFilesFolder = Config.QuickUploadAbsolutePath[resourceType] + self.webUserFilesFolder = Config.QuickUploadPath[resourceType] + if not self.userFilesFolder: # no absolute path given (dangerous...) + self.userFilesFolder = mapServerPath(self.environ, + self.webUserFilesFolder) + + # Ensure that the directory exists. + if not os.path.exists(self.userFilesFolder): + try: + self.createServerFoldercreateServerFolder( self.userFilesFolder ) + except: + return self.sendError(1, "This connector couldn\'t access to local user\'s files directories. Please check the UserFilesAbsolutePath in \"editor/filemanager/connectors/py/config.py\" and try again. ") + + # File upload doesn't have to return XML, so intercept here + return self.uploadFile(resourceType, currentFolder) + +# Running from command line (plain old CGI) +if __name__ == '__main__': + try: + # Create a Connector Instance + conn = FCKeditorQuickUpload() + data = conn.doResponse() + for header in conn.headers: + if not header is None: + print '%s: %s' % header + print + print data + except: + print "Content-Type: text/plain" + print + import cgi + cgi.print_exception() diff --git a/fckeditor/editor/filemanager/connectors/py/wsgi.py b/fckeditor/editor/filemanager/connectors/py/wsgi.py new file mode 100644 index 0000000..9b6c432 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/py/wsgi.py @@ -0,0 +1,58 @@ +#!/usr/bin/env python + +""" +FCKeditor - The text editor for Internet - http://www.fckeditor.net +Copyright (C) 2003-2008 Frederico Caldeira Knabben + +== BEGIN LICENSE == + +Licensed under the terms of any of the following licenses at your +choice: + + - GNU General Public License Version 2 or later (the "GPL") + http://www.gnu.org/licenses/gpl.html + + - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + http://www.gnu.org/licenses/lgpl.html + + - Mozilla Public License Version 1.1 or later (the "MPL") + http://www.mozilla.org/MPL/MPL-1.1.html + +== END LICENSE == + +Connector/QuickUpload for Python (WSGI wrapper). + +See config.py for configuration settings + +""" + +from connector import FCKeditorConnector +from upload import FCKeditorQuickUpload + +import cgitb +from cStringIO import StringIO + +# Running from WSGI capable server (recomended) +def App(environ, start_response): + "WSGI entry point. Run the connector" + if environ['SCRIPT_NAME'].endswith("connector.py"): + conn = FCKeditorConnector(environ) + elif environ['SCRIPT_NAME'].endswith("upload.py"): + conn = FCKeditorQuickUpload(environ) + else: + start_response ("200 Ok", [('Content-Type','text/html')]) + yield "Unknown page requested: " + yield environ['SCRIPT_NAME'] + return + try: + # run the connector + data = conn.doResponse() + # Start WSGI response: + start_response ("200 Ok", conn.headers) + # Send response text + yield data + except: + start_response("500 Internal Server Error",[("Content-type","text/html")]) + file = StringIO() + cgitb.Hook(file = file).handle() + yield file.getvalue() diff --git a/fckeditor/editor/filemanager/connectors/py/zope.py b/fckeditor/editor/filemanager/connectors/py/zope.py new file mode 100644 index 0000000..ed0d5f4 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/py/zope.py @@ -0,0 +1,188 @@ +#!/usr/bin/env python + +""" +FCKeditor - The text editor for Internet - http://www.fckeditor.net +Copyright (C) 2003-2008 Frederico Caldeira Knabben + +== BEGIN LICENSE == + +Licensed under the terms of any of the following licenses at your +choice: + +- GNU General Public License Version 2 or later (the "GPL") +http://www.gnu.org/licenses/gpl.html + +- GNU Lesser General Public License Version 2.1 or later (the "LGPL") +http://www.gnu.org/licenses/lgpl.html + +- Mozilla Public License Version 1.1 or later (the "MPL") +http://www.mozilla.org/MPL/MPL-1.1.html + +== END LICENSE == + +Connector for Python and Zope. + +This code was not tested at all. +It just was ported from pre 2.5 release, so for further reference see +\editor\filemanager\browser\default\connectors\py\connector.py in previous +releases. + +""" + +from fckutil import * +from connector import * +import config as Config + +class FCKeditorConnectorZope(FCKeditorConnector): + """ + Zope versiof FCKeditorConnector + """ + # Allow access (Zope) + __allow_access_to_unprotected_subobjects__ = 1 + + def __init__(self, context=None): + """ + Constructor + """ + FCKeditorConnector.__init__(self, environ=None) # call superclass constructor + # Instance Attributes + self.context = context + self.request = FCKeditorRequest(context) + + 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 + + def setHeader(self, key, value): + self.context.REQUEST.RESPONSE.setHeader(key, value) + + def getFolders(self, resourceType, currentFolder): + # Open the folders node + s = "" + s += """""" + zopeFolder = self.findZopeFolder(resourceType, currentFolder) + for (name, o) in zopeFolder.objectItems(["Folder"]): + s += """""" % ( + convertToXmlAttribute(name) + ) + # Close the folders node + s += """""" + return s + + def getZopeFoldersAndFiles(self, resourceType, currentFolder): + folders = self.getZopeFolders(resourceType, currentFolder) + files = self.getZopeFiles(resourceType, currentFolder) + s = folders + files + return s + + def getZopeFiles(self, resourceType, currentFolder): + # Open the files node + s = "" + s += """""" + zopeFolder = self.findZopeFolder(resourceType, currentFolder) + for (name, o) in zopeFolder.objectItems(["File","Image"]): + s += """""" % ( + convertToXmlAttribute(name), + ((o.get_size() / 1024) + 1) + ) + # Close the files node + s += """""" + return s + + def findZopeFolder(self, resourceType, folderName): + # returns the context of the resource / folder + zopeFolder = self.getZopeUploadContext() + folderName = self.removeFromStart(folderName, "/") + folderName = self.removeFromEnd(folderName, "/") + if (resourceType <> ""): + try: + zopeFolder = zopeFolder[resourceType] + except: + zopeFolder.manage_addProduct["OFSP"].manage_addFolder(id=resourceType, title=resourceType) + zopeFolder = zopeFolder[resourceType] + if (folderName <> ""): + folderNames = folderName.split("/") + for folderName in folderNames: + zopeFolder = zopeFolder[folderName] + return zopeFolder + + def createFolder(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 + return self.sendErrorNode ( errorNo, errorMsg ) + + def uploadFile(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 + return self.zopeFileUpload(resourceType, currentFolder, count) + return self.sendUploadResults( 0 ) + +class FCKeditorRequest(object): + "A wrapper around the request object" + def __init__(self, context=None): + r = context.REQUEST + self.request = r + + def has_key(self, key): + return self.request.has_key(key) + + def get(self, key, default=None): + return self.request.get(key, default) + +""" +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.zope as connector +return connector.FCKeditorConnectorZope(context=context).doResponse() +""" diff --git a/fckeditor/editor/filemanager/connectors/test.html b/fckeditor/editor/filemanager/connectors/test.html new file mode 100644 index 0000000..14e5470 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/test.html @@ -0,0 +1,210 @@ + + + + + FCKeditor - Connectors Tests + + + + + + + + + + + +
      + + + + + + + + +
      + Connector:
      + +
      +     + Current Folder
      +
      +     + Resource Type
      + +
      +
      + + + + + + + + + + +
      + Get Folders +     + Get Folders and Files +     + Create Folder +     +
      + File Upload
      + + +
      +
      +
      + URL: +
      + +
      + + diff --git a/fckeditor/editor/filemanager/connectors/uploadtest.html b/fckeditor/editor/filemanager/connectors/uploadtest.html new file mode 100644 index 0000000..16d4ba4 --- /dev/null +++ b/fckeditor/editor/filemanager/connectors/uploadtest.html @@ -0,0 +1,192 @@ + + + + FCKeditor - Uploaders Tests + + + + + + + + + + + +
      + + + + + + + + +
      + Select the "File Uploader" to use:
      + +
      + Resource Type
      + +
      + Current Folder:
      + +
             + Custom Uploader URL:
      + +
      +
      + + + + + + +
      +
      + Upload a new file:
      +
      + + +
      +
             + Uploaded File URL:
      + +
      +
      + Post URL:   +
      + +
      + + diff --git a/fckeditor/editor/images/anchor.gif b/fckeditor/editor/images/anchor.gif new file mode 100644 index 0000000000000000000000000000000000000000..5aa797b2240a432d9f3f1d166ed5542eaf684937 GIT binary patch literal 184 zcmZ?wbhEHb6kygJ|Uu&?oD;%Ae!z@09(NL_hv#6Slx0y!YR{?r|LJZgAju=f-$sQVWNL{+Tsz18#+~Ke%+zTWns()WcPwy8dQcr!JH# U&i)o#0r5dH3``s@d}5hzR)=UXSOWn0FbS~$ literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/arrow_rtl.gif b/fckeditor/editor/images/arrow_rtl.gif new file mode 100644 index 0000000000000000000000000000000000000000..22e864984dc8be2445bc66780300651610c029b3 GIT binary patch literal 49 ucmZ?wbhEHbWMN=uXkcW30L7myKqe!D4u}hqVPN9uDdaf4E0als!5RRbfd=jX literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/angel_smile.gif b/fckeditor/editor/images/smiley/msn/angel_smile.gif new file mode 100644 index 0000000000000000000000000000000000000000..a95e053715347debd916ed191a9411a81b97c471 GIT binary patch literal 445 zcmZ?wbhEHb6lM@+xXQrr9|(Sb_<#TZmHYqCocVv?&VeiY|Nox>6kYZI{;DhYSN-3= z>dO9A|L3o|GJn;A1xx<_5B+~X^veCv|NBF)><|4vKlIA{&{gw+f(-xnGhErv@P9tT zmH7<+>qA!oQGDns`_TXO46A_1o}s=zG!%&9LqqLD>*X1!0u+C;aB?uPGw6U!1Nn)8 z?bdpKkHzGr_?|tkP*zrwQ_#3s<;%KVQtI0mlP5;%EsX7TQU#R>4h0^J Y+;U1?I|3RGOjWBEnPcc+z`_b-pkvvd@;YvKie|v^2_6+~!8Lr4P ztg>fVCC^YV9~vqjs%0OlB_CQZ&k!olKy{$_lZBImfrUW_WHQK43~Y}anhH85q*w@Z zCY?~pQtH=mahB4ZsXWO=sn)}7L5GWSrrWAXZBf#-E*hzc7rnDCt4=uXI$6MOYZkA7 zfHH%Mpn#yD91BN!TMQe&3S(QIgrF>Eh4NH+zCdLzW@Y|PK~Kr_#idOOiahP&f)e6l zGW^QiN=x~9g)-tcCyT}+GB%Uce!hTiF?^;x8yJG>gSwKrZG0 z6C=Cw454kTES%E(B9T)Veznhd;v^)Jw)f;D)r6LG-(v@w*>vZyl=!x&dU75dX)&5lr z7A#pce^o<6!~gnKSL#=-s$ccLKJ-d`=>Pc8EAgSL>O)t>hyJ$@y<#8wUp{n|edsEA zpcKQEc!vM>3|H(K{>w95k!M&X&p;!f_>+Z`gMo!X2V_3TPYi5F9GVI|bfo%EJZwBP zMW(}hV%sN?Af<`tSb}Y19K`$CjTLMJ*iN=MCkkjtUr;Yu*rM>hS&T$tHgPEt`JS%OQ5vpPyxUWh@crCCHyjLVyizh^ENYqG*rDc)3mp=#k? zVIIaL2{~y|9ww)496~a}qFjO!5(*N$^)5U@JtExRGIH{lQeC&zaPi6Pzvm$)bhCEZ mWzYI7SuyVWo-7RPPX)NXxr&Ls`^766;Qv5?!M%xr!5RS2k9cPQ literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/cake.gif b/fckeditor/editor/images/smiley/msn/cake.gif new file mode 100644 index 0000000000000000000000000000000000000000..f6489d7d59dc8dba08fb248e9b0a6182695f5e01 GIT binary patch literal 453 zcmZ?wbhEHb6lM@+xXQrr9|(Sb_<#TZmHYqCocVv?&Vgm8KK!2n6kYZI{;DhYSN-3= z>dO9A|L3n-wSU!u1xr@VU)9jiu&REQR{Sb0`&C-p5cl;Lw$W{eSD~vJ&68_N$gbeS zDhzroJfdsAFGyRV`i=9}4E~kM(rnrlo;*^G!jf71T_V!b{BAlt96Wqt^`f_P;a`ABWE2>Fv+}!NAO*1LA<}WMJL@K%tNMpb3xTy2pofx;E|L)fVEFIb0LGhDBCiZMJEM zF6+Th3MWL`k0+aDo|R*0Nd3-{k*VZ%X3__r<8zOcJXByw?RQD%{;r^-cQVoJ+d5IP zNPYnxL4HdERv%vLu68{hzM9F_#?u5_eW&@)HWt(q| z%*7`&Nm6ozm-R1u?j2Sd7c&_b*U>lynMHL7Yg&A PG*b->VrSA(WUvMRUk7-C literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/cry_smile.gif b/fckeditor/editor/images/smiley/msn/cry_smile.gif new file mode 100644 index 0000000000000000000000000000000000000000..0758f429e95b1fa75f3e54b731fab507ab9318bd GIT binary patch literal 473 zcmZ?wbhEHb6lM@+xXQrr9|(SbxN`shnKSnzaM(#e(3-Gp;v%te(0+Gp{wQt1sVSD zXSf1H^BGpvhpvhbU1cA-s-9t0Ji{t`hWh%@`uNaLdmzbBZ_hv>Q2fcl$-%(RpaU`o zp$RRi*^+&@(=1KgLMhldk9yB&+Cz$0#Ola^FV6X-N Dk$IbY literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/devil_smile.gif b/fckeditor/editor/images/smiley/msn/devil_smile.gif new file mode 100644 index 0000000000000000000000000000000000000000..15518d7f05408c0c00be035fbbeb20001878807b GIT binary patch literal 444 zcmZ?wbhEHb6lM@+xXQrr9|(Sb_<#TZmHYn>+&S=n#{Vn(S6!LEYSsQ#tLCq2XlS@n zziL(eDy{nep&$|{75cwE^h$l`|M<`=@u92gLs!Lz{+Z`gMpPn2V^+NPYi4~4>Vm^Bq-G@-}NwJL4y#>vI`qF zx-6f?_xO}ajSc5wRpw1HOIW#=RsGGdoB5=r`DK8K+@91(gD1M;%F0SYLL$w|QeqrQ z@~r}bf=YtQf+7;~0dDNVLV~ReCJHJq|Pj?=;e9q-^_#2|zdIKUYk(Fhu#F*HOF1Rxj!p#lZephOfzAQ~c(1PMrn zL=-^*ilGn`5TJon5v^)56{-_;P-p6>jc5aHOdDzt4bWg3s4A*ZHC1X9jnHTssYx_J zlWC$B(E=@|g-WSIDNRWeF@cGh(43fqIWtFV#2Q#**3g1jfCaNqHFYeQS`}Lqi?C=G zX-O=>l3Ah^u>vb*g+?*LXhvp{EXZP6n4M&Y>?}LxMskDPSZTUD_vb*4gENHbg+BVsnt8;-p&V4KfLVx>nDcC z?z^Mww?A&{pZsFuucY> ztow=MFWxoP-u2J+zjwWK{LsnSJ?p0K{%pFpr}Mzb?SA9j+u!dzHUIdk-Q&01w6$++ x$nQS$<_Jd59(ixz-PXe952gkkx~}V(@%^?x&i-=4>46{K8TW_Vms}&8{s+7l5EK9a literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/envelope.gif b/fckeditor/editor/images/smiley/msn/envelope.gif new file mode 100644 index 0000000000000000000000000000000000000000..66d3656147a0f70d36c65ea44a0ee1577fc5832b GIT binary patch literal 1030 zcmW+#U5FM$6g|dTZhx$PAq3H^i})~wp;2T#3{jc}!4lof${kBv77<#ghsuY$pT!ck zJ=GUm56uRPu-AvohoEQ~_a$@tN~B2$jCt@uiUOlBBIq=`2Znow;czeKo_TD~t_OC! z&_M@(V+B*IXKJ-fwcFGR&RjZkV)?2M<^z3%kK&{GNU!iJUd=0gf=}X;`9z=Lv-oU2 z(^vQ^zM8M}gr|6#Cj}6QzyuTraU#ydQ35201d~9CkSG#OB1Iu8q9#g7kR*~!5+y^j zNH)oo3aKL1q*4f>2u(-@w5eeVs)IUFXX>Z{8bpI>phjpEji!;RP!&~Er6y<+O{R&O zp;o$JN*Z7ggBfTJ=ER(tqXk$H3ub{9VNooa#inUviK#WQC0G(m zW{H+zSuC4nT7^}yYF254QH*9}0SctR3RoP9lj5v6mVgqZ1S^3hqC_dtN@P(Km7-RZ zC7~oK$x33$C|OFjl36NBl~S!#7NSrJt&l5rw$2W8Le~fxz#t69Kt?bMqcO7CO%c_#tEJV(8aDkiFt`rqaCdub zKcWMyyNve+@7R56Zt2bGn+G3!ZK!+K#1AJHzC1fQeBH!Q`r?i0nUO~Z`X4`Wbo!53 zd+E-bMn>0u_v2?zot<6SzVnq$OTBCV{W5d$$=>7 z=WoC7##_3N4t)C6@Y`D^XBPLBtxx}ae0b^PzJo`$bpHCax43uk)UKoN^cFtpj*Txa zUpxNMbBhN$n}_B<`2DBTFQ5N>|N95}`@3Tsx848k-qVMcp1tAl`Xd*&Um19D!^C<& zI&|gS?Aq5aj9lJ!=$?ZcF8w+3&DY(x9^TX0{M*j!kIkL*x6Y66?oD>rtieP717~&l A`~Uy| literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/heart.gif b/fckeditor/editor/images/smiley/msn/heart.gif new file mode 100644 index 0000000000000000000000000000000000000000..305714f889555d11032bb7a07bff522f5f854acb GIT binary patch literal 1012 zcmW+#U5JoH6g`r{F8w^T{ScHNVN_0O%Wi}gG@@ZYSO{^55E%toF!CX?p3=LTML#cv z3N5kC(vQh~>d7D<#xTK_g%AdVPzE6qgTSDuE$B4sf#IHEINZy*XP$g|^Sbpr$1sM! zu!QMrXZl*1?zibBoVsx8*!-~%BV>l`AuAMw!caUEg@(`= znun$!1Tn~iM1UaSggAf$IXDL~f{~2QC?+tG$(ck0jWnl;8O&sMX0d>UEY2b}u#wH# zM1dmZlnk)0h8tu9Y@iKpgDk=#ExJWnf+bpVOEQBQ&D>0uVVRcQvaG-gt+*9ggEd-n zYcin^Wpa}oaM0ln`2Zj2gZm(l@JNsDQJ&z5p4?N{^s(sXUF;d2>DfKY3%t;adyzMI zqc`^^7hH6?OBJYKg;%H!r~~WZbx@6{ku`dastGl*Ca+1=P>t2RnrcSPtl4W;EvSXH zcrB_8wXrs@O;xC3l~-xW&fa-|25RU;icqAYD@qAURB|PCyJeJl_eB}XRCZ;lK!qx< zA~mQ{&DA9J75Tz~w4h08N}5@s-P67{!n~V{3}hlZvQU6R6h{#n(1_+}>N)C`2Oxj} zohS?l1H<59P>2YT`uFPG+~+;g>N)Rq>CcysZg_8D;=iBHj2&LH{iFSh2cMsK@xH0EZ;$@AeD9BIwtT&L>gIdKZ+YhE z?EV#dUV4A`%1w{lKC$Z9k;CV=Kfdq$`mGPo9N)UyMlYV({lb=Y`)=T>zi+$ac$yu5 z>%xl5({m^8-L(48TPMcuiU(g_`Nqeue75%VJ2(Ea`s4#YTsm~!?`OYw^`Xg)oEg73 Zx%`_QpFEehjXkm9*%NyXEL(=h{s()1^AZ36 literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/kiss.gif b/fckeditor/editor/images/smiley/msn/kiss.gif new file mode 100644 index 0000000000000000000000000000000000000000..f840ea602cc02693e97a5cc3b3453f7c39dc2abf GIT binary patch literal 978 zcmW+#O=uoO6dXz`iDG;BE~yBMAXFDcLM|~{mNZr)h#u1Mx&|Z%5xf{_6@011ix>ZT zP%vx?wdgDUL9en=+e6!U+k=R>7o`@8^j4&Yag%}N&9V&dF>m&{=bxQ_a&>|U?qC-i zduL;>Y>eB+F1G*JzHse!OdgYBM$C-aV^%aoV>FMZSP%iCNYDV%+4$tXrwt!EMOsvvxpU}WOY`tgPrWoE(#PW zr(}Q)HQXQzus{oLL6%^NmfVso!!j+qWtqW@W^N`cutFl?SCJ}Isp_gyhdR|= zUD8;Q@9aoBnv>R~&v)tYbgYdqALgO}g(!|9RG<>oQH2h4qC2`qj)vtCh+xDZiUBb& z29H58AtvhX?X9izBhnfR;n{TeaedVLWbGgp1|9t7<$|GlHmS*oBpPekfaQ{mOU!VHq z%O_r)pS$@xXFuG2`qaXy%fH;}>7C_s2Yy|;dH(u~_2su7SUa?MY4z;MwQKFj;eCsz z-+T9q*WQ@9`oZSGsW@}*g>N?>UO({Tk$+YfR~F_zzI^t^_R*#3<5#Ynxbf#v-pBX9 bnSAx{vD59u;bX7d`Qh*DpB=hqKc4y@%md%w literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/lightbulb.gif b/fckeditor/editor/images/smiley/msn/lightbulb.gif new file mode 100644 index 0000000000000000000000000000000000000000..863be6e51ca72e7855147df62c8506d60eb0e9c8 GIT binary patch literal 303 zcmV+~0nq+ONk%w1VG{ro0K@TH# zs?@)#)Ss%Vzp9|1q^h5)fPjF1pQ``=RsY{r)W22KpH-@#Re*p1s()3gUsbAq0DoUq zRbN#qUsY8$YpNh5b^ri)7!6Y-7!y`)016uqFe(KY6j=cl8xE0E1rUA+7>@-~Q!IT#nJE_w zB{-u84;&B>91mOz7%&7W4h{wm9)?JpBn}Yz9GcS0a>OJd06W)^ BeUJbE literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/omg_smile.gif b/fckeditor/editor/images/smiley/msn/omg_smile.gif new file mode 100644 index 0000000000000000000000000000000000000000..aabc7fd17e0f09bcb73ac9e200a626f3068d778e GIT binary patch literal 342 zcmZ?wbhEHb6lM@+IKsg29|(SbxN`shfjbA5o%-;9#{d8KS6u<3{i{~ZU)9ji@c)14 z|NEg=?uY*0A9@9d=7+AD4-{eezn|d>5Y1<3Xkb`XAG)fZVO2aseSK)XJPQK z;!hS%4hB{R9S|2}Cj;x{1jWAAhc=sud8brn*#y@mnaV6C}`I17`wg@}N%$RQqaCWbT-Ve$P+Y-U0{8zn9>2=E0PaO_?wEX7>7 eIK)7SUzA^1KvGIVfcc#rhu~ihrgu&Z4AuY%yn4<6 literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/regular_smile.gif b/fckeditor/editor/images/smiley/msn/regular_smile.gif new file mode 100644 index 0000000000000000000000000000000000000000..33f297e818c0fc7cc4841272301963c3344ad373 GIT binary patch literal 1036 zcmW+#O=uoO6da1sM2c1t@KW5Spwg{)Xhmv0Y*TEt@nHHjPejBuAxR+zp*Mxfi;9g( z1fil;k^O9&5TAlrr3XE14nZ^x7Qz<%DQxvp6vSLg4Iai#29`I=GQ7vU*~gC_+5gCB zANp_$8<^fa)0<_w-KICNcx`chdCdp&fj+`V@zH#wS9le#=9NCdC-KRAqR;SId^Vry zD|{7S%~yKDQ#{R+0tiH40*Zq;5oh8k0TM)lNuWeX6p1F0q7W5P6Qv|b5=kbBk|9|n zn`BCbRFP^@DTGjjCZqz|)G!6rL7k{Gb<_Y2qQNv!BQ%Oe(@0gQimItn6Euk?(?reC zESgO-wL+_CHLX;l4W%?C4KRqo3^WIGV$RIb0xXCHvp|cmC>G6P)3mX~)SB25EQuwv zM9Z)&md!G)!m3y`t2DwWMl-Si1yW!IEDpsq{5 z=mUEG#F^e5XSefY0{KOFmg zabmS|v-iEBaXa`*XZN0~+sC@fEr+*_UwOVevC!#V`g!Y#^v+@4JbCGh{)gVZ@^5$e z+hbEdOBt5b@1b<`QtNpj1BL- z_s;SA&Yavm{AIlH_xY($KkxM1|JRE{-;IrS=B{tKaeVpwKd;#f?|0sq9zBRh{|CYs B0q6h# literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/sad_smile.gif b/fckeditor/editor/images/smiley/msn/sad_smile.gif new file mode 100644 index 0000000000000000000000000000000000000000..dfb78efea7fe651c7ba84aaf2fb3ee19aa8f8efc GIT binary patch literal 1039 zcmW+#O=uoO6nwQRZIK#H1fzu|Dwr(MOGWDMT7PQPprK?ygSd!RrQSS9!NNz@umN&~XyvMxRC!gB2 zrCa`%HH@#H@%1v^ZsTj1|8@Sv!m1DE1AP=9;iLITui_P6%`1HppWu`EM4!cH_-sDY zSMe3Tny>T}Pk5RqAp!x!AcPY*z!@A71OW(!Ktw?Vq9GD0P(TezBtZg_ArV=Sfo#Y` z6;z-aDnS7O8b}qK^VYb3}h5WFd8G9-BeJm`NAYj zU@|5$3p1FFnXJMJR%0dER%A;{rX!EqK4Wib}l_ZiN$s|#-NQPvSOsOIj zQcWsbj+*6O#0$JMLhr;ocxT?x2k`;CvfAlPw@9<)yeZa8tBp1E{d@K1O>$NS+hh9? z-6ES-Rlqd^@^-?C#r_yKZwm!~cAF_^;2d-_o;x>+a#-FTc>)*MHR$4^B*dzkSb4 zr}x77KWdoiy7Kef#NJ+yfxc^JFOIJK`0!%qLvLR^*ZJVajb~RT-o7yO)z-PGEw6T6 z8alYJd*Gv!zSj<&8kw9reRTAv`RV`qAAkPx&A&Y|GqimCNblaxf$42;Jv+DbX8-*s z9vZu2^65)EKV2C4dT{vMO#`35^vXMTT{Cg->Ct1)d^dRJlb&}cHXc8D_|_rZ^WKIH G^1%P79RflC literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/shades_smile.gif b/fckeditor/editor/images/smiley/msn/shades_smile.gif new file mode 100644 index 0000000000000000000000000000000000000000..157df770acd36cbd49f1fd80da2cd9251ef52626 GIT binary patch literal 1059 zcmW+#U1$(g7(K4lexM&2lQyE;9zwhr%_Om+ZYHP`VOD+#v$`fMEqcj%TE@4cKpKIh z7DaSd*wSx7AQU|WSExp7+o5>2LwnxR=V zn`UZ-R?%u&sYDw}X-XPk5Q7!E=Subuy9^*i@( z+0Yaxc8=Y0pTD>?^y#jFbuV?{tI4j>TPN4t_Rv3_yFVGd16_wZHXr@-@u>-1S^wPJ z+V^JP$L^6Yd#88Kj(@lR)XS@;54xkna{0*2t^pf=@d3Fw*nMEy-@Etjk4Nl!dwp=k z@4LLI-yNFY@y7Fy93Niy@HJ`a!p8lFe>wBY>YIQ6d1>h6-m>Pw7w*I#`^G=qadPnV z#JO4Jl@k+Fmu~dq@AiD)UtK%(%#WWvJA2@_r#D>~pF8x{rHx-4IJ?J2w%mTTKeqkX Uj>pdQe*Mv?@9e*7RR`|*A1UAdR{#J2 literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/teeth_smile.gif b/fckeditor/editor/images/smiley/msn/teeth_smile.gif new file mode 100644 index 0000000000000000000000000000000000000000..26b5a555f834884bf75e8c64021893d85eb1fc7a GIT binary patch literal 1064 zcmW+#Uue)(7(LV&v!aqUL5VH~n{@kw)+$%vudp?o3ljYXMsO?8{plfm5TufCnhz04 zQ5gDAccIw!2_+fjOWeJLm4im!6^`Hv=F1*p{r|J_bhiVS?_4g2@8f*u_HB85W6!hg zXvd#e!r1Z|TP|buHnxPRAEr)zz2F=34Sj$Q;)D4>ukb2f%`1I`kK&{GNT1-7_+&oO z7x*H+m@o8%r+Att1rUh91QZ8xBF@B78b~A3m^73C2_nHHP!ysfYNC_~i6YS?QW7MI zB$GrbkRnn{3WX4g(1cV#s~V=DI;azMrjFV`8_~wJp$2FW4W@yrP!&~ErABBJji!;B zph+~DCTf8e(PCPtL>)?LN*Z7ggBfTJ=ER(tqcyNbtTAh70T#r9S*V&imY7-5s zsYA|&S?mV|wWop@O(-@uDjE-hFkZHZgf@btJiKQ2!SKCdczhr4dvoaU!F~Im9>+Lt zU;}fTXKu61_1oMA&R;$M@%QT?dWZ@MAu%KmNx=||!918kM#v1=LslpVg`s#T3Jsw# zG!IQd2x5>2i2y;u32^`ia&Qh}1S1)pQA}VWlQW418fi`wGnmQj%whoxS)4^|U?ZEe zi2_B+DH&j04L8UJ*gzZH23dqfT6BxD1WUB!mShGqnz@-Q!!j+qWm$n0T5&6~25YqD z)?`8-%H$?F;Gn}D@&P{32lqi9;gKHQqddVAJ-Mf@>0{B&yVx^4)3bY)7kHr;_ablb zMsMy-F1YA&mnu-f3a?NdPzTn*>!2D@BWv^;RTFArO)844$k-@Wu)9C@A2AM$evNm>cI^9! zOHYiZ+n;=I_1cA*)rHgH-0L6iI<_?Rf83t?z;TR{K(-W|7@Gz`NbnQ*MI-z&~1;Mym9TT>*Ig#xp>^C{<{CA zH{SZO-16PR_Oa*heP(`i>h0|>|M}aqpU+%;>dgM5r`CR0x%%JM4|d;mVGa-e5AP%G AhX4Qo literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/thumbs_up.gif b/fckeditor/editor/images/smiley/msn/thumbs_up.gif new file mode 100644 index 0000000000000000000000000000000000000000..7e8c74627f641e404eee62083dfbb87e8664e119 GIT binary patch literal 989 zcmW+#KWN`Y9DPI4)Fpv9=pf%V&?48UgB1Kzdu)Nf0B*!gAW%bRyY^bi#iLSjfBl7b-^gLyE8jF1_!hpbQ#3PbTw6dFQf zXdaq^5X2x45&?pQ6XF04E18g7scuz@zX4YCM}wCEOP36^NdEy)aKG;=dqhGklI%d!G1wBlA|4c2JQ zt;vKwl*vtUz(I#Q)m{6<(n_pbo5q*FiO+M%L&xswULLn!F}eLp4_OYN{DEvu3YZwV)Q( z;n?! z(22r;Ffa@r28Dp1++frDeXf$9F(f5ap(_6_AUbuJF=PtkX z^ts2Myc#~6`uy~dvtQ3|&5w_^UbsK~`}K_z$Jb{LeYJZ1N65z>EI_TNaT&eTaf@e+=`Q!P1ARvuh6-4a=c@P)BfCWUJ^Q=%q0E{DPF) zOJ#%>)Lr2g`_#kOV-H=+QF9w)deaKwg49F4w1TK8JKgQT<#R5V!{@{KocqwjJA1bb zwa~(!SVVj2w3kY|-r9>eb?Maj?1J;=JY9eb;)1zAr*JAx%_&`ki{hfWNSEM}xMVKT z6}TdRP5Y&rv_*c4W@yrP!&~ErABBJji!;B zph+~DCTf8e(PCPtL>)?LN*Z7ggBfTItPyL>8k&cBF>mH+0T#r9S*V&imY7-SO&8EuiaPyxo24iR*uydTeg=rpJ31ewZ3QcXIm+Cq_Qp@$|%PJ9BT(JD(gm+uMKX z?%xi$BiHQxqr2mg%bR7xrbpL)H~Eb}boh?`l~4W}MqgjO;@*{OXVy&*A0GLyWAM7c znPs~=etvak-IYDVa|09aec!pFb^p2X?Q@sc+<5lj?DDZ=%iKK<66 zuUvU>+vcCXO?SmDhsK|~dA*z&_~rfmtJXw!;P|pVe?7k=9$a;N<1KG~-1^|liT<&^ z-uCW^zL&RdY+YFY#?(O9wNFeBj_iJR==9O6AD!>)d0^jI*Tu2DUtjDQ`uz9(yN*sy cPW8RG_3G^T;g{~)XUm`QH_Wd7qK$3;1Il~_)&Kwi literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif b/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif new file mode 100644 index 0000000000000000000000000000000000000000..c0741223de8ddc366826bad1ef5db6e19e938896 GIT binary patch literal 1034 zcmW+#UuYLp82ui!bObFoBPF;7NpVpKjaWro6Q(GV{n>db;W}llm!9hV+dwkbL*z{S z1K!_C#eEdS`a?u<2aU2hE7pCng8NboLSjZ>Gur8H2QJ^aTn^vI`Oe+DZ%^OjgFVtC zw`2t)t7l}jjI`Ux3Z{RZzBIe&gZV%o#YgyPKGLgrg;(=RpTsBlWIoYn@fkjw&-7J% zg|Fr-J;f8A=1GV^05J&R1P*WpM+89tf*}x55P@ijgbEZ;gAz%QfMiHS7GxkBGEoH; zsD?^VK!65PMYO5KRH#nWL7l0i2GIZwrhytoBQ%;us){O9O_iEN6EvA7Y8K7VY?`T6 zv_h+CrBd2ZN>kEAOkiRrG$-a@&dkw*SbznyK#O7#7R_SQw6S1nO>9Xl!ID{`Ww8v) zW|>ySDy*7S8pQ~s8CgV%pokS=aZ((Lv*K8Slzk z)-A~R`uk7c_4Cxg)y_SK`WCNG4bNYA>b28j6T5KW+0MgTpL@~wZo>9s-#qy4-rnwu zul{{yX5-W2^PT>ak8S^bX87Xf{V&~n`QVoE?iZGBe0-xbJv4v&^V@fRcyMNT^wbw! zzioTy(KknzC;nOJJ(Bdm^4cdZ|1tRdMCB!-HH09+ zTH73C6PjvyHV4yM#LEW6LrrQCR>2}HCiLq1NYs2$CKUY z#-CWj==vF5FQe@?x`xH?7eDxN#Rv0&KEg-w(R`#=conbal|I2I@yUFm&+u7%HlOJ$ zd=+2KS9-!zJk65=2t;54ii0>2XW}RU5=4SYphQR%i6)Vv5EW4qr6foaNhXPsAz37w zWJ-lpk!n&YgiwSgqypO1Fa^~?ov1T))Bp{l!8A}KG>S&kNL8qcs;N>FG>InDM9t7F znoTpcLaS&styH27r8FfCFo?knGzW8H&dkvQEQkfOK#Q;_7R_SQw6Vn0n%EL7i6yf{ z%djk#%`&aRs#rCvG{PuGGqL~$QeXuv4#i1vRvb$}2~vWUz!FiSlxQWgD2hr^E6S2k zl9Xg6v1F7iC0ofX6{Sk4Rw@foD1}zYH9K2p2Rfl^gbZL124f&27=_Uo+3cnY)tWC% zU=k){A~TqU*_g=+R$(<(l5It{yi6|hW^xZXy+)g-ZEXUzW-bzt1j&$y3}itzWTFC9 zPz{wWN6m5%c!)-W2Pl)y5h&|J~8miIcdYJ+>dw z4RoHvzOE||UV3I>aB1ed?TgoJy!-Xn`e*K6J^Djm@7Ul~Bc1a@HrRdro!bshJazB0 zr{@k2^_<_8COZzyzPtDQ?l128bKD2bK=fI8I4<9|pSPp%%AN4WNzQYZ^s6QAD-R%?S{wt-q`!#*In1%_Iuycb1!YY=gq&S7Y0VoPWjd8 z=iQ?h&(3}}`RS&#b$I5XpAMa!wSkZJZ+_yH!O|edsbh*WoF>W*oTi?c3uA# L=^WkAfo=Z-Q#A*W literal 0 HcmV?d00001 diff --git a/fckeditor/editor/images/spacer.gif b/fckeditor/editor/images/spacer.gif new file mode 100644 index 0000000000000000000000000000000000000000..5bfd67a2d6f72ac3a55cbfcea5866e841d22f5d9 GIT binary patch literal 43 mcmZ?wbhEHbWMp7uXkdT>#h)yUAf^t80Ld^gF}W}@SOWlZ0R#L1 literal 0 HcmV?d00001 diff --git a/fckeditor/editor/js/fckadobeair.js b/fckeditor/editor/js/fckadobeair.js new file mode 100644 index 0000000..811bd00 --- /dev/null +++ b/fckeditor/editor/js/fckadobeair.js @@ -0,0 +1,176 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Compatibility code for Adobe AIR. + */ + +if ( FCKBrowserInfo.IsAIR ) +{ + var FCKAdobeAIR = (function() + { + /* + * ### Private functions. + */ + + var getDocumentHead = function( doc ) + { + var head ; + var heads = doc.getElementsByTagName( 'head' ) ; + + if( heads && heads[0] ) + head = heads[0] ; + else + { + head = doc.createElement( 'head' ) ; + doc.documentElement.insertBefore( head, doc.documentElement.firstChild ) ; + } + + return head ; + } ; + + /* + * ### Public interface. + */ + return { + FCKeditorAPI_Evaluate : function( parentWindow, script ) + { + // TODO : This one doesn't work always. The parent window will + // point to an anonymous function in this window. If this + // window is destroyied the parent window will be pointing to + // an invalid reference. + + // Evaluate the script in this window. + eval( script ) ; + + // Point the FCKeditorAPI property of the parent window to the + // local reference. + parentWindow.FCKeditorAPI = window.FCKeditorAPI ; + }, + + EditingArea_Start : function( doc, html ) + { + // Get the HTML for the . + var headInnerHtml = html.match( /([\s\S]*)<\/head>/i )[1] ; + + if ( headInnerHtml && headInnerHtml.length > 0 ) + { + // Inject the HTML inside a
      . + // Do that before getDocumentHead because WebKit moves + // elements to the at this point. + var div = doc.createElement( 'div' ) ; + div.innerHTML = headInnerHtml ; + + // Move the
      nodes to . + FCKDomTools.MoveChildren( div, getDocumentHead( doc ) ) ; + } + + doc.body.innerHTML = html.match( /([\s\S]*)<\/body>/i )[1] ; + + //prevent clicking on hyperlinks and navigating away + doc.addEventListener('click', function( ev ) + { + ev.preventDefault() ; + ev.stopPropagation() ; + }, true ) ; + }, + + Panel_Contructor : function( doc, baseLocation ) + { + var head = getDocumentHead( doc ) ; + + // Set the href. + head.appendChild( doc.createElement('base') ).href = baseLocation ; + + doc.body.style.margin = '0px' ; + doc.body.style.padding = '0px' ; + }, + + ToolbarSet_GetOutElement : function( win, outMatch ) + { + var toolbarTarget = win.parent ; + + var targetWindowParts = outMatch[1].split( '.' ) ; + while ( targetWindowParts.length > 0 ) + { + var part = targetWindowParts.shift() ; + if ( part.length > 0 ) + toolbarTarget = toolbarTarget[ part ] ; + } + + toolbarTarget = toolbarTarget.document.getElementById( outMatch[2] ) ; + }, + + ToolbarSet_InitOutFrame : function( doc ) + { + var head = getDocumentHead( doc ) ; + + head.appendChild( doc.createElement('base') ).href = window.document.location ; + + var targetWindow = doc.defaultView; + + targetWindow.adjust = function() + { + targetWindow.frameElement.height = doc.body.scrollHeight; + } ; + + targetWindow.onresize = targetWindow.adjust ; + targetWindow.setTimeout( targetWindow.adjust, 0 ) ; + + doc.body.style.overflow = 'hidden'; + doc.body.innerHTML = document.getElementById( 'xToolbarSpace' ).innerHTML ; + } + } ; + })(); + + /* + * ### Overrides + */ + ( function() + { + // Save references for override reuse. + var _Original_FCKPanel_Window_OnFocus = FCKPanel_Window_OnFocus ; + var _Original_FCKPanel_Window_OnBlur = FCKPanel_Window_OnBlur ; + var _Original_FCK_StartEditor = FCK.StartEditor ; + + FCKPanel_Window_OnFocus = function( e, panel ) + { + // Call the original implementation. + _Original_FCKPanel_Window_OnFocus.call( this, e, panel ) ; + + if ( panel._focusTimer ) + clearTimeout( panel._focusTimer ) ; + } + + FCKPanel_Window_OnBlur = function( e, panel ) + { + // Delay the execution of the original function. + panel._focusTimer = FCKTools.SetTimeout( _Original_FCKPanel_Window_OnBlur, 100, this, [ e, panel ] ) ; + } + + FCK.StartEditor = function() + { + // Force pointing to the CSS files instead of using the inline CSS cached styles. + window.FCK_InternalCSS = FCKConfig.BasePath + 'css/fck_internal.css' ; + window.FCK_ShowTableBordersCSS = FCKConfig.BasePath + 'css/fck_showtableborders_gecko.css' ; + + _Original_FCK_StartEditor.apply( this, arguments ) ; + } + })(); +} diff --git a/fckeditor/editor/js/fckeditorcode_gecko.js b/fckeditor/editor/js/fckeditorcode_gecko.js new file mode 100644 index 0000000..c692165 --- /dev/null +++ b/fckeditor/editor/js/fckeditorcode_gecko.js @@ -0,0 +1,108 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * This 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;var FCK_STYLE_BLOCK=0;var FCK_STYLE_INLINE=1;var FCK_STYLE_OBJECT=2; +String.prototype.Contains=function(A){return (this.indexOf(A)>-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&&A[0].pop) A=A[0];for (var i=0;iC) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B=7),IsIE6:/*@cc_on!@*/false&&(parseInt(s.match(/msie (\d+)/)[1],10)>=6),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsAIR:s.Contains(' adobeair/'),IsMac:s.Contains('macintosh')};(function(A){A.IsGecko=(navigator.product=='Gecko')&&!A.IsSafari&&!A.IsOpera;A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/rv:(\d+\.\d+)/);var C=B&&parseFloat(B[1]);if (C){A.IsGecko10=(C<1.8);A.IsGecko19=(C>1.8);}}})(FCKBrowserInfo); +var FCKURLParams={};(function(){var A=document.location.search.substr(1).split('&');for (var i=0;i';if (!FCKRegexLib.HtmlOpener.test(A)) A=''+A+'';if (!FCKRegexLib.HeadOpener.test(A)) A=A.replace(FCKRegexLib.HtmlOpener,'$&');return A;}else{var B=FCKConfig.DocType+'0&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style="overflow-y: scroll"';B+='>'+A+'';return B;}},ConvertToDataFormat:function(A,B,C,D){var E=FCKXHtml.GetXHTML(A,!B,D);if (C&&FCKRegexLib.EmptyOutParagraph.test(E)) return '';return E;},FixHtml:function(A){return A;}}; +var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,DataProcessor:new FCKDataProcessor(),GetInstanceObject:(function(){var w=window;return function(name){return w[name];}})(),AttachToOnSelectionChange:function(A){this.Events.AttachEvent('OnSelectionChange',A);},GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){if (this.EditMode==1) return (this.StartupValue!=this.EditingArea.Textarea.value);else{if (!this.EditorDocument) return false;return (this.StartupValue!=this.EditorDocument.body.innerHTML);}},ResetIsDirty:function(){if (this.EditMode==1) this.StartupValue=this.EditingArea.Textarea.value;else if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length>0?'':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};A.SetKeystrokes([CTRL+8,true]);this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=FCKConfig.FirefoxSpellChecker;this.SetData(this.GetLinkedFieldValue(),true);FCKTools.AddEventListener(document,"keydown",this._TabKeyHandler);this.AttachToOnSelectionChange(_FCK_PaddingNodeListener);if (FCKBrowserInfo.IsGecko) this.AttachToOnSelectionChange(this._ExecCheckEmptyBlock);},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&&A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:var G=D.nodeName.toLowerCase();if (!FCKListsLib.BlockElements[G]&&G!='li'&&!D.getAttribute('_fckfakelement')&&D.getAttribute('_moz_dirty')==null) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;break;case 8:if (E) F=true;break;};if (F){var H=D.parentNode;if (!E) E=H.insertBefore(B.createElement(A),D);E.appendChild(H.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetData:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B=FCK.EditorDocument;if (!B) return null;var C=FCKConfig.FullPage;var D=FCK.DataProcessor.ConvertToDataFormat(C?B.documentElement:B.body,!C,FCKConfig.IgnoreEmptyParagraphValue,A);D=FCK.ProtectEventsRestore(D);if (FCKBrowserInfo.IsIE) D=D.replace(FCKRegexLib.ToReplace,'$1');if (C){if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) D=FCK.DocTypeDeclaration+'\n'+D;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) D=FCK.XmlDeclaration+'\n'+D;};return FCKConfig.ProtectedSource.Revert(D);},UpdateLinkedField:function(){var A=FCK.GetXHTML(FCKConfig.FormatOutput);if (FCKConfig.HtmlEncodeOutput) A=FCKTools.HTMLEncode(A);FCK.LinkedField.value=A;FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName.toUpperCase()];if (B){for (var i=0;i0?'|ABBR|XML|EMBED|OBJECT':'ABBR|XML|EMBED|OBJECT';var C;if (B.length>0){C=new RegExp('<('+B+')(?!\w|:)','gi');A=A.replace(C,'','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,'');return A;},SetData:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCKBrowserInfo.IsIE&&FCK.EditorDocument){FCK.EditorDocument.detachEvent("onselectionchange",Doc_OnSelectionChange);};FCKTempBin.Reset();if (FCK.EditMode==0){this._ForceResetIsDirty=(B===true);A=FCKConfig.ProtectedSource.Protect(A);A=FCK.DataProcessor.ConvertToHtml(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1>');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) A=A.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);var C='';if (!FCKConfig.FullPage) C+=_FCK_GetEditorAreaStyleTags();if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+=FCKTools.GetStyleHtml(FCK_ShowTableBordersCSS,true);C+=FCKTools.GetStyleHtml(FCK_InternalCSS,true);A=A.replace(FCKRegexLib.HeadCloser,C+'$&');this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(A);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;FCKDomTools.PaddingNode=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;if (B) this.ResetIsDirty();FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C,D){if (!D) FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};if (!D) FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (FCKBrowserInfo.IsSafari&&FCK.EditorWindow&&A.IEquals('Paste')) return 0;if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else{return FCK.EditorDocument.queryCommandState(A)?1:0;}}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},Paste:function(A){if (FCK.Status!=2||!FCK.Events.FireEvent('OnPaste')) return false;return A||FCK._ExecPaste();},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) A=FCK.TempBaseTag+FCK.GetXHTML();else A=FCK.GetXHTML();}else{A=FCKConfig.DocType+''+FCK.TempBaseTag+''+FCKLang.Preview+''+_FCK_GetEditorAreaStyleTags()+''+FCK.GetXHTML()+'';};var B=FCKConfig.ScreenWidth*0.8;var C=FCKConfig.ScreenHeight*0.7;var D=(FCKConfig.ScreenWidth-B)/2;var E='';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A;E='javascript:void( (function(){document.open() ;document.domain="'+document.domain+'" ;document.write( window.opener._FCKHtmlToLoad );document.close() ;window.opener._FCKHtmlToLoad = null ;})() )';};var F=window.open(E,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+B+',height='+C+',left='+D);if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){F.document.write(A);F.document.close();}},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){FCKCommands.GetCommand('ShowBlocks').SaveState();if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();D=FCK.GetXHTML(FCKConfig.FormatSource);if (FCKBrowserInfo.IsIE) FCKTempBin.ToHtml();if (D==null) return false;}else D=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetData(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},InsertElement:function(A){if (typeof A=='string') A=this.EditorDocument.createElement(A);var B=A.nodeName.toLowerCase();FCKSelection.Restore();var C=new FCKDomRange(this.EditorWindow);C.MoveToSelection();C.DeleteContents();if (FCKListsLib.BlockElements[B]!=null){if (C.StartBlock){if (C.CheckStartOfBlock()) C.MoveToPosition(C.StartBlock,3);else if (C.CheckEndOfBlock()) C.MoveToPosition(C.StartBlock,4);else C.SplitBlock();};C.InsertNode(A);var D=FCKDomTools.GetNextSourceElement(A,false,null,['hr','br','param','img','area','input'],true);if (!D&&FCKConfig.EnterMode!='br'){D=this.EditorDocument.body.appendChild(this.EditorDocument.createElement(FCKConfig.EnterMode));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);};if (FCKListsLib.EmptyElements[B]==null) C.MoveToElementEditStart(A);else if (D) C.MoveToElementEditStart(D);else C.MoveToPosition(A,4);if (FCKBrowserInfo.IsGeckoLike){if (D) FCKDomTools.ScrollIntoView(D,false);FCKDomTools.ScrollIntoView(A,false);}}else{C.InsertNode(A);C.SetStart(A,4);C.SetEnd(A,4);};C.Select();C.Release();this.Focus();return A;},_InsertBlockElement:function(A){},_IsFunctionKey:function(A){if (A>=16&&A<=20) return true;if (A==27||(A>=33&&A<=40)) return true;if (A==45) return true;return false;},_KeyDownListener:function(A){if (!A) A=FCK.EditorWindow.event;if (FCK.EditorWindow){if (!FCK._IsFunctionKey(A.keyCode)&&!(A.ctrlKey||A.metaKey)&&!(A.keyCode==46)) FCK._KeyDownUndo();};return true;},_KeyDownUndo:function(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.TypesCount++;FCKUndo.Changed=1;if (FCKUndo.TypesCount>FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}},_TabKeyHandler:function(A){if (!A) A=window.event;var B=A.keyCode;if (B==9&&FCK.EditMode!=0){if (FCKBrowserInfo.IsIE){var C=document.selection.createRange();if (C.parentElement()!=FCK.EditingArea.Textarea) return true;C.text='\t';C.select();}else{var a=[];var D=FCK.EditingArea.Textarea;var E=D.selectionStart;var F=D.selectionEnd;a.push(D.value.substr(0,E));a.push('\t');a.push(D.value.substr(F));D.value=a.join('');D.setSelectionRange(E+1,E+1);};if (A.preventDefault) return A.preventDefault();return A.returnValue=false;};return true;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML=FCK.GetData;FCK.SetHTML=FCK.SetData;FCK.InsertElementAndGetIt=FCK.CreateElement=FCK.InsertElement;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+encodeURIComponent(A)+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return decodeURIComponent(B);};function _FCK_MouseEventsListener(A){if (!A) A=window.event;if (A.type=='mousedown') FCK.MouseDownFlag=true;else if (A.type=='mouseup') FCK.MouseDownFlag=false;else if (A.type=='mousemove') FCK.Events.FireEvent('OnMouseMove',A);};function _FCK_PaddingNodeListener(){if (FCKConfig.EnterMode.IEquals('br')) return;FCKDomTools.EnforcePaddingNode(FCK.EditorDocument,FCKConfig.EnterMode);if (!FCKBrowserInfo.IsIE&&FCKDomTools.PaddingNode){var A=FCKSelection.GetSelection();if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.collapsed&&B.startContainer==FCK.EditorDocument.body&&B.startOffset==0){B.selectNodeContents(FCKDomTools.PaddingNode);B.collapse(true);A.removeAllRanges();A.addRange(B);}}}else if (FCKDomTools.PaddingNode){var C=FCKSelection.GetParentElement();var D=FCKDomTools.PaddingNode;if (C&&C.nodeName.IEquals('body')){if (FCK.EditorDocument.body.childNodes.length==1&&FCK.EditorDocument.body.firstChild==D){if (FCKSelection._GetSelectionDocument(FCK.EditorDocument.selection)!=FCK.EditorDocument) return;var B=FCK.EditorDocument.body.createTextRange();var F=false;if (!D.childNodes.firstChild){D.appendChild(FCKTools.GetElementDocument(D).createTextNode('\ufeff'));F=true;};B.moveToElementText(D);B.select();if (F) B.pasteHTML('');}}}};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;if (FCKBrowserInfo.IsIE) FCKTempBin.ToElements();FCK.InitializeBehaviors();FCK.MouseDownFlag=false;FCKTools.AddEventListener(FCK.EditorDocument,'mousemove',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mouseup',_FCK_MouseEventsListener);if (FCKBrowserInfo.IsSafari){var A=function(evt){if (!(evt.ctrlKey||evt.metaKey)) return;if (FCK.EditMode!=0) return;switch (evt.keyCode){case 89:FCKUndo.Redo();break;case 90:FCKUndo.Undo();break;}};FCKTools.AddEventListener(FCK.EditorDocument,'keyup',A);};FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode,FCKConfig.TabSpaces);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&&FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();FCKCommands.GetCommand('ShowBlocks').RestoreState();if (FCK.Status!=0) return;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){return FCKTools.GetStyleHtml(FCKConfig.EditorAreaCSS)+FCKTools.GetStyleHtml(FCKConfig.EditorAreaStyles);};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){switch (B){case 'Paste':return!FCK.Paste();case 'Cut':FCKUndo.SaveUndoStep();return false;}}else{if (B.Equals('Paste','Undo','Redo','SelectAll','Cut')) return false;};var C=FCK.Commands.GetCommand(B);if (C.GetState()==-1) return false;return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&&B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i '+this.Elements[i].outerHTML+'
      ';this.Elements[i].isHtml=true;}},ToElements:function(){var A=FCK.EditorDocument.createElement('div');for (var i=0;i40) return;};var C=function(H){if (H.nodeType!=1) return false;var D=H.tagName.toLowerCase();return (FCKListsLib.BlockElements[D]||FCKListsLib.EmptyElements[D]);};var E=function(){var F=FCKSelection.GetSelection();var G=F.getRangeAt(0);if (!G||!G.collapsed) return;var H=G.endContainer;if (H.nodeType!=3) return;if (H.nodeValue.length!=G.endOffset) return;var I=H.parentNode.tagName.toLowerCase();if (!(I=='a'||(!FCKBrowserInfo.IsOpera&&String(H.parentNode.contentEditable)=='false')||(!(FCKListsLib.BlockElements[I]||FCKListsLib.NonEmptyBlockElements[I])&&B==35))) return;var J=FCKTools.GetNextTextNode(H,H.parentNode,C);if (J) return;G=FCK.EditorDocument.createRange();J=FCKTools.GetNextTextNode(H,H.parentNode.parentNode,C);if (J){if (FCKBrowserInfo.IsOpera&&B==37) return;G.setStart(J,0);G.setEnd(J,0);}else{while (H.parentNode&&H.parentNode!=FCK.EditorDocument.body&&H.parentNode!=FCK.EditorDocument.documentElement&&H==H.parentNode.lastChild&&(!FCKListsLib.BlockElements[H.parentNode.tagName.toLowerCase()]&&!FCKListsLib.NonEmptyBlockElements[H.parentNode.tagName.toLowerCase()])) H=H.parentNode;if (FCKListsLib.BlockElements[I]||FCKListsLib.EmptyElements[I]||H==FCK.EditorDocument.body){G.setStart(H,H.childNodes.length);G.setEnd(H,H.childNodes.length);}else{var K=H.nextSibling;while (K){if (K.nodeType!=1){K=K.nextSibling;continue;};var L=K.tagName.toLowerCase();if (FCKListsLib.BlockElements[L]||FCKListsLib.EmptyElements[L]||FCKListsLib.NonEmptyBlockElements[L]) break;K=K.nextSibling;};var M=FCK.EditorDocument.createTextNode('');if (K) H.parentNode.insertBefore(M,K);else H.parentNode.appendChild(M);G.setStart(M,0);G.setEnd(M,0);}};F.removeAllRanges();F.addRange(G);FCK.Events.FireEvent("OnSelectionChange");};setTimeout(E,1);};this.ExecOnSelectionChangeTimer=function(){if (FCK.LastOnChangeTimer) window.clearTimeout(FCK.LastOnChangeTimer);FCK.LastOnChangeTimer=window.setTimeout(FCK.ExecOnSelectionChange,100);};this.EditorDocument.addEventListener('mouseup',this.ExecOnSelectionChange,false);this.EditorDocument.addEventListener('keyup',this.ExecOnSelectionChangeTimer,false);this._DblClickListener=function(e){FCK.OnDoubleClick(e.target);e.stopPropagation();};this.EditorDocument.addEventListener('dblclick',this._DblClickListener,true);this.EditorDocument.addEventListener('keydown',this._KeyDownListener,false);if (FCKBrowserInfo.IsGecko){this.EditorWindow.addEventListener('dragdrop',this._ExecDrop,true);}else if (FCKBrowserInfo.IsSafari){var N=function(evt){ if (!FCK.MouseDownFlag) evt.returnValue=false;};this.EditorDocument.addEventListener('dragenter',N,true);this.EditorDocument.addEventListener('dragover',N,true);this.EditorDocument.addEventListener('drop',this._ExecDrop,true);this.EditorDocument.addEventListener('mousedown',function(ev){var O=ev.srcElement;if (O.nodeName.IEquals('IMG','HR','INPUT','TEXTAREA','SELECT')){FCKSelection.SelectNode(O);}},true);this.EditorDocument.addEventListener('mouseup',function(ev){if (ev.srcElement.nodeName.IEquals('INPUT','TEXTAREA','SELECT')) ev.preventDefault()},true);this.EditorDocument.addEventListener('click',function(ev){if (ev.srcElement.nodeName.IEquals('INPUT','TEXTAREA','SELECT')) ev.preventDefault()},true);};if (FCKBrowserInfo.IsGecko||FCKBrowserInfo.IsOpera){this.EditorDocument.addEventListener('keypress',this._ExecCheckCaret,false);this.EditorDocument.addEventListener('click',this._ExecCheckCaret,false);};FCK.ContextMenu._InnerContextMenu.SetMouseClickWindow(FCK.EditorWindow);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument);};FCK.MakeEditable=function(){this.EditingArea.MakeEditable();};function Document_OnContextMenu(e){if (!e.target._FCKShowContextMenu) e.preventDefault();};document.oncontextmenu=Document_OnContextMenu;FCK._BaseGetNamedCommandState=FCK.GetNamedCommandState;FCK.GetNamedCommandState=function(A){switch (A){case 'Unlink':return FCKSelection.HasAncestorNode('A')?0:-1;default:return FCK._BaseGetNamedCommandState(A);}};FCK.RedirectNamedCommands={Print:true,Paste:true};FCK.ExecuteRedirectedNamedCommand=function(A,B){switch (A){case 'Print':FCK.EditorWindow.print();break;case 'Paste':try{if (FCKBrowserInfo.IsSafari) throw '';if (FCK.Paste()) FCK.ExecuteNamedCommand('Paste',null,true);}catch (e) { FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security');};break;default:FCK.ExecuteNamedCommand(A,B);}};FCK._ExecPaste=function(){FCKUndo.SaveUndoStep();if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};return true;};FCK.InsertHtml=function(A){var B=FCK.EditorDocument,range;A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGecko){A=A.replace(/ $/,'$&');var C=new FCKDocumentFragment(this.EditorDocument);C.AppendHtml(A);var D=C.RootNode.lastChild;range=new FCKDomRange(this.EditorWindow);range.MoveToSelection();range.DeleteContents();range.InsertNode(C.RootNode);range.MoveToPosition(D,4);}else B.execCommand('inserthtml',false,A);this.Focus();if (!range){range=new FCKDomRange(this.EditorWindow);range.MoveToSelection();};var E=range.CreateBookmark();FCKDocumentProcessor.Process(B);try{range.MoveToBookmark(E);range.Select();}catch (e) {};this.Events.FireEvent("OnSelectionChange");};FCK.PasteAsPlainText=function(){FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText']);};FCK.GetClipboardHTML=function(){return '';};FCK.CreateLink=function(A,B){var C=[];if (FCKSelection.GetSelection().isCollapsed) return C;FCK.ExecuteNamedCommand('Unlink',null,false,!!B);if (A.length>0){var D='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',D,false,!!B);var E=this.EditorDocument.evaluate("//a[@href='"+D+"']",this.EditorDocument.body,null,XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE,null);for (var i=0;i0&&!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) { }};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;A.RemoveAttributesArray=(A.RemoveAttributes||'').split(',');if (!FCKConfig.SkinEditorCSS||FCKConfig.SkinEditorCSS.length==0) FCKConfig.SkinEditorCSS=FCKConfig.SkinPath+'fck_editor.css';if (!FCKConfig.SkinDialogCSS||FCKConfig.SkinDialogCSS.length==0) FCKConfig.SkinDialogCSS=FCKConfig.SkinPath+'fck_dialog.css';};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource._CodeTag=(new Date()).valueOf();FCKConfig.ProtectedSource.RegexEntries=[//g,//gi,//gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){var B=this._CodeTag;function _Replace(protectedSource){var C=FCKTempBin.AddElement(protectedSource);return '';};for (var i=0;i|>)","g");return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&&this.BodyId.length>0) A+=' id="'+this.BodyId+'"';if (this.BodyClass&&this.BodyClass.length>0) A+=' class="'+this.BodyClass+'"';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&&this.BodyId.length>0) A.id=FCKConfig.BodyId;if (this.BodyClass&&this.BodyClass.length>0) A.className+=' '+FCKConfig.BodyClass;}; +var FCKDebug={Output:function(){},OutputObject:function(){}}; +var FCKDomTools={MoveChildren:function(A,B,C){if (A==B) return;var D;if (C){while ((D=A.lastChild)) B.insertBefore(A.removeChild(D),B.firstChild);}else{while ((D=A.firstChild)) B.appendChild(A.removeChild(D));}},MoveNode:function(A,B,C){if (C) B.insertBefore(FCKDomTools.RemoveNode(A),B.firstChild);else B.appendChild(FCKDomTools.RemoveNode(A));},TrimNode:function(A){this.LTrimNode(A);this.RTrimNode(A);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D,E){while((A=this.GetNextSourceNode(A,E))){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (D&&A.nodeName.IEquals(D)) return this.GetNextSourceElement(A,B,C,D);return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;};return null;},GetNextSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.firstChild) E=A.firstChild;else{if (D&&A==D) return null;E=A.nextSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetNextSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetNextSourceNode(E,false,C,D);return E;},GetPreviousSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.lastChild) E=A.lastChild;else{if (D&&A==D) return null;E=A.previousSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetPreviousSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetPreviousSourceNode(E,false,C,D);return E;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.unshift(A);A=A.parentNode;};return B;},GetCommonParents:function(A,B){var C=this.GetParents(A);var D=this.GetParents(B);var E=[];for (var i=0;i0) D[C.pop().toLowerCase()]=1;var E=this.GetCommonParents(A,B);var F=null;while ((F=E.pop())){if (D[F.nodeName.toLowerCase()]) return F;};return null;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;},PaddingNode:null,EnforcePaddingNode:function(A,B){try{if (!A||!A.body) return;}catch (e){return;};this.CheckAndRemovePaddingNode(A,B,true);try{if (A.body.lastChild&&(A.body.lastChild.nodeType!=1||A.body.lastChild.tagName.toLowerCase()==B.toLowerCase())) return;}catch (e){return;};var C=A.createElement(B);if (FCKBrowserInfo.IsGecko&&FCKListsLib.NonEmptyBlockElements[B]) FCKTools.AppendBogusBr(C);this.PaddingNode=C;if (A.body.childNodes.length==1&&A.body.firstChild.nodeType==1&&A.body.firstChild.tagName.toLowerCase()=='br'&&(A.body.firstChild.getAttribute('_moz_dirty')!=null||A.body.firstChild.getAttribute('type')=='_moz')) A.body.replaceChild(C,A.body.firstChild);else A.body.appendChild(C);},CheckAndRemovePaddingNode:function(A,B,C){var D=this.PaddingNode;if (!D) return;try{if (D.parentNode!=A.body||D.tagName.toLowerCase()!=B||(D.childNodes.length>1)||(D.firstChild&&D.firstChild.nodeValue!='\xa0'&&String(D.firstChild.tagName).toLowerCase()!='br')){this.PaddingNode=null;return;}}catch (e){this.PaddingNode=null;return;};if (!C){if (D.parentNode.childNodes.length>1) D.parentNode.removeChild(D);this.PaddingNode=null;}},HasAttribute:function(A,B){if (A.hasAttribute) return A.hasAttribute(B);else{var C=A.attributes[B];return (C!=undefined&&C.specified);}},HasAttributes:function(A){var B=A.attributes;for (var i=0;i0) return true;}else if (B[i].specified) return true;};return false;},RemoveAttribute:function(A,B){if (FCKBrowserInfo.IsIE&&B.toLowerCase()=='class') B='className';return A.removeAttribute(B,0);},RemoveAttributes:function (A,B){for (var i=0;i0) return false;C=C.nextSibling;};return D?this.CheckIsEmptyElement(D,B):true;},SetElementStyles:function(A,B){var C=A.style;for (var D in B) C[D]=B[D];},SetOpacity:function(A,B){if (FCKBrowserInfo.IsIE){B=Math.round(B*100);A.style.filter=(B>100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+B+')');}else A.style.opacity=B;},GetCurrentElementStyle:function(A,B){if (FCKBrowserInfo.IsIE) return A.currentStyle[B];else return A.ownerDocument.defaultView.getComputedStyle(A,'').getPropertyValue(B);},GetPositionedAncestor:function(A){var B=A;while (B!=FCKTools.GetElementDocument(B).documentElement){if (this.GetCurrentElementStyle(B,'position')!='static') return B;if (B==FCKTools.GetElementDocument(B).documentElement&¤tWindow!=w) B=currentWindow.frameElement;else B=B.parentNode;};return null;},ScrollIntoView:function(A,B){var C=FCKTools.GetElementWindow(A);var D=FCKTools.GetViewPaneSize(C).Height;var E=D*-1;if (B===false){E+=A.offsetHeight||0;E+=parseInt(this.GetCurrentElementStyle(A,'marginBottom')||0,10)||0;};var F=FCKTools.GetDocumentPosition(C,A);E+=F.y;var G=FCKTools.GetScrollPosition(C).Y;if (E>0&&(E>G||E'+styleDef+'';};var C=function(cssFileUrl,markTemp){if (cssFileUrl.length==0) return '';var B=markTemp?' _fcktemp="true"':'';return '';};return function(cssFileOrArrayOrDef,markTemp){if (!cssFileOrArrayOrDef) return '';if (typeof(cssFileOrArrayOrDef)=='string'){if (/[\\\/\.][^{}]*$/.test(cssFileOrArrayOrDef)){return this.GetStyleHtml(cssFileOrArrayOrDef.split(','),markTemp);}else return A(this._GetUrlFixedCss(cssFileOrArrayOrDef),markTemp);}else{var E='';for (var i=0;i/g,'>');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/>/g,'>');A=A.replace(/</g,'<');A=A.replace(/&/g,'&');return A;};FCKTools._ProcessLineBreaksForPMode=function(A,B,C,D,E){var F=0;var G="

      ";var H="

      ";var I="
      ";if (C){G="
    5. ";H="
    6. ";F=1;}while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='p'){F=1;break;};D=D.parentNode;};for (var i=0;i0) return A[A.length-1];return null;};FCKTools.GetDocumentPosition=function(w,A){var x=0;var y=0;var B=A;var C=null;var D=FCKTools.GetElementWindow(B);while (B&&!(D==w&&(B==w.document.body||B==w.document.documentElement))){x+=B.offsetLeft-B.scrollLeft;y+=B.offsetTop-B.scrollTop;if (!FCKBrowserInfo.IsOpera){var E=C;while (E&&E!=B){x-=E.scrollLeft;y-=E.scrollTop;E=E.parentNode;}};C=B;if (B.offsetParent) B=B.offsetParent;else{if (D!=w){B=D.frameElement;C=null;if (B) D=B.contentWindow.parent;}else B=null;}};if (FCKDomTools.GetCurrentElementStyle(w.document.body,'position')!='static'||(FCKBrowserInfo.IsIE&&FCKDomTools.GetPositionedAncestor(A)==null)){x+=w.document.body.offsetLeft;y+=w.document.body.offsetTop;};return { "x":x,"y":y };};FCKTools.GetWindowPosition=function(w,A){var B=this.GetDocumentPosition(w,A);var C=FCKTools.GetScrollPosition(w);B.x-=C.X;B.y-=C.Y;return B;};FCKTools.ProtectFormStyles=function(A){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return [];var B=[];var C=['style','className'];for (var i=0;i0){for (var i=B.length-1;i>=0;i--){var C=B[i][0];var D=B[i][1];if (D) A.insertBefore(C,D);else A.appendChild(C);}}};FCKTools.GetNextNode=function(A,B){if (A.firstChild) return A.firstChild;else if (A.nextSibling) return A.nextSibling;else{var C=A.parentNode;while (C){if (C==B) return null;if (C.nextSibling) return C.nextSibling;else C=C.parentNode;}};return null;};FCKTools.GetNextTextNode=function(A,B,C){node=this.GetNextNode(A,B);if (C&&node&&C(node)) return null;while (node&&node.nodeType!=3){node=this.GetNextNode(node,B);if (C&&node&&C(node)) return null;};return node;};FCKTools.Merge=function(){var A=arguments;var o=A[0];for (var i=1;i');document.domain = '"+FCK_RUNTIME_DOMAIN+"';document.close();}() ) ;";if (FCKBrowserInfo.IsIE){if (FCKBrowserInfo.IsIE7||!FCKBrowserInfo.IsIE6) return "";else return "javascript: '';";};return "javascript: void(0);";};FCKTools.ResetStyles=function(A){A.style.cssText='margin:0;padding:0;border:0;background-color:transparent;background-image:none;';}; +FCKTools.CancelEvent=function(e){if (e) e.preventDefault();};FCKTools.DisableSelection=function(A){if (FCKBrowserInfo.IsGecko) A.style.MozUserSelect='none';else if (FCKBrowserInfo.IsSafari) A.style.KhtmlUserSelect='none';else A.style.userSelect='none';};FCKTools._AppendStyleSheet=function(A,B){var e=A.createElement('LINK');e.rel='stylesheet';e.type='text/css';e.href=B;A.getElementsByTagName("HEAD")[0].appendChild(e);return e;};FCKTools.AppendStyleString=function(A,B){if (!B) return null;var e=A.createElement("STYLE");e.appendChild(A.createTextNode(B));A.getElementsByTagName("HEAD")[0].appendChild(e);return e;};FCKTools.ClearElementAttributes=function(A){for (var i=0;i0) B[B.length]=D;C(parent.childNodes[i]);}};C(A);return B;};FCKTools.RemoveOuterTags=function(e){var A=e.ownerDocument.createDocumentFragment();for (var i=0;i','text/xml');FCKDomTools.RemoveNode(B.firstChild);return B;};return null;};FCKTools.GetScrollPosition=function(A){return { X:A.pageXOffset,Y:A.pageYOffset };};FCKTools.AddEventListener=function(A,B,C){A.addEventListener(B,C,false);};FCKTools.RemoveEventListener=function(A,B,C){A.removeEventListener(B,C,false);};FCKTools.AddEventListenerEx=function(A,B,C,D){A.addEventListener(B,function(e){C.apply(A,[e].concat(D||[]));},false);};FCKTools.GetViewPaneSize=function(A){return { Width:A.innerWidth,Height:A.innerHeight };};FCKTools.SaveStyles=function(A){var B=FCKTools.ProtectFormStyles(A);var C={};if (A.className.length>0){C.Class=A.className;A.className='';};var D=A.getAttribute('style');if (D&&D.length>0){C.Inline=D;A.setAttribute('style','',0);};FCKTools.RestoreFormStyles(A,B);return C;};FCKTools.RestoreStyles=function(A,B){var C=FCKTools.ProtectFormStyles(A);A.className=B.Class||'';if (B.Inline) A.setAttribute('style',B.Inline,0);else A.removeAttribute('style',0);FCKTools.RestoreFormStyles(A,C);};FCKTools.RegisterDollarFunction=function(A){A.$=function(id){return A.document.getElementById(id);};};FCKTools.AppendElement=function(A,B){return A.appendChild(A.ownerDocument.createElement(B));};FCKTools.GetElementPosition=function(A,B){var c={ X:0,Y:0 };var C=B||window;var D=FCKTools.GetElementWindow(A);var E=null;while (A){var F=D.getComputedStyle(A,'').position;if (F&&F!='static'&&A.style.zIndex!=FCKConfig.FloatingPanelsZIndex) break;c.X+=A.offsetLeft-A.scrollLeft;c.Y+=A.offsetTop-A.scrollTop;if (!FCKBrowserInfo.IsOpera){var G=E;while (G&&G!=A){c.X-=G.scrollLeft;c.Y-=G.scrollTop;G=G.parentNode;}};E=A;if (A.offsetParent) A=A.offsetParent;else{if (D!=C){A=D.frameElement;E=null;if (A) D=FCKTools.GetElementWindow(A);}else{c.X+=A.scrollLeft;c.Y+=A.scrollTop;break;}}};return c;}; +var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='window.FCKeditorAPI = {Version : "2.6.3",VersionBuild : "19836",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.IsAIR){FCKAdobeAIR.FCKeditorAPI_Evaluate(A,B);}else if (FCKBrowserInfo.IsSafari){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;FCKeditorAPI.__Instances=FCKeditorAPI.Instances;};FCKeditorAPI.Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&&(typeof(A.submit)=='function'||(!A.submit.tagName&&!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){if (window.FCKConfig&&FCKConfig.MsWebBrowserControlCompat&&!window.FCKUnloadFlag) return;delete FCKeditorAPI.Instances[FCK.Name];};function FCKeditorAPI_ConfirmCleanup(){if (window.FCKConfig&&FCKConfig.MsWebBrowserControlCompat) window.FCKUnloadFlag=true;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);FCKTools.AddEventListener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup); +var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i]*\>)/i,AfterBody:/(\<\/body\>[\s\S]*$)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/]/i,HtmlOpener:/]*>/i,HeadOpener:/]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/\s*FCK__[^ ]*(?=\s+|$)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>\s*(<\/\1>)?$/,EmptyOutParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>(?:\s*| )(<\/\1>)?$/,TagBody:/>]+))/gi,ProtectUrlsA:/]+))/gi,ProtectUrlsArea:/]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/]*>/i,HtmlDocType:/DTD HTML/,TagsWithEvent:/<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt="([^"]+)"/g,StyleProperties:/\S+\s*:/g,InvalidSelfCloseTags:/(<(?!base|meta|link|hr|br|param|img|area|input)([a-zA-Z0-9:]+)[^>]*)\/>/gi,StyleVariableAttName:/#\(\s*("|')(.+?)\1[^\)]*\s*\)/g,RegExp:/^\/(.*)\/([gim]*)$/,HtmlTag:/<[^\s<>](?:"[^"]*"|'[^']*'|[^<])*>/}; +var FCKListsLib={BlockElements:{ address:1,blockquote:1,center:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,marquee:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },InlineChildReqElements:{ abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },InlineNonEmptyElements:{ a:1,abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },EmptyElements:{ base:1,col:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 },PathBlockElements:{ address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,de:1 },PathBlockLimitElements:{ body:1,div:1,td:1,th:1,caption:1,form:1 },StyleBlockElements:{ address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1 },StyleObjectElements:{ img:1,hr:1,li:1,table:1,tr:1,td:1,embed:1,object:1,ol:1,ul:1 },NonEditableElements:{ button:1,option:1,script:1,iframe:1,textarea:1,object:1,embed:1,map:1,applet:1 },BlockBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1 },ListBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1,br:1 }}; +var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French','fr-ca':'French (Canada)',gl:'Galician',gu:'Gujarati',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;i0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');}; +var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKDomTools.CheckAndRemovePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;if (FCKBrowserInfo.IsSafari) E=E.replace(/^/,'');E=E.substr(7,E.length-15).Trim();if (FCKConfig.DocType.length>0&&FCKRegexLib.HtmlDocType.test(FCKConfig.DocType)) E=E.replace(FCKRegexLib.SpaceNoClose,'>');else E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml.TagProcessors={a:function(A,B){if (B.innerHTML.Trim().length==0&&!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},area:function(A,B){var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (!A.attributes.getNamedItem('coords')){var D=B.getAttribute('coords',2);if (D&&D!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',D);};if (!A.attributes.getNamedItem('shape')){var E=B.getAttribute('shape',2);if (E&&E.length>0) FCKXHtml._AppendAttribute(A,'shape',E.toLowerCase());}};return A;},body:function(A,B){A=FCKXHtml._AppendChildNodes(A,B,false);A.removeAttribute('spellcheck');return A;},iframe:function(A,B){var C=B.innerHTML;if (FCKBrowserInfo.IsGecko) C=FCKTools.HTMLDecode(C);C=C.replace(/\s_fcksavedurl="[^"]*"/g,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);if (B.style.width) A.removeAttribute('width');if (B.style.height) A.removeAttribute('height');return A;},li:function(A,B,C){if (C.nodeName.IEquals(['ul','ol'])) return FCKXHtml._AppendChildNodes(A,B,true);var D=FCKXHtml.XML.createElement('ul');B._fckxhtmljob=null;do{FCKXHtml._AppendNode(D,B);do{B=FCKDomTools.GetNextSibling(B);} while (B&&B.nodeType==3&&B.nodeValue.Trim().length==0)} while (B&&B.nodeName.toLowerCase()=='li') return D;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};A=FCKXHtml._AppendChildNodes(A,B);return A;},pre:function (A,B){var C=B.firstChild;if (C&&C.nodeType==3) A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem('\r\n')));FCKXHtml._AppendChildNodes(A,B,true);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');var C=B.innerHTML;if (FCKBrowserInfo.IsIE) C=C.replace(/^(\r\n|\n|\r)/,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol; +FCKXHtml._GetMainXmlString=function(){return (new XMLSerializer()).serializeToString(this.MainNode);};FCKXHtml._AppendAttributes=function(A,B,C){var D=B.attributes;for (var n=0;n]*\>/gi;A.BlocksCloser=/\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.NewLineTags=/\<(BR|HR)[^\>]*\>/gi;A.MainTags=/\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(]*>)([\s\S]*?)(<\/PRE>)/gi;};FCKCodeFormatter._ProtectData=function(A,B,C,D){return B+'___FCKpd___'+FCKCodeFormatter.ProtectedData.AddItem(C)+D;};FCKCodeFormatter.Format=function(A){if (!this.Regex) this.Init();FCKCodeFormatter.ProtectedData=[];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;iB[i]) return 1;};if (A.lengthB.length) return 1;return 0;};FCKUndo._CheckIsBookmarksEqual=function(A,B){if (!(A&&B)) return false;if (FCKBrowserInfo.IsIE){var C=A[1].search(A[0].StartId);var D=B[1].search(B[0].StartId);var E=A[1].search(A[0].EndId);var F=B[1].search(B[0].EndId);return C==D&&E==F;}else{return this._CompareCursors(A.Start,B.Start)==0&&this._CompareCursors(A.End,B.End)==0;}};FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=0||this.SaveLocked) return;if (this.SavedData.length) this.Changed=true;var A=FCK.EditorDocument.body.innerHTML;var B=this._GetBookmark();this.SavedData=this.SavedData.slice(0,this.CurrentIndex+1);if (this.CurrentIndex>0&&A==this.SavedData[this.CurrentIndex][0]&&this._CheckIsBookmarksEqual(B,this.SavedData[this.CurrentIndex][1])) return;else if (this.CurrentIndex==0&&this.SavedData.length&&A==this.SavedData[0][0]){this.SavedData[0][1]=B;return;};if (this.CurrentIndex+1>=FCKConfig.MaxUndoLevels) this.SavedData.shift();else this.CurrentIndex++;this.SavedData[this.CurrentIndex]=[A,B];FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.CheckUndoState=function(){return (this.Changed||this.CurrentIndex>0);};FCKUndo.CheckRedoState=function(){return (this.CurrentIndex<(this.SavedData.length-1));};FCKUndo.Undo=function(){if (this.CheckUndoState()){if (this.CurrentIndex==(this.SavedData.length-1)){this.SaveUndoStep();};this._ApplyUndoLevel(--this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo.Redo=function(){if (this.CheckRedoState()){this._ApplyUndoLevel(++this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo._ApplyUndoLevel=function(A){var B=this.SavedData[A];if (!B) return;if (FCKBrowserInfo.IsIE){if (B[1]&&B[1][1]) FCK.SetInnerHtml(B[1][1]);else FCK.SetInnerHtml(B[0]);}else FCK.EditorDocument.body.innerHTML=B[0];this._SelectBookmark(B[1]);this.TypesCount=0;this.Changed=false;this.Typing=false;}; +var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);while(C.firstChild) C.removeChild(C.firstChild);if (this.Mode==0){if (FCK_IS_CUSTOM_DOMAIN) A=''+A;if (FCKBrowserInfo.IsIE) A=A.replace(/(]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1>');else if (!B){var E=A.match(FCKRegexLib.BeforeBody);var F=A.match(FCKRegexLib.AfterBody);if (E&&F){var G=A.substr(E[1].length,A.length-E[1].length-F[1].length);A=E[1]+' '+F[1];if (FCKBrowserInfo.IsGecko&&(G.length==0||FCKRegexLib.EmptyParagraph.test(G))) G='
      ';this._BodyHTML=G;}else this._BodyHTML=A;};var H=this.IFrame=D.createElement('iframe');var I='';H.frameBorder=0;H.style.width=H.style.height='100%';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A.replace(//i,''+I);H.src='javascript:void( (function(){document.open() ;document.domain="'+document.domain+'" ;document.write( window.parent._FCKHtmlToLoad );document.close() ;window.parent._FCKHtmlToLoad = null ;})() )';}else if (!FCKBrowserInfo.IsGecko){H.src='javascript:void(0)';};C.appendChild(H);this.Window=H.contentWindow;if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){var J=this.Window.document;J.open();J.write(A.replace(//i,''+I));J.close();};if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.EditingArea_Start(J,A);if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};if (H.readyState&&H.readyState!='completed'){var K=this;setTimeout(function(){try{K.Window.document.documentElement.doScroll("left");}catch(e){setTimeout(arguments.callee,0);return;};K.Window._FCKEditingArea=K;FCKEditingArea_CompleteStart.call(K.Window);},0);}else{this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}}else{var L=this.Textarea=D.createElement('textarea');L.className='SourceField';L.dir='ltr';FCKDomTools.SetElementStyles(L,{width:'100%',height:'100%',border:'none',resize:'none',outline:'none'});C.appendChild(L);L.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.Document=A.Window.document;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.disabled=true;A.body.contentEditable=true;A.body.removeAttribute("disabled");}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;A.body.offsetLeft;this._BodyHTML=null;};A.designMode='on';A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e){FCKTools.AddEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);}}};function FCKEditingArea_Document_AttributeNodeModified(A){var B=A.currentTarget.contentWindow._FCKEditingArea;if (B._timer) window.clearTimeout(B._timer);B._timer=FCKTools.SetTimeout(FCKEditingArea_MakeEditableByMutation,1000,B);};function FCKEditingArea_MakeEditableByMutation(){delete this._timer;FCKTools.RemoveEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);this.MakeEditable();};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE) this._FocusIE();else this.Window.focus();}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};FCKEditingArea.prototype._FocusIE=function(){this.Document.body.setActive();this.Window.focus();var A=this.Document.selection.createRange();var B=A.parentElement();var C=B.nodeName.toLowerCase();if (B.childNodes.length>0||!(FCKListsLib.BlockElements[C]||FCKListsLib.NonEmptyBlockElements[C])){return;};A=new FCKDomRange(this.Window);A.MoveToElementEditStart(B);A.Select();};function FCKEditingArea_Cleanup(){if (this.Document) this.Document.body.innerHTML="";this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}}; +var 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;i40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;}; +FCK.DTD=(function(){var X=FCKTools.Merge;var A,L,J,M,N,O,D,H,P,K,Q,F,G,C,B,E,I;A={isindex:1,fieldset:1};B={input:1,button:1,select:1,textarea:1,label:1};C=X({a:1},B);D=X({iframe:1},C);E={hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1};F={ins:1,del:1,script:1};G=X({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1},F);H=X({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1},G);I=X({p:1},H);J=X({iframe:1},H,B);K={img:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1};L=X({a:1},J);M={tr:1};N={'#':1};O=X({param:1},K);P=X({form:1},A,D,E,I);Q={li:1};return {col:{},tr:{td:1,th:1},img:{},colgroup:{col:1},noscript:P,td:P,br:{},th:P,center:P,kbd:L,button:X(I,E),basefont:{},h5:L,h4:L,samp:L,h6:L,ol:Q,h1:L,h3:L,option:N,h2:L,form:X(A,D,E,I),select:{optgroup:1,option:1},font:J,ins:P,menu:Q,abbr:L,label:L,table:{thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1},code:L,script:N,tfoot:M,cite:L,li:P,input:{},iframe:P,strong:J,textarea:N,noframes:P,big:J,small:J,span:J,hr:{},dt:L,sub:J,optgroup:{option:1},param:{},bdo:L,'var':J,div:P,object:O,sup:J,dd:P,strike:J,area:{},dir:Q,map:X({area:1,form:1,p:1},A,F,E),applet:O,dl:{dt:1,dd:1},del:P,isindex:{},fieldset:X({legend:1},K),thead:M,ul:Q,acronym:L,b:J,a:J,blockquote:P,caption:L,i:J,u:J,tbody:M,s:L,address:X(D,I),tt:J,legend:L,q:L,pre:X(G,C),p:L,em:J,dfn:L};})(); +var FCKStyle=function(A){this.Element=(A.Element||'span').toLowerCase();this._StyleDesc=A;};FCKStyle.prototype={GetType:function(){var A=this.GetType_$;if (A!=undefined) return A;var B=this.Element;if (B=='#'||FCKListsLib.StyleBlockElements[B]) A=0;else if (FCKListsLib.StyleObjectElements[B]) A=2;else A=1;return (this.GetType_$=A);},ApplyToSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.ApplyToRange(B,true);},ApplyToRange:function(A,B,C){switch (this.GetType()){case 0:this.ApplyToRange=this._ApplyBlockStyle;break;case 1:this.ApplyToRange=this._ApplyInlineStyle;break;default:return;};this.ApplyToRange(A,B,C);},ApplyToObject:function(A){if (!A) return;this.BuildElement(null,A);},RemoveFromSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.RemoveFromRange(B,true);},RemoveFromRange:function(A,B,C){var D;var E=this._GetAttribsForComparison();var F=this._GetOverridesForComparison();if (A.CheckIsCollapsed()){var D=A.CreateBookmark(true);var H=A.GetBookmarkNode(D,true);var I=new FCKElementPath(H.parentNode);var J=[];var K=!FCKDomTools.GetNextSibling(H);var L=K||!FCKDomTools.GetPreviousSibling(H);var M;var N=-1;for (var i=0;i=0;i--){var E=D[i];for (var F in B){if (FCKDomTools.HasAttribute(E,F)){switch (F){case 'style':this._RemoveStylesFromElement(E);break;case 'class':if (FCKDomTools.GetAttributeValue(E,F)!=this.GetFinalAttributeValue(F)) continue;default:FCKDomTools.RemoveAttribute(E,F);}}};this._RemoveOverrides(E,C[this.Element]);this._RemoveNoAttribElement(E);};for (var G in C){if (G!=this.Element){D=A.getElementsByTagName(G);for (var i=D.length-1;i>=0;i--){var E=D[i];this._RemoveOverrides(E,C[G]);this._RemoveNoAttribElement(E);}}}},_RemoveStylesFromElement:function(A){var B=A.style.cssText;var C=this.GetFinalStyleValue();if (B.length>0&&C.length==0) return;C='(^|;)\\s*('+C.replace(/\s*([^ ]+):.*?(;|$)/g,'$1|').replace(/\|$/,'')+'):[^;]+';var D=new RegExp(C,'gi');B=B.replace(D,'').Trim();if (B.length==0||B==';') FCKDomTools.RemoveAttribute(A,'style');else A.style.cssText=B.replace(D,'');},_RemoveOverrides:function(A,B){var C=B&&B.Attributes;if (C){for (var i=0;i0) C.style.cssText=this.GetFinalStyleValue();return C;},_CompareAttributeValues:function(A,B,C){if (A=='style'&&B&&C){B=B.replace(/;$/,'').toLowerCase();C=C.replace(/;$/,'').toLowerCase();};return (B==C||((B===null||B==='')&&(C===null||C==='')))},GetFinalAttributeValue:function(A){var B=this._StyleDesc.Attributes;var B=B?B[A]:null;if (!B&&A=='style') return this.GetFinalStyleValue();if (B&&this._Variables) B=B.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);return B;},GetFinalStyleValue:function(){var A=this._GetStyleText();if (A.length>0&&this._Variables){A=A.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);A=FCKTools.NormalizeCssText(A);};return A;},_GetVariableReplace:function(){return this._Variables[arguments[2]]||arguments[0];},SetVariable:function(A,B){var C=this._Variables;if (!C) C=this._Variables={};this._Variables[A]=B;},_FromPre:function(A,B,C){var D=B.innerHTML;D=D.replace(/(\r\n|\r)/g,'\n');D=D.replace(/^[ \t]*\n/,'');D=D.replace(/\n$/,'');D=D.replace(/^[ \t]+|[ \t]+$/g,function(match,offset,s){if (match.length==1) return ' ';else if (offset==0) return new Array(match.length).join(' ')+' ';else return ' '+new Array(match.length).join(' ');});var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!isTag){value=value.replace(/\n/g,'
      ');value=value.replace(/[ \t]{2,}/g,function (match){return new Array(match.length).join(' ')+' ';});};F.push(value);});C.innerHTML=F.join('');return C;},_ToPre:function(A,B,C){var D=B.innerHTML.Trim();D=D.replace(/[ \t\r\n]*(]*>)[ \t\r\n]*/gi,'
      ');var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!isTag) value=value.replace(/([ \t\n\r]+| )/g,' ');else if (isTag&&value=='
      ') value='\n';F.push(value);});if (FCKBrowserInfo.IsIE){var G=A.createElement('div');G.appendChild(C);C.outerHTML='
      \n'+F.join('')+'
      ';C=G.removeChild(G.firstChild);}else C.innerHTML=F.join('');return C;},_CheckAndMergePre:function(A,B){if (A!=FCKDomTools.GetPreviousSourceElement(B,true)) return;var C=A.innerHTML.replace(/\n$/,'')+'\n\n'+B.innerHTML.replace(/^\n/,'');if (FCKBrowserInfo.IsIE) B.outerHTML='
      '+C+'
      ';else B.innerHTML=C;FCKDomTools.RemoveNode(A);},_CheckAndSplitPre:function(A){var B;var C=A.firstChild;C=C&&C.nextSibling;while (C){var D=C.nextSibling;if (D&&D.nextSibling&&C.nodeName.IEquals('br')&&D.nodeName.IEquals('br')){FCKDomTools.RemoveNode(C);C=D.nextSibling;FCKDomTools.RemoveNode(D);B=FCKDomTools.InsertAfterNode(B||A,FCKDomTools.CloneElement(A));continue;};if (B){C=C.previousSibling;FCKDomTools.MoveNode(C.nextSibling,B);};C=C.nextSibling;}},_ApplyBlockStyle:function(A,B,C){var D;if (B) D=A.CreateBookmark();var E=new FCKDomRangeIterator(A);E.EnforceRealBlocks=true;var F;var G=A.Window.document;var H;while((F=E.GetNextParagraph())){var I=this.BuildElement(G);var J=I.nodeName.IEquals('pre');var K=F.nodeName.IEquals('pre');var L=J&&!K;var M=!J&&K;if (L) I=this._ToPre(G,F,I);else if (M) I=this._FromPre(G,F,I);else FCKDomTools.MoveChildren(F,I);F.parentNode.insertBefore(I,F);FCKDomTools.RemoveNode(F);if (J){if (H) this._CheckAndMergePre(H,I);H=I;}else if (M) this._CheckAndSplitPre(I);};if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);},_ApplyInlineStyle:function(A,B,C){var D=A.Window.document;if (A.CheckIsCollapsed()){var E=this.BuildElement(D);A.InsertNode(E);A.MoveToPosition(E,2);A.Select();return;};var F=this.Element;var G=FCK.DTD[F]||FCK.DTD.span;var H=this._GetAttribsForComparison();var I;A.Expand('inline_elements');var J=A.CreateBookmark(true);var K=A.GetBookmarkNode(J,true);var L=A.GetBookmarkNode(J,false);A.Release(true);var M=FCKDomTools.GetNextSourceNode(K,true);while (M){var N=false;var O=M.nodeType;var P=O==1?M.nodeName.toLowerCase():null;if (!P||G[P]){if ((FCK.DTD[M.parentNode.nodeName.toLowerCase()]||FCK.DTD.span)[F]||!FCK.DTD[F]){if (!A.CheckHasRange()) A.SetStart(M,3);if (O!=1||M.childNodes.length==0){var Q=M;var R=Q.parentNode;while (Q==R.lastChild&&G[R.nodeName.toLowerCase()]){Q=R;};A.SetEnd(Q,4);if (Q==Q.parentNode.lastChild&&!G[Q.parentNode.nodeName.toLowerCase()]) N=true;}else{A.SetEnd(M,3);}}else N=true;}else N=true;M=FCKDomTools.GetNextSourceNode(M);if (M==L){M=null;N=true;};if (N&&A.CheckHasRange()&&!A.CheckIsCollapsed()){I=this.BuildElement(D);A.ExtractContents().AppendTo(I);if (I.innerHTML.RTrim().length>0){A.InsertNode(I);this.RemoveFromElement(I);this._MergeSiblings(I,this._GetAttribsForComparison());if (!FCKBrowserInfo.IsIE) I.normalize();};A.Release(true);}};this._FixBookmarkStart(K);if (B) A.SelectBookmark(J);if (C) A.MoveToBookmark(J);},_FixBookmarkStart:function(A){var B;while ((B=A.nextSibling)){if (B.nodeType==1&&FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){if (!B.firstChild) FCKDomTools.RemoveNode(B);else FCKDomTools.MoveNode(A,B,true);continue;};if (B.nodeType==3&&B.length==0){FCKDomTools.RemoveNode(B);continue;};break;}},_MergeSiblings:function(A,B){if (!A||A.nodeType!=1||!FCKListsLib.InlineNonEmptyElements[A.nodeName.toLowerCase()]) return;this._MergeNextSibling(A,B);this._MergePreviousSibling(A,B);},_MergeNextSibling:function(A,B){var C=A.nextSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.nextSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.lastChild;if (D) FCKDomTools.MoveNode(A.nextSibling,A);FCKDomTools.MoveChildren(C,A);FCKDomTools.RemoveNode(C);if (E) this._MergeNextSibling(E);}}},_MergePreviousSibling:function(A,B){var C=A.previousSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.previousSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.firstChild;if (D) FCKDomTools.MoveNode(A.previousSibling,A,true);FCKDomTools.MoveChildren(C,A,true);FCKDomTools.RemoveNode(C);if (E) this._MergePreviousSibling(E);}}},_GetStyleText:function(){var A=this._StyleDesc.Styles;var B=(this._StyleDesc.Attributes?this._StyleDesc.Attributes['style']||'':'');if (B.length>0) B+=';';for (var C in A) B+=C+':'+A[C]+';';if (B.length>0&&!(/#\(/.test(B))){B=FCKTools.NormalizeCssText(B);};return (this._GetStyleText=function() { return B;})();},_GetAttribsForComparison:function(){var A=this._GetAttribsForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Attributes;if (B){for (var C in B){A[C.toLowerCase()]=B[C].toLowerCase();}};if (this._GetStyleText().length>0){A['style']=this._GetStyleText().toLowerCase();};FCKTools.AppendLengthProperty(A,'_length');return (this._GetAttribsForComparison_$=A);},_GetOverridesForComparison:function(){var A=this._GetOverridesForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Overrides;if (B){if (!FCKTools.IsArray(B)) B=[B];for (var i=0;i0) return true;};B=B.nextSibling;};return false;}}; +var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (FCKBrowserInfo.IsIE&&e.scopeName!='HTML') E=e.scopeName.toLowerCase()+':'+E;if (!C){if (!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null){if (!B&&E=='div'&&!FCKElementPath._CheckHasBlock(e)) B=e;else C=e;}};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};FCKElementPath._CheckHasBlock=function(A){var B=A.childNodes;for (var i=0,count=B.length;i0){if (D.nodeType==3){var G=D.nodeValue.substr(0,E).Trim();if (G.length!=0) return A.IsStartOfBlock=false;}else F=D.childNodes[E-1];};if (!F) F=FCKDomTools.GetPreviousSourceNode(D,true,null,C);while (F){switch (F.nodeType){case 1:if (!FCKListsLib.InlineChildReqElements[F.nodeName.toLowerCase()]) return A.IsStartOfBlock=false;break;case 3:if (F.nodeValue.Trim().length>0) return A.IsStartOfBlock=false;};F=FCKDomTools.GetPreviousSourceNode(F,false,null,C);};return A.IsStartOfBlock=true;},CheckEndOfBlock:function(A){var B=this._Cache.IsEndOfBlock;if (B!=undefined) return B;var C=this.EndBlock||this.EndBlockLimit;var D=this._Range.endContainer;var E=this._Range.endOffset;var F;if (D.nodeType==3){var G=D.nodeValue;if (E0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML=' ';F=this.Clone();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML=' ';F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { "Start":0,"End":0 };var A={"Start":[this._Range.startOffset],"End":[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previousSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&&D.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;}while (C&&E.nodeType==3){A.End[0]+=C.length;E=C;C=C.previousSibling;};if (D.nodeType==1&&D.childNodes[A.Start[0]]&&D.childNodes[A.Start[0]].nodeType==3){var F=D.childNodes[A.Start[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};D=F;A.Start[0]=G;};if (E.nodeType==1&&E.childNodes[A.End[0]]&&E.childNodes[A.End[0]].nodeType==3){var F=E.childNodes[A.End[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};E=F;A.End[0]=G;};A.Start=FCKDomTools.GetNodeAddress(D,true).concat(A.Start);A.End=FCKDomTools.GetNodeAddress(E,true).concat(A.End);return A;},MoveToBookmark2:function(A){var B=FCKDomTools.GetNodeFromAddress(this.Window.document,A.Start.slice(0,-1),true);var C=FCKDomTools.GetNodeFromAddress(this.Window.document,A.End.slice(0,-1),true);this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var D=A.Start[A.Start.length-1];var E=A.End[A.End.length-1];while (B.nodeType==3&&D>B.length){if (!B.nextSibling||B.nextSibling.nodeType!=3) break;D-=B.length;B=B.nextSibling;}while (C.nodeType==3&&E>C.length){if (!C.nextSibling||C.nextSibling.nodeType!=3) break;E-=C.length;C=C.nextSibling;};this._Range.setStart(B,D);this._Range.setEnd(C,E);this._UpdateElementInfo();},MoveToPosition:function(A,B){this.SetStart(A,B);this.Collapse(true);},SetStart:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setStart(A,0);break;case 2:D.setStart(A,A.childNodes.length);break;case 3:D.setStartBefore(A);break;case 4:D.setStartAfter(A);};if (!C) this._UpdateElementInfo();},SetEnd:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setEnd(A,0);break;case 2:D.setEnd(A,A.childNodes.length);break;case 3:D.setEndBefore(A);break;case 4:D.setEndAfter(A);};if (!C) this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'inline_elements':if (this._Range.startOffset==0){B=this._Range.startContainer;if (B.nodeType!=1) B=B.previousSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setStartBefore(B);if (B!=B.parentNode.firstChild) break;B=B.parentNode;}}};B=this._Range.endContainer;var C=this._Range.endOffset;if ((B.nodeType==3&&C>=B.nodeValue.length)||(B.nodeType==1&&C>=B.childNodes.length)||(B.nodeType!=1&&B.nodeType!=3)){if (B.nodeType!=1) B=B.nextSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setEndAfter(B);if (B!=B.parentNode.lastChild) break;B=B.parentNode;}}};break;case 'block_contents':case 'list_contents':var D=FCKListsLib.BlockBoundaries;if (A=='list_contents'||FCKConfig.EnterMode=='br') D=FCKListsLib.ListBoundaries;if (this.StartBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents') this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){var E=B.childNodes[this._Range.startOffset];if (E) B=FCKDomTools.GetPreviousSourceNode(E,true);else B=B.lastChild||B;}while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setStartBefore(B);B=B.previousSibling||B.parentNode;}};if (this.EndBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents'&&this.EndBlock.nodeName.toLowerCase()!='li') this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setEndAfter(B);B=B.nextSibling||B.parentNode;};if (B&&B.nodeName.toLowerCase()=='br') this._Range.setEndAfter(B);};this._UpdateElementInfo();}},SplitBlock:function(A){var B=A||FCKConfig.EnterMode;if (!this._Range) this.MoveToSelection();if (this.StartBlockLimit==this.EndBlockLimit){var C=this.StartBlock;var D=this.EndBlock;var E=null;if (B!='br'){if (!C){C=this.FixBlock(true,B);D=this.EndBlock;};if (!D) D=this.FixBlock(false,B);};var F=(C!=null&&this.CheckStartOfBlock());var G=(D!=null&&this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (C&&D&&C==D){if (G){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(D,4);D=null;}else if (F){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(C,3);C=null;}else{this.SetEnd(C,2);var H=this.ExtractContents();D=C.cloneNode(false);D.removeAttribute('id',false);H.AppendTo(D);FCKDomTools.InsertAfterNode(C,D);this.MoveToPosition(C,4);if (FCKBrowserInfo.IsGecko&&!C.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(C);}};return {PreviousBlock:C,NextBlock:D,WasStartOfBlock:F,WasEndOfBlock:G,ElementPath:E};};return null;},FixBlock:function(A,B){var C=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var D=this.Window.document.createElement(B);this.ExtractContents().AppendTo(D);FCKDomTools.TrimNode(D);if (FCKDomTools.CheckIsEmptyElement(D,function(element) { return element.getAttribute('_fck_bookmark')!='true';})&&FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);this.InsertNode(D);this.MoveToBookmark(C);return D;},Release:function(A){if (!A) this.Window=null;this.StartNode=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndNode=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;this._Cache=null;},CheckHasRange:function(){return!!this._Range;},GetTouchedStartNode:function(){var A=this._Range;var B=A.startContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.startOffset]||B;},GetTouchedEndNode:function(){var A=this._Range;var B=A.endContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.endOffset-1]||B;}}; +FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);var A=this.Window.getSelection();if (A&&A.rangeCount>0){this._Range=FCKW3CRange.CreateFromRange(this.Window.document,A.getRangeAt(0));this._UpdateElementInfo();}else if (this.Window.document) this.MoveToElementStart(this.Window.document.body);};FCKDomRange.prototype.Select=function(){var A=this._Range;if (A){var B=A.startContainer;if (A.collapsed&&B.nodeType==1&&B.childNodes.length==0) B.appendChild(A._Document.createTextNode(''));var C=this.Window.document.createRange();C.setStart(B,A.startOffset);try{C.setEnd(A.endContainer,A.endOffset);}catch (e){if (e.toString().Contains('NS_ERROR_ILLEGAL_VALUE')){A.collapse(true);C.setEnd(A.endContainer,A.endOffset);}else throw(e);};var D=this.Window.getSelection();D.removeAllRanges();D.addRange(C);}};FCKDomRange.prototype.SelectBookmark=function(A){var B=this.Window.document.createRange();var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);B.setStart(C.parentNode,FCKDomTools.GetIndexOf(C));FCKDomTools.RemoveNode(C);if (D){B.setEnd(D.parentNode,FCKDomTools.GetIndexOf(D));FCKDomTools.RemoveNode(D);};var E=this.Window.getSelection();E.removeAllRanges();E.addRange(B);}; +var FCKDomRangeIterator=function(A){this.Range=A;this.ForceBrBreak=false;this.EnforceRealBlocks=false;};FCKDomRangeIterator.CreateFromSelection=function(A){var B=new FCKDomRange(A);B.MoveToSelection();return new FCKDomRangeIterator(B);};FCKDomRangeIterator.prototype={GetNextParagraph:function(){var A;var B;var C;var D;var E;var F=this.ForceBrBreak?FCKListsLib.ListBoundaries:FCKListsLib.BlockBoundaries;if (!this._LastNode){var B=this.Range.Clone();B.Expand(this.ForceBrBreak?'list_contents':'block_contents');this._NextNode=B.GetTouchedStartNode();this._LastNode=B.GetTouchedEndNode();B=null;};var H=this._NextNode;var I=this._LastNode;this._NextNode=null;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]&&(!FCKBrowserInfo.IsIE||H.scopeName=='HTML')){if (M=='br') K=true;else if (!B&&H.childNodes.length==0&&M!='hr'){A=H;C=H==I;break;};if (B){B.SetEnd(H,3,true);if (M!='br') this._NextNode=FCKDomTools.GetNextSourceNode(H,true,null,I);};J=true;}else{if (H.firstChild){if (!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};H=H.firstChild;continue;};K=true;}}else if (H.nodeType==3){if (/^[\r\n\t ]+$/.test(H.nodeValue)) K=false;};if (K&&!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};C=((!J||K)&&H==I);if (B&&!J){while (!H.nextSibling&&!C){var N=H.parentNode;if (F[N.nodeName.toLowerCase()]){J=true;C=C||(N==I);break;};H=N;K=true;C=(H==I);L=true;}};if (K) B.SetEnd(H,4,true);if ((J||C)&&B){B._UpdateElementInfo();if (B.StartNode==B.EndNode&&B.StartNode.parentNode==B.StartBlockLimit&&B.StartNode.getAttribute&&B.StartNode.getAttribute('_fck_bookmark')) B=null;else break;};if (C) break;H=FCKDomTools.GetNextSourceNode(H,L,null,I);};if (!A){if (!B){this._NextNode=null;return null;};A=B.StartBlock;if (!A&&!this.EnforceRealBlocks&&B.StartBlockLimit.nodeName.IEquals('DIV','TH','TD')&&B.CheckStartOfBlock()&&B.CheckEndOfBlock()){A=B.StartBlockLimit;}else if (!A||(this.EnforceRealBlocks&&A.nodeName.toLowerCase()=='li')){A=this.Range.Window.document.createElement(FCKConfig.EnterMode=='p'?'p':'div');B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);B.InsertNode(A);D=true;E=true;}else if (A.nodeName.toLowerCase()!='li'){if (!B.CheckStartOfBlock()||!B.CheckEndOfBlock()){A=A.cloneNode(false);B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);var O=B.SplitBlock();D=!O.WasStartOfBlock;E=!O.WasEndOfBlock;B.InsertNode(A);}}else if (!C){this._NextNode=A==I?null:FCKDomTools.GetNextSourceNode(B.EndNode,true,null,I);return A;}};if (D){var P=A.previousSibling;if (P&&P.nodeType==1){if (P.nodeName.toLowerCase()=='br') P.parentNode.removeChild(P);else if (P.lastChild&&P.lastChild.nodeName.IEquals('br')) P.removeChild(P.lastChild);}};if (E){var Q=A.lastChild;if (Q&&Q.nodeType==1&&Q.nodeName.toLowerCase()=='br') A.removeChild(Q);};if (!this._NextNode) this._NextNode=(C||A==I)?null:FCKDomTools.GetNextSourceNode(A,true,null,I);return A;}}; +var FCKDocumentFragment=function(A,B){this.RootNode=B||A.createDocumentFragment();};FCKDocumentFragment.prototype={AppendTo:function(A){A.appendChild(this.RootNode);},AppendHtml:function(A){var B=this.RootNode.ownerDocument.createElement('div');B.innerHTML=A;FCKDomTools.MoveChildren(B,this.RootNode);},InsertAfterNode:function(A){FCKDomTools.InsertAfterNode(A,this.RootNode);}}; +var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&&this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.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 (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else if (E>C.childNodes.length-1){C=C.appendChild(this._Document.createTextNode(''));G=true;}else C=C.childNodes[E].previousSibling;};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i0&&levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&&M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&&topEnd&&(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)){var N=FCKDomTools.GetIndexOf(topEnd);if (G&&topEnd.parentNode==C.parentNode) N--;this.setStart(topEnd.parentNode,N);};this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&&D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);}}; +var FCKEnterKey=function(A,B,C,D){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var E=new FCKKeystrokeHandler(false);E._EnterKey=this;E.OnKeystroke=FCKEnterKey_OnKeystroke;E.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);this.TabText='';if (D>0||FCKBrowserInfo.IsSafari){while (D--) this.TabText+='\xa0';E.SetKeystrokes([9,'Tab']);};E.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();break;case 'Tab':return C.DoTab();break;case 'CtrlBackspace':return C.DoCtrlBackspace();break;}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){FCKUndo.SaveUndoStep();this._HasShift=(B===true);var C=FCKSelection.GetParentElement();var D=new FCKElementPath(C);var E=A||this.EnterMode;if (E=='br'||D.Block&&D.Block.tagName.toLowerCase()=='pre') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(E);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};var C=B.CheckIsCollapsed();if (!C){if (FCKBrowserInfo.IsIE&&this.Window.document.selection.type.toLowerCase()=="control"){var D=this.Window.document.selection.createRange();for (var i=D.length-1;i>=0;i--){var E=D.item(i);E.parentNode.removeChild(E);};return true;};return false;};if (FCKBrowserInfo.IsIE){var F=FCKDomTools.GetPreviousSourceElement(B.StartNode,true);if (F&&F.nodeName.toLowerCase()=='br'){var G=B.Clone();G.SetStart(F,4);if (G.CheckIsEmpty()){F.parentNode.removeChild(F);return true;}}};var H=B.StartBlock;var I=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&H&&I){if (!C){var J=B.CheckEndOfBlock();B.DeleteContents();if (H!=I){B.SetStart(I,1);B.SetEnd(I,1);};B.Select();A=(H==I);};if (B.CheckStartOfBlock()){var K=B.StartBlock;var L=FCKDomTools.GetPreviousSourceElement(K,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,L,K);}else if (FCKBrowserInfo.IsGeckoLike){B.Select();}};B.Release();return A;};FCKEnterKey.prototype.DoCtrlBackspace=function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(this.Window);A.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(A,this.Window.document.body)){this._FixIESelectAllBug(A);return true;};return false;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&&C&&C.nodeName.IEquals('LI')&&C.parentNode.parentNode.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};if (B&&B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&&C){if (C.nodeName.IEquals('LI')&&!B.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};var F=C.parentNode;var G=B.nodeName.toLowerCase();if (FCKListsLib.EmptyElements[G]!=null||G=='table'){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var H=F.parentNode;H.removeChild(F);F=H;};FCKDomTools.LTrimNode(C);FCKDomTools.RTrimNode(B);A.SetStart(B,2,true);A.Collapse(true);var I=A.CreateBookmark(true);if (!C.tagName.IEquals(['TABLE'])) FCKDomTools.MoveChildren(C,B);A.SelectBookmark(I);D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){FCKUndo.SaveUndoStep();var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGeckoLike)){var C=B.StartBlock;var D=FCKTools.GetElementAscensor(C,'td');var E=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL','TR'],true);if (D){var F=FCKTools.GetElementAscensor(E,'td');if (F!=D) return true;};A=this._ExecuteBackspace(B,C,E);};B.Release();return A;};FCKEnterKey.prototype.DoTab=function(){var A=new FCKDomRange(this.Window);A.MoveToSelection();var B=A._Range.startContainer;while (B){if (B.nodeType==1){var C=B.tagName.toLowerCase();if (C=="tr"||C=="td"||C=="th"||C=="tbody"||C=="table") return false;else break;};B=B.parentNode;};if (this.TabText){A.DeleteContents();A.InsertNode(this.Window.document.createTextNode(this.TabText));A.Collapse(false);A.Select();};return true;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);var D=C.SplitBlock(A);if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (F){if (F.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(F,F.parentNode);FCKDomTools.MoveNode(F,F.nextSibling,true);}}else if (E&&E.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(E,E.parentNode);C.MoveToElementEditStart(E.nextSibling);FCKDomTools.MoveNode(E,E.previousSibling);};if (!G&&!H){if (F.nodeName.IEquals('li')&&F.firstChild&&F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(FCKTools.GetElementDocument(F).createTextNode('\xa0'),F.firstChild);if (F) C.MoveToElementEditStart(F);}else{if (G&&H&&E.tagName.toUpperCase()=='LI'){C.MoveToElementStart(E);this._OutdentWithSelection(E,C);C.Release();return true;};var I;if (E){var J=E.tagName.toUpperCase();if (!this._HasShift&&!(/^H[1-6]$/).test(J)){I=FCKDomTools.CloneElement(E);}}else if (F) I=FCKDomTools.CloneElement(F);if (!I) I=this.Window.document.createElement(A);var K=D.ElementPath;if (K){for (var i=0,len=K.Elements.length;i=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);}}};FCKEmbedAndObjectProcessor=(function(){var A=[];var B=function(el){var C=el.cloneNode(true);var D;var E=D=FCKDocumentProcessor_CreateFakeImage('FCK__UnknownObject',C);FCKEmbedAndObjectProcessor.RefreshView(E,el);for (var i=0;i=0;i--) B(G[i]);};var H=function(doc){F('object',doc);F('embed',doc);};return FCKTools.Merge(FCKDocumentProcessor.AppendNew(),{ProcessDocument:function(doc){if (FCKBrowserInfo.IsGecko) FCKTools.RunFunction(H,this,[doc]);else H(doc);},RefreshView:function(placeHolder,original){if (original.getAttribute('width')>0) placeHolder.style.width=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('width'));if (original.getAttribute('height')>0) placeHolder.style.height=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('height'));},AddCustomHandler:function(func){A.push(func);}});})();FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};if (FCKBrowserInfo.IsIE){FCKDocumentProcessor.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);}}};FCKEmbedAndObjectProcessor.AddCustomHandler(function(A,B){if (!(A.nodeName.IEquals('embed')&&(A.type=='application/x-shockwave-flash'||/\.swf($|#|\?)/i.test(A.src)))) return;B.className='FCK__Flash';B.setAttribute('_fckflash','true',0);});if (FCKBrowserInfo.IsSafari){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByClassName?A.getElementsByClassName('Apple-style-span'):Array.prototype.filter.call(A.getElementsByTagName('span'),function(item){ return item.className=='Apple-style-span';});for (var i=B.length-1;i>=0;i--) FCKDomTools.RemoveNode(B[i],true);}}; +var FCKSelection=FCK.Selection={GetParentBlock:function(){var A=this.GetParentElement();while (A){if (FCKListsLib.BlockBoundaries[A.nodeName.toLowerCase()]) break;A=A.parentNode;};return A;},ApplyStyle:function(A){FCKStyles.ApplyStyle(new FCKStyle(A));}}; +FCKSelection.GetType=function(){var A='Text';var B;try { B=this.GetSelection();} catch (e) {};if (B&&B.rangeCount==1){var C=B.getRangeAt(0);if (C.startContainer==C.endContainer&&(C.endOffset-C.startOffset)==1&&C.startContainer.nodeType==1&&FCKListsLib.StyleObjectElements[C.startContainer.childNodes[C.startOffset].nodeName.toLowerCase()]){A='Control';}};return A;};FCKSelection.GetSelectedElement=function(){var A=!!FCK.EditorWindow&&this.GetSelection();if (!A||A.rangeCount<1) return null;var B=A.getRangeAt(0);if (B.startContainer!=B.endContainer||B.startContainer.nodeType!=1||B.startOffset!=B.endOffset-1) return null;var C=B.startContainer.childNodes[B.startOffset];if (C.nodeType!=1) return null;return C;};FCKSelection.GetParentElement=function(){if (this.GetType()=='Control') return FCKSelection.GetSelectedElement().parentNode;else{var A=this.GetSelection();if (A){if (A.anchorNode&&A.anchorNode==A.focusNode){var B=A.getRangeAt(0);if (B.collapsed||B.startContainer.nodeType==3) return A.anchorNode.parentNode;else return A.anchorNode;};var C=new FCKElementPath(A.anchorNode);var D=new FCKElementPath(A.focusNode);var E=null;var F=null;if (C.Elements.length>D.Elements.length){E=C.Elements;F=D.Elements;}else{E=D.Elements;F=C.Elements;};var G=E.length-F.length;for(var i=0;i0){var C=B.getRangeAt(A?0:(B.rangeCount-1));var D=A?C.startContainer:C.endContainer;return (D.nodeType==1?D:D.parentNode);}};return null;};FCKSelection.SelectNode=function(A){var B=FCK.EditorDocument.createRange();B.selectNode(A);var C=this.GetSelection();C.removeAllRanges();C.addRange(B);};FCKSelection.Collapse=function(A){var B=this.GetSelection();if (A==null||A===true) B.collapseToStart();else B.collapseToEnd();};FCKSelection.HasAncestorNode=function(A){var B=this.GetSelectedElement();if (!B&&FCK.EditorWindow){try { B=this.GetSelection().getRangeAt(0).startContainer;}catch(e){}}while (B){if (B.nodeType==1&&B.nodeName.IEquals(A)) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B;var C=this.GetSelectedElement();if (!C) C=this.GetSelection().getRangeAt(0).startContainer;while (C){if (C.nodeName.IEquals(A)) return C;C=C.parentNode;};return null;};FCKSelection.Delete=function(){var A=this.GetSelection();for (var i=0;i=0;i--){if (C[i]) FCKTableHandler.DeleteRows(C[i]);};return;};var E=FCKTools.GetElementAscensor(A,'TABLE');if (E.rows.length==1){FCKTableHandler.DeleteTable(E);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();if (A.parentNode.childNodes.length==1) A.parentNode.parentNode.removeChild(A.parentNode);else A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(A){var B=null;var C=this.GetSelectedCells();if (C&&C.length) B=C[A?0:(C.length-1)];if (!B) return;var D=FCKTools.GetElementAscensor(B,'TABLE');var E=B.cellIndex;for (var i=0;i=0;i--){if (B[i]) FCKTableHandler.DeleteColumns(B[i]);};return;};if (!A) return;var C=FCKTools.GetElementAscensor(A,'TABLE');var D=A.cellIndex;for (var i=C.rows.length-1;i>=0;i--){var E=C.rows[i];if (D==0&&E.cells.length==1){FCKTableHandler.DeleteRows(E);continue;};if (E.cells[D]) E.removeChild(E.cells[D]);}};FCKTableHandler.InsertCell=function(A,B){var C=null;var D=this.GetSelectedCells();if (D&&D.length) C=D[B?0:(D.length-1)];if (!C) return null;var E=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(E);if (!B&&C.cellIndex==C.parentNode.cells.length-1) C.parentNode.appendChild(E);else C.parentNode.insertBefore(E,B?C:C.nextSibling);return E;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler._MarkCells=function(A,B){for (var i=0;i=E.height){for (D=F;D0){var L=K.removeChild(K.firstChild);if (L.nodeType!=1||(L.getAttribute('type',2)!='_moz'&&L.getAttribute('_moz_dirty')!=null)){I.appendChild(L);J++;}}};if (J>0) I.appendChild(FCKTools.GetElementDocument(B).createElement('br'));};this._ReplaceCellsByMarker(C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.parentNode);B.appendChild(I);if (FCKBrowserInfo.IsGeckoLike&&(!B.firstChild)) FCKTools.AppendBogusBr(B);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeRight=function(){var A=this.GetMergeRightTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCK.EditorDocument.createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));D.parentNode.removeChild(D);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeDown=function(){var A=this.GetMergeDownTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCKTools.GetElementDocument(B).createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(FCKTools.GetElementDocument(D).createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.HorizontalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;if (F>1){var G=Math.ceil(F/2);var H=FCKTools.GetElementDocument(B).createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H);var I=E+G;var J=E+F;var K=isNaN(B.rowSpan)?1:B.rowSpan;for (var r=D;r1){B.rowSpan=Math.ceil(E/2);var G=F+Math.ceil(E/2);var H=null;for (var i=D+1;iG) L.insertBefore(K,L.rows[G]);else L.appendChild(K);for (var i=0;i0){var D=B.rows[0];D.parentNode.removeChild(D);};for (var i=0;iF) F=j;if (E._colScanned===true) continue;if (A[i][j-1]==E) E.colSpan++;if (A[i][j+1]!=E) E._colScanned=true;}};for (var i=0;i<=F;i++){for (var j=0;j ';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();B.InsertNode(A);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGeckoLike){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCKTools.RemoveOuterTags(A);return;};FCK.ExecuteNamedCommand(this.Name);};FCKUnlinkCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState(this.Name);if (A==0&&FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&&B.name.length>0&&B.href.length==0);if (C) A=-1;};return A;};FCKVisitLinkCommand=function(){this.Name='VisitLink';};FCKVisitLinkCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState('Unlink');if (A==0){var B=FCKSelection.MoveToAncestorNode('A');if (!B.href) A=-1;};return A;},Execute:function(){var A=FCKSelection.MoveToAncestorNode('A');var B=A.getAttribute('_fcksavedurl')||A.getAttribute('href',2);if (!/:\/\//.test(B)){var C=FCKConfig.BaseHref;var D=FCK.GetInstanceObject('parent');if (!C){C=D.document.location.href;C=C.substring(0,C.lastIndexOf('/')+1);};if (/^\//.test(B)){try{C=C.match(/^.*:\/\/+[^\/]+/)[0];}catch (e){C=D.document.location.protocol+'://'+D.parent.document.location.host;}};B=C+B;};if (!window.open(B,'_blank')) alert(FCKLang.VisitLinkBlocked);}};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype.Execute=function(){if (FCK.EditMode==0){FCK.ExecuteNamedCommand('SelectAll');}else{var A=FCK.EditingArea.Textarea;if (FCKBrowserInfo.IsIE){A.createTextRange().execCommand('SelectAll');}else{A.selectionStart=0;A.selectionEnd=A.value.length;};A.focus();}};FCKSelectAllCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCutCopyCommand=function(A){this.Name=A?'Cut':'Copy';};FCKCutCopyCommand.prototype={Execute:function(){var A=false;if (FCKBrowserInfo.IsIE){var B=function(){A=true;};var C='on'+this.Name.toLowerCase();FCK.EditorDocument.body.attachEvent(C,B);FCK.ExecuteNamedCommand(this.Name);FCK.EditorDocument.body.detachEvent(C,B);}else{try{FCK.ExecuteNamedCommand(this.Name);A=true;}catch(e){}};if (!A) alert(FCKLang['PasteError'+this.Name]);},GetState:function(){return FCK.EditMode!=0?-1:FCK.GetNamedCommandState('Cut');}};var FCKAnchorDeleteCommand=function(){this.Name='AnchorDelete';};FCKAnchorDeleteCommand.prototype={Execute:function(){if (FCK.Selection.GetType()=='Control'){FCK.Selection.Delete();}else{var A=FCK.Selection.GetSelectedElement();if (A){if (A.tagName=='IMG'&&A.getAttribute('_fckanchor')) oAnchor=FCK.GetRealElement(A);else A=null;};if (!A){oAnchor=FCK.Selection.MoveToAncestorNode('A');if (oAnchor) FCK.Selection.SelectNode(oAnchor);};if (oAnchor.href.length!=0){oAnchor.removeAttribute('name');if (FCKBrowserInfo.IsIE) oAnchor.className=oAnchor.className.replace(FCKRegexLib.FCK_Class,'');return;};if (A){A.parentNode.removeChild(A);return;};if (oAnchor.innerHTML.length==0){oAnchor.parentNode.removeChild(oAnchor);return;};FCKTools.RemoveOuterTags(oAnchor);};if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Unlink');}};var FCKDeleteDivCommand=function(){};FCKDeleteDivCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCKSelection.GetParentElement();var B=new FCKElementPath(A);return B.BlockLimit&&B.BlockLimit.nodeName.IEquals('div')?0:-1;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCKDomTools.GetSelectedDivContainers();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();for (var i=0;i\n \n
      \n '+FCKLang.ColorAutomatic+'\n \n ';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_AutoOnClick,this);if (!FCKBrowserInfo.IsIE) C.style.width='96%';var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H
      ';if (H>=G.length) C.style.visibility='hidden';else FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_OnClick,[this,L]);}};if (FCKConfig.EnableMoreFontColors){E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='
      '+FCKLang.ColorMoreColors+'
      ';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_MoreOnClick,this);};if (!FCKBrowserInfo.IsIE) C.style.width='96%';}; +var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');}; +var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCK.EditMode!=0||FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');}; +var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (!FCKBrowserInfo.IsGecko){switch (this.Name){case 'TableMergeRight':return FCKTableHandler.MergeRight();case 'TableMergeDown':return FCKTableHandler.MergeDown();}};switch (this.Name){case 'TableInsertRowAfter':return FCKTableHandler.InsertRow(false);case 'TableInsertRowBefore':return FCKTableHandler.InsertRow(true);case 'TableDeleteRows':return FCKTableHandler.DeleteRows();case 'TableInsertColumnAfter':return FCKTableHandler.InsertColumn(false);case 'TableInsertColumnBefore':return FCKTableHandler.InsertColumn(true);case 'TableDeleteColumns':return FCKTableHandler.DeleteColumns();case 'TableInsertCellAfter':return FCKTableHandler.InsertCell(null,false);case 'TableInsertCellBefore':return FCKTableHandler.InsertCell(null,true);case 'TableDeleteCells':return FCKTableHandler.DeleteCells();case 'TableMergeCells':return FCKTableHandler.MergeCells();case 'TableHorizontalSplitCell':return FCKTableHandler.HorizontalSplitCell();case 'TableVerticalSplitCell':return FCKTableHandler.VerticalSplitCell();case 'TableDelete':return FCKTableHandler.DeleteTable();default:return alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){if (FCK.EditorDocument!=null&&FCKSelection.HasAncestorNode('TABLE')){switch (this.Name){case 'TableHorizontalSplitCell':case 'TableVerticalSplitCell':if (FCKTableHandler.GetSelectedCells().length==1) return 0;else return -1;case 'TableMergeCells':if (FCKTableHandler.CheckIsSelectionRectangular()&&FCKTableHandler.GetSelectedCells().length>1) return 0;else return -1;case 'TableMergeRight':return FCKTableHandler.GetMergeRightTarget()?0:-1;case 'TableMergeDown':return FCKTableHandler.GetMergeDownTarget()?0:-1;default:return 0;}}else return -1;}; +var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;var H=new FCKDomRange(FCK.EditorWindow);H.MoveToSelection();var I=FCKTools.GetScrollPosition(FCK.EditorWindow);if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1){G._fckSavedStyles=FCKTools.SaveStyles(G);G.style.zIndex=FCKConfig.FloatingPanelsZIndex-1;}};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var J=FCKTools.GetViewPaneSize(C);B.position="absolute";A.offsetLeft;B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=J.Width+"px";B.height=J.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);var K=FCKTools.GetWindowPosition(C,A);if (K.x!=0) B.left=(-1*K.x)+"px";if (K.y!=0) B.top=(-1*K.y)+"px";this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();if (FCK.EditMode==0) FCK.EditingArea.MakeEditable();FCK.Focus();H.Select();FCK.EditorWindow.scrollTo(I.X,I.Y);};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';}; +var FCKListCommand=function(A,B){this.Name=A;this.TagName=B;};FCKListCommand.prototype={GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=FCKSelection.GetBoundaryParentElement(true);var B=A;while (B){if (B.nodeName.IEquals(['ul','ol'])) break;B=B.parentNode;};if (B&&B.nodeName.IEquals(this.TagName)) return 1;else return 0;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCK.EditorDocument;var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=this.GetState();if (C==0){FCKDomTools.TrimNode(A.body);if (!A.body.firstChild){var D=A.createElement('p');A.body.appendChild(D);B.MoveToNodeContents(D);}};var E=B.CreateBookmark();var F=[];var G={};var H=new FCKDomRangeIterator(B);var I;H.ForceBrBreak=(C==0);var J=true;var K=null;while (J){while ((I=H.GetNextParagraph())){var L=new FCKElementPath(I);var M=null;var N=false;var O=L.BlockLimit;for (var i=L.Elements.length-1;i>=0;i--){var P=L.Elements[i];if (P.nodeName.IEquals(['ol','ul'])){if (O._FCK_ListGroupObject) O._FCK_ListGroupObject=null;var Q=P._FCK_ListGroupObject;if (Q) Q.contents.push(I);else{Q={ 'root':P,'contents':[I] };F.push(Q);FCKDomTools.SetElementMarker(G,P,'_FCK_ListGroupObject',Q);};N=true;break;}};if (N) continue;var R=O;if (R._FCK_ListGroupObject) R._FCK_ListGroupObject.contents.push(I);else{var Q={ 'root':R,'contents':[I] };FCKDomTools.SetElementMarker(G,R,'_FCK_ListGroupObject',Q);F.push(Q);}};if (FCKBrowserInfo.IsIE) J=false;else{if (K==null){K=[];var T=FCKSelection.GetSelection();if (T&&F.length==0) K.push(T.getRangeAt(0));for (var i=1;T&&i0){var Q=F.shift();if (C==0){if (Q.root.nodeName.IEquals(['ul','ol'])) this._ChangeListType(Q,G,W);else this._CreateList(Q,W);}else if (C==1&&Q.root.nodeName.IEquals(['ul','ol'])) this._RemoveList(Q,G);};for (var i=0;iC[i-1].indent+1){var H=C[i-1].indent+1-C[i].indent;var I=C[i].indent;while (C[i]&&C[i].indent>=I){C[i].indent+=H;i++;};i--;}};var J=FCKDomTools.ArrayToList(C,B);if (A.root.nextSibling==null||A.root.nextSibling.nodeName.IEquals('br')){if (J.listNode.lastChild.nodeName.IEquals('br')) J.listNode.removeChild(J.listNode.lastChild);};A.root.parentNode.replaceChild(J.listNode,A.root);}}; +var FCKJustifyCommand=function(A){this.AlignValue=A;var B=FCKConfig.ContentLangDirection.toLowerCase();this.IsDefaultAlign=(A=='left'&&B=='ltr')||(A=='right'&&B=='rtl');var C=this._CssClassName=(function(){var D=FCKConfig.JustifyClasses;if (D){switch (A){case 'left':return D[0]||null;case 'center':return D[1]||null;case 'right':return D[2]||null;case 'justify':return D[3]||null;}};return null;})();if (C&&C.length>0) this._CssClassRegex=new RegExp('(?:^|\\s+)'+C+'(?=$|\\s)');};FCKJustifyCommand._GetClassNameRegex=function(){var A=FCKJustifyCommand._ClassRegex;if (A!=undefined) return A;var B=[];var C=FCKConfig.JustifyClasses;if (C){for (var i=0;i<4;i++){var D=C[i];if (D&&D.length>0) B.push(D);}};if (B.length>0) A=new RegExp('(?:^|\\s+)(?:'+B.join('|')+')(?=$|\\s)');else A=null;return FCKJustifyCommand._ClassRegex=A;};FCKJustifyCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=this.GetState();if (B==-1) return;var C=A.CreateBookmark();var D=this._CssClassName;var E=new FCKDomRangeIterator(A);var F;while ((F=E.GetNextParagraph())){F.removeAttribute('align');if (D){var G=F.className.replace(FCKJustifyCommand._GetClassNameRegex(),'');if (B==0){if (G.length>0) G+=' ';F.className=G+D;}else if (G.length==0) FCKDomTools.RemoveAttribute(F,'class');}else{var H=F.style;if (B==0) H.textAlign=this.AlignValue;else{H.textAlign='';if (H.cssText.length==0) F.removeAttribute('style');}}};A.MoveToBookmark(C);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;var C;if (FCKBrowserInfo.IsIE) C=B.currentStyle.textAlign;else C=FCK.EditorWindow.getComputedStyle(B,'').getPropertyValue('text-align');C=C.replace(/(-moz-|-webkit-|start|auto)/i,'');if ((!C&&this.IsDefaultAlign)||C==this.AlignValue) return 1;return 0;}}; +var FCKIndentCommand=function(A,B){this.Name=A;this.Offset=B;this.IndentCSSProperty=FCKConfig.ContentLangDirection.IEquals('ltr')?'marginLeft':'marginRight';};FCKIndentCommand._InitIndentModeParameters=function(){if (FCKConfig.IndentClasses&&FCKConfig.IndentClasses.length>0){this._UseIndentClasses=true;this._IndentClassMap={};for (var i=0;i0?H+' ':'')+FCKConfig.IndentClasses[G-1];}else{var I=parseInt(E.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;I+=this.Offset;I=Math.max(I,0);I=Math.ceil(I/this.Offset)*this.Offset;E.style[this.IndentCSSProperty]=I?I+FCKConfig.IndentUnit:'';if (E.getAttribute('style')=='') E.removeAttribute('style');}}},_IndentList:function(A,B){var C=A.StartContainer;var D=A.EndContainer;while (C&&C.parentNode!=B) C=C.parentNode;while (D&&D.parentNode!=B) D=D.parentNode;if (!C||!D) return;var E=C;var F=[];var G=false;while (G==false){if (E==D) G=true;F.push(E);E=E.nextSibling;};if (F.length<1) return;var H=FCKDomTools.GetParents(B);for (var i=0;iN;i++) M[i].indent+=I;var O=FCKDomTools.ArrayToList(M);if (O) B.parentNode.replaceChild(O.listNode,B);FCKDomTools.ClearAllMarkers(L);}}; +var FCKBlockQuoteCommand=function(){};FCKBlockQuoteCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=this.GetState();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();if (FCKBrowserInfo.IsIE){var D=B.GetBookmarkNode(C,true);var E=B.GetBookmarkNode(C,false);var F;if (D&&D.parentNode.nodeName.IEquals('blockquote')&&!D.previousSibling){F=D;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]) FCKDomTools.MoveNode(D,F,true);}};if (E&&E.parentNode.nodeName.IEquals('blockquote')&&!E.previousSibling){F=E;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]){if (F.firstChild==D) FCKDomTools.InsertAfterNode(D,E);else FCKDomTools.MoveNode(E,F,true);}}}};var G=new FCKDomRangeIterator(B);var H;if (A==0){G.EnforceRealBlocks=true;var I=[];while ((H=G.GetNextParagraph())) I.push(H);if (I.length<1){para=B.Window.document.createElement(FCKConfig.EnterMode.IEquals('p')?'p':'div');B.InsertNode(para);para.appendChild(B.Window.document.createTextNode('\ufeff'));B.MoveToBookmark(C);B.MoveToNodeContents(para);B.Collapse(true);C=B.CreateBookmark();I.push(para);};var J=I[0].parentNode;var K=[];for (var i=0;i0){H=I.shift();while (H.parentNode!=J) H=H.parentNode;if (H!=L) K.push(H);L=H;}while (K.length>0){H=K.shift();if (H.nodeName.IEquals('blockquote')){var M=FCKTools.GetElementDocument(H).createDocumentFragment();while (H.firstChild){M.appendChild(H.removeChild(H.firstChild));I.push(M.lastChild);};H.parentNode.replaceChild(M,H);}else I.push(H);};var N=B.Window.document.createElement('blockquote');J.insertBefore(N,I[0]);while (I.length>0){H=I.shift();N.appendChild(H);}}else if (A==1){var O=[];while ((H=G.GetNextParagraph())){var P=null;var Q=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('blockquote')){P=H.parentNode;Q=H;break;};H=H.parentNode;};if (P&&Q) O.push(Q);};var R=[];while (O.length>0){var S=O.shift();var N=S.parentNode;if (S==S.parentNode.firstChild){N.parentNode.insertBefore(N.removeChild(S),N);if (!N.firstChild) N.parentNode.removeChild(N);}else if (S==S.parentNode.lastChild){N.parentNode.insertBefore(N.removeChild(S),N.nextSibling);if (!N.firstChild) N.parentNode.removeChild(N);}else FCKDomTools.BreakParent(S,S.parentNode,B);R.push(S);};if (FCKConfig.EnterMode.IEquals('br')){while (R.length){var S=R.shift();var W=true;if (S.nodeName.IEquals('div')){var M=FCKTools.GetElementDocument(S).createDocumentFragment();var Y=W&&S.previousSibling&&!FCKListsLib.BlockBoundaries[S.previousSibling.nodeName.toLowerCase()];if (W&&Y) M.appendChild(FCKTools.GetElementDocument(S).createElement('br'));var Z=S.nextSibling&&!FCKListsLib.BlockBoundaries[S.nextSibling.nodeName.toLowerCase()];while (S.firstChild) M.appendChild(S.removeChild(S.firstChild));if (Z) M.appendChild(FCKTools.GetElementDocument(S).createElement('br'));S.parentNode.replaceChild(M,S);W=false;}}}};B.MoveToBookmark(C);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;for (var i=0;i';B.open();B.write(''+F+'<\/head><\/body><\/html>');B.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.Panel_Contructor(B,window.document.location);FCKTools.AddEventListenerEx(E,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(E,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;FCKTools.AddEventListener(B,'contextmenu',FCKTools.CancelEvent);this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;var E=this.MainNode;if (this._Popup){this._Popup.show(x,y,0,0,A);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,E.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCK.ToolbarSet.CurrentInstance.FocusManager)!='undefined') FCK.ToolbarSet.CurrentInstance.FocusManager.Lock();if (this.ParentPanel){this.ParentPanel.Lock();FCKPanel_Window_OnBlur(null,this.ParentPanel);};if (FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac){this._IFrame.scrolling='';FCKTools.RunFunction(function(){ this._IFrame.scrolling='no';},this);};if (FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel&&FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel!=this) FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel.Hide(false,true);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (!B) this._IFrame.width=1;if (!C) this._IFrame.height=1;D=E.offsetWidth||E.firstChild.offsetWidth;var F=FCKTools.GetDocumentPosition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(this._IFrame.parentNode);if (G){var H=FCKTools.GetDocumentPosition(FCKTools.GetElementWindow(G),G);F.x-=H.x;F.y-=H.y;};if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=F.x;y+=F.y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var I=FCKTools.GetViewPaneSize(this._Window);var J=FCKTools.GetScrollPosition(this._Window);var K=I.Height+J.Y;var L=I.Width+J.X;if ((x+D)>L) x-=x+D-L;if ((y+E.offsetHeight)>K) y-=y+E.offsetHeight-K;};FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});this._IFrame.contentWindow.focus();this._IsOpened=true;var M=this;this._resizeTimer=setTimeout(function(){var N=E.offsetWidth||E.firstChild.offsetWidth;var O=E.offsetHeight;M._IFrame.style.width=N+'px';M._IFrame.style.height=O+'px';},0);FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel=this;};FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A,B){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter>0) return;if (typeof(FCKFocusManager)!='undefined'&&!B) FCKFocusManager.Unlock();this._IFrame.style.width=this._IFrame.style.height='0px';this._IsOpened=false;if (this._resizeTimer){clearTimeout(this._resizeTimer);this._resizeTimer=null;};if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;}; +var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url("'+this.Path+'")';}}else{if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;}else{B=A.createElement('IMG');B.src=this.Path?this.Path:FCK_SPACER_PATH;}};B.className='TB_Button_Image';return B;}; +var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this.MainElement=B.createElement('DIV');C.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) C.onmousedown=FCKTools.CancelEvent;FCKTools.AddEventListenerEx(C,'mouseover',FCKToolbarButtonUI_OnMouseOver,this);FCKTools.AddEventListenerEx(C,'mouseout',FCKToolbarButtonUI_OnMouseOut,this);FCKTools.AddEventListenerEx(C,'click',FCKToolbarButtonUI_OnClick,this);this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){C.appendChild(this.Icon.CreateIconElement(B));}else{var D=C.appendChild(B.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(B));else F.appendChild(this._CreatePaddingElement(B));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(B.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(B));};F=E.insertCell(-1);var G=F.appendChild(B.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(B));};A.appendChild(C);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;if (!e) return;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';break;case 1:e.className='TB_Button_On';break;case -1:e.className='TB_Button_Disabled';break;};this.State=A;};function FCKToolbarButtonUI_OnMouseOver(A,B){if (B.State==0) this.className='TB_Button_Off_Over';else if (B.State==1) this.className='TB_Button_On_Over';};function FCKToolbarButtonUI_OnMouseOut(A,B){if (B.State==0) this.className='TB_Button_Off';else if (B.State==1) this.className='TB_Button_On';};function FCKToolbarButtonUI_OnClick(A,B){if (B.OnClick&&B.State!=-1) B.OnClick(B);};function FCKToolbarButtonUI_Cleanup(){this.MainElement=null;}; +var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];else this.IconPath=G;};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=this._UIButton;if (!A) return;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B==A.State) return;A.ChangeState(B);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);}; +var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label=' ';this.Caption=A;this.Tooltip=A;this.Style=2;this.Enabled=true;this.Items={};this._Panel=new FCKPanel(E||window);this._Panel.AppendStyleSheet(FCKConfig.SkinEditorCSS);this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='
      ';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(A,B,C){this.className=this.originalClass;B._Panel.Hide();B.SetLabel(this.FCKItemLabel);if (typeof(B.OnSelect)=='function') B.OnSelect(C,this);};FCKSpecialCombo.prototype.ClearItems=function (){if (this.Items) this.Items={};var A=this._ItemsHolderEl;while (A.firstChild) A.removeChild(A.firstChild);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemLabel=C||A;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;FCKTools.AddEventListenerEx(E,'mouseover',FCKSpecialCombo_ItemOnMouseOver);FCKTools.AddEventListenerEx(E,'mouseout',FCKSpecialCombo_ItemOnMouseOut);FCKTools.AddEventListenerEx(E,'click',FCKSpecialCombo_ItemOnClick,[this,A]);this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){if (typeof A=='string') A=this.Items[A.toString().toLowerCase()];if (A){A.className=A.originalClass='SC_ItemSelected';A.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){if (!this.Items[i]) continue;this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){A=(!A||A.length==0)?' ':A;if (A==this.Label) return;this.Label=A;var B=this._LabelEl;if (B){B.innerHTML=A;FCKTools.DisableSelection(B);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;if (this._OuterTable) this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case 0:D='TB_ButtonType_Icon';E=false;break;case 1:D='TB_ButtonType_Text';E=false;break;case 2:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='
       
      ';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='
      '+this.Caption+'
      ';};FCKTools.AddEventListenerEx(G,'mouseover',FCKSpecialCombo_OnMouseOver,this);FCKTools.AddEventListenerEx(G,'mouseout',FCKSpecialCombo_OnMouseOut,this);FCKTools.AddEventListenerEx(G,'click',FCKSpecialCombo_OnClick,this);FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var A in this.Items) this.Items[A]=null;}};function FCKSpecialCombo_OnMouseOver(A,B){if (B.Enabled){switch (B.Style){case 0:this.className='TB_Button_On_Over';break;case 1:this.className='TB_Button_On_Over';break;case 2:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(A,B){switch (B.Style){case 0:this.className='TB_Button_Off';break;case 1:this.className='TB_Button_Off';break;case 2:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e,A){if (A.Enabled){var B=A._Panel;var C=A._PanelBox;var D=A._ItemsHolderEl;var E=A.PanelMaxHeight;if (A.OnBeforeClick) A.OnBeforeClick(A);if (FCKBrowserInfo.IsIE) B.Preload(0,this.offsetHeight,this);if (D.offsetHeight>E) C.style.height=E+'px';else C.style.height='';B.Show(0,this.offsetHeight,this);}}; +var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;this.FieldWidth=null;this.PanelWidth=null;this.PanelMaxHeight=null;};FCKToolbarSpecialCombo.prototype.DefaultLabel='';function FCKToolbarSpecialCombo_OnSelect(A,B){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(A,B);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(A,B){A.DeselectAll();A.SelectItem(B);A.SetLabelById(B);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=-1){A=1;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!==B){this._LastValue=B;if (!B||B.length==0){this._Combo.DeselectAll();this._Combo.SetLabel(this.DefaultLabel);}else FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=-1;if (A==this.State) return;if (A==-1){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=-1);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=-1;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);}; +var FCKToolbarStyleCombo=function(A,B){if (A===false) return;this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultStyleLabel||'';};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.GetStyles=function(){var A={};var B=FCK.ToolbarSet.CurrentInstance.Styles.GetStyles();for (var C in B){var D=B[C];if (!D.IsCore) A[C]=D;};return A;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);FCKTools.AppendStyleString(B,FCKConfig.EditorAreaStyles);B.body.className+=' ForceBaseFont';FCKConfig.ApplyBodyAttributes(B.body);var C=this.GetStyles();for (var D in C){var E=C[D];var F=E.GetType()==2?D:FCKToolbarStyleCombo_BuildPreview(E,E.Label||D);var G=A.AddItem(D,F);G.Style=E;};A.OnBeforeClick=this.StyleCombo_OnBeforeClick;};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Elements;for (var e=0;e');var E=A.Element;if (E=='bdo') E='span';D=['<',E];var F=A._StyleDesc.Attributes;if (F){for (var G in F){D.push(' ',G,'="',A.GetFinalAttributeValue(G),'"');}};if (A._GetStyleText().length>0) D.push(' style="',A.GetFinalStyleValue(),'"');D.push('>',B,'');if (C==0) D.push('');return D.join('');}; +var FCKToolbarFontFormatCombo=function(A,B){if (A===false) return;this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;this.DefaultLabel=FCKConfig.DefaultFontFormatLabel||'';};FCKToolbarFontFormatCombo.prototype=new FCKToolbarStyleCombo(false);FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.GetStyles=function(){var A={};var B=FCKLang['FontFormats'].split(';');var C={p:B[0],pre:B[1],address:B[2],h1:B[3],h2:B[4],h3:B[5],h4:B[6],h5:B[7],h6:B[8],div:B[9]||(B[0]+' (DIV)')};var D=FCKConfig.FontFormats.split(';');for (var i=0;i';G.open();G.write(''+H+''+document.getElementById('xToolbarSpace').innerHTML+'');G.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.ToolbarSet_InitOutFrame(G);FCKTools.AddEventListener(G,'contextmenu',FCKTools.CancelEvent);FCKTools.AppendStyleSheet(G,FCKConfig.SkinEditorCSS);B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;if (!B.ToolbarItems) B.ToolbarItems=FCKToolbarItems;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;FCKTools.AddEventListener(B,'click',FCKToolbarSet_Expand_OnClick);C.title=FCKLang.ToolbarCollapse;FCKTools.AddEventListener(C,'click',FCKToolbarSet_Collapse_OnClick);if (!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;x0) break;}catch (e){break;};D=D.parent;};var E=D.document;var F=function(){if (!B) B=FCKConfig.FloatingPanelsZIndex+999;return++B;};var G=function(){if (!C) return;var H=FCKTools.IsStrictMode(E)?E.documentElement:E.body;FCKDomTools.SetElementStyles(C,{'width':Math.max(H.scrollWidth,H.clientWidth,E.scrollWidth||0)-1+'px','height':Math.max(H.scrollHeight,H.clientHeight,E.scrollHeight||0)-1+'px'});};return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow,resizable){if (!A) this.DisplayMainCover();var I={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};FCK.ToolbarSet.CurrentInstance.Selection.Save();var J=FCKTools.GetViewPaneSize(D);var K={ 'X':0,'Y':0 };var L=FCKBrowserInfo.IsIE&&(!FCKBrowserInfo.IsIE7||!FCKTools.IsStrictMode(D.document));if (L) K=FCKTools.GetScrollPosition(D);var M=Math.max(K.Y+(J.Height-height-20)/2,0);var N=Math.max(K.X+(J.Width-width-20)/2,0);var O=E.createElement('iframe');FCKTools.ResetStyles(O);O.src=FCKConfig.BasePath+'fckdialog.html';O.frameBorder=0;O.allowTransparency=true;FCKDomTools.SetElementStyles(O,{'position':(L)?'absolute':'fixed','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});O._DialogArguments=I;E.body.appendChild(O);O._ParentDialog=A;A=O;},OnDialogClose:function(dialogWindow){var O=dialogWindow.frameElement;FCKDomTools.RemoveNode(O);if (O._ParentDialog){A=O._ParentDialog;O._ParentDialog.contentWindow.SetEnabled(true);}else{if (!FCKBrowserInfo.IsIE) FCK.Focus();this.HideMainCover();setTimeout(function(){ A=null;},0);FCK.ToolbarSet.CurrentInstance.Selection.Release();}},DisplayMainCover:function(){C=E.createElement('div');FCKTools.ResetStyles(C);FCKDomTools.SetElementStyles(C,{'position':'absolute','zIndex':F(),'top':'0px','left':'0px','backgroundColor':FCKConfig.BackgroundBlockerColor});FCKDomTools.SetOpacity(C,FCKConfig.BackgroundBlockerOpacity);if (FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsIE7){var Q=E.createElement('iframe');FCKTools.ResetStyles(Q);Q.hideFocus=true;Q.frameBorder=0;Q.src=FCKTools.GetVoidUrl();FCKDomTools.SetElementStyles(Q,{'width':'100%','height':'100%','position':'absolute','left':'0px','top':'0px','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'});C.appendChild(Q);};FCKTools.AddEventListener(D,'resize',G);G();E.body.appendChild(C);FCKFocusManager.Lock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R._fck_originalTabIndex=R.tabIndex;R.tabIndex=-1;},HideMainCover:function(){FCKDomTools.RemoveNode(C);FCKFocusManager.Unlock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R.tabIndex=R._fck_originalTabIndex;FCKDomTools.ClearElementJSProperty(R,'_fck_originalTabIndex');},GetCover:function(){return C;}};})(); +var FCKMenuItem=function(A,B,C,D,E,F){this.Name=B;this.Label=C||B;this.IsDisabled=E;this.Icon=new FCKIcon(D);this.SubMenu=new FCKMenuBlockPanel();this.SubMenu.Parent=A;this.SubMenu.OnClick=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnClick,this);this.CustomData=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D,E){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D,E);};FCKMenuItem.prototype.AddSeparator=function(){this.SubMenu.AddSeparator();};FCKMenuItem.prototype.Create=function(A){var B=this.HasSubMenu;var C=FCKTools.GetElementDocument(A);var r=this.MainElement=A.insertRow(-1);r.className=this.IsDisabled?'MN_Item_Disabled':'MN_Item';if (!this.IsDisabled){FCKTools.AddEventListenerEx(r,'mouseover',FCKMenuItem_OnMouseOver,[this]);FCKTools.AddEventListenerEx(r,'click',FCKMenuItem_OnClick,[this]);if (!B) FCKTools.AddEventListenerEx(r,'mouseout',FCKMenuItem_OnMouseOut,[this]);};var D=r.insertCell(-1);D.className='MN_Icon';D.appendChild(this.Icon.CreateIconElement(C));D=r.insertCell(-1);D.className='MN_Label';D.noWrap=true;D.appendChild(C.createTextNode(this.Label));D=r.insertCell(-1);if (B){D.className='MN_Arrow';var E=D.appendChild(C.createElement('IMG'));E.src=FCK_IMAGES_PATH+'arrow_'+FCKLang.Dir+'.gif';E.width=4;E.height=7;this.SubMenu.Create();this.SubMenu.Panel.OnHide=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnHide,this);}};FCKMenuItem.prototype.Activate=function(){this.MainElement.className='MN_Item_Over';if (this.HasSubMenu){this.SubMenu.Show(this.MainElement.offsetWidth+2,-2,this.MainElement);};FCKTools.RunFunction(this.OnActivate,this);};FCKMenuItem.prototype.Deactivate=function(){this.MainElement.className='MN_Item';if (this.HasSubMenu) this.SubMenu.Hide();};function FCKMenuItem_SubMenu_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuItem_SubMenu_OnHide(A){A.Deactivate();};function FCKMenuItem_OnClick(A,B){if (B.HasSubMenu) B.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,E){var F=new FCKMenuItem(this,A,B,C,D,E);F.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);F.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(F);return F;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i0&&F.href.length==0);if (G) return;menu.AddSeparator();menu.AddItem('VisitLink',FCKLang.VisitLink);menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0);if (G||(tagName=='IMG'&&tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);menu.AddItem('AnchorDelete',FCKLang.AnchorDelete);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckinputhidden')){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};case 'DivContainer':return {AddItems:function(menu,tag,tagName){var J=FCKDomTools.GetSelectedDivContainers();if (J.length>0){menu.AddSeparator();menu.AddItem('EditDiv',FCKLang.EditDiv,75);menu.AddItem('DeleteDiv',FCKLang.DeleteDiv,76);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}};var FCKHtmlIterator=function(A){this._sourceHtml=A;};FCKHtmlIterator.prototype={Next:function(){var A=this._sourceHtml;if (A==null) return null;var B=FCKRegexLib.HtmlTag.exec(A);var C=false;var D="";if (B){if (B.index>0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}}; +var FCKPlugin=function(A,B,C){this.Name=A;this.BasePath=C?C:FCKConfig.PluginsPath;this.Path=this.BasePath+A+'/';if (!B||B.length==0) this.AvailableLangs=[];else this.AvailableLangs=B.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length>0){var A;if (this.AvailableLangs.IndexOf(FCKLanguageManager.ActiveLanguage.Code)>=0) A=FCKLanguageManager.ActiveLanguage.Code;else A=this.AvailableLangs[0];LoadScript(this.Path+'lang/'+A+'.js');};LoadScript(this.Path+'fckplugin.js');}; +var FCKPlugins=FCK.Plugins={};FCKPlugins.ItemsCount=0;FCKPlugins.Items={};FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i-1);};String.prototype.Equals=function(){var A=arguments;if (A.length==1&&A[0].pop) A=A[0];for (var i=0;iC) return false;if (B){var E=new RegExp(A+'$','i');return E.test(this);}else return (D==0||this.substr(C-D,D)==A);};String.prototype.Remove=function(A,B){var s='';if (A>0) s=this.substring(0,A);if (A+B0){var B=A.pop();if (B) B[1].call(B[0]);};this._FCKCleanupObj=null;if (CollectGarbage) CollectGarbage();}; +var s=navigator.userAgent.toLowerCase();var FCKBrowserInfo={IsIE:/*@cc_on!@*/false,IsIE7:/*@cc_on!@*/false&&(parseInt(s.match(/msie (\d+)/)[1],10)>=7),IsIE6:/*@cc_on!@*/false&&(parseInt(s.match(/msie (\d+)/)[1],10)>=6),IsSafari:s.Contains(' applewebkit/'),IsOpera:!!window.opera,IsAIR:s.Contains(' adobeair/'),IsMac:s.Contains('macintosh')};(function(A){A.IsGecko=(navigator.product=='Gecko')&&!A.IsSafari&&!A.IsOpera;A.IsGeckoLike=(A.IsGecko||A.IsSafari||A.IsOpera);if (A.IsGecko){var B=s.match(/rv:(\d+\.\d+)/);var C=B&&parseFloat(B[1]);if (C){A.IsGecko10=(C<1.8);A.IsGecko19=(C>1.8);}}})(FCKBrowserInfo); +var FCKURLParams={};(function(){var A=document.location.search.substr(1).split('&');for (var i=0;i';if (!FCKRegexLib.HtmlOpener.test(A)) A=''+A+'';if (!FCKRegexLib.HeadOpener.test(A)) A=A.replace(FCKRegexLib.HtmlOpener,'$&');return A;}else{var B=FCKConfig.DocType+'0&&!FCKRegexLib.Html4DocType.test(FCKConfig.DocType)) B+=' style="overflow-y: scroll"';B+='>'+A+'';return B;}},ConvertToDataFormat:function(A,B,C,D){var E=FCKXHtml.GetXHTML(A,!B,D);if (C&&FCKRegexLib.EmptyOutParagraph.test(E)) return '';return E;},FixHtml:function(A){return A;}}; +var FCK={Name:FCKURLParams['InstanceName'],Status:0,EditMode:0,Toolbar:null,HasFocus:false,DataProcessor:new FCKDataProcessor(),GetInstanceObject:(function(){var w=window;return function(name){return w[name];}})(),AttachToOnSelectionChange:function(A){this.Events.AttachEvent('OnSelectionChange',A);},GetLinkedFieldValue:function(){return this.LinkedField.value;},GetParentForm:function(){return this.LinkedField.form;},StartupValue:'',IsDirty:function(){if (this.EditMode==1) return (this.StartupValue!=this.EditingArea.Textarea.value);else{if (!this.EditorDocument) return false;return (this.StartupValue!=this.EditorDocument.body.innerHTML);}},ResetIsDirty:function(){if (this.EditMode==1) this.StartupValue=this.EditingArea.Textarea.value;else if (this.EditorDocument.body) this.StartupValue=this.EditorDocument.body.innerHTML;},StartEditor:function(){this.TempBaseTag=FCKConfig.BaseHref.length>0?'':'';var A=FCK.KeystrokeHandler=new FCKKeystrokeHandler();A.OnKeystroke=_FCK_KeystrokeHandler_OnKeystroke;A.SetKeystrokes(FCKConfig.Keystrokes);if (FCKBrowserInfo.IsIE7){if ((CTRL+86) in A.Keystrokes) A.SetKeystrokes([CTRL+86,true]);if ((SHIFT+45) in A.Keystrokes) A.SetKeystrokes([SHIFT+45,true]);};A.SetKeystrokes([CTRL+8,true]);this.EditingArea=new FCKEditingArea(document.getElementById('xEditingArea'));this.EditingArea.FFSpellChecker=FCKConfig.FirefoxSpellChecker;this.SetData(this.GetLinkedFieldValue(),true);FCKTools.AddEventListener(document,"keydown",this._TabKeyHandler);this.AttachToOnSelectionChange(_FCK_PaddingNodeListener);if (FCKBrowserInfo.IsGecko) this.AttachToOnSelectionChange(this._ExecCheckEmptyBlock);},Focus:function(){FCK.EditingArea.Focus();},SetStatus:function(A){this.Status=A;if (A==1){FCKFocusManager.AddWindow(window,true);if (FCKBrowserInfo.IsIE) FCKFocusManager.AddWindow(window.frameElement,true);if (FCKConfig.StartupFocus) FCK.Focus();};this.Events.FireEvent('OnStatusChange',A);},FixBody:function(){var A=FCKConfig.EnterMode;if (A!='p'&&A!='div') return;var B=this.EditorDocument;if (!B) return;var C=B.body;if (!C) return;FCKDomTools.TrimNode(C);var D=C.firstChild;var E;while (D){var F=false;switch (D.nodeType){case 1:var G=D.nodeName.toLowerCase();if (!FCKListsLib.BlockElements[G]&&G!='li'&&!D.getAttribute('_fckfakelement')&&D.getAttribute('_moz_dirty')==null) F=true;break;case 3:if (E||D.nodeValue.Trim().length>0) F=true;break;case 8:if (E) F=true;break;};if (F){var H=D.parentNode;if (!E) E=H.insertBefore(B.createElement(A),D);E.appendChild(H.removeChild(D));D=E.nextSibling;}else{if (E){FCKDomTools.TrimNode(E);E=null;};D=D.nextSibling;}};if (E) FCKDomTools.TrimNode(E);},GetData:function(A){if (FCK.EditMode==1) return FCK.EditingArea.Textarea.value;this.FixBody();var B=FCK.EditorDocument;if (!B) return null;var C=FCKConfig.FullPage;var D=FCK.DataProcessor.ConvertToDataFormat(C?B.documentElement:B.body,!C,FCKConfig.IgnoreEmptyParagraphValue,A);D=FCK.ProtectEventsRestore(D);if (FCKBrowserInfo.IsIE) D=D.replace(FCKRegexLib.ToReplace,'$1');if (C){if (FCK.DocTypeDeclaration&&FCK.DocTypeDeclaration.length>0) D=FCK.DocTypeDeclaration+'\n'+D;if (FCK.XmlDeclaration&&FCK.XmlDeclaration.length>0) D=FCK.XmlDeclaration+'\n'+D;};return FCKConfig.ProtectedSource.Revert(D);},UpdateLinkedField:function(){var A=FCK.GetXHTML(FCKConfig.FormatOutput);if (FCKConfig.HtmlEncodeOutput) A=FCKTools.HTMLEncode(A);FCK.LinkedField.value=A;FCK.Events.FireEvent('OnAfterLinkedFieldUpdate');},RegisteredDoubleClickHandlers:{},OnDoubleClick:function(A){var B=FCK.RegisteredDoubleClickHandlers[A.tagName.toUpperCase()];if (B){for (var i=0;i0?'|ABBR|XML|EMBED|OBJECT':'ABBR|XML|EMBED|OBJECT';var C;if (B.length>0){C=new RegExp('<('+B+')(?!\w|:)','gi');A=A.replace(C,'','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,'');return A;},SetData:function(A,B){this.EditingArea.Mode=FCK.EditMode;if (FCKBrowserInfo.IsIE&&FCK.EditorDocument){FCK.EditorDocument.detachEvent("onselectionchange",Doc_OnSelectionChange);};FCKTempBin.Reset();if (FCK.EditMode==0){this._ForceResetIsDirty=(B===true);A=FCKConfig.ProtectedSource.Protect(A);A=FCK.DataProcessor.ConvertToHtml(A);A=A.replace(FCKRegexLib.InvalidSelfCloseTags,'$1>');A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);if (FCK.TempBaseTag.length>0&&!FCKRegexLib.HasBaseTag.test(A)) A=A.replace(FCKRegexLib.HeadOpener,'$&'+FCK.TempBaseTag);var C='';if (!FCKConfig.FullPage) C+=_FCK_GetEditorAreaStyleTags();if (FCKBrowserInfo.IsIE) C+=FCK._GetBehaviorsStyle();else if (FCKConfig.ShowBorders) C+=FCKTools.GetStyleHtml(FCK_ShowTableBordersCSS,true);C+=FCKTools.GetStyleHtml(FCK_InternalCSS,true);A=A.replace(FCKRegexLib.HeadCloser,C+'$&');this.EditingArea.OnLoad=_FCK_EditingArea_OnLoad;this.EditingArea.Start(A);}else{FCK.EditorWindow=null;FCK.EditorDocument=null;FCKDomTools.PaddingNode=null;this.EditingArea.OnLoad=null;this.EditingArea.Start(A);this.EditingArea.Textarea._FCKShowContextMenu=true;FCK.EnterKeyHandler=null;if (B) this.ResetIsDirty();FCK.KeystrokeHandler.AttachToElement(this.EditingArea.Textarea);this.EditingArea.Textarea.focus();FCK.Events.FireEvent('OnAfterSetHTML');};if (FCKBrowserInfo.IsGecko) window.onresize();},RedirectNamedCommands:{},ExecuteNamedCommand:function(A,B,C,D){if (!D) FCKUndo.SaveUndoStep();if (!C&&FCK.RedirectNamedCommands[A]!=null) FCK.ExecuteRedirectedNamedCommand(A,B);else{FCK.Focus();FCK.EditorDocument.execCommand(A,false,B);FCK.Events.FireEvent('OnSelectionChange');};if (!D) FCKUndo.SaveUndoStep();},GetNamedCommandState:function(A){try{if (FCKBrowserInfo.IsSafari&&FCK.EditorWindow&&A.IEquals('Paste')) return 0;if (!FCK.EditorDocument.queryCommandEnabled(A)) return -1;else{return FCK.EditorDocument.queryCommandState(A)?1:0;}}catch (e){return 0;}},GetNamedCommandValue:function(A){var B='';var C=FCK.GetNamedCommandState(A);if (C==-1) return null;try{B=this.EditorDocument.queryCommandValue(A);}catch(e) {};return B?B:'';},Paste:function(A){if (FCK.Status!=2||!FCK.Events.FireEvent('OnPaste')) return false;return A||FCK._ExecPaste();},PasteFromWord:function(){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteFromWord,'dialog/fck_paste.html',400,330,'Word');},Preview:function(){var A;if (FCKConfig.FullPage){if (FCK.TempBaseTag.length>0) A=FCK.TempBaseTag+FCK.GetXHTML();else A=FCK.GetXHTML();}else{A=FCKConfig.DocType+''+FCK.TempBaseTag+''+FCKLang.Preview+''+_FCK_GetEditorAreaStyleTags()+''+FCK.GetXHTML()+'';};var B=FCKConfig.ScreenWidth*0.8;var C=FCKConfig.ScreenHeight*0.7;var D=(FCKConfig.ScreenWidth-B)/2;var E='';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A;E='javascript:void( (function(){document.open() ;document.domain="'+document.domain+'" ;document.write( window.opener._FCKHtmlToLoad );document.close() ;window.opener._FCKHtmlToLoad = null ;})() )';};var F=window.open(E,null,'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width='+B+',height='+C+',left='+D);if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){F.document.write(A);F.document.close();}},SwitchEditMode:function(A){var B=(FCK.EditMode==0);var C=FCK.IsDirty();var D;if (B){FCKCommands.GetCommand('ShowBlocks').SaveState();if (!A&&FCKBrowserInfo.IsIE) FCKUndo.SaveUndoStep();D=FCK.GetXHTML(FCKConfig.FormatSource);if (FCKBrowserInfo.IsIE) FCKTempBin.ToHtml();if (D==null) return false;}else D=this.EditingArea.Textarea.value;FCK.EditMode=B?1:0;FCK.SetData(D,!C);FCK.Focus();FCKTools.RunFunction(FCK.ToolbarSet.RefreshModeState,FCK.ToolbarSet);return true;},InsertElement:function(A){if (typeof A=='string') A=this.EditorDocument.createElement(A);var B=A.nodeName.toLowerCase();FCKSelection.Restore();var C=new FCKDomRange(this.EditorWindow);C.MoveToSelection();C.DeleteContents();if (FCKListsLib.BlockElements[B]!=null){if (C.StartBlock){if (C.CheckStartOfBlock()) C.MoveToPosition(C.StartBlock,3);else if (C.CheckEndOfBlock()) C.MoveToPosition(C.StartBlock,4);else C.SplitBlock();};C.InsertNode(A);var D=FCKDomTools.GetNextSourceElement(A,false,null,['hr','br','param','img','area','input'],true);if (!D&&FCKConfig.EnterMode!='br'){D=this.EditorDocument.body.appendChild(this.EditorDocument.createElement(FCKConfig.EnterMode));if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);};if (FCKListsLib.EmptyElements[B]==null) C.MoveToElementEditStart(A);else if (D) C.MoveToElementEditStart(D);else C.MoveToPosition(A,4);if (FCKBrowserInfo.IsGeckoLike){if (D) FCKDomTools.ScrollIntoView(D,false);FCKDomTools.ScrollIntoView(A,false);}}else{C.InsertNode(A);C.SetStart(A,4);C.SetEnd(A,4);};C.Select();C.Release();this.Focus();return A;},_InsertBlockElement:function(A){},_IsFunctionKey:function(A){if (A>=16&&A<=20) return true;if (A==27||(A>=33&&A<=40)) return true;if (A==45) return true;return false;},_KeyDownListener:function(A){if (!A) A=FCK.EditorWindow.event;if (FCK.EditorWindow){if (!FCK._IsFunctionKey(A.keyCode)&&!(A.ctrlKey||A.metaKey)&&!(A.keyCode==46)) FCK._KeyDownUndo();};return true;},_KeyDownUndo:function(){if (!FCKUndo.Typing){FCKUndo.SaveUndoStep();FCKUndo.Typing=true;FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.TypesCount++;FCKUndo.Changed=1;if (FCKUndo.TypesCount>FCKUndo.MaxTypes){FCKUndo.TypesCount=0;FCKUndo.SaveUndoStep();}},_TabKeyHandler:function(A){if (!A) A=window.event;var B=A.keyCode;if (B==9&&FCK.EditMode!=0){if (FCKBrowserInfo.IsIE){var C=document.selection.createRange();if (C.parentElement()!=FCK.EditingArea.Textarea) return true;C.text='\t';C.select();}else{var a=[];var D=FCK.EditingArea.Textarea;var E=D.selectionStart;var F=D.selectionEnd;a.push(D.value.substr(0,E));a.push('\t');a.push(D.value.substr(F));D.value=a.join('');D.setSelectionRange(E+1,E+1);};if (A.preventDefault) return A.preventDefault();return A.returnValue=false;};return true;}};FCK.Events=new FCKEvents(FCK);FCK.GetHTML=FCK.GetXHTML=FCK.GetData;FCK.SetHTML=FCK.SetData;FCK.InsertElementAndGetIt=FCK.CreateElement=FCK.InsertElement;function _FCK_ProtectEvents_ReplaceTags(A){return A.replace(FCKRegexLib.EventAttributes,_FCK_ProtectEvents_ReplaceEvents);};function _FCK_ProtectEvents_ReplaceEvents(A,B){return ' '+B+'_fckprotectedatt="'+encodeURIComponent(A)+'"';};function _FCK_ProtectEvents_RestoreEvents(A,B){return decodeURIComponent(B);};function _FCK_MouseEventsListener(A){if (!A) A=window.event;if (A.type=='mousedown') FCK.MouseDownFlag=true;else if (A.type=='mouseup') FCK.MouseDownFlag=false;else if (A.type=='mousemove') FCK.Events.FireEvent('OnMouseMove',A);};function _FCK_PaddingNodeListener(){if (FCKConfig.EnterMode.IEquals('br')) return;FCKDomTools.EnforcePaddingNode(FCK.EditorDocument,FCKConfig.EnterMode);if (!FCKBrowserInfo.IsIE&&FCKDomTools.PaddingNode){var A=FCKSelection.GetSelection();if (A&&A.rangeCount==1){var B=A.getRangeAt(0);if (B.collapsed&&B.startContainer==FCK.EditorDocument.body&&B.startOffset==0){B.selectNodeContents(FCKDomTools.PaddingNode);B.collapse(true);A.removeAllRanges();A.addRange(B);}}}else if (FCKDomTools.PaddingNode){var C=FCKSelection.GetParentElement();var D=FCKDomTools.PaddingNode;if (C&&C.nodeName.IEquals('body')){if (FCK.EditorDocument.body.childNodes.length==1&&FCK.EditorDocument.body.firstChild==D){if (FCKSelection._GetSelectionDocument(FCK.EditorDocument.selection)!=FCK.EditorDocument) return;var B=FCK.EditorDocument.body.createTextRange();var F=false;if (!D.childNodes.firstChild){D.appendChild(FCKTools.GetElementDocument(D).createTextNode('\ufeff'));F=true;};B.moveToElementText(D);B.select();if (F) B.pasteHTML('');}}}};function _FCK_EditingArea_OnLoad(){FCK.EditorWindow=FCK.EditingArea.Window;FCK.EditorDocument=FCK.EditingArea.Document;if (FCKBrowserInfo.IsIE) FCKTempBin.ToElements();FCK.InitializeBehaviors();FCK.MouseDownFlag=false;FCKTools.AddEventListener(FCK.EditorDocument,'mousemove',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',_FCK_MouseEventsListener);FCKTools.AddEventListener(FCK.EditorDocument,'mouseup',_FCK_MouseEventsListener);if (FCKBrowserInfo.IsSafari){var A=function(evt){if (!(evt.ctrlKey||evt.metaKey)) return;if (FCK.EditMode!=0) return;switch (evt.keyCode){case 89:FCKUndo.Redo();break;case 90:FCKUndo.Undo();break;}};FCKTools.AddEventListener(FCK.EditorDocument,'keyup',A);};FCK.EnterKeyHandler=new FCKEnterKey(FCK.EditorWindow,FCKConfig.EnterMode,FCKConfig.ShiftEnterMode,FCKConfig.TabSpaces);FCK.KeystrokeHandler.AttachToElement(FCK.EditorDocument);if (FCK._ForceResetIsDirty) FCK.ResetIsDirty();if (FCKBrowserInfo.IsIE&&FCK.HasFocus) FCK.EditorDocument.body.setActive();FCK.OnAfterSetHTML();FCKCommands.GetCommand('ShowBlocks').RestoreState();if (FCK.Status!=0) return;FCK.SetStatus(1);};function _FCK_GetEditorAreaStyleTags(){return FCKTools.GetStyleHtml(FCKConfig.EditorAreaCSS)+FCKTools.GetStyleHtml(FCKConfig.EditorAreaStyles);};function _FCK_KeystrokeHandler_OnKeystroke(A,B){if (FCK.Status!=2) return false;if (FCK.EditMode==0){switch (B){case 'Paste':return!FCK.Paste();case 'Cut':FCKUndo.SaveUndoStep();return false;}}else{if (B.Equals('Paste','Undo','Redo','SelectAll','Cut')) return false;};var C=FCK.Commands.GetCommand(B);if (C.GetState()==-1) return false;return (C.Execute.apply(C,FCKTools.ArgumentsToArray(arguments,2))!==false);};(function(){var A=window.parent.document;var B=A.getElementById(FCK.Name);var i=0;while (B||i==0){if (B&&B.tagName.toLowerCase().Equals('input','textarea')){FCK.LinkedField=B;break;};B=A.getElementsByName(FCK.Name)[i++];}})();var FCKTempBin={Elements:[],AddElement:function(A){var B=this.Elements.length;this.Elements[B]=A;return B;},RemoveElement:function(A){var e=this.Elements[A];this.Elements[A]=null;return e;},Reset:function(){var i=0;while (i '+this.Elements[i].outerHTML+'';this.Elements[i].isHtml=true;}},ToElements:function(){var A=FCK.EditorDocument.createElement('div');for (var i=0;i0) C+='TABLE { behavior: '+B+' ; }';C+='';FCK._BehaviorsStyle=C;};return FCK._BehaviorsStyle;};function Doc_OnMouseUp(){if (FCK.EditorWindow.event.srcElement.tagName=='HTML'){FCK.Focus();FCK.EditorWindow.event.cancelBubble=true;FCK.EditorWindow.event.returnValue=false;}};function Doc_OnPaste(){var A=FCK.EditorDocument.body;A.detachEvent('onpaste',Doc_OnPaste);var B=FCK.Paste(!FCKConfig.ForcePasteAsPlainText&&!FCKConfig.AutoDetectPasteFromWord);A.attachEvent('onpaste',Doc_OnPaste);return B;};function Doc_OnDblClick(){FCK.OnDoubleClick(FCK.EditorWindow.event.srcElement);FCK.EditorWindow.event.cancelBubble=true;};function Doc_OnSelectionChange(){if (!FCK.IsSelectionChangeLocked&&FCK.EditorDocument) FCK.Events.FireEvent("OnSelectionChange");};function Doc_OnDrop(){if (FCK.MouseDownFlag){FCK.MouseDownFlag=false;return;};if (FCKConfig.ForcePasteAsPlainText){var A=FCK.EditorWindow.event;if (FCK._CheckIsPastingEnabled()||FCKConfig.ShowDropDialog) FCK.PasteAsPlainText(A.dataTransfer.getData('Text'));A.returnValue=false;A.cancelBubble=true;}};FCK.InitializeBehaviors=function(A){this.EditorDocument.attachEvent('onmouseup',Doc_OnMouseUp);this.EditorDocument.body.attachEvent('onpaste',Doc_OnPaste);this.EditorDocument.body.attachEvent('ondrop',Doc_OnDrop);FCK.ContextMenu._InnerContextMenu.AttachToElement(FCK.EditorDocument.body);this.EditorDocument.attachEvent("onkeydown",FCK._KeyDownListener);this.EditorDocument.attachEvent("ondblclick",Doc_OnDblClick);this.EditorDocument.attachEvent("onbeforedeactivate",function(){ FCKSelection.Save(true);});this.EditorDocument.attachEvent("onselectionchange",Doc_OnSelectionChange);FCKTools.AddEventListener(FCK.EditorDocument,'mousedown',Doc_OnMouseDown);};FCK.InsertHtml=function(A){A=FCKConfig.ProtectedSource.Protect(A);A=FCK.ProtectEvents(A);A=FCK.ProtectUrls(A);A=FCK.ProtectTags(A);FCKSelection.Restore();FCK.EditorWindow.focus();FCKUndo.SaveUndoStep();var B=FCKSelection.GetSelection();if (B.type.toLowerCase()=='control') B.clear();A=''+A;B.createRange().pasteHTML(A);FCK.EditorDocument.getElementById('__fakeFCKRemove__').removeNode(true);FCKDocumentProcessor.Process(FCK.EditorDocument);this.Events.FireEvent("OnSelectionChange");};FCK.SetInnerHtml=function(A){var B=FCK.EditorDocument;B.body.innerHTML='
       
      '+A;B.getElementById('__fakeFCKRemove__').removeNode(true);};function FCK_PreloadImages(){var A=new FCKImagePreloader();A.AddImages(FCKConfig.PreloadImages);A.AddImages(FCKConfig.SkinPath+'fck_strip.gif');A.OnComplete=LoadToolbarSetup;A.Start();};function Document_OnContextMenu(){return (event.srcElement._FCKShowContextMenu==true);};document.oncontextmenu=Document_OnContextMenu;function FCK_Cleanup(){this.LinkedField=null;this.EditorWindow=null;this.EditorDocument=null;};FCK._ExecPaste=function(){if (FCK._PasteIsRunning) return true;if (FCKConfig.ForcePasteAsPlainText){FCK.PasteAsPlainText();return false;};var A=FCK._CheckIsPastingEnabled(true);if (A===false) FCKTools.RunFunction(FCKDialog.OpenDialog,FCKDialog,['FCKDialog_Paste',FCKLang.Paste,'dialog/fck_paste.html',400,330,'Security']);else{if (FCKConfig.AutoDetectPasteFromWord&&A.length>0){var B=/<\w[^>]*(( class="?MsoNormal"?)|(="mso-))/gi;if (B.test(A)){if (confirm(FCKLang.PasteWordConfirm)){FCK.PasteFromWord();return false;}}};FCK._PasteIsRunning=true;FCK.ExecuteNamedCommand('Paste');delete FCK._PasteIsRunning;};return false;};FCK.PasteAsPlainText=function(A){if (!FCK._CheckIsPastingEnabled()){FCKDialog.OpenDialog('FCKDialog_Paste',FCKLang.PasteAsText,'dialog/fck_paste.html',400,330,'PlainText');return;};var B=null;if (!A) B=clipboardData.getData("Text");else B=A;if (B&&B.length>0){B=FCKTools.HTMLEncode(B);B=FCKTools.ProcessLineBreaks(window,FCKConfig,B);var C=B.search('

      ');var D=B.search('

      ');if ((C!=-1&&D!=-1&&C0){if (FCKSelection.GetType()=='Control'){var D=this.EditorDocument.createElement('A');D.href=A;var E=FCKSelection.GetSelectedElement();E.parentNode.insertBefore(D,E);E.parentNode.removeChild(E);D.appendChild(E);return [D];};var F='javascript:void(0);/*'+(new Date().getTime())+'*/';FCK.ExecuteNamedCommand('CreateLink',F,false,!!B);var G=this.EditorDocument.links;for (i=0;i0&&!isNaN(E)) this.PageConfig[D]=parseInt(E,10);else this.PageConfig[D]=E;}};function FCKConfig_LoadPageConfig(){var A=FCKConfig.PageConfig;for (var B in A) FCKConfig[B]=A[B];};function FCKConfig_PreProcess(){var A=FCKConfig;if (A.AllowQueryStringDebug){try{if ((/fckdebug=true/i).test(window.top.location.search)) A.Debug=true;}catch (e) { }};if (!A.PluginsPath.EndsWith('/')) A.PluginsPath+='/';var B=A.ToolbarComboPreviewCSS;if (!B||B.length==0) A.ToolbarComboPreviewCSS=A.EditorAreaCSS;A.RemoveAttributesArray=(A.RemoveAttributes||'').split(',');if (!FCKConfig.SkinEditorCSS||FCKConfig.SkinEditorCSS.length==0) FCKConfig.SkinEditorCSS=FCKConfig.SkinPath+'fck_editor.css';if (!FCKConfig.SkinDialogCSS||FCKConfig.SkinDialogCSS.length==0) FCKConfig.SkinDialogCSS=FCKConfig.SkinPath+'fck_dialog.css';};FCKConfig.ToolbarSets={};FCKConfig.Plugins={};FCKConfig.Plugins.Items=[];FCKConfig.Plugins.Add=function(A,B,C){FCKConfig.Plugins.Items.AddItem([A,B,C]);};FCKConfig.ProtectedSource={};FCKConfig.ProtectedSource._CodeTag=(new Date()).valueOf();FCKConfig.ProtectedSource.RegexEntries=[//g,//gi,//gi];FCKConfig.ProtectedSource.Add=function(A){this.RegexEntries.AddItem(A);};FCKConfig.ProtectedSource.Protect=function(A){var B=this._CodeTag;function _Replace(protectedSource){var C=FCKTempBin.AddElement(protectedSource);return '';};for (var i=0;i|>)","g");return A.replace(D,_Replace);};FCKConfig.GetBodyAttributes=function(){var A='';if (this.BodyId&&this.BodyId.length>0) A+=' id="'+this.BodyId+'"';if (this.BodyClass&&this.BodyClass.length>0) A+=' class="'+this.BodyClass+'"';return A;};FCKConfig.ApplyBodyAttributes=function(A){if (this.BodyId&&this.BodyId.length>0) A.id=FCKConfig.BodyId;if (this.BodyClass&&this.BodyClass.length>0) A.className+=' '+FCKConfig.BodyClass;}; +var FCKDebug={Output:function(){},OutputObject:function(){}}; +var FCKDomTools={MoveChildren:function(A,B,C){if (A==B) return;var D;if (C){while ((D=A.lastChild)) B.insertBefore(A.removeChild(D),B.firstChild);}else{while ((D=A.firstChild)) B.appendChild(A.removeChild(D));}},MoveNode:function(A,B,C){if (C) B.insertBefore(FCKDomTools.RemoveNode(A),B.firstChild);else B.appendChild(FCKDomTools.RemoveNode(A));},TrimNode:function(A){this.LTrimNode(A);this.RTrimNode(A);},LTrimNode:function(A){var B;while ((B=A.firstChild)){if (B.nodeType==3){var C=B.nodeValue.LTrim();var D=B.nodeValue.length;if (C.length==0){A.removeChild(B);continue;}else if (C.length0) break;if (A.lastChild) A=A.lastChild;else return this.GetPreviousSourceElement(A,B,C,D);};return null;},GetNextSourceElement:function(A,B,C,D,E){while((A=this.GetNextSourceNode(A,E))){if (A.nodeType==1){if (C&&A.nodeName.IEquals(C)) break;if (D&&A.nodeName.IEquals(D)) return this.GetNextSourceElement(A,B,C,D);return A;}else if (B&&A.nodeType==3&&A.nodeValue.RTrim().length>0) break;};return null;},GetNextSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.firstChild) E=A.firstChild;else{if (D&&A==D) return null;E=A.nextSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetNextSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetNextSourceNode(E,false,C,D);return E;},GetPreviousSourceNode:function(A,B,C,D){if (!A) return null;var E;if (!B&&A.lastChild) E=A.lastChild;else{if (D&&A==D) return null;E=A.previousSibling;if (!E&&(!D||D!=A.parentNode)) return this.GetPreviousSourceNode(A.parentNode,true,C,D);};if (C&&E&&E.nodeType!=C) return this.GetPreviousSourceNode(E,false,C,D);return E;},InsertAfterNode:function(A,B){return A.parentNode.insertBefore(B,A.nextSibling);},GetParents:function(A){var B=[];while (A){B.unshift(A);A=A.parentNode;};return B;},GetCommonParents:function(A,B){var C=this.GetParents(A);var D=this.GetParents(B);var E=[];for (var i=0;i0) D[C.pop().toLowerCase()]=1;var E=this.GetCommonParents(A,B);var F=null;while ((F=E.pop())){if (D[F.nodeName.toLowerCase()]) return F;};return null;},GetIndexOf:function(A){var B=A.parentNode?A.parentNode.firstChild:null;var C=-1;while (B){C++;if (B==A) return C;B=B.nextSibling;};return-1;},PaddingNode:null,EnforcePaddingNode:function(A,B){try{if (!A||!A.body) return;}catch (e){return;};this.CheckAndRemovePaddingNode(A,B,true);try{if (A.body.lastChild&&(A.body.lastChild.nodeType!=1||A.body.lastChild.tagName.toLowerCase()==B.toLowerCase())) return;}catch (e){return;};var C=A.createElement(B);if (FCKBrowserInfo.IsGecko&&FCKListsLib.NonEmptyBlockElements[B]) FCKTools.AppendBogusBr(C);this.PaddingNode=C;if (A.body.childNodes.length==1&&A.body.firstChild.nodeType==1&&A.body.firstChild.tagName.toLowerCase()=='br'&&(A.body.firstChild.getAttribute('_moz_dirty')!=null||A.body.firstChild.getAttribute('type')=='_moz')) A.body.replaceChild(C,A.body.firstChild);else A.body.appendChild(C);},CheckAndRemovePaddingNode:function(A,B,C){var D=this.PaddingNode;if (!D) return;try{if (D.parentNode!=A.body||D.tagName.toLowerCase()!=B||(D.childNodes.length>1)||(D.firstChild&&D.firstChild.nodeValue!='\xa0'&&String(D.firstChild.tagName).toLowerCase()!='br')){this.PaddingNode=null;return;}}catch (e){this.PaddingNode=null;return;};if (!C){if (D.parentNode.childNodes.length>1) D.parentNode.removeChild(D);this.PaddingNode=null;}},HasAttribute:function(A,B){if (A.hasAttribute) return A.hasAttribute(B);else{var C=A.attributes[B];return (C!=undefined&&C.specified);}},HasAttributes:function(A){var B=A.attributes;for (var i=0;i0) return true;}else if (B[i].specified) return true;};return false;},RemoveAttribute:function(A,B){if (FCKBrowserInfo.IsIE&&B.toLowerCase()=='class') B='className';return A.removeAttribute(B,0);},RemoveAttributes:function (A,B){for (var i=0;i0) return false;C=C.nextSibling;};return D?this.CheckIsEmptyElement(D,B):true;},SetElementStyles:function(A,B){var C=A.style;for (var D in B) C[D]=B[D];},SetOpacity:function(A,B){if (FCKBrowserInfo.IsIE){B=Math.round(B*100);A.style.filter=(B>100?'':'progid:DXImageTransform.Microsoft.Alpha(opacity='+B+')');}else A.style.opacity=B;},GetCurrentElementStyle:function(A,B){if (FCKBrowserInfo.IsIE) return A.currentStyle[B];else return A.ownerDocument.defaultView.getComputedStyle(A,'').getPropertyValue(B);},GetPositionedAncestor:function(A){var B=A;while (B!=FCKTools.GetElementDocument(B).documentElement){if (this.GetCurrentElementStyle(B,'position')!='static') return B;if (B==FCKTools.GetElementDocument(B).documentElement&¤tWindow!=w) B=currentWindow.frameElement;else B=B.parentNode;};return null;},ScrollIntoView:function(A,B){var C=FCKTools.GetElementWindow(A);var D=FCKTools.GetViewPaneSize(C).Height;var E=D*-1;if (B===false){E+=A.offsetHeight||0;E+=parseInt(this.GetCurrentElementStyle(A,'marginBottom')||0,10)||0;};var F=FCKTools.GetDocumentPosition(C,A);E+=F.y;var G=FCKTools.GetScrollPosition(C).Y;if (E>0&&(E>G||E'+styleDef+'';};var C=function(cssFileUrl,markTemp){if (cssFileUrl.length==0) return '';var B=markTemp?' _fcktemp="true"':'';return '';};return function(cssFileOrArrayOrDef,markTemp){if (!cssFileOrArrayOrDef) return '';if (typeof(cssFileOrArrayOrDef)=='string'){if (/[\\\/\.][^{}]*$/.test(cssFileOrArrayOrDef)){return this.GetStyleHtml(cssFileOrArrayOrDef.split(','),markTemp);}else return A(this._GetUrlFixedCss(cssFileOrArrayOrDef),markTemp);}else{var E='';for (var i=0;i/g,'>');return A;};FCKTools.HTMLDecode=function(A){if (!A) return '';A=A.replace(/>/g,'>');A=A.replace(/</g,'<');A=A.replace(/&/g,'&');return A;};FCKTools._ProcessLineBreaksForPMode=function(A,B,C,D,E){var F=0;var G="

      ";var H="

      ";var I="
      ";if (C){G="
    7. ";H="
    8. ";F=1;}while (D&&D!=A.FCK.EditorDocument.body){if (D.tagName.toLowerCase()=='p'){F=1;break;};D=D.parentNode;};for (var i=0;i0) return A[A.length-1];return null;};FCKTools.GetDocumentPosition=function(w,A){var x=0;var y=0;var B=A;var C=null;var D=FCKTools.GetElementWindow(B);while (B&&!(D==w&&(B==w.document.body||B==w.document.documentElement))){x+=B.offsetLeft-B.scrollLeft;y+=B.offsetTop-B.scrollTop;if (!FCKBrowserInfo.IsOpera){var E=C;while (E&&E!=B){x-=E.scrollLeft;y-=E.scrollTop;E=E.parentNode;}};C=B;if (B.offsetParent) B=B.offsetParent;else{if (D!=w){B=D.frameElement;C=null;if (B) D=B.contentWindow.parent;}else B=null;}};if (FCKDomTools.GetCurrentElementStyle(w.document.body,'position')!='static'||(FCKBrowserInfo.IsIE&&FCKDomTools.GetPositionedAncestor(A)==null)){x+=w.document.body.offsetLeft;y+=w.document.body.offsetTop;};return { "x":x,"y":y };};FCKTools.GetWindowPosition=function(w,A){var B=this.GetDocumentPosition(w,A);var C=FCKTools.GetScrollPosition(w);B.x-=C.X;B.y-=C.Y;return B;};FCKTools.ProtectFormStyles=function(A){if (!A||A.nodeType!=1||A.tagName.toLowerCase()!='form') return [];var B=[];var C=['style','className'];for (var i=0;i0){for (var i=B.length-1;i>=0;i--){var C=B[i][0];var D=B[i][1];if (D) A.insertBefore(C,D);else A.appendChild(C);}}};FCKTools.GetNextNode=function(A,B){if (A.firstChild) return A.firstChild;else if (A.nextSibling) return A.nextSibling;else{var C=A.parentNode;while (C){if (C==B) return null;if (C.nextSibling) return C.nextSibling;else C=C.parentNode;}};return null;};FCKTools.GetNextTextNode=function(A,B,C){node=this.GetNextNode(A,B);if (C&&node&&C(node)) return null;while (node&&node.nodeType!=3){node=this.GetNextNode(node,B);if (C&&node&&C(node)) return null;};return node;};FCKTools.Merge=function(){var A=arguments;var o=A[0];for (var i=1;i');document.domain = '"+FCK_RUNTIME_DOMAIN+"';document.close();}() ) ;";if (FCKBrowserInfo.IsIE){if (FCKBrowserInfo.IsIE7||!FCKBrowserInfo.IsIE6) return "";else return "javascript: '';";};return "javascript: void(0);";};FCKTools.ResetStyles=function(A){A.style.cssText='margin:0;padding:0;border:0;background-color:transparent;background-image:none;';}; +FCKTools.CancelEvent=function(e){return false;};FCKTools._AppendStyleSheet=function(A,B){return A.createStyleSheet(B).owningElement;};FCKTools.AppendStyleString=function(A,B){if (!B) return null;var s=A.createStyleSheet("");s.cssText=B;return s;};FCKTools.ClearElementAttributes=function(A){A.clearAttributes();};FCKTools.GetAllChildrenIds=function(A){var B=[];for (var i=0;i0) B[B.length]=C;};return B;};FCKTools.RemoveOuterTags=function(e){e.insertAdjacentHTML('beforeBegin',e.innerHTML);e.parentNode.removeChild(e);};FCKTools.CreateXmlObject=function(A){var B;switch (A){case 'XmlHttp':if (document.location.protocol!='file:') try { return new XMLHttpRequest();} catch (e) {};B=['MSXML2.XmlHttp','Microsoft.XmlHttp'];break;case 'DOMDocument':B=['MSXML2.DOMDocument','Microsoft.XmlDom'];break;};for (var i=0;i<2;i++){try { return new ActiveXObject(B[i]);}catch (e){}};if (FCKLang.NoActiveX){alert(FCKLang.NoActiveX);FCKLang.NoActiveX=null;};return null;};FCKTools.DisableSelection=function(A){A.unselectable='on';var e,i=0;while ((e=A.all[i++])){switch (e.tagName){case 'IFRAME':case 'TEXTAREA':case 'INPUT':case 'SELECT':break;default:e.unselectable='on';}}};FCKTools.GetScrollPosition=function(A){var B=A.document;var C={ X:B.documentElement.scrollLeft,Y:B.documentElement.scrollTop };if (C.X>0||C.Y>0) return C;return { X:B.body.scrollLeft,Y:B.body.scrollTop };};FCKTools.AddEventListener=function(A,B,C){A.attachEvent('on'+B,C);};FCKTools.RemoveEventListener=function(A,B,C){A.detachEvent('on'+B,C);};FCKTools.AddEventListenerEx=function(A,B,C,D){var o={};o.Source=A;o.Params=D||[];o.Listener=function(ev){return C.apply(o.Source,[ev].concat(o.Params));};if (FCK.IECleanup) FCK.IECleanup.AddItem(null,function() { o.Source=null;o.Params=null;});A.attachEvent('on'+B,o.Listener);A=null;D=null;};FCKTools.GetViewPaneSize=function(A){var B;var C=A.document.documentElement;if (C&&C.clientWidth) B=C;else B=A.document.body;if (B) return { Width:B.clientWidth,Height:B.clientHeight };else return { Width:0,Height:0 };};FCKTools.SaveStyles=function(A){var B=FCKTools.ProtectFormStyles(A);var C={};if (A.className.length>0){C.Class=A.className;A.className='';};var D=A.style.cssText;if (D.length>0){C.Inline=D;A.style.cssText='';};FCKTools.RestoreFormStyles(A,B);return C;};FCKTools.RestoreStyles=function(A,B){var C=FCKTools.ProtectFormStyles(A);A.className=B.Class||'';A.style.cssText=B.Inline||'';FCKTools.RestoreFormStyles(A,C);};FCKTools.RegisterDollarFunction=function(A){A.$=A.document.getElementById;};FCKTools.AppendElement=function(A,B){return A.appendChild(this.GetElementDocument(A).createElement(B));};FCKTools.ToLowerCase=function(A){return A.toLowerCase();}; +var FCKeditorAPI;function InitializeAPI(){var A=window.parent;if (!(FCKeditorAPI=A.FCKeditorAPI)){var B='window.FCKeditorAPI = {Version : "2.6.3",VersionBuild : "19836",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.IsAIR){FCKAdobeAIR.FCKeditorAPI_Evaluate(A,B);}else if (FCKBrowserInfo.IsSafari){var C=A.document;var D=C.createElement('script');D.appendChild(C.createTextNode(B));C.documentElement.appendChild(D);}else A.eval(B);};FCKeditorAPI=A.FCKeditorAPI;FCKeditorAPI.__Instances=FCKeditorAPI.Instances;};FCKeditorAPI.Instances[FCK.Name]=FCK;};function _AttachFormSubmitToAPI(){var A=FCK.GetParentForm();if (A){FCKTools.AddEventListener(A,'submit',FCK.UpdateLinkedField);if (!A._FCKOriginalSubmit&&(typeof(A.submit)=='function'||(!A.submit.tagName&&!A.submit.length))){A._FCKOriginalSubmit=A.submit;A.submit=FCKeditorAPI._FormSubmit;}}};function FCKeditorAPI_Cleanup(){if (window.FCKConfig&&FCKConfig.MsWebBrowserControlCompat&&!window.FCKUnloadFlag) return;delete FCKeditorAPI.Instances[FCK.Name];};function FCKeditorAPI_ConfirmCleanup(){if (window.FCKConfig&&FCKConfig.MsWebBrowserControlCompat) window.FCKUnloadFlag=true;};FCKTools.AddEventListener(window,'unload',FCKeditorAPI_Cleanup);FCKTools.AddEventListener(window,'beforeunload',FCKeditorAPI_ConfirmCleanup); +var FCKImagePreloader=function(){this._Images=[];};FCKImagePreloader.prototype={AddImages:function(A){if (typeof(A)=='string') A=A.split(';');this._Images=this._Images.concat(A);},Start:function(){var A=this._Images;this._PreloadCount=A.length;for (var i=0;i]*\>)/i,AfterBody:/(\<\/body\>[\s\S]*$)/i,ToReplace:/___fcktoreplace:([\w]+)/ig,MetaHttpEquiv:/http-equiv\s*=\s*["']?([^"' ]+)/i,HasBaseTag:/]/i,HtmlOpener:/]*>/i,HeadOpener:/]*>/i,HeadCloser:/<\/head\s*>/i,FCK_Class:/\s*FCK__[^ ]*(?=\s+|$)/,ElementName:/(^[a-z_:][\w.\-:]*\w$)|(^[a-z_]$)/,ForceSimpleAmpersand:/___FCKAmp___/g,SpaceNoClose:/\/>/g,EmptyParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>\s*(<\/\1>)?$/,EmptyOutParagraph:/^<(p|div|address|h\d|center)(?=[ >])[^>]*>(?:\s*| )(<\/\1>)?$/,TagBody:/>]+))/gi,ProtectUrlsA:/]+))/gi,ProtectUrlsArea:/]+))/gi,Html4DocType:/HTML 4\.0 Transitional/i,DocTypeTag:/]*>/i,HtmlDocType:/DTD HTML/,TagsWithEvent:/<[^\>]+ on\w+[\s\r\n]*=[\s\r\n]*?('|")[\s\S]+?\>/g,EventAttributes:/\s(on\w+)[\s\r\n]*=[\s\r\n]*?('|")([\s\S]*?)\2/g,ProtectedEvents:/\s\w+_fckprotectedatt="([^"]+)"/g,StyleProperties:/\S+\s*:/g,InvalidSelfCloseTags:/(<(?!base|meta|link|hr|br|param|img|area|input)([a-zA-Z0-9:]+)[^>]*)\/>/gi,StyleVariableAttName:/#\(\s*("|')(.+?)\1[^\)]*\s*\)/g,RegExp:/^\/(.*)\/([gim]*)$/,HtmlTag:/<[^\s<>](?:"[^"]*"|'[^']*'|[^<])*>/}; +var FCKListsLib={BlockElements:{ address:1,blockquote:1,center:1,div:1,dl:1,fieldset:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,marquee:1,noscript:1,ol:1,p:1,pre:1,script:1,table:1,ul:1 },NonEmptyBlockElements:{ p:1,div:1,form:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,address:1,pre:1,ol:1,ul:1,li:1,td:1,th:1 },InlineChildReqElements:{ abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },InlineNonEmptyElements:{ a:1,abbr:1,acronym:1,b:1,bdo:1,big:1,cite:1,code:1,del:1,dfn:1,em:1,font:1,i:1,ins:1,label:1,kbd:1,q:1,samp:1,small:1,span:1,strike:1,strong:1,sub:1,sup:1,tt:1,u:1,'var':1 },EmptyElements:{ base:1,col:1,meta:1,link:1,hr:1,br:1,param:1,img:1,area:1,input:1 },PathBlockElements:{ address:1,blockquote:1,dl:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1,li:1,dt:1,de:1 },PathBlockLimitElements:{ body:1,div:1,td:1,th:1,caption:1,form:1 },StyleBlockElements:{ address:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,p:1,pre:1 },StyleObjectElements:{ img:1,hr:1,li:1,table:1,tr:1,td:1,embed:1,object:1,ol:1,ul:1 },NonEditableElements:{ button:1,option:1,script:1,iframe:1,textarea:1,object:1,embed:1,map:1,applet:1 },BlockBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1 },ListBoundaries:{ p:1,div:1,h1:1,h2:1,h3:1,h4:1,h5:1,h6:1,hr:1,address:1,pre:1,ol:1,ul:1,li:1,dt:1,de:1,table:1,thead:1,tbody:1,tfoot:1,tr:1,th:1,td:1,caption:1,col:1,colgroup:1,blockquote:1,body:1,br:1 }}; +var FCKLanguageManager=FCK.Language={AvailableLanguages:{af:'Afrikaans',ar:'Arabic',bg:'Bulgarian',bn:'Bengali/Bangla',bs:'Bosnian',ca:'Catalan',cs:'Czech',da:'Danish',de:'German',el:'Greek',en:'English','en-au':'English (Australia)','en-ca':'English (Canadian)','en-uk':'English (United Kingdom)',eo:'Esperanto',es:'Spanish',et:'Estonian',eu:'Basque',fa:'Persian',fi:'Finnish',fo:'Faroese',fr:'French','fr-ca':'French (Canada)',gl:'Galician',gu:'Gujarati',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;i0) C+='|'+FCKConfig.AdditionalNumericEntities;FCKXHtmlEntities.EntitiesRegex=new RegExp(C,'g');}; +var FCKXHtml={};FCKXHtml.CurrentJobNum=0;FCKXHtml.GetXHTML=function(A,B,C){FCKDomTools.CheckAndRemovePaddingNode(FCKTools.GetElementDocument(A),FCKConfig.EnterMode);FCKXHtmlEntities.Initialize();this._NbspEntity=(FCKConfig.ProcessHTMLEntities?'nbsp':'#160');var D=FCK.IsDirty();FCKXHtml.SpecialBlocks=[];this.XML=FCKTools.CreateXmlObject('DOMDocument');this.MainNode=this.XML.appendChild(this.XML.createElement('xhtml'));FCKXHtml.CurrentJobNum++;if (B) this._AppendNode(this.MainNode,A);else this._AppendChildNodes(this.MainNode,A,false);var E=this._GetMainXmlString();this.XML=null;if (FCKBrowserInfo.IsSafari) E=E.replace(/^/,'');E=E.substr(7,E.length-15).Trim();if (FCKConfig.DocType.length>0&&FCKRegexLib.HtmlDocType.test(FCKConfig.DocType)) E=E.replace(FCKRegexLib.SpaceNoClose,'>');else E=E.replace(FCKRegexLib.SpaceNoClose,' />');if (FCKConfig.ForceSimpleAmpersand) E=E.replace(FCKRegexLib.ForceSimpleAmpersand,'&');if (C) E=FCKCodeFormatter.Format(E);for (var i=0;i0;if (C) A.appendChild(this.XML.createTextNode(B.replace(FCKXHtmlEntities.EntitiesRegex,FCKXHtml_GetEntity)));return C;};function FCKXHtml_GetEntity(A){var B=FCKXHtmlEntities.Entities[A]||('#'+A.charCodeAt(0));return '#?-:'+B+';';};FCKXHtml.TagProcessors={a:function(A,B){if (B.innerHTML.Trim().length==0&&!B.name) return false;var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);};A=FCKXHtml._AppendChildNodes(A,B,false);return A;},area:function(A,B){var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'href',C);if (FCKBrowserInfo.IsIE){if (!A.attributes.getNamedItem('coords')){var D=B.getAttribute('coords',2);if (D&&D!='0,0,0') FCKXHtml._AppendAttribute(A,'coords',D);};if (!A.attributes.getNamedItem('shape')){var E=B.getAttribute('shape',2);if (E&&E.length>0) FCKXHtml._AppendAttribute(A,'shape',E.toLowerCase());}};return A;},body:function(A,B){A=FCKXHtml._AppendChildNodes(A,B,false);A.removeAttribute('spellcheck');return A;},iframe:function(A,B){var C=B.innerHTML;if (FCKBrowserInfo.IsGecko) C=FCKTools.HTMLDecode(C);C=C.replace(/\s_fcksavedurl="[^"]*"/g,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},img:function(A,B){if (!A.attributes.getNamedItem('alt')) FCKXHtml._AppendAttribute(A,'alt','');var C=B.getAttribute('_fcksavedurl');if (C!=null) FCKXHtml._AppendAttribute(A,'src',C);if (B.style.width) A.removeAttribute('width');if (B.style.height) A.removeAttribute('height');return A;},li:function(A,B,C){if (C.nodeName.IEquals(['ul','ol'])) return FCKXHtml._AppendChildNodes(A,B,true);var D=FCKXHtml.XML.createElement('ul');B._fckxhtmljob=null;do{FCKXHtml._AppendNode(D,B);do{B=FCKDomTools.GetNextSibling(B);} while (B&&B.nodeType==3&&B.nodeValue.Trim().length==0)} while (B&&B.nodeName.toLowerCase()=='li') return D;},ol:function(A,B,C){if (B.innerHTML.Trim().length==0) return false;var D=C.lastChild;if (D&&D.nodeType==3) D=D.previousSibling;if (D&&D.nodeName.toUpperCase()=='LI'){B._fckxhtmljob=null;FCKXHtml._AppendNode(D,B);return false;};A=FCKXHtml._AppendChildNodes(A,B);return A;},pre:function (A,B){var C=B.firstChild;if (C&&C.nodeType==3) A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem('\r\n')));FCKXHtml._AppendChildNodes(A,B,true);return A;},script:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/javascript');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(B.text)));return A;},span:function(A,B){if (B.innerHTML.length==0) return false;A=FCKXHtml._AppendChildNodes(A,B,false);return A;},style:function(A,B){if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text/css');var C=B.innerHTML;if (FCKBrowserInfo.IsIE) C=C.replace(/^(\r\n|\n|\r)/,'');A.appendChild(FCKXHtml.XML.createTextNode(FCKXHtml._AppendSpecialItem(C)));return A;},title:function(A,B){A.appendChild(FCKXHtml.XML.createTextNode(FCK.EditorDocument.title));return A;}};FCKXHtml.TagProcessors.ul=FCKXHtml.TagProcessors.ol; +FCKXHtml._GetMainXmlString=function(){return this.MainNode.xml;};FCKXHtml._AppendAttributes=function(A,B,C,D){var E=B.attributes,bHasStyle;for (var n=0;n0){var I=FCKTools.ProtectFormStyles(B);var J=B.style.cssText.replace(FCKRegexLib.StyleProperties,FCKTools.ToLowerCase);FCKTools.RestoreFormStyles(B,I);this._AppendAttribute(C,'style',J);}};FCKXHtml.TagProcessors['div']=function(A,B){if (B.align.length>0) FCKXHtml._AppendAttribute(A,'align',B.align);A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['font']=function(A,B){if (A.attributes.length==0) A=FCKXHtml.XML.createDocumentFragment();A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['form']=function(A,B){if (B.acceptCharset&&B.acceptCharset.length>0&&B.acceptCharset!='UNKNOWN') FCKXHtml._AppendAttribute(A,'accept-charset',B.acceptCharset);var C=B.attributes['name'];if (C&&C.value.length>0) FCKXHtml._AppendAttribute(A,'name',C.value);A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['input']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);if (B.value&&!A.attributes.getNamedItem('value')) FCKXHtml._AppendAttribute(A,'value',B.value);if (!A.attributes.getNamedItem('type')) FCKXHtml._AppendAttribute(A,'type','text');return A;};FCKXHtml.TagProcessors['label']=function(A,B){if (B.htmlFor.length>0) FCKXHtml._AppendAttribute(A,'for',B.htmlFor);A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['map']=function(A,B){if (!A.attributes.getNamedItem('name')){var C=B.name;if (C) FCKXHtml._AppendAttribute(A,'name',C);};A=FCKXHtml._AppendChildNodes(A,B,true);return A;};FCKXHtml.TagProcessors['meta']=function(A,B){var C=A.attributes.getNamedItem('http-equiv');if (C==null||C.value.length==0){var D=B.outerHTML.match(FCKRegexLib.MetaHttpEquiv);if (D){D=D[1];FCKXHtml._AppendAttribute(A,'http-equiv',D);}};return A;};FCKXHtml.TagProcessors['option']=function(A,B){if (B.selected&&!A.attributes.getNamedItem('selected')) FCKXHtml._AppendAttribute(A,'selected','selected');A=FCKXHtml._AppendChildNodes(A,B);return A;};FCKXHtml.TagProcessors['textarea']=FCKXHtml.TagProcessors['select']=function(A,B){if (B.name) FCKXHtml._AppendAttribute(A,'name',B.name);A=FCKXHtml._AppendChildNodes(A,B);return A;}; +var FCKCodeFormatter={};FCKCodeFormatter.Init=function(){var A=this.Regex={};A.BlocksOpener=/\<(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.BlocksCloser=/\<\/(P|DIV|H1|H2|H3|H4|H5|H6|ADDRESS|PRE|OL|UL|LI|TITLE|META|LINK|BASE|SCRIPT|LINK|TD|TH|AREA|OPTION)[^\>]*\>/gi;A.NewLineTags=/\<(BR|HR)[^\>]*\>/gi;A.MainTags=/\<\/?(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR)[^\>]*\>/gi;A.LineSplitter=/\s*\n+\s*/g;A.IncreaseIndent=/^\<(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \/\>]/i;A.DecreaseIndent=/^\<\/(HTML|HEAD|BODY|FORM|TABLE|TBODY|THEAD|TR|UL|OL)[ \>]/i;A.FormatIndentatorRemove=new RegExp('^'+FCKConfig.FormatIndentator);A.ProtectedTags=/(]*>)([\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;iB[i]) return 1;};if (A.lengthB.length) return 1;return 0;};FCKUndo._CheckIsBookmarksEqual=function(A,B){if (!(A&&B)) return false;if (FCKBrowserInfo.IsIE){var C=A[1].search(A[0].StartId);var D=B[1].search(B[0].StartId);var E=A[1].search(A[0].EndId);var F=B[1].search(B[0].EndId);return C==D&&E==F;}else{return this._CompareCursors(A.Start,B.Start)==0&&this._CompareCursors(A.End,B.End)==0;}};FCKUndo.SaveUndoStep=function(){if (FCK.EditMode!=0||this.SaveLocked) return;if (this.SavedData.length) this.Changed=true;var A=FCK.EditorDocument.body.innerHTML;var B=this._GetBookmark();this.SavedData=this.SavedData.slice(0,this.CurrentIndex+1);if (this.CurrentIndex>0&&A==this.SavedData[this.CurrentIndex][0]&&this._CheckIsBookmarksEqual(B,this.SavedData[this.CurrentIndex][1])) return;else if (this.CurrentIndex==0&&this.SavedData.length&&A==this.SavedData[0][0]){this.SavedData[0][1]=B;return;};if (this.CurrentIndex+1>=FCKConfig.MaxUndoLevels) this.SavedData.shift();else this.CurrentIndex++;this.SavedData[this.CurrentIndex]=[A,B];FCK.Events.FireEvent("OnSelectionChange");};FCKUndo.CheckUndoState=function(){return (this.Changed||this.CurrentIndex>0);};FCKUndo.CheckRedoState=function(){return (this.CurrentIndex<(this.SavedData.length-1));};FCKUndo.Undo=function(){if (this.CheckUndoState()){if (this.CurrentIndex==(this.SavedData.length-1)){this.SaveUndoStep();};this._ApplyUndoLevel(--this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo.Redo=function(){if (this.CheckRedoState()){this._ApplyUndoLevel(++this.CurrentIndex);FCK.Events.FireEvent("OnSelectionChange");}};FCKUndo._ApplyUndoLevel=function(A){var B=this.SavedData[A];if (!B) return;if (FCKBrowserInfo.IsIE){if (B[1]&&B[1][1]) FCK.SetInnerHtml(B[1][1]);else FCK.SetInnerHtml(B[0]);}else FCK.EditorDocument.body.innerHTML=B[0];this._SelectBookmark(B[1]);this.TypesCount=0;this.Changed=false;this.Typing=false;}; +var FCKEditingArea=function(A){this.TargetElement=A;this.Mode=0;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKEditingArea_Cleanup);};FCKEditingArea.prototype.Start=function(A,B){var C=this.TargetElement;var D=FCKTools.GetElementDocument(C);while(C.firstChild) C.removeChild(C.firstChild);if (this.Mode==0){if (FCK_IS_CUSTOM_DOMAIN) A=''+A;if (FCKBrowserInfo.IsIE) A=A.replace(/(]*?)\s*\/?>(?!\s*<\/base>)/gi,'$1>');else if (!B){var E=A.match(FCKRegexLib.BeforeBody);var F=A.match(FCKRegexLib.AfterBody);if (E&&F){var G=A.substr(E[1].length,A.length-E[1].length-F[1].length);A=E[1]+' '+F[1];if (FCKBrowserInfo.IsGecko&&(G.length==0||FCKRegexLib.EmptyParagraph.test(G))) G='
      ';this._BodyHTML=G;}else this._BodyHTML=A;};var H=this.IFrame=D.createElement('iframe');var I='';H.frameBorder=0;H.style.width=H.style.height='100%';if (FCK_IS_CUSTOM_DOMAIN&&FCKBrowserInfo.IsIE){window._FCKHtmlToLoad=A.replace(//i,''+I);H.src='javascript:void( (function(){document.open() ;document.domain="'+document.domain+'" ;document.write( window.parent._FCKHtmlToLoad );document.close() ;window.parent._FCKHtmlToLoad = null ;})() )';}else if (!FCKBrowserInfo.IsGecko){H.src='javascript:void(0)';};C.appendChild(H);this.Window=H.contentWindow;if (!FCK_IS_CUSTOM_DOMAIN||!FCKBrowserInfo.IsIE){var J=this.Window.document;J.open();J.write(A.replace(//i,''+I));J.close();};if (FCKBrowserInfo.IsAIR) FCKAdobeAIR.EditingArea_Start(J,A);if (FCKBrowserInfo.IsGecko10&&!B){this.Start(A,true);return;};if (H.readyState&&H.readyState!='completed'){var K=this;setTimeout(function(){try{K.Window.document.documentElement.doScroll("left");}catch(e){setTimeout(arguments.callee,0);return;};K.Window._FCKEditingArea=K;FCKEditingArea_CompleteStart.call(K.Window);},0);}else{this.Window._FCKEditingArea=this;if (FCKBrowserInfo.IsGecko10) this.Window.setTimeout(FCKEditingArea_CompleteStart,500);else FCKEditingArea_CompleteStart.call(this.Window);}}else{var L=this.Textarea=D.createElement('textarea');L.className='SourceField';L.dir='ltr';FCKDomTools.SetElementStyles(L,{width:'100%',height:'100%',border:'none',resize:'none',outline:'none'});C.appendChild(L);L.value=A;FCKTools.RunFunction(this.OnLoad);}};function FCKEditingArea_CompleteStart(){if (!this.document.body){this.setTimeout(FCKEditingArea_CompleteStart,50);return;};var A=this._FCKEditingArea;A.Document=A.Window.document;A.MakeEditable();FCKTools.RunFunction(A.OnLoad);};FCKEditingArea.prototype.MakeEditable=function(){var A=this.Document;if (FCKBrowserInfo.IsIE){A.body.disabled=true;A.body.contentEditable=true;A.body.removeAttribute("disabled");}else{try{A.body.spellcheck=(this.FFSpellChecker!==false);if (this._BodyHTML){A.body.innerHTML=this._BodyHTML;A.body.offsetLeft;this._BodyHTML=null;};A.designMode='on';A.execCommand('enableObjectResizing',false,!FCKConfig.DisableObjectResizing);A.execCommand('enableInlineTableEditing',false,!FCKConfig.DisableFFTableHandles);}catch (e){FCKTools.AddEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);}}};function FCKEditingArea_Document_AttributeNodeModified(A){var B=A.currentTarget.contentWindow._FCKEditingArea;if (B._timer) window.clearTimeout(B._timer);B._timer=FCKTools.SetTimeout(FCKEditingArea_MakeEditableByMutation,1000,B);};function FCKEditingArea_MakeEditableByMutation(){delete this._timer;FCKTools.RemoveEventListener(this.Window.frameElement,'DOMAttrModified',FCKEditingArea_Document_AttributeNodeModified);this.MakeEditable();};FCKEditingArea.prototype.Focus=function(){try{if (this.Mode==0){if (FCKBrowserInfo.IsIE) this._FocusIE();else this.Window.focus();}else{var A=FCKTools.GetElementDocument(this.Textarea);if ((!A.hasFocus||A.hasFocus())&&A.activeElement==this.Textarea) return;this.Textarea.focus();}}catch(e) {}};FCKEditingArea.prototype._FocusIE=function(){this.Document.body.setActive();this.Window.focus();var A=this.Document.selection.createRange();var B=A.parentElement();var C=B.nodeName.toLowerCase();if (B.childNodes.length>0||!(FCKListsLib.BlockElements[C]||FCKListsLib.NonEmptyBlockElements[C])){return;};A=new FCKDomRange(this.Window);A.MoveToElementEditStart(B);A.Select();};function FCKEditingArea_Cleanup(){if (this.Document) this.Document.body.innerHTML="";this.TargetElement=null;this.IFrame=null;this.Document=null;this.Textarea=null;if (this.Window){this.Window._FCKEditingArea=null;this.Window=null;}}; +var 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;i40))){B._CancelIt=true;if (A.preventDefault) return A.preventDefault();A.returnValue=false;A.cancelBubble=true;return false;};return true;};function _FCKKeystrokeHandler_OnKeyPress(A,B){if (B._CancelIt){if (A.preventDefault) return A.preventDefault();return false;};return true;}; +FCK.DTD=(function(){var X=FCKTools.Merge;var A,L,J,M,N,O,D,H,P,K,Q,F,G,C,B,E,I;A={isindex:1,fieldset:1};B={input:1,button:1,select:1,textarea:1,label:1};C=X({a:1},B);D=X({iframe:1},C);E={hr:1,ul:1,menu:1,div:1,blockquote:1,noscript:1,table:1,center:1,address:1,dir:1,pre:1,h5:1,dl:1,h4:1,noframes:1,h6:1,ol:1,h1:1,h3:1,h2:1};F={ins:1,del:1,script:1};G=X({b:1,acronym:1,bdo:1,'var':1,'#':1,abbr:1,code:1,br:1,i:1,cite:1,kbd:1,u:1,strike:1,s:1,tt:1,strong:1,q:1,samp:1,em:1,dfn:1,span:1},F);H=X({sub:1,img:1,object:1,sup:1,basefont:1,map:1,applet:1,font:1,big:1,small:1},G);I=X({p:1},H);J=X({iframe:1},H,B);K={img:1,noscript:1,br:1,kbd:1,center:1,button:1,basefont:1,h5:1,h4:1,samp:1,h6:1,ol:1,h1:1,h3:1,h2:1,form:1,font:1,'#':1,select:1,menu:1,ins:1,abbr:1,label:1,code:1,table:1,script:1,cite:1,input:1,iframe:1,strong:1,textarea:1,noframes:1,big:1,small:1,span:1,hr:1,sub:1,bdo:1,'var':1,div:1,object:1,sup:1,strike:1,dir:1,map:1,dl:1,applet:1,del:1,isindex:1,fieldset:1,ul:1,b:1,acronym:1,a:1,blockquote:1,i:1,u:1,s:1,tt:1,address:1,q:1,pre:1,p:1,em:1,dfn:1};L=X({a:1},J);M={tr:1};N={'#':1};O=X({param:1},K);P=X({form:1},A,D,E,I);Q={li:1};return {col:{},tr:{td:1,th:1},img:{},colgroup:{col:1},noscript:P,td:P,br:{},th:P,center:P,kbd:L,button:X(I,E),basefont:{},h5:L,h4:L,samp:L,h6:L,ol:Q,h1:L,h3:L,option:N,h2:L,form:X(A,D,E,I),select:{optgroup:1,option:1},font:J,ins:P,menu:Q,abbr:L,label:L,table:{thead:1,col:1,tbody:1,tr:1,colgroup:1,caption:1,tfoot:1},code:L,script:N,tfoot:M,cite:L,li:P,input:{},iframe:P,strong:J,textarea:N,noframes:P,big:J,small:J,span:J,hr:{},dt:L,sub:J,optgroup:{option:1},param:{},bdo:L,'var':J,div:P,object:O,sup:J,dd:P,strike:J,area:{},dir:Q,map:X({area:1,form:1,p:1},A,F,E),applet:O,dl:{dt:1,dd:1},del:P,isindex:{},fieldset:X({legend:1},K),thead:M,ul:Q,acronym:L,b:J,a:J,blockquote:P,caption:L,i:J,u:J,tbody:M,s:L,address:X(D,I),tt:J,legend:L,q:L,pre:X(G,C),p:L,em:J,dfn:L};})(); +var FCKStyle=function(A){this.Element=(A.Element||'span').toLowerCase();this._StyleDesc=A;};FCKStyle.prototype={GetType:function(){var A=this.GetType_$;if (A!=undefined) return A;var B=this.Element;if (B=='#'||FCKListsLib.StyleBlockElements[B]) A=0;else if (FCKListsLib.StyleObjectElements[B]) A=2;else A=1;return (this.GetType_$=A);},ApplyToSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.ApplyToRange(B,true);},ApplyToRange:function(A,B,C){switch (this.GetType()){case 0:this.ApplyToRange=this._ApplyBlockStyle;break;case 1:this.ApplyToRange=this._ApplyInlineStyle;break;default:return;};this.ApplyToRange(A,B,C);},ApplyToObject:function(A){if (!A) return;this.BuildElement(null,A);},RemoveFromSelection:function(A){var B=new FCKDomRange(A);B.MoveToSelection();this.RemoveFromRange(B,true);},RemoveFromRange:function(A,B,C){var D;var E=this._GetAttribsForComparison();var F=this._GetOverridesForComparison();if (A.CheckIsCollapsed()){var D=A.CreateBookmark(true);var H=A.GetBookmarkNode(D,true);var I=new FCKElementPath(H.parentNode);var J=[];var K=!FCKDomTools.GetNextSibling(H);var L=K||!FCKDomTools.GetPreviousSibling(H);var M;var N=-1;for (var i=0;i=0;i--){var E=D[i];for (var F in B){if (FCKDomTools.HasAttribute(E,F)){switch (F){case 'style':this._RemoveStylesFromElement(E);break;case 'class':if (FCKDomTools.GetAttributeValue(E,F)!=this.GetFinalAttributeValue(F)) continue;default:FCKDomTools.RemoveAttribute(E,F);}}};this._RemoveOverrides(E,C[this.Element]);this._RemoveNoAttribElement(E);};for (var G in C){if (G!=this.Element){D=A.getElementsByTagName(G);for (var i=D.length-1;i>=0;i--){var E=D[i];this._RemoveOverrides(E,C[G]);this._RemoveNoAttribElement(E);}}}},_RemoveStylesFromElement:function(A){var B=A.style.cssText;var C=this.GetFinalStyleValue();if (B.length>0&&C.length==0) return;C='(^|;)\\s*('+C.replace(/\s*([^ ]+):.*?(;|$)/g,'$1|').replace(/\|$/,'')+'):[^;]+';var D=new RegExp(C,'gi');B=B.replace(D,'').Trim();if (B.length==0||B==';') FCKDomTools.RemoveAttribute(A,'style');else A.style.cssText=B.replace(D,'');},_RemoveOverrides:function(A,B){var C=B&&B.Attributes;if (C){for (var i=0;i0) C.style.cssText=this.GetFinalStyleValue();return C;},_CompareAttributeValues:function(A,B,C){if (A=='style'&&B&&C){B=B.replace(/;$/,'').toLowerCase();C=C.replace(/;$/,'').toLowerCase();};return (B==C||((B===null||B==='')&&(C===null||C==='')))},GetFinalAttributeValue:function(A){var B=this._StyleDesc.Attributes;var B=B?B[A]:null;if (!B&&A=='style') return this.GetFinalStyleValue();if (B&&this._Variables) B=B.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);return B;},GetFinalStyleValue:function(){var A=this._GetStyleText();if (A.length>0&&this._Variables){A=A.Replace(FCKRegexLib.StyleVariableAttName,this._GetVariableReplace,this);A=FCKTools.NormalizeCssText(A);};return A;},_GetVariableReplace:function(){return this._Variables[arguments[2]]||arguments[0];},SetVariable:function(A,B){var C=this._Variables;if (!C) C=this._Variables={};this._Variables[A]=B;},_FromPre:function(A,B,C){var D=B.innerHTML;D=D.replace(/(\r\n|\r)/g,'\n');D=D.replace(/^[ \t]*\n/,'');D=D.replace(/\n$/,'');D=D.replace(/^[ \t]+|[ \t]+$/g,function(match,offset,s){if (match.length==1) return ' ';else if (offset==0) return new Array(match.length).join(' ')+' ';else return ' '+new Array(match.length).join(' ');});var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!isTag){value=value.replace(/\n/g,'
      ');value=value.replace(/[ \t]{2,}/g,function (match){return new Array(match.length).join(' ')+' ';});};F.push(value);});C.innerHTML=F.join('');return C;},_ToPre:function(A,B,C){var D=B.innerHTML.Trim();D=D.replace(/[ \t\r\n]*(]*>)[ \t\r\n]*/gi,'
      ');var E=new FCKHtmlIterator(D);var F=[];E.Each(function(isTag,value){if (!isTag) value=value.replace(/([ \t\n\r]+| )/g,' ');else if (isTag&&value=='
      ') value='\n';F.push(value);});if (FCKBrowserInfo.IsIE){var G=A.createElement('div');G.appendChild(C);C.outerHTML='
      \n'+F.join('')+'
      ';C=G.removeChild(G.firstChild);}else C.innerHTML=F.join('');return C;},_CheckAndMergePre:function(A,B){if (A!=FCKDomTools.GetPreviousSourceElement(B,true)) return;var C=A.innerHTML.replace(/\n$/,'')+'\n\n'+B.innerHTML.replace(/^\n/,'');if (FCKBrowserInfo.IsIE) B.outerHTML='
      '+C+'
      ';else B.innerHTML=C;FCKDomTools.RemoveNode(A);},_CheckAndSplitPre:function(A){var B;var C=A.firstChild;C=C&&C.nextSibling;while (C){var D=C.nextSibling;if (D&&D.nextSibling&&C.nodeName.IEquals('br')&&D.nodeName.IEquals('br')){FCKDomTools.RemoveNode(C);C=D.nextSibling;FCKDomTools.RemoveNode(D);B=FCKDomTools.InsertAfterNode(B||A,FCKDomTools.CloneElement(A));continue;};if (B){C=C.previousSibling;FCKDomTools.MoveNode(C.nextSibling,B);};C=C.nextSibling;}},_ApplyBlockStyle:function(A,B,C){var D;if (B) D=A.CreateBookmark();var E=new FCKDomRangeIterator(A);E.EnforceRealBlocks=true;var F;var G=A.Window.document;var H;while((F=E.GetNextParagraph())){var I=this.BuildElement(G);var J=I.nodeName.IEquals('pre');var K=F.nodeName.IEquals('pre');var L=J&&!K;var M=!J&&K;if (L) I=this._ToPre(G,F,I);else if (M) I=this._FromPre(G,F,I);else FCKDomTools.MoveChildren(F,I);F.parentNode.insertBefore(I,F);FCKDomTools.RemoveNode(F);if (J){if (H) this._CheckAndMergePre(H,I);H=I;}else if (M) this._CheckAndSplitPre(I);};if (B) A.SelectBookmark(D);if (C) A.MoveToBookmark(D);},_ApplyInlineStyle:function(A,B,C){var D=A.Window.document;if (A.CheckIsCollapsed()){var E=this.BuildElement(D);A.InsertNode(E);A.MoveToPosition(E,2);A.Select();return;};var F=this.Element;var G=FCK.DTD[F]||FCK.DTD.span;var H=this._GetAttribsForComparison();var I;A.Expand('inline_elements');var J=A.CreateBookmark(true);var K=A.GetBookmarkNode(J,true);var L=A.GetBookmarkNode(J,false);A.Release(true);var M=FCKDomTools.GetNextSourceNode(K,true);while (M){var N=false;var O=M.nodeType;var P=O==1?M.nodeName.toLowerCase():null;if (!P||G[P]){if ((FCK.DTD[M.parentNode.nodeName.toLowerCase()]||FCK.DTD.span)[F]||!FCK.DTD[F]){if (!A.CheckHasRange()) A.SetStart(M,3);if (O!=1||M.childNodes.length==0){var Q=M;var R=Q.parentNode;while (Q==R.lastChild&&G[R.nodeName.toLowerCase()]){Q=R;};A.SetEnd(Q,4);if (Q==Q.parentNode.lastChild&&!G[Q.parentNode.nodeName.toLowerCase()]) N=true;}else{A.SetEnd(M,3);}}else N=true;}else N=true;M=FCKDomTools.GetNextSourceNode(M);if (M==L){M=null;N=true;};if (N&&A.CheckHasRange()&&!A.CheckIsCollapsed()){I=this.BuildElement(D);A.ExtractContents().AppendTo(I);if (I.innerHTML.RTrim().length>0){A.InsertNode(I);this.RemoveFromElement(I);this._MergeSiblings(I,this._GetAttribsForComparison());if (!FCKBrowserInfo.IsIE) I.normalize();};A.Release(true);}};this._FixBookmarkStart(K);if (B) A.SelectBookmark(J);if (C) A.MoveToBookmark(J);},_FixBookmarkStart:function(A){var B;while ((B=A.nextSibling)){if (B.nodeType==1&&FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){if (!B.firstChild) FCKDomTools.RemoveNode(B);else FCKDomTools.MoveNode(A,B,true);continue;};if (B.nodeType==3&&B.length==0){FCKDomTools.RemoveNode(B);continue;};break;}},_MergeSiblings:function(A,B){if (!A||A.nodeType!=1||!FCKListsLib.InlineNonEmptyElements[A.nodeName.toLowerCase()]) return;this._MergeNextSibling(A,B);this._MergePreviousSibling(A,B);},_MergeNextSibling:function(A,B){var C=A.nextSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.nextSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.lastChild;if (D) FCKDomTools.MoveNode(A.nextSibling,A);FCKDomTools.MoveChildren(C,A);FCKDomTools.RemoveNode(C);if (E) this._MergeNextSibling(E);}}},_MergePreviousSibling:function(A,B){var C=A.previousSibling;var D=(C&&C.nodeType==1&&C.getAttribute('_fck_bookmark'));if (D) C=C.previousSibling;if (C&&C.nodeType==1&&C.nodeName==A.nodeName){if (!B) B=this._CreateElementAttribsForComparison(A);if (this._CheckAttributesMatch(C,B)){var E=A.firstChild;if (D) FCKDomTools.MoveNode(A.previousSibling,A,true);FCKDomTools.MoveChildren(C,A,true);FCKDomTools.RemoveNode(C);if (E) this._MergePreviousSibling(E);}}},_GetStyleText:function(){var A=this._StyleDesc.Styles;var B=(this._StyleDesc.Attributes?this._StyleDesc.Attributes['style']||'':'');if (B.length>0) B+=';';for (var C in A) B+=C+':'+A[C]+';';if (B.length>0&&!(/#\(/.test(B))){B=FCKTools.NormalizeCssText(B);};return (this._GetStyleText=function() { return B;})();},_GetAttribsForComparison:function(){var A=this._GetAttribsForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Attributes;if (B){for (var C in B){A[C.toLowerCase()]=B[C].toLowerCase();}};if (this._GetStyleText().length>0){A['style']=this._GetStyleText().toLowerCase();};FCKTools.AppendLengthProperty(A,'_length');return (this._GetAttribsForComparison_$=A);},_GetOverridesForComparison:function(){var A=this._GetOverridesForComparison_$;if (A) return A;A={};var B=this._StyleDesc.Overrides;if (B){if (!FCKTools.IsArray(B)) B=[B];for (var i=0;i0) return true;};B=B.nextSibling;};return false;}}; +var FCKElementPath=function(A){var B=null;var C=null;var D=[];var e=A;while (e){if (e.nodeType==1){if (!this.LastElement) this.LastElement=e;var E=e.nodeName.toLowerCase();if (FCKBrowserInfo.IsIE&&e.scopeName!='HTML') E=e.scopeName.toLowerCase()+':'+E;if (!C){if (!B&&FCKListsLib.PathBlockElements[E]!=null) B=e;if (FCKListsLib.PathBlockLimitElements[E]!=null){if (!B&&E=='div'&&!FCKElementPath._CheckHasBlock(e)) B=e;else C=e;}};D.push(e);if (E=='body') break;};e=e.parentNode;};this.Block=B;this.BlockLimit=C;this.Elements=D;};FCKElementPath._CheckHasBlock=function(A){var B=A.childNodes;for (var i=0,count=B.length;i0){if (D.nodeType==3){var G=D.nodeValue.substr(0,E).Trim();if (G.length!=0) return A.IsStartOfBlock=false;}else F=D.childNodes[E-1];};if (!F) F=FCKDomTools.GetPreviousSourceNode(D,true,null,C);while (F){switch (F.nodeType){case 1:if (!FCKListsLib.InlineChildReqElements[F.nodeName.toLowerCase()]) return A.IsStartOfBlock=false;break;case 3:if (F.nodeValue.Trim().length>0) return A.IsStartOfBlock=false;};F=FCKDomTools.GetPreviousSourceNode(F,false,null,C);};return A.IsStartOfBlock=true;},CheckEndOfBlock:function(A){var B=this._Cache.IsEndOfBlock;if (B!=undefined) return B;var C=this.EndBlock||this.EndBlockLimit;var D=this._Range.endContainer;var E=this._Range.endOffset;var F;if (D.nodeType==3){var G=D.nodeValue;if (E0) return this._Cache.IsEndOfBlock=false;};F=FCKDomTools.GetNextSourceNode(F,false,null,C);};if (A) this.Select();return this._Cache.IsEndOfBlock=true;},CreateBookmark:function(A){var B={StartId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'S',EndId:(new Date()).valueOf()+Math.floor(Math.random()*1000)+'E'};var C=this.Window.document;var D;var E;var F;if (!this.CheckIsCollapsed()){E=C.createElement('span');E.style.display='none';E.id=B.EndId;E.setAttribute('_fck_bookmark',true);E.innerHTML=' ';F=this.Clone();F.Collapse(false);F.InsertNode(E);};D=C.createElement('span');D.style.display='none';D.id=B.StartId;D.setAttribute('_fck_bookmark',true);D.innerHTML=' ';F=this.Clone();F.Collapse(true);F.InsertNode(D);if (A){B.StartNode=D;B.EndNode=E;};if (E){this.SetStart(D,4);this.SetEnd(E,3);}else this.MoveToPosition(D,4);return B;},GetBookmarkNode:function(A,B){var C=this.Window.document;if (B) return A.StartNode||C.getElementById(A.StartId);else return A.EndNode||C.getElementById(A.EndId);},MoveToBookmark:function(A,B){var C=this.GetBookmarkNode(A,true);var D=this.GetBookmarkNode(A,false);this.SetStart(C,3);if (!B) FCKDomTools.RemoveNode(C);if (D){this.SetEnd(D,3);if (!B) FCKDomTools.RemoveNode(D);}else this.Collapse(true);this._UpdateElementInfo();},CreateBookmark2:function(){if (!this._Range) return { "Start":0,"End":0 };var A={"Start":[this._Range.startOffset],"End":[this._Range.endOffset]};var B=this._Range.startContainer.previousSibling;var C=this._Range.endContainer.previousSibling;var D=this._Range.startContainer;var E=this._Range.endContainer;while (B&&D.nodeType==3){A.Start[0]+=B.length;D=B;B=B.previousSibling;}while (C&&E.nodeType==3){A.End[0]+=C.length;E=C;C=C.previousSibling;};if (D.nodeType==1&&D.childNodes[A.Start[0]]&&D.childNodes[A.Start[0]].nodeType==3){var F=D.childNodes[A.Start[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};D=F;A.Start[0]=G;};if (E.nodeType==1&&E.childNodes[A.End[0]]&&E.childNodes[A.End[0]].nodeType==3){var F=E.childNodes[A.End[0]];var G=0;while (F.previousSibling&&F.previousSibling.nodeType==3){F=F.previousSibling;G+=F.length;};E=F;A.End[0]=G;};A.Start=FCKDomTools.GetNodeAddress(D,true).concat(A.Start);A.End=FCKDomTools.GetNodeAddress(E,true).concat(A.End);return A;},MoveToBookmark2:function(A){var B=FCKDomTools.GetNodeFromAddress(this.Window.document,A.Start.slice(0,-1),true);var C=FCKDomTools.GetNodeFromAddress(this.Window.document,A.End.slice(0,-1),true);this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var D=A.Start[A.Start.length-1];var E=A.End[A.End.length-1];while (B.nodeType==3&&D>B.length){if (!B.nextSibling||B.nextSibling.nodeType!=3) break;D-=B.length;B=B.nextSibling;}while (C.nodeType==3&&E>C.length){if (!C.nextSibling||C.nextSibling.nodeType!=3) break;E-=C.length;C=C.nextSibling;};this._Range.setStart(B,D);this._Range.setEnd(C,E);this._UpdateElementInfo();},MoveToPosition:function(A,B){this.SetStart(A,B);this.Collapse(true);},SetStart:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setStart(A,0);break;case 2:D.setStart(A,A.childNodes.length);break;case 3:D.setStartBefore(A);break;case 4:D.setStartAfter(A);};if (!C) this._UpdateElementInfo();},SetEnd:function(A,B,C){var D=this._Range;if (!D) D=this._Range=this.CreateRange();switch(B){case 1:D.setEnd(A,0);break;case 2:D.setEnd(A,A.childNodes.length);break;case 3:D.setEndBefore(A);break;case 4:D.setEndAfter(A);};if (!C) this._UpdateElementInfo();},Expand:function(A){var B,oSibling;switch (A){case 'inline_elements':if (this._Range.startOffset==0){B=this._Range.startContainer;if (B.nodeType!=1) B=B.previousSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setStartBefore(B);if (B!=B.parentNode.firstChild) break;B=B.parentNode;}}};B=this._Range.endContainer;var C=this._Range.endOffset;if ((B.nodeType==3&&C>=B.nodeValue.length)||(B.nodeType==1&&C>=B.childNodes.length)||(B.nodeType!=1&&B.nodeType!=3)){if (B.nodeType!=1) B=B.nextSibling?null:B.parentNode;if (B){while (FCKListsLib.InlineNonEmptyElements[B.nodeName.toLowerCase()]){this._Range.setEndAfter(B);if (B!=B.parentNode.lastChild) break;B=B.parentNode;}}};break;case 'block_contents':case 'list_contents':var D=FCKListsLib.BlockBoundaries;if (A=='list_contents'||FCKConfig.EnterMode=='br') D=FCKListsLib.ListBoundaries;if (this.StartBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents') this.SetStart(this.StartBlock,1);else{B=this._Range.startContainer;if (B.nodeType==1){var E=B.childNodes[this._Range.startOffset];if (E) B=FCKDomTools.GetPreviousSourceNode(E,true);else B=B.lastChild||B;}while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setStartBefore(B);B=B.previousSibling||B.parentNode;}};if (this.EndBlock&&FCKConfig.EnterMode!='br'&&A=='block_contents'&&this.EndBlock.nodeName.toLowerCase()!='li') this.SetEnd(this.EndBlock,2);else{B=this._Range.endContainer;if (B.nodeType==1) B=B.childNodes[this._Range.endOffset]||B.lastChild;while (B&&(B.nodeType!=1||(B!=this.StartBlockLimit&&!D[B.nodeName.toLowerCase()]))){this._Range.setEndAfter(B);B=B.nextSibling||B.parentNode;};if (B&&B.nodeName.toLowerCase()=='br') this._Range.setEndAfter(B);};this._UpdateElementInfo();}},SplitBlock:function(A){var B=A||FCKConfig.EnterMode;if (!this._Range) this.MoveToSelection();if (this.StartBlockLimit==this.EndBlockLimit){var C=this.StartBlock;var D=this.EndBlock;var E=null;if (B!='br'){if (!C){C=this.FixBlock(true,B);D=this.EndBlock;};if (!D) D=this.FixBlock(false,B);};var F=(C!=null&&this.CheckStartOfBlock());var G=(D!=null&&this.CheckEndOfBlock());if (!this.CheckIsEmpty()) this.DeleteContents();if (C&&D&&C==D){if (G){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(D,4);D=null;}else if (F){E=new FCKElementPath(this.StartContainer);this.MoveToPosition(C,3);C=null;}else{this.SetEnd(C,2);var H=this.ExtractContents();D=C.cloneNode(false);D.removeAttribute('id',false);H.AppendTo(D);FCKDomTools.InsertAfterNode(C,D);this.MoveToPosition(C,4);if (FCKBrowserInfo.IsGecko&&!C.nodeName.IEquals(['ul','ol'])) FCKTools.AppendBogusBr(C);}};return {PreviousBlock:C,NextBlock:D,WasStartOfBlock:F,WasEndOfBlock:G,ElementPath:E};};return null;},FixBlock:function(A,B){var C=this.CreateBookmark();this.Collapse(A);this.Expand('block_contents');var D=this.Window.document.createElement(B);this.ExtractContents().AppendTo(D);FCKDomTools.TrimNode(D);if (FCKDomTools.CheckIsEmptyElement(D,function(element) { return element.getAttribute('_fck_bookmark')!='true';})&&FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(D);this.InsertNode(D);this.MoveToBookmark(C);return D;},Release:function(A){if (!A) this.Window=null;this.StartNode=null;this.StartContainer=null;this.StartBlock=null;this.StartBlockLimit=null;this.EndNode=null;this.EndContainer=null;this.EndBlock=null;this.EndBlockLimit=null;this._Range=null;this._Cache=null;},CheckHasRange:function(){return!!this._Range;},GetTouchedStartNode:function(){var A=this._Range;var B=A.startContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.startOffset]||B;},GetTouchedEndNode:function(){var A=this._Range;var B=A.endContainer;if (A.collapsed||B.nodeType!=1) return B;return B.childNodes[A.endOffset-1]||B;}}; +FCKDomRange.prototype.MoveToSelection=function(){this.Release(true);this._Range=new FCKW3CRange(this.Window.document);var A=this.Window.document.selection;if (A.type!='Control'){var B=this._GetSelectionMarkerTag(true);var C=this._GetSelectionMarkerTag(false);if (!B&&!C){this._Range.setStart(this.Window.document.body,0);this._UpdateElementInfo();return;};this._Range.setStart(B.parentNode,FCKDomTools.GetIndexOf(B));B.parentNode.removeChild(B);this._Range.setEnd(C.parentNode,FCKDomTools.GetIndexOf(C));C.parentNode.removeChild(C);this._UpdateElementInfo();}else{var D=A.createRange().item(0);if (D){this._Range.setStartBefore(D);this._Range.setEndAfter(D);this._UpdateElementInfo();}}};FCKDomRange.prototype.Select=function(A){if (this._Range) this.SelectBookmark(this.CreateBookmark(true),A);};FCKDomRange.prototype.SelectBookmark=function(A,B){var C=this.CheckIsCollapsed();var D;var E;var F=this.GetBookmarkNode(A,true);if (!F) return;var G;if (!C) G=this.GetBookmarkNode(A,false);var H=this.Window.document.body.createTextRange();H.moveToElementText(F);H.moveStart('character',1);if (G){var I=this.Window.document.body.createTextRange();I.moveToElementText(G);H.setEndPoint('EndToEnd',I);H.moveEnd('character',-1);}else{D=(B||!F.previousSibling||F.previousSibling.nodeName.toLowerCase()=='br')&&!F.nextSibing;E=this.Window.document.createElement('span');E.innerHTML='';F.parentNode.insertBefore(E,F);if (D){F.parentNode.insertBefore(this.Window.document.createTextNode('\ufeff'),F);}};if (!this._Range) this._Range=this.CreateRange();this._Range.setStartBefore(F);F.parentNode.removeChild(F);if (C){if (D){H.moveStart('character',-1);H.select();this.Window.document.selection.clear();}else H.select();FCKDomTools.RemoveNode(E);}else{this._Range.setEndBefore(G);G.parentNode.removeChild(G);H.select();}};FCKDomRange.prototype._GetSelectionMarkerTag=function(A){var B=this.Window.document;var C=B.selection;var D;try{D=C.createRange();}catch (e){return null;};if (D.parentElement().document!=B) return null;D.collapse(A===true);var E='fck_dom_range_temp_'+(new Date()).valueOf()+'_'+Math.floor(Math.random()*1000);D.pasteHTML('');return B.getElementById(E);}; +var FCKDomRangeIterator=function(A){this.Range=A;this.ForceBrBreak=false;this.EnforceRealBlocks=false;};FCKDomRangeIterator.CreateFromSelection=function(A){var B=new FCKDomRange(A);B.MoveToSelection();return new FCKDomRangeIterator(B);};FCKDomRangeIterator.prototype={GetNextParagraph:function(){var A;var B;var C;var D;var E;var F=this.ForceBrBreak?FCKListsLib.ListBoundaries:FCKListsLib.BlockBoundaries;if (!this._LastNode){var B=this.Range.Clone();B.Expand(this.ForceBrBreak?'list_contents':'block_contents');this._NextNode=B.GetTouchedStartNode();this._LastNode=B.GetTouchedEndNode();B=null;};var H=this._NextNode;var I=this._LastNode;this._NextNode=null;while (H){var J=false;var K=(H.nodeType!=1);var L=false;if (!K){var M=H.nodeName.toLowerCase();if (F[M]&&(!FCKBrowserInfo.IsIE||H.scopeName=='HTML')){if (M=='br') K=true;else if (!B&&H.childNodes.length==0&&M!='hr'){A=H;C=H==I;break;};if (B){B.SetEnd(H,3,true);if (M!='br') this._NextNode=FCKDomTools.GetNextSourceNode(H,true,null,I);};J=true;}else{if (H.firstChild){if (!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};H=H.firstChild;continue;};K=true;}}else if (H.nodeType==3){if (/^[\r\n\t ]+$/.test(H.nodeValue)) K=false;};if (K&&!B){B=new FCKDomRange(this.Range.Window);B.SetStart(H,3,true);};C=((!J||K)&&H==I);if (B&&!J){while (!H.nextSibling&&!C){var N=H.parentNode;if (F[N.nodeName.toLowerCase()]){J=true;C=C||(N==I);break;};H=N;K=true;C=(H==I);L=true;}};if (K) B.SetEnd(H,4,true);if ((J||C)&&B){B._UpdateElementInfo();if (B.StartNode==B.EndNode&&B.StartNode.parentNode==B.StartBlockLimit&&B.StartNode.getAttribute&&B.StartNode.getAttribute('_fck_bookmark')) B=null;else break;};if (C) break;H=FCKDomTools.GetNextSourceNode(H,L,null,I);};if (!A){if (!B){this._NextNode=null;return null;};A=B.StartBlock;if (!A&&!this.EnforceRealBlocks&&B.StartBlockLimit.nodeName.IEquals('DIV','TH','TD')&&B.CheckStartOfBlock()&&B.CheckEndOfBlock()){A=B.StartBlockLimit;}else if (!A||(this.EnforceRealBlocks&&A.nodeName.toLowerCase()=='li')){A=this.Range.Window.document.createElement(FCKConfig.EnterMode=='p'?'p':'div');B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);B.InsertNode(A);D=true;E=true;}else if (A.nodeName.toLowerCase()!='li'){if (!B.CheckStartOfBlock()||!B.CheckEndOfBlock()){A=A.cloneNode(false);B.ExtractContents().AppendTo(A);FCKDomTools.TrimNode(A);var O=B.SplitBlock();D=!O.WasStartOfBlock;E=!O.WasEndOfBlock;B.InsertNode(A);}}else if (!C){this._NextNode=A==I?null:FCKDomTools.GetNextSourceNode(B.EndNode,true,null,I);return A;}};if (D){var P=A.previousSibling;if (P&&P.nodeType==1){if (P.nodeName.toLowerCase()=='br') P.parentNode.removeChild(P);else if (P.lastChild&&P.lastChild.nodeName.IEquals('br')) P.removeChild(P.lastChild);}};if (E){var Q=A.lastChild;if (Q&&Q.nodeType==1&&Q.nodeName.toLowerCase()=='br') A.removeChild(Q);};if (!this._NextNode) this._NextNode=(C||A==I)?null:FCKDomTools.GetNextSourceNode(A,true,null,I);return A;}}; +var FCKDocumentFragment=function(A){this._Document=A;this.RootNode=A.createElement('div');};FCKDocumentFragment.prototype={AppendTo:function(A){FCKDomTools.MoveChildren(this.RootNode,A);},AppendHtml:function(A){var B=this._Document.createElement('div');B.innerHTML=A;FCKDomTools.MoveChildren(B,this.RootNode);},InsertAfterNode:function(A){var B=this.RootNode;var C;while((C=B.lastChild)) FCKDomTools.InsertAfterNode(A,B.removeChild(C));}}; +var FCKW3CRange=function(A){this._Document=A;this.startContainer=null;this.startOffset=null;this.endContainer=null;this.endOffset=null;this.collapsed=true;};FCKW3CRange.CreateRange=function(A){return new FCKW3CRange(A);};FCKW3CRange.CreateFromRange=function(A,B){var C=FCKW3CRange.CreateRange(A);C.setStart(B.startContainer,B.startOffset);C.setEnd(B.endContainer,B.endOffset);return C;};FCKW3CRange.prototype={_UpdateCollapsed:function(){this.collapsed=(this.startContainer==this.endContainer&&this.startOffset==this.endOffset);},setStart:function(A,B){this.startContainer=A;this.startOffset=B;if (!this.endContainer){this.endContainer=A;this.endOffset=B;};this._UpdateCollapsed();},setEnd:function(A,B){this.endContainer=A;this.endOffset=B;if (!this.startContainer){this.startContainer=A;this.startOffset=B;};this._UpdateCollapsed();},setStartAfter:function(A){this.setStart(A.parentNode,FCKDomTools.GetIndexOf(A)+1);},setStartBefore:function(A){this.setStart(A.parentNode,FCKDomTools.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 (E==0){C=C.insertBefore(this._Document.createTextNode(''),C.firstChild);G=true;}else if (E>C.childNodes.length-1){C=C.appendChild(this._Document.createTextNode(''));G=true;}else C=C.childNodes[E].previousSibling;};var I=FCKDomTools.GetParents(C);var J=FCKDomTools.GetParents(D);var i,topStart,topEnd;for (i=0;i0&&levelStartNode!=D) levelClone=K.appendChild(levelStartNode.cloneNode(levelStartNode==D));if (!I[k]||levelStartNode.parentNode!=I[k].parentNode){currentNode=levelStartNode.previousSibling;while(currentNode){if (currentNode==I[k]||currentNode==C) break;currentSibling=currentNode.previousSibling;if (A==2) K.insertBefore(currentNode.cloneNode(true),K.firstChild);else{currentNode.parentNode.removeChild(currentNode);if (A==1) K.insertBefore(currentNode,K.firstChild);};currentNode=currentSibling;}};if (K) K=levelClone;};if (A==2){var L=this.startContainer;if (L.nodeType==3){L.data+=L.nextSibling.data;L.parentNode.removeChild(L.nextSibling);};var M=this.endContainer;if (M.nodeType==3&&M.nextSibling){M.data+=M.nextSibling.data;M.parentNode.removeChild(M.nextSibling);}}else{if (topStart&&topEnd&&(C.parentNode!=topStart.parentNode||D.parentNode!=topEnd.parentNode)){var N=FCKDomTools.GetIndexOf(topEnd);if (G&&topEnd.parentNode==C.parentNode) N--;this.setStart(topEnd.parentNode,N);};this.collapse(true);};if(G) C.parentNode.removeChild(C);if(H&&D.parentNode) D.parentNode.removeChild(D);},cloneRange:function(){return FCKW3CRange.CreateFromRange(this._Document,this);}}; +var FCKEnterKey=function(A,B,C,D){this.Window=A;this.EnterMode=B||'p';this.ShiftEnterMode=C||'br';var E=new FCKKeystrokeHandler(false);E._EnterKey=this;E.OnKeystroke=FCKEnterKey_OnKeystroke;E.SetKeystrokes([[13,'Enter'],[SHIFT+13,'ShiftEnter'],[8,'Backspace'],[CTRL+8,'CtrlBackspace'],[46,'Delete']]);this.TabText='';if (D>0||FCKBrowserInfo.IsSafari){while (D--) this.TabText+='\xa0';E.SetKeystrokes([9,'Tab']);};E.AttachToElement(A.document);};function FCKEnterKey_OnKeystroke(A,B){var C=this._EnterKey;try{switch (B){case 'Enter':return C.DoEnter();break;case 'ShiftEnter':return C.DoShiftEnter();break;case 'Backspace':return C.DoBackspace();break;case 'Delete':return C.DoDelete();break;case 'Tab':return C.DoTab();break;case 'CtrlBackspace':return C.DoCtrlBackspace();break;}}catch (e){};return false;};FCKEnterKey.prototype.DoEnter=function(A,B){FCKUndo.SaveUndoStep();this._HasShift=(B===true);var C=FCKSelection.GetParentElement();var D=new FCKElementPath(C);var E=A||this.EnterMode;if (E=='br'||D.Block&&D.Block.tagName.toLowerCase()=='pre') return this._ExecuteEnterBr();else return this._ExecuteEnterBlock(E);};FCKEnterKey.prototype.DoShiftEnter=function(){return this.DoEnter(this.ShiftEnterMode,true);};FCKEnterKey.prototype.DoBackspace=function(){var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};var C=B.CheckIsCollapsed();if (!C){if (FCKBrowserInfo.IsIE&&this.Window.document.selection.type.toLowerCase()=="control"){var D=this.Window.document.selection.createRange();for (var i=D.length-1;i>=0;i--){var E=D.item(i);E.parentNode.removeChild(E);};return true;};return false;};if (FCKBrowserInfo.IsIE){var F=FCKDomTools.GetPreviousSourceElement(B.StartNode,true);if (F&&F.nodeName.toLowerCase()=='br'){var G=B.Clone();G.SetStart(F,4);if (G.CheckIsEmpty()){F.parentNode.removeChild(F);return true;}}};var H=B.StartBlock;var I=B.EndBlock;if (B.StartBlockLimit==B.EndBlockLimit&&H&&I){if (!C){var J=B.CheckEndOfBlock();B.DeleteContents();if (H!=I){B.SetStart(I,1);B.SetEnd(I,1);};B.Select();A=(H==I);};if (B.CheckStartOfBlock()){var K=B.StartBlock;var L=FCKDomTools.GetPreviousSourceElement(K,true,['BODY',B.StartBlockLimit.nodeName],['UL','OL']);A=this._ExecuteBackspace(B,L,K);}else if (FCKBrowserInfo.IsGeckoLike){B.Select();}};B.Release();return A;};FCKEnterKey.prototype.DoCtrlBackspace=function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(this.Window);A.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(A,this.Window.document.body)){this._FixIESelectAllBug(A);return true;};return false;};FCKEnterKey.prototype._ExecuteBackspace=function(A,B,C){var D=false;if (!B&&C&&C.nodeName.IEquals('LI')&&C.parentNode.parentNode.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};if (B&&B.nodeName.IEquals('LI')){var E=FCKDomTools.GetLastChild(B,['UL','OL']);while (E){B=FCKDomTools.GetLastChild(E,'LI');E=FCKDomTools.GetLastChild(B,['UL','OL']);}};if (B&&C){if (C.nodeName.IEquals('LI')&&!B.nodeName.IEquals('LI')){this._OutdentWithSelection(C,A);return true;};var F=C.parentNode;var G=B.nodeName.toLowerCase();if (FCKListsLib.EmptyElements[G]!=null||G=='table'){FCKDomTools.RemoveNode(B);D=true;}else{FCKDomTools.RemoveNode(C);while (F.innerHTML.Trim().length==0){var H=F.parentNode;H.removeChild(F);F=H;};FCKDomTools.LTrimNode(C);FCKDomTools.RTrimNode(B);A.SetStart(B,2,true);A.Collapse(true);var I=A.CreateBookmark(true);if (!C.tagName.IEquals(['TABLE'])) FCKDomTools.MoveChildren(C,B);A.SelectBookmark(I);D=true;}};return D;};FCKEnterKey.prototype.DoDelete=function(){FCKUndo.SaveUndoStep();var A=false;var B=new FCKDomRange(this.Window);B.MoveToSelection();if (FCKBrowserInfo.IsIE&&this._CheckIsAllContentsIncluded(B,this.Window.document.body)){this._FixIESelectAllBug(B);return true;};if (B.CheckIsCollapsed()&&B.CheckEndOfBlock(FCKBrowserInfo.IsGeckoLike)){var C=B.StartBlock;var D=FCKTools.GetElementAscensor(C,'td');var E=FCKDomTools.GetNextSourceElement(C,true,[B.StartBlockLimit.nodeName],['UL','OL','TR'],true);if (D){var F=FCKTools.GetElementAscensor(E,'td');if (F!=D) return true;};A=this._ExecuteBackspace(B,C,E);};B.Release();return A;};FCKEnterKey.prototype.DoTab=function(){var A=new FCKDomRange(this.Window);A.MoveToSelection();var B=A._Range.startContainer;while (B){if (B.nodeType==1){var C=B.tagName.toLowerCase();if (C=="tr"||C=="td"||C=="th"||C=="tbody"||C=="table") return false;else break;};B=B.parentNode;};if (this.TabText){A.DeleteContents();A.InsertNode(this.Window.document.createTextNode(this.TabText));A.Collapse(false);A.Select();};return true;};FCKEnterKey.prototype._ExecuteEnterBlock=function(A,B){var C=B||new FCKDomRange(this.Window);var D=C.SplitBlock(A);if (D){var E=D.PreviousBlock;var F=D.NextBlock;var G=D.WasStartOfBlock;var H=D.WasEndOfBlock;if (F){if (F.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(F,F.parentNode);FCKDomTools.MoveNode(F,F.nextSibling,true);}}else if (E&&E.parentNode.nodeName.IEquals('li')){FCKDomTools.BreakParent(E,E.parentNode);C.MoveToElementEditStart(E.nextSibling);FCKDomTools.MoveNode(E,E.previousSibling);};if (!G&&!H){if (F.nodeName.IEquals('li')&&F.firstChild&&F.firstChild.nodeName.IEquals(['ul','ol'])) F.insertBefore(FCKTools.GetElementDocument(F).createTextNode('\xa0'),F.firstChild);if (F) C.MoveToElementEditStart(F);}else{if (G&&H&&E.tagName.toUpperCase()=='LI'){C.MoveToElementStart(E);this._OutdentWithSelection(E,C);C.Release();return true;};var I;if (E){var J=E.tagName.toUpperCase();if (!this._HasShift&&!(/^H[1-6]$/).test(J)){I=FCKDomTools.CloneElement(E);}}else if (F) I=FCKDomTools.CloneElement(F);if (!I) I=this.Window.document.createElement(A);var K=D.ElementPath;if (K){for (var i=0,len=K.Elements.length;i=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);}}};FCKEmbedAndObjectProcessor=(function(){var A=[];var B=function(el){var C=el.cloneNode(true);var D;var E=D=FCKDocumentProcessor_CreateFakeImage('FCK__UnknownObject',C);FCKEmbedAndObjectProcessor.RefreshView(E,el);for (var i=0;i=0;i--) B(G[i]);};var H=function(doc){F('object',doc);F('embed',doc);};return FCKTools.Merge(FCKDocumentProcessor.AppendNew(),{ProcessDocument:function(doc){if (FCKBrowserInfo.IsGecko) FCKTools.RunFunction(H,this,[doc]);else H(doc);},RefreshView:function(placeHolder,original){if (original.getAttribute('width')>0) placeHolder.style.width=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('width'));if (original.getAttribute('height')>0) placeHolder.style.height=FCKTools.ConvertHtmlSizeToStyle(original.getAttribute('height'));},AddCustomHandler:function(func){A.push(func);}});})();FCK.GetRealElement=function(A){var e=FCKTempBin.Elements[A.getAttribute('_fckrealelement')];if (A.getAttribute('_fckflash')){if (A.style.width.length>0) e.width=FCKTools.ConvertStyleSizeToHtml(A.style.width);if (A.style.height.length>0) e.height=FCKTools.ConvertStyleSizeToHtml(A.style.height);};return e;};if (FCKBrowserInfo.IsIE){FCKDocumentProcessor.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);}}};FCKEmbedAndObjectProcessor.AddCustomHandler(function(A,B){if (!(A.nodeName.IEquals('embed')&&(A.type=='application/x-shockwave-flash'||/\.swf($|#|\?)/i.test(A.src)))) return;B.className='FCK__Flash';B.setAttribute('_fckflash','true',0);});if (FCKBrowserInfo.IsSafari){FCKDocumentProcessor.AppendNew().ProcessDocument=function(A){var B=A.getElementsByClassName?A.getElementsByClassName('Apple-style-span'):Array.prototype.filter.call(A.getElementsByTagName('span'),function(item){ return item.className=='Apple-style-span';});for (var i=B.length-1;i>=0;i--) FCKDomTools.RemoveNode(B[i],true);}}; +var FCKSelection=FCK.Selection={GetParentBlock:function(){var A=this.GetParentElement();while (A){if (FCKListsLib.BlockBoundaries[A.nodeName.toLowerCase()]) break;A=A.parentNode;};return A;},ApplyStyle:function(A){FCKStyles.ApplyStyle(new FCKStyle(A));}}; +FCKSelection.GetType=function(){try{var A=FCKSelection.GetSelection().type;if (A=='Control'||A=='Text') return A;if (this.GetSelection().createRange().parentElement) return 'Text';}catch(e){};return 'None';};FCKSelection.GetSelectedElement=function(){if (this.GetType()=='Control'){var A=this.GetSelection().createRange();if (A&&A.item) return this.GetSelection().createRange().item(0);};return null;};FCKSelection.GetParentElement=function(){switch (this.GetType()){case 'Control':var A=FCKSelection.GetSelectedElement();return A?A.parentElement:null;case 'None':return null;default:return this.GetSelection().createRange().parentElement();}};FCKSelection.GetBoundaryParentElement=function(A){switch (this.GetType()){case 'Control':var B=FCKSelection.GetSelectedElement();return B?B.parentElement:null;case 'None':return null;default:var C=FCK.EditorDocument;var D=C.selection.createRange();D.collapse(A!==false);var B=D.parentElement();return FCKTools.GetElementDocument(B)==C?B:null;}};FCKSelection.SelectNode=function(A){FCK.Focus();this.GetSelection().empty();var B;try{B=FCK.EditorDocument.body.createControlRange();B.addElement(A);}catch(e){B=FCK.EditorDocument.body.createTextRange();B.moveToElementText(A);};B.select();};FCKSelection.Collapse=function(A){FCK.Focus();if (this.GetType()=='Text'){var B=this.GetSelection().createRange();B.collapse(A==null||A===true);B.select();}};FCKSelection.HasAncestorNode=function(A){var B;if (this.GetSelection().type=="Control"){B=this.GetSelectedElement();}else{var C=this.GetSelection().createRange();B=C.parentElement();}while (B){if (B.nodeName.IEquals(A)) return true;B=B.parentNode;};return false;};FCKSelection.MoveToAncestorNode=function(A){var B,oRange;if (!FCK.EditorDocument) return null;if (this.GetSelection().type=="Control"){oRange=this.GetSelection().createRange();for (i=0;i=0;i--){if (C[i]) FCKTableHandler.DeleteRows(C[i]);};return;};var E=FCKTools.GetElementAscensor(A,'TABLE');if (E.rows.length==1){FCKTableHandler.DeleteTable(E);return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteTable=function(A){if (!A){A=FCKSelection.GetSelectedElement();if (!A||A.tagName!='TABLE') A=FCKSelection.MoveToAncestorNode('TABLE');};if (!A) return;FCKSelection.SelectNode(A);FCKSelection.Collapse();if (A.parentNode.childNodes.length==1) A.parentNode.parentNode.removeChild(A.parentNode);else A.parentNode.removeChild(A);};FCKTableHandler.InsertColumn=function(A){var B=null;var C=this.GetSelectedCells();if (C&&C.length) B=C[A?0:(C.length-1)];if (!B) return;var D=FCKTools.GetElementAscensor(B,'TABLE');var E=B.cellIndex;for (var i=0;i=0;i--){if (B[i]) FCKTableHandler.DeleteColumns(B[i]);};return;};if (!A) return;var C=FCKTools.GetElementAscensor(A,'TABLE');var D=A.cellIndex;for (var i=C.rows.length-1;i>=0;i--){var E=C.rows[i];if (D==0&&E.cells.length==1){FCKTableHandler.DeleteRows(E);continue;};if (E.cells[D]) E.removeChild(E.cells[D]);}};FCKTableHandler.InsertCell=function(A,B){var C=null;var D=this.GetSelectedCells();if (D&&D.length) C=D[B?0:(D.length-1)];if (!C) return null;var E=FCK.EditorDocument.createElement('TD');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(E);if (!B&&C.cellIndex==C.parentNode.cells.length-1) C.parentNode.appendChild(E);else C.parentNode.insertBefore(E,B?C:C.nextSibling);return E;};FCKTableHandler.DeleteCell=function(A){if (A.parentNode.cells.length==1){FCKTableHandler.DeleteRows(FCKTools.GetElementAscensor(A,'TR'));return;};A.parentNode.removeChild(A);};FCKTableHandler.DeleteCells=function(){var A=FCKTableHandler.GetSelectedCells();for (var i=A.length-1;i>=0;i--){FCKTableHandler.DeleteCell(A[i]);}};FCKTableHandler._MarkCells=function(A,B){for (var i=0;i=E.height){for (D=F;D0){var L=K.removeChild(K.firstChild);if (L.nodeType!=1||(L.getAttribute('type',2)!='_moz'&&L.getAttribute('_moz_dirty')!=null)){I.appendChild(L);J++;}}};if (J>0) I.appendChild(FCKTools.GetElementDocument(B).createElement('br'));};this._ReplaceCellsByMarker(C,'_SelectedCells',B);this._UnmarkCells(A,'_SelectedCells');this._InstallTableMap(C,B.parentNode.parentNode);B.appendChild(I);if (FCKBrowserInfo.IsGeckoLike&&(!B.firstChild)) FCKTools.AppendBogusBr(B);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeRight=function(){var A=this.GetMergeRightTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCK.EditorDocument.createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));D.parentNode.removeChild(D);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.MergeDown=function(){var A=this.GetMergeDownTarget();if (A==null) return;var B=A.refCell;var C=A.tableMap;var D=A.nextCell;var E=FCKTools.GetElementDocument(B).createDocumentFragment();while (D&&D.childNodes&&D.childNodes.length>0) E.appendChild(D.removeChild(D.firstChild));if (E.firstChild) E.insertBefore(FCKTools.GetElementDocument(D).createElement('br'),E.firstChild);B.appendChild(E);this._MarkCells([D],'_Replace');this._ReplaceCellsByMarker(C,'_Replace',B);this._InstallTableMap(C,B.parentNode.parentNode);this._MoveCaretToCell(B,false);};FCKTableHandler.HorizontalSplitCell=function(){var A=FCKTableHandler.GetSelectedCells();if (A.length!=1) return;var B=A[0];var C=this._CreateTableMap(B.parentNode.parentNode);var D=B.parentNode.rowIndex;var E=FCKTableHandler._GetCellIndexSpan(C,D,B);var F=isNaN(B.colSpan)?1:B.colSpan;if (F>1){var G=Math.ceil(F/2);var H=FCKTools.GetElementDocument(B).createElement('td');if (FCKBrowserInfo.IsGeckoLike) FCKTools.AppendBogusBr(H);var I=E+G;var J=E+F;var K=isNaN(B.rowSpan)?1:B.rowSpan;for (var r=D;r1){B.rowSpan=Math.ceil(E/2);var G=F+Math.ceil(E/2);var H=null;for (var i=D+1;iG) L.insertBefore(K,L.rows[G]);else L.appendChild(K);for (var i=0;i0){var D=B.rows[0];D.parentNode.removeChild(D);};for (var i=0;iF) F=j;if (E._colScanned===true) continue;if (A[i][j-1]==E) E.colSpan++;if (A[i][j+1]!=E) E._colScanned=true;}};for (var i=0;i<=F;i++){for (var j=0;j=0&&C.compareEndPoints('StartToEnd',E)<=0)||(C.compareEndPoints('EndToStart',E)>=0&&C.compareEndPoints('EndToEnd',E)<=0)){B[B.length]=D.cells[i];}}}};return B;}; +var FCKXml=function(){this.Error=false;};FCKXml.GetAttribute=function(A,B,C){var D=A.attributes.getNamedItem(B);return D?D.value:C;};FCKXml.TransformToObject=function(A){if (!A) return null;var B={};var C=A.attributes;for (var i=0;i ';var A=FCKDocumentProcessor_CreateFakeImage('FCK__PageBreak',e);var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.SplitBlock();B.InsertNode(A);FCK.Events.FireEvent('OnSelectionChange');};FCKPageBreakCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};var FCKUnlinkCommand=function(){this.Name='Unlink';};FCKUnlinkCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (FCKBrowserInfo.IsGeckoLike){var A=FCK.Selection.MoveToAncestorNode('A');if (A) FCKTools.RemoveOuterTags(A);return;};FCK.ExecuteNamedCommand(this.Name);};FCKUnlinkCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState(this.Name);if (A==0&&FCK.EditMode==0){var B=FCKSelection.MoveToAncestorNode('A');var C=(B&&B.name.length>0&&B.href.length==0);if (C) A=-1;};return A;};FCKVisitLinkCommand=function(){this.Name='VisitLink';};FCKVisitLinkCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCK.GetNamedCommandState('Unlink');if (A==0){var B=FCKSelection.MoveToAncestorNode('A');if (!B.href) A=-1;};return A;},Execute:function(){var A=FCKSelection.MoveToAncestorNode('A');var B=A.getAttribute('_fcksavedurl')||A.getAttribute('href',2);if (!/:\/\//.test(B)){var C=FCKConfig.BaseHref;var D=FCK.GetInstanceObject('parent');if (!C){C=D.document.location.href;C=C.substring(0,C.lastIndexOf('/')+1);};if (/^\//.test(B)){try{C=C.match(/^.*:\/\/+[^\/]+/)[0];}catch (e){C=D.document.location.protocol+'://'+D.parent.document.location.host;}};B=C+B;};if (!window.open(B,'_blank')) alert(FCKLang.VisitLinkBlocked);}};var FCKSelectAllCommand=function(){this.Name='SelectAll';};FCKSelectAllCommand.prototype.Execute=function(){if (FCK.EditMode==0){FCK.ExecuteNamedCommand('SelectAll');}else{var A=FCK.EditingArea.Textarea;if (FCKBrowserInfo.IsIE){A.createTextRange().execCommand('SelectAll');}else{A.selectionStart=0;A.selectionEnd=A.value.length;};A.focus();}};FCKSelectAllCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return 0;};var FCKPasteCommand=function(){this.Name='Paste';};FCKPasteCommand.prototype={Execute:function(){if (FCKBrowserInfo.IsIE) FCK.Paste();else FCK.ExecuteNamedCommand('Paste');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');}};var FCKRuleCommand=function(){this.Name='Rule';};FCKRuleCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();FCK.InsertElement('hr');},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('InsertHorizontalRule');}};var FCKCutCopyCommand=function(A){this.Name=A?'Cut':'Copy';};FCKCutCopyCommand.prototype={Execute:function(){var A=false;if (FCKBrowserInfo.IsIE){var B=function(){A=true;};var C='on'+this.Name.toLowerCase();FCK.EditorDocument.body.attachEvent(C,B);FCK.ExecuteNamedCommand(this.Name);FCK.EditorDocument.body.detachEvent(C,B);}else{try{FCK.ExecuteNamedCommand(this.Name);A=true;}catch(e){}};if (!A) alert(FCKLang['PasteError'+this.Name]);},GetState:function(){return FCK.EditMode!=0?-1:FCK.GetNamedCommandState('Cut');}};var FCKAnchorDeleteCommand=function(){this.Name='AnchorDelete';};FCKAnchorDeleteCommand.prototype={Execute:function(){if (FCK.Selection.GetType()=='Control'){FCK.Selection.Delete();}else{var A=FCK.Selection.GetSelectedElement();if (A){if (A.tagName=='IMG'&&A.getAttribute('_fckanchor')) oAnchor=FCK.GetRealElement(A);else A=null;};if (!A){oAnchor=FCK.Selection.MoveToAncestorNode('A');if (oAnchor) FCK.Selection.SelectNode(oAnchor);};if (oAnchor.href.length!=0){oAnchor.removeAttribute('name');if (FCKBrowserInfo.IsIE) oAnchor.className=oAnchor.className.replace(FCKRegexLib.FCK_Class,'');return;};if (A){A.parentNode.removeChild(A);return;};if (oAnchor.innerHTML.length==0){oAnchor.parentNode.removeChild(oAnchor);return;};FCKTools.RemoveOuterTags(oAnchor);};if (FCKBrowserInfo.IsGecko) FCK.Selection.Collapse(true);},GetState:function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Unlink');}};var FCKDeleteDivCommand=function(){};FCKDeleteDivCommand.prototype={GetState:function(){if (FCK.EditMode!=0) return -1;var A=FCKSelection.GetParentElement();var B=new FCKElementPath(A);return B.BlockLimit&&B.BlockLimit.nodeName.IEquals('div')?0:-1;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCKDomTools.GetSelectedDivContainers();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();for (var i=0;i\n \n
      \n '+FCKLang.ColorAutomatic+'\n \n ';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_AutoOnClick,this);if (!FCKBrowserInfo.IsIE) C.style.width='96%';var G=FCKConfig.FontColors.toString().split(',');var H=0;while (H
      ';if (H>=G.length) C.style.visibility='hidden';else FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_OnClick,[this,L]);}};if (FCKConfig.EnableMoreFontColors){E=D.insertRow(-1).insertCell(-1);E.colSpan=8;C=E.appendChild(CreateSelectionDiv());C.innerHTML='
      '+FCKLang.ColorMoreColors+'
      ';FCKTools.AddEventListenerEx(C,'click',FCKTextColorCommand_MoreOnClick,this);};if (!FCKBrowserInfo.IsIE) C.style.width='96%';}; +var FCKPastePlainTextCommand=function(){this.Name='PasteText';};FCKPastePlainTextCommand.prototype.Execute=function(){FCK.PasteAsPlainText();};FCKPastePlainTextCommand.prototype.GetState=function(){if (FCK.EditMode!=0) return -1;return FCK.GetNamedCommandState('Paste');}; +var FCKPasteWordCommand=function(){this.Name='PasteWord';};FCKPasteWordCommand.prototype.Execute=function(){FCK.PasteFromWord();};FCKPasteWordCommand.prototype.GetState=function(){if (FCK.EditMode!=0||FCKConfig.ForcePasteAsPlainText) return -1;else return FCK.GetNamedCommandState('Paste');}; +var FCKTableCommand=function(A){this.Name=A;};FCKTableCommand.prototype.Execute=function(){FCKUndo.SaveUndoStep();if (!FCKBrowserInfo.IsGecko){switch (this.Name){case 'TableMergeRight':return FCKTableHandler.MergeRight();case 'TableMergeDown':return FCKTableHandler.MergeDown();}};switch (this.Name){case 'TableInsertRowAfter':return FCKTableHandler.InsertRow(false);case 'TableInsertRowBefore':return FCKTableHandler.InsertRow(true);case 'TableDeleteRows':return FCKTableHandler.DeleteRows();case 'TableInsertColumnAfter':return FCKTableHandler.InsertColumn(false);case 'TableInsertColumnBefore':return FCKTableHandler.InsertColumn(true);case 'TableDeleteColumns':return FCKTableHandler.DeleteColumns();case 'TableInsertCellAfter':return FCKTableHandler.InsertCell(null,false);case 'TableInsertCellBefore':return FCKTableHandler.InsertCell(null,true);case 'TableDeleteCells':return FCKTableHandler.DeleteCells();case 'TableMergeCells':return FCKTableHandler.MergeCells();case 'TableHorizontalSplitCell':return FCKTableHandler.HorizontalSplitCell();case 'TableVerticalSplitCell':return FCKTableHandler.VerticalSplitCell();case 'TableDelete':return FCKTableHandler.DeleteTable();default:return alert(FCKLang.UnknownCommand.replace(/%1/g,this.Name));}};FCKTableCommand.prototype.GetState=function(){if (FCK.EditorDocument!=null&&FCKSelection.HasAncestorNode('TABLE')){switch (this.Name){case 'TableHorizontalSplitCell':case 'TableVerticalSplitCell':if (FCKTableHandler.GetSelectedCells().length==1) return 0;else return -1;case 'TableMergeCells':if (FCKTableHandler.CheckIsSelectionRectangular()&&FCKTableHandler.GetSelectedCells().length>1) return 0;else return -1;case 'TableMergeRight':return FCKTableHandler.GetMergeRightTarget()?0:-1;case 'TableMergeDown':return FCKTableHandler.GetMergeDownTarget()?0:-1;default:return 0;}}else return -1;}; +var FCKFitWindow=function(){this.Name='FitWindow';};FCKFitWindow.prototype.Execute=function(){var A=window.frameElement;var B=A.style;var C=parent;var D=C.document.documentElement;var E=C.document.body;var F=E.style;var G;var H=new FCKDomRange(FCK.EditorWindow);H.MoveToSelection();var I=FCKTools.GetScrollPosition(FCK.EditorWindow);if (!this.IsMaximized){if(FCKBrowserInfo.IsIE) C.attachEvent('onresize',FCKFitWindow_Resize);else C.addEventListener('resize',FCKFitWindow_Resize,true);this._ScrollPos=FCKTools.GetScrollPosition(C);G=A;while((G=G.parentNode)){if (G.nodeType==1){G._fckSavedStyles=FCKTools.SaveStyles(G);G.style.zIndex=FCKConfig.FloatingPanelsZIndex-1;}};if (FCKBrowserInfo.IsIE){this.documentElementOverflow=D.style.overflow;D.style.overflow='hidden';F.overflow='hidden';}else{F.overflow='hidden';F.width='0px';F.height='0px';};this._EditorFrameStyles=FCKTools.SaveStyles(A);var J=FCKTools.GetViewPaneSize(C);B.position="absolute";A.offsetLeft;B.zIndex=FCKConfig.FloatingPanelsZIndex-1;B.left="0px";B.top="0px";B.width=J.Width+"px";B.height=J.Height+"px";if (!FCKBrowserInfo.IsIE){B.borderRight=B.borderBottom="9999px solid white";B.backgroundColor="white";};C.scrollTo(0,0);var K=FCKTools.GetWindowPosition(C,A);if (K.x!=0) B.left=(-1*K.x)+"px";if (K.y!=0) B.top=(-1*K.y)+"px";this.IsMaximized=true;}else{if(FCKBrowserInfo.IsIE) C.detachEvent("onresize",FCKFitWindow_Resize);else C.removeEventListener("resize",FCKFitWindow_Resize,true);G=A;while((G=G.parentNode)){if (G._fckSavedStyles){FCKTools.RestoreStyles(G,G._fckSavedStyles);G._fckSavedStyles=null;}};if (FCKBrowserInfo.IsIE) D.style.overflow=this.documentElementOverflow;FCKTools.RestoreStyles(A,this._EditorFrameStyles);C.scrollTo(this._ScrollPos.X,this._ScrollPos.Y);this.IsMaximized=false;};FCKToolbarItems.GetItem('FitWindow').RefreshState();if (FCK.EditMode==0) FCK.EditingArea.MakeEditable();FCK.Focus();H.Select();FCK.EditorWindow.scrollTo(I.X,I.Y);};FCKFitWindow.prototype.GetState=function(){if (FCKConfig.ToolbarLocation!='In') return -1;else return (this.IsMaximized?1:0);};function FCKFitWindow_Resize(){var A=FCKTools.GetViewPaneSize(parent);var B=window.frameElement.style;B.width=A.Width+'px';B.height=A.Height+'px';}; +var FCKListCommand=function(A,B){this.Name=A;this.TagName=B;};FCKListCommand.prototype={GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=FCKSelection.GetBoundaryParentElement(true);var B=A;while (B){if (B.nodeName.IEquals(['ul','ol'])) break;B=B.parentNode;};if (B&&B.nodeName.IEquals(this.TagName)) return 1;else return 0;},Execute:function(){FCKUndo.SaveUndoStep();var A=FCK.EditorDocument;var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=this.GetState();if (C==0){FCKDomTools.TrimNode(A.body);if (!A.body.firstChild){var D=A.createElement('p');A.body.appendChild(D);B.MoveToNodeContents(D);}};var E=B.CreateBookmark();var F=[];var G={};var H=new FCKDomRangeIterator(B);var I;H.ForceBrBreak=(C==0);var J=true;var K=null;while (J){while ((I=H.GetNextParagraph())){var L=new FCKElementPath(I);var M=null;var N=false;var O=L.BlockLimit;for (var i=L.Elements.length-1;i>=0;i--){var P=L.Elements[i];if (P.nodeName.IEquals(['ol','ul'])){if (O._FCK_ListGroupObject) O._FCK_ListGroupObject=null;var Q=P._FCK_ListGroupObject;if (Q) Q.contents.push(I);else{Q={ 'root':P,'contents':[I] };F.push(Q);FCKDomTools.SetElementMarker(G,P,'_FCK_ListGroupObject',Q);};N=true;break;}};if (N) continue;var R=O;if (R._FCK_ListGroupObject) R._FCK_ListGroupObject.contents.push(I);else{var Q={ 'root':R,'contents':[I] };FCKDomTools.SetElementMarker(G,R,'_FCK_ListGroupObject',Q);F.push(Q);}};if (FCKBrowserInfo.IsIE) J=false;else{if (K==null){K=[];var T=FCKSelection.GetSelection();if (T&&F.length==0) K.push(T.getRangeAt(0));for (var i=1;T&&i0){var Q=F.shift();if (C==0){if (Q.root.nodeName.IEquals(['ul','ol'])) this._ChangeListType(Q,G,W);else this._CreateList(Q,W);}else if (C==1&&Q.root.nodeName.IEquals(['ul','ol'])) this._RemoveList(Q,G);};for (var i=0;iC[i-1].indent+1){var H=C[i-1].indent+1-C[i].indent;var I=C[i].indent;while (C[i]&&C[i].indent>=I){C[i].indent+=H;i++;};i--;}};var J=FCKDomTools.ArrayToList(C,B);if (A.root.nextSibling==null||A.root.nextSibling.nodeName.IEquals('br')){if (J.listNode.lastChild.nodeName.IEquals('br')) J.listNode.removeChild(J.listNode.lastChild);};A.root.parentNode.replaceChild(J.listNode,A.root);}}; +var FCKJustifyCommand=function(A){this.AlignValue=A;var B=FCKConfig.ContentLangDirection.toLowerCase();this.IsDefaultAlign=(A=='left'&&B=='ltr')||(A=='right'&&B=='rtl');var C=this._CssClassName=(function(){var D=FCKConfig.JustifyClasses;if (D){switch (A){case 'left':return D[0]||null;case 'center':return D[1]||null;case 'right':return D[2]||null;case 'justify':return D[3]||null;}};return null;})();if (C&&C.length>0) this._CssClassRegex=new RegExp('(?:^|\\s+)'+C+'(?=$|\\s)');};FCKJustifyCommand._GetClassNameRegex=function(){var A=FCKJustifyCommand._ClassRegex;if (A!=undefined) return A;var B=[];var C=FCKConfig.JustifyClasses;if (C){for (var i=0;i<4;i++){var D=C[i];if (D&&D.length>0) B.push(D);}};if (B.length>0) A=new RegExp('(?:^|\\s+)(?:'+B.join('|')+')(?=$|\\s)');else A=null;return FCKJustifyCommand._ClassRegex=A;};FCKJustifyCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=new FCKDomRange(FCK.EditorWindow);A.MoveToSelection();var B=this.GetState();if (B==-1) return;var C=A.CreateBookmark();var D=this._CssClassName;var E=new FCKDomRangeIterator(A);var F;while ((F=E.GetNextParagraph())){F.removeAttribute('align');if (D){var G=F.className.replace(FCKJustifyCommand._GetClassNameRegex(),'');if (B==0){if (G.length>0) G+=' ';F.className=G+D;}else if (G.length==0) FCKDomTools.RemoveAttribute(F,'class');}else{var H=F.style;if (B==0) H.textAlign=this.AlignValue;else{H.textAlign='';if (H.cssText.length==0) F.removeAttribute('style');}}};A.MoveToBookmark(C);A.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;var C;if (FCKBrowserInfo.IsIE) C=B.currentStyle.textAlign;else C=FCK.EditorWindow.getComputedStyle(B,'').getPropertyValue('text-align');C=C.replace(/(-moz-|-webkit-|start|auto)/i,'');if ((!C&&this.IsDefaultAlign)||C==this.AlignValue) return 1;return 0;}}; +var FCKIndentCommand=function(A,B){this.Name=A;this.Offset=B;this.IndentCSSProperty=FCKConfig.ContentLangDirection.IEquals('ltr')?'marginLeft':'marginRight';};FCKIndentCommand._InitIndentModeParameters=function(){if (FCKConfig.IndentClasses&&FCKConfig.IndentClasses.length>0){this._UseIndentClasses=true;this._IndentClassMap={};for (var i=0;i0?H+' ':'')+FCKConfig.IndentClasses[G-1];}else{var I=parseInt(E.style[this.IndentCSSProperty],10);if (isNaN(I)) I=0;I+=this.Offset;I=Math.max(I,0);I=Math.ceil(I/this.Offset)*this.Offset;E.style[this.IndentCSSProperty]=I?I+FCKConfig.IndentUnit:'';if (E.getAttribute('style')=='') E.removeAttribute('style');}}},_IndentList:function(A,B){var C=A.StartContainer;var D=A.EndContainer;while (C&&C.parentNode!=B) C=C.parentNode;while (D&&D.parentNode!=B) D=D.parentNode;if (!C||!D) return;var E=C;var F=[];var G=false;while (G==false){if (E==D) G=true;F.push(E);E=E.nextSibling;};if (F.length<1) return;var H=FCKDomTools.GetParents(B);for (var i=0;iN;i++) M[i].indent+=I;var O=FCKDomTools.ArrayToList(M);if (O) B.parentNode.replaceChild(O.listNode,B);FCKDomTools.ClearAllMarkers(L);}}; +var FCKBlockQuoteCommand=function(){};FCKBlockQuoteCommand.prototype={Execute:function(){FCKUndo.SaveUndoStep();var A=this.GetState();var B=new FCKDomRange(FCK.EditorWindow);B.MoveToSelection();var C=B.CreateBookmark();if (FCKBrowserInfo.IsIE){var D=B.GetBookmarkNode(C,true);var E=B.GetBookmarkNode(C,false);var F;if (D&&D.parentNode.nodeName.IEquals('blockquote')&&!D.previousSibling){F=D;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]) FCKDomTools.MoveNode(D,F,true);}};if (E&&E.parentNode.nodeName.IEquals('blockquote')&&!E.previousSibling){F=E;while ((F=F.nextSibling)){if (FCKListsLib.BlockElements[F.nodeName.toLowerCase()]){if (F.firstChild==D) FCKDomTools.InsertAfterNode(D,E);else FCKDomTools.MoveNode(E,F,true);}}}};var G=new FCKDomRangeIterator(B);var H;if (A==0){G.EnforceRealBlocks=true;var I=[];while ((H=G.GetNextParagraph())) I.push(H);if (I.length<1){para=B.Window.document.createElement(FCKConfig.EnterMode.IEquals('p')?'p':'div');B.InsertNode(para);para.appendChild(B.Window.document.createTextNode('\ufeff'));B.MoveToBookmark(C);B.MoveToNodeContents(para);B.Collapse(true);C=B.CreateBookmark();I.push(para);};var J=I[0].parentNode;var K=[];for (var i=0;i0){H=I.shift();while (H.parentNode!=J) H=H.parentNode;if (H!=L) K.push(H);L=H;}while (K.length>0){H=K.shift();if (H.nodeName.IEquals('blockquote')){var M=FCKTools.GetElementDocument(H).createDocumentFragment();while (H.firstChild){M.appendChild(H.removeChild(H.firstChild));I.push(M.lastChild);};H.parentNode.replaceChild(M,H);}else I.push(H);};var N=B.Window.document.createElement('blockquote');J.insertBefore(N,I[0]);while (I.length>0){H=I.shift();N.appendChild(H);}}else if (A==1){var O=[];while ((H=G.GetNextParagraph())){var P=null;var Q=null;while (H.parentNode){if (H.parentNode.nodeName.IEquals('blockquote')){P=H.parentNode;Q=H;break;};H=H.parentNode;};if (P&&Q) O.push(Q);};var R=[];while (O.length>0){var S=O.shift();var N=S.parentNode;if (S==S.parentNode.firstChild){N.parentNode.insertBefore(N.removeChild(S),N);if (!N.firstChild) N.parentNode.removeChild(N);}else if (S==S.parentNode.lastChild){N.parentNode.insertBefore(N.removeChild(S),N.nextSibling);if (!N.firstChild) N.parentNode.removeChild(N);}else FCKDomTools.BreakParent(S,S.parentNode,B);R.push(S);};if (FCKConfig.EnterMode.IEquals('br')){while (R.length){var S=R.shift();var W=true;if (S.nodeName.IEquals('div')){var M=FCKTools.GetElementDocument(S).createDocumentFragment();var Y=W&&S.previousSibling&&!FCKListsLib.BlockBoundaries[S.previousSibling.nodeName.toLowerCase()];if (W&&Y) M.appendChild(FCKTools.GetElementDocument(S).createElement('br'));var Z=S.nextSibling&&!FCKListsLib.BlockBoundaries[S.nextSibling.nodeName.toLowerCase()];while (S.firstChild) M.appendChild(S.removeChild(S.firstChild));if (Z) M.appendChild(FCKTools.GetElementDocument(S).createElement('br'));S.parentNode.replaceChild(M,S);W=false;}}}};B.MoveToBookmark(C);B.Select();FCK.Focus();FCK.Events.FireEvent('OnSelectionChange');},GetState:function(){if (FCK.EditMode!=0||!FCK.EditorWindow) return -1;var A=new FCKElementPath(FCKSelection.GetBoundaryParentElement(true));var B=A.Block||A.BlockLimit;if (!B||B.nodeName.toLowerCase()=='body') return 0;for (var i=0;i';B.open();B.write(''+F+'<\/head><\/body><\/html>');B.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.Panel_Contructor(B,window.document.location);FCKTools.AddEventListenerEx(E,'focus',FCKPanel_Window_OnFocus,this);FCKTools.AddEventListenerEx(E,'blur',FCKPanel_Window_OnBlur,this);};B.dir=FCKLang.Dir;FCKTools.AddEventListener(B,'contextmenu',FCKTools.CancelEvent);this.MainNode=B.body.appendChild(B.createElement('DIV'));this.MainNode.style.cssFloat=this.IsRTL?'right':'left';};FCKPanel.prototype.AppendStyleSheet=function(A){FCKTools.AppendStyleSheet(this.Document,A);};FCKPanel.prototype.Preload=function(x,y,A){if (this._Popup) this._Popup.show(x,y,0,0,A);};FCKPanel.prototype.Show=function(x,y,A,B,C){var D;var E=this.MainNode;if (this._Popup){this._Popup.show(x,y,0,0,A);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=(x*-1)+A.offsetWidth-D;};this._Popup.show(x,y,D,E.offsetHeight,A);if (this.OnHide){if (this._Timer) CheckPopupOnHide.call(this,true);this._Timer=FCKTools.SetInterval(CheckPopupOnHide,100,this);}}else{if (typeof(FCK.ToolbarSet.CurrentInstance.FocusManager)!='undefined') FCK.ToolbarSet.CurrentInstance.FocusManager.Lock();if (this.ParentPanel){this.ParentPanel.Lock();FCKPanel_Window_OnBlur(null,this.ParentPanel);};if (FCKBrowserInfo.IsGecko&&FCKBrowserInfo.IsMac){this._IFrame.scrolling='';FCKTools.RunFunction(function(){ this._IFrame.scrolling='no';},this);};if (FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel&&FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel!=this) FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel.Hide(false,true);FCKDomTools.SetElementStyles(E,{B:B?B+'px':'',C:C?C+'px':''});D=E.offsetWidth;if (!B) this._IFrame.width=1;if (!C) this._IFrame.height=1;D=E.offsetWidth||E.firstChild.offsetWidth;var F=FCKTools.GetDocumentPosition(this._Window,A.nodeType==9?(FCKTools.IsStrictMode(A)?A.documentElement:A.body):A);var G=FCKDomTools.GetPositionedAncestor(this._IFrame.parentNode);if (G){var H=FCKTools.GetDocumentPosition(FCKTools.GetElementWindow(G),G);F.x-=H.x;F.y-=H.y;};if (this.IsRTL&&!this.IsContextMenu) x=(x*-1);x+=F.x;y+=F.y;if (this.IsRTL){if (this.IsContextMenu) x=x-D+1;else if (A) x=x+A.offsetWidth-D;}else{var I=FCKTools.GetViewPaneSize(this._Window);var J=FCKTools.GetScrollPosition(this._Window);var K=I.Height+J.Y;var L=I.Width+J.X;if ((x+D)>L) x-=x+D-L;if ((y+E.offsetHeight)>K) y-=y+E.offsetHeight-K;};FCKDomTools.SetElementStyles(this._IFrame,{left:x+'px',top:y+'px'});this._IFrame.contentWindow.focus();this._IsOpened=true;var M=this;this._resizeTimer=setTimeout(function(){var N=E.offsetWidth||E.firstChild.offsetWidth;var O=E.offsetHeight;M._IFrame.style.width=N+'px';M._IFrame.style.height=O+'px';},0);FCK.ToolbarSet.CurrentInstance.GetInstanceObject('FCKPanel')._OpenedPanel=this;};FCKTools.RunFunction(this.OnShow,this);};FCKPanel.prototype.Hide=function(A,B){if (this._Popup) this._Popup.hide();else{if (!this._IsOpened||this._LockCounter>0) return;if (typeof(FCKFocusManager)!='undefined'&&!B) FCKFocusManager.Unlock();this._IFrame.style.width=this._IFrame.style.height='0px';this._IsOpened=false;if (this._resizeTimer){clearTimeout(this._resizeTimer);this._resizeTimer=null;};if (this.ParentPanel) this.ParentPanel.Unlock();if (!A) FCKTools.RunFunction(this.OnHide,this);}};FCKPanel.prototype.CheckIsOpened=function(){if (this._Popup) return this._Popup.isOpen;else return this._IsOpened;};FCKPanel.prototype.CreateChildPanel=function(){var A=this._Popup?FCKTools.GetDocumentWindow(this.Document):this._Window;var B=new FCKPanel(A);B.ParentPanel=this;return B;};FCKPanel.prototype.Lock=function(){this._LockCounter++;};FCKPanel.prototype.Unlock=function(){if (--this._LockCounter==0&&!this.HasFocus) this.Hide();};function FCKPanel_Window_OnFocus(e,A){A.HasFocus=true;};function FCKPanel_Window_OnBlur(e,A){A.HasFocus=false;if (A._LockCounter==0) FCKTools.RunFunction(A.Hide,A);};function CheckPopupOnHide(A){if (A||!this._Popup.isOpen){window.clearInterval(this._Timer);this._Timer=null;FCKTools.RunFunction(this.OnHide,this);}};function FCKPanel_Cleanup(){this._Popup=null;this._Window=null;this.Document=null;this.MainNode=null;}; +var FCKIcon=function(A){var B=A?typeof(A):'undefined';switch (B){case 'number':this.Path=FCKConfig.SkinPath+'fck_strip.gif';this.Size=16;this.Position=A;break;case 'undefined':this.Path=FCK_SPACER_PATH;break;case 'string':this.Path=A;break;default:this.Path=A[0];this.Size=A[1];this.Position=A[2];}};FCKIcon.prototype.CreateIconElement=function(A){var B,eIconImage;if (this.Position){var C='-'+((this.Position-1)*this.Size)+'px';if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path;eIconImage.style.top=C;}else{B=A.createElement('IMG');B.src=FCK_SPACER_PATH;B.style.backgroundPosition='0px '+C;B.style.backgroundImage='url("'+this.Path+'")';}}else{if (FCKBrowserInfo.IsIE){B=A.createElement('DIV');eIconImage=B.appendChild(A.createElement('IMG'));eIconImage.src=this.Path?this.Path:FCK_SPACER_PATH;}else{B=A.createElement('IMG');B.src=this.Path?this.Path:FCK_SPACER_PATH;}};B.className='TB_Button_Image';return B;}; +var FCKToolbarButtonUI=function(A,B,C,D,E,F){this.Name=A;this.Label=B||A;this.Tooltip=C||this.Label;this.Style=E||0;this.State=F||0;this.Icon=new FCKIcon(D);if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKToolbarButtonUI_Cleanup);};FCKToolbarButtonUI.prototype._CreatePaddingElement=function(A){var B=A.createElement('IMG');B.className='TB_Button_Padding';B.src=FCK_SPACER_PATH;return B;};FCKToolbarButtonUI.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this.MainElement=B.createElement('DIV');C.title=this.Tooltip;if (FCKBrowserInfo.IsGecko) C.onmousedown=FCKTools.CancelEvent;FCKTools.AddEventListenerEx(C,'mouseover',FCKToolbarButtonUI_OnMouseOver,this);FCKTools.AddEventListenerEx(C,'mouseout',FCKToolbarButtonUI_OnMouseOut,this);FCKTools.AddEventListenerEx(C,'click',FCKToolbarButtonUI_OnClick,this);this.ChangeState(this.State,true);if (this.Style==0&&!this.ShowArrow){C.appendChild(this.Icon.CreateIconElement(B));}else{var D=C.appendChild(B.createElement('TABLE'));D.cellPadding=0;D.cellSpacing=0;var E=D.insertRow(-1);var F=E.insertCell(-1);if (this.Style==0||this.Style==2) F.appendChild(this.Icon.CreateIconElement(B));else F.appendChild(this._CreatePaddingElement(B));if (this.Style==1||this.Style==2){F=E.insertCell(-1);F.className='TB_Button_Text';F.noWrap=true;F.appendChild(B.createTextNode(this.Label));};if (this.ShowArrow){if (this.Style!=0){E.insertCell(-1).appendChild(this._CreatePaddingElement(B));};F=E.insertCell(-1);var G=F.appendChild(B.createElement('IMG'));G.src=FCKConfig.SkinPath+'images/toolbar.buttonarrow.gif';G.width=5;G.height=3;};F=E.insertCell(-1);F.appendChild(this._CreatePaddingElement(B));};A.appendChild(C);};FCKToolbarButtonUI.prototype.ChangeState=function(A,B){if (!B&&this.State==A) return;var e=this.MainElement;if (!e) return;switch (parseInt(A,10)){case 0:e.className='TB_Button_Off';break;case 1:e.className='TB_Button_On';break;case -1:e.className='TB_Button_Disabled';break;};this.State=A;};function FCKToolbarButtonUI_OnMouseOver(A,B){if (B.State==0) this.className='TB_Button_Off_Over';else if (B.State==1) this.className='TB_Button_On_Over';};function FCKToolbarButtonUI_OnMouseOut(A,B){if (B.State==0) this.className='TB_Button_Off';else if (B.State==1) this.className='TB_Button_On';};function FCKToolbarButtonUI_OnClick(A,B){if (B.OnClick&&B.State!=-1) B.OnClick(B);};function FCKToolbarButtonUI_Cleanup(){this.MainElement=null;}; +var FCKToolbarButton=function(A,B,C,D,E,F,G){this.CommandName=A;this.Label=B;this.Tooltip=C;this.Style=D;this.SourceView=E?true:false;this.ContextSensitive=F?true:false;if (G==null) this.IconPath=FCKConfig.SkinPath+'toolbar/'+A.toLowerCase()+'.gif';else if (typeof(G)=='number') this.IconPath=[FCKConfig.SkinPath+'fck_strip.gif',16,G];else this.IconPath=G;};FCKToolbarButton.prototype.Create=function(A){this._UIButton=new FCKToolbarButtonUI(this.CommandName,this.Label,this.Tooltip,this.IconPath,this.Style);this._UIButton.OnClick=this.Click;this._UIButton._ToolbarButton=this;this._UIButton.Create(A);};FCKToolbarButton.prototype.RefreshState=function(){var A=this._UIButton;if (!A) return;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B==A.State) return;A.ChangeState(B);};FCKToolbarButton.prototype.Click=function(){var A=this._ToolbarButton||this;FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(A.CommandName).Execute();};FCKToolbarButton.prototype.Enable=function(){this.RefreshState();};FCKToolbarButton.prototype.Disable=function(){this._UIButton.ChangeState(-1);}; +var FCKSpecialCombo=function(A,B,C,D,E){this.FieldWidth=B||100;this.PanelWidth=C||150;this.PanelMaxHeight=D||150;this.Label=' ';this.Caption=A;this.Tooltip=A;this.Style=2;this.Enabled=true;this.Items={};this._Panel=new FCKPanel(E||window);this._Panel.AppendStyleSheet(FCKConfig.SkinEditorCSS);this._PanelBox=this._Panel.MainNode.appendChild(this._Panel.Document.createElement('DIV'));this._PanelBox.className='SC_Panel';this._PanelBox.style.width=this.PanelWidth+'px';this._PanelBox.innerHTML='
      ';this._ItemsHolderEl=this._PanelBox.getElementsByTagName('TD')[0];if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKSpecialCombo_Cleanup);};function FCKSpecialCombo_ItemOnMouseOver(){this.className+=' SC_ItemOver';};function FCKSpecialCombo_ItemOnMouseOut(){this.className=this.originalClass;};function FCKSpecialCombo_ItemOnClick(A,B,C){this.className=this.originalClass;B._Panel.Hide();B.SetLabel(this.FCKItemLabel);if (typeof(B.OnSelect)=='function') B.OnSelect(C,this);};FCKSpecialCombo.prototype.ClearItems=function (){if (this.Items) this.Items={};var A=this._ItemsHolderEl;while (A.firstChild) A.removeChild(A.firstChild);};FCKSpecialCombo.prototype.AddItem=function(A,B,C,D){var E=this._ItemsHolderEl.appendChild(this._Panel.Document.createElement('DIV'));E.className=E.originalClass='SC_Item';E.innerHTML=B;E.FCKItemLabel=C||A;E.Selected=false;if (FCKBrowserInfo.IsIE) E.style.width='100%';if (D) E.style.backgroundColor=D;FCKTools.AddEventListenerEx(E,'mouseover',FCKSpecialCombo_ItemOnMouseOver);FCKTools.AddEventListenerEx(E,'mouseout',FCKSpecialCombo_ItemOnMouseOut);FCKTools.AddEventListenerEx(E,'click',FCKSpecialCombo_ItemOnClick,[this,A]);this.Items[A.toString().toLowerCase()]=E;return E;};FCKSpecialCombo.prototype.SelectItem=function(A){if (typeof A=='string') A=this.Items[A.toString().toLowerCase()];if (A){A.className=A.originalClass='SC_ItemSelected';A.Selected=true;}};FCKSpecialCombo.prototype.SelectItemByLabel=function(A,B){for (var C in this.Items){var D=this.Items[C];if (D.FCKItemLabel==A){D.className=D.originalClass='SC_ItemSelected';D.Selected=true;if (B) this.SetLabel(A);}}};FCKSpecialCombo.prototype.DeselectAll=function(A){for (var i in this.Items){if (!this.Items[i]) continue;this.Items[i].className=this.Items[i].originalClass='SC_Item';this.Items[i].Selected=false;};if (A) this.SetLabel('');};FCKSpecialCombo.prototype.SetLabelById=function(A){A=A?A.toString().toLowerCase():'';var B=this.Items[A];this.SetLabel(B?B.FCKItemLabel:'');};FCKSpecialCombo.prototype.SetLabel=function(A){A=(!A||A.length==0)?' ':A;if (A==this.Label) return;this.Label=A;var B=this._LabelEl;if (B){B.innerHTML=A;FCKTools.DisableSelection(B);}};FCKSpecialCombo.prototype.SetEnabled=function(A){this.Enabled=A;if (this._OuterTable) this._OuterTable.className=A?'':'SC_FieldDisabled';};FCKSpecialCombo.prototype.Create=function(A){var B=FCKTools.GetElementDocument(A);var C=this._OuterTable=A.appendChild(B.createElement('TABLE'));C.cellPadding=0;C.cellSpacing=0;C.insertRow(-1);var D;var E;switch (this.Style){case 0:D='TB_ButtonType_Icon';E=false;break;case 1:D='TB_ButtonType_Text';E=false;break;case 2:E=true;break;};if (this.Caption&&this.Caption.length>0&&E){var F=C.rows[0].insertCell(-1);F.innerHTML=this.Caption;F.className='SC_FieldCaption';};var G=FCKTools.AppendElement(C.rows[0].insertCell(-1),'div');if (E){G.className='SC_Field';G.style.width=this.FieldWidth+'px';G.innerHTML='
       
      ';this._LabelEl=G.getElementsByTagName('label')[0];this._LabelEl.innerHTML=this.Label;}else{G.className='TB_Button_Off';G.innerHTML='
      '+this.Caption+'
      ';};FCKTools.AddEventListenerEx(G,'mouseover',FCKSpecialCombo_OnMouseOver,this);FCKTools.AddEventListenerEx(G,'mouseout',FCKSpecialCombo_OnMouseOut,this);FCKTools.AddEventListenerEx(G,'click',FCKSpecialCombo_OnClick,this);FCKTools.DisableSelection(this._Panel.Document.body);};function FCKSpecialCombo_Cleanup(){this._LabelEl=null;this._OuterTable=null;this._ItemsHolderEl=null;this._PanelBox=null;if (this.Items){for (var A in this.Items) this.Items[A]=null;}};function FCKSpecialCombo_OnMouseOver(A,B){if (B.Enabled){switch (B.Style){case 0:this.className='TB_Button_On_Over';break;case 1:this.className='TB_Button_On_Over';break;case 2:this.className='SC_Field SC_FieldOver';break;}}};function FCKSpecialCombo_OnMouseOut(A,B){switch (B.Style){case 0:this.className='TB_Button_Off';break;case 1:this.className='TB_Button_Off';break;case 2:this.className='SC_Field';break;}};function FCKSpecialCombo_OnClick(e,A){if (A.Enabled){var B=A._Panel;var C=A._PanelBox;var D=A._ItemsHolderEl;var E=A.PanelMaxHeight;if (A.OnBeforeClick) A.OnBeforeClick(A);if (FCKBrowserInfo.IsIE) B.Preload(0,this.offsetHeight,this);if (D.offsetHeight>E) C.style.height=E+'px';else C.style.height='';B.Show(0,this.offsetHeight,this);}}; +var FCKToolbarSpecialCombo=function(){this.SourceView=false;this.ContextSensitive=true;this.FieldWidth=null;this.PanelWidth=null;this.PanelMaxHeight=null;};FCKToolbarSpecialCombo.prototype.DefaultLabel='';function FCKToolbarSpecialCombo_OnSelect(A,B){FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).Execute(A,B);};FCKToolbarSpecialCombo.prototype.Create=function(A){this._Combo=new FCKSpecialCombo(this.GetLabel(),this.FieldWidth,this.PanelWidth,this.PanelMaxHeight,FCKBrowserInfo.IsIE?window:FCKTools.GetElementWindow(A).parent);this._Combo.Tooltip=this.Tooltip;this._Combo.Style=this.Style;this.CreateItems(this._Combo);this._Combo.Create(A);this._Combo.CommandName=this.CommandName;this._Combo.OnSelect=FCKToolbarSpecialCombo_OnSelect;};function FCKToolbarSpecialCombo_RefreshActiveItems(A,B){A.DeselectAll();A.SelectItem(B);A.SetLabelById(B);};FCKToolbarSpecialCombo.prototype.RefreshState=function(){var A;var B=FCK.ToolbarSet.CurrentInstance.Commands.GetCommand(this.CommandName).GetState();if (B!=-1){A=1;if (this.RefreshActiveItems) this.RefreshActiveItems(this._Combo,B);else{if (this._LastValue!==B){this._LastValue=B;if (!B||B.length==0){this._Combo.DeselectAll();this._Combo.SetLabel(this.DefaultLabel);}else FCKToolbarSpecialCombo_RefreshActiveItems(this._Combo,B);}}}else A=-1;if (A==this.State) return;if (A==-1){this._Combo.DeselectAll();this._Combo.SetLabel('');};this.State=A;this._Combo.SetEnabled(A!=-1);};FCKToolbarSpecialCombo.prototype.Enable=function(){this.RefreshState();};FCKToolbarSpecialCombo.prototype.Disable=function(){this.State=-1;this._Combo.DeselectAll();this._Combo.SetLabel('');this._Combo.SetEnabled(false);}; +var FCKToolbarStyleCombo=function(A,B){if (A===false) return;this.CommandName='Style';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.DefaultLabel=FCKConfig.DefaultStyleLabel||'';};FCKToolbarStyleCombo.prototype=new FCKToolbarSpecialCombo;FCKToolbarStyleCombo.prototype.GetLabel=function(){return FCKLang.Style;};FCKToolbarStyleCombo.prototype.GetStyles=function(){var A={};var B=FCK.ToolbarSet.CurrentInstance.Styles.GetStyles();for (var C in B){var D=B[C];if (!D.IsCore) A[C]=D;};return A;};FCKToolbarStyleCombo.prototype.CreateItems=function(A){var B=A._Panel.Document;FCKTools.AppendStyleSheet(B,FCKConfig.ToolbarComboPreviewCSS);FCKTools.AppendStyleString(B,FCKConfig.EditorAreaStyles);B.body.className+=' ForceBaseFont';FCKConfig.ApplyBodyAttributes(B.body);var C=this.GetStyles();for (var D in C){var E=C[D];var F=E.GetType()==2?D:FCKToolbarStyleCombo_BuildPreview(E,E.Label||D);var G=A.AddItem(D,F);G.Style=E;};A.OnBeforeClick=this.StyleCombo_OnBeforeClick;};FCKToolbarStyleCombo.prototype.RefreshActiveItems=function(A){var B=FCK.ToolbarSet.CurrentInstance.Selection.GetBoundaryParentElement(true);if (B){var C=new FCKElementPath(B);var D=C.Elements;for (var e=0;e');var E=A.Element;if (E=='bdo') E='span';D=['<',E];var F=A._StyleDesc.Attributes;if (F){for (var G in F){D.push(' ',G,'="',A.GetFinalAttributeValue(G),'"');}};if (A._GetStyleText().length>0) D.push(' style="',A.GetFinalStyleValue(),'"');D.push('>',B,'');if (C==0) D.push('');return D.join('');}; +var FCKToolbarFontFormatCombo=function(A,B){if (A===false) return;this.CommandName='FontFormat';this.Label=this.GetLabel();this.Tooltip=A?A:this.Label;this.Style=B?B:2;this.NormalLabel='Normal';this.PanelWidth=190;this.DefaultLabel=FCKConfig.DefaultFontFormatLabel||'';};FCKToolbarFontFormatCombo.prototype=new FCKToolbarStyleCombo(false);FCKToolbarFontFormatCombo.prototype.GetLabel=function(){return FCKLang.FontFormat;};FCKToolbarFontFormatCombo.prototype.GetStyles=function(){var A={};var B=FCKLang['FontFormats'].split(';');var C={p:B[0],pre:B[1],address:B[2],h1:B[3],h2:B[4],h3:B[5],h4:B[6],h5:B[7],h6:B[8],div:B[9]||(B[0]+' (DIV)')};var D=FCKConfig.FontFormats.split(';');for (var i=0;i';G.open();G.write(''+H+''+document.getElementById('xToolbarSpace').innerHTML+'');G.close();if(FCKBrowserInfo.IsAIR) FCKAdobeAIR.ToolbarSet_InitOutFrame(G);FCKTools.AddEventListener(G,'contextmenu',FCKTools.CancelEvent);FCKTools.AppendStyleSheet(G,FCKConfig.SkinEditorCSS);B=D.__FCKToolbarSet=new FCKToolbarSet(G);B._IFrame=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(D,FCKToolbarSet_Target_Cleanup);};B.CurrentInstance=FCK;if (!B.ToolbarItems) B.ToolbarItems=FCKToolbarItems;FCK.AttachToOnSelectionChange(B.RefreshItemsState);return B;};function FCK_OnBlur(A){var B=A.ToolbarSet;if (B.CurrentInstance==A) B.Disable();};function FCK_OnFocus(A){var B=A.ToolbarSet;var C=A||FCK;B.CurrentInstance.FocusManager.RemoveWindow(B._IFrame.contentWindow);B.CurrentInstance=C;C.FocusManager.AddWindow(B._IFrame.contentWindow,true);B.Enable();};function FCKToolbarSet_Cleanup(){this._TargetElement=null;this._IFrame=null;};function FCKToolbarSet_Target_Cleanup(){this.__FCKToolbarSet=null;};var FCKToolbarSet=function(A){this._Document=A;this._TargetElement=A.getElementById('xToolbar');var B=A.getElementById('xExpandHandle');var C=A.getElementById('xCollapseHandle');B.title=FCKLang.ToolbarExpand;FCKTools.AddEventListener(B,'click',FCKToolbarSet_Expand_OnClick);C.title=FCKLang.ToolbarCollapse;FCKTools.AddEventListener(C,'click',FCKToolbarSet_Collapse_OnClick);if (!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;x0) break;}catch (e){break;};D=D.parent;};var E=D.document;var F=function(){if (!B) B=FCKConfig.FloatingPanelsZIndex+999;return++B;};var G=function(){if (!C) return;var H=FCKTools.IsStrictMode(E)?E.documentElement:E.body;FCKDomTools.SetElementStyles(C,{'width':Math.max(H.scrollWidth,H.clientWidth,E.scrollWidth||0)-1+'px','height':Math.max(H.scrollHeight,H.clientHeight,E.scrollHeight||0)-1+'px'});};return {OpenDialog:function(dialogName,dialogTitle,dialogPage,width,height,customValue,parentWindow,resizable){if (!A) this.DisplayMainCover();var I={Title:dialogTitle,Page:dialogPage,Editor:window,CustomValue:customValue,TopWindow:D};FCK.ToolbarSet.CurrentInstance.Selection.Save();var J=FCKTools.GetViewPaneSize(D);var K={ 'X':0,'Y':0 };var L=FCKBrowserInfo.IsIE&&(!FCKBrowserInfo.IsIE7||!FCKTools.IsStrictMode(D.document));if (L) K=FCKTools.GetScrollPosition(D);var M=Math.max(K.Y+(J.Height-height-20)/2,0);var N=Math.max(K.X+(J.Width-width-20)/2,0);var O=E.createElement('iframe');FCKTools.ResetStyles(O);O.src=FCKConfig.BasePath+'fckdialog.html';O.frameBorder=0;O.allowTransparency=true;FCKDomTools.SetElementStyles(O,{'position':(L)?'absolute':'fixed','top':M+'px','left':N+'px','width':width+'px','height':height+'px','zIndex':F()});O._DialogArguments=I;E.body.appendChild(O);O._ParentDialog=A;A=O;},OnDialogClose:function(dialogWindow){var O=dialogWindow.frameElement;FCKDomTools.RemoveNode(O);if (O._ParentDialog){A=O._ParentDialog;O._ParentDialog.contentWindow.SetEnabled(true);}else{if (!FCKBrowserInfo.IsIE) FCK.Focus();this.HideMainCover();setTimeout(function(){ A=null;},0);FCK.ToolbarSet.CurrentInstance.Selection.Release();}},DisplayMainCover:function(){C=E.createElement('div');FCKTools.ResetStyles(C);FCKDomTools.SetElementStyles(C,{'position':'absolute','zIndex':F(),'top':'0px','left':'0px','backgroundColor':FCKConfig.BackgroundBlockerColor});FCKDomTools.SetOpacity(C,FCKConfig.BackgroundBlockerOpacity);if (FCKBrowserInfo.IsIE&&!FCKBrowserInfo.IsIE7){var Q=E.createElement('iframe');FCKTools.ResetStyles(Q);Q.hideFocus=true;Q.frameBorder=0;Q.src=FCKTools.GetVoidUrl();FCKDomTools.SetElementStyles(Q,{'width':'100%','height':'100%','position':'absolute','left':'0px','top':'0px','filter':'progid:DXImageTransform.Microsoft.Alpha(opacity=0)'});C.appendChild(Q);};FCKTools.AddEventListener(D,'resize',G);G();E.body.appendChild(C);FCKFocusManager.Lock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R._fck_originalTabIndex=R.tabIndex;R.tabIndex=-1;},HideMainCover:function(){FCKDomTools.RemoveNode(C);FCKFocusManager.Unlock();var R=FCK.ToolbarSet.CurrentInstance.GetInstanceObject('frameElement');R.tabIndex=R._fck_originalTabIndex;FCKDomTools.ClearElementJSProperty(R,'_fck_originalTabIndex');},GetCover:function(){return C;}};})(); +var FCKMenuItem=function(A,B,C,D,E,F){this.Name=B;this.Label=C||B;this.IsDisabled=E;this.Icon=new FCKIcon(D);this.SubMenu=new FCKMenuBlockPanel();this.SubMenu.Parent=A;this.SubMenu.OnClick=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnClick,this);this.CustomData=F;if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuItem_Cleanup);};FCKMenuItem.prototype.AddItem=function(A,B,C,D,E){this.HasSubMenu=true;return this.SubMenu.AddItem(A,B,C,D,E);};FCKMenuItem.prototype.AddSeparator=function(){this.SubMenu.AddSeparator();};FCKMenuItem.prototype.Create=function(A){var B=this.HasSubMenu;var C=FCKTools.GetElementDocument(A);var r=this.MainElement=A.insertRow(-1);r.className=this.IsDisabled?'MN_Item_Disabled':'MN_Item';if (!this.IsDisabled){FCKTools.AddEventListenerEx(r,'mouseover',FCKMenuItem_OnMouseOver,[this]);FCKTools.AddEventListenerEx(r,'click',FCKMenuItem_OnClick,[this]);if (!B) FCKTools.AddEventListenerEx(r,'mouseout',FCKMenuItem_OnMouseOut,[this]);};var D=r.insertCell(-1);D.className='MN_Icon';D.appendChild(this.Icon.CreateIconElement(C));D=r.insertCell(-1);D.className='MN_Label';D.noWrap=true;D.appendChild(C.createTextNode(this.Label));D=r.insertCell(-1);if (B){D.className='MN_Arrow';var E=D.appendChild(C.createElement('IMG'));E.src=FCK_IMAGES_PATH+'arrow_'+FCKLang.Dir+'.gif';E.width=4;E.height=7;this.SubMenu.Create();this.SubMenu.Panel.OnHide=FCKTools.CreateEventListener(FCKMenuItem_SubMenu_OnHide,this);}};FCKMenuItem.prototype.Activate=function(){this.MainElement.className='MN_Item_Over';if (this.HasSubMenu){this.SubMenu.Show(this.MainElement.offsetWidth+2,-2,this.MainElement);};FCKTools.RunFunction(this.OnActivate,this);};FCKMenuItem.prototype.Deactivate=function(){this.MainElement.className='MN_Item';if (this.HasSubMenu) this.SubMenu.Hide();};function FCKMenuItem_SubMenu_OnClick(A,B){FCKTools.RunFunction(B.OnClick,B,[A]);};function FCKMenuItem_SubMenu_OnHide(A){A.Deactivate();};function FCKMenuItem_OnClick(A,B){if (B.HasSubMenu) B.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,E){var F=new FCKMenuItem(this,A,B,C,D,E);F.OnClick=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnClick,this);F.OnActivate=FCKTools.CreateEventListener(FCKMenuBlock_Item_OnActivate,this);this._Items.push(F);return F;};FCKMenuBlock.prototype.AddSeparator=function(){this._Items.push(new FCKMenuSeparator());};FCKMenuBlock.prototype.RemoveAllItems=function(){this._Items=[];var A=this._ItemsTable;if (A){while (A.rows.length>0) A.deleteRow(0);}};FCKMenuBlock.prototype.Create=function(A){if (!this._ItemsTable){if (FCK.IECleanup) FCK.IECleanup.AddItem(this,FCKMenuBlock_Cleanup);this._Window=FCKTools.GetElementWindow(A);var B=FCKTools.GetElementDocument(A);var C=A.appendChild(B.createElement('table'));C.cellPadding=0;C.cellSpacing=0;FCKTools.DisableSelection(C);var D=C.insertRow(-1).insertCell(-1);D.className='MN_Menu';var E=this._ItemsTable=D.appendChild(B.createElement('table'));E.cellPadding=0;E.cellSpacing=0;};for (var i=0;i0&&F.href.length==0);if (G) return;menu.AddSeparator();menu.AddItem('VisitLink',FCKLang.VisitLink);menu.AddSeparator();if (E) menu.AddItem('Link',FCKLang.EditLink,34);menu.AddItem('Unlink',FCKLang.RemoveLink,35);}}};case 'Image':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&!tag.getAttribute('_fckfakelement')){menu.AddSeparator();menu.AddItem('Image',FCKLang.ImageProperties,37);}}};case 'Anchor':return {AddItems:function(menu,tag,tagName){var F=FCKSelection.MoveToAncestorNode('A');var G=(F&&F.name.length>0);if (G||(tagName=='IMG'&&tag.getAttribute('_fckanchor'))){menu.AddSeparator();menu.AddItem('Anchor',FCKLang.AnchorProp,36);menu.AddItem('AnchorDelete',FCKLang.AnchorDelete);}}};case 'Flash':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckflash')){menu.AddSeparator();menu.AddItem('Flash',FCKLang.FlashProperties,38);}}};case 'Form':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('FORM')){menu.AddSeparator();menu.AddItem('Form',FCKLang.FormProp,48);}}};case 'Checkbox':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='checkbox'){menu.AddSeparator();menu.AddItem('Checkbox',FCKLang.CheckboxProp,49);}}};case 'Radio':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='radio'){menu.AddSeparator();menu.AddItem('Radio',FCKLang.RadioButtonProp,50);}}};case 'TextField':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='text'||tag.type=='password')){menu.AddSeparator();menu.AddItem('TextField',FCKLang.TextFieldProp,51);}}};case 'HiddenField':return {AddItems:function(menu,tag,tagName){if (tagName=='IMG'&&tag.getAttribute('_fckinputhidden')){menu.AddSeparator();menu.AddItem('HiddenField',FCKLang.HiddenFieldProp,56);}}};case 'ImageButton':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&tag.type=='image'){menu.AddSeparator();menu.AddItem('ImageButton',FCKLang.ImageButtonProp,55);}}};case 'Button':return {AddItems:function(menu,tag,tagName){if (tagName=='INPUT'&&(tag.type=='button'||tag.type=='submit'||tag.type=='reset')){menu.AddSeparator();menu.AddItem('Button',FCKLang.ButtonProp,54);}}};case 'Select':return {AddItems:function(menu,tag,tagName){if (tagName=='SELECT'){menu.AddSeparator();menu.AddItem('Select',FCKLang.SelectionFieldProp,53);}}};case 'Textarea':return {AddItems:function(menu,tag,tagName){if (tagName=='TEXTAREA'){menu.AddSeparator();menu.AddItem('Textarea',FCKLang.TextareaProp,52);}}};case 'BulletedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('UL')){menu.AddSeparator();menu.AddItem('BulletedList',FCKLang.BulletedListProp,27);}}};case 'NumberedList':return {AddItems:function(menu,tag,tagName){if (FCKSelection.HasAncestorNode('OL')){menu.AddSeparator();menu.AddItem('NumberedList',FCKLang.NumberedListProp,26);}}};case 'DivContainer':return {AddItems:function(menu,tag,tagName){var J=FCKDomTools.GetSelectedDivContainers();if (J.length>0){menu.AddSeparator();menu.AddItem('EditDiv',FCKLang.EditDiv,75);menu.AddItem('DeleteDiv',FCKLang.DeleteDiv,76);}}};};return null;};function FCK_ContextMenu_OnBeforeOpen(){FCK.Events.FireEvent('OnSelectionChange');var A,sTagName;if ((A=FCKSelection.GetSelectedElement())) sTagName=A.tagName;var B=FCK.ContextMenu._InnerContextMenu;B.RemoveAllItems();var C=FCK.ContextMenu.Listeners;for (var i=0;i0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}};var FCKHtmlIterator=function(A){this._sourceHtml=A;};FCKHtmlIterator.prototype={Next:function(){var A=this._sourceHtml;if (A==null) return null;var B=FCKRegexLib.HtmlTag.exec(A);var C=false;var D="";if (B){if (B.index>0){D=A.substr(0,B.index);this._sourceHtml=A.substr(B.index);}else{C=true;D=B[0];this._sourceHtml=A.substr(B[0].length);}}else{D=A;this._sourceHtml=null;};return { 'isTag':C,'value':D };},Each:function(A){var B;while ((B=this.Next())) A(B.isTag,B.value);}}; +var FCKPlugin=function(A,B,C){this.Name=A;this.BasePath=C?C:FCKConfig.PluginsPath;this.Path=this.BasePath+A+'/';if (!B||B.length==0) this.AvailableLangs=[];else this.AvailableLangs=B.split(',');};FCKPlugin.prototype.Load=function(){if (this.AvailableLangs.length>0){var A;if (this.AvailableLangs.IndexOf(FCKLanguageManager.ActiveLanguage.Code)>=0) A=FCKLanguageManager.ActiveLanguage.Code;else A=this.AvailableLangs[0];LoadScript(this.Path+'lang/'+A+'.js');};LoadScript(this.Path+'fckplugin.js');}; +var FCKPlugins=FCK.Plugins={};FCKPlugins.ItemsCount=0;FCKPlugins.Items={};FCKPlugins.Load=function(){var A=FCKPlugins.Items;for (var i=0;i", +DlgInfoTab : "Info", +DlgAlertUrl : "Voeg asseblief die URL in", + +// General Dialogs Labels +DlgGenNotSet : "", +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 : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Kies 'n plekhouer", +DlgLnkAnchorByName : "Volgens plekhouer naam", +DlgLnkAnchorById : "Volgens element Id", +DlgLnkNoAnchors : "(Geen plekhouers beskikbaar in dokument}", +DlgLnkEMail : "E-Mail Adres", +DlgLnkEMailSubject : "Boodskap Opskrif", +DlgLnkEMailBody : "Boodskap Inhoud", +DlgLnkUpload : "Oplaai", +DlgLnkBtnUpload : "Stuur na Server", + +DlgLnkTarget : "Mikpunt", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +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 : "", +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 : "", +DlgCellWordWrapYes : "Ja", +DlgCellWordWrapNo : "Nee", +DlgCellHorAlign : "Horisontale rigting", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Links", +DlgCellHorAlignCenter : "Middel", +DlgCellHorAlignRight: "Regs", +DlgCellVerAlign : "Vertikale rigting", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Bo", +DlgCellVerAlignMiddle : "Middel", +DlgCellVerAlignBottom : "Onder", +DlgCellVerAlignBaseline : "Baseline", +DlgCellRowSpan : "Rei strekking", +DlgCellCollSpan : "Kolom strekking", +DlgCellBackColor : "Agtergrond Kleur", +DlgCellBorderColor : "Kant Kleur", +DlgCellBtnSelect : "Keuse...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + +// 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(Ctrl+V) en druk OK.", +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", + +// 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
      (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 ", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/ar.js b/fckeditor/editor/lang/ar.js new file mode 100644 index 0000000..f417bfd --- /dev/null +++ b/fckeditor/editor/lang/ar.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Arabic language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "rtl", + +ToolbarCollapse : "ضم شريط الأدوات", +ToolbarExpand : "تمدد شريط الأدوات", + +// Toolbar Items and Context Menu +Save : "حفظ", +NewPage : "صفحة جديدة", +Preview : "معاينة الصفحة", +Cut : "قص", +Copy : "نسخ", +Paste : "لصق", +PasteText : "لصق كنص بسيط", +PasteWord : "لصق من وورد", +Print : "طباعة", +SelectAll : "تحديد الكل", +RemoveFormat : "إزالة التنسيقات", +InsertLinkLbl : "رابط", +InsertLink : "إدراج/تحرير رابط", +RemoveLink : "إزالة رابط", +VisitLink : "Open Link", //MISSING +Anchor : "إدراج/تحرير إشارة مرجعية", +AnchorDelete : "إزالة إشارة مرجعية", +InsertImageLbl : "صورة", +InsertImage : "إدراج/تحرير صورة", +InsertFlashLbl : "فلاش", +InsertFlash : "إدراج/تحرير فيلم فلاش", +InsertTableLbl : "جدول", +InsertTable : "إدراج/تحرير جدول", +InsertLineLbl : "خط فاصل", +InsertLine : "إدراج خط فاصل", +InsertSpecialCharLbl: "رموز", +InsertSpecialChar : "إدراج رموز..ِ", +InsertSmileyLbl : "ابتسامات", +InsertSmiley : "إدراج ابتسامات", +About : "حول FCKeditor", +Bold : "غامق", +Italic : "مائل", +Underline : "تسطير", +StrikeThrough : "يتوسطه خط", +Subscript : "منخفض", +Superscript : "مرتفع", +LeftJustify : "محاذاة إلى اليسار", +CenterJustify : "توسيط", +RightJustify : "محاذاة إلى اليمين", +BlockJustify : "ضبط", +DecreaseIndent : "إنقاص المسافة البادئة", +IncreaseIndent : "زيادة المسافة البادئة", +Blockquote : "اقتباس", +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "تراجع", +Redo : "إعادة", +NumberedListLbl : "تعداد رقمي", +NumberedList : "إدراج/إلغاء تعداد رقمي", +BulletedListLbl : "تعداد نقطي", +BulletedList : "إدراج/إلغاء تعداد نقطي", +ShowTableBorders : "معاينة حدود الجداول", +ShowDetails : "معاينة التفاصيل", +Style : "نمط", +FontFormat : "تنسيق", +Font : "خط", +FontSize : "حجم الخط", +TextColor : "لون النص", +BGColor : "لون الخلفية", +Source : "شفرة المصدر", +Find : "بحث", +Replace : "إستبدال", +SpellCheck : "تدقيق إملائي", +UniversalKeyboard : "لوحة المفاتيح العالمية", +PageBreakLbl : "فصل الصفحة", +PageBreak : "إدخال صفحة جديدة", + +Form : "نموذج", +Checkbox : "خانة إختيار", +RadioButton : "زر خيار", +TextField : "مربع نص", +Textarea : "ناحية نص", +HiddenField : "إدراج حقل خفي", +Button : "زر ضغط", +SelectionField : "قائمة منسدلة", +ImageButton : "زر صورة", + +FitWindow : "تكبير حجم المحرر", +ShowBlocks : "مخطط تفصيلي", + +// Context Menu +EditLink : "تحرير رابط", +CellCM : "خلية", +RowCM : "صف", +ColumnCM : "عمود", +InsertRowAfter : "إدراج صف بعد", +InsertRowBefore : "إدراج صف قبل", +DeleteRows : "حذف صفوف", +InsertColumnAfter : "إدراج عمود بعد", +InsertColumnBefore : "إدراج عمود قبل", +DeleteColumns : "حذف أعمدة", +InsertCellAfter : "إدراج خلية بعد", +InsertCellBefore : "إدراج خلية قبل", +DeleteCells : "حذف خلايا", +MergeCells : "دمج خلايا", +MergeRight : "دمج لليمين", +MergeDown : "دمج للأسفل", +HorizontalSplitCell : "تقسيم الخلية أفقياً", +VerticalSplitCell : "تقسيم الخلية عمودياً", +TableDelete : "حذف الجدول", +CellProperties : "خصائص الخلية", +TableProperties : "خصائص الجدول", +ImageProperties : "خصائص الصورة", +FlashProperties : "خصائص فيلم الفلاش", + +AnchorProp : "خصائص الإشارة المرجعية", +ButtonProp : "خصائص زر الضغط", +CheckboxProp : "خصائص خانة الإختيار", +HiddenFieldProp : "خصائص الحقل الخفي", +RadioButtonProp : "خصائص زر الخيار", +ImageButtonProp : "خصائص زر الصورة", +TextFieldProp : "خصائص مربع النص", +SelectionFieldProp : "خصائص القائمة المنسدلة", +TextareaProp : "خصائص ناحية النص", +FormProp : "خصائص النموذج", + +FontFormats : "عادي;منسّق;دوس;العنوان 1;العنوان 2;العنوان 3;العنوان 4;العنوان 5;العنوان 6", + +// Alerts and Messages +ProcessingXHTML : "إنتظر قليلاً ريثما تتم معالَجة‏ XHTML. لن يستغرق طويلاً...", +Done : "تم", +PasteWordConfirm : "يبدو أن النص المراد لصقه منسوخ من برنامج وورد. هل تود تنظيفه قبل الشروع في عملية اللصق؟", +NotCompatiblePaste : "هذه الميزة تحتاج لمتصفح من النوعInternet Explorer إصدار 5.5 فما فوق. هل تود اللصق دون تنظيف الكود؟", +UnknownToolbarItem : "عنصر شريط أدوات غير معروف \"%1\"", +UnknownCommand : "أمر غير معروف \"%1\"", +NotImplemented : "لم يتم دعم هذا الأمر", +UnknownToolbarSet : "لم أتمكن من العثور على طقم الأدوات \"%1\" ", +NoActiveX : "لتأمين متصفحك يجب أن تحدد بعض مميزات المحرر. يتوجب عليك تمكين الخيار \"Run ActiveX controls and plug-ins\". قد تواجة أخطاء وتلاحظ مميزات مفقودة", +BrowseServerBlocked : "لايمكن فتح مصدر المتصفح. فضلا يجب التأكد بأن جميع موانع النوافذ المنبثقة معطلة", +DialogBlocked : "لايمكن فتح نافذة الحوار . فضلا تأكد من أن مانع النوافذ المنبثة معطل .", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "موافق", +DlgBtnCancel : "إلغاء الأمر", +DlgBtnClose : "إغلاق", +DlgBtnBrowseServer : "تصفح الخادم", +DlgAdvancedTag : "متقدم", +DlgOpOther : "<أخرى>", +DlgInfoTab : "معلومات", +DlgAlertUrl : "الرجاء كتابة عنوان الإنترنت", + +// General Dialogs Labels +DlgGenNotSet : "<بدون تحديد>", +DlgGenId : "الرقم", +DlgGenLangDir : "إتجاه النص", +DlgGenLangDirLtr : "اليسار لليمين (LTR)", +DlgGenLangDirRtl : "اليمين لليسار (RTL)", +DlgGenLangCode : "رمز اللغة", +DlgGenAccessKey : "مفاتيح الإختصار", +DlgGenName : "الاسم", +DlgGenTabIndex : "الترتيب", +DlgGenLongDescr : "عنوان الوصف المفصّل", +DlgGenClass : "فئات التنسيق", +DlgGenTitle : "تلميح الشاشة", +DlgGenContType : "نوع التلميح", +DlgGenLinkCharset : "ترميز المادة المطلوبة", +DlgGenStyle : "نمط", + +// Image Dialog +DlgImgTitle : "خصائص الصورة", +DlgImgInfoTab : "معلومات الصورة", +DlgImgBtnUpload : "أرسلها للخادم", +DlgImgURL : "موقع الصورة", +DlgImgUpload : "رفع", +DlgImgAlt : "الوصف", +DlgImgWidth : "العرض", +DlgImgHeight : "الإرتفاع", +DlgImgLockRatio : "تناسق الحجم", +DlgBtnResetSize : "إستعادة الحجم الأصلي", +DlgImgBorder : "سمك الحدود", +DlgImgHSpace : "تباعد أفقي", +DlgImgVSpace : "تباعد عمودي", +DlgImgAlign : "محاذاة", +DlgImgAlignLeft : "يسار", +DlgImgAlignAbsBottom: "أسفل النص", +DlgImgAlignAbsMiddle: "وسط السطر", +DlgImgAlignBaseline : "على السطر", +DlgImgAlignBottom : "أسفل", +DlgImgAlignMiddle : "وسط", +DlgImgAlignRight : "يمين", +DlgImgAlignTextTop : "أعلى النص", +DlgImgAlignTop : "أعلى", +DlgImgPreview : "معاينة", +DlgImgAlertUrl : "فضلاً أكتب الموقع الذي توجد عليه هذه الصورة.", +DlgImgLinkTab : "الرابط", + +// Flash Dialog +DlgFlashTitle : "خصائص فيلم الفلاش", +DlgFlashChkPlay : "تشغيل تلقائي", +DlgFlashChkLoop : "تكرار", +DlgFlashChkMenu : "تمكين قائمة فيلم الفلاش", +DlgFlashScale : "الحجم", +DlgFlashScaleAll : "إظهار الكل", +DlgFlashScaleNoBorder : "بلا حدود", +DlgFlashScaleFit : "ضبط تام", + +// Link Dialog +DlgLnkWindowTitle : "إرتباط تشعبي", +DlgLnkInfoTab : "معلومات الرابط", +DlgLnkTargetTab : "الهدف", + +DlgLnkType : "نوع الربط", +DlgLnkTypeURL : "العنوان", +DlgLnkTypeAnchor : "مكان في هذا المستند", +DlgLnkTypeEMail : "بريد إلكتروني", +DlgLnkProto : "البروتوكول", +DlgLnkProtoOther : "<أخرى>", +DlgLnkURL : "الموقع", +DlgLnkAnchorSel : "اختر علامة مرجعية", +DlgLnkAnchorByName : "حسب اسم العلامة", +DlgLnkAnchorById : "حسب تعريف العنصر", +DlgLnkNoAnchors : "(لا يوجد علامات مرجعية في هذا المستند)", +DlgLnkEMail : "عنوان بريد إلكتروني", +DlgLnkEMailSubject : "موضوع الرسالة", +DlgLnkEMailBody : "محتوى الرسالة", +DlgLnkUpload : "رفع", +DlgLnkBtnUpload : "أرسلها للخادم", + +DlgLnkTarget : "الهدف", +DlgLnkTargetFrame : "<إطار>", +DlgLnkTargetPopup : "<نافذة منبثقة>", +DlgLnkTargetBlank : "إطار جديد (_blank)", +DlgLnkTargetParent : "الإطار الأصل (_parent)", +DlgLnkTargetSelf : "نفس الإطار (_self)", +DlgLnkTargetTop : "صفحة كاملة (_top)", +DlgLnkTargetFrameName : "اسم الإطار الهدف", +DlgLnkPopWinName : "تسمية النافذة المنبثقة", +DlgLnkPopWinFeat : "خصائص النافذة المنبثقة", +DlgLnkPopResize : "قابلة للتحجيم", +DlgLnkPopLocation : "شريط العنوان", +DlgLnkPopMenu : "القوائم الرئيسية", +DlgLnkPopScroll : "أشرطة التمرير", +DlgLnkPopStatus : "شريط الحالة السفلي", +DlgLnkPopToolbar : "شريط الأدوات", +DlgLnkPopFullScrn : "ملئ الشاشة (IE)", +DlgLnkPopDependent : "تابع (Netscape)", +DlgLnkPopWidth : "العرض", +DlgLnkPopHeight : "الإرتفاع", +DlgLnkPopLeft : "التمركز لليسار", +DlgLnkPopTop : "التمركز للأعلى", + +DlnLnkMsgNoUrl : "فضلاً أدخل عنوان الموقع الذي يشير إليه الرابط", +DlnLnkMsgNoEMail : "فضلاً أدخل عنوان البريد الإلكتروني", +DlnLnkMsgNoAnchor : "فضلاً حدد العلامة المرجعية المرغوبة", +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 and Replace Dialog +DlgFindAndReplaceTitle : "بحث واستبدال", + +// Find Dialog +DlgFindTitle : "بحث", +DlgFindFindBtn : "ابحث", +DlgFindNotFoundMsg : "لم يتم العثور على النص المحدد.", + +// Replace Dialog +DlgReplaceTitle : "إستبدال", +DlgReplaceFindLbl : "البحث عن:", +DlgReplaceReplaceLbl : "إستبدال بـ:", +DlgReplaceCaseChk : "مطابقة حالة الأحرف", +DlgReplaceReplaceBtn : "إستبدال", +DlgReplaceReplAllBtn : "إستبدال الكل", +DlgReplaceWordChk : "الكلمة بالكامل فقط", + +// Paste Operations / Dialog +PasteErrorCut : "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع القص التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl+X).", +PasteErrorCopy : "الإعدادات الأمنية للمتصفح الذي تستخدمه تمنع النسخ التلقائي. فضلاً إستخدم لوحة المفاتيح لفعل ذلك (Ctrl+C).", + +PasteAsText : "لصق كنص بسيط", +PasteFromWord : "لصق من وورد", + +DlgPasteMsg2 : "الصق داخل الصندوق بإستخدام زرّي (Ctrl+V) في لوحة المفاتيح، ثم اضغط زر موافق.", +DlgPasteSec : "نظراً لإعدادات الأمان الخاصة بمتصفحك، لن يتمكن هذا المحرر من الوصول لمحتوى حافظتك، لذا وجب عليك لصق المحتوى مرة أخرى في هذه النافذة.", +DlgPasteIgnoreFont : "تجاهل تعريفات أسماء الخطوط", +DlgPasteRemoveStyles : "إزالة تعريفات الأنماط", + +// Color Picker +ColorAutomatic : "تلقائي", +ColorMoreColors : "ألوان إضافية...", + +// Document Properties +DocProps : "خصائص الصفحة", + +// Anchor Dialog +DlgAnchorTitle : "خصائص إشارة مرجعية", +DlgAnchorName : "اسم الإشارة المرجعية", +DlgAnchorErrorName : "الرجاء كتابة اسم الإشارة المرجعية", + +// Speller Pages Dialog +DlgSpellNotInDic : "ليست في القاموس", +DlgSpellChangeTo : "التغيير إلى", +DlgSpellBtnIgnore : "تجاهل", +DlgSpellBtnIgnoreAll : "تجاهل الكل", +DlgSpellBtnReplace : "تغيير", +DlgSpellBtnReplaceAll : "تغيير الكل", +DlgSpellBtnUndo : "تراجع", +DlgSpellNoSuggestions : "- لا توجد إقتراحات -", +DlgSpellProgress : "جاري التدقيق إملائياً", +DlgSpellNoMispell : "تم إكمال التدقيق الإملائي: لم يتم العثور على أي أخطاء إملائية", +DlgSpellNoChanges : "تم إكمال التدقيق الإملائي: لم يتم تغيير أي كلمة", +DlgSpellOneChange : "تم إكمال التدقيق الإملائي: تم تغيير كلمة واحدة فقط", +DlgSpellManyChanges : "تم إكمال التدقيق الإملائي: تم تغيير %1 كلمات\كلمة", + +IeSpellDownload : "المدقق الإملائي (الإنجليزي) غير مثبّت. هل تود تحميله الآن؟", + +// Button Dialog +DlgButtonText : "القيمة/التسمية", +DlgButtonType : "نوع الزر", +DlgButtonTypeBtn : "زر", +DlgButtonTypeSbm : "إرسال", +DlgButtonTypeRst : "إعادة تعيين", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "الاسم", +DlgCheckboxValue : "القيمة", +DlgCheckboxSelected : "محدد", + +// Form Dialog +DlgFormName : "الاسم", +DlgFormAction : "اسم الملف", +DlgFormMethod : "الأسلوب", + +// Select Field Dialog +DlgSelectName : "الاسم", +DlgSelectValue : "القيمة", +DlgSelectSize : "الحجم", +DlgSelectLines : "الأسطر", +DlgSelectChkMulti : "السماح بتحديدات متعددة", +DlgSelectOpAvail : "الخيارات المتاحة", +DlgSelectOpText : "النص", +DlgSelectOpValue : "القيمة", +DlgSelectBtnAdd : "إضافة", +DlgSelectBtnModify : "تعديل", +DlgSelectBtnUp : "تحريك لأعلى", +DlgSelectBtnDown : "تحريك لأسفل", +DlgSelectBtnSetValue : "إجعلها محددة", +DlgSelectBtnDelete : "إزالة", + +// Textarea Dialog +DlgTextareaName : "الاسم", +DlgTextareaCols : "الأعمدة", +DlgTextareaRows : "الصفوف", + +// Text Field Dialog +DlgTextName : "الاسم", +DlgTextValue : "القيمة", +DlgTextCharWidth : "العرض بالأحرف", +DlgTextMaxChars : "عدد الحروف الأقصى", +DlgTextType : "نوع المحتوى", +DlgTextTypeText : "نص", +DlgTextTypePass : "كلمة مرور", + +// Hidden Field Dialog +DlgHiddenName : "الاسم", +DlgHiddenValue : "القيمة", + +// Bulleted List Dialog +BulletedListProp : "خصائص التعداد النقطي", +NumberedListProp : "خصائص التعداد الرقمي", +DlgLstStart : "البدء عند", +DlgLstType : "النوع", +DlgLstTypeCircle : "دائرة", +DlgLstTypeDisc : "قرص", +DlgLstTypeSquare : "مربع", +DlgLstTypeNumbers : "أرقام (1، 2، 3)َ", +DlgLstTypeLCase : "حروف صغيرة (a, b, c)َ", +DlgLstTypeUCase : "حروف كبيرة (A, B, C)َ", +DlgLstTypeSRoman : "ترقيم روماني صغير (i, ii, iii)َ", +DlgLstTypeLRoman : "ترقيم روماني كبير (I, II, III)َ", + +// Document Properties Dialog +DlgDocGeneralTab : "عام", +DlgDocBackTab : "الخلفية", +DlgDocColorsTab : "الألوان والهوامش", +DlgDocMetaTab : "المعرّفات الرأسية", + +DlgDocPageTitle : "عنوان الصفحة", +DlgDocLangDir : "إتجاه اللغة", +DlgDocLangDirLTR : "اليسار لليمين (LTR)", +DlgDocLangDirRTL : "اليمين لليسار (RTL)", +DlgDocLangCode : "رمز اللغة", +DlgDocCharSet : "ترميز الحروف", +DlgDocCharSetCE : "أوروبا الوسطى", +DlgDocCharSetCT : "الصينية التقليدية (Big5)", +DlgDocCharSetCR : "السيريلية", +DlgDocCharSetGR : "اليونانية", +DlgDocCharSetJP : "اليابانية", +DlgDocCharSetKR : "الكورية", +DlgDocCharSetTR : "التركية", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "أوروبا الغربية", +DlgDocCharSetOther : "ترميز آخر", + +DlgDocDocType : "ترويسة نوع الصفحة", +DlgDocDocTypeOther : "ترويسة نوع صفحة أخرى", +DlgDocIncXHTML : "تضمين إعلانات‏ لغة XHTMLَ", +DlgDocBgColor : "لون الخلفية", +DlgDocBgImage : "رابط الصورة الخلفية", +DlgDocBgNoScroll : "جعلها علامة مائية", +DlgDocCText : "النص", +DlgDocCLink : "الروابط", +DlgDocCVisited : "المزارة", +DlgDocCActive : "النشطة", +DlgDocMargins : "هوامش الصفحة", +DlgDocMaTop : "علوي", +DlgDocMaLeft : "أيسر", +DlgDocMaRight : "أيمن", +DlgDocMaBottom : "سفلي", +DlgDocMeIndex : "الكلمات الأساسية (مفصولة بفواصل)َ", +DlgDocMeDescr : "وصف الصفحة", +DlgDocMeAuthor : "الكاتب", +DlgDocMeCopy : "المالك", +DlgDocPreview : "معاينة", + +// Templates Dialog +Templates : "القوالب", +DlgTemplatesTitle : "قوالب المحتوى", +DlgTemplatesSelMsg : "اختر القالب الذي تود وضعه في المحرر
      (سيتم فقدان المحتوى الحالي):", +DlgTemplatesLoading : "جاري تحميل قائمة القوالب، الرجاء الإنتظار...", +DlgTemplatesNoTpl : "(لم يتم تعريف أي قالب)", +DlgTemplatesReplace : "استبدال المحتوى", + +// About Dialog +DlgAboutAboutTab : "نبذة", +DlgAboutBrowserInfoTab : "معلومات متصفحك", +DlgAboutLicenseTab : "الترخيص", +DlgAboutVersion : "الإصدار", +DlgAboutInfo : "لمزيد من المعلومات تفضل بزيارة", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/bg.js b/fckeditor/editor/lang/bg.js new file mode 100644 index 0000000..6c6f8b1 --- /dev/null +++ b/fckeditor/editor/lang/bg.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Bulgarian 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 : "Вмъкни от MS Word", +Print : "Печат", +SelectAll : "Селектирай всичко", +RemoveFormat : "Изтрий форматирането", +InsertLinkLbl : "Връзка", +InsertLink : "Добави/Редактирай връзка", +RemoveLink : "Изтрий връзка", +VisitLink : "Open Link", //MISSING +Anchor : "Добави/Редактирай котва", +AnchorDelete : "Remove Anchor", //MISSING +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 : "Увеличи отстъпа", +Blockquote : "Blockquote", //MISSING +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "Отмени", +Redo : "Повтори", +NumberedListLbl : "Нумериран списък", +NumberedList : "Добави/Изтрий нумериран списък", +BulletedListLbl : "Ненумериран списък", +BulletedList : "Добави/Изтрий ненумериран списък", +ShowTableBorders : "Покажи рамките на таблицата", +ShowDetails : "Покажи подробности", +Style : "Стил", +FontFormat : "Формат", +Font : "Шрифт", +FontSize : "Размер", +TextColor : "Цвят на текста", +BGColor : "Цвят на фона", +Source : "Код", +Find : "Търси", +Replace : "Замести", +SpellCheck : "Провери правописа", +UniversalKeyboard : "Универсална клавиатура", +PageBreakLbl : "Нов ред", +PageBreak : "Вмъкни нов ред", + +Form : "Формуляр", +Checkbox : "Поле за отметка", +RadioButton : "Поле за опция", +TextField : "Текстово поле", +Textarea : "Текстова област", +HiddenField : "Скрито поле", +Button : "Бутон", +SelectionField : "Падащо меню с опции", +ImageButton : "Бутон-изображение", + +FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING + +// Context Menu +EditLink : "Редактирай връзка", +CellCM : "Cell", //MISSING +RowCM : "Row", //MISSING +ColumnCM : "Column", //MISSING +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING +DeleteRows : "Изтрий редовете", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING +DeleteColumns : "Изтрий колоните", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING +DeleteCells : "Изтрий клетките", +MergeCells : "Обедини клетките", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING +TableDelete : "Изтрий таблицата", +CellProperties : "Параметри на клетката", +TableProperties : "Параметри на таблицата", +ImageProperties : "Параметри на изображението", +FlashProperties : "Параметри на Flash обекта", + +AnchorProp : "Параметри на котвата", +ButtonProp : "Параметри на бутона", +CheckboxProp : "Параметри на полето за отметка", +HiddenFieldProp : "Параметри на скритото поле", +RadioButtonProp : "Параметри на полето за опция", +ImageButtonProp : "Параметри на бутона-изображение", +TextFieldProp : "Параметри на текстовото-поле", +SelectionFieldProp : "Параметри на падащото меню с опции", +TextareaProp : "Параметри на текстовата област", +FormProp : "Параметри на формуляра", + +FontFormats : "Нормален;Форматиран;Адрес;Заглавие 1;Заглавие 2;Заглавие 3;Заглавие 4;Заглавие 5;Заглавие 6;Параграф (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Обработка на XHTML. Моля изчакайте...", +Done : "Готово", +PasteWordConfirm : "Текстът, който искате да вмъкнете е копиран от MS Word. Желаете ли да бъде изчистен преди вмъкването?", +NotCompatiblePaste : "Тази операция изисква MS Internet Explorer версия 5.5 или по-висока. Желаете ли да вмъкнете запаметеното без изчистване?", +UnknownToolbarItem : "Непознат инструмент \"%1\"", +UnknownCommand : "Непозната команда \"%1\"", +NotImplemented : "Командата не е имплементирана", +UnknownToolbarSet : "Панелът \"%1\" не съществува", +NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING +BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.", //MISSING +DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.", //MISSING +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "ОК", +DlgBtnCancel : "Отказ", +DlgBtnClose : "Затвори", +DlgBtnBrowseServer : "Разгледай сървъра", +DlgAdvancedTag : "Подробности...", +DlgOpOther : "<Друго>", +DlgInfoTab : "Информация", +DlgAlertUrl : "Моля, въведете пълния път (URL)", + +// General Dialogs Labels +DlgGenNotSet : "<не е настроен>", +DlgGenId : "Идентификатор", +DlgGenLangDir : "посока на речта", +DlgGenLangDirLtr : "От ляво на дясно", +DlgGenLangDirRtl : "От дясно на ляво", +DlgGenLangCode : "Код на езика", +DlgGenAccessKey : "Бърз клавиш", +DlgGenName : "Име", +DlgGenTabIndex : "Ред на достъп", +DlgGenLongDescr : "Описание на връзката", +DlgGenClass : "Клас от стиловите таблици", +DlgGenTitle : "Препоръчително заглавие", +DlgGenContType : "Препоръчителен тип на съдържанието", +DlgGenLinkCharset : "Тип на свързания ресурс", +DlgGenStyle : "Стил", + +// Image Dialog +DlgImgTitle : "Параметри на изображението", +DlgImgInfoTab : "Информация за изображението", +DlgImgBtnUpload : "Прати към сървъра", +DlgImgURL : "Пълен път (URL)", +DlgImgUpload : "Качи", +DlgImgAlt : "Алтернативен текст", +DlgImgWidth : "Ширина", +DlgImgHeight : "Височина", +DlgImgLockRatio : "Запази пропорцията", +DlgBtnResetSize : "Възстанови размера", +DlgImgBorder : "Рамка", +DlgImgHSpace : "Хоризонтален отстъп", +DlgImgVSpace : "Вертикален отстъп", +DlgImgAlign : "Подравняване", +DlgImgAlignLeft : "Ляво", +DlgImgAlignAbsBottom: "Най-долу", +DlgImgAlignAbsMiddle: "Точно по средата", +DlgImgAlignBaseline : "По базовата линия", +DlgImgAlignBottom : "Долу", +DlgImgAlignMiddle : "По средата", +DlgImgAlignRight : "Дясно", +DlgImgAlignTextTop : "Върху текста", +DlgImgAlignTop : "Отгоре", +DlgImgPreview : "Изглед", +DlgImgAlertUrl : "Моля, въведете пълния път до изображението", +DlgImgLinkTab : "Връзка", + +// Flash Dialog +DlgFlashTitle : "Параметри на Flash обекта", +DlgFlashChkPlay : "Автоматично стартиране", +DlgFlashChkLoop : "Ново стартиране след завършването", +DlgFlashChkMenu : "Разрешено Flash меню", +DlgFlashScale : "Оразмеряване", +DlgFlashScaleAll : "Покажи целия обект", +DlgFlashScaleNoBorder : "Без рамка", +DlgFlashScaleFit : "Според мястото", + +// Link Dialog +DlgLnkWindowTitle : "Връзка", +DlgLnkInfoTab : "Информация за връзката", +DlgLnkTargetTab : "Цел", + +DlgLnkType : "Вид на връзката", +DlgLnkTypeURL : "Пълен път (URL)", +DlgLnkTypeAnchor : "Котва в текущата страница", +DlgLnkTypeEMail : "Е-поща", +DlgLnkProto : "Протокол", +DlgLnkProtoOther : "<друго>", +DlgLnkURL : "Пълен път (URL)", +DlgLnkAnchorSel : "Изберете котва", +DlgLnkAnchorByName : "По име на котвата", +DlgLnkAnchorById : "По идентификатор на елемент", +DlgLnkNoAnchors : "(Няма котви в текущия документ)", +DlgLnkEMail : "Адрес за е-поща", +DlgLnkEMailSubject : "Тема на писмото", +DlgLnkEMailBody : "Текст на писмото", +DlgLnkUpload : "Качи", +DlgLnkBtnUpload : "Прати на сървъра", + +DlgLnkTarget : "Цел", +DlgLnkTargetFrame : "<рамка>", +DlgLnkTargetPopup : "<дъщерен прозорец>", +DlgLnkTargetBlank : "Нов прозорец (_blank)", +DlgLnkTargetParent : "Родителски прозорец (_parent)", +DlgLnkTargetSelf : "Активния прозорец (_self)", +DlgLnkTargetTop : "Целия прозорец (_top)", +DlgLnkTargetFrameName : "Име на целевия прозорец", +DlgLnkPopWinName : "Име на дъщерния прозорец", +DlgLnkPopWinFeat : "Параметри на дъщерния прозорец", +DlgLnkPopResize : "С променливи размери", +DlgLnkPopLocation : "Поле за адрес", +DlgLnkPopMenu : "Меню", +DlgLnkPopScroll : "Плъзгач", +DlgLnkPopStatus : "Поле за статус", +DlgLnkPopToolbar : "Панел с бутони", +DlgLnkPopFullScrn : "Голям екран (MS IE)", +DlgLnkPopDependent : "Зависим (Netscape)", +DlgLnkPopWidth : "Ширина", +DlgLnkPopHeight : "Височина", +DlgLnkPopLeft : "Координати - X", +DlgLnkPopTop : "Координати - Y", + +DlnLnkMsgNoUrl : "Моля, напишете пълния път (URL)", +DlnLnkMsgNoEMail : "Моля, напишете адреса за е-поща", +DlnLnkMsgNoAnchor : "Моля, изберете котва", +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 and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + +// 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 : "Вмъкни от MS Word", + +DlgPasteMsg2 : "Вмъкнете тук съдъжанието с клавиатуарата (Ctrl+V) и натиснете OK.", +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 : "Изтрий стиловите дефиниции", + +// 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 : "От ляво на дясно", +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 : "Тип на документа", +DlgDocDocTypeOther : "Друг тип на документа", +DlgDocIncXHTML : "Включи XHTML декларация", +DlgDocBgColor : "Цвят на фона", +DlgDocBgImage : "Пълен път до фоновото изображение", +DlgDocBgNoScroll : "Не-повтарящо се фоново изображение", +DlgDocCText : "Текст", +DlgDocCLink : "Връзка", +DlgDocCVisited : "Посетена връзка", +DlgDocCActive : "Активна връзка", +DlgDocMargins : "Отстъпи на страницата", +DlgDocMaTop : "Горе", +DlgDocMaLeft : "Ляво", +DlgDocMaRight : "Дясно", +DlgDocMaBottom : "Долу", +DlgDocMeIndex : "Ключови думи за документа (разделени със запетаи)", +DlgDocMeDescr : "Описание на документа", +DlgDocMeAuthor : "Автор", +DlgDocMeCopy : "Авторски права", +DlgDocPreview : "Изглед", + +// Templates Dialog +Templates : "Шаблони", +DlgTemplatesTitle : "Шаблони", +DlgTemplatesSelMsg : "Изберете шаблон
      (текущото съдържание на редактора ще бъде загубено):", +DlgTemplatesLoading : "Зареждане на списъка с шаблоните. Моля изчакайте...", +DlgTemplatesNoTpl : "(Няма дефинирани шаблони)", +DlgTemplatesReplace : "Replace actual contents", //MISSING + +// About Dialog +DlgAboutAboutTab : "За", +DlgAboutBrowserInfoTab : "Информация за браузъра", +DlgAboutLicenseTab : "License", //MISSING +DlgAboutVersion : "версия", +DlgAboutInfo : "За повече информация посетете", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/bn.js b/fckeditor/editor/lang/bn.js new file mode 100644 index 0000000..173182e --- /dev/null +++ b/fckeditor/editor/lang/bn.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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 : "লিংক সরাও", +VisitLink : "Open Link", //MISSING +Anchor : "নোঙ্গর", +AnchorDelete : "Remove Anchor", //MISSING +InsertImageLbl : "ছবির লেবেল যুক্ত কর", +InsertImage : "ছবি যুক্ত কর", +InsertFlashLbl : "ফ্লাশ লেবেল যুক্ত কর", +InsertFlash : "ফ্লাশ যুক্ত কর", +InsertTableLbl : "টেবিলের লেবেল যুক্ত কর", +InsertTable : "টেবিল যুক্ত কর", +InsertLineLbl : "রেখা যুক্ত কর", +InsertLine : "রেখা যুক্ত কর", +InsertSpecialCharLbl: "বিশেষ অক্ষরের লেবেল যুক্ত কর", +InsertSpecialChar : "বিশেষ অক্ষর যুক্ত কর", +InsertSmileyLbl : "স্মাইলী", +InsertSmiley : "স্মাইলী যুক্ত কর", +About : "FCKeditor কে বানিয়েছে", +Bold : "বোল্ড", +Italic : "ইটালিক", +Underline : "আন্ডারলাইন", +StrikeThrough : "স্ট্রাইক থ্রু", +Subscript : "অধোলেখ", +Superscript : "অভিলেখ", +LeftJustify : "বা দিকে ঘেঁষা", +CenterJustify : "মাঝ বরাবর ঘেষা", +RightJustify : "ডান দিকে ঘেঁষা", +BlockJustify : "ব্লক জাস্টিফাই", +DecreaseIndent : "ইনডেন্ট কমাও", +IncreaseIndent : "ইনডেন্ট বাড়াও", +Blockquote : "Blockquote", //MISSING +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "আনডু", +Redo : "রি-ডু", +NumberedListLbl : "সাংখ্যিক লিস্টের লেবেল", +NumberedList : "সাংখ্যিক লিস্ট", +BulletedListLbl : "বুলেট লিস্ট লেবেল", +BulletedList : "বুলেটেড লিস্ট", +ShowTableBorders : "টেবিল বর্ডার", +ShowDetails : "সবটুকু দেখাও", +Style : "স্টাইল", +FontFormat : "ফন্ট ফরমেট", +Font : "ফন্ট", +FontSize : "সাইজ", +TextColor : "টেক্স্ট রং", +BGColor : "বেকগ্রাউন্ড রং", +Source : "সোর্স", +Find : "খোজো", +Replace : "রিপ্লেস", +SpellCheck : "বানান চেক", +UniversalKeyboard : "সার্বজনীন কিবোর্ড", +PageBreakLbl : "পেজ ব্রেক লেবেল", +PageBreak : "পেজ ব্রেক", + +Form : "ফর্ম", +Checkbox : "চেক বাক্স", +RadioButton : "রেডিও বাটন", +TextField : "টেক্সট ফীল্ড", +Textarea : "টেক্সট এরিয়া", +HiddenField : "গুপ্ত ফীল্ড", +Button : "বাটন", +SelectionField : "বাছাই ফীল্ড", +ImageButton : "ছবির বাটন", + +FitWindow : "উইন্ডো ফিট কর", +ShowBlocks : "Show Blocks", //MISSING + +// Context Menu +EditLink : "লিংক সম্পাদন", +CellCM : "সেল", +RowCM : "রো", +ColumnCM : "কলাম", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING +DeleteRows : "রো মুছে দাও", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING +DeleteColumns : "কলাম মুছে দাও", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING +DeleteCells : "সেল মুছে দাও", +MergeCells : "সেল জোড়া দাও", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING +TableDelete : "টেবিল ডিলীট কর", +CellProperties : "সেলের প্রোপার্টিজ", +TableProperties : "টেবিল প্রোপার্টি", +ImageProperties : "ছবি প্রোপার্টি", +FlashProperties : "ফ্লাশ প্রোপার্টি", + +AnchorProp : "নোঙর প্রোপার্টি", +ButtonProp : "বাটন প্রোপার্টি", +CheckboxProp : "চেক বক্স প্রোপার্টি", +HiddenFieldProp : "গুপ্ত ফীল্ড প্রোপার্টি", +RadioButtonProp : "রেডিও বাটন প্রোপার্টি", +ImageButtonProp : "ছবি বাটন প্রোপার্টি", +TextFieldProp : "টেক্সট ফীল্ড প্রোপার্টি", +SelectionFieldProp : "বাছাই ফীল্ড প্রোপার্টি", +TextareaProp : "টেক্সট এরিয়া প্রোপার্টি", +FormProp : "ফর্ম প্রোপার্টি", + +FontFormats : "সাধারণ;ফর্মেটেড;ঠিকানা;শীর্ষক ১;শীর্ষক ২;শীর্ষক ৩;শীর্ষক ৪;শীর্ষক ৫;শীর্ষক ৬;শীর্ষক (DIV)", + +// Alerts and Messages +ProcessingXHTML : "XHTML প্রসেস করা হচ্ছে", +Done : "শেষ হয়েছে", +PasteWordConfirm : "যে টেকস্টটি আপনি পেস্ট করতে চাচ্ছেন মনে হচ্ছে সেটি ওয়ার্ড থেকে কপি করা। আপনি কি পেস্ট করার আগে একে পরিষ্কার করতে চান?", +NotCompatiblePaste : "এই কমান্ডটি শুধুমাত্র ইন্টারনেট এক্সপ্লোরার ৫.০ বা তার পরের ভার্সনে পাওয়া সম্ভব। আপনি কি পরিষ্কার না করেই পেস্ট করতে চান?", +UnknownToolbarItem : "অজানা টুলবার আইটেম \"%1\"", +UnknownCommand : "অজানা কমান্ড \"%1\"", +NotImplemented : "কমান্ড ইমপ্লিমেন্ট করা হয়নি", +UnknownToolbarSet : "টুলবার সেট \"%1\" এর অস্তিত্ব নেই", +NoActiveX : "আপনার ব্রাউজারের সুরক্ষা সেটিংস কারনে এডিটরের কিছু ফিচার পাওয়া নাও যেতে পারে। আপনাকে অবশ্যই \"Run ActiveX controls and plug-ins\" এনাবেল করে নিতে হবে। আপনি ভুলভ্রান্তি কিছু কিছু ফিচারের অনুপস্থিতি উপলব্ধি করতে পারেন।", +BrowseServerBlocked : "রিসোর্স ব্রাউজার খোলা গেল না। নিশ্চিত করুন যে সব পপআপ ব্লকার বন্ধ করা আছে।", +DialogBlocked : "ডায়ালগ ইউন্ডো খোলা গেল না। নিশ্চিত করুন যে সব পপআপ ব্লকার বন্ধ করা আছে।", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "ওকে", +DlgBtnCancel : "বাতিল", +DlgBtnClose : "বন্ধ কর", +DlgBtnBrowseServer : "ব্রাউজ সার্ভার", +DlgAdvancedTag : "এডভান্সড", +DlgOpOther : "<অন্য>", +DlgInfoTab : "তথ্য", +DlgAlertUrl : "দয়া করে URL যুক্ত করুন", + +// General Dialogs Labels +DlgGenNotSet : "<সেট নেই>", +DlgGenId : "আইডি", +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 : "(No anchors available in the document)", //MISSING +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 and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + +// 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) পেস্ট করুন এবং OK চাপ দিন", +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 : "স্টাইল ডেফিনেশন সরিয়ে দিন", + +// 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 : "অনুগ্রহ করে এডিটরে ওপেন করার জন্য টেমপ্লেট বাছাই করুন
      (আসল কনটেন্ট হারিয়ে যাবে):", +DlgTemplatesLoading : "টেমপ্লেট লিস্ট হারিয়ে যাবে। অনুগ্রহ করে অপেক্ষা করুন...", +DlgTemplatesNoTpl : "(কোন টেমপ্লেট ডিফাইন করা নেই)", +DlgTemplatesReplace : "Replace actual contents", //MISSING + +// About Dialog +DlgAboutAboutTab : "কে বানিয়েছে", +DlgAboutBrowserInfoTab : "ব্রাউজারের ব্যাপারে তথ্য", +DlgAboutLicenseTab : "লাইসেন্স", +DlgAboutVersion : "ভার্সন", +DlgAboutInfo : "আরও তথ্যের জন্য যান", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/bs.js b/fckeditor/editor/lang/bs.js new file mode 100644 index 0000000..662b4b8 --- /dev/null +++ b/fckeditor/editor/lang/bs.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Bosnian language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Skupi trake sa alatima", +ToolbarExpand : "Otvori trake sa alatima", + +// Toolbar Items and Context Menu +Save : "Snimi", +NewPage : "Novi dokument", +Preview : "Prikaži", +Cut : "Izreži", +Copy : "Kopiraj", +Paste : "Zalijepi", +PasteText : "Zalijepi kao obièan tekst", +PasteWord : "Zalijepi iz Word-a", +Print : "Štampaj", +SelectAll : "Selektuj sve", +RemoveFormat : "Poništi format", +InsertLinkLbl : "Link", +InsertLink : "Ubaci/Izmjeni link", +RemoveLink : "Izbriši link", +VisitLink : "Open Link", //MISSING +Anchor : "Insert/Edit Anchor", //MISSING +AnchorDelete : "Remove Anchor", //MISSING +InsertImageLbl : "Slika", +InsertImage : "Ubaci/Izmjeni sliku", +InsertFlashLbl : "Flash", //MISSING +InsertFlash : "Insert/Edit Flash", //MISSING +InsertTableLbl : "Tabela", +InsertTable : "Ubaci/Izmjeni tabelu", +InsertLineLbl : "Linija", +InsertLine : "Ubaci horizontalnu liniju", +InsertSpecialCharLbl: "Specijalni karakter", +InsertSpecialChar : "Ubaci specijalni karater", +InsertSmileyLbl : "Smješko", +InsertSmiley : "Ubaci smješka", +About : "O FCKeditor-u", +Bold : "Boldiraj", +Italic : "Ukosi", +Underline : "Podvuci", +StrikeThrough : "Precrtaj", +Subscript : "Subscript", +Superscript : "Superscript", +LeftJustify : "Lijevo poravnanje", +CenterJustify : "Centralno poravnanje", +RightJustify : "Desno poravnanje", +BlockJustify : "Puno poravnanje", +DecreaseIndent : "Smanji uvod", +IncreaseIndent : "Poveæaj uvod", +Blockquote : "Blockquote", //MISSING +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "Vrati", +Redo : "Ponovi", +NumberedListLbl : "Numerisana lista", +NumberedList : "Ubaci/Izmjeni numerisanu listu", +BulletedListLbl : "Lista", +BulletedList : "Ubaci/Izmjeni listu", +ShowTableBorders : "Pokaži okvire tabela", +ShowDetails : "Pokaži detalje", +Style : "Stil", +FontFormat : "Format", +Font : "Font", +FontSize : "Velièina", +TextColor : "Boja teksta", +BGColor : "Boja pozadine", +Source : "HTML kôd", +Find : "Naði", +Replace : "Zamjeni", +SpellCheck : "Check Spelling", //MISSING +UniversalKeyboard : "Universal Keyboard", //MISSING +PageBreakLbl : "Page Break", //MISSING +PageBreak : "Insert Page Break", //MISSING + +Form : "Form", //MISSING +Checkbox : "Checkbox", //MISSING +RadioButton : "Radio Button", //MISSING +TextField : "Text Field", //MISSING +Textarea : "Textarea", //MISSING +HiddenField : "Hidden Field", //MISSING +Button : "Button", //MISSING +SelectionField : "Selection Field", //MISSING +ImageButton : "Image Button", //MISSING + +FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING + +// Context Menu +EditLink : "Izmjeni link", +CellCM : "Cell", //MISSING +RowCM : "Row", //MISSING +ColumnCM : "Column", //MISSING +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING +DeleteRows : "Briši redove", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING +DeleteColumns : "Briši kolone", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING +DeleteCells : "Briši æelije", +MergeCells : "Spoji æelije", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING +TableDelete : "Delete Table", //MISSING +CellProperties : "Svojstva æelije", +TableProperties : "Svojstva tabele", +ImageProperties : "Svojstva slike", +FlashProperties : "Flash Properties", //MISSING + +AnchorProp : "Anchor Properties", //MISSING +ButtonProp : "Button Properties", //MISSING +CheckboxProp : "Checkbox Properties", //MISSING +HiddenFieldProp : "Hidden Field Properties", //MISSING +RadioButtonProp : "Radio Button Properties", //MISSING +ImageButtonProp : "Image Button Properties", //MISSING +TextFieldProp : "Text Field Properties", //MISSING +SelectionFieldProp : "Selection Field Properties", //MISSING +TextareaProp : "Textarea Properties", //MISSING +FormProp : "Form Properties", //MISSING + +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6", + +// Alerts and Messages +ProcessingXHTML : "Procesiram XHTML. Molim saèekajte...", +Done : "Gotovo", +PasteWordConfirm : "Tekst koji želite zalijepiti èini se da je kopiran iz Worda. Da li želite da se prvo oèisti?", +NotCompatiblePaste : "Ova komanda je podržana u Internet Explorer-u verzijama 5.5 ili novijim. Da li želite da izvršite lijepljenje teksta bez èišæenja?", +UnknownToolbarItem : "Nepoznata stavka sa trake sa alatima \"%1\"", +UnknownCommand : "Nepoznata komanda \"%1\"", +NotImplemented : "Komanda nije implementirana", +UnknownToolbarSet : "Traka sa alatima \"%1\" ne postoji", +NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING +BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.", //MISSING +DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.", //MISSING +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Odustani", +DlgBtnClose : "Zatvori", +DlgBtnBrowseServer : "Browse Server", //MISSING +DlgAdvancedTag : "Naprednije", +DlgOpOther : "", //MISSING +DlgInfoTab : "Info", //MISSING +DlgAlertUrl : "Please insert the URL", //MISSING + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Smjer pisanja", +DlgGenLangDirLtr : "S lijeva na desno (LTR)", +DlgGenLangDirRtl : "S desna na lijevo (RTL)", +DlgGenLangCode : "Jezièni kôd", +DlgGenAccessKey : "Pristupna tipka", +DlgGenName : "Naziv", +DlgGenTabIndex : "Tab indeks", +DlgGenLongDescr : "Dugaèki opis URL-a", +DlgGenClass : "Klase CSS stilova", +DlgGenTitle : "Advisory title", +DlgGenContType : "Advisory vrsta sadržaja", +DlgGenLinkCharset : "Linked Resource Charset", +DlgGenStyle : "Stil", + +// Image Dialog +DlgImgTitle : "Svojstva slike", +DlgImgInfoTab : "Info slike", +DlgImgBtnUpload : "Šalji na server", +DlgImgURL : "URL", +DlgImgUpload : "Šalji", +DlgImgAlt : "Tekst na slici", +DlgImgWidth : "Širina", +DlgImgHeight : "Visina", +DlgImgLockRatio : "Zakljuèaj odnos", +DlgBtnResetSize : "Resetuj dimenzije", +DlgImgBorder : "Okvir", +DlgImgHSpace : "HSpace", +DlgImgVSpace : "VSpace", +DlgImgAlign : "Poravnanje", +DlgImgAlignLeft : "Lijevo", +DlgImgAlignAbsBottom: "Abs dole", +DlgImgAlignAbsMiddle: "Abs sredina", +DlgImgAlignBaseline : "Bazno", +DlgImgAlignBottom : "Dno", +DlgImgAlignMiddle : "Sredina", +DlgImgAlignRight : "Desno", +DlgImgAlignTextTop : "Vrh teksta", +DlgImgAlignTop : "Vrh", +DlgImgPreview : "Prikaz", +DlgImgAlertUrl : "Molimo ukucajte URL od slike.", +DlgImgLinkTab : "Link", //MISSING + +// Flash Dialog +DlgFlashTitle : "Flash Properties", //MISSING +DlgFlashChkPlay : "Auto Play", //MISSING +DlgFlashChkLoop : "Loop", //MISSING +DlgFlashChkMenu : "Enable Flash Menu", //MISSING +DlgFlashScale : "Scale", //MISSING +DlgFlashScaleAll : "Show all", //MISSING +DlgFlashScaleNoBorder : "No Border", //MISSING +DlgFlashScaleFit : "Exact Fit", //MISSING + +// Link Dialog +DlgLnkWindowTitle : "Link", +DlgLnkInfoTab : "Link info", +DlgLnkTargetTab : "Prozor", + +DlgLnkType : "Tip linka", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Sidro na ovoj stranici", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Protokol", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Izaberi sidro", +DlgLnkAnchorByName : "Po nazivu sidra", +DlgLnkAnchorById : "Po Id-u elementa", +DlgLnkNoAnchors : "(Nema dostupnih sidra na stranici)", +DlgLnkEMail : "E-Mail Adresa", +DlgLnkEMailSubject : "Subjekt poruke", +DlgLnkEMailBody : "Poruka", +DlgLnkUpload : "Šalji", +DlgLnkBtnUpload : "Šalji na server", + +DlgLnkTarget : "Prozor", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Novi prozor (_blank)", +DlgLnkTargetParent : "Glavni prozor (_parent)", +DlgLnkTargetSelf : "Isti prozor (_self)", +DlgLnkTargetTop : "Najgornji prozor (_top)", +DlgLnkTargetFrameName : "Target Frame Name", //MISSING +DlgLnkPopWinName : "Naziv popup prozora", +DlgLnkPopWinFeat : "Moguænosti popup prozora", +DlgLnkPopResize : "Promjenljive velièine", +DlgLnkPopLocation : "Traka za lokaciju", +DlgLnkPopMenu : "Izborna traka", +DlgLnkPopScroll : "Scroll traka", +DlgLnkPopStatus : "Statusna traka", +DlgLnkPopToolbar : "Traka sa alatima", +DlgLnkPopFullScrn : "Cijeli ekran (IE)", +DlgLnkPopDependent : "Ovisno (Netscape)", +DlgLnkPopWidth : "Širina", +DlgLnkPopHeight : "Visina", +DlgLnkPopLeft : "Lijeva pozicija", +DlgLnkPopTop : "Gornja pozicija", + +DlnLnkMsgNoUrl : "Molimo ukucajte URL link", +DlnLnkMsgNoEMail : "Molimo ukucajte e-mail adresu", +DlnLnkMsgNoAnchor : "Molimo izaberite sidro", +DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING + +// Color Dialog +DlgColorTitle : "Izaberi boju", +DlgColorBtnClear : "Oèisti", +DlgColorHighlight : "Igled", +DlgColorSelected : "Selektovana", + +// Smiley Dialog +DlgSmileyTitle : "Ubaci smješka", + +// Special Character Dialog +DlgSpecialCharTitle : "Izaberi specijalni karakter", + +// Table Dialog +DlgTableTitle : "Svojstva tabele", +DlgTableRows : "Redova", +DlgTableColumns : "Kolona", +DlgTableBorder : "Okvir", +DlgTableAlign : "Poravnanje", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Lijevo", +DlgTableAlignCenter : "Centar", +DlgTableAlignRight : "Desno", +DlgTableWidth : "Širina", +DlgTableWidthPx : "piksela", +DlgTableWidthPc : "posto", +DlgTableHeight : "Visina", +DlgTableCellSpace : "Razmak æelija", +DlgTableCellPad : "Uvod æelija", +DlgTableCaption : "Naslov", +DlgTableSummary : "Summary", //MISSING + +// Table Cell Dialog +DlgCellTitle : "Svojstva æelije", +DlgCellWidth : "Širina", +DlgCellWidthPx : "piksela", +DlgCellWidthPc : "posto", +DlgCellHeight : "Visina", +DlgCellWordWrap : "Vrapuj tekst", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Da", +DlgCellWordWrapNo : "Ne", +DlgCellHorAlign : "Horizontalno poravnanje", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Lijevo", +DlgCellHorAlignCenter : "Centar", +DlgCellHorAlignRight: "Desno", +DlgCellVerAlign : "Vertikalno poravnanje", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Gore", +DlgCellVerAlignMiddle : "Sredina", +DlgCellVerAlignBottom : "Dno", +DlgCellVerAlignBaseline : "Bazno", +DlgCellRowSpan : "Spajanje æelija", +DlgCellCollSpan : "Spajanje kolona", +DlgCellBackColor : "Boja pozadine", +DlgCellBorderColor : "Boja okvira", +DlgCellBtnSelect : "Selektuj...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + +// Find Dialog +DlgFindTitle : "Naði", +DlgFindFindBtn : "Naði", +DlgFindNotFoundMsg : "Traženi tekst nije pronaðen.", + +// Replace Dialog +DlgReplaceTitle : "Zamjeni", +DlgReplaceFindLbl : "Naði šta:", +DlgReplaceReplaceLbl : "Zamjeni sa:", +DlgReplaceCaseChk : "Uporeðuj velika/mala slova", +DlgReplaceReplaceBtn : "Zamjeni", +DlgReplaceReplAllBtn : "Zamjeni sve", +DlgReplaceWordChk : "Uporeðuj samo cijelu rijeè", + +// Paste Operations / Dialog +PasteErrorCut : "Sigurnosne postavke vašeg pretraživaèa ne dozvoljavaju operacije automatskog rezanja. Molimo koristite kraticu na tastaturi (Ctrl+X).", +PasteErrorCopy : "Sigurnosne postavke Vašeg pretraživaèa ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tastaturi (Ctrl+C).", + +PasteAsText : "Zalijepi kao obièan tekst", +PasteFromWord : "Zalijepi iz Word-a", + +DlgPasteMsg2 : "Please paste inside the following box using the keyboard (Ctrl+V) and hit OK.", //MISSING +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 + +// Color Picker +ColorAutomatic : "Automatska", +ColorMoreColors : "Više boja...", + +// Document Properties +DocProps : "Document Properties", //MISSING + +// Anchor Dialog +DlgAnchorTitle : "Anchor Properties", //MISSING +DlgAnchorName : "Anchor Name", //MISSING +DlgAnchorErrorName : "Please type the anchor name", //MISSING + +// Speller Pages Dialog +DlgSpellNotInDic : "Not in dictionary", //MISSING +DlgSpellChangeTo : "Change to", //MISSING +DlgSpellBtnIgnore : "Ignore", //MISSING +DlgSpellBtnIgnoreAll : "Ignore All", //MISSING +DlgSpellBtnReplace : "Replace", //MISSING +DlgSpellBtnReplaceAll : "Replace All", //MISSING +DlgSpellBtnUndo : "Undo", //MISSING +DlgSpellNoSuggestions : "- No suggestions -", //MISSING +DlgSpellProgress : "Spell check in progress...", //MISSING +DlgSpellNoMispell : "Spell check complete: No misspellings found", //MISSING +DlgSpellNoChanges : "Spell check complete: No words changed", //MISSING +DlgSpellOneChange : "Spell check complete: One word changed", //MISSING +DlgSpellManyChanges : "Spell check complete: %1 words changed", //MISSING + +IeSpellDownload : "Spell checker not installed. Do you want to download it now?", //MISSING + +// Button Dialog +DlgButtonText : "Text (Value)", //MISSING +DlgButtonType : "Type", //MISSING +DlgButtonTypeBtn : "Button", //MISSING +DlgButtonTypeSbm : "Submit", //MISSING +DlgButtonTypeRst : "Reset", //MISSING + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Name", //MISSING +DlgCheckboxValue : "Value", //MISSING +DlgCheckboxSelected : "Selected", //MISSING + +// Form Dialog +DlgFormName : "Name", //MISSING +DlgFormAction : "Action", //MISSING +DlgFormMethod : "Method", //MISSING + +// Select Field Dialog +DlgSelectName : "Name", //MISSING +DlgSelectValue : "Value", //MISSING +DlgSelectSize : "Size", //MISSING +DlgSelectLines : "lines", //MISSING +DlgSelectChkMulti : "Allow multiple selections", //MISSING +DlgSelectOpAvail : "Available Options", //MISSING +DlgSelectOpText : "Text", //MISSING +DlgSelectOpValue : "Value", //MISSING +DlgSelectBtnAdd : "Add", //MISSING +DlgSelectBtnModify : "Modify", //MISSING +DlgSelectBtnUp : "Up", //MISSING +DlgSelectBtnDown : "Down", //MISSING +DlgSelectBtnSetValue : "Set as selected value", //MISSING +DlgSelectBtnDelete : "Delete", //MISSING + +// Textarea Dialog +DlgTextareaName : "Name", //MISSING +DlgTextareaCols : "Columns", //MISSING +DlgTextareaRows : "Rows", //MISSING + +// Text Field Dialog +DlgTextName : "Name", //MISSING +DlgTextValue : "Value", //MISSING +DlgTextCharWidth : "Character Width", //MISSING +DlgTextMaxChars : "Maximum Characters", //MISSING +DlgTextType : "Type", //MISSING +DlgTextTypeText : "Text", //MISSING +DlgTextTypePass : "Password", //MISSING + +// Hidden Field Dialog +DlgHiddenName : "Name", //MISSING +DlgHiddenValue : "Value", //MISSING + +// Bulleted List Dialog +BulletedListProp : "Bulleted List Properties", //MISSING +NumberedListProp : "Numbered List Properties", //MISSING +DlgLstStart : "Start", //MISSING +DlgLstType : "Type", //MISSING +DlgLstTypeCircle : "Circle", //MISSING +DlgLstTypeDisc : "Disc", //MISSING +DlgLstTypeSquare : "Square", //MISSING +DlgLstTypeNumbers : "Numbers (1, 2, 3)", //MISSING +DlgLstTypeLCase : "Lowercase Letters (a, b, c)", //MISSING +DlgLstTypeUCase : "Uppercase Letters (A, B, C)", //MISSING +DlgLstTypeSRoman : "Small Roman Numerals (i, ii, iii)", //MISSING +DlgLstTypeLRoman : "Large Roman Numerals (I, II, III)", //MISSING + +// Document Properties Dialog +DlgDocGeneralTab : "General", //MISSING +DlgDocBackTab : "Background", //MISSING +DlgDocColorsTab : "Colors and Margins", //MISSING +DlgDocMetaTab : "Meta Data", //MISSING + +DlgDocPageTitle : "Page Title", //MISSING +DlgDocLangDir : "Language Direction", //MISSING +DlgDocLangDirLTR : "Left to Right (LTR)", //MISSING +DlgDocLangDirRTL : "Right to Left (RTL)", //MISSING +DlgDocLangCode : "Language Code", //MISSING +DlgDocCharSet : "Character Set Encoding", //MISSING +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 +DlgDocDocTypeOther : "Other Document Type Heading", //MISSING +DlgDocIncXHTML : "Include XHTML Declarations", //MISSING +DlgDocBgColor : "Background Color", //MISSING +DlgDocBgImage : "Background Image URL", //MISSING +DlgDocBgNoScroll : "Nonscrolling Background", //MISSING +DlgDocCText : "Text", //MISSING +DlgDocCLink : "Link", //MISSING +DlgDocCVisited : "Visited Link", //MISSING +DlgDocCActive : "Active Link", //MISSING +DlgDocMargins : "Page Margins", //MISSING +DlgDocMaTop : "Top", //MISSING +DlgDocMaLeft : "Left", //MISSING +DlgDocMaRight : "Right", //MISSING +DlgDocMaBottom : "Bottom", //MISSING +DlgDocMeIndex : "Document Indexing Keywords (comma separated)", //MISSING +DlgDocMeDescr : "Document Description", //MISSING +DlgDocMeAuthor : "Author", //MISSING +DlgDocMeCopy : "Copyright", //MISSING +DlgDocPreview : "Preview", //MISSING + +// Templates Dialog +Templates : "Templates", //MISSING +DlgTemplatesTitle : "Content Templates", //MISSING +DlgTemplatesSelMsg : "Please select the template to open in the editor
      (the actual contents will be lost):", //MISSING +DlgTemplatesLoading : "Loading templates list. Please wait...", //MISSING +DlgTemplatesNoTpl : "(No templates defined)", //MISSING +DlgTemplatesReplace : "Replace actual contents", //MISSING + +// About Dialog +DlgAboutAboutTab : "About", //MISSING +DlgAboutBrowserInfoTab : "Browser Info", //MISSING +DlgAboutLicenseTab : "License", //MISSING +DlgAboutVersion : "verzija", +DlgAboutInfo : "Za više informacija posjetite", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/ca.js b/fckeditor/editor/lang/ca.js new file mode 100644 index 0000000..bb87785 --- /dev/null +++ b/fckeditor/editor/lang/ca.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Catalan language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Redueix la barra d'eines", +ToolbarExpand : "Amplia la barra d'eines", + +// Toolbar Items and Context Menu +Save : "Desa", +NewPage : "Nova Pàgina", +Preview : "Visualització prèvia", +Cut : "Retalla", +Copy : "Copia", +Paste : "Enganxa", +PasteText : "Enganxa com a text no formatat", +PasteWord : "Enganxa des del Word", +Print : "Imprimeix", +SelectAll : "Selecciona-ho tot", +RemoveFormat : "Elimina Format", +InsertLinkLbl : "Enllaç", +InsertLink : "Insereix/Edita enllaç", +RemoveLink : "Elimina l'enllaç", +VisitLink : "Obre l'enllaç", +Anchor : "Insereix/Edita àncora", +AnchorDelete : "Elimina àncora", +InsertImageLbl : "Imatge", +InsertImage : "Insereix/Edita imatge", +InsertFlashLbl : "Flash", +InsertFlash : "Insereix/Edita Flash", +InsertTableLbl : "Taula", +InsertTable : "Insereix/Edita taula", +InsertLineLbl : "Línia", +InsertLine : "Insereix línia horitzontal", +InsertSpecialCharLbl: "Caràcter Especial", +InsertSpecialChar : "Insereix caràcter especial", +InsertSmileyLbl : "Icona", +InsertSmiley : "Insereix icona", +About : "Quant a l'FCKeditor", +Bold : "Negreta", +Italic : "Cursiva", +Underline : "Subratllat", +StrikeThrough : "Barrat", +Subscript : "Subíndex", +Superscript : "Superíndex", +LeftJustify : "Alinia a l'esquerra", +CenterJustify : "Centrat", +RightJustify : "Alinia a la dreta", +BlockJustify : "Justificat", +DecreaseIndent : "Redueix el sagnat", +IncreaseIndent : "Augmenta el sagnat", +Blockquote : "Bloc de cita", +CreateDiv : "Crea un contenidor Div", +EditDiv : "Edita el contenidor Div", +DeleteDiv : "Elimina el contenidor Div", +Undo : "Desfés", +Redo : "Refés", +NumberedListLbl : "Llista numerada", +NumberedList : "Numeració activada/desactivada", +BulletedListLbl : "Llista de pics", +BulletedList : "Pics activats/descativats", +ShowTableBorders : "Mostra les vores de les taules", +ShowDetails : "Mostra detalls", +Style : "Estil", +FontFormat : "Format", +Font : "Tipus de lletra", +FontSize : "Mida", +TextColor : "Color de Text", +BGColor : "Color de Fons", +Source : "Codi font", +Find : "Cerca", +Replace : "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ó d'opció", +TextField : "Camp de text", +Textarea : "Àrea de text", +HiddenField : "Camp ocult", +Button : "Botó", +SelectionField : "Camp de selecció", +ImageButton : "Botó d'imatge", + +FitWindow : "Maximiza la mida de l'editor", +ShowBlocks : "Mostra els blocs", + +// Context Menu +EditLink : "Edita l'enllaç", +CellCM : "Cel·la", +RowCM : "Fila", +ColumnCM : "Columna", +InsertRowAfter : "Insereix fila darrera", +InsertRowBefore : "Insereix fila abans de", +DeleteRows : "Suprimeix una fila", +InsertColumnAfter : "Insereix columna darrera", +InsertColumnBefore : "Insereix columna abans de", +DeleteColumns : "Suprimeix una columna", +InsertCellAfter : "Insereix cel·la darrera", +InsertCellBefore : "Insereix cel·la abans de", +DeleteCells : "Suprimeix les cel·les", +MergeCells : "Fusiona les cel·les", +MergeRight : "Fusiona cap a la dreta", +MergeDown : "Fusiona cap avall", +HorizontalSplitCell : "Divideix la cel·la horitzontalment", +VerticalSplitCell : "Divideix la cel·la verticalment", +TableDelete : "Suprimeix la taula", +CellProperties : "Propietats de la cel·la", +TableProperties : "Propietats de la taula", +ImageProperties : "Propietats de la imatge", +FlashProperties : "Propietats del Flash", + +AnchorProp : "Propietats de l'àncora", +ButtonProp : "Propietats del botó", +CheckboxProp : "Propietats de la casella de verificació", +HiddenFieldProp : "Propietats del camp ocult", +RadioButtonProp : "Propietats del botó d'opció", +ImageButtonProp : "Propietats del botó d'imatge", +TextFieldProp : "Propietats del camp de text", +SelectionFieldProp : "Propietats del camp de selecció", +TextareaProp : "Propietats de l'àrea de text", +FormProp : "Propietats del formulari", + +FontFormats : "Normal;Formatejat;Adreça;Encapçalament 1;Encapçalament 2;Encapçalament 3;Encapçalament 4;Encapçalament 5;Encapçalament 6;Normal (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Processant XHTML. Si us plau esperi...", +Done : "Fet", +PasteWordConfirm : "El text que voleu enganxar sembla provenir de Word. Voleu netejar aquest text abans que sigui enganxat?", +NotCompatiblePaste : "Aquesta funció és disponible per a Internet Explorer versió 5.5 o superior. Voleu enganxar sense netejar?", +UnknownToolbarItem : "Element de la barra d'eines desconegut \"%1\"", +UnknownCommand : "Nom de comanda desconegut \"%1\"", +NotImplemented : "Mètode no implementat", +UnknownToolbarSet : "Conjunt de barra d'eines \"%1\" inexistent", +NoActiveX : "Les preferències del navegador poden limitar algunes funcions d'aquest editor. Cal habilitar l'opció \"Executa controls ActiveX i plug-ins\". Poden sorgir errors i poden faltar algunes funcions.", +BrowseServerBlocked : "El visualitzador de recursos no s'ha pogut obrir. Assegura't de que els bloquejos de finestres emergents estan desactivats.", +DialogBlocked : "No ha estat possible obrir una finestra de diàleg. Assegureu-vos que els bloquejos de finestres emergents estan desactivats.", +VisitLinkBlocked : "No ha estat possible obrir una nova finestra. Assegureu-vos que els bloquejos de finestres emergents estan desactivats.", + +// Dialogs +DlgBtnOK : "D'acord", +DlgBtnCancel : "Cancel·la", +DlgBtnClose : "Tanca", +DlgBtnBrowseServer : "Veure servidor", +DlgAdvancedTag : "Avançat", +DlgOpOther : "Altres", +DlgInfoTab : "Info", +DlgAlertUrl : "Si us plau, afegiu la URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Direcció de l'idioma", +DlgGenLangDirLtr : "D'esquerra a dreta (LTR)", +DlgGenLangDirRtl : "De dreta a esquerra (RTL)", +DlgGenLangCode : "Codi d'idioma", +DlgGenAccessKey : "Clau d'accés", +DlgGenName : "Nom", +DlgGenTabIndex : "Index de Tab", +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 : "Propietats de la imatge", +DlgImgInfoTab : "Informació de la imatge", +DlgImgBtnUpload : "Envia-la al servidor", +DlgImgURL : "URL", +DlgImgUpload : "Puja", +DlgImgAlt : "Text alternatiu", +DlgImgWidth : "Amplada", +DlgImgHeight : "Alçada", +DlgImgLockRatio : "Bloqueja les proporcions", +DlgBtnResetSize : "Restaura la mida", +DlgImgBorder : "Vora", +DlgImgHSpace : "Espaiat horit.", +DlgImgVSpace : "Espaiat vert.", +DlgImgAlign : "Alineació", +DlgImgAlignLeft : "Ajusta a l'esquerra", +DlgImgAlignAbsBottom: "Abs Bottom", +DlgImgAlignAbsMiddle: "Abs Middle", +DlgImgAlignBaseline : "Baseline", +DlgImgAlignBottom : "Bottom", +DlgImgAlignMiddle : "Middle", +DlgImgAlignRight : "Ajusta a la dreta", +DlgImgAlignTextTop : "Text Top", +DlgImgAlignTop : "Top", +DlgImgPreview : "Vista prèvia", +DlgImgAlertUrl : "Si us plau, escriviu la URL de la imatge", +DlgImgLinkTab : "Enllaç", + +// Flash Dialog +DlgFlashTitle : "Propietats del Flash", +DlgFlashChkPlay : "Reprodució automàtica", +DlgFlashChkLoop : "Bucle", +DlgFlashChkMenu : "Habilita menú Flash", +DlgFlashScale : "Escala", +DlgFlashScaleAll : "Mostra-ho tot", +DlgFlashScaleNoBorder : "Sense vores", +DlgFlashScaleFit : "Mida exacta", + +// Link Dialog +DlgLnkWindowTitle : "Enllaç", +DlgLnkInfoTab : "Informació de l'enllaç", +DlgLnkTargetTab : "Destí", + +DlgLnkType : "Tipus d'enllaç", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Àncora en aquesta pàgina", +DlgLnkTypeEMail : "Correu electrònic", +DlgLnkProto : "Protocol", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Selecciona una àncora", +DlgLnkAnchorByName : "Per nom d'àncora", +DlgLnkAnchorById : "Per Id d'element", +DlgLnkNoAnchors : "(No hi ha àncores disponibles en aquest document)", +DlgLnkEMail : "Adreça de correu electrònic", +DlgLnkEMailSubject : "Assumpte del missatge", +DlgLnkEMailBody : "Cos del missatge", +DlgLnkUpload : "Puja", +DlgLnkBtnUpload : "Envia al servidor", + +DlgLnkTarget : "Destí", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Nova finestra (_blank)", +DlgLnkTargetParent : "Finestra pare (_parent)", +DlgLnkTargetSelf : "Mateixa finestra (_self)", +DlgLnkTargetTop : "Finestra Major (_top)", +DlgLnkTargetFrameName : "Nom del marc de destí", +DlgLnkPopWinName : "Nom finestra popup", +DlgLnkPopWinFeat : "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", +DlgLnkPopFullScrn : "Pantalla completa (IE)", +DlgLnkPopDependent : "Depenent (Netscape)", +DlgLnkPopWidth : "Amplada", +DlgLnkPopHeight : "Alçada", +DlgLnkPopLeft : "Posició esquerra", +DlgLnkPopTop : "Posició dalt", + +DlnLnkMsgNoUrl : "Si us plau, escrigui l'enllaç URL", +DlnLnkMsgNoEMail : "Si us plau, escrigui l'adreça correu electrònic", +DlnLnkMsgNoAnchor : "Si us plau, escrigui l'àncora", +DlnLnkMsgInvPopName : "El nom de la finestra emergent ha de començar amb una lletra i no pot tenir espais", + +// Color Dialog +DlgColorTitle : "Selecciona el color", +DlgColorBtnClear : "Neteja", +DlgColorHighlight : "Realça", +DlgColorSelected : "Selecciona", + +// Smiley Dialog +DlgSmileyTitle : "Insereix una icona", + +// Special Character Dialog +DlgSpecialCharTitle : "Selecciona el caràcter especial", + +// Table Dialog +DlgTableTitle : "Propietats de la taula", +DlgTableRows : "Files", +DlgTableColumns : "Columnes", +DlgTableBorder : "Mida vora", +DlgTableAlign : "Alineació", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Esquerra", +DlgTableAlignCenter : "Centre", +DlgTableAlignRight : "Dreta", +DlgTableWidth : "Amplada", +DlgTableWidthPx : "píxels", +DlgTableWidthPc : "percentatge", +DlgTableHeight : "Alçada", +DlgTableCellSpace : "Espaiat de cel·les", +DlgTableCellPad : "Encoixinament de cel·les", +DlgTableCaption : "Títol", +DlgTableSummary : "Resum", + +// Table Cell Dialog +DlgCellTitle : "Propietats de la cel·la", +DlgCellWidth : "Amplada", +DlgCellWidthPx : "píxels", +DlgCellWidthPc : "percentatge", +DlgCellHeight : "Alçada", +DlgCellWordWrap : "Ajust de paraula", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Si", +DlgCellWordWrapNo : "No", +DlgCellHorAlign : "Alineació horitzontal", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Esquerra", +DlgCellHorAlignCenter : "Centre", +DlgCellHorAlignRight: "Dreta", +DlgCellVerAlign : "Alineació vertical", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Top", +DlgCellVerAlignMiddle : "Middle", +DlgCellVerAlignBottom : "Bottom", +DlgCellVerAlignBaseline : "Baseline", +DlgCellRowSpan : "Rows Span", +DlgCellCollSpan : "Columns Span", +DlgCellBackColor : "Color de fons", +DlgCellBorderColor : "Color de la vora", +DlgCellBtnSelect : "Seleccioneu...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Cerca i reemplaça", + +// Find Dialog +DlgFindTitle : "Cerca", +DlgFindFindBtn : "Cerca", +DlgFindNotFoundMsg : "El text especificat no s'ha trobat.", + +// Replace Dialog +DlgReplaceTitle : "Reemplaça", +DlgReplaceFindLbl : "Cerca:", +DlgReplaceReplaceLbl : "Remplaça amb:", +DlgReplaceCaseChk : "Distingeix majúscules/minúscules", +DlgReplaceReplaceBtn : "Reemplaça", +DlgReplaceReplAllBtn : "Reemplaça-ho tot", +DlgReplaceWordChk : "Només paraules completes", + +// Paste Operations / Dialog +PasteErrorCut : "La seguretat del vostre navegador no permet executar automàticament les operacions de retallar. Si us plau, utilitzeu el teclat (Ctrl+X).", +PasteErrorCopy : "La seguretat del vostre navegador no permet executar automàticament les operacions de copiar. Si us plau, utilitzeu el teclat (Ctrl+C).", + +PasteAsText : "Enganxa com a text no formatat", +PasteFromWord : "Enganxa com a Word", + +DlgPasteMsg2 : "Si us plau, enganxeu dins del següent camp utilitzant el teclat (Ctrl+V) i premeu OK.", +DlgPasteSec : "A causa de la configuració de seguretat del vostre navegador, l'editor no pot accedir al porta-retalls directament. Enganxeu-ho un altre cop en aquesta finestra.", +DlgPasteIgnoreFont : "Ignora definicions de font", +DlgPasteRemoveStyles : "Elimina definicions d'estil", + +// Color Picker +ColorAutomatic : "Automàtic", +ColorMoreColors : "Més colors...", + +// Document Properties +DocProps : "Propietats del document", + +// Anchor Dialog +DlgAnchorTitle : "Propietats de l'àncora", +DlgAnchorName : "Nom de l'àncora", +DlgAnchorErrorName : "Si us plau, escriviu el nom de l'ancora", + +// Speller Pages Dialog +DlgSpellNotInDic : "No és al diccionari", +DlgSpellChangeTo : "Reemplaça amb", +DlgSpellBtnIgnore : "Ignora", +DlgSpellBtnIgnoreAll : "Ignora-les totes", +DlgSpellBtnReplace : "Canvia", +DlgSpellBtnReplaceAll : "Canvia-les totes", +DlgSpellBtnUndo : "Desfés", +DlgSpellNoSuggestions : "Cap suggeriment", +DlgSpellProgress : "Verificació ortogràfica en curs...", +DlgSpellNoMispell : "Verificació ortogràfica acabada: no hi ha cap paraula mal escrita", +DlgSpellNoChanges : "Verificació ortogràfica: no s'ha canviat cap paraula", +DlgSpellOneChange : "Verificació ortogràfica: s'ha canviat una paraula", +DlgSpellManyChanges : "Verificació ortogràfica: s'han canviat %1 paraules", + +IeSpellDownload : "Verificació ortogràfica no instal·lada. Voleu descarregar-ho ara?", + +// Button Dialog +DlgButtonText : "Text (Valor)", +DlgButtonType : "Tipus", +DlgButtonTypeBtn : "Botó", +DlgButtonTypeSbm : "Transmet formulari", +DlgButtonTypeRst : "Reinicia formulari", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Nom", +DlgCheckboxValue : "Valor", +DlgCheckboxSelected : "Seleccionat", + +// Form Dialog +DlgFormName : "Nom", +DlgFormAction : "Acció", +DlgFormMethod : "Mètode", + +// Select Field Dialog +DlgSelectName : "Nom", +DlgSelectValue : "Valor", +DlgSelectSize : "Mida", +DlgSelectLines : "Línies", +DlgSelectChkMulti : "Permet múltiples seleccions", +DlgSelectOpAvail : "Opcions disponibles", +DlgSelectOpText : "Text", +DlgSelectOpValue : "Valor", +DlgSelectBtnAdd : "Afegeix", +DlgSelectBtnModify : "Modifica", +DlgSelectBtnUp : "Amunt", +DlgSelectBtnDown : "Avall", +DlgSelectBtnSetValue : "Selecciona per defecte", +DlgSelectBtnDelete : "Elimina", + +// Textarea Dialog +DlgTextareaName : "Nom", +DlgTextareaCols : "Columnes", +DlgTextareaRows : "Files", + +// Text Field Dialog +DlgTextName : "Nom", +DlgTextValue : "Valor", +DlgTextCharWidth : "Amplada", +DlgTextMaxChars : "Nombre màxim de caràcters", +DlgTextType : "Tipus", +DlgTextTypeText : "Text", +DlgTextTypePass : "Contrasenya", + +// Hidden Field Dialog +DlgHiddenName : "Nom", +DlgHiddenValue : "Valor", + +// Bulleted List Dialog +BulletedListProp : "Propietats de la llista de pics", +NumberedListProp : "Propietats de llista numerada", +DlgLstStart : "Inici", +DlgLstType : "Tipus", +DlgLstTypeCircle : "Cercle", +DlgLstTypeDisc : "Disc", +DlgLstTypeSquare : "Quadrat", +DlgLstTypeNumbers : "Números (1, 2, 3)", +DlgLstTypeLCase : "Lletres minúscules (a, b, c)", +DlgLstTypeUCase : "Lletres majúscules (A, B, C)", +DlgLstTypeSRoman : "Números romans en minúscules (i, ii, iii)", +DlgLstTypeLRoman : "Números romans en majúscules (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "General", +DlgDocBackTab : "Fons", +DlgDocColorsTab : "Colors i marges", +DlgDocMetaTab : "Metadades", + +DlgDocPageTitle : "Títol de la pàgina", +DlgDocLangDir : "Direcció idioma", +DlgDocLangDirLTR : "Esquerra a dreta (LTR)", +DlgDocLangDirRTL : "Dreta a esquerra (RTL)", +DlgDocLangCode : "Codi d'idioma", +DlgDocCharSet : "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 : "Un altra capçalera de tipus de document", +DlgDocIncXHTML : "Incloure declaracions XHTML", +DlgDocBgColor : "Color de fons", +DlgDocBgImage : "URL de la imatge de fons", +DlgDocBgNoScroll : "Fons fixe", +DlgDocCText : "Text", +DlgDocCLink : "Enllaç", +DlgDocCVisited : "Enllaç visitat", +DlgDocCActive : "Enllaç actiu", +DlgDocMargins : "Marges de pàgina", +DlgDocMaTop : "Cap", +DlgDocMaLeft : "Esquerra", +DlgDocMaRight : "Dreta", +DlgDocMaBottom : "Peu", +DlgDocMeIndex : "Mots clau per a indexació (separats per coma)", +DlgDocMeDescr : "Descripció del document", +DlgDocMeAuthor : "Autor", +DlgDocMeCopy : "Copyright", +DlgDocPreview : "Vista prèvia", + +// Templates Dialog +Templates : "Plantilles", +DlgTemplatesTitle : "Contingut plantilles", +DlgTemplatesSelMsg : "Si us plau, seleccioneu la plantilla per obrir a l'editor
      (el contingut actual no serà enregistrat):", +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 : "Quant a", +DlgAboutBrowserInfoTab : "Informació del navegador", +DlgAboutLicenseTab : "Llicència", +DlgAboutVersion : "versió", +DlgAboutInfo : "Per a més informació aneu a", + +// Div Dialog +DlgDivGeneralTab : "General", +DlgDivAdvancedTab : "Avançat", +DlgDivStyle : "Estil", +DlgDivInlineStyle : "Estil en línia" +}; diff --git a/fckeditor/editor/lang/cs.js b/fckeditor/editor/lang/cs.js new file mode 100644 index 0000000..20bed14 --- /dev/null +++ b/fckeditor/editor/lang/cs.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Czech language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Skrýt panel nástrojů", +ToolbarExpand : "Zobrazit panel nástrojů", + +// Toolbar Items and Context Menu +Save : "Uložit", +NewPage : "Nová stránka", +Preview : "Náhled", +Cut : "Vyjmout", +Copy : "Kopírovat", +Paste : "Vložit", +PasteText : "Vložit jako čistý text", +PasteWord : "Vložit z Wordu", +Print : "Tisk", +SelectAll : "Vybrat vše", +RemoveFormat : "Odstranit formátování", +InsertLinkLbl : "Odkaz", +InsertLink : "Vložit/změnit odkaz", +RemoveLink : "Odstranit odkaz", +VisitLink : "Otevřít odkaz", +Anchor : "Vložít/změnit záložku", +AnchorDelete : "Odstranit kotvu", +InsertImageLbl : "Obrázek", +InsertImage : "Vložit/změnit obrázek", +InsertFlashLbl : "Flash", +InsertFlash : "Vložit/Upravit Flash", +InsertTableLbl : "Tabulka", +InsertTable : "Vložit/změnit tabulku", +InsertLineLbl : "Linka", +InsertLine : "Vložit vodorovnou linku", +InsertSpecialCharLbl: "Speciální znaky", +InsertSpecialChar : "Vložit speciální znaky", +InsertSmileyLbl : "Smajlíky", +InsertSmiley : "Vložit smajlík", +About : "O aplikaci FCKeditor", +Bold : "Tučné", +Italic : "Kurzíva", +Underline : "Podtržené", +StrikeThrough : "Přeškrtnuté", +Subscript : "Dolní index", +Superscript : "Horní index", +LeftJustify : "Zarovnat vlevo", +CenterJustify : "Zarovnat na střed", +RightJustify : "Zarovnat vpravo", +BlockJustify : "Zarovnat do bloku", +DecreaseIndent : "Zmenšit odsazení", +IncreaseIndent : "Zvětšit odsazení", +Blockquote : "Citace", +CreateDiv : "Vytvořit Div kontejner", +EditDiv : "Upravit Div kontejner", +DeleteDiv : "Odstranit Div kontejner", +Undo : "Zpět", +Redo : "Znovu", +NumberedListLbl : "Číslování", +NumberedList : "Vložit/odstranit číslovaný seznam", +BulletedListLbl : "Odrážky", +BulletedList : "Vložit/odstranit odrážky", +ShowTableBorders : "Zobrazit okraje tabulek", +ShowDetails : "Zobrazit podrobnosti", +Style : "Styl", +FontFormat : "Formát", +Font : "Písmo", +FontSize : "Velikost", +TextColor : "Barva textu", +BGColor : "Barva pozadí", +Source : "Zdroj", +Find : "Hledat", +Replace : "Nahradit", +SpellCheck : "Zkontrolovat pravopis", +UniversalKeyboard : "Univerzální klávesnice", +PageBreakLbl : "Konec stránky", +PageBreak : "Vložit konec stránky", + +Form : "Formulář", +Checkbox : "Zaškrtávací políčko", +RadioButton : "Přepínač", +TextField : "Textové pole", +Textarea : "Textová oblast", +HiddenField : "Skryté pole", +Button : "Tlačítko", +SelectionField : "Seznam", +ImageButton : "Obrázkové tlačítko", + +FitWindow : "Maximalizovat velikost editoru", +ShowBlocks : "Ukázat bloky", + +// Context Menu +EditLink : "Změnit odkaz", +CellCM : "Buňka", +RowCM : "Řádek", +ColumnCM : "Sloupec", +InsertRowAfter : "Vložit řádek za", +InsertRowBefore : "Vložit řádek před", +DeleteRows : "Smazat řádky", +InsertColumnAfter : "Vložit sloupec za", +InsertColumnBefore : "Vložit sloupec před", +DeleteColumns : "Smazat sloupec", +InsertCellAfter : "Vložit buňku za", +InsertCellBefore : "Vložit buňku před", +DeleteCells : "Smazat buňky", +MergeCells : "Sloučit buňky", +MergeRight : "Sloučit doprava", +MergeDown : "Sloučit dolů", +HorizontalSplitCell : "Rozdělit buňky vodorovně", +VerticalSplitCell : "Rozdělit buňky svisle", +TableDelete : "Smazat tabulku", +CellProperties : "Vlastnosti buňky", +TableProperties : "Vlastnosti tabulky", +ImageProperties : "Vlastnosti obrázku", +FlashProperties : "Vlastnosti Flashe", + +AnchorProp : "Vlastnosti záložky", +ButtonProp : "Vlastnosti tlačítka", +CheckboxProp : "Vlastnosti zaškrtávacího políčka", +HiddenFieldProp : "Vlastnosti skrytého pole", +RadioButtonProp : "Vlastnosti přepínače", +ImageButtonProp : "Vlastností obrázkového tlačítka", +TextFieldProp : "Vlastnosti textového pole", +SelectionFieldProp : "Vlastnosti seznamu", +TextareaProp : "Vlastnosti textové oblasti", +FormProp : "Vlastnosti formuláře", + +FontFormats : "Normální;Naformátováno;Adresa;Nadpis 1;Nadpis 2;Nadpis 3;Nadpis 4;Nadpis 5;Nadpis 6;Normální (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Probíhá zpracování XHTML. Prosím čekejte...", +Done : "Hotovo", +PasteWordConfirm : "Jak je vidět, vkládaný text je kopírován z Wordu. Chcete jej před vložením vyčistit?", +NotCompatiblePaste : "Tento příkaz je dostupný pouze v Internet Exploreru verze 5.5 nebo vyšší. Chcete vložit text bez vyčištění?", +UnknownToolbarItem : "Neznámá položka panelu nástrojů \"%1\"", +UnknownCommand : "Neznámý příkaz \"%1\"", +NotImplemented : "Příkaz není implementován", +UnknownToolbarSet : "Panel nástrojů \"%1\" neexistuje", +NoActiveX : "Nastavení bezpečnosti Vašeho prohlížeče omezuje funkčnost některých jeho možností. Je třeba zapnout volbu \"Spouštět ovládáací prvky ActiveX a moduly plug-in\", jinak nebude možné využívat všechny dosputné schopnosti editoru.", +BrowseServerBlocked : "Průzkumník zdrojů nelze otevřít. Prověřte, zda nemáte aktivováno blokování popup oken.", +DialogBlocked : "Nelze otevřít dialogové okno. Prověřte, zda nemáte aktivováno blokování popup oken.", +VisitLinkBlocked : "Není možné otevřít nové okno. Prověřte, zda všechny nástroje pro blokování vyskakovacích oken jsou vypnuty.", + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Storno", +DlgBtnClose : "Zavřít", +DlgBtnBrowseServer : "Vybrat na serveru", +DlgAdvancedTag : "Rozšířené", +DlgOpOther : "", +DlgInfoTab : "Info", +DlgAlertUrl : "Prosím vložte URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Orientace jazyka", +DlgGenLangDirLtr : "Zleva do prava (LTR)", +DlgGenLangDirRtl : "Zprava do leva (RTL)", +DlgGenLangCode : "Kód jazyka", +DlgGenAccessKey : "Přístupový klíč", +DlgGenName : "Jméno", +DlgGenTabIndex : "Pořadí prvku", +DlgGenLongDescr : "Dlouhý popis URL", +DlgGenClass : "Třída stylu", +DlgGenTitle : "Pomocný titulek", +DlgGenContType : "Pomocný typ obsahu", +DlgGenLinkCharset : "Přiřazená znaková sada", +DlgGenStyle : "Styl", + +// Image Dialog +DlgImgTitle : "Vlastnosti obrázku", +DlgImgInfoTab : "Informace o obrázku", +DlgImgBtnUpload : "Odeslat na server", +DlgImgURL : "URL", +DlgImgUpload : "Odeslat", +DlgImgAlt : "Alternativní text", +DlgImgWidth : "Šířka", +DlgImgHeight : "Výška", +DlgImgLockRatio : "Zámek", +DlgBtnResetSize : "Původní velikost", +DlgImgBorder : "Okraje", +DlgImgHSpace : "H-mezera", +DlgImgVSpace : "V-mezera", +DlgImgAlign : "Zarovnání", +DlgImgAlignLeft : "Vlevo", +DlgImgAlignAbsBottom: "Zcela dolů", +DlgImgAlignAbsMiddle: "Doprostřed", +DlgImgAlignBaseline : "Na účaří", +DlgImgAlignBottom : "Dolů", +DlgImgAlignMiddle : "Na střed", +DlgImgAlignRight : "Vpravo", +DlgImgAlignTextTop : "Na horní okraj textu", +DlgImgAlignTop : "Nahoru", +DlgImgPreview : "Náhled", +DlgImgAlertUrl : "Zadejte prosím URL obrázku", +DlgImgLinkTab : "Odkaz", + +// Flash Dialog +DlgFlashTitle : "Vlastnosti Flashe", +DlgFlashChkPlay : "Automatické spuštění", +DlgFlashChkLoop : "Opakování", +DlgFlashChkMenu : "Nabídka Flash", +DlgFlashScale : "Zobrazit", +DlgFlashScaleAll : "Zobrazit vše", +DlgFlashScaleNoBorder : "Bez okraje", +DlgFlashScaleFit : "Přizpůsobit", + +// Link Dialog +DlgLnkWindowTitle : "Odkaz", +DlgLnkInfoTab : "Informace o odkazu", +DlgLnkTargetTab : "Cíl", + +DlgLnkType : "Typ odkazu", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Kotva v této stránce", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Protokol", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Vybrat kotvu", +DlgLnkAnchorByName : "Podle jména kotvy", +DlgLnkAnchorById : "Podle Id objektu", +DlgLnkNoAnchors : "(Ve stránce není definována žádná kotva!)", +DlgLnkEMail : "E-Mailová adresa", +DlgLnkEMailSubject : "Předmět zprávy", +DlgLnkEMailBody : "Tělo zprávy", +DlgLnkUpload : "Odeslat", +DlgLnkBtnUpload : "Odeslat na Server", + +DlgLnkTarget : "Cíl", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Nové okno (_blank)", +DlgLnkTargetParent : "Rodičovské okno (_parent)", +DlgLnkTargetSelf : "Stejné okno (_self)", +DlgLnkTargetTop : "Hlavní okno (_top)", +DlgLnkTargetFrameName : "Název cílového rámu", +DlgLnkPopWinName : "Název vyskakovacího okna", +DlgLnkPopWinFeat : "Vlastnosti vyskakovacího okna", +DlgLnkPopResize : "Měnitelná velikost", +DlgLnkPopLocation : "Panel umístění", +DlgLnkPopMenu : "Panel nabídky", +DlgLnkPopScroll : "Posuvníky", +DlgLnkPopStatus : "Stavový řádek", +DlgLnkPopToolbar : "Panel nástrojů", +DlgLnkPopFullScrn : "Celá obrazovka (IE)", +DlgLnkPopDependent : "Závislost (Netscape)", +DlgLnkPopWidth : "Šířka", +DlgLnkPopHeight : "Výška", +DlgLnkPopLeft : "Levý okraj", +DlgLnkPopTop : "Horní okraj", + +DlnLnkMsgNoUrl : "Zadejte prosím URL odkazu", +DlnLnkMsgNoEMail : "Zadejte prosím e-mailovou adresu", +DlnLnkMsgNoAnchor : "Vyberte prosím kotvu", +DlnLnkMsgInvPopName : "Název vyskakovacího okna musí začínat písmenem a nesmí obsahovat mezery", + +// Color Dialog +DlgColorTitle : "Výběr barvy", +DlgColorBtnClear : "Vymazat", +DlgColorHighlight : "Zvýrazněná", +DlgColorSelected : "Vybraná", + +// Smiley Dialog +DlgSmileyTitle : "Vkládání smajlíků", + +// Special Character Dialog +DlgSpecialCharTitle : "Výběr speciálního znaku", + +// Table Dialog +DlgTableTitle : "Vlastnosti tabulky", +DlgTableRows : "Řádky", +DlgTableColumns : "Sloupce", +DlgTableBorder : "Ohraničení", +DlgTableAlign : "Zarovnání", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Vlevo", +DlgTableAlignCenter : "Na střed", +DlgTableAlignRight : "Vpravo", +DlgTableWidth : "Šířka", +DlgTableWidthPx : "bodů", +DlgTableWidthPc : "procent", +DlgTableHeight : "Výška", +DlgTableCellSpace : "Vzdálenost buněk", +DlgTableCellPad : "Odsazení obsahu", +DlgTableCaption : "Popis", +DlgTableSummary : "Souhrn", + +// Table Cell Dialog +DlgCellTitle : "Vlastnosti buňky", +DlgCellWidth : "Šířka", +DlgCellWidthPx : "bodů", +DlgCellWidthPc : "procent", +DlgCellHeight : "Výška", +DlgCellWordWrap : "Zalamování", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Ano", +DlgCellWordWrapNo : "Ne", +DlgCellHorAlign : "Vodorovné zarovnání", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Vlevo", +DlgCellHorAlignCenter : "Na střed", +DlgCellHorAlignRight: "Vpravo", +DlgCellVerAlign : "Svislé zarovnání", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Nahoru", +DlgCellVerAlignMiddle : "Doprostřed", +DlgCellVerAlignBottom : "Dolů", +DlgCellVerAlignBaseline : "Na účaří", +DlgCellRowSpan : "Sloučené řádky", +DlgCellCollSpan : "Sloučené sloupce", +DlgCellBackColor : "Barva pozadí", +DlgCellBorderColor : "Barva ohraničení", +DlgCellBtnSelect : "Výběr...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Najít a nahradit", + +// Find Dialog +DlgFindTitle : "Hledat", +DlgFindFindBtn : "Hledat", +DlgFindNotFoundMsg : "Hledaný text nebyl nalezen.", + +// Replace Dialog +DlgReplaceTitle : "Nahradit", +DlgReplaceFindLbl : "Co hledat:", +DlgReplaceReplaceLbl : "Čím nahradit:", +DlgReplaceCaseChk : "Rozlišovat velikost písma", +DlgReplaceReplaceBtn : "Nahradit", +DlgReplaceReplAllBtn : "Nahradit vše", +DlgReplaceWordChk : "Pouze celá slova", + +// Paste Operations / Dialog +PasteErrorCut : "Bezpečnostní nastavení Vašeho prohlížeče nedovolují editoru spustit funkci pro vyjmutí zvoleného textu do schránky. Prosím vyjměte zvolený text do schránky pomocí klávesnice (Ctrl+X).", +PasteErrorCopy : "Bezpečnostní nastavení Vašeho prohlížeče nedovolují editoru spustit funkci pro kopírování zvoleného textu do schránky. Prosím zkopírujte zvolený text do schránky pomocí klávesnice (Ctrl+C).", + +PasteAsText : "Vložit jako čistý text", +PasteFromWord : "Vložit text z Wordu", + +DlgPasteMsg2 : "Do následujícího pole vložte požadovaný obsah pomocí klávesnice (Ctrl+V) a stiskněte OK.", +DlgPasteSec : "Z důvodů nastavení bezpečnosti Vašeho prohlížeče nemůže editor přistupovat přímo do schránky. Obsah schránky prosím vložte znovu do tohoto okna.", +DlgPasteIgnoreFont : "Ignorovat písmo", +DlgPasteRemoveStyles : "Odstranit styly", + +// Color Picker +ColorAutomatic : "Automaticky", +ColorMoreColors : "Více barev...", + +// Document Properties +DocProps : "Vlastnosti dokumentu", + +// Anchor Dialog +DlgAnchorTitle : "Vlastnosti záložky", +DlgAnchorName : "Název záložky", +DlgAnchorErrorName : "Zadejte prosím název záložky", + +// Speller Pages Dialog +DlgSpellNotInDic : "Není ve slovníku", +DlgSpellChangeTo : "Změnit na", +DlgSpellBtnIgnore : "Přeskočit", +DlgSpellBtnIgnoreAll : "Přeskakovat vše", +DlgSpellBtnReplace : "Zaměnit", +DlgSpellBtnReplaceAll : "Zaměňovat vše", +DlgSpellBtnUndo : "Zpět", +DlgSpellNoSuggestions : "- žádné návrhy -", +DlgSpellProgress : "Probíhá kontrola pravopisu...", +DlgSpellNoMispell : "Kontrola pravopisu dokončena: Žádné pravopisné chyby nenalezeny", +DlgSpellNoChanges : "Kontrola pravopisu dokončena: Beze změn", +DlgSpellOneChange : "Kontrola pravopisu dokončena: Jedno slovo změněno", +DlgSpellManyChanges : "Kontrola pravopisu dokončena: %1 slov změněno", + +IeSpellDownload : "Kontrola pravopisu není nainstalována. Chcete ji nyní stáhnout?", + +// Button Dialog +DlgButtonText : "Popisek", +DlgButtonType : "Typ", +DlgButtonTypeBtn : "Tlačítko", +DlgButtonTypeSbm : "Odeslat", +DlgButtonTypeRst : "Obnovit", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Název", +DlgCheckboxValue : "Hodnota", +DlgCheckboxSelected : "Zaškrtnuto", + +// Form Dialog +DlgFormName : "Název", +DlgFormAction : "Akce", +DlgFormMethod : "Metoda", + +// Select Field Dialog +DlgSelectName : "Název", +DlgSelectValue : "Hodnota", +DlgSelectSize : "Velikost", +DlgSelectLines : "Řádků", +DlgSelectChkMulti : "Povolit mnohonásobné výběry", +DlgSelectOpAvail : "Dostupná nastavení", +DlgSelectOpText : "Text", +DlgSelectOpValue : "Hodnota", +DlgSelectBtnAdd : "Přidat", +DlgSelectBtnModify : "Změnit", +DlgSelectBtnUp : "Nahoru", +DlgSelectBtnDown : "Dolů", +DlgSelectBtnSetValue : "Nastavit jako vybranou hodnotu", +DlgSelectBtnDelete : "Smazat", + +// Textarea Dialog +DlgTextareaName : "Název", +DlgTextareaCols : "Sloupců", +DlgTextareaRows : "Řádků", + +// Text Field Dialog +DlgTextName : "Název", +DlgTextValue : "Hodnota", +DlgTextCharWidth : "Šířka ve znacích", +DlgTextMaxChars : "Maximální počet znaků", +DlgTextType : "Typ", +DlgTextTypeText : "Text", +DlgTextTypePass : "Heslo", + +// Hidden Field Dialog +DlgHiddenName : "Název", +DlgHiddenValue : "Hodnota", + +// Bulleted List Dialog +BulletedListProp : "Vlastnosti odrážek", +NumberedListProp : "Vlastnosti číslovaného seznamu", +DlgLstStart : "Začátek", +DlgLstType : "Typ", +DlgLstTypeCircle : "Kružnice", +DlgLstTypeDisc : "Kruh", +DlgLstTypeSquare : "Čtverec", +DlgLstTypeNumbers : "Čísla (1, 2, 3)", +DlgLstTypeLCase : "Malá písmena (a, b, c)", +DlgLstTypeUCase : "Velká písmena (A, B, C)", +DlgLstTypeSRoman : "Malé římská číslice (i, ii, iii)", +DlgLstTypeLRoman : "Velké římské číslice (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Obecné", +DlgDocBackTab : "Pozadí", +DlgDocColorsTab : "Barvy a okraje", +DlgDocMetaTab : "Metadata", + +DlgDocPageTitle : "Titulek stránky", +DlgDocLangDir : "Směr jazyku", +DlgDocLangDirLTR : "Zleva do prava ", +DlgDocLangDirRTL : "Zprava doleva", +DlgDocLangCode : "Kód jazyku", +DlgDocCharSet : "Znaková sada", +DlgDocCharSetCE : "Středoevropské jazyky", +DlgDocCharSetCT : "Tradiční čínština (Big5)", +DlgDocCharSetCR : "Cyrilice", +DlgDocCharSetGR : "Řečtina", +DlgDocCharSetJP : "Japonština", +DlgDocCharSetKR : "Korejština", +DlgDocCharSetTR : "Turečtina", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "Západoevropské jazyky", +DlgDocCharSetOther : "Další znaková sada", + +DlgDocDocType : "Typ dokumentu", +DlgDocDocTypeOther : "Jiný typ dokumetu", +DlgDocIncXHTML : "Zahrnou deklarace XHTML", +DlgDocBgColor : "Barva pozadí", +DlgDocBgImage : "URL obrázku na pozadí", +DlgDocBgNoScroll : "Nerolovatelné pozadí", +DlgDocCText : "Text", +DlgDocCLink : "Odkaz", +DlgDocCVisited : "Navštívený odkaz", +DlgDocCActive : "Vybraný odkaz", +DlgDocMargins : "Okraje stránky", +DlgDocMaTop : "Horní", +DlgDocMaLeft : "Levý", +DlgDocMaRight : "Pravý", +DlgDocMaBottom : "Dolní", +DlgDocMeIndex : "Klíčová slova (oddělená čárkou)", +DlgDocMeDescr : "Popis dokumentu", +DlgDocMeAuthor : "Autor", +DlgDocMeCopy : "Autorská práva", +DlgDocPreview : "Náhled", + +// Templates Dialog +Templates : "Šablony", +DlgTemplatesTitle : "Šablony obsahu", +DlgTemplatesSelMsg : "Prosím zvolte šablonu pro otevření v editoru
      (aktuální obsah editoru bude ztracen):", +DlgTemplatesLoading : "Nahrávám přeheld šablon. Prosím čekejte...", +DlgTemplatesNoTpl : "(Není definována žádná šablona)", +DlgTemplatesReplace : "Nahradit aktuální obsah", + +// About Dialog +DlgAboutAboutTab : "O aplikaci", +DlgAboutBrowserInfoTab : "Informace o prohlížeči", +DlgAboutLicenseTab : "Licence", +DlgAboutVersion : "verze", +DlgAboutInfo : "Více informací získáte na", + +// Div Dialog +DlgDivGeneralTab : "Obecné", +DlgDivAdvancedTab : "Rozšířené", +DlgDivStyle : "Styl", +DlgDivInlineStyle : "Vložený styl" +}; diff --git a/fckeditor/editor/lang/da.js b/fckeditor/editor/lang/da.js new file mode 100644 index 0000000..c0273f5 --- /dev/null +++ b/fckeditor/editor/lang/da.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Danish language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Skjul værktøjslinier", +ToolbarExpand : "Vis værktøjslinier", + +// Toolbar Items and Context Menu +Save : "Gem", +NewPage : "Ny side", +Preview : "Vis eksempel", +Cut : "Klip", +Copy : "Kopier", +Paste : "Indsæt", +PasteText : "Indsæt som ikke-formateret tekst", +PasteWord : "Indsæt fra Word", +Print : "Udskriv", +SelectAll : "Vælg alt", +RemoveFormat : "Fjern formatering", +InsertLinkLbl : "Hyperlink", +InsertLink : "Indsæt/rediger hyperlink", +RemoveLink : "Fjern hyperlink", +VisitLink : "Open Link", //MISSING +Anchor : "Indsæt/rediger bogmærke", +AnchorDelete : "Remove Anchor", //MISSING +InsertImageLbl : "Indsæt billede", +InsertImage : "Indsæt/rediger billede", +InsertFlashLbl : "Flash", +InsertFlash : "Indsæt/rediger Flash", +InsertTableLbl : "Table", +InsertTable : "Indsæt/rediger tabel", +InsertLineLbl : "Linie", +InsertLine : "Indsæt vandret linie", +InsertSpecialCharLbl: "Symbol", +InsertSpecialChar : "Indsæt symbol", +InsertSmileyLbl : "Smiley", +InsertSmiley : "Indsæt smiley", +About : "Om FCKeditor", +Bold : "Fed", +Italic : "Kursiv", +Underline : "Understreget", +StrikeThrough : "Overstreget", +Subscript : "Sænket skrift", +Superscript : "Hævet skrift", +LeftJustify : "Venstrestillet", +CenterJustify : "Centreret", +RightJustify : "Højrestillet", +BlockJustify : "Lige margener", +DecreaseIndent : "Formindsk indrykning", +IncreaseIndent : "Forøg indrykning", +Blockquote : "Blockquote", //MISSING +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "Fortryd", +Redo : "Annuller fortryd", +NumberedListLbl : "Talopstilling", +NumberedList : "Indsæt/fjern talopstilling", +BulletedListLbl : "Punktopstilling", +BulletedList : "Indsæt/fjern punktopstilling", +ShowTableBorders : "Vis tabelkanter", +ShowDetails : "Vis detaljer", +Style : "Typografi", +FontFormat : "Formatering", +Font : "Skrifttype", +FontSize : "Skriftstørrelse", +TextColor : "Tekstfarve", +BGColor : "Baggrundsfarve", +Source : "Kilde", +Find : "Søg", +Replace : "Erstat", +SpellCheck : "Stavekontrol", +UniversalKeyboard : "Universaltastatur", +PageBreakLbl : "Sidskift", +PageBreak : "Indsæt sideskift", + +Form : "Indsæt formular", +Checkbox : "Indsæt afkrydsningsfelt", +RadioButton : "Indsæt alternativknap", +TextField : "Indsæt tekstfelt", +Textarea : "Indsæt tekstboks", +HiddenField : "Indsæt skjult felt", +Button : "Indsæt knap", +SelectionField : "Indsæt liste", +ImageButton : "Indsæt billedknap", + +FitWindow : "Maksimer editor vinduet", +ShowBlocks : "Show Blocks", //MISSING + +// Context Menu +EditLink : "Rediger hyperlink", +CellCM : "Celle", +RowCM : "Række", +ColumnCM : "Kolonne", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING +DeleteRows : "Slet række", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING +DeleteColumns : "Slet kolonne", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING +DeleteCells : "Slet celle", +MergeCells : "Flet celler", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING +TableDelete : "Slet tabel", +CellProperties : "Egenskaber for celle", +TableProperties : "Egenskaber for tabel", +ImageProperties : "Egenskaber for billede", +FlashProperties : "Egenskaber for Flash", + +AnchorProp : "Egenskaber for bogmærke", +ButtonProp : "Egenskaber for knap", +CheckboxProp : "Egenskaber for afkrydsningsfelt", +HiddenFieldProp : "Egenskaber for skjult felt", +RadioButtonProp : "Egenskaber for alternativknap", +ImageButtonProp : "Egenskaber for billedknap", +TextFieldProp : "Egenskaber for tekstfelt", +SelectionFieldProp : "Egenskaber for liste", +TextareaProp : "Egenskaber for tekstboks", +FormProp : "Egenskaber for formular", + +FontFormats : "Normal;Formateret;Adresse;Overskrift 1;Overskrift 2;Overskrift 3;Overskrift 4;Overskrift 5;Overskrift 6;Normal (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Behandler XHTML...", +Done : "Færdig", +PasteWordConfirm : "Den tekst du forsøger at indsætte ser ud til at komme fra Word.
      Vil du rense teksten før den indsættes?", +NotCompatiblePaste : "Denne kommando er tilgændelig i Internet Explorer 5.5 eller senere.
      Vil du indsætte teksten uden at rense den ?", +UnknownToolbarItem : "Ukendt værktøjslinjeobjekt \"%1\"!", +UnknownCommand : "Ukendt kommandonavn \"%1\"!", +NotImplemented : "Kommandoen er ikke implementeret!", +UnknownToolbarSet : "Værktøjslinjen \"%1\" eksisterer ikke!", +NoActiveX : "Din browsers sikkerhedsindstillinger begrænser nogle af editorens muligheder.
      Slå \"Kør ActiveX-objekter og plug-ins\" til, ellers vil du opleve fejl og manglende muligheder.", +BrowseServerBlocked : "Browseren kunne ikke åbne de nødvendige ressourcer!
      Slå pop-up blokering fra.", +DialogBlocked : "Dialogvinduet kunne ikke åbnes!
      Slå pop-up blokering fra.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Annuller", +DlgBtnClose : "Luk", +DlgBtnBrowseServer : "Gennemse...", +DlgAdvancedTag : "Avanceret", +DlgOpOther : "", +DlgInfoTab : "Generelt", +DlgAlertUrl : "Indtast URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Tekstretning", +DlgGenLangDirLtr : "Fra venstre mod højre (LTR)", +DlgGenLangDirRtl : "Fra højre mod venstre (RTL)", +DlgGenLangCode : "Sprogkode", +DlgGenAccessKey : "Genvejstast", +DlgGenName : "Navn", +DlgGenTabIndex : "Tabulator indeks", +DlgGenLongDescr : "Udvidet beskrivelse", +DlgGenClass : "Typografiark", +DlgGenTitle : "Titel", +DlgGenContType : "Indholdstype", +DlgGenLinkCharset : "Tegnsæt", +DlgGenStyle : "Typografi", + +// Image Dialog +DlgImgTitle : "Egenskaber for billede", +DlgImgInfoTab : "Generelt", +DlgImgBtnUpload : "Upload", +DlgImgURL : "URL", +DlgImgUpload : "Upload", +DlgImgAlt : "Alternativ tekst", +DlgImgWidth : "Bredde", +DlgImgHeight : "Højde", +DlgImgLockRatio : "Lås størrelsesforhold", +DlgBtnResetSize : "Nulstil størrelse", +DlgImgBorder : "Ramme", +DlgImgHSpace : "HMargen", +DlgImgVSpace : "VMargen", +DlgImgAlign : "Justering", +DlgImgAlignLeft : "Venstre", +DlgImgAlignAbsBottom: "Absolut nederst", +DlgImgAlignAbsMiddle: "Absolut centreret", +DlgImgAlignBaseline : "Grundlinje", +DlgImgAlignBottom : "Nederst", +DlgImgAlignMiddle : "Centreret", +DlgImgAlignRight : "Højre", +DlgImgAlignTextTop : "Toppen af teksten", +DlgImgAlignTop : "Øverst", +DlgImgPreview : "Vis eksempel", +DlgImgAlertUrl : "Indtast stien til billedet", +DlgImgLinkTab : "Hyperlink", + +// Flash Dialog +DlgFlashTitle : "Egenskaber for Flash", +DlgFlashChkPlay : "Automatisk afspilning", +DlgFlashChkLoop : "Gentagelse", +DlgFlashChkMenu : "Vis Flash menu", +DlgFlashScale : "Skalér", +DlgFlashScaleAll : "Vis alt", +DlgFlashScaleNoBorder : "Ingen ramme", +DlgFlashScaleFit : "Tilpas størrelse", + +// Link Dialog +DlgLnkWindowTitle : "Egenskaber for hyperlink", +DlgLnkInfoTab : "Generelt", +DlgLnkTargetTab : "Mål", + +DlgLnkType : "Hyperlink type", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Bogmærke på denne side", +DlgLnkTypeEMail : "E-mail", +DlgLnkProto : "Protokol", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Vælg et anker", +DlgLnkAnchorByName : "Efter anker navn", +DlgLnkAnchorById : "Efter element Id", +DlgLnkNoAnchors : "(Ingen bogmærker dokumentet)", +DlgLnkEMail : "E-mailadresse", +DlgLnkEMailSubject : "Emne", +DlgLnkEMailBody : "Brødtekst", +DlgLnkUpload : "Upload", +DlgLnkBtnUpload : "Upload", + +DlgLnkTarget : "Mål", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Nyt vindue (_blank)", +DlgLnkTargetParent : "Overordnet ramme (_parent)", +DlgLnkTargetSelf : "Samme vindue (_self)", +DlgLnkTargetTop : "Hele vinduet (_top)", +DlgLnkTargetFrameName : "Destinationsvinduets navn", +DlgLnkPopWinName : "Pop-up vinduets navn", +DlgLnkPopWinFeat : "Egenskaber for pop-up", +DlgLnkPopResize : "Skalering", +DlgLnkPopLocation : "Adresselinje", +DlgLnkPopMenu : "Menulinje", +DlgLnkPopScroll : "Scrollbars", +DlgLnkPopStatus : "Statuslinje", +DlgLnkPopToolbar : "Værktøjslinje", +DlgLnkPopFullScrn : "Fuld skærm (IE)", +DlgLnkPopDependent : "Koblet/dependent (Netscape)", +DlgLnkPopWidth : "Bredde", +DlgLnkPopHeight : "Højde", +DlgLnkPopLeft : "Position fra venstre", +DlgLnkPopTop : "Position fra toppen", + +DlnLnkMsgNoUrl : "Indtast hyperlink URL!", +DlnLnkMsgNoEMail : "Indtast e-mailaddresse!", +DlnLnkMsgNoAnchor : "Vælg bogmærke!", +DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING + +// Color Dialog +DlgColorTitle : "Vælg farve", +DlgColorBtnClear : "Nulstil", +DlgColorHighlight : "Markeret", +DlgColorSelected : "Valgt", + +// Smiley Dialog +DlgSmileyTitle : "Vælg smiley", + +// Special Character Dialog +DlgSpecialCharTitle : "Vælg symbol", + +// Table Dialog +DlgTableTitle : "Egenskaber for tabel", +DlgTableRows : "Rækker", +DlgTableColumns : "Kolonner", +DlgTableBorder : "Rammebredde", +DlgTableAlign : "Justering", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Venstrestillet", +DlgTableAlignCenter : "Centreret", +DlgTableAlignRight : "Højrestillet", +DlgTableWidth : "Bredde", +DlgTableWidthPx : "pixels", +DlgTableWidthPc : "procent", +DlgTableHeight : "Højde", +DlgTableCellSpace : "Celleafstand", +DlgTableCellPad : "Cellemargen", +DlgTableCaption : "Titel", +DlgTableSummary : "Resume", + +// Table Cell Dialog +DlgCellTitle : "Egenskaber for celle", +DlgCellWidth : "Bredde", +DlgCellWidthPx : "pixels", +DlgCellWidthPc : "procent", +DlgCellHeight : "Højde", +DlgCellWordWrap : "Orddeling", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Ja", +DlgCellWordWrapNo : "Nej", +DlgCellHorAlign : "Vandret justering", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Venstrestillet", +DlgCellHorAlignCenter : "Centreret", +DlgCellHorAlignRight: "Højrestillet", +DlgCellVerAlign : "Lodret justering", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Øverst", +DlgCellVerAlignMiddle : "Centreret", +DlgCellVerAlignBottom : "Nederst", +DlgCellVerAlignBaseline : "Grundlinje", +DlgCellRowSpan : "Højde i antal rækker", +DlgCellCollSpan : "Bredde i antal kolonner", +DlgCellBackColor : "Baggrundsfarve", +DlgCellBorderColor : "Rammefarve", +DlgCellBtnSelect : "Vælg...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + +// Find Dialog +DlgFindTitle : "Find", +DlgFindFindBtn : "Find", +DlgFindNotFoundMsg : "Søgeteksten blev ikke fundet!", + +// Replace Dialog +DlgReplaceTitle : "Erstat", +DlgReplaceFindLbl : "Søg efter:", +DlgReplaceReplaceLbl : "Erstat med:", +DlgReplaceCaseChk : "Forskel på store og små bogstaver", +DlgReplaceReplaceBtn : "Erstat", +DlgReplaceReplAllBtn : "Erstat alle", +DlgReplaceWordChk : "Kun hele ord", + +// Paste Operations / Dialog +PasteErrorCut : "Din browsers sikkerhedsindstillinger tillader ikke editoren at klippe tekst automatisk!
      Brug i stedet tastaturet til at klippe teksten (Ctrl+X).", +PasteErrorCopy : "Din browsers sikkerhedsindstillinger tillader ikke editoren at kopiere tekst automatisk!
      Brug i stedet tastaturet til at kopiere teksten (Ctrl+C).", + +PasteAsText : "Indsæt som ikke-formateret tekst", +PasteFromWord : "Indsæt fra Word", + +DlgPasteMsg2 : "Indsæt i feltet herunder (Ctrl+V) og klik OK.", +DlgPasteSec : "Because of your browser security settings, the editor is not able to access your clipboard data directly. You are required to paste it again in this window.", //MISSING +DlgPasteIgnoreFont : "Ignorer font definitioner", +DlgPasteRemoveStyles : "Ignorer typografi", + +// Color Picker +ColorAutomatic : "Automatisk", +ColorMoreColors : "Flere farver...", + +// Document Properties +DocProps : "Egenskaber for dokument", + +// Anchor Dialog +DlgAnchorTitle : "Egenskaber for bogmærke", +DlgAnchorName : "Bogmærke navn", +DlgAnchorErrorName : "Indtast bogmærke navn!", + +// Speller Pages Dialog +DlgSpellNotInDic : "Ikke i ordbogen", +DlgSpellChangeTo : "Forslag", +DlgSpellBtnIgnore : "Ignorer", +DlgSpellBtnIgnoreAll : "Ignorer alle", +DlgSpellBtnReplace : "Erstat", +DlgSpellBtnReplaceAll : "Erstat alle", +DlgSpellBtnUndo : "Tilbage", +DlgSpellNoSuggestions : "- ingen forslag -", +DlgSpellProgress : "Stavekontrolen arbejder...", +DlgSpellNoMispell : "Stavekontrol færdig: Ingen fejl fundet", +DlgSpellNoChanges : "Stavekontrol færdig: Ingen ord ændret", +DlgSpellOneChange : "Stavekontrol færdig: Et ord ændret", +DlgSpellManyChanges : "Stavekontrol færdig: %1 ord ændret", + +IeSpellDownload : "Stavekontrol ikke installeret.
      Vil du hente den nu?", + +// Button Dialog +DlgButtonText : "Tekst", +DlgButtonType : "Type", +DlgButtonTypeBtn : "Button", //MISSING +DlgButtonTypeSbm : "Submit", //MISSING +DlgButtonTypeRst : "Reset", //MISSING + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Navn", +DlgCheckboxValue : "Værdi", +DlgCheckboxSelected : "Valgt", + +// Form Dialog +DlgFormName : "Navn", +DlgFormAction : "Handling", +DlgFormMethod : "Metod", + +// Select Field Dialog +DlgSelectName : "Navn", +DlgSelectValue : "Værdi", +DlgSelectSize : "Størrelse", +DlgSelectLines : "linier", +DlgSelectChkMulti : "Tillad flere valg", +DlgSelectOpAvail : "Valgmuligheder", +DlgSelectOpText : "Tekst", +DlgSelectOpValue : "Værdi", +DlgSelectBtnAdd : "Tilføj", +DlgSelectBtnModify : "Rediger", +DlgSelectBtnUp : "Op", +DlgSelectBtnDown : "Ned", +DlgSelectBtnSetValue : "Sæt som valgt", +DlgSelectBtnDelete : "Slet", + +// Textarea Dialog +DlgTextareaName : "Navn", +DlgTextareaCols : "Kolonner", +DlgTextareaRows : "Rækker", + +// Text Field Dialog +DlgTextName : "Navn", +DlgTextValue : "Værdi", +DlgTextCharWidth : "Bredde (tegn)", +DlgTextMaxChars : "Max antal tegn", +DlgTextType : "Type", +DlgTextTypeText : "Tekst", +DlgTextTypePass : "Adgangskode", + +// Hidden Field Dialog +DlgHiddenName : "Navn", +DlgHiddenValue : "Værdi", + +// Bulleted List Dialog +BulletedListProp : "Egenskaber for punktopstilling", +NumberedListProp : "Egenskaber for talopstilling", +DlgLstStart : "Start", //MISSING +DlgLstType : "Type", +DlgLstTypeCircle : "Cirkel", +DlgLstTypeDisc : "Udfyldt cirkel", +DlgLstTypeSquare : "Firkant", +DlgLstTypeNumbers : "Nummereret (1, 2, 3)", +DlgLstTypeLCase : "Små bogstaver (a, b, c)", +DlgLstTypeUCase : "Store bogstaver (A, B, C)", +DlgLstTypeSRoman : "Små romertal (i, ii, iii)", +DlgLstTypeLRoman : "Store romertal (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Generelt", +DlgDocBackTab : "Baggrund", +DlgDocColorsTab : "Farver og margen", +DlgDocMetaTab : "Metadata", + +DlgDocPageTitle : "Sidetitel", +DlgDocLangDir : "Sprog", +DlgDocLangDirLTR : "Fra venstre mod højre (LTR)", +DlgDocLangDirRTL : "Fra højre mod venstre (RTL)", +DlgDocLangCode : "Landekode", +DlgDocCharSet : "Tegnsæt kode", +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 : "Dokumenttype kategori", +DlgDocDocTypeOther : "Anden dokumenttype kategori", +DlgDocIncXHTML : "Inkludere XHTML deklartion", +DlgDocBgColor : "Baggrundsfarve", +DlgDocBgImage : "Baggrundsbillede URL", +DlgDocBgNoScroll : "Fastlåst baggrund", +DlgDocCText : "Tekst", +DlgDocCLink : "Hyperlink", +DlgDocCVisited : "Besøgt hyperlink", +DlgDocCActive : "Aktivt hyperlink", +DlgDocMargins : "Sidemargen", +DlgDocMaTop : "Øverst", +DlgDocMaLeft : "Venstre", +DlgDocMaRight : "Højre", +DlgDocMaBottom : "Nederst", +DlgDocMeIndex : "Dokument index nøgleord (kommasepareret)", +DlgDocMeDescr : "Dokument beskrivelse", +DlgDocMeAuthor : "Forfatter", +DlgDocMeCopy : "Copyright", +DlgDocPreview : "Vis", + +// Templates Dialog +Templates : "Skabeloner", +DlgTemplatesTitle : "Indholdsskabeloner", +DlgTemplatesSelMsg : "Vælg den skabelon, som skal åbnes i editoren.
      (Nuværende indhold vil blive overskrevet!):", +DlgTemplatesLoading : "Henter liste over skabeloner...", +DlgTemplatesNoTpl : "(Der er ikke defineret nogen skabelon!)", +DlgTemplatesReplace : "Replace actual contents", //MISSING + +// About Dialog +DlgAboutAboutTab : "Om", +DlgAboutBrowserInfoTab : "Generelt", +DlgAboutLicenseTab : "Licens", +DlgAboutVersion : "version", +DlgAboutInfo : "For yderlig information gå til", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/de.js b/fckeditor/editor/lang/de.js new file mode 100644 index 0000000..7edd90f --- /dev/null +++ b/fckeditor/editor/lang/de.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * German language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Symbolleiste einklappen", +ToolbarExpand : "Symbolleiste ausklappen", + +// Toolbar Items and Context Menu +Save : "Speichern", +NewPage : "Neue Seite", +Preview : "Vorschau", +Cut : "Ausschneiden", +Copy : "Kopieren", +Paste : "Einfügen", +PasteText : "aus Textdatei einfügen", +PasteWord : "aus MS-Word einfügen", +Print : "Drucken", +SelectAll : "Alles auswählen", +RemoveFormat : "Formatierungen entfernen", +InsertLinkLbl : "Link", +InsertLink : "Link einfügen/editieren", +RemoveLink : "Link entfernen", +VisitLink : "Link aufrufen", +Anchor : "Anker einfügen/editieren", +AnchorDelete : "Anker entfernen", +InsertImageLbl : "Bild", +InsertImage : "Bild einfügen/editieren", +InsertFlashLbl : "Flash", +InsertFlash : "Flash einfügen/editieren", +InsertTableLbl : "Tabelle", +InsertTable : "Tabelle einfügen/editieren", +InsertLineLbl : "Linie", +InsertLine : "Horizontale Linie einfügen", +InsertSpecialCharLbl: "Sonderzeichen", +InsertSpecialChar : "Sonderzeichen einfügen/editieren", +InsertSmileyLbl : "Smiley", +InsertSmiley : "Smiley einfügen", +About : "Über FCKeditor", +Bold : "Fett", +Italic : "Kursiv", +Underline : "Unterstrichen", +StrikeThrough : "Durchgestrichen", +Subscript : "Tiefgestellt", +Superscript : "Hochgestellt", +LeftJustify : "Linksbündig", +CenterJustify : "Zentriert", +RightJustify : "Rechtsbündig", +BlockJustify : "Blocksatz", +DecreaseIndent : "Einzug verringern", +IncreaseIndent : "Einzug erhöhen", +Blockquote : "Zitatblock", +CreateDiv : "Erzeuge Div Block", +EditDiv : "Bearbeite Div Block", +DeleteDiv : "Entferne Div Block", +Undo : "Rückgängig", +Redo : "Wiederherstellen", +NumberedListLbl : "Nummerierte Liste", +NumberedList : "Nummerierte Liste einfügen/entfernen", +BulletedListLbl : "Liste", +BulletedList : "Liste einfügen/entfernen", +ShowTableBorders : "Zeige Tabellenrahmen", +ShowDetails : "Zeige Details", +Style : "Stil", +FontFormat : "Format", +Font : "Schriftart", +FontSize : "Größe", +TextColor : "Textfarbe", +BGColor : "Hintergrundfarbe", +Source : "Quellcode", +Find : "Suchen", +Replace : "Ersetzen", +SpellCheck : "Rechtschreibprüfung", +UniversalKeyboard : "Universal-Tastatur", +PageBreakLbl : "Seitenumbruch", +PageBreak : "Seitenumbruch einfügen", + +Form : "Formular", +Checkbox : "Checkbox", +RadioButton : "Radiobutton", +TextField : "Textfeld einzeilig", +Textarea : "Textfeld mehrzeilig", +HiddenField : "verstecktes Feld", +Button : "Klickbutton", +SelectionField : "Auswahlfeld", +ImageButton : "Bildbutton", + +FitWindow : "Editor maximieren", +ShowBlocks : "Blöcke anzeigen", + +// Context Menu +EditLink : "Link editieren", +CellCM : "Zelle", +RowCM : "Zeile", +ColumnCM : "Spalte", +InsertRowAfter : "Zeile unterhalb einfügen", +InsertRowBefore : "Zeile oberhalb einfügen", +DeleteRows : "Zeile entfernen", +InsertColumnAfter : "Spalte rechts danach einfügen", +InsertColumnBefore : "Spalte links davor einfügen", +DeleteColumns : "Spalte löschen", +InsertCellAfter : "Zelle danach einfügen", +InsertCellBefore : "Zelle davor einfügen", +DeleteCells : "Zelle löschen", +MergeCells : "Zellen verbinden", +MergeRight : "nach rechts verbinden", +MergeDown : "nach unten verbinden", +HorizontalSplitCell : "Zelle horizontal teilen", +VerticalSplitCell : "Zelle vertikal teilen", +TableDelete : "Tabelle löschen", +CellProperties : "Zellen-Eigenschaften", +TableProperties : "Tabellen-Eigenschaften", +ImageProperties : "Bild-Eigenschaften", +FlashProperties : "Flash-Eigenschaften", + +AnchorProp : "Anker-Eigenschaften", +ButtonProp : "Button-Eigenschaften", +CheckboxProp : "Checkbox-Eigenschaften", +HiddenFieldProp : "Verstecktes Feld-Eigenschaften", +RadioButtonProp : "Optionsfeld-Eigenschaften", +ImageButtonProp : "Bildbutton-Eigenschaften", +TextFieldProp : "Textfeld (einzeilig) Eigenschaften", +SelectionFieldProp : "Auswahlfeld-Eigenschaften", +TextareaProp : "Textfeld (mehrzeilig) Eigenschaften", +FormProp : "Formular-Eigenschaften", + +FontFormats : "Normal;Formatiert;Addresse;Überschrift 1;Überschrift 2;Überschrift 3;Überschrift 4;Überschrift 5;Überschrift 6;Normal (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Bearbeite XHTML. Bitte warten...", +Done : "Fertig", +PasteWordConfirm : "Der Text, den Sie einfügen möchten, scheint aus MS-Word kopiert zu sein. Möchten Sie ihn zuvor bereinigen lassen?", +NotCompatiblePaste : "Diese Funktion steht nur im Internet Explorer ab Version 5.5 zur Verfügung. Möchten Sie den Text unbereinigt einfügen?", +UnknownToolbarItem : "Unbekanntes Menüleisten-Objekt \"%1\"", +UnknownCommand : "Unbekannter Befehl \"%1\"", +NotImplemented : "Befehl nicht implementiert", +UnknownToolbarSet : "Menüleiste \"%1\" existiert nicht", +NoActiveX : "Die Sicherheitseinstellungen Ihres Browsers beschränken evtl. einige Funktionen des Editors. Aktivieren Sie die Option \"ActiveX-Steuerelemente und Plugins ausführen\" in den Sicherheitseinstellungen, um diese Funktionen nutzen zu können", +BrowseServerBlocked : "Ein Auswahlfenster konnte nicht geöffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.", +DialogBlocked : "Das Dialog-Fenster konnte nicht geöffnet werden. Stellen Sie sicher, das alle Popup-Blocker ausgeschaltet sind.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Abbrechen", +DlgBtnClose : "Schließen", +DlgBtnBrowseServer : "Server durchsuchen", +DlgAdvancedTag : "Erweitert", +DlgOpOther : "", +DlgInfoTab : "Info", +DlgAlertUrl : "Bitte tragen Sie die URL ein", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "ID", +DlgGenLangDir : "Schreibrichtung", +DlgGenLangDirLtr : "Links nach Rechts (LTR)", +DlgGenLangDirRtl : "Rechts nach Links (RTL)", +DlgGenLangCode : "Sprachenkürzel", +DlgGenAccessKey : "Zugriffstaste", +DlgGenName : "Name", +DlgGenTabIndex : "Tab-Index", +DlgGenLongDescr : "Langform URL", +DlgGenClass : "Stylesheet Klasse", +DlgGenTitle : "Titel Beschreibung", +DlgGenContType : "Inhaltstyp", +DlgGenLinkCharset : "Ziel-Zeichensatz", +DlgGenStyle : "Style", + +// Image Dialog +DlgImgTitle : "Bild-Eigenschaften", +DlgImgInfoTab : "Bild-Info", +DlgImgBtnUpload : "Zum Server senden", +DlgImgURL : "Bildauswahl", +DlgImgUpload : "Upload", +DlgImgAlt : "Alternativer Text", +DlgImgWidth : "Breite", +DlgImgHeight : "Höhe", +DlgImgLockRatio : "Größenverhältniss beibehalten", +DlgBtnResetSize : "Größe zurücksetzen", +DlgImgBorder : "Rahmen", +DlgImgHSpace : "H-Abstand", +DlgImgVSpace : "V-Abstand", +DlgImgAlign : "Ausrichtung", +DlgImgAlignLeft : "Links", +DlgImgAlignAbsBottom: "Abs Unten", +DlgImgAlignAbsMiddle: "Abs Mitte", +DlgImgAlignBaseline : "Baseline", +DlgImgAlignBottom : "Unten", +DlgImgAlignMiddle : "Mitte", +DlgImgAlignRight : "Rechts", +DlgImgAlignTextTop : "Text Oben", +DlgImgAlignTop : "Oben", +DlgImgPreview : "Vorschau", +DlgImgAlertUrl : "Bitte geben Sie die Bild-URL an", +DlgImgLinkTab : "Link", + +// Flash Dialog +DlgFlashTitle : "Flash-Eigenschaften", +DlgFlashChkPlay : "autom. Abspielen", +DlgFlashChkLoop : "Endlosschleife", +DlgFlashChkMenu : "Flash-Menü aktivieren", +DlgFlashScale : "Skalierung", +DlgFlashScaleAll : "Alles anzeigen", +DlgFlashScaleNoBorder : "ohne Rand", +DlgFlashScaleFit : "Passgenau", + +// Link Dialog +DlgLnkWindowTitle : "Link", +DlgLnkInfoTab : "Link-Info", +DlgLnkTargetTab : "Zielseite", + +DlgLnkType : "Link-Typ", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Anker in dieser Seite", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Protokoll", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Anker auswählen", +DlgLnkAnchorByName : "nach Anker Name", +DlgLnkAnchorById : "nach Element Id", +DlgLnkNoAnchors : "(keine Anker im Dokument vorhanden)", +DlgLnkEMail : "E-Mail Addresse", +DlgLnkEMailSubject : "Betreffzeile", +DlgLnkEMailBody : "Nachrichtentext", +DlgLnkUpload : "Upload", +DlgLnkBtnUpload : "Zum Server senden", + +DlgLnkTarget : "Zielseite", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Neues Fenster (_blank)", +DlgLnkTargetParent : "Oberes Fenster (_parent)", +DlgLnkTargetSelf : "Gleiches Fenster (_self)", +DlgLnkTargetTop : "Oberstes Fenster (_top)", +DlgLnkTargetFrameName : "Ziel-Fenster-Name", +DlgLnkPopWinName : "Pop-up Fenster-Name", +DlgLnkPopWinFeat : "Pop-up Fenster-Eigenschaften", +DlgLnkPopResize : "Vergrößerbar", +DlgLnkPopLocation : "Adress-Leiste", +DlgLnkPopMenu : "Menü-Leiste", +DlgLnkPopScroll : "Rollbalken", +DlgLnkPopStatus : "Statusleiste", +DlgLnkPopToolbar : "Werkzeugleiste", +DlgLnkPopFullScrn : "Vollbild (IE)", +DlgLnkPopDependent : "Abhängig (Netscape)", +DlgLnkPopWidth : "Breite", +DlgLnkPopHeight : "Höhe", +DlgLnkPopLeft : "Linke Position", +DlgLnkPopTop : "Obere Position", + +DlnLnkMsgNoUrl : "Bitte geben Sie die Link-URL an", +DlnLnkMsgNoEMail : "Bitte geben Sie e-Mail Adresse an", +DlnLnkMsgNoAnchor : "Bitte wählen Sie einen Anker aus", +DlnLnkMsgInvPopName : "Der Name des Popups muss mit einem Buchstaben beginnen und darf keine Leerzeichen enthalten", + +// Color Dialog +DlgColorTitle : "Farbauswahl", +DlgColorBtnClear : "Keine Farbe", +DlgColorHighlight : "Vorschau", +DlgColorSelected : "Ausgewählt", + +// Smiley Dialog +DlgSmileyTitle : "Smiley auswählen", + +// Special Character Dialog +DlgSpecialCharTitle : "Sonderzeichen auswählen", + +// Table Dialog +DlgTableTitle : "Tabellen-Eigenschaften", +DlgTableRows : "Zeile", +DlgTableColumns : "Spalte", +DlgTableBorder : "Rahmen", +DlgTableAlign : "Ausrichtung", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Links", +DlgTableAlignCenter : "Zentriert", +DlgTableAlignRight : "Rechts", +DlgTableWidth : "Breite", +DlgTableWidthPx : "Pixel", +DlgTableWidthPc : "%", +DlgTableHeight : "Höhe", +DlgTableCellSpace : "Zellenabstand außen", +DlgTableCellPad : "Zellenabstand innen", +DlgTableCaption : "Überschrift", +DlgTableSummary : "Inhaltsübersicht", + +// Table Cell Dialog +DlgCellTitle : "Zellen-Eigenschaften", +DlgCellWidth : "Breite", +DlgCellWidthPx : "Pixel", +DlgCellWidthPc : "%", +DlgCellHeight : "Höhe", +DlgCellWordWrap : "Umbruch", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Ja", +DlgCellWordWrapNo : "Nein", +DlgCellHorAlign : "Horizontale Ausrichtung", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Links", +DlgCellHorAlignCenter : "Zentriert", +DlgCellHorAlignRight: "Rechts", +DlgCellVerAlign : "Vertikale Ausrichtung", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Oben", +DlgCellVerAlignMiddle : "Mitte", +DlgCellVerAlignBottom : "Unten", +DlgCellVerAlignBaseline : "Grundlinie", +DlgCellRowSpan : "Zeilen zusammenfassen", +DlgCellCollSpan : "Spalten zusammenfassen", +DlgCellBackColor : "Hintergrundfarbe", +DlgCellBorderColor : "Rahmenfarbe", +DlgCellBtnSelect : "Auswahl...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Suchen und Ersetzen", + +// Find Dialog +DlgFindTitle : "Finden", +DlgFindFindBtn : "Finden", +DlgFindNotFoundMsg : "Der gesuchte Text wurde nicht gefunden.", + +// Replace Dialog +DlgReplaceTitle : "Ersetzen", +DlgReplaceFindLbl : "Suche nach:", +DlgReplaceReplaceLbl : "Ersetze mit:", +DlgReplaceCaseChk : "Groß-Kleinschreibung beachten", +DlgReplaceReplaceBtn : "Ersetzen", +DlgReplaceReplAllBtn : "Alle Ersetzen", +DlgReplaceWordChk : "Nur ganze Worte suchen", + +// Paste Operations / Dialog +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 Strg+V) ein und bestätigen Sie mit OK.", +DlgPasteSec : "Aufgrund von Sicherheitsbeschränkungen Ihres Browsers kann der Editor nicht direkt auf die Zwischenablage zugreifen. Bitte fügen Sie den Inhalt erneut in diesem Fenster ein.", +DlgPasteIgnoreFont : "Ignoriere Schriftart-Definitionen", +DlgPasteRemoveStyles : "Entferne Style-Definitionen", + +// Color Picker +ColorAutomatic : "Automatisch", +ColorMoreColors : "Weitere Farben...", + +// Document Properties +DocProps : "Dokument-Eigenschaften", + +// Anchor Dialog +DlgAnchorTitle : "Anker-Eigenschaften", +DlgAnchorName : "Anker Name", +DlgAnchorErrorName : "Bitte geben Sie den Namen des Ankers ein", + +// Speller Pages Dialog +DlgSpellNotInDic : "Nicht im Wörterbuch", +DlgSpellChangeTo : "Ändern in", +DlgSpellBtnIgnore : "Ignorieren", +DlgSpellBtnIgnoreAll : "Alle Ignorieren", +DlgSpellBtnReplace : "Ersetzen", +DlgSpellBtnReplaceAll : "Alle Ersetzen", +DlgSpellBtnUndo : "Rückgängig", +DlgSpellNoSuggestions : " - keine Vorschläge - ", +DlgSpellProgress : "Rechtschreibprüfung läuft...", +DlgSpellNoMispell : "Rechtschreibprüfung abgeschlossen - keine Fehler gefunden", +DlgSpellNoChanges : "Rechtschreibprüfung abgeschlossen - keine Worte geändert", +DlgSpellOneChange : "Rechtschreibprüfung abgeschlossen - ein Wort geändert", +DlgSpellManyChanges : "Rechtschreibprüfung abgeschlossen - %1 Wörter geändert", + +IeSpellDownload : "Rechtschreibprüfung nicht installiert. Möchten Sie sie jetzt herunterladen?", + +// Button Dialog +DlgButtonText : "Text (Wert)", +DlgButtonType : "Typ", +DlgButtonTypeBtn : "Button", +DlgButtonTypeSbm : "Absenden", +DlgButtonTypeRst : "Zurücksetzen", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Name", +DlgCheckboxValue : "Wert", +DlgCheckboxSelected : "ausgewählt", + +// Form Dialog +DlgFormName : "Name", +DlgFormAction : "Action", +DlgFormMethod : "Method", + +// Select Field Dialog +DlgSelectName : "Name", +DlgSelectValue : "Wert", +DlgSelectSize : "Größe", +DlgSelectLines : "Linien", +DlgSelectChkMulti : "Erlaube Mehrfachauswahl", +DlgSelectOpAvail : "Mögliche Optionen", +DlgSelectOpText : "Text", +DlgSelectOpValue : "Wert", +DlgSelectBtnAdd : "Hinzufügen", +DlgSelectBtnModify : "Ändern", +DlgSelectBtnUp : "Hoch", +DlgSelectBtnDown : "Runter", +DlgSelectBtnSetValue : "Setze als Standardwert", +DlgSelectBtnDelete : "Entfernen", + +// Textarea Dialog +DlgTextareaName : "Name", +DlgTextareaCols : "Spalten", +DlgTextareaRows : "Reihen", + +// Text Field Dialog +DlgTextName : "Name", +DlgTextValue : "Wert", +DlgTextCharWidth : "Zeichenbreite", +DlgTextMaxChars : "Max. Zeichen", +DlgTextType : "Typ", +DlgTextTypeText : "Text", +DlgTextTypePass : "Passwort", + +// Hidden Field Dialog +DlgHiddenName : "Name", +DlgHiddenValue : "Wert", + +// Bulleted List Dialog +BulletedListProp : "Listen-Eigenschaften", +NumberedListProp : "Nummerierte Listen-Eigenschaften", +DlgLstStart : "Start", +DlgLstType : "Typ", +DlgLstTypeCircle : "Ring", +DlgLstTypeDisc : "Kreis", +DlgLstTypeSquare : "Quadrat", +DlgLstTypeNumbers : "Nummern (1, 2, 3)", +DlgLstTypeLCase : "Kleinbuchstaben (a, b, c)", +DlgLstTypeUCase : "Großbuchstaben (A, B, C)", +DlgLstTypeSRoman : "Kleine römische Zahlen (i, ii, iii)", +DlgLstTypeLRoman : "Große römische Zahlen (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Allgemein", +DlgDocBackTab : "Hintergrund", +DlgDocColorsTab : "Farben und Abstände", +DlgDocMetaTab : "Metadaten", + +DlgDocPageTitle : "Seitentitel", +DlgDocLangDir : "Schriftrichtung", +DlgDocLangDirLTR : "Links nach Rechts", +DlgDocLangDirRTL : "Rechts nach Links", +DlgDocLangCode : "Sprachkürzel", +DlgDocCharSet : "Zeichenkodierung", +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", +DlgDocDocTypeOther : "Anderer Dokumententyp", +DlgDocIncXHTML : "Beziehe XHTML Deklarationen ein", +DlgDocBgColor : "Hintergrundfarbe", +DlgDocBgImage : "Hintergrundbild URL", +DlgDocBgNoScroll : "feststehender Hintergrund", +DlgDocCText : "Text", +DlgDocCLink : "Link", +DlgDocCVisited : "Besuchter Link", +DlgDocCActive : "Aktiver Link", +DlgDocMargins : "Seitenränder", +DlgDocMaTop : "Oben", +DlgDocMaLeft : "Links", +DlgDocMaRight : "Rechts", +DlgDocMaBottom : "Unten", +DlgDocMeIndex : "Schlüsselwörter (durch Komma getrennt)", +DlgDocMeDescr : "Dokument-Beschreibung", +DlgDocMeAuthor : "Autor", +DlgDocMeCopy : "Copyright", +DlgDocPreview : "Vorschau", + +// Templates Dialog +Templates : "Vorlagen", +DlgTemplatesTitle : "Vorlagen", +DlgTemplatesSelMsg : "Klicken Sie auf eine Vorlage, um sie im Editor zu öffnen (der aktuelle Inhalt wird dabei gelöscht!):", +DlgTemplatesLoading : "Liste der Vorlagen wird geladen. Bitte warten...", +DlgTemplatesNoTpl : "(keine Vorlagen definiert)", +DlgTemplatesReplace : "Aktuellen Inhalt ersetzen", + +// About Dialog +DlgAboutAboutTab : "Über", +DlgAboutBrowserInfoTab : "Browser-Info", +DlgAboutLicenseTab : "Lizenz", +DlgAboutVersion : "Version", +DlgAboutInfo : "Für weitere Informationen siehe", + +// Div Dialog +DlgDivGeneralTab : "Allgemein", +DlgDivAdvancedTab : "Erweitert", +DlgDivStyle : "Style", +DlgDivInlineStyle : "Inline Style" +}; diff --git a/fckeditor/editor/lang/el.js b/fckeditor/editor/lang/el.js new file mode 100644 index 0000000..e62ded6 --- /dev/null +++ b/fckeditor/editor/lang/el.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Greek 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 : "Σύνδεσμος (Link)", +InsertLink : "Εισαγωγή/Μεταβολή Συνδέσμου (Link)", +RemoveLink : "Αφαίρεση Συνδέσμου (Link)", +VisitLink : "Open Link", //MISSING +Anchor : "Εισαγωγή/επεξεργασία Anchor", +AnchorDelete : "Remove Anchor", //MISSING +InsertImageLbl : "Εικόνα", +InsertImage : "Εισαγωγή/Μεταβολή Εικόνας", +InsertFlashLbl : "Εισαγωγή Flash", +InsertFlash : "Εισαγωγή/επεξεργασία Flash", +InsertTableLbl : "Πίνακας", +InsertTable : "Εισαγωγή/Μεταβολή Πίνακα", +InsertLineLbl : "Γραμμή", +InsertLine : "Εισαγωγή Οριζόντιας Γραμμής", +InsertSpecialCharLbl: "Ειδικό Σύμβολο", +InsertSpecialChar : "Εισαγωγή Ειδικού Συμβόλου", +InsertSmileyLbl : "Smiley", +InsertSmiley : "Εισαγωγή Smiley", +About : "Περί του FCKeditor", +Bold : "Έντονα", +Italic : "Πλάγια", +Underline : "Υπογράμμιση", +StrikeThrough : "Διαγράμμιση", +Subscript : "Δείκτης", +Superscript : "Εκθέτης", +LeftJustify : "Στοίχιση Αριστερά", +CenterJustify : "Στοίχιση στο Κέντρο", +RightJustify : "Στοίχιση Δεξιά", +BlockJustify : "Πλήρης Στοίχιση (Block)", +DecreaseIndent : "Μείωση Εσοχής", +IncreaseIndent : "Αύξηση Εσοχής", +Blockquote : "Blockquote", //MISSING +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "Αναίρεση", +Redo : "Επαναφορά", +NumberedListLbl : "Λίστα με Αριθμούς", +NumberedList : "Εισαγωγή/Διαγραφή Λίστας με Αριθμούς", +BulletedListLbl : "Λίστα με Bullets", +BulletedList : "Εισαγωγή/Διαγραφή Λίστας με Bullets", +ShowTableBorders : "Προβολή Ορίων Πίνακα", +ShowDetails : "Προβολή Λεπτομερειών", +Style : "Στυλ", +FontFormat : "Μορφή Γραμματοσειράς", +Font : "Γραμματοσειρά", +FontSize : "Μέγεθος", +TextColor : "Χρώμα Γραμμάτων", +BGColor : "Χρώμα Υποβάθρου", +Source : "HTML κώδικας", +Find : "Αναζήτηση", +Replace : "Αντικατάσταση", +SpellCheck : "Ορθογραφικός έλεγχος", +UniversalKeyboard : "Διεθνής πληκτρολόγιο", +PageBreakLbl : "Τέλος σελίδας", +PageBreak : "Εισαγωγή τέλους σελίδας", + +Form : "Φόρμα", +Checkbox : "Κουτί επιλογής", +RadioButton : "Κουμπί Radio", +TextField : "Πεδίο κειμένου", +Textarea : "Περιοχή κειμένου", +HiddenField : "Κρυφό πεδίο", +Button : "Κουμπί", +SelectionField : "Πεδίο επιλογής", +ImageButton : "Κουμπί εικόνας", + +FitWindow : "Μεγιστοποίηση προγράμματος", +ShowBlocks : "Show Blocks", //MISSING + +// Context Menu +EditLink : "Μεταβολή Συνδέσμου (Link)", +CellCM : "Κελί", +RowCM : "Σειρά", +ColumnCM : "Στήλη", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING +DeleteRows : "Διαγραφή Γραμμών", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING +DeleteColumns : "Διαγραφή Κολωνών", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING +DeleteCells : "Διαγραφή Κελιών", +MergeCells : "Ενοποίηση Κελιών", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING +TableDelete : "Διαγραφή πίνακα", +CellProperties : "Ιδιότητες Κελιού", +TableProperties : "Ιδιότητες Πίνακα", +ImageProperties : "Ιδιότητες Εικόνας", +FlashProperties : "Ιδιότητες Flash", + +AnchorProp : "Ιδιότητες άγκυρας", +ButtonProp : "Ιδιότητες κουμπιού", +CheckboxProp : "Ιδιότητες κουμπιού επιλογής", +HiddenFieldProp : "Ιδιότητες κρυφού πεδίου", +RadioButtonProp : "Ιδιότητες κουμπιού radio", +ImageButtonProp : "Ιδιότητες κουμπιού εικόνας", +TextFieldProp : "Ιδιότητες πεδίου κειμένου", +SelectionFieldProp : "Ιδιότητες πεδίου επιλογής", +TextareaProp : "Ιδιότητες περιοχής κειμένου", +FormProp : "Ιδιότητες φόρμας", + +FontFormats : "Κανονικό;Μορφοποιημένο;Διεύθυνση;Επικεφαλίδα 1;Επικεφαλίδα 2;Επικεφαλίδα 3;Επικεφαλίδα 4;Επικεφαλίδα 5;Επικεφαλίδα 6", + +// Alerts and Messages +ProcessingXHTML : "Επεξεργασία XHTML. Παρακαλώ περιμένετε...", +Done : "Έτοιμο", +PasteWordConfirm : "Το κείμενο που θέλετε να επικολήσετε, φαίνεται πως προέρχεται από το Word. Θέλετε να καθαριστεί πριν επικοληθεί;", +NotCompatiblePaste : "Αυτή η επιλογή είναι διαθέσιμη στον Internet Explorer έκδοση 5.5+. Θέλετε να γίνει η επικόλληση χωρίς καθαρισμό;", +UnknownToolbarItem : "Άγνωστο αντικείμενο της μπάρας εργαλείων \"%1\"", +UnknownCommand : "Άγνωστή εντολή \"%1\"", +NotImplemented : "Η εντολή δεν έχει ενεργοποιηθεί", +UnknownToolbarSet : "Η μπάρα εργαλείων \"%1\" δεν υπάρχει", +NoActiveX : "Οι ρυθμίσεις ασφαλείας του browser σας μπορεί να περιορίσουν κάποιες ρυθμίσεις του προγράμματος. Χρειάζεται να ενεργοποιήσετε την επιλογή \"Run ActiveX controls and plug-ins\". Ίσως παρουσιαστούν λάθη και παρατηρήσετε ελειπείς λειτουργίες.", +BrowseServerBlocked : "Οι πόροι του browser σας δεν είναι προσπελάσιμοι. Σιγουρευτείτε ότι δεν υπάρχουν ενεργοί popup blockers.", +DialogBlocked : "Δεν ήταν δυνατό να ανοίξει το παράθυρο διαλόγου. Σιγουρευτείτε ότι δεν υπάρχουν ενεργοί popup blockers.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Ακύρωση", +DlgBtnClose : "Κλείσιμο", +DlgBtnBrowseServer : "Εξερεύνηση διακομιστή", +DlgAdvancedTag : "Για προχωρημένους", +DlgOpOther : "<Άλλα>", +DlgInfoTab : "Πληροφορίες", +DlgAlertUrl : "Παρακαλώ εισάγετε URL", + +// General Dialogs Labels +DlgGenNotSet : "<χωρίς>", +DlgGenId : "Id", +DlgGenLangDir : "Κατεύθυνση κειμένου", +DlgGenLangDirLtr : "Αριστερά προς Δεξιά (LTR)", +DlgGenLangDirRtl : "Δεξιά προς Αριστερά (RTL)", +DlgGenLangCode : "Κωδικός Γλώσσας", +DlgGenAccessKey : "Συντόμευση (Access Key)", +DlgGenName : "Όνομα", +DlgGenTabIndex : "Tab Index", +DlgGenLongDescr : "Αναλυτική περιγραφή URL", +DlgGenClass : "Stylesheet Classes", +DlgGenTitle : "Συμβουλευτικός τίτλος", +DlgGenContType : "Συμβουλευτικός τίτλος περιεχομένου", +DlgGenLinkCharset : "Linked Resource Charset", +DlgGenStyle : "Στύλ", + +// Image Dialog +DlgImgTitle : "Ιδιότητες Εικόνας", +DlgImgInfoTab : "Πληροφορίες Εικόνας", +DlgImgBtnUpload : "Αποστολή στον Διακομιστή", +DlgImgURL : "URL", +DlgImgUpload : "Αποστολή", +DlgImgAlt : "Εναλλακτικό Κείμενο (ALT)", +DlgImgWidth : "Πλάτος", +DlgImgHeight : "Ύψος", +DlgImgLockRatio : "Κλείδωμα Αναλογίας", +DlgBtnResetSize : "Επαναφορά Αρχικού Μεγέθους", +DlgImgBorder : "Περιθώριο", +DlgImgHSpace : "Οριζόντιος Χώρος (HSpace)", +DlgImgVSpace : "Κάθετος Χώρος (VSpace)", +DlgImgAlign : "Ευθυγράμμιση (Align)", +DlgImgAlignLeft : "Αριστερά", +DlgImgAlignAbsBottom: "Απόλυτα Κάτω (Abs Bottom)", +DlgImgAlignAbsMiddle: "Απόλυτα στη Μέση (Abs Middle)", +DlgImgAlignBaseline : "Γραμμή Βάσης (Baseline)", +DlgImgAlignBottom : "Κάτω (Bottom)", +DlgImgAlignMiddle : "Μέση (Middle)", +DlgImgAlignRight : "Δεξιά (Right)", +DlgImgAlignTextTop : "Κορυφή Κειμένου (Text Top)", +DlgImgAlignTop : "Πάνω (Top)", +DlgImgPreview : "Προεπισκόπιση", +DlgImgAlertUrl : "Εισάγετε την τοποθεσία (URL) της εικόνας", +DlgImgLinkTab : "Σύνδεσμος", + +// Flash Dialog +DlgFlashTitle : "Ιδιότητες flash", +DlgFlashChkPlay : "Αυτόματη έναρξη", +DlgFlashChkLoop : "Επανάληψη", +DlgFlashChkMenu : "Ενεργοποίηση Flash Menu", +DlgFlashScale : "Κλίμακα", +DlgFlashScaleAll : "Εμφάνιση όλων", +DlgFlashScaleNoBorder : "Χωρίς όρια", +DlgFlashScaleFit : "Ακριβής εφαρμογή", + +// Link Dialog +DlgLnkWindowTitle : "Σύνδεσμος (Link)", +DlgLnkInfoTab : "Link", +DlgLnkTargetTab : "Παράθυρο Στόχος (Target)", + +DlgLnkType : "Τύπος συνδέσμου (Link)", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Άγκυρα σε αυτή τη σελίδα", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Προτόκολο", +DlgLnkProtoOther : "<άλλο>", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Επιλέξτε μια άγκυρα", +DlgLnkAnchorByName : "Βάσει του Ονόματος (Name) της άγκυρας", +DlgLnkAnchorById : "Βάσει του Element Id", +DlgLnkNoAnchors : "(Δεν υπάρχουν άγκυρες στο κείμενο)", +DlgLnkEMail : "Διεύθυνση Ηλεκτρονικού Ταχυδρομείου", +DlgLnkEMailSubject : "Θέμα Μηνύματος", +DlgLnkEMailBody : "Κείμενο Μηνύματος", +DlgLnkUpload : "Αποστολή", +DlgLnkBtnUpload : "Αποστολή στον Διακομιστή", + +DlgLnkTarget : "Παράθυρο Στόχος (Target)", +DlgLnkTargetFrame : "<πλαίσιο>", +DlgLnkTargetPopup : "<παράθυρο popup>", +DlgLnkTargetBlank : "Νέο Παράθυρο (_blank)", +DlgLnkTargetParent : "Γονικό Παράθυρο (_parent)", +DlgLnkTargetSelf : "Ίδιο Παράθυρο (_self)", +DlgLnkTargetTop : "Ανώτατο Παράθυρο (_top)", +DlgLnkTargetFrameName : "Όνομα πλαισίου στόχου", +DlgLnkPopWinName : "Όνομα Popup Window", +DlgLnkPopWinFeat : "Επιλογές Popup Window", +DlgLnkPopResize : "Με αλλαγή Μεγέθους", +DlgLnkPopLocation : "Μπάρα Τοποθεσίας", +DlgLnkPopMenu : "Μπάρα Menu", +DlgLnkPopScroll : "Μπάρες Κύλισης", +DlgLnkPopStatus : "Μπάρα Status", +DlgLnkPopToolbar : "Μπάρα Εργαλείων", +DlgLnkPopFullScrn : "Ολόκληρη η Οθόνη (IE)", +DlgLnkPopDependent : "Dependent (Netscape)", +DlgLnkPopWidth : "Πλάτος", +DlgLnkPopHeight : "Ύψος", +DlgLnkPopLeft : "Τοποθεσία Αριστερής Άκρης", +DlgLnkPopTop : "Τοποθεσία Πάνω Άκρης", + +DlnLnkMsgNoUrl : "Εισάγετε την τοποθεσία (URL) του υπερσυνδέσμου (Link)", +DlnLnkMsgNoEMail : "Εισάγετε την διεύθυνση ηλεκτρονικού ταχυδρομείου", +DlnLnkMsgNoAnchor : "Επιλέξτε ένα Anchor", +DlnLnkMsgInvPopName : "Το όνομα του popup πρέπει να αρχίζει με χαρακτήρα της αλφαβήτου και να μην περιέχει κενά", + +// Color Dialog +DlgColorTitle : "Επιλογή χρώματος", +DlgColorBtnClear : "Καθαρισμός", +DlgColorHighlight : "Προεπισκόπιση", +DlgColorSelected : "Επιλεγμένο", + +// Smiley Dialog +DlgSmileyTitle : "Επιλέξτε ένα Smiley", + +// Special Character Dialog +DlgSpecialCharTitle : "Επιλέξτε ένα Ειδικό Σύμβολο", + +// Table Dialog +DlgTableTitle : "Ιδιότητες Πίνακα", +DlgTableRows : "Γραμμές", +DlgTableColumns : "Κολώνες", +DlgTableBorder : "Μέγεθος Περιθωρίου", +DlgTableAlign : "Στοίχιση", +DlgTableAlignNotSet : "<χωρίς>", +DlgTableAlignLeft : "Αριστερά", +DlgTableAlignCenter : "Κέντρο", +DlgTableAlignRight : "Δεξιά", +DlgTableWidth : "Πλάτος", +DlgTableWidthPx : "pixels", +DlgTableWidthPc : "\%", +DlgTableHeight : "Ύψος", +DlgTableCellSpace : "Απόσταση κελιών", +DlgTableCellPad : "Γέμισμα κελιών", +DlgTableCaption : "Υπέρτιτλος", +DlgTableSummary : "Περίληψη", + +// Table Cell Dialog +DlgCellTitle : "Ιδιότητες Κελιού", +DlgCellWidth : "Πλάτος", +DlgCellWidthPx : "pixels", +DlgCellWidthPc : "\%", +DlgCellHeight : "Ύψος", +DlgCellWordWrap : "Με αλλαγή γραμμής", +DlgCellWordWrapNotSet : "<χωρίς>", +DlgCellWordWrapYes : "Ναι", +DlgCellWordWrapNo : "Όχι", +DlgCellHorAlign : "Οριζόντια Στοίχιση", +DlgCellHorAlignNotSet : "<χωρίς>", +DlgCellHorAlignLeft : "Αριστερά", +DlgCellHorAlignCenter : "Κέντρο", +DlgCellHorAlignRight: "Δεξιά", +DlgCellVerAlign : "Κάθετη Στοίχιση", +DlgCellVerAlignNotSet : "<χωρίς>", +DlgCellVerAlignTop : "Πάνω (Top)", +DlgCellVerAlignMiddle : "Μέση (Middle)", +DlgCellVerAlignBottom : "Κάτω (Bottom)", +DlgCellVerAlignBaseline : "Γραμμή Βάσης (Baseline)", +DlgCellRowSpan : "Αριθμός Γραμμών (Rows Span)", +DlgCellCollSpan : "Αριθμός Κολωνών (Columns Span)", +DlgCellBackColor : "Χρώμα Υποβάθρου", +DlgCellBorderColor : "Χρώμα Περιθωρίου", +DlgCellBtnSelect : "Επιλογή...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + +// 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 : "Παρακαλώ επικολήστε στο ακόλουθο κουτί χρησιμοποιόντας το πληκτρολόγιο (Ctrl+V) και πατήστε OK.", +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 : "Αφαίρεση προδιαγραφών στύλ", + +// 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 : "Ιδιότητες λίστας 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 : "Γενικά", +DlgDocBackTab : "Φόντο", +DlgDocColorsTab : "Χρώματα και περιθώρια", +DlgDocMetaTab : "Δεδομένα Meta", + +DlgDocPageTitle : "Τίτλος σελίδας", +DlgDocLangDir : "Κατεύθυνση γραφής", +DlgDocLangDirLTR : "αριστερά προς δεξιά (LTR)", +DlgDocLangDirRTL : "δεξιά προς αριστερά (RTL)", +DlgDocLangCode : "Κωδικός γλώσσας", +DlgDocCharSet : "Κωδικοποίηση χαρακτήρων", +DlgDocCharSetCE : "Κεντρικής Ευρώπης", +DlgDocCharSetCT : "Παραδοσιακά κινέζικα (Big5)", +DlgDocCharSetCR : "Κυριλλική", +DlgDocCharSetGR : "Ελληνική", +DlgDocCharSetJP : "Ιαπωνική", +DlgDocCharSetKR : "Κορεάτικη", +DlgDocCharSetTR : "Τουρκική", +DlgDocCharSetUN : "Διεθνής (UTF-8)", +DlgDocCharSetWE : "Δυτικής Ευρώπης", +DlgDocCharSetOther : "Άλλη κωδικοποίηση χαρακτήρων", + +DlgDocDocType : "Επικεφαλίδα τύπου εγγράφου", +DlgDocDocTypeOther : "Άλλη επικεφαλίδα τύπου εγγράφου", +DlgDocIncXHTML : "Να συμπεριληφθούν οι δηλώσεις XHTML", +DlgDocBgColor : "Χρώμα φόντου", +DlgDocBgImage : "Διεύθυνση εικόνας φόντου", +DlgDocBgNoScroll : "Φόντο χωρίς κύλιση", +DlgDocCText : "Κείμενο", +DlgDocCLink : "Σύνδεσμος", +DlgDocCVisited : "Σύνδεσμος που έχει επισκευθεί", +DlgDocCActive : "Ενεργός σύνδεσμος", +DlgDocMargins : "Περιθώρια σελίδας", +DlgDocMaTop : "Κορυφή", +DlgDocMaLeft : "Αριστερά", +DlgDocMaRight : "Δεξιά", +DlgDocMaBottom : "Κάτω", +DlgDocMeIndex : "Λέξεις κλειδιά δείκτες εγγράφου (διαχωρισμός με κόμμα)", +DlgDocMeDescr : "Περιγραφή εγγράφου", +DlgDocMeAuthor : "Συγγραφέας", +DlgDocMeCopy : "Πνευματικά δικαιώματα", +DlgDocPreview : "Προεπισκόπηση", + +// Templates Dialog +Templates : "Πρότυπα", +DlgTemplatesTitle : "Πρότυπα περιεχομένου", +DlgTemplatesSelMsg : "Παρακαλώ επιλέξτε πρότυπο για εισαγωγή στο πρόγραμμα
      (τα υπάρχοντα περιεχόμενα θα χαθούν):", +DlgTemplatesLoading : "Φόρτωση καταλόγου προτύπων. Παρακαλώ περιμένετε...", +DlgTemplatesNoTpl : "(Δεν έχουν καθοριστεί πρότυπα)", +DlgTemplatesReplace : "Αντικατάσταση υπάρχοντων περιεχομένων", + +// About Dialog +DlgAboutAboutTab : "Σχετικά", +DlgAboutBrowserInfoTab : "Πληροφορίες Browser", +DlgAboutLicenseTab : "Άδεια", +DlgAboutVersion : "έκδοση", +DlgAboutInfo : "Για περισσότερες πληροφορίες", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/en-au.js b/fckeditor/editor/lang/en-au.js new file mode 100644 index 0000000..5ea421e --- /dev/null +++ b/fckeditor/editor/lang/en-au.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * English (Australia) 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", +VisitLink : "Open Link", +Anchor : "Insert/Edit Anchor", +AnchorDelete : "Remove 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", +Blockquote : "Blockquote", +CreateDiv : "Create Div Container", +EditDiv : "Edit Div Container", +DeleteDiv : "Remove Div Container", +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", +ShowBlocks : "Show Blocks", + +// Context Menu +EditLink : "Edit Link", +CellCM : "Cell", +RowCM : "Row", +ColumnCM : "Column", +InsertRowAfter : "Insert Row After", +InsertRowBefore : "Insert Row Before", +DeleteRows : "Delete Rows", +InsertColumnAfter : "Insert Column After", +InsertColumnBefore : "Insert Column Before", +DeleteColumns : "Delete Columns", +InsertCellAfter : "Insert Cell After", +InsertCellBefore : "Insert Cell Before", +DeleteCells : "Delete Cells", +MergeCells : "Merge Cells", +MergeRight : "Merge Right", +MergeDown : "Merge Down", +HorizontalSplitCell : "Split Cell Horizontally", +VerticalSplitCell : "Split Cell Vertically", +TableDelete : "Delete Table", +CellProperties : "Cell Properties", +TableProperties : "Table Properties", +ImageProperties : "Image Properties", +FlashProperties : "Flash Properties", + +AnchorProp : "Anchor Properties", +ButtonProp : "Button Properties", +CheckboxProp : "Checkbox Properties", +HiddenFieldProp : "Hidden Field Properties", +RadioButtonProp : "Radio Button Properties", +ImageButtonProp : "Image Button Properties", +TextFieldProp : "Text Field Properties", +SelectionFieldProp : "Selection Field Properties", +TextareaProp : "Textarea Properties", +FormProp : "Form Properties", + +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Processing XHTML. Please wait...", +Done : "Done", +PasteWordConfirm : "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?", +NotCompatiblePaste : "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?", +UnknownToolbarItem : "Unknown toolbar item \"%1\"", +UnknownCommand : "Unknown command name \"%1\"", +NotImplemented : "Command not implemented", +UnknownToolbarSet : "Toolbar set \"%1\" doesn't exist", +NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", +BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.", +DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Cancel", +DlgBtnClose : "Close", +DlgBtnBrowseServer : "Browse Server", +DlgAdvancedTag : "Advanced", +DlgOpOther : "", +DlgInfoTab : "Info", +DlgAlertUrl : "Please insert the URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Language Direction", +DlgGenLangDirLtr : "Left to Right (LTR)", +DlgGenLangDirRtl : "Right to Left (RTL)", +DlgGenLangCode : "Language Code", +DlgGenAccessKey : "Access Key", +DlgGenName : "Name", +DlgGenTabIndex : "Tab Index", +DlgGenLongDescr : "Long Description URL", +DlgGenClass : "Stylesheet Classes", +DlgGenTitle : "Advisory Title", +DlgGenContType : "Advisory Content Type", +DlgGenLinkCharset : "Linked Resource Charset", +DlgGenStyle : "Style", + +// Image Dialog +DlgImgTitle : "Image Properties", +DlgImgInfoTab : "Image Info", +DlgImgBtnUpload : "Send it to the Server", +DlgImgURL : "URL", +DlgImgUpload : "Upload", +DlgImgAlt : "Alternative Text", +DlgImgWidth : "Width", +DlgImgHeight : "Height", +DlgImgLockRatio : "Lock Ratio", +DlgBtnResetSize : "Reset Size", +DlgImgBorder : "Border", +DlgImgHSpace : "HSpace", +DlgImgVSpace : "VSpace", +DlgImgAlign : "Align", +DlgImgAlignLeft : "Left", +DlgImgAlignAbsBottom: "Abs Bottom", +DlgImgAlignAbsMiddle: "Abs Middle", +DlgImgAlignBaseline : "Baseline", +DlgImgAlignBottom : "Bottom", +DlgImgAlignMiddle : "Middle", +DlgImgAlignRight : "Right", +DlgImgAlignTextTop : "Text Top", +DlgImgAlignTop : "Top", +DlgImgPreview : "Preview", +DlgImgAlertUrl : "Please type the image URL", +DlgImgLinkTab : "Link", + +// Flash Dialog +DlgFlashTitle : "Flash Properties", +DlgFlashChkPlay : "Auto Play", +DlgFlashChkLoop : "Loop", +DlgFlashChkMenu : "Enable Flash Menu", +DlgFlashScale : "Scale", +DlgFlashScaleAll : "Show all", +DlgFlashScaleNoBorder : "No Border", +DlgFlashScaleFit : "Exact Fit", + +// Link Dialog +DlgLnkWindowTitle : "Link", +DlgLnkInfoTab : "Link Info", +DlgLnkTargetTab : "Target", + +DlgLnkType : "Link Type", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Link to anchor in the text", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Protocol", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Select an Anchor", +DlgLnkAnchorByName : "By Anchor Name", +DlgLnkAnchorById : "By Element Id", +DlgLnkNoAnchors : "(No anchors available in the document)", +DlgLnkEMail : "E-Mail Address", +DlgLnkEMailSubject : "Message Subject", +DlgLnkEMailBody : "Message Body", +DlgLnkUpload : "Upload", +DlgLnkBtnUpload : "Send it to the Server", + +DlgLnkTarget : "Target", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "New Window (_blank)", +DlgLnkTargetParent : "Parent Window (_parent)", +DlgLnkTargetSelf : "Same Window (_self)", +DlgLnkTargetTop : "Topmost Window (_top)", +DlgLnkTargetFrameName : "Target Frame Name", +DlgLnkPopWinName : "Popup Window Name", +DlgLnkPopWinFeat : "Popup Window Features", +DlgLnkPopResize : "Resizable", +DlgLnkPopLocation : "Location Bar", +DlgLnkPopMenu : "Menu Bar", +DlgLnkPopScroll : "Scroll Bars", +DlgLnkPopStatus : "Status Bar", +DlgLnkPopToolbar : "Toolbar", +DlgLnkPopFullScrn : "Full Screen (IE)", +DlgLnkPopDependent : "Dependent (Netscape)", +DlgLnkPopWidth : "Width", +DlgLnkPopHeight : "Height", +DlgLnkPopLeft : "Left Position", +DlgLnkPopTop : "Top Position", + +DlnLnkMsgNoUrl : "Please type the link URL", +DlnLnkMsgNoEMail : "Please type the e-mail address", +DlnLnkMsgNoAnchor : "Please select an anchor", +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 : "", +DlgTableAlignLeft : "Left", +DlgTableAlignCenter : "Centre", +DlgTableAlignRight : "Right", +DlgTableWidth : "Width", +DlgTableWidthPx : "pixels", +DlgTableWidthPc : "percent", +DlgTableHeight : "Height", +DlgTableCellSpace : "Cell spacing", +DlgTableCellPad : "Cell padding", +DlgTableCaption : "Caption", +DlgTableSummary : "Summary", + +// Table Cell Dialog +DlgCellTitle : "Cell Properties", +DlgCellWidth : "Width", +DlgCellWidthPx : "pixels", +DlgCellWidthPc : "percent", +DlgCellHeight : "Height", +DlgCellWordWrap : "Word Wrap", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Yes", +DlgCellWordWrapNo : "No", +DlgCellHorAlign : "Horizontal Alignment", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Left", +DlgCellHorAlignCenter : "Centre", +DlgCellHorAlignRight: "Right", +DlgCellVerAlign : "Vertical Alignment", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Top", +DlgCellVerAlignMiddle : "Middle", +DlgCellVerAlignBottom : "Bottom", +DlgCellVerAlignBaseline : "Baseline", +DlgCellRowSpan : "Rows Span", +DlgCellCollSpan : "Columns Span", +DlgCellBackColor : "Background Colour", +DlgCellBorderColor : "Border Colour", +DlgCellBtnSelect : "Select...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", + +// 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 (Ctrl+V) and hit OK.", +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", + +// 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
      (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", + +// Div Dialog +DlgDivGeneralTab : "General", +DlgDivAdvancedTab : "Advanced", +DlgDivStyle : "Style", +DlgDivInlineStyle : "Inline Style" +}; diff --git a/fckeditor/editor/lang/en-ca.js b/fckeditor/editor/lang/en-ca.js new file mode 100644 index 0000000..b192385 --- /dev/null +++ b/fckeditor/editor/lang/en-ca.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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", +VisitLink : "Open Link", +Anchor : "Insert/Edit Anchor", +AnchorDelete : "Remove 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", +Blockquote : "Blockquote", +CreateDiv : "Create Div Container", +EditDiv : "Edit Div Container", +DeleteDiv : "Remove Div Container", +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", +ShowBlocks : "Show Blocks", + +// Context Menu +EditLink : "Edit Link", +CellCM : "Cell", +RowCM : "Row", +ColumnCM : "Column", +InsertRowAfter : "Insert Row After", +InsertRowBefore : "Insert Row Before", +DeleteRows : "Delete Rows", +InsertColumnAfter : "Insert Column After", +InsertColumnBefore : "Insert Column Before", +DeleteColumns : "Delete Columns", +InsertCellAfter : "Insert Cell After", +InsertCellBefore : "Insert Cell Before", +DeleteCells : "Delete Cells", +MergeCells : "Merge Cells", +MergeRight : "Merge Right", +MergeDown : "Merge Down", +HorizontalSplitCell : "Split Cell Horizontally", +VerticalSplitCell : "Split Cell Vertically", +TableDelete : "Delete Table", +CellProperties : "Cell Properties", +TableProperties : "Table Properties", +ImageProperties : "Image Properties", +FlashProperties : "Flash Properties", + +AnchorProp : "Anchor Properties", +ButtonProp : "Button Properties", +CheckboxProp : "Checkbox Properties", +HiddenFieldProp : "Hidden Field Properties", +RadioButtonProp : "Radio Button Properties", +ImageButtonProp : "Image Button Properties", +TextFieldProp : "Text Field Properties", +SelectionFieldProp : "Selection Field Properties", +TextareaProp : "Textarea Properties", +FormProp : "Form Properties", + +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Processing XHTML. Please wait...", +Done : "Done", +PasteWordConfirm : "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?", +NotCompatiblePaste : "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?", +UnknownToolbarItem : "Unknown toolbar item \"%1\"", +UnknownCommand : "Unknown command name \"%1\"", +NotImplemented : "Command not implemented", +UnknownToolbarSet : "Toolbar set \"%1\" doesn't exist", +NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", +BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.", +DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Cancel", +DlgBtnClose : "Close", +DlgBtnBrowseServer : "Browse Server", +DlgAdvancedTag : "Advanced", +DlgOpOther : "", +DlgInfoTab : "Info", +DlgAlertUrl : "Please insert the URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Language Direction", +DlgGenLangDirLtr : "Left to Right (LTR)", +DlgGenLangDirRtl : "Right to Left (RTL)", +DlgGenLangCode : "Language Code", +DlgGenAccessKey : "Access Key", +DlgGenName : "Name", +DlgGenTabIndex : "Tab Index", +DlgGenLongDescr : "Long Description URL", +DlgGenClass : "Stylesheet Classes", +DlgGenTitle : "Advisory Title", +DlgGenContType : "Advisory Content Type", +DlgGenLinkCharset : "Linked Resource Charset", +DlgGenStyle : "Style", + +// Image Dialog +DlgImgTitle : "Image Properties", +DlgImgInfoTab : "Image Info", +DlgImgBtnUpload : "Send it to the Server", +DlgImgURL : "URL", +DlgImgUpload : "Upload", +DlgImgAlt : "Alternative Text", +DlgImgWidth : "Width", +DlgImgHeight : "Height", +DlgImgLockRatio : "Lock Ratio", +DlgBtnResetSize : "Reset Size", +DlgImgBorder : "Border", +DlgImgHSpace : "HSpace", +DlgImgVSpace : "VSpace", +DlgImgAlign : "Align", +DlgImgAlignLeft : "Left", +DlgImgAlignAbsBottom: "Abs Bottom", +DlgImgAlignAbsMiddle: "Abs Middle", +DlgImgAlignBaseline : "Baseline", +DlgImgAlignBottom : "Bottom", +DlgImgAlignMiddle : "Middle", +DlgImgAlignRight : "Right", +DlgImgAlignTextTop : "Text Top", +DlgImgAlignTop : "Top", +DlgImgPreview : "Preview", +DlgImgAlertUrl : "Please type the image URL", +DlgImgLinkTab : "Link", + +// Flash Dialog +DlgFlashTitle : "Flash Properties", +DlgFlashChkPlay : "Auto Play", +DlgFlashChkLoop : "Loop", +DlgFlashChkMenu : "Enable Flash Menu", +DlgFlashScale : "Scale", +DlgFlashScaleAll : "Show all", +DlgFlashScaleNoBorder : "No Border", +DlgFlashScaleFit : "Exact Fit", + +// Link Dialog +DlgLnkWindowTitle : "Link", +DlgLnkInfoTab : "Link Info", +DlgLnkTargetTab : "Target", + +DlgLnkType : "Link Type", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Link to anchor in the text", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Protocol", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Select an Anchor", +DlgLnkAnchorByName : "By Anchor Name", +DlgLnkAnchorById : "By Element Id", +DlgLnkNoAnchors : "(No anchors available in the document)", +DlgLnkEMail : "E-Mail Address", +DlgLnkEMailSubject : "Message Subject", +DlgLnkEMailBody : "Message Body", +DlgLnkUpload : "Upload", +DlgLnkBtnUpload : "Send it to the Server", + +DlgLnkTarget : "Target", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "New Window (_blank)", +DlgLnkTargetParent : "Parent Window (_parent)", +DlgLnkTargetSelf : "Same Window (_self)", +DlgLnkTargetTop : "Topmost Window (_top)", +DlgLnkTargetFrameName : "Target Frame Name", +DlgLnkPopWinName : "Popup Window Name", +DlgLnkPopWinFeat : "Popup Window Features", +DlgLnkPopResize : "Resizable", +DlgLnkPopLocation : "Location Bar", +DlgLnkPopMenu : "Menu Bar", +DlgLnkPopScroll : "Scroll Bars", +DlgLnkPopStatus : "Status Bar", +DlgLnkPopToolbar : "Toolbar", +DlgLnkPopFullScrn : "Full Screen (IE)", +DlgLnkPopDependent : "Dependent (Netscape)", +DlgLnkPopWidth : "Width", +DlgLnkPopHeight : "Height", +DlgLnkPopLeft : "Left Position", +DlgLnkPopTop : "Top Position", + +DlnLnkMsgNoUrl : "Please type the link URL", +DlnLnkMsgNoEMail : "Please type the e-mail address", +DlnLnkMsgNoAnchor : "Please select an anchor", +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 : "", +DlgTableAlignLeft : "Left", +DlgTableAlignCenter : "Centre", +DlgTableAlignRight : "Right", +DlgTableWidth : "Width", +DlgTableWidthPx : "pixels", +DlgTableWidthPc : "percent", +DlgTableHeight : "Height", +DlgTableCellSpace : "Cell spacing", +DlgTableCellPad : "Cell padding", +DlgTableCaption : "Caption", +DlgTableSummary : "Summary", + +// Table Cell Dialog +DlgCellTitle : "Cell Properties", +DlgCellWidth : "Width", +DlgCellWidthPx : "pixels", +DlgCellWidthPc : "percent", +DlgCellHeight : "Height", +DlgCellWordWrap : "Word Wrap", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Yes", +DlgCellWordWrapNo : "No", +DlgCellHorAlign : "Horizontal Alignment", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Left", +DlgCellHorAlignCenter : "Centre", +DlgCellHorAlignRight: "Right", +DlgCellVerAlign : "Vertical Alignment", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Top", +DlgCellVerAlignMiddle : "Middle", +DlgCellVerAlignBottom : "Bottom", +DlgCellVerAlignBaseline : "Baseline", +DlgCellRowSpan : "Rows Span", +DlgCellCollSpan : "Columns Span", +DlgCellBackColor : "Background Colour", +DlgCellBorderColor : "Border Colour", +DlgCellBtnSelect : "Select...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", + +// 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 (Ctrl+V) and hit OK.", +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", + +// 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
      (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", + +// Div Dialog +DlgDivGeneralTab : "General", +DlgDivAdvancedTab : "Advanced", +DlgDivStyle : "Style", +DlgDivInlineStyle : "Inline Style" +}; diff --git a/fckeditor/editor/lang/en-uk.js b/fckeditor/editor/lang/en-uk.js new file mode 100644 index 0000000..901c885 --- /dev/null +++ b/fckeditor/editor/lang/en-uk.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * English (United Kingdom) 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", +VisitLink : "Open Link", +Anchor : "Insert/Edit Anchor", +AnchorDelete : "Remove 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", +Blockquote : "Blockquote", +CreateDiv : "Create Div Container", +EditDiv : "Edit Div Container", +DeleteDiv : "Remove Div Container", +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", +ShowBlocks : "Show Blocks", + +// Context Menu +EditLink : "Edit Link", +CellCM : "Cell", +RowCM : "Row", +ColumnCM : "Column", +InsertRowAfter : "Insert Row After", +InsertRowBefore : "Insert Row Before", +DeleteRows : "Delete Rows", +InsertColumnAfter : "Insert Column After", +InsertColumnBefore : "Insert Column Before", +DeleteColumns : "Delete Columns", +InsertCellAfter : "Insert Cell After", +InsertCellBefore : "Insert Cell Before", +DeleteCells : "Delete Cells", +MergeCells : "Merge Cells", +MergeRight : "Merge Right", +MergeDown : "Merge Down", +HorizontalSplitCell : "Split Cell Horizontally", +VerticalSplitCell : "Split Cell Vertically", +TableDelete : "Delete Table", +CellProperties : "Cell Properties", +TableProperties : "Table Properties", +ImageProperties : "Image Properties", +FlashProperties : "Flash Properties", + +AnchorProp : "Anchor Properties", +ButtonProp : "Button Properties", +CheckboxProp : "Checkbox Properties", +HiddenFieldProp : "Hidden Field Properties", +RadioButtonProp : "Radio Button Properties", +ImageButtonProp : "Image Button Properties", +TextFieldProp : "Text Field Properties", +SelectionFieldProp : "Selection Field Properties", +TextareaProp : "Textarea Properties", +FormProp : "Form Properties", + +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Processing XHTML. Please wait...", +Done : "Done", +PasteWordConfirm : "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?", +NotCompatiblePaste : "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?", +UnknownToolbarItem : "Unknown toolbar item \"%1\"", +UnknownCommand : "Unknown command name \"%1\"", +NotImplemented : "Command not implemented", +UnknownToolbarSet : "Toolbar set \"%1\" doesn't exist", +NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", +BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.", +DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Cancel", +DlgBtnClose : "Close", +DlgBtnBrowseServer : "Browse Server", +DlgAdvancedTag : "Advanced", +DlgOpOther : "", +DlgInfoTab : "Info", +DlgAlertUrl : "Please insert the URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Language Direction", +DlgGenLangDirLtr : "Left to Right (LTR)", +DlgGenLangDirRtl : "Right to Left (RTL)", +DlgGenLangCode : "Language Code", +DlgGenAccessKey : "Access Key", +DlgGenName : "Name", +DlgGenTabIndex : "Tab Index", +DlgGenLongDescr : "Long Description URL", +DlgGenClass : "Stylesheet Classes", +DlgGenTitle : "Advisory Title", +DlgGenContType : "Advisory Content Type", +DlgGenLinkCharset : "Linked Resource Charset", +DlgGenStyle : "Style", + +// Image Dialog +DlgImgTitle : "Image Properties", +DlgImgInfoTab : "Image Info", +DlgImgBtnUpload : "Send it to the Server", +DlgImgURL : "URL", +DlgImgUpload : "Upload", +DlgImgAlt : "Alternative Text", +DlgImgWidth : "Width", +DlgImgHeight : "Height", +DlgImgLockRatio : "Lock Ratio", +DlgBtnResetSize : "Reset Size", +DlgImgBorder : "Border", +DlgImgHSpace : "HSpace", +DlgImgVSpace : "VSpace", +DlgImgAlign : "Align", +DlgImgAlignLeft : "Left", +DlgImgAlignAbsBottom: "Abs Bottom", +DlgImgAlignAbsMiddle: "Abs Middle", +DlgImgAlignBaseline : "Baseline", +DlgImgAlignBottom : "Bottom", +DlgImgAlignMiddle : "Middle", +DlgImgAlignRight : "Right", +DlgImgAlignTextTop : "Text Top", +DlgImgAlignTop : "Top", +DlgImgPreview : "Preview", +DlgImgAlertUrl : "Please type the image URL", +DlgImgLinkTab : "Link", + +// Flash Dialog +DlgFlashTitle : "Flash Properties", +DlgFlashChkPlay : "Auto Play", +DlgFlashChkLoop : "Loop", +DlgFlashChkMenu : "Enable Flash Menu", +DlgFlashScale : "Scale", +DlgFlashScaleAll : "Show all", +DlgFlashScaleNoBorder : "No Border", +DlgFlashScaleFit : "Exact Fit", + +// Link Dialog +DlgLnkWindowTitle : "Link", +DlgLnkInfoTab : "Link Info", +DlgLnkTargetTab : "Target", + +DlgLnkType : "Link Type", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Link to anchor in the text", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Protocol", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Select an Anchor", +DlgLnkAnchorByName : "By Anchor Name", +DlgLnkAnchorById : "By Element Id", +DlgLnkNoAnchors : "(No anchors available in the document)", +DlgLnkEMail : "E-Mail Address", +DlgLnkEMailSubject : "Message Subject", +DlgLnkEMailBody : "Message Body", +DlgLnkUpload : "Upload", +DlgLnkBtnUpload : "Send it to the Server", + +DlgLnkTarget : "Target", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "New Window (_blank)", +DlgLnkTargetParent : "Parent Window (_parent)", +DlgLnkTargetSelf : "Same Window (_self)", +DlgLnkTargetTop : "Topmost Window (_top)", +DlgLnkTargetFrameName : "Target Frame Name", +DlgLnkPopWinName : "Popup Window Name", +DlgLnkPopWinFeat : "Popup Window Features", +DlgLnkPopResize : "Resizable", +DlgLnkPopLocation : "Location Bar", +DlgLnkPopMenu : "Menu Bar", +DlgLnkPopScroll : "Scroll Bars", +DlgLnkPopStatus : "Status Bar", +DlgLnkPopToolbar : "Toolbar", +DlgLnkPopFullScrn : "Full Screen (IE)", +DlgLnkPopDependent : "Dependent (Netscape)", +DlgLnkPopWidth : "Width", +DlgLnkPopHeight : "Height", +DlgLnkPopLeft : "Left Position", +DlgLnkPopTop : "Top Position", + +DlnLnkMsgNoUrl : "Please type the link URL", +DlnLnkMsgNoEMail : "Please type the e-mail address", +DlnLnkMsgNoAnchor : "Please select an anchor", +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 : "", +DlgTableAlignLeft : "Left", +DlgTableAlignCenter : "Centre", +DlgTableAlignRight : "Right", +DlgTableWidth : "Width", +DlgTableWidthPx : "pixels", +DlgTableWidthPc : "percent", +DlgTableHeight : "Height", +DlgTableCellSpace : "Cell spacing", +DlgTableCellPad : "Cell padding", +DlgTableCaption : "Caption", +DlgTableSummary : "Summary", + +// Table Cell Dialog +DlgCellTitle : "Cell Properties", +DlgCellWidth : "Width", +DlgCellWidthPx : "pixels", +DlgCellWidthPc : "percent", +DlgCellHeight : "Height", +DlgCellWordWrap : "Word Wrap", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Yes", +DlgCellWordWrapNo : "No", +DlgCellHorAlign : "Horizontal Alignment", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Left", +DlgCellHorAlignCenter : "Centre", +DlgCellHorAlignRight: "Right", +DlgCellVerAlign : "Vertical Alignment", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Top", +DlgCellVerAlignMiddle : "Middle", +DlgCellVerAlignBottom : "Bottom", +DlgCellVerAlignBaseline : "Baseline", +DlgCellRowSpan : "Rows Span", +DlgCellCollSpan : "Columns Span", +DlgCellBackColor : "Background Colour", +DlgCellBorderColor : "Border Colour", +DlgCellBtnSelect : "Select...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", + +// 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 (Ctrl+V) and hit OK.", +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", + +// 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
      (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", + +// Div Dialog +DlgDivGeneralTab : "General", +DlgDivAdvancedTab : "Advanced", +DlgDivStyle : "Style", +DlgDivInlineStyle : "Inline Style" +}; diff --git a/fckeditor/editor/lang/en.js b/fckeditor/editor/lang/en.js new file mode 100644 index 0000000..5939588 --- /dev/null +++ b/fckeditor/editor/lang/en.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * English 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", +VisitLink : "Open Link", +Anchor : "Insert/Edit Anchor", +AnchorDelete : "Remove Anchor", +InsertImageLbl : "Image", +InsertImage : "Insert/Edit Image", +InsertFlashLbl : "Flash", +InsertFlash : "Insert/Edit Flash", +InsertTableLbl : "Table", +InsertTable : "Insert/Edit Table", +InsertLineLbl : "Line", +InsertLine : "Insert Horizontal Line", +InsertSpecialCharLbl: "Special Character", +InsertSpecialChar : "Insert Special Character", +InsertSmileyLbl : "Smiley", +InsertSmiley : "Insert Smiley", +About : "About FCKeditor", +Bold : "Bold", +Italic : "Italic", +Underline : "Underline", +StrikeThrough : "Strike Through", +Subscript : "Subscript", +Superscript : "Superscript", +LeftJustify : "Left Justify", +CenterJustify : "Center Justify", +RightJustify : "Right Justify", +BlockJustify : "Block Justify", +DecreaseIndent : "Decrease Indent", +IncreaseIndent : "Increase Indent", +Blockquote : "Blockquote", +CreateDiv : "Create Div Container", +EditDiv : "Edit Div Container", +DeleteDiv : "Remove Div Container", +Undo : "Undo", +Redo : "Redo", +NumberedListLbl : "Numbered List", +NumberedList : "Insert/Remove Numbered List", +BulletedListLbl : "Bulleted List", +BulletedList : "Insert/Remove Bulleted List", +ShowTableBorders : "Show Table Borders", +ShowDetails : "Show Details", +Style : "Style", +FontFormat : "Format", +Font : "Font", +FontSize : "Size", +TextColor : "Text Color", +BGColor : "Background Color", +Source : "Source", +Find : "Find", +Replace : "Replace", +SpellCheck : "Check Spelling", +UniversalKeyboard : "Universal Keyboard", +PageBreakLbl : "Page Break", +PageBreak : "Insert Page Break", + +Form : "Form", +Checkbox : "Checkbox", +RadioButton : "Radio Button", +TextField : "Text Field", +Textarea : "Textarea", +HiddenField : "Hidden Field", +Button : "Button", +SelectionField : "Selection Field", +ImageButton : "Image Button", + +FitWindow : "Maximize the editor size", +ShowBlocks : "Show Blocks", + +// Context Menu +EditLink : "Edit Link", +CellCM : "Cell", +RowCM : "Row", +ColumnCM : "Column", +InsertRowAfter : "Insert Row After", +InsertRowBefore : "Insert Row Before", +DeleteRows : "Delete Rows", +InsertColumnAfter : "Insert Column After", +InsertColumnBefore : "Insert Column Before", +DeleteColumns : "Delete Columns", +InsertCellAfter : "Insert Cell After", +InsertCellBefore : "Insert Cell Before", +DeleteCells : "Delete Cells", +MergeCells : "Merge Cells", +MergeRight : "Merge Right", +MergeDown : "Merge Down", +HorizontalSplitCell : "Split Cell Horizontally", +VerticalSplitCell : "Split Cell Vertically", +TableDelete : "Delete Table", +CellProperties : "Cell Properties", +TableProperties : "Table Properties", +ImageProperties : "Image Properties", +FlashProperties : "Flash Properties", + +AnchorProp : "Anchor Properties", +ButtonProp : "Button Properties", +CheckboxProp : "Checkbox Properties", +HiddenFieldProp : "Hidden Field Properties", +RadioButtonProp : "Radio Button Properties", +ImageButtonProp : "Image Button Properties", +TextFieldProp : "Text Field Properties", +SelectionFieldProp : "Selection Field Properties", +TextareaProp : "Textarea Properties", +FormProp : "Form Properties", + +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Processing XHTML. Please wait...", +Done : "Done", +PasteWordConfirm : "The text you want to paste seems to be copied from Word. Do you want to clean it before pasting?", +NotCompatiblePaste : "This command is available for Internet Explorer version 5.5 or more. Do you want to paste without cleaning?", +UnknownToolbarItem : "Unknown toolbar item \"%1\"", +UnknownCommand : "Unknown command name \"%1\"", +NotImplemented : "Command not implemented", +UnknownToolbarSet : "Toolbar set \"%1\" doesn't exist", +NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", +BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.", +DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Cancel", +DlgBtnClose : "Close", +DlgBtnBrowseServer : "Browse Server", +DlgAdvancedTag : "Advanced", +DlgOpOther : "", +DlgInfoTab : "Info", +DlgAlertUrl : "Please insert the URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Language Direction", +DlgGenLangDirLtr : "Left to Right (LTR)", +DlgGenLangDirRtl : "Right to Left (RTL)", +DlgGenLangCode : "Language Code", +DlgGenAccessKey : "Access Key", +DlgGenName : "Name", +DlgGenTabIndex : "Tab Index", +DlgGenLongDescr : "Long Description URL", +DlgGenClass : "Stylesheet Classes", +DlgGenTitle : "Advisory Title", +DlgGenContType : "Advisory Content Type", +DlgGenLinkCharset : "Linked Resource Charset", +DlgGenStyle : "Style", + +// Image Dialog +DlgImgTitle : "Image Properties", +DlgImgInfoTab : "Image Info", +DlgImgBtnUpload : "Send it to the Server", +DlgImgURL : "URL", +DlgImgUpload : "Upload", +DlgImgAlt : "Alternative Text", +DlgImgWidth : "Width", +DlgImgHeight : "Height", +DlgImgLockRatio : "Lock Ratio", +DlgBtnResetSize : "Reset Size", +DlgImgBorder : "Border", +DlgImgHSpace : "HSpace", +DlgImgVSpace : "VSpace", +DlgImgAlign : "Align", +DlgImgAlignLeft : "Left", +DlgImgAlignAbsBottom: "Abs Bottom", +DlgImgAlignAbsMiddle: "Abs Middle", +DlgImgAlignBaseline : "Baseline", +DlgImgAlignBottom : "Bottom", +DlgImgAlignMiddle : "Middle", +DlgImgAlignRight : "Right", +DlgImgAlignTextTop : "Text Top", +DlgImgAlignTop : "Top", +DlgImgPreview : "Preview", +DlgImgAlertUrl : "Please type the image URL", +DlgImgLinkTab : "Link", + +// Flash Dialog +DlgFlashTitle : "Flash Properties", +DlgFlashChkPlay : "Auto Play", +DlgFlashChkLoop : "Loop", +DlgFlashChkMenu : "Enable Flash Menu", +DlgFlashScale : "Scale", +DlgFlashScaleAll : "Show all", +DlgFlashScaleNoBorder : "No Border", +DlgFlashScaleFit : "Exact Fit", + +// Link Dialog +DlgLnkWindowTitle : "Link", +DlgLnkInfoTab : "Link Info", +DlgLnkTargetTab : "Target", + +DlgLnkType : "Link Type", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Link to anchor in the text", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Protocol", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Select an Anchor", +DlgLnkAnchorByName : "By Anchor Name", +DlgLnkAnchorById : "By Element Id", +DlgLnkNoAnchors : "(No anchors available in the document)", +DlgLnkEMail : "E-Mail Address", +DlgLnkEMailSubject : "Message Subject", +DlgLnkEMailBody : "Message Body", +DlgLnkUpload : "Upload", +DlgLnkBtnUpload : "Send it to the Server", + +DlgLnkTarget : "Target", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "New Window (_blank)", +DlgLnkTargetParent : "Parent Window (_parent)", +DlgLnkTargetSelf : "Same Window (_self)", +DlgLnkTargetTop : "Topmost Window (_top)", +DlgLnkTargetFrameName : "Target Frame Name", +DlgLnkPopWinName : "Popup Window Name", +DlgLnkPopWinFeat : "Popup Window Features", +DlgLnkPopResize : "Resizable", +DlgLnkPopLocation : "Location Bar", +DlgLnkPopMenu : "Menu Bar", +DlgLnkPopScroll : "Scroll Bars", +DlgLnkPopStatus : "Status Bar", +DlgLnkPopToolbar : "Toolbar", +DlgLnkPopFullScrn : "Full Screen (IE)", +DlgLnkPopDependent : "Dependent (Netscape)", +DlgLnkPopWidth : "Width", +DlgLnkPopHeight : "Height", +DlgLnkPopLeft : "Left Position", +DlgLnkPopTop : "Top Position", + +DlnLnkMsgNoUrl : "Please type the link URL", +DlnLnkMsgNoEMail : "Please type the e-mail address", +DlnLnkMsgNoAnchor : "Please select an anchor", +DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", + +// Color Dialog +DlgColorTitle : "Select Color", +DlgColorBtnClear : "Clear", +DlgColorHighlight : "Highlight", +DlgColorSelected : "Selected", + +// Smiley Dialog +DlgSmileyTitle : "Insert a Smiley", + +// Special Character Dialog +DlgSpecialCharTitle : "Select Special Character", + +// Table Dialog +DlgTableTitle : "Table Properties", +DlgTableRows : "Rows", +DlgTableColumns : "Columns", +DlgTableBorder : "Border size", +DlgTableAlign : "Alignment", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Left", +DlgTableAlignCenter : "Center", +DlgTableAlignRight : "Right", +DlgTableWidth : "Width", +DlgTableWidthPx : "pixels", +DlgTableWidthPc : "percent", +DlgTableHeight : "Height", +DlgTableCellSpace : "Cell spacing", +DlgTableCellPad : "Cell padding", +DlgTableCaption : "Caption", +DlgTableSummary : "Summary", + +// Table Cell Dialog +DlgCellTitle : "Cell Properties", +DlgCellWidth : "Width", +DlgCellWidthPx : "pixels", +DlgCellWidthPc : "percent", +DlgCellHeight : "Height", +DlgCellWordWrap : "Word Wrap", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Yes", +DlgCellWordWrapNo : "No", +DlgCellHorAlign : "Horizontal Alignment", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Left", +DlgCellHorAlignCenter : "Center", +DlgCellHorAlignRight: "Right", +DlgCellVerAlign : "Vertical Alignment", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Top", +DlgCellVerAlignMiddle : "Middle", +DlgCellVerAlignBottom : "Bottom", +DlgCellVerAlignBaseline : "Baseline", +DlgCellRowSpan : "Rows Span", +DlgCellCollSpan : "Columns Span", +DlgCellBackColor : "Background Color", +DlgCellBorderColor : "Border Color", +DlgCellBtnSelect : "Select...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", + +// 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 (Ctrl+V) and hit OK.", +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", + +// Color Picker +ColorAutomatic : "Automatic", +ColorMoreColors : "More Colors...", + +// Document Properties +DocProps : "Document Properties", + +// Anchor Dialog +DlgAnchorTitle : "Anchor Properties", +DlgAnchorName : "Anchor Name", +DlgAnchorErrorName : "Please type the anchor name", + +// Speller Pages Dialog +DlgSpellNotInDic : "Not in dictionary", +DlgSpellChangeTo : "Change to", +DlgSpellBtnIgnore : "Ignore", +DlgSpellBtnIgnoreAll : "Ignore All", +DlgSpellBtnReplace : "Replace", +DlgSpellBtnReplaceAll : "Replace All", +DlgSpellBtnUndo : "Undo", +DlgSpellNoSuggestions : "- No suggestions -", +DlgSpellProgress : "Spell check in progress...", +DlgSpellNoMispell : "Spell check complete: No misspellings found", +DlgSpellNoChanges : "Spell check complete: No words changed", +DlgSpellOneChange : "Spell check complete: One word changed", +DlgSpellManyChanges : "Spell check complete: %1 words changed", + +IeSpellDownload : "Spell checker not installed. Do you want to download it now?", + +// Button Dialog +DlgButtonText : "Text (Value)", +DlgButtonType : "Type", +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 : "Colors and Margins", +DlgDocMetaTab : "Meta Data", + +DlgDocPageTitle : "Page Title", +DlgDocLangDir : "Language Direction", +DlgDocLangDirLTR : "Left to Right (LTR)", +DlgDocLangDirRTL : "Right to Left (RTL)", +DlgDocLangCode : "Language Code", +DlgDocCharSet : "Character Set Encoding", +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", +DlgDocBgImage : "Background Image URL", +DlgDocBgNoScroll : "Nonscrolling Background", +DlgDocCText : "Text", +DlgDocCLink : "Link", +DlgDocCVisited : "Visited Link", +DlgDocCActive : "Active Link", +DlgDocMargins : "Page Margins", +DlgDocMaTop : "Top", +DlgDocMaLeft : "Left", +DlgDocMaRight : "Right", +DlgDocMaBottom : "Bottom", +DlgDocMeIndex : "Document Indexing Keywords (comma separated)", +DlgDocMeDescr : "Document Description", +DlgDocMeAuthor : "Author", +DlgDocMeCopy : "Copyright", +DlgDocPreview : "Preview", + +// Templates Dialog +Templates : "Templates", +DlgTemplatesTitle : "Content Templates", +DlgTemplatesSelMsg : "Please select the template to open in the editor
      (the actual contents will be lost):", +DlgTemplatesLoading : "Loading templates list. Please wait...", +DlgTemplatesNoTpl : "(No templates defined)", +DlgTemplatesReplace : "Replace actual contents", + +// About Dialog +DlgAboutAboutTab : "About", +DlgAboutBrowserInfoTab : "Browser Info", +DlgAboutLicenseTab : "License", +DlgAboutVersion : "version", +DlgAboutInfo : "For further information go to", + +// Div Dialog +DlgDivGeneralTab : "General", +DlgDivAdvancedTab : "Advanced", +DlgDivStyle : "Style", +DlgDivInlineStyle : "Inline Style" +}; diff --git a/fckeditor/editor/lang/eo.js b/fckeditor/editor/lang/eo.js new file mode 100644 index 0000000..dc032ef --- /dev/null +++ b/fckeditor/editor/lang/eo.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Esperanto language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Kaŝi Ilobreton", +ToolbarExpand : "Vidigi Ilojn", + +// Toolbar Items and Context Menu +Save : "Sekurigi", +NewPage : "Nova Paĝo", +Preview : "Vidigi Aspekton", +Cut : "Eltondi", +Copy : "Kopii", +Paste : "Interglui", +PasteText : "Interglui kiel Tekston", +PasteWord : "Interglui el Word", +Print : "Presi", +SelectAll : "Elekti ĉion", +RemoveFormat : "Forigi Formaton", +InsertLinkLbl : "Ligilo", +InsertLink : "Enmeti/Ŝanĝi Ligilon", +RemoveLink : "Forigi Ligilon", +VisitLink : "Open Link", //MISSING +Anchor : "Enmeti/Ŝanĝi Ankron", +AnchorDelete : "Remove Anchor", //MISSING +InsertImageLbl : "Bildo", +InsertImage : "Enmeti/Ŝanĝi Bildon", +InsertFlashLbl : "Flash", //MISSING +InsertFlash : "Insert/Edit Flash", //MISSING +InsertTableLbl : "Tabelo", +InsertTable : "Enmeti/Ŝanĝi Tabelon", +InsertLineLbl : "Horizonta Linio", +InsertLine : "Enmeti Horizonta Linio", +InsertSpecialCharLbl: "Speciala Signo", +InsertSpecialChar : "Enmeti Specialan Signon", +InsertSmileyLbl : "Mienvinjeto", +InsertSmiley : "Enmeti Mienvinjeton", +About : "Pri FCKeditor", +Bold : "Grasa", +Italic : "Kursiva", +Underline : "Substreko", +StrikeThrough : "Trastreko", +Subscript : "Subskribo", +Superscript : "Superskribo", +LeftJustify : "Maldekstrigi", +CenterJustify : "Centrigi", +RightJustify : "Dekstrigi", +BlockJustify : "Ĝisrandigi Ambaŭflanke", +DecreaseIndent : "Malpligrandigi Krommarĝenon", +IncreaseIndent : "Pligrandigi Krommarĝenon", +Blockquote : "Blockquote", //MISSING +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "Malfari", +Redo : "Refari", +NumberedListLbl : "Numera Listo", +NumberedList : "Enmeti/Forigi Numeran Liston", +BulletedListLbl : "Bula Listo", +BulletedList : "Enmeti/Forigi Bulan Liston", +ShowTableBorders : "Vidigi Borderojn de Tabelo", +ShowDetails : "Vidigi Detalojn", +Style : "Stilo", +FontFormat : "Formato", +Font : "Tiparo", +FontSize : "Grando", +TextColor : "Teksta Koloro", +BGColor : "Fona Koloro", +Source : "Fonto", +Find : "Serĉi", +Replace : "Anstataŭigi", +SpellCheck : "Literumada Kontrolilo", +UniversalKeyboard : "Universala Klavaro", +PageBreakLbl : "Page Break", //MISSING +PageBreak : "Insert Page Break", //MISSING + +Form : "Formularo", +Checkbox : "Markobutono", +RadioButton : "Radiobutono", +TextField : "Teksta kampo", +Textarea : "Teksta Areo", +HiddenField : "Kaŝita Kampo", +Button : "Butono", +SelectionField : "Elekta Kampo", +ImageButton : "Bildbutono", + +FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING + +// Context Menu +EditLink : "Modifier Ligilon", +CellCM : "Cell", //MISSING +RowCM : "Row", //MISSING +ColumnCM : "Column", //MISSING +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING +DeleteRows : "Forigi Liniojn", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING +DeleteColumns : "Forigi Kolumnojn", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING +DeleteCells : "Forigi Ĉelojn", +MergeCells : "Kunfandi Ĉelojn", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING +TableDelete : "Delete Table", //MISSING +CellProperties : "Atributoj de Ĉelo", +TableProperties : "Atributoj de Tabelo", +ImageProperties : "Atributoj de Bildo", +FlashProperties : "Flash Properties", //MISSING + +AnchorProp : "Ankraj Atributoj", +ButtonProp : "Butonaj Atributoj", +CheckboxProp : "Markobutonaj Atributoj", +HiddenFieldProp : "Atributoj de Kaŝita Kampo", +RadioButtonProp : "Radiobutonaj Atributoj", +ImageButtonProp : "Bildbutonaj Atributoj", +TextFieldProp : "Atributoj de Teksta Kampo", +SelectionFieldProp : "Atributoj de Elekta Kampo", +TextareaProp : "Atributoj de Teksta Areo", +FormProp : "Formularaj Atributoj", + +FontFormats : "Normala;Formatita;Adreso;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Traktado de XHTML. Bonvolu pacienci...", +Done : "Finita", +PasteWordConfirm : "La algluota teksto ŝajnas esti Word-devena. Ĉu vi volas purigi ĝin antaŭ ol interglui?", +NotCompatiblePaste : "Tiu ĉi komando bezonas almenaŭ Internet Explorer 5.5. Ĉu vi volas daŭrigi sen purigado?", +UnknownToolbarItem : "Ilobretero nekonata \"%1\"", +UnknownCommand : "Komandonomo nekonata \"%1\"", +NotImplemented : "Komando ne ankoraŭ realigita", +UnknownToolbarSet : "La ilobreto \"%1\" ne ekzistas", +NoActiveX : "Your browser's security settings could limit some features of the editor. You must enable the option \"Run ActiveX controls and plug-ins\". You may experience errors and notice missing features.", //MISSING +BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.", //MISSING +DialogBlocked : "It was not possible to open the dialog window. Make sure all popup blockers are disabled.", //MISSING +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "Akcepti", +DlgBtnCancel : "Rezigni", +DlgBtnClose : "Fermi", +DlgBtnBrowseServer : "Foliumi en la Servilo", +DlgAdvancedTag : "Speciala", +DlgOpOther : "", +DlgInfoTab : "Info", //MISSING +DlgAlertUrl : "Please insert the URL", //MISSING + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Skribdirekto", +DlgGenLangDirLtr : "De maldekstro dekstren (LTR)", +DlgGenLangDirRtl : "De dekstro maldekstren (RTL)", +DlgGenLangCode : "Lingva Kodo", +DlgGenAccessKey : "Fulmoklavo", +DlgGenName : "Nomo", +DlgGenTabIndex : "Taba Ordo", +DlgGenLongDescr : "URL de Longa Priskribo", +DlgGenClass : "Klasoj de Stilfolioj", +DlgGenTitle : "Indika Titolo", +DlgGenContType : "Indika Enhavotipo", +DlgGenLinkCharset : "Signaro de la Ligita Rimedo", +DlgGenStyle : "Stilo", + +// Image Dialog +DlgImgTitle : "Atributoj de Bildo", +DlgImgInfoTab : "Informoj pri Bildo", +DlgImgBtnUpload : "Sendu al Servilo", +DlgImgURL : "URL", +DlgImgUpload : "Alŝuti", +DlgImgAlt : "Anstataŭiga Teksto", +DlgImgWidth : "Larĝo", +DlgImgHeight : "Alto", +DlgImgLockRatio : "Konservi Proporcion", +DlgBtnResetSize : "Origina Grando", +DlgImgBorder : "Bordero", +DlgImgHSpace : "HSpaco", +DlgImgVSpace : "VSpaco", +DlgImgAlign : "Ĝisrandigo", +DlgImgAlignLeft : "Maldekstre", +DlgImgAlignAbsBottom: "Abs Malsupre", +DlgImgAlignAbsMiddle: "Abs Centre", +DlgImgAlignBaseline : "Je Malsupro de Teksto", +DlgImgAlignBottom : "Malsupre", +DlgImgAlignMiddle : "Centre", +DlgImgAlignRight : "Dekstre", +DlgImgAlignTextTop : "Je Supro de Teksto", +DlgImgAlignTop : "Supre", +DlgImgPreview : "Vidigi Aspekton", +DlgImgAlertUrl : "Bonvolu tajpi la URL de la bildo", +DlgImgLinkTab : "Link", //MISSING + +// Flash Dialog +DlgFlashTitle : "Flash Properties", //MISSING +DlgFlashChkPlay : "Auto Play", //MISSING +DlgFlashChkLoop : "Loop", //MISSING +DlgFlashChkMenu : "Enable Flash Menu", //MISSING +DlgFlashScale : "Scale", //MISSING +DlgFlashScaleAll : "Show all", //MISSING +DlgFlashScaleNoBorder : "No Border", //MISSING +DlgFlashScaleFit : "Exact Fit", //MISSING + +// Link Dialog +DlgLnkWindowTitle : "Ligilo", +DlgLnkInfoTab : "Informoj pri la Ligilo", +DlgLnkTargetTab : "Celo", + +DlgLnkType : "Tipo de Ligilo", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Ankri en tiu ĉi paĝo", +DlgLnkTypeEMail : "Retpoŝto", +DlgLnkProto : "Protokolo", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Elekti Ankron", +DlgLnkAnchorByName : "Per Ankronomo", +DlgLnkAnchorById : "Per Elementidentigilo", +DlgLnkNoAnchors : "", +DlgLnkEMail : "Retadreso", +DlgLnkEMailSubject : "Temlinio", +DlgLnkEMailBody : "Mesaĝa korpo", +DlgLnkUpload : "Alŝuti", +DlgLnkBtnUpload : "Sendi al Servilo", + +DlgLnkTarget : "Celo", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "<ŝprucfenestro>", +DlgLnkTargetBlank : "Nova Fenestro (_blank)", +DlgLnkTargetParent : "Gepatra Fenestro (_parent)", +DlgLnkTargetSelf : "Sama Fenestro (_self)", +DlgLnkTargetTop : "Plej Supra Fenestro (_top)", +DlgLnkTargetFrameName : "Nomo de Kadro", +DlgLnkPopWinName : "Nomo de Ŝprucfenestro", +DlgLnkPopWinFeat : "Atributoj de la Ŝprucfenestro", +DlgLnkPopResize : "Grando Ŝanĝebla", +DlgLnkPopLocation : "Adresobreto", +DlgLnkPopMenu : "Menubreto", +DlgLnkPopScroll : "Rulumlisteloj", +DlgLnkPopStatus : "Statobreto", +DlgLnkPopToolbar : "Ilobreto", +DlgLnkPopFullScrn : "Tutekrane (IE)", +DlgLnkPopDependent : "Dependa (Netscape)", +DlgLnkPopWidth : "Larĝo", +DlgLnkPopHeight : "Alto", +DlgLnkPopLeft : "Pozicio de Maldekstro", +DlgLnkPopTop : "Pozicio de Supro", + +DlnLnkMsgNoUrl : "Bonvolu entajpi la URL-on", +DlnLnkMsgNoEMail : "Bonvolu entajpi la retadreson", +DlnLnkMsgNoAnchor : "Bonvolu elekti ankron", +DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING + +// Color Dialog +DlgColorTitle : "Elekti", +DlgColorBtnClear : "Forigi", +DlgColorHighlight : "Emfazi", +DlgColorSelected : "Elektita", + +// Smiley Dialog +DlgSmileyTitle : "Enmeti Mienvinjeton", + +// Special Character Dialog +DlgSpecialCharTitle : "Enmeti Specialan Signon", + +// Table Dialog +DlgTableTitle : "Atributoj de Tabelo", +DlgTableRows : "Linioj", +DlgTableColumns : "Kolumnoj", +DlgTableBorder : "Bordero", +DlgTableAlign : "Ĝisrandigo", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Maldekstre", +DlgTableAlignCenter : "Centre", +DlgTableAlignRight : "Dekstre", +DlgTableWidth : "Larĝo", +DlgTableWidthPx : "Bitbilderoj", +DlgTableWidthPc : "elcentoj", +DlgTableHeight : "Alto", +DlgTableCellSpace : "Interspacigo de Ĉeloj", +DlgTableCellPad : "Ĉirkaŭenhava Plenigado", +DlgTableCaption : "Titolo", +DlgTableSummary : "Summary", //MISSING + +// Table Cell Dialog +DlgCellTitle : "Atributoj de Celo", +DlgCellWidth : "Larĝo", +DlgCellWidthPx : "bitbilderoj", +DlgCellWidthPc : "elcentoj", +DlgCellHeight : "Alto", +DlgCellWordWrap : "Linifaldo", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Jes", +DlgCellWordWrapNo : "Ne", +DlgCellHorAlign : "Horizonta Ĝisrandigo", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Maldekstre", +DlgCellHorAlignCenter : "Centre", +DlgCellHorAlignRight: "Dekstre", +DlgCellVerAlign : "Vertikala Ĝisrandigo", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Supre", +DlgCellVerAlignMiddle : "Centre", +DlgCellVerAlignBottom : "Malsupre", +DlgCellVerAlignBaseline : "Je Malsupro de Teksto", +DlgCellRowSpan : "Linioj Kunfanditaj", +DlgCellCollSpan : "Kolumnoj Kunfanditaj", +DlgCellBackColor : "Fono", +DlgCellBorderColor : "Bordero", +DlgCellBtnSelect : "Elekti...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + +// Find Dialog +DlgFindTitle : "Serĉi", +DlgFindFindBtn : "Serĉi", +DlgFindNotFoundMsg : "La celteksto ne estas trovita.", + +// Replace Dialog +DlgReplaceTitle : "Anstataŭigi", +DlgReplaceFindLbl : "Serĉi:", +DlgReplaceReplaceLbl : "Anstataŭigi per:", +DlgReplaceCaseChk : "Kongruigi Usklecon", +DlgReplaceReplaceBtn : "Anstataŭigi", +DlgReplaceReplAllBtn : "Anstataŭigi Ĉiun", +DlgReplaceWordChk : "Tuta Vorto", + +// Paste Operations / Dialog +PasteErrorCut : "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras eltondajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-X).", +PasteErrorCopy : "La sekurecagordo de via TTT-legilo ne permesas, ke la redaktilo faras kopiajn operaciojn. Bonvolu uzi la klavaron por tio (ctrl-C).", + +PasteAsText : "Interglui kiel Tekston", +PasteFromWord : "Interglui el Word", + +DlgPasteMsg2 : "Please paste inside the following box using the keyboard (Ctrl+V) and hit OK.", //MISSING +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 + +// Color Picker +ColorAutomatic : "Aŭtomata", +ColorMoreColors : "Pli da Koloroj...", + +// Document Properties +DocProps : "Dokumentaj Atributoj", + +// Anchor Dialog +DlgAnchorTitle : "Ankraj Atributoj", +DlgAnchorName : "Ankra Nomo", +DlgAnchorErrorName : "Bv tajpi la ankran nomon", + +// Speller Pages Dialog +DlgSpellNotInDic : "Ne trovita en la vortaro", +DlgSpellChangeTo : "Ŝanĝi al", +DlgSpellBtnIgnore : "Malatenti", +DlgSpellBtnIgnoreAll : "Malatenti Ĉiun", +DlgSpellBtnReplace : "Anstataŭigi", +DlgSpellBtnReplaceAll : "Anstataŭigi Ĉiun", +DlgSpellBtnUndo : "Malfari", +DlgSpellNoSuggestions : "- Neniu propono -", +DlgSpellProgress : "Literumkontrolado daŭras...", +DlgSpellNoMispell : "Literumkontrolado finita: neniu fuŝo trovita", +DlgSpellNoChanges : "Literumkontrolado finita: neniu vorto ŝanĝita", +DlgSpellOneChange : "Literumkontrolado finita: unu vorto ŝanĝita", +DlgSpellManyChanges : "Literumkontrolado finita: %1 vortoj ŝanĝitaj", + +IeSpellDownload : "Literumada Kontrolilo ne instalita. Ĉu vi volas elŝuti ĝin nun?", + +// Button Dialog +DlgButtonText : "Teksto (Valoro)", +DlgButtonType : "Tipo", +DlgButtonTypeBtn : "Button", //MISSING +DlgButtonTypeSbm : "Submit", //MISSING +DlgButtonTypeRst : "Reset", //MISSING + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Nomo", +DlgCheckboxValue : "Valoro", +DlgCheckboxSelected : "Elektita", + +// Form Dialog +DlgFormName : "Nomo", +DlgFormAction : "Ago", +DlgFormMethod : "Metodo", + +// Select Field Dialog +DlgSelectName : "Nomo", +DlgSelectValue : "Valoro", +DlgSelectSize : "Grando", +DlgSelectLines : "Linioj", +DlgSelectChkMulti : "Permesi Plurajn Elektojn", +DlgSelectOpAvail : "Elektoj Disponeblaj", +DlgSelectOpText : "Teksto", +DlgSelectOpValue : "Valoro", +DlgSelectBtnAdd : "Aldoni", +DlgSelectBtnModify : "Modifi", +DlgSelectBtnUp : "Supren", +DlgSelectBtnDown : "Malsupren", +DlgSelectBtnSetValue : "Agordi kiel Elektitan Valoron", +DlgSelectBtnDelete : "Forigi", + +// Textarea Dialog +DlgTextareaName : "Nomo", +DlgTextareaCols : "Kolumnoj", +DlgTextareaRows : "Vicoj", + +// Text Field Dialog +DlgTextName : "Nomo", +DlgTextValue : "Valoro", +DlgTextCharWidth : "Signolarĝo", +DlgTextMaxChars : "Maksimuma Nombro da Signoj", +DlgTextType : "Tipo", +DlgTextTypeText : "Teksto", +DlgTextTypePass : "Pasvorto", + +// Hidden Field Dialog +DlgHiddenName : "Nomo", +DlgHiddenValue : "Valoro", + +// Bulleted List Dialog +BulletedListProp : "Atributoj de Bula Listo", +NumberedListProp : "Atributoj de Numera Listo", +DlgLstStart : "Start", //MISSING +DlgLstType : "Tipo", +DlgLstTypeCircle : "Cirklo", +DlgLstTypeDisc : "Disc", //MISSING +DlgLstTypeSquare : "Kvadrato", +DlgLstTypeNumbers : "Ciferoj (1, 2, 3)", +DlgLstTypeLCase : "Minusklaj Literoj (a, b, c)", +DlgLstTypeUCase : "Majusklaj Literoj (A, B, C)", +DlgLstTypeSRoman : "Malgrandaj Romanaj Ciferoj (i, ii, iii)", +DlgLstTypeLRoman : "Grandaj Romanaj Ciferoj (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Ĝeneralaĵoj", +DlgDocBackTab : "Fono", +DlgDocColorsTab : "Koloroj kaj Marĝenoj", +DlgDocMetaTab : "Metadatumoj", + +DlgDocPageTitle : "Paĝotitolo", +DlgDocLangDir : "Skribdirekto de la Lingvo", +DlgDocLangDirLTR : "De maldekstro dekstren (LTR)", +DlgDocLangDirRTL : "De dekstro maldekstren (LTR)", +DlgDocLangCode : "Lingvokodo", +DlgDocCharSet : "Signara Kodo", +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", +DlgDocDocTypeOther : "Alia Dokumenta Tipo", +DlgDocIncXHTML : "Inkluzivi XHTML Deklaroj", +DlgDocBgColor : "Fona Koloro", +DlgDocBgImage : "URL de Fona Bildo", +DlgDocBgNoScroll : "Neruluma Fono", +DlgDocCText : "Teksto", +DlgDocCLink : "Ligilo", +DlgDocCVisited : "Vizitita Ligilo", +DlgDocCActive : "Aktiva Ligilo", +DlgDocMargins : "Paĝaj Marĝenoj", +DlgDocMaTop : "Supra", +DlgDocMaLeft : "Maldekstra", +DlgDocMaRight : "Dekstra", +DlgDocMaBottom : "Malsupra", +DlgDocMeIndex : "Ŝlosilvortoj de la Dokumento (apartigita de komoj)", +DlgDocMeDescr : "Dokumenta Priskribo", +DlgDocMeAuthor : "Verkinto", +DlgDocMeCopy : "Kopirajto", +DlgDocPreview : "Aspekto", + +// Templates Dialog +Templates : "Templates", //MISSING +DlgTemplatesTitle : "Content Templates", //MISSING +DlgTemplatesSelMsg : "Please select the template to open in the editor
      (the actual contents will be lost):", //MISSING +DlgTemplatesLoading : "Loading templates list. Please wait...", //MISSING +DlgTemplatesNoTpl : "(No templates defined)", //MISSING +DlgTemplatesReplace : "Replace actual contents", //MISSING + +// About Dialog +DlgAboutAboutTab : "Pri", +DlgAboutBrowserInfoTab : "Informoj pri TTT-legilo", +DlgAboutLicenseTab : "License", //MISSING +DlgAboutVersion : "versio", +DlgAboutInfo : "Por pli da informoj, vizitu", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/es.js b/fckeditor/editor/lang/es.js new file mode 100644 index 0000000..c6f655a --- /dev/null +++ b/fckeditor/editor/lang/es.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Spanish language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Contraer Barra", +ToolbarExpand : "Expandir Barra", + +// Toolbar Items and Context Menu +Save : "Guardar", +NewPage : "Nueva Página", +Preview : "Vista Previa", +Cut : "Cortar", +Copy : "Copiar", +Paste : "Pegar", +PasteText : "Pegar como texto plano", +PasteWord : "Pegar desde Word", +Print : "Imprimir", +SelectAll : "Seleccionar Todo", +RemoveFormat : "Eliminar Formato", +InsertLinkLbl : "Vínculo", +InsertLink : "Insertar/Editar Vínculo", +RemoveLink : "Eliminar Vínculo", +VisitLink : "Abrir enlace", +Anchor : "Referencia", +AnchorDelete : "Eliminar Referencia", +InsertImageLbl : "Imagen", +InsertImage : "Insertar/Editar Imagen", +InsertFlashLbl : "Flash", +InsertFlash : "Insertar/Editar Flash", +InsertTableLbl : "Tabla", +InsertTable : "Insertar/Editar Tabla", +InsertLineLbl : "Línea", +InsertLine : "Insertar Línea Horizontal", +InsertSpecialCharLbl: "Caracter Especial", +InsertSpecialChar : "Insertar Caracter Especial", +InsertSmileyLbl : "Emoticons", +InsertSmiley : "Insertar Emoticons", +About : "Acerca de FCKeditor", +Bold : "Negrita", +Italic : "Cursiva", +Underline : "Subrayado", +StrikeThrough : "Tachado", +Subscript : "Subíndice", +Superscript : "Superíndice", +LeftJustify : "Alinear a Izquierda", +CenterJustify : "Centrar", +RightJustify : "Alinear a Derecha", +BlockJustify : "Justificado", +DecreaseIndent : "Disminuir Sangría", +IncreaseIndent : "Aumentar Sangría", +Blockquote : "Cita", +CreateDiv : "Crear contenedor (div)", +EditDiv : "Editar contenedor (div)", +DeleteDiv : "Eliminar contenedor (div)", +Undo : "Deshacer", +Redo : "Rehacer", +NumberedListLbl : "Numeración", +NumberedList : "Insertar/Eliminar Numeración", +BulletedListLbl : "Viñetas", +BulletedList : "Insertar/Eliminar Viñetas", +ShowTableBorders : "Mostrar Bordes de Tablas", +ShowDetails : "Mostrar saltos de Párrafo", +Style : "Estilo", +FontFormat : "Formato", +Font : "Fuente", +FontSize : "Tamaño", +TextColor : "Color de Texto", +BGColor : "Color de Fondo", +Source : "Fuente HTML", +Find : "Buscar", +Replace : "Reemplazar", +SpellCheck : "Ortografía", +UniversalKeyboard : "Teclado Universal", +PageBreakLbl : "Salto de Página", +PageBreak : "Insertar Salto de Página", + +Form : "Formulario", +Checkbox : "Casilla de Verificación", +RadioButton : "Botones de Radio", +TextField : "Campo de Texto", +Textarea : "Area de Texto", +HiddenField : "Campo Oculto", +Button : "Botón", +SelectionField : "Campo de Selección", +ImageButton : "Botón Imagen", + +FitWindow : "Maximizar el tamaño del editor", +ShowBlocks : "Mostrar bloques", + +// Context Menu +EditLink : "Editar Vínculo", +CellCM : "Celda", +RowCM : "Fila", +ColumnCM : "Columna", +InsertRowAfter : "Insertar fila en la parte inferior", +InsertRowBefore : "Insertar fila en la parte superior", +DeleteRows : "Eliminar Filas", +InsertColumnAfter : "Insertar columna a la derecha", +InsertColumnBefore : "Insertar columna a la izquierda", +DeleteColumns : "Eliminar Columnas", +InsertCellAfter : "Insertar celda a la derecha", +InsertCellBefore : "Insertar celda a la izquierda", +DeleteCells : "Eliminar Celdas", +MergeCells : "Combinar Celdas", +MergeRight : "Combinar a la derecha", +MergeDown : "Combinar hacia abajo", +HorizontalSplitCell : "Dividir la celda horizontalmente", +VerticalSplitCell : "Dividir la celda verticalmente", +TableDelete : "Eliminar Tabla", +CellProperties : "Propiedades de Celda", +TableProperties : "Propiedades de Tabla", +ImageProperties : "Propiedades de Imagen", +FlashProperties : "Propiedades de Flash", + +AnchorProp : "Propiedades de Referencia", +ButtonProp : "Propiedades de Botón", +CheckboxProp : "Propiedades de Casilla", +HiddenFieldProp : "Propiedades de Campo Oculto", +RadioButtonProp : "Propiedades de Botón de Radio", +ImageButtonProp : "Propiedades de Botón de Imagen", +TextFieldProp : "Propiedades de Campo de Texto", +SelectionFieldProp : "Propiedades de Campo de Selección", +TextareaProp : "Propiedades de Area de Texto", +FormProp : "Propiedades de Formulario", + +FontFormats : "Normal;Con formato;Dirección;Encabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Normal (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Procesando XHTML. Por favor, espere...", +Done : "Hecho", +PasteWordConfirm : "El texto que desea parece provenir de Word. Desea depurarlo antes de pegarlo?", +NotCompatiblePaste : "Este comando está disponible sólo para Internet Explorer version 5.5 or superior. Desea pegar sin depurar?", +UnknownToolbarItem : "Item de barra desconocido \"%1\"", +UnknownCommand : "Nombre de comando desconocido \"%1\"", +NotImplemented : "Comando no implementado", +UnknownToolbarSet : "Nombre de barra \"%1\" no definido", +NoActiveX : "La configuración de las opciones de seguridad de su navegador puede estar limitando algunas características del editor. Por favor active la opción \"Ejecutar controles y complementos de ActiveX \", de lo contrario puede experimentar errores o ausencia de funcionalidades.", +BrowseServerBlocked : "La ventana de visualización del servidor no pudo ser abierta. Verifique que su navegador no esté bloqueando las ventanas emergentes (pop up).", +DialogBlocked : "No se ha podido abrir la ventana de diálogo. Verifique que su navegador no esté bloqueando las ventanas emergentes (pop up).", +VisitLinkBlocked : "Nose ha podido abrir la ventana. Asegurese de que todos los bloqueadores de popups están deshabilitados.", + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Cancelar", +DlgBtnClose : "Cerrar", +DlgBtnBrowseServer : "Ver Servidor", +DlgAdvancedTag : "Avanzado", +DlgOpOther : "", +DlgInfoTab : "Información", +DlgAlertUrl : "Inserte el URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Orientación", +DlgGenLangDirLtr : "Izquierda a Derecha (LTR)", +DlgGenLangDirRtl : "Derecha a Izquierda (RTL)", +DlgGenLangCode : "Cód. de idioma", +DlgGenAccessKey : "Clave de Acceso", +DlgGenName : "Nombre", +DlgGenTabIndex : "Indice de tabulación", +DlgGenLongDescr : "Descripción larga URL", +DlgGenClass : "Clases de hojas de estilo", +DlgGenTitle : "Título", +DlgGenContType : "Tipo de Contenido", +DlgGenLinkCharset : "Fuente de caracteres vinculado", +DlgGenStyle : "Estilo", + +// Image Dialog +DlgImgTitle : "Propiedades de Imagen", +DlgImgInfoTab : "Información de Imagen", +DlgImgBtnUpload : "Enviar al Servidor", +DlgImgURL : "URL", +DlgImgUpload : "Cargar", +DlgImgAlt : "Texto Alternativo", +DlgImgWidth : "Anchura", +DlgImgHeight : "Altura", +DlgImgLockRatio : "Proporcional", +DlgBtnResetSize : "Tamaño Original", +DlgImgBorder : "Borde", +DlgImgHSpace : "Esp.Horiz", +DlgImgVSpace : "Esp.Vert", +DlgImgAlign : "Alineación", +DlgImgAlignLeft : "Izquierda", +DlgImgAlignAbsBottom: "Abs inferior", +DlgImgAlignAbsMiddle: "Abs centro", +DlgImgAlignBaseline : "Línea de base", +DlgImgAlignBottom : "Pie", +DlgImgAlignMiddle : "Centro", +DlgImgAlignRight : "Derecha", +DlgImgAlignTextTop : "Tope del texto", +DlgImgAlignTop : "Tope", +DlgImgPreview : "Vista Previa", +DlgImgAlertUrl : "Por favor escriba la URL de la imagen", +DlgImgLinkTab : "Vínculo", + +// Flash Dialog +DlgFlashTitle : "Propiedades de Flash", +DlgFlashChkPlay : "Autoejecución", +DlgFlashChkLoop : "Repetir", +DlgFlashChkMenu : "Activar Menú Flash", +DlgFlashScale : "Escala", +DlgFlashScaleAll : "Mostrar todo", +DlgFlashScaleNoBorder : "Sin Borde", +DlgFlashScaleFit : "Ajustado", + +// Link Dialog +DlgLnkWindowTitle : "Vínculo", +DlgLnkInfoTab : "Información de Vínculo", +DlgLnkTargetTab : "Destino", + +DlgLnkType : "Tipo de vínculo", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Referencia en esta página", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Protocolo", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Seleccionar una referencia", +DlgLnkAnchorByName : "Por Nombre de Referencia", +DlgLnkAnchorById : "Por ID de elemento", +DlgLnkNoAnchors : "(No hay referencias disponibles en el documento)", +DlgLnkEMail : "Dirección de E-Mail", +DlgLnkEMailSubject : "Título del Mensaje", +DlgLnkEMailBody : "Cuerpo del Mensaje", +DlgLnkUpload : "Cargar", +DlgLnkBtnUpload : "Enviar al Servidor", + +DlgLnkTarget : "Destino", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Nueva Ventana(_blank)", +DlgLnkTargetParent : "Ventana Padre (_parent)", +DlgLnkTargetSelf : "Misma Ventana (_self)", +DlgLnkTargetTop : "Ventana primaria (_top)", +DlgLnkTargetFrameName : "Nombre del Marco Destino", +DlgLnkPopWinName : "Nombre de Ventana Emergente", +DlgLnkPopWinFeat : "Características de Ventana Emergente", +DlgLnkPopResize : "Ajustable", +DlgLnkPopLocation : "Barra de ubicación", +DlgLnkPopMenu : "Barra de Menú", +DlgLnkPopScroll : "Barras de desplazamiento", +DlgLnkPopStatus : "Barra de Estado", +DlgLnkPopToolbar : "Barra de Herramientas", +DlgLnkPopFullScrn : "Pantalla Completa (IE)", +DlgLnkPopDependent : "Dependiente (Netscape)", +DlgLnkPopWidth : "Anchura", +DlgLnkPopHeight : "Altura", +DlgLnkPopLeft : "Posición Izquierda", +DlgLnkPopTop : "Posición Derecha", + +DlnLnkMsgNoUrl : "Por favor tipee el vínculo URL", +DlnLnkMsgNoEMail : "Por favor tipee la dirección de e-mail", +DlnLnkMsgNoAnchor : "Por favor seleccione una referencia", +DlnLnkMsgInvPopName : "El nombre debe empezar con un caracter alfanumérico y no debe contener espacios", + +// Color Dialog +DlgColorTitle : "Seleccionar Color", +DlgColorBtnClear : "Ninguno", +DlgColorHighlight : "Resaltado", +DlgColorSelected : "Seleccionado", + +// Smiley Dialog +DlgSmileyTitle : "Insertar un Emoticon", + +// Special Character Dialog +DlgSpecialCharTitle : "Seleccione un caracter especial", + +// Table Dialog +DlgTableTitle : "Propiedades de Tabla", +DlgTableRows : "Filas", +DlgTableColumns : "Columnas", +DlgTableBorder : "Tamaño de Borde", +DlgTableAlign : "Alineación", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Izquierda", +DlgTableAlignCenter : "Centrado", +DlgTableAlignRight : "Derecha", +DlgTableWidth : "Anchura", +DlgTableWidthPx : "pixeles", +DlgTableWidthPc : "porcentaje", +DlgTableHeight : "Altura", +DlgTableCellSpace : "Esp. e/celdas", +DlgTableCellPad : "Esp. interior", +DlgTableCaption : "Título", +DlgTableSummary : "Síntesis", + +// Table Cell Dialog +DlgCellTitle : "Propiedades de Celda", +DlgCellWidth : "Anchura", +DlgCellWidthPx : "pixeles", +DlgCellWidthPc : "porcentaje", +DlgCellHeight : "Altura", +DlgCellWordWrap : "Cortar Línea", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Si", +DlgCellWordWrapNo : "No", +DlgCellHorAlign : "Alineación Horizontal", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Izquierda", +DlgCellHorAlignCenter : "Centrado", +DlgCellHorAlignRight: "Derecha", +DlgCellVerAlign : "Alineación Vertical", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Tope", +DlgCellVerAlignMiddle : "Medio", +DlgCellVerAlignBottom : "ie", +DlgCellVerAlignBaseline : "Línea de Base", +DlgCellRowSpan : "Abarcar Filas", +DlgCellCollSpan : "Abarcar Columnas", +DlgCellBackColor : "Color de Fondo", +DlgCellBorderColor : "Color de Borde", +DlgCellBtnSelect : "Seleccione...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Buscar y Reemplazar", + +// Find Dialog +DlgFindTitle : "Buscar", +DlgFindFindBtn : "Buscar", +DlgFindNotFoundMsg : "El texto especificado no ha sido encontrado.", + +// Replace Dialog +DlgReplaceTitle : "Reemplazar", +DlgReplaceFindLbl : "Texto a buscar:", +DlgReplaceReplaceLbl : "Reemplazar con:", +DlgReplaceCaseChk : "Coincidir may/min", +DlgReplaceReplaceBtn : "Reemplazar", +DlgReplaceReplAllBtn : "Reemplazar Todo", +DlgReplaceWordChk : "Coincidir toda la palabra", + +// Paste Operations / Dialog +PasteErrorCut : "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de cortado. Por favor use el teclado (Ctrl+X).", +PasteErrorCopy : "La configuración de seguridad de este navegador no permite la ejecución automática de operaciones de copiado. Por favor use el teclado (Ctrl+C).", + +PasteAsText : "Pegar como Texto Plano", +PasteFromWord : "Pegar desde Word", + +DlgPasteMsg2 : "Por favor pegue dentro del cuadro utilizando el teclado (Ctrl+V); luego presione OK.", +DlgPasteSec : "Debido a la configuración de seguridad de su navegador, el editor no tiene acceso al portapapeles. Es necesario que lo pegue de nuevo en esta ventana.", +DlgPasteIgnoreFont : "Ignorar definiciones de fuentes", +DlgPasteRemoveStyles : "Remover definiciones de estilo", + +// Color Picker +ColorAutomatic : "Automático", +ColorMoreColors : "Más Colores...", + +// Document Properties +DocProps : "Propiedades del Documento", + +// Anchor Dialog +DlgAnchorTitle : "Propiedades de la Referencia", +DlgAnchorName : "Nombre de la Referencia", +DlgAnchorErrorName : "Por favor, complete el nombre de la Referencia", + +// Speller Pages Dialog +DlgSpellNotInDic : "No se encuentra en el Diccionario", +DlgSpellChangeTo : "Cambiar a", +DlgSpellBtnIgnore : "Ignorar", +DlgSpellBtnIgnoreAll : "Ignorar Todo", +DlgSpellBtnReplace : "Reemplazar", +DlgSpellBtnReplaceAll : "Reemplazar Todo", +DlgSpellBtnUndo : "Deshacer", +DlgSpellNoSuggestions : "- No hay sugerencias -", +DlgSpellProgress : "Control de Ortografía en progreso...", +DlgSpellNoMispell : "Control finalizado: no se encontraron errores", +DlgSpellNoChanges : "Control finalizado: no se ha cambiado ninguna palabra", +DlgSpellOneChange : "Control finalizado: se ha cambiado una palabra", +DlgSpellManyChanges : "Control finalizado: se ha cambiado %1 palabras", + +IeSpellDownload : "Módulo de Control de Ortografía no instalado. ¿Desea descargarlo ahora?", + +// Button Dialog +DlgButtonText : "Texto (Valor)", +DlgButtonType : "Tipo", +DlgButtonTypeBtn : "Boton", +DlgButtonTypeSbm : "Enviar", +DlgButtonTypeRst : "Reestablecer", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Nombre", +DlgCheckboxValue : "Valor", +DlgCheckboxSelected : "Seleccionado", + +// Form Dialog +DlgFormName : "Nombre", +DlgFormAction : "Acción", +DlgFormMethod : "Método", + +// Select Field Dialog +DlgSelectName : "Nombre", +DlgSelectValue : "Valor", +DlgSelectSize : "Tamaño", +DlgSelectLines : "Lineas", +DlgSelectChkMulti : "Permitir múltiple selección", +DlgSelectOpAvail : "Opciones disponibles", +DlgSelectOpText : "Texto", +DlgSelectOpValue : "Valor", +DlgSelectBtnAdd : "Agregar", +DlgSelectBtnModify : "Modificar", +DlgSelectBtnUp : "Subir", +DlgSelectBtnDown : "Bajar", +DlgSelectBtnSetValue : "Establecer como predeterminado", +DlgSelectBtnDelete : "Eliminar", + +// Textarea Dialog +DlgTextareaName : "Nombre", +DlgTextareaCols : "Columnas", +DlgTextareaRows : "Filas", + +// Text Field Dialog +DlgTextName : "Nombre", +DlgTextValue : "Valor", +DlgTextCharWidth : "Caracteres de ancho", +DlgTextMaxChars : "Máximo caracteres", +DlgTextType : "Tipo", +DlgTextTypeText : "Texto", +DlgTextTypePass : "Contraseña", + +// Hidden Field Dialog +DlgHiddenName : "Nombre", +DlgHiddenValue : "Valor", + +// Bulleted List Dialog +BulletedListProp : "Propiedades de Viñetas", +NumberedListProp : "Propiedades de Numeraciones", +DlgLstStart : "Inicio", +DlgLstType : "Tipo", +DlgLstTypeCircle : "Círculo", +DlgLstTypeDisc : "Disco", +DlgLstTypeSquare : "Cuadrado", +DlgLstTypeNumbers : "Números (1, 2, 3)", +DlgLstTypeLCase : "letras en minúsculas (a, b, c)", +DlgLstTypeUCase : "letras en mayúsculas (A, B, C)", +DlgLstTypeSRoman : "Números Romanos (i, ii, iii)", +DlgLstTypeLRoman : "Números Romanos (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "General", +DlgDocBackTab : "Fondo", +DlgDocColorsTab : "Colores y Márgenes", +DlgDocMetaTab : "Meta Información", + +DlgDocPageTitle : "Título de Página", +DlgDocLangDir : "Orientación de idioma", +DlgDocLangDirLTR : "Izq. a Derecha (LTR)", +DlgDocLangDirRTL : "Der. a Izquierda (RTL)", +DlgDocLangCode : "Código de Idioma", +DlgDocCharSet : "Codif. de Conjunto de Caracteres", +DlgDocCharSetCE : "Centro Europeo", +DlgDocCharSetCT : "Chino Tradicional (Big5)", +DlgDocCharSetCR : "Cirílico", +DlgDocCharSetGR : "Griego", +DlgDocCharSetJP : "Japonés", +DlgDocCharSetKR : "Coreano", +DlgDocCharSetTR : "Turco", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "Europeo occidental", +DlgDocCharSetOther : "Otra Codificación", + +DlgDocDocType : "Encabezado de Tipo de Documento", +DlgDocDocTypeOther : "Otro Encabezado", +DlgDocIncXHTML : "Incluir Declaraciones XHTML", +DlgDocBgColor : "Color de Fondo", +DlgDocBgImage : "URL de Imagen de Fondo", +DlgDocBgNoScroll : "Fondo sin rolido", +DlgDocCText : "Texto", +DlgDocCLink : "Vínculo", +DlgDocCVisited : "Vínculo Visitado", +DlgDocCActive : "Vínculo Activo", +DlgDocMargins : "Márgenes de Página", +DlgDocMaTop : "Tope", +DlgDocMaLeft : "Izquierda", +DlgDocMaRight : "Derecha", +DlgDocMaBottom : "Pie", +DlgDocMeIndex : "Claves de indexación del Documento (separados por comas)", +DlgDocMeDescr : "Descripción del Documento", +DlgDocMeAuthor : "Autor", +DlgDocMeCopy : "Copyright", +DlgDocPreview : "Vista Previa", + +// Templates Dialog +Templates : "Plantillas", +DlgTemplatesTitle : "Contenido de Plantillas", +DlgTemplatesSelMsg : "Por favor selecciona la plantilla a abrir en el editor
      (el contenido actual se perderá):", +DlgTemplatesLoading : "Cargando lista de Plantillas. Por favor, aguarde...", +DlgTemplatesNoTpl : "(No hay plantillas definidas)", +DlgTemplatesReplace : "Reemplazar el contenido actual", + +// About Dialog +DlgAboutAboutTab : "Acerca de", +DlgAboutBrowserInfoTab : "Información de Navegador", +DlgAboutLicenseTab : "Licencia", +DlgAboutVersion : "versión", +DlgAboutInfo : "Para mayor información por favor dirigirse a", + +// Div Dialog +DlgDivGeneralTab : "General", +DlgDivAdvancedTab : "Avanzado", +DlgDivStyle : "Estilo", +DlgDivInlineStyle : "Estilos CSS" +}; diff --git a/fckeditor/editor/lang/et.js b/fckeditor/editor/lang/et.js new file mode 100644 index 0000000..8c9d5ff --- /dev/null +++ b/fckeditor/editor/lang/et.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Estonian language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Voldi tööriistariba", +ToolbarExpand : "Laienda tööriistariba", + +// Toolbar Items and Context Menu +Save : "Salvesta", +NewPage : "Uus leht", +Preview : "Eelvaade", +Cut : "Lõika", +Copy : "Kopeeri", +Paste : "Kleebi", +PasteText : "Kleebi tavalise tekstina", +PasteWord : "Kleebi Wordist", +Print : "Prindi", +SelectAll : "Vali kõik", +RemoveFormat : "Eemalda vorming", +InsertLinkLbl : "Link", +InsertLink : "Sisesta link / Muuda linki", +RemoveLink : "Eemalda link", +VisitLink : "Open Link", //MISSING +Anchor : "Sisesta ankur / Muuda ankrut", +AnchorDelete : "Eemalda ankur", +InsertImageLbl : "Pilt", +InsertImage : "Sisesta pilt / Muuda pilti", +InsertFlashLbl : "Flash", +InsertFlash : "Sisesta flash / Muuda flashi", +InsertTableLbl : "Tabel", +InsertTable : "Sisesta tabel / Muuda tabelit", +InsertLineLbl : "Joon", +InsertLine : "Sisesta horisontaaljoon", +InsertSpecialCharLbl: "Erimärgid", +InsertSpecialChar : "Sisesta erimärk", +InsertSmileyLbl : "Emotikon", +InsertSmiley : "Sisesta emotikon", +About : "FCKeditor teave", +Bold : "Paks", +Italic : "Kursiiv", +Underline : "Allajoonitud", +StrikeThrough : "Läbijoonitud", +Subscript : "Allindeks", +Superscript : "Ülaindeks", +LeftJustify : "Vasakjoondus", +CenterJustify : "Keskjoondus", +RightJustify : "Paremjoondus", +BlockJustify : "Rööpjoondus", +DecreaseIndent : "Vähenda taanet", +IncreaseIndent : "Suurenda taanet", +Blockquote : "Blokktsitaat", +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "Võta tagasi", +Redo : "Korda toimingut", +NumberedListLbl : "Nummerdatud loetelu", +NumberedList : "Sisesta/Eemalda nummerdatud loetelu", +BulletedListLbl : "Punktiseeritud loetelu", +BulletedList : "Sisesta/Eemalda punktiseeritud loetelu", +ShowTableBorders : "Näita tabeli jooni", +ShowDetails : "Näita üksikasju", +Style : "Laad", +FontFormat : "Vorming", +Font : "Kiri", +FontSize : "Suurus", +TextColor : "Teksti värv", +BGColor : "Tausta värv", +Source : "Lähtekood", +Find : "Otsi", +Replace : "Asenda", +SpellCheck : "Kontrolli õigekirja", +UniversalKeyboard : "Universaalne klaviatuur", +PageBreakLbl : "Lehepiir", +PageBreak : "Sisesta lehevahetuskoht", + +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", +ShowBlocks : "Näita blokke", + +// Context Menu +EditLink : "Muuda linki", +CellCM : "Lahter", +RowCM : "Rida", +ColumnCM : "Veerg", +InsertRowAfter : "Sisesta rida peale", +InsertRowBefore : "Sisesta rida enne", +DeleteRows : "Eemalda read", +InsertColumnAfter : "Sisesta veerg peale", +InsertColumnBefore : "Sisesta veerg enne", +DeleteColumns : "Eemalda veerud", +InsertCellAfter : "Sisesta lahter peale", +InsertCellBefore : "Sisesta lahter enne", +DeleteCells : "Eemalda lahtrid", +MergeCells : "Ühenda lahtrid", +MergeRight : "Ühenda paremale", +MergeDown : "Ühenda alla", +HorizontalSplitCell : "Poolita lahter horisontaalselt", +VerticalSplitCell : "Poolita lahter vertikaalselt", +TableDelete : "Kustuta tabel", +CellProperties : "Lahtri atribuudid", +TableProperties : "Tabeli atribuudid", +ImageProperties : "Pildi atribuudid", +FlashProperties : "Flash omadused", + +AnchorProp : "Ankru omadused", +ButtonProp : "Nupu omadused", +CheckboxProp : "Märkeruudu omadused", +HiddenFieldProp : "Varjatud lahtri omadused", +RadioButtonProp : "Raadionupu omadused", +ImageButtonProp : "Piltnupu omadused", +TextFieldProp : "Tekstilahtri omadused", +SelectionFieldProp : "Valiklahtri omadused", +TextareaProp : "Tekstiala omadused", +FormProp : "Vormi omadused", + +FontFormats : "Tavaline;Vormindatud;Aadress;Pealkiri 1;Pealkiri 2;Pealkiri 3;Pealkiri 4;Pealkiri 5;Pealkiri 6;Tavaline (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Töötlen XHTML'i. Palun oota...", +Done : "Tehtud", +PasteWordConfirm : "Tekst, mida soovid lisada paistab pärinevat Word'ist. Kas soovid seda enne kleepimist puhastada?", +NotCompatiblePaste : "See käsk on saadaval ainult Internet Explorer versioon 5.5 või uuema puhul. Kas soovid kleepida ilma puhastamata?", +UnknownToolbarItem : "Tundmatu tööriistarea üksus \"%1\"", +UnknownCommand : "Tundmatu käsunimi \"%1\"", +NotImplemented : "Käsku ei täidetud", +UnknownToolbarSet : "Tööriistariba \"%1\" ei eksisteeri", +NoActiveX : "Sinu veebisirvija turvalisuse seaded võivad limiteerida mõningaid tekstirdaktori kasutusvõimalusi. Sa peaksid võimaldama valiku \"Run ActiveX controls and plug-ins\" oma veebisirvija seadetes. Muidu võid sa täheldada vigu tekstiredaktori töös ja märgata puuduvaid funktsioone.", +BrowseServerBlocked : "Ressursside sirvija avamine ebaõnnestus. Võimalda pop-up akende avanemine.", +DialogBlocked : "Ei olenud võimalik avada dialoogi akent. Võimalda pop-up akende avanemine.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Loobu", +DlgBtnClose : "Sulge", +DlgBtnBrowseServer : "Sirvi serverit", +DlgAdvancedTag : "Täpsemalt", +DlgOpOther : "", +DlgInfoTab : "Info", +DlgAlertUrl : "Palun sisesta URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Keele suund", +DlgGenLangDirLtr : "Vasakult paremale (LTR)", +DlgGenLangDirRtl : "Paremalt vasakule (RTL)", +DlgGenLangCode : "Keele kood", +DlgGenAccessKey : "Juurdepääsu võti", +DlgGenName : "Nimi", +DlgGenTabIndex : "Tab indeks", +DlgGenLongDescr : "Pikk kirjeldus URL", +DlgGenClass : "Stiilistiku klassid", +DlgGenTitle : "Juhendav tiitel", +DlgGenContType : "Juhendava sisu tüüp", +DlgGenLinkCharset : "Lingitud ressurssi märgistik", +DlgGenStyle : "Laad", + +// Image Dialog +DlgImgTitle : "Pildi atribuudid", +DlgImgInfoTab : "Pildi info", +DlgImgBtnUpload : "Saada serverissee", +DlgImgURL : "URL", +DlgImgUpload : "Lae üles", +DlgImgAlt : "Alternatiivne tekst", +DlgImgWidth : "Laius", +DlgImgHeight : "Kõrgus", +DlgImgLockRatio : "Lukusta kuvasuhe", +DlgBtnResetSize : "Lähtesta suurus", +DlgImgBorder : "Joon", +DlgImgHSpace : "H. vaheruum", +DlgImgVSpace : "V. vaheruum", +DlgImgAlign : "Joondus", +DlgImgAlignLeft : "Vasak", +DlgImgAlignAbsBottom: "Abs alla", +DlgImgAlignAbsMiddle: "Abs keskele", +DlgImgAlignBaseline : "Baasjoonele", +DlgImgAlignBottom : "Alla", +DlgImgAlignMiddle : "Keskele", +DlgImgAlignRight : "Paremale", +DlgImgAlignTextTop : "Tekstit üles", +DlgImgAlignTop : "Üles", +DlgImgPreview : "Eelvaade", +DlgImgAlertUrl : "Palun kirjuta pildi URL", +DlgImgLinkTab : "Link", + +// Flash Dialog +DlgFlashTitle : "Flash omadused", +DlgFlashChkPlay : "Automaatne start ", +DlgFlashChkLoop : "Korduv", +DlgFlashChkMenu : "Võimalda flash menüü", +DlgFlashScale : "Mastaap", +DlgFlashScaleAll : "Näita kõike", +DlgFlashScaleNoBorder : "Äärist ei ole", +DlgFlashScaleFit : "Täpne sobivus", + +// Link Dialog +DlgLnkWindowTitle : "Link", +DlgLnkInfoTab : "Lingi info", +DlgLnkTargetTab : "Sihtkoht", + +DlgLnkType : "Lingi tüüp", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Ankur sellel lehel", +DlgLnkTypeEMail : "E-post", +DlgLnkProto : "Protokoll", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Vali ankur", +DlgLnkAnchorByName : "Ankru nime järgi", +DlgLnkAnchorById : "Elemendi id järgi", +DlgLnkNoAnchors : "(Selles dokumendis ei ole ankruid)", +DlgLnkEMail : "E-posti aadress", +DlgLnkEMailSubject : "Sõnumi teema", +DlgLnkEMailBody : "Sõnumi tekst", +DlgLnkUpload : "Lae üles", +DlgLnkBtnUpload : "Saada serverisse", + +DlgLnkTarget : "Sihtkoht", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Uus aken (_blank)", +DlgLnkTargetParent : "Esivanem aken (_parent)", +DlgLnkTargetSelf : "Sama aken (_self)", +DlgLnkTargetTop : "Pealmine aken (_top)", +DlgLnkTargetFrameName : "Sihtmärk raami nimi", +DlgLnkPopWinName : "Hüpikakna nimi", +DlgLnkPopWinFeat : "Hüpikakna omadused", +DlgLnkPopResize : "Suurendatav", +DlgLnkPopLocation : "Aadressiriba", +DlgLnkPopMenu : "Menüüriba", +DlgLnkPopScroll : "Kerimisribad", +DlgLnkPopStatus : "Olekuriba", +DlgLnkPopToolbar : "Tööriistariba", +DlgLnkPopFullScrn : "Täisekraan (IE)", +DlgLnkPopDependent : "Sõltuv (Netscape)", +DlgLnkPopWidth : "Laius", +DlgLnkPopHeight : "Kõrgus", +DlgLnkPopLeft : "Vasak asukoht", +DlgLnkPopTop : "Ülemine asukoht", + +DlnLnkMsgNoUrl : "Palun kirjuta lingi URL", +DlnLnkMsgNoEMail : "Palun kirjuta E-Posti aadress", +DlnLnkMsgNoAnchor : "Palun vali ankur", +DlnLnkMsgInvPopName : "Hüpikakna nimi peab algama alfabeetilise tähega ja ei tohi sisaldada tühikuid", + +// Color Dialog +DlgColorTitle : "Vali värv", +DlgColorBtnClear : "Tühjenda", +DlgColorHighlight : "Märgi", +DlgColorSelected : "Valitud", + +// Smiley Dialog +DlgSmileyTitle : "Sisesta emotikon", + +// Special Character Dialog +DlgSpecialCharTitle : "Vali erimärk", + +// Table Dialog +DlgTableTitle : "Tabeli atribuudid", +DlgTableRows : "Read", +DlgTableColumns : "Veerud", +DlgTableBorder : "Joone suurus", +DlgTableAlign : "Joondus", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Vasak", +DlgTableAlignCenter : "Kesk", +DlgTableAlignRight : "Parem", +DlgTableWidth : "Laius", +DlgTableWidthPx : "pikslit", +DlgTableWidthPc : "protsenti", +DlgTableHeight : "Kõrgus", +DlgTableCellSpace : "Lahtri vahe", +DlgTableCellPad : "Lahtri täidis", +DlgTableCaption : "Tabeli tiitel", +DlgTableSummary : "Kokkuvõte", + +// Table Cell Dialog +DlgCellTitle : "Lahtri atribuudid", +DlgCellWidth : "Laius", +DlgCellWidthPx : "pikslit", +DlgCellWidthPc : "protsenti", +DlgCellHeight : "Kõrgus", +DlgCellWordWrap : "Sõna ülekanne", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Jah", +DlgCellWordWrapNo : "Ei", +DlgCellHorAlign : "Horisontaaljoondus", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Vasak", +DlgCellHorAlignCenter : "Kesk", +DlgCellHorAlignRight: "Parem", +DlgCellVerAlign : "Vertikaaljoondus", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Üles", +DlgCellVerAlignMiddle : "Keskele", +DlgCellVerAlignBottom : "Alla", +DlgCellVerAlignBaseline : "Baasjoonele", +DlgCellRowSpan : "Reaulatus", +DlgCellCollSpan : "Veeruulatus", +DlgCellBackColor : "Tausta värv", +DlgCellBorderColor : "Joone värv", +DlgCellBtnSelect : "Vali...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Otsi ja asenda", + +// Find Dialog +DlgFindTitle : "Otsi", +DlgFindFindBtn : "Otsi", +DlgFindNotFoundMsg : "Valitud teksti ei leitud.", + +// Replace Dialog +DlgReplaceTitle : "Asenda", +DlgReplaceFindLbl : "Leia mida:", +DlgReplaceReplaceLbl : "Asenda millega:", +DlgReplaceCaseChk : "Erista suur- ja väiketähti", +DlgReplaceReplaceBtn : "Asenda", +DlgReplaceReplAllBtn : "Asenda kõik", +DlgReplaceWordChk : "Otsi terviklike sõnu", + +// Paste Operations / Dialog +PasteErrorCut : "Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt lõigata. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+X).", +PasteErrorCopy : "Sinu veebisirvija turvaseaded ei luba redaktoril automaatselt kopeerida. Palun kasutage selleks klaviatuuri klahvikombinatsiooni (Ctrl+C).", + +PasteAsText : "Kleebi tavalise tekstina", +PasteFromWord : "Kleebi Wordist", + +DlgPasteMsg2 : "Palun kleebi järgnevasse kasti kasutades klaviatuuri klahvikombinatsiooni (Ctrl+V) ja vajuta seejärel OK.", +DlgPasteSec : "Sinu veebisirvija turvaseadete tõttu, ei oma redaktor otsest ligipääsu lõikelaua andmetele. Sa pead kleepima need uuesti siia aknasse.", +DlgPasteIgnoreFont : "Ignoreeri kirja definitsioone", +DlgPasteRemoveStyles : "Eemalda stiilide definitsioonid", + +// Color Picker +ColorAutomatic : "Automaatne", +ColorMoreColors : "Rohkem värve...", + +// Document Properties +DocProps : "Dokumendi omadused", + +// Anchor Dialog +DlgAnchorTitle : "Ankru omadused", +DlgAnchorName : "Ankru nimi", +DlgAnchorErrorName : "Palun sisest ankru nimi", + +// Speller Pages Dialog +DlgSpellNotInDic : "Puudub sõnastikust", +DlgSpellChangeTo : "Muuda", +DlgSpellBtnIgnore : "Ignoreeri", +DlgSpellBtnIgnoreAll : "Ignoreeri kõiki", +DlgSpellBtnReplace : "Asenda", +DlgSpellBtnReplaceAll : "Asenda kõik", +DlgSpellBtnUndo : "Võta tagasi", +DlgSpellNoSuggestions : "- Soovitused puuduvad -", +DlgSpellProgress : "Toimub õigekirja kontroll...", +DlgSpellNoMispell : "Õigekirja kontroll sooritatud: õigekirjuvigu ei leitud", +DlgSpellNoChanges : "Õigekirja kontroll sooritatud: ühtegi sõna ei muudetud", +DlgSpellOneChange : "Õigekirja kontroll sooritatud: üks sõna muudeti", +DlgSpellManyChanges : "Õigekirja kontroll sooritatud: %1 sõna muudetud", + +IeSpellDownload : "Õigekirja kontrollija ei ole installeeritud. Soovid sa selle alla laadida?", + +// Button Dialog +DlgButtonText : "Tekst (väärtus)", +DlgButtonType : "Tüüp", +DlgButtonTypeBtn : "Nupp", +DlgButtonTypeSbm : "Saada", +DlgButtonTypeRst : "Lähtesta", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Nimi", +DlgCheckboxValue : "Väärtus", +DlgCheckboxSelected : "Valitud", + +// Form Dialog +DlgFormName : "Nimi", +DlgFormAction : "Toiming", +DlgFormMethod : "Meetod", + +// Select Field Dialog +DlgSelectName : "Nimi", +DlgSelectValue : "Väärtus", +DlgSelectSize : "Suurus", +DlgSelectLines : "ridu", +DlgSelectChkMulti : "Võimalda mitu valikut", +DlgSelectOpAvail : "Võimalikud valikud", +DlgSelectOpText : "Tekst", +DlgSelectOpValue : "Väärtus", +DlgSelectBtnAdd : "Lisa", +DlgSelectBtnModify : "Muuda", +DlgSelectBtnUp : "Üles", +DlgSelectBtnDown : "Alla", +DlgSelectBtnSetValue : "Sea valitud olekuna", +DlgSelectBtnDelete : "Kustuta", + +// Textarea Dialog +DlgTextareaName : "Nimi", +DlgTextareaCols : "Veerge", +DlgTextareaRows : "Ridu", + +// Text Field Dialog +DlgTextName : "Nimi", +DlgTextValue : "Väärtus", +DlgTextCharWidth : "Laius (tähemärkides)", +DlgTextMaxChars : "Maksimaalselt tähemärke", +DlgTextType : "Tüüp", +DlgTextTypeText : "Tekst", +DlgTextTypePass : "Parool", + +// Hidden Field Dialog +DlgHiddenName : "Nimi", +DlgHiddenValue : "Väärtus", + +// Bulleted List Dialog +BulletedListProp : "Täpitud loetelu omadused", +NumberedListProp : "Nummerdatud loetelu omadused", +DlgLstStart : "Alusta", +DlgLstType : "Tüüp", +DlgLstTypeCircle : "Ring", +DlgLstTypeDisc : "Ketas", +DlgLstTypeSquare : "Ruut", +DlgLstTypeNumbers : "Numbrid (1, 2, 3)", +DlgLstTypeLCase : "Väiketähed (a, b, c)", +DlgLstTypeUCase : "Suurtähed (A, B, C)", +DlgLstTypeSRoman : "Väiksed Rooma numbrid (i, ii, iii)", +DlgLstTypeLRoman : "Suured Rooma numbrid (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Üldine", +DlgDocBackTab : "Taust", +DlgDocColorsTab : "Värvid ja veerised", +DlgDocMetaTab : "Meta andmed", + +DlgDocPageTitle : "Lehekülje tiitel", +DlgDocLangDir : "Kirja suund", +DlgDocLangDirLTR : "Vasakult paremale (LTR)", +DlgDocLangDirRTL : "Paremalt vasakule (RTL)", +DlgDocLangCode : "Keele kood", +DlgDocCharSet : "Märgistiku kodeering", +DlgDocCharSetCE : "Kesk-Euroopa", +DlgDocCharSetCT : "Hiina traditsiooniline (Big5)", +DlgDocCharSetCR : "Kirillisa", +DlgDocCharSetGR : "Kreeka", +DlgDocCharSetJP : "Jaapani", +DlgDocCharSetKR : "Korea", +DlgDocCharSetTR : "Türgi", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "Lääne-Euroopa", +DlgDocCharSetOther : "Ülejäänud märgistike kodeeringud", + +DlgDocDocType : "Dokumendi tüüppäis", +DlgDocDocTypeOther : "Teised dokumendi tüüppäised", +DlgDocIncXHTML : "Arva kaasa XHTML deklaratsioonid", +DlgDocBgColor : "Taustavärv", +DlgDocBgImage : "Taustapildi URL", +DlgDocBgNoScroll : "Mittekeritav tagataust", +DlgDocCText : "Tekst", +DlgDocCLink : "Link", +DlgDocCVisited : "Külastatud link", +DlgDocCActive : "Aktiivne link", +DlgDocMargins : "Lehekülje äärised", +DlgDocMaTop : "Ülaserv", +DlgDocMaLeft : "Vasakserv", +DlgDocMaRight : "Paremserv", +DlgDocMaBottom : "Alaserv", +DlgDocMeIndex : "Dokumendi võtmesõnad (eraldatud komadega)", +DlgDocMeDescr : "Dokumendi kirjeldus", +DlgDocMeAuthor : "Autor", +DlgDocMeCopy : "Autoriõigus", +DlgDocPreview : "Eelvaade", + +// Templates Dialog +Templates : "Šabloon", +DlgTemplatesTitle : "Sisu šabloonid", +DlgTemplatesSelMsg : "Palun vali šabloon, et avada see redaktoris
      (praegune sisu läheb kaotsi):", +DlgTemplatesLoading : "Laen šabloonide nimekirja. Palun oota...", +DlgTemplatesNoTpl : "(Ühtegi šablooni ei ole defineeritud)", +DlgTemplatesReplace : "Asenda tegelik sisu", + +// About Dialog +DlgAboutAboutTab : "Teave", +DlgAboutBrowserInfoTab : "Veebisirvija info", +DlgAboutLicenseTab : "Litsents", +DlgAboutVersion : "versioon", +DlgAboutInfo : "Täpsema info saamiseks mine", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/eu.js b/fckeditor/editor/lang/eu.js new file mode 100644 index 0000000..2ad6f26 --- /dev/null +++ b/fckeditor/editor/lang/eu.js @@ -0,0 +1,527 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Basque language file. + * Euskara hizkuntza fitxategia. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Estutu Tresna Barra", +ToolbarExpand : "Hedatu Tresna Barra", + +// Toolbar Items and Context Menu +Save : "Gorde", +NewPage : "Orrialde Berria", +Preview : "Aurrebista", +Cut : "Ebaki", +Copy : "Kopiatu", +Paste : "Itsatsi", +PasteText : "Itsatsi testu bezala", +PasteWord : "Itsatsi Word-etik", +Print : "Inprimatu", +SelectAll : "Hautatu dena", +RemoveFormat : "Kendu Formatoa", +InsertLinkLbl : "Esteka", +InsertLink : "Txertatu/Editatu Esteka", +RemoveLink : "Kendu Esteka", +VisitLink : "Open Link", //MISSING +Anchor : "Aingura", +AnchorDelete : "Ezabatu Aingura", +InsertImageLbl : "Irudia", +InsertImage : "Txertatu/Editatu Irudia", +InsertFlashLbl : "Flasha", +InsertFlash : "Txertatu/Editatu Flasha", +InsertTableLbl : "Taula", +InsertTable : "Txertatu/Editatu Taula", +InsertLineLbl : "Lerroa", +InsertLine : "Txertatu Marra Horizontala", +InsertSpecialCharLbl: "Karaktere Berezia", +InsertSpecialChar : "Txertatu Karaktere Berezia", +InsertSmileyLbl : "Aurpegierak", +InsertSmiley : "Txertatu Aurpegierak", +About : "FCKeditor-ri buruz", +Bold : "Lodia", +Italic : "Etzana", +Underline : "Azpimarratu", +StrikeThrough : "Marratua", +Subscript : "Azpi-indize", +Superscript : "Goi-indize", +LeftJustify : "Lerrokatu Ezkerrean", +CenterJustify : "Lerrokatu Erdian", +RightJustify : "Lerrokatu Eskuman", +BlockJustify : "Justifikatu", +DecreaseIndent : "Txikitu Koska", +IncreaseIndent : "Handitu Koska", +Blockquote : "Aipamen blokea", +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "Desegin", +Redo : "Berregin", +NumberedListLbl : "Zenbakidun Zerrenda", +NumberedList : "Txertatu/Kendu Zenbakidun zerrenda", +BulletedListLbl : "Buletdun Zerrenda", +BulletedList : "Txertatu/Kendu Buletdun zerrenda", +ShowTableBorders : "Erakutsi Taularen Ertzak", +ShowDetails : "Erakutsi Xehetasunak", +Style : "Estiloa", +FontFormat : "Formatoa", +Font : "Letra-tipoa", +FontSize : "Tamaina", +TextColor : "Testu Kolorea", +BGColor : "Atzeko kolorea", +Source : "HTML Iturburua", +Find : "Bilatu", +Replace : "Ordezkatu", +SpellCheck : "Ortografia", +UniversalKeyboard : "Teklatu Unibertsala", +PageBreakLbl : "Orrialde-jauzia", +PageBreak : "Txertatu Orrialde-jauzia", + +Form : "Formularioa", +Checkbox : "Kontrol-laukia", +RadioButton : "Aukera-botoia", +TextField : "Testu Eremua", +Textarea : "Testu-area", +HiddenField : "Ezkutuko Eremua", +Button : "Botoia", +SelectionField : "Hautespen Eremua", +ImageButton : "Irudi Botoia", + +FitWindow : "Maximizatu editorearen tamaina", +ShowBlocks : "Blokeak erakutsi", + +// Context Menu +EditLink : "Aldatu Esteka", +CellCM : "Gelaxka", +RowCM : "Errenkada", +ColumnCM : "Zutabea", +InsertRowAfter : "Txertatu Lerroa Ostean", +InsertRowBefore : "Txertatu Lerroa Aurretik", +DeleteRows : "Ezabatu Errenkadak", +InsertColumnAfter : "Txertatu Zutabea Ostean", +InsertColumnBefore : "Txertatu Zutabea Aurretik", +DeleteColumns : "Ezabatu Zutabeak", +InsertCellAfter : "Txertatu Gelaxka Ostean", +InsertCellBefore : "Txertatu Gelaxka Aurretik", +DeleteCells : "Kendu Gelaxkak", +MergeCells : "Batu Gelaxkak", +MergeRight : "Elkartu Eskumara", +MergeDown : "Elkartu Behera", +HorizontalSplitCell : "Banatu Gelaxkak Horizontalki", +VerticalSplitCell : "Banatu Gelaxkak Bertikalki", +TableDelete : "Ezabatu Taula", +CellProperties : "Gelaxkaren Ezaugarriak", +TableProperties : "Taularen Ezaugarriak", +ImageProperties : "Irudiaren Ezaugarriak", +FlashProperties : "Flasharen Ezaugarriak", + +AnchorProp : "Ainguraren Ezaugarriak", +ButtonProp : "Botoiaren Ezaugarriak", +CheckboxProp : "Kontrol-laukiko Ezaugarriak", +HiddenFieldProp : "Ezkutuko Eremuaren Ezaugarriak", +RadioButtonProp : "Aukera-botoiaren Ezaugarriak", +ImageButtonProp : "Irudi Botoiaren Ezaugarriak", +TextFieldProp : "Testu Eremuaren Ezaugarriak", +SelectionFieldProp : "Hautespen Eremuaren Ezaugarriak", +TextareaProp : "Testu-arearen Ezaugarriak", +FormProp : "Formularioaren Ezaugarriak", + +FontFormats : "Arrunta;Formateatua;Helbidea;Izenburua 1;Izenburua 2;Izenburua 3;Izenburua 4;Izenburua 5;Izenburua 6;Paragrafoa (DIV)", + +// Alerts and Messages +ProcessingXHTML : "XHTML Prozesatzen. Itxaron mesedez...", +Done : "Eginda", +PasteWordConfirm : "Itsatsi nahi duzun textua Wordetik hartua dela dirudi. Itsatsi baino lehen garbitu nahi duzu?", +NotCompatiblePaste : "Komando hau Internet Explorer 5.5 bertsiorako edo ondorengoentzako erabilgarria dago. Garbitu gabe itsatsi nahi duzu?", +UnknownToolbarItem : "Ataza barrako elementu ezezaguna \"%1\"", +UnknownCommand : "Komando izen ezezaguna \"%1\"", +NotImplemented : "Komando ez inplementatua", +UnknownToolbarSet : "Ataza barra \"%1\" taldea ez da existitzen", +NoActiveX : "Zure nabigatzailearen segustasun hobespenak editore honen zenbait ezaugarri mugatu ditzake. \"ActiveX kontrolak eta plug-inak\" aktibatu beharko zenituzke, bestela erroreak eta ezaugarrietan mugak egon daitezke.", +BrowseServerBlocked : "Baliabideen arakatzailea ezin da ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.", +DialogBlocked : "Ezin da elkarrizketa-leihoa ireki. Ziurtatu popup blokeatzaileak desgaituta dituzula.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "Ados", +DlgBtnCancel : "Utzi", +DlgBtnClose : "Itxi", +DlgBtnBrowseServer : "Zerbitzaria arakatu", +DlgAdvancedTag : "Aurreratua", +DlgOpOther : "", +DlgInfoTab : "Informazioa", +DlgAlertUrl : "Mesedez URLa idatzi ezazu", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Hizkuntzaren Norabidea", +DlgGenLangDirLtr : "Ezkerretik Eskumara(LTR)", +DlgGenLangDirRtl : "Eskumatik Ezkerrera (RTL)", +DlgGenLangCode : "Hizkuntza Kodea", +DlgGenAccessKey : "Sarbide-gakoa", +DlgGenName : "Izena", +DlgGenTabIndex : "Tabulazio Indizea", +DlgGenLongDescr : "URL Deskribapen Luzea", +DlgGenClass : "Estilo-orriko Klaseak", +DlgGenTitle : "Izenburua", +DlgGenContType : "Eduki Mota (Content Type)", +DlgGenLinkCharset : "Estekatutako Karaktere Multzoa", +DlgGenStyle : "Estiloa", + +// Image Dialog +DlgImgTitle : "Irudi Ezaugarriak", +DlgImgInfoTab : "Irudi informazioa", +DlgImgBtnUpload : "Zerbitzarira bidalia", +DlgImgURL : "URL", +DlgImgUpload : "Gora Kargatu", +DlgImgAlt : "Textu Alternatiboa", +DlgImgWidth : "Zabalera", +DlgImgHeight : "Altuera", +DlgImgLockRatio : "Erlazioa Blokeatu", +DlgBtnResetSize : "Tamaina Berrezarri", +DlgImgBorder : "Ertza", +DlgImgHSpace : "HSpace", +DlgImgVSpace : "VSpace", +DlgImgAlign : "Lerrokatu", +DlgImgAlignLeft : "Ezkerrera", +DlgImgAlignAbsBottom: "Abs Behean", +DlgImgAlignAbsMiddle: "Abs Erdian", +DlgImgAlignBaseline : "Oinan", +DlgImgAlignBottom : "Behean", +DlgImgAlignMiddle : "Erdian", +DlgImgAlignRight : "Eskuman", +DlgImgAlignTextTop : "Testua Goian", +DlgImgAlignTop : "Goian", +DlgImgPreview : "Aurrebista", +DlgImgAlertUrl : "Mesedez Irudiaren URLa idatzi", +DlgImgLinkTab : "Esteka", + +// Flash Dialog +DlgFlashTitle : "Flasharen Ezaugarriak", +DlgFlashChkPlay : "Automatikoki Erreproduzitu", +DlgFlashChkLoop : "Begizta", +DlgFlashChkMenu : "Flasharen Menua Gaitu", +DlgFlashScale : "Eskalatu", +DlgFlashScaleAll : "Dena erakutsi", +DlgFlashScaleNoBorder : "Ertzarik gabe", +DlgFlashScaleFit : "Doitu", + +// Link Dialog +DlgLnkWindowTitle : "Esteka", +DlgLnkInfoTab : "Estekaren Informazioa", +DlgLnkTargetTab : "Helburua", + +DlgLnkType : "Esteka Mota", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Aingura horrialde honentan", +DlgLnkTypeEMail : "ePosta", +DlgLnkProto : "Protokoloa", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Aingura bat hautatu", +DlgLnkAnchorByName : "Aingura izenagatik", +DlgLnkAnchorById : "Elementuaren ID-gatik", +DlgLnkNoAnchors : "(Ez daude aingurak eskuragarri dokumentuan)", +DlgLnkEMail : "ePosta Helbidea", +DlgLnkEMailSubject : "Mezuaren Gaia", +DlgLnkEMailBody : "Mezuaren Gorputza", +DlgLnkUpload : "Gora kargatu", +DlgLnkBtnUpload : "Zerbitzarira bidali", + +DlgLnkTarget : "Target (Helburua)", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Lehio Berria (_blank)", +DlgLnkTargetParent : "Lehio Gurasoa (_parent)", +DlgLnkTargetSelf : "Lehio Berdina (_self)", +DlgLnkTargetTop : "Goiko Lehioa (_top)", +DlgLnkTargetFrameName : "Marko Helburuaren Izena", +DlgLnkPopWinName : "Popup Lehioaren Izena", +DlgLnkPopWinFeat : "Popup Lehioaren Ezaugarriak", +DlgLnkPopResize : "Tamaina Aldakorra", +DlgLnkPopLocation : "Kokaleku Barra", +DlgLnkPopMenu : "Menu Barra", +DlgLnkPopScroll : "Korritze Barrak", +DlgLnkPopStatus : "Egoera Barra", +DlgLnkPopToolbar : "Tresna Barra", +DlgLnkPopFullScrn : "Pantaila Osoa (IE)", +DlgLnkPopDependent : "Menpekoa (Netscape)", +DlgLnkPopWidth : "Zabalera", +DlgLnkPopHeight : "Altuera", +DlgLnkPopLeft : "Ezkerreko Posizioa", +DlgLnkPopTop : "Goiko Posizioa", + +DlnLnkMsgNoUrl : "Mesedez URL esteka idatzi", +DlnLnkMsgNoEMail : "Mesedez ePosta helbidea idatzi", +DlnLnkMsgNoAnchor : "Mesedez aingura bat aukeratu", +DlnLnkMsgInvPopName : "Popup lehioaren izenak karaktere alfabetiko batekin hasi behar du eta eta ezin du zuriunerik izan", + +// Color Dialog +DlgColorTitle : "Kolore Aukeraketa", +DlgColorBtnClear : "Garbitu", +DlgColorHighlight : "Nabarmendu", +DlgColorSelected : "Aukeratuta", + +// Smiley Dialog +DlgSmileyTitle : "Aurpegiera Sartu", + +// Special Character Dialog +DlgSpecialCharTitle : "Karaktere Berezia Aukeratu", + +// Table Dialog +DlgTableTitle : "Taularen Ezaugarriak", +DlgTableRows : "Lerroak", +DlgTableColumns : "Zutabeak", +DlgTableBorder : "Ertzaren Zabalera", +DlgTableAlign : "Lerrokatu", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Ezkerrean", +DlgTableAlignCenter : "Erdian", +DlgTableAlignRight : "Eskuman", +DlgTableWidth : "Zabalera", +DlgTableWidthPx : "pixel", +DlgTableWidthPc : "ehuneko", +DlgTableHeight : "Altuera", +DlgTableCellSpace : "Gelaxka arteko tartea", +DlgTableCellPad : "Gelaxken betegarria", +DlgTableCaption : "Epigrafea", +DlgTableSummary : "Laburpena", + +// Table Cell Dialog +DlgCellTitle : "Gelaxken Ezaugarriak", +DlgCellWidth : "Zabalera", +DlgCellWidthPx : "pixel", +DlgCellWidthPc : "ehuneko", +DlgCellHeight : "Altuera", +DlgCellWordWrap : "Itzulbira", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Bai", +DlgCellWordWrapNo : "Ez", +DlgCellHorAlign : "Horizontal Alignment", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Ezkerrean", +DlgCellHorAlignCenter : "Erdian", +DlgCellHorAlignRight: "Eskuman", +DlgCellVerAlign : "Lerrokatu Bertikalki", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Goian", +DlgCellVerAlignMiddle : "Erdian", +DlgCellVerAlignBottom : "Behean", +DlgCellVerAlignBaseline : "Oinan", +DlgCellRowSpan : "Lerroak Hedatu", +DlgCellCollSpan : "Zutabeak Hedatu", +DlgCellBackColor : "Atzeko Kolorea", +DlgCellBorderColor : "Ertzako Kolorea", +DlgCellBtnSelect : "Aukertau...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Bilatu eta Ordeztu", + +// Find Dialog +DlgFindTitle : "Bilaketa", +DlgFindFindBtn : "Bilatu", +DlgFindNotFoundMsg : "Idatzitako testua ez da topatu.", + +// Replace Dialog +DlgReplaceTitle : "Ordeztu", +DlgReplaceFindLbl : "Zer bilatu:", +DlgReplaceReplaceLbl : "Zerekin ordeztu:", +DlgReplaceCaseChk : "Maiuskula/minuskula", +DlgReplaceReplaceBtn : "Ordeztu", +DlgReplaceReplAllBtn : "Ordeztu Guztiak", +DlgReplaceWordChk : "Esaldi osoa bilatu", + +// Paste Operations / Dialog +PasteErrorCut : "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki moztea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+X).", +PasteErrorCopy : "Zure web nabigatzailearen segurtasun ezarpenak testuak automatikoki kopiatzea ez dute baimentzen. Mesedez teklatua erabili ezazu (Ctrl+C).", + +PasteAsText : "Testu Arrunta bezala Itsatsi", +PasteFromWord : "Word-etik itsatsi", + +DlgPasteMsg2 : "Mesedez teklatua erabilita (Ctrl+V) ondorego eremuan testua itsatsi eta OK sakatu.", +DlgPasteSec : "Nabigatzailearen segurtasun ezarpenak direla eta, editoreak ezin du arbela zuzenean erabili. Leiho honetan berriro itsatsi behar duzu.", +DlgPasteIgnoreFont : "Letra Motaren definizioa ezikusi", +DlgPasteRemoveStyles : "Estilo definizioak kendu", + +// Color Picker +ColorAutomatic : "Automatikoa", +ColorMoreColors : "Kolore gehiago...", + +// Document Properties +DocProps : "Dokumentuaren Ezarpenak", + +// Anchor Dialog +DlgAnchorTitle : "Ainguraren Ezaugarriak", +DlgAnchorName : "Ainguraren Izena", +DlgAnchorErrorName : "Idatzi ainguraren izena", + +// Speller Pages Dialog +DlgSpellNotInDic : "Ez dago hiztegian", +DlgSpellChangeTo : "Honekin ordezkatu", +DlgSpellBtnIgnore : "Ezikusi", +DlgSpellBtnIgnoreAll : "Denak Ezikusi", +DlgSpellBtnReplace : "Ordezkatu", +DlgSpellBtnReplaceAll : "Denak Ordezkatu", +DlgSpellBtnUndo : "Desegin", +DlgSpellNoSuggestions : "- Iradokizunik ez -", +DlgSpellProgress : "Zuzenketa ortografikoa martxan...", +DlgSpellNoMispell : "Zuzenketa ortografikoa bukatuta: Akatsik ez", +DlgSpellNoChanges : "Zuzenketa ortografikoa bukatuta: Ez da ezer aldatu", +DlgSpellOneChange : "Zuzenketa ortografikoa bukatuta: Hitz bat aldatu da", +DlgSpellManyChanges : "Zuzenketa ortografikoa bukatuta: %1 hitz aldatu dira", + +IeSpellDownload : "Zuzentzaile ortografikoa ez dago instalatuta. Deskargatu nahi duzu?", + +// Button Dialog +DlgButtonText : "Testua (Balorea)", +DlgButtonType : "Mota", +DlgButtonTypeBtn : "Botoia", +DlgButtonTypeSbm : "Bidali", +DlgButtonTypeRst : "Garbitu", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Izena", +DlgCheckboxValue : "Balorea", +DlgCheckboxSelected : "Hautatuta", + +// Form Dialog +DlgFormName : "Izena", +DlgFormAction : "Ekintza", +DlgFormMethod : "Method", + +// Select Field Dialog +DlgSelectName : "Izena", +DlgSelectValue : "Balorea", +DlgSelectSize : "Tamaina", +DlgSelectLines : "lerro kopurura", +DlgSelectChkMulti : "Hautaketa anitzak baimendu", +DlgSelectOpAvail : "Aukera Eskuragarriak", +DlgSelectOpText : "Testua", +DlgSelectOpValue : "Balorea", +DlgSelectBtnAdd : "Gehitu", +DlgSelectBtnModify : "Aldatu", +DlgSelectBtnUp : "Gora", +DlgSelectBtnDown : "Behera", +DlgSelectBtnSetValue : "Aukeratutako balorea ezarri", +DlgSelectBtnDelete : "Ezabatu", + +// Textarea Dialog +DlgTextareaName : "Izena", +DlgTextareaCols : "Zutabeak", +DlgTextareaRows : "Lerroak", + +// Text Field Dialog +DlgTextName : "Izena", +DlgTextValue : "Balorea", +DlgTextCharWidth : "Zabalera", +DlgTextMaxChars : "Zenbat karaktere gehienez", +DlgTextType : "Mota", +DlgTextTypeText : "Testua", +DlgTextTypePass : "Pasahitza", + +// Hidden Field Dialog +DlgHiddenName : "Izena", +DlgHiddenValue : "Balorea", + +// Bulleted List Dialog +BulletedListProp : "Buletdun Zerrendaren Ezarpenak", +NumberedListProp : "Zenbakidun Zerrendaren Ezarpenak", +DlgLstStart : "Hasiera", +DlgLstType : "Mota", +DlgLstTypeCircle : "Zirkulua", +DlgLstTypeDisc : "Diskoa", +DlgLstTypeSquare : "Karratua", +DlgLstTypeNumbers : "Zenbakiak (1, 2, 3)", +DlgLstTypeLCase : "Letra xeheak (a, b, c)", +DlgLstTypeUCase : "Letra larriak (A, B, C)", +DlgLstTypeSRoman : "Erromatar zenbaki zeheak (i, ii, iii)", +DlgLstTypeLRoman : "Erromatar zenbaki larriak (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Orokorra", +DlgDocBackTab : "Atzekaldea", +DlgDocColorsTab : "Koloreak eta Marjinak", +DlgDocMetaTab : "Meta Informazioa", + +DlgDocPageTitle : "Orriaren Izenburua", +DlgDocLangDir : "Hizkuntzaren Norabidea", +DlgDocLangDirLTR : "Ezkerretik eskumara (LTR)", +DlgDocLangDirRTL : "Eskumatik ezkerrera (RTL)", +DlgDocLangCode : "Hizkuntzaren Kodea", +DlgDocCharSet : "Karaktere Multzoaren Kodeketa", +DlgDocCharSetCE : "Erdialdeko Europakoa", +DlgDocCharSetCT : "Txinatar Tradizionala (Big5)", +DlgDocCharSetCR : "Zirilikoa", +DlgDocCharSetGR : "Grekoa", +DlgDocCharSetJP : "Japoniarra", +DlgDocCharSetKR : "Korearra", +DlgDocCharSetTR : "Turkiarra", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "Mendebaldeko Europakoa", +DlgDocCharSetOther : "Beste Karaktere Multzoko Kodeketa", + +DlgDocDocType : "Document Type Goiburua", +DlgDocDocTypeOther : "Beste Document Type Goiburua", +DlgDocIncXHTML : "XHTML Ezarpenak", +DlgDocBgColor : "Atzeko Kolorea", +DlgDocBgImage : "Atzeko Irudiaren URL-a", +DlgDocBgNoScroll : "Korritze gabeko Atzekaldea", +DlgDocCText : "Testua", +DlgDocCLink : "Estekak", +DlgDocCVisited : "Bisitatutako Estekak", +DlgDocCActive : "Esteka Aktiboa", +DlgDocMargins : "Orrialdearen marjinak", +DlgDocMaTop : "Goian", +DlgDocMaLeft : "Ezkerrean", +DlgDocMaRight : "Eskuman", +DlgDocMaBottom : "Behean", +DlgDocMeIndex : "Dokumentuaren Gako-hitzak (komarekin bananduta)", +DlgDocMeDescr : "Dokumentuaren Deskribapena", +DlgDocMeAuthor : "Egilea", +DlgDocMeCopy : "Copyright", +DlgDocPreview : "Aurrebista", + +// Templates Dialog +Templates : "Txantiloiak", +DlgTemplatesTitle : "Eduki Txantiloiak", +DlgTemplatesSelMsg : "Mesedez txantiloia aukeratu editorean kargatzeko
      (orain dauden edukiak galduko dira):", +DlgTemplatesLoading : "Txantiloiak kargatzen. Itxaron mesedez...", +DlgTemplatesNoTpl : "(Ez dago definitutako txantiloirik)", +DlgTemplatesReplace : "Ordeztu oraingo edukiak", + +// About Dialog +DlgAboutAboutTab : "Honi buruz", +DlgAboutBrowserInfoTab : "Nabigatzailearen Informazioa", +DlgAboutLicenseTab : "Lizentzia", +DlgAboutVersion : "bertsioa", +DlgAboutInfo : "Informazio gehiago eskuratzeko hona joan", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/fa.js b/fckeditor/editor/lang/fa.js new file mode 100644 index 0000000..a638526 --- /dev/null +++ b/fckeditor/editor/lang/fa.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Persian language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "rtl", + +ToolbarCollapse : "برچیدن نوارابزار", +ToolbarExpand : "گستردن نوارابزار", + +// Toolbar Items and Context Menu +Save : "ذخیره", +NewPage : "برگهٴ تازه", +Preview : "پیش‌نمایش", +Cut : "برش", +Copy : "کپی", +Paste : "چسباندن", +PasteText : "چسباندن به عنوان متن ِساده", +PasteWord : "چسباندن از Word", +Print : "چاپ", +SelectAll : "گزینش همه", +RemoveFormat : "برداشتن فرمت", +InsertLinkLbl : "پیوند", +InsertLink : "گنجاندن/ویرایش ِپیوند", +RemoveLink : "برداشتن پیوند", +VisitLink : "باز کردن پیوند", +Anchor : "گنجاندن/ویرایش ِلنگر", +AnchorDelete : "برداشتن لنگر", +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 : "افزایش تورفتگی", +Blockquote : "بلوک نقل قول", +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "واچیدن", +Redo : "بازچیدن", +NumberedListLbl : "فهرست شماره‌دار", +NumberedList : "گنجاندن/برداشتن فهرست شماره‌دار", +BulletedListLbl : "فهرست نقطه‌ای", +BulletedList : "گنجاندن/برداشتن فهرست نقطه‌ای", +ShowTableBorders : "نمایش لبهٴ جدول", +ShowDetails : "نمایش جزئیات", +Style : "سبک", +FontFormat : "فرمت", +Font : "قلم", +FontSize : "اندازه", +TextColor : "رنگ متن", +BGColor : "رنگ پس‌زمینه", +Source : "منبع", +Find : "جستجو", +Replace : "جایگزینی", +SpellCheck : "بررسی املا", +UniversalKeyboard : "صفحه‌کلید جهانی", +PageBreakLbl : "شکستگی ِپایان ِبرگه", +PageBreak : "گنجاندن شکستگی ِپایان ِبرگه", + +Form : "فرم", +Checkbox : "خانهٴ گزینه‌ای", +RadioButton : "دکمهٴ رادیویی", +TextField : "فیلد متنی", +Textarea : "ناحیهٴ متنی", +HiddenField : "فیلد پنهان", +Button : "دکمه", +SelectionField : "فیلد چندگزینه‌ای", +ImageButton : "دکمهٴ تصویری", + +FitWindow : "بیشینه‌سازی ِاندازهٴ ویرایشگر", +ShowBlocks : "نمایش بلوک‌ها", + +// Context Menu +EditLink : "ویرایش پیوند", +CellCM : "سلول", +RowCM : "سطر", +ColumnCM : "ستون", +InsertRowAfter : "افزودن سطر بعد از", +InsertRowBefore : "افزودن سطر قبل از", +DeleteRows : "حذف سطرها", +InsertColumnAfter : "افزودن ستون بعد از", +InsertColumnBefore : "افزودن ستون قبل از", +DeleteColumns : "حذف ستونها", +InsertCellAfter : "افزودن سلول بعد از", +InsertCellBefore : "افزودن سلول قبل از", +DeleteCells : "حذف سلولها", +MergeCells : "ادغام سلولها", +MergeRight : "ادغام به راست", +MergeDown : "ادغام به پایین", +HorizontalSplitCell : "جدا کردن افقی سلول", +VerticalSplitCell : "جدا کردن عمودی سلول", +TableDelete : "پاک‌کردن جدول", +CellProperties : "ویژگیهای سلول", +TableProperties : "ویژگیهای جدول", +ImageProperties : "ویژگیهای تصویر", +FlashProperties : "ویژگیهای Flash", + +AnchorProp : "ویژگیهای لنگر", +ButtonProp : "ویژگیهای دکمه", +CheckboxProp : "ویژگیهای خانهٴ گزینه‌ای", +HiddenFieldProp : "ویژگیهای فیلد پنهان", +RadioButtonProp : "ویژگیهای دکمهٴ رادیویی", +ImageButtonProp : "ویژگیهای دکمهٴ تصویری", +TextFieldProp : "ویژگیهای فیلد متنی", +SelectionFieldProp : "ویژگیهای فیلد چندگزینه‌ای", +TextareaProp : "ویژگیهای ناحیهٴ متنی", +FormProp : "ویژگیهای فرم", + +FontFormats : "نرمال;فرمت‌شده;آدرس;سرنویس 1;سرنویس 2;سرنویس 3;سرنویس 4;سرنویس 5;سرنویس 6;بند;(DIV)", + +// Alerts and Messages +ProcessingXHTML : "پردازش XHTML. لطفا صبر کنید...", +Done : "انجام شد", +PasteWordConfirm : "متنی که می‌خواهید بچسبانید به نظر می‌رسد از Word کپی شده است. آیا می‌خواهید قبل از چسباندن آن را پاک‌سازی کنید؟", +NotCompatiblePaste : "این فرمان برای مرورگر Internet Explorer از نگارش 5.5 یا بالاتر در دسترس است. آیا می‌خواهید بدون پاک‌سازی، متن را بچسبانید؟", +UnknownToolbarItem : "فقرهٴ نوارابزار ناشناخته \"%1\"", +UnknownCommand : "نام دستور ناشناخته \"%1\"", +NotImplemented : "دستور پیاده‌سازی‌نشده", +UnknownToolbarSet : "مجموعهٴ نوارابزار \"%1\" وجود ندارد", +NoActiveX : "تنظیمات امنیتی مرورگر شما ممکن است در بعضی از ویژگیهای مرورگر محدودیت ایجاد کند. شما باید گزینهٴ \"Run ActiveX controls and plug-ins\" را فعال کنید. ممکن است شما با خطاهایی روبرو باشید و متوجه کمبود ویژگیهایی شوید.", +BrowseServerBlocked : "توانایی بازگشایی مرورگر منابع فراهم نیست. اطمینان حاصل کنید که تمامی برنامه‌های پیشگیری از نمایش popup را از کار بازداشته‌اید.", +DialogBlocked : "توانایی بازگشایی پنجرهٴ کوچک ِگفتگو فراهم نیست. اطمینان حاصل کنید که تمامی برنامه‌های پیشگیری از نمایش popup را از کار بازداشته‌اید.", +VisitLinkBlocked : "امکان بازکردن یک پنجره جدید نیست. اطمینان حاصل کنید که تمامی برنامه‌های پیشگیری از نمایش popup را از کار بازداشته‌اید.", + +// Dialogs +DlgBtnOK : "پذیرش", +DlgBtnCancel : "انصراف", +DlgBtnClose : "بستن", +DlgBtnBrowseServer : "فهرست‌نمایی سرور", +DlgAdvancedTag : "پیشرفته", +DlgOpOther : "<غیره>", +DlgInfoTab : "اطلاعات", +DlgAlertUrl : "لطفاً URL را بنویسید", + +// General Dialogs Labels +DlgGenNotSet : "<تعین‌نشده>", +DlgGenId : "شناسه", +DlgGenLangDir : "جهت‌نمای زبان", +DlgGenLangDirLtr : "چپ به راست (LTR)", +DlgGenLangDirRtl : "راست به چپ (RTL)", +DlgGenLangCode : "کد زبان", +DlgGenAccessKey : "کلید دستیابی", +DlgGenName : "نام", +DlgGenTabIndex : "نمایهٴ دسترسی با Tab", +DlgGenLongDescr : "URL توصیف طولانی", +DlgGenClass : "کلاسهای شیوه‌نامه(Stylesheet)", +DlgGenTitle : "عنوان کمکی", +DlgGenContType : "نوع محتوای کمکی", +DlgGenLinkCharset : "نویسه‌گان منبع ِپیوندشده", +DlgGenStyle : "شیوه(style)", + +// Image Dialog +DlgImgTitle : "ویژگیهای تصویر", +DlgImgInfoTab : "اطلاعات تصویر", +DlgImgBtnUpload : "به سرور بفرست", +DlgImgURL : "URL", +DlgImgUpload : "انتقال به سرور", +DlgImgAlt : "متن جایگزین", +DlgImgWidth : "پهنا", +DlgImgHeight : "درازا", +DlgImgLockRatio : "قفل‌کردن ِنسبت", +DlgBtnResetSize : "بازنشانی اندازه", +DlgImgBorder : "لبه", +DlgImgHSpace : "فاصلهٴ افقی", +DlgImgVSpace : "فاصلهٴ عمودی", +DlgImgAlign : "چینش", +DlgImgAlignLeft : "چپ", +DlgImgAlignAbsBottom: "پائین مطلق", +DlgImgAlignAbsMiddle: "وسط مطلق", +DlgImgAlignBaseline : "خط‌پایه", +DlgImgAlignBottom : "پائین", +DlgImgAlignMiddle : "وسط", +DlgImgAlignRight : "راست", +DlgImgAlignTextTop : "متن بالا", +DlgImgAlignTop : "بالا", +DlgImgPreview : "پیش‌نمایش", +DlgImgAlertUrl : "لطفا URL تصویر را بنویسید", +DlgImgLinkTab : "پیوند", + +// Flash Dialog +DlgFlashTitle : "ویژگیهای Flash", +DlgFlashChkPlay : "آغاز ِخودکار", +DlgFlashChkLoop : "اجرای پیاپی", +DlgFlashChkMenu : "دردسترس‌بودن منوی Flash", +DlgFlashScale : "مقیاس", +DlgFlashScaleAll : "نمایش همه", +DlgFlashScaleNoBorder : "بدون کران", +DlgFlashScaleFit : "جایگیری کامل", + +// Link Dialog +DlgLnkWindowTitle : "پیوند", +DlgLnkInfoTab : "اطلاعات پیوند", +DlgLnkTargetTab : "مقصد", + +DlgLnkType : "نوع پیوند", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "لنگر در همین صفحه", +DlgLnkTypeEMail : "پست الکترونیکی", +DlgLnkProto : "پروتکل", +DlgLnkProtoOther : "<دیگر>", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "یک لنگر برگزینید", +DlgLnkAnchorByName : "با نام لنگر", +DlgLnkAnchorById : "با شناسهٴ المان", +DlgLnkNoAnchors : "(در این سند لنگری دردسترس نیست)", +DlgLnkEMail : "نشانی پست الکترونیکی", +DlgLnkEMailSubject : "موضوع پیام", +DlgLnkEMailBody : "متن پیام", +DlgLnkUpload : "انتقال به سرور", +DlgLnkBtnUpload : "به سرور بفرست", + +DlgLnkTarget : "مقصد", +DlgLnkTargetFrame : "<فریم>", +DlgLnkTargetPopup : "<پنجرهٴ پاپاپ>", +DlgLnkTargetBlank : "پنجرهٴ دیگر (_blank)", +DlgLnkTargetParent : "پنجرهٴ والد (_parent)", +DlgLnkTargetSelf : "همان پنجره (_self)", +DlgLnkTargetTop : "بالاترین پنجره (_top)", +DlgLnkTargetFrameName : "نام فریم مقصد", +DlgLnkPopWinName : "نام پنجرهٴ پاپاپ", +DlgLnkPopWinFeat : "ویژگیهای پنجرهٴ پاپاپ", +DlgLnkPopResize : "قابل تغییر اندازه", +DlgLnkPopLocation : "نوار موقعیت", +DlgLnkPopMenu : "نوار منو", +DlgLnkPopScroll : "میله‌های پیمایش", +DlgLnkPopStatus : "نوار وضعیت", +DlgLnkPopToolbar : "نوارابزار", +DlgLnkPopFullScrn : "تمام‌صفحه (IE)", +DlgLnkPopDependent : "وابسته (Netscape)", +DlgLnkPopWidth : "پهنا", +DlgLnkPopHeight : "درازا", +DlgLnkPopLeft : "موقعیت ِچپ", +DlgLnkPopTop : "موقعیت ِبالا", + +DlnLnkMsgNoUrl : "لطفا URL پیوند را بنویسید", +DlnLnkMsgNoEMail : "لطفا نشانی پست الکترونیکی را بنویسید", +DlnLnkMsgNoAnchor : "لطفا لنگری را برگزینید", +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 and Replace Dialog +DlgFindAndReplaceTitle : "جستجو و جایگزینی", + +// Find Dialog +DlgFindTitle : "یافتن", +DlgFindFindBtn : "یافتن", +DlgFindNotFoundMsg : "متن موردنظر یافت نشد.", + +// Replace Dialog +DlgReplaceTitle : "جایگزینی", +DlgReplaceFindLbl : "چه‌چیز را می‌یابید:", +DlgReplaceReplaceLbl : "جایگزینی با:", +DlgReplaceCaseChk : "همسانی در بزرگی و کوچکی نویسه‌ها", +DlgReplaceReplaceBtn : "جایگزینی", +DlgReplaceReplAllBtn : "جایگزینی همهٴ یافته‌ها", +DlgReplaceWordChk : "همسانی با واژهٴ کامل", + +// Paste Operations / Dialog +PasteErrorCut : "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد که ویرایشگر به طور خودکار عملکردهای برش را انجام دهد. لطفا با دکمه‌های صفحه‌کلید این کار را انجام دهید (Ctrl+X).", +PasteErrorCopy : "تنظیمات امنیتی مرورگر شما اجازه نمی‌دهد که ویرایشگر به طور خودکار عملکردهای کپی‌کردن را انجام دهد. لطفا با دکمه‌های صفحه‌کلید این کار را انجام دهید (Ctrl+C).", + +PasteAsText : "چسباندن به عنوان متن ِساده", +PasteFromWord : "چسباندن از Word", + +DlgPasteMsg2 : "لطفا متن را با کلیدهای (Ctrl+V) در این جعبهٴ متنی بچسبانید و پذیرش را بزنید.", +DlgPasteSec : "به خاطر تنظیمات امنیتی مرورگر شما، ویرایشگر نمی‌تواند دسترسی مستقیم به داده‌های clipboard داشته باشد. شما باید دوباره آنرا در این پنجره بچسبانید.", +DlgPasteIgnoreFont : "چشم‌پوشی از تعاریف نوع قلم", +DlgPasteRemoveStyles : "چشم‌پوشی از تعاریف سبک (style)", + +// 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 : "Submit", +DlgButtonTypeRst : "بازنشانی (Reset)", + +// 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 : "اروپای مرکزی", +DlgDocCharSetCT : "چینی رسمی (Big5)", +DlgDocCharSetCR : "سیریلیک", +DlgDocCharSetGR : "یونانی", +DlgDocCharSetJP : "ژاپنی", +DlgDocCharSetKR : "کره‌ای", +DlgDocCharSetTR : "ترکی", +DlgDocCharSetUN : "یونیکُد (UTF-8)", +DlgDocCharSetWE : "اروپای غربی", +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 : "درباره", +DlgAboutBrowserInfoTab : "اطلاعات مرورگر", +DlgAboutLicenseTab : "گواهینامه", +DlgAboutVersion : "نگارش", +DlgAboutInfo : "برای آگاهی بیشتر به این نشانی بروید", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/fi.js b/fckeditor/editor/lang/fi.js new file mode 100644 index 0000000..1bd09ea --- /dev/null +++ b/fckeditor/editor/lang/fi.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Finnish language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Piilota työkalurivi", +ToolbarExpand : "Näytä työkalurivi", + +// Toolbar Items and Context Menu +Save : "Tallenna", +NewPage : "Tyhjennä", +Preview : "Esikatsele", +Cut : "Leikkaa", +Copy : "Kopioi", +Paste : "Liitä", +PasteText : "Liitä tekstinä", +PasteWord : "Liitä Wordista", +Print : "Tulosta", +SelectAll : "Valitse kaikki", +RemoveFormat : "Poista muotoilu", +InsertLinkLbl : "Linkki", +InsertLink : "Lisää linkki/muokkaa linkkiä", +RemoveLink : "Poista linkki", +VisitLink : "Open Link", //MISSING +Anchor : "Lisää ankkuri/muokkaa ankkuria", +AnchorDelete : "Poista ankkuri", +InsertImageLbl : "Kuva", +InsertImage : "Lisää kuva/muokkaa kuvaa", +InsertFlashLbl : "Flash", +InsertFlash : "Lisää/muokkaa Flashia", +InsertTableLbl : "Taulu", +InsertTable : "Lisää taulu/muokkaa taulua", +InsertLineLbl : "Murtoviiva", +InsertLine : "Lisää murtoviiva", +InsertSpecialCharLbl: "Erikoismerkki", +InsertSpecialChar : "Lisää erikoismerkki", +InsertSmileyLbl : "Hymiö", +InsertSmiley : "Lisää hymiö", +About : "FCKeditorista", +Bold : "Lihavoitu", +Italic : "Kursivoitu", +Underline : "Alleviivattu", +StrikeThrough : "Yliviivattu", +Subscript : "Alaindeksi", +Superscript : "Yläindeksi", +LeftJustify : "Tasaa vasemmat reunat", +CenterJustify : "Keskitä", +RightJustify : "Tasaa oikeat reunat", +BlockJustify : "Tasaa molemmat reunat", +DecreaseIndent : "Pienennä sisennystä", +IncreaseIndent : "Suurenna sisennystä", +Blockquote : "Lainaus", +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "Kumoa", +Redo : "Toista", +NumberedListLbl : "Numerointi", +NumberedList : "Lisää/poista numerointi", +BulletedListLbl : "Luottelomerkit", +BulletedList : "Lisää/poista luottelomerkit", +ShowTableBorders : "Näytä taulun rajat", +ShowDetails : "Näytä muotoilu", +Style : "Tyyli", +FontFormat : "Muotoilu", +Font : "Fontti", +FontSize : "Koko", +TextColor : "Tekstiväri", +BGColor : "Taustaväri", +Source : "Koodi", +Find : "Etsi", +Replace : "Korvaa", +SpellCheck : "Tarkista oikeinkirjoitus", +UniversalKeyboard : "Universaali näppäimistö", +PageBreakLbl : "Sivun vaihto", +PageBreak : "Lisää sivun vaihto", + +Form : "Lomake", +Checkbox : "Valintaruutu", +RadioButton : "Radiopainike", +TextField : "Tekstikenttä", +Textarea : "Tekstilaatikko", +HiddenField : "Piilokenttä", +Button : "Painike", +SelectionField : "Valintakenttä", +ImageButton : "Kuvapainike", + +FitWindow : "Suurenna editori koko ikkunaan", +ShowBlocks : "Näytä elementit", + +// Context Menu +EditLink : "Muokkaa linkkiä", +CellCM : "Solu", +RowCM : "Rivi", +ColumnCM : "Sarake", +InsertRowAfter : "Lisää rivi alapuolelle", +InsertRowBefore : "Lisää rivi yläpuolelle", +DeleteRows : "Poista rivit", +InsertColumnAfter : "Lisää sarake oikealle", +InsertColumnBefore : "Lisää sarake vasemmalle", +DeleteColumns : "Poista sarakkeet", +InsertCellAfter : "Lisää solu perään", +InsertCellBefore : "Lisää solu eteen", +DeleteCells : "Poista solut", +MergeCells : "Yhdistä solut", +MergeRight : "Yhdistä oikealla olevan kanssa", +MergeDown : "Yhdistä alla olevan kanssa", +HorizontalSplitCell : "Jaa solu vaakasuunnassa", +VerticalSplitCell : "Jaa solu pystysuunnassa", +TableDelete : "Poista taulu", +CellProperties : "Solun ominaisuudet", +TableProperties : "Taulun ominaisuudet", +ImageProperties : "Kuvan ominaisuudet", +FlashProperties : "Flash ominaisuudet", + +AnchorProp : "Ankkurin ominaisuudet", +ButtonProp : "Painikkeen ominaisuudet", +CheckboxProp : "Valintaruudun ominaisuudet", +HiddenFieldProp : "Piilokentän ominaisuudet", +RadioButtonProp : "Radiopainikkeen ominaisuudet", +ImageButtonProp : "Kuvapainikkeen ominaisuudet", +TextFieldProp : "Tekstikentän ominaisuudet", +SelectionFieldProp : "Valintakentän ominaisuudet", +TextareaProp : "Tekstilaatikon ominaisuudet", +FormProp : "Lomakkeen ominaisuudet", + +FontFormats : "Normaali;Muotoiltu;Osoite;Otsikko 1;Otsikko 2;Otsikko 3;Otsikko 4;Otsikko 5;Otsikko 6", + +// Alerts and Messages +ProcessingXHTML : "Prosessoidaan XHTML:ää. Odota hetki...", +Done : "Valmis", +PasteWordConfirm : "Teksti, jonka haluat liittää, näyttää olevan kopioitu Wordista. Haluatko puhdistaa sen ennen liittämistä?", +NotCompatiblePaste : "Tämä komento toimii vain Internet Explorer 5.5:ssa tai uudemmassa. Haluatko liittää ilman puhdistusta?", +UnknownToolbarItem : "Tuntemanton työkalu \"%1\"", +UnknownCommand : "Tuntematon komento \"%1\"", +NotImplemented : "Komentoa ei ole liitetty sovellukseen", +UnknownToolbarSet : "Työkalukokonaisuus \"%1\" ei ole olemassa", +NoActiveX : "Selaimesi turvallisuusasetukset voivat rajoittaa joitain editorin ominaisuuksia. Sinun pitää ottaa käyttöön asetuksista \"Suorita ActiveX komponentit ja -plugin-laajennukset\". Saatat kohdata virheitä ja huomata puuttuvia ominaisuuksia.", +BrowseServerBlocked : "Resurssiselainta ei voitu avata. Varmista, että ponnahdusikkunoiden estäjät eivät ole päällä.", +DialogBlocked : "Apuikkunaa ei voitu avaata. Varmista, että ponnahdusikkunoiden estäjät eivät ole päällä.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Peruuta", +DlgBtnClose : "Sulje", +DlgBtnBrowseServer : "Selaa palvelinta", +DlgAdvancedTag : "Lisäominaisuudet", +DlgOpOther : "Muut", +DlgInfoTab : "Info", +DlgAlertUrl : "Lisää URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Tunniste", +DlgGenLangDir : "Kielen suunta", +DlgGenLangDirLtr : "Vasemmalta oikealle (LTR)", +DlgGenLangDirRtl : "Oikealta vasemmalle (RTL)", +DlgGenLangCode : "Kielikoodi", +DlgGenAccessKey : "Pikanäppäin", +DlgGenName : "Nimi", +DlgGenTabIndex : "Tabulaattori indeksi", +DlgGenLongDescr : "Pitkän kuvauksen URL", +DlgGenClass : "Tyyliluokat", +DlgGenTitle : "Avustava otsikko", +DlgGenContType : "Avustava sisällön tyyppi", +DlgGenLinkCharset : "Linkitetty kirjaimisto", +DlgGenStyle : "Tyyli", + +// Image Dialog +DlgImgTitle : "Kuvan ominaisuudet", +DlgImgInfoTab : "Kuvan tiedot", +DlgImgBtnUpload : "Lähetä palvelimelle", +DlgImgURL : "Osoite", +DlgImgUpload : "Lisää kuva", +DlgImgAlt : "Vaihtoehtoinen teksti", +DlgImgWidth : "Leveys", +DlgImgHeight : "Korkeus", +DlgImgLockRatio : "Lukitse suhteet", +DlgBtnResetSize : "Alkuperäinen koko", +DlgImgBorder : "Raja", +DlgImgHSpace : "Vaakatila", +DlgImgVSpace : "Pystytila", +DlgImgAlign : "Kohdistus", +DlgImgAlignLeft : "Vasemmalle", +DlgImgAlignAbsBottom: "Aivan alas", +DlgImgAlignAbsMiddle: "Aivan keskelle", +DlgImgAlignBaseline : "Alas (teksti)", +DlgImgAlignBottom : "Alas", +DlgImgAlignMiddle : "Keskelle", +DlgImgAlignRight : "Oikealle", +DlgImgAlignTextTop : "Ylös (teksti)", +DlgImgAlignTop : "Ylös", +DlgImgPreview : "Esikatselu", +DlgImgAlertUrl : "Kirjoita kuvan osoite (URL)", +DlgImgLinkTab : "Linkki", + +// Flash Dialog +DlgFlashTitle : "Flash ominaisuudet", +DlgFlashChkPlay : "Automaattinen käynnistys", +DlgFlashChkLoop : "Toisto", +DlgFlashChkMenu : "Näytä Flash-valikko", +DlgFlashScale : "Levitä", +DlgFlashScaleAll : "Näytä kaikki", +DlgFlashScaleNoBorder : "Ei rajaa", +DlgFlashScaleFit : "Tarkka koko", + +// Link Dialog +DlgLnkWindowTitle : "Linkki", +DlgLnkInfoTab : "Linkin tiedot", +DlgLnkTargetTab : "Kohde", + +DlgLnkType : "Linkkityyppi", +DlgLnkTypeURL : "Osoite", +DlgLnkTypeAnchor : "Ankkuri tässä sivussa", +DlgLnkTypeEMail : "Sähköposti", +DlgLnkProto : "Protokolla", +DlgLnkProtoOther : "", +DlgLnkURL : "Osoite", +DlgLnkAnchorSel : "Valitse ankkuri", +DlgLnkAnchorByName : "Ankkurin nimen mukaan", +DlgLnkAnchorById : "Ankkurin ID:n mukaan", +DlgLnkNoAnchors : "(Ei ankkureita tässä dokumentissa)", +DlgLnkEMail : "Sähköpostiosoite", +DlgLnkEMailSubject : "Aihe", +DlgLnkEMailBody : "Viesti", +DlgLnkUpload : "Lisää tiedosto", +DlgLnkBtnUpload : "Lähetä palvelimelle", + +DlgLnkTarget : "Kohde", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Uusi ikkuna (_blank)", +DlgLnkTargetParent : "Emoikkuna (_parent)", +DlgLnkTargetSelf : "Sama ikkuna (_self)", +DlgLnkTargetTop : "Päällimmäisin ikkuna (_top)", +DlgLnkTargetFrameName : "Kohdekehyksen nimi", +DlgLnkPopWinName : "Popup ikkunan nimi", +DlgLnkPopWinFeat : "Popup ikkunan ominaisuudet", +DlgLnkPopResize : "Venytettävä", +DlgLnkPopLocation : "Osoiterivi", +DlgLnkPopMenu : "Valikkorivi", +DlgLnkPopScroll : "Vierityspalkit", +DlgLnkPopStatus : "Tilarivi", +DlgLnkPopToolbar : "Vakiopainikkeet", +DlgLnkPopFullScrn : "Täysi ikkuna (IE)", +DlgLnkPopDependent : "Riippuva (Netscape)", +DlgLnkPopWidth : "Leveys", +DlgLnkPopHeight : "Korkeus", +DlgLnkPopLeft : "Vasemmalta (px)", +DlgLnkPopTop : "Ylhäältä (px)", + +DlnLnkMsgNoUrl : "Linkille on kirjoitettava URL", +DlnLnkMsgNoEMail : "Kirjoita sähköpostiosoite", +DlnLnkMsgNoAnchor : "Valitse ankkuri", +DlnLnkMsgInvPopName : "Popup-ikkunan nimi pitää alkaa aakkosella ja ei saa sisältää välejä", + +// Color Dialog +DlgColorTitle : "Valitse väri", +DlgColorBtnClear : "Tyhjennä", +DlgColorHighlight : "Kohdalla", +DlgColorSelected : "Valittu", + +// Smiley Dialog +DlgSmileyTitle : "Lisää hymiö", + +// Special Character Dialog +DlgSpecialCharTitle : "Valitse erikoismerkki", + +// Table Dialog +DlgTableTitle : "Taulun ominaisuudet", +DlgTableRows : "Rivit", +DlgTableColumns : "Sarakkeet", +DlgTableBorder : "Rajan paksuus", +DlgTableAlign : "Kohdistus", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Vasemmalle", +DlgTableAlignCenter : "Keskelle", +DlgTableAlignRight : "Oikealle", +DlgTableWidth : "Leveys", +DlgTableWidthPx : "pikseliä", +DlgTableWidthPc : "prosenttia", +DlgTableHeight : "Korkeus", +DlgTableCellSpace : "Solujen väli", +DlgTableCellPad : "Solujen sisennys", +DlgTableCaption : "Otsikko", +DlgTableSummary : "Yhteenveto", + +// Table Cell Dialog +DlgCellTitle : "Solun ominaisuudet", +DlgCellWidth : "Leveys", +DlgCellWidthPx : "pikseliä", +DlgCellWidthPc : "prosenttia", +DlgCellHeight : "Korkeus", +DlgCellWordWrap : "Tekstikierrätys", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Kyllä", +DlgCellWordWrapNo : "Ei", +DlgCellHorAlign : "Vaakakohdistus", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Vasemmalle", +DlgCellHorAlignCenter : "Keskelle", +DlgCellHorAlignRight: "Oikealle", +DlgCellVerAlign : "Pystykohdistus", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Ylös", +DlgCellVerAlignMiddle : "Keskelle", +DlgCellVerAlignBottom : "Alas", +DlgCellVerAlignBaseline : "Tekstin alas", +DlgCellRowSpan : "Rivin jatkuvuus", +DlgCellCollSpan : "Sarakkeen jatkuvuus", +DlgCellBackColor : "Taustaväri", +DlgCellBorderColor : "Rajan väri", +DlgCellBtnSelect : "Valitse...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Etsi ja korvaa", + +// Find Dialog +DlgFindTitle : "Etsi", +DlgFindFindBtn : "Etsi", +DlgFindNotFoundMsg : "Etsittyä tekstiä ei löytynyt.", + +// Replace Dialog +DlgReplaceTitle : "Korvaa", +DlgReplaceFindLbl : "Etsi mitä:", +DlgReplaceReplaceLbl : "Korvaa tällä:", +DlgReplaceCaseChk : "Sama kirjainkoko", +DlgReplaceReplaceBtn : "Korvaa", +DlgReplaceReplAllBtn : "Korvaa kaikki", +DlgReplaceWordChk : "Koko sana", + +// Paste Operations / Dialog +PasteErrorCut : "Selaimesi turva-asetukset eivät salli editorin toteuttaa leikkaamista. Käytä näppäimistöä leikkaamiseen (Ctrl+X).", +PasteErrorCopy : "Selaimesi turva-asetukset eivät salli editorin toteuttaa kopioimista. Käytä näppäimistöä kopioimiseen (Ctrl+C).", + +PasteAsText : "Liitä tekstinä", +PasteFromWord : "Liitä Wordista", + +DlgPasteMsg2 : "Liitä painamalla (Ctrl+V) ja painamalla OK.", +DlgPasteSec : "Selaimesi turva-asetukset eivät salli editorin käyttää leikepöytää suoraan. Sinun pitää suorittaa liittäminen tässä ikkunassa.", +DlgPasteIgnoreFont : "Jätä huomioimatta fonttimääritykset", +DlgPasteRemoveStyles : "Poista tyylimääritykset", + +// Color Picker +ColorAutomatic : "Automaattinen", +ColorMoreColors : "Lisää värejä...", + +// Document Properties +DocProps : "Dokumentin ominaisuudet", + +// Anchor Dialog +DlgAnchorTitle : "Ankkurin ominaisuudet", +DlgAnchorName : "Nimi", +DlgAnchorErrorName : "Ankkurille on kirjoitettava nimi", + +// Speller Pages Dialog +DlgSpellNotInDic : "Ei sanakirjassa", +DlgSpellChangeTo : "Vaihda", +DlgSpellBtnIgnore : "Jätä huomioimatta", +DlgSpellBtnIgnoreAll : "Jätä kaikki huomioimatta", +DlgSpellBtnReplace : "Korvaa", +DlgSpellBtnReplaceAll : "Korvaa kaikki", +DlgSpellBtnUndo : "Kumoa", +DlgSpellNoSuggestions : "Ei ehdotuksia", +DlgSpellProgress : "Tarkistus käynnissä...", +DlgSpellNoMispell : "Tarkistus valmis: Ei virheitä", +DlgSpellNoChanges : "Tarkistus valmis: Yhtään sanaa ei muutettu", +DlgSpellOneChange : "Tarkistus valmis: Yksi sana muutettiin", +DlgSpellManyChanges : "Tarkistus valmis: %1 sanaa muutettiin", + +IeSpellDownload : "Oikeinkirjoituksen tarkistusta ei ole asennettu. Haluatko ladata sen nyt?", + +// Button Dialog +DlgButtonText : "Teksti (arvo)", +DlgButtonType : "Tyyppi", +DlgButtonTypeBtn : "Painike", +DlgButtonTypeSbm : "Lähetä", +DlgButtonTypeRst : "Tyhjennä", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Nimi", +DlgCheckboxValue : "Arvo", +DlgCheckboxSelected : "Valittu", + +// Form Dialog +DlgFormName : "Nimi", +DlgFormAction : "Toiminto", +DlgFormMethod : "Tapa", + +// Select Field Dialog +DlgSelectName : "Nimi", +DlgSelectValue : "Arvo", +DlgSelectSize : "Koko", +DlgSelectLines : "Rivit", +DlgSelectChkMulti : "Salli usea valinta", +DlgSelectOpAvail : "Ominaisuudet", +DlgSelectOpText : "Teksti", +DlgSelectOpValue : "Arvo", +DlgSelectBtnAdd : "Lisää", +DlgSelectBtnModify : "Muuta", +DlgSelectBtnUp : "Ylös", +DlgSelectBtnDown : "Alas", +DlgSelectBtnSetValue : "Aseta valituksi", +DlgSelectBtnDelete : "Poista", + +// Textarea Dialog +DlgTextareaName : "Nimi", +DlgTextareaCols : "Sarakkeita", +DlgTextareaRows : "Rivejä", + +// Text Field Dialog +DlgTextName : "Nimi", +DlgTextValue : "Arvo", +DlgTextCharWidth : "Leveys", +DlgTextMaxChars : "Maksimi merkkimäärä", +DlgTextType : "Tyyppi", +DlgTextTypeText : "Teksti", +DlgTextTypePass : "Salasana", + +// Hidden Field Dialog +DlgHiddenName : "Nimi", +DlgHiddenValue : "Arvo", + +// Bulleted List Dialog +BulletedListProp : "Luettelon ominaisuudet", +NumberedListProp : "Numeroinnin ominaisuudet", +DlgLstStart : "Alku", +DlgLstType : "Tyyppi", +DlgLstTypeCircle : "Kehä", +DlgLstTypeDisc : "Ympyrä", +DlgLstTypeSquare : "Neliö", +DlgLstTypeNumbers : "Numerot (1, 2, 3)", +DlgLstTypeLCase : "Pienet kirjaimet (a, b, c)", +DlgLstTypeUCase : "Isot kirjaimet (A, B, C)", +DlgLstTypeSRoman : "Pienet roomalaiset numerot (i, ii, iii)", +DlgLstTypeLRoman : "Isot roomalaiset numerot (Ii, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Yleiset", +DlgDocBackTab : "Tausta", +DlgDocColorsTab : "Värit ja marginaalit", +DlgDocMetaTab : "Meta-tieto", + +DlgDocPageTitle : "Sivun nimi", +DlgDocLangDir : "Kielen suunta", +DlgDocLangDirLTR : "Vasemmalta oikealle (LTR)", +DlgDocLangDirRTL : "Oikealta vasemmalle (RTL)", +DlgDocLangCode : "Kielikoodi", +DlgDocCharSet : "Merkistökoodaus", +DlgDocCharSetCE : "Keskieurooppalainen", +DlgDocCharSetCT : "Kiina, perinteinen (Big5)", +DlgDocCharSetCR : "Kyrillinen", +DlgDocCharSetGR : "Kreikka", +DlgDocCharSetJP : "Japani", +DlgDocCharSetKR : "Korealainen", +DlgDocCharSetTR : "Turkkilainen", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "Länsieurooppalainen", +DlgDocCharSetOther : "Muu merkistökoodaus", + +DlgDocDocType : "Dokumentin tyyppi", +DlgDocDocTypeOther : "Muu dokumentin tyyppi", +DlgDocIncXHTML : "Lisää XHTML julistukset", +DlgDocBgColor : "Taustaväri", +DlgDocBgImage : "Taustakuva", +DlgDocBgNoScroll : "Paikallaanpysyvä tausta", +DlgDocCText : "Teksti", +DlgDocCLink : "Linkki", +DlgDocCVisited : "Vierailtu linkki", +DlgDocCActive : "Aktiivinen linkki", +DlgDocMargins : "Sivun marginaalit", +DlgDocMaTop : "Ylä", +DlgDocMaLeft : "Vasen", +DlgDocMaRight : "Oikea", +DlgDocMaBottom : "Ala", +DlgDocMeIndex : "Hakusanat (pilkulla erotettuna)", +DlgDocMeDescr : "Kuvaus", +DlgDocMeAuthor : "Tekijä", +DlgDocMeCopy : "Tekijänoikeudet", +DlgDocPreview : "Esikatselu", + +// Templates Dialog +Templates : "Pohjat", +DlgTemplatesTitle : "Sisältöpohjat", +DlgTemplatesSelMsg : "Valitse pohja editoriin
      (aiempi sisältö menetetään):", +DlgTemplatesLoading : "Ladataan listaa pohjista. Hetkinen...", +DlgTemplatesNoTpl : "(Ei määriteltyjä pohjia)", +DlgTemplatesReplace : "Korvaa editorin koko sisältö", + +// About Dialog +DlgAboutAboutTab : "Editorista", +DlgAboutBrowserInfoTab : "Selaimen tiedot", +DlgAboutLicenseTab : "Lisenssi", +DlgAboutVersion : "versio", +DlgAboutInfo : "Lisää tietoa osoitteesta", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/fo.js b/fckeditor/editor/lang/fo.js new file mode 100644 index 0000000..fa0d8c9 --- /dev/null +++ b/fckeditor/editor/lang/fo.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Faroese language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Fjal amboðsbjálkan", +ToolbarExpand : "Vís amboðsbjálkan", + +// Toolbar Items and Context Menu +Save : "Goym", +NewPage : "Nýggj síða", +Preview : "Frumsýning", +Cut : "Kvett", +Copy : "Avrita", +Paste : "Innrita", +PasteText : "Innrita reinan tekst", +PasteWord : "Innrita frá Word", +Print : "Prenta", +SelectAll : "Markera alt", +RemoveFormat : "Strika sniðgeving", +InsertLinkLbl : "Tilknýti", +InsertLink : "Ger/broyt tilknýti", +RemoveLink : "Strika tilknýti", +VisitLink : "Opna tilknýti", +Anchor : "Ger/broyt marknastein", +AnchorDelete : "Strika 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 : "Ger vatnrætta linju", +InsertSpecialCharLbl: "Sertekn", +InsertSpecialChar : "Set inn sertekn", +InsertSmileyLbl : "Smiley", +InsertSmiley : "Set inn Smiley", +About : "Um FCKeditor", +Bold : "Feit skrift", +Italic : "Skráskrift", +Underline : "Undirstrikað", +StrikeThrough : "Yvirstrikað", +Subscript : "Lækkað skrift", +Superscript : "Hækkað skrift", +LeftJustify : "Vinstrasett", +CenterJustify : "Miðsett", +RightJustify : "Høgrasett", +BlockJustify : "Javnir tekstkantar", +DecreaseIndent : "Minka reglubrotarinntriv", +IncreaseIndent : "Økja reglubrotarinntriv", +Blockquote : "Blockquote", +CreateDiv : "Ger DIV øki", +EditDiv : "Broyt DIV øki", +DeleteDiv : "Strika DIV øki", +Undo : "Angra", +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 : "Bakgrundslitur", +Source : "Kelda", +Find : "Leita", +Replace : "Yvirskriva", +SpellCheck : "Kanna stavseting", +UniversalKeyboard : "Knappaborð", +PageBreakLbl : "Síðuskift", +PageBreak : "Ger síðuskift", + +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", +ShowBlocks : "Vís blokkar", + +// Context Menu +EditLink : "Broyt tilknýti", +CellCM : "Meski", +RowCM : "Rað", +ColumnCM : "Kolonna", +InsertRowAfter : "Set rað inn aftaná", +InsertRowBefore : "Set rað inn áðrenn", +DeleteRows : "Strika røðir", +InsertColumnAfter : "Set kolonnu inn aftaná", +InsertColumnBefore : "Set kolonnu inn áðrenn", +DeleteColumns : "Strika kolonnur", +InsertCellAfter : "Set meska inn aftaná", +InsertCellBefore : "Set meska inn áðrenn", +DeleteCells : "Strika meskar", +MergeCells : "Flætta meskar", +MergeRight : "Flætta meskar til høgru", +MergeDown : "Flætta saman", +HorizontalSplitCell : "Kloyv meska vatnrætt", +VerticalSplitCell : "Kloyv meska loddrætt", +TableDelete : "Strika tabell", +CellProperties : "Meskueginleikar", +TableProperties : "Tabelleginleikar", +ImageProperties : "Myndaeginleikar", +FlashProperties : "Flash eginleikar", + +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 : "Vanligt;Sniðgivið;Adressa;Yvirskrift 1;Yvirskrift 2;Yvirskrift 3;Yvirskrift 4;Yvirskrift 5;Yvirskrift 6", + +// Alerts and Messages +ProcessingXHTML : "XHTML verður viðgjørt. Bíða við...", +Done : "Liðugt", +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.", +VisitLinkBlocked : "Tað eyðnaðist ikki at opna nýggjan rút. Tryggja tær, at allar pop-up forðingar eru óvirknar.", + +// Dialogs +DlgBtnOK : "Góðkent", +DlgBtnCancel : "Avlýst", +DlgBtnClose : "Lat aftur", +DlgBtnBrowseServer : "Ambætarakagi", +DlgAdvancedTag : "Fjølbroytt", +DlgOpOther : "", +DlgInfoTab : "Upplýsingar", +DlgAlertUrl : "Vinarliga veit ein URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Tekstkós", +DlgGenLangDirLtr : "Frá vinstru til høgru (LTR)", +DlgGenLangDirRtl : "Frá høgru til vinstru (RTL)", +DlgGenLangCode : "Málkoda", +DlgGenAccessKey : "Snarvegisknappur", +DlgGenName : "Navn", +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 : "Myndaeginleikar", +DlgImgInfoTab : "Myndaupplýsingar", +DlgImgBtnUpload : "Send til ambætaran", +DlgImgURL : "URL", +DlgImgUpload : "Send", +DlgImgAlt : "Alternativur tekstur", +DlgImgWidth : "Breidd", +DlgImgHeight : "Hædd", +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 : "Basislinja", +DlgImgAlignBottom : "Botnur", +DlgImgAlignMiddle : "Miðja", +DlgImgAlignRight : "Høgra", +DlgImgAlignTextTop : "Tekst toppur", +DlgImgAlignTop : "Ovast", +DlgImgPreview : "Frumsýning", +DlgImgAlertUrl : "Rita slóðina til myndina", +DlgImgLinkTab : "Tilknýti", + +// Flash Dialog +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 : "Tilknýti", +DlgLnkInfoTab : "Tilknýtis upplýsingar", +DlgLnkTargetTab : "Mál", + +DlgLnkType : "Tilknýtisslag", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Tilknýti til marknastein í tekstinum", +DlgLnkTypeEMail : "Teldupostur", +DlgLnkProto : "Protokoll", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Vel ein marknastein", +DlgLnkAnchorByName : "Eftir navni á marknasteini", +DlgLnkAnchorById : "Eftir element Id", +DlgLnkNoAnchors : "(Eingir marknasteinar eru í hesum dokumentið)", +DlgLnkEMail : "Teldupost-adressa", +DlgLnkEMailSubject : "Evni", +DlgLnkEMailBody : "Breyðtekstur", +DlgLnkUpload : "Send til ambætaran", +DlgLnkBtnUpload : "Send til ambætaran", + +DlgLnkTarget : "Mál", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +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 : "Bundið (Netscape)", +DlgLnkPopWidth : "Breidd", +DlgLnkPopHeight : "Hædd", +DlgLnkPopLeft : "Frástøða frá vinstru", +DlgLnkPopTop : "Frástøða frá íerva", + +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 lit", +DlgColorBtnClear : "Strika alt", +DlgColorHighlight : "Framhevja", +DlgColorSelected : "Valt", + +// Smiley Dialog +DlgSmileyTitle : "Vel Smiley", + +// Special Character Dialog +DlgSpecialCharTitle : "Vel sertekn", + +// Table Dialog +DlgTableTitle : "Eginleikar fyri tabell", +DlgTableRows : "Røðir", +DlgTableColumns : "Kolonnur", +DlgTableBorder : "Bordabreidd", +DlgTableAlign : "Justering", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Vinstrasett", +DlgTableAlignCenter : "Miðsett", +DlgTableAlignRight : "Høgrasett", +DlgTableWidth : "Breidd", +DlgTableWidthPx : "pixels", +DlgTableWidthPc : "prosent", +DlgTableHeight : "Hædd", +DlgTableCellSpace : "Fjarstøða millum meskar", +DlgTableCellPad : "Meskubreddi", +DlgTableCaption : "Tabellfrágreiðing", +DlgTableSummary : "Samandráttur", + +// Table Cell Dialog +DlgCellTitle : "Mesku eginleikar", +DlgCellWidth : "Breidd", +DlgCellWidthPx : "pixels", +DlgCellWidthPc : "prosent", +DlgCellHeight : "Hædd", +DlgCellWordWrap : "Orðkloyving", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Ja", +DlgCellWordWrapNo : "Nei", +DlgCellHorAlign : "Vatnrøtt justering", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Vinstrasett", +DlgCellHorAlignCenter : "Miðsett", +DlgCellHorAlignRight: "Høgrasett", +DlgCellVerAlign : "Lodrøtt justering", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Ovast", +DlgCellVerAlignMiddle : "Miðjan", +DlgCellVerAlignBottom : "Niðast", +DlgCellVerAlignBaseline : "Basislinja", +DlgCellRowSpan : "Røðir, meskin fevnir um", +DlgCellCollSpan : "Kolonnur, meskin fevnir um", +DlgCellBackColor : "Bakgrundslitur", +DlgCellBorderColor : "Litur á borda", +DlgCellBtnSelect : "Vel...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Finn og broyt", + +// Find Dialog +DlgFindTitle : "Finn", +DlgFindFindBtn : "Finn", +DlgFindNotFoundMsg : "Leititeksturin varð ikki funnin", + +// Replace Dialog +DlgReplaceTitle : "Yvirskriva", +DlgReplaceFindLbl : "Finn:", +DlgReplaceReplaceLbl : "Yvirskriva við:", +DlgReplaceCaseChk : "Munur á stórum og smáðum bókstavum", +DlgReplaceReplaceBtn : "Yvirskriva", +DlgReplaceReplAllBtn : "Yvirskriva alt", +DlgReplaceWordChk : "Bert heil orð", + +// Paste Operations / Dialog +PasteErrorCut : "Trygdaruppseting alnótskagans forðar tekstviðgeranum í at kvetta tekstin. Vinarliga nýt knappaborðið til at kvetta tekstin (CTRL+X).", +PasteErrorCopy : "Trygdaruppseting alnótskagans forðar tekstviðgeranum í at avrita tekstin. Vinarliga nýt knappaborðið til at avrita tekstin (CTRL+C).", + +PasteAsText : "Innrita som reinan tekst", +PasteFromWord : "Innrita fra Word", + +DlgPasteMsg2 : "Vinarliga koyr tekstin í hendan rútin við knappaborðinum (CTRL+V) og klikk á Góðtak.", +DlgPasteSec : "Trygdaruppseting alnótskagans forðar tekstviðgeranum í beinleiðis atgongd til avritingarminnið. Tygum mugu royna aftur í hesum rútinum.", +DlgPasteIgnoreFont : "Forfjóna Font definitiónirnar", +DlgPasteRemoveStyles : "Strika typografi definitiónir", + +// Color Picker +ColorAutomatic : "Automatiskt", +ColorMoreColors : "Fleiri litir...", + +// Document Properties +DocProps : "Eginleikar fyri dokument", + +// Anchor Dialog +DlgAnchorTitle : "Eginleikar fyri marknastein", +DlgAnchorName : "Heiti marknasteinsins", +DlgAnchorErrorName : "Vinarliga rita marknasteinsins heiti", + +// Speller Pages Dialog +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 : "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 : "Rættstavarin er ikki tøkur í tekstviðgeranum. Vilt tú heinta hann nú?", + +// Button Dialog +DlgButtonText : "Tekstur", +DlgButtonType : "Slag", +DlgButtonTypeBtn : "Knøttur", +DlgButtonTypeSbm : "Send", +DlgButtonTypeRst : "Nullstilla", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Navn", +DlgCheckboxValue : "Virði", +DlgCheckboxSelected : "Valt", + +// Form Dialog +DlgFormName : "Navn", +DlgFormAction : "Hending", +DlgFormMethod : "Háttur", + +// Select Field Dialog +DlgSelectName : "Navn", +DlgSelectValue : "Virði", +DlgSelectSize : "Stødd", +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 valt virði", +DlgSelectBtnDelete : "Strika", + +// Textarea Dialog +DlgTextareaName : "Navn", +DlgTextareaCols : "kolonnur", +DlgTextareaRows : "røðir", + +// Text Field Dialog +DlgTextName : "Navn", +DlgTextValue : "Virði", +DlgTextCharWidth : "Breidd (sjónlig tekn)", +DlgTextMaxChars : "Mest loyvdu tekn", +DlgTextType : "Slag", +DlgTextTypeText : "Tekstur", +DlgTextTypePass : "Loyniorð", + +// Hidden Field Dialog +DlgHiddenName : "Navn", +DlgHiddenValue : "Virði", + +// Bulleted List Dialog +BulletedListProp : "Eginleikar fyri punktmerktan lista", +NumberedListProp : "Eginleikar fyri talmerktan lista", +DlgLstStart : "Byrjan", +DlgLstType : "Slag", +DlgLstTypeCircle : "Sirkul", +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)", +DlgLstTypeSRoman : "Smá rómaratøl (i, ii, iii)", +DlgLstTypeLRoman : "Stór rómaratøl (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Generelt", +DlgDocBackTab : "Bakgrund", +DlgDocColorsTab : "Litir og breddar", +DlgDocMetaTab : "META-upplýsingar", + +DlgDocPageTitle : "Síðuheiti", +DlgDocLangDir : "Tekstkós", +DlgDocLangDirLTR : "Frá vinstru móti høgru (LTR)", +DlgDocLangDirRTL : "Frá høgru móti vinstru (RTL)", +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 : "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 : "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ð (sundurbýtt við komma)", +DlgDocMeDescr : "Dokumentlýsing", +DlgDocMeAuthor : "Høvundur", +DlgDocMeCopy : "Upphavsrættindi", +DlgDocPreview : "Frumsýning", + +// Templates Dialog +Templates : "Skabelónir", +DlgTemplatesTitle : "Innihaldsskabelónir", +DlgTemplatesSelMsg : "Vinarliga vel ta skabelón, ið skal opnast í tekstviðgeranum
      (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 : "Upplýsingar um alnótskagan", +DlgAboutLicenseTab : "License", +DlgAboutVersion : "version", +DlgAboutInfo : "Fyri fleiri upplýsingar, far til", + +// Div Dialog +DlgDivGeneralTab : "Generelt", +DlgDivAdvancedTab : "Fjølbroytt", +DlgDivStyle : "Typografi", +DlgDivInlineStyle : "Inline typografi" +}; diff --git a/fckeditor/editor/lang/fr-ca.js b/fckeditor/editor/lang/fr-ca.js new file mode 100644 index 0000000..eb40f8b --- /dev/null +++ b/fckeditor/editor/lang/fr-ca.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Canadian French language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Masquer Outils", +ToolbarExpand : "Afficher Outils", + +// Toolbar Items and Context Menu +Save : "Sauvegarder", +NewPage : "Nouvelle page", +Preview : "Previsualiser", +Cut : "Couper", +Copy : "Copier", +Paste : "Coller", +PasteText : "Coller en tant que texte", +PasteWord : "Coller en tant que Word (formaté)", +Print : "Imprimer", +SelectAll : "Tout sélectionner", +RemoveFormat : "Supprimer le formatage", +InsertLinkLbl : "Lien", +InsertLink : "Insérer/modifier le lien", +RemoveLink : "Supprimer le lien", +VisitLink : "Suivre le lien", +Anchor : "Insérer/modifier l'ancre", +AnchorDelete : "Supprimer l'ancre", +InsertImageLbl : "Image", +InsertImage : "Insérer/modifier l'image", +InsertFlashLbl : "Animation Flash", +InsertFlash : "Insérer/modifier l'animation Flash", +InsertTableLbl : "Tableau", +InsertTable : "Insérer/modifier le tableau", +InsertLineLbl : "Séparateur", +InsertLine : "Insérer un séparateur", +InsertSpecialCharLbl: "Caractères spéciaux", +InsertSpecialChar : "Insérer un caractère spécial", +InsertSmileyLbl : "Emoticon", +InsertSmiley : "Insérer un Emoticon", +About : "A propos de FCKeditor", +Bold : "Gras", +Italic : "Italique", +Underline : "Souligné", +StrikeThrough : "Barrer", +Subscript : "Indice", +Superscript : "Exposant", +LeftJustify : "Aligner à gauche", +CenterJustify : "Centrer", +RightJustify : "Aligner à Droite", +BlockJustify : "Texte justifié", +DecreaseIndent : "Diminuer le retrait", +IncreaseIndent : "Augmenter le retrait", +Blockquote : "Citation", +CreateDiv : "Créer Balise Div", +EditDiv : "Modifier Balise Div", +DeleteDiv : "Supprimer Balise Div", +Undo : "Annuler", +Redo : "Refaire", +NumberedListLbl : "Liste numérotée", +NumberedList : "Insérer/supprimer la liste numérotée", +BulletedListLbl : "Liste à puces", +BulletedList : "Insérer/supprimer la liste à puces", +ShowTableBorders : "Afficher les bordures du tableau", +ShowDetails : "Afficher les caractères invisibles", +Style : "Style", +FontFormat : "Format", +Font : "Police", +FontSize : "Taille", +TextColor : "Couleur de caractère", +BGColor : "Couleur de fond", +Source : "Source", +Find : "Chercher", +Replace : "Remplacer", +SpellCheck : "Orthographe", +UniversalKeyboard : "Clavier universel", +PageBreakLbl : "Saut de page", +PageBreak : "Insérer un saut de page", + +Form : "Formulaire", +Checkbox : "Case à cocher", +RadioButton : "Bouton radio", +TextField : "Champ texte", +Textarea : "Zone de texte", +HiddenField : "Champ caché", +Button : "Bouton", +SelectionField : "Champ de sélection", +ImageButton : "Bouton image", + +FitWindow : "Edition pleine page", +ShowBlocks : "Afficher les blocs", + +// Context Menu +EditLink : "Modifier le lien", +CellCM : "Cellule", +RowCM : "Ligne", +ColumnCM : "Colonne", +InsertRowAfter : "Insérer une ligne après", +InsertRowBefore : "Insérer une ligne avant", +DeleteRows : "Supprimer des lignes", +InsertColumnAfter : "Insérer une colonne après", +InsertColumnBefore : "Insérer une colonne avant", +DeleteColumns : "Supprimer des colonnes", +InsertCellAfter : "Insérer une cellule après", +InsertCellBefore : "Insérer une cellule avant", +DeleteCells : "Supprimer des cellules", +MergeCells : "Fusionner les cellules", +MergeRight : "Fusionner à droite", +MergeDown : "Fusionner en bas", +HorizontalSplitCell : "Scinder la cellule horizontalement", +VerticalSplitCell : "Scinder la cellule verticalement", +TableDelete : "Supprimer le tableau", +CellProperties : "Propriétés de cellule", +TableProperties : "Propriétés du tableau", +ImageProperties : "Propriétés de l'image", +FlashProperties : "Propriétés de l'animation Flash", + +AnchorProp : "Propriétés de l'ancre", +ButtonProp : "Propriétés du bouton", +CheckboxProp : "Propriétés de la case à cocher", +HiddenFieldProp : "Propriétés du champ caché", +RadioButtonProp : "Propriétés du bouton radio", +ImageButtonProp : "Propriétés du bouton image", +TextFieldProp : "Propriétés du champ texte", +SelectionFieldProp : "Propriétés de la liste/du menu", +TextareaProp : "Propriétés de la zone de texte", +FormProp : "Propriétés du formulaire", + +FontFormats : "Normal;Formaté;Adresse;En-tête 1;En-tête 2;En-tête 3;En-tête 4;En-tête 5;En-tête 6;Normal (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Calcul XHTML. Veuillez patienter...", +Done : "Terminé", +PasteWordConfirm : "Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller?", +NotCompatiblePaste : "Cette commande nécessite Internet Explorer version 5.5 et plus. Souhaitez-vous coller sans nettoyage?", +UnknownToolbarItem : "Élément de barre d'outil inconnu \"%1\"", +UnknownCommand : "Nom de commande inconnu \"%1\"", +NotImplemented : "Commande indisponible", +UnknownToolbarSet : "La barre d'outils \"%1\" n'existe pas", +NoActiveX : "Les paramètres de sécurité de votre navigateur peuvent limiter quelques fonctionnalités de l'éditeur. Veuillez activer l'option \"Exécuter les contrôles ActiveX et les plug-ins\". Il se peut que vous rencontriez des erreurs et remarquiez quelques limitations.", +BrowseServerBlocked : "Le navigateur n'a pas pu être ouvert. Assurez-vous que les bloqueurs de popups soient désactivés.", +DialogBlocked : "La fenêtre de dialogue n'a pas pu s'ouvrir. Assurez-vous que les bloqueurs de popups soient désactivés.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Annuler", +DlgBtnClose : "Fermer", +DlgBtnBrowseServer : "Parcourir le serveur", +DlgAdvancedTag : "Avancée", +DlgOpOther : "", +DlgInfoTab : "Info", +DlgAlertUrl : "Veuillez saisir l'URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Sens d'écriture", +DlgGenLangDirLtr : "De gauche à droite (LTR)", +DlgGenLangDirRtl : "De droite à gauche (RTL)", +DlgGenLangCode : "Code langue", +DlgGenAccessKey : "Équivalent clavier", +DlgGenName : "Nom", +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 de l'image", +DlgImgInfoTab : "Informations sur l'image", +DlgImgBtnUpload : "Envoyer sur le serveur", +DlgImgURL : "URL", +DlgImgUpload : "Télécharger", +DlgImgAlt : "Texte de remplacement", +DlgImgWidth : "Largeur", +DlgImgHeight : "Hauteur", +DlgImgLockRatio : "Garder les proportions", +DlgBtnResetSize : "Taille originale", +DlgImgBorder : "Bordure", +DlgImgHSpace : "Espacement horizontal", +DlgImgVSpace : "Espacement vertical", +DlgImgAlign : "Alignement", +DlgImgAlignLeft : "Gauche", +DlgImgAlignAbsBottom: "Abs Bas", +DlgImgAlignAbsMiddle: "Abs Milieu", +DlgImgAlignBaseline : "Bas du texte", +DlgImgAlignBottom : "Bas", +DlgImgAlignMiddle : "Milieu", +DlgImgAlignRight : "Droite", +DlgImgAlignTextTop : "Haut du texte", +DlgImgAlignTop : "Haut", +DlgImgPreview : "Prévisualisation", +DlgImgAlertUrl : "Veuillez saisir l'URL de l'image", +DlgImgLinkTab : "Lien", + +// Flash Dialog +DlgFlashTitle : "Propriétés de l'animation Flash", +DlgFlashChkPlay : "Lecture automatique", +DlgFlashChkLoop : "Boucle", +DlgFlashChkMenu : "Activer le menu Flash", +DlgFlashScale : "Affichage", +DlgFlashScaleAll : "Par défaut (tout montrer)", +DlgFlashScaleNoBorder : "Sans bordure", +DlgFlashScaleFit : "Ajuster aux dimensions", + +// Link Dialog +DlgLnkWindowTitle : "Propriétés du lien", +DlgLnkInfoTab : "Informations sur le lien", +DlgLnkTargetTab : "Destination", + +DlgLnkType : "Type de lien", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Ancre dans cette page", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Protocole", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Sélectionner une ancre", +DlgLnkAnchorByName : "Par nom", +DlgLnkAnchorById : "Par id", +DlgLnkNoAnchors : "(Pas d'ancre disponible dans le document)", +DlgLnkEMail : "Adresse E-Mail", +DlgLnkEMailSubject : "Sujet du message", +DlgLnkEMailBody : "Corps du message", +DlgLnkUpload : "Télécharger", +DlgLnkBtnUpload : "Envoyer sur le serveur", + +DlgLnkTarget : "Destination", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Nouvelle fenêtre (_blank)", +DlgLnkTargetParent : "Fenêtre mère (_parent)", +DlgLnkTargetSelf : "Même fenêtre (_self)", +DlgLnkTargetTop : "Fenêtre supérieure (_top)", +DlgLnkTargetFrameName : "Nom du cadre de destination", +DlgLnkPopWinName : "Nom de la fenêtre popup", +DlgLnkPopWinFeat : "Caractéristiques de la fenêtre popup", +DlgLnkPopResize : "Taille modifiable", +DlgLnkPopLocation : "Barre d'adresses", +DlgLnkPopMenu : "Barre de menu", +DlgLnkPopScroll : "Barres de défilement", +DlgLnkPopStatus : "Barre d'état", +DlgLnkPopToolbar : "Barre d'outils", +DlgLnkPopFullScrn : "Plein écran (IE)", +DlgLnkPopDependent : "Dépendante (Netscape)", +DlgLnkPopWidth : "Largeur", +DlgLnkPopHeight : "Hauteur", +DlgLnkPopLeft : "Position à partir de la gauche", +DlgLnkPopTop : "Position à partir du haut", + +DlnLnkMsgNoUrl : "Veuillez saisir l'URL", +DlnLnkMsgNoEMail : "Veuillez saisir l'adresse e-mail", +DlnLnkMsgNoAnchor : "Veuillez sélectionner une ancre", +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 : "Prévisualisation", +DlgColorSelected : "Sélectionné", + +// Smiley Dialog +DlgSmileyTitle : "Insérer un Emoticon", + +// Special Character Dialog +DlgSpecialCharTitle : "Insérer un caractère spécial", + +// Table Dialog +DlgTableTitle : "Propriétés du tableau", +DlgTableRows : "Lignes", +DlgTableColumns : "Colonnes", +DlgTableBorder : "Taille de la bordure", +DlgTableAlign : "Alignement", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Gauche", +DlgTableAlignCenter : "Centré", +DlgTableAlignRight : "Droite", +DlgTableWidth : "Largeur", +DlgTableWidthPx : "pixels", +DlgTableWidthPc : "pourcentage", +DlgTableHeight : "Hauteur", +DlgTableCellSpace : "Espacement", +DlgTableCellPad : "Contour", +DlgTableCaption : "Titre", +DlgTableSummary : "Résumé", + +// Table Cell Dialog +DlgCellTitle : "Propriétés de la cellule", +DlgCellWidth : "Largeur", +DlgCellWidthPx : "pixels", +DlgCellWidthPc : "pourcentage", +DlgCellHeight : "Hauteur", +DlgCellWordWrap : "Retour à la ligne", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Oui", +DlgCellWordWrapNo : "Non", +DlgCellHorAlign : "Alignement horizontal", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Gauche", +DlgCellHorAlignCenter : "Centré", +DlgCellHorAlignRight: "Droite", +DlgCellVerAlign : "Alignement vertical", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Haut", +DlgCellVerAlignMiddle : "Milieu", +DlgCellVerAlignBottom : "Bas", +DlgCellVerAlignBaseline : "Bas du texte", +DlgCellRowSpan : "Lignes fusionnées", +DlgCellCollSpan : "Colonnes fusionnées", +DlgCellBackColor : "Couleur de fond", +DlgCellBorderColor : "Couleur de bordure", +DlgCellBtnSelect : "Sélectionner...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Chercher et Remplacer", + +// Find Dialog +DlgFindTitle : "Chercher", +DlgFindFindBtn : "Chercher", +DlgFindNotFoundMsg : "Le texte indiqué est introuvable.", + +// Replace Dialog +DlgReplaceTitle : "Remplacer", +DlgReplaceFindLbl : "Rechercher:", +DlgReplaceReplaceLbl : "Remplacer par:", +DlgReplaceCaseChk : "Respecter la casse", +DlgReplaceReplaceBtn : "Remplacer", +DlgReplaceReplAllBtn : "Tout remplacer", +DlgReplaceWordChk : "Mot entier", + +// Paste Operations / Dialog +PasteErrorCut : "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+X).", +PasteErrorCopy : "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+C).", + +PasteAsText : "Coller comme texte", +PasteFromWord : "Coller à partir de Word", + +DlgPasteMsg2 : "Veuillez coller dans la zone ci-dessous en utilisant le clavier (Ctrl+V) et appuyer sur OK.", +DlgPasteSec : "A cause des paramètres de sécurité de votre navigateur, l'éditeur ne peut accéder au presse-papier directement. Vous devez coller à nouveau le contenu dans cette fenêtre.", +DlgPasteIgnoreFont : "Ignorer les polices de caractères", +DlgPasteRemoveStyles : "Supprimer les styles", + +// Color Picker +ColorAutomatic : "Automatique", +ColorMoreColors : "Plus de couleurs...", + +// Document Properties +DocProps : "Propriétés du document", + +// Anchor Dialog +DlgAnchorTitle : "Propriétés de l'ancre", +DlgAnchorName : "Nom de l'ancre", +DlgAnchorErrorName : "Veuillez saisir le nom de l'ancre", + +// Speller Pages Dialog +DlgSpellNotInDic : "Pas dans le dictionnaire", +DlgSpellChangeTo : "Changer en", +DlgSpellBtnIgnore : "Ignorer", +DlgSpellBtnIgnoreAll : "Ignorer tout", +DlgSpellBtnReplace : "Remplacer", +DlgSpellBtnReplaceAll : "Remplacer tout", +DlgSpellBtnUndo : "Annuler", +DlgSpellNoSuggestions : "- Pas de suggestion -", +DlgSpellProgress : "Vérification d'orthographe en cours...", +DlgSpellNoMispell : "Vérification d'orthographe terminée: pas d'erreur trouvée", +DlgSpellNoChanges : "Vérification d'orthographe terminée: Pas de modifications", +DlgSpellOneChange : "Vérification d'orthographe terminée: Un mot modifié", +DlgSpellManyChanges : "Vérification d'orthographe terminée: %1 mots modifiés", + +IeSpellDownload : "Le Correcteur d'orthographe n'est pas installé. Souhaitez-vous le télécharger maintenant?", + +// Button Dialog +DlgButtonText : "Texte (Valeur)", +DlgButtonType : "Type", +DlgButtonTypeBtn : "Bouton", +DlgButtonTypeSbm : "Soumettre", +DlgButtonTypeRst : "Réinitialiser", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Nom", +DlgCheckboxValue : "Valeur", +DlgCheckboxSelected : "Sélectionné", + +// Form Dialog +DlgFormName : "Nom", +DlgFormAction : "Action", +DlgFormMethod : "Méthode", + +// Select Field Dialog +DlgSelectName : "Nom", +DlgSelectValue : "Valeur", +DlgSelectSize : "Taille", +DlgSelectLines : "lignes", +DlgSelectChkMulti : "Sélection multiple", +DlgSelectOpAvail : "Options disponibles", +DlgSelectOpText : "Texte", +DlgSelectOpValue : "Valeur", +DlgSelectBtnAdd : "Ajouter", +DlgSelectBtnModify : "Modifier", +DlgSelectBtnUp : "Monter", +DlgSelectBtnDown : "Descendre", +DlgSelectBtnSetValue : "Valeur sélectionnée", +DlgSelectBtnDelete : "Supprimer", + +// Textarea Dialog +DlgTextareaName : "Nom", +DlgTextareaCols : "Colonnes", +DlgTextareaRows : "Lignes", + +// Text Field Dialog +DlgTextName : "Nom", +DlgTextValue : "Valeur", +DlgTextCharWidth : "Largeur en caractères", +DlgTextMaxChars : "Nombre maximum de caractères", +DlgTextType : "Type", +DlgTextTypeText : "Texte", +DlgTextTypePass : "Mot de passe", + +// Hidden Field Dialog +DlgHiddenName : "Nom", +DlgHiddenValue : "Valeur", + +// Bulleted List Dialog +BulletedListProp : "Propriétés de liste à puces", +NumberedListProp : "Propriétés de liste numérotée", +DlgLstStart : "Début", +DlgLstType : "Type", +DlgLstTypeCircle : "Cercle", +DlgLstTypeDisc : "Disque", +DlgLstTypeSquare : "Carré", +DlgLstTypeNumbers : "Nombres (1, 2, 3)", +DlgLstTypeLCase : "Lettres minuscules (a, b, c)", +DlgLstTypeUCase : "Lettres majuscules (A, B, C)", +DlgLstTypeSRoman : "Chiffres romains minuscules (i, ii, iii)", +DlgLstTypeLRoman : "Chiffres romains majuscules (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Général", +DlgDocBackTab : "Fond", +DlgDocColorsTab : "Couleurs et Marges", +DlgDocMetaTab : "Méta-Données", + +DlgDocPageTitle : "Titre de la page", +DlgDocLangDir : "Sens d'écriture", +DlgDocLangDirLTR : "De la gauche vers la droite (LTR)", +DlgDocLangDirRTL : "De la droite vers la gauche (RTL)", +DlgDocLangCode : "Code langue", +DlgDocCharSet : "Encodage de caractère", +DlgDocCharSetCE : "Europe Centrale", +DlgDocCharSetCT : "Chinois Traditionnel (Big5)", +DlgDocCharSetCR : "Cyrillique", +DlgDocCharSetGR : "Grecque", +DlgDocCharSetJP : "Japonais", +DlgDocCharSetKR : "Coréen", +DlgDocCharSetTR : "Turcque", +DlgDocCharSetUN : "Unicode (UTF-8)", +DlgDocCharSetWE : "Occidental", +DlgDocCharSetOther : "Autre encodage de caractère", + +DlgDocDocType : "Type de document", +DlgDocDocTypeOther : "Autre type de document", +DlgDocIncXHTML : "Inclure les déclarations XHTML", +DlgDocBgColor : "Couleur de fond", +DlgDocBgImage : "Image de fond", +DlgDocBgNoScroll : "Image fixe sans défilement", +DlgDocCText : "Texte", +DlgDocCLink : "Lien", +DlgDocCVisited : "Lien visité", +DlgDocCActive : "Lien activé", +DlgDocMargins : "Marges", +DlgDocMaTop : "Haut", +DlgDocMaLeft : "Gauche", +DlgDocMaRight : "Droite", +DlgDocMaBottom : "Bas", +DlgDocMeIndex : "Mots-clés (séparés par des virgules)", +DlgDocMeDescr : "Description", +DlgDocMeAuthor : "Auteur", +DlgDocMeCopy : "Copyright", +DlgDocPreview : "Prévisualisation", + +// Templates Dialog +Templates : "Modèles", +DlgTemplatesTitle : "Modèles de contenu", +DlgTemplatesSelMsg : "Sélectionner le modèle à ouvrir dans l'éditeur
      (le contenu actuel sera remplacé):", +DlgTemplatesLoading : "Chargement de la liste des modèles. Veuillez patienter...", +DlgTemplatesNoTpl : "(Aucun modèle disponible)", +DlgTemplatesReplace : "Remplacer tout le contenu actuel", + +// About Dialog +DlgAboutAboutTab : "Á propos de", +DlgAboutBrowserInfoTab : "Navigateur", +DlgAboutLicenseTab : "License", +DlgAboutVersion : "Version", +DlgAboutInfo : "Pour plus d'informations, visiter", + +// Div Dialog +DlgDivGeneralTab : "Général", +DlgDivAdvancedTab : "Avancé", +DlgDivStyle : "Style", +DlgDivInlineStyle : "Attribut Style" +}; diff --git a/fckeditor/editor/lang/fr.js b/fckeditor/editor/lang/fr.js new file mode 100644 index 0000000..7b744ad --- /dev/null +++ b/fckeditor/editor/lang/fr.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * French language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Masquer Outils", +ToolbarExpand : "Afficher Outils", + +// Toolbar Items and Context Menu +Save : "Enregistrer", +NewPage : "Nouvelle page", +Preview : "Prévisualisation", +Cut : "Couper", +Copy : "Copier", +Paste : "Coller", +PasteText : "Coller comme texte", +PasteWord : "Coller de Word", +Print : "Imprimer", +SelectAll : "Tout sélectionner", +RemoveFormat : "Supprimer le format", +InsertLinkLbl : "Lien", +InsertLink : "Insérer/modifier le lien", +RemoveLink : "Supprimer le lien", +VisitLink : "Suivre le lien", +Anchor : "Insérer/modifier l'ancre", +AnchorDelete : "Supprimer l'ancre", +InsertImageLbl : "Image", +InsertImage : "Insérer/modifier l'image", +InsertFlashLbl : "Animation Flash", +InsertFlash : "Insérer/modifier l'animation Flash", +InsertTableLbl : "Tableau", +InsertTable : "Insérer/modifier le tableau", +InsertLineLbl : "Séparateur", +InsertLine : "Insérer un séparateur", +InsertSpecialCharLbl: "Caractères spéciaux", +InsertSpecialChar : "Insérer un caractère spécial", +InsertSmileyLbl : "Smiley", +InsertSmiley : "Insérer un Smiley", +About : "A propos de FCKeditor", +Bold : "Gras", +Italic : "Italique", +Underline : "Souligné", +StrikeThrough : "Barré", +Subscript : "Indice", +Superscript : "Exposant", +LeftJustify : "Aligné à gauche", +CenterJustify : "Centré", +RightJustify : "Aligné à Droite", +BlockJustify : "Texte justifié", +DecreaseIndent : "Diminuer le retrait", +IncreaseIndent : "Augmenter le retrait", +Blockquote : "Citation", +CreateDiv : "Créer Balise Div", +EditDiv : "Modifier Balise Div", +DeleteDiv : "Supprimer Balise Div", +Undo : "Annuler", +Redo : "Refaire", +NumberedListLbl : "Liste numérotée", +NumberedList : "Insérer/supprimer la liste numérotée", +BulletedListLbl : "Liste à puces", +BulletedList : "Insérer/supprimer la liste à puces", +ShowTableBorders : "Afficher les bordures du tableau", +ShowDetails : "Afficher les caractères invisibles", +Style : "Style", +FontFormat : "Format", +Font : "Police", +FontSize : "Taille", +TextColor : "Couleur de caractère", +BGColor : "Couleur de fond", +Source : "Source", +Find : "Chercher", +Replace : "Remplacer", +SpellCheck : "Orthographe", +UniversalKeyboard : "Clavier universel", +PageBreakLbl : "Saut de page", +PageBreak : "Insérer un saut de page", + +Form : "Formulaire", +Checkbox : "Case à cocher", +RadioButton : "Bouton radio", +TextField : "Champ texte", +Textarea : "Zone de texte", +HiddenField : "Champ caché", +Button : "Bouton", +SelectionField : "Liste/menu", +ImageButton : "Bouton image", + +FitWindow : "Edition pleine page", +ShowBlocks : "Afficher les blocs", + +// Context Menu +EditLink : "Modifier le lien", +CellCM : "Cellule", +RowCM : "Ligne", +ColumnCM : "Colonne", +InsertRowAfter : "Insérer une ligne après", +InsertRowBefore : "Insérer une ligne avant", +DeleteRows : "Supprimer des lignes", +InsertColumnAfter : "Insérer une colonne après", +InsertColumnBefore : "Insérer une colonne avant", +DeleteColumns : "Supprimer des colonnes", +InsertCellAfter : "Insérer une cellule après", +InsertCellBefore : "Insérer une cellule avant", +DeleteCells : "Supprimer des cellules", +MergeCells : "Fusionner les cellules", +MergeRight : "Fusionner à droite", +MergeDown : "Fusionner en bas", +HorizontalSplitCell : "Scinder la cellule horizontalement", +VerticalSplitCell : "Scinder la cellule verticalement", +TableDelete : "Supprimer le tableau", +CellProperties : "Propriétés de cellule", +TableProperties : "Propriétés du tableau", +ImageProperties : "Propriétés de l'image", +FlashProperties : "Propriétés de l'animation Flash", + +AnchorProp : "Propriétés de l'ancre", +ButtonProp : "Propriétés du bouton", +CheckboxProp : "Propriétés de la case à cocher", +HiddenFieldProp : "Propriétés du champ caché", +RadioButtonProp : "Propriétés du bouton radio", +ImageButtonProp : "Propriétés du bouton image", +TextFieldProp : "Propriétés du champ texte", +SelectionFieldProp : "Propriétés de la liste/du menu", +TextareaProp : "Propriétés de la zone de texte", +FormProp : "Propriétés du formulaire", + +FontFormats : "Normal;Formaté;Adresse;En-tête 1;En-tête 2;En-tête 3;En-tête 4;En-tête 5;En-tête 6;Normal (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Calcul XHTML. Veuillez patienter...", +Done : "Terminé", +PasteWordConfirm : "Le texte à coller semble provenir de Word. Désirez-vous le nettoyer avant de coller?", +NotCompatiblePaste : "Cette commande nécessite Internet Explorer version 5.5 minimum. Souhaitez-vous coller sans nettoyage?", +UnknownToolbarItem : "Elément de barre d'outil inconnu \"%1\"", +UnknownCommand : "Nom de commande inconnu \"%1\"", +NotImplemented : "Commande non encore écrite", +UnknownToolbarSet : "La barre d'outils \"%1\" n'existe pas", +NoActiveX : "Les paramètres de sécurité de votre navigateur peuvent limiter quelques fonctionnalités de l'éditeur. Veuillez activer l'option \"Exécuter les contrôles ActiveX et les plug-ins\". Il se peut que vous rencontriez des erreurs et remarquiez quelques limitations.", +BrowseServerBlocked : "Le navigateur n'a pas pu être ouvert. Assurez-vous que les bloqueurs de popups soient désactivés.", +DialogBlocked : "La fenêtre de dialogue n'a pas pu s'ouvrir. Assurez-vous que les bloqueurs de popups soient désactivés.", +VisitLinkBlocked : "Impossible d'ouvrir une nouvelle fenêtre. Assurez-vous que les bloqueurs de popups soient désactivés.", + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Annuler", +DlgBtnClose : "Fermer", +DlgBtnBrowseServer : "Parcourir le serveur", +DlgAdvancedTag : "Avancé", +DlgOpOther : "", +DlgInfoTab : "Info", +DlgAlertUrl : "Veuillez saisir l'URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Sens d'écriture", +DlgGenLangDirLtr : "De 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", +DlgGenContType : "Type de contenu", +DlgGenLinkCharset : "Encodage de caractère", +DlgGenStyle : "Style", + +// Image Dialog +DlgImgTitle : "Propriétés de l'image", +DlgImgInfoTab : "Informations sur l'image", +DlgImgBtnUpload : "Envoyer sur le serveur", +DlgImgURL : "URL", +DlgImgUpload : "Télécharger", +DlgImgAlt : "Texte de remplacement", +DlgImgWidth : "Largeur", +DlgImgHeight : "Hauteur", +DlgImgLockRatio : "Garder les proportions", +DlgBtnResetSize : "Taille originale", +DlgImgBorder : "Bordure", +DlgImgHSpace : "Espacement horizontal", +DlgImgVSpace : "Espacement vertical", +DlgImgAlign : "Alignement", +DlgImgAlignLeft : "Gauche", +DlgImgAlignAbsBottom: "Abs Bas", +DlgImgAlignAbsMiddle: "Abs Milieu", +DlgImgAlignBaseline : "Bas du texte", +DlgImgAlignBottom : "Bas", +DlgImgAlignMiddle : "Milieu", +DlgImgAlignRight : "Droite", +DlgImgAlignTextTop : "Haut du texte", +DlgImgAlignTop : "Haut", +DlgImgPreview : "Prévisualisation", +DlgImgAlertUrl : "Veuillez saisir l'URL de l'image", +DlgImgLinkTab : "Lien", + +// Flash Dialog +DlgFlashTitle : "Propriétés de l'animation Flash", +DlgFlashChkPlay : "Lecture automatique", +DlgFlashChkLoop : "Boucle", +DlgFlashChkMenu : "Activer le menu Flash", +DlgFlashScale : "Affichage", +DlgFlashScaleAll : "Par défaut (tout montrer)", +DlgFlashScaleNoBorder : "Sans bordure", +DlgFlashScaleFit : "Ajuster aux dimensions", + +// Link Dialog +DlgLnkWindowTitle : "Propriétés du lien", +DlgLnkInfoTab : "Informations sur le lien", +DlgLnkTargetTab : "Destination", + +DlgLnkType : "Type de lien", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Ancre dans cette page", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Protocole", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Sélectionner une ancre", +DlgLnkAnchorByName : "Par nom", +DlgLnkAnchorById : "Par id", +DlgLnkNoAnchors : "(Pas d'ancre disponible dans le document)", +DlgLnkEMail : "Adresse E-Mail", +DlgLnkEMailSubject : "Sujet du message", +DlgLnkEMailBody : "Corps du message", +DlgLnkUpload : "Télécharger", +DlgLnkBtnUpload : "Envoyer sur le serveur", + +DlgLnkTarget : "Destination", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Nouvelle fenêtre (_blank)", +DlgLnkTargetParent : "Fenêtre mère (_parent)", +DlgLnkTargetSelf : "Même fenêtre (_self)", +DlgLnkTargetTop : "Fenêtre supérieure (_top)", +DlgLnkTargetFrameName : "Nom du cadre de destination", +DlgLnkPopWinName : "Nom de la fenêtre popup", +DlgLnkPopWinFeat : "Caractéristiques de la fenêtre popup", +DlgLnkPopResize : "Taille modifiable", +DlgLnkPopLocation : "Barre d'adresses", +DlgLnkPopMenu : "Barre de menu", +DlgLnkPopScroll : "Barres de défilement", +DlgLnkPopStatus : "Barre d'état", +DlgLnkPopToolbar : "Barre d'outils", +DlgLnkPopFullScrn : "Plein écran (IE)", +DlgLnkPopDependent : "Dépendante (Netscape)", +DlgLnkPopWidth : "Largeur", +DlgLnkPopHeight : "Hauteur", +DlgLnkPopLeft : "Position à partir de la gauche", +DlgLnkPopTop : "Position à partir du haut", + +DlnLnkMsgNoUrl : "Veuillez saisir l'URL", +DlnLnkMsgNoEMail : "Veuillez saisir l'adresse e-mail", +DlnLnkMsgNoAnchor : "Veuillez sélectionner une ancre", +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 : "Prévisualisation", +DlgColorSelected : "Sélectionné", + +// Smiley Dialog +DlgSmileyTitle : "Insérer un Smiley", + +// Special Character Dialog +DlgSpecialCharTitle : "Insérer un caractère spécial", + +// Table Dialog +DlgTableTitle : "Propriétés du tableau", +DlgTableRows : "Lignes", +DlgTableColumns : "Colonnes", +DlgTableBorder : "Bordure", +DlgTableAlign : "Alignement", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Gauche", +DlgTableAlignCenter : "Centré", +DlgTableAlignRight : "Droite", +DlgTableWidth : "Largeur", +DlgTableWidthPx : "pixels", +DlgTableWidthPc : "pourcentage", +DlgTableHeight : "Hauteur", +DlgTableCellSpace : "Espacement", +DlgTableCellPad : "Contour", +DlgTableCaption : "Titre", +DlgTableSummary : "Résumé", + +// Table Cell Dialog +DlgCellTitle : "Propriétés de la cellule", +DlgCellWidth : "Largeur", +DlgCellWidthPx : "pixels", +DlgCellWidthPc : "pourcentage", +DlgCellHeight : "Hauteur", +DlgCellWordWrap : "Retour à la ligne", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Oui", +DlgCellWordWrapNo : "Non", +DlgCellHorAlign : "Alignement horizontal", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Gauche", +DlgCellHorAlignCenter : "Centré", +DlgCellHorAlignRight: "Droite", +DlgCellVerAlign : "Alignement vertical", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Haut", +DlgCellVerAlignMiddle : "Milieu", +DlgCellVerAlignBottom : "Bas", +DlgCellVerAlignBaseline : "Bas du texte", +DlgCellRowSpan : "Lignes fusionnées", +DlgCellCollSpan : "Colonnes fusionnées", +DlgCellBackColor : "Fond", +DlgCellBorderColor : "Bordure", +DlgCellBtnSelect : "Choisir...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Chercher et Remplacer", + +// Find Dialog +DlgFindTitle : "Chercher", +DlgFindFindBtn : "Chercher", +DlgFindNotFoundMsg : "Le texte indiqué est introuvable.", + +// Replace Dialog +DlgReplaceTitle : "Remplacer", +DlgReplaceFindLbl : "Rechercher:", +DlgReplaceReplaceLbl : "Remplacer par:", +DlgReplaceCaseChk : "Respecter la casse", +DlgReplaceReplaceBtn : "Remplacer", +DlgReplaceReplAllBtn : "Tout remplacer", +DlgReplaceWordChk : "Mot entier", + +// Paste Operations / Dialog +PasteErrorCut : "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de couper automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+X).", +PasteErrorCopy : "Les paramètres de sécurité de votre navigateur empêchent l'éditeur de copier automatiquement vos données. Veuillez utiliser les équivalents claviers (Ctrl+C).", + +PasteAsText : "Coller comme texte", +PasteFromWord : "Coller à partir de Word", + +DlgPasteMsg2 : "Veuillez coller dans la zone ci-dessous en utilisant le clavier (Ctrl+V) et cliquez sur OK.", +DlgPasteSec : "A cause des paramètres de sécurité de votre navigateur, l'éditeur ne peut accéder au presse-papier directement. Vous devez coller à nouveau le contenu dans cette fenêtre.", +DlgPasteIgnoreFont : "Ignorer les polices de caractères", +DlgPasteRemoveStyles : "Supprimer les styles", + +// Color Picker +ColorAutomatic : "Automatique", +ColorMoreColors : "Plus de couleurs...", + +// Document Properties +DocProps : "Propriétés du document", + +// Anchor Dialog +DlgAnchorTitle : "Propriétés de l'ancre", +DlgAnchorName : "Nom de l'ancre", +DlgAnchorErrorName : "Veuillez saisir le nom de l'ancre", + +// Speller Pages Dialog +DlgSpellNotInDic : "Pas dans le dictionnaire", +DlgSpellChangeTo : "Changer en", +DlgSpellBtnIgnore : "Ignorer", +DlgSpellBtnIgnoreAll : "Ignorer tout", +DlgSpellBtnReplace : "Remplacer", +DlgSpellBtnReplaceAll : "Remplacer tout", +DlgSpellBtnUndo : "Annuler", +DlgSpellNoSuggestions : "- Aucune suggestion -", +DlgSpellProgress : "Vérification d'orthographe en cours...", +DlgSpellNoMispell : "Vérification d'orthographe terminée: Aucune erreur trouvée", +DlgSpellNoChanges : "Vérification d'orthographe terminée: Pas de modifications", +DlgSpellOneChange : "Vérification d'orthographe terminée: Un mot modifié", +DlgSpellManyChanges : "Vérification d'orthographe terminée: %1 mots modifiés", + +IeSpellDownload : "Le Correcteur n'est pas installé. Souhaitez-vous le télécharger maintenant?", + +// Button Dialog +DlgButtonText : "Texte (valeur)", +DlgButtonType : "Type", +DlgButtonTypeBtn : "Bouton", +DlgButtonTypeSbm : "Envoyer", +DlgButtonTypeRst : "Réinitialiser", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Nom", +DlgCheckboxValue : "Valeur", +DlgCheckboxSelected : "Sélectionné", + +// Form Dialog +DlgFormName : "Nom", +DlgFormAction : "Action", +DlgFormMethod : "Méthode", + +// Select Field Dialog +DlgSelectName : "Nom", +DlgSelectValue : "Valeur", +DlgSelectSize : "Taille", +DlgSelectLines : "lignes", +DlgSelectChkMulti : "Sélection multiple", +DlgSelectOpAvail : "Options disponibles", +DlgSelectOpText : "Texte", +DlgSelectOpValue : "Valeur", +DlgSelectBtnAdd : "Ajouter", +DlgSelectBtnModify : "Modifier", +DlgSelectBtnUp : "Monter", +DlgSelectBtnDown : "Descendre", +DlgSelectBtnSetValue : "Valeur sélectionnée", +DlgSelectBtnDelete : "Supprimer", + +// Textarea Dialog +DlgTextareaName : "Nom", +DlgTextareaCols : "Colonnes", +DlgTextareaRows : "Lignes", + +// Text Field Dialog +DlgTextName : "Nom", +DlgTextValue : "Valeur", +DlgTextCharWidth : "Largeur en caractères", +DlgTextMaxChars : "Nombre maximum de caractères", +DlgTextType : "Type", +DlgTextTypeText : "Texte", +DlgTextTypePass : "Mot de passe", + +// Hidden Field Dialog +DlgHiddenName : "Nom", +DlgHiddenValue : "Valeur", + +// Bulleted List Dialog +BulletedListProp : "Propriétés de liste à puces", +NumberedListProp : "Propriétés de liste numérotée", +DlgLstStart : "Début", +DlgLstType : "Type", +DlgLstTypeCircle : "Cercle", +DlgLstTypeDisc : "Disque", +DlgLstTypeSquare : "Carré", +DlgLstTypeNumbers : "Nombres (1, 2, 3)", +DlgLstTypeLCase : "Lettres minuscules (a, b, c)", +DlgLstTypeUCase : "Lettres majuscules (A, B, C)", +DlgLstTypeSRoman : "Chiffres romains minuscules (i, ii, iii)", +DlgLstTypeLRoman : "Chiffres romains majuscules (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Général", +DlgDocBackTab : "Fond", +DlgDocColorsTab : "Couleurs et marges", +DlgDocMetaTab : "Métadonnées", + +DlgDocPageTitle : "Titre de la page", +DlgDocLangDir : "Sens d'écriture", +DlgDocLangDirLTR : "De la gauche vers la droite (LTR)", +DlgDocLangDirRTL : "De la droite vers la gauche (RTL)", +DlgDocLangCode : "Code langue", +DlgDocCharSet : "Encodage de caractère", +DlgDocCharSetCE : "Europe Centrale", +DlgDocCharSetCT : "Chinois Traditionnel (Big5)", +DlgDocCharSetCR : "Cyrillique", +DlgDocCharSetGR : "Grec", +DlgDocCharSetJP : "Japonais", +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", +DlgDocIncXHTML : "Inclure les déclarations XHTML", +DlgDocBgColor : "Couleur de fond", +DlgDocBgImage : "Image de fond", +DlgDocBgNoScroll : "Image fixe sans défilement", +DlgDocCText : "Texte", +DlgDocCLink : "Lien", +DlgDocCVisited : "Lien visité", +DlgDocCActive : "Lien activé", +DlgDocMargins : "Marges", +DlgDocMaTop : "Haut", +DlgDocMaLeft : "Gauche", +DlgDocMaRight : "Droite", +DlgDocMaBottom : "Bas", +DlgDocMeIndex : "Mots-clés (séparés par des virgules)", +DlgDocMeDescr : "Description", +DlgDocMeAuthor : "Auteur", +DlgDocMeCopy : "Copyright", +DlgDocPreview : "Prévisualisation", + +// Templates Dialog +Templates : "Modèles", +DlgTemplatesTitle : "Modèles de contenu", +DlgTemplatesSelMsg : "Veuillez sélectionner le modèle à ouvrir dans l'éditeur
      (le contenu actuel sera remplacé):", +DlgTemplatesLoading : "Chargement de la liste des modèles. Veuillez patienter...", +DlgTemplatesNoTpl : "(Aucun modèle disponible)", +DlgTemplatesReplace : "Remplacer tout le contenu", + +// About Dialog +DlgAboutAboutTab : "A propos de", +DlgAboutBrowserInfoTab : "Navigateur", +DlgAboutLicenseTab : "Licence", +DlgAboutVersion : "Version", +DlgAboutInfo : "Pour plus d'informations, aller à", + +// Div Dialog +DlgDivGeneralTab : "Général", +DlgDivAdvancedTab : "Avancé", +DlgDivStyle : "Style", +DlgDivInlineStyle : "Attribut Style" +}; diff --git a/fckeditor/editor/lang/gl.js b/fckeditor/editor/lang/gl.js new file mode 100644 index 0000000..560969f --- /dev/null +++ b/fckeditor/editor/lang/gl.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Galician language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Ocultar Ferramentas", +ToolbarExpand : "Mostrar Ferramentas", + +// Toolbar Items and Context Menu +Save : "Gardar", +NewPage : "Nova Páxina", +Preview : "Vista Previa", +Cut : "Cortar", +Copy : "Copiar", +Paste : "Pegar", +PasteText : "Pegar como texto plano", +PasteWord : "Pegar dende Word", +Print : "Imprimir", +SelectAll : "Seleccionar todo", +RemoveFormat : "Eliminar Formato", +InsertLinkLbl : "Ligazón", +InsertLink : "Inserir/Editar Ligazón", +RemoveLink : "Eliminar Ligazón", +VisitLink : "Open Link", //MISSING +Anchor : "Inserir/Editar Referencia", +AnchorDelete : "Remove Anchor", //MISSING +InsertImageLbl : "Imaxe", +InsertImage : "Inserir/Editar Imaxe", +InsertFlashLbl : "Flash", +InsertFlash : "Inserir/Editar Flash", +InsertTableLbl : "Tabla", +InsertTable : "Inserir/Editar Tabla", +InsertLineLbl : "Liña", +InsertLine : "Inserir Liña Horizontal", +InsertSpecialCharLbl: "Carácter Special", +InsertSpecialChar : "Inserir Carácter Especial", +InsertSmileyLbl : "Smiley", +InsertSmiley : "Inserir Smiley", +About : "Acerca de FCKeditor", +Bold : "Negrita", +Italic : "Cursiva", +Underline : "Sub-raiado", +StrikeThrough : "Tachado", +Subscript : "Subíndice", +Superscript : "Superíndice", +LeftJustify : "Aliñar á Esquerda", +CenterJustify : "Centrado", +RightJustify : "Aliñar á Dereita", +BlockJustify : "Xustificado", +DecreaseIndent : "Disminuir Sangría", +IncreaseIndent : "Aumentar Sangría", +Blockquote : "Blockquote", //MISSING +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "Desfacer", +Redo : "Refacer", +NumberedListLbl : "Lista Numerada", +NumberedList : "Inserir/Eliminar Lista Numerada", +BulletedListLbl : "Marcas", +BulletedList : "Inserir/Eliminar Marcas", +ShowTableBorders : "Mostrar Bordes das Táboas", +ShowDetails : "Mostrar Marcas Parágrafo", +Style : "Estilo", +FontFormat : "Formato", +Font : "Tipo", +FontSize : "Tamaño", +TextColor : "Cor do Texto", +BGColor : "Cor do Fondo", +Source : "Código Fonte", +Find : "Procurar", +Replace : "Substituir", +SpellCheck : "Corrección Ortográfica", +UniversalKeyboard : "Teclado Universal", +PageBreakLbl : "Salto de Páxina", +PageBreak : "Inserir Salto de Páxina", + +Form : "Formulario", +Checkbox : "Cadro de Verificación", +RadioButton : "Botón de Radio", +TextField : "Campo de Texto", +Textarea : "Área de Texto", +HiddenField : "Campo Oculto", +Button : "Botón", +SelectionField : "Campo de Selección", +ImageButton : "Botón de Imaxe", + +FitWindow : "Maximizar o tamaño do editor", +ShowBlocks : "Show Blocks", //MISSING + +// Context Menu +EditLink : "Editar Ligazón", +CellCM : "Cela", +RowCM : "Fila", +ColumnCM : "Columna", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING +DeleteRows : "Borrar Filas", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING +DeleteColumns : "Borrar Columnas", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING +DeleteCells : "Borrar Cela", +MergeCells : "Unir Celas", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING +TableDelete : "Borrar Táboa", +CellProperties : "Propriedades da Cela", +TableProperties : "Propriedades da Táboa", +ImageProperties : "Propriedades Imaxe", +FlashProperties : "Propriedades Flash", + +AnchorProp : "Propriedades da Referencia", +ButtonProp : "Propriedades do Botón", +CheckboxProp : "Propriedades do Cadro de Verificación", +HiddenFieldProp : "Propriedades do Campo Oculto", +RadioButtonProp : "Propriedades do Botón de Radio", +ImageButtonProp : "Propriedades do Botón de Imaxe", +TextFieldProp : "Propriedades do Campo de Texto", +SelectionFieldProp : "Propriedades do Campo de Selección", +TextareaProp : "Propriedades da Área de Texto", +FormProp : "Propriedades do Formulario", + +FontFormats : "Normal;Formateado;Enderezo;Enacabezado 1;Encabezado 2;Encabezado 3;Encabezado 4;Encabezado 5;Encabezado 6;Paragraph (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Procesando XHTML. Por facor, agarde...", +Done : "Feiro", +PasteWordConfirm : "Parece que o texto que quere pegar está copiado do Word.¿Quere limpar o formato antes de pegalo?", +NotCompatiblePaste : "Este comando está disponible para Internet Explorer versión 5.5 ou superior. ¿Quere pegalo sen limpar o formato?", +UnknownToolbarItem : "Ítem de ferramentas descoñecido \"%1\"", +UnknownCommand : "Nome de comando descoñecido \"%1\"", +NotImplemented : "Comando non implementado", +UnknownToolbarSet : "O conxunto de ferramentas \"%1\" non existe", +NoActiveX : "As opcións de seguridade do seu navegador poderían limitar algunha das características de editor. Debe activar a opción \"Executar controis ActiveX e plug-ins\". Pode notar que faltan características e experimentar erros", +BrowseServerBlocked : "Non se poido abrir o navegador de recursos. Asegúrese de que están desactivados os bloqueadores de xanelas emerxentes", +DialogBlocked : "Non foi posible abrir a xanela de diálogo. Asegúrese de que están desactivados os bloqueadores de xanelas emerxentes", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Cancelar", +DlgBtnClose : "Pechar", +DlgBtnBrowseServer : "Navegar no Servidor", +DlgAdvancedTag : "Advanzado", +DlgOpOther : "", +DlgInfoTab : "Info", +DlgAlertUrl : "Por favor, insira a URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Orientación do Idioma", +DlgGenLangDirLtr : "Esquerda a Dereita (LTR)", +DlgGenLangDirRtl : "Dereita a Esquerda (RTL)", +DlgGenLangCode : "Código do Idioma", +DlgGenAccessKey : "Chave de Acceso", +DlgGenName : "Nome", +DlgGenTabIndex : "Índice de Tabulación", +DlgGenLongDescr : "Descrición Completa da URL", +DlgGenClass : "Clases da Folla de Estilos", +DlgGenTitle : "Título", +DlgGenContType : "Tipo de Contido", +DlgGenLinkCharset : "Fonte de Caracteres Vinculado", +DlgGenStyle : "Estilo", + +// Image Dialog +DlgImgTitle : "Propriedades da Imaxe", +DlgImgInfoTab : "Información da Imaxe", +DlgImgBtnUpload : "Enviar ó Servidor", +DlgImgURL : "URL", +DlgImgUpload : "Carregar", +DlgImgAlt : "Texto Alternativo", +DlgImgWidth : "Largura", +DlgImgHeight : "Altura", +DlgImgLockRatio : "Proporcional", +DlgBtnResetSize : "Tamaño Orixinal", +DlgImgBorder : "Límite", +DlgImgHSpace : "Esp. Horiz.", +DlgImgVSpace : "Esp. Vert.", +DlgImgAlign : "Aliñamento", +DlgImgAlignLeft : "Esquerda", +DlgImgAlignAbsBottom: "Abs Inferior", +DlgImgAlignAbsMiddle: "Abs Centro", +DlgImgAlignBaseline : "Liña Base", +DlgImgAlignBottom : "Pé", +DlgImgAlignMiddle : "Centro", +DlgImgAlignRight : "Dereita", +DlgImgAlignTextTop : "Tope do Texto", +DlgImgAlignTop : "Tope", +DlgImgPreview : "Vista Previa", +DlgImgAlertUrl : "Por favor, escriba a URL da imaxe", +DlgImgLinkTab : "Ligazón", + +// Flash Dialog +DlgFlashTitle : "Propriedades Flash", +DlgFlashChkPlay : "Auto Execución", +DlgFlashChkLoop : "Bucle", +DlgFlashChkMenu : "Activar Menú Flash", +DlgFlashScale : "Escalar", +DlgFlashScaleAll : "Amosar Todo", +DlgFlashScaleNoBorder : "Sen Borde", +DlgFlashScaleFit : "Encaixar axustando", + +// Link Dialog +DlgLnkWindowTitle : "Ligazón", +DlgLnkInfoTab : "Información da Ligazón", +DlgLnkTargetTab : "Referencia a esta páxina", + +DlgLnkType : "Tipo de Ligazón", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Referencia nesta páxina", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Protocolo", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Seleccionar unha Referencia", +DlgLnkAnchorByName : "Por Nome de Referencia", +DlgLnkAnchorById : "Por Element Id", +DlgLnkNoAnchors : "(Non hai referencias disponibles no documento)", +DlgLnkEMail : "Enderezo de E-Mail", +DlgLnkEMailSubject : "Asunto do Mensaxe", +DlgLnkEMailBody : "Corpo do Mensaxe", +DlgLnkUpload : "Carregar", +DlgLnkBtnUpload : "Enviar ó servidor", + +DlgLnkTarget : "Destino", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Nova Xanela (_blank)", +DlgLnkTargetParent : "Xanela Pai (_parent)", +DlgLnkTargetSelf : "Mesma Xanela (_self)", +DlgLnkTargetTop : "Xanela Primaria (_top)", +DlgLnkTargetFrameName : "Nome do Marco Destino", +DlgLnkPopWinName : "Nome da Xanela Emerxente", +DlgLnkPopWinFeat : "Características da Xanela Emerxente", +DlgLnkPopResize : "Axustable", +DlgLnkPopLocation : "Barra de Localización", +DlgLnkPopMenu : "Barra de Menú", +DlgLnkPopScroll : "Barras de Desplazamento", +DlgLnkPopStatus : "Barra de Estado", +DlgLnkPopToolbar : "Barra de Ferramentas", +DlgLnkPopFullScrn : "A Toda Pantalla (IE)", +DlgLnkPopDependent : "Dependente (Netscape)", +DlgLnkPopWidth : "Largura", +DlgLnkPopHeight : "Altura", +DlgLnkPopLeft : "Posición Esquerda", +DlgLnkPopTop : "Posición dende Arriba", + +DlnLnkMsgNoUrl : "Por favor, escriba a ligazón URL", +DlnLnkMsgNoEMail : "Por favor, escriba o enderezo de e-mail", +DlnLnkMsgNoAnchor : "Por favor, seleccione un destino", +DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING + +// Color Dialog +DlgColorTitle : "Seleccionar Color", +DlgColorBtnClear : "Nengunha", +DlgColorHighlight : "Destacado", +DlgColorSelected : "Seleccionado", + +// Smiley Dialog +DlgSmileyTitle : "Inserte un Smiley", + +// Special Character Dialog +DlgSpecialCharTitle : "Seleccione Caracter Especial", + +// Table Dialog +DlgTableTitle : "Propiedades da Táboa", +DlgTableRows : "Filas", +DlgTableColumns : "Columnas", +DlgTableBorder : "Tamaño do Borde", +DlgTableAlign : "Aliñamento", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Esquerda", +DlgTableAlignCenter : "Centro", +DlgTableAlignRight : "Ereita", +DlgTableWidth : "Largura", +DlgTableWidthPx : "pixels", +DlgTableWidthPc : "percent", +DlgTableHeight : "Altura", +DlgTableCellSpace : "Marxe entre Celas", +DlgTableCellPad : "Marxe interior", +DlgTableCaption : "Título", +DlgTableSummary : "Sumario", + +// Table Cell Dialog +DlgCellTitle : "Propriedades da Cela", +DlgCellWidth : "Largura", +DlgCellWidthPx : "pixels", +DlgCellWidthPc : "percent", +DlgCellHeight : "Altura", +DlgCellWordWrap : "Axustar Liñas", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Si", +DlgCellWordWrapNo : "Non", +DlgCellHorAlign : "Aliñamento Horizontal", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Esquerda", +DlgCellHorAlignCenter : "Centro", +DlgCellHorAlignRight: "Dereita", +DlgCellVerAlign : "Aliñamento Vertical", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Arriba", +DlgCellVerAlignMiddle : "Medio", +DlgCellVerAlignBottom : "Abaixo", +DlgCellVerAlignBaseline : "Liña de Base", +DlgCellRowSpan : "Ocupar Filas", +DlgCellCollSpan : "Ocupar Columnas", +DlgCellBackColor : "Color de Fondo", +DlgCellBorderColor : "Color de Borde", +DlgCellBtnSelect : "Seleccionar...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + +// Find Dialog +DlgFindTitle : "Procurar", +DlgFindFindBtn : "Procurar", +DlgFindNotFoundMsg : "Non te atopou o texto indicado.", + +// Replace Dialog +DlgReplaceTitle : "Substituir", +DlgReplaceFindLbl : "Texto a procurar:", +DlgReplaceReplaceLbl : "Substituir con:", +DlgReplaceCaseChk : "Coincidir Mai./min.", +DlgReplaceReplaceBtn : "Substituir", +DlgReplaceReplAllBtn : "Substitiur Todo", +DlgReplaceWordChk : "Coincidir con toda a palabra", + +// Paste Operations / Dialog +PasteErrorCut : "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de corte. Por favor, use o teclado para iso (Ctrl+X).", +PasteErrorCopy : "Os axustes de seguridade do seu navegador non permiten que o editor realice automáticamente as tarefas de copia. Por favor, use o teclado para iso (Ctrl+C).", + +PasteAsText : "Pegar como texto plano", +PasteFromWord : "Pegar dende Word", + +DlgPasteMsg2 : "Por favor, pegue dentro do seguinte cadro usando o teclado (Ctrl+V) e pulse OK.", +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", + +// Color Picker +ColorAutomatic : "Automático", +ColorMoreColors : "Máis Cores...", + +// Document Properties +DocProps : "Propriedades do Documento", + +// Anchor Dialog +DlgAnchorTitle : "Propriedades da Referencia", +DlgAnchorName : "Nome da Referencia", +DlgAnchorErrorName : "Por favor, escriba o nome da referencia", + +// Speller Pages Dialog +DlgSpellNotInDic : "Non está no diccionario", +DlgSpellChangeTo : "Cambiar a", +DlgSpellBtnIgnore : "Ignorar", +DlgSpellBtnIgnoreAll : "Ignorar Todas", +DlgSpellBtnReplace : "Substituir", +DlgSpellBtnReplaceAll : "Substituir Todas", +DlgSpellBtnUndo : "Desfacer", +DlgSpellNoSuggestions : "- Sen candidatos -", +DlgSpellProgress : "Corrección ortográfica en progreso...", +DlgSpellNoMispell : "Corrección ortográfica rematada: Non se atoparon erros", +DlgSpellNoChanges : "Corrección ortográfica rematada: Non se substituiu nengunha verba", +DlgSpellOneChange : "Corrección ortográfica rematada: Unha verba substituida", +DlgSpellManyChanges : "Corrección ortográfica rematada: %1 verbas substituidas", + +IeSpellDownload : "O corrector ortográfico non está instalado. ¿Quere descargalo agora?", + +// Button Dialog +DlgButtonText : "Texto (Valor)", +DlgButtonType : "Tipo", +DlgButtonTypeBtn : "Button", //MISSING +DlgButtonTypeSbm : "Submit", //MISSING +DlgButtonTypeRst : "Reset", //MISSING + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Nome", +DlgCheckboxValue : "Valor", +DlgCheckboxSelected : "Seleccionado", + +// Form Dialog +DlgFormName : "Nome", +DlgFormAction : "Acción", +DlgFormMethod : "Método", + +// Select Field Dialog +DlgSelectName : "Nome", +DlgSelectValue : "Valor", +DlgSelectSize : "Tamaño", +DlgSelectLines : "liñas", +DlgSelectChkMulti : "Permitir múltiples seleccións", +DlgSelectOpAvail : "Opcións Disponibles", +DlgSelectOpText : "Texto", +DlgSelectOpValue : "Valor", +DlgSelectBtnAdd : "Engadir", +DlgSelectBtnModify : "Modificar", +DlgSelectBtnUp : "Subir", +DlgSelectBtnDown : "Baixar", +DlgSelectBtnSetValue : "Definir como valor por defecto", +DlgSelectBtnDelete : "Borrar", + +// Textarea Dialog +DlgTextareaName : "Nome", +DlgTextareaCols : "Columnas", +DlgTextareaRows : "Filas", + +// Text Field Dialog +DlgTextName : "Nome", +DlgTextValue : "Valor", +DlgTextCharWidth : "Tamaño do Caracter", +DlgTextMaxChars : "Máximo de Caracteres", +DlgTextType : "Tipo", +DlgTextTypeText : "Texto", +DlgTextTypePass : "Chave", + +// Hidden Field Dialog +DlgHiddenName : "Nome", +DlgHiddenValue : "Valor", + +// Bulleted List Dialog +BulletedListProp : "Propriedades das Marcas", +NumberedListProp : "Propriedades da Lista de Numeración", +DlgLstStart : "Start", //MISSING +DlgLstType : "Tipo", +DlgLstTypeCircle : "Círculo", +DlgLstTypeDisc : "Disco", +DlgLstTypeSquare : "Cuadrado", +DlgLstTypeNumbers : "Números (1, 2, 3)", +DlgLstTypeLCase : "Letras Minúsculas (a, b, c)", +DlgLstTypeUCase : "Letras Maiúsculas (A, B, C)", +DlgLstTypeSRoman : "Números Romanos en minúscula (i, ii, iii)", +DlgLstTypeLRoman : "Números Romanos en Maiúscula (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Xeral", +DlgDocBackTab : "Fondo", +DlgDocColorsTab : "Cores e Marxes", +DlgDocMetaTab : "Meta Data", + +DlgDocPageTitle : "Título da Páxina", +DlgDocLangDir : "Orientación do Idioma", +DlgDocLangDirLTR : "Esquerda a Dereita (LTR)", +DlgDocLangDirRTL : "Dereita a Esquerda (RTL)", +DlgDocLangCode : "Código de Idioma", +DlgDocCharSet : "Codificación do Xogo de Caracteres", +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", +DlgDocDocTypeOther : "Outro Encabezado do Tipo de Documento", +DlgDocIncXHTML : "Incluir Declaracións XHTML", +DlgDocBgColor : "Cor de Fondo", +DlgDocBgImage : "URL da Imaxe de Fondo", +DlgDocBgNoScroll : "Fondo Fixo", +DlgDocCText : "Texto", +DlgDocCLink : "Ligazóns", +DlgDocCVisited : "Ligazón Visitada", +DlgDocCActive : "Ligazón Activa", +DlgDocMargins : "Marxes da Páxina", +DlgDocMaTop : "Arriba", +DlgDocMaLeft : "Esquerda", +DlgDocMaRight : "Dereita", +DlgDocMaBottom : "Abaixo", +DlgDocMeIndex : "Palabras Chave de Indexación do Documento (separadas por comas)", +DlgDocMeDescr : "Descripción do Documento", +DlgDocMeAuthor : "Autor", +DlgDocMeCopy : "Copyright", +DlgDocPreview : "Vista Previa", + +// Templates Dialog +Templates : "Plantillas", +DlgTemplatesTitle : "Plantillas de Contido", +DlgTemplatesSelMsg : "Por favor, seleccione a plantilla a abrir no editor
      (o contido actual perderase):", +DlgTemplatesLoading : "Cargando listado de plantillas. Por favor, espere...", +DlgTemplatesNoTpl : "(Non hai plantillas definidas)", +DlgTemplatesReplace : "Replace actual contents", //MISSING + +// About Dialog +DlgAboutAboutTab : "Acerca de", +DlgAboutBrowserInfoTab : "Información do Navegador", +DlgAboutLicenseTab : "Licencia", +DlgAboutVersion : "versión", +DlgAboutInfo : "Para máis información visitar:", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/gu.js b/fckeditor/editor/lang/gu.js new file mode 100644 index 0000000..e14eca7 --- /dev/null +++ b/fckeditor/editor/lang/gu.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Gujarati language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "ટૂલબાર નાનું કરવું", +ToolbarExpand : "ટૂલબાર મોટું કરવું", + +// Toolbar Items and Context Menu +Save : "સેવ", +NewPage : "નવુ પાનું", +Preview : "પૂર્વદર્શન", +Cut : "કાપવું", +Copy : "નકલ", +Paste : "પેસ્ટ", +PasteText : "પેસ્ટ (સાદી ટેક્સ્ટ)", +PasteWord : "પેસ્ટ (વડૅ ટેક્સ્ટ)", +Print : "પ્રિન્ટ", +SelectAll : "બઘું પસંદ કરવું", +RemoveFormat : "ફૉર્મટ કાઢવું", +InsertLinkLbl : "સંબંધન, લિંક", +InsertLink : "લિંક ઇન્સર્ટ/દાખલ કરવી", +RemoveLink : "લિંક કાઢવી", +VisitLink : "Open Link", //MISSING +Anchor : "ઍંકર ઇન્સર્ટ/દાખલ કરવી", +AnchorDelete : "ઍંકર કાઢવી", +InsertImageLbl : "ચિત્ર", +InsertImage : "ચિત્ર ઇન્સર્ટ/દાખલ કરવું", +InsertFlashLbl : "ફ્લૅશ", +InsertFlash : "ફ્લૅશ ઇન્સર્ટ/દાખલ કરવું", +InsertTableLbl : "ટેબલ, કોઠો", +InsertTable : "ટેબલ, કોઠો ઇન્સર્ટ/દાખલ કરવું", +InsertLineLbl : "રેખા", +InsertLine : "સમસ્તરીય રેખા ઇન્સર્ટ/દાખલ કરવી", +InsertSpecialCharLbl: "વિશિષ્ટ અક્ષર", +InsertSpecialChar : "વિશિષ્ટ અક્ષર ઇન્સર્ટ/દાખલ કરવું", +InsertSmileyLbl : "સ્માઇલી", +InsertSmiley : "સ્માઇલી ઇન્સર્ટ/દાખલ કરવી", +About : "FCKeditorના વિષે", +Bold : "બોલ્ડ/સ્પષ્ટ", +Italic : "ઇટેલિક, ત્રાંસા", +Underline : "અન્ડર્લાઇન, નીચે લીટી", +StrikeThrough : "છેકી નાખવું", +Subscript : "એક ચિહ્નની નીચે કરેલું બીજું ચિહ્ન", +Superscript : "એક ચિહ્ન ઉપર કરેલું બીજું ચિહ્ન.", +LeftJustify : "ડાબી બાજુએ/બાજુ તરફ", +CenterJustify : "સંકેંદ્રણ/સેંટરિંગ", +RightJustify : "જમણી બાજુએ/બાજુ તરફ", +BlockJustify : "બ્લૉક, અંતરાય જસ્ટિફાઇ", +DecreaseIndent : "ઇન્ડેન્ટ લીટીના આરંભમાં જગ્યા ઘટાડવી", +IncreaseIndent : "ઇન્ડેન્ટ, લીટીના આરંભમાં જગ્યા વધારવી", +Blockquote : "બ્લૉક-કોટ, અવતરણચિહ્નો", +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "રદ કરવું; પહેલાં હતી એવી સ્થિતિ પાછી લાવવી", +Redo : "રિડૂ; પછી હતી એવી સ્થિતિ પાછી લાવવી", +NumberedListLbl : "સંખ્યાંકન સૂચિ", +NumberedList : "સંખ્યાંકન સૂચિ ઇન્સર્ટ/દાખલ કરવી", +BulletedListLbl : "બુલેટ સૂચિ", +BulletedList : "બુલેટ સૂચિ ઇન્સર્ટ/દાખલ કરવી", +ShowTableBorders : "ટેબલ, કોઠાની બાજુ(બોર્ડર) બતાવવી", +ShowDetails : "વિસ્તૃત વિગતવાર બતાવવું", +Style : "શૈલી/રીત", +FontFormat : "ફૉન્ટ ફૉર્મટ, રચનાની શૈલી", +Font : "ફૉન્ટ", +FontSize : "ફૉન્ટ સાઇઝ/કદ", +TextColor : "શબ્દનો રંગ", +BGColor : "બૅકગ્રાઉન્ડ રંગ,", +Source : "મૂળ કે પ્રાથમિક દસ્તાવેજ", +Find : "શોધવું", +Replace : "રિપ્લેસ/બદલવું", +SpellCheck : "જોડણી (સ્પેલિંગ) તપાસવી", +UniversalKeyboard : "યૂનિવર્સલ/વિશ્વવ્યાપક કીબૉર્ડ", +PageBreakLbl : "પેજબ્રેક/પાનાને અલગ કરવું", +PageBreak : "ઇન્સર્ટ પેજબ્રેક/પાનાને અલગ કરવું/દાખલ કરવું", + +Form : "ફૉર્મ/પત્રક", +Checkbox : "ચેક બોક્સ", +RadioButton : "રેડિઓ બટન", +TextField : "ટેક્સ્ટ ફીલ્ડ, શબ્દ ક્ષેત્ર", +Textarea : "ટેક્સ્ટ એરિઆ, શબ્દ વિસ્તાર", +HiddenField : "ગુપ્ત ક્ષેત્ર", +Button : "બટન", +SelectionField : "પસંદગી ક્ષેત્ર", +ImageButton : "ચિત્ર બટન", + +FitWindow : "એડિટરની સાઇઝ અધિકતમ કરવી", +ShowBlocks : "બ્લૉક બતાવવું", + +// Context Menu +EditLink : " લિંક એડિટ/માં ફેરફાર કરવો", +CellCM : "કોષના ખાના", +RowCM : "પંક્તિના ખાના", +ColumnCM : "કૉલમ/ઊભી કટાર", +InsertRowAfter : "પછી પંક્તિ ઉમેરવી", +InsertRowBefore : "પહેલાં પંક્તિ ઉમેરવી", +DeleteRows : "પંક્તિઓ ડિલીટ/કાઢી નાખવી", +InsertColumnAfter : "પછી કૉલમ/ઊભી કટાર ઉમેરવી", +InsertColumnBefore : "પહેલાં કૉલમ/ઊભી કટાર ઉમેરવી", +DeleteColumns : "કૉલમ/ઊભી કટાર ડિલીટ/કાઢી નાખવી", +InsertCellAfter : "પછી કોષ ઉમેરવો", +InsertCellBefore : "પહેલાં કોષ ઉમેરવો", +DeleteCells : "કોષ ડિલીટ/કાઢી નાખવો", +MergeCells : "કોષ ભેગા કરવા", +MergeRight : "જમણી બાજુ ભેગા કરવા", +MergeDown : "નીચે ભેગા કરવા", +HorizontalSplitCell : "કોષને સમસ્તરીય વિભાજન કરવું", +VerticalSplitCell : "કોષને સીધું ને ઊભું વિભાજન કરવું", +TableDelete : "કોઠો ડિલીટ/કાઢી નાખવું", +CellProperties : "કોષના ગુણ", +TableProperties : "કોઠાના ગુણ", +ImageProperties : "ચિત્રના ગુણ", +FlashProperties : "ફ્લૅશના ગુણ", + +AnchorProp : "ઍંકરના ગુણ", +ButtonProp : "બટનના ગુણ", +CheckboxProp : "ચેક બોક્સ ગુણ", +HiddenFieldProp : "ગુપ્ત ક્ષેત્રના ગુણ", +RadioButtonProp : "રેડિઓ બટનના ગુણ", +ImageButtonProp : "ચિત્ર બટનના ગુણ", +TextFieldProp : "ટેક્સ્ટ ફીલ્ડ, શબ્દ ક્ષેત્રના ગુણ", +SelectionFieldProp : "પસંદગી ક્ષેત્રના ગુણ", +TextareaProp : "ટેક્સ્ટ એઅરિઆ, શબ્દ વિસ્તારના ગુણ", +FormProp : "ફૉર્મ/પત્રકના ગુણ", + +FontFormats : "સામાન્ય;ફૉર્મટેડ;સરનામું;શીર્ષક 1;શીર્ષક 2;શીર્ષક 3;શીર્ષક 4;શીર્ષક 5;શીર્ષક 6;શીર્ષક (DIV)", + +// Alerts and Messages +ProcessingXHTML : "XHTML પ્રક્રિયા ચાલુ છે. મહેરબાની કરીને રાહ જોવો...", +Done : "પતી ગયું", +PasteWordConfirm : "તમે જે ટેક્સ્ટ પેસ્ટ કરવા માંગો છો, તે વડૅમાંથી કોપી કરેલુ લાગે છે. પેસ્ટ કરતા પહેલાં ટેક્સ્ટ સાફ કરવી છે?", +NotCompatiblePaste : "આ કમાન્ડ ઈનટરનેટ એક્સપ્લોરર(Internet Explorer) 5.5 અથવા એના પછીના વર્ઝન માટેજ છે. ટેક્સ્ટને સાફ કયૅા પહેલાં પેસ્ટ કરવી છે?", +UnknownToolbarItem : "અજાણી ટૂલબાર આઇટમ \"%1\"", +UnknownCommand : "અજાણયો કમાન્ડ \"%1\"", +NotImplemented : "કમાન્ડ ઇમ્પ્લિમન્ટ નથી કરોયો", +UnknownToolbarSet : "ટૂલબાર સેટ \"%1\" ઉપલબ્ધ નથી", +NoActiveX : "તમારા બ્રાઉઝરની સુરક્ષા સેટિંગસ એડિટરના અમુક ફીચરને પરવાનગી આપતી નથી. કૃપયા \"Run ActiveX controls and plug-ins\" વિકલ્પને ઇનેબલ/સમર્થ કરો. તમારા બ્રાઉઝરમાં એરર ઇન્વિઝિબલ ફીચરનો અનુભવ થઈ શકે છે. કૃપયા પૉપ-અપ બ્લૉકર ડિસેબલ કરો.", +BrowseServerBlocked : "રિસૉર્સ બ્રાઉઝર ખોલી ન સકાયું.", +DialogBlocked : "ડાયલૉગ વિન્ડો ખોલી ન સકાયું. કૃપયા પૉપ-અપ બ્લૉકર ડિસેબલ કરો.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "ઠીક છે", +DlgBtnCancel : "રદ કરવું", +DlgBtnClose : "બંધ કરવું", +DlgBtnBrowseServer : "સર્વર બ્રાઉઝ કરો", +DlgAdvancedTag : "અડ્વાન્સડ", +DlgOpOther : "<અન્ય>", +DlgInfoTab : "સૂચના", +DlgAlertUrl : "URL ઇન્સર્ટ કરો", + +// General Dialogs Labels +DlgGenNotSet : "<સેટ નથી>", +DlgGenId : "Id", +DlgGenLangDir : "ભાષા લેખવાની પદ્ધતિ", +DlgGenLangDirLtr : "ડાબે થી જમણે (LTR)", +DlgGenLangDirRtl : "જમણે થી ડાબે (RTL)", +DlgGenLangCode : "ભાષા કોડ", +DlgGenAccessKey : "ઍક્સેસ કી", +DlgGenName : "નામ", +DlgGenTabIndex : "ટૅબ ઇન્ડેક્સ", +DlgGenLongDescr : "વધારે માહિતી માટે URL", +DlgGenClass : "સ્ટાઇલ-શીટ ક્લાસ", +DlgGenTitle : "મુખ્ય મથાળું", +DlgGenContType : "મુખ્ય કન્ટેન્ટ પ્રકાર", +DlgGenLinkCharset : "લિંક રિસૉર્સ કૅરિક્ટર સેટ", +DlgGenStyle : "સ્ટાઇલ", + +// Image Dialog +DlgImgTitle : "ચિત્રના ગુણ", +DlgImgInfoTab : "ચિત્ર ની જાણકારી", +DlgImgBtnUpload : "આ સર્વરને મોકલવું", +DlgImgURL : "URL", +DlgImgUpload : "અપલોડ", +DlgImgAlt : "ઑલ્ટર્નટ ટેક્સ્ટ", +DlgImgWidth : "પહોળાઈ", +DlgImgHeight : "ઊંચાઈ", +DlgImgLockRatio : "લૉક ગુણોત્તર", +DlgBtnResetSize : "રીસેટ સાઇઝ", +DlgImgBorder : "બોર્ડર", +DlgImgHSpace : "સમસ્તરીય જગ્યા", +DlgImgVSpace : "લંબરૂપ જગ્યા", +DlgImgAlign : "લાઇનદોરીમાં ગોઠવવું", +DlgImgAlignLeft : "ડાબી બાજુ ગોઠવવું", +DlgImgAlignAbsBottom: "Abs નીચે", +DlgImgAlignAbsMiddle: "Abs ઉપર", +DlgImgAlignBaseline : "આધાર લીટી", +DlgImgAlignBottom : "નીચે", +DlgImgAlignMiddle : "વચ્ચે", +DlgImgAlignRight : "જમણી", +DlgImgAlignTextTop : "ટેક્સ્ટ ઉપર", +DlgImgAlignTop : "ઉપર", +DlgImgPreview : "પૂર્વદર્શન", +DlgImgAlertUrl : "ચિત્રની URL ટાઇપ કરો", +DlgImgLinkTab : "લિંક", + +// Flash Dialog +DlgFlashTitle : "ફ્લૅશ ગુણ", +DlgFlashChkPlay : "ઑટો/સ્વયં પ્લે", +DlgFlashChkLoop : "લૂપ", +DlgFlashChkMenu : "ફ્લૅશ મેન્યૂ નો પ્રયોગ કરો", +DlgFlashScale : "સ્કેલ", +DlgFlashScaleAll : "સ્કેલ ઓલ/બધુ બતાવો", +DlgFlashScaleNoBorder : "સ્કેલ બોર્ડર વગર", +DlgFlashScaleFit : "સ્કેલ એકદમ ફીટ", + +// Link Dialog +DlgLnkWindowTitle : "લિંક", +DlgLnkInfoTab : "લિંક ઇન્ફૉ ટૅબ", +DlgLnkTargetTab : "ટાર્ગેટ/લક્ષ્ય ટૅબ", + +DlgLnkType : "લિંક પ્રકાર", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "આ પેજનો ઍંકર", +DlgLnkTypeEMail : "ઈ-મેલ", +DlgLnkProto : "પ્રોટોકૉલ", +DlgLnkProtoOther : "<અન્ય>", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "ઍંકર પસંદ કરો", +DlgLnkAnchorByName : "ઍંકર નામથી પસંદ કરો", +DlgLnkAnchorById : "ઍંકર એલિમન્ટ Id થી પસંદ કરો", +DlgLnkNoAnchors : "(ડૉક્યુમન્ટમાં ઍંકરની સંખ્યા)", +DlgLnkEMail : "ઈ-મેલ સરનામું", +DlgLnkEMailSubject : "ઈ-મેલ વિષય", +DlgLnkEMailBody : "સંદેશ", +DlgLnkUpload : "અપલોડ", +DlgLnkBtnUpload : "આ સર્વરને મોકલવું", + +DlgLnkTarget : "ટાર્ગેટ/લક્ષ્ય", +DlgLnkTargetFrame : "<ફ્રેમ>", +DlgLnkTargetPopup : "<પૉપ-અપ વિન્ડો>", +DlgLnkTargetBlank : "નવી વિન્ડો (_blank)", +DlgLnkTargetParent : "મૂળ વિન્ડો (_parent)", +DlgLnkTargetSelf : "આજ વિન્ડો (_self)", +DlgLnkTargetTop : "ઉપરની વિન્ડો (_top)", +DlgLnkTargetFrameName : "ટાર્ગેટ ફ્રેમ નું નામ", +DlgLnkPopWinName : "પૉપ-અપ વિન્ડો નું નામ", +DlgLnkPopWinFeat : "પૉપ-અપ વિન્ડો ફીચરસૅ", +DlgLnkPopResize : "સાઇઝ બદલી સકાય છે", +DlgLnkPopLocation : "લોકેશન બાર", +DlgLnkPopMenu : "મેન્યૂ બાર", +DlgLnkPopScroll : "સ્ક્રોલ બાર", +DlgLnkPopStatus : "સ્ટૅટસ બાર", +DlgLnkPopToolbar : "ટૂલ બાર", +DlgLnkPopFullScrn : "ફુલ સ્ક્રીન (IE)", +DlgLnkPopDependent : "ડિપેન્ડન્ટ (Netscape)", +DlgLnkPopWidth : "પહોળાઈ", +DlgLnkPopHeight : "ઊંચાઈ", +DlgLnkPopLeft : "ડાબી બાજુ", +DlgLnkPopTop : "જમણી બાજુ", + +DlnLnkMsgNoUrl : "લિંક URL ટાઇપ કરો", +DlnLnkMsgNoEMail : "ઈ-મેલ સરનામું ટાઇપ કરો", +DlnLnkMsgNoAnchor : "ઍંકર પસંદ કરો", +DlnLnkMsgInvPopName : "પૉપ-અપ વિન્ડો નું નામ ઍલ્ફબેટથી શરૂ કરવો અને તેમાં સ્પેઇસ ન હોવી જોઈએ", + +// Color Dialog +DlgColorTitle : "રંગ પસંદ કરો", +DlgColorBtnClear : "સાફ કરો", +DlgColorHighlight : "હાઈલાઇટ", +DlgColorSelected : "સિલેક્ટેડ/પસંદ કરવું", + +// Smiley Dialog +DlgSmileyTitle : "સ્માઇલી પસંદ કરો", + +// Special Character Dialog +DlgSpecialCharTitle : "સ્પેશિઅલ વિશિષ્ટ અક્ષર પસંદ કરો", + +// Table Dialog +DlgTableTitle : "ટેબલ, કોઠાનું મથાળું", +DlgTableRows : "પંક્તિના ખાના", +DlgTableColumns : "કૉલમ/ઊભી કટાર", +DlgTableBorder : "કોઠાની બાજુ(બોર્ડર) સાઇઝ", +DlgTableAlign : "અલાઇનમન્ટ/ગોઠવાયેલું ", +DlgTableAlignNotSet : "<સેટ નથી>", +DlgTableAlignLeft : "ડાબી બાજુ", +DlgTableAlignCenter : "મધ્ય સેન્ટર", +DlgTableAlignRight : "જમણી બાજુ", +DlgTableWidth : "પહોળાઈ", +DlgTableWidthPx : "પિકસલ", +DlgTableWidthPc : "પ્રતિશત", +DlgTableHeight : "ઊંચાઈ", +DlgTableCellSpace : "સેલ અંતર", +DlgTableCellPad : "સેલ પૅડિંગ", +DlgTableCaption : "મથાળું/કૅપ્શન ", +DlgTableSummary : "ટૂંકો એહેવાલ", + +// 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 and Replace Dialog +DlgFindAndReplaceTitle : "શોધવું અને બદલવું", + +// Find Dialog +DlgFindTitle : "શોધવું", +DlgFindFindBtn : "શોધવું", +DlgFindNotFoundMsg : "તમે શોધેલી ટેક્સ્ટ નથી મળી", + +// Replace Dialog +DlgReplaceTitle : "બદલવું", +DlgReplaceFindLbl : "આ શોધો", +DlgReplaceReplaceLbl : "આનાથી બદલો", +DlgReplaceCaseChk : "કેસ સરખા રાખો", +DlgReplaceReplaceBtn : "બદલવું", +DlgReplaceReplAllBtn : "બઘા બદલી ", +DlgReplaceWordChk : "બઘા શબ્દ સરખા રાખો", + +// Paste Operations / Dialog +PasteErrorCut : "તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કટ કરવાની પરવાનગી નથી આપતી. (Ctrl+X) નો ઉપયોગ કરો.", +PasteErrorCopy : "તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસ કોપી કરવાની પરવાનગી નથી આપતી. (Ctrl+C) का प्रयोग करें।", + +PasteAsText : "પેસ્ટ (ટેક્સ્ટ)", +PasteFromWord : "પેસ્ટ (વર્ડ થી)", + +DlgPasteMsg2 : "Ctrl+V નો પ્રયોગ કરી પેસ્ટ કરો", +DlgPasteSec : "તમારા બ્રાઉઝર ની સુરક્ષિત સેટિંગસના કારણે,એડિટર તમારા કિલ્પબોર્ડ ડેટા ને કોપી નથી કરી શકતો. તમારે આ વિન્ડોમાં ફરીથી પેસ્ટ કરવું પડશે.", +DlgPasteIgnoreFont : "ફૉન્ટફેસ વ્યાખ્યાની અવગણના", +DlgPasteRemoveStyles : "સ્ટાઇલ વ્યાખ્યા કાઢી નાખવી", + +// Color Picker +ColorAutomatic : "સ્વચાલિત", +ColorMoreColors : "ઔર રંગ...", + +// Document Properties +DocProps : "ડૉક્યુમન્ટ ગુણ/પ્રૉપર્ટિઝ", + +// Anchor Dialog +DlgAnchorTitle : "ઍંકર ગુણ/પ્રૉપર્ટિઝ", +DlgAnchorName : "ઍંકરનું નામ", +DlgAnchorErrorName : "ઍંકરનું નામ ટાઈપ કરો", + +// Speller Pages Dialog +DlgSpellNotInDic : "શબ્દકોશમાં નથી", +DlgSpellChangeTo : "આનાથી બદલવું", +DlgSpellBtnIgnore : "ઇગ્નોર/અવગણના કરવી", +DlgSpellBtnIgnoreAll : "બધાની ઇગ્નોર/અવગણના કરવી", +DlgSpellBtnReplace : "બદલવું", +DlgSpellBtnReplaceAll : "બધા બદલી કરો", +DlgSpellBtnUndo : "અન્ડૂ", +DlgSpellNoSuggestions : "- કઇ સજેશન નથી -", +DlgSpellProgress : "શબ્દની જોડણી/સ્પેલ ચેક ચાલુ છે...", +DlgSpellNoMispell : "શબ્દની જોડણી/સ્પેલ ચેક પૂર્ણ: ખોટી જોડણી મળી નથી", +DlgSpellNoChanges : "શબ્દની જોડણી/સ્પેલ ચેક પૂર્ણ: એકપણ શબ્દ બદલયો નથી", +DlgSpellOneChange : "શબ્દની જોડણી/સ્પેલ ચેક પૂર્ણ: એક શબ્દ બદલયો છે", +DlgSpellManyChanges : "શબ્દની જોડણી/સ્પેલ ચેક પૂર્ણ: %1 શબ્દ બદલયા છે", + +IeSpellDownload : "સ્પેલ-ચેકર ઇન્સ્ટોલ નથી. શું તમે ડાઉનલોડ કરવા માંગો છો?", + +// Button Dialog +DlgButtonText : "ટેક્સ્ટ (વૅલ્યૂ)", +DlgButtonType : "પ્રકાર", +DlgButtonTypeBtn : "બટન", +DlgButtonTypeSbm : "સબ્મિટ", +DlgButtonTypeRst : "રિસેટ", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "નામ", +DlgCheckboxValue : "વૅલ્યૂ", +DlgCheckboxSelected : "સિલેક્ટેડ", + +// Form Dialog +DlgFormName : "નામ", +DlgFormAction : "ક્રિયા", +DlgFormMethod : "પદ્ધતિ", + +// Select Field Dialog +DlgSelectName : "નામ", +DlgSelectValue : "વૅલ્યૂ", +DlgSelectSize : "સાઇઝ", +DlgSelectLines : "લીટીઓ", +DlgSelectChkMulti : "એકથી વધારે પસંદ કરી શકો", +DlgSelectOpAvail : "ઉપલબ્ધ વિકલ્પ", +DlgSelectOpText : "ટેક્સ્ટ", +DlgSelectOpValue : "વૅલ્યૂ", +DlgSelectBtnAdd : "ઉમેરવું", +DlgSelectBtnModify : "બદલવું", +DlgSelectBtnUp : "ઉપર", +DlgSelectBtnDown : "નીચે", +DlgSelectBtnSetValue : "પસંદ કરલી વૅલ્યૂ સેટ કરો", +DlgSelectBtnDelete : "રદ કરવું", + +// Textarea Dialog +DlgTextareaName : "નામ", +DlgTextareaCols : "કૉલમ/ઊભી કટાર", +DlgTextareaRows : "પંક્તિઓ", + +// Text Field Dialog +DlgTextName : "નામ", +DlgTextValue : "વૅલ્યૂ", +DlgTextCharWidth : "કેરેક્ટરની પહોળાઈ", +DlgTextMaxChars : "અધિકતમ કેરેક્ટર", +DlgTextType : "ટાઇપ", +DlgTextTypeText : "ટેક્સ્ટ", +DlgTextTypePass : "પાસવર્ડ", + +// Hidden Field Dialog +DlgHiddenName : "નામ", +DlgHiddenValue : "વૅલ્યૂ", + +// Bulleted List Dialog +BulletedListProp : "બુલેટ સૂચિ ગુણ", +NumberedListProp : "સંખ્યાંક્તિ સૂચિ ગુણ", +DlgLstStart : "શરૂઆતથી", +DlgLstType : "પ્રકાર", +DlgLstTypeCircle : "વર્તુળ", +DlgLstTypeDisc : "ડિસ્ક", +DlgLstTypeSquare : "ચોરસ", +DlgLstTypeNumbers : "સંખ્યા (1, 2, 3)", +DlgLstTypeLCase : "નાના અક્ષર (a, b, c)", +DlgLstTypeUCase : "મોટા અક્ષર (A, B, C)", +DlgLstTypeSRoman : "નાના રોમન આંક (i, ii, iii)", +DlgLstTypeLRoman : "મોટા રોમન આંક (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "સાધારણ", +DlgDocBackTab : "બૅકગ્રાઉન્ડ", +DlgDocColorsTab : "રંગ અને માર્જિન/કિનાર", +DlgDocMetaTab : "મેટાડૅટા", + +DlgDocPageTitle : "પેજ મથાળું/ટાઇટલ", +DlgDocLangDir : "ભાષા લેખવાની પદ્ધતિ", +DlgDocLangDirLTR : "ડાબે થી જમણે (LTR)", +DlgDocLangDirRTL : "જમણે થી ડાબે (RTL)", +DlgDocLangCode : "ભાષા કોડ", +DlgDocCharSet : "કેરેક્ટર સેટ એન્કોડિંગ", +DlgDocCharSetCE : "મધ્ય યુરોપિઅન (Central European)", +DlgDocCharSetCT : "ચાઇનીઝ (Chinese Traditional Big5)", +DlgDocCharSetCR : "સિરીલિક (Cyrillic)", +DlgDocCharSetGR : "ગ્રીક (Greek)", +DlgDocCharSetJP : "જાપાનિઝ (Japanese)", +DlgDocCharSetKR : "કોરીયન (Korean)", +DlgDocCharSetTR : "ટર્કિ (Turkish)", +DlgDocCharSetUN : "યૂનિકોડ (UTF-8)", +DlgDocCharSetWE : "પશ્ચિમ યુરોપિઅન (Western European)", +DlgDocCharSetOther : "અન્ય કેરેક્ટર સેટ એન્કોડિંગ", + +DlgDocDocType : "ડૉક્યુમન્ટ પ્રકાર શીર્ષક", +DlgDocDocTypeOther : "અન્ય ડૉક્યુમન્ટ પ્રકાર શીર્ષક", +DlgDocIncXHTML : "XHTML સૂચના સમાવિષ્ટ કરવી", +DlgDocBgColor : "બૅકગ્રાઉન્ડ રંગ", +DlgDocBgImage : "બૅકગ્રાઉન્ડ ચિત્ર URL", +DlgDocBgNoScroll : "સ્ક્રોલ ન થાય તેવું બૅકગ્રાઉન્ડ", +DlgDocCText : "ટેક્સ્ટ", +DlgDocCLink : "લિંક", +DlgDocCVisited : "વિઝિટેડ લિંક", +DlgDocCActive : "સક્રિય લિંક", +DlgDocMargins : "પેજ માર્જિન", +DlgDocMaTop : "ઉપર", +DlgDocMaLeft : "ડાબી", +DlgDocMaRight : "જમણી", +DlgDocMaBottom : "નીચે", +DlgDocMeIndex : "ડૉક્યુમન્ટ ઇન્ડેક્સ સંકેતશબ્દ (અલ્પવિરામ (,) થી અલગ કરો)", +DlgDocMeDescr : "ડૉક્યુમન્ટ વર્ણન", +DlgDocMeAuthor : "લેખક", +DlgDocMeCopy : "કૉપિરાઇટ", +DlgDocPreview : "પૂર્વદર્શન", + +// Templates Dialog +Templates : "ટેમ્પ્લેટ", +DlgTemplatesTitle : "કન્ટેન્ટ ટેમ્પ્લેટ", +DlgTemplatesSelMsg : "એડિટરમાં ઓપન કરવા ટેમ્પ્લેટ પસંદ કરો (વર્તમાન કન્ટેન્ટ સેવ નહીં થાય):", +DlgTemplatesLoading : "ટેમ્પ્લેટ સૂચિ લોડ થાય છે. રાહ જુઓ...", +DlgTemplatesNoTpl : "(કોઈ ટેમ્પ્લેટ ડિફાઇન નથી)", +DlgTemplatesReplace : "મૂળ શબ્દને બદલો", + +// About Dialog +DlgAboutAboutTab : "FCKEditor ના વિષે", +DlgAboutBrowserInfoTab : "બ્રાઉઝર ના વિષે", +DlgAboutLicenseTab : "લાઇસન્સ", +DlgAboutVersion : "વર્ઝન", +DlgAboutInfo : "વધારે માહિતી માટે:", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/he.js b/fckeditor/editor/lang/he.js new file mode 100644 index 0000000..63cf976 --- /dev/null +++ b/fckeditor/editor/lang/he.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Hebrew language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "rtl", + +ToolbarCollapse : "כיווץ סרגל הכלים", +ToolbarExpand : "פתיחת סרגל הכלים", + +// Toolbar Items and Context Menu +Save : "שמירה", +NewPage : "דף חדש", +Preview : "תצוגה מקדימה", +Cut : "גזירה", +Copy : "העתקה", +Paste : "הדבקה", +PasteText : "הדבקה כטקסט פשוט", +PasteWord : "הדבקה מ-וורד", +Print : "הדפסה", +SelectAll : "בחירת הכל", +RemoveFormat : "הסרת העיצוב", +InsertLinkLbl : "קישור", +InsertLink : "הוספת/עריכת קישור", +RemoveLink : "הסרת הקישור", +VisitLink : "פתח קישור", +Anchor : "הוספת/עריכת נקודת עיגון", +AnchorDelete : "הסר נקודת עיגון", +InsertImageLbl : "תמונה", +InsertImage : "הוספת/עריכת תמונה", +InsertFlashLbl : "פלאש", +InsertFlash : "הוסף/ערוך פלאש", +InsertTableLbl : "טבלה", +InsertTable : "הוספת/עריכת טבלה", +InsertLineLbl : "קו", +InsertLine : "הוספת קו אופקי", +InsertSpecialCharLbl: "תו מיוחד", +InsertSpecialChar : "הוספת תו מיוחד", +InsertSmileyLbl : "סמיילי", +InsertSmiley : "הוספת סמיילי", +About : "אודות FCKeditor", +Bold : "מודגש", +Italic : "נטוי", +Underline : "קו תחתון", +StrikeThrough : "כתיב מחוק", +Subscript : "כתיב תחתון", +Superscript : "כתיב עליון", +LeftJustify : "יישור לשמאל", +CenterJustify : "מרכוז", +RightJustify : "יישור לימין", +BlockJustify : "יישור לשוליים", +DecreaseIndent : "הקטנת אינדנטציה", +IncreaseIndent : "הגדלת אינדנטציה", +Blockquote : "בלוק ציטוט", +CreateDiv : "צור מיכל(תג)DIV", +EditDiv : "ערוך מיכל (תג)DIV", +DeleteDiv : "הסר מיכל(תג) DIV", +Undo : "ביטול צעד אחרון", +Redo : "חזרה על צעד אחרון", +NumberedListLbl : "רשימה ממוספרת", +NumberedList : "הוספת/הסרת רשימה ממוספרת", +BulletedListLbl : "רשימת נקודות", +BulletedList : "הוספת/הסרת רשימת נקודות", +ShowTableBorders : "הצגת מסגרת הטבלה", +ShowDetails : "הצגת פרטים", +Style : "סגנון", +FontFormat : "עיצוב", +Font : "גופן", +FontSize : "גודל", +TextColor : "צבע טקסט", +BGColor : "צבע רקע", +Source : "מקור", +Find : "חיפוש", +Replace : "החלפה", +SpellCheck : "בדיקת איות", +UniversalKeyboard : "מקלדת אוניברסלית", +PageBreakLbl : "שבירת דף", +PageBreak : "הוסף שבירת דף", + +Form : "טופס", +Checkbox : "תיבת סימון", +RadioButton : "לחצן אפשרויות", +TextField : "שדה טקסט", +Textarea : "איזור טקסט", +HiddenField : "שדה חבוי", +Button : "כפתור", +SelectionField : "שדה בחירה", +ImageButton : "כפתור תמונה", + +FitWindow : "הגדל את גודל העורך", +ShowBlocks : "הצג בלוקים", + +// Context Menu +EditLink : "עריכת קישור", +CellCM : "תא", +RowCM : "שורה", +ColumnCM : "עמודה", +InsertRowAfter : "הוסף שורה אחרי", +InsertRowBefore : "הוסף שורה לפני", +DeleteRows : "מחיקת שורות", +InsertColumnAfter : "הוסף עמודה אחרי", +InsertColumnBefore : "הוסף עמודה לפני", +DeleteColumns : "מחיקת עמודות", +InsertCellAfter : "הוסף תא אחרי", +InsertCellBefore : "הוסף תא אחרי", +DeleteCells : "מחיקת תאים", +MergeCells : "מיזוג תאים", +MergeRight : "מזג ימינה", +MergeDown : "מזג למטה", +HorizontalSplitCell : "פצל תא אופקית", +VerticalSplitCell : "פצל תא אנכית", +TableDelete : "מחק טבלה", +CellProperties : "תכונות התא", +TableProperties : "תכונות הטבלה", +ImageProperties : "תכונות התמונה", +FlashProperties : "מאפייני פלאש", + +AnchorProp : "מאפייני נקודת עיגון", +ButtonProp : "מאפייני כפתור", +CheckboxProp : "מאפייני תיבת סימון", +HiddenFieldProp : "מאפיני שדה חבוי", +RadioButtonProp : "מאפייני לחצן אפשרויות", +ImageButtonProp : "מאפיני כפתור תמונה", +TextFieldProp : "מאפייני שדה טקסט", +SelectionFieldProp : "מאפייני שדה בחירה", +TextareaProp : "מאפיני איזור טקסט", +FormProp : "מאפיני טופס", + +FontFormats : "נורמלי;קוד;כתובת;כותרת;כותרת 2;כותרת 3;כותרת 4;כותרת 5;כותרת 6", + +// Alerts and Messages +ProcessingXHTML : "מעבד XHTML, נא להמתין...", +Done : "המשימה הושלמה", +PasteWordConfirm : "נראה הטקסט שבכוונתך להדביק מקורו בקובץ וורד. האם ברצונך לנקות אותו טרם ההדבקה?", +NotCompatiblePaste : "פעולה זו זמינה לדפדפן אינטרנט אקספלורר מגירסא 5.5 ומעלה. האם להמשיך בהדבקה ללא הניקוי?", +UnknownToolbarItem : "פריט לא ידוע בסרגל הכלים \"%1\"", +UnknownCommand : "שם פעולה לא ידוע \"%1\"", +NotImplemented : "הפקודה לא מיושמת", +UnknownToolbarSet : "ערכת סרגל הכלים \"%1\" לא קיימת", +NoActiveX : "הגדרות אבטחה של הדפדפן עלולות לגביל את אפשרויות העריכה.יש לאפשר את האופציה \"הרץ פקדים פעילים ותוספות\". תוכל לחוות טעויות וחיווים של אפשרויות שחסרים.", +BrowseServerBlocked : "לא ניתן לגשת לדפדפן משאבים.אנא וודא שחוסם חלונות הקופצים לא פעיל.", +DialogBlocked : "לא היה ניתן לפתוח חלון דיאלוג. אנא וודא שחוסם חלונות קופצים לא פעיל.", +VisitLinkBlocked : "לא ניתן לפתוח חלון חדש.נא לוודא שחוסמי החלונות הקופצים לא פעילים.", + +// Dialogs +DlgBtnOK : "אישור", +DlgBtnCancel : "ביטול", +DlgBtnClose : "סגירה", +DlgBtnBrowseServer : "סייר השרת", +DlgAdvancedTag : "אפשרויות מתקדמות", +DlgOpOther : "<אחר>", +DlgInfoTab : "מידע", +DlgAlertUrl : "אנא הזן URL", + +// General Dialogs Labels +DlgGenNotSet : "<לא נקבע>", +DlgGenId : "זיהוי (Id)", +DlgGenLangDir : "כיוון שפה", +DlgGenLangDirLtr : "שמאל לימין (LTR)", +DlgGenLangDirRtl : "ימין לשמאל (RTL)", +DlgGenLangCode : "קוד שפה", +DlgGenAccessKey : "מקש גישה", +DlgGenName : "שם", +DlgGenTabIndex : "מספר טאב", +DlgGenLongDescr : "קישור לתיאור מפורט", +DlgGenClass : "גיליונות עיצוב קבוצות", +DlgGenTitle : "כותרת מוצעת", +DlgGenContType : "Content Type מוצע", +DlgGenLinkCharset : "קידוד המשאב המקושר", +DlgGenStyle : "סגנון", + +// Image Dialog +DlgImgTitle : "תכונות התמונה", +DlgImgInfoTab : "מידע על התמונה", +DlgImgBtnUpload : "שליחה לשרת", +DlgImgURL : "כתובת (URL)", +DlgImgUpload : "העלאה", +DlgImgAlt : "טקסט חלופי", +DlgImgWidth : "רוחב", +DlgImgHeight : "גובה", +DlgImgLockRatio : "נעילת היחס", +DlgBtnResetSize : "איפוס הגודל", +DlgImgBorder : "מסגרת", +DlgImgHSpace : "מרווח אופקי", +DlgImgVSpace : "מרווח אנכי", +DlgImgAlign : "יישור", +DlgImgAlignLeft : "לשמאל", +DlgImgAlignAbsBottom: "לתחתית האבסולוטית", +DlgImgAlignAbsMiddle: "מרכוז אבסולוטי", +DlgImgAlignBaseline : "לקו התחתית", +DlgImgAlignBottom : "לתחתית", +DlgImgAlignMiddle : "לאמצע", +DlgImgAlignRight : "לימין", +DlgImgAlignTextTop : "לראש הטקסט", +DlgImgAlignTop : "למעלה", +DlgImgPreview : "תצוגה מקדימה", +DlgImgAlertUrl : "נא להקליד את כתובת התמונה", +DlgImgLinkTab : "קישור", + +// Flash Dialog +DlgFlashTitle : "מאפיני פלאש", +DlgFlashChkPlay : "נגן אוטומטי", +DlgFlashChkLoop : "לולאה", +DlgFlashChkMenu : "אפשר תפריט פלאש", +DlgFlashScale : "גודל", +DlgFlashScaleAll : "הצג הכל", +DlgFlashScaleNoBorder : "ללא גבולות", +DlgFlashScaleFit : "התאמה מושלמת", + +// Link Dialog +DlgLnkWindowTitle : "קישור", +DlgLnkInfoTab : "מידע על הקישור", +DlgLnkTargetTab : "מטרה", + +DlgLnkType : "סוג קישור", +DlgLnkTypeURL : "כתובת (URL)", +DlgLnkTypeAnchor : "עוגן בעמוד זה", +DlgLnkTypeEMail : "דוא''ל", +DlgLnkProto : "פרוטוקול", +DlgLnkProtoOther : "<אחר>", +DlgLnkURL : "כתובת (URL)", +DlgLnkAnchorSel : "בחירת עוגן", +DlgLnkAnchorByName : "עפ''י שם העוגן", +DlgLnkAnchorById : "עפ''י זיהוי (Id) הרכיב", +DlgLnkNoAnchors : "(אין עוגנים זמינים בדף)", +DlgLnkEMail : "כתובת הדוא''ל", +DlgLnkEMailSubject : "נושא ההודעה", +DlgLnkEMailBody : "גוף ההודעה", +DlgLnkUpload : "העלאה", +DlgLnkBtnUpload : "שליחה לשרת", + +DlgLnkTarget : "מטרה", +DlgLnkTargetFrame : "<מסגרת>", +DlgLnkTargetPopup : "<חלון קופץ>", +DlgLnkTargetBlank : "חלון חדש (_blank)", +DlgLnkTargetParent : "חלון האב (_parent)", +DlgLnkTargetSelf : "באותו החלון (_self)", +DlgLnkTargetTop : "חלון ראשי (_top)", +DlgLnkTargetFrameName : "שם מסגרת היעד", +DlgLnkPopWinName : "שם החלון הקופץ", +DlgLnkPopWinFeat : "תכונות החלון הקופץ", +DlgLnkPopResize : "בעל גודל ניתן לשינוי", +DlgLnkPopLocation : "סרגל כתובת", +DlgLnkPopMenu : "סרגל תפריט", +DlgLnkPopScroll : "ניתן לגלילה", +DlgLnkPopStatus : "סרגל חיווי", +DlgLnkPopToolbar : "סרגל הכלים", +DlgLnkPopFullScrn : "מסך מלא (IE)", +DlgLnkPopDependent : "תלוי (Netscape)", +DlgLnkPopWidth : "רוחב", +DlgLnkPopHeight : "גובה", +DlgLnkPopLeft : "מיקום צד שמאל", +DlgLnkPopTop : "מיקום צד עליון", + +DlnLnkMsgNoUrl : "נא להקליד את כתובת הקישור (URL)", +DlnLnkMsgNoEMail : "נא להקליד את כתובת הדוא''ל", +DlnLnkMsgNoAnchor : "נא לבחור עוגן במסמך", +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 and Replace Dialog +DlgFindAndReplaceTitle : "חפש והחלף", + +// Find Dialog +DlgFindTitle : "חיפוש", +DlgFindFindBtn : "חיפוש", +DlgFindNotFoundMsg : "הטקסט המבוקש לא נמצא.", + +// Replace Dialog +DlgReplaceTitle : "החלפה", +DlgReplaceFindLbl : "חיפוש מחרוזת:", +DlgReplaceReplaceLbl : "החלפה במחרוזת:", +DlgReplaceCaseChk : "התאמת סוג אותיות (Case)", +DlgReplaceReplaceBtn : "החלפה", +DlgReplaceReplAllBtn : "החלפה בכל העמוד", +DlgReplaceWordChk : "התאמה למילה המלאה", + +// Paste Operations / Dialog +PasteErrorCut : "הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות גזירה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+X).", +PasteErrorCopy : "הגדרות האבטחה בדפדפן שלך לא מאפשרות לעורך לבצע פעולות העתקה אוטומטיות. יש להשתמש במקלדת לשם כך (Ctrl+C).", + +PasteAsText : "הדבקה כטקסט פשוט", +PasteFromWord : "הדבקה מ-וורד", + +DlgPasteMsg2 : "אנא הדבק בתוך הקופסה באמצעות (Ctrl+V) ולחץ על אישור.", +DlgPasteSec : "עקב הגדרות אבטחה בדפדפן, לא ניתן לגשת אל לוח הגזירים (clipboard) בצורה ישירה.אנא בצע הדבק שוב בחלון זה.", +DlgPasteIgnoreFont : "התעלם מהגדרות סוג פונט", +DlgPasteRemoveStyles : "הסר הגדרות סגנון", + +// Color Picker +ColorAutomatic : "אוטומטי", +ColorMoreColors : "צבעים נוספים...", + +// Document Properties +DocProps : "מאפיני מסמך", + +// Anchor Dialog +DlgAnchorTitle : "מאפיני נקודת עיגון", +DlgAnchorName : "שם לנקודת עיגון", +DlgAnchorErrorName : "אנא הזן שם לנקודת עיגון", + +// Speller Pages Dialog +DlgSpellNotInDic : "לא נמצא במילון", +DlgSpellChangeTo : "שנה ל", +DlgSpellBtnIgnore : "התעלם", +DlgSpellBtnIgnoreAll : "התעלם מהכל", +DlgSpellBtnReplace : "החלף", +DlgSpellBtnReplaceAll : "החלף הכל", +DlgSpellBtnUndo : "החזר", +DlgSpellNoSuggestions : "- אין הצעות -", +DlgSpellProgress : "בדיקות איות בתהליך ....", +DlgSpellNoMispell : "בדיקות איות הסתיימה: לא נמצאו שגיעות כתיב", +DlgSpellNoChanges : "בדיקות איות הסתיימה: לא שונתה אף מילה", +DlgSpellOneChange : "בדיקות איות הסתיימה: שונתה מילה אחת", +DlgSpellManyChanges : "בדיקות איות הסתיימה: %1 מילים שונו", + +IeSpellDownload : "בודק האיות לא מותקן, האם אתה מעוניין להוריד?", + +// Button Dialog +DlgButtonText : "טקסט (ערך)", +DlgButtonType : "סוג", +DlgButtonTypeBtn : "כפתור", +DlgButtonTypeSbm : "שלח", +DlgButtonTypeRst : "אפס", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "שם", +DlgCheckboxValue : "ערך", +DlgCheckboxSelected : "בחור", + +// Form Dialog +DlgFormName : "שם", +DlgFormAction : "שלח אל", +DlgFormMethod : "סוג שליחה", + +// Select Field Dialog +DlgSelectName : "שם", +DlgSelectValue : "ערך", +DlgSelectSize : "גודל", +DlgSelectLines : "שורות", +DlgSelectChkMulti : "אפשר בחירות מרובות", +DlgSelectOpAvail : "אפשרויות זמינות", +DlgSelectOpText : "טקסט", +DlgSelectOpValue : "ערך", +DlgSelectBtnAdd : "הוסף", +DlgSelectBtnModify : "שנה", +DlgSelectBtnUp : "למעלה", +DlgSelectBtnDown : "למטה", +DlgSelectBtnSetValue : "קבע כברירת מחדל", +DlgSelectBtnDelete : "מחק", + +// Textarea Dialog +DlgTextareaName : "שם", +DlgTextareaCols : "עמודות", +DlgTextareaRows : "שורות", + +// Text Field Dialog +DlgTextName : "שם", +DlgTextValue : "ערך", +DlgTextCharWidth : "רוחב באותיות", +DlgTextMaxChars : "מקסימות אותיות", +DlgTextType : "סוג", +DlgTextTypeText : "טקסט", +DlgTextTypePass : "סיסמה", + +// Hidden Field Dialog +DlgHiddenName : "שם", +DlgHiddenValue : "ערך", + +// Bulleted List Dialog +BulletedListProp : "מאפייני רשימה", +NumberedListProp : "מאפייני רשימה ממוספרת", +DlgLstStart : "התחלה", +DlgLstType : "סוג", +DlgLstTypeCircle : "עיגול", +DlgLstTypeDisc : "דיסק", +DlgLstTypeSquare : "מרובע", +DlgLstTypeNumbers : "מספרים (1, 2, 3)", +DlgLstTypeLCase : "אותיות קטנות (a, b, c)", +DlgLstTypeUCase : "אותיות גדולות (A, B, C)", +DlgLstTypeSRoman : "ספרות רומאיות קטנות (i, ii, iii)", +DlgLstTypeLRoman : "ספרות רומאיות גדולות (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "כללי", +DlgDocBackTab : "רקע", +DlgDocColorsTab : "צבעים וגבולות", +DlgDocMetaTab : "נתוני META", + +DlgDocPageTitle : "כותרת דף", +DlgDocLangDir : "כיוון שפה", +DlgDocLangDirLTR : "שמאל לימין (LTR)", +DlgDocLangDirRTL : "ימין לשמאל (RTL)", +DlgDocLangCode : "קוד שפה", +DlgDocCharSet : "קידוד אותיות", +DlgDocCharSetCE : "מרכז אירופה", +DlgDocCharSetCT : "סיני מסורתי (Big5)", +DlgDocCharSetCR : "קירילי", +DlgDocCharSetGR : "יוונית", +DlgDocCharSetJP : "יפנית", +DlgDocCharSetKR : "קוראנית", +DlgDocCharSetTR : "טורקית", +DlgDocCharSetUN : "יוני קוד (UTF-8)", +DlgDocCharSetWE : "מערב אירופה", +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 : "אודות", +DlgAboutBrowserInfoTab : "גירסת דפדפן", +DlgAboutLicenseTab : "רשיון", +DlgAboutVersion : "גירסא", +DlgAboutInfo : "מידע נוסף ניתן למצוא כאן:", + +// Div Dialog +DlgDivGeneralTab : "כללי", +DlgDivAdvancedTab : "מתקדם", +DlgDivStyle : "סגנון", +DlgDivInlineStyle : "סגנון בתוך השורה" +}; diff --git a/fckeditor/editor/lang/hi.js b/fckeditor/editor/lang/hi.js new file mode 100644 index 0000000..52dacde --- /dev/null +++ b/fckeditor/editor/lang/hi.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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 : "लिंक हटायें", +VisitLink : "लिंक खोलें", +Anchor : "ऐंकर इन्सर्ट/संपादन", +AnchorDelete : "ऐंकर हटायें", +InsertImageLbl : "तस्वीर", +InsertImage : "तस्वीर इन्सर्ट/संपादन", +InsertFlashLbl : "फ़्लैश", +InsertFlash : "फ़्लैश इन्सर्ट/संपादन", +InsertTableLbl : "टेबल", +InsertTable : "टेबल इन्सर्ट/संपादन", +InsertLineLbl : "रेखा", +InsertLine : "हॉरिज़ॉन्टल रेखा इन्सर्ट करें", +InsertSpecialCharLbl: "विशेष करॅक्टर", +InsertSpecialChar : "विशेष करॅक्टर इन्सर्ट करें", +InsertSmileyLbl : "स्माइली", +InsertSmiley : "स्माइली इन्सर्ट करें", +About : "FCKeditor के बारे में", +Bold : "बोल्ड", +Italic : "इटैलिक", +Underline : "रेखांकण", +StrikeThrough : "स्ट्राइक थ्रू", +Subscript : "अधोलेख", +Superscript : "अभिलेख", +LeftJustify : "बायीं तरफ", +CenterJustify : "बीच में", +RightJustify : "दायीं तरफ", +BlockJustify : "ब्लॉक जस्टीफ़ाई", +DecreaseIndent : "इन्डॅन्ट कम करें", +IncreaseIndent : "इन्डॅन्ट बढ़ायें", +Blockquote : "ब्लॉक-कोट", +CreateDiv : "डिव (Div) कन्टेनर बनायें", +EditDiv : "डिव (Div) कन्टेनर बदलें", +DeleteDiv : "डिव कन्टेनर हटायें", +Undo : "अन्डू", +Redo : "रीडू", +NumberedListLbl : "अंकीय सूची", +NumberedList : "अंकीय सूची इन्सर्ट/संपादन", +BulletedListLbl : "बुलॅट सूची", +BulletedList : "बुलॅट सूची इन्सर्ट/संपादन", +ShowTableBorders : "टेबल बॉर्डरयें दिखायें", +ShowDetails : "ज्यादा दिखायें", +Style : "स्टाइल", +FontFormat : "फ़ॉर्मैट", +Font : "फ़ॉन्ट", +FontSize : "साइज़", +TextColor : "टेक्स्ट रंग", +BGColor : "बैक्ग्राउन्ड रंग", +Source : "सोर्स", +Find : "खोजें", +Replace : "रीप्लेस", +SpellCheck : "वर्तनी (स्पेलिंग) जाँच", +UniversalKeyboard : "यूनीवर्सल कीबोर्ड", +PageBreakLbl : "पेज ब्रेक", +PageBreak : "पेज ब्रेक इन्सर्ट् करें", + +Form : "फ़ॉर्म", +Checkbox : "चॅक बॉक्स", +RadioButton : "रेडिओ बटन", +TextField : "टेक्स्ट फ़ील्ड", +Textarea : "टेक्स्ट एरिया", +HiddenField : "गुप्त फ़ील्ड", +Button : "बटन", +SelectionField : "चुनाव फ़ील्ड", +ImageButton : "तस्वीर बटन", + +FitWindow : "एडिटर साइज़ को चरम सीमा तक बढ़ायें", +ShowBlocks : "ब्लॉक दिखायें", + +// Context Menu +EditLink : "लिंक संपादन", +CellCM : "खाना", +RowCM : "पंक्ति", +ColumnCM : "कालम", +InsertRowAfter : "बाद में पंक्ति डालें", +InsertRowBefore : "पहले पंक्ति डालें", +DeleteRows : "पंक्तियाँ डिलीट करें", +InsertColumnAfter : "बाद में कालम डालें", +InsertColumnBefore : "पहले कालम डालें", +DeleteColumns : "कालम डिलीट करें", +InsertCellAfter : "बाद में सैल डालें", +InsertCellBefore : "पहले सैल डालें", +DeleteCells : "सैल डिलीट करें", +MergeCells : "सैल मिलायें", +MergeRight : "बाँया विलय", +MergeDown : "नीचे विलय करें", +HorizontalSplitCell : "सैल को क्षैतिज स्थिति में विभाजित करें", +VerticalSplitCell : "सैल को लम्बाकार में विभाजित करें", +TableDelete : "टेबल डिलीट करें", +CellProperties : "सैल प्रॉपर्टीज़", +TableProperties : "टेबल प्रॉपर्टीज़", +ImageProperties : "तस्वीर प्रॉपर्टीज़", +FlashProperties : "फ़्लैश प्रॉपर्टीज़", + +AnchorProp : "ऐंकर प्रॉपर्टीज़", +ButtonProp : "बटन प्रॉपर्टीज़", +CheckboxProp : "चॅक बॉक्स प्रॉपर्टीज़", +HiddenFieldProp : "गुप्त फ़ील्ड प्रॉपर्टीज़", +RadioButtonProp : "रेडिओ बटन प्रॉपर्टीज़", +ImageButtonProp : "तस्वीर बटन प्रॉपर्टीज़", +TextFieldProp : "टेक्स्ट फ़ील्ड प्रॉपर्टीज़", +SelectionFieldProp : "चुनाव फ़ील्ड प्रॉपर्टीज़", +TextareaProp : "टेक्स्त एरिया प्रॉपर्टीज़", +FormProp : "फ़ॉर्म प्रॉपर्टीज़", + +FontFormats : "साधारण;फ़ॉर्मैटॅड;पता;शीर्षक 1;शीर्षक 2;शीर्षक 3;शीर्षक 4;शीर्षक 5;शीर्षक 6;शीर्षक (DIV)", + +// Alerts and Messages +ProcessingXHTML : "XHTML प्रोसॅस हो रहा है। ज़रा ठहरें...", +Done : "पूरा हुआ", +PasteWordConfirm : "आप जो टेक्स्ट पेस्ट करना चाहते हैं, वह वर्ड से कॉपी किया हुआ लग रहा है। क्या पेस्ट करने से पहले आप इसे साफ़ करना चाहेंगे?", +NotCompatiblePaste : "यह कमांड इन्टरनॅट एक्स्प्लोरर(Internet Explorer) 5.5 या उसके बाद के वर्ज़न के लिए ही उपलब्ध है। क्या आप बिना साफ़ किए पेस्ट करना चाहेंगे?", +UnknownToolbarItem : "अनजान टूलबार आइटम \"%1\"", +UnknownCommand : "अनजान कमान्ड \"%1\"", +NotImplemented : "कमान्ड इम्प्लीमॅन्ट नहीं किया गया है", +UnknownToolbarSet : "टूलबार सॅट \"%1\" उपलब्ध नहीं है", +NoActiveX : "आपके ब्राउज़र् की सुरक्शा सेटिंग्स् एडिटर की कुछ् फ़ीचरों को सीमित कर् सकती हैं। क्रिपया \"Run ActiveX controls and plug-ins\" विकल्प को एनेबल करें. आपको एरर्स् और गायब फ़ीचर्स् का अनुभव हो सकता है।", +BrowseServerBlocked : "रिसोर्सेज़ ब्राउज़र् नहीं खोला जा सका। क्रिपया सभी पॉप्-अप् ब्लॉकर्स् को निष्क्रिय करें।", +DialogBlocked : "डायलग विन्डो नहीं खोला जा सका। क्रिपया सभी पॉप्-अप् ब्लॉकर्स् को निष्क्रिय करें।", +VisitLinkBlocked : "नया विन्डो नहीं खोला जा सका। क्रिपया सभी पॉप्-अप् ब्लॉकर्स् को निष्क्रिय करें।", + +// Dialogs +DlgBtnOK : "ठीक है", +DlgBtnCancel : "रद्द करें", +DlgBtnClose : "बन्द करें", +DlgBtnBrowseServer : "सर्वर ब्राउज़ करें", +DlgAdvancedTag : "ऍड्वान्स्ड", +DlgOpOther : "<अन्य>", +DlgInfoTab : "सूचना", +DlgAlertUrl : "URL इन्सर्ट करें", + +// General Dialogs Labels +DlgGenNotSet : "<सॅट नहीं>", +DlgGenId : "Id", +DlgGenLangDir : "भाषा लिखने की दिशा", +DlgGenLangDirLtr : "बायें से दायें (LTR)", +DlgGenLangDirRtl : "दायें से बायें (RTL)", +DlgGenLangCode : "भाषा कोड", +DlgGenAccessKey : "ऍक्सॅस की", +DlgGenName : "नाम", +DlgGenTabIndex : "टैब इन्डॅक्स", +DlgGenLongDescr : "अधिक विवरण के लिए URL", +DlgGenClass : "स्टाइल-शीट क्लास", +DlgGenTitle : "परामर्श शीर्शक", +DlgGenContType : "परामर्श कन्टॅन्ट प्रकार", +DlgGenLinkCharset : "लिंक रिसोर्स करॅक्टर सॅट", +DlgGenStyle : "स्टाइल", + +// Image Dialog +DlgImgTitle : "तस्वीर प्रॉपर्टीज़", +DlgImgInfoTab : "तस्वीर की जानकारी", +DlgImgBtnUpload : "इसे सर्वर को भेजें", +DlgImgURL : "URL", +DlgImgUpload : "अपलोड", +DlgImgAlt : "वैकल्पिक टेक्स्ट", +DlgImgWidth : "चौड़ाई", +DlgImgHeight : "ऊँचाई", +DlgImgLockRatio : "लॉक अनुपात", +DlgBtnResetSize : "रीसॅट साइज़", +DlgImgBorder : "बॉर्डर", +DlgImgHSpace : "हॉरिज़ॉन्टल स्पेस", +DlgImgVSpace : "वर्टिकल स्पेस", +DlgImgAlign : "ऍलाइन", +DlgImgAlignLeft : "दायें", +DlgImgAlignAbsBottom: "Abs नीचे", +DlgImgAlignAbsMiddle: "Abs ऊपर", +DlgImgAlignBaseline : "मूल रेखा", +DlgImgAlignBottom : "नीचे", +DlgImgAlignMiddle : "मध्य", +DlgImgAlignRight : "दायें", +DlgImgAlignTextTop : "टेक्स्ट ऊपर", +DlgImgAlignTop : "ऊपर", +DlgImgPreview : "प्रीव्यू", +DlgImgAlertUrl : "तस्वीर का URL टाइप करें ", +DlgImgLinkTab : "लिंक", + +// Flash Dialog +DlgFlashTitle : "फ़्लैश प्रॉपर्टीज़", +DlgFlashChkPlay : "ऑटो प्ले", +DlgFlashChkLoop : "लूप", +DlgFlashChkMenu : "फ़्लैश मॅन्यू का प्रयोग करें", +DlgFlashScale : "स्केल", +DlgFlashScaleAll : "सभी दिखायें", +DlgFlashScaleNoBorder : "कोई बॉर्डर नहीं", +DlgFlashScaleFit : "बिल्कुल फ़िट", + +// Link Dialog +DlgLnkWindowTitle : "लिंक", +DlgLnkInfoTab : "लिंक ", +DlgLnkTargetTab : "टार्गेट", + +DlgLnkType : "लिंक प्रकार", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "इस पेज का ऐंकर", +DlgLnkTypeEMail : "ई-मेल", +DlgLnkProto : "प्रोटोकॉल", +DlgLnkProtoOther : "<अन्य>", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "ऐंकर चुनें", +DlgLnkAnchorByName : "ऐंकर नाम से", +DlgLnkAnchorById : "ऍलीमॅन्ट Id से", +DlgLnkNoAnchors : "(डॉक्यूमॅन्ट में ऐंकर्स की संख्या)", +DlgLnkEMail : "ई-मेल पता", +DlgLnkEMailSubject : "संदेश विषय", +DlgLnkEMailBody : "संदेश", +DlgLnkUpload : "अपलोड", +DlgLnkBtnUpload : "इसे सर्वर को भेजें", + +DlgLnkTarget : "टार्गेट", +DlgLnkTargetFrame : "<फ़्रेम>", +DlgLnkTargetPopup : "<पॉप-अप विन्डो>", +DlgLnkTargetBlank : "नया विन्डो (_blank)", +DlgLnkTargetParent : "मूल विन्डो (_parent)", +DlgLnkTargetSelf : "इसी विन्डो (_self)", +DlgLnkTargetTop : "शीर्ष विन्डो (_top)", +DlgLnkTargetFrameName : "टार्गेट फ़्रेम का नाम", +DlgLnkPopWinName : "पॉप-अप विन्डो का नाम", +DlgLnkPopWinFeat : "पॉप-अप विन्डो फ़ीचर्स", +DlgLnkPopResize : "साइज़ बदला जा सकता है", +DlgLnkPopLocation : "लोकेशन बार", +DlgLnkPopMenu : "मॅन्यू बार", +DlgLnkPopScroll : "स्क्रॉल बार", +DlgLnkPopStatus : "स्टेटस बार", +DlgLnkPopToolbar : "टूल बार", +DlgLnkPopFullScrn : "फ़ुल स्क्रीन (IE)", +DlgLnkPopDependent : "डिपेन्डॅन्ट (Netscape)", +DlgLnkPopWidth : "चौड़ाई", +DlgLnkPopHeight : "ऊँचाई", +DlgLnkPopLeft : "बायीं तरफ", +DlgLnkPopTop : "दायीं तरफ", + +DlnLnkMsgNoUrl : "लिंक URL टाइप करें", +DlnLnkMsgNoEMail : "ई-मेल पता टाइप करें", +DlnLnkMsgNoAnchor : "ऐंकर चुनें", +DlnLnkMsgInvPopName : "पॉप-अप का नाम अल्फाबेट से शुरू होना चाहिये और उसमें स्पेस नहीं होने चाहिए", + +// Color Dialog +DlgColorTitle : "रंग चुनें", +DlgColorBtnClear : "साफ़ करें", +DlgColorHighlight : "हाइलाइट", +DlgColorSelected : "सॅलॅक्टॅड", + +// Smiley Dialog +DlgSmileyTitle : "स्माइली इन्सर्ट करें", + +// Special Character Dialog +DlgSpecialCharTitle : "विशेष करॅक्टर चुनें", + +// Table Dialog +DlgTableTitle : "टेबल प्रॉपर्टीज़", +DlgTableRows : "पंक्तियाँ", +DlgTableColumns : "कालम", +DlgTableBorder : "बॉर्डर साइज़", +DlgTableAlign : "ऍलाइन्मॅन्ट", +DlgTableAlignNotSet : "<सॅट नहीं>", +DlgTableAlignLeft : "दायें", +DlgTableAlignCenter : "बीच में", +DlgTableAlignRight : "बायें", +DlgTableWidth : "चौड़ाई", +DlgTableWidthPx : "पिक्सैल", +DlgTableWidthPc : "प्रतिशत", +DlgTableHeight : "ऊँचाई", +DlgTableCellSpace : "सैल अंतर", +DlgTableCellPad : "सैल पैडिंग", +DlgTableCaption : "शीर्षक", +DlgTableSummary : "सारांश", + +// 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 and Replace Dialog +DlgFindAndReplaceTitle : "खोजें और बदलें", + +// Find Dialog +DlgFindTitle : "खोजें", +DlgFindFindBtn : "खोजें", +DlgFindNotFoundMsg : "आपके द्वारा दिया गया टेक्स्ट नहीं मिला", + +// Replace Dialog +DlgReplaceTitle : "रिप्लेस", +DlgReplaceFindLbl : "यह खोजें:", +DlgReplaceReplaceLbl : "इससे रिप्लेस करें:", +DlgReplaceCaseChk : "केस मिलायें", +DlgReplaceReplaceBtn : "रिप्लेस", +DlgReplaceReplAllBtn : "सभी रिप्लेस करें", +DlgReplaceWordChk : "पूरा शब्द मिलायें", + +// Paste Operations / Dialog +PasteErrorCut : "आपके ब्राउज़र की सुरक्षा सॅटिन्ग्स ने कट करने की अनुमति नहीं प्रदान की है। (Ctrl+X) का प्रयोग करें।", +PasteErrorCopy : "आपके ब्राआउज़र की सुरक्षा सॅटिन्ग्स ने कॉपी करने की अनुमति नहीं प्रदान की है। (Ctrl+C) का प्रयोग करें।", + +PasteAsText : "पेस्ट (सादा टॅक्स्ट)", +PasteFromWord : "पेस्ट (वर्ड से)", + +DlgPasteMsg2 : "Ctrl+V का प्रयोग करके पेस्ट करें और ठीक है करें.", +DlgPasteSec : "आपके ब्राउज़र की सुरक्षा आपके ब्राउज़र की सुरKश सैटिंग के कारण, एडिटर आपके क्लिपबोर्ड डेटा को नहीं पा सकता है. आपको उसे इस विन्डो में दोबारा पेस्ट करना होगा.", +DlgPasteIgnoreFont : "फ़ॉन्ट परिभाषा निकालें", +DlgPasteRemoveStyles : "स्टाइल परिभाषा निकालें", + +// Color Picker +ColorAutomatic : "स्वचालित", +ColorMoreColors : "और रंग...", + +// Document Properties +DocProps : "डॉक्यूमॅन्ट प्रॉपर्टीज़", + +// Anchor Dialog +DlgAnchorTitle : "ऐंकर प्रॉपर्टीज़", +DlgAnchorName : "ऐंकर का नाम", +DlgAnchorErrorName : "ऐंकर का नाम टाइप करें", + +// Speller Pages Dialog +DlgSpellNotInDic : "शब्दकोश में नहीं", +DlgSpellChangeTo : "इसमें बदलें", +DlgSpellBtnIgnore : "इग्नोर", +DlgSpellBtnIgnoreAll : "सभी इग्नोर करें", +DlgSpellBtnReplace : "रिप्लेस", +DlgSpellBtnReplaceAll : "सभी रिप्लेस करें", +DlgSpellBtnUndo : "अन्डू", +DlgSpellNoSuggestions : "- कोई सुझाव नहीं -", +DlgSpellProgress : "वर्तनी की जाँच (स्पॅल-चॅक) जारी है...", +DlgSpellNoMispell : "वर्तनी की जाँच : कोई गलत वर्तनी (स्पॅलिंग) नहीं पाई गई", +DlgSpellNoChanges : "वर्तनी की जाँच :कोई शब्द नहीं बदला गया", +DlgSpellOneChange : "वर्तनी की जाँच : एक शब्द बदला गया", +DlgSpellManyChanges : "वर्तनी की जाँच : %1 शब्द बदले गये", + +IeSpellDownload : "स्पॅल-चॅकर इन्स्टाल नहीं किया गया है। क्या आप इसे डा‌उनलोड करना चाहेंगे?", + +// Button Dialog +DlgButtonText : "टेक्स्ट (वैल्यू)", +DlgButtonType : "प्रकार", +DlgButtonTypeBtn : "बटन", +DlgButtonTypeSbm : "सब्मिट", +DlgButtonTypeRst : "रिसेट", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "नाम", +DlgCheckboxValue : "वैल्यू", +DlgCheckboxSelected : "सॅलॅक्टॅड", + +// Form Dialog +DlgFormName : "नाम", +DlgFormAction : "क्रिया", +DlgFormMethod : "तरीका", + +// Select Field Dialog +DlgSelectName : "नाम", +DlgSelectValue : "वैल्यू", +DlgSelectSize : "साइज़", +DlgSelectLines : "पंक्तियाँ", +DlgSelectChkMulti : "एक से ज्यादा विकल्प चुनने दें", +DlgSelectOpAvail : "उपलब्ध विकल्प", +DlgSelectOpText : "टेक्स्ट", +DlgSelectOpValue : "वैल्यू", +DlgSelectBtnAdd : "जोड़ें", +DlgSelectBtnModify : "बदलें", +DlgSelectBtnUp : "ऊपर", +DlgSelectBtnDown : "नीचे", +DlgSelectBtnSetValue : "चुनी गई वैल्यू सॅट करें", +DlgSelectBtnDelete : "डिलीट", + +// Textarea Dialog +DlgTextareaName : "नाम", +DlgTextareaCols : "कालम", +DlgTextareaRows : "पंक्तियां", + +// Text Field Dialog +DlgTextName : "नाम", +DlgTextValue : "वैल्यू", +DlgTextCharWidth : "करॅक्टर की चौढ़ाई", +DlgTextMaxChars : "अधिकतम करॅक्टर", +DlgTextType : "टाइप", +DlgTextTypeText : "टेक्स्ट", +DlgTextTypePass : "पास्वर्ड", + +// Hidden Field Dialog +DlgHiddenName : "नाम", +DlgHiddenValue : "वैल्यू", + +// Bulleted List Dialog +BulletedListProp : "बुलॅट सूची प्रॉपर्टीज़", +NumberedListProp : "अंकीय सूची प्रॉपर्टीज़", +DlgLstStart : "प्रारम्भ", +DlgLstType : "प्रकार", +DlgLstTypeCircle : "गोल", +DlgLstTypeDisc : "डिस्क", +DlgLstTypeSquare : "चौकॊण", +DlgLstTypeNumbers : "अंक (1, 2, 3)", +DlgLstTypeLCase : "छोटे अक्षर (a, b, c)", +DlgLstTypeUCase : "बड़े अक्षर (A, B, C)", +DlgLstTypeSRoman : "छोटे रोमन अंक (i, ii, iii)", +DlgLstTypeLRoman : "बड़े रोमन अंक (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "आम", +DlgDocBackTab : "बैक्ग्राउन्ड", +DlgDocColorsTab : "रंग और मार्जिन", +DlgDocMetaTab : "मॅटाडेटा", + +DlgDocPageTitle : "पेज शीर्षक", +DlgDocLangDir : "भाषा लिखने की दिशा", +DlgDocLangDirLTR : "बायें से दायें (LTR)", +DlgDocLangDirRTL : "दायें से बायें (RTL)", +DlgDocLangCode : "भाषा कोड", +DlgDocCharSet : "करेक्टर सॅट ऍन्कोडिंग", +DlgDocCharSetCE : "मध्य यूरोपीय (Central European)", +DlgDocCharSetCT : "चीनी (Chinese Traditional Big5)", +DlgDocCharSetCR : "सिरीलिक (Cyrillic)", +DlgDocCharSetGR : "यवन (Greek)", +DlgDocCharSetJP : "जापानी (Japanese)", +DlgDocCharSetKR : "कोरीयन (Korean)", +DlgDocCharSetTR : "तुर्की (Turkish)", +DlgDocCharSetUN : "यूनीकोड (UTF-8)", +DlgDocCharSetWE : "पश्चिम यूरोपीय (Western European)", +DlgDocCharSetOther : "अन्य करेक्टर सॅट ऍन्कोडिंग", + +DlgDocDocType : "डॉक्यूमॅन्ट प्रकार शीर्षक", +DlgDocDocTypeOther : "अन्य डॉक्यूमॅन्ट प्रकार शीर्षक", +DlgDocIncXHTML : "XHTML सूचना सम्मिलित करें", +DlgDocBgColor : "बैक्ग्राउन्ड रंग", +DlgDocBgImage : "बैक्ग्राउन्ड तस्वीर URL", +DlgDocBgNoScroll : "स्क्रॉल न करने वाला बैक्ग्राउन्ड", +DlgDocCText : "टेक्स्ट", +DlgDocCLink : "लिंक", +DlgDocCVisited : "विज़िट किया गया लिंक", +DlgDocCActive : "सक्रिय लिंक", +DlgDocMargins : "पेज मार्जिन", +DlgDocMaTop : "ऊपर", +DlgDocMaLeft : "बायें", +DlgDocMaRight : "दायें", +DlgDocMaBottom : "नीचे", +DlgDocMeIndex : "डॉक्युमॅन्ट इन्डेक्स संकेतशब्द (अल्पविराम से अलग करें)", +DlgDocMeDescr : "डॉक्यूमॅन्ट करॅक्टरन", +DlgDocMeAuthor : "लेखक", +DlgDocMeCopy : "कॉपीराइट", +DlgDocPreview : "प्रीव्यू", + +// Templates Dialog +Templates : "टॅम्प्लेट", +DlgTemplatesTitle : "कन्टेन्ट टॅम्प्लेट", +DlgTemplatesSelMsg : "ऍडिटर में ओपन करने हेतु टॅम्प्लेट चुनें(वर्तमान कन्टॅन्ट सेव नहीं होंगे):", +DlgTemplatesLoading : "टॅम्प्लेट सूची लोड की जा रही है। ज़रा ठहरें...", +DlgTemplatesNoTpl : "(कोई टॅम्प्लेट डिफ़ाइन नहीं किया गया है)", +DlgTemplatesReplace : "मूल शब्दों को बदलें", + +// About Dialog +DlgAboutAboutTab : "FCKEditor के बारे में", +DlgAboutBrowserInfoTab : "ब्राउज़र के बारे में", +DlgAboutLicenseTab : "लाइसैन्स", +DlgAboutVersion : "वर्ज़न", +DlgAboutInfo : "अधिक जानकारी के लिये यहाँ जायें:", + +// Div Dialog +DlgDivGeneralTab : "सामान्य", +DlgDivAdvancedTab : "एड्वान्स्ड", +DlgDivStyle : "स्टाइल", +DlgDivInlineStyle : "इनलाइन स्टाइल" +}; diff --git a/fckeditor/editor/lang/hr.js b/fckeditor/editor/lang/hr.js new file mode 100644 index 0000000..4601e96 --- /dev/null +++ b/fckeditor/editor/lang/hr.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Croatian language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Smanji trake s alatima", +ToolbarExpand : "Proširi trake s alatima", + +// Toolbar Items and Context Menu +Save : "Snimi", +NewPage : "Nova stranica", +Preview : "Pregledaj", +Cut : "Izreži", +Copy : "Kopiraj", +Paste : "Zalijepi", +PasteText : "Zalijepi kao čisti tekst", +PasteWord : "Zalijepi iz Worda", +Print : "Ispiši", +SelectAll : "Odaberi sve", +RemoveFormat : "Ukloni formatiranje", +InsertLinkLbl : "Link", +InsertLink : "Ubaci/promijeni link", +RemoveLink : "Ukloni link", +VisitLink : "Otvori link", +Anchor : "Ubaci/promijeni sidro", +AnchorDelete : "Ukloni sidro", +InsertImageLbl : "Slika", +InsertImage : "Ubaci/promijeni sliku", +InsertFlashLbl : "Flash", +InsertFlash : "Ubaci/promijeni Flash", +InsertTableLbl : "Tablica", +InsertTable : "Ubaci/promijeni tablicu", +InsertLineLbl : "Linija", +InsertLine : "Ubaci vodoravnu liniju", +InsertSpecialCharLbl: "Posebni karakteri", +InsertSpecialChar : "Ubaci posebne znakove", +InsertSmileyLbl : "Smješko", +InsertSmiley : "Ubaci smješka", +About : "O FCKeditoru", +Bold : "Podebljaj", +Italic : "Ukosi", +Underline : "Potcrtano", +StrikeThrough : "Precrtano", +Subscript : "Subscript", +Superscript : "Superscript", +LeftJustify : "Lijevo poravnanje", +CenterJustify : "Središnje poravnanje", +RightJustify : "Desno poravnanje", +BlockJustify : "Blok poravnanje", +DecreaseIndent : "Pomakni ulijevo", +IncreaseIndent : "Pomakni udesno", +Blockquote : "Blockquote", +CreateDiv : "Napravi Div kontejner", +EditDiv : "Uredi Div kontejner", +DeleteDiv : "Ukloni Div kontejner", +Undo : "Poništi", +Redo : "Ponovi", +NumberedListLbl : "Brojčana lista", +NumberedList : "Ubaci/ukloni brojčanu listu", +BulletedListLbl : "Obična lista", +BulletedList : "Ubaci/ukloni običnu listu", +ShowTableBorders : "Prikaži okvir tablice", +ShowDetails : "Prikaži detalje", +Style : "Stil", +FontFormat : "Format", +Font : "Font", +FontSize : "Veličina", +TextColor : "Boja teksta", +BGColor : "Boja pozadine", +Source : "Kôd", +Find : "Pronađi", +Replace : "Zamijeni", +SpellCheck : "Provjeri pravopis", +UniversalKeyboard : "Univerzalna tipkovnica", +PageBreakLbl : "Prijelom stranice", +PageBreak : "Ubaci prijelom stranice", + +Form : "Form", +Checkbox : "Checkbox", +RadioButton : "Radio Button", +TextField : "Text Field", +Textarea : "Textarea", +HiddenField : "Hidden Field", +Button : "Button", +SelectionField : "Selection Field", +ImageButton : "Image Button", + +FitWindow : "Povećaj veličinu editora", +ShowBlocks : "Prikaži blokove", + +// Context Menu +EditLink : "Promijeni link", +CellCM : "Ćelija", +RowCM : "Red", +ColumnCM : "Kolona", +InsertRowAfter : "Ubaci red poslije", +InsertRowBefore : "Ubaci red prije", +DeleteRows : "Izbriši redove", +InsertColumnAfter : "Ubaci kolonu poslije", +InsertColumnBefore : "Ubaci kolonu prije", +DeleteColumns : "Izbriši kolone", +InsertCellAfter : "Ubaci ćeliju poslije", +InsertCellBefore : "Ubaci ćeliju prije", +DeleteCells : "Izbriši ćelije", +MergeCells : "Spoji ćelije", +MergeRight : "Spoji desno", +MergeDown : "Spoji dolje", +HorizontalSplitCell : "Podijeli ćeliju vodoravno", +VerticalSplitCell : "Podijeli ćeliju okomito", +TableDelete : "Izbriši tablicu", +CellProperties : "Svojstva ćelije", +TableProperties : "Svojstva tablice", +ImageProperties : "Svojstva slike", +FlashProperties : "Flash svojstva", + +AnchorProp : "Svojstva sidra", +ButtonProp : "Image Button svojstva", +CheckboxProp : "Checkbox svojstva", +HiddenFieldProp : "Hidden Field svojstva", +RadioButtonProp : "Radio Button svojstva", +ImageButtonProp : "Image Button svojstva", +TextFieldProp : "Text Field svojstva", +SelectionFieldProp : "Selection svojstva", +TextareaProp : "Textarea svojstva", +FormProp : "Form svojstva", + +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Obrađujem XHTML. Molimo pričekajte...", +Done : "Završio", +PasteWordConfirm : "Tekst koji želite zalijepiti čini se da je kopiran iz Worda. Želite li prije očistiti tekst?", +NotCompatiblePaste : "Ova naredba je dostupna samo u Internet Exploreru 5.5 ili novijem. Želite li nastaviti bez čišćenja?", +UnknownToolbarItem : "Nepoznati član trake s alatima \"%1\"", +UnknownCommand : "Nepoznata naredba \"%1\"", +NotImplemented : "Naredba nije implementirana", +UnknownToolbarSet : "Traka s alatima \"%1\" ne postoji", +NoActiveX : "Vaše postavke pretraživača mogle bi ograničiti neke od mogućnosti editora. Morate uključiti opciju \"Run ActiveX controls and plug-ins\" u postavkama. Ukoliko to ne učinite, moguće su razliite greške tijekom rada.", +BrowseServerBlocked : "Pretraivač nije moguće otvoriti. Provjerite da li je uključeno blokiranje pop-up prozora.", +DialogBlocked : "Nije moguće otvoriti novi prozor. Provjerite da li je uključeno blokiranje pop-up prozora.", +VisitLinkBlocked : "Nije moguće otvoriti novi prozor. Provjerite da li je uključeno blokiranje pop-up prozora.", + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Poništi", +DlgBtnClose : "Zatvori", +DlgBtnBrowseServer : "Pretraži server", +DlgAdvancedTag : "Napredno", +DlgOpOther : "", +DlgInfoTab : "Info", +DlgAlertUrl : "Molimo unesite URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Smjer jezika", +DlgGenLangDirLtr : "S lijeva na desno (LTR)", +DlgGenLangDirRtl : "S desna na lijevo (RTL)", +DlgGenLangCode : "Kôd jezika", +DlgGenAccessKey : "Pristupna tipka", +DlgGenName : "Naziv", +DlgGenTabIndex : "Tab Indeks", +DlgGenLongDescr : "Dugački opis URL", +DlgGenClass : "Stylesheet klase", +DlgGenTitle : "Advisory naslov", +DlgGenContType : "Advisory vrsta sadržaja", +DlgGenLinkCharset : "Kodna stranica povezanih resursa", +DlgGenStyle : "Stil", + +// Image Dialog +DlgImgTitle : "Svojstva slika", +DlgImgInfoTab : "Info slike", +DlgImgBtnUpload : "Pošalji na server", +DlgImgURL : "URL", +DlgImgUpload : "Pošalji", +DlgImgAlt : "Alternativni tekst", +DlgImgWidth : "Širina", +DlgImgHeight : "Visina", +DlgImgLockRatio : "Zaključaj odnos", +DlgBtnResetSize : "Obriši veličinu", +DlgImgBorder : "Okvir", +DlgImgHSpace : "HSpace", +DlgImgVSpace : "VSpace", +DlgImgAlign : "Poravnaj", +DlgImgAlignLeft : "Lijevo", +DlgImgAlignAbsBottom: "Abs dolje", +DlgImgAlignAbsMiddle: "Abs sredina", +DlgImgAlignBaseline : "Bazno", +DlgImgAlignBottom : "Dolje", +DlgImgAlignMiddle : "Sredina", +DlgImgAlignRight : "Desno", +DlgImgAlignTextTop : "Vrh teksta", +DlgImgAlignTop : "Vrh", +DlgImgPreview : "Pregledaj", +DlgImgAlertUrl : "Unesite URL slike", +DlgImgLinkTab : "Link", + +// Flash Dialog +DlgFlashTitle : "Flash svojstva", +DlgFlashChkPlay : "Auto Play", +DlgFlashChkLoop : "Ponavljaj", +DlgFlashChkMenu : "Omogući Flash izbornik", +DlgFlashScale : "Omjer", +DlgFlashScaleAll : "Prikaži sve", +DlgFlashScaleNoBorder : "Bez okvira", +DlgFlashScaleFit : "Točna veličina", + +// Link Dialog +DlgLnkWindowTitle : "Link", +DlgLnkInfoTab : "Link Info", +DlgLnkTargetTab : "Meta", + +DlgLnkType : "Link vrsta", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Sidro na ovoj stranici", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Protokol", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Odaberi sidro", +DlgLnkAnchorByName : "Po nazivu sidra", +DlgLnkAnchorById : "Po Id elementa", +DlgLnkNoAnchors : "(Nema dostupnih sidra)", +DlgLnkEMail : "E-Mail adresa", +DlgLnkEMailSubject : "Naslov", +DlgLnkEMailBody : "Sadržaj poruke", +DlgLnkUpload : "Pošalji", +DlgLnkBtnUpload : "Pošalji na server", + +DlgLnkTarget : "Meta", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Novi prozor (_blank)", +DlgLnkTargetParent : "Roditeljski prozor (_parent)", +DlgLnkTargetSelf : "Isti prozor (_self)", +DlgLnkTargetTop : "Vršni prozor (_top)", +DlgLnkTargetFrameName : "Ime ciljnog okvira", +DlgLnkPopWinName : "Naziv popup prozora", +DlgLnkPopWinFeat : "Mogućnosti popup prozora", +DlgLnkPopResize : "Promjenljive veličine", +DlgLnkPopLocation : "Traka za lokaciju", +DlgLnkPopMenu : "Izborna traka", +DlgLnkPopScroll : "Scroll traka", +DlgLnkPopStatus : "Statusna traka", +DlgLnkPopToolbar : "Traka s alatima", +DlgLnkPopFullScrn : "Cijeli ekran (IE)", +DlgLnkPopDependent : "Ovisno (Netscape)", +DlgLnkPopWidth : "Širina", +DlgLnkPopHeight : "Visina", +DlgLnkPopLeft : "Lijeva pozicija", +DlgLnkPopTop : "Gornja pozicija", + +DlnLnkMsgNoUrl : "Molimo upišite URL link", +DlnLnkMsgNoEMail : "Molimo upišite e-mail adresu", +DlnLnkMsgNoAnchor : "Molimo odaberite sidro", +DlnLnkMsgInvPopName : "Ime popup prozora mora početi sa slovom i ne smije sadržavati razmake", + +// Color Dialog +DlgColorTitle : "Odaberite boju", +DlgColorBtnClear : "Obriši", +DlgColorHighlight : "Osvijetli", +DlgColorSelected : "Odaberi", + +// Smiley Dialog +DlgSmileyTitle : "Ubaci smješka", + +// Special Character Dialog +DlgSpecialCharTitle : "Odaberite posebni karakter", + +// Table Dialog +DlgTableTitle : "Svojstva tablice", +DlgTableRows : "Redova", +DlgTableColumns : "Kolona", +DlgTableBorder : "Veličina okvira", +DlgTableAlign : "Poravnanje", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Lijevo", +DlgTableAlignCenter : "Središnje", +DlgTableAlignRight : "Desno", +DlgTableWidth : "Širina", +DlgTableWidthPx : "piksela", +DlgTableWidthPc : "postotaka", +DlgTableHeight : "Visina", +DlgTableCellSpace : "Prostornost ćelija", +DlgTableCellPad : "Razmak ćelija", +DlgTableCaption : "Naslov", +DlgTableSummary : "Sažetak", + +// Table Cell Dialog +DlgCellTitle : "Svojstva ćelije", +DlgCellWidth : "Širina", +DlgCellWidthPx : "piksela", +DlgCellWidthPc : "postotaka", +DlgCellHeight : "Visina", +DlgCellWordWrap : "Word Wrap", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Da", +DlgCellWordWrapNo : "Ne", +DlgCellHorAlign : "Vodoravno poravnanje", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Lijevo", +DlgCellHorAlignCenter : "Središnje", +DlgCellHorAlignRight: "Desno", +DlgCellVerAlign : "Okomito poravnanje", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Gornje", +DlgCellVerAlignMiddle : "Srednišnje", +DlgCellVerAlignBottom : "Donje", +DlgCellVerAlignBaseline : "Bazno", +DlgCellRowSpan : "Spajanje redova", +DlgCellCollSpan : "Spajanje kolona", +DlgCellBackColor : "Boja pozadine", +DlgCellBorderColor : "Boja okvira", +DlgCellBtnSelect : "Odaberi...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Pronađi i zamijeni", + +// Find Dialog +DlgFindTitle : "Pronađi", +DlgFindFindBtn : "Pronađi", +DlgFindNotFoundMsg : "Traženi tekst nije pronađen.", + +// Replace Dialog +DlgReplaceTitle : "Zamijeni", +DlgReplaceFindLbl : "Pronađi:", +DlgReplaceReplaceLbl : "Zamijeni s:", +DlgReplaceCaseChk : "Usporedi mala/velika slova", +DlgReplaceReplaceBtn : "Zamijeni", +DlgReplaceReplAllBtn : "Zamijeni sve", +DlgReplaceWordChk : "Usporedi cijele riječi", + +// Paste Operations / Dialog +PasteErrorCut : "Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog izrezivanja. Molimo koristite kraticu na tipkovnici (Ctrl+X).", +PasteErrorCopy : "Sigurnosne postavke Vašeg pretraživača ne dozvoljavaju operacije automatskog kopiranja. Molimo koristite kraticu na tipkovnici (Ctrl+C).", + +PasteAsText : "Zalijepi kao čisti tekst", +PasteFromWord : "Zalijepi iz Worda", + +DlgPasteMsg2 : "Molimo zaljepite unutar doljnjeg okvira koristeći tipkovnicu (Ctrl+V) i kliknite OK.", +DlgPasteSec : "Zbog sigurnosnih postavki Vašeg pretraživača, editor nema direktan pristup Vašem međuspremniku. Potrebno je ponovno zalijepiti tekst u ovaj prozor.", +DlgPasteIgnoreFont : "Zanemari definiciju vrste fonta", +DlgPasteRemoveStyles : "Ukloni definicije stilova", + +// Color Picker +ColorAutomatic : "Automatski", +ColorMoreColors : "Više boja...", + +// Document Properties +DocProps : "Svojstva dokumenta", + +// Anchor Dialog +DlgAnchorTitle : "Svojstva sidra", +DlgAnchorName : "Ime sidra", +DlgAnchorErrorName : "Molimo unesite ime sidra", + +// Speller Pages Dialog +DlgSpellNotInDic : "Nije u rječniku", +DlgSpellChangeTo : "Promijeni u", +DlgSpellBtnIgnore : "Zanemari", +DlgSpellBtnIgnoreAll : "Zanemari sve", +DlgSpellBtnReplace : "Zamijeni", +DlgSpellBtnReplaceAll : "Zamijeni sve", +DlgSpellBtnUndo : "Vrati", +DlgSpellNoSuggestions : "-Nema preporuke-", +DlgSpellProgress : "Provjera u tijeku...", +DlgSpellNoMispell : "Provjera završena: Nema grešaka", +DlgSpellNoChanges : "Provjera završena: Nije napravljena promjena", +DlgSpellOneChange : "Provjera završena: Jedna riječ promjenjena", +DlgSpellManyChanges : "Provjera završena: Promijenjeno %1 riječi", + +IeSpellDownload : "Provjera pravopisa nije instalirana. Želite li skinuti provjeru pravopisa?", + +// Button Dialog +DlgButtonText : "Tekst (vrijednost)", +DlgButtonType : "Vrsta", +DlgButtonTypeBtn : "Gumb", +DlgButtonTypeSbm : "Pošalji", +DlgButtonTypeRst : "Poništi", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Ime", +DlgCheckboxValue : "Vrijednost", +DlgCheckboxSelected : "Odabrano", + +// Form Dialog +DlgFormName : "Ime", +DlgFormAction : "Akcija", +DlgFormMethod : "Metoda", + +// Select Field Dialog +DlgSelectName : "Ime", +DlgSelectValue : "Vrijednost", +DlgSelectSize : "Veličina", +DlgSelectLines : "linija", +DlgSelectChkMulti : "Dozvoli višestruki odabir", +DlgSelectOpAvail : "Dostupne opcije", +DlgSelectOpText : "Tekst", +DlgSelectOpValue : "Vrijednost", +DlgSelectBtnAdd : "Dodaj", +DlgSelectBtnModify : "Promijeni", +DlgSelectBtnUp : "Gore", +DlgSelectBtnDown : "Dolje", +DlgSelectBtnSetValue : "Postavi kao odabranu vrijednost", +DlgSelectBtnDelete : "Obriši", + +// Textarea Dialog +DlgTextareaName : "Ime", +DlgTextareaCols : "Kolona", +DlgTextareaRows : "Redova", + +// Text Field Dialog +DlgTextName : "Ime", +DlgTextValue : "Vrijednost", +DlgTextCharWidth : "Širina", +DlgTextMaxChars : "Najviše karaktera", +DlgTextType : "Vrsta", +DlgTextTypeText : "Tekst", +DlgTextTypePass : "Šifra", + +// Hidden Field Dialog +DlgHiddenName : "Ime", +DlgHiddenValue : "Vrijednost", + +// Bulleted List Dialog +BulletedListProp : "Svojstva liste", +NumberedListProp : "Svojstva brojčane liste", +DlgLstStart : "Početak", +DlgLstType : "Vrsta", +DlgLstTypeCircle : "Krug", +DlgLstTypeDisc : "Disk", +DlgLstTypeSquare : "Kvadrat", +DlgLstTypeNumbers : "Brojevi (1, 2, 3)", +DlgLstTypeLCase : "Mala slova (a, b, c)", +DlgLstTypeUCase : "Velika slova (A, B, C)", +DlgLstTypeSRoman : "Male rimske brojke (i, ii, iii)", +DlgLstTypeLRoman : "Velike rimske brojke (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Općenito", +DlgDocBackTab : "Pozadina", +DlgDocColorsTab : "Boje i margine", +DlgDocMetaTab : "Meta Data", + +DlgDocPageTitle : "Naslov stranice", +DlgDocLangDir : "Smjer jezika", +DlgDocLangDirLTR : "S lijeva na desno", +DlgDocLangDirRTL : "S desna na lijevo", +DlgDocLangCode : "Kôd jezika", +DlgDocCharSet : "Enkodiranje znakova", +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", +DlgDocDocTypeOther : "Ostalo zaglavlje vrste dokumenta", +DlgDocIncXHTML : "Ubaci XHTML deklaracije", +DlgDocBgColor : "Boja pozadine", +DlgDocBgImage : "URL slike pozadine", +DlgDocBgNoScroll : "Pozadine se ne pomiče", +DlgDocCText : "Tekst", +DlgDocCLink : "Link", +DlgDocCVisited : "Posjećeni link", +DlgDocCActive : "Aktivni link", +DlgDocMargins : "Margine stranice", +DlgDocMaTop : "Vrh", +DlgDocMaLeft : "Lijevo", +DlgDocMaRight : "Desno", +DlgDocMaBottom : "Dolje", +DlgDocMeIndex : "Ključne riječi dokumenta (odvojene zarezom)", +DlgDocMeDescr : "Opis dokumenta", +DlgDocMeAuthor : "Autor", +DlgDocMeCopy : "Autorska prava", +DlgDocPreview : "Pregledaj", + +// Templates Dialog +Templates : "Predlošci", +DlgTemplatesTitle : "Predlošci sadržaja", +DlgTemplatesSelMsg : "Molimo odaberite predložak koji želite otvoriti
      (stvarni sadržaj će biti izgubljen):", +DlgTemplatesLoading : "Učitavam listu predložaka. Molimo pričekajte...", +DlgTemplatesNoTpl : "(Nema definiranih predložaka)", +DlgTemplatesReplace : "Zamijeni trenutne sadržaje", + +// About Dialog +DlgAboutAboutTab : "O FCKEditoru", +DlgAboutBrowserInfoTab : "Podaci o pretraživaču", +DlgAboutLicenseTab : "Licenca", +DlgAboutVersion : "inačica", +DlgAboutInfo : "Za više informacija posjetite", + +// Div Dialog +DlgDivGeneralTab : "Općenito", +DlgDivAdvancedTab : "Napredno", +DlgDivStyle : "Stil", +DlgDivInlineStyle : "Stil u redu" +}; diff --git a/fckeditor/editor/lang/hu.js b/fckeditor/editor/lang/hu.js new file mode 100644 index 0000000..b9803e6 --- /dev/null +++ b/fckeditor/editor/lang/hu.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Hungarian language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Eszköztár elrejtése", +ToolbarExpand : "Eszköztár megjelenítése", + +// Toolbar Items and Context Menu +Save : "Mentés", +NewPage : "Új oldal", +Preview : "Előnézet", +Cut : "Kivágás", +Copy : "Másolás", +Paste : "Beillesztés", +PasteText : "Beillesztés formázás nélkül", +PasteWord : "Beillesztés Word-ből", +Print : "Nyomtatás", +SelectAll : "Mindent kijelöl", +RemoveFormat : "Formázás eltávolítása", +InsertLinkLbl : "Hivatkozás", +InsertLink : "Hivatkozás beillesztése/módosítása", +RemoveLink : "Hivatkozás törlése", +VisitLink : "Open Link", //MISSING +Anchor : "Horgony beillesztése/szerkesztése", +AnchorDelete : "Horgony eltávolítása", +InsertImageLbl : "Kép", +InsertImage : "Kép beillesztése/módosítása", +InsertFlashLbl : "Flash", +InsertFlash : "Flash beillesztése, módosítása", +InsertTableLbl : "Táblázat", +InsertTable : "Táblázat beillesztése/módosítása", +InsertLineLbl : "Vonal", +InsertLine : "Elválasztóvonal beillesztése", +InsertSpecialCharLbl: "Speciális karakter", +InsertSpecialChar : "Speciális karakter beillesztése", +InsertSmileyLbl : "Hangulatjelek", +InsertSmiley : "Hangulatjelek beillesztése", +About : "FCKeditor névjegy", +Bold : "Félkövér", +Italic : "Dőlt", +Underline : "Aláhúzott", +StrikeThrough : "Áthúzott", +Subscript : "Alsó index", +Superscript : "Felső index", +LeftJustify : "Balra", +CenterJustify : "Középre", +RightJustify : "Jobbra", +BlockJustify : "Sorkizárt", +DecreaseIndent : "Behúzás csökkentése", +IncreaseIndent : "Behúzás növelése", +Blockquote : "Idézet blokk", +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "Visszavonás", +Redo : "Ismétlés", +NumberedListLbl : "Számozás", +NumberedList : "Számozás beillesztése/törlése", +BulletedListLbl : "Felsorolás", +BulletedList : "Felsorolás beillesztése/törlése", +ShowTableBorders : "Táblázat szegély mutatása", +ShowDetails : "Részletek mutatása", +Style : "Stílus", +FontFormat : "Formátum", +Font : "Betűtípus", +FontSize : "Méret", +TextColor : "Betűszín", +BGColor : "Háttérszín", +Source : "Forráskód", +Find : "Keresés", +Replace : "Csere", +SpellCheck : "Helyesírás-ellenőrzés", +UniversalKeyboard : "Univerzális billentyűzet", +PageBreakLbl : "Oldaltörés", +PageBreak : "Oldaltörés beillesztése", + +Form : "Űrlap", +Checkbox : "Jelölőnégyzet", +RadioButton : "Választógomb", +TextField : "Szövegmező", +Textarea : "Szövegterület", +HiddenField : "Rejtettmező", +Button : "Gomb", +SelectionField : "Legördülő lista", +ImageButton : "Képgomb", + +FitWindow : "Maximalizálás", +ShowBlocks : "Blokkok megjelenítése", + +// Context Menu +EditLink : "Hivatkozás módosítása", +CellCM : "Cella", +RowCM : "Sor", +ColumnCM : "Oszlop", +InsertRowAfter : "Sor beillesztése az aktuális sor mögé", +InsertRowBefore : "Sor beillesztése az aktuális sor elé", +DeleteRows : "Sorok törlése", +InsertColumnAfter : "Oszlop beillesztése az aktuális oszlop mögé", +InsertColumnBefore : "Oszlop beillesztése az aktuális oszlop elé", +DeleteColumns : "Oszlopok törlése", +InsertCellAfter : "Cella beillesztése az aktuális cella mögé", +InsertCellBefore : "Cella beillesztése az aktuális cella elé", +DeleteCells : "Cellák törlése", +MergeCells : "Cellák egyesítése", +MergeRight : "Cellák egyesítése jobbra", +MergeDown : "Cellák egyesítése lefelé", +HorizontalSplitCell : "Cellák szétválasztása vízszintesen", +VerticalSplitCell : "Cellák szétválasztása függőlegesen", +TableDelete : "Táblázat törlése", +CellProperties : "Cella tulajdonságai", +TableProperties : "Táblázat tulajdonságai", +ImageProperties : "Kép tulajdonságai", +FlashProperties : "Flash tulajdonságai", + +AnchorProp : "Horgony tulajdonságai", +ButtonProp : "Gomb tulajdonságai", +CheckboxProp : "Jelölőnégyzet tulajdonságai", +HiddenFieldProp : "Rejtett mező tulajdonságai", +RadioButtonProp : "Választógomb tulajdonságai", +ImageButtonProp : "Képgomb tulajdonságai", +TextFieldProp : "Szövegmező tulajdonságai", +SelectionFieldProp : "Legördülő lista tulajdonságai", +TextareaProp : "Szövegterület tulajdonságai", +FormProp : "Űrlap tulajdonságai", + +FontFormats : "Normál;Formázott;Címsor;Fejléc 1;Fejléc 2;Fejléc 3;Fejléc 4;Fejléc 5;Fejléc 6;Bekezdés (DIV)", + +// Alerts and Messages +ProcessingXHTML : "XHTML feldolgozása. Kérem várjon...", +Done : "Kész", +PasteWordConfirm : "A beilleszteni kívánt szöveg Word-ből van másolva. El kívánja távolítani a formázást a beillesztés előtt?", +NotCompatiblePaste : "Ez a parancs csak Internet Explorer 5.5 verziótól használható. Megpróbálja beilleszteni a szöveget az eredeti formázással?", +UnknownToolbarItem : "Ismeretlen eszköztár elem \"%1\"", +UnknownCommand : "Ismeretlen parancs \"%1\"", +NotImplemented : "A parancs nem hajtható végre", +UnknownToolbarSet : "Az eszközkészlet \"%1\" nem létezik", +NoActiveX : "A böngésző biztonsági beállításai korlátozzák a szerkesztő lehetőségeit. Engedélyezni kell ezt az opciót: \"Run ActiveX controls and plug-ins\". Ettől függetlenül előfordulhatnak hibaüzenetek ill. bizonyos funkciók hiányozhatnak.", +BrowseServerBlocked : "Nem lehet megnyitni a fájlböngészőt. Bizonyosodjon meg róla, hogy a felbukkanó ablakok engedélyezve vannak.", +DialogBlocked : "Nem lehet megnyitni a párbeszédablakot. Bizonyosodjon meg róla, hogy a felbukkanó ablakok engedélyezve vannak.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "Rendben", +DlgBtnCancel : "Mégsem", +DlgBtnClose : "Bezárás", +DlgBtnBrowseServer : "Böngészés a szerveren", +DlgAdvancedTag : "További opciók", +DlgOpOther : "Egyéb", +DlgInfoTab : "Alaptulajdonságok", +DlgAlertUrl : "Illessze be a webcímet", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Azonosító", +DlgGenLangDir : "Írás iránya", +DlgGenLangDirLtr : "Balról jobbra", +DlgGenLangDirRtl : "Jobbról balra", +DlgGenLangCode : "Nyelv kódja", +DlgGenAccessKey : "Billentyűkombináció", +DlgGenName : "Név", +DlgGenTabIndex : "Tabulátor index", +DlgGenLongDescr : "Részletes leírás webcíme", +DlgGenClass : "Stíluskészlet", +DlgGenTitle : "Súgócimke", +DlgGenContType : "Súgó tartalomtípusa", +DlgGenLinkCharset : "Hivatkozott tartalom kódlapja", +DlgGenStyle : "Stílus", + +// Image Dialog +DlgImgTitle : "Kép tulajdonságai", +DlgImgInfoTab : "Alaptulajdonságok", +DlgImgBtnUpload : "Küldés a szerverre", +DlgImgURL : "Hivatkozás", +DlgImgUpload : "Feltöltés", +DlgImgAlt : "Buborék szöveg", +DlgImgWidth : "Szélesség", +DlgImgHeight : "Magasság", +DlgImgLockRatio : "Arány megtartása", +DlgBtnResetSize : "Eredeti méret", +DlgImgBorder : "Keret", +DlgImgHSpace : "Vízsz. táv", +DlgImgVSpace : "Függ. táv", +DlgImgAlign : "Igazítás", +DlgImgAlignLeft : "Bal", +DlgImgAlignAbsBottom: "Legaljára", +DlgImgAlignAbsMiddle: "Közepére", +DlgImgAlignBaseline : "Alapvonalhoz", +DlgImgAlignBottom : "Aljára", +DlgImgAlignMiddle : "Középre", +DlgImgAlignRight : "Jobbra", +DlgImgAlignTextTop : "Szöveg tetejére", +DlgImgAlignTop : "Tetejére", +DlgImgPreview : "Előnézet", +DlgImgAlertUrl : "Töltse ki a kép webcímét", +DlgImgLinkTab : "Hivatkozás", + +// Flash Dialog +DlgFlashTitle : "Flash tulajdonságai", +DlgFlashChkPlay : "Automata lejátszás", +DlgFlashChkLoop : "Folyamatosan", +DlgFlashChkMenu : "Flash menü engedélyezése", +DlgFlashScale : "Méretezés", +DlgFlashScaleAll : "Mindent mutat", +DlgFlashScaleNoBorder : "Keret nélkül", +DlgFlashScaleFit : "Teljes kitöltés", + +// Link Dialog +DlgLnkWindowTitle : "Hivatkozás tulajdonságai", +DlgLnkInfoTab : "Alaptulajdonságok", +DlgLnkTargetTab : "Megjelenítés", + +DlgLnkType : "Hivatkozás típusa", +DlgLnkTypeURL : "Webcím", +DlgLnkTypeAnchor : "Horgony az oldalon", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Protokoll", +DlgLnkProtoOther : "", +DlgLnkURL : "Webcím", +DlgLnkAnchorSel : "Horgony választása", +DlgLnkAnchorByName : "Horgony név szerint", +DlgLnkAnchorById : "Azonosító szerint", +DlgLnkNoAnchors : "(Nincs horgony a dokumentumban)", +DlgLnkEMail : "E-Mail cím", +DlgLnkEMailSubject : "Üzenet tárgya", +DlgLnkEMailBody : "Üzenet", +DlgLnkUpload : "Feltöltés", +DlgLnkBtnUpload : "Küldés a szerverre", + +DlgLnkTarget : "Tartalom megjelenítése", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Új ablakban (_blank)", +DlgLnkTargetParent : "Szülő ablakban (_parent)", +DlgLnkTargetSelf : "Azonos ablakban (_self)", +DlgLnkTargetTop : "Legfelső ablakban (_top)", +DlgLnkTargetFrameName : "Keret neve", +DlgLnkPopWinName : "Felugró ablak neve", +DlgLnkPopWinFeat : "Felugró ablak jellemzői", +DlgLnkPopResize : "Méretezhető", +DlgLnkPopLocation : "Címsor", +DlgLnkPopMenu : "Menü sor", +DlgLnkPopScroll : "Gördítősáv", +DlgLnkPopStatus : "Állapotsor", +DlgLnkPopToolbar : "Eszköztár", +DlgLnkPopFullScrn : "Teljes képernyő (csak IE)", +DlgLnkPopDependent : "Szülőhöz kapcsolt (csak Netscape)", +DlgLnkPopWidth : "Szélesség", +DlgLnkPopHeight : "Magasság", +DlgLnkPopLeft : "Bal pozíció", +DlgLnkPopTop : "Felső pozíció", + +DlnLnkMsgNoUrl : "Adja meg a hivatkozás webcímét", +DlnLnkMsgNoEMail : "Adja meg az E-Mail címet", +DlnLnkMsgNoAnchor : "Válasszon egy horgonyt", +DlnLnkMsgInvPopName : "A felbukkanó ablak neve alfanumerikus karakterrel kezdôdjön, valamint ne tartalmazzon szóközt", + +// Color Dialog +DlgColorTitle : "Színválasztás", +DlgColorBtnClear : "Törlés", +DlgColorHighlight : "Előnézet", +DlgColorSelected : "Kiválasztott", + +// Smiley Dialog +DlgSmileyTitle : "Hangulatjel beszúrása", + +// Special Character Dialog +DlgSpecialCharTitle : "Speciális karakter választása", + +// Table Dialog +DlgTableTitle : "Táblázat tulajdonságai", +DlgTableRows : "Sorok", +DlgTableColumns : "Oszlopok", +DlgTableBorder : "Szegélyméret", +DlgTableAlign : "Igazítás", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Balra", +DlgTableAlignCenter : "Középre", +DlgTableAlignRight : "Jobbra", +DlgTableWidth : "Szélesség", +DlgTableWidthPx : "képpont", +DlgTableWidthPc : "százalék", +DlgTableHeight : "Magasság", +DlgTableCellSpace : "Cella térköz", +DlgTableCellPad : "Cella belső margó", +DlgTableCaption : "Felirat", +DlgTableSummary : "Leírás", + +// Table Cell Dialog +DlgCellTitle : "Cella tulajdonságai", +DlgCellWidth : "Szélesség", +DlgCellWidthPx : "képpont", +DlgCellWidthPc : "százalék", +DlgCellHeight : "Magasság", +DlgCellWordWrap : "Sortörés", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Igen", +DlgCellWordWrapNo : "Nem", +DlgCellHorAlign : "Vízsz. igazítás", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Balra", +DlgCellHorAlignCenter : "Középre", +DlgCellHorAlignRight: "Jobbra", +DlgCellVerAlign : "Függ. igazítás", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Tetejére", +DlgCellVerAlignMiddle : "Középre", +DlgCellVerAlignBottom : "Aljára", +DlgCellVerAlignBaseline : "Egyvonalba", +DlgCellRowSpan : "Sorok egyesítése", +DlgCellCollSpan : "Oszlopok egyesítése", +DlgCellBackColor : "Háttérszín", +DlgCellBorderColor : "Szegélyszín", +DlgCellBtnSelect : "Kiválasztás...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Keresés és csere", + +// Find Dialog +DlgFindTitle : "Keresés", +DlgFindFindBtn : "Keresés", +DlgFindNotFoundMsg : "A keresett szöveg nem található.", + +// Replace Dialog +DlgReplaceTitle : "Csere", +DlgReplaceFindLbl : "Keresett szöveg:", +DlgReplaceReplaceLbl : "Csere erre:", +DlgReplaceCaseChk : "kis- és nagybetű megkülönböztetése", +DlgReplaceReplaceBtn : "Csere", +DlgReplaceReplAllBtn : "Az összes cseréje", +DlgReplaceWordChk : "csak ha ez a teljes szó", + +// Paste Operations / Dialog +PasteErrorCut : "A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a kivágás műveletet. Használja az alábbi billentyűkombinációt (Ctrl+X).", +PasteErrorCopy : "A böngésző biztonsági beállításai nem engedélyezik a szerkesztőnek, hogy végrehajtsa a másolás műveletet. Használja az alábbi billentyűkombinációt (Ctrl+X).", + +PasteAsText : "Beillesztés formázatlan szövegként", +PasteFromWord : "Beillesztés Word-ből", + +DlgPasteMsg2 : "Másolja be az alábbi mezőbe a Ctrl+V billentyűk lenyomásával, majd nyomjon Rendben-t.", +DlgPasteSec : "A böngésző biztonsági beállításai miatt a szerkesztő nem képes hozzáférni a vágólap adataihoz. Illeszd be újra ebben az ablakban.", +DlgPasteIgnoreFont : "Betű formázások megszüntetése", +DlgPasteRemoveStyles : "Stílusok eltávolítása", + +// Color Picker +ColorAutomatic : "Automatikus", +ColorMoreColors : "További színek...", + +// Document Properties +DocProps : "Dokumentum tulajdonságai", + +// Anchor Dialog +DlgAnchorTitle : "Horgony tulajdonságai", +DlgAnchorName : "Horgony neve", +DlgAnchorErrorName : "Kérem adja meg a horgony nevét", + +// Speller Pages Dialog +DlgSpellNotInDic : "Nincs a szótárban", +DlgSpellChangeTo : "Módosítás", +DlgSpellBtnIgnore : "Kihagyja", +DlgSpellBtnIgnoreAll : "Mindet kihagyja", +DlgSpellBtnReplace : "Csere", +DlgSpellBtnReplaceAll : "Összes cseréje", +DlgSpellBtnUndo : "Visszavonás", +DlgSpellNoSuggestions : "Nincs javaslat", +DlgSpellProgress : "Helyesírás-ellenőrzés folyamatban...", +DlgSpellNoMispell : "Helyesírás-ellenőrzés kész: Nem találtam hibát", +DlgSpellNoChanges : "Helyesírás-ellenőrzés kész: Nincs változtatott szó", +DlgSpellOneChange : "Helyesírás-ellenőrzés kész: Egy szó cserélve", +DlgSpellManyChanges : "Helyesírás-ellenőrzés kész: %1 szó cserélve", + +IeSpellDownload : "A helyesírás-ellenőrző nincs telepítve. Szeretné letölteni most?", + +// Button Dialog +DlgButtonText : "Szöveg (Érték)", +DlgButtonType : "Típus", +DlgButtonTypeBtn : "Gomb", +DlgButtonTypeSbm : "Küldés", +DlgButtonTypeRst : "Alaphelyzet", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Név", +DlgCheckboxValue : "Érték", +DlgCheckboxSelected : "Kiválasztott", + +// Form Dialog +DlgFormName : "Név", +DlgFormAction : "Adatfeldolgozást végző hivatkozás", +DlgFormMethod : "Adatküldés módja", + +// Select Field Dialog +DlgSelectName : "Név", +DlgSelectValue : "Érték", +DlgSelectSize : "Méret", +DlgSelectLines : "sor", +DlgSelectChkMulti : "több sor is kiválasztható", +DlgSelectOpAvail : "Elérhető opciók", +DlgSelectOpText : "Szöveg", +DlgSelectOpValue : "Érték", +DlgSelectBtnAdd : "Hozzáad", +DlgSelectBtnModify : "Módosít", +DlgSelectBtnUp : "Fel", +DlgSelectBtnDown : "Le", +DlgSelectBtnSetValue : "Legyen az alapértelmezett érték", +DlgSelectBtnDelete : "Töröl", + +// Textarea Dialog +DlgTextareaName : "Név", +DlgTextareaCols : "Karakterek száma egy sorban", +DlgTextareaRows : "Sorok száma", + +// Text Field Dialog +DlgTextName : "Név", +DlgTextValue : "Érték", +DlgTextCharWidth : "Megjelenített karakterek száma", +DlgTextMaxChars : "Maximális karakterszám", +DlgTextType : "Típus", +DlgTextTypeText : "Szöveg", +DlgTextTypePass : "Jelszó", + +// Hidden Field Dialog +DlgHiddenName : "Név", +DlgHiddenValue : "Érték", + +// Bulleted List Dialog +BulletedListProp : "Felsorolás tulajdonságai", +NumberedListProp : "Számozás tulajdonságai", +DlgLstStart : "Start", +DlgLstType : "Formátum", +DlgLstTypeCircle : "Kör", +DlgLstTypeDisc : "Lemez", +DlgLstTypeSquare : "Négyzet", +DlgLstTypeNumbers : "Számok (1, 2, 3)", +DlgLstTypeLCase : "Kisbetűk (a, b, c)", +DlgLstTypeUCase : "Nagybetűk (A, B, C)", +DlgLstTypeSRoman : "Kis római számok (i, ii, iii)", +DlgLstTypeLRoman : "Nagy római számok (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Általános", +DlgDocBackTab : "Háttér", +DlgDocColorsTab : "Színek és margók", +DlgDocMetaTab : "Meta adatok", + +DlgDocPageTitle : "Oldalcím", +DlgDocLangDir : "Írás iránya", +DlgDocLangDirLTR : "Balról jobbra", +DlgDocLangDirRTL : "Jobbról balra", +DlgDocLangCode : "Nyelv kód", +DlgDocCharSet : "Karakterkódolás", +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 típus fejléc", +DlgDocDocTypeOther : "Más dokumentum típus fejléc", +DlgDocIncXHTML : "XHTML deklarációk beillesztése", +DlgDocBgColor : "Háttérszín", +DlgDocBgImage : "Háttérkép cím", +DlgDocBgNoScroll : "Nem gördíthető háttér", +DlgDocCText : "Szöveg", +DlgDocCLink : "Cím", +DlgDocCVisited : "Látogatott cím", +DlgDocCActive : "Aktív cím", +DlgDocMargins : "Oldal margók", +DlgDocMaTop : "Felső", +DlgDocMaLeft : "Bal", +DlgDocMaRight : "Jobb", +DlgDocMaBottom : "Alsó", +DlgDocMeIndex : "Dokumentum keresőszavak (vesszővel elválasztva)", +DlgDocMeDescr : "Dokumentum leírás", +DlgDocMeAuthor : "Szerző", +DlgDocMeCopy : "Szerzői jog", +DlgDocPreview : "Előnézet", + +// Templates Dialog +Templates : "Sablonok", +DlgTemplatesTitle : "Elérhető sablonok", +DlgTemplatesSelMsg : "Válassza ki melyik sablon nyíljon meg a szerkesztőben
      (a jelenlegi tartalom elveszik):", +DlgTemplatesLoading : "Sablon lista betöltése. Kis türelmet...", +DlgTemplatesNoTpl : "(Nincs sablon megadva)", +DlgTemplatesReplace : "Kicseréli a jelenlegi tartalmat", + +// About Dialog +DlgAboutAboutTab : "Névjegy", +DlgAboutBrowserInfoTab : "Böngésző információ", +DlgAboutLicenseTab : "Licensz", +DlgAboutVersion : "verzió", +DlgAboutInfo : "További információkért látogasson el ide:", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/it.js b/fckeditor/editor/lang/it.js new file mode 100644 index 0000000..8b59211 --- /dev/null +++ b/fckeditor/editor/lang/it.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Italian language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Nascondi la barra degli strumenti", +ToolbarExpand : "Mostra la barra degli strumenti", + +// Toolbar Items and Context Menu +Save : "Salva", +NewPage : "Nuova pagina vuota", +Preview : "Anteprima", +Cut : "Taglia", +Copy : "Copia", +Paste : "Incolla", +PasteText : "Incolla come testo semplice", +PasteWord : "Incolla da Word", +Print : "Stampa", +SelectAll : "Seleziona tutto", +RemoveFormat : "Elimina formattazione", +InsertLinkLbl : "Collegamento", +InsertLink : "Inserisci/Modifica collegamento", +RemoveLink : "Elimina collegamento", +VisitLink : "Open Link", //MISSING +Anchor : "Inserisci/Modifica Ancora", +AnchorDelete : "Rimuovi Ancora", +InsertImageLbl : "Immagine", +InsertImage : "Inserisci/Modifica immagine", +InsertFlashLbl : "Oggetto Flash", +InsertFlash : "Inserisci/Modifica Oggetto Flash", +InsertTableLbl : "Tabella", +InsertTable : "Inserisci/Modifica tabella", +InsertLineLbl : "Riga orizzontale", +InsertLine : "Inserisci riga orizzontale", +InsertSpecialCharLbl: "Caratteri speciali", +InsertSpecialChar : "Inserisci carattere speciale", +InsertSmileyLbl : "Emoticon", +InsertSmiley : "Inserisci emoticon", +About : "Informazioni su FCKeditor", +Bold : "Grassetto", +Italic : "Corsivo", +Underline : "Sottolineato", +StrikeThrough : "Barrato", +Subscript : "Pedice", +Superscript : "Apice", +LeftJustify : "Allinea a sinistra", +CenterJustify : "Centra", +RightJustify : "Allinea a destra", +BlockJustify : "Giustifica", +DecreaseIndent : "Riduci rientro", +IncreaseIndent : "Aumenta rientro", +Blockquote : "Blockquote", //MISSING +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "Annulla", +Redo : "Ripristina", +NumberedListLbl : "Elenco numerato", +NumberedList : "Inserisci/Modifica elenco numerato", +BulletedListLbl : "Elenco puntato", +BulletedList : "Inserisci/Modifica elenco puntato", +ShowTableBorders : "Mostra bordi tabelle", +ShowDetails : "Mostra dettagli", +Style : "Stile", +FontFormat : "Formato", +Font : "Font", +FontSize : "Dimensione", +TextColor : "Colore testo", +BGColor : "Colore sfondo", +Source : "Codice Sorgente", +Find : "Trova", +Replace : "Sostituisci", +SpellCheck : "Correttore ortografico", +UniversalKeyboard : "Tastiera universale", +PageBreakLbl : "Interruzione di pagina", +PageBreak : "Inserisci interruzione di pagina", + +Form : "Modulo", +Checkbox : "Checkbox", +RadioButton : "Radio Button", +TextField : "Campo di testo", +Textarea : "Area di testo", +HiddenField : "Campo nascosto", +Button : "Bottone", +SelectionField : "Menu di selezione", +ImageButton : "Bottone immagine", + +FitWindow : "Massimizza l'area dell'editor", +ShowBlocks : "Visualizza Blocchi", + +// Context Menu +EditLink : "Modifica collegamento", +CellCM : "Cella", +RowCM : "Riga", +ColumnCM : "Colonna", +InsertRowAfter : "Inserisci Riga Dopo", +InsertRowBefore : "Inserisci Riga Prima", +DeleteRows : "Elimina righe", +InsertColumnAfter : "Inserisci Colonna Dopo", +InsertColumnBefore : "Inserisci Colonna Prima", +DeleteColumns : "Elimina colonne", +InsertCellAfter : "Inserisci Cella Dopo", +InsertCellBefore : "Inserisci Cella Prima", +DeleteCells : "Elimina celle", +MergeCells : "Unisce celle", +MergeRight : "Unisci a Destra", +MergeDown : "Unisci in Basso", +HorizontalSplitCell : "Dividi Cella Orizzontalmente", +VerticalSplitCell : "Dividi Cella Verticalmente", +TableDelete : "Cancella Tabella", +CellProperties : "Proprietà cella", +TableProperties : "Proprietà tabella", +ImageProperties : "Proprietà immagine", +FlashProperties : "Proprietà Oggetto Flash", + +AnchorProp : "Proprietà ancora", +ButtonProp : "Proprietà bottone", +CheckboxProp : "Proprietà checkbox", +HiddenFieldProp : "Proprietà campo nascosto", +RadioButtonProp : "Proprietà radio button", +ImageButtonProp : "Proprietà bottone immagine", +TextFieldProp : "Proprietà campo di testo", +SelectionFieldProp : "Proprietà menu di selezione", +TextareaProp : "Proprietà area di testo", +FormProp : "Proprietà modulo", + +FontFormats : "Normale;Formattato;Indirizzo;Titolo 1;Titolo 2;Titolo 3;Titolo 4;Titolo 5;Titolo 6;Paragrafo (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Elaborazione XHTML in corso. Attendere prego...", +Done : "Completato", +PasteWordConfirm : "Il testo da incollare sembra provenire da Word. Desideri pulirlo prima di incollare?", +NotCompatiblePaste : "Questa funzione è disponibile solo per Internet Explorer 5.5 o superiore. Desideri incollare il testo senza pulirlo?", +UnknownToolbarItem : "Elemento della barra strumenti sconosciuto \"%1\"", +UnknownCommand : "Comando sconosciuto \"%1\"", +NotImplemented : "Comando non implementato", +UnknownToolbarSet : "La barra di strumenti \"%1\" non esiste", +NoActiveX : "Le impostazioni di sicurezza del tuo browser potrebbero limitare alcune funzionalità dell'editor. Devi abilitare l'opzione \"Esegui controlli e plug-in ActiveX\". Potresti avere errori e notare funzionalità mancanti.", +BrowseServerBlocked : "Non è possibile aprire la finestra di espolorazione risorse. Verifica che tutti i blocca popup siano bloccati.", +DialogBlocked : "Non è possibile aprire la finestra di dialogo. Verifica che tutti i blocca popup siano bloccati.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Annulla", +DlgBtnClose : "Chiudi", +DlgBtnBrowseServer : "Cerca sul server", +DlgAdvancedTag : "Avanzate", +DlgOpOther : "", +DlgInfoTab : "Info", +DlgAlertUrl : "Devi inserire l'URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Direzione scrittura", +DlgGenLangDirLtr : "Da Sinistra a Destra (LTR)", +DlgGenLangDirRtl : "Da Destra a Sinistra (RTL)", +DlgGenLangCode : "Codice Lingua", +DlgGenAccessKey : "Scorciatoia
      da tastiera", +DlgGenName : "Nome", +DlgGenTabIndex : "Ordine di tabulazione", +DlgGenLongDescr : "URL descrizione estesa", +DlgGenClass : "Nome classe CSS", +DlgGenTitle : "Titolo", +DlgGenContType : "Tipo della risorsa collegata", +DlgGenLinkCharset : "Set di caretteri della risorsa collegata", +DlgGenStyle : "Stile", + +// Image Dialog +DlgImgTitle : "Proprietà immagine", +DlgImgInfoTab : "Informazioni immagine", +DlgImgBtnUpload : "Invia al server", +DlgImgURL : "URL", +DlgImgUpload : "Carica", +DlgImgAlt : "Testo alternativo", +DlgImgWidth : "Larghezza", +DlgImgHeight : "Altezza", +DlgImgLockRatio : "Blocca rapporto", +DlgBtnResetSize : "Reimposta dimensione", +DlgImgBorder : "Bordo", +DlgImgHSpace : "HSpace", +DlgImgVSpace : "VSpace", +DlgImgAlign : "Allineamento", +DlgImgAlignLeft : "Sinistra", +DlgImgAlignAbsBottom: "In basso assoluto", +DlgImgAlignAbsMiddle: "Centrato assoluto", +DlgImgAlignBaseline : "Linea base", +DlgImgAlignBottom : "In Basso", +DlgImgAlignMiddle : "Centrato", +DlgImgAlignRight : "Destra", +DlgImgAlignTextTop : "In alto al testo", +DlgImgAlignTop : "In Alto", +DlgImgPreview : "Anteprima", +DlgImgAlertUrl : "Devi inserire l'URL per l'immagine", +DlgImgLinkTab : "Collegamento", + +// Flash Dialog +DlgFlashTitle : "Proprietà Oggetto Flash", +DlgFlashChkPlay : "Avvio Automatico", +DlgFlashChkLoop : "Cicla", +DlgFlashChkMenu : "Abilita Menu di Flash", +DlgFlashScale : "Ridimensiona", +DlgFlashScaleAll : "Mostra Tutto", +DlgFlashScaleNoBorder : "Senza Bordo", +DlgFlashScaleFit : "Dimensione Esatta", + +// Link Dialog +DlgLnkWindowTitle : "Collegamento", +DlgLnkInfoTab : "Informazioni collegamento", +DlgLnkTargetTab : "Destinazione", + +DlgLnkType : "Tipo di Collegamento", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Ancora nella pagina", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "Protocollo", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Scegli Ancora", +DlgLnkAnchorByName : "Per Nome", +DlgLnkAnchorById : "Per id elemento", +DlgLnkNoAnchors : "(Nessuna ancora disponibile nel documento)", +DlgLnkEMail : "Indirizzo E-Mail", +DlgLnkEMailSubject : "Oggetto del messaggio", +DlgLnkEMailBody : "Corpo del messaggio", +DlgLnkUpload : "Carica", +DlgLnkBtnUpload : "Invia al Server", + +DlgLnkTarget : "Destinazione", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Nuova finestra (_blank)", +DlgLnkTargetParent : "Finestra padre (_parent)", +DlgLnkTargetSelf : "Stessa finestra (_self)", +DlgLnkTargetTop : "Finestra superiore (_top)", +DlgLnkTargetFrameName : "Nome del riquadro di destinazione", +DlgLnkPopWinName : "Nome finestra popup", +DlgLnkPopWinFeat : "Caratteristiche finestra popup", +DlgLnkPopResize : "Ridimensionabile", +DlgLnkPopLocation : "Barra degli indirizzi", +DlgLnkPopMenu : "Barra del menu", +DlgLnkPopScroll : "Barre di scorrimento", +DlgLnkPopStatus : "Barra di stato", +DlgLnkPopToolbar : "Barra degli strumenti", +DlgLnkPopFullScrn : "A tutto schermo (IE)", +DlgLnkPopDependent : "Dipendente (Netscape)", +DlgLnkPopWidth : "Larghezza", +DlgLnkPopHeight : "Altezza", +DlgLnkPopLeft : "Posizione da sinistra", +DlgLnkPopTop : "Posizione dall'alto", + +DlnLnkMsgNoUrl : "Devi inserire l'URL del collegamento", +DlnLnkMsgNoEMail : "Devi inserire un'indirizzo e-mail", +DlnLnkMsgNoAnchor : "Devi selezionare un'ancora", +DlnLnkMsgInvPopName : "Il nome del popup deve iniziare con una lettera, e non può contenere spazi", + +// Color Dialog +DlgColorTitle : "Seleziona colore", +DlgColorBtnClear : "Vuota", +DlgColorHighlight : "Evidenziato", +DlgColorSelected : "Selezionato", + +// Smiley Dialog +DlgSmileyTitle : "Inserisci emoticon", + +// Special Character Dialog +DlgSpecialCharTitle : "Seleziona carattere speciale", + +// Table Dialog +DlgTableTitle : "Proprietà tabella", +DlgTableRows : "Righe", +DlgTableColumns : "Colonne", +DlgTableBorder : "Dimensione bordo", +DlgTableAlign : "Allineamento", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Sinistra", +DlgTableAlignCenter : "Centrato", +DlgTableAlignRight : "Destra", +DlgTableWidth : "Larghezza", +DlgTableWidthPx : "pixel", +DlgTableWidthPc : "percento", +DlgTableHeight : "Altezza", +DlgTableCellSpace : "Spaziatura celle", +DlgTableCellPad : "Padding celle", +DlgTableCaption : "Intestazione", +DlgTableSummary : "Indice", + +// Table Cell Dialog +DlgCellTitle : "Proprietà cella", +DlgCellWidth : "Larghezza", +DlgCellWidthPx : "pixel", +DlgCellWidthPc : "percento", +DlgCellHeight : "Altezza", +DlgCellWordWrap : "A capo automatico", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Si", +DlgCellWordWrapNo : "No", +DlgCellHorAlign : "Allineamento orizzontale", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Sinistra", +DlgCellHorAlignCenter : "Centrato", +DlgCellHorAlignRight: "Destra", +DlgCellVerAlign : "Allineamento verticale", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "In Alto", +DlgCellVerAlignMiddle : "Centrato", +DlgCellVerAlignBottom : "In Basso", +DlgCellVerAlignBaseline : "Linea base", +DlgCellRowSpan : "Righe occupate", +DlgCellCollSpan : "Colonne occupate", +DlgCellBackColor : "Colore sfondo", +DlgCellBorderColor : "Colore bordo", +DlgCellBtnSelect : "Scegli...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Cerca e Sostituisci", + +// Find Dialog +DlgFindTitle : "Trova", +DlgFindFindBtn : "Trova", +DlgFindNotFoundMsg : "L'elemento cercato non è stato trovato.", + +// Replace Dialog +DlgReplaceTitle : "Sostituisci", +DlgReplaceFindLbl : "Trova:", +DlgReplaceReplaceLbl : "Sostituisci con:", +DlgReplaceCaseChk : "Maiuscole/minuscole", +DlgReplaceReplaceBtn : "Sostituisci", +DlgReplaceReplAllBtn : "Sostituisci tutto", +DlgReplaceWordChk : "Solo parole intere", + +// Paste Operations / Dialog +PasteErrorCut : "Le impostazioni di sicurezza del browser non permettono di tagliare automaticamente il testo. Usa la tastiera (Ctrl+X).", +PasteErrorCopy : "Le impostazioni di sicurezza del browser non permettono di copiare automaticamente il testo. Usa la tastiera (Ctrl+C).", + +PasteAsText : "Incolla come testo semplice", +PasteFromWord : "Incolla da Word", + +DlgPasteMsg2 : "Incolla il testo all'interno dell'area sottostante usando la scorciatoia di tastiere (Ctrl+V) e premi OK.", +DlgPasteSec : "A causa delle impostazioni di sicurezza del browser,l'editor non è in grado di accedere direttamente agli appunti. E' pertanto necessario incollarli di nuovo in questa finestra.", +DlgPasteIgnoreFont : "Ignora le definizioni di Font", +DlgPasteRemoveStyles : "Rimuovi le definizioni di Stile", + +// Color Picker +ColorAutomatic : "Automatico", +ColorMoreColors : "Altri colori...", + +// Document Properties +DocProps : "Proprietà del Documento", + +// Anchor Dialog +DlgAnchorTitle : "Proprietà ancora", +DlgAnchorName : "Nome ancora", +DlgAnchorErrorName : "Inserici il nome dell'ancora", + +// Speller Pages Dialog +DlgSpellNotInDic : "Non nel dizionario", +DlgSpellChangeTo : "Cambia in", +DlgSpellBtnIgnore : "Ignora", +DlgSpellBtnIgnoreAll : "Ignora tutto", +DlgSpellBtnReplace : "Cambia", +DlgSpellBtnReplaceAll : "Cambia tutto", +DlgSpellBtnUndo : "Annulla", +DlgSpellNoSuggestions : "- Nessun suggerimento -", +DlgSpellProgress : "Controllo ortografico in corso", +DlgSpellNoMispell : "Controllo ortografico completato: nessun errore trovato", +DlgSpellNoChanges : "Controllo ortografico completato: nessuna parola cambiata", +DlgSpellOneChange : "Controllo ortografico completato: 1 parola cambiata", +DlgSpellManyChanges : "Controllo ortografico completato: %1 parole cambiate", + +IeSpellDownload : "Contollo ortografico non installato. Lo vuoi scaricare ora?", + +// Button Dialog +DlgButtonText : "Testo (Value)", +DlgButtonType : "Tipo", +DlgButtonTypeBtn : "Bottone", +DlgButtonTypeSbm : "Invio", +DlgButtonTypeRst : "Annulla", + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Nome", +DlgCheckboxValue : "Valore", +DlgCheckboxSelected : "Selezionato", + +// Form Dialog +DlgFormName : "Nome", +DlgFormAction : "Azione", +DlgFormMethod : "Metodo", + +// Select Field Dialog +DlgSelectName : "Nome", +DlgSelectValue : "Valore", +DlgSelectSize : "Dimensione", +DlgSelectLines : "righe", +DlgSelectChkMulti : "Permetti selezione multipla", +DlgSelectOpAvail : "Opzioni disponibili", +DlgSelectOpText : "Testo", +DlgSelectOpValue : "Valore", +DlgSelectBtnAdd : "Aggiungi", +DlgSelectBtnModify : "Modifica", +DlgSelectBtnUp : "Su", +DlgSelectBtnDown : "Gi", +DlgSelectBtnSetValue : "Imposta come predefinito", +DlgSelectBtnDelete : "Rimuovi", + +// Textarea Dialog +DlgTextareaName : "Nome", +DlgTextareaCols : "Colonne", +DlgTextareaRows : "Righe", + +// Text Field Dialog +DlgTextName : "Nome", +DlgTextValue : "Valore", +DlgTextCharWidth : "Larghezza", +DlgTextMaxChars : "Numero massimo di caratteri", +DlgTextType : "Tipo", +DlgTextTypeText : "Testo", +DlgTextTypePass : "Password", + +// Hidden Field Dialog +DlgHiddenName : "Nome", +DlgHiddenValue : "Valore", + +// Bulleted List Dialog +BulletedListProp : "Proprietà lista puntata", +NumberedListProp : "Proprietà lista numerata", +DlgLstStart : "Inizio", +DlgLstType : "Tipo", +DlgLstTypeCircle : "Tondo", +DlgLstTypeDisc : "Disco", +DlgLstTypeSquare : "Quadrato", +DlgLstTypeNumbers : "Numeri (1, 2, 3)", +DlgLstTypeLCase : "Caratteri minuscoli (a, b, c)", +DlgLstTypeUCase : "Caratteri maiuscoli (A, B, C)", +DlgLstTypeSRoman : "Numeri Romani minuscoli (i, ii, iii)", +DlgLstTypeLRoman : "Numeri Romani maiuscoli (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Genarale", +DlgDocBackTab : "Sfondo", +DlgDocColorsTab : "Colori e margini", +DlgDocMetaTab : "Meta Data", + +DlgDocPageTitle : "Titolo pagina", +DlgDocLangDir : "Direzione scrittura", +DlgDocLangDirLTR : "Da Sinistra a Destra (LTR)", +DlgDocLangDirRTL : "Da Destra a Sinistra (RTL)", +DlgDocLangCode : "Codice Lingua", +DlgDocCharSet : "Set di caretteri", +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", +DlgDocDocTypeOther : "Altra intestazione DocType", +DlgDocIncXHTML : "Includi dichiarazione XHTML", +DlgDocBgColor : "Colore di sfondo", +DlgDocBgImage : "Immagine di sfondo", +DlgDocBgNoScroll : "Sfondo fissato", +DlgDocCText : "Testo", +DlgDocCLink : "Collegamento", +DlgDocCVisited : "Collegamento visitato", +DlgDocCActive : "Collegamento attivo", +DlgDocMargins : "Margini", +DlgDocMaTop : "In Alto", +DlgDocMaLeft : "A Sinistra", +DlgDocMaRight : "A Destra", +DlgDocMaBottom : "In Basso", +DlgDocMeIndex : "Chiavi di indicizzazione documento (separate da virgola)", +DlgDocMeDescr : "Descrizione documento", +DlgDocMeAuthor : "Autore", +DlgDocMeCopy : "Copyright", +DlgDocPreview : "Anteprima", + +// Templates Dialog +Templates : "Modelli", +DlgTemplatesTitle : "Contenuto dei modelli", +DlgTemplatesSelMsg : "Seleziona il modello da aprire nell'editor
      (il contenuto attuale verrà eliminato):", +DlgTemplatesLoading : "Caricamento modelli in corso. Attendere prego...", +DlgTemplatesNoTpl : "(Nessun modello definito)", +DlgTemplatesReplace : "Cancella il contenuto corrente", + +// About Dialog +DlgAboutAboutTab : "Informazioni", +DlgAboutBrowserInfoTab : "Informazioni Browser", +DlgAboutLicenseTab : "Licenza", +DlgAboutVersion : "versione", +DlgAboutInfo : "Per maggiori informazioni visitare", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/ja.js b/fckeditor/editor/lang/ja.js new file mode 100644 index 0000000..9f0cffa --- /dev/null +++ b/fckeditor/editor/lang/ja.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Japanese language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "ツールバーを隠す", +ToolbarExpand : "ツールバーを表示", + +// Toolbar Items and Context Menu +Save : "保存", +NewPage : "新しいページ", +Preview : "プレビュー", +Cut : "切り取り", +Copy : "コピー", +Paste : "貼り付け", +PasteText : "プレーンテキスト貼り付け", +PasteWord : "ワード文章から貼り付け", +Print : "印刷", +SelectAll : "すべて選択", +RemoveFormat : "フォーマット削除", +InsertLinkLbl : "リンク", +InsertLink : "リンク挿入/編集", +RemoveLink : "リンク削除", +VisitLink : "リンクを開く", +Anchor : "アンカー挿入/編集", +AnchorDelete : "アンカー削除", +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 : "インデント", +Blockquote : "ブロック引用", +CreateDiv : "Div 作成", +EditDiv : "Div 編集", +DeleteDiv : "Div 削除", +Undo : "元に戻す", +Redo : "やり直し", +NumberedListLbl : "段落番号", +NumberedList : "段落番号の追加/削除", +BulletedListLbl : "箇条書き", +BulletedList : "箇条書きの追加/削除", +ShowTableBorders : "テーブルボーダー表示", +ShowDetails : "詳細表示", +Style : "スタイル", +FontFormat : "フォーマット", +Font : "フォント", +FontSize : "サイズ", +TextColor : "テキスト色", +BGColor : "背景色", +Source : "ソース", +Find : "検索", +Replace : "置き換え", +SpellCheck : "スペルチェック", +UniversalKeyboard : "ユニバーサル・キーボード", +PageBreakLbl : "改ページ", +PageBreak : "改ページ挿入", + +Form : "フォーム", +Checkbox : "チェックボックス", +RadioButton : "ラジオボタン", +TextField : "1行テキスト", +Textarea : "テキストエリア", +HiddenField : "不可視フィールド", +Button : "ボタン", +SelectionField : "選択フィールド", +ImageButton : "画像ボタン", + +FitWindow : "エディタサイズを最大にします", +ShowBlocks : "ブロック表示", + +// Context Menu +EditLink : "リンク編集", +CellCM : "セル", +RowCM : "行", +ColumnCM : "カラム", +InsertRowAfter : "列の後に挿入", +InsertRowBefore : "列の前に挿入", +DeleteRows : "行削除", +InsertColumnAfter : "カラムの後に挿入", +InsertColumnBefore : "カラムの前に挿入", +DeleteColumns : "列削除", +InsertCellAfter : "セルの後に挿入", +InsertCellBefore : "セルの前に挿入", +DeleteCells : "セル削除", +MergeCells : "セル結合", +MergeRight : "右に結合", +MergeDown : "下に結合", +HorizontalSplitCell : "セルを水平方向分割", +VerticalSplitCell : "セルを垂直方向に分割", +TableDelete : "テーブル削除", +CellProperties : "セル プロパティ", +TableProperties : "テーブル プロパティ", +ImageProperties : "イメージ プロパティ", +FlashProperties : "Flash プロパティ", + +AnchorProp : "アンカー プロパティ", +ButtonProp : "ボタン プロパティ", +CheckboxProp : "チェックボックス プロパティ", +HiddenFieldProp : "不可視フィールド プロパティ", +RadioButtonProp : "ラジオボタン プロパティ", +ImageButtonProp : "画像ボタン プロパティ", +TextFieldProp : "1行テキスト プロパティ", +SelectionFieldProp : "選択フィールド プロパティ", +TextareaProp : "テキストエリア プロパティ", +FormProp : "フォーム プロパティ", + +FontFormats : "標準;書式付き;アドレス;見出し 1;見出し 2;見出し 3;見出し 4;見出し 5;見出し 6;標準 (DIV)", + +// Alerts and Messages +ProcessingXHTML : "XHTML処理中. しばらくお待ちください...", +Done : "完了", +PasteWordConfirm : "貼り付けを行うテキストは、ワード文章からコピーされようとしています。貼り付ける前にクリーニングを行いますか?", +NotCompatiblePaste : "このコマンドはインターネット・エクスプローラーバージョン5.5以上で利用可能です。クリーニングしないで貼り付けを行いますか?", +UnknownToolbarItem : "未知のツールバー項目 \"%1\"", +UnknownCommand : "未知のコマンド名 \"%1\"", +NotImplemented : "コマンドはインプリメントされませんでした。", +UnknownToolbarSet : "ツールバー設定 \"%1\" 存在しません。", +NoActiveX : "エラー、警告メッセージなどが発生した場合、ブラウザーのセキュリティ設定によりエディタのいくつかの機能が制限されている可能性があります。セキュリティ設定のオプションで\"ActiveXコントロールとプラグインの実行\"を有効にするにしてください。", +BrowseServerBlocked : "サーバーブラウザーを開くことができませんでした。ポップアップ・ブロック機能が無効になっているか確認してください。", +DialogBlocked : "ダイアログウィンドウを開くことができませんでした。ポップアップ・ブロック機能が無効になっているか確認してください。", +VisitLinkBlocked : "新しいウィンドウを開くことができませんでした。ポップアップ・ブロック機能が無効になっているか確認してください。", + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "キャンセル", +DlgBtnClose : "閉じる", +DlgBtnBrowseServer : "サーバーブラウザー", +DlgAdvancedTag : "高度な設定", +DlgOpOther : "<その他>", +DlgInfoTab : "情報", +DlgAlertUrl : "URLを挿入してください", + +// General Dialogs Labels +DlgGenNotSet : "<なし>", +DlgGenId : "Id", +DlgGenLangDir : "文字表記の方向", +DlgGenLangDirLtr : "左から右 (LTR)", +DlgGenLangDirRtl : "右から左 (RTL)", +DlgGenLangCode : "言語コード", +DlgGenAccessKey : "アクセスキー", +DlgGenName : "Name属性", +DlgGenTabIndex : "タブインデックス", +DlgGenLongDescr : "longdesc属性(長文説明)", +DlgGenClass : "スタイルシートクラス", +DlgGenTitle : "Title属性", +DlgGenContType : "Content Type属性", +DlgGenLinkCharset : "リンクcharset属性", +DlgGenStyle : "スタイルシート", + +// Image Dialog +DlgImgTitle : "イメージ プロパティ", +DlgImgInfoTab : "イメージ 情報", +DlgImgBtnUpload : "サーバーに送信", +DlgImgURL : "URL", +DlgImgUpload : "アップロード", +DlgImgAlt : "代替テキスト", +DlgImgWidth : "幅", +DlgImgHeight : "高さ", +DlgImgLockRatio : "ロック比率", +DlgBtnResetSize : "サイズリセット", +DlgImgBorder : "ボーダー", +DlgImgHSpace : "横間隔", +DlgImgVSpace : "縦間隔", +DlgImgAlign : "行揃え", +DlgImgAlignLeft : "左", +DlgImgAlignAbsBottom: "下部(絶対的)", +DlgImgAlignAbsMiddle: "中央(絶対的)", +DlgImgAlignBaseline : "ベースライン", +DlgImgAlignBottom : "下", +DlgImgAlignMiddle : "中央", +DlgImgAlignRight : "右", +DlgImgAlignTextTop : "テキスト上部", +DlgImgAlignTop : "上", +DlgImgPreview : "プレビュー", +DlgImgAlertUrl : "イメージのURLを入力してください。", +DlgImgLinkTab : "リンク", + +// Flash Dialog +DlgFlashTitle : "Flash プロパティ", +DlgFlashChkPlay : "再生", +DlgFlashChkLoop : "ループ再生", +DlgFlashChkMenu : "Flashメニュー可能", +DlgFlashScale : "拡大縮小設定", +DlgFlashScaleAll : "すべて表示", +DlgFlashScaleNoBorder : "外が見えない様に拡大", +DlgFlashScaleFit : "上下左右にフィット", + +// Link Dialog +DlgLnkWindowTitle : "ハイパーリンク", +DlgLnkInfoTab : "ハイパーリンク 情報", +DlgLnkTargetTab : "ターゲット", + +DlgLnkType : "リンクタイプ", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "このページのアンカー", +DlgLnkTypeEMail : "E-Mail", +DlgLnkProto : "プロトコル", +DlgLnkProtoOther : "<その他>", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "アンカーを選択", +DlgLnkAnchorByName : "アンカー名", +DlgLnkAnchorById : "エレメントID", +DlgLnkNoAnchors : "(ドキュメントにおいて利用可能なアンカーはありません。)", +DlgLnkEMail : "E-Mail アドレス", +DlgLnkEMailSubject : "件名", +DlgLnkEMailBody : "本文", +DlgLnkUpload : "アップロード", +DlgLnkBtnUpload : "サーバーに送信", + +DlgLnkTarget : "ターゲット", +DlgLnkTargetFrame : "<フレーム>", +DlgLnkTargetPopup : "<ポップアップウィンドウ>", +DlgLnkTargetBlank : "新しいウィンドウ (_blank)", +DlgLnkTargetParent : "親ウィンドウ (_parent)", +DlgLnkTargetSelf : "同じウィンドウ (_self)", +DlgLnkTargetTop : "最上位ウィンドウ (_top)", +DlgLnkTargetFrameName : "目的のフレーム名", +DlgLnkPopWinName : "ポップアップウィンドウ名", +DlgLnkPopWinFeat : "ポップアップウィンドウ特徴", +DlgLnkPopResize : "リサイズ可能", +DlgLnkPopLocation : "ロケーションバー", +DlgLnkPopMenu : "メニューバー", +DlgLnkPopScroll : "スクロールバー", +DlgLnkPopStatus : "ステータスバー", +DlgLnkPopToolbar : "ツールバー", +DlgLnkPopFullScrn : "全画面モード(IE)", +DlgLnkPopDependent : "開いたウィンドウに連動して閉じる (Netscape)", +DlgLnkPopWidth : "幅", +DlgLnkPopHeight : "高さ", +DlgLnkPopLeft : "左端からの座標で指定", +DlgLnkPopTop : "上端からの座標で指定", + +DlnLnkMsgNoUrl : "リンクURLを入力してください。", +DlnLnkMsgNoEMail : "メールアドレスを入力してください。", +DlnLnkMsgNoAnchor : "アンカーを選択してください。", +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 : "Yes", +DlgCellWordWrapNo : "No", +DlgCellHorAlign : "セル横の整列", +DlgCellHorAlignNotSet : "<なし>", +DlgCellHorAlignLeft : "左", +DlgCellHorAlignCenter : "中央", +DlgCellHorAlignRight: "右", +DlgCellVerAlign : "セル縦の整列", +DlgCellVerAlignNotSet : "<なし>", +DlgCellVerAlignTop : "上", +DlgCellVerAlignMiddle : "中央", +DlgCellVerAlignBottom : "下", +DlgCellVerAlignBaseline : "ベースライン", +DlgCellRowSpan : "縦幅(行数)", +DlgCellCollSpan : "横幅(列数)", +DlgCellBackColor : "背景色", +DlgCellBorderColor : "ボーダーカラー", +DlgCellBtnSelect : "選択...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "検索して置換", + +// Find Dialog +DlgFindTitle : "検索", +DlgFindFindBtn : "検索", +DlgFindNotFoundMsg : "指定された文字列は見つかりませんでした。", + +// Replace Dialog +DlgReplaceTitle : "置き換え", +DlgReplaceFindLbl : "検索する文字列:", +DlgReplaceReplaceLbl : "置換えする文字列:", +DlgReplaceCaseChk : "部分一致", +DlgReplaceReplaceBtn : "置換え", +DlgReplaceReplAllBtn : "すべて置換え", +DlgReplaceWordChk : "単語単位で一致", + +// Paste Operations / Dialog +PasteErrorCut : "ブラウザーのセキュリティ設定によりエディタの切り取り操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+X)を使用してください。", +PasteErrorCopy : "ブラウザーのセキュリティ設定によりエディタのコピー操作が自動で実行することができません。実行するには手動でキーボードの(Ctrl+C)を使用してください。", + +PasteAsText : "プレーンテキスト貼り付け", +PasteFromWord : "ワード文章から貼り付け", + +DlgPasteMsg2 : "キーボード(Ctrl+V)を使用して、次の入力エリア内で貼って、OKを押してください。", +DlgPasteSec : "ブラウザのセキュリティ設定により、エディタはクリップボード・データに直接アクセスすることができません。このウィンドウは貼り付け操作を行う度に表示されます。", +DlgPasteIgnoreFont : "FontタグのFace属性を無視します。", +DlgPasteRemoveStyles : "スタイル定義を削除します。", + +// Color Picker +ColorAutomatic : "自動", +ColorMoreColors : "その他の色...", + +// Document Properties +DocProps : "文書 プロパティ", + +// Anchor Dialog +DlgAnchorTitle : "アンカー プロパティ", +DlgAnchorName : "アンカー名", +DlgAnchorErrorName : "アンカー名を必ず入力してください。", + +// Speller Pages Dialog +DlgSpellNotInDic : "辞書にありません", +DlgSpellChangeTo : "変更", +DlgSpellBtnIgnore : "無視", +DlgSpellBtnIgnoreAll : "すべて無視", +DlgSpellBtnReplace : "置換", +DlgSpellBtnReplaceAll : "すべて置換", +DlgSpellBtnUndo : "やり直し", +DlgSpellNoSuggestions : "- 該当なし -", +DlgSpellProgress : "スペルチェック処理中...", +DlgSpellNoMispell : "スペルチェック完了: スペルの誤りはありませんでした", +DlgSpellNoChanges : "スペルチェック完了: 語句は変更されませんでした", +DlgSpellOneChange : "スペルチェック完了: 1語句変更されました", +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 : "Unicode (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 : "バージョン情報", +DlgAboutBrowserInfoTab : "ブラウザ情報", +DlgAboutLicenseTab : "ライセンス", +DlgAboutVersion : "バージョン", +DlgAboutInfo : "より詳しい情報はこちらで", + +// Div Dialog +DlgDivGeneralTab : "全般", +DlgDivAdvancedTab : "高度な設定", +DlgDivStyle : "スタイル", +DlgDivInlineStyle : "インラインスタイル" +}; diff --git a/fckeditor/editor/lang/km.js b/fckeditor/editor/lang/km.js new file mode 100644 index 0000000..829e843 --- /dev/null +++ b/fckeditor/editor/lang/km.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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 : "លប់ឈ្នាប់", +VisitLink : "Open Link", //MISSING +Anchor : "បន្ថែម/កែប្រែ យុថ្កា", +AnchorDelete : "Remove Anchor", //MISSING +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 : "បន្ថែមការចូលបន្ទាត់", +Blockquote : "Blockquote", //MISSING +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "សារឡើងវិញ", +Redo : "ធ្វើឡើងវិញ", +NumberedListLbl : "បញ្ជីជាអក្សរ", +NumberedList : "បន្ថែម/លប់ បញ្ជីជាអក្សរ", +BulletedListLbl : "បញ្ជីជារង្វង់មូល", +BulletedList : "បន្ថែម/លប់ បញ្ជីជារង្វង់មូល", +ShowTableBorders : "បង្ហាញស៊ុមតារាង", +ShowDetails : "បង្ហាញពិស្តារ", +Style : "ម៉ូត", +FontFormat : "រចនា", +Font : "ហ្វុង", +FontSize : "ទំហំ", +TextColor : "ពណ៌អក្សរ", +BGColor : "ពណ៌ផ្ទៃខាងក្រោយ", +Source : "កូត", +Find : "ស្វែងរក", +Replace : "ជំនួស", +SpellCheck : "ពិនិត្យអក្ខរាវិរុទ្ធ", +UniversalKeyboard : "ក្តារពុម្ភអក្សរសកល", +PageBreakLbl : "ការផ្តាច់ទំព័រ", +PageBreak : "បន្ថែម ការផ្តាច់ទំព័រ", + +Form : "បែបបទ", +Checkbox : "ប្រអប់ជ្រើសរើស", +RadioButton : "ប៉ូតុនរង្វង់មូល", +TextField : "ជួរសរសេរអត្ថបទ", +Textarea : "តំបន់សរសេរអត្ថបទ", +HiddenField : "ជួរលាក់", +Button : "ប៉ូតុន", +SelectionField : "ជួរជ្រើសរើស", +ImageButton : "ប៉ូតុនរូបភាព", + +FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING + +// Context Menu +EditLink : "កែប្រែឈ្នាប់", +CellCM : "Cell", //MISSING +RowCM : "Row", //MISSING +ColumnCM : "Column", //MISSING +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING +DeleteRows : "លប់ជួរផ្តេក", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING +DeleteColumns : "លប់ជួរឈរ", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING +DeleteCells : "លប់សែល", +MergeCells : "បញ្ជូលសែល", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING +TableDelete : "លប់តារាង", +CellProperties : "ការកំណត់សែល", +TableProperties : "ការកំណត់តារាង", +ImageProperties : "ការកំណត់រូបភាព", +FlashProperties : "ការកំណត់ Flash", + +AnchorProp : "ការកំណត់យុថ្កា", +ButtonProp : "ការកំណត់ ប៉ូតុន", +CheckboxProp : "ការកំណត់ប្រអប់ជ្រើសរើស", +HiddenFieldProp : "ការកំណត់ជួរលាក់", +RadioButtonProp : "ការកំណត់ប៉ូតុនរង្វង់", +ImageButtonProp : "ការកំណត់ប៉ូតុនរូបភាព", +TextFieldProp : "ការកំណត់ជួរអត្ថបទ", +SelectionFieldProp : "ការកំណត់ជួរជ្រើសរើស", +TextareaProp : "ការកំណត់កន្លែងសរសេរអត្ថបទ", +FormProp : "ការកំណត់បែបបទ", + +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6;Normal (DIV)", + +// Alerts and Messages +ProcessingXHTML : "កំពុងដំណើរការ XHTML ។ សូមរងចាំ...", +Done : "ចប់រួចរាល់", +PasteWordConfirm : "អត្ថបទដែលលោកអ្នកបំរុងចំលងដាក់ ហាក់បីដូចជាត្រូវចំលងមកពីកម្មវិធី​Word​។ តើលោកអ្នកចង់សំអាតមុនចំលងអត្ថបទដាក់ទេ?", +NotCompatiblePaste : "ពាក្យបញ្ជានេះប្រើបានតែជាមួយ Internet Explorer កំរិត 5.5 រឺ លើសនេះ ។ តើលោកអ្នកចង់ចំលងដាក់ដោយមិនចាំបាច់សំអាតទេ?", +UnknownToolbarItem : "វត្ថុលើរបាឧបរកណ៍ មិនស្គាល់ \"%1\"", +UnknownCommand : "ឈ្មោះពាក្យបញ្ជា មិនស្គាល់ \"%1\"", +NotImplemented : "ពាក្យបញ្ជា មិនបានអនុវត្ត", +UnknownToolbarSet : "របាឧបរកណ៍ \"%1\" ពុំមាន ។", +NoActiveX : "ការកំណត់សុវត្ថភាពរបស់កម្មវិធីរុករករបស់លោកអ្នក នេះ​អាចធ្វើអោយលោកអ្នកមិនអាចប្រើមុខងារខ្លះរបស់កម្មវិធីតាក់តែងអត្ថបទនេះ ។ លោកអ្នកត្រូវកំណត់អោយ \"ActiveX និង​កម្មវិធីជំនួយក្នុង (plug-ins)\" អោយដំណើរការ ។ លោកអ្នកអាចជួបប្រទះនឹង បញ្ហា ព្រមជាមួយនឹងការបាត់បង់មុខងារណាមួយរបស់កម្មវិធីតាក់តែងអត្ថបទនេះ ។", +BrowseServerBlocked : "The resources browser could not be opened. Make sure that all popup blockers are disabled.", //MISSING +DialogBlocked : "វីនដូវមិនអាចបើកបានទេ ។ សូមពិនិត្យចំពោះកម្មវិធីបិទ វីនដូវលោត (popup) ថាតើវាដំណើរការរឺទេ ។", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "យល់ព្រម", +DlgBtnCancel : "មិនយល់ព្រម", +DlgBtnClose : "បិទ", +DlgBtnBrowseServer : "មើល", +DlgAdvancedTag : "កំរិតខ្ពស់", +DlgOpOther : "<ផ្សេងទៅត>", +DlgInfoTab : "ពត៌មាន", +DlgAlertUrl : "សូមសរសេរ URL", + +// General Dialogs Labels +DlgGenNotSet : "<មិនមែន>", +DlgGenId : "Id", +DlgGenLangDir : "ទិសដៅភាសា", +DlgGenLangDirLtr : "ពីឆ្វេងទៅស្តាំ(LTR)", +DlgGenLangDirRtl : "ពីស្តាំទៅឆ្វេង(RTL)", +DlgGenLangCode : "លេខកូតភាសា", +DlgGenAccessKey : "ឃី សំរាប់ចូល", +DlgGenName : "ឈ្មោះ", +DlgGenTabIndex : "លេខ 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 : "(No anchors available in the document)", //MISSING +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 and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + +// 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 : "សូមចំលងអត្ថបទទៅដាក់ក្នុងប្រអប់ដូចខាងក្រោមដោយប្រើប្រាស់ ឃី ​(Ctrl+V) ហើយចុច OK ។", +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 : "លប់ម៉ូត", + +// 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 : "សូមជ្រើសរើសឯកសារគំរូ ដើម្បីបើកនៅក្នុងកម្មវិធីតាក់តែងអត្ថបទ
      (អត្ថបទនឹងបាត់បង់):", +DlgTemplatesLoading : "កំពុងអានបញ្ជីឯកសារគំរូ ។ សូមរងចាំ...", +DlgTemplatesNoTpl : "(ពុំមានឯកសារគំរូត្រូវបានកំណត់)", +DlgTemplatesReplace : "Replace actual contents", //MISSING + +// About Dialog +DlgAboutAboutTab : "អំពី", +DlgAboutBrowserInfoTab : "ព៌តមានកម្មវិធីរុករក", +DlgAboutLicenseTab : "License", //MISSING +DlgAboutVersion : "ជំនាន់", +DlgAboutInfo : "សំរាប់ព៌តមានផ្សេងទៀត សូមទាក់ទង", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/ko.js b/fckeditor/editor/lang/ko.js new file mode 100644 index 0000000..00870de --- /dev/null +++ b/fckeditor/editor/lang/ko.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Korean 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 : "MS Word 형식에서 붙여넣기", +Print : "인쇄하기", +SelectAll : "전체선택", +RemoveFormat : "포맷 지우기", +InsertLinkLbl : "링크", +InsertLink : "링크 삽입/변경", +RemoveLink : "링크 삭제", +VisitLink : "Open Link", //MISSING +Anchor : "책갈피 삽입/변경", +AnchorDelete : "Remove Anchor", //MISSING +InsertImageLbl : "이미지", +InsertImage : "이미지 삽입/변경", +InsertFlashLbl : "플래쉬", +InsertFlash : "플래쉬 삽입/변경", +InsertTableLbl : "표", +InsertTable : "표 삽입/변경", +InsertLineLbl : "수평선", +InsertLine : "수평선 삽입", +InsertSpecialCharLbl: "특수문자 삽입", +InsertSpecialChar : "특수문자 삽입", +InsertSmileyLbl : "아이콘", +InsertSmiley : "아이콘 삽입", +About : "FCKeditor에 대하여", +Bold : "진하게", +Italic : "이텔릭", +Underline : "밑줄", +StrikeThrough : "취소선", +Subscript : "아래 첨자", +Superscript : "위 첨자", +LeftJustify : "왼쪽 정렬", +CenterJustify : "가운데 정렬", +RightJustify : "오른쪽 정렬", +BlockJustify : "양쪽 맞춤", +DecreaseIndent : "내어쓰기", +IncreaseIndent : "들여쓰기", +Blockquote : "Blockquote", //MISSING +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "취소", +Redo : "재실행", +NumberedListLbl : "순서있는 목록", +NumberedList : "순서있는 목록", +BulletedListLbl : "순서없는 목록", +BulletedList : "순서없는 목록", +ShowTableBorders : "표 테두리 보기", +ShowDetails : "문서기호 보기", +Style : "스타일", +FontFormat : "포맷", +Font : "폰트", +FontSize : "글자 크기", +TextColor : "글자 색상", +BGColor : "배경 색상", +Source : "소스", +Find : "찾기", +Replace : "바꾸기", +SpellCheck : "철자검사", +UniversalKeyboard : "다국어 입력기", +PageBreakLbl : "Page Break", //MISSING +PageBreak : "Insert Page Break", //MISSING + +Form : "폼", +Checkbox : "체크박스", +RadioButton : "라디오버튼", +TextField : "입력필드", +Textarea : "입력영역", +HiddenField : "숨김필드", +Button : "버튼", +SelectionField : "펼침목록", +ImageButton : "이미지버튼", + +FitWindow : "에디터 최대화", +ShowBlocks : "Show Blocks", //MISSING + +// Context Menu +EditLink : "링크 수정", +CellCM : "셀/칸(Cell)", +RowCM : "행(Row)", +ColumnCM : "열(Column)", +InsertRowAfter : "뒤에 행 삽입", +InsertRowBefore : "앞에 행 삽입", +DeleteRows : "가로줄 삭제", +InsertColumnAfter : "뒤에 열 삽입", +InsertColumnBefore : "앞에 열 삽입", +DeleteColumns : "세로줄 삭제", +InsertCellAfter : "뒤에 셀/칸 삽입", +InsertCellBefore : "앞에 셀/칸 삽입", +DeleteCells : "셀 삭제", +MergeCells : "셀 합치기", +MergeRight : "오른쪽 뭉치기", +MergeDown : "왼쪽 뭉치기", +HorizontalSplitCell : "수평 나누기", +VerticalSplitCell : "수직 나누기", +TableDelete : "표 삭제", +CellProperties : "셀 속성", +TableProperties : "표 속성", +ImageProperties : "이미지 속성", +FlashProperties : "플래쉬 속성", + +AnchorProp : "책갈피 속성", +ButtonProp : "버튼 속성", +CheckboxProp : "체크박스 속성", +HiddenFieldProp : "숨김필드 속성", +RadioButtonProp : "라디오버튼 속성", +ImageButtonProp : "이미지버튼 속성", +TextFieldProp : "입력필드 속성", +SelectionFieldProp : "펼침목록 속성", +TextareaProp : "입력영역 속성", +FormProp : "폼 속성", + +FontFormats : "Normal;Formatted;Address;Heading 1;Heading 2;Heading 3;Heading 4;Heading 5;Heading 6", + +// Alerts and Messages +ProcessingXHTML : "XHTML 처리중. 잠시만 기다려주십시요.", +Done : "완료", +PasteWordConfirm : "붙여넣기 할 텍스트는 MS Word에서 복사한 것입니다. 붙여넣기 전에 MS Word 포멧을 삭제하시겠습니까?", +NotCompatiblePaste : "이 명령은 인터넷익스플로러 5.5 버전 이상에서만 작동합니다. 포멧을 삭제하지 않고 붙여넣기 하시겠습니까?", +UnknownToolbarItem : "알수없는 툴바입니다. : \"%1\"", +UnknownCommand : "알수없는 기능입니다. : \"%1\"", +NotImplemented : "기능이 실행되지 않았습니다.", +UnknownToolbarSet : "툴바 설정이 없습니다. : \"%1\"", +NoActiveX : "브러우저의 보안 설정으로 인해 몇몇 기능의 작동에 장애가 있을 수 있습니다. \"액티브-액스 기능과 플러그 인\" 옵션을 허용하여 주시지 않으면 오류가 발생할 수 있습니다.", +BrowseServerBlocked : "브러우저 요소가 열리지 않습니다. 팝업차단 설정이 꺼져있는지 확인하여 주십시오.", +DialogBlocked : "윈도우 대화창을 열 수 없습니다. 팝업차단 설정이 꺼져있는지 확인하여 주십시오.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "예", +DlgBtnCancel : "아니오", +DlgBtnClose : "닫기", +DlgBtnBrowseServer : "서버 보기", +DlgAdvancedTag : "자세히", +DlgOpOther : "<기타>", +DlgInfoTab : "정보", +DlgAlertUrl : "URL을 입력하십시요", + +// General Dialogs Labels +DlgGenNotSet : "<설정되지 않음>", +DlgGenId : "ID", +DlgGenLangDir : "쓰기 방향", +DlgGenLangDirLtr : "왼쪽에서 오른쪽 (LTR)", +DlgGenLangDirRtl : "오른쪽에서 왼쪽 (RTL)", +DlgGenLangCode : "언어 코드", +DlgGenAccessKey : "엑세스 키", +DlgGenName : "Name", +DlgGenTabIndex : "탭 순서", +DlgGenLongDescr : "URL 설명", +DlgGenClass : "Stylesheet Classes", +DlgGenTitle : "Advisory Title", +DlgGenContType : "Advisory Content Type", +DlgGenLinkCharset : "Linked Resource Charset", +DlgGenStyle : "Style", + +// Image Dialog +DlgImgTitle : "이미지 설정", +DlgImgInfoTab : "이미지 정보", +DlgImgBtnUpload : "서버로 전송", +DlgImgURL : "URL", +DlgImgUpload : "업로드", +DlgImgAlt : "이미지 설명", +DlgImgWidth : "너비", +DlgImgHeight : "높이", +DlgImgLockRatio : "비율 유지", +DlgBtnResetSize : "원래 크기로", +DlgImgBorder : "테두리", +DlgImgHSpace : "수평여백", +DlgImgVSpace : "수직여백", +DlgImgAlign : "정렬", +DlgImgAlignLeft : "왼쪽", +DlgImgAlignAbsBottom: "줄아래(Abs Bottom)", +DlgImgAlignAbsMiddle: "줄중간(Abs Middle)", +DlgImgAlignBaseline : "기준선", +DlgImgAlignBottom : "아래", +DlgImgAlignMiddle : "중간", +DlgImgAlignRight : "오른쪽", +DlgImgAlignTextTop : "글자상단", +DlgImgAlignTop : "위", +DlgImgPreview : "미리보기", +DlgImgAlertUrl : "이미지 URL을 입력하십시요", +DlgImgLinkTab : "링크", + +// Flash Dialog +DlgFlashTitle : "플래쉬 등록정보", +DlgFlashChkPlay : "자동재생", +DlgFlashChkLoop : "반복", +DlgFlashChkMenu : "플래쉬메뉴 가능", +DlgFlashScale : "영역", +DlgFlashScaleAll : "모두보기", +DlgFlashScaleNoBorder : "경계선없음", +DlgFlashScaleFit : "영역자동조절", + +// Link Dialog +DlgLnkWindowTitle : "링크", +DlgLnkInfoTab : "링크 정보", +DlgLnkTargetTab : "타겟", + +DlgLnkType : "링크 종류", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "책갈피", +DlgLnkTypeEMail : "이메일", +DlgLnkProto : "프로토콜", +DlgLnkProtoOther : "<기타>", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "책갈피 선택", +DlgLnkAnchorByName : "책갈피 이름", +DlgLnkAnchorById : "책갈피 ID", +DlgLnkNoAnchors : "(문서에 책갈피가 없습니다.)", +DlgLnkEMail : "이메일 주소", +DlgLnkEMailSubject : "제목", +DlgLnkEMailBody : "내용", +DlgLnkUpload : "업로드", +DlgLnkBtnUpload : "서버로 전송", + +DlgLnkTarget : "타겟", +DlgLnkTargetFrame : "<프레임>", +DlgLnkTargetPopup : "<팝업창>", +DlgLnkTargetBlank : "새 창 (_blank)", +DlgLnkTargetParent : "부모 창 (_parent)", +DlgLnkTargetSelf : "현재 창 (_self)", +DlgLnkTargetTop : "최 상위 창 (_top)", +DlgLnkTargetFrameName : "타겟 프레임 이름", +DlgLnkPopWinName : "팝업창 이름", +DlgLnkPopWinFeat : "팝업창 설정", +DlgLnkPopResize : "크기조정", +DlgLnkPopLocation : "주소표시줄", +DlgLnkPopMenu : "메뉴바", +DlgLnkPopScroll : "스크롤바", +DlgLnkPopStatus : "상태바", +DlgLnkPopToolbar : "툴바", +DlgLnkPopFullScrn : "전체화면 (IE)", +DlgLnkPopDependent : "Dependent (Netscape)", +DlgLnkPopWidth : "너비", +DlgLnkPopHeight : "높이", +DlgLnkPopLeft : "왼쪽 위치", +DlgLnkPopTop : "윗쪽 위치", + +DlnLnkMsgNoUrl : "링크 URL을 입력하십시요.", +DlnLnkMsgNoEMail : "이메일주소를 입력하십시요.", +DlnLnkMsgNoAnchor : "책갈피명을 입력하십시요.", +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 : "Summary", //MISSING + +// Table Cell Dialog +DlgCellTitle : "셀 설정", +DlgCellWidth : "너비", +DlgCellWidthPx : "픽셀", +DlgCellWidthPc : "퍼센트", +DlgCellHeight : "높이", +DlgCellWordWrap : "워드랩", +DlgCellWordWrapNotSet : "<설정되지 않음>", +DlgCellWordWrapYes : "예", +DlgCellWordWrapNo : "아니오", +DlgCellHorAlign : "수평 정렬", +DlgCellHorAlignNotSet : "<설정되지 않음>", +DlgCellHorAlignLeft : "왼쪽", +DlgCellHorAlignCenter : "가운데", +DlgCellHorAlignRight: "오른쪽", +DlgCellVerAlign : "수직 정렬", +DlgCellVerAlignNotSet : "<설정되지 않음>", +DlgCellVerAlignTop : "위", +DlgCellVerAlignMiddle : "중간", +DlgCellVerAlignBottom : "아래", +DlgCellVerAlignBaseline : "기준선", +DlgCellRowSpan : "세로 합치기", +DlgCellCollSpan : "가로 합치기", +DlgCellBackColor : "배경 색상", +DlgCellBorderColor : "테두리 색상", +DlgCellBtnSelect : "선택", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "찾기 & 바꾸기", + +// Find Dialog +DlgFindTitle : "찾기", +DlgFindFindBtn : "찾기", +DlgFindNotFoundMsg : "문자열을 찾을 수 없습니다.", + +// Replace Dialog +DlgReplaceTitle : "바꾸기", +DlgReplaceFindLbl : "찾을 문자열:", +DlgReplaceReplaceLbl : "바꿀 문자열:", +DlgReplaceCaseChk : "대소문자 구분", +DlgReplaceReplaceBtn : "바꾸기", +DlgReplaceReplAllBtn : "모두 바꾸기", +DlgReplaceWordChk : "온전한 단어", + +// Paste Operations / Dialog +PasteErrorCut : "브라우저의 보안설정때문에 잘라내기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요. (Ctrl+X).", +PasteErrorCopy : "브라우저의 보안설정때문에 복사하기 기능을 실행할 수 없습니다. 키보드 명령을 사용하십시요. (Ctrl+C).", + +PasteAsText : "텍스트로 붙여넣기", +PasteFromWord : "MS Word 형식에서 붙여넣기", + +DlgPasteMsg2 : "키보드의 (Ctrl+V) 를 이용해서 상자안에 붙여넣고 OK 를 누르세요.", +DlgPasteSec : "브러우저 보안 설정으로 인해, 클립보드의 자료를 직접 접근할 수 없습니다. 이 창에 다시 붙여넣기 하십시오.", +DlgPasteIgnoreFont : "폰트 설정 무시", +DlgPasteRemoveStyles : "스타일 정의 제거", + +// Color Picker +ColorAutomatic : "기본색상", +ColorMoreColors : "색상선택...", + +// Document Properties +DocProps : "문서 속성", + +// Anchor Dialog +DlgAnchorTitle : "책갈피 속성", +DlgAnchorName : "책갈피 이름", +DlgAnchorErrorName : "책갈피 이름을 입력하십시요.", + +// Speller Pages Dialog +DlgSpellNotInDic : "사전에 없는 단어", +DlgSpellChangeTo : "변경할 단어", +DlgSpellBtnIgnore : "건너뜀", +DlgSpellBtnIgnoreAll : "모두 건너뜀", +DlgSpellBtnReplace : "변경", +DlgSpellBtnReplaceAll : "모두 변경", +DlgSpellBtnUndo : "취소", +DlgSpellNoSuggestions : "- 추천단어 없음 -", +DlgSpellProgress : "철자검사를 진행중입니다...", +DlgSpellNoMispell : "철자검사 완료: 잘못된 철자가 없습니다.", +DlgSpellNoChanges : "철자검사 완료: 변경된 단어가 없습니다.", +DlgSpellOneChange : "철자검사 완료: 단어가 변경되었습니다.", +DlgSpellManyChanges : "철자검사 완료: %1 단어가 변경되었습니다.", + +IeSpellDownload : "철자 검사기가 철치되지 않았습니다. 지금 다운로드하시겠습니까?", + +// Button Dialog +DlgButtonText : "버튼글자(값)", +DlgButtonType : "버튼종류", +DlgButtonTypeBtn : "Button", //MISSING +DlgButtonTypeSbm : "Submit", //MISSING +DlgButtonTypeRst : "Reset", //MISSING + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "이름", +DlgCheckboxValue : "값", +DlgCheckboxSelected : "선택됨", + +// Form Dialog +DlgFormName : "폼이름", +DlgFormAction : "실행경로(Action)", +DlgFormMethod : "방법(Method)", + +// Select Field Dialog +DlgSelectName : "이름", +DlgSelectValue : "값", +DlgSelectSize : "세로크기", +DlgSelectLines : "줄", +DlgSelectChkMulti : "여러항목 선택 허용", +DlgSelectOpAvail : "선택옵션", +DlgSelectOpText : "이름", +DlgSelectOpValue : "값", +DlgSelectBtnAdd : "추가", +DlgSelectBtnModify : "변경", +DlgSelectBtnUp : "위로", +DlgSelectBtnDown : "아래로", +DlgSelectBtnSetValue : "선택된것으로 설정", +DlgSelectBtnDelete : "삭제", + +// Textarea Dialog +DlgTextareaName : "이름", +DlgTextareaCols : "칸수", +DlgTextareaRows : "줄수", + +// Text Field Dialog +DlgTextName : "이름", +DlgTextValue : "값", +DlgTextCharWidth : "글자 너비", +DlgTextMaxChars : "최대 글자수", +DlgTextType : "종류", +DlgTextTypeText : "문자열", +DlgTextTypePass : "비밀번호", + +// Hidden Field Dialog +DlgHiddenName : "이름", +DlgHiddenValue : "값", + +// Bulleted List Dialog +BulletedListProp : "순서없는 목록 속성", +NumberedListProp : "순서있는 목록 속성", +DlgLstStart : "Start", //MISSING +DlgLstType : "종류", +DlgLstTypeCircle : "원(Circle)", +DlgLstTypeDisc : "Disc", //MISSING +DlgLstTypeSquare : "네모점(Square)", +DlgLstTypeNumbers : "번호 (1, 2, 3)", +DlgLstTypeLCase : "소문자 (a, b, c)", +DlgLstTypeUCase : "대문자 (A, B, C)", +DlgLstTypeSRoman : "로마자 수문자 (i, ii, iii)", +DlgLstTypeLRoman : "로마자 대문자 (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "일반", +DlgDocBackTab : "배경", +DlgDocColorsTab : "색상 및 여백", +DlgDocMetaTab : "메타데이터", + +DlgDocPageTitle : "페이지명", +DlgDocLangDir : "문자 쓰기방향", +DlgDocLangDirLTR : "왼쪽에서 오른쪽 (LTR)", +DlgDocLangDirRTL : "오른쪽에서 왼쪽 (RTL)", +DlgDocLangCode : "언어코드", +DlgDocCharSet : "캐릭터셋 인코딩", +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 : "방문한 링크(Visited)", +DlgDocCActive : "활성화된 링크(Active)", +DlgDocMargins : "페이지 여백", +DlgDocMaTop : "위", +DlgDocMaLeft : "왼쪽", +DlgDocMaRight : "오른쪽", +DlgDocMaBottom : "아래", +DlgDocMeIndex : "문서 키워드 (콤마로 구분)", +DlgDocMeDescr : "문서 설명", +DlgDocMeAuthor : "작성자", +DlgDocMeCopy : "저작권", +DlgDocPreview : "미리보기", + +// Templates Dialog +Templates : "템플릿", +DlgTemplatesTitle : "내용 템플릿", +DlgTemplatesSelMsg : "에디터에서 사용할 템플릿을 선택하십시요.
      (지금까지 작성된 내용은 사라집니다.):", +DlgTemplatesLoading : "템플릿 목록을 불러오는중입니다. 잠시만 기다려주십시요.", +DlgTemplatesNoTpl : "(템플릿이 없습니다.)", +DlgTemplatesReplace : "현재 내용 바꾸기", + +// About Dialog +DlgAboutAboutTab : "About", +DlgAboutBrowserInfoTab : "브라우저 정보", +DlgAboutLicenseTab : "License", //MISSING +DlgAboutVersion : "버전", +DlgAboutInfo : "더 많은 정보를 보시려면 다음 사이트로 가십시오.", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/lt.js b/fckeditor/editor/lang/lt.js new file mode 100644 index 0000000..de2f8f5 --- /dev/null +++ b/fckeditor/editor/lang/lt.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * Lithuanian language file. + */ + +var FCKLang = +{ +// Language direction : "ltr" (left to right) or "rtl" (right to left). +Dir : "ltr", + +ToolbarCollapse : "Sutraukti mygtukų juostą", +ToolbarExpand : "Išplėsti mygtukų juostą", + +// Toolbar Items and Context Menu +Save : "Išsaugoti", +NewPage : "Naujas puslapis", +Preview : "Peržiūra", +Cut : "Iškirpti", +Copy : "Kopijuoti", +Paste : "Įdėti", +PasteText : "Įdėti kaip gryną tekstą", +PasteWord : "Įdėti iš Word", +Print : "Spausdinti", +SelectAll : "Pažymėti viską", +RemoveFormat : "Panaikinti formatą", +InsertLinkLbl : "Nuoroda", +InsertLink : "Įterpti/taisyti nuorodą", +RemoveLink : "Panaikinti nuorodą", +VisitLink : "Open Link", //MISSING +Anchor : "Įterpti/modifikuoti žymę", +AnchorDelete : "Remove Anchor", //MISSING +InsertImageLbl : "Vaizdas", +InsertImage : "Įterpti/taisyti vaizdą", +InsertFlashLbl : "Flash", +InsertFlash : "Įterpti/taisyti Flash", +InsertTableLbl : "Lentelė", +InsertTable : "Įterpti/taisyti lentelę", +InsertLineLbl : "Linija", +InsertLine : "Įterpti horizontalią liniją", +InsertSpecialCharLbl: "Spec. simbolis", +InsertSpecialChar : "Įterpti specialų simbolį", +InsertSmileyLbl : "Veideliai", +InsertSmiley : "Įterpti veidelį", +About : "Apie FCKeditor", +Bold : "Pusjuodis", +Italic : "Kursyvas", +Underline : "Pabrauktas", +StrikeThrough : "Perbrauktas", +Subscript : "Apatinis indeksas", +Superscript : "Viršutinis indeksas", +LeftJustify : "Lygiuoti kairę", +CenterJustify : "Centruoti", +RightJustify : "Lygiuoti dešinę", +BlockJustify : "Lygiuoti abi puses", +DecreaseIndent : "Sumažinti įtrauką", +IncreaseIndent : "Padidinti įtrauką", +Blockquote : "Blockquote", //MISSING +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "Atšaukti", +Redo : "Atstatyti", +NumberedListLbl : "Numeruotas sąrašas", +NumberedList : "Įterpti/Panaikinti numeruotą sąrašą", +BulletedListLbl : "Suženklintas sąrašas", +BulletedList : "Įterpti/Panaikinti suženklintą sąrašą", +ShowTableBorders : "Rodyti lentelės rėmus", +ShowDetails : "Rodyti detales", +Style : "Stilius", +FontFormat : "Šrifto formatas", +Font : "Šriftas", +FontSize : "Šrifto dydis", +TextColor : "Teksto spalva", +BGColor : "Fono spalva", +Source : "Šaltinis", +Find : "Rasti", +Replace : "Pakeisti", +SpellCheck : "Rašybos tikrinimas", +UniversalKeyboard : "Universali klaviatūra", +PageBreakLbl : "Puslapių skirtukas", +PageBreak : "Įterpti puslapių skirtuką", + +Form : "Forma", +Checkbox : "Žymimasis langelis", +RadioButton : "Žymimoji akutė", +TextField : "Teksto laukas", +Textarea : "Teksto sritis", +HiddenField : "Nerodomas laukas", +Button : "Mygtukas", +SelectionField : "Atrankos laukas", +ImageButton : "Vaizdinis mygtukas", + +FitWindow : "Maximize the editor size", //MISSING +ShowBlocks : "Show Blocks", //MISSING + +// Context Menu +EditLink : "Taisyti nuorodą", +CellCM : "Cell", //MISSING +RowCM : "Row", //MISSING +ColumnCM : "Column", //MISSING +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING +DeleteRows : "Šalinti eilutes", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING +DeleteColumns : "Šalinti stulpelius", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING +DeleteCells : "Šalinti langelius", +MergeCells : "Sujungti langelius", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING +TableDelete : "Šalinti lentelę", +CellProperties : "Langelio savybės", +TableProperties : "Lentelės savybės", +ImageProperties : "Vaizdo savybės", +FlashProperties : "Flash savybės", + +AnchorProp : "Žymės savybės", +ButtonProp : "Mygtuko savybės", +CheckboxProp : "Žymimojo langelio savybės", +HiddenFieldProp : "Nerodomo lauko savybės", +RadioButtonProp : "Žymimosios akutės savybės", +ImageButtonProp : "Vaizdinio mygtuko savybės", +TextFieldProp : "Teksto lauko savybės", +SelectionFieldProp : "Atrankos lauko savybės", +TextareaProp : "Teksto srities savybės", +FormProp : "Formos savybės", + +FontFormats : "Normalus;Formuotas;Kreipinio;Antraštinis 1;Antraštinis 2;Antraštinis 3;Antraštinis 4;Antraštinis 5;Antraštinis 6", + +// Alerts and Messages +ProcessingXHTML : "Apdorojamas XHTML. Prašome palaukti...", +Done : "Baigta", +PasteWordConfirm : "Įdedamas tekstas yra panašus į kopiją iš Word. Ar Jūs norite prieš įdėjimą išvalyti jį?", +NotCompatiblePaste : "Ši komanda yra prieinama tik per Internet Explorer 5.5 ar aukštesnę versiją. Ar Jūs norite įterpti be valymo?", +UnknownToolbarItem : "Nežinomas mygtukų juosta elementas \"%1\"", +UnknownCommand : "Nežinomas komandos vardas \"%1\"", +NotImplemented : "Komanda nėra įgyvendinta", +UnknownToolbarSet : "Mygtukų juostos rinkinys \"%1\" neegzistuoja", +NoActiveX : "Jūsų naršyklės saugumo nuostatos gali riboti kai kurias redaktoriaus savybes. Jūs turite aktyvuoti opciją \"Run ActiveX controls and plug-ins\". Kitu atveju Jums bus pranešama apie klaidas ir trūkstamas savybes.", +BrowseServerBlocked : "Neįmanoma atidaryti naujo naršyklės lango. Įsitikinkite, kad iškylančių langų blokavimo programos neveiksnios.", +DialogBlocked : "Neįmanoma atidaryti dialogo lango. Įsitikinkite, kad iškylančių langų blokavimo programos neveiksnios.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "OK", +DlgBtnCancel : "Nutraukti", +DlgBtnClose : "Uždaryti", +DlgBtnBrowseServer : "Naršyti po serverį", +DlgAdvancedTag : "Papildomas", +DlgOpOther : "", +DlgInfoTab : "Informacija", +DlgAlertUrl : "Prašome įrašyti URL", + +// General Dialogs Labels +DlgGenNotSet : "", +DlgGenId : "Id", +DlgGenLangDir : "Teksto kryptis", +DlgGenLangDirLtr : "Iš kairės į dešinę (LTR)", +DlgGenLangDirRtl : "Iš dešinės į kairę (RTL)", +DlgGenLangCode : "Kalbos kodas", +DlgGenAccessKey : "Prieigos raktas", +DlgGenName : "Vardas", +DlgGenTabIndex : "Tabuliavimo indeksas", +DlgGenLongDescr : "Ilgas aprašymas URL", +DlgGenClass : "Stilių lentelės klasės", +DlgGenTitle : "Konsultacinė antraštė", +DlgGenContType : "Konsultacinio turinio tipas", +DlgGenLinkCharset : "Susietų išteklių simbolių lentelė", +DlgGenStyle : "Stilius", + +// Image Dialog +DlgImgTitle : "Vaizdo savybės", +DlgImgInfoTab : "Vaizdo informacija", +DlgImgBtnUpload : "Siųsti į serverį", +DlgImgURL : "URL", +DlgImgUpload : "Nusiųsti", +DlgImgAlt : "Alternatyvus Tekstas", +DlgImgWidth : "Plotis", +DlgImgHeight : "Aukštis", +DlgImgLockRatio : "Išlaikyti proporciją", +DlgBtnResetSize : "Atstatyti dydį", +DlgImgBorder : "Rėmelis", +DlgImgHSpace : "Hor.Erdvė", +DlgImgVSpace : "Vert.Erdvė", +DlgImgAlign : "Lygiuoti", +DlgImgAlignLeft : "Kairę", +DlgImgAlignAbsBottom: "Absoliučią apačią", +DlgImgAlignAbsMiddle: "Absoliutų vidurį", +DlgImgAlignBaseline : "Apatinę liniją", +DlgImgAlignBottom : "Apačią", +DlgImgAlignMiddle : "Vidurį", +DlgImgAlignRight : "Dešinę", +DlgImgAlignTextTop : "Teksto viršūnę", +DlgImgAlignTop : "Viršūnę", +DlgImgPreview : "Peržiūra", +DlgImgAlertUrl : "Prašome įvesti vaizdo URL", +DlgImgLinkTab : "Nuoroda", + +// Flash Dialog +DlgFlashTitle : "Flash savybės", +DlgFlashChkPlay : "Automatinis paleidimas", +DlgFlashChkLoop : "Ciklas", +DlgFlashChkMenu : "Leisti Flash meniu", +DlgFlashScale : "Mastelis", +DlgFlashScaleAll : "Rodyti visą", +DlgFlashScaleNoBorder : "Be rėmelio", +DlgFlashScaleFit : "Tikslus atitikimas", + +// Link Dialog +DlgLnkWindowTitle : "Nuoroda", +DlgLnkInfoTab : "Nuorodos informacija", +DlgLnkTargetTab : "Paskirtis", + +DlgLnkType : "Nuorodos tipas", +DlgLnkTypeURL : "URL", +DlgLnkTypeAnchor : "Žymė šiame puslapyje", +DlgLnkTypeEMail : "El.paštas", +DlgLnkProto : "Protokolas", +DlgLnkProtoOther : "", +DlgLnkURL : "URL", +DlgLnkAnchorSel : "Pasirinkite žymę", +DlgLnkAnchorByName : "Pagal žymės vardą", +DlgLnkAnchorById : "Pagal žymės Id", +DlgLnkNoAnchors : "(Šiame dokumente žymių nėra)", +DlgLnkEMail : "El.pašto adresas", +DlgLnkEMailSubject : "Žinutės tema", +DlgLnkEMailBody : "Žinutės turinys", +DlgLnkUpload : "Siųsti", +DlgLnkBtnUpload : "Siųsti į serverį", + +DlgLnkTarget : "Paskirties vieta", +DlgLnkTargetFrame : "", +DlgLnkTargetPopup : "", +DlgLnkTargetBlank : "Naujas langas (_blank)", +DlgLnkTargetParent : "Pirminis langas (_parent)", +DlgLnkTargetSelf : "Tas pats langas (_self)", +DlgLnkTargetTop : "Svarbiausias langas (_top)", +DlgLnkTargetFrameName : "Paskirties kadro vardas", +DlgLnkPopWinName : "Paskirties lango vardas", +DlgLnkPopWinFeat : "Išskleidžiamo lango savybės", +DlgLnkPopResize : "Keičiamas dydis", +DlgLnkPopLocation : "Adreso juosta", +DlgLnkPopMenu : "Meniu juosta", +DlgLnkPopScroll : "Slinkties juostos", +DlgLnkPopStatus : "Būsenos juosta", +DlgLnkPopToolbar : "Mygtukų juosta", +DlgLnkPopFullScrn : "Visas ekranas (IE)", +DlgLnkPopDependent : "Priklausomas (Netscape)", +DlgLnkPopWidth : "Plotis", +DlgLnkPopHeight : "Aukštis", +DlgLnkPopLeft : "Kairė pozicija", +DlgLnkPopTop : "Viršutinė pozicija", + +DlnLnkMsgNoUrl : "Prašome įvesti nuorodos URL", +DlnLnkMsgNoEMail : "Prašome įvesti el.pašto adresą", +DlnLnkMsgNoAnchor : "Prašome pasirinkti žymę", +DlnLnkMsgInvPopName : "The popup name must begin with an alphabetic character and must not contain spaces", //MISSING + +// Color Dialog +DlgColorTitle : "Pasirinkite spalvą", +DlgColorBtnClear : "Trinti", +DlgColorHighlight : "Paryškinta", +DlgColorSelected : "Pažymėta", + +// Smiley Dialog +DlgSmileyTitle : "Įterpti veidelį", + +// Special Character Dialog +DlgSpecialCharTitle : "Pasirinkite specialų simbolį", + +// Table Dialog +DlgTableTitle : "Lentelės savybės", +DlgTableRows : "Eilutės", +DlgTableColumns : "Stulpeliai", +DlgTableBorder : "Rėmelio dydis", +DlgTableAlign : "Lygiuoti", +DlgTableAlignNotSet : "", +DlgTableAlignLeft : "Kairę", +DlgTableAlignCenter : "Centrą", +DlgTableAlignRight : "Dešinę", +DlgTableWidth : "Plotis", +DlgTableWidthPx : "taškais", +DlgTableWidthPc : "procentais", +DlgTableHeight : "Aukštis", +DlgTableCellSpace : "Tarpas tarp langelių", +DlgTableCellPad : "Trapas nuo langelio rėmo iki teksto", +DlgTableCaption : "Antraštė", +DlgTableSummary : "Santrauka", + +// Table Cell Dialog +DlgCellTitle : "Langelio savybės", +DlgCellWidth : "Plotis", +DlgCellWidthPx : "taškais", +DlgCellWidthPc : "procentais", +DlgCellHeight : "Aukštis", +DlgCellWordWrap : "Teksto laužymas", +DlgCellWordWrapNotSet : "", +DlgCellWordWrapYes : "Taip", +DlgCellWordWrapNo : "Ne", +DlgCellHorAlign : "Horizontaliai lygiuoti", +DlgCellHorAlignNotSet : "", +DlgCellHorAlignLeft : "Kairę", +DlgCellHorAlignCenter : "Centrą", +DlgCellHorAlignRight: "Dešinę", +DlgCellVerAlign : "Vertikaliai lygiuoti", +DlgCellVerAlignNotSet : "", +DlgCellVerAlignTop : "Viršų", +DlgCellVerAlignMiddle : "Vidurį", +DlgCellVerAlignBottom : "Apačią", +DlgCellVerAlignBaseline : "Apatinę liniją", +DlgCellRowSpan : "Eilučių apjungimas", +DlgCellCollSpan : "Stulpelių apjungimas", +DlgCellBackColor : "Fono spalva", +DlgCellBorderColor : "Rėmelio spalva", +DlgCellBtnSelect : "Pažymėti...", + +// Find and Replace Dialog +DlgFindAndReplaceTitle : "Find and Replace", //MISSING + +// Find Dialog +DlgFindTitle : "Paieška", +DlgFindFindBtn : "Surasti", +DlgFindNotFoundMsg : "Nurodytas tekstas nerastas.", + +// Replace Dialog +DlgReplaceTitle : "Pakeisti", +DlgReplaceFindLbl : "Surasti tekstą:", +DlgReplaceReplaceLbl : "Pakeisti tekstu:", +DlgReplaceCaseChk : "Skirti didžiąsias ir mažąsias raides", +DlgReplaceReplaceBtn : "Pakeisti", +DlgReplaceReplAllBtn : "Pakeisti viską", +DlgReplaceWordChk : "Atitikti pilną žodį", + +// Paste Operations / Dialog +PasteErrorCut : "Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti iškirpimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+X).", +PasteErrorCopy : "Jūsų naršyklės saugumo nustatymai neleidžia redaktoriui automatiškai įvykdyti kopijavimo operacijų. Tam prašome naudoti klaviatūrą (Ctrl+C).", + +PasteAsText : "Įdėti kaip gryną tekstą", +PasteFromWord : "Įdėti iš Word", + +DlgPasteMsg2 : "Žemiau esančiame įvedimo lauke įdėkite tekstą, naudodami klaviatūrą (Ctrl+V) ir spūstelkite mygtuką OK.", +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", + +// Color Picker +ColorAutomatic : "Automatinis", +ColorMoreColors : "Daugiau spalvų...", + +// Document Properties +DocProps : "Dokumento savybės", + +// Anchor Dialog +DlgAnchorTitle : "Žymės savybės", +DlgAnchorName : "Žymės vardas", +DlgAnchorErrorName : "Prašome įvesti žymės vardą", + +// Speller Pages Dialog +DlgSpellNotInDic : "Žodyne nerastas", +DlgSpellChangeTo : "Pakeisti į", +DlgSpellBtnIgnore : "Ignoruoti", +DlgSpellBtnIgnoreAll : "Ignoruoti visus", +DlgSpellBtnReplace : "Pakeisti", +DlgSpellBtnReplaceAll : "Pakeisti visus", +DlgSpellBtnUndo : "Atšaukti", +DlgSpellNoSuggestions : "- Nėra pasiūlymų -", +DlgSpellProgress : "Vyksta rašybos tikrinimas...", +DlgSpellNoMispell : "Rašybos tikrinimas baigtas: Nerasta rašybos klaidų", +DlgSpellNoChanges : "Rašybos tikrinimas baigtas: Nėra pakeistų žodžių", +DlgSpellOneChange : "Rašybos tikrinimas baigtas: Vienas žodis pakeistas", +DlgSpellManyChanges : "Rašybos tikrinimas baigtas: Pakeista %1 žodžių", + +IeSpellDownload : "Rašybos tikrinimas neinstaliuotas. Ar Jūs norite jį dabar atsisiųsti?", + +// Button Dialog +DlgButtonText : "Tekstas (Reikšmė)", +DlgButtonType : "Tipas", +DlgButtonTypeBtn : "Button", //MISSING +DlgButtonTypeSbm : "Submit", //MISSING +DlgButtonTypeRst : "Reset", //MISSING + +// Checkbox and Radio Button Dialogs +DlgCheckboxName : "Vardas", +DlgCheckboxValue : "Reikšmė", +DlgCheckboxSelected : "Pažymėtas", + +// Form Dialog +DlgFormName : "Vardas", +DlgFormAction : "Veiksmas", +DlgFormMethod : "Metodas", + +// Select Field Dialog +DlgSelectName : "Vardas", +DlgSelectValue : "Reikšmė", +DlgSelectSize : "Dydis", +DlgSelectLines : "eilučių", +DlgSelectChkMulti : "Leisti daugeriopą atranką", +DlgSelectOpAvail : "Galimos parinktys", +DlgSelectOpText : "Tekstas", +DlgSelectOpValue : "Reikšmė", +DlgSelectBtnAdd : "Įtraukti", +DlgSelectBtnModify : "Modifikuoti", +DlgSelectBtnUp : "Aukštyn", +DlgSelectBtnDown : "Žemyn", +DlgSelectBtnSetValue : "Laikyti pažymėta reikšme", +DlgSelectBtnDelete : "Trinti", + +// Textarea Dialog +DlgTextareaName : "Vardas", +DlgTextareaCols : "Ilgis", +DlgTextareaRows : "Plotis", + +// Text Field Dialog +DlgTextName : "Vardas", +DlgTextValue : "Reikšmė", +DlgTextCharWidth : "Ilgis simboliais", +DlgTextMaxChars : "Maksimalus simbolių skaičius", +DlgTextType : "Tipas", +DlgTextTypeText : "Tekstas", +DlgTextTypePass : "Slaptažodis", + +// Hidden Field Dialog +DlgHiddenName : "Vardas", +DlgHiddenValue : "Reikšmė", + +// Bulleted List Dialog +BulletedListProp : "Suženklinto sąrašo savybės", +NumberedListProp : "Numeruoto sąrašo savybės", +DlgLstStart : "Start", //MISSING +DlgLstType : "Tipas", +DlgLstTypeCircle : "Apskritimas", +DlgLstTypeDisc : "Diskas", +DlgLstTypeSquare : "Kvadratas", +DlgLstTypeNumbers : "Skaičiai (1, 2, 3)", +DlgLstTypeLCase : "Mažosios raidės (a, b, c)", +DlgLstTypeUCase : "Didžiosios raidės (A, B, C)", +DlgLstTypeSRoman : "Romėnų mažieji skaičiai (i, ii, iii)", +DlgLstTypeLRoman : "Romėnų didieji skaičiai (I, II, III)", + +// Document Properties Dialog +DlgDocGeneralTab : "Bendros savybės", +DlgDocBackTab : "Fonas", +DlgDocColorsTab : "Spalvos ir kraštinės", +DlgDocMetaTab : "Meta duomenys", + +DlgDocPageTitle : "Puslapio antraštė", +DlgDocLangDir : "Kalbos kryptis", +DlgDocLangDirLTR : "Iš kairės į dešinę (LTR)", +DlgDocLangDirRTL : "Iš dešinės į kairę (RTL)", +DlgDocLangCode : "Kalbos kodas", +DlgDocCharSet : "Simbolių kodavimo lentelė", +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ė", +DlgDocDocTypeOther : "Kita dokumento tipo antraštė", +DlgDocIncXHTML : "Įtraukti XHTML deklaracijas", +DlgDocBgColor : "Fono spalva", +DlgDocBgImage : "Fono paveikslėlio nuoroda (URL)", +DlgDocBgNoScroll : "Neslenkantis fonas", +DlgDocCText : "Tekstas", +DlgDocCLink : "Nuoroda", +DlgDocCVisited : "Aplankyta nuoroda", +DlgDocCActive : "Aktyvi nuoroda", +DlgDocMargins : "Puslapio kraštinės", +DlgDocMaTop : "Viršuje", +DlgDocMaLeft : "Kairėje", +DlgDocMaRight : "Dešinėje", +DlgDocMaBottom : "Apačioje", +DlgDocMeIndex : "Dokumento indeksavimo raktiniai žodžiai (atskirti kableliais)", +DlgDocMeDescr : "Dokumento apibūdinimas", +DlgDocMeAuthor : "Autorius", +DlgDocMeCopy : "Autorinės teisės", +DlgDocPreview : "Peržiūra", + +// Templates Dialog +Templates : "Šablonai", +DlgTemplatesTitle : "Turinio šablonai", +DlgTemplatesSelMsg : "Pasirinkite norimą šabloną
      (Dėmesio! esamas turinys bus prarastas):", +DlgTemplatesLoading : "Įkeliamas šablonų sąrašas. Prašome palaukti...", +DlgTemplatesNoTpl : "(Šablonų sąrašas tuščias)", +DlgTemplatesReplace : "Replace actual contents", //MISSING + +// About Dialog +DlgAboutAboutTab : "Apie", +DlgAboutBrowserInfoTab : "Naršyklės informacija", +DlgAboutLicenseTab : "License", //MISSING +DlgAboutVersion : "versija", +DlgAboutInfo : "Papildomą informaciją galima gauti", + +// Div Dialog +DlgDivGeneralTab : "General", //MISSING +DlgDivAdvancedTab : "Advanced", //MISSING +DlgDivStyle : "Style", //MISSING +DlgDivInlineStyle : "Inline Style" //MISSING +}; diff --git a/fckeditor/editor/lang/lv.js b/fckeditor/editor/lang/lv.js new file mode 100644 index 0000000..1db14ab --- /dev/null +++ b/fckeditor/editor/lang/lv.js @@ -0,0 +1,526 @@ +/* + * FCKeditor - The text editor for Internet - http://www.fckeditor.net + * Copyright (C) 2003-2008 Frederico Caldeira Knabben + * + * == BEGIN LICENSE == + * + * Licensed under the terms of any of the following licenses at your + * choice: + * + * - GNU General Public License Version 2 or later (the "GPL") + * http://www.gnu.org/licenses/gpl.html + * + * - GNU Lesser General Public License Version 2.1 or later (the "LGPL") + * http://www.gnu.org/licenses/lgpl.html + * + * - Mozilla Public License Version 1.1 or later (the "MPL") + * http://www.mozilla.org/MPL/MPL-1.1.html + * + * == END LICENSE == + * + * 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", +VisitLink : "Open Link", //MISSING +Anchor : "Ievietot/Labot iezīmi", +AnchorDelete : "Remove Anchor", //MISSING +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", +Blockquote : "Blockquote", //MISSING +CreateDiv : "Create Div Container", //MISSING +EditDiv : "Edit Div Container", //MISSING +DeleteDiv : "Remove Div Container", //MISSING +Undo : "Atcelt", +Redo : "Atkārtot", +NumberedListLbl : "Numurēts saraksts", +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", +ShowBlocks : "Show Blocks", //MISSING + +// Context Menu +EditLink : "Labot hipersaiti", +CellCM : "Šūna", +RowCM : "Rinda", +ColumnCM : "Kolonna", +InsertRowAfter : "Insert Row After", //MISSING +InsertRowBefore : "Insert Row Before", //MISSING +DeleteRows : "Dzēst rindas", +InsertColumnAfter : "Insert Column After", //MISSING +InsertColumnBefore : "Insert Column Before", //MISSING +DeleteColumns : "Dzēst kolonnas", +InsertCellAfter : "Insert Cell After", //MISSING +InsertCellBefore : "Insert Cell Before", //MISSING +DeleteCells : "Dzēst rūtiņas", +MergeCells : "Apvienot rūtiņas", +MergeRight : "Merge Right", //MISSING +MergeDown : "Merge Down", //MISSING +HorizontalSplitCell : "Split Cell Horizontally", //MISSING +VerticalSplitCell : "Split Cell Vertically", //MISSING +TableDelete : "Dzēst tabulu", +CellProperties : "Rūtiņas īpašības", +TableProperties : "Tabulas īpašības", +ImageProperties : "Attēla īpašības", +FlashProperties : "Flash īpašības", + +AnchorProp : "Iezīmes īpašības", +ButtonProp : "Pogas īpašības", +CheckboxProp : "Atzīmēšanas kastītes īpašības", +HiddenFieldProp : "Paslēptās teksta rindas īpašības", +RadioButtonProp : "Izvēles poga īpašības", +ImageButtonProp : "Attēlpogas īpašības", +TextFieldProp : "Teksta rindas īpašības", +SelectionFieldProp : "Iezīmēšanas lauka īpašības", +TextareaProp : "Teksta laukuma īpašības", +FormProp : "Formas īpašības", + +FontFormats : "Normāls teksts;Formatēts teksts;Adrese;Virsraksts 1;Virsraksts 2;Virsraksts 3;Virsraksts 4;Virsraksts 5;Virsraksts 6;Rindkopa (DIV)", + +// Alerts and Messages +ProcessingXHTML : "Tiek apstrādāts XHTML. Lūdzu uzgaidiet...", +Done : "Darīts", +PasteWordConfirm : "Teksta fragments, kas tiek ievietots, izskatās, ka būtu sagatavots Word'ā. Vai vēlaties to apstrādāt pirms ievietošanas?", +NotCompatiblePaste : "Šī darbība ir pieejama Internet Explorer'ī, kas jaunāks par 5.5 versiju. Vai vēlaties ievietot bez apstrādes?", +UnknownToolbarItem : "Nezināms rīku joslas objekts \"%1\"", +UnknownCommand : "Nezināmas darbības nosaukums \"%1\"", +NotImplemented : "Darbība netika paveikta", +UnknownToolbarSet : "Rīku joslas komplekts \"%1\" neeksistē", +NoActiveX : "Interneta pārlūkprogrammas drošības uzstādījumi varētu ietekmēt dažas no redaktora īpašībām. Jābūt aktivizētai sadaļai \"Run ActiveX controls and plug-ins\". Savādāk ir iespējamas kļūdas darbībā un kļūdu paziņojumu parādīšanās.", +BrowseServerBlocked : "Resursu pārlūks nevar tikt atvērts. Pārliecinieties, ka uznirstošo logu bloķētāji ir atslēgti.", +DialogBlocked : "Nav iespējams atvērt dialoglogu. Pārliecinieties, ka uznirstošo logu bloķētāji ir atslēgti.", +VisitLinkBlocked : "It was not possible to open a new window. Make sure all popup blockers are disabled.", //MISSING + +// Dialogs +DlgBtnOK : "Darīts!", +DlgBtnCancel : "Atcelt", +DlgBtnClose : "Aizvērt", +DlgBtnBrowseServer : "Skatīt servera saturu", +DlgAdvancedTag : "Izvērstais", +DlgOpOther : "", +DlgInfoTab : "Informācija", +DlgAlertUrl : "Lūdzu, ievietojiet hipersaiti", + +// General Dialogs Labels +DlgGenNotSet : "