adva_fckeditor 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (501) hide show
  1. checksums.yaml +7 -0
  2. data/.gitignore +17 -0
  3. data/Gemfile +4 -0
  4. data/LICENSE +22 -0
  5. data/README +21 -0
  6. data/README.md +29 -0
  7. data/Rakefile +2 -0
  8. data/adva_fckeditor.gemspec +19 -0
  9. data/app/assets/javascripts/adva_fckeditor/config.js +58 -0
  10. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckcontextmenu.js +223 -0
  11. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckdataprocessor.js +119 -0
  12. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckdocumentfragment_gecko.js +53 -0
  13. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckdocumentfragment_ie.js +58 -0
  14. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckdomrange.js +935 -0
  15. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckdomrange_gecko.js +104 -0
  16. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckdomrange_ie.js +199 -0
  17. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckdomrangeiterator.js +327 -0
  18. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckeditingarea.js +368 -0
  19. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckelementpath.js +89 -0
  20. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckenterkey.js +708 -0
  21. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckevents.js +71 -0
  22. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckhtmliterator.js +142 -0
  23. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckicon.js +103 -0
  24. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckiecleanup.js +68 -0
  25. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckimagepreloader.js +64 -0
  26. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckkeystrokehandler.js +141 -0
  27. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckmenublock.js +153 -0
  28. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckmenublockpanel.js +54 -0
  29. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckmenuitem.js +161 -0
  30. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckpanel.js +463 -0
  31. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckplugin.js +56 -0
  32. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckspecialcombo.js +376 -0
  33. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckstyle.js +1500 -0
  34. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbar.js +103 -0
  35. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarbreak_gecko.js +36 -0
  36. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarbreak_ie.js +38 -0
  37. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarbutton.js +81 -0
  38. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarbuttonui.js +198 -0
  39. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarfontformatcombo.js +139 -0
  40. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarfontscombo.js +98 -0
  41. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarfontsizecombo.js +76 -0
  42. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarpanelbutton.js +103 -0
  43. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarspecialcombo.js +146 -0
  44. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fcktoolbarstylecombo.js +200 -0
  45. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckw3crange.js +451 -0
  46. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckxml.js +108 -0
  47. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckxml_gecko.js +106 -0
  48. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/classes/fckxml_ie.js +93 -0
  49. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fck_othercommands.js +634 -0
  50. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckblockquotecommand.js +281 -0
  51. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckcorestylecommand.js +61 -0
  52. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckfitwindow.js +213 -0
  53. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckindentcommands.js +282 -0
  54. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckjustifycommands.js +173 -0
  55. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fcklistcommands.js +382 -0
  56. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fcknamedcommand.js +39 -0
  57. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckpasteplaintextcommand.js +40 -0
  58. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckpastewordcommand.js +40 -0
  59. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckremoveformatcommand.js +45 -0
  60. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckshowblocks.js +94 -0
  61. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_gecko.js +49 -0
  62. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckspellcheckcommand_ie.js +72 -0
  63. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fckstylecommand.js +60 -0
  64. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fcktablecommand.js +106 -0
  65. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/commandclasses/fcktextcolorcommand.js +201 -0
  66. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/fckconstants.js +56 -0
  67. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/fckeditorapi.js +179 -0
  68. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/fckjscoreextensions.js +159 -0
  69. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/fckscriptloader.js +122 -0
  70. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fck.js +1256 -0
  71. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fck_contextmenu.js +345 -0
  72. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fck_gecko.js +497 -0
  73. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fck_ie.js +456 -0
  74. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckbrowserinfo.js +61 -0
  75. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckcodeformatter.js +100 -0
  76. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckcommands.js +172 -0
  77. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckconfig.js +237 -0
  78. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckdebug.js +59 -0
  79. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckdebug_empty.js +31 -0
  80. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckdialog.js +239 -0
  81. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckdocumentprocessor.js +270 -0
  82. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckdomtools.js +1057 -0
  83. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcklanguagemanager.js +165 -0
  84. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcklisthandler.js +152 -0
  85. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcklistslib.js +63 -0
  86. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckplugins.js +46 -0
  87. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckregexlib.js +100 -0
  88. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckselection.js +42 -0
  89. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckselection_gecko.js +228 -0
  90. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckselection_ie.js +287 -0
  91. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckstyles.js +381 -0
  92. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktablehandler.js +863 -0
  93. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktablehandler_gecko.js +56 -0
  94. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktablehandler_ie.js +64 -0
  95. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktoolbaritems.js +124 -0
  96. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktoolbarset.js +399 -0
  97. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktools.js +749 -0
  98. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktools_gecko.js +282 -0
  99. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fcktools_ie.js +234 -0
  100. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckundo.js +223 -0
  101. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckurlparams.js +39 -0
  102. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckxhtml.js +534 -0
  103. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckxhtml_gecko.js +114 -0
  104. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckxhtml_ie.js +213 -0
  105. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/_source/internals/fckxhtmlentities.js +357 -0
  106. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/behaviors/disablehandles.htc +15 -0
  107. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/behaviors/showtableborders.htc +36 -0
  108. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/fck_editorarea.css +110 -0
  109. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/fck_internal.css +199 -0
  110. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/fck_showtableborders_gecko.css +49 -0
  111. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_address.png +0 -0
  112. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_blockquote.png +0 -0
  113. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_div.png +0 -0
  114. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_h1.png +0 -0
  115. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_h2.png +0 -0
  116. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_h3.png +0 -0
  117. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_h4.png +0 -0
  118. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_h5.png +0 -0
  119. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_h6.png +0 -0
  120. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_p.png +0 -0
  121. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/block_pre.png +0 -0
  122. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/fck_anchor.gif +0 -0
  123. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
  124. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
  125. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/fck_pagebreak.gif +0 -0
  126. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/css/images/fck_plugin.gif +0 -0
  127. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.css +85 -0
  128. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/common/fck_dialog_common.js +347 -0
  129. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/common/images/locked.gif +0 -0
  130. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/common/images/reset.gif +0 -0
  131. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
  132. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
  133. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
  134. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_about/sponsors/spellchecker_net.gif +0 -0
  135. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_about.html +161 -0
  136. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_anchor.html +220 -0
  137. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_button.html +104 -0
  138. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_checkbox.html +104 -0
  139. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_colorselector.html +172 -0
  140. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_div.html +396 -0
  141. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +113 -0
  142. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_docprops.html +600 -0
  143. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash.js +300 -0
  144. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +50 -0
  145. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_flash.html +152 -0
  146. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_form.html +109 -0
  147. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_hiddenfield.html +115 -0
  148. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_image/fck_image.js +512 -0
  149. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_image/fck_image_preview.html +72 -0
  150. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_image.html +258 -0
  151. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_link/fck_link.js +893 -0
  152. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_link.html +295 -0
  153. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_listprop.html +120 -0
  154. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_paste.html +347 -0
  155. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_radiobutton.html +104 -0
  156. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_replace.html +650 -0
  157. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_select/fck_select.js +194 -0
  158. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_select.html +180 -0
  159. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_smiley.html +111 -0
  160. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_source.html +68 -0
  161. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_specialchar.html +121 -0
  162. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
  163. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +87 -0
  164. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +153 -0
  165. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +148 -0
  166. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +199 -0
  167. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +181 -0
  168. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +461 -0
  169. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +71 -0
  170. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +49 -0
  171. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +272 -0
  172. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_spellerpages.html +70 -0
  173. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_table.html +439 -0
  174. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_tablecell.html +293 -0
  175. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_template/images/template1.gif +0 -0
  176. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_template/images/template2.gif +0 -0
  177. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_template/images/template3.gif +0 -0
  178. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_template.html +242 -0
  179. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_textarea.html +94 -0
  180. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dialog/fck_textfield.html +136 -0
  181. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dtd/fck_dtd_test.html +41 -0
  182. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dtd/fck_xhtml10strict.js +116 -0
  183. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/dtd/fck_xhtml10transitional.js +140 -0
  184. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/fckdebug.html +153 -0
  185. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/fckdialog.html +819 -0
  186. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/fckeditor.html +317 -0
  187. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/fckeditor.original.html +424 -0
  188. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/browser.css +87 -0
  189. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/browser.html +200 -0
  190. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +95 -0
  191. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +114 -0
  192. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/frmfolders.html +198 -0
  193. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +185 -0
  194. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +69 -0
  195. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/frmupload.html +115 -0
  196. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
  197. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
  198. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
  199. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
  200. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
  201. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
  202. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
  203. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
  204. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
  205. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
  206. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
  207. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
  208. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
  209. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
  210. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
  211. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
  212. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
  213. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
  214. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
  215. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
  216. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
  217. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
  218. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
  219. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
  220. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
  221. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
  222. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
  223. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
  224. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
  225. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
  226. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
  227. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
  228. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
  229. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
  230. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
  231. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
  232. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
  233. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
  234. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
  235. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
  236. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
  237. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
  238. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
  239. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
  240. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
  241. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
  242. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
  243. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
  244. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
  245. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
  246. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
  247. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
  248. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
  249. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
  250. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
  251. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
  252. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
  253. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
  254. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
  255. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
  256. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
  257. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/js/common.js +88 -0
  258. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/browser/default/js/fckxml.js +147 -0
  259. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/basexml.asp +63 -0
  260. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/class_upload.asp +353 -0
  261. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/commands.asp +198 -0
  262. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/config.asp +128 -0
  263. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/connector.asp +88 -0
  264. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/io.asp +237 -0
  265. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/upload.asp +65 -0
  266. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/asp/util.asp +55 -0
  267. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/aspx/config.ascx +98 -0
  268. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/aspx/connector.aspx +32 -0
  269. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/aspx/upload.aspx +32 -0
  270. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/ImageObject.cfc +273 -0
  271. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf5_connector.cfm +315 -0
  272. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf5_upload.cfm +299 -0
  273. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf_basexml.cfm +68 -0
  274. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf_commands.cfm +230 -0
  275. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf_connector.cfm +89 -0
  276. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf_io.cfm +291 -0
  277. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf_upload.cfm +72 -0
  278. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/cf_util.cfm +131 -0
  279. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/config.cfm +189 -0
  280. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/connector.cfm +32 -0
  281. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/image.cfc +1324 -0
  282. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/cfm/upload.cfm +31 -0
  283. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/lasso/config.lasso +65 -0
  284. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/lasso/connector.lasso +322 -0
  285. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/lasso/upload.lasso +168 -0
  286. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/perl/basexml.pl +63 -0
  287. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/perl/commands.pl +187 -0
  288. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/perl/connector.cgi +136 -0
  289. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/perl/io.pl +141 -0
  290. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/perl/upload.cgi +117 -0
  291. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/perl/upload_fck.pl +686 -0
  292. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/perl/util.pl +68 -0
  293. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/basexml.php +93 -0
  294. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/commands.php +302 -0
  295. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/config.php +151 -0
  296. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/connector.php +90 -0
  297. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/io.php +296 -0
  298. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/phpcompat.php +17 -0
  299. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/upload.php +59 -0
  300. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/php/util.php +220 -0
  301. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/config.py +146 -0
  302. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/connector.py +118 -0
  303. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/fckcommands.py +198 -0
  304. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/fckconnector.py +90 -0
  305. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/fckoutput.py +116 -0
  306. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/fckutil.py +126 -0
  307. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/htaccess.txt +23 -0
  308. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/upload.py +88 -0
  309. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/wsgi.py +58 -0
  310. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/py/zope.py +188 -0
  311. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/test.html +210 -0
  312. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/filemanager/connectors/uploadtest.html +192 -0
  313. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/anchor.gif +0 -0
  314. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/arrow_ltr.gif +0 -0
  315. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/arrow_rtl.gif +0 -0
  316. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
  317. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
  318. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
  319. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
  320. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
  321. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
  322. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
  323. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
  324. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
  325. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
  326. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
  327. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
  328. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
  329. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
  330. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
  331. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
  332. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
  333. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
  334. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
  335. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
  336. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
  337. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
  338. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/images/spacer.gif +0 -0
  339. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/js/fckadobeair.js +176 -0
  340. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/js/fckeditorcode_gecko.js +108 -0
  341. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/js/fckeditorcode_ie.js +109 -0
  342. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/_translationstatus.txt +79 -0
  343. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/af.js +534 -0
  344. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/ar.js +534 -0
  345. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/bg.js +534 -0
  346. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/bn.js +534 -0
  347. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/bs.js +534 -0
  348. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/ca.js +534 -0
  349. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/cs.js +534 -0
  350. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/da.js +534 -0
  351. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/de.js +534 -0
  352. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/el.js +534 -0
  353. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/en-au.js +534 -0
  354. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/en-ca.js +534 -0
  355. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/en-uk.js +534 -0
  356. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/en.js +534 -0
  357. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/eo.js +534 -0
  358. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/es.js +534 -0
  359. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/et.js +534 -0
  360. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/eu.js +535 -0
  361. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/fa.js +534 -0
  362. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/fi.js +534 -0
  363. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/fo.js +534 -0
  364. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/fr-ca.js +534 -0
  365. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/fr.js +534 -0
  366. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/gl.js +534 -0
  367. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/gu.js +534 -0
  368. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/he.js +534 -0
  369. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/hi.js +534 -0
  370. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/hr.js +534 -0
  371. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/hu.js +534 -0
  372. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/is.js +534 -0
  373. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/it.js +534 -0
  374. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/ja.js +534 -0
  375. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/km.js +534 -0
  376. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/ko.js +534 -0
  377. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/lt.js +534 -0
  378. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/lv.js +534 -0
  379. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/mn.js +534 -0
  380. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/ms.js +534 -0
  381. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/nb.js +534 -0
  382. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/nl.js +534 -0
  383. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/no.js +534 -0
  384. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/pl.js +534 -0
  385. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/pt-br.js +534 -0
  386. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/pt.js +534 -0
  387. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/ro.js +534 -0
  388. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/ru.js +534 -0
  389. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/sk.js +534 -0
  390. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/sl.js +534 -0
  391. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/sr-latn.js +534 -0
  392. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/sr.js +534 -0
  393. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/sv.js +534 -0
  394. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/th.js +534 -0
  395. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/tr.js +534 -0
  396. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/uk.js +534 -0
  397. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/vi.js +534 -0
  398. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/zh-cn.js +534 -0
  399. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/lang/zh.js +534 -0
  400. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/autogrow/fckplugin.js +111 -0
  401. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/bbcode/_sample/sample.config.js +26 -0
  402. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/bbcode/_sample/sample.html +67 -0
  403. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/bbcode/fckplugin.js +123 -0
  404. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/dragresizetable/fckplugin.js +529 -0
  405. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/fck_placeholder.html +105 -0
  406. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/fckplugin.js +187 -0
  407. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/lang/de.js +27 -0
  408. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/lang/en.js +27 -0
  409. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/lang/es.js +27 -0
  410. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/lang/fr.js +27 -0
  411. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/lang/it.js +27 -0
  412. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/lang/pl.js +27 -0
  413. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
  414. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/simplecommands/fckplugin.js +29 -0
  415. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/plugins/tablecommands/fckplugin.js +33 -0
  416. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/_fckviewstrips.html +121 -0
  417. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/fck_dialog.css +402 -0
  418. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/fck_dialog_ie6.js +110 -0
  419. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/fck_editor.css +464 -0
  420. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/fck_strip.gif +0 -0
  421. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/dialog.sides.gif +0 -0
  422. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/dialog.sides.png +0 -0
  423. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/dialog.sides.rtl.png +0 -0
  424. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/sprites.gif +0 -0
  425. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/sprites.png +0 -0
  426. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
  427. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
  428. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
  429. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
  430. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
  431. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
  432. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/images/toolbar.start.gif +0 -0
  433. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/default/toolbar/configurecell.gif +0 -0
  434. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/fck_dialog.css +402 -0
  435. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/fck_dialog_ie6.js +110 -0
  436. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/fck_editor.css +476 -0
  437. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
  438. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/dialog.sides.gif +0 -0
  439. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/dialog.sides.png +0 -0
  440. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/dialog.sides.rtl.png +0 -0
  441. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/sprites.gif +0 -0
  442. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/sprites.png +0 -0
  443. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
  444. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
  445. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
  446. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
  447. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
  448. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
  449. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
  450. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
  451. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/fck_dialog.css +402 -0
  452. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/fck_dialog_ie6.js +110 -0
  453. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/fck_editor.css +473 -0
  454. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
  455. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/dialog.sides.gif +0 -0
  456. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/dialog.sides.png +0 -0
  457. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/dialog.sides.rtl.png +0 -0
  458. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/sprites.gif +0 -0
  459. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/sprites.png +0 -0
  460. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
  461. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
  462. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
  463. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
  464. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
  465. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
  466. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
  467. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/skins/silver/images/toolbar.start.gif +0 -0
  468. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/wsc/ciframe.html +65 -0
  469. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/wsc/tmpFrameset.html +67 -0
  470. data/app/assets/javascripts/adva_fckeditor/fckeditor/editor/wsc/w.html +227 -0
  471. data/app/assets/javascripts/adva_fckeditor/fckeditor/fckconfig.js +325 -0
  472. data/app/assets/javascripts/adva_fckeditor/fckeditor/fckeditor.js +330 -0
  473. data/app/assets/javascripts/adva_fckeditor/fckeditor/fckpackager.xml +262 -0
  474. data/app/assets/javascripts/adva_fckeditor/fckeditor/fckstyles.xml +111 -0
  475. data/app/assets/javascripts/adva_fckeditor/fckeditor/fcktemplates.xml +103 -0
  476. data/app/assets/javascripts/adva_fckeditor/fckeditor/license.txt +1246 -0
  477. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/cells/cell.html +259 -0
  478. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/cells/fckplugin.js +21 -0
  479. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/cells/lang/de.js +4 -0
  480. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/cells/lang/en.js +4 -0
  481. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/fckplugin.js +8 -0
  482. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/de.js +21 -0
  483. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/en.js +21 -0
  484. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/it.js +22 -0
  485. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/ja.js +21 -0
  486. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/lt.js +21 -0
  487. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/no.js +21 -0
  488. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/pt.js +21 -0
  489. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/zh-cn.js +21 -0
  490. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/lang/zh.js +21 -0
  491. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/license.txt +286 -0
  492. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/readme.txt +54 -0
  493. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/youtube.gif +0 -0
  494. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/youtube.html +47 -0
  495. data/app/assets/javascripts/adva_fckeditor/fckeditor_plugins/youtube/youtube.js +121 -0
  496. data/app/assets/javascripts/adva_fckeditor/setup_fckeditor.js +49 -0
  497. data/app/assets/javascripts/adva_fckeditor/setup_fckeditor.prototype.js +38 -0
  498. data/lib/adva_fckeditor/version.rb +3 -0
  499. data/lib/adva_fckeditor.rb +13 -0
  500. data/lib/fckeditor.rb +6 -0
  501. metadata +556 -0
@@ -0,0 +1,1256 @@
1
+ /*
2
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
3
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
4
+ *
5
+ * == BEGIN LICENSE ==
6
+ *
7
+ * Licensed under the terms of any of the following licenses at your
8
+ * choice:
9
+ *
10
+ * - GNU General Public License Version 2 or later (the "GPL")
11
+ * http://www.gnu.org/licenses/gpl.html
12
+ *
13
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
14
+ * http://www.gnu.org/licenses/lgpl.html
15
+ *
16
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
17
+ * http://www.mozilla.org/MPL/MPL-1.1.html
18
+ *
19
+ * == END LICENSE ==
20
+ *
21
+ * Creation and initialization of the "FCK" object. This is the main object
22
+ * that represents an editor instance.
23
+ */
24
+
25
+ // FCK represents the active editor instance.
26
+ var FCK =
27
+ {
28
+ Name : FCKURLParams[ 'InstanceName' ],
29
+ Status : FCK_STATUS_NOTLOADED,
30
+ EditMode : FCK_EDITMODE_WYSIWYG,
31
+ Toolbar : null,
32
+ HasFocus : false,
33
+ DataProcessor : new FCKDataProcessor(),
34
+
35
+ GetInstanceObject : (function()
36
+ {
37
+ var w = window ;
38
+ return function( name )
39
+ {
40
+ return w[name] ;
41
+ }
42
+ })(),
43
+
44
+ AttachToOnSelectionChange : function( functionPointer )
45
+ {
46
+ this.Events.AttachEvent( 'OnSelectionChange', functionPointer ) ;
47
+ },
48
+
49
+ GetLinkedFieldValue : function()
50
+ {
51
+ return this.LinkedField.value ;
52
+ },
53
+
54
+ GetParentForm : function()
55
+ {
56
+ return this.LinkedField.form ;
57
+ } ,
58
+
59
+ // # START : IsDirty implementation
60
+
61
+ StartupValue : '',
62
+
63
+ IsDirty : function()
64
+ {
65
+ if ( this.EditMode == FCK_EDITMODE_SOURCE )
66
+ return ( this.StartupValue != this.EditingArea.Textarea.value ) ;
67
+ else
68
+ {
69
+ // It can happen switching between design and source mode in Gecko
70
+ if ( ! this.EditorDocument )
71
+ return false ;
72
+
73
+ return ( this.StartupValue != this.EditorDocument.body.innerHTML ) ;
74
+ }
75
+ },
76
+
77
+ ResetIsDirty : function()
78
+ {
79
+ if ( this.EditMode == FCK_EDITMODE_SOURCE )
80
+ this.StartupValue = this.EditingArea.Textarea.value ;
81
+ else if ( this.EditorDocument.body )
82
+ this.StartupValue = this.EditorDocument.body.innerHTML ;
83
+ },
84
+
85
+ // # END : IsDirty implementation
86
+
87
+ StartEditor : function()
88
+ {
89
+ this.TempBaseTag = FCKConfig.BaseHref.length > 0 ? '<base href="' + FCKConfig.BaseHref + '" _fcktemp="true"></base>' : '' ;
90
+
91
+ // Setup the keystroke handler.
92
+ var oKeystrokeHandler = FCK.KeystrokeHandler = new FCKKeystrokeHandler() ;
93
+ oKeystrokeHandler.OnKeystroke = _FCK_KeystrokeHandler_OnKeystroke ;
94
+
95
+ // Set the config keystrokes.
96
+ oKeystrokeHandler.SetKeystrokes( FCKConfig.Keystrokes ) ;
97
+
98
+ // In IE7, if the editor tries to access the clipboard by code, a dialog is
99
+ // shown to the user asking if the application is allowed to access or not.
100
+ // Due to the IE implementation of it, the KeystrokeHandler will not work
101
+ //well in this case, so we must leave the pasting keys to have their default behavior.
102
+ if ( FCKBrowserInfo.IsIE7 )
103
+ {
104
+ if ( ( CTRL + 86 /*V*/ ) in oKeystrokeHandler.Keystrokes )
105
+ oKeystrokeHandler.SetKeystrokes( [ CTRL + 86, true ] ) ;
106
+
107
+ if ( ( SHIFT + 45 /*INS*/ ) in oKeystrokeHandler.Keystrokes )
108
+ oKeystrokeHandler.SetKeystrokes( [ SHIFT + 45, true ] ) ;
109
+ }
110
+
111
+ // Retain default behavior for Ctrl-Backspace. (Bug #362)
112
+ oKeystrokeHandler.SetKeystrokes( [ CTRL + 8, true ] ) ;
113
+
114
+ this.EditingArea = new FCKEditingArea( document.getElementById( 'xEditingArea' ) ) ;
115
+ this.EditingArea.FFSpellChecker = FCKConfig.FirefoxSpellChecker ;
116
+
117
+ // Set the editor's startup contents.
118
+ this.SetData( this.GetLinkedFieldValue(), true ) ;
119
+
120
+ // Tab key handling for source mode.
121
+ FCKTools.AddEventListener( document, "keydown", this._TabKeyHandler ) ;
122
+
123
+ // Add selection change listeners. They must be attached only once.
124
+ this.AttachToOnSelectionChange( _FCK_PaddingNodeListener ) ;
125
+ if ( FCKBrowserInfo.IsGecko )
126
+ this.AttachToOnSelectionChange( this._ExecCheckEmptyBlock ) ;
127
+
128
+ },
129
+
130
+ Focus : function()
131
+ {
132
+ FCK.EditingArea.Focus() ;
133
+ },
134
+
135
+ SetStatus : function( newStatus )
136
+ {
137
+ this.Status = newStatus ;
138
+
139
+ if ( newStatus == FCK_STATUS_ACTIVE )
140
+ {
141
+ FCKFocusManager.AddWindow( window, true ) ;
142
+
143
+ if ( FCKBrowserInfo.IsIE )
144
+ FCKFocusManager.AddWindow( window.frameElement, true ) ;
145
+
146
+ // Force the focus in the editor.
147
+ if ( FCKConfig.StartupFocus )
148
+ FCK.Focus() ;
149
+ }
150
+
151
+ this.Events.FireEvent( 'OnStatusChange', newStatus ) ;
152
+
153
+ },
154
+
155
+ // Fixes the body by moving all inline and text nodes to appropriate block
156
+ // elements.
157
+ FixBody : function()
158
+ {
159
+ var sBlockTag = FCKConfig.EnterMode ;
160
+
161
+ // In 'br' mode, no fix must be done.
162
+ if ( sBlockTag != 'p' && sBlockTag != 'div' )
163
+ return ;
164
+
165
+ var oDocument = this.EditorDocument ;
166
+
167
+ if ( !oDocument )
168
+ return ;
169
+
170
+ var oBody = oDocument.body ;
171
+
172
+ if ( !oBody )
173
+ return ;
174
+
175
+ FCKDomTools.TrimNode( oBody ) ;
176
+
177
+ var oNode = oBody.firstChild ;
178
+ var oNewBlock ;
179
+
180
+ while ( oNode )
181
+ {
182
+ var bMoveNode = false ;
183
+
184
+ switch ( oNode.nodeType )
185
+ {
186
+ // Element Node.
187
+ case 1 :
188
+ var nodeName = oNode.nodeName.toLowerCase() ;
189
+ if ( !FCKListsLib.BlockElements[ nodeName ] &&
190
+ nodeName != 'li' &&
191
+ !oNode.getAttribute('_fckfakelement') &&
192
+ oNode.getAttribute('_moz_dirty') == null )
193
+ bMoveNode = true ;
194
+ break ;
195
+
196
+ // Text Node.
197
+ case 3 :
198
+ // Ignore space only or empty text.
199
+ if ( oNewBlock || oNode.nodeValue.Trim().length > 0 )
200
+ bMoveNode = true ;
201
+ break;
202
+
203
+ // Comment Node
204
+ case 8 :
205
+ if ( oNewBlock )
206
+ bMoveNode = true ;
207
+ break;
208
+ }
209
+
210
+ if ( bMoveNode )
211
+ {
212
+ var oParent = oNode.parentNode ;
213
+
214
+ if ( !oNewBlock )
215
+ oNewBlock = oParent.insertBefore( oDocument.createElement( sBlockTag ), oNode ) ;
216
+
217
+ oNewBlock.appendChild( oParent.removeChild( oNode ) ) ;
218
+
219
+ oNode = oNewBlock.nextSibling ;
220
+ }
221
+ else
222
+ {
223
+ if ( oNewBlock )
224
+ {
225
+ FCKDomTools.TrimNode( oNewBlock ) ;
226
+ oNewBlock = null ;
227
+ }
228
+ oNode = oNode.nextSibling ;
229
+ }
230
+ }
231
+
232
+ if ( oNewBlock )
233
+ FCKDomTools.TrimNode( oNewBlock ) ;
234
+ },
235
+
236
+ GetData : function( format )
237
+ {
238
+ // We assume that if the user is in source editing, the editor value must
239
+ // represent the exact contents of the source, as the user wanted it to be.
240
+ if ( FCK.EditMode == FCK_EDITMODE_SOURCE )
241
+ return FCK.EditingArea.Textarea.value ;
242
+
243
+ this.FixBody() ;
244
+
245
+ var oDoc = FCK.EditorDocument ;
246
+ if ( !oDoc )
247
+ return null ;
248
+
249
+ var isFullPage = FCKConfig.FullPage ;
250
+
251
+ // Call the Data Processor to generate the output data.
252
+ var data = FCK.DataProcessor.ConvertToDataFormat(
253
+ isFullPage ? oDoc.documentElement : oDoc.body,
254
+ !isFullPage,
255
+ FCKConfig.IgnoreEmptyParagraphValue,
256
+ format ) ;
257
+
258
+ // Restore protected attributes.
259
+ data = FCK.ProtectEventsRestore( data ) ;
260
+
261
+ if ( FCKBrowserInfo.IsIE )
262
+ data = data.replace( FCKRegexLib.ToReplace, '$1' ) ;
263
+
264
+ if ( isFullPage )
265
+ {
266
+ if ( FCK.DocTypeDeclaration && FCK.DocTypeDeclaration.length > 0 )
267
+ data = FCK.DocTypeDeclaration + '\n' + data ;
268
+
269
+ if ( FCK.XmlDeclaration && FCK.XmlDeclaration.length > 0 )
270
+ data = FCK.XmlDeclaration + '\n' + data ;
271
+ }
272
+
273
+ return FCKConfig.ProtectedSource.Revert( data ) ;
274
+ },
275
+
276
+ UpdateLinkedField : function()
277
+ {
278
+ var value = FCK.GetXHTML( FCKConfig.FormatOutput ) ;
279
+
280
+ if ( FCKConfig.HtmlEncodeOutput )
281
+ value = FCKTools.HTMLEncode( value ) ;
282
+
283
+ FCK.LinkedField.value = value ;
284
+ FCK.Events.FireEvent( 'OnAfterLinkedFieldUpdate' ) ;
285
+ },
286
+
287
+ RegisteredDoubleClickHandlers : new Object(),
288
+
289
+ OnDoubleClick : function( element )
290
+ {
291
+ var oCalls = FCK.RegisteredDoubleClickHandlers[ element.tagName.toUpperCase() ] ;
292
+
293
+ if ( oCalls )
294
+ {
295
+ for ( var i = 0 ; i < oCalls.length ; i++ )
296
+ oCalls[ i ]( element ) ;
297
+ }
298
+
299
+ // Generic handler for any element
300
+ oCalls = FCK.RegisteredDoubleClickHandlers[ '*' ] ;
301
+
302
+ if ( oCalls )
303
+ {
304
+ for ( var i = 0 ; i < oCalls.length ; i++ )
305
+ oCalls[ i ]( element ) ;
306
+ }
307
+
308
+ },
309
+
310
+ // Register objects that can handle double click operations.
311
+ RegisterDoubleClickHandler : function( handlerFunction, tag )
312
+ {
313
+ var nodeName = tag || '*' ;
314
+ nodeName = nodeName.toUpperCase() ;
315
+
316
+ var aTargets ;
317
+
318
+ if ( !( aTargets = FCK.RegisteredDoubleClickHandlers[ nodeName ] ) )
319
+ FCK.RegisteredDoubleClickHandlers[ nodeName ] = [ handlerFunction ] ;
320
+ else
321
+ {
322
+ // Check that the event handler isn't already registered with the same listener
323
+ // It doesn't detect function pointers belonging to an object (at least in Gecko)
324
+ if ( aTargets.IndexOf( handlerFunction ) == -1 )
325
+ aTargets.push( handlerFunction ) ;
326
+ }
327
+
328
+ },
329
+
330
+ OnAfterSetHTML : function()
331
+ {
332
+ FCKDocumentProcessor.Process( FCK.EditorDocument ) ;
333
+ FCKUndo.SaveUndoStep() ;
334
+
335
+ FCK.Events.FireEvent( 'OnSelectionChange' ) ;
336
+ FCK.Events.FireEvent( 'OnAfterSetHTML' ) ;
337
+ },
338
+
339
+ // Saves URLs on links and images on special attributes, so they don't change when
340
+ // moving around.
341
+ ProtectUrls : function( html )
342
+ {
343
+ // <A> href
344
+ html = html.replace( FCKRegexLib.ProtectUrlsA , '$& _fcksavedurl=$1' ) ;
345
+
346
+ // <IMG> src
347
+ html = html.replace( FCKRegexLib.ProtectUrlsImg , '$& _fcksavedurl=$1' ) ;
348
+
349
+ // <AREA> href
350
+ html = html.replace( FCKRegexLib.ProtectUrlsArea , '$& _fcksavedurl=$1' ) ;
351
+
352
+ return html ;
353
+ },
354
+
355
+ // Saves event attributes (like onclick) so they don't get executed while
356
+ // editing.
357
+ ProtectEvents : function( html )
358
+ {
359
+ return html.replace( FCKRegexLib.TagsWithEvent, _FCK_ProtectEvents_ReplaceTags ) ;
360
+ },
361
+
362
+ ProtectEventsRestore : function( html )
363
+ {
364
+ return html.replace( FCKRegexLib.ProtectedEvents, _FCK_ProtectEvents_RestoreEvents ) ;
365
+ },
366
+
367
+ ProtectTags : function( html )
368
+ {
369
+ var sTags = FCKConfig.ProtectedTags ;
370
+
371
+ // IE doesn't support <abbr> and it breaks it. Let's protect it.
372
+ if ( FCKBrowserInfo.IsIE )
373
+ sTags += sTags.length > 0 ? '|ABBR|XML|EMBED|OBJECT' : 'ABBR|XML|EMBED|OBJECT' ;
374
+
375
+ var oRegex ;
376
+ if ( sTags.length > 0 )
377
+ {
378
+ oRegex = new RegExp( '<(' + sTags + ')(?!\w|:)', 'gi' ) ;
379
+ html = html.replace( oRegex, '<FCK:$1' ) ;
380
+
381
+ oRegex = new RegExp( '<\/(' + sTags + ')>', 'gi' ) ;
382
+ html = html.replace( oRegex, '<\/FCK:$1>' ) ;
383
+ }
384
+
385
+ // Protect some empty elements. We must do it separately because the
386
+ // original tag may not contain the closing slash, like <hr>:
387
+ // - <meta> tags get executed, so if you have a redirect meta, the
388
+ // content will move to the target page.
389
+ // - <hr> may destroy the document structure if not well
390
+ // positioned. The trick is protect it here and restore them in
391
+ // the FCKDocumentProcessor.
392
+ sTags = 'META' ;
393
+ if ( FCKBrowserInfo.IsIE )
394
+ sTags += '|HR' ;
395
+
396
+ oRegex = new RegExp( '<((' + sTags + ')(?=\\s|>|/)[\\s\\S]*?)/?>', 'gi' ) ;
397
+ html = html.replace( oRegex, '<FCK:$1 />' ) ;
398
+
399
+ return html ;
400
+ },
401
+
402
+ SetData : function( data, resetIsDirty )
403
+ {
404
+ this.EditingArea.Mode = FCK.EditMode ;
405
+
406
+ // If there was an onSelectionChange listener in IE we must remove it to avoid crashes #1498
407
+ if ( FCKBrowserInfo.IsIE && FCK.EditorDocument )
408
+ {
409
+ FCK.EditorDocument.detachEvent("onselectionchange", Doc_OnSelectionChange ) ;
410
+ }
411
+
412
+ FCKTempBin.Reset() ;
413
+
414
+ // Bug #2469: SelectionData.createRange becomes undefined after the editor
415
+ // iframe is changed by FCK.SetData().
416
+ FCK.Selection.Release() ;
417
+
418
+ if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
419
+ {
420
+ // Save the resetIsDirty for later use (async)
421
+ this._ForceResetIsDirty = ( resetIsDirty === true ) ;
422
+
423
+ // Protect parts of the code that must remain untouched (and invisible)
424
+ // during editing.
425
+ data = FCKConfig.ProtectedSource.Protect( data ) ;
426
+
427
+ // Call the Data Processor to transform the data.
428
+ data = FCK.DataProcessor.ConvertToHtml( data ) ;
429
+
430
+ // Fix for invalid self-closing tags (see #152).
431
+ data = data.replace( FCKRegexLib.InvalidSelfCloseTags, '$1></$2>' ) ;
432
+
433
+ // Protect event attributes (they could get fired in the editing area).
434
+ data = FCK.ProtectEvents( data ) ;
435
+
436
+ // Protect some things from the browser itself.
437
+ data = FCK.ProtectUrls( data ) ;
438
+ data = FCK.ProtectTags( data ) ;
439
+
440
+ // Insert the base tag (FCKConfig.BaseHref), if not exists in the source.
441
+ // The base must be the first tag in the HEAD, to get relative
442
+ // links on styles, for example.
443
+ if ( FCK.TempBaseTag.length > 0 && !FCKRegexLib.HasBaseTag.test( data ) )
444
+ data = data.replace( FCKRegexLib.HeadOpener, '$&' + FCK.TempBaseTag ) ;
445
+
446
+ // Build the HTML for the additional things we need on <head>.
447
+ var sHeadExtra = '' ;
448
+
449
+ if ( !FCKConfig.FullPage )
450
+ sHeadExtra += _FCK_GetEditorAreaStyleTags() ;
451
+
452
+ if ( FCKBrowserInfo.IsIE )
453
+ sHeadExtra += FCK._GetBehaviorsStyle() ;
454
+ else if ( FCKConfig.ShowBorders )
455
+ sHeadExtra += FCKTools.GetStyleHtml( FCK_ShowTableBordersCSS, true ) ;
456
+
457
+ sHeadExtra += FCKTools.GetStyleHtml( FCK_InternalCSS, true ) ;
458
+
459
+ // Attention: do not change it before testing it well (sample07)!
460
+ // This is tricky... if the head ends with <meta ... content type>,
461
+ // Firefox will break. But, it works if we place our extra stuff as
462
+ // the last elements in the HEAD.
463
+ data = data.replace( FCKRegexLib.HeadCloser, sHeadExtra + '$&' ) ;
464
+
465
+ // Load the HTML in the editing area.
466
+ this.EditingArea.OnLoad = _FCK_EditingArea_OnLoad ;
467
+ this.EditingArea.Start( data ) ;
468
+ }
469
+ else
470
+ {
471
+ // Remove the references to the following elements, as the editing area
472
+ // IFRAME will be removed.
473
+ FCK.EditorWindow = null ;
474
+ FCK.EditorDocument = null ;
475
+ FCKDomTools.PaddingNode = null ;
476
+
477
+ this.EditingArea.OnLoad = null ;
478
+ this.EditingArea.Start( data ) ;
479
+
480
+ // Enables the context menu in the textarea.
481
+ this.EditingArea.Textarea._FCKShowContextMenu = true ;
482
+
483
+ // Removes the enter key handler.
484
+ FCK.EnterKeyHandler = null ;
485
+
486
+ if ( resetIsDirty )
487
+ this.ResetIsDirty() ;
488
+
489
+ // Listen for keystroke events.
490
+ FCK.KeystrokeHandler.AttachToElement( this.EditingArea.Textarea ) ;
491
+
492
+ this.EditingArea.Textarea.focus() ;
493
+
494
+ FCK.Events.FireEvent( 'OnAfterSetHTML' ) ;
495
+ }
496
+
497
+ if ( FCKBrowserInfo.IsGecko )
498
+ window.onresize() ;
499
+ },
500
+
501
+ // This collection is used by the browser specific implementations to tell
502
+ // which named commands must be handled separately.
503
+ RedirectNamedCommands : new Object(),
504
+
505
+ ExecuteNamedCommand : function( commandName, commandParameter, noRedirect, noSaveUndo )
506
+ {
507
+ if ( !noSaveUndo )
508
+ FCKUndo.SaveUndoStep() ;
509
+
510
+ if ( !noRedirect && FCK.RedirectNamedCommands[ commandName ] != null )
511
+ FCK.ExecuteRedirectedNamedCommand( commandName, commandParameter ) ;
512
+ else
513
+ {
514
+ FCK.Focus() ;
515
+ FCK.EditorDocument.execCommand( commandName, false, commandParameter ) ;
516
+ FCK.Events.FireEvent( 'OnSelectionChange' ) ;
517
+ }
518
+
519
+ if ( !noSaveUndo )
520
+ FCKUndo.SaveUndoStep() ;
521
+ },
522
+
523
+ GetNamedCommandState : function( commandName )
524
+ {
525
+ try
526
+ {
527
+
528
+ // Bug #50 : Safari never returns positive state for the Paste command, override that.
529
+ if ( FCKBrowserInfo.IsSafari && FCK.EditorWindow && commandName.IEquals( 'Paste' ) )
530
+ return FCK_TRISTATE_OFF ;
531
+
532
+ if ( !FCK.EditorDocument.queryCommandEnabled( commandName ) )
533
+ return FCK_TRISTATE_DISABLED ;
534
+ else
535
+ {
536
+ return FCK.EditorDocument.queryCommandState( commandName ) ? FCK_TRISTATE_ON : FCK_TRISTATE_OFF ;
537
+ }
538
+ }
539
+ catch ( e )
540
+ {
541
+ return FCK_TRISTATE_OFF ;
542
+ }
543
+ },
544
+
545
+ GetNamedCommandValue : function( commandName )
546
+ {
547
+ var sValue = '' ;
548
+ var eState = FCK.GetNamedCommandState( commandName ) ;
549
+
550
+ if ( eState == FCK_TRISTATE_DISABLED )
551
+ return null ;
552
+
553
+ try
554
+ {
555
+ sValue = this.EditorDocument.queryCommandValue( commandName ) ;
556
+ }
557
+ catch(e) {}
558
+
559
+ return sValue ? sValue : '' ;
560
+ },
561
+
562
+ Paste : function( _callListenersOnly )
563
+ {
564
+ // First call 'OnPaste' listeners.
565
+ if ( FCK.Status != FCK_STATUS_COMPLETE || !FCK.Events.FireEvent( 'OnPaste' ) )
566
+ return false ;
567
+
568
+ // Then call the default implementation.
569
+ return _callListenersOnly || FCK._ExecPaste() ;
570
+ },
571
+
572
+ PasteFromWord : function()
573
+ {
574
+ FCKDialog.OpenDialog( 'FCKDialog_Paste', FCKLang.PasteFromWord, 'dialog/fck_paste.html', 400, 330, 'Word' ) ;
575
+ },
576
+
577
+ Preview : function()
578
+ {
579
+ var sHTML ;
580
+
581
+ if ( FCKConfig.FullPage )
582
+ {
583
+ if ( FCK.TempBaseTag.length > 0 )
584
+ sHTML = FCK.TempBaseTag + FCK.GetXHTML() ;
585
+ else
586
+ sHTML = FCK.GetXHTML() ;
587
+ }
588
+ else
589
+ {
590
+ sHTML =
591
+ FCKConfig.DocType +
592
+ '<html dir="' + FCKConfig.ContentLangDirection + '">' +
593
+ '<head>' +
594
+ FCK.TempBaseTag +
595
+ '<title>' + FCKLang.Preview + '</title>' +
596
+ _FCK_GetEditorAreaStyleTags() +
597
+ '</head><body' + FCKConfig.GetBodyAttributes() + '>' +
598
+ FCK.GetXHTML() +
599
+ '</body></html>' ;
600
+ }
601
+
602
+ var iWidth = FCKConfig.ScreenWidth * 0.8 ;
603
+ var iHeight = FCKConfig.ScreenHeight * 0.7 ;
604
+ var iLeft = ( FCKConfig.ScreenWidth - iWidth ) / 2 ;
605
+
606
+ var sOpenUrl = '' ;
607
+ if ( FCK_IS_CUSTOM_DOMAIN && FCKBrowserInfo.IsIE)
608
+ {
609
+ window._FCKHtmlToLoad = sHTML ;
610
+ sOpenUrl = 'javascript:void( (function(){' +
611
+ 'document.open() ;' +
612
+ 'document.domain="' + document.domain + '" ;' +
613
+ 'document.write( window.opener._FCKHtmlToLoad );' +
614
+ 'document.close() ;' +
615
+ 'window.opener._FCKHtmlToLoad = null ;' +
616
+ '})() )' ;
617
+ }
618
+
619
+ var oWindow = window.open( sOpenUrl, null, 'toolbar=yes,location=no,status=yes,menubar=yes,scrollbars=yes,resizable=yes,width=' + iWidth + ',height=' + iHeight + ',left=' + iLeft ) ;
620
+
621
+ if ( !FCK_IS_CUSTOM_DOMAIN || !FCKBrowserInfo.IsIE)
622
+ {
623
+ oWindow.document.write( sHTML );
624
+ oWindow.document.close();
625
+ }
626
+
627
+ },
628
+
629
+ SwitchEditMode : function( noUndo )
630
+ {
631
+ var bIsWysiwyg = ( FCK.EditMode == FCK_EDITMODE_WYSIWYG ) ;
632
+
633
+ // Save the current IsDirty state, so we may restore it after the switch.
634
+ var bIsDirty = FCK.IsDirty() ;
635
+
636
+ var sHtml ;
637
+
638
+ // Update the HTML in the view output to show, also update
639
+ // FCKTempBin for IE to avoid #2263.
640
+ if ( bIsWysiwyg )
641
+ {
642
+ FCKCommands.GetCommand( 'ShowBlocks' ).SaveState() ;
643
+ if ( !noUndo && FCKBrowserInfo.IsIE )
644
+ FCKUndo.SaveUndoStep() ;
645
+
646
+ sHtml = FCK.GetXHTML( FCKConfig.FormatSource ) ;
647
+
648
+ if ( FCKBrowserInfo.IsIE )
649
+ FCKTempBin.ToHtml() ;
650
+
651
+ if ( sHtml == null )
652
+ return false ;
653
+ }
654
+ else
655
+ sHtml = this.EditingArea.Textarea.value ;
656
+
657
+ FCK.EditMode = bIsWysiwyg ? FCK_EDITMODE_SOURCE : FCK_EDITMODE_WYSIWYG ;
658
+
659
+ FCK.SetData( sHtml, !bIsDirty ) ;
660
+
661
+ // Set the Focus.
662
+ FCK.Focus() ;
663
+
664
+ // Update the toolbar (Running it directly causes IE to fail).
665
+ FCKTools.RunFunction( FCK.ToolbarSet.RefreshModeState, FCK.ToolbarSet ) ;
666
+
667
+ return true ;
668
+ },
669
+
670
+ InsertElement : function( element )
671
+ {
672
+ // The parameter may be a string (element name), so transform it in an element.
673
+ if ( typeof element == 'string' )
674
+ element = this.EditorDocument.createElement( element ) ;
675
+
676
+ var elementName = element.nodeName.toLowerCase() ;
677
+
678
+ FCKSelection.Restore() ;
679
+
680
+ // Create a range for the selection. V3 will have a new selection
681
+ // object that may internally supply this feature.
682
+ var range = new FCKDomRange( this.EditorWindow ) ;
683
+
684
+ // Move to the selection and delete it.
685
+ range.MoveToSelection() ;
686
+ range.DeleteContents() ;
687
+
688
+ if ( FCKListsLib.BlockElements[ elementName ] != null )
689
+ {
690
+ if ( range.StartBlock )
691
+ {
692
+ if ( range.CheckStartOfBlock() )
693
+ range.MoveToPosition( range.StartBlock, 3 ) ;
694
+ else if ( range.CheckEndOfBlock() )
695
+ range.MoveToPosition( range.StartBlock, 4 ) ;
696
+ else
697
+ range.SplitBlock() ;
698
+ }
699
+
700
+ range.InsertNode( element ) ;
701
+
702
+ var next = FCKDomTools.GetNextSourceElement( element, false, null, [ 'hr','br','param','img','area','input' ], true ) ;
703
+
704
+ // Be sure that we have something after the new element, so we can move the cursor there.
705
+ if ( !next && FCKConfig.EnterMode != 'br')
706
+ {
707
+ next = this.EditorDocument.body.appendChild( this.EditorDocument.createElement( FCKConfig.EnterMode ) ) ;
708
+
709
+ if ( FCKBrowserInfo.IsGeckoLike )
710
+ FCKTools.AppendBogusBr( next ) ;
711
+ }
712
+
713
+ if ( FCKListsLib.EmptyElements[ elementName ] == null )
714
+ range.MoveToElementEditStart( element ) ;
715
+ else if ( next )
716
+ range.MoveToElementEditStart( next ) ;
717
+ else
718
+ range.MoveToPosition( element, 4 ) ;
719
+
720
+ if ( FCKBrowserInfo.IsGeckoLike )
721
+ {
722
+ if ( next )
723
+ FCKDomTools.ScrollIntoView( next, false );
724
+ FCKDomTools.ScrollIntoView( element, false );
725
+ }
726
+ }
727
+ else
728
+ {
729
+ // Insert the node.
730
+ range.InsertNode( element ) ;
731
+
732
+ // Move the selection right after the new element.
733
+ // DISCUSSION: Should we select the element instead?
734
+ range.SetStart( element, 4 ) ;
735
+ range.SetEnd( element, 4 ) ;
736
+ }
737
+
738
+ range.Select() ;
739
+ range.Release() ;
740
+
741
+ // REMOVE IT: The focus should not really be set here. It is up to the
742
+ // calling code to reset the focus if needed.
743
+ this.Focus() ;
744
+
745
+ return element ;
746
+ },
747
+
748
+ _InsertBlockElement : function( blockElement )
749
+ {
750
+ },
751
+
752
+ _IsFunctionKey : function( keyCode )
753
+ {
754
+ // keys that are captured but do not change editor contents
755
+ if ( keyCode >= 16 && keyCode <= 20 )
756
+ // shift, ctrl, alt, pause, capslock
757
+ return true ;
758
+ if ( keyCode == 27 || ( keyCode >= 33 && keyCode <= 40 ) )
759
+ // esc, page up, page down, end, home, left, up, right, down
760
+ return true ;
761
+ if ( keyCode == 45 )
762
+ // insert, no effect on FCKeditor, yet
763
+ return true ;
764
+ return false ;
765
+ },
766
+
767
+ _KeyDownListener : function( evt )
768
+ {
769
+ if (! evt)
770
+ evt = FCK.EditorWindow.event ;
771
+ if ( FCK.EditorWindow )
772
+ {
773
+ if ( !FCK._IsFunctionKey(evt.keyCode) // do not capture function key presses, like arrow keys or shift/alt/ctrl
774
+ && !(evt.ctrlKey || evt.metaKey) // do not capture Ctrl hotkeys, as they have their snapshot capture logic
775
+ && !(evt.keyCode == 46) ) // do not capture Del, it has its own capture logic in fckenterkey.js
776
+ FCK._KeyDownUndo() ;
777
+ }
778
+ return true ;
779
+ },
780
+
781
+ _KeyDownUndo : function()
782
+ {
783
+ if ( !FCKUndo.Typing )
784
+ {
785
+ FCKUndo.SaveUndoStep() ;
786
+ FCKUndo.Typing = true ;
787
+ FCK.Events.FireEvent( "OnSelectionChange" ) ;
788
+ }
789
+
790
+ FCKUndo.TypesCount++ ;
791
+ FCKUndo.Changed = 1 ;
792
+
793
+ if ( FCKUndo.TypesCount > FCKUndo.MaxTypes )
794
+ {
795
+ FCKUndo.TypesCount = 0 ;
796
+ FCKUndo.SaveUndoStep() ;
797
+ }
798
+ },
799
+
800
+ _TabKeyHandler : function( evt )
801
+ {
802
+ if ( ! evt )
803
+ evt = window.event ;
804
+
805
+ var keystrokeValue = evt.keyCode ;
806
+
807
+ // Pressing <Tab> in source mode should produce a tab space in the text area, not
808
+ // changing the focus to something else.
809
+ if ( keystrokeValue == 9 && FCK.EditMode != FCK_EDITMODE_WYSIWYG )
810
+ {
811
+ if ( FCKBrowserInfo.IsIE )
812
+ {
813
+ var range = document.selection.createRange() ;
814
+ if ( range.parentElement() != FCK.EditingArea.Textarea )
815
+ return true ;
816
+ range.text = '\t' ;
817
+ range.select() ;
818
+ }
819
+ else
820
+ {
821
+ var a = [] ;
822
+ var el = FCK.EditingArea.Textarea ;
823
+ var selStart = el.selectionStart ;
824
+ var selEnd = el.selectionEnd ;
825
+ a.push( el.value.substr(0, selStart ) ) ;
826
+ a.push( '\t' ) ;
827
+ a.push( el.value.substr( selEnd ) ) ;
828
+ el.value = a.join( '' ) ;
829
+ el.setSelectionRange( selStart + 1, selStart + 1 ) ;
830
+ }
831
+
832
+ if ( evt.preventDefault )
833
+ return evt.preventDefault() ;
834
+
835
+ return evt.returnValue = false ;
836
+ }
837
+
838
+ return true ;
839
+ }
840
+ } ;
841
+
842
+ FCK.Events = new FCKEvents( FCK ) ;
843
+
844
+ // DEPRECATED in favor or "GetData".
845
+ FCK.GetHTML = FCK.GetXHTML = FCK.GetData ;
846
+
847
+ // DEPRECATED in favor of "SetData".
848
+ FCK.SetHTML = FCK.SetData ;
849
+
850
+ // InsertElementAndGetIt and CreateElement are Deprecated : returns the same value as InsertElement.
851
+ FCK.InsertElementAndGetIt = FCK.CreateElement = FCK.InsertElement ;
852
+
853
+ // Replace all events attributes (like onclick).
854
+ function _FCK_ProtectEvents_ReplaceTags( tagMatch )
855
+ {
856
+ return tagMatch.replace( FCKRegexLib.EventAttributes, _FCK_ProtectEvents_ReplaceEvents ) ;
857
+ }
858
+
859
+ // Replace an event attribute with its respective __fckprotectedatt attribute.
860
+ // The original event markup will be encoded and saved as the value of the new
861
+ // attribute.
862
+ function _FCK_ProtectEvents_ReplaceEvents( eventMatch, attName )
863
+ {
864
+ return ' ' + attName + '_fckprotectedatt="' + encodeURIComponent( eventMatch ) + '"' ;
865
+ }
866
+
867
+ function _FCK_ProtectEvents_RestoreEvents( match, encodedOriginal )
868
+ {
869
+ return decodeURIComponent( encodedOriginal ) ;
870
+ }
871
+
872
+ function _FCK_MouseEventsListener( evt )
873
+ {
874
+ if ( ! evt )
875
+ evt = window.event ;
876
+ if ( evt.type == 'mousedown' )
877
+ FCK.MouseDownFlag = true ;
878
+ else if ( evt.type == 'mouseup' )
879
+ FCK.MouseDownFlag = false ;
880
+ else if ( evt.type == 'mousemove' )
881
+ FCK.Events.FireEvent( 'OnMouseMove', evt ) ;
882
+ }
883
+
884
+ function _FCK_PaddingNodeListener()
885
+ {
886
+ if ( FCKConfig.EnterMode.IEquals( 'br' ) )
887
+ return ;
888
+ FCKDomTools.EnforcePaddingNode( FCK.EditorDocument, FCKConfig.EnterMode ) ;
889
+
890
+ if ( ! FCKBrowserInfo.IsIE && FCKDomTools.PaddingNode )
891
+ {
892
+ // Prevent the caret from going between the body and the padding node in Firefox.
893
+ // i.e. <body>|<p></p></body>
894
+ var sel = FCKSelection.GetSelection() ;
895
+ if ( sel && sel.rangeCount == 1 )
896
+ {
897
+ var range = sel.getRangeAt( 0 ) ;
898
+ if ( range.collapsed && range.startContainer == FCK.EditorDocument.body && range.startOffset == 0 )
899
+ {
900
+ range.selectNodeContents( FCKDomTools.PaddingNode ) ;
901
+ range.collapse( true ) ;
902
+ sel.removeAllRanges() ;
903
+ sel.addRange( range ) ;
904
+ }
905
+ }
906
+ }
907
+ else if ( FCKDomTools.PaddingNode )
908
+ {
909
+ // Prevent the caret from going into an empty body but not into the padding node in IE.
910
+ // i.e. <body><p></p>|</body>
911
+ var parentElement = FCKSelection.GetParentElement() ;
912
+ var paddingNode = FCKDomTools.PaddingNode ;
913
+ if ( parentElement && parentElement.nodeName.IEquals( 'body' ) )
914
+ {
915
+ if ( FCK.EditorDocument.body.childNodes.length == 1
916
+ && FCK.EditorDocument.body.firstChild == paddingNode )
917
+ {
918
+ /*
919
+ * Bug #1764: Don't move the selection if the
920
+ * current selection isn't in the editor
921
+ * document.
922
+ */
923
+ if ( FCKSelection._GetSelectionDocument( FCK.EditorDocument.selection ) != FCK.EditorDocument )
924
+ return ;
925
+
926
+ var range = FCK.EditorDocument.body.createTextRange() ;
927
+ var clearContents = false ;
928
+ if ( !paddingNode.childNodes.firstChild )
929
+ {
930
+ paddingNode.appendChild( FCKTools.GetElementDocument( paddingNode ).createTextNode( '\ufeff' ) ) ;
931
+ clearContents = true ;
932
+ }
933
+ range.moveToElementText( paddingNode ) ;
934
+ range.select() ;
935
+ if ( clearContents )
936
+ range.pasteHTML( '' ) ;
937
+ }
938
+ }
939
+ }
940
+ }
941
+
942
+ function _FCK_EditingArea_OnLoad()
943
+ {
944
+ // Get the editor's window and document (DOM)
945
+ FCK.EditorWindow = FCK.EditingArea.Window ;
946
+ FCK.EditorDocument = FCK.EditingArea.Document ;
947
+
948
+ if ( FCKBrowserInfo.IsIE )
949
+ FCKTempBin.ToElements() ;
950
+
951
+ FCK.InitializeBehaviors() ;
952
+
953
+ // Listen for mousedown and mouseup events for tracking drag and drops.
954
+ FCK.MouseDownFlag = false ;
955
+ FCKTools.AddEventListener( FCK.EditorDocument, 'mousemove', _FCK_MouseEventsListener ) ;
956
+ FCKTools.AddEventListener( FCK.EditorDocument, 'mousedown', _FCK_MouseEventsListener ) ;
957
+ FCKTools.AddEventListener( FCK.EditorDocument, 'mouseup', _FCK_MouseEventsListener ) ;
958
+
959
+ // Most of the CTRL key combos do not work under Safari for onkeydown and onkeypress (See #1119)
960
+ // But we can use the keyup event to override some of these...
961
+ if ( FCKBrowserInfo.IsSafari )
962
+ {
963
+ var undoFunc = function( evt )
964
+ {
965
+ if ( ! ( evt.ctrlKey || evt.metaKey ) )
966
+ return ;
967
+ if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
968
+ return ;
969
+ switch ( evt.keyCode )
970
+ {
971
+ case 89:
972
+ FCKUndo.Redo() ;
973
+ break ;
974
+ case 90:
975
+ FCKUndo.Undo() ;
976
+ break ;
977
+ }
978
+ }
979
+
980
+ FCKTools.AddEventListener( FCK.EditorDocument, 'keyup', undoFunc ) ;
981
+ }
982
+
983
+ // Create the enter key handler
984
+ FCK.EnterKeyHandler = new FCKEnterKey( FCK.EditorWindow, FCKConfig.EnterMode, FCKConfig.ShiftEnterMode, FCKConfig.TabSpaces ) ;
985
+
986
+ // Listen for keystroke events.
987
+ FCK.KeystrokeHandler.AttachToElement( FCK.EditorDocument ) ;
988
+
989
+ if ( FCK._ForceResetIsDirty )
990
+ FCK.ResetIsDirty() ;
991
+
992
+ // This is a tricky thing for IE. In some cases, even if the cursor is
993
+ // blinking in the editing, the keystroke handler doesn't catch keyboard
994
+ // events. We must activate the editing area to make it work. (#142).
995
+ if ( FCKBrowserInfo.IsIE && FCK.HasFocus )
996
+ FCK.EditorDocument.body.setActive() ;
997
+
998
+ FCK.OnAfterSetHTML() ;
999
+
1000
+ // Restore show blocks status.
1001
+ FCKCommands.GetCommand( 'ShowBlocks' ).RestoreState() ;
1002
+
1003
+ // Check if it is not a startup call, otherwise complete the startup.
1004
+ if ( FCK.Status != FCK_STATUS_NOTLOADED )
1005
+ return ;
1006
+
1007
+ FCK.SetStatus( FCK_STATUS_ACTIVE ) ;
1008
+ }
1009
+
1010
+ function _FCK_GetEditorAreaStyleTags()
1011
+ {
1012
+ return FCKTools.GetStyleHtml( FCKConfig.EditorAreaCSS ) +
1013
+ FCKTools.GetStyleHtml( FCKConfig.EditorAreaStyles ) ;
1014
+ }
1015
+
1016
+ function _FCK_KeystrokeHandler_OnKeystroke( keystroke, keystrokeValue )
1017
+ {
1018
+ if ( FCK.Status != FCK_STATUS_COMPLETE )
1019
+ return false ;
1020
+
1021
+ if ( FCK.EditMode == FCK_EDITMODE_WYSIWYG )
1022
+ {
1023
+ switch ( keystrokeValue )
1024
+ {
1025
+ case 'Paste' :
1026
+ return !FCK.Paste() ;
1027
+
1028
+ case 'Cut' :
1029
+ FCKUndo.SaveUndoStep() ;
1030
+ return false ;
1031
+ }
1032
+ }
1033
+ else
1034
+ {
1035
+ // In source mode, some actions must have their default behavior.
1036
+ if ( keystrokeValue.Equals( 'Paste', 'Undo', 'Redo', 'SelectAll', 'Cut' ) )
1037
+ return false ;
1038
+ }
1039
+
1040
+ // The return value indicates if the default behavior of the keystroke must
1041
+ // be cancelled. Let's do that only if the Execute() call explicitly returns "false".
1042
+ var oCommand = FCK.Commands.GetCommand( keystrokeValue ) ;
1043
+
1044
+ // If the command is disabled then ignore the keystroke
1045
+ if ( oCommand.GetState() == FCK_TRISTATE_DISABLED )
1046
+ return false ;
1047
+
1048
+ return ( oCommand.Execute.apply( oCommand, FCKTools.ArgumentsToArray( arguments, 2 ) ) !== false ) ;
1049
+ }
1050
+
1051
+ // Set the FCK.LinkedField reference to the field that will be used to post the
1052
+ // editor data.
1053
+ (function()
1054
+ {
1055
+ // There is a bug on IE... getElementById returns any META tag that has the
1056
+ // name set to the ID you are looking for. So the best way in to get the array
1057
+ // by names and look for the correct one.
1058
+ // As ASP.Net generates a ID that is different from the Name, we must also
1059
+ // look for the field based on the ID (the first one is the ID).
1060
+
1061
+ var oDocument = window.parent.document ;
1062
+
1063
+ // Try to get the field using the ID.
1064
+ var eLinkedField = oDocument.getElementById( FCK.Name ) ;
1065
+
1066
+ var i = 0;
1067
+ while ( eLinkedField || i == 0 )
1068
+ {
1069
+ if ( eLinkedField && eLinkedField.tagName.toLowerCase().Equals( 'input', 'textarea' ) )
1070
+ {
1071
+ FCK.LinkedField = eLinkedField ;
1072
+ break ;
1073
+ }
1074
+
1075
+ eLinkedField = oDocument.getElementsByName( FCK.Name )[i++] ;
1076
+ }
1077
+ })() ;
1078
+
1079
+ var FCKTempBin =
1080
+ {
1081
+ Elements : new Array(),
1082
+
1083
+ AddElement : function( element )
1084
+ {
1085
+ var iIndex = this.Elements.length ;
1086
+ this.Elements[ iIndex ] = element ;
1087
+ return iIndex ;
1088
+ },
1089
+
1090
+ RemoveElement : function( index )
1091
+ {
1092
+ var e = this.Elements[ index ] ;
1093
+ this.Elements[ index ] = null ;
1094
+ return e ;
1095
+ },
1096
+
1097
+ Reset : function()
1098
+ {
1099
+ var i = 0 ;
1100
+ while ( i < this.Elements.length )
1101
+ this.Elements[ i++ ] = null ;
1102
+ this.Elements.length = 0 ;
1103
+ },
1104
+
1105
+ ToHtml : function()
1106
+ {
1107
+ for ( var i = 0 ; i < this.Elements.length ; i++ )
1108
+ {
1109
+ this.Elements[i] = '<div>&nbsp;' + this.Elements[i].outerHTML + '</div>' ;
1110
+ this.Elements[i].isHtml = true ;
1111
+ }
1112
+ },
1113
+
1114
+ ToElements : function()
1115
+ {
1116
+ var node = FCK.EditorDocument.createElement( 'div' ) ;
1117
+ for ( var i = 0 ; i < this.Elements.length ; i++ )
1118
+ {
1119
+ if ( this.Elements[i].isHtml )
1120
+ {
1121
+ node.innerHTML = this.Elements[i] ;
1122
+ this.Elements[i] = node.firstChild.removeChild( node.firstChild.lastChild ) ;
1123
+ }
1124
+ }
1125
+ }
1126
+ } ;
1127
+
1128
+
1129
+
1130
+ // # Focus Manager: Manages the focus in the editor.
1131
+ var FCKFocusManager = FCK.FocusManager =
1132
+ {
1133
+ IsLocked : false,
1134
+
1135
+ AddWindow : function( win, sendToEditingArea )
1136
+ {
1137
+ var oTarget ;
1138
+
1139
+ if ( FCKBrowserInfo.IsIE )
1140
+ oTarget = win.nodeType == 1 ? win : win.frameElement ? win.frameElement : win.document ;
1141
+ else if ( FCKBrowserInfo.IsSafari )
1142
+ oTarget = win ;
1143
+ else
1144
+ oTarget = win.document ;
1145
+
1146
+ FCKTools.AddEventListener( oTarget, 'blur', FCKFocusManager_Win_OnBlur ) ;
1147
+ FCKTools.AddEventListener( oTarget, 'focus', sendToEditingArea ? FCKFocusManager_Win_OnFocus_Area : FCKFocusManager_Win_OnFocus ) ;
1148
+ },
1149
+
1150
+ RemoveWindow : function( win )
1151
+ {
1152
+ if ( FCKBrowserInfo.IsIE )
1153
+ oTarget = win.nodeType == 1 ? win : win.frameElement ? win.frameElement : win.document ;
1154
+ else
1155
+ oTarget = win.document ;
1156
+
1157
+ FCKTools.RemoveEventListener( oTarget, 'blur', FCKFocusManager_Win_OnBlur ) ;
1158
+ FCKTools.RemoveEventListener( oTarget, 'focus', FCKFocusManager_Win_OnFocus_Area ) ;
1159
+ FCKTools.RemoveEventListener( oTarget, 'focus', FCKFocusManager_Win_OnFocus ) ;
1160
+ },
1161
+
1162
+ Lock : function()
1163
+ {
1164
+ this.IsLocked = true ;
1165
+ },
1166
+
1167
+ Unlock : function()
1168
+ {
1169
+ if ( this._HasPendingBlur )
1170
+ FCKFocusManager._Timer = window.setTimeout( FCKFocusManager_FireOnBlur, 100 ) ;
1171
+
1172
+ this.IsLocked = false ;
1173
+ },
1174
+
1175
+ _ResetTimer : function()
1176
+ {
1177
+ this._HasPendingBlur = false ;
1178
+
1179
+ if ( this._Timer )
1180
+ {
1181
+ window.clearTimeout( this._Timer ) ;
1182
+ delete this._Timer ;
1183
+ }
1184
+ }
1185
+ } ;
1186
+
1187
+ function FCKFocusManager_Win_OnBlur()
1188
+ {
1189
+ if ( typeof(FCK) != 'undefined' && FCK.HasFocus )
1190
+ {
1191
+ FCKFocusManager._ResetTimer() ;
1192
+ FCKFocusManager._Timer = window.setTimeout( FCKFocusManager_FireOnBlur, 100 ) ;
1193
+ }
1194
+ }
1195
+
1196
+ function FCKFocusManager_FireOnBlur()
1197
+ {
1198
+ if ( FCKFocusManager.IsLocked )
1199
+ FCKFocusManager._HasPendingBlur = true ;
1200
+ else
1201
+ {
1202
+ FCK.HasFocus = false ;
1203
+ FCK.Events.FireEvent( "OnBlur" ) ;
1204
+ }
1205
+ }
1206
+
1207
+ function FCKFocusManager_Win_OnFocus_Area()
1208
+ {
1209
+ // Check if we are already focusing the editor (to avoid loops).
1210
+ if ( FCKFocusManager._IsFocusing )
1211
+ return ;
1212
+
1213
+ FCKFocusManager._IsFocusing = true ;
1214
+
1215
+ FCK.Focus() ;
1216
+ FCKFocusManager_Win_OnFocus() ;
1217
+
1218
+ // The above FCK.Focus() call may trigger other focus related functions.
1219
+ // So, to avoid a loop, we delay the focusing mark removal, so it get
1220
+ // executed after all othre functions have been run.
1221
+ FCKTools.RunFunction( function()
1222
+ {
1223
+ delete FCKFocusManager._IsFocusing ;
1224
+ } ) ;
1225
+ }
1226
+
1227
+ function FCKFocusManager_Win_OnFocus()
1228
+ {
1229
+ FCKFocusManager._ResetTimer() ;
1230
+
1231
+ if ( !FCK.HasFocus && !FCKFocusManager.IsLocked )
1232
+ {
1233
+ FCK.HasFocus = true ;
1234
+ FCK.Events.FireEvent( "OnFocus" ) ;
1235
+ }
1236
+ }
1237
+
1238
+ /*
1239
+ * #1633 : Protect the editor iframe from external styles.
1240
+ * Notice that we can't use FCKTools.ResetStyles here since FCKTools isn't
1241
+ * loaded yet.
1242
+ */
1243
+ (function()
1244
+ {
1245
+ var el = window.frameElement ;
1246
+ var width = el.width ;
1247
+ var height = el.height ;
1248
+ if ( /^\d+$/.test( width ) ) width += 'px' ;
1249
+ if ( /^\d+$/.test( height ) ) height += 'px' ;
1250
+ var style = el.style ;
1251
+ style.border = style.padding = style.margin = 0 ;
1252
+ style.backgroundColor = 'transparent';
1253
+ style.backgroundImage = 'none';
1254
+ style.width = width ;
1255
+ style.height = height ;
1256
+ })() ;