iaddict-bcms_fckeditor 1.1.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (327) hide show
  1. data/LICENSE.txt +165 -0
  2. data/README.markdown +34 -0
  3. data/lib/bcms_fckeditor.rb +2 -0
  4. data/lib/bcms_fckeditor/engine.rb +12 -0
  5. data/lib/bcms_fckeditor/routes.rb +7 -0
  6. data/lib/bcms_fckeditor/section_controller_extensions.rb +88 -0
  7. data/lib/generators/bcms_fckeditor/install/USAGE +10 -0
  8. data/lib/generators/bcms_fckeditor/install/install_generator.rb +18 -0
  9. data/lib/generators/bcms_fckeditor/install/templates/fckstyles.xml +111 -0
  10. data/public/bcms/fckeditor/README +1 -0
  11. data/public/bcms/fckeditor/editor.js +56 -0
  12. data/public/bcms/fckeditor/editor/css/behaviors/disablehandles.htc +15 -0
  13. data/public/bcms/fckeditor/editor/css/behaviors/showtableborders.htc +36 -0
  14. data/public/bcms/fckeditor/editor/css/fck_editorarea.css +110 -0
  15. data/public/bcms/fckeditor/editor/css/fck_internal.css +199 -0
  16. data/public/bcms/fckeditor/editor/css/fck_showtableborders_gecko.css +49 -0
  17. data/public/bcms/fckeditor/editor/css/images/block_address.png +0 -0
  18. data/public/bcms/fckeditor/editor/css/images/block_blockquote.png +0 -0
  19. data/public/bcms/fckeditor/editor/css/images/block_div.png +0 -0
  20. data/public/bcms/fckeditor/editor/css/images/block_h1.png +0 -0
  21. data/public/bcms/fckeditor/editor/css/images/block_h2.png +0 -0
  22. data/public/bcms/fckeditor/editor/css/images/block_h3.png +0 -0
  23. data/public/bcms/fckeditor/editor/css/images/block_h4.png +0 -0
  24. data/public/bcms/fckeditor/editor/css/images/block_h5.png +0 -0
  25. data/public/bcms/fckeditor/editor/css/images/block_h6.png +0 -0
  26. data/public/bcms/fckeditor/editor/css/images/block_p.png +0 -0
  27. data/public/bcms/fckeditor/editor/css/images/block_pre.png +0 -0
  28. data/public/bcms/fckeditor/editor/css/images/fck_anchor.gif +0 -0
  29. data/public/bcms/fckeditor/editor/css/images/fck_flashlogo.gif +0 -0
  30. data/public/bcms/fckeditor/editor/css/images/fck_hiddenfield.gif +0 -0
  31. data/public/bcms/fckeditor/editor/css/images/fck_pagebreak.gif +0 -0
  32. data/public/bcms/fckeditor/editor/css/images/fck_plugin.gif +0 -0
  33. data/public/bcms/fckeditor/editor/dialog/common/fck_dialog_common.css +85 -0
  34. data/public/bcms/fckeditor/editor/dialog/common/fck_dialog_common.js +311 -0
  35. data/public/bcms/fckeditor/editor/dialog/common/images/locked.gif +0 -0
  36. data/public/bcms/fckeditor/editor/dialog/common/images/reset.gif +0 -0
  37. data/public/bcms/fckeditor/editor/dialog/common/images/unlocked.gif +0 -0
  38. data/public/bcms/fckeditor/editor/dialog/fck_about.html +161 -0
  39. data/public/bcms/fckeditor/editor/dialog/fck_about/logo_fckeditor.gif +0 -0
  40. data/public/bcms/fckeditor/editor/dialog/fck_about/logo_fredck.gif +0 -0
  41. data/public/bcms/fckeditor/editor/dialog/fck_about/sponsors/spellchecker_net.gif +0 -0
  42. data/public/bcms/fckeditor/editor/dialog/fck_anchor.html +220 -0
  43. data/public/bcms/fckeditor/editor/dialog/fck_button.html +104 -0
  44. data/public/bcms/fckeditor/editor/dialog/fck_checkbox.html +104 -0
  45. data/public/bcms/fckeditor/editor/dialog/fck_colorselector.html +172 -0
  46. data/public/bcms/fckeditor/editor/dialog/fck_div.html +364 -0
  47. data/public/bcms/fckeditor/editor/dialog/fck_docprops.html +600 -0
  48. data/public/bcms/fckeditor/editor/dialog/fck_docprops/fck_document_preview.html +113 -0
  49. data/public/bcms/fckeditor/editor/dialog/fck_flash.html +152 -0
  50. data/public/bcms/fckeditor/editor/dialog/fck_flash/fck_flash.js +300 -0
  51. data/public/bcms/fckeditor/editor/dialog/fck_flash/fck_flash_preview.html +50 -0
  52. data/public/bcms/fckeditor/editor/dialog/fck_form.html +109 -0
  53. data/public/bcms/fckeditor/editor/dialog/fck_hiddenfield.html +115 -0
  54. data/public/bcms/fckeditor/editor/dialog/fck_image.html +258 -0
  55. data/public/bcms/fckeditor/editor/dialog/fck_image/fck_image.js +512 -0
  56. data/public/bcms/fckeditor/editor/dialog/fck_image/fck_image_preview.html +72 -0
  57. data/public/bcms/fckeditor/editor/dialog/fck_link.html +295 -0
  58. data/public/bcms/fckeditor/editor/dialog/fck_link/fck_link.js +893 -0
  59. data/public/bcms/fckeditor/editor/dialog/fck_listprop.html +120 -0
  60. data/public/bcms/fckeditor/editor/dialog/fck_paste.html +346 -0
  61. data/public/bcms/fckeditor/editor/dialog/fck_radiobutton.html +104 -0
  62. data/public/bcms/fckeditor/editor/dialog/fck_replace.html +648 -0
  63. data/public/bcms/fckeditor/editor/dialog/fck_select.html +180 -0
  64. data/public/bcms/fckeditor/editor/dialog/fck_select/fck_select.js +194 -0
  65. data/public/bcms/fckeditor/editor/dialog/fck_smiley.html +111 -0
  66. data/public/bcms/fckeditor/editor/dialog/fck_source.html +68 -0
  67. data/public/bcms/fckeditor/editor/dialog/fck_specialchar.html +121 -0
  68. data/public/bcms/fckeditor/editor/dialog/fck_spellerpages.html +70 -0
  69. data/public/bcms/fckeditor/editor/dialog/fck_spellerpages/spellerpages/blank.html +0 -0
  70. data/public/bcms/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controlWindow.js +87 -0
  71. data/public/bcms/fckeditor/editor/dialog/fck_spellerpages/spellerpages/controls.html +153 -0
  72. data/public/bcms/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.cfm +148 -0
  73. data/public/bcms/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.php +199 -0
  74. data/public/bcms/fckeditor/editor/dialog/fck_spellerpages/spellerpages/server-scripts/spellchecker.pl +181 -0
  75. data/public/bcms/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellChecker.js +461 -0
  76. data/public/bcms/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellchecker.html +71 -0
  77. data/public/bcms/fckeditor/editor/dialog/fck_spellerpages/spellerpages/spellerStyle.css +49 -0
  78. data/public/bcms/fckeditor/editor/dialog/fck_spellerpages/spellerpages/wordWindow.js +272 -0
  79. data/public/bcms/fckeditor/editor/dialog/fck_table.html +298 -0
  80. data/public/bcms/fckeditor/editor/dialog/fck_tablecell.html +257 -0
  81. data/public/bcms/fckeditor/editor/dialog/fck_template.html +242 -0
  82. data/public/bcms/fckeditor/editor/dialog/fck_template/images/template1.gif +0 -0
  83. data/public/bcms/fckeditor/editor/dialog/fck_template/images/template2.gif +0 -0
  84. data/public/bcms/fckeditor/editor/dialog/fck_template/images/template3.gif +0 -0
  85. data/public/bcms/fckeditor/editor/dialog/fck_textarea.html +94 -0
  86. data/public/bcms/fckeditor/editor/dialog/fck_textfield.html +136 -0
  87. data/public/bcms/fckeditor/editor/dtd/fck_dtd_test.html +41 -0
  88. data/public/bcms/fckeditor/editor/dtd/fck_xhtml10strict.js +116 -0
  89. data/public/bcms/fckeditor/editor/dtd/fck_xhtml10transitional.js +140 -0
  90. data/public/bcms/fckeditor/editor/fckdebug.html +153 -0
  91. data/public/bcms/fckeditor/editor/fckdialog.html +812 -0
  92. data/public/bcms/fckeditor/editor/fckeditor.html +317 -0
  93. data/public/bcms/fckeditor/editor/fckeditor.original.html +424 -0
  94. data/public/bcms/fckeditor/editor/filemanager/browser/default/browser.css +87 -0
  95. data/public/bcms/fckeditor/editor/filemanager/browser/default/browser.html +200 -0
  96. data/public/bcms/fckeditor/editor/filemanager/browser/default/frmactualfolder.html +95 -0
  97. data/public/bcms/fckeditor/editor/filemanager/browser/default/frmcreatefolder.html +114 -0
  98. data/public/bcms/fckeditor/editor/filemanager/browser/default/frmfolders.html +198 -0
  99. data/public/bcms/fckeditor/editor/filemanager/browser/default/frmresourceslist.html +169 -0
  100. data/public/bcms/fckeditor/editor/filemanager/browser/default/frmresourcetype.html +68 -0
  101. data/public/bcms/fckeditor/editor/filemanager/browser/default/frmupload.html +115 -0
  102. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/ButtonArrow.gif +0 -0
  103. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/Folder.gif +0 -0
  104. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/Folder32.gif +0 -0
  105. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/FolderOpened.gif +0 -0
  106. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/FolderOpened32.gif +0 -0
  107. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/FolderUp.gif +0 -0
  108. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/ai.gif +0 -0
  109. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/avi.gif +0 -0
  110. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/bmp.gif +0 -0
  111. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/cs.gif +0 -0
  112. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/default.icon.gif +0 -0
  113. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/dll.gif +0 -0
  114. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/doc.gif +0 -0
  115. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/exe.gif +0 -0
  116. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/fla.gif +0 -0
  117. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/gif.gif +0 -0
  118. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/htm.gif +0 -0
  119. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/html.gif +0 -0
  120. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/jpg.gif +0 -0
  121. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/js.gif +0 -0
  122. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/mdb.gif +0 -0
  123. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/mp3.gif +0 -0
  124. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/pdf.gif +0 -0
  125. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/png.gif +0 -0
  126. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/ppt.gif +0 -0
  127. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/rdp.gif +0 -0
  128. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/swf.gif +0 -0
  129. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/swt.gif +0 -0
  130. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/txt.gif +0 -0
  131. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/vsd.gif +0 -0
  132. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/xls.gif +0 -0
  133. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/xml.gif +0 -0
  134. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/32/zip.gif +0 -0
  135. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/ai.gif +0 -0
  136. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/avi.gif +0 -0
  137. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/bmp.gif +0 -0
  138. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/cs.gif +0 -0
  139. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/default.icon.gif +0 -0
  140. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/dll.gif +0 -0
  141. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/doc.gif +0 -0
  142. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/exe.gif +0 -0
  143. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/fla.gif +0 -0
  144. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/gif.gif +0 -0
  145. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/htm.gif +0 -0
  146. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/html.gif +0 -0
  147. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/jpg.gif +0 -0
  148. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/js.gif +0 -0
  149. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/mdb.gif +0 -0
  150. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/mp3.gif +0 -0
  151. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/pdf.gif +0 -0
  152. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/png.gif +0 -0
  153. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/ppt.gif +0 -0
  154. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/rdp.gif +0 -0
  155. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/swf.gif +0 -0
  156. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/swt.gif +0 -0
  157. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/txt.gif +0 -0
  158. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/vsd.gif +0 -0
  159. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/xls.gif +0 -0
  160. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/xml.gif +0 -0
  161. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/icons/zip.gif +0 -0
  162. data/public/bcms/fckeditor/editor/filemanager/browser/default/images/spacer.gif +0 -0
  163. data/public/bcms/fckeditor/editor/filemanager/browser/default/js/common.js +88 -0
  164. data/public/bcms/fckeditor/editor/filemanager/browser/default/js/fckxml.js +147 -0
  165. data/public/bcms/fckeditor/editor/images/anchor.gif +0 -0
  166. data/public/bcms/fckeditor/editor/images/arrow_ltr.gif +0 -0
  167. data/public/bcms/fckeditor/editor/images/arrow_rtl.gif +0 -0
  168. data/public/bcms/fckeditor/editor/images/smiley/msn/angel_smile.gif +0 -0
  169. data/public/bcms/fckeditor/editor/images/smiley/msn/angry_smile.gif +0 -0
  170. data/public/bcms/fckeditor/editor/images/smiley/msn/broken_heart.gif +0 -0
  171. data/public/bcms/fckeditor/editor/images/smiley/msn/cake.gif +0 -0
  172. data/public/bcms/fckeditor/editor/images/smiley/msn/confused_smile.gif +0 -0
  173. data/public/bcms/fckeditor/editor/images/smiley/msn/cry_smile.gif +0 -0
  174. data/public/bcms/fckeditor/editor/images/smiley/msn/devil_smile.gif +0 -0
  175. data/public/bcms/fckeditor/editor/images/smiley/msn/embaressed_smile.gif +0 -0
  176. data/public/bcms/fckeditor/editor/images/smiley/msn/envelope.gif +0 -0
  177. data/public/bcms/fckeditor/editor/images/smiley/msn/heart.gif +0 -0
  178. data/public/bcms/fckeditor/editor/images/smiley/msn/kiss.gif +0 -0
  179. data/public/bcms/fckeditor/editor/images/smiley/msn/lightbulb.gif +0 -0
  180. data/public/bcms/fckeditor/editor/images/smiley/msn/omg_smile.gif +0 -0
  181. data/public/bcms/fckeditor/editor/images/smiley/msn/regular_smile.gif +0 -0
  182. data/public/bcms/fckeditor/editor/images/smiley/msn/sad_smile.gif +0 -0
  183. data/public/bcms/fckeditor/editor/images/smiley/msn/shades_smile.gif +0 -0
  184. data/public/bcms/fckeditor/editor/images/smiley/msn/teeth_smile.gif +0 -0
  185. data/public/bcms/fckeditor/editor/images/smiley/msn/thumbs_down.gif +0 -0
  186. data/public/bcms/fckeditor/editor/images/smiley/msn/thumbs_up.gif +0 -0
  187. data/public/bcms/fckeditor/editor/images/smiley/msn/tounge_smile.gif +0 -0
  188. data/public/bcms/fckeditor/editor/images/smiley/msn/whatchutalkingabout_smile.gif +0 -0
  189. data/public/bcms/fckeditor/editor/images/smiley/msn/wink_smile.gif +0 -0
  190. data/public/bcms/fckeditor/editor/images/spacer.gif +0 -0
  191. data/public/bcms/fckeditor/editor/js/fckadobeair.js +176 -0
  192. data/public/bcms/fckeditor/editor/js/fckeditorcode_gecko.js +108 -0
  193. data/public/bcms/fckeditor/editor/js/fckeditorcode_ie.js +109 -0
  194. data/public/bcms/fckeditor/editor/lang/_translationstatus.txt +78 -0
  195. data/public/bcms/fckeditor/editor/lang/af.js +526 -0
  196. data/public/bcms/fckeditor/editor/lang/ar.js +526 -0
  197. data/public/bcms/fckeditor/editor/lang/bg.js +526 -0
  198. data/public/bcms/fckeditor/editor/lang/bn.js +526 -0
  199. data/public/bcms/fckeditor/editor/lang/bs.js +526 -0
  200. data/public/bcms/fckeditor/editor/lang/ca.js +526 -0
  201. data/public/bcms/fckeditor/editor/lang/cs.js +526 -0
  202. data/public/bcms/fckeditor/editor/lang/da.js +526 -0
  203. data/public/bcms/fckeditor/editor/lang/de.js +526 -0
  204. data/public/bcms/fckeditor/editor/lang/el.js +526 -0
  205. data/public/bcms/fckeditor/editor/lang/en-au.js +526 -0
  206. data/public/bcms/fckeditor/editor/lang/en-ca.js +526 -0
  207. data/public/bcms/fckeditor/editor/lang/en-uk.js +526 -0
  208. data/public/bcms/fckeditor/editor/lang/en.js +526 -0
  209. data/public/bcms/fckeditor/editor/lang/eo.js +526 -0
  210. data/public/bcms/fckeditor/editor/lang/es.js +526 -0
  211. data/public/bcms/fckeditor/editor/lang/et.js +526 -0
  212. data/public/bcms/fckeditor/editor/lang/eu.js +527 -0
  213. data/public/bcms/fckeditor/editor/lang/fa.js +526 -0
  214. data/public/bcms/fckeditor/editor/lang/fi.js +526 -0
  215. data/public/bcms/fckeditor/editor/lang/fo.js +526 -0
  216. data/public/bcms/fckeditor/editor/lang/fr-ca.js +526 -0
  217. data/public/bcms/fckeditor/editor/lang/fr.js +526 -0
  218. data/public/bcms/fckeditor/editor/lang/gl.js +526 -0
  219. data/public/bcms/fckeditor/editor/lang/gu.js +526 -0
  220. data/public/bcms/fckeditor/editor/lang/he.js +526 -0
  221. data/public/bcms/fckeditor/editor/lang/hi.js +526 -0
  222. data/public/bcms/fckeditor/editor/lang/hr.js +526 -0
  223. data/public/bcms/fckeditor/editor/lang/hu.js +526 -0
  224. data/public/bcms/fckeditor/editor/lang/it.js +526 -0
  225. data/public/bcms/fckeditor/editor/lang/ja.js +526 -0
  226. data/public/bcms/fckeditor/editor/lang/km.js +526 -0
  227. data/public/bcms/fckeditor/editor/lang/ko.js +526 -0
  228. data/public/bcms/fckeditor/editor/lang/lt.js +526 -0
  229. data/public/bcms/fckeditor/editor/lang/lv.js +526 -0
  230. data/public/bcms/fckeditor/editor/lang/mn.js +526 -0
  231. data/public/bcms/fckeditor/editor/lang/ms.js +526 -0
  232. data/public/bcms/fckeditor/editor/lang/nb.js +526 -0
  233. data/public/bcms/fckeditor/editor/lang/nl.js +526 -0
  234. data/public/bcms/fckeditor/editor/lang/no.js +526 -0
  235. data/public/bcms/fckeditor/editor/lang/pl.js +526 -0
  236. data/public/bcms/fckeditor/editor/lang/pt-br.js +526 -0
  237. data/public/bcms/fckeditor/editor/lang/pt.js +526 -0
  238. data/public/bcms/fckeditor/editor/lang/ro.js +526 -0
  239. data/public/bcms/fckeditor/editor/lang/ru.js +526 -0
  240. data/public/bcms/fckeditor/editor/lang/sk.js +526 -0
  241. data/public/bcms/fckeditor/editor/lang/sl.js +526 -0
  242. data/public/bcms/fckeditor/editor/lang/sr-latn.js +526 -0
  243. data/public/bcms/fckeditor/editor/lang/sr.js +526 -0
  244. data/public/bcms/fckeditor/editor/lang/sv.js +526 -0
  245. data/public/bcms/fckeditor/editor/lang/th.js +526 -0
  246. data/public/bcms/fckeditor/editor/lang/tr.js +526 -0
  247. data/public/bcms/fckeditor/editor/lang/uk.js +526 -0
  248. data/public/bcms/fckeditor/editor/lang/vi.js +526 -0
  249. data/public/bcms/fckeditor/editor/lang/zh-cn.js +526 -0
  250. data/public/bcms/fckeditor/editor/lang/zh.js +526 -0
  251. data/public/bcms/fckeditor/editor/plugins/autogrow/fckplugin.js +99 -0
  252. data/public/bcms/fckeditor/editor/plugins/bbcode/_sample/sample.config.js +26 -0
  253. data/public/bcms/fckeditor/editor/plugins/bbcode/_sample/sample.html +67 -0
  254. data/public/bcms/fckeditor/editor/plugins/bbcode/fckplugin.js +123 -0
  255. data/public/bcms/fckeditor/editor/plugins/dragresizetable/fckplugin.js +524 -0
  256. data/public/bcms/fckeditor/editor/plugins/placeholder/fck_placeholder.html +105 -0
  257. data/public/bcms/fckeditor/editor/plugins/placeholder/fckplugin.js +187 -0
  258. data/public/bcms/fckeditor/editor/plugins/placeholder/lang/de.js +27 -0
  259. data/public/bcms/fckeditor/editor/plugins/placeholder/lang/en.js +27 -0
  260. data/public/bcms/fckeditor/editor/plugins/placeholder/lang/es.js +27 -0
  261. data/public/bcms/fckeditor/editor/plugins/placeholder/lang/fr.js +27 -0
  262. data/public/bcms/fckeditor/editor/plugins/placeholder/lang/it.js +27 -0
  263. data/public/bcms/fckeditor/editor/plugins/placeholder/lang/pl.js +27 -0
  264. data/public/bcms/fckeditor/editor/plugins/placeholder/placeholder.gif +0 -0
  265. data/public/bcms/fckeditor/editor/plugins/simplecommands/fckplugin.js +29 -0
  266. data/public/bcms/fckeditor/editor/plugins/tablecommands/fckplugin.js +33 -0
  267. data/public/bcms/fckeditor/editor/skins/_fckviewstrips.html +121 -0
  268. data/public/bcms/fckeditor/editor/skins/default/fck_dialog.css +402 -0
  269. data/public/bcms/fckeditor/editor/skins/default/fck_dialog_ie6.js +110 -0
  270. data/public/bcms/fckeditor/editor/skins/default/fck_editor.css +464 -0
  271. data/public/bcms/fckeditor/editor/skins/default/fck_strip.gif +0 -0
  272. data/public/bcms/fckeditor/editor/skins/default/images/dialog.sides.gif +0 -0
  273. data/public/bcms/fckeditor/editor/skins/default/images/dialog.sides.png +0 -0
  274. data/public/bcms/fckeditor/editor/skins/default/images/dialog.sides.rtl.png +0 -0
  275. data/public/bcms/fckeditor/editor/skins/default/images/sprites.gif +0 -0
  276. data/public/bcms/fckeditor/editor/skins/default/images/sprites.png +0 -0
  277. data/public/bcms/fckeditor/editor/skins/default/images/toolbar.arrowright.gif +0 -0
  278. data/public/bcms/fckeditor/editor/skins/default/images/toolbar.buttonarrow.gif +0 -0
  279. data/public/bcms/fckeditor/editor/skins/default/images/toolbar.collapse.gif +0 -0
  280. data/public/bcms/fckeditor/editor/skins/default/images/toolbar.end.gif +0 -0
  281. data/public/bcms/fckeditor/editor/skins/default/images/toolbar.expand.gif +0 -0
  282. data/public/bcms/fckeditor/editor/skins/default/images/toolbar.separator.gif +0 -0
  283. data/public/bcms/fckeditor/editor/skins/default/images/toolbar.start.gif +0 -0
  284. data/public/bcms/fckeditor/editor/skins/office2003/fck_dialog.css +402 -0
  285. data/public/bcms/fckeditor/editor/skins/office2003/fck_dialog_ie6.js +110 -0
  286. data/public/bcms/fckeditor/editor/skins/office2003/fck_editor.css +476 -0
  287. data/public/bcms/fckeditor/editor/skins/office2003/fck_strip.gif +0 -0
  288. data/public/bcms/fckeditor/editor/skins/office2003/images/dialog.sides.gif +0 -0
  289. data/public/bcms/fckeditor/editor/skins/office2003/images/dialog.sides.png +0 -0
  290. data/public/bcms/fckeditor/editor/skins/office2003/images/dialog.sides.rtl.png +0 -0
  291. data/public/bcms/fckeditor/editor/skins/office2003/images/sprites.gif +0 -0
  292. data/public/bcms/fckeditor/editor/skins/office2003/images/sprites.png +0 -0
  293. data/public/bcms/fckeditor/editor/skins/office2003/images/toolbar.arrowright.gif +0 -0
  294. data/public/bcms/fckeditor/editor/skins/office2003/images/toolbar.bg.gif +0 -0
  295. data/public/bcms/fckeditor/editor/skins/office2003/images/toolbar.buttonarrow.gif +0 -0
  296. data/public/bcms/fckeditor/editor/skins/office2003/images/toolbar.collapse.gif +0 -0
  297. data/public/bcms/fckeditor/editor/skins/office2003/images/toolbar.end.gif +0 -0
  298. data/public/bcms/fckeditor/editor/skins/office2003/images/toolbar.expand.gif +0 -0
  299. data/public/bcms/fckeditor/editor/skins/office2003/images/toolbar.separator.gif +0 -0
  300. data/public/bcms/fckeditor/editor/skins/office2003/images/toolbar.start.gif +0 -0
  301. data/public/bcms/fckeditor/editor/skins/silver/fck_dialog.css +402 -0
  302. data/public/bcms/fckeditor/editor/skins/silver/fck_dialog_ie6.js +110 -0
  303. data/public/bcms/fckeditor/editor/skins/silver/fck_editor.css +473 -0
  304. data/public/bcms/fckeditor/editor/skins/silver/fck_strip.gif +0 -0
  305. data/public/bcms/fckeditor/editor/skins/silver/images/dialog.sides.gif +0 -0
  306. data/public/bcms/fckeditor/editor/skins/silver/images/dialog.sides.png +0 -0
  307. data/public/bcms/fckeditor/editor/skins/silver/images/dialog.sides.rtl.png +0 -0
  308. data/public/bcms/fckeditor/editor/skins/silver/images/sprites.gif +0 -0
  309. data/public/bcms/fckeditor/editor/skins/silver/images/sprites.png +0 -0
  310. data/public/bcms/fckeditor/editor/skins/silver/images/toolbar.arrowright.gif +0 -0
  311. data/public/bcms/fckeditor/editor/skins/silver/images/toolbar.buttonarrow.gif +0 -0
  312. data/public/bcms/fckeditor/editor/skins/silver/images/toolbar.buttonbg.gif +0 -0
  313. data/public/bcms/fckeditor/editor/skins/silver/images/toolbar.collapse.gif +0 -0
  314. data/public/bcms/fckeditor/editor/skins/silver/images/toolbar.end.gif +0 -0
  315. data/public/bcms/fckeditor/editor/skins/silver/images/toolbar.expand.gif +0 -0
  316. data/public/bcms/fckeditor/editor/skins/silver/images/toolbar.separator.gif +0 -0
  317. data/public/bcms/fckeditor/editor/skins/silver/images/toolbar.start.gif +0 -0
  318. data/public/bcms/fckeditor/fckconfig.js +359 -0
  319. data/public/bcms/fckeditor/fckdebug.html +153 -0
  320. data/public/bcms/fckeditor/fckdialog.html +812 -0
  321. data/public/bcms/fckeditor/fckeditor.html +317 -0
  322. data/public/bcms/fckeditor/fckeditor.js +328 -0
  323. data/public/bcms/fckeditor/fckeditor.original.html +424 -0
  324. data/public/bcms/fckeditor/fckpackager.xml +262 -0
  325. data/public/bcms/fckeditor/fcktemplates.xml +103 -0
  326. data/public/bcms_config/fckeditor/fckstyles.xml +111 -0
  327. metadata +455 -0
@@ -0,0 +1,153 @@
1
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
2
+ <!--
3
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
4
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
5
+ *
6
+ * == BEGIN LICENSE ==
7
+ *
8
+ * Licensed under the terms of any of the following licenses at your
9
+ * choice:
10
+ *
11
+ * - GNU General Public License Version 2 or later (the "GPL")
12
+ * http://www.gnu.org/licenses/gpl.html
13
+ *
14
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
15
+ * http://www.gnu.org/licenses/lgpl.html
16
+ *
17
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
18
+ * http://www.mozilla.org/MPL/MPL-1.1.html
19
+ *
20
+ * == END LICENSE ==
21
+ *
22
+ * This is the Debug window.
23
+ * It automatically popups if the Debug = true in the configuration file.
24
+ -->
25
+ <html xmlns="http://www.w3.org/1999/xhtml">
26
+ <head>
27
+ <title>FCKeditor Debug Window</title>
28
+ <meta name="robots" content="noindex, nofollow" />
29
+ <script type="text/javascript">
30
+
31
+ var oWindow ;
32
+ var oDiv ;
33
+
34
+ if ( !window.FCKMessages )
35
+ window.FCKMessages = new Array() ;
36
+
37
+ window.onload = function()
38
+ {
39
+ oWindow = document.getElementById('xOutput').contentWindow ;
40
+ oWindow.document.open() ;
41
+ oWindow.document.write( '<div id="divMsg"><\/div>' ) ;
42
+ oWindow.document.close() ;
43
+ oDiv = oWindow.document.getElementById('divMsg') ;
44
+ }
45
+
46
+ function Output( message, color, noParse )
47
+ {
48
+ if ( !noParse && message != null && isNaN( message ) )
49
+ message = message.replace(/</g, "&lt;") ;
50
+
51
+ if ( color )
52
+ message = '<font color="' + color + '">' + message + '<\/font>' ;
53
+
54
+ window.FCKMessages[ window.FCKMessages.length ] = message ;
55
+ StartTimer() ;
56
+ }
57
+
58
+ function OutputObject( anyObject, color )
59
+ {
60
+ var message ;
61
+
62
+ if ( anyObject != null )
63
+ {
64
+ message = 'Properties of: ' + anyObject + '</b><blockquote>' ;
65
+
66
+ for (var prop in anyObject)
67
+ {
68
+ try
69
+ {
70
+ var sVal = anyObject[ prop ] != null ? anyObject[ prop ] + '' : '[null]' ;
71
+ message += '<b>' + prop + '</b> : ' + sVal.replace(/</g, '&lt;') + '<br>' ;
72
+ }
73
+ catch (e)
74
+ {
75
+ try
76
+ {
77
+ message += '<b>' + prop + '</b> : [' + typeof( anyObject[ prop ] ) + ']<br>' ;
78
+ }
79
+ catch (e)
80
+ {
81
+ message += '<b>' + prop + '</b> : [-error-]<br>' ;
82
+ }
83
+ }
84
+ }
85
+
86
+ message += '</blockquote><b>' ;
87
+ } else
88
+ message = 'OutputObject : Object is "null".' ;
89
+
90
+ Output( message, color, true ) ;
91
+ }
92
+
93
+ function StartTimer()
94
+ {
95
+ window.setTimeout( 'CheckMessages()', 100 ) ;
96
+ }
97
+
98
+ function CheckMessages()
99
+ {
100
+ if ( window.FCKMessages.length > 0 )
101
+ {
102
+ // Get the first item in the queue
103
+ var sMessage = window.FCKMessages[0] ;
104
+
105
+ // Removes the first item from the queue
106
+ var oTempArray = new Array() ;
107
+ for ( i = 1 ; i < window.FCKMessages.length ; i++ )
108
+ oTempArray[ i - 1 ] = window.FCKMessages[ i ] ;
109
+ window.FCKMessages = oTempArray ;
110
+
111
+ var d = new Date() ;
112
+ var sTime =
113
+ ( d.getHours() + 100 + '' ).substr( 1,2 ) + ':' +
114
+ ( d.getMinutes() + 100 + '' ).substr( 1,2 ) + ':' +
115
+ ( d.getSeconds() + 100 + '' ).substr( 1,2 ) + ':' +
116
+ ( d.getMilliseconds() + 1000 + '' ).substr( 1,3 ) ;
117
+
118
+ var oMsgDiv = oWindow.document.createElement( 'div' ) ;
119
+ oMsgDiv.innerHTML = sTime + ': <b>' + sMessage + '<\/b>' ;
120
+ oDiv.appendChild( oMsgDiv ) ;
121
+ oMsgDiv.scrollIntoView() ;
122
+ }
123
+ }
124
+
125
+ function Clear()
126
+ {
127
+ oDiv.innerHTML = '' ;
128
+ }
129
+ </script>
130
+ </head>
131
+ <body style="margin: 10px">
132
+ <table style="height: 100%" cellspacing="5" cellpadding="0" width="100%" border="0">
133
+ <tr>
134
+ <td>
135
+ <table cellspacing="0" cellpadding="0" width="100%" border="0">
136
+ <tr>
137
+ <td style="font-weight: bold; font-size: 1.2em;">
138
+ FCKeditor Debug Window</td>
139
+ <td align="right">
140
+ <input type="button" value="Clear" onclick="Clear();" /></td>
141
+ </tr>
142
+ </table>
143
+ </td>
144
+ </tr>
145
+ <tr style="height: 100%">
146
+ <td style="border: #696969 1px solid">
147
+ <iframe id="xOutput" width="100%" height="100%" scrolling="auto" src="javascript:void(0)"
148
+ frameborder="0"></iframe>
149
+ </td>
150
+ </tr>
151
+ </table>
152
+ </body>
153
+ </html>
@@ -0,0 +1,812 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2
+ <!--
3
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
4
+ * Copyright (C) 2003-2008 Frederico Caldeira Knabben
5
+ *
6
+ * == BEGIN LICENSE ==
7
+ *
8
+ * Licensed under the terms of any of the following licenses at your
9
+ * choice:
10
+ *
11
+ * - GNU General Public License Version 2 or later (the "GPL")
12
+ * http://www.gnu.org/licenses/gpl.html
13
+ *
14
+ * - GNU Lesser General Public License Version 2.1 or later (the "LGPL")
15
+ * http://www.gnu.org/licenses/lgpl.html
16
+ *
17
+ * - Mozilla Public License Version 1.1 or later (the "MPL")
18
+ * http://www.mozilla.org/MPL/MPL-1.1.html
19
+ *
20
+ * == END LICENSE ==
21
+ *
22
+ * This page is used by all dialog box as the container.
23
+ -->
24
+ <html xmlns="http://www.w3.org/1999/xhtml">
25
+ <head>
26
+ <title></title>
27
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
28
+ <meta name="robots" content="noindex, nofollow" />
29
+ <script type="text/javascript">
30
+ // <![CDATA[
31
+
32
+ // Domain relaxation logic.
33
+ (function()
34
+ {
35
+ var d = document.domain ;
36
+
37
+ while ( true )
38
+ {
39
+ // Test if we can access a parent property.
40
+ try
41
+ {
42
+ var parentDomain = ( Args().TopWindow || E ).document.domain ;
43
+
44
+ if ( document.domain != parentDomain )
45
+ document.domain = parentDomain ;
46
+
47
+ break ;
48
+ }
49
+ catch( e ) {}
50
+
51
+ // Remove a domain part: www.mytest.example.com => mytest.example.com => example.com ...
52
+ d = d.replace( /.*?(?:\.|$)/, '' ) ;
53
+
54
+ if ( d.length == 0 )
55
+ break ; // It was not able to detect the domain.
56
+
57
+ document.domain = d ;
58
+ }
59
+ })() ;
60
+
61
+ var E = frameElement._DialogArguments.Editor ;
62
+
63
+ // It seems referencing to frameElement._DialogArguments directly would lead to memory leaks in IE.
64
+ // So let's use functions to access its members instead.
65
+ function Args()
66
+ {
67
+ return frameElement._DialogArguments ;
68
+ }
69
+
70
+ function ParentDialog( dialog )
71
+ {
72
+ return dialog ? dialog._ParentDialog : frameElement._ParentDialog ;
73
+ }
74
+
75
+ var FCK = E.FCK ;
76
+ var FCKTools = E.FCKTools ;
77
+ var FCKDomTools = E.FCKDomTools ;
78
+ var FCKDialog = E.FCKDialog ;
79
+ var FCKBrowserInfo = E.FCKBrowserInfo ;
80
+ var FCKConfig = E.FCKConfig ;
81
+
82
+ // Steal the focus so that the caret would no longer stay in the editor iframe.
83
+ window.focus() ;
84
+
85
+ // Sets the Skin CSS
86
+ document.write( FCKTools.GetStyleHtml( FCKConfig.SkinDialogCSS ) ) ;
87
+
88
+ // Sets the language direction.
89
+ var langDir = document.documentElement.dir = E.FCKLang.Dir ;
90
+
91
+ // For IE6-, the fck_dialog_ie6.js is loaded, used to fix limitations in the browser.
92
+ if ( FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7 )
93
+ document.write( '<' + 'script type="text/javascript" src="' + FCKConfig.SkinPath + 'fck_dialog_ie6.js"><' + '\/script>' ) ;
94
+
95
+ FCKTools.RegisterDollarFunction( window ) ;
96
+
97
+ // Resize related functions.
98
+ var Sizer = function()
99
+ {
100
+ var bAutoSize = false ;
101
+
102
+ var retval = {
103
+ // Sets whether the dialog should auto-resize according to its content's height.
104
+ SetAutoSize : function( autoSize )
105
+ {
106
+ bAutoSize = autoSize ;
107
+ this.RefreshSize() ;
108
+ },
109
+
110
+ // Fit the dialog container's layout to the inner iframe's external size.
111
+ RefreshContainerSize : function()
112
+ {
113
+ var frmMain = $( 'frmMain' ) ;
114
+
115
+ if ( frmMain )
116
+ {
117
+ // Get the container size.
118
+ var height = $( 'contents' ).offsetHeight ;
119
+
120
+ // Subtract the size of other elements.
121
+ height -= $( 'TitleArea' ).offsetHeight ;
122
+ height -= $( 'TabsRow' ).offsetHeight ;
123
+ height -= $( 'PopupButtons' ).offsetHeight ;
124
+
125
+ frmMain.style.height = Math.max( height, 0 ) + 'px' ;
126
+ }
127
+ },
128
+
129
+ // Resize and re-layout the dialog.
130
+ // Triggers the onresize event for the layout logic.
131
+ ResizeDialog : function( width, height )
132
+ {
133
+ FCKDomTools.SetElementStyles( window.frameElement,
134
+ {
135
+ 'width' : width + 'px',
136
+ 'height' : height + 'px'
137
+ } ) ;
138
+
139
+ // If the skin have defined a function for resize fixes, call it now.
140
+ if ( typeof window.DoResizeFixes == 'function' )
141
+ window.DoResizeFixes() ;
142
+ },
143
+
144
+ // if bAutoSize is true, automatically fit the dialog size and layout to
145
+ // accomodate the inner iframe's internal height.
146
+ // if bAutoSize is false, then only the layout logic for the dialog decorations
147
+ // is run to accomodate the inner iframe's external height.
148
+ RefreshSize : function()
149
+ {
150
+ if ( bAutoSize )
151
+ {
152
+ var frmMain = $( 'frmMain' ) ;
153
+ var innerDoc = frmMain.contentWindow.document ;
154
+ var isStrict = FCKTools.IsStrictMode( innerDoc ) ;
155
+
156
+ // Get the size of the frame contents.
157
+ var innerWidth = isStrict ? innerDoc.documentElement.scrollWidth : innerDoc.body.scrollWidth ;
158
+ var innerHeight = isStrict ? innerDoc.documentElement.scrollHeight : innerDoc.body.scrollHeight ;
159
+
160
+ // Get the current frame size.
161
+ var frameSize = FCKTools.GetViewPaneSize( frmMain.contentWindow ) ;
162
+
163
+ var deltaWidth = innerWidth - frameSize.Width ;
164
+ var deltaHeight = innerHeight - frameSize.Height ;
165
+
166
+ // If the contents fits the current size.
167
+ if ( deltaWidth <= 0 && deltaHeight <= 0 )
168
+ return ;
169
+
170
+ var dialogWidth = frameElement.offsetWidth + Math.max( deltaWidth, 0 ) ;
171
+ var dialogHeight = frameElement.offsetHeight + Math.max( deltaHeight, 0 ) ;
172
+
173
+ this.ResizeDialog( dialogWidth, dialogHeight ) ;
174
+ }
175
+ this.RefreshContainerSize() ;
176
+ }
177
+ }
178
+
179
+ /**
180
+ * Safari seems to have a bug with the time when RefreshSize() is executed - it
181
+ * thinks frmMain's innerHeight is 0 if we query the value too soon after the
182
+ * page is loaded in some circumstances. (#1316)
183
+ * TODO : Maybe this is not needed anymore after #35.
184
+ */
185
+ if ( FCKBrowserInfo.IsSafari )
186
+ {
187
+ var originalRefreshSize = retval.RefreshSize ;
188
+
189
+ retval.RefreshSize = function()
190
+ {
191
+ FCKTools.SetTimeout( originalRefreshSize, 1, retval ) ;
192
+ }
193
+ }
194
+
195
+ /**
196
+ * IE6 has a similar bug where it sometimes thinks $('contents') has an
197
+ * offsetHeight of 0 (#2114).
198
+ */
199
+ if ( FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7 )
200
+ {
201
+ var originalRefreshContainerSize = retval.RefreshContainerSize ;
202
+ retval.RefreshContainerSize = function()
203
+ {
204
+ FCKTools.SetTimeout( originalRefreshContainerSize, 1, retval ) ;
205
+ }
206
+ }
207
+
208
+ window.onresize = function()
209
+ {
210
+ retval.RefreshContainerSize() ;
211
+ }
212
+
213
+ window.SetAutoSize = FCKTools.Bind( retval, retval.SetAutoSize ) ;
214
+
215
+ return retval ;
216
+ }() ;
217
+
218
+ // Manages the throbber image that appears if the inner part of dialog is taking too long to load.
219
+ var Throbber = function()
220
+ {
221
+ var timer ;
222
+
223
+ var updateThrobber = function()
224
+ {
225
+ var throbberParent = $( 'throbberBlock' ) ;
226
+ var throbberBlocks = throbberParent.childNodes ;
227
+ var lastClass = throbberParent.lastChild.className ;
228
+
229
+ // From the last to the second one, copy the class from the previous one.
230
+ for ( var i = throbberBlocks.length - 1 ; i > 0 ; i-- )
231
+ throbberBlocks[i].className = throbberBlocks[i-1].className ;
232
+
233
+ // For the first one, copy the last class (rotation).
234
+ throbberBlocks[0].className = lastClass ;
235
+ }
236
+
237
+ return {
238
+ Show : function( waitMilliseconds )
239
+ {
240
+ // Auto-setup the Show function to be called again after the
241
+ // requested amount of time.
242
+ if ( waitMilliseconds && waitMilliseconds > 0 )
243
+ {
244
+ timer = FCKTools.SetTimeout( this.Show, waitMilliseconds, this, null, window ) ;
245
+ return ;
246
+ }
247
+
248
+ var throbberParent = $( 'throbberBlock' ) ;
249
+
250
+ if (throbberParent.childNodes.length == 0)
251
+ {
252
+ // Create the throbber blocks.
253
+ var classIds = [ 1,2,3,4,5,4,3,2 ] ;
254
+ while ( classIds.length > 0 )
255
+ throbberParent.appendChild( document.createElement( 'div' ) ).className = ' throbber_' + classIds.shift() ;
256
+ }
257
+
258
+ // Center the throbber.
259
+ var frm = $( 'contents' ) ;
260
+ var frmCoords = FCKTools.GetDocumentPosition( window, frm ) ;
261
+ var x = frmCoords.x + ( frm.offsetWidth - throbberParent.offsetWidth ) / 2 ;
262
+ var y = frmCoords.y + ( frm.offsetHeight - throbberParent.offsetHeight ) / 2 ;
263
+ throbberParent.style.left = parseInt( x, 10 ) + 'px' ;
264
+ throbberParent.style.top = parseInt( y, 10 ) + 'px' ;
265
+
266
+ // Show it.
267
+ throbberParent.style.visibility = '' ;
268
+
269
+ // Hide tabs and buttons:
270
+ $( 'Tabs' ).style.visibility = 'hidden' ;
271
+ $( 'PopupButtons' ).style.visibility = 'hidden' ;
272
+
273
+ // Setup the animation interval.
274
+ timer = setInterval( updateThrobber, 100 ) ;
275
+ },
276
+
277
+ Hide : function()
278
+ {
279
+ if ( timer )
280
+ {
281
+ clearInterval( timer ) ;
282
+ timer = null ;
283
+ }
284
+
285
+ $( 'throbberBlock' ).style.visibility = 'hidden' ;
286
+
287
+ // Show tabs and buttons:
288
+ $( 'Tabs' ).style.visibility = '' ;
289
+ $( 'PopupButtons' ).style.visibility = '' ;
290
+ }
291
+ } ;
292
+ }() ;
293
+
294
+ // Drag and drop handlers.
295
+ var DragAndDrop = function()
296
+ {
297
+ var registeredWindows = [] ;
298
+ var lastCoords ;
299
+ var currentPos ;
300
+
301
+ var cleanUpHandlers = function()
302
+ {
303
+ for ( var i = 0 ; i < registeredWindows.length ; i++ )
304
+ {
305
+ FCKTools.RemoveEventListener( registeredWindows[i].document, 'mousemove', dragMouseMoveHandler ) ;
306
+ FCKTools.RemoveEventListener( registeredWindows[i].document, 'mouseup', dragMouseUpHandler ) ;
307
+ }
308
+ }
309
+
310
+ var dragMouseMoveHandler = function( evt )
311
+ {
312
+ if ( !lastCoords )
313
+ return ;
314
+
315
+ if ( !evt )
316
+ evt = FCKTools.GetElementDocument( this ).parentWindow.event ;
317
+
318
+ // Updated the last coordinates.
319
+ var currentCoords =
320
+ {
321
+ x : evt.screenX,
322
+ y : evt.screenY
323
+ } ;
324
+
325
+ currentPos =
326
+ {
327
+ x : currentPos.x + ( currentCoords.x - lastCoords.x ),
328
+ y : currentPos.y + ( currentCoords.y - lastCoords.y )
329
+ } ;
330
+
331
+ lastCoords = currentCoords ;
332
+
333
+ frameElement.style.left = currentPos.x + 'px' ;
334
+ frameElement.style.top = currentPos.y + 'px' ;
335
+
336
+ if ( evt.preventDefault )
337
+ evt.preventDefault() ;
338
+ else
339
+ evt.returnValue = false ;
340
+ }
341
+
342
+ var dragMouseUpHandler = function( evt )
343
+ {
344
+ if ( !lastCoords )
345
+ return ;
346
+ if ( !evt )
347
+ evt = FCKTools.GetElementDocument( this ).parentWindow.event ;
348
+ cleanUpHandlers() ;
349
+ lastCoords = null ;
350
+ }
351
+
352
+ return {
353
+
354
+ MouseDownHandler : function( evt )
355
+ {
356
+ var view = null ;
357
+ if ( !evt )
358
+ {
359
+ view = FCKTools.GetElementDocument( this ).parentWindow ;
360
+ evt = view.event ;
361
+ }
362
+ else
363
+ view = evt.view ;
364
+
365
+ var target = evt.srcElement || evt.target ;
366
+ if ( target.id == 'closeButton' || target.className == 'PopupTab' || target.className == 'PopupTabSelected' )
367
+ return ;
368
+
369
+ lastCoords =
370
+ {
371
+ x : evt.screenX,
372
+ y : evt.screenY
373
+ } ;
374
+
375
+ // Save the current IFRAME position.
376
+ currentPos =
377
+ {
378
+ x : parseInt( FCKDomTools.GetCurrentElementStyle( frameElement, 'left' ), 10 ),
379
+ y : parseInt( FCKDomTools.GetCurrentElementStyle( frameElement, 'top' ), 10 )
380
+ } ;
381
+
382
+ for ( var i = 0 ; i < registeredWindows.length ; i++ )
383
+ {
384
+ FCKTools.AddEventListener( registeredWindows[i].document, 'mousemove', dragMouseMoveHandler ) ;
385
+ FCKTools.AddEventListener( registeredWindows[i].document, 'mouseup', dragMouseUpHandler ) ;
386
+ }
387
+
388
+ if ( evt.preventDefault )
389
+ evt.preventDefault() ;
390
+ else
391
+ evt.returnValue = false ;
392
+ },
393
+
394
+ RegisterHandlers : function( w )
395
+ {
396
+ registeredWindows.push( w ) ;
397
+ }
398
+ }
399
+ }() ;
400
+
401
+ // Selection related functions.
402
+ //(Became simple shortcuts after the fix for #1990)
403
+ var Selection =
404
+ {
405
+ /**
406
+ * Ensures that the editing area contains an active selection. This is a
407
+ * requirement for IE, as it looses the selection when the focus moves to other
408
+ * frames.
409
+ */
410
+ EnsureSelection : function()
411
+ {
412
+ FCK.Selection.Restore() ;
413
+ },
414
+
415
+ /**
416
+ * Get the FCKSelection object for the editor instance.
417
+ */
418
+ GetSelection : function()
419
+ {
420
+ return FCK.Selection ;
421
+ },
422
+
423
+ /**
424
+ * Get the selected element in the editing area (for object selections).
425
+ */
426
+ GetSelectedElement : function()
427
+ {
428
+ return FCK.Selection.GetSelectedElement() ;
429
+ }
430
+ }
431
+
432
+ // Tab related functions.
433
+ var Tabs = function()
434
+ {
435
+ // Only element ids should be stored here instead of element references since setSelectedTab and TabDiv_OnClick
436
+ // would build circular references with the element references inside and cause memory leaks in IE6.
437
+ var oTabs = new Object() ;
438
+
439
+ var setSelectedTab = function( tabCode )
440
+ {
441
+ for ( var sCode in oTabs )
442
+ {
443
+ if ( sCode == tabCode )
444
+ $( oTabs[sCode] ).className = 'PopupTabSelected' ;
445
+ else
446
+ $( oTabs[sCode] ).className = 'PopupTab' ;
447
+ }
448
+
449
+ if ( typeof( window.frames["frmMain"].OnDialogTabChange ) == 'function' )
450
+ window.frames["frmMain"].OnDialogTabChange( tabCode ) ;
451
+ }
452
+
453
+ function TabDiv_OnClick()
454
+ {
455
+ setSelectedTab( this.TabCode ) ;
456
+ }
457
+
458
+ window.AddTab = function( tabCode, tabText, startHidden )
459
+ {
460
+ if ( typeof( oTabs[ tabCode ] ) != 'undefined' )
461
+ return ;
462
+
463
+ var eTabsRow = $( 'Tabs' ) ;
464
+
465
+ var oCell = eTabsRow.insertCell( eTabsRow.cells.length - 1 ) ;
466
+ oCell.noWrap = true ;
467
+
468
+ var oDiv = document.createElement( 'DIV' ) ;
469
+ oDiv.className = 'PopupTab' ;
470
+ oDiv.innerHTML = tabText ;
471
+ oDiv.TabCode = tabCode ;
472
+ oDiv.onclick = TabDiv_OnClick ;
473
+ oDiv.id = Math.random() ;
474
+
475
+ if ( startHidden )
476
+ oDiv.style.display = 'none' ;
477
+
478
+ eTabsRow = $( 'TabsRow' ) ;
479
+
480
+ oCell.appendChild( oDiv ) ;
481
+
482
+ if ( eTabsRow.style.display == 'none' )
483
+ {
484
+ var eTitleArea = $( 'TitleArea' ) ;
485
+ eTitleArea.className = 'PopupTitle' ;
486
+
487
+ oDiv.className = 'PopupTabSelected' ;
488
+ eTabsRow.style.display = '' ;
489
+
490
+ if ( window.onresize )
491
+ window.onresize() ;
492
+ }
493
+
494
+ oTabs[ tabCode ] = oDiv.id ;
495
+
496
+ FCKTools.DisableSelection( oDiv ) ;
497
+ } ;
498
+
499
+ window.SetSelectedTab = setSelectedTab ;
500
+
501
+ window.SetTabVisibility = function( tabCode, isVisible )
502
+ {
503
+ var oTab = $( oTabs[ tabCode ] ) ;
504
+ oTab.style.display = isVisible ? '' : 'none' ;
505
+
506
+ if ( ! isVisible && oTab.className == 'PopupTabSelected' )
507
+ {
508
+ for ( var sCode in oTabs )
509
+ {
510
+ if ( $( oTabs[sCode] ).style.display != 'none' )
511
+ {
512
+ setSelectedTab( sCode ) ;
513
+ break ;
514
+ }
515
+ }
516
+ }
517
+ } ;
518
+ }() ;
519
+
520
+ // readystatechange handler for registering drag and drop handlers in cover
521
+ // iframes, defined out here to avoid memory leak.
522
+ // Do NOT put this function as a private function as it will induce memory leak
523
+ // in IE and it's not detectable with Drip or sIEve and undetectable leaks are
524
+ // really nasty (sigh).
525
+ var onReadyRegister = function()
526
+ {
527
+ if ( this.readyState != 'complete' )
528
+ return ;
529
+ DragAndDrop.RegisterHandlers( this.contentWindow ) ;
530
+ } ;
531
+
532
+ // The business logic of the dialog, dealing with operational things like
533
+ // dialog open/dialog close/enable/disable/etc.
534
+ (function()
535
+ {
536
+ var setOnKeyDown = function( targetDocument )
537
+ {
538
+ targetDocument.onkeydown = function ( e )
539
+ {
540
+ e = e || event || this.parentWindow.event ;
541
+ switch ( e.keyCode )
542
+ {
543
+ case 13 : // ENTER
544
+ var oTarget = e.srcElement || e.target ;
545
+ if ( oTarget.tagName == 'TEXTAREA' )
546
+ return true ;
547
+ Ok() ;
548
+ return false ;
549
+
550
+ case 27 : // ESC
551
+ Cancel() ;
552
+ return false ;
553
+ }
554
+ return true ;
555
+ }
556
+ } ;
557
+
558
+ var contextMenuBlocker = function( e )
559
+ {
560
+ var sTagName = e.target.tagName ;
561
+ if ( ! ( ( sTagName == "INPUT" && e.target.type == "text" ) || sTagName == "TEXTAREA" ) )
562
+ e.preventDefault() ;
563
+ } ;
564
+
565
+ var disableContextMenu = function( targetDocument )
566
+ {
567
+ if ( FCKBrowserInfo.IsIE )
568
+ return ;
569
+
570
+ targetDocument.addEventListener( 'contextmenu', contextMenuBlocker, true ) ;
571
+ } ;
572
+
573
+ // Program entry point.
574
+ window.Init = function()
575
+ {
576
+ // Start the throbber timer.
577
+ Throbber.Show( 1000 ) ;
578
+
579
+ Sizer.RefreshContainerSize() ;
580
+ LoadInnerDialog() ;
581
+
582
+ FCKTools.DisableSelection( document.body ) ;
583
+
584
+ // Make the title area draggable.
585
+ var titleElement = $( 'header' ) ;
586
+ titleElement.onmousedown = DragAndDrop.MouseDownHandler ;
587
+
588
+ // Connect mousemove and mouseup events from dialog frame and outer window to dialog dragging logic.
589
+ DragAndDrop.RegisterHandlers( window ) ;
590
+ DragAndDrop.RegisterHandlers( Args().TopWindow ) ;
591
+
592
+ // Disable the previous dialog if it exists.
593
+ if ( ParentDialog() )
594
+ {
595
+ ParentDialog().contentWindow.SetEnabled( false ) ;
596
+ if ( FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7 )
597
+ {
598
+ var currentParent = ParentDialog() ;
599
+ while ( currentParent )
600
+ {
601
+ var blockerFrame = currentParent.contentWindow.$( 'blocker' ) ;
602
+ if ( blockerFrame.readyState == 'complete' )
603
+ DragAndDrop.RegisterHandlers( blockerFrame.contentWindow ) ;
604
+ else
605
+ blockerFrame.onreadystatechange = onReadyRegister ;
606
+ currentParent = ParentDialog( currentParent ) ;
607
+ }
608
+ }
609
+ else
610
+ {
611
+ var currentParent = ParentDialog() ;
612
+ while ( currentParent )
613
+ {
614
+ DragAndDrop.RegisterHandlers( currentParent.contentWindow ) ;
615
+ currentParent = ParentDialog( currentParent ) ;
616
+ }
617
+ }
618
+ }
619
+
620
+ // If this is the only dialog on screen, enable the background cover.
621
+ if ( FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7 )
622
+ {
623
+ var blockerFrame = FCKDialog.GetCover().firstChild ;
624
+ if ( blockerFrame.readyState == 'complete' )
625
+ DragAndDrop.RegisterHandlers( blockerFrame.contentWindow ) ;
626
+ else
627
+ blockerFrame.onreadystatechange = onReadyRegister;
628
+ }
629
+
630
+ // Add Enter/Esc hotkeys and disable context menu for the dialog.
631
+ setOnKeyDown( document ) ;
632
+ disableContextMenu( document ) ;
633
+ } ;
634
+
635
+ window.LoadInnerDialog = function()
636
+ {
637
+ if ( window.onresize )
638
+ window.onresize() ;
639
+
640
+ // First of all, translate the dialog box contents.
641
+ E.FCKLanguageManager.TranslatePage( document ) ;
642
+
643
+ // Create the IFRAME that holds the dialog contents.
644
+ $( 'innerContents' ).innerHTML = '<iframe id="frmMain" src="' + Args().Page + '" name="frmMain" frameborder="0" width="100%" height="100%" scrolling="auto" style="visibility: hidden;" allowtransparency="true"><\/iframe>' ;
645
+ } ;
646
+
647
+ window.InnerDialogLoaded = function()
648
+ {
649
+ // If the dialog has been closed before the iframe is loaded, do nothing.
650
+ if ( !frameElement.parentNode )
651
+ return null ;
652
+
653
+ Throbber.Hide() ;
654
+
655
+ var frmMain = $('frmMain') ;
656
+ var innerWindow = frmMain.contentWindow ;
657
+ var innerDoc = innerWindow.document ;
658
+
659
+ // Show the loaded iframe.
660
+ frmMain.style.visibility = '' ;
661
+
662
+ // Set the language direction.
663
+ innerDoc.documentElement.dir = langDir ;
664
+
665
+ // Sets the Skin CSS.
666
+ innerDoc.write( FCKTools.GetStyleHtml( FCKConfig.SkinDialogCSS ) ) ;
667
+
668
+ setOnKeyDown( innerDoc ) ;
669
+ disableContextMenu( innerDoc ) ;
670
+
671
+ Sizer.RefreshContainerSize();
672
+
673
+ DragAndDrop.RegisterHandlers( innerWindow ) ;
674
+
675
+ innerWindow.focus() ;
676
+
677
+ return E ;
678
+ } ;
679
+
680
+ window.SetOkButton = function( showIt )
681
+ {
682
+ $('btnOk').style.visibility = ( showIt ? '' : 'hidden' ) ;
683
+ } ;
684
+
685
+ window.Ok = function()
686
+ {
687
+ Selection.EnsureSelection() ;
688
+
689
+ var frmMain = window.frames["frmMain"] ;
690
+
691
+ if ( frmMain.Ok && frmMain.Ok() )
692
+ CloseDialog() ;
693
+ else
694
+ frmMain.focus() ;
695
+ } ;
696
+
697
+ window.Cancel = function( dontFireChange )
698
+ {
699
+ Selection.EnsureSelection() ;
700
+ return CloseDialog( dontFireChange ) ;
701
+ } ;
702
+
703
+ window.CloseDialog = function( dontFireChange )
704
+ {
705
+ Throbber.Hide() ;
706
+
707
+ // Points the src to a non-existent location to avoid loading errors later, in case the dialog
708
+ // haven't been completed loaded at this point.
709
+ if ( $( 'frmMain' ) )
710
+ $( 'frmMain' ).src = FCKTools.GetVoidUrl() ;
711
+
712
+ if ( !dontFireChange && !FCK.EditMode )
713
+ {
714
+ // All dialog windows, by default, will fire the "OnSelectionChange"
715
+ // event, no matter the Ok or Cancel button has been pressed.
716
+ // It seems that OnSelectionChange may enter on a concurrency state
717
+ // on some situations (#1965), so we should put the event firing in
718
+ // the execution queue instead of executing it immediately.
719
+ setTimeout( function()
720
+ {
721
+ FCK.Events.FireEvent( 'OnSelectionChange' ) ;
722
+ }, 0 ) ;
723
+ }
724
+
725
+ FCKDialog.OnDialogClose( window ) ;
726
+ } ;
727
+
728
+ window.SetEnabled = function( isEnabled )
729
+ {
730
+ var cover = $( 'cover' ) ;
731
+ cover.style.display = isEnabled ? 'none' : '' ;
732
+
733
+ if ( FCKBrowserInfo.IsIE && !FCKBrowserInfo.IsIE7 )
734
+ {
735
+ if ( !isEnabled )
736
+ {
737
+ // Inser the blocker IFRAME before the cover.
738
+ var blocker = document.createElement( 'iframe' ) ;
739
+ blocker.src = FCKTools.GetVoidUrl() ;
740
+ blocker.hideFocus = true ;
741
+ blocker.frameBorder = 0 ;
742
+ blocker.id = blocker.className = 'blocker' ;
743
+ cover.appendChild( blocker ) ;
744
+ }
745
+ else
746
+ {
747
+ var blocker = $( 'blocker' ) ;
748
+ if ( blocker && blocker.parentNode )
749
+ blocker.parentNode.removeChild( blocker ) ;
750
+ }
751
+ }
752
+ } ;
753
+ })() ;
754
+ // ]]>
755
+ </script>
756
+ </head>
757
+ <body onload="Init();" class="PopupBody">
758
+ <div class="contents" id="contents">
759
+ <div id="header">
760
+ <div id="TitleArea" class="PopupTitle PopupTitleBorder">
761
+ <script type="text/javascript">
762
+ // <![CDATA[
763
+ document.write( Args().Title ) ;
764
+ // ]]>
765
+ </script>
766
+ <div id="closeButton" onclick="Cancel();"></div>
767
+ </div>
768
+ <div id="TabsRow" class="PopupTabArea" style="display: none">
769
+ <table border="0" cellpadding="0" cellspacing="0" width="100%">
770
+ <tr id="Tabs">
771
+ <td class="PopupTabEmptyArea">&nbsp;</td>
772
+ <td class="PopupTabEmptyArea" width="100%">&nbsp;</td>
773
+ </tr>
774
+ </table>
775
+ </div>
776
+ </div>
777
+ <div id="innerContents"></div>
778
+ <div id="PopupButtons" class="PopupButtons">
779
+ <table border="0" cellpadding="0" cellspacing="0">
780
+ <tr>
781
+ <td width="100%">&nbsp;</td>
782
+ <td nowrap="nowrap">
783
+ <input id="btnOk" style="visibility: hidden;" type="button" value="Ok" class="Button" onclick="Ok();" fckLang="DlgBtnOK" />
784
+ &nbsp;
785
+ <input id="btnCancel" type="button" value="Cancel" class="Button" onclick="Cancel();" fckLang="DlgBtnCancel" />
786
+ </td>
787
+ </tr>
788
+ </table>
789
+ </div>
790
+ </div>
791
+ <div class="tl"></div>
792
+ <div class="tc"></div>
793
+ <div class="tr"></div>
794
+ <div class="ml"></div>
795
+ <div class="mr"></div>
796
+ <div class="bl"></div>
797
+ <div class="bc"></div>
798
+ <div class="br"></div>
799
+ <div class="cover" id="cover" style="display:none"></div>
800
+ <div id="throbberBlock" style="position: absolute; visibility: hidden"></div>
801
+ <script type="text/javascript">
802
+ // <![CDATA[
803
+ // Set the class name for language direction.
804
+ document.body.className += ' ' + langDir ;
805
+
806
+ var cover = $( 'cover' ) ;
807
+ cover.style.backgroundColor = FCKConfig.BackgroundBlockerColor ;
808
+ FCKDomTools.SetOpacity( cover, FCKConfig.BackgroundBlockerOpacity ) ;
809
+ // ]]>
810
+ </script>
811
+ </body>
812
+ </html>