tiny_mce 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (1290) hide show
  1. data/.gitignore +5 -0
  2. data/CHANGELOG_PLUGIN +51 -0
  3. data/CHANGELOG_TINYMCE +912 -0
  4. data/DEV_UPGRADE_NOTES +13 -0
  5. data/README.rdoc +155 -0
  6. data/Rakefile +40 -0
  7. data/SPELLCHECKING_PLUGIN.rdoc +54 -0
  8. data/VERSION +1 -0
  9. data/init.rb +13 -0
  10. data/install.rb +8 -0
  11. data/lib/options_validator.rb +35 -0
  12. data/lib/spellchecker.rb +69 -0
  13. data/lib/tiny_mce.rb +40 -0
  14. data/lib/tiny_mce_helpers.rb +91 -0
  15. data/public/javascripts/tiny_mce/langs/ar.js +154 -0
  16. data/public/javascripts/tiny_mce/langs/az.js +155 -0
  17. data/public/javascripts/tiny_mce/langs/be.js +155 -0
  18. data/public/javascripts/tiny_mce/langs/bg.js +154 -0
  19. data/public/javascripts/tiny_mce/langs/bn.js +154 -0
  20. data/public/javascripts/tiny_mce/langs/br.js +154 -0
  21. data/public/javascripts/tiny_mce/langs/bs.js +154 -0
  22. data/public/javascripts/tiny_mce/langs/ca.js +154 -0
  23. data/public/javascripts/tiny_mce/langs/ch.js +154 -0
  24. data/public/javascripts/tiny_mce/langs/cs.js +154 -0
  25. data/public/javascripts/tiny_mce/langs/cy.js +154 -0
  26. data/public/javascripts/tiny_mce/langs/da.js +155 -0
  27. data/public/javascripts/tiny_mce/langs/de.js +155 -0
  28. data/public/javascripts/tiny_mce/langs/dv.js +154 -0
  29. data/public/javascripts/tiny_mce/langs/el.js +158 -0
  30. data/public/javascripts/tiny_mce/langs/en.js +154 -0
  31. data/public/javascripts/tiny_mce/langs/es.js +154 -0
  32. data/public/javascripts/tiny_mce/langs/et.js +154 -0
  33. data/public/javascripts/tiny_mce/langs/fa.js +154 -0
  34. data/public/javascripts/tiny_mce/langs/fi.js +155 -0
  35. data/public/javascripts/tiny_mce/langs/fr.js +154 -0
  36. data/public/javascripts/tiny_mce/langs/gl.js +154 -0
  37. data/public/javascripts/tiny_mce/langs/gu.js +154 -0
  38. data/public/javascripts/tiny_mce/langs/he.js +154 -0
  39. data/public/javascripts/tiny_mce/langs/hi.js +154 -0
  40. data/public/javascripts/tiny_mce/langs/hr.js +154 -0
  41. data/public/javascripts/tiny_mce/langs/hu.js +154 -0
  42. data/public/javascripts/tiny_mce/langs/ia.js +154 -0
  43. data/public/javascripts/tiny_mce/langs/id.js +154 -0
  44. data/public/javascripts/tiny_mce/langs/ii.js +154 -0
  45. data/public/javascripts/tiny_mce/langs/is.js +154 -0
  46. data/public/javascripts/tiny_mce/langs/it.js +154 -0
  47. data/public/javascripts/tiny_mce/langs/ja.js +154 -0
  48. data/public/javascripts/tiny_mce/langs/ko.js +154 -0
  49. data/public/javascripts/tiny_mce/langs/lt.js +172 -0
  50. data/public/javascripts/tiny_mce/langs/lv.js +154 -0
  51. data/public/javascripts/tiny_mce/langs/mk.js +154 -0
  52. data/public/javascripts/tiny_mce/langs/ml.js +154 -0
  53. data/public/javascripts/tiny_mce/langs/mn.js +154 -0
  54. data/public/javascripts/tiny_mce/langs/ms.js +154 -0
  55. data/public/javascripts/tiny_mce/langs/nb.js +154 -0
  56. data/public/javascripts/tiny_mce/langs/nl.js +154 -0
  57. data/public/javascripts/tiny_mce/langs/nn.js +154 -0
  58. data/public/javascripts/tiny_mce/langs/no.js +154 -0
  59. data/public/javascripts/tiny_mce/langs/pl.js +154 -0
  60. data/public/javascripts/tiny_mce/langs/pt.js +154 -0
  61. data/public/javascripts/tiny_mce/langs/ro.js +154 -0
  62. data/public/javascripts/tiny_mce/langs/ru.js +155 -0
  63. data/public/javascripts/tiny_mce/langs/sc.js +162 -0
  64. data/public/javascripts/tiny_mce/langs/se.js +154 -0
  65. data/public/javascripts/tiny_mce/langs/si.js +154 -0
  66. data/public/javascripts/tiny_mce/langs/sk.js +154 -0
  67. data/public/javascripts/tiny_mce/langs/sl.js +155 -0
  68. data/public/javascripts/tiny_mce/langs/sq.js +154 -0
  69. data/public/javascripts/tiny_mce/langs/sr.js +154 -0
  70. data/public/javascripts/tiny_mce/langs/sv.js +154 -0
  71. data/public/javascripts/tiny_mce/langs/ta.js +154 -0
  72. data/public/javascripts/tiny_mce/langs/te.js +154 -0
  73. data/public/javascripts/tiny_mce/langs/th.js +154 -0
  74. data/public/javascripts/tiny_mce/langs/tr.js +154 -0
  75. data/public/javascripts/tiny_mce/langs/tt.js +154 -0
  76. data/public/javascripts/tiny_mce/langs/tw.js +162 -0
  77. data/public/javascripts/tiny_mce/langs/uk.js +157 -0
  78. data/public/javascripts/tiny_mce/langs/vi.js +154 -0
  79. data/public/javascripts/tiny_mce/langs/zh.js +162 -0
  80. data/public/javascripts/tiny_mce/license.txt +504 -0
  81. data/public/javascripts/tiny_mce/plugins/advhr/css/advhr.css +5 -0
  82. data/public/javascripts/tiny_mce/plugins/advhr/editor_plugin.js +1 -0
  83. data/public/javascripts/tiny_mce/plugins/advhr/editor_plugin_src.js +54 -0
  84. data/public/javascripts/tiny_mce/plugins/advhr/js/rule.js +43 -0
  85. data/public/javascripts/tiny_mce/plugins/advhr/langs/ar_dlg.js +5 -0
  86. data/public/javascripts/tiny_mce/plugins/advhr/langs/az_dlg.js +5 -0
  87. data/public/javascripts/tiny_mce/plugins/advhr/langs/be_dlg.js +5 -0
  88. data/public/javascripts/tiny_mce/plugins/advhr/langs/bg_dlg.js +5 -0
  89. data/public/javascripts/tiny_mce/plugins/advhr/langs/bn_dlg.js +5 -0
  90. data/public/javascripts/tiny_mce/plugins/advhr/langs/br_dlg.js +5 -0
  91. data/public/javascripts/tiny_mce/plugins/advhr/langs/bs_dlg.js +5 -0
  92. data/public/javascripts/tiny_mce/plugins/advhr/langs/ca_dlg.js +5 -0
  93. data/public/javascripts/tiny_mce/plugins/advhr/langs/ch_dlg.js +5 -0
  94. data/public/javascripts/tiny_mce/plugins/advhr/langs/cs_dlg.js +5 -0
  95. data/public/javascripts/tiny_mce/plugins/advhr/langs/cy_dlg.js +5 -0
  96. data/public/javascripts/tiny_mce/plugins/advhr/langs/da_dlg.js +5 -0
  97. data/public/javascripts/tiny_mce/plugins/advhr/langs/de_dlg.js +5 -0
  98. data/public/javascripts/tiny_mce/plugins/advhr/langs/dv_dlg.js +5 -0
  99. data/public/javascripts/tiny_mce/plugins/advhr/langs/el_dlg.js +5 -0
  100. data/public/javascripts/tiny_mce/plugins/advhr/langs/en_dlg.js +5 -0
  101. data/public/javascripts/tiny_mce/plugins/advhr/langs/es_dlg.js +5 -0
  102. data/public/javascripts/tiny_mce/plugins/advhr/langs/et_dlg.js +5 -0
  103. data/public/javascripts/tiny_mce/plugins/advhr/langs/fa_dlg.js +5 -0
  104. data/public/javascripts/tiny_mce/plugins/advhr/langs/fi_dlg.js +5 -0
  105. data/public/javascripts/tiny_mce/plugins/advhr/langs/fr_dlg.js +5 -0
  106. data/public/javascripts/tiny_mce/plugins/advhr/langs/gl_dlg.js +5 -0
  107. data/public/javascripts/tiny_mce/plugins/advhr/langs/gu_dlg.js +5 -0
  108. data/public/javascripts/tiny_mce/plugins/advhr/langs/he_dlg.js +5 -0
  109. data/public/javascripts/tiny_mce/plugins/advhr/langs/hi_dlg.js +5 -0
  110. data/public/javascripts/tiny_mce/plugins/advhr/langs/hr_dlg.js +5 -0
  111. data/public/javascripts/tiny_mce/plugins/advhr/langs/hu_dlg.js +5 -0
  112. data/public/javascripts/tiny_mce/plugins/advhr/langs/ia_dlg.js +5 -0
  113. data/public/javascripts/tiny_mce/plugins/advhr/langs/id_dlg.js +5 -0
  114. data/public/javascripts/tiny_mce/plugins/advhr/langs/ii_dlg.js +5 -0
  115. data/public/javascripts/tiny_mce/plugins/advhr/langs/is_dlg.js +5 -0
  116. data/public/javascripts/tiny_mce/plugins/advhr/langs/it_dlg.js +5 -0
  117. data/public/javascripts/tiny_mce/plugins/advhr/langs/ja_dlg.js +5 -0
  118. data/public/javascripts/tiny_mce/plugins/advhr/langs/ko_dlg.js +5 -0
  119. data/public/javascripts/tiny_mce/plugins/advhr/langs/lt_dlg.js +5 -0
  120. data/public/javascripts/tiny_mce/plugins/advhr/langs/lv_dlg.js +5 -0
  121. data/public/javascripts/tiny_mce/plugins/advhr/langs/mk_dlg.js +5 -0
  122. data/public/javascripts/tiny_mce/plugins/advhr/langs/ml_dlg.js +5 -0
  123. data/public/javascripts/tiny_mce/plugins/advhr/langs/mn_dlg.js +5 -0
  124. data/public/javascripts/tiny_mce/plugins/advhr/langs/ms_dlg.js +5 -0
  125. data/public/javascripts/tiny_mce/plugins/advhr/langs/nb_dlg.js +5 -0
  126. data/public/javascripts/tiny_mce/plugins/advhr/langs/nl_dlg.js +5 -0
  127. data/public/javascripts/tiny_mce/plugins/advhr/langs/nn_dlg.js +5 -0
  128. data/public/javascripts/tiny_mce/plugins/advhr/langs/no_dlg.js +5 -0
  129. data/public/javascripts/tiny_mce/plugins/advhr/langs/pl_dlg.js +5 -0
  130. data/public/javascripts/tiny_mce/plugins/advhr/langs/pt_dlg.js +5 -0
  131. data/public/javascripts/tiny_mce/plugins/advhr/langs/ro_dlg.js +5 -0
  132. data/public/javascripts/tiny_mce/plugins/advhr/langs/ru_dlg.js +5 -0
  133. data/public/javascripts/tiny_mce/plugins/advhr/langs/sc_dlg.js +5 -0
  134. data/public/javascripts/tiny_mce/plugins/advhr/langs/se_dlg.js +5 -0
  135. data/public/javascripts/tiny_mce/plugins/advhr/langs/si_dlg.js +5 -0
  136. data/public/javascripts/tiny_mce/plugins/advhr/langs/sk_dlg.js +5 -0
  137. data/public/javascripts/tiny_mce/plugins/advhr/langs/sl_dlg.js +5 -0
  138. data/public/javascripts/tiny_mce/plugins/advhr/langs/sq_dlg.js +5 -0
  139. data/public/javascripts/tiny_mce/plugins/advhr/langs/sr_dlg.js +5 -0
  140. data/public/javascripts/tiny_mce/plugins/advhr/langs/sv_dlg.js +5 -0
  141. data/public/javascripts/tiny_mce/plugins/advhr/langs/ta_dlg.js +5 -0
  142. data/public/javascripts/tiny_mce/plugins/advhr/langs/te_dlg.js +5 -0
  143. data/public/javascripts/tiny_mce/plugins/advhr/langs/th_dlg.js +5 -0
  144. data/public/javascripts/tiny_mce/plugins/advhr/langs/tr_dlg.js +5 -0
  145. data/public/javascripts/tiny_mce/plugins/advhr/langs/tt_dlg.js +5 -0
  146. data/public/javascripts/tiny_mce/plugins/advhr/langs/tw_dlg.js +5 -0
  147. data/public/javascripts/tiny_mce/plugins/advhr/langs/uk_dlg.js +5 -0
  148. data/public/javascripts/tiny_mce/plugins/advhr/langs/vi_dlg.js +5 -0
  149. data/public/javascripts/tiny_mce/plugins/advhr/langs/zh_dlg.js +5 -0
  150. data/public/javascripts/tiny_mce/plugins/advhr/rule.htm +62 -0
  151. data/public/javascripts/tiny_mce/plugins/advimage/css/advimage.css +13 -0
  152. data/public/javascripts/tiny_mce/plugins/advimage/editor_plugin.js +1 -0
  153. data/public/javascripts/tiny_mce/plugins/advimage/editor_plugin_src.js +47 -0
  154. data/public/javascripts/tiny_mce/plugins/advimage/image.htm +237 -0
  155. data/public/javascripts/tiny_mce/plugins/advimage/img/sample.gif +0 -0
  156. data/public/javascripts/tiny_mce/plugins/advimage/js/image.js +443 -0
  157. data/public/javascripts/tiny_mce/plugins/advimage/langs/ar_dlg.js +43 -0
  158. data/public/javascripts/tiny_mce/plugins/advimage/langs/az_dlg.js +43 -0
  159. data/public/javascripts/tiny_mce/plugins/advimage/langs/be_dlg.js +43 -0
  160. data/public/javascripts/tiny_mce/plugins/advimage/langs/bg_dlg.js +43 -0
  161. data/public/javascripts/tiny_mce/plugins/advimage/langs/bn_dlg.js +43 -0
  162. data/public/javascripts/tiny_mce/plugins/advimage/langs/br_dlg.js +43 -0
  163. data/public/javascripts/tiny_mce/plugins/advimage/langs/bs_dlg.js +43 -0
  164. data/public/javascripts/tiny_mce/plugins/advimage/langs/ca_dlg.js +43 -0
  165. data/public/javascripts/tiny_mce/plugins/advimage/langs/ch_dlg.js +43 -0
  166. data/public/javascripts/tiny_mce/plugins/advimage/langs/cs_dlg.js +43 -0
  167. data/public/javascripts/tiny_mce/plugins/advimage/langs/cy_dlg.js +43 -0
  168. data/public/javascripts/tiny_mce/plugins/advimage/langs/da_dlg.js +43 -0
  169. data/public/javascripts/tiny_mce/plugins/advimage/langs/de_dlg.js +43 -0
  170. data/public/javascripts/tiny_mce/plugins/advimage/langs/dv_dlg.js +43 -0
  171. data/public/javascripts/tiny_mce/plugins/advimage/langs/el_dlg.js +43 -0
  172. data/public/javascripts/tiny_mce/plugins/advimage/langs/en_dlg.js +43 -0
  173. data/public/javascripts/tiny_mce/plugins/advimage/langs/es_dlg.js +43 -0
  174. data/public/javascripts/tiny_mce/plugins/advimage/langs/et_dlg.js +43 -0
  175. data/public/javascripts/tiny_mce/plugins/advimage/langs/fa_dlg.js +43 -0
  176. data/public/javascripts/tiny_mce/plugins/advimage/langs/fi_dlg.js +43 -0
  177. data/public/javascripts/tiny_mce/plugins/advimage/langs/fr_dlg.js +43 -0
  178. data/public/javascripts/tiny_mce/plugins/advimage/langs/gl_dlg.js +43 -0
  179. data/public/javascripts/tiny_mce/plugins/advimage/langs/gu_dlg.js +43 -0
  180. data/public/javascripts/tiny_mce/plugins/advimage/langs/he_dlg.js +43 -0
  181. data/public/javascripts/tiny_mce/plugins/advimage/langs/hi_dlg.js +43 -0
  182. data/public/javascripts/tiny_mce/plugins/advimage/langs/hr_dlg.js +43 -0
  183. data/public/javascripts/tiny_mce/plugins/advimage/langs/hu_dlg.js +43 -0
  184. data/public/javascripts/tiny_mce/plugins/advimage/langs/ia_dlg.js +43 -0
  185. data/public/javascripts/tiny_mce/plugins/advimage/langs/id_dlg.js +43 -0
  186. data/public/javascripts/tiny_mce/plugins/advimage/langs/ii_dlg.js +43 -0
  187. data/public/javascripts/tiny_mce/plugins/advimage/langs/is_dlg.js +43 -0
  188. data/public/javascripts/tiny_mce/plugins/advimage/langs/it_dlg.js +43 -0
  189. data/public/javascripts/tiny_mce/plugins/advimage/langs/ja_dlg.js +43 -0
  190. data/public/javascripts/tiny_mce/plugins/advimage/langs/ko_dlg.js +43 -0
  191. data/public/javascripts/tiny_mce/plugins/advimage/langs/lt_dlg.js +43 -0
  192. data/public/javascripts/tiny_mce/plugins/advimage/langs/lv_dlg.js +43 -0
  193. data/public/javascripts/tiny_mce/plugins/advimage/langs/mk_dlg.js +43 -0
  194. data/public/javascripts/tiny_mce/plugins/advimage/langs/ml_dlg.js +43 -0
  195. data/public/javascripts/tiny_mce/plugins/advimage/langs/mn_dlg.js +43 -0
  196. data/public/javascripts/tiny_mce/plugins/advimage/langs/ms_dlg.js +43 -0
  197. data/public/javascripts/tiny_mce/plugins/advimage/langs/nb_dlg.js +43 -0
  198. data/public/javascripts/tiny_mce/plugins/advimage/langs/nl_dlg.js +43 -0
  199. data/public/javascripts/tiny_mce/plugins/advimage/langs/nn_dlg.js +43 -0
  200. data/public/javascripts/tiny_mce/plugins/advimage/langs/no_dlg.js +43 -0
  201. data/public/javascripts/tiny_mce/plugins/advimage/langs/pl_dlg.js +43 -0
  202. data/public/javascripts/tiny_mce/plugins/advimage/langs/pt_dlg.js +43 -0
  203. data/public/javascripts/tiny_mce/plugins/advimage/langs/ro_dlg.js +43 -0
  204. data/public/javascripts/tiny_mce/plugins/advimage/langs/ru_dlg.js +43 -0
  205. data/public/javascripts/tiny_mce/plugins/advimage/langs/sc_dlg.js +43 -0
  206. data/public/javascripts/tiny_mce/plugins/advimage/langs/se_dlg.js +43 -0
  207. data/public/javascripts/tiny_mce/plugins/advimage/langs/si_dlg.js +43 -0
  208. data/public/javascripts/tiny_mce/plugins/advimage/langs/sk_dlg.js +43 -0
  209. data/public/javascripts/tiny_mce/plugins/advimage/langs/sl_dlg.js +43 -0
  210. data/public/javascripts/tiny_mce/plugins/advimage/langs/sq_dlg.js +43 -0
  211. data/public/javascripts/tiny_mce/plugins/advimage/langs/sr_dlg.js +43 -0
  212. data/public/javascripts/tiny_mce/plugins/advimage/langs/sv_dlg.js +43 -0
  213. data/public/javascripts/tiny_mce/plugins/advimage/langs/ta_dlg.js +43 -0
  214. data/public/javascripts/tiny_mce/plugins/advimage/langs/te_dlg.js +43 -0
  215. data/public/javascripts/tiny_mce/plugins/advimage/langs/th_dlg.js +43 -0
  216. data/public/javascripts/tiny_mce/plugins/advimage/langs/tr_dlg.js +43 -0
  217. data/public/javascripts/tiny_mce/plugins/advimage/langs/tt_dlg.js +43 -0
  218. data/public/javascripts/tiny_mce/plugins/advimage/langs/tw_dlg.js +43 -0
  219. data/public/javascripts/tiny_mce/plugins/advimage/langs/uk_dlg.js +43 -0
  220. data/public/javascripts/tiny_mce/plugins/advimage/langs/vi_dlg.js +43 -0
  221. data/public/javascripts/tiny_mce/plugins/advimage/langs/zh_dlg.js +43 -0
  222. data/public/javascripts/tiny_mce/plugins/advlink/css/advlink.css +8 -0
  223. data/public/javascripts/tiny_mce/plugins/advlink/editor_plugin.js +1 -0
  224. data/public/javascripts/tiny_mce/plugins/advlink/editor_plugin_src.js +58 -0
  225. data/public/javascripts/tiny_mce/plugins/advlink/js/advlink.js +528 -0
  226. data/public/javascripts/tiny_mce/plugins/advlink/langs/ar_dlg.js +52 -0
  227. data/public/javascripts/tiny_mce/plugins/advlink/langs/az_dlg.js +52 -0
  228. data/public/javascripts/tiny_mce/plugins/advlink/langs/be_dlg.js +52 -0
  229. data/public/javascripts/tiny_mce/plugins/advlink/langs/bg_dlg.js +52 -0
  230. data/public/javascripts/tiny_mce/plugins/advlink/langs/bn_dlg.js +52 -0
  231. data/public/javascripts/tiny_mce/plugins/advlink/langs/br_dlg.js +52 -0
  232. data/public/javascripts/tiny_mce/plugins/advlink/langs/bs_dlg.js +52 -0
  233. data/public/javascripts/tiny_mce/plugins/advlink/langs/ca_dlg.js +52 -0
  234. data/public/javascripts/tiny_mce/plugins/advlink/langs/ch_dlg.js +52 -0
  235. data/public/javascripts/tiny_mce/plugins/advlink/langs/cs_dlg.js +52 -0
  236. data/public/javascripts/tiny_mce/plugins/advlink/langs/cy_dlg.js +52 -0
  237. data/public/javascripts/tiny_mce/plugins/advlink/langs/da_dlg.js +52 -0
  238. data/public/javascripts/tiny_mce/plugins/advlink/langs/de_dlg.js +52 -0
  239. data/public/javascripts/tiny_mce/plugins/advlink/langs/dv_dlg.js +52 -0
  240. data/public/javascripts/tiny_mce/plugins/advlink/langs/el_dlg.js +52 -0
  241. data/public/javascripts/tiny_mce/plugins/advlink/langs/en_dlg.js +52 -0
  242. data/public/javascripts/tiny_mce/plugins/advlink/langs/es_dlg.js +52 -0
  243. data/public/javascripts/tiny_mce/plugins/advlink/langs/et_dlg.js +52 -0
  244. data/public/javascripts/tiny_mce/plugins/advlink/langs/fa_dlg.js +52 -0
  245. data/public/javascripts/tiny_mce/plugins/advlink/langs/fi_dlg.js +52 -0
  246. data/public/javascripts/tiny_mce/plugins/advlink/langs/fr_dlg.js +52 -0
  247. data/public/javascripts/tiny_mce/plugins/advlink/langs/gl_dlg.js +52 -0
  248. data/public/javascripts/tiny_mce/plugins/advlink/langs/gu_dlg.js +52 -0
  249. data/public/javascripts/tiny_mce/plugins/advlink/langs/he_dlg.js +52 -0
  250. data/public/javascripts/tiny_mce/plugins/advlink/langs/hi_dlg.js +52 -0
  251. data/public/javascripts/tiny_mce/plugins/advlink/langs/hr_dlg.js +52 -0
  252. data/public/javascripts/tiny_mce/plugins/advlink/langs/hu_dlg.js +52 -0
  253. data/public/javascripts/tiny_mce/plugins/advlink/langs/ia_dlg.js +52 -0
  254. data/public/javascripts/tiny_mce/plugins/advlink/langs/id_dlg.js +52 -0
  255. data/public/javascripts/tiny_mce/plugins/advlink/langs/ii_dlg.js +52 -0
  256. data/public/javascripts/tiny_mce/plugins/advlink/langs/is_dlg.js +52 -0
  257. data/public/javascripts/tiny_mce/plugins/advlink/langs/it_dlg.js +52 -0
  258. data/public/javascripts/tiny_mce/plugins/advlink/langs/ja_dlg.js +52 -0
  259. data/public/javascripts/tiny_mce/plugins/advlink/langs/ko_dlg.js +52 -0
  260. data/public/javascripts/tiny_mce/plugins/advlink/langs/lt_dlg.js +52 -0
  261. data/public/javascripts/tiny_mce/plugins/advlink/langs/lv_dlg.js +52 -0
  262. data/public/javascripts/tiny_mce/plugins/advlink/langs/mk_dlg.js +52 -0
  263. data/public/javascripts/tiny_mce/plugins/advlink/langs/ml_dlg.js +52 -0
  264. data/public/javascripts/tiny_mce/plugins/advlink/langs/mn_dlg.js +52 -0
  265. data/public/javascripts/tiny_mce/plugins/advlink/langs/ms_dlg.js +52 -0
  266. data/public/javascripts/tiny_mce/plugins/advlink/langs/nb_dlg.js +52 -0
  267. data/public/javascripts/tiny_mce/plugins/advlink/langs/nl_dlg.js +52 -0
  268. data/public/javascripts/tiny_mce/plugins/advlink/langs/nn_dlg.js +52 -0
  269. data/public/javascripts/tiny_mce/plugins/advlink/langs/no_dlg.js +52 -0
  270. data/public/javascripts/tiny_mce/plugins/advlink/langs/pl_dlg.js +52 -0
  271. data/public/javascripts/tiny_mce/plugins/advlink/langs/pt_dlg.js +52 -0
  272. data/public/javascripts/tiny_mce/plugins/advlink/langs/ro_dlg.js +52 -0
  273. data/public/javascripts/tiny_mce/plugins/advlink/langs/ru_dlg.js +52 -0
  274. data/public/javascripts/tiny_mce/plugins/advlink/langs/sc_dlg.js +52 -0
  275. data/public/javascripts/tiny_mce/plugins/advlink/langs/se_dlg.js +52 -0
  276. data/public/javascripts/tiny_mce/plugins/advlink/langs/si_dlg.js +52 -0
  277. data/public/javascripts/tiny_mce/plugins/advlink/langs/sk_dlg.js +52 -0
  278. data/public/javascripts/tiny_mce/plugins/advlink/langs/sl_dlg.js +52 -0
  279. data/public/javascripts/tiny_mce/plugins/advlink/langs/sq_dlg.js +52 -0
  280. data/public/javascripts/tiny_mce/plugins/advlink/langs/sr_dlg.js +52 -0
  281. data/public/javascripts/tiny_mce/plugins/advlink/langs/sv_dlg.js +52 -0
  282. data/public/javascripts/tiny_mce/plugins/advlink/langs/ta_dlg.js +52 -0
  283. data/public/javascripts/tiny_mce/plugins/advlink/langs/te_dlg.js +52 -0
  284. data/public/javascripts/tiny_mce/plugins/advlink/langs/th_dlg.js +52 -0
  285. data/public/javascripts/tiny_mce/plugins/advlink/langs/tr_dlg.js +52 -0
  286. data/public/javascripts/tiny_mce/plugins/advlink/langs/tt_dlg.js +52 -0
  287. data/public/javascripts/tiny_mce/plugins/advlink/langs/tw_dlg.js +52 -0
  288. data/public/javascripts/tiny_mce/plugins/advlink/langs/uk_dlg.js +52 -0
  289. data/public/javascripts/tiny_mce/plugins/advlink/langs/vi_dlg.js +52 -0
  290. data/public/javascripts/tiny_mce/plugins/advlink/langs/zh_dlg.js +52 -0
  291. data/public/javascripts/tiny_mce/plugins/advlink/link.htm +338 -0
  292. data/public/javascripts/tiny_mce/plugins/autoresize/editor_plugin.js +1 -0
  293. data/public/javascripts/tiny_mce/plugins/autoresize/editor_plugin_src.js +114 -0
  294. data/public/javascripts/tiny_mce/plugins/autosave/editor_plugin.js +1 -0
  295. data/public/javascripts/tiny_mce/plugins/autosave/editor_plugin_src.js +51 -0
  296. data/public/javascripts/tiny_mce/plugins/bbcode/editor_plugin.js +1 -0
  297. data/public/javascripts/tiny_mce/plugins/bbcode/editor_plugin_src.js +117 -0
  298. data/public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -0
  299. data/public/javascripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +95 -0
  300. data/public/javascripts/tiny_mce/plugins/directionality/editor_plugin.js +1 -0
  301. data/public/javascripts/tiny_mce/plugins/directionality/editor_plugin_src.js +79 -0
  302. data/public/javascripts/tiny_mce/plugins/emotions/editor_plugin.js +1 -0
  303. data/public/javascripts/tiny_mce/plugins/emotions/editor_plugin_src.js +40 -0
  304. data/public/javascripts/tiny_mce/plugins/emotions/emotions.htm +40 -0
  305. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-cool.gif +0 -0
  306. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-cry.gif +0 -0
  307. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif +0 -0
  308. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif +0 -0
  309. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-frown.gif +0 -0
  310. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif +0 -0
  311. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif +0 -0
  312. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif +0 -0
  313. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif +0 -0
  314. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif +0 -0
  315. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-smile.gif +0 -0
  316. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif +0 -0
  317. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif +0 -0
  318. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif +0 -0
  319. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-wink.gif +0 -0
  320. data/public/javascripts/tiny_mce/plugins/emotions/img/smiley-yell.gif +0 -0
  321. data/public/javascripts/tiny_mce/plugins/emotions/js/emotions.js +22 -0
  322. data/public/javascripts/tiny_mce/plugins/emotions/langs/ar_dlg.js +20 -0
  323. data/public/javascripts/tiny_mce/plugins/emotions/langs/az_dlg.js +20 -0
  324. data/public/javascripts/tiny_mce/plugins/emotions/langs/be_dlg.js +20 -0
  325. data/public/javascripts/tiny_mce/plugins/emotions/langs/bg_dlg.js +20 -0
  326. data/public/javascripts/tiny_mce/plugins/emotions/langs/bn_dlg.js +20 -0
  327. data/public/javascripts/tiny_mce/plugins/emotions/langs/br_dlg.js +20 -0
  328. data/public/javascripts/tiny_mce/plugins/emotions/langs/bs_dlg.js +20 -0
  329. data/public/javascripts/tiny_mce/plugins/emotions/langs/ca_dlg.js +20 -0
  330. data/public/javascripts/tiny_mce/plugins/emotions/langs/ch_dlg.js +20 -0
  331. data/public/javascripts/tiny_mce/plugins/emotions/langs/cs_dlg.js +20 -0
  332. data/public/javascripts/tiny_mce/plugins/emotions/langs/cy_dlg.js +20 -0
  333. data/public/javascripts/tiny_mce/plugins/emotions/langs/da_dlg.js +20 -0
  334. data/public/javascripts/tiny_mce/plugins/emotions/langs/de_dlg.js +20 -0
  335. data/public/javascripts/tiny_mce/plugins/emotions/langs/dv_dlg.js +20 -0
  336. data/public/javascripts/tiny_mce/plugins/emotions/langs/el_dlg.js +20 -0
  337. data/public/javascripts/tiny_mce/plugins/emotions/langs/en_dlg.js +20 -0
  338. data/public/javascripts/tiny_mce/plugins/emotions/langs/es_dlg.js +20 -0
  339. data/public/javascripts/tiny_mce/plugins/emotions/langs/et_dlg.js +20 -0
  340. data/public/javascripts/tiny_mce/plugins/emotions/langs/fa_dlg.js +20 -0
  341. data/public/javascripts/tiny_mce/plugins/emotions/langs/fi_dlg.js +20 -0
  342. data/public/javascripts/tiny_mce/plugins/emotions/langs/fr_dlg.js +20 -0
  343. data/public/javascripts/tiny_mce/plugins/emotions/langs/gl_dlg.js +20 -0
  344. data/public/javascripts/tiny_mce/plugins/emotions/langs/gu_dlg.js +20 -0
  345. data/public/javascripts/tiny_mce/plugins/emotions/langs/he_dlg.js +20 -0
  346. data/public/javascripts/tiny_mce/plugins/emotions/langs/hi_dlg.js +20 -0
  347. data/public/javascripts/tiny_mce/plugins/emotions/langs/hr_dlg.js +20 -0
  348. data/public/javascripts/tiny_mce/plugins/emotions/langs/hu_dlg.js +20 -0
  349. data/public/javascripts/tiny_mce/plugins/emotions/langs/ia_dlg.js +20 -0
  350. data/public/javascripts/tiny_mce/plugins/emotions/langs/id_dlg.js +20 -0
  351. data/public/javascripts/tiny_mce/plugins/emotions/langs/ii_dlg.js +20 -0
  352. data/public/javascripts/tiny_mce/plugins/emotions/langs/is_dlg.js +20 -0
  353. data/public/javascripts/tiny_mce/plugins/emotions/langs/it_dlg.js +20 -0
  354. data/public/javascripts/tiny_mce/plugins/emotions/langs/ja_dlg.js +20 -0
  355. data/public/javascripts/tiny_mce/plugins/emotions/langs/ko_dlg.js +20 -0
  356. data/public/javascripts/tiny_mce/plugins/emotions/langs/lt_dlg.js +20 -0
  357. data/public/javascripts/tiny_mce/plugins/emotions/langs/lv_dlg.js +20 -0
  358. data/public/javascripts/tiny_mce/plugins/emotions/langs/mk_dlg.js +20 -0
  359. data/public/javascripts/tiny_mce/plugins/emotions/langs/ml_dlg.js +20 -0
  360. data/public/javascripts/tiny_mce/plugins/emotions/langs/mn_dlg.js +20 -0
  361. data/public/javascripts/tiny_mce/plugins/emotions/langs/ms_dlg.js +20 -0
  362. data/public/javascripts/tiny_mce/plugins/emotions/langs/nb_dlg.js +20 -0
  363. data/public/javascripts/tiny_mce/plugins/emotions/langs/nl_dlg.js +20 -0
  364. data/public/javascripts/tiny_mce/plugins/emotions/langs/nn_dlg.js +20 -0
  365. data/public/javascripts/tiny_mce/plugins/emotions/langs/no_dlg.js +20 -0
  366. data/public/javascripts/tiny_mce/plugins/emotions/langs/pl_dlg.js +20 -0
  367. data/public/javascripts/tiny_mce/plugins/emotions/langs/pt_dlg.js +20 -0
  368. data/public/javascripts/tiny_mce/plugins/emotions/langs/ro_dlg.js +20 -0
  369. data/public/javascripts/tiny_mce/plugins/emotions/langs/ru_dlg.js +20 -0
  370. data/public/javascripts/tiny_mce/plugins/emotions/langs/sc_dlg.js +20 -0
  371. data/public/javascripts/tiny_mce/plugins/emotions/langs/se_dlg.js +20 -0
  372. data/public/javascripts/tiny_mce/plugins/emotions/langs/si_dlg.js +20 -0
  373. data/public/javascripts/tiny_mce/plugins/emotions/langs/sk_dlg.js +20 -0
  374. data/public/javascripts/tiny_mce/plugins/emotions/langs/sl_dlg.js +20 -0
  375. data/public/javascripts/tiny_mce/plugins/emotions/langs/sq_dlg.js +20 -0
  376. data/public/javascripts/tiny_mce/plugins/emotions/langs/sr_dlg.js +20 -0
  377. data/public/javascripts/tiny_mce/plugins/emotions/langs/sv_dlg.js +20 -0
  378. data/public/javascripts/tiny_mce/plugins/emotions/langs/ta_dlg.js +20 -0
  379. data/public/javascripts/tiny_mce/plugins/emotions/langs/te_dlg.js +20 -0
  380. data/public/javascripts/tiny_mce/plugins/emotions/langs/th_dlg.js +20 -0
  381. data/public/javascripts/tiny_mce/plugins/emotions/langs/tr_dlg.js +20 -0
  382. data/public/javascripts/tiny_mce/plugins/emotions/langs/tt_dlg.js +20 -0
  383. data/public/javascripts/tiny_mce/plugins/emotions/langs/tw_dlg.js +20 -0
  384. data/public/javascripts/tiny_mce/plugins/emotions/langs/uk_dlg.js +20 -0
  385. data/public/javascripts/tiny_mce/plugins/emotions/langs/vi_dlg.js +20 -0
  386. data/public/javascripts/tiny_mce/plugins/emotions/langs/zh_dlg.js +20 -0
  387. data/public/javascripts/tiny_mce/plugins/example/dialog.htm +27 -0
  388. data/public/javascripts/tiny_mce/plugins/example/editor_plugin.js +1 -0
  389. data/public/javascripts/tiny_mce/plugins/example/editor_plugin_src.js +81 -0
  390. data/public/javascripts/tiny_mce/plugins/example/img/example.gif +0 -0
  391. data/public/javascripts/tiny_mce/plugins/example/js/dialog.js +19 -0
  392. data/public/javascripts/tiny_mce/plugins/example/langs/en.js +3 -0
  393. data/public/javascripts/tiny_mce/plugins/example/langs/en_dlg.js +3 -0
  394. data/public/javascripts/tiny_mce/plugins/fullpage/css/fullpage.css +182 -0
  395. data/public/javascripts/tiny_mce/plugins/fullpage/editor_plugin.js +1 -0
  396. data/public/javascripts/tiny_mce/plugins/fullpage/editor_plugin_src.js +146 -0
  397. data/public/javascripts/tiny_mce/plugins/fullpage/fullpage.htm +576 -0
  398. data/public/javascripts/tiny_mce/plugins/fullpage/js/fullpage.js +461 -0
  399. data/public/javascripts/tiny_mce/plugins/fullpage/langs/ar_dlg.js +85 -0
  400. data/public/javascripts/tiny_mce/plugins/fullpage/langs/az_dlg.js +85 -0
  401. data/public/javascripts/tiny_mce/plugins/fullpage/langs/be_dlg.js +85 -0
  402. data/public/javascripts/tiny_mce/plugins/fullpage/langs/bg_dlg.js +85 -0
  403. data/public/javascripts/tiny_mce/plugins/fullpage/langs/bn_dlg.js +85 -0
  404. data/public/javascripts/tiny_mce/plugins/fullpage/langs/br_dlg.js +85 -0
  405. data/public/javascripts/tiny_mce/plugins/fullpage/langs/bs_dlg.js +85 -0
  406. data/public/javascripts/tiny_mce/plugins/fullpage/langs/ca_dlg.js +85 -0
  407. data/public/javascripts/tiny_mce/plugins/fullpage/langs/ch_dlg.js +85 -0
  408. data/public/javascripts/tiny_mce/plugins/fullpage/langs/cs_dlg.js +85 -0
  409. data/public/javascripts/tiny_mce/plugins/fullpage/langs/cy_dlg.js +85 -0
  410. data/public/javascripts/tiny_mce/plugins/fullpage/langs/da_dlg.js +85 -0
  411. data/public/javascripts/tiny_mce/plugins/fullpage/langs/de_dlg.js +85 -0
  412. data/public/javascripts/tiny_mce/plugins/fullpage/langs/dv_dlg.js +85 -0
  413. data/public/javascripts/tiny_mce/plugins/fullpage/langs/el_dlg.js +85 -0
  414. data/public/javascripts/tiny_mce/plugins/fullpage/langs/en_dlg.js +85 -0
  415. data/public/javascripts/tiny_mce/plugins/fullpage/langs/es_dlg.js +85 -0
  416. data/public/javascripts/tiny_mce/plugins/fullpage/langs/et_dlg.js +85 -0
  417. data/public/javascripts/tiny_mce/plugins/fullpage/langs/fa_dlg.js +85 -0
  418. data/public/javascripts/tiny_mce/plugins/fullpage/langs/fi_dlg.js +85 -0
  419. data/public/javascripts/tiny_mce/plugins/fullpage/langs/fr_dlg.js +85 -0
  420. data/public/javascripts/tiny_mce/plugins/fullpage/langs/gl_dlg.js +85 -0
  421. data/public/javascripts/tiny_mce/plugins/fullpage/langs/gu_dlg.js +85 -0
  422. data/public/javascripts/tiny_mce/plugins/fullpage/langs/he_dlg.js +85 -0
  423. data/public/javascripts/tiny_mce/plugins/fullpage/langs/hi_dlg.js +85 -0
  424. data/public/javascripts/tiny_mce/plugins/fullpage/langs/hr_dlg.js +85 -0
  425. data/public/javascripts/tiny_mce/plugins/fullpage/langs/hu_dlg.js +85 -0
  426. data/public/javascripts/tiny_mce/plugins/fullpage/langs/ia_dlg.js +85 -0
  427. data/public/javascripts/tiny_mce/plugins/fullpage/langs/id_dlg.js +85 -0
  428. data/public/javascripts/tiny_mce/plugins/fullpage/langs/ii_dlg.js +85 -0
  429. data/public/javascripts/tiny_mce/plugins/fullpage/langs/is_dlg.js +85 -0
  430. data/public/javascripts/tiny_mce/plugins/fullpage/langs/it_dlg.js +85 -0
  431. data/public/javascripts/tiny_mce/plugins/fullpage/langs/ja_dlg.js +85 -0
  432. data/public/javascripts/tiny_mce/plugins/fullpage/langs/ko_dlg.js +85 -0
  433. data/public/javascripts/tiny_mce/plugins/fullpage/langs/lt_dlg.js +85 -0
  434. data/public/javascripts/tiny_mce/plugins/fullpage/langs/lv_dlg.js +85 -0
  435. data/public/javascripts/tiny_mce/plugins/fullpage/langs/mk_dlg.js +85 -0
  436. data/public/javascripts/tiny_mce/plugins/fullpage/langs/ml_dlg.js +85 -0
  437. data/public/javascripts/tiny_mce/plugins/fullpage/langs/mn_dlg.js +85 -0
  438. data/public/javascripts/tiny_mce/plugins/fullpage/langs/ms_dlg.js +85 -0
  439. data/public/javascripts/tiny_mce/plugins/fullpage/langs/nb_dlg.js +85 -0
  440. data/public/javascripts/tiny_mce/plugins/fullpage/langs/nl_dlg.js +85 -0
  441. data/public/javascripts/tiny_mce/plugins/fullpage/langs/nn_dlg.js +85 -0
  442. data/public/javascripts/tiny_mce/plugins/fullpage/langs/no_dlg.js +85 -0
  443. data/public/javascripts/tiny_mce/plugins/fullpage/langs/pl_dlg.js +85 -0
  444. data/public/javascripts/tiny_mce/plugins/fullpage/langs/pt_dlg.js +85 -0
  445. data/public/javascripts/tiny_mce/plugins/fullpage/langs/ro_dlg.js +85 -0
  446. data/public/javascripts/tiny_mce/plugins/fullpage/langs/ru_dlg.js +85 -0
  447. data/public/javascripts/tiny_mce/plugins/fullpage/langs/sc_dlg.js +85 -0
  448. data/public/javascripts/tiny_mce/plugins/fullpage/langs/se_dlg.js +85 -0
  449. data/public/javascripts/tiny_mce/plugins/fullpage/langs/si_dlg.js +85 -0
  450. data/public/javascripts/tiny_mce/plugins/fullpage/langs/sk_dlg.js +85 -0
  451. data/public/javascripts/tiny_mce/plugins/fullpage/langs/sl_dlg.js +85 -0
  452. data/public/javascripts/tiny_mce/plugins/fullpage/langs/sq_dlg.js +85 -0
  453. data/public/javascripts/tiny_mce/plugins/fullpage/langs/sr_dlg.js +85 -0
  454. data/public/javascripts/tiny_mce/plugins/fullpage/langs/sv_dlg.js +85 -0
  455. data/public/javascripts/tiny_mce/plugins/fullpage/langs/ta_dlg.js +85 -0
  456. data/public/javascripts/tiny_mce/plugins/fullpage/langs/te_dlg.js +85 -0
  457. data/public/javascripts/tiny_mce/plugins/fullpage/langs/th_dlg.js +85 -0
  458. data/public/javascripts/tiny_mce/plugins/fullpage/langs/tr_dlg.js +85 -0
  459. data/public/javascripts/tiny_mce/plugins/fullpage/langs/tt_dlg.js +85 -0
  460. data/public/javascripts/tiny_mce/plugins/fullpage/langs/tw_dlg.js +85 -0
  461. data/public/javascripts/tiny_mce/plugins/fullpage/langs/uk_dlg.js +85 -0
  462. data/public/javascripts/tiny_mce/plugins/fullpage/langs/vi_dlg.js +85 -0
  463. data/public/javascripts/tiny_mce/plugins/fullpage/langs/zh_dlg.js +85 -0
  464. data/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -0
  465. data/public/javascripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js +145 -0
  466. data/public/javascripts/tiny_mce/plugins/fullscreen/fullscreen.htm +110 -0
  467. data/public/javascripts/tiny_mce/plugins/iespell/editor_plugin.js +1 -0
  468. data/public/javascripts/tiny_mce/plugins/iespell/editor_plugin_src.js +51 -0
  469. data/public/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin.js +1 -0
  470. data/public/javascripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +632 -0
  471. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif +0 -0
  472. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif +0 -0
  473. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif +0 -0
  474. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif +0 -0
  475. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif +0 -0
  476. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif +0 -0
  477. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif +0 -0
  478. data/public/javascripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css +90 -0
  479. data/public/javascripts/tiny_mce/plugins/inlinepopups/template.htm +387 -0
  480. data/public/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin.js +1 -0
  481. data/public/javascripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +80 -0
  482. data/public/javascripts/tiny_mce/plugins/layer/editor_plugin.js +1 -0
  483. data/public/javascripts/tiny_mce/plugins/layer/editor_plugin_src.js +209 -0
  484. data/public/javascripts/tiny_mce/plugins/media/css/content.css +6 -0
  485. data/public/javascripts/tiny_mce/plugins/media/css/media.css +16 -0
  486. data/public/javascripts/tiny_mce/plugins/media/editor_plugin.js +1 -0
  487. data/public/javascripts/tiny_mce/plugins/media/editor_plugin_src.js +405 -0
  488. data/public/javascripts/tiny_mce/plugins/media/img/flash.gif +0 -0
  489. data/public/javascripts/tiny_mce/plugins/media/img/flv_player.swf +0 -0
  490. data/public/javascripts/tiny_mce/plugins/media/img/quicktime.gif +0 -0
  491. data/public/javascripts/tiny_mce/plugins/media/img/realmedia.gif +0 -0
  492. data/public/javascripts/tiny_mce/plugins/media/img/shockwave.gif +0 -0
  493. data/public/javascripts/tiny_mce/plugins/media/img/trans.gif +0 -0
  494. data/public/javascripts/tiny_mce/plugins/media/img/windowsmedia.gif +0 -0
  495. data/public/javascripts/tiny_mce/plugins/media/js/embed.js +73 -0
  496. data/public/javascripts/tiny_mce/plugins/media/js/media.js +630 -0
  497. data/public/javascripts/tiny_mce/plugins/media/langs/ar_dlg.js +103 -0
  498. data/public/javascripts/tiny_mce/plugins/media/langs/az_dlg.js +103 -0
  499. data/public/javascripts/tiny_mce/plugins/media/langs/be_dlg.js +103 -0
  500. data/public/javascripts/tiny_mce/plugins/media/langs/bg_dlg.js +103 -0
  501. data/public/javascripts/tiny_mce/plugins/media/langs/bn_dlg.js +103 -0
  502. data/public/javascripts/tiny_mce/plugins/media/langs/br_dlg.js +103 -0
  503. data/public/javascripts/tiny_mce/plugins/media/langs/bs_dlg.js +103 -0
  504. data/public/javascripts/tiny_mce/plugins/media/langs/ca_dlg.js +103 -0
  505. data/public/javascripts/tiny_mce/plugins/media/langs/ch_dlg.js +103 -0
  506. data/public/javascripts/tiny_mce/plugins/media/langs/cs_dlg.js +103 -0
  507. data/public/javascripts/tiny_mce/plugins/media/langs/cy_dlg.js +103 -0
  508. data/public/javascripts/tiny_mce/plugins/media/langs/da_dlg.js +103 -0
  509. data/public/javascripts/tiny_mce/plugins/media/langs/de_dlg.js +103 -0
  510. data/public/javascripts/tiny_mce/plugins/media/langs/dv_dlg.js +103 -0
  511. data/public/javascripts/tiny_mce/plugins/media/langs/el_dlg.js +103 -0
  512. data/public/javascripts/tiny_mce/plugins/media/langs/en_dlg.js +103 -0
  513. data/public/javascripts/tiny_mce/plugins/media/langs/es_dlg.js +103 -0
  514. data/public/javascripts/tiny_mce/plugins/media/langs/et_dlg.js +103 -0
  515. data/public/javascripts/tiny_mce/plugins/media/langs/fa_dlg.js +103 -0
  516. data/public/javascripts/tiny_mce/plugins/media/langs/fi_dlg.js +103 -0
  517. data/public/javascripts/tiny_mce/plugins/media/langs/fr_dlg.js +103 -0
  518. data/public/javascripts/tiny_mce/plugins/media/langs/gl_dlg.js +103 -0
  519. data/public/javascripts/tiny_mce/plugins/media/langs/gu_dlg.js +103 -0
  520. data/public/javascripts/tiny_mce/plugins/media/langs/he_dlg.js +103 -0
  521. data/public/javascripts/tiny_mce/plugins/media/langs/hi_dlg.js +103 -0
  522. data/public/javascripts/tiny_mce/plugins/media/langs/hr_dlg.js +103 -0
  523. data/public/javascripts/tiny_mce/plugins/media/langs/hu_dlg.js +103 -0
  524. data/public/javascripts/tiny_mce/plugins/media/langs/ia_dlg.js +103 -0
  525. data/public/javascripts/tiny_mce/plugins/media/langs/id_dlg.js +103 -0
  526. data/public/javascripts/tiny_mce/plugins/media/langs/ii_dlg.js +103 -0
  527. data/public/javascripts/tiny_mce/plugins/media/langs/is_dlg.js +103 -0
  528. data/public/javascripts/tiny_mce/plugins/media/langs/it_dlg.js +103 -0
  529. data/public/javascripts/tiny_mce/plugins/media/langs/ja_dlg.js +103 -0
  530. data/public/javascripts/tiny_mce/plugins/media/langs/ko_dlg.js +103 -0
  531. data/public/javascripts/tiny_mce/plugins/media/langs/lt_dlg.js +103 -0
  532. data/public/javascripts/tiny_mce/plugins/media/langs/lv_dlg.js +103 -0
  533. data/public/javascripts/tiny_mce/plugins/media/langs/mk_dlg.js +103 -0
  534. data/public/javascripts/tiny_mce/plugins/media/langs/ml_dlg.js +103 -0
  535. data/public/javascripts/tiny_mce/plugins/media/langs/mn_dlg.js +103 -0
  536. data/public/javascripts/tiny_mce/plugins/media/langs/ms_dlg.js +102 -0
  537. data/public/javascripts/tiny_mce/plugins/media/langs/nb_dlg.js +103 -0
  538. data/public/javascripts/tiny_mce/plugins/media/langs/nl_dlg.js +103 -0
  539. data/public/javascripts/tiny_mce/plugins/media/langs/nn_dlg.js +103 -0
  540. data/public/javascripts/tiny_mce/plugins/media/langs/no_dlg.js +103 -0
  541. data/public/javascripts/tiny_mce/plugins/media/langs/pl_dlg.js +103 -0
  542. data/public/javascripts/tiny_mce/plugins/media/langs/pt_dlg.js +103 -0
  543. data/public/javascripts/tiny_mce/plugins/media/langs/ro_dlg.js +103 -0
  544. data/public/javascripts/tiny_mce/plugins/media/langs/ru_dlg.js +103 -0
  545. data/public/javascripts/tiny_mce/plugins/media/langs/sc_dlg.js +103 -0
  546. data/public/javascripts/tiny_mce/plugins/media/langs/se_dlg.js +103 -0
  547. data/public/javascripts/tiny_mce/plugins/media/langs/si_dlg.js +103 -0
  548. data/public/javascripts/tiny_mce/plugins/media/langs/sk_dlg.js +103 -0
  549. data/public/javascripts/tiny_mce/plugins/media/langs/sl_dlg.js +103 -0
  550. data/public/javascripts/tiny_mce/plugins/media/langs/sq_dlg.js +103 -0
  551. data/public/javascripts/tiny_mce/plugins/media/langs/sr_dlg.js +103 -0
  552. data/public/javascripts/tiny_mce/plugins/media/langs/sv_dlg.js +103 -0
  553. data/public/javascripts/tiny_mce/plugins/media/langs/ta_dlg.js +103 -0
  554. data/public/javascripts/tiny_mce/plugins/media/langs/te_dlg.js +103 -0
  555. data/public/javascripts/tiny_mce/plugins/media/langs/th_dlg.js +103 -0
  556. data/public/javascripts/tiny_mce/plugins/media/langs/tr_dlg.js +103 -0
  557. data/public/javascripts/tiny_mce/plugins/media/langs/tt_dlg.js +103 -0
  558. data/public/javascripts/tiny_mce/plugins/media/langs/tw_dlg.js +103 -0
  559. data/public/javascripts/tiny_mce/plugins/media/langs/uk_dlg.js +103 -0
  560. data/public/javascripts/tiny_mce/plugins/media/langs/vi_dlg.js +103 -0
  561. data/public/javascripts/tiny_mce/plugins/media/langs/zh_dlg.js +103 -0
  562. data/public/javascripts/tiny_mce/plugins/media/media.htm +822 -0
  563. data/public/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin.js +1 -0
  564. data/public/javascripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +50 -0
  565. data/public/javascripts/tiny_mce/plugins/noneditable/editor_plugin.js +1 -0
  566. data/public/javascripts/tiny_mce/plugins/noneditable/editor_plugin_src.js +87 -0
  567. data/public/javascripts/tiny_mce/plugins/pagebreak/css/content.css +1 -0
  568. data/public/javascripts/tiny_mce/plugins/pagebreak/editor_plugin.js +1 -0
  569. data/public/javascripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js +74 -0
  570. data/public/javascripts/tiny_mce/plugins/pagebreak/img/pagebreak.gif +0 -0
  571. data/public/javascripts/tiny_mce/plugins/pagebreak/img/trans.gif +0 -0
  572. data/public/javascripts/tiny_mce/plugins/paste/editor_plugin.js +1 -0
  573. data/public/javascripts/tiny_mce/plugins/paste/editor_plugin_src.js +512 -0
  574. data/public/javascripts/tiny_mce/plugins/paste/js/pastetext.js +36 -0
  575. data/public/javascripts/tiny_mce/plugins/paste/js/pasteword.js +51 -0
  576. data/public/javascripts/tiny_mce/plugins/paste/langs/ar_dlg.js +5 -0
  577. data/public/javascripts/tiny_mce/plugins/paste/langs/az_dlg.js +5 -0
  578. data/public/javascripts/tiny_mce/plugins/paste/langs/be_dlg.js +5 -0
  579. data/public/javascripts/tiny_mce/plugins/paste/langs/bg_dlg.js +5 -0
  580. data/public/javascripts/tiny_mce/plugins/paste/langs/bn_dlg.js +5 -0
  581. data/public/javascripts/tiny_mce/plugins/paste/langs/br_dlg.js +5 -0
  582. data/public/javascripts/tiny_mce/plugins/paste/langs/bs_dlg.js +5 -0
  583. data/public/javascripts/tiny_mce/plugins/paste/langs/ca_dlg.js +5 -0
  584. data/public/javascripts/tiny_mce/plugins/paste/langs/ch_dlg.js +5 -0
  585. data/public/javascripts/tiny_mce/plugins/paste/langs/cs_dlg.js +5 -0
  586. data/public/javascripts/tiny_mce/plugins/paste/langs/cy_dlg.js +5 -0
  587. data/public/javascripts/tiny_mce/plugins/paste/langs/da_dlg.js +5 -0
  588. data/public/javascripts/tiny_mce/plugins/paste/langs/de_dlg.js +5 -0
  589. data/public/javascripts/tiny_mce/plugins/paste/langs/dv_dlg.js +5 -0
  590. data/public/javascripts/tiny_mce/plugins/paste/langs/el_dlg.js +5 -0
  591. data/public/javascripts/tiny_mce/plugins/paste/langs/en_dlg.js +5 -0
  592. data/public/javascripts/tiny_mce/plugins/paste/langs/es_dlg.js +5 -0
  593. data/public/javascripts/tiny_mce/plugins/paste/langs/et_dlg.js +5 -0
  594. data/public/javascripts/tiny_mce/plugins/paste/langs/fa_dlg.js +5 -0
  595. data/public/javascripts/tiny_mce/plugins/paste/langs/fi_dlg.js +5 -0
  596. data/public/javascripts/tiny_mce/plugins/paste/langs/fr_dlg.js +5 -0
  597. data/public/javascripts/tiny_mce/plugins/paste/langs/gl_dlg.js +5 -0
  598. data/public/javascripts/tiny_mce/plugins/paste/langs/gu_dlg.js +5 -0
  599. data/public/javascripts/tiny_mce/plugins/paste/langs/he_dlg.js +5 -0
  600. data/public/javascripts/tiny_mce/plugins/paste/langs/hi_dlg.js +5 -0
  601. data/public/javascripts/tiny_mce/plugins/paste/langs/hr_dlg.js +5 -0
  602. data/public/javascripts/tiny_mce/plugins/paste/langs/hu_dlg.js +5 -0
  603. data/public/javascripts/tiny_mce/plugins/paste/langs/ia_dlg.js +5 -0
  604. data/public/javascripts/tiny_mce/plugins/paste/langs/id_dlg.js +5 -0
  605. data/public/javascripts/tiny_mce/plugins/paste/langs/ii_dlg.js +5 -0
  606. data/public/javascripts/tiny_mce/plugins/paste/langs/is_dlg.js +5 -0
  607. data/public/javascripts/tiny_mce/plugins/paste/langs/it_dlg.js +5 -0
  608. data/public/javascripts/tiny_mce/plugins/paste/langs/ja_dlg.js +5 -0
  609. data/public/javascripts/tiny_mce/plugins/paste/langs/ko_dlg.js +5 -0
  610. data/public/javascripts/tiny_mce/plugins/paste/langs/lt_dlg.js +5 -0
  611. data/public/javascripts/tiny_mce/plugins/paste/langs/lv_dlg.js +5 -0
  612. data/public/javascripts/tiny_mce/plugins/paste/langs/mk_dlg.js +5 -0
  613. data/public/javascripts/tiny_mce/plugins/paste/langs/ml_dlg.js +5 -0
  614. data/public/javascripts/tiny_mce/plugins/paste/langs/mn_dlg.js +5 -0
  615. data/public/javascripts/tiny_mce/plugins/paste/langs/ms_dlg.js +5 -0
  616. data/public/javascripts/tiny_mce/plugins/paste/langs/nb_dlg.js +5 -0
  617. data/public/javascripts/tiny_mce/plugins/paste/langs/nl_dlg.js +5 -0
  618. data/public/javascripts/tiny_mce/plugins/paste/langs/nn_dlg.js +5 -0
  619. data/public/javascripts/tiny_mce/plugins/paste/langs/no_dlg.js +5 -0
  620. data/public/javascripts/tiny_mce/plugins/paste/langs/pl_dlg.js +5 -0
  621. data/public/javascripts/tiny_mce/plugins/paste/langs/pt_dlg.js +5 -0
  622. data/public/javascripts/tiny_mce/plugins/paste/langs/ro_dlg.js +5 -0
  623. data/public/javascripts/tiny_mce/plugins/paste/langs/ru_dlg.js +5 -0
  624. data/public/javascripts/tiny_mce/plugins/paste/langs/sc_dlg.js +5 -0
  625. data/public/javascripts/tiny_mce/plugins/paste/langs/se_dlg.js +5 -0
  626. data/public/javascripts/tiny_mce/plugins/paste/langs/si_dlg.js +5 -0
  627. data/public/javascripts/tiny_mce/plugins/paste/langs/sk_dlg.js +5 -0
  628. data/public/javascripts/tiny_mce/plugins/paste/langs/sl_dlg.js +5 -0
  629. data/public/javascripts/tiny_mce/plugins/paste/langs/sq_dlg.js +5 -0
  630. data/public/javascripts/tiny_mce/plugins/paste/langs/sr_dlg.js +5 -0
  631. data/public/javascripts/tiny_mce/plugins/paste/langs/sv_dlg.js +5 -0
  632. data/public/javascripts/tiny_mce/plugins/paste/langs/ta_dlg.js +5 -0
  633. data/public/javascripts/tiny_mce/plugins/paste/langs/te_dlg.js +5 -0
  634. data/public/javascripts/tiny_mce/plugins/paste/langs/th_dlg.js +5 -0
  635. data/public/javascripts/tiny_mce/plugins/paste/langs/tr_dlg.js +5 -0
  636. data/public/javascripts/tiny_mce/plugins/paste/langs/tt_dlg.js +5 -0
  637. data/public/javascripts/tiny_mce/plugins/paste/langs/tw_dlg.js +5 -0
  638. data/public/javascripts/tiny_mce/plugins/paste/langs/uk_dlg.js +5 -0
  639. data/public/javascripts/tiny_mce/plugins/paste/langs/vi_dlg.js +5 -0
  640. data/public/javascripts/tiny_mce/plugins/paste/langs/zh_dlg.js +5 -0
  641. data/public/javascripts/tiny_mce/plugins/paste/pastetext.htm +33 -0
  642. data/public/javascripts/tiny_mce/plugins/paste/pasteword.htm +27 -0
  643. data/public/javascripts/tiny_mce/plugins/preview/editor_plugin.js +1 -0
  644. data/public/javascripts/tiny_mce/plugins/preview/editor_plugin_src.js +50 -0
  645. data/public/javascripts/tiny_mce/plugins/preview/example.html +28 -0
  646. data/public/javascripts/tiny_mce/plugins/preview/jscripts/embed.js +73 -0
  647. data/public/javascripts/tiny_mce/plugins/preview/preview.html +17 -0
  648. data/public/javascripts/tiny_mce/plugins/print/editor_plugin.js +1 -0
  649. data/public/javascripts/tiny_mce/plugins/print/editor_plugin_src.js +31 -0
  650. data/public/javascripts/tiny_mce/plugins/safari/blank.htm +1 -0
  651. data/public/javascripts/tiny_mce/plugins/safari/editor_plugin.js +1 -0
  652. data/public/javascripts/tiny_mce/plugins/safari/editor_plugin_src.js +438 -0
  653. data/public/javascripts/tiny_mce/plugins/save/editor_plugin.js +1 -0
  654. data/public/javascripts/tiny_mce/plugins/save/editor_plugin_src.js +98 -0
  655. data/public/javascripts/tiny_mce/plugins/searchreplace/css/searchreplace.css +6 -0
  656. data/public/javascripts/tiny_mce/plugins/searchreplace/editor_plugin.js +1 -0
  657. data/public/javascripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js +54 -0
  658. data/public/javascripts/tiny_mce/plugins/searchreplace/js/searchreplace.js +126 -0
  659. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/ar_dlg.js +16 -0
  660. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/az_dlg.js +16 -0
  661. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/be_dlg.js +16 -0
  662. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/bg_dlg.js +16 -0
  663. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/bn_dlg.js +16 -0
  664. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/br_dlg.js +16 -0
  665. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/bs_dlg.js +16 -0
  666. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/ca_dlg.js +16 -0
  667. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/ch_dlg.js +16 -0
  668. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/cs_dlg.js +16 -0
  669. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/cy_dlg.js +16 -0
  670. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/da_dlg.js +16 -0
  671. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/de_dlg.js +16 -0
  672. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/dv_dlg.js +16 -0
  673. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/el_dlg.js +16 -0
  674. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js +16 -0
  675. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/es_dlg.js +16 -0
  676. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/et_dlg.js +16 -0
  677. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/fa_dlg.js +16 -0
  678. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/fi_dlg.js +16 -0
  679. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/fr_dlg.js +16 -0
  680. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/gl_dlg.js +16 -0
  681. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/gu_dlg.js +16 -0
  682. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/he_dlg.js +16 -0
  683. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/hi_dlg.js +16 -0
  684. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/hr_dlg.js +16 -0
  685. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/hu_dlg.js +16 -0
  686. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/ia_dlg.js +16 -0
  687. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/id_dlg.js +16 -0
  688. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/ii_dlg.js +16 -0
  689. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/is_dlg.js +16 -0
  690. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/it_dlg.js +16 -0
  691. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/ja_dlg.js +16 -0
  692. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/ko_dlg.js +16 -0
  693. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/lt_dlg.js +16 -0
  694. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/lv_dlg.js +16 -0
  695. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/mk_dlg.js +16 -0
  696. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/ml_dlg.js +16 -0
  697. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/mn_dlg.js +16 -0
  698. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/ms_dlg.js +16 -0
  699. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/nb_dlg.js +16 -0
  700. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/nl_dlg.js +16 -0
  701. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/nn_dlg.js +16 -0
  702. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/no_dlg.js +16 -0
  703. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/pl_dlg.js +16 -0
  704. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/pt_dlg.js +16 -0
  705. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/ro_dlg.js +16 -0
  706. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/ru_dlg.js +16 -0
  707. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/sc_dlg.js +16 -0
  708. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/se_dlg.js +16 -0
  709. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/si_dlg.js +16 -0
  710. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/sk_dlg.js +16 -0
  711. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/sl_dlg.js +16 -0
  712. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/sq_dlg.js +16 -0
  713. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/sr_dlg.js +16 -0
  714. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/sv_dlg.js +16 -0
  715. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/ta_dlg.js +16 -0
  716. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/te_dlg.js +16 -0
  717. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/th_dlg.js +16 -0
  718. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/tr_dlg.js +16 -0
  719. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/tt_dlg.js +16 -0
  720. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/tw_dlg.js +16 -0
  721. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/uk_dlg.js +16 -0
  722. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/vi_dlg.js +16 -0
  723. data/public/javascripts/tiny_mce/plugins/searchreplace/langs/zh_dlg.js +16 -0
  724. data/public/javascripts/tiny_mce/plugins/searchreplace/searchreplace.htm +104 -0
  725. data/public/javascripts/tiny_mce/plugins/spellchecker/css/content.css +1 -0
  726. data/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -0
  727. data/public/javascripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js +338 -0
  728. data/public/javascripts/tiny_mce/plugins/spellchecker/img/wline.gif +0 -0
  729. data/public/javascripts/tiny_mce/plugins/style/css/props.css +13 -0
  730. data/public/javascripts/tiny_mce/plugins/style/editor_plugin.js +1 -0
  731. data/public/javascripts/tiny_mce/plugins/style/editor_plugin_src.js +52 -0
  732. data/public/javascripts/tiny_mce/plugins/style/js/props.js +641 -0
  733. data/public/javascripts/tiny_mce/plugins/style/langs/ar_dlg.js +63 -0
  734. data/public/javascripts/tiny_mce/plugins/style/langs/az_dlg.js +63 -0
  735. data/public/javascripts/tiny_mce/plugins/style/langs/be_dlg.js +63 -0
  736. data/public/javascripts/tiny_mce/plugins/style/langs/bg_dlg.js +63 -0
  737. data/public/javascripts/tiny_mce/plugins/style/langs/bn_dlg.js +63 -0
  738. data/public/javascripts/tiny_mce/plugins/style/langs/br_dlg.js +63 -0
  739. data/public/javascripts/tiny_mce/plugins/style/langs/bs_dlg.js +63 -0
  740. data/public/javascripts/tiny_mce/plugins/style/langs/ca_dlg.js +63 -0
  741. data/public/javascripts/tiny_mce/plugins/style/langs/ch_dlg.js +63 -0
  742. data/public/javascripts/tiny_mce/plugins/style/langs/cs_dlg.js +63 -0
  743. data/public/javascripts/tiny_mce/plugins/style/langs/cy_dlg.js +63 -0
  744. data/public/javascripts/tiny_mce/plugins/style/langs/da_dlg.js +63 -0
  745. data/public/javascripts/tiny_mce/plugins/style/langs/de_dlg.js +63 -0
  746. data/public/javascripts/tiny_mce/plugins/style/langs/dv_dlg.js +63 -0
  747. data/public/javascripts/tiny_mce/plugins/style/langs/el_dlg.js +63 -0
  748. data/public/javascripts/tiny_mce/plugins/style/langs/en_dlg.js +63 -0
  749. data/public/javascripts/tiny_mce/plugins/style/langs/es_dlg.js +63 -0
  750. data/public/javascripts/tiny_mce/plugins/style/langs/et_dlg.js +63 -0
  751. data/public/javascripts/tiny_mce/plugins/style/langs/fa_dlg.js +63 -0
  752. data/public/javascripts/tiny_mce/plugins/style/langs/fi_dlg.js +63 -0
  753. data/public/javascripts/tiny_mce/plugins/style/langs/fr_dlg.js +63 -0
  754. data/public/javascripts/tiny_mce/plugins/style/langs/gl_dlg.js +63 -0
  755. data/public/javascripts/tiny_mce/plugins/style/langs/gu_dlg.js +63 -0
  756. data/public/javascripts/tiny_mce/plugins/style/langs/he_dlg.js +63 -0
  757. data/public/javascripts/tiny_mce/plugins/style/langs/hi_dlg.js +63 -0
  758. data/public/javascripts/tiny_mce/plugins/style/langs/hr_dlg.js +63 -0
  759. data/public/javascripts/tiny_mce/plugins/style/langs/hu_dlg.js +63 -0
  760. data/public/javascripts/tiny_mce/plugins/style/langs/ia_dlg.js +63 -0
  761. data/public/javascripts/tiny_mce/plugins/style/langs/id_dlg.js +63 -0
  762. data/public/javascripts/tiny_mce/plugins/style/langs/ii_dlg.js +63 -0
  763. data/public/javascripts/tiny_mce/plugins/style/langs/is_dlg.js +63 -0
  764. data/public/javascripts/tiny_mce/plugins/style/langs/it_dlg.js +63 -0
  765. data/public/javascripts/tiny_mce/plugins/style/langs/ja_dlg.js +63 -0
  766. data/public/javascripts/tiny_mce/plugins/style/langs/ko_dlg.js +63 -0
  767. data/public/javascripts/tiny_mce/plugins/style/langs/lt_dlg.js +63 -0
  768. data/public/javascripts/tiny_mce/plugins/style/langs/lv_dlg.js +63 -0
  769. data/public/javascripts/tiny_mce/plugins/style/langs/mk_dlg.js +63 -0
  770. data/public/javascripts/tiny_mce/plugins/style/langs/ml_dlg.js +63 -0
  771. data/public/javascripts/tiny_mce/plugins/style/langs/mn_dlg.js +63 -0
  772. data/public/javascripts/tiny_mce/plugins/style/langs/ms_dlg.js +63 -0
  773. data/public/javascripts/tiny_mce/plugins/style/langs/nb_dlg.js +63 -0
  774. data/public/javascripts/tiny_mce/plugins/style/langs/nl_dlg.js +63 -0
  775. data/public/javascripts/tiny_mce/plugins/style/langs/nn_dlg.js +63 -0
  776. data/public/javascripts/tiny_mce/plugins/style/langs/no_dlg.js +63 -0
  777. data/public/javascripts/tiny_mce/plugins/style/langs/pl_dlg.js +63 -0
  778. data/public/javascripts/tiny_mce/plugins/style/langs/pt_dlg.js +63 -0
  779. data/public/javascripts/tiny_mce/plugins/style/langs/ro_dlg.js +63 -0
  780. data/public/javascripts/tiny_mce/plugins/style/langs/ru_dlg.js +63 -0
  781. data/public/javascripts/tiny_mce/plugins/style/langs/sc_dlg.js +63 -0
  782. data/public/javascripts/tiny_mce/plugins/style/langs/se_dlg.js +63 -0
  783. data/public/javascripts/tiny_mce/plugins/style/langs/si_dlg.js +63 -0
  784. data/public/javascripts/tiny_mce/plugins/style/langs/sk_dlg.js +63 -0
  785. data/public/javascripts/tiny_mce/plugins/style/langs/sl_dlg.js +63 -0
  786. data/public/javascripts/tiny_mce/plugins/style/langs/sq_dlg.js +63 -0
  787. data/public/javascripts/tiny_mce/plugins/style/langs/sr_dlg.js +63 -0
  788. data/public/javascripts/tiny_mce/plugins/style/langs/sv_dlg.js +63 -0
  789. data/public/javascripts/tiny_mce/plugins/style/langs/ta_dlg.js +63 -0
  790. data/public/javascripts/tiny_mce/plugins/style/langs/te_dlg.js +63 -0
  791. data/public/javascripts/tiny_mce/plugins/style/langs/th_dlg.js +63 -0
  792. data/public/javascripts/tiny_mce/plugins/style/langs/tr_dlg.js +63 -0
  793. data/public/javascripts/tiny_mce/plugins/style/langs/tt_dlg.js +63 -0
  794. data/public/javascripts/tiny_mce/plugins/style/langs/tw_dlg.js +63 -0
  795. data/public/javascripts/tiny_mce/plugins/style/langs/uk_dlg.js +63 -0
  796. data/public/javascripts/tiny_mce/plugins/style/langs/vi_dlg.js +63 -0
  797. data/public/javascripts/tiny_mce/plugins/style/langs/zh_dlg.js +63 -0
  798. data/public/javascripts/tiny_mce/plugins/style/props.htm +730 -0
  799. data/public/javascripts/tiny_mce/plugins/tabfocus/editor_plugin.js +1 -0
  800. data/public/javascripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js +109 -0
  801. data/public/javascripts/tiny_mce/plugins/table/cell.htm +183 -0
  802. data/public/javascripts/tiny_mce/plugins/table/css/cell.css +17 -0
  803. data/public/javascripts/tiny_mce/plugins/table/css/row.css +25 -0
  804. data/public/javascripts/tiny_mce/plugins/table/css/table.css +13 -0
  805. data/public/javascripts/tiny_mce/plugins/table/editor_plugin.js +1 -0
  806. data/public/javascripts/tiny_mce/plugins/table/editor_plugin_src.js +1160 -0
  807. data/public/javascripts/tiny_mce/plugins/table/js/cell.js +269 -0
  808. data/public/javascripts/tiny_mce/plugins/table/js/merge_cells.js +29 -0
  809. data/public/javascripts/tiny_mce/plugins/table/js/row.js +212 -0
  810. data/public/javascripts/tiny_mce/plugins/table/js/table.js +440 -0
  811. data/public/javascripts/tiny_mce/plugins/table/langs/ar_dlg.js +74 -0
  812. data/public/javascripts/tiny_mce/plugins/table/langs/az_dlg.js +74 -0
  813. data/public/javascripts/tiny_mce/plugins/table/langs/be_dlg.js +74 -0
  814. data/public/javascripts/tiny_mce/plugins/table/langs/bg_dlg.js +74 -0
  815. data/public/javascripts/tiny_mce/plugins/table/langs/bn_dlg.js +74 -0
  816. data/public/javascripts/tiny_mce/plugins/table/langs/br_dlg.js +74 -0
  817. data/public/javascripts/tiny_mce/plugins/table/langs/bs_dlg.js +74 -0
  818. data/public/javascripts/tiny_mce/plugins/table/langs/ca_dlg.js +74 -0
  819. data/public/javascripts/tiny_mce/plugins/table/langs/ch_dlg.js +74 -0
  820. data/public/javascripts/tiny_mce/plugins/table/langs/cs_dlg.js +74 -0
  821. data/public/javascripts/tiny_mce/plugins/table/langs/cy_dlg.js +74 -0
  822. data/public/javascripts/tiny_mce/plugins/table/langs/da_dlg.js +74 -0
  823. data/public/javascripts/tiny_mce/plugins/table/langs/de_dlg.js +74 -0
  824. data/public/javascripts/tiny_mce/plugins/table/langs/dv_dlg.js +74 -0
  825. data/public/javascripts/tiny_mce/plugins/table/langs/el_dlg.js +74 -0
  826. data/public/javascripts/tiny_mce/plugins/table/langs/en_dlg.js +74 -0
  827. data/public/javascripts/tiny_mce/plugins/table/langs/es_dlg.js +74 -0
  828. data/public/javascripts/tiny_mce/plugins/table/langs/et_dlg.js +74 -0
  829. data/public/javascripts/tiny_mce/plugins/table/langs/fa_dlg.js +74 -0
  830. data/public/javascripts/tiny_mce/plugins/table/langs/fi_dlg.js +74 -0
  831. data/public/javascripts/tiny_mce/plugins/table/langs/fr_dlg.js +74 -0
  832. data/public/javascripts/tiny_mce/plugins/table/langs/gl_dlg.js +74 -0
  833. data/public/javascripts/tiny_mce/plugins/table/langs/gu_dlg.js +74 -0
  834. data/public/javascripts/tiny_mce/plugins/table/langs/he_dlg.js +74 -0
  835. data/public/javascripts/tiny_mce/plugins/table/langs/hi_dlg.js +74 -0
  836. data/public/javascripts/tiny_mce/plugins/table/langs/hr_dlg.js +74 -0
  837. data/public/javascripts/tiny_mce/plugins/table/langs/hu_dlg.js +74 -0
  838. data/public/javascripts/tiny_mce/plugins/table/langs/ia_dlg.js +74 -0
  839. data/public/javascripts/tiny_mce/plugins/table/langs/id_dlg.js +74 -0
  840. data/public/javascripts/tiny_mce/plugins/table/langs/ii_dlg.js +74 -0
  841. data/public/javascripts/tiny_mce/plugins/table/langs/is_dlg.js +74 -0
  842. data/public/javascripts/tiny_mce/plugins/table/langs/it_dlg.js +74 -0
  843. data/public/javascripts/tiny_mce/plugins/table/langs/ja_dlg.js +74 -0
  844. data/public/javascripts/tiny_mce/plugins/table/langs/ko_dlg.js +74 -0
  845. data/public/javascripts/tiny_mce/plugins/table/langs/lt_dlg.js +74 -0
  846. data/public/javascripts/tiny_mce/plugins/table/langs/lv_dlg.js +74 -0
  847. data/public/javascripts/tiny_mce/plugins/table/langs/mk_dlg.js +74 -0
  848. data/public/javascripts/tiny_mce/plugins/table/langs/ml_dlg.js +74 -0
  849. data/public/javascripts/tiny_mce/plugins/table/langs/mn_dlg.js +74 -0
  850. data/public/javascripts/tiny_mce/plugins/table/langs/ms_dlg.js +74 -0
  851. data/public/javascripts/tiny_mce/plugins/table/langs/nb_dlg.js +74 -0
  852. data/public/javascripts/tiny_mce/plugins/table/langs/nl_dlg.js +74 -0
  853. data/public/javascripts/tiny_mce/plugins/table/langs/nn_dlg.js +74 -0
  854. data/public/javascripts/tiny_mce/plugins/table/langs/no_dlg.js +74 -0
  855. data/public/javascripts/tiny_mce/plugins/table/langs/pl_dlg.js +74 -0
  856. data/public/javascripts/tiny_mce/plugins/table/langs/pt_dlg.js +74 -0
  857. data/public/javascripts/tiny_mce/plugins/table/langs/ro_dlg.js +74 -0
  858. data/public/javascripts/tiny_mce/plugins/table/langs/ru_dlg.js +74 -0
  859. data/public/javascripts/tiny_mce/plugins/table/langs/sc_dlg.js +74 -0
  860. data/public/javascripts/tiny_mce/plugins/table/langs/se_dlg.js +73 -0
  861. data/public/javascripts/tiny_mce/plugins/table/langs/si_dlg.js +74 -0
  862. data/public/javascripts/tiny_mce/plugins/table/langs/sk_dlg.js +74 -0
  863. data/public/javascripts/tiny_mce/plugins/table/langs/sl_dlg.js +74 -0
  864. data/public/javascripts/tiny_mce/plugins/table/langs/sq_dlg.js +74 -0
  865. data/public/javascripts/tiny_mce/plugins/table/langs/sr_dlg.js +74 -0
  866. data/public/javascripts/tiny_mce/plugins/table/langs/sv_dlg.js +73 -0
  867. data/public/javascripts/tiny_mce/plugins/table/langs/ta_dlg.js +74 -0
  868. data/public/javascripts/tiny_mce/plugins/table/langs/te_dlg.js +74 -0
  869. data/public/javascripts/tiny_mce/plugins/table/langs/th_dlg.js +74 -0
  870. data/public/javascripts/tiny_mce/plugins/table/langs/tr_dlg.js +74 -0
  871. data/public/javascripts/tiny_mce/plugins/table/langs/tt_dlg.js +74 -0
  872. data/public/javascripts/tiny_mce/plugins/table/langs/tw_dlg.js +74 -0
  873. data/public/javascripts/tiny_mce/plugins/table/langs/uk_dlg.js +74 -0
  874. data/public/javascripts/tiny_mce/plugins/table/langs/vi_dlg.js +74 -0
  875. data/public/javascripts/tiny_mce/plugins/table/langs/zh_dlg.js +74 -0
  876. data/public/javascripts/tiny_mce/plugins/table/merge_cells.htm +37 -0
  877. data/public/javascripts/tiny_mce/plugins/table/row.htm +160 -0
  878. data/public/javascripts/tiny_mce/plugins/table/table.htm +192 -0
  879. data/public/javascripts/tiny_mce/plugins/template/blank.htm +12 -0
  880. data/public/javascripts/tiny_mce/plugins/template/css/template.css +23 -0
  881. data/public/javascripts/tiny_mce/plugins/template/editor_plugin.js +1 -0
  882. data/public/javascripts/tiny_mce/plugins/template/editor_plugin_src.js +156 -0
  883. data/public/javascripts/tiny_mce/plugins/template/js/template.js +106 -0
  884. data/public/javascripts/tiny_mce/plugins/template/langs/ar_dlg.js +15 -0
  885. data/public/javascripts/tiny_mce/plugins/template/langs/az_dlg.js +15 -0
  886. data/public/javascripts/tiny_mce/plugins/template/langs/be_dlg.js +15 -0
  887. data/public/javascripts/tiny_mce/plugins/template/langs/bg_dlg.js +15 -0
  888. data/public/javascripts/tiny_mce/plugins/template/langs/bn_dlg.js +15 -0
  889. data/public/javascripts/tiny_mce/plugins/template/langs/br_dlg.js +15 -0
  890. data/public/javascripts/tiny_mce/plugins/template/langs/bs_dlg.js +15 -0
  891. data/public/javascripts/tiny_mce/plugins/template/langs/ca_dlg.js +15 -0
  892. data/public/javascripts/tiny_mce/plugins/template/langs/ch_dlg.js +15 -0
  893. data/public/javascripts/tiny_mce/plugins/template/langs/cs_dlg.js +15 -0
  894. data/public/javascripts/tiny_mce/plugins/template/langs/cy_dlg.js +15 -0
  895. data/public/javascripts/tiny_mce/plugins/template/langs/da_dlg.js +15 -0
  896. data/public/javascripts/tiny_mce/plugins/template/langs/de_dlg.js +15 -0
  897. data/public/javascripts/tiny_mce/plugins/template/langs/dv_dlg.js +15 -0
  898. data/public/javascripts/tiny_mce/plugins/template/langs/el_dlg.js +15 -0
  899. data/public/javascripts/tiny_mce/plugins/template/langs/en_dlg.js +15 -0
  900. data/public/javascripts/tiny_mce/plugins/template/langs/es_dlg.js +15 -0
  901. data/public/javascripts/tiny_mce/plugins/template/langs/et_dlg.js +15 -0
  902. data/public/javascripts/tiny_mce/plugins/template/langs/fa_dlg.js +15 -0
  903. data/public/javascripts/tiny_mce/plugins/template/langs/fi_dlg.js +15 -0
  904. data/public/javascripts/tiny_mce/plugins/template/langs/fr_dlg.js +15 -0
  905. data/public/javascripts/tiny_mce/plugins/template/langs/gl_dlg.js +15 -0
  906. data/public/javascripts/tiny_mce/plugins/template/langs/gu_dlg.js +15 -0
  907. data/public/javascripts/tiny_mce/plugins/template/langs/he_dlg.js +15 -0
  908. data/public/javascripts/tiny_mce/plugins/template/langs/hi_dlg.js +15 -0
  909. data/public/javascripts/tiny_mce/plugins/template/langs/hr_dlg.js +15 -0
  910. data/public/javascripts/tiny_mce/plugins/template/langs/hu_dlg.js +15 -0
  911. data/public/javascripts/tiny_mce/plugins/template/langs/ia_dlg.js +15 -0
  912. data/public/javascripts/tiny_mce/plugins/template/langs/id_dlg.js +15 -0
  913. data/public/javascripts/tiny_mce/plugins/template/langs/ii_dlg.js +15 -0
  914. data/public/javascripts/tiny_mce/plugins/template/langs/is_dlg.js +15 -0
  915. data/public/javascripts/tiny_mce/plugins/template/langs/it_dlg.js +15 -0
  916. data/public/javascripts/tiny_mce/plugins/template/langs/ja_dlg.js +15 -0
  917. data/public/javascripts/tiny_mce/plugins/template/langs/ko_dlg.js +15 -0
  918. data/public/javascripts/tiny_mce/plugins/template/langs/lt_dlg.js +15 -0
  919. data/public/javascripts/tiny_mce/plugins/template/langs/lv_dlg.js +15 -0
  920. data/public/javascripts/tiny_mce/plugins/template/langs/mk_dlg.js +15 -0
  921. data/public/javascripts/tiny_mce/plugins/template/langs/ml_dlg.js +15 -0
  922. data/public/javascripts/tiny_mce/plugins/template/langs/mn_dlg.js +15 -0
  923. data/public/javascripts/tiny_mce/plugins/template/langs/ms_dlg.js +15 -0
  924. data/public/javascripts/tiny_mce/plugins/template/langs/nb_dlg.js +15 -0
  925. data/public/javascripts/tiny_mce/plugins/template/langs/nl_dlg.js +15 -0
  926. data/public/javascripts/tiny_mce/plugins/template/langs/nn_dlg.js +15 -0
  927. data/public/javascripts/tiny_mce/plugins/template/langs/no_dlg.js +15 -0
  928. data/public/javascripts/tiny_mce/plugins/template/langs/pl_dlg.js +15 -0
  929. data/public/javascripts/tiny_mce/plugins/template/langs/pt_dlg.js +15 -0
  930. data/public/javascripts/tiny_mce/plugins/template/langs/ro_dlg.js +15 -0
  931. data/public/javascripts/tiny_mce/plugins/template/langs/ru_dlg.js +15 -0
  932. data/public/javascripts/tiny_mce/plugins/template/langs/sc_dlg.js +15 -0
  933. data/public/javascripts/tiny_mce/plugins/template/langs/se_dlg.js +15 -0
  934. data/public/javascripts/tiny_mce/plugins/template/langs/si_dlg.js +15 -0
  935. data/public/javascripts/tiny_mce/plugins/template/langs/sk_dlg.js +15 -0
  936. data/public/javascripts/tiny_mce/plugins/template/langs/sl_dlg.js +15 -0
  937. data/public/javascripts/tiny_mce/plugins/template/langs/sq_dlg.js +15 -0
  938. data/public/javascripts/tiny_mce/plugins/template/langs/sr_dlg.js +15 -0
  939. data/public/javascripts/tiny_mce/plugins/template/langs/sv_dlg.js +15 -0
  940. data/public/javascripts/tiny_mce/plugins/template/langs/ta_dlg.js +15 -0
  941. data/public/javascripts/tiny_mce/plugins/template/langs/te_dlg.js +15 -0
  942. data/public/javascripts/tiny_mce/plugins/template/langs/th_dlg.js +15 -0
  943. data/public/javascripts/tiny_mce/plugins/template/langs/tr_dlg.js +15 -0
  944. data/public/javascripts/tiny_mce/plugins/template/langs/tt_dlg.js +15 -0
  945. data/public/javascripts/tiny_mce/plugins/template/langs/tw_dlg.js +15 -0
  946. data/public/javascripts/tiny_mce/plugins/template/langs/uk_dlg.js +15 -0
  947. data/public/javascripts/tiny_mce/plugins/template/langs/vi_dlg.js +15 -0
  948. data/public/javascripts/tiny_mce/plugins/template/langs/zh_dlg.js +15 -0
  949. data/public/javascripts/tiny_mce/plugins/template/template.htm +38 -0
  950. data/public/javascripts/tiny_mce/plugins/visualchars/editor_plugin.js +1 -0
  951. data/public/javascripts/tiny_mce/plugins/visualchars/editor_plugin_src.js +73 -0
  952. data/public/javascripts/tiny_mce/plugins/wordcount/editor_plugin.js +1 -0
  953. data/public/javascripts/tiny_mce/plugins/wordcount/editor_plugin_src.js +95 -0
  954. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/abbr.htm +148 -0
  955. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/acronym.htm +148 -0
  956. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/attributes.htm +153 -0
  957. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/cite.htm +148 -0
  958. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css +11 -0
  959. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/css/popup.css +9 -0
  960. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/del.htm +169 -0
  961. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin.js +1 -0
  962. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +136 -0
  963. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/ins.htm +169 -0
  964. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js +25 -0
  965. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js +25 -0
  966. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js +123 -0
  967. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/cite.js +25 -0
  968. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/del.js +60 -0
  969. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js +231 -0
  970. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/js/ins.js +59 -0
  971. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/ar_dlg.js +32 -0
  972. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/az_dlg.js +32 -0
  973. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/be_dlg.js +32 -0
  974. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/bg_dlg.js +32 -0
  975. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/bn_dlg.js +32 -0
  976. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/br_dlg.js +32 -0
  977. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/bs_dlg.js +32 -0
  978. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/ca_dlg.js +32 -0
  979. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/ch_dlg.js +32 -0
  980. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/cs_dlg.js +32 -0
  981. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/cy_dlg.js +32 -0
  982. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/da_dlg.js +32 -0
  983. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/de_dlg.js +32 -0
  984. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/dv_dlg.js +32 -0
  985. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/el_dlg.js +32 -0
  986. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/en_dlg.js +32 -0
  987. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/es_dlg.js +32 -0
  988. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/et_dlg.js +32 -0
  989. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/fa_dlg.js +32 -0
  990. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/fi_dlg.js +32 -0
  991. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/fr_dlg.js +32 -0
  992. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/gl_dlg.js +32 -0
  993. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/gu_dlg.js +32 -0
  994. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/he_dlg.js +32 -0
  995. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/hi_dlg.js +32 -0
  996. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/hr_dlg.js +32 -0
  997. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/hu_dlg.js +32 -0
  998. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/ia_dlg.js +32 -0
  999. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/id_dlg.js +32 -0
  1000. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/ii_dlg.js +32 -0
  1001. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/is_dlg.js +32 -0
  1002. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/it_dlg.js +32 -0
  1003. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/ja_dlg.js +32 -0
  1004. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/ko_dlg.js +32 -0
  1005. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/lt_dlg.js +32 -0
  1006. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/lv_dlg.js +32 -0
  1007. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/mk_dlg.js +32 -0
  1008. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/ml_dlg.js +32 -0
  1009. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/mn_dlg.js +32 -0
  1010. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/ms_dlg.js +32 -0
  1011. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/nb_dlg.js +32 -0
  1012. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/nl_dlg.js +32 -0
  1013. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/nn_dlg.js +32 -0
  1014. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/no_dlg.js +32 -0
  1015. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/pl_dlg.js +32 -0
  1016. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/pt_dlg.js +32 -0
  1017. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/ro_dlg.js +32 -0
  1018. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/ru_dlg.js +32 -0
  1019. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/sc_dlg.js +32 -0
  1020. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/se_dlg.js +32 -0
  1021. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/si_dlg.js +32 -0
  1022. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/sk_dlg.js +32 -0
  1023. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/sl_dlg.js +32 -0
  1024. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/sq_dlg.js +32 -0
  1025. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/sr_dlg.js +32 -0
  1026. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/sv_dlg.js +32 -0
  1027. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/ta_dlg.js +32 -0
  1028. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/te_dlg.js +32 -0
  1029. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/th_dlg.js +32 -0
  1030. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/tr_dlg.js +32 -0
  1031. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/tt_dlg.js +32 -0
  1032. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/tw_dlg.js +32 -0
  1033. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/uk_dlg.js +32 -0
  1034. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/vi_dlg.js +32 -0
  1035. data/public/javascripts/tiny_mce/plugins/xhtmlxtras/langs/zh_dlg.js +32 -0
  1036. data/public/javascripts/tiny_mce/themes/advanced/about.htm +56 -0
  1037. data/public/javascripts/tiny_mce/themes/advanced/anchor.htm +31 -0
  1038. data/public/javascripts/tiny_mce/themes/advanced/charmap.htm +53 -0
  1039. data/public/javascripts/tiny_mce/themes/advanced/color_picker.htm +75 -0
  1040. data/public/javascripts/tiny_mce/themes/advanced/editor_template.js +1 -0
  1041. data/public/javascripts/tiny_mce/themes/advanced/editor_template_src.js +1153 -0
  1042. data/public/javascripts/tiny_mce/themes/advanced/image.htm +85 -0
  1043. data/public/javascripts/tiny_mce/themes/advanced/img/colorpicker.jpg +0 -0
  1044. data/public/javascripts/tiny_mce/themes/advanced/img/icons.gif +0 -0
  1045. data/public/javascripts/tiny_mce/themes/advanced/js/about.js +72 -0
  1046. data/public/javascripts/tiny_mce/themes/advanced/js/anchor.js +37 -0
  1047. data/public/javascripts/tiny_mce/themes/advanced/js/charmap.js +325 -0
  1048. data/public/javascripts/tiny_mce/themes/advanced/js/color_picker.js +253 -0
  1049. data/public/javascripts/tiny_mce/themes/advanced/js/image.js +245 -0
  1050. data/public/javascripts/tiny_mce/themes/advanced/js/link.js +156 -0
  1051. data/public/javascripts/tiny_mce/themes/advanced/js/source_editor.js +62 -0
  1052. data/public/javascripts/tiny_mce/themes/advanced/langs/ar.js +64 -0
  1053. data/public/javascripts/tiny_mce/themes/advanced/langs/ar_dlg.js +51 -0
  1054. data/public/javascripts/tiny_mce/themes/advanced/langs/az.js +63 -0
  1055. data/public/javascripts/tiny_mce/themes/advanced/langs/az_dlg.js +51 -0
  1056. data/public/javascripts/tiny_mce/themes/advanced/langs/be.js +62 -0
  1057. data/public/javascripts/tiny_mce/themes/advanced/langs/be_dlg.js +51 -0
  1058. data/public/javascripts/tiny_mce/themes/advanced/langs/bg.js +62 -0
  1059. data/public/javascripts/tiny_mce/themes/advanced/langs/bg_dlg.js +51 -0
  1060. data/public/javascripts/tiny_mce/themes/advanced/langs/bn.js +62 -0
  1061. data/public/javascripts/tiny_mce/themes/advanced/langs/bn_dlg.js +51 -0
  1062. data/public/javascripts/tiny_mce/themes/advanced/langs/br.js +62 -0
  1063. data/public/javascripts/tiny_mce/themes/advanced/langs/br_dlg.js +51 -0
  1064. data/public/javascripts/tiny_mce/themes/advanced/langs/bs.js +62 -0
  1065. data/public/javascripts/tiny_mce/themes/advanced/langs/bs_dlg.js +51 -0
  1066. data/public/javascripts/tiny_mce/themes/advanced/langs/ca.js +62 -0
  1067. data/public/javascripts/tiny_mce/themes/advanced/langs/ca_dlg.js +51 -0
  1068. data/public/javascripts/tiny_mce/themes/advanced/langs/ch.js +62 -0
  1069. data/public/javascripts/tiny_mce/themes/advanced/langs/ch_dlg.js +51 -0
  1070. data/public/javascripts/tiny_mce/themes/advanced/langs/cs.js +62 -0
  1071. data/public/javascripts/tiny_mce/themes/advanced/langs/cs_dlg.js +51 -0
  1072. data/public/javascripts/tiny_mce/themes/advanced/langs/cy.js +62 -0
  1073. data/public/javascripts/tiny_mce/themes/advanced/langs/cy_dlg.js +51 -0
  1074. data/public/javascripts/tiny_mce/themes/advanced/langs/da.js +62 -0
  1075. data/public/javascripts/tiny_mce/themes/advanced/langs/da_dlg.js +51 -0
  1076. data/public/javascripts/tiny_mce/themes/advanced/langs/de.js +63 -0
  1077. data/public/javascripts/tiny_mce/themes/advanced/langs/de_dlg.js +51 -0
  1078. data/public/javascripts/tiny_mce/themes/advanced/langs/dv.js +62 -0
  1079. data/public/javascripts/tiny_mce/themes/advanced/langs/dv_dlg.js +51 -0
  1080. data/public/javascripts/tiny_mce/themes/advanced/langs/el.js +62 -0
  1081. data/public/javascripts/tiny_mce/themes/advanced/langs/el_dlg.js +51 -0
  1082. data/public/javascripts/tiny_mce/themes/advanced/langs/en.js +62 -0
  1083. data/public/javascripts/tiny_mce/themes/advanced/langs/en_dlg.js +51 -0
  1084. data/public/javascripts/tiny_mce/themes/advanced/langs/es.js +62 -0
  1085. data/public/javascripts/tiny_mce/themes/advanced/langs/es_dlg.js +51 -0
  1086. data/public/javascripts/tiny_mce/themes/advanced/langs/et.js +62 -0
  1087. data/public/javascripts/tiny_mce/themes/advanced/langs/et_dlg.js +51 -0
  1088. data/public/javascripts/tiny_mce/themes/advanced/langs/fa.js +62 -0
  1089. data/public/javascripts/tiny_mce/themes/advanced/langs/fa_dlg.js +51 -0
  1090. data/public/javascripts/tiny_mce/themes/advanced/langs/fi.js +62 -0
  1091. data/public/javascripts/tiny_mce/themes/advanced/langs/fi_dlg.js +51 -0
  1092. data/public/javascripts/tiny_mce/themes/advanced/langs/fr.js +65 -0
  1093. data/public/javascripts/tiny_mce/themes/advanced/langs/fr_dlg.js +51 -0
  1094. data/public/javascripts/tiny_mce/themes/advanced/langs/gl.js +62 -0
  1095. data/public/javascripts/tiny_mce/themes/advanced/langs/gl_dlg.js +51 -0
  1096. data/public/javascripts/tiny_mce/themes/advanced/langs/gu.js +62 -0
  1097. data/public/javascripts/tiny_mce/themes/advanced/langs/gu_dlg.js +51 -0
  1098. data/public/javascripts/tiny_mce/themes/advanced/langs/he.js +62 -0
  1099. data/public/javascripts/tiny_mce/themes/advanced/langs/he_dlg.js +51 -0
  1100. data/public/javascripts/tiny_mce/themes/advanced/langs/hi.js +62 -0
  1101. data/public/javascripts/tiny_mce/themes/advanced/langs/hi_dlg.js +51 -0
  1102. data/public/javascripts/tiny_mce/themes/advanced/langs/hr.js +62 -0
  1103. data/public/javascripts/tiny_mce/themes/advanced/langs/hr_dlg.js +51 -0
  1104. data/public/javascripts/tiny_mce/themes/advanced/langs/hu.js +62 -0
  1105. data/public/javascripts/tiny_mce/themes/advanced/langs/hu_dlg.js +51 -0
  1106. data/public/javascripts/tiny_mce/themes/advanced/langs/ia.js +62 -0
  1107. data/public/javascripts/tiny_mce/themes/advanced/langs/ia_dlg.js +51 -0
  1108. data/public/javascripts/tiny_mce/themes/advanced/langs/id.js +62 -0
  1109. data/public/javascripts/tiny_mce/themes/advanced/langs/id_dlg.js +51 -0
  1110. data/public/javascripts/tiny_mce/themes/advanced/langs/ii.js +62 -0
  1111. data/public/javascripts/tiny_mce/themes/advanced/langs/ii_dlg.js +51 -0
  1112. data/public/javascripts/tiny_mce/themes/advanced/langs/is.js +62 -0
  1113. data/public/javascripts/tiny_mce/themes/advanced/langs/is_dlg.js +51 -0
  1114. data/public/javascripts/tiny_mce/themes/advanced/langs/it.js +62 -0
  1115. data/public/javascripts/tiny_mce/themes/advanced/langs/it_dlg.js +51 -0
  1116. data/public/javascripts/tiny_mce/themes/advanced/langs/ja.js +62 -0
  1117. data/public/javascripts/tiny_mce/themes/advanced/langs/ja_dlg.js +51 -0
  1118. data/public/javascripts/tiny_mce/themes/advanced/langs/ko.js +62 -0
  1119. data/public/javascripts/tiny_mce/themes/advanced/langs/ko_dlg.js +51 -0
  1120. data/public/javascripts/tiny_mce/themes/advanced/langs/lt.js +63 -0
  1121. data/public/javascripts/tiny_mce/themes/advanced/langs/lt_dlg.js +51 -0
  1122. data/public/javascripts/tiny_mce/themes/advanced/langs/lv.js +62 -0
  1123. data/public/javascripts/tiny_mce/themes/advanced/langs/lv_dlg.js +51 -0
  1124. data/public/javascripts/tiny_mce/themes/advanced/langs/mk.js +62 -0
  1125. data/public/javascripts/tiny_mce/themes/advanced/langs/mk_dlg.js +51 -0
  1126. data/public/javascripts/tiny_mce/themes/advanced/langs/ml.js +62 -0
  1127. data/public/javascripts/tiny_mce/themes/advanced/langs/ml_dlg.js +51 -0
  1128. data/public/javascripts/tiny_mce/themes/advanced/langs/mn.js +62 -0
  1129. data/public/javascripts/tiny_mce/themes/advanced/langs/mn_dlg.js +51 -0
  1130. data/public/javascripts/tiny_mce/themes/advanced/langs/ms.js +62 -0
  1131. data/public/javascripts/tiny_mce/themes/advanced/langs/ms_dlg.js +51 -0
  1132. data/public/javascripts/tiny_mce/themes/advanced/langs/nb.js +62 -0
  1133. data/public/javascripts/tiny_mce/themes/advanced/langs/nb_dlg.js +51 -0
  1134. data/public/javascripts/tiny_mce/themes/advanced/langs/nl.js +62 -0
  1135. data/public/javascripts/tiny_mce/themes/advanced/langs/nl_dlg.js +51 -0
  1136. data/public/javascripts/tiny_mce/themes/advanced/langs/nn.js +62 -0
  1137. data/public/javascripts/tiny_mce/themes/advanced/langs/nn_dlg.js +51 -0
  1138. data/public/javascripts/tiny_mce/themes/advanced/langs/no.js +62 -0
  1139. data/public/javascripts/tiny_mce/themes/advanced/langs/no_dlg.js +51 -0
  1140. data/public/javascripts/tiny_mce/themes/advanced/langs/pl.js +62 -0
  1141. data/public/javascripts/tiny_mce/themes/advanced/langs/pl_dlg.js +51 -0
  1142. data/public/javascripts/tiny_mce/themes/advanced/langs/pt.js +62 -0
  1143. data/public/javascripts/tiny_mce/themes/advanced/langs/pt_dlg.js +51 -0
  1144. data/public/javascripts/tiny_mce/themes/advanced/langs/ro.js +62 -0
  1145. data/public/javascripts/tiny_mce/themes/advanced/langs/ro_dlg.js +51 -0
  1146. data/public/javascripts/tiny_mce/themes/advanced/langs/ru.js +62 -0
  1147. data/public/javascripts/tiny_mce/themes/advanced/langs/ru_dlg.js +51 -0
  1148. data/public/javascripts/tiny_mce/themes/advanced/langs/sc.js +64 -0
  1149. data/public/javascripts/tiny_mce/themes/advanced/langs/sc_dlg.js +51 -0
  1150. data/public/javascripts/tiny_mce/themes/advanced/langs/se.js +60 -0
  1151. data/public/javascripts/tiny_mce/themes/advanced/langs/se_dlg.js +51 -0
  1152. data/public/javascripts/tiny_mce/themes/advanced/langs/si.js +61 -0
  1153. data/public/javascripts/tiny_mce/themes/advanced/langs/si_dlg.js +51 -0
  1154. data/public/javascripts/tiny_mce/themes/advanced/langs/sk.js +62 -0
  1155. data/public/javascripts/tiny_mce/themes/advanced/langs/sk_dlg.js +51 -0
  1156. data/public/javascripts/tiny_mce/themes/advanced/langs/sl.js +62 -0
  1157. data/public/javascripts/tiny_mce/themes/advanced/langs/sl_dlg.js +51 -0
  1158. data/public/javascripts/tiny_mce/themes/advanced/langs/sq.js +62 -0
  1159. data/public/javascripts/tiny_mce/themes/advanced/langs/sq_dlg.js +51 -0
  1160. data/public/javascripts/tiny_mce/themes/advanced/langs/sr.js +62 -0
  1161. data/public/javascripts/tiny_mce/themes/advanced/langs/sr_dlg.js +51 -0
  1162. data/public/javascripts/tiny_mce/themes/advanced/langs/sv.js +60 -0
  1163. data/public/javascripts/tiny_mce/themes/advanced/langs/sv_dlg.js +51 -0
  1164. data/public/javascripts/tiny_mce/themes/advanced/langs/ta.js +62 -0
  1165. data/public/javascripts/tiny_mce/themes/advanced/langs/ta_dlg.js +51 -0
  1166. data/public/javascripts/tiny_mce/themes/advanced/langs/te.js +62 -0
  1167. data/public/javascripts/tiny_mce/themes/advanced/langs/te_dlg.js +51 -0
  1168. data/public/javascripts/tiny_mce/themes/advanced/langs/th.js +62 -0
  1169. data/public/javascripts/tiny_mce/themes/advanced/langs/th_dlg.js +51 -0
  1170. data/public/javascripts/tiny_mce/themes/advanced/langs/tr.js +62 -0
  1171. data/public/javascripts/tiny_mce/themes/advanced/langs/tr_dlg.js +51 -0
  1172. data/public/javascripts/tiny_mce/themes/advanced/langs/tt.js +62 -0
  1173. data/public/javascripts/tiny_mce/themes/advanced/langs/tt_dlg.js +51 -0
  1174. data/public/javascripts/tiny_mce/themes/advanced/langs/tw.js +64 -0
  1175. data/public/javascripts/tiny_mce/themes/advanced/langs/tw_dlg.js +51 -0
  1176. data/public/javascripts/tiny_mce/themes/advanced/langs/uk.js +62 -0
  1177. data/public/javascripts/tiny_mce/themes/advanced/langs/uk_dlg.js +51 -0
  1178. data/public/javascripts/tiny_mce/themes/advanced/langs/vi.js +62 -0
  1179. data/public/javascripts/tiny_mce/themes/advanced/langs/vi_dlg.js +51 -0
  1180. data/public/javascripts/tiny_mce/themes/advanced/langs/zh.js +64 -0
  1181. data/public/javascripts/tiny_mce/themes/advanced/langs/zh_dlg.js +51 -0
  1182. data/public/javascripts/tiny_mce/themes/advanced/link.htm +63 -0
  1183. data/public/javascripts/tiny_mce/themes/advanced/skins/default/content.css +32 -0
  1184. data/public/javascripts/tiny_mce/themes/advanced/skins/default/dialog.css +116 -0
  1185. data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/buttons.png +0 -0
  1186. data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/items.gif +0 -0
  1187. data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_arrow.gif +0 -0
  1188. data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/menu_check.gif +0 -0
  1189. data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/progress.gif +0 -0
  1190. data/public/javascripts/tiny_mce/themes/advanced/skins/default/img/tabs.gif +0 -0
  1191. data/public/javascripts/tiny_mce/themes/advanced/skins/default/ui.css +214 -0
  1192. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/content.css +32 -0
  1193. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +115 -0
  1194. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg.png +0 -0
  1195. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_black.png +0 -0
  1196. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/img/button_bg_silver.png +0 -0
  1197. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +215 -0
  1198. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +8 -0
  1199. data/public/javascripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -0
  1200. data/public/javascripts/tiny_mce/themes/advanced/source_editor.htm +31 -0
  1201. data/public/javascripts/tiny_mce/themes/simple/editor_template.js +1 -0
  1202. data/public/javascripts/tiny_mce/themes/simple/editor_template_src.js +85 -0
  1203. data/public/javascripts/tiny_mce/themes/simple/img/icons.gif +0 -0
  1204. data/public/javascripts/tiny_mce/themes/simple/langs/ar.js +11 -0
  1205. data/public/javascripts/tiny_mce/themes/simple/langs/az.js +11 -0
  1206. data/public/javascripts/tiny_mce/themes/simple/langs/be.js +11 -0
  1207. data/public/javascripts/tiny_mce/themes/simple/langs/bg.js +11 -0
  1208. data/public/javascripts/tiny_mce/themes/simple/langs/bn.js +11 -0
  1209. data/public/javascripts/tiny_mce/themes/simple/langs/br.js +11 -0
  1210. data/public/javascripts/tiny_mce/themes/simple/langs/bs.js +11 -0
  1211. data/public/javascripts/tiny_mce/themes/simple/langs/ca.js +11 -0
  1212. data/public/javascripts/tiny_mce/themes/simple/langs/ch.js +11 -0
  1213. data/public/javascripts/tiny_mce/themes/simple/langs/cs.js +11 -0
  1214. data/public/javascripts/tiny_mce/themes/simple/langs/cy.js +11 -0
  1215. data/public/javascripts/tiny_mce/themes/simple/langs/da.js +11 -0
  1216. data/public/javascripts/tiny_mce/themes/simple/langs/de.js +11 -0
  1217. data/public/javascripts/tiny_mce/themes/simple/langs/dv.js +11 -0
  1218. data/public/javascripts/tiny_mce/themes/simple/langs/el.js +11 -0
  1219. data/public/javascripts/tiny_mce/themes/simple/langs/en.js +11 -0
  1220. data/public/javascripts/tiny_mce/themes/simple/langs/es.js +11 -0
  1221. data/public/javascripts/tiny_mce/themes/simple/langs/et.js +11 -0
  1222. data/public/javascripts/tiny_mce/themes/simple/langs/fa.js +11 -0
  1223. data/public/javascripts/tiny_mce/themes/simple/langs/fi.js +11 -0
  1224. data/public/javascripts/tiny_mce/themes/simple/langs/fr.js +11 -0
  1225. data/public/javascripts/tiny_mce/themes/simple/langs/gl.js +11 -0
  1226. data/public/javascripts/tiny_mce/themes/simple/langs/gu.js +11 -0
  1227. data/public/javascripts/tiny_mce/themes/simple/langs/he.js +11 -0
  1228. data/public/javascripts/tiny_mce/themes/simple/langs/hi.js +11 -0
  1229. data/public/javascripts/tiny_mce/themes/simple/langs/hr.js +11 -0
  1230. data/public/javascripts/tiny_mce/themes/simple/langs/hu.js +11 -0
  1231. data/public/javascripts/tiny_mce/themes/simple/langs/ia.js +11 -0
  1232. data/public/javascripts/tiny_mce/themes/simple/langs/id.js +11 -0
  1233. data/public/javascripts/tiny_mce/themes/simple/langs/ii.js +11 -0
  1234. data/public/javascripts/tiny_mce/themes/simple/langs/is.js +11 -0
  1235. data/public/javascripts/tiny_mce/themes/simple/langs/it.js +11 -0
  1236. data/public/javascripts/tiny_mce/themes/simple/langs/ja.js +11 -0
  1237. data/public/javascripts/tiny_mce/themes/simple/langs/ko.js +11 -0
  1238. data/public/javascripts/tiny_mce/themes/simple/langs/lt.js +11 -0
  1239. data/public/javascripts/tiny_mce/themes/simple/langs/lv.js +11 -0
  1240. data/public/javascripts/tiny_mce/themes/simple/langs/mk.js +11 -0
  1241. data/public/javascripts/tiny_mce/themes/simple/langs/ml.js +11 -0
  1242. data/public/javascripts/tiny_mce/themes/simple/langs/mn.js +11 -0
  1243. data/public/javascripts/tiny_mce/themes/simple/langs/ms.js +11 -0
  1244. data/public/javascripts/tiny_mce/themes/simple/langs/nb.js +11 -0
  1245. data/public/javascripts/tiny_mce/themes/simple/langs/nl.js +11 -0
  1246. data/public/javascripts/tiny_mce/themes/simple/langs/nn.js +11 -0
  1247. data/public/javascripts/tiny_mce/themes/simple/langs/no.js +11 -0
  1248. data/public/javascripts/tiny_mce/themes/simple/langs/pl.js +11 -0
  1249. data/public/javascripts/tiny_mce/themes/simple/langs/pt.js +11 -0
  1250. data/public/javascripts/tiny_mce/themes/simple/langs/ro.js +11 -0
  1251. data/public/javascripts/tiny_mce/themes/simple/langs/ru.js +11 -0
  1252. data/public/javascripts/tiny_mce/themes/simple/langs/sc.js +11 -0
  1253. data/public/javascripts/tiny_mce/themes/simple/langs/se.js +11 -0
  1254. data/public/javascripts/tiny_mce/themes/simple/langs/si.js +11 -0
  1255. data/public/javascripts/tiny_mce/themes/simple/langs/sk.js +11 -0
  1256. data/public/javascripts/tiny_mce/themes/simple/langs/sl.js +11 -0
  1257. data/public/javascripts/tiny_mce/themes/simple/langs/sq.js +11 -0
  1258. data/public/javascripts/tiny_mce/themes/simple/langs/sr.js +11 -0
  1259. data/public/javascripts/tiny_mce/themes/simple/langs/sv.js +11 -0
  1260. data/public/javascripts/tiny_mce/themes/simple/langs/ta.js +11 -0
  1261. data/public/javascripts/tiny_mce/themes/simple/langs/te.js +11 -0
  1262. data/public/javascripts/tiny_mce/themes/simple/langs/th.js +11 -0
  1263. data/public/javascripts/tiny_mce/themes/simple/langs/tr.js +11 -0
  1264. data/public/javascripts/tiny_mce/themes/simple/langs/tt.js +11 -0
  1265. data/public/javascripts/tiny_mce/themes/simple/langs/tw.js +11 -0
  1266. data/public/javascripts/tiny_mce/themes/simple/langs/uk.js +11 -0
  1267. data/public/javascripts/tiny_mce/themes/simple/langs/vi.js +11 -0
  1268. data/public/javascripts/tiny_mce/themes/simple/langs/zh.js +11 -0
  1269. data/public/javascripts/tiny_mce/themes/simple/skins/default/content.css +25 -0
  1270. data/public/javascripts/tiny_mce/themes/simple/skins/default/ui.css +32 -0
  1271. data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/content.css +17 -0
  1272. data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/img/button_bg.png +0 -0
  1273. data/public/javascripts/tiny_mce/themes/simple/skins/o2k7/ui.css +35 -0
  1274. data/public/javascripts/tiny_mce/tiny_mce.js +1 -0
  1275. data/public/javascripts/tiny_mce/tiny_mce_popup.js +5 -0
  1276. data/public/javascripts/tiny_mce/tiny_mce_src.js +13135 -0
  1277. data/public/javascripts/tiny_mce/utils/editable_selects.js +69 -0
  1278. data/public/javascripts/tiny_mce/utils/form_utils.js +199 -0
  1279. data/public/javascripts/tiny_mce/utils/mctabs.js +76 -0
  1280. data/public/javascripts/tiny_mce/utils/validate.js +219 -0
  1281. data/tasks/tiny_mce.rake +45 -0
  1282. data/test/functional/full_tiny_mce_controller_test.rb +74 -0
  1283. data/test/functional/slim_tiny_mce_controller_test.rb +45 -0
  1284. data/test/test_helper.rb +19 -0
  1285. data/test/unit/helpers/tiny_mce_helper_test.rb +116 -0
  1286. data/test/unit/options_validator_test.rb +51 -0
  1287. data/test/unit/tiny_mce_test.rb +17 -0
  1288. data/tiny_mce.gemspec +1332 -0
  1289. data/tiny_mce_options.yml +167 -0
  1290. metadata +1350 -0
@@ -0,0 +1 @@
1
+ (function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(i){o=c.getParent(l.id,"form");n=o.elements;if(o){d(n,function(s,r){if(s.id==l.id){j=r;return false}});if(i>0){for(m=j+1;m<n.length;m++){if(n[m].type!="hidden"){return n[m]}}}else{for(m=j-1;m>=0;m--){if(n[m].type!="hidden"){return n[m]}}}}return null}if(p.keyCode===9){k=b(l.getParam("tab_focus",l.getParam("tabfocus_elements",":prev,:next")));if(k.length==1){k[1]=k[0];k[0]=":prev"}if(p.shiftKey){if(k[0]==":prev"){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==":next"){n=q(1)}else{n=c.get(k[1])}}if(n){if(l=tinymce.EditorManager.get(n.id||n.name)){l.focus()}else{window.setTimeout(function(){window.focus();n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}f.onInit.add(function(){d(c.select("a:first,a:last",f.getContainer()),function(i){a.add(i,"focus",function(){f.focus()})})})},getInfo:function(){return{longname:"Tabfocus",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("tabfocus",tinymce.plugins.TabFocusPlugin)})();
@@ -0,0 +1,109 @@
1
+ /**
2
+ * $Id: editor_plugin_src.js 787 2008-04-10 11:40:57Z spocke $
3
+ *
4
+ * @author Moxiecode
5
+ * @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved.
6
+ */
7
+
8
+ (function() {
9
+ var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, explode = tinymce.explode;
10
+
11
+ tinymce.create('tinymce.plugins.TabFocusPlugin', {
12
+ init : function(ed, url) {
13
+ function tabCancel(ed, e) {
14
+ if (e.keyCode === 9)
15
+ return Event.cancel(e);
16
+ };
17
+
18
+ function tabHandler(ed, e) {
19
+ var x, i, f, el, v;
20
+
21
+ function find(d) {
22
+ f = DOM.getParent(ed.id, 'form');
23
+ el = f.elements;
24
+
25
+ if (f) {
26
+ each(el, function(e, i) {
27
+ if (e.id == ed.id) {
28
+ x = i;
29
+ return false;
30
+ }
31
+ });
32
+
33
+ if (d > 0) {
34
+ for (i = x + 1; i < el.length; i++) {
35
+ if (el[i].type != 'hidden')
36
+ return el[i];
37
+ }
38
+ } else {
39
+ for (i = x - 1; i >= 0; i--) {
40
+ if (el[i].type != 'hidden')
41
+ return el[i];
42
+ }
43
+ }
44
+ }
45
+
46
+ return null;
47
+ };
48
+
49
+ if (e.keyCode === 9) {
50
+ v = explode(ed.getParam('tab_focus', ed.getParam('tabfocus_elements', ':prev,:next')));
51
+
52
+ if (v.length == 1) {
53
+ v[1] = v[0];
54
+ v[0] = ':prev';
55
+ }
56
+
57
+ // Find element to focus
58
+ if (e.shiftKey) {
59
+ if (v[0] == ':prev')
60
+ el = find(-1);
61
+ else
62
+ el = DOM.get(v[0]);
63
+ } else {
64
+ if (v[1] == ':next')
65
+ el = find(1);
66
+ else
67
+ el = DOM.get(v[1]);
68
+ }
69
+
70
+ if (el) {
71
+ if (ed = tinymce.EditorManager.get(el.id || el.name))
72
+ ed.focus();
73
+ else
74
+ window.setTimeout(function() {window.focus();el.focus();}, 10);
75
+
76
+ return Event.cancel(e);
77
+ }
78
+ }
79
+ };
80
+
81
+ ed.onKeyUp.add(tabCancel);
82
+
83
+ if (tinymce.isGecko) {
84
+ ed.onKeyPress.add(tabHandler);
85
+ ed.onKeyDown.add(tabCancel);
86
+ } else
87
+ ed.onKeyDown.add(tabHandler);
88
+
89
+ ed.onInit.add(function() {
90
+ each(DOM.select('a:first,a:last', ed.getContainer()), function(n) {
91
+ Event.add(n, 'focus', function() {ed.focus();});
92
+ });
93
+ });
94
+ },
95
+
96
+ getInfo : function() {
97
+ return {
98
+ longname : 'Tabfocus',
99
+ author : 'Moxiecode Systems AB',
100
+ authorurl : 'http://tinymce.moxiecode.com',
101
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus',
102
+ version : tinymce.majorVersion + "." + tinymce.minorVersion
103
+ };
104
+ }
105
+ });
106
+
107
+ // Register plugin
108
+ tinymce.PluginManager.add('tabfocus', tinymce.plugins.TabFocusPlugin);
109
+ })();
@@ -0,0 +1,183 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
2
+ <html xmlns="http://www.w3.org/1999/xhtml">
3
+ <head>
4
+ <title>{#table_dlg.cell_title}</title>
5
+ <script type="text/javascript" src="../../tiny_mce_popup.js"></script>
6
+ <script type="text/javascript" src="../../utils/mctabs.js"></script>
7
+ <script type="text/javascript" src="../../utils/form_utils.js"></script>
8
+ <script type="text/javascript" src="../../utils/editable_selects.js"></script>
9
+ <script type="text/javascript" src="js/cell.js"></script>
10
+ <link href="css/cell.css" rel="stylesheet" type="text/css" />
11
+ </head>
12
+ <body id="tablecell" style="display: none">
13
+ <form onsubmit="updateAction();return false;" action="#">
14
+ <div class="tabs">
15
+ <ul>
16
+ <li id="general_tab" class="current"><span><a href="javascript:mcTabs.displayTab('general_tab','general_panel');" onmousedown="return false;">{#table_dlg.general_tab}</a></span></li>
17
+ <li id="advanced_tab"><span><a href="javascript:mcTabs.displayTab('advanced_tab','advanced_panel');" onmousedown="return false;">{#table_dlg.advanced_tab}</a></span></li>
18
+ </ul>
19
+ </div>
20
+
21
+ <div class="panel_wrapper">
22
+ <div id="general_panel" class="panel current">
23
+ <fieldset>
24
+ <legend>{#table_dlg.general_props}</legend>
25
+
26
+ <table border="0" cellpadding="4" cellspacing="0">
27
+ <tr>
28
+ <td><label for="align">{#table_dlg.align}</label></td>
29
+ <td>
30
+ <select id="align" name="align" class="mceFocus">
31
+ <option value="">{#not_set}</option>
32
+ <option value="center">{#table_dlg.align_middle}</option>
33
+ <option value="left">{#table_dlg.align_left}</option>
34
+ <option value="right">{#table_dlg.align_right}</option>
35
+ </select>
36
+ </td>
37
+
38
+ <td><label for="celltype">{#table_dlg.cell_type}</label></td>
39
+ <td>
40
+ <select id="celltype" name="celltype">
41
+ <option value="td">{#table_dlg.td}</option>
42
+ <option value="th">{#table_dlg.th}</option>
43
+ </select>
44
+ </td>
45
+ </tr>
46
+
47
+ <tr>
48
+ <td><label for="valign">{#table_dlg.valign}</label></td>
49
+ <td>
50
+ <select id="valign" name="valign">
51
+ <option value="">{#not_set}</option>
52
+ <option value="top">{#table_dlg.align_top}</option>
53
+ <option value="middle">{#table_dlg.align_middle}</option>
54
+ <option value="bottom">{#table_dlg.align_bottom}</option>
55
+ </select>
56
+ </td>
57
+
58
+ <td><label for="scope">{#table_dlg.scope}</label></td>
59
+ <td>
60
+ <select id="scope" name="scope">
61
+ <option value="">{#not_set}</option>
62
+ <option value="col">{#table.col}</option>
63
+ <option value="row">{#table.row}</option>
64
+ <option value="rowgroup">{#table_dlg.rowgroup}</option>
65
+ <option value="colgroup">{#table_dlg.colgroup}</option>
66
+ </select>
67
+ </td>
68
+
69
+ </tr>
70
+
71
+ <tr>
72
+ <td><label for="width">{#table_dlg.width}</label></td>
73
+ <td><input id="width" name="width" type="text" value="" size="4" maxlength="4" onchange="changedSize();" /></td>
74
+
75
+ <td><label for="height">{#table_dlg.height}</label></td>
76
+ <td><input id="height" name="height" type="text" value="" size="4" maxlength="4" onchange="changedSize();" /></td>
77
+ </tr>
78
+
79
+ <tr id="styleSelectRow">
80
+ <td><label for="class">{#class_name}</label></td>
81
+ <td colspan="3">
82
+ <select id="class" name="class" class="mceEditableSelect">
83
+ <option value="" selected="selected">{#not_set}</option>
84
+ </select>
85
+ </td>
86
+ </tr>
87
+ </table>
88
+ </fieldset>
89
+ </div>
90
+
91
+ <div id="advanced_panel" class="panel">
92
+ <fieldset>
93
+ <legend>{#table_dlg.advanced_props}</legend>
94
+
95
+ <table border="0" cellpadding="0" cellspacing="4">
96
+ <tr>
97
+ <td class="column1"><label for="id">{#table_dlg.id}</label></td>
98
+ <td><input id="id" name="id" type="text" value="" style="width: 200px" /></td>
99
+ </tr>
100
+
101
+ <tr>
102
+ <td><label for="style">{#table_dlg.style}</label></td>
103
+ <td><input type="text" id="style" name="style" value="" style="width: 200px;" onchange="changedStyle();" /></td>
104
+ </tr>
105
+
106
+ <tr>
107
+ <td class="column1"><label for="dir">{#table_dlg.langdir}</label></td>
108
+ <td>
109
+ <select id="dir" name="dir" style="width: 200px">
110
+ <option value="">{#not_set}</option>
111
+ <option value="ltr">{#table_dlg.ltr}</option>
112
+ <option value="rtl">{#table_dlg.rtl}</option>
113
+ </select>
114
+ </td>
115
+ </tr>
116
+
117
+ <tr>
118
+ <td class="column1"><label for="lang">{#table_dlg.langcode}</label></td>
119
+ <td>
120
+ <input id="lang" name="lang" type="text" value="" style="width: 200px" />
121
+ </td>
122
+ </tr>
123
+
124
+ <tr>
125
+ <td class="column1"><label for="backgroundimage">{#table_dlg.bgimage}</label></td>
126
+ <td>
127
+ <table border="0" cellpadding="0" cellspacing="0">
128
+ <tr>
129
+ <td><input id="backgroundimage" name="backgroundimage" type="text" value="" style="width: 200px" onchange="changedBackgroundImage();" /></td>
130
+ <td id="backgroundimagebrowsercontainer">&nbsp;</td>
131
+ </tr>
132
+ </table>
133
+ </td>
134
+ </tr>
135
+
136
+ <tr>
137
+ <td class="column1"><label for="bordercolor">{#table_dlg.bordercolor}</label></td>
138
+ <td>
139
+ <table border="0" cellpadding="0" cellspacing="0">
140
+ <tr>
141
+ <td><input id="bordercolor" name="bordercolor" type="text" value="" size="9" onchange="updateColor('bordercolor_pick','bordercolor');changedColor();" /></td>
142
+ <td id="bordercolor_pickcontainer">&nbsp;</td>
143
+ </tr>
144
+ </table>
145
+ </td>
146
+ </tr>
147
+
148
+ <tr>
149
+ <td class="column1"><label for="bgcolor">{#table_dlg.bgcolor}</label></td>
150
+ <td>
151
+ <table border="0" cellpadding="0" cellspacing="0">
152
+ <tr>
153
+ <td><input id="bgcolor" name="bgcolor" type="text" value="" size="9" onchange="updateColor('bgcolor_pick','bgcolor');changedColor();" /></td>
154
+ <td id="bgcolor_pickcontainer">&nbsp;</td>
155
+ </tr>
156
+ </table>
157
+ </td>
158
+ </tr>
159
+ </table>
160
+ </fieldset>
161
+ </div>
162
+ </div>
163
+
164
+ <div class="mceActionPanel">
165
+ <div>
166
+ <select id="action" name="action">
167
+ <option value="cell">{#table_dlg.cell_cell}</option>
168
+ <option value="row">{#table_dlg.cell_row}</option>
169
+ <option value="all">{#table_dlg.cell_all}</option>
170
+ </select>
171
+ </div>
172
+
173
+ <div style="float: left">
174
+ <div><input type="submit" id="insert" name="insert" value="{#update}" /></div>
175
+ </div>
176
+
177
+ <div style="float: right">
178
+ <input type="button" id="cancel" name="cancel" value="{#cancel}" onclick="tinyMCEPopup.close();" />
179
+ </div>
180
+ </div>
181
+ </form>
182
+ </body>
183
+ </html>
@@ -0,0 +1,17 @@
1
+ /* CSS file for cell dialog in the table plugin */
2
+
3
+ .panel_wrapper div.current {
4
+ height: 200px;
5
+ }
6
+
7
+ .advfield {
8
+ width: 200px;
9
+ }
10
+
11
+ #action {
12
+ margin-bottom: 3px;
13
+ }
14
+
15
+ #class {
16
+ width: 150px;
17
+ }
@@ -0,0 +1,25 @@
1
+ /* CSS file for row dialog in the table plugin */
2
+
3
+ .panel_wrapper div.current {
4
+ height: 200px;
5
+ }
6
+
7
+ .advfield {
8
+ width: 200px;
9
+ }
10
+
11
+ #action {
12
+ margin-bottom: 3px;
13
+ }
14
+
15
+ #rowtype,#align,#valign,#class,#height {
16
+ width: 150px;
17
+ }
18
+
19
+ #height {
20
+ width: 50px;
21
+ }
22
+
23
+ .col2 {
24
+ padding-left: 20px;
25
+ }
@@ -0,0 +1,13 @@
1
+ /* CSS file for table dialog in the table plugin */
2
+
3
+ .panel_wrapper div.current {
4
+ height: 245px;
5
+ }
6
+
7
+ .advfield {
8
+ width: 200px;
9
+ }
10
+
11
+ #class {
12
+ width: 150px;
13
+ }
@@ -0,0 +1 @@
1
+ (function(){var a=tinymce.each;tinymce.create("tinymce.plugins.TablePlugin",{init:function(b,c){var d=this;d.editor=b;d.url=c;a([["table","table.desc","mceInsertTable",true],["delete_table","table.del","mceTableDelete"],["delete_col","table.delete_col_desc","mceTableDeleteCol"],["delete_row","table.delete_row_desc","mceTableDeleteRow"],["col_after","table.col_after_desc","mceTableInsertColAfter"],["col_before","table.col_before_desc","mceTableInsertColBefore"],["row_after","table.row_after_desc","mceTableInsertRowAfter"],["row_before","table.row_before_desc","mceTableInsertRowBefore"],["row_props","table.row_desc","mceTableRowProps",true],["cell_props","table.cell_desc","mceTableCellProps",true],["split_cells","table.split_cells_desc","mceTableSplitCells",true],["merge_cells","table.merge_cells_desc","mceTableMergeCells",true]],function(e){b.addButton(e[0],{title:e[1],cmd:e[2],ui:e[3]})});if(b.getParam("inline_styles")){b.onPreProcess.add(function(e,g){var f=e.dom;a(f.select("table",g.node),function(i){var h;if(h=f.getAttrib(i,"width")){f.setStyle(i,"width",h);f.setAttrib(i,"width")}if(h=f.getAttrib(i,"height")){f.setStyle(i,"height",h);f.setAttrib(i,"height")}})})}b.onInit.add(function(){if(!tinymce.isIE&&b.getParam("forced_root_block")){function e(){var f=b.getBody().lastChild;if(f&&f.nodeName=="TABLE"){b.dom.add(b.getBody(),"p",null,'<br mce_bogus="1" />')}}b.onKeyUp.add(e);b.onSetContent.add(e);b.onVisualAid.add(e);b.onPreProcess.add(function(f,h){var g=h.node.lastChild;if(g&&g.childNodes.length==1&&g.firstChild.nodeName=="BR"){f.dom.remove(g)}});e()}if(b&&b.plugins.contextmenu){b.plugins.contextmenu.onContextMenu.add(function(h,f,j){var k,i=b.selection,g=i.getNode()||b.getBody();if(b.dom.getParent(j,"td")||b.dom.getParent(j,"th")){f.removeAll();if(g.nodeName=="A"&&!b.dom.getAttrib(g,"name")){f.add({title:"advanced.link_desc",icon:"link",cmd:b.plugins.advlink?"mceAdvLink":"mceLink",ui:true});f.add({title:"advanced.unlink_desc",icon:"unlink",cmd:"UnLink"});f.addSeparator()}if(g.nodeName=="IMG"&&g.className.indexOf("mceItem")==-1){f.add({title:"advanced.image_desc",icon:"image",cmd:b.plugins.advimage?"mceAdvImage":"mceImage",ui:true});f.addSeparator()}f.add({title:"table.desc",icon:"table",cmd:"mceInsertTable",ui:true,value:{action:"insert"}});f.add({title:"table.props_desc",icon:"table_props",cmd:"mceInsertTable",ui:true});f.add({title:"table.del",icon:"delete_table",cmd:"mceTableDelete",ui:true});f.addSeparator();k=f.addMenu({title:"table.cell"});k.add({title:"table.cell_desc",icon:"cell_props",cmd:"mceTableCellProps",ui:true});k.add({title:"table.split_cells_desc",icon:"split_cells",cmd:"mceTableSplitCells",ui:true});k.add({title:"table.merge_cells_desc",icon:"merge_cells",cmd:"mceTableMergeCells",ui:true});k=f.addMenu({title:"table.row"});k.add({title:"table.row_desc",icon:"row_props",cmd:"mceTableRowProps",ui:true});k.add({title:"table.row_before_desc",icon:"row_before",cmd:"mceTableInsertRowBefore"});k.add({title:"table.row_after_desc",icon:"row_after",cmd:"mceTableInsertRowAfter"});k.add({title:"table.delete_row_desc",icon:"delete_row",cmd:"mceTableDeleteRow"});k.addSeparator();k.add({title:"table.cut_row_desc",icon:"cut",cmd:"mceTableCutRow"});k.add({title:"table.copy_row_desc",icon:"copy",cmd:"mceTableCopyRow"});k.add({title:"table.paste_row_before_desc",icon:"paste",cmd:"mceTablePasteRowBefore"});k.add({title:"table.paste_row_after_desc",icon:"paste",cmd:"mceTablePasteRowAfter"});k=f.addMenu({title:"table.col"});k.add({title:"table.col_before_desc",icon:"col_before",cmd:"mceTableInsertColBefore"});k.add({title:"table.col_after_desc",icon:"col_after",cmd:"mceTableInsertColAfter"});k.add({title:"table.delete_col_desc",icon:"delete_col",cmd:"mceTableDeleteCol"})}else{f.add({title:"table.desc",icon:"table",cmd:"mceInsertTable",ui:true})}})}});b.onKeyDown.add(function(f,g){if(g.keyCode==9&&f.dom.getParent(f.selection.getNode(),"TABLE")){if(!tinymce.isGecko&&!tinymce.isOpera){tinyMCE.execInstanceCommand(f.editorId,"mceTableMoveToNextRow",true);return tinymce.dom.Event.cancel(g)}f.undoManager.add()}});if(!tinymce.isIE){if(b.getParam("table_selection",true)){b.onClick.add(function(f,g){g=g.target;if(g.nodeName==="TABLE"){f.selection.select(g)}})}}b.onNodeChange.add(function(f,e,h){var g=f.dom.getParent(h,"td,th,caption");e.setActive("table",h.nodeName==="TABLE"||!!g);if(g&&g.nodeName==="CAPTION"){g=null}e.setDisabled("delete_table",!g);e.setDisabled("delete_col",!g);e.setDisabled("delete_table",!g);e.setDisabled("delete_row",!g);e.setDisabled("col_after",!g);e.setDisabled("col_before",!g);e.setDisabled("row_after",!g);e.setDisabled("row_before",!g);e.setDisabled("row_props",!g);e.setDisabled("cell_props",!g);e.setDisabled("split_cells",!g||(parseInt(f.dom.getAttrib(g,"colspan","1"))<2&&parseInt(f.dom.getAttrib(g,"rowspan","1"))<2));e.setDisabled("merge_cells",!g)});if(!tinymce.isIE){b.onBeforeSetContent.add(function(e,f){if(f.initial){f.content=f.content.replace(/<(td|th)([^>]+|)>\s*<\/(td|th)>/g,tinymce.isOpera?"<$1$2>&nbsp;</$1>":'<$1$2><br mce_bogus="1" /></$1>')}})}},execCommand:function(f,e,g){var d=this.editor,c;switch(f){case"mceTableMoveToNextRow":case"mceInsertTable":case"mceTableRowProps":case"mceTableCellProps":case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":case"mceTableDelete":d.execCommand("mceBeginUndoLevel");this._doExecCommand(f,e,g);d.execCommand("mceEndUndoLevel");return true}return false},getInfo:function(){return{longname:"Tables",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_doExecCommand:function(r,Z,ae){var V=this.editor,au=V,g=this.url;var n=V.selection.getNode();var W=V.dom.getParent(n,"tr");var aq=V.dom.getParent(n,"td,th");var F=V.dom.getParent(n,"table");var k=V.contentWindow.document;var av=F?F.getAttribute("border"):"";if(W&&aq==null){aq=W.cells[0]}function ap(y,x){for(var ax=0;ax<y.length;ax++){if(y[ax].length>0&&ap(y[ax],x)){return true}if(y[ax]==x){return true}}return false}function aj(x,i){var y;ad=e(F);x=x||0;i=i||0;x=Math.max(o.cellindex+x,0);i=Math.max(o.rowindex+i,0);V.execCommand("mceRepaint");y=d(ad,i,x);if(y){V.selection.select(y.firstChild||y);V.selection.collapse(1)}}function ah(){var i=k.createElement("td");if(!tinymce.isIE){i.innerHTML='<br mce_bogus="1"/>'}}function j(y){var x=V.dom.getAttrib(y,"colspan");var i=V.dom.getAttrib(y,"rowspan");x=x==""?1:parseInt(x);i=i==""?1:parseInt(i);return{colspan:x,rowspan:i}}function al(ax,az){var i,ay;for(ay=0;ay<ax.length;ay++){for(i=0;i<ax[ay].length;i++){if(ax[ay][i]==az){return{cellindex:i,rowindex:ay}}}}return null}function d(x,y,i){if(x[y]&&x[y][i]){return x[y][i]}return null}function A(aC,ax){var az=[],y=0,aA,ay,ax,aB;for(aA=0;aA<aC.rows.length;aA++){for(ay=0;ay<aC.rows[aA].cells.length;ay++,y++){az[y]=aC.rows[aA].cells[ay]}}for(aA=0;aA<az.length;aA++){if(az[aA]==ax){if(aB=az[aA+1]){return aB}}}}function e(aE){var i=[],aF=aE.rows,aC,aB,ay,az,aD,ax,aA;for(aB=0;aB<aF.length;aB++){for(aC=0;aC<aF[aB].cells.length;aC++){ay=aF[aB].cells[aC];az=j(ay);for(aD=aC;i[aB]&&i[aB][aD];aD++){}for(aA=aB;aA<aB+az.rowspan;aA++){if(!i[aA]){i[aA]=[]}for(ax=aD;ax<aD+az.colspan;ax++){i[aA][ax]=ay}}}}return i}function m(aG,aD,ay,ax){var y=e(aG),aF=al(y,ay);var aH,aC;if(ax.cells.length!=aD.childNodes.length){aH=aD.childNodes;aC=null;for(var aE=0;ay=d(y,aF.rowindex,aE);aE++){var aA=true;var aB=j(ay);if(ap(aH,ay)){ax.childNodes[aE]._delete=true}else{if((aC==null||ay!=aC)&&aB.colspan>1){for(var az=aE;az<aE+ay.colSpan;az++){ax.childNodes[az]._delete=true}}}if((aC==null||ay!=aC)&&aB.rowspan>1){ay.rowSpan=aB.rowspan+1}aC=ay}B(F)}}function O(x,i){while((x=x.previousSibling)!=null){if(x.nodeName==i){return x}}return null}function af(ax,ay){var x=ay.split(",");while((ax=ax.nextSibling)!=null){for(var y=0;y<x.length;y++){if(ax.nodeName.toLowerCase()==x[y].toLowerCase()){return ax}}}return null}function B(ax){if(ax.rows==0){return}var y=ax.rows[0];do{var x=af(y,"TR");if(y._delete){y.parentNode.removeChild(y);continue}var ay=y.cells[0];if(ay.cells>1){do{var i=af(ay,"TD,TH");if(ay._delete){ay.parentNode.removeChild(ay)}}while((ay=i)!=null)}}while((y=x)!=null)}function p(ax,aA,az){ax.rowSpan=1;var x=af(aA,"TR");for(var ay=1;ay<az&&x;ay++){var y=k.createElement("td");if(!tinymce.isIE){y.innerHTML='<br mce_bogus="1"/>'}if(tinymce.isIE){x.insertBefore(y,x.cells(ax.cellIndex))}else{x.insertBefore(y,x.cells[ax.cellIndex])}x=af(x,"TR")}}function S(aF,aH,aB){var y=e(aH);var ax=aB.cloneNode(false);var aG=al(y,aB.cells[0]);var aC=null;var aA=V.dom.getAttrib(aH,"border");var az=null;for(var aE=0;az=d(y,aG.rowindex,aE);aE++){var aD=null;if(aC!=az){for(var ay=0;ay<aB.cells.length;ay++){if(az==aB.cells[ay]){aD=az.cloneNode(true);break}}}if(aD==null){aD=aF.createElement("td");if(!tinymce.isIE){aD.innerHTML='<br mce_bogus="1"/>'}}aD.colSpan=1;aD.rowSpan=1;ax.appendChild(aD);aC=az}return ax}switch(r){case"mceTableMoveToNextRow":var L=A(F,aq);if(!L){V.execCommand("mceTableInsertRowAfter",aq);L=A(F,aq)}V.selection.select(L);V.selection.collapse(true);return true;case"mceTableRowProps":if(W==null){return true}if(Z){V.windowManager.open({url:g+"/row.htm",width:400+parseInt(V.getLang("table.rowprops_delta_width",0)),height:295+parseInt(V.getLang("table.rowprops_delta_height",0)),inline:1},{plugin_url:g})}return true;case"mceTableCellProps":if(aq==null){return true}if(Z){V.windowManager.open({url:g+"/cell.htm",width:400+parseInt(V.getLang("table.cellprops_delta_width",0)),height:295+parseInt(V.getLang("table.cellprops_delta_height",0)),inline:1},{plugin_url:g})}return true;case"mceInsertTable":if(Z){V.windowManager.open({url:g+"/table.htm",width:400+parseInt(V.getLang("table.table_delta_width",0)),height:320+parseInt(V.getLang("table.table_delta_height",0)),inline:1},{plugin_url:g,action:ae?ae.action:0})}return true;case"mceTableDelete":var G=V.dom.getParent(V.selection.getNode(),"table");if(G){G.parentNode.removeChild(G);V.execCommand("mceRepaint")}return true;case"mceTableSplitCells":case"mceTableMergeCells":case"mceTableInsertRowBefore":case"mceTableInsertRowAfter":case"mceTableDeleteRow":case"mceTableInsertColBefore":case"mceTableInsertColAfter":case"mceTableDeleteCol":case"mceTableCutRow":case"mceTableCopyRow":case"mceTablePasteRowBefore":case"mceTablePasteRowAfter":if(!F){return true}if(W&&F!=W.parentNode){F=W.parentNode}if(F&&W){switch(r){case"mceTableCutRow":if(!W||!aq){return true}V.tableRowClipboard=S(k,F,W);V.execCommand("mceTableDeleteRow");break;case"mceTableCopyRow":if(!W||!aq){return true}V.tableRowClipboard=S(k,F,W);break;case"mceTablePasteRowBefore":if(!W||!aq){return true}var v=V.tableRowClipboard.cloneNode(true);var h=O(W,"TR");if(h!=null){m(F,h,h.cells[0],v)}W.parentNode.insertBefore(v,W);break;case"mceTablePasteRowAfter":if(!W||!aq){return true}var X=af(W,"TR");var v=V.tableRowClipboard.cloneNode(true);m(F,W,aq,v);if(X==null){W.parentNode.appendChild(v)}else{X.parentNode.insertBefore(v,X)}break;case"mceTableInsertRowBefore":if(!W||!aq){return true}var ad=e(F);var o=al(ad,aq);var v=k.createElement("tr");var u=null;o.rowindex--;if(o.rowindex<0){o.rowindex=0}for(var ac=0;aq=d(ad,o.rowindex,ac);ac++){if(aq!=u){var E=j(aq);if(E.rowspan==1){var J=k.createElement("td");if(!tinymce.isIE){J.innerHTML='<br mce_bogus="1"/>'}J.colSpan=aq.colSpan;v.appendChild(J)}else{aq.rowSpan=E.rowspan+1}u=aq}}W.parentNode.insertBefore(v,W);aj(0,1);break;case"mceTableInsertRowAfter":if(!W||!aq){return true}var ad=e(F);var o=al(ad,aq);var v=k.createElement("tr");var u=null;for(var ac=0;aq=d(ad,o.rowindex,ac);ac++){if(aq!=u){var E=j(aq);if(E.rowspan==1){var J=k.createElement("td");if(!tinymce.isIE){J.innerHTML='<br mce_bogus="1"/>'}J.colSpan=aq.colSpan;v.appendChild(J)}else{aq.rowSpan=E.rowspan+1}u=aq}}if(v.hasChildNodes()){var X=af(W,"TR");if(X){X.parentNode.insertBefore(v,X)}else{F.appendChild(v)}}aj(0,1);break;case"mceTableDeleteRow":if(!W||!aq){return true}var ad=e(F);var o=al(ad,aq);if(ad.length==1&&F.nodeName=="TBODY"){V.dom.remove(V.dom.getParent(F,"table"));return true}var D=W.cells;var X=af(W,"TR");for(var ac=0;ac<D.length;ac++){if(D[ac].rowSpan>1){var J=D[ac].cloneNode(true);var E=j(D[ac]);J.rowSpan=E.rowspan-1;var ak=X.cells[ac];if(ak==null){X.appendChild(J)}else{X.insertBefore(J,ak)}}}var u=null;for(var ac=0;aq=d(ad,o.rowindex,ac);ac++){if(aq!=u){var E=j(aq);if(E.rowspan>1){aq.rowSpan=E.rowspan-1}else{W=aq.parentNode;if(W.parentNode){W._delete=true}}u=aq}}B(F);aj(0,-1);break;case"mceTableInsertColBefore":if(!W||!aq){return true}var ad=e(V.dom.getParent(F,"table"));var o=al(ad,aq);var u=null;for(var aa=0;aq=d(ad,aa,o.cellindex);aa++){if(aq!=u){var E=j(aq);if(E.colspan==1){var J=k.createElement(aq.nodeName);if(!tinymce.isIE){J.innerHTML='<br mce_bogus="1"/>'}J.rowSpan=aq.rowSpan;aq.parentNode.insertBefore(J,aq)}else{aq.colSpan++}u=aq}}aj();break;case"mceTableInsertColAfter":if(!W||!aq){return true}var ad=e(V.dom.getParent(F,"table"));var o=al(ad,aq);var u=null;for(var aa=0;aq=d(ad,aa,o.cellindex);aa++){if(aq!=u){var E=j(aq);if(E.colspan==1){var J=k.createElement(aq.nodeName);if(!tinymce.isIE){J.innerHTML='<br mce_bogus="1"/>'}J.rowSpan=aq.rowSpan;var ak=af(aq,"TD,TH");if(ak==null){aq.parentNode.appendChild(J)}else{ak.parentNode.insertBefore(J,ak)}}else{aq.colSpan++}u=aq}}aj(1);break;case"mceTableDeleteCol":if(!W||!aq){return true}var ad=e(F);var o=al(ad,aq);var u=null;if((ad.length>1&&ad[0].length<=1)&&F.nodeName=="TBODY"){V.dom.remove(V.dom.getParent(F,"table"));return true}for(var aa=0;aq=d(ad,aa,o.cellindex);aa++){if(aq!=u){var E=j(aq);if(E.colspan>1){aq.colSpan=E.colspan-1}else{if(aq.parentNode){aq.parentNode.removeChild(aq)}}u=aq}}aj(-1);break;case"mceTableSplitCells":if(!W||!aq){return true}var l=j(aq);var C=l.colspan;var H=l.rowspan;if(C>1||H>1){aq.colSpan=1;for(var am=1;am<C;am++){var J=k.createElement("td");if(!tinymce.isIE){J.innerHTML='<br mce_bogus="1"/>'}W.insertBefore(J,af(aq,"TD,TH"));if(H>1){p(J,W,H)}}p(aq,W,H)}F=V.dom.getParent(V.selection.getNode(),"table");break;case"mceTableMergeCells":var ao=[];var R=V.selection.getSel();var ad=e(F);if(tinymce.isIE||R.rangeCount==1){if(Z){var t=j(aq);V.windowManager.open({url:g+"/merge_cells.htm",width:240+parseInt(V.getLang("table.merge_cells_delta_width",0)),height:110+parseInt(V.getLang("table.merge_cells_delta_height",0)),inline:1},{action:"update",numcols:t.colspan,numrows:t.rowspan,plugin_url:g});return true}else{var U=parseInt(ae.numrows);var c=parseInt(ae.numcols);var o=al(ad,aq);if((""+U)=="NaN"){U=1}if((""+c)=="NaN"){c=1}var b=F.rows;for(var aa=o.rowindex;aa<ad.length;aa++){var ag=[];for(var ac=o.cellindex;ac<ad[aa].length;ac++){var f=d(ad,aa,ac);if(f&&!ap(ao,f)&&!ap(ag,f)){var N=al(ad,f);if(N.cellindex<o.cellindex+c&&N.rowindex<o.rowindex+U){ag[ag.length]=f}}}if(ag.length>0){ao[ao.length]=ag}var f=d(ad,o.rowindex,o.cellindex);a(au.dom.select("br",f),function(y,x){if(x>0&&au.dom.getAttrib("mce_bogus")){au.dom.remove(y)}})}}}else{var D=[];var R=V.selection.getSel();var Y=null;var an=null;var z=-1,aw=-1,w,at;if(R.rangeCount<2){return true}for(var am=0;am<R.rangeCount;am++){var ai=R.getRangeAt(am);var aq=ai.startContainer.childNodes[ai.startOffset];if(!aq){break}if(aq.nodeName=="TD"||aq.nodeName=="TH"){D[D.length]=aq}}var b=F.rows;for(var aa=0;aa<b.length;aa++){var ag=[];for(var ac=0;ac<b[aa].cells.length;ac++){var f=b[aa].cells[ac];for(var am=0;am<D.length;am++){if(f==D[am]){ag[ag.length]=f}}}if(ag.length>0){ao[ao.length]=ag}}var an=[];var Y=null;for(var aa=0;aa<ad.length;aa++){for(var ac=0;ac<ad[aa].length;ac++){ad[aa][ac]._selected=false;for(var am=0;am<D.length;am++){if(ad[aa][ac]==D[am]){if(z==-1){z=ac;aw=aa}w=ac;at=aa;ad[aa][ac]._selected=true}}}}for(var aa=aw;aa<=at;aa++){for(var ac=z;ac<=w;ac++){if(!ad[aa][ac]._selected){alert("Invalid selection for merge.");return true}}}}var s=1,q=1;var T=-1;for(var aa=0;aa<ao.length;aa++){var I=0;for(var ac=0;ac<ao[aa].length;ac++){var E=j(ao[aa][ac]);I+=E.colspan;if(T!=-1&&E.rowspan!=T){alert("Invalid selection for merge.");return true}T=E.rowspan}if(I>q){q=I}T=-1}var Q=-1;for(var ac=0;ac<ao[0].length;ac++){var M=0;for(var aa=0;aa<ao.length;aa++){var E=j(ao[aa][ac]);M+=E.rowspan;if(Q!=-1&&E.colspan!=Q){alert("Invalid selection for merge.");return true}Q=E.colspan}if(M>s){s=M}Q=-1}aq=ao[0][0];aq.rowSpan=s;aq.colSpan=q;for(var aa=0;aa<ao.length;aa++){for(var ac=0;ac<ao[aa].length;ac++){var P=ao[aa][ac].innerHTML;var K=P.replace(/[ \t\r\n]/g,"");if(K!="<br/>"&&K!="<br>"&&K!='<br mce_bogus="1"/>'&&(ac+aa>0)){aq.innerHTML+=P}if(ao[aa][ac]!=aq&&!ao[aa][ac]._deleted){var o=al(ad,ao[aa][ac]);var ar=ao[aa][ac].parentNode;ar.removeChild(ao[aa][ac]);ao[aa][ac]._deleted=true;if(!ar.hasChildNodes()){ar.parentNode.removeChild(ar);var ab=null;for(var ac=0;cellElm=d(ad,o.rowindex,ac);ac++){if(cellElm!=ab&&cellElm.rowSpan>1){cellElm.rowSpan--}ab=cellElm}if(aq.rowSpan>1){aq.rowSpan--}}}}}a(au.dom.select("br",aq),function(y,x){if(x>0&&au.dom.getAttrib(y,"mce_bogus")){au.dom.remove(y)}});break}F=V.dom.getParent(V.selection.getNode(),"table");V.addVisual(F);V.nodeChanged()}return true}return false}});tinymce.PluginManager.add("table",tinymce.plugins.TablePlugin)})();
@@ -0,0 +1,1160 @@
1
+ /**
2
+ * $Id: editor_plugin_src.js 1206 2009-08-19 12:30:52Z spocke $
3
+ *
4
+ * @author Moxiecode
5
+ * @copyright Copyright � 2004-2008, Moxiecode Systems AB, All rights reserved.
6
+ */
7
+
8
+ (function() {
9
+ var each = tinymce.each;
10
+
11
+ tinymce.create('tinymce.plugins.TablePlugin', {
12
+ init : function(ed, url) {
13
+ var t = this;
14
+
15
+ t.editor = ed;
16
+ t.url = url;
17
+
18
+ // Register buttons
19
+ each([
20
+ ['table', 'table.desc', 'mceInsertTable', true],
21
+ ['delete_table', 'table.del', 'mceTableDelete'],
22
+ ['delete_col', 'table.delete_col_desc', 'mceTableDeleteCol'],
23
+ ['delete_row', 'table.delete_row_desc', 'mceTableDeleteRow'],
24
+ ['col_after', 'table.col_after_desc', 'mceTableInsertColAfter'],
25
+ ['col_before', 'table.col_before_desc', 'mceTableInsertColBefore'],
26
+ ['row_after', 'table.row_after_desc', 'mceTableInsertRowAfter'],
27
+ ['row_before', 'table.row_before_desc', 'mceTableInsertRowBefore'],
28
+ ['row_props', 'table.row_desc', 'mceTableRowProps', true],
29
+ ['cell_props', 'table.cell_desc', 'mceTableCellProps', true],
30
+ ['split_cells', 'table.split_cells_desc', 'mceTableSplitCells', true],
31
+ ['merge_cells', 'table.merge_cells_desc', 'mceTableMergeCells', true]
32
+ ], function(c) {
33
+ ed.addButton(c[0], {title : c[1], cmd : c[2], ui : c[3]});
34
+ });
35
+
36
+ if (ed.getParam('inline_styles')) {
37
+ // Force move of attribs to styles in strict mode
38
+ ed.onPreProcess.add(function(ed, o) {
39
+ var dom = ed.dom;
40
+
41
+ each(dom.select('table', o.node), function(n) {
42
+ var v;
43
+
44
+ if (v = dom.getAttrib(n, 'width')) {
45
+ dom.setStyle(n, 'width', v);
46
+ dom.setAttrib(n, 'width');
47
+ }
48
+
49
+ if (v = dom.getAttrib(n, 'height')) {
50
+ dom.setStyle(n, 'height', v);
51
+ dom.setAttrib(n, 'height');
52
+ }
53
+ });
54
+ });
55
+ }
56
+
57
+ ed.onInit.add(function() {
58
+ // Fixes an issue on Gecko where it's impossible to place the caret behind a table
59
+ // This fix will force a paragraph element after the table but only when the forced_root_block setting is enabled
60
+ if (!tinymce.isIE && ed.getParam('forced_root_block')) {
61
+ function fixTableCaretPos() {
62
+ var last = ed.getBody().lastChild;
63
+
64
+ if (last && last.nodeName == 'TABLE')
65
+ ed.dom.add(ed.getBody(), 'p', null, '<br mce_bogus="1" />');
66
+ };
67
+
68
+ ed.onKeyUp.add(fixTableCaretPos);
69
+ ed.onSetContent.add(fixTableCaretPos);
70
+ ed.onVisualAid.add(fixTableCaretPos);
71
+
72
+ ed.onPreProcess.add(function(ed, o) {
73
+ var last = o.node.lastChild;
74
+
75
+ if (last && last.childNodes.length == 1 && last.firstChild.nodeName == 'BR')
76
+ ed.dom.remove(last);
77
+ });
78
+
79
+ fixTableCaretPos();
80
+ }
81
+
82
+ if (ed && ed.plugins.contextmenu) {
83
+ ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) {
84
+ var sm, se = ed.selection, el = se.getNode() || ed.getBody();
85
+
86
+ if (ed.dom.getParent(e, 'td') || ed.dom.getParent(e, 'th')) {
87
+ m.removeAll();
88
+
89
+ if (el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) {
90
+ m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true});
91
+ m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'});
92
+ m.addSeparator();
93
+ }
94
+
95
+ if (el.nodeName == 'IMG' && el.className.indexOf('mceItem') == -1) {
96
+ m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true});
97
+ m.addSeparator();
98
+ }
99
+
100
+ m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable', ui : true, value : {action : 'insert'}});
101
+ m.add({title : 'table.props_desc', icon : 'table_props', cmd : 'mceInsertTable', ui : true});
102
+ m.add({title : 'table.del', icon : 'delete_table', cmd : 'mceTableDelete', ui : true});
103
+ m.addSeparator();
104
+
105
+ // Cell menu
106
+ sm = m.addMenu({title : 'table.cell'});
107
+ sm.add({title : 'table.cell_desc', icon : 'cell_props', cmd : 'mceTableCellProps', ui : true});
108
+ sm.add({title : 'table.split_cells_desc', icon : 'split_cells', cmd : 'mceTableSplitCells', ui : true});
109
+ sm.add({title : 'table.merge_cells_desc', icon : 'merge_cells', cmd : 'mceTableMergeCells', ui : true});
110
+
111
+ // Row menu
112
+ sm = m.addMenu({title : 'table.row'});
113
+ sm.add({title : 'table.row_desc', icon : 'row_props', cmd : 'mceTableRowProps', ui : true});
114
+ sm.add({title : 'table.row_before_desc', icon : 'row_before', cmd : 'mceTableInsertRowBefore'});
115
+ sm.add({title : 'table.row_after_desc', icon : 'row_after', cmd : 'mceTableInsertRowAfter'});
116
+ sm.add({title : 'table.delete_row_desc', icon : 'delete_row', cmd : 'mceTableDeleteRow'});
117
+ sm.addSeparator();
118
+ sm.add({title : 'table.cut_row_desc', icon : 'cut', cmd : 'mceTableCutRow'});
119
+ sm.add({title : 'table.copy_row_desc', icon : 'copy', cmd : 'mceTableCopyRow'});
120
+ sm.add({title : 'table.paste_row_before_desc', icon : 'paste', cmd : 'mceTablePasteRowBefore'});
121
+ sm.add({title : 'table.paste_row_after_desc', icon : 'paste', cmd : 'mceTablePasteRowAfter'});
122
+
123
+ // Column menu
124
+ sm = m.addMenu({title : 'table.col'});
125
+ sm.add({title : 'table.col_before_desc', icon : 'col_before', cmd : 'mceTableInsertColBefore'});
126
+ sm.add({title : 'table.col_after_desc', icon : 'col_after', cmd : 'mceTableInsertColAfter'});
127
+ sm.add({title : 'table.delete_col_desc', icon : 'delete_col', cmd : 'mceTableDeleteCol'});
128
+ } else
129
+ m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable', ui : true});
130
+ });
131
+ }
132
+ });
133
+
134
+ // Add undo level when new rows are created using the tab key
135
+ ed.onKeyDown.add(function(ed, e) {
136
+ if (e.keyCode == 9 && ed.dom.getParent(ed.selection.getNode(), 'TABLE')) {
137
+ if (!tinymce.isGecko && !tinymce.isOpera) {
138
+ tinyMCE.execInstanceCommand(ed.editorId, "mceTableMoveToNextRow", true);
139
+ return tinymce.dom.Event.cancel(e);
140
+ }
141
+
142
+ ed.undoManager.add();
143
+ }
144
+ });
145
+
146
+ // Select whole table is a table border is clicked
147
+ if (!tinymce.isIE) {
148
+ if (ed.getParam('table_selection', true)) {
149
+ ed.onClick.add(function(ed, e) {
150
+ e = e.target;
151
+
152
+ if (e.nodeName === 'TABLE')
153
+ ed.selection.select(e);
154
+ });
155
+ }
156
+ }
157
+
158
+ ed.onNodeChange.add(function(ed, cm, n) {
159
+ var p = ed.dom.getParent(n, 'td,th,caption');
160
+
161
+ cm.setActive('table', n.nodeName === 'TABLE' || !!p);
162
+ if (p && p.nodeName === 'CAPTION')
163
+ p = null;
164
+
165
+ cm.setDisabled('delete_table', !p);
166
+ cm.setDisabled('delete_col', !p);
167
+ cm.setDisabled('delete_table', !p);
168
+ cm.setDisabled('delete_row', !p);
169
+ cm.setDisabled('col_after', !p);
170
+ cm.setDisabled('col_before', !p);
171
+ cm.setDisabled('row_after', !p);
172
+ cm.setDisabled('row_before', !p);
173
+ cm.setDisabled('row_props', !p);
174
+ cm.setDisabled('cell_props', !p);
175
+ cm.setDisabled('split_cells', !p || (parseInt(ed.dom.getAttrib(p, 'colspan', '1')) < 2 && parseInt(ed.dom.getAttrib(p, 'rowspan', '1')) < 2));
176
+ cm.setDisabled('merge_cells', !p);
177
+ });
178
+
179
+ // Padd empty table cells
180
+ if (!tinymce.isIE) {
181
+ ed.onBeforeSetContent.add(function(ed, o) {
182
+ if (o.initial)
183
+ o.content = o.content.replace(/<(td|th)([^>]+|)>\s*<\/(td|th)>/g, tinymce.isOpera ? '<$1$2>&nbsp;</$1>' : '<$1$2><br mce_bogus="1" /></$1>');
184
+ });
185
+ }
186
+ },
187
+
188
+ execCommand : function(cmd, ui, val) {
189
+ var ed = this.editor, b;
190
+
191
+ // Is table command
192
+ switch (cmd) {
193
+ case "mceTableMoveToNextRow":
194
+ case "mceInsertTable":
195
+ case "mceTableRowProps":
196
+ case "mceTableCellProps":
197
+ case "mceTableSplitCells":
198
+ case "mceTableMergeCells":
199
+ case "mceTableInsertRowBefore":
200
+ case "mceTableInsertRowAfter":
201
+ case "mceTableDeleteRow":
202
+ case "mceTableInsertColBefore":
203
+ case "mceTableInsertColAfter":
204
+ case "mceTableDeleteCol":
205
+ case "mceTableCutRow":
206
+ case "mceTableCopyRow":
207
+ case "mceTablePasteRowBefore":
208
+ case "mceTablePasteRowAfter":
209
+ case "mceTableDelete":
210
+ ed.execCommand('mceBeginUndoLevel');
211
+ this._doExecCommand(cmd, ui, val);
212
+ ed.execCommand('mceEndUndoLevel');
213
+
214
+ return true;
215
+ }
216
+
217
+ // Pass to next handler in chain
218
+ return false;
219
+ },
220
+
221
+ getInfo : function() {
222
+ return {
223
+ longname : 'Tables',
224
+ author : 'Moxiecode Systems AB',
225
+ authorurl : 'http://tinymce.moxiecode.com',
226
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/table',
227
+ version : tinymce.majorVersion + "." + tinymce.minorVersion
228
+ };
229
+ },
230
+
231
+ // Private plugin internal methods
232
+
233
+ /**
234
+ * Executes the table commands.
235
+ */
236
+ _doExecCommand : function(command, user_interface, value) {
237
+ var inst = this.editor, ed = inst, url = this.url;
238
+ var focusElm = inst.selection.getNode();
239
+ var trElm = inst.dom.getParent(focusElm, "tr");
240
+ var tdElm = inst.dom.getParent(focusElm, "td,th");
241
+ var tableElm = inst.dom.getParent(focusElm, "table");
242
+ var doc = inst.contentWindow.document;
243
+ var tableBorder = tableElm ? tableElm.getAttribute("border") : "";
244
+
245
+ // Get first TD if no TD found
246
+ if (trElm && tdElm == null)
247
+ tdElm = trElm.cells[0];
248
+
249
+ function inArray(ar, v) {
250
+ for (var i=0; i<ar.length; i++) {
251
+ // Is array
252
+ if (ar[i].length > 0 && inArray(ar[i], v))
253
+ return true;
254
+
255
+ // Found value
256
+ if (ar[i] == v)
257
+ return true;
258
+ }
259
+
260
+ return false;
261
+ }
262
+
263
+ function select(dx, dy) {
264
+ var td;
265
+
266
+ grid = getTableGrid(tableElm);
267
+ dx = dx || 0;
268
+ dy = dy || 0;
269
+ dx = Math.max(cpos.cellindex + dx, 0);
270
+ dy = Math.max(cpos.rowindex + dy, 0);
271
+
272
+ // Recalculate grid and select
273
+ inst.execCommand('mceRepaint');
274
+ td = getCell(grid, dy, dx);
275
+
276
+ if (td) {
277
+ inst.selection.select(td.firstChild || td);
278
+ inst.selection.collapse(1);
279
+ }
280
+ };
281
+
282
+ function makeTD() {
283
+ var newTD = doc.createElement("td");
284
+
285
+ if (!tinymce.isIE)
286
+ newTD.innerHTML = '<br mce_bogus="1"/>';
287
+ }
288
+
289
+ function getColRowSpan(td) {
290
+ var colspan = inst.dom.getAttrib(td, "colspan");
291
+ var rowspan = inst.dom.getAttrib(td, "rowspan");
292
+
293
+ colspan = colspan == "" ? 1 : parseInt(colspan);
294
+ rowspan = rowspan == "" ? 1 : parseInt(rowspan);
295
+
296
+ return {colspan : colspan, rowspan : rowspan};
297
+ }
298
+
299
+ function getCellPos(grid, td) {
300
+ var x, y;
301
+
302
+ for (y=0; y<grid.length; y++) {
303
+ for (x=0; x<grid[y].length; x++) {
304
+ if (grid[y][x] == td)
305
+ return {cellindex : x, rowindex : y};
306
+ }
307
+ }
308
+
309
+ return null;
310
+ }
311
+
312
+ function getCell(grid, row, col) {
313
+ if (grid[row] && grid[row][col])
314
+ return grid[row][col];
315
+
316
+ return null;
317
+ }
318
+
319
+ function getNextCell(table, cell) {
320
+ var cells = [], x = 0, i, j, cell, nextCell;
321
+
322
+ for (i = 0; i < table.rows.length; i++)
323
+ for (j = 0; j < table.rows[i].cells.length; j++, x++)
324
+ cells[x] = table.rows[i].cells[j];
325
+
326
+ for (i = 0; i < cells.length; i++)
327
+ if (cells[i] == cell)
328
+ if (nextCell = cells[i+1])
329
+ return nextCell;
330
+ }
331
+
332
+ function getTableGrid(table) {
333
+ var grid = [], rows = table.rows, x, y, td, sd, xstart, x2, y2;
334
+
335
+ for (y=0; y<rows.length; y++) {
336
+ for (x=0; x<rows[y].cells.length; x++) {
337
+ td = rows[y].cells[x];
338
+ sd = getColRowSpan(td);
339
+
340
+ // All ready filled
341
+ for (xstart = x; grid[y] && grid[y][xstart]; xstart++) ;
342
+
343
+ // Fill box
344
+ for (y2=y; y2<y+sd['rowspan']; y2++) {
345
+ if (!grid[y2])
346
+ grid[y2] = [];
347
+
348
+ for (x2=xstart; x2<xstart+sd['colspan']; x2++)
349
+ grid[y2][x2] = td;
350
+ }
351
+ }
352
+ }
353
+
354
+ return grid;
355
+ }
356
+
357
+ function trimRow(table, tr, td, new_tr) {
358
+ var grid = getTableGrid(table), cpos = getCellPos(grid, td);
359
+ var cells, lastElm;
360
+
361
+ // Time to crop away some
362
+ if (new_tr.cells.length != tr.childNodes.length) {
363
+ cells = tr.childNodes;
364
+ lastElm = null;
365
+
366
+ for (var x=0; td = getCell(grid, cpos.rowindex, x); x++) {
367
+ var remove = true;
368
+ var sd = getColRowSpan(td);
369
+
370
+ // Remove due to rowspan
371
+ if (inArray(cells, td)) {
372
+ new_tr.childNodes[x]._delete = true;
373
+ } else if ((lastElm == null || td != lastElm) && sd.colspan > 1) { // Remove due to colspan
374
+ for (var i=x; i<x+td.colSpan; i++)
375
+ new_tr.childNodes[i]._delete = true;
376
+ }
377
+
378
+ if ((lastElm == null || td != lastElm) && sd.rowspan > 1)
379
+ td.rowSpan = sd.rowspan + 1;
380
+
381
+ lastElm = td;
382
+ }
383
+
384
+ deleteMarked(tableElm);
385
+ }
386
+ }
387
+
388
+ function prevElm(node, name) {
389
+ while ((node = node.previousSibling) != null) {
390
+ if (node.nodeName == name)
391
+ return node;
392
+ }
393
+
394
+ return null;
395
+ }
396
+
397
+ function nextElm(node, names) {
398
+ var namesAr = names.split(',');
399
+
400
+ while ((node = node.nextSibling) != null) {
401
+ for (var i=0; i<namesAr.length; i++) {
402
+ if (node.nodeName.toLowerCase() == namesAr[i].toLowerCase() )
403
+ return node;
404
+ }
405
+ }
406
+
407
+ return null;
408
+ }
409
+
410
+ function deleteMarked(tbl) {
411
+ if (tbl.rows == 0)
412
+ return;
413
+
414
+ var tr = tbl.rows[0];
415
+ do {
416
+ var next = nextElm(tr, "TR");
417
+
418
+ // Delete row
419
+ if (tr._delete) {
420
+ tr.parentNode.removeChild(tr);
421
+ continue;
422
+ }
423
+
424
+ // Delete cells
425
+ var td = tr.cells[0];
426
+ if (td.cells > 1) {
427
+ do {
428
+ var nexttd = nextElm(td, "TD,TH");
429
+
430
+ if (td._delete)
431
+ td.parentNode.removeChild(td);
432
+ } while ((td = nexttd) != null);
433
+ }
434
+ } while ((tr = next) != null);
435
+ }
436
+
437
+ function addRows(td_elm, tr_elm, rowspan) {
438
+ // Add rows
439
+ td_elm.rowSpan = 1;
440
+ var trNext = nextElm(tr_elm, "TR");
441
+ for (var i=1; i<rowspan && trNext; i++) {
442
+ var newTD = doc.createElement("td");
443
+
444
+ if (!tinymce.isIE)
445
+ newTD.innerHTML = '<br mce_bogus="1"/>';
446
+
447
+ if (tinymce.isIE)
448
+ trNext.insertBefore(newTD, trNext.cells(td_elm.cellIndex));
449
+ else
450
+ trNext.insertBefore(newTD, trNext.cells[td_elm.cellIndex]);
451
+
452
+ trNext = nextElm(trNext, "TR");
453
+ }
454
+ }
455
+
456
+ function copyRow(doc, table, tr) {
457
+ var grid = getTableGrid(table);
458
+ var newTR = tr.cloneNode(false);
459
+ var cpos = getCellPos(grid, tr.cells[0]);
460
+ var lastCell = null;
461
+ var tableBorder = inst.dom.getAttrib(table, "border");
462
+ var tdElm = null;
463
+
464
+ for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {
465
+ var newTD = null;
466
+
467
+ if (lastCell != tdElm) {
468
+ for (var i=0; i<tr.cells.length; i++) {
469
+ if (tdElm == tr.cells[i]) {
470
+ newTD = tdElm.cloneNode(true);
471
+ break;
472
+ }
473
+ }
474
+ }
475
+
476
+ if (newTD == null) {
477
+ newTD = doc.createElement("td");
478
+
479
+ if (!tinymce.isIE)
480
+ newTD.innerHTML = '<br mce_bogus="1"/>';
481
+ }
482
+
483
+ // Reset col/row span
484
+ newTD.colSpan = 1;
485
+ newTD.rowSpan = 1;
486
+
487
+ newTR.appendChild(newTD);
488
+
489
+ lastCell = tdElm;
490
+ }
491
+
492
+ return newTR;
493
+ }
494
+
495
+ // ---- Commands -----
496
+
497
+ // Handle commands
498
+ switch (command) {
499
+ case "mceTableMoveToNextRow":
500
+ var nextCell = getNextCell(tableElm, tdElm);
501
+
502
+ if (!nextCell) {
503
+ inst.execCommand("mceTableInsertRowAfter", tdElm);
504
+ nextCell = getNextCell(tableElm, tdElm);
505
+ }
506
+
507
+ inst.selection.select(nextCell);
508
+ inst.selection.collapse(true);
509
+
510
+ return true;
511
+
512
+ case "mceTableRowProps":
513
+ if (trElm == null)
514
+ return true;
515
+
516
+ if (user_interface) {
517
+ inst.windowManager.open({
518
+ url : url + '/row.htm',
519
+ width : 400 + parseInt(inst.getLang('table.rowprops_delta_width', 0)),
520
+ height : 295 + parseInt(inst.getLang('table.rowprops_delta_height', 0)),
521
+ inline : 1
522
+ }, {
523
+ plugin_url : url
524
+ });
525
+ }
526
+
527
+ return true;
528
+
529
+ case "mceTableCellProps":
530
+ if (tdElm == null)
531
+ return true;
532
+
533
+ if (user_interface) {
534
+ inst.windowManager.open({
535
+ url : url + '/cell.htm',
536
+ width : 400 + parseInt(inst.getLang('table.cellprops_delta_width', 0)),
537
+ height : 295 + parseInt(inst.getLang('table.cellprops_delta_height', 0)),
538
+ inline : 1
539
+ }, {
540
+ plugin_url : url
541
+ });
542
+ }
543
+
544
+ return true;
545
+
546
+ case "mceInsertTable":
547
+ if (user_interface) {
548
+ inst.windowManager.open({
549
+ url : url + '/table.htm',
550
+ width : 400 + parseInt(inst.getLang('table.table_delta_width', 0)),
551
+ height : 320 + parseInt(inst.getLang('table.table_delta_height', 0)),
552
+ inline : 1
553
+ }, {
554
+ plugin_url : url,
555
+ action : value ? value.action : 0
556
+ });
557
+ }
558
+
559
+ return true;
560
+
561
+ case "mceTableDelete":
562
+ var table = inst.dom.getParent(inst.selection.getNode(), "table");
563
+ if (table) {
564
+ table.parentNode.removeChild(table);
565
+ inst.execCommand('mceRepaint');
566
+ }
567
+ return true;
568
+
569
+ case "mceTableSplitCells":
570
+ case "mceTableMergeCells":
571
+ case "mceTableInsertRowBefore":
572
+ case "mceTableInsertRowAfter":
573
+ case "mceTableDeleteRow":
574
+ case "mceTableInsertColBefore":
575
+ case "mceTableInsertColAfter":
576
+ case "mceTableDeleteCol":
577
+ case "mceTableCutRow":
578
+ case "mceTableCopyRow":
579
+ case "mceTablePasteRowBefore":
580
+ case "mceTablePasteRowAfter":
581
+ // No table just return (invalid command)
582
+ if (!tableElm)
583
+ return true;
584
+
585
+ // Table has a tbody use that reference
586
+ // Changed logic by ApTest 2005.07.12 (www.aptest.com)
587
+ // Now lookk at the focused element and take its parentNode. That will be a tbody or a table.
588
+ if (trElm && tableElm != trElm.parentNode)
589
+ tableElm = trElm.parentNode;
590
+
591
+ if (tableElm && trElm) {
592
+ switch (command) {
593
+ case "mceTableCutRow":
594
+ if (!trElm || !tdElm)
595
+ return true;
596
+
597
+ inst.tableRowClipboard = copyRow(doc, tableElm, trElm);
598
+ inst.execCommand("mceTableDeleteRow");
599
+ break;
600
+
601
+ case "mceTableCopyRow":
602
+ if (!trElm || !tdElm)
603
+ return true;
604
+
605
+ inst.tableRowClipboard = copyRow(doc, tableElm, trElm);
606
+ break;
607
+
608
+ case "mceTablePasteRowBefore":
609
+ if (!trElm || !tdElm)
610
+ return true;
611
+
612
+ var newTR = inst.tableRowClipboard.cloneNode(true);
613
+
614
+ var prevTR = prevElm(trElm, "TR");
615
+ if (prevTR != null)
616
+ trimRow(tableElm, prevTR, prevTR.cells[0], newTR);
617
+
618
+ trElm.parentNode.insertBefore(newTR, trElm);
619
+ break;
620
+
621
+ case "mceTablePasteRowAfter":
622
+ if (!trElm || !tdElm)
623
+ return true;
624
+
625
+ var nextTR = nextElm(trElm, "TR");
626
+ var newTR = inst.tableRowClipboard.cloneNode(true);
627
+
628
+ trimRow(tableElm, trElm, tdElm, newTR);
629
+
630
+ if (nextTR == null)
631
+ trElm.parentNode.appendChild(newTR);
632
+ else
633
+ nextTR.parentNode.insertBefore(newTR, nextTR);
634
+
635
+ break;
636
+
637
+ case "mceTableInsertRowBefore":
638
+ if (!trElm || !tdElm)
639
+ return true;
640
+
641
+ var grid = getTableGrid(tableElm);
642
+ var cpos = getCellPos(grid, tdElm);
643
+ var newTR = doc.createElement("tr");
644
+ var lastTDElm = null;
645
+
646
+ cpos.rowindex--;
647
+ if (cpos.rowindex < 0)
648
+ cpos.rowindex = 0;
649
+
650
+ // Create cells
651
+ for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {
652
+ if (tdElm != lastTDElm) {
653
+ var sd = getColRowSpan(tdElm);
654
+
655
+ if (sd['rowspan'] == 1) {
656
+ var newTD = doc.createElement("td");
657
+
658
+ if (!tinymce.isIE)
659
+ newTD.innerHTML = '<br mce_bogus="1"/>';
660
+
661
+ newTD.colSpan = tdElm.colSpan;
662
+
663
+ newTR.appendChild(newTD);
664
+ } else
665
+ tdElm.rowSpan = sd['rowspan'] + 1;
666
+
667
+ lastTDElm = tdElm;
668
+ }
669
+ }
670
+
671
+ trElm.parentNode.insertBefore(newTR, trElm);
672
+ select(0, 1);
673
+ break;
674
+
675
+ case "mceTableInsertRowAfter":
676
+ if (!trElm || !tdElm)
677
+ return true;
678
+
679
+ var grid = getTableGrid(tableElm);
680
+ var cpos = getCellPos(grid, tdElm);
681
+ var newTR = doc.createElement("tr");
682
+ var lastTDElm = null;
683
+
684
+ // Create cells
685
+ for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {
686
+ if (tdElm != lastTDElm) {
687
+ var sd = getColRowSpan(tdElm);
688
+
689
+ if (sd['rowspan'] == 1) {
690
+ var newTD = doc.createElement("td");
691
+
692
+ if (!tinymce.isIE)
693
+ newTD.innerHTML = '<br mce_bogus="1"/>';
694
+
695
+ newTD.colSpan = tdElm.colSpan;
696
+
697
+ newTR.appendChild(newTD);
698
+ } else
699
+ tdElm.rowSpan = sd['rowspan'] + 1;
700
+
701
+ lastTDElm = tdElm;
702
+ }
703
+ }
704
+
705
+ if (newTR.hasChildNodes()) {
706
+ var nextTR = nextElm(trElm, "TR");
707
+ if (nextTR)
708
+ nextTR.parentNode.insertBefore(newTR, nextTR);
709
+ else
710
+ tableElm.appendChild(newTR);
711
+ }
712
+
713
+ select(0, 1);
714
+ break;
715
+
716
+ case "mceTableDeleteRow":
717
+ if (!trElm || !tdElm)
718
+ return true;
719
+
720
+ var grid = getTableGrid(tableElm);
721
+ var cpos = getCellPos(grid, tdElm);
722
+
723
+ // Only one row, remove whole table
724
+ if (grid.length == 1 && tableElm.nodeName == 'TBODY') {
725
+ inst.dom.remove(inst.dom.getParent(tableElm, "table"));
726
+ return true;
727
+ }
728
+
729
+ // Move down row spanned cells
730
+ var cells = trElm.cells;
731
+ var nextTR = nextElm(trElm, "TR");
732
+ for (var x=0; x<cells.length; x++) {
733
+ if (cells[x].rowSpan > 1) {
734
+ var newTD = cells[x].cloneNode(true);
735
+ var sd = getColRowSpan(cells[x]);
736
+
737
+ newTD.rowSpan = sd.rowspan - 1;
738
+
739
+ var nextTD = nextTR.cells[x];
740
+
741
+ if (nextTD == null)
742
+ nextTR.appendChild(newTD);
743
+ else
744
+ nextTR.insertBefore(newTD, nextTD);
745
+ }
746
+ }
747
+
748
+ // Delete cells
749
+ var lastTDElm = null;
750
+ for (var x=0; tdElm = getCell(grid, cpos.rowindex, x); x++) {
751
+ if (tdElm != lastTDElm) {
752
+ var sd = getColRowSpan(tdElm);
753
+
754
+ if (sd.rowspan > 1) {
755
+ tdElm.rowSpan = sd.rowspan - 1;
756
+ } else {
757
+ trElm = tdElm.parentNode;
758
+
759
+ if (trElm.parentNode)
760
+ trElm._delete = true;
761
+ }
762
+
763
+ lastTDElm = tdElm;
764
+ }
765
+ }
766
+
767
+ deleteMarked(tableElm);
768
+
769
+ select(0, -1);
770
+ break;
771
+
772
+ case "mceTableInsertColBefore":
773
+ if (!trElm || !tdElm)
774
+ return true;
775
+
776
+ var grid = getTableGrid(inst.dom.getParent(tableElm, "table"));
777
+ var cpos = getCellPos(grid, tdElm);
778
+ var lastTDElm = null;
779
+
780
+ for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {
781
+ if (tdElm != lastTDElm) {
782
+ var sd = getColRowSpan(tdElm);
783
+
784
+ if (sd['colspan'] == 1) {
785
+ var newTD = doc.createElement(tdElm.nodeName);
786
+
787
+ if (!tinymce.isIE)
788
+ newTD.innerHTML = '<br mce_bogus="1"/>';
789
+
790
+ newTD.rowSpan = tdElm.rowSpan;
791
+
792
+ tdElm.parentNode.insertBefore(newTD, tdElm);
793
+ } else
794
+ tdElm.colSpan++;
795
+
796
+ lastTDElm = tdElm;
797
+ }
798
+ }
799
+
800
+ select();
801
+ break;
802
+
803
+ case "mceTableInsertColAfter":
804
+ if (!trElm || !tdElm)
805
+ return true;
806
+
807
+ var grid = getTableGrid(inst.dom.getParent(tableElm, "table"));
808
+ var cpos = getCellPos(grid, tdElm);
809
+ var lastTDElm = null;
810
+
811
+ for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {
812
+ if (tdElm != lastTDElm) {
813
+ var sd = getColRowSpan(tdElm);
814
+
815
+ if (sd['colspan'] == 1) {
816
+ var newTD = doc.createElement(tdElm.nodeName);
817
+
818
+ if (!tinymce.isIE)
819
+ newTD.innerHTML = '<br mce_bogus="1"/>';
820
+
821
+ newTD.rowSpan = tdElm.rowSpan;
822
+
823
+ var nextTD = nextElm(tdElm, "TD,TH");
824
+ if (nextTD == null)
825
+ tdElm.parentNode.appendChild(newTD);
826
+ else
827
+ nextTD.parentNode.insertBefore(newTD, nextTD);
828
+ } else
829
+ tdElm.colSpan++;
830
+
831
+ lastTDElm = tdElm;
832
+ }
833
+ }
834
+
835
+ select(1);
836
+ break;
837
+
838
+ case "mceTableDeleteCol":
839
+ if (!trElm || !tdElm)
840
+ return true;
841
+
842
+ var grid = getTableGrid(tableElm);
843
+ var cpos = getCellPos(grid, tdElm);
844
+ var lastTDElm = null;
845
+
846
+ // Only one col, remove whole table
847
+ if ((grid.length > 1 && grid[0].length <= 1) && tableElm.nodeName == 'TBODY') {
848
+ inst.dom.remove(inst.dom.getParent(tableElm, "table"));
849
+ return true;
850
+ }
851
+
852
+ // Delete cells
853
+ for (var y=0; tdElm = getCell(grid, y, cpos.cellindex); y++) {
854
+ if (tdElm != lastTDElm) {
855
+ var sd = getColRowSpan(tdElm);
856
+
857
+ if (sd['colspan'] > 1)
858
+ tdElm.colSpan = sd['colspan'] - 1;
859
+ else {
860
+ if (tdElm.parentNode)
861
+ tdElm.parentNode.removeChild(tdElm);
862
+ }
863
+
864
+ lastTDElm = tdElm;
865
+ }
866
+ }
867
+
868
+ select(-1);
869
+ break;
870
+
871
+ case "mceTableSplitCells":
872
+ if (!trElm || !tdElm)
873
+ return true;
874
+
875
+ var spandata = getColRowSpan(tdElm);
876
+
877
+ var colspan = spandata["colspan"];
878
+ var rowspan = spandata["rowspan"];
879
+
880
+ // Needs splitting
881
+ if (colspan > 1 || rowspan > 1) {
882
+ // Generate cols
883
+ tdElm.colSpan = 1;
884
+ for (var i=1; i<colspan; i++) {
885
+ var newTD = doc.createElement("td");
886
+
887
+ if (!tinymce.isIE)
888
+ newTD.innerHTML = '<br mce_bogus="1"/>';
889
+
890
+ trElm.insertBefore(newTD, nextElm(tdElm, "TD,TH"));
891
+
892
+ if (rowspan > 1)
893
+ addRows(newTD, trElm, rowspan);
894
+ }
895
+
896
+ addRows(tdElm, trElm, rowspan);
897
+ }
898
+
899
+ // Apply visual aids
900
+ tableElm = inst.dom.getParent(inst.selection.getNode(), "table");
901
+ break;
902
+
903
+ case "mceTableMergeCells":
904
+ var rows = [];
905
+ var sel = inst.selection.getSel();
906
+ var grid = getTableGrid(tableElm);
907
+
908
+ if (tinymce.isIE || sel.rangeCount == 1) {
909
+ if (user_interface) {
910
+ // Setup template
911
+ var sp = getColRowSpan(tdElm);
912
+
913
+ inst.windowManager.open({
914
+ url : url + '/merge_cells.htm',
915
+ width : 240 + parseInt(inst.getLang('table.merge_cells_delta_width', 0)),
916
+ height : 110 + parseInt(inst.getLang('table.merge_cells_delta_height', 0)),
917
+ inline : 1
918
+ }, {
919
+ action : "update",
920
+ numcols : sp.colspan,
921
+ numrows : sp.rowspan,
922
+ plugin_url : url
923
+ });
924
+
925
+ return true;
926
+ } else {
927
+ var numRows = parseInt(value['numrows']);
928
+ var numCols = parseInt(value['numcols']);
929
+ var cpos = getCellPos(grid, tdElm);
930
+
931
+ if (("" + numRows) == "NaN")
932
+ numRows = 1;
933
+
934
+ if (("" + numCols) == "NaN")
935
+ numCols = 1;
936
+
937
+ // Get rows and cells
938
+ var tRows = tableElm.rows;
939
+ for (var y=cpos.rowindex; y<grid.length; y++) {
940
+ var rowCells = [];
941
+
942
+ for (var x=cpos.cellindex; x<grid[y].length; x++) {
943
+ var td = getCell(grid, y, x);
944
+
945
+ if (td && !inArray(rows, td) && !inArray(rowCells, td)) {
946
+ var cp = getCellPos(grid, td);
947
+
948
+ // Within range
949
+ if (cp.cellindex < cpos.cellindex+numCols && cp.rowindex < cpos.rowindex+numRows)
950
+ rowCells[rowCells.length] = td;
951
+ }
952
+ }
953
+
954
+ if (rowCells.length > 0)
955
+ rows[rows.length] = rowCells;
956
+
957
+ var td = getCell(grid, cpos.rowindex, cpos.cellindex);
958
+ each(ed.dom.select('br', td), function(e, i) {
959
+ if (i > 0 && ed.dom.getAttrib('mce_bogus'))
960
+ ed.dom.remove(e);
961
+ });
962
+ }
963
+
964
+ //return true;
965
+ }
966
+ } else {
967
+ var cells = [];
968
+ var sel = inst.selection.getSel();
969
+ var lastTR = null;
970
+ var curRow = null;
971
+ var x1 = -1, y1 = -1, x2, y2;
972
+
973
+ // Only one cell selected, whats the point?
974
+ if (sel.rangeCount < 2)
975
+ return true;
976
+
977
+ // Get all selected cells
978
+ for (var i=0; i<sel.rangeCount; i++) {
979
+ var rng = sel.getRangeAt(i);
980
+ var tdElm = rng.startContainer.childNodes[rng.startOffset];
981
+
982
+ if (!tdElm)
983
+ break;
984
+
985
+ if (tdElm.nodeName == "TD" || tdElm.nodeName == "TH")
986
+ cells[cells.length] = tdElm;
987
+ }
988
+
989
+ // Get rows and cells
990
+ var tRows = tableElm.rows;
991
+ for (var y=0; y<tRows.length; y++) {
992
+ var rowCells = [];
993
+
994
+ for (var x=0; x<tRows[y].cells.length; x++) {
995
+ var td = tRows[y].cells[x];
996
+
997
+ for (var i=0; i<cells.length; i++) {
998
+ if (td == cells[i]) {
999
+ rowCells[rowCells.length] = td;
1000
+ }
1001
+ }
1002
+ }
1003
+
1004
+ if (rowCells.length > 0)
1005
+ rows[rows.length] = rowCells;
1006
+ }
1007
+
1008
+ // Find selected cells in grid and box
1009
+ var curRow = [];
1010
+ var lastTR = null;
1011
+ for (var y=0; y<grid.length; y++) {
1012
+ for (var x=0; x<grid[y].length; x++) {
1013
+ grid[y][x]._selected = false;
1014
+
1015
+ for (var i=0; i<cells.length; i++) {
1016
+ if (grid[y][x] == cells[i]) {
1017
+ // Get start pos
1018
+ if (x1 == -1) {
1019
+ x1 = x;
1020
+ y1 = y;
1021
+ }
1022
+
1023
+ // Get end pos
1024
+ x2 = x;
1025
+ y2 = y;
1026
+
1027
+ grid[y][x]._selected = true;
1028
+ }
1029
+ }
1030
+ }
1031
+ }
1032
+
1033
+ // Is there gaps, if so deny
1034
+ for (var y=y1; y<=y2; y++) {
1035
+ for (var x=x1; x<=x2; x++) {
1036
+ if (!grid[y][x]._selected) {
1037
+ alert("Invalid selection for merge.");
1038
+ return true;
1039
+ }
1040
+ }
1041
+ }
1042
+ }
1043
+
1044
+ // Validate selection and get total rowspan and colspan
1045
+ var rowSpan = 1, colSpan = 1;
1046
+
1047
+ // Validate horizontal and get total colspan
1048
+ var lastRowSpan = -1;
1049
+ for (var y=0; y<rows.length; y++) {
1050
+ var rowColSpan = 0;
1051
+
1052
+ for (var x=0; x<rows[y].length; x++) {
1053
+ var sd = getColRowSpan(rows[y][x]);
1054
+
1055
+ rowColSpan += sd['colspan'];
1056
+
1057
+ if (lastRowSpan != -1 && sd['rowspan'] != lastRowSpan) {
1058
+ alert("Invalid selection for merge.");
1059
+ return true;
1060
+ }
1061
+
1062
+ lastRowSpan = sd['rowspan'];
1063
+ }
1064
+
1065
+ if (rowColSpan > colSpan)
1066
+ colSpan = rowColSpan;
1067
+
1068
+ lastRowSpan = -1;
1069
+ }
1070
+
1071
+ // Validate vertical and get total rowspan
1072
+ var lastColSpan = -1;
1073
+ for (var x=0; x<rows[0].length; x++) {
1074
+ var colRowSpan = 0;
1075
+
1076
+ for (var y=0; y<rows.length; y++) {
1077
+ var sd = getColRowSpan(rows[y][x]);
1078
+
1079
+ colRowSpan += sd['rowspan'];
1080
+
1081
+ if (lastColSpan != -1 && sd['colspan'] != lastColSpan) {
1082
+ alert("Invalid selection for merge.");
1083
+ return true;
1084
+ }
1085
+
1086
+ lastColSpan = sd['colspan'];
1087
+ }
1088
+
1089
+ if (colRowSpan > rowSpan)
1090
+ rowSpan = colRowSpan;
1091
+
1092
+ lastColSpan = -1;
1093
+ }
1094
+
1095
+ // Setup td
1096
+ tdElm = rows[0][0];
1097
+ tdElm.rowSpan = rowSpan;
1098
+ tdElm.colSpan = colSpan;
1099
+
1100
+ // Merge cells
1101
+ for (var y=0; y<rows.length; y++) {
1102
+ for (var x=0; x<rows[y].length; x++) {
1103
+ var html = rows[y][x].innerHTML;
1104
+ var chk = html.replace(/[ \t\r\n]/g, "");
1105
+
1106
+ if (chk != "<br/>" && chk != "<br>" && chk != '<br mce_bogus="1"/>' && (x+y > 0))
1107
+ tdElm.innerHTML += html;
1108
+
1109
+ // Not current cell
1110
+ if (rows[y][x] != tdElm && !rows[y][x]._deleted) {
1111
+ var cpos = getCellPos(grid, rows[y][x]);
1112
+ var tr = rows[y][x].parentNode;
1113
+
1114
+ tr.removeChild(rows[y][x]);
1115
+ rows[y][x]._deleted = true;
1116
+
1117
+ // Empty TR, remove it
1118
+ if (!tr.hasChildNodes()) {
1119
+ tr.parentNode.removeChild(tr);
1120
+
1121
+ var lastCell = null;
1122
+ for (var x=0; cellElm = getCell(grid, cpos.rowindex, x); x++) {
1123
+ if (cellElm != lastCell && cellElm.rowSpan > 1)
1124
+ cellElm.rowSpan--;
1125
+
1126
+ lastCell = cellElm;
1127
+ }
1128
+
1129
+ if (tdElm.rowSpan > 1)
1130
+ tdElm.rowSpan--;
1131
+ }
1132
+ }
1133
+ }
1134
+ }
1135
+
1136
+ // Remove all but one bogus br
1137
+ each(ed.dom.select('br', tdElm), function(e, i) {
1138
+ if (i > 0 && ed.dom.getAttrib(e, 'mce_bogus'))
1139
+ ed.dom.remove(e);
1140
+ });
1141
+
1142
+ break;
1143
+ }
1144
+
1145
+ tableElm = inst.dom.getParent(inst.selection.getNode(), "table");
1146
+ inst.addVisual(tableElm);
1147
+ inst.nodeChanged();
1148
+ }
1149
+
1150
+ return true;
1151
+ }
1152
+
1153
+ // Pass to next handler in chain
1154
+ return false;
1155
+ }
1156
+ });
1157
+
1158
+ // Register plugin
1159
+ tinymce.PluginManager.add('table', tinymce.plugins.TablePlugin);
1160
+ })();