typo 4.1 → 4.1.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (251) hide show
  1. data/Rakefile +1 -1
  2. data/TODO-4.2 +14 -0
  3. data/TODO.MULTIUSERS +45 -0
  4. data/app/controllers/admin/base_controller.rb +18 -0
  5. data/app/controllers/admin/general_controller.rb +14 -0
  6. data/app/controllers/application.rb +2 -1
  7. data/app/controllers/articles_controller.rb +18 -21
  8. data/app/helpers/admin/base_helper.rb +4 -4
  9. data/app/helpers/admin/feedback_helper.rb +3 -3
  10. data/app/helpers/application_helper.rb +2 -6
  11. data/app/helpers/sidebar_helper.rb +2 -2
  12. data/app/models/blog.rb +9 -1
  13. data/app/models/category.rb +9 -9
  14. data/app/models/comment.rb +1 -1
  15. data/app/models/content_state/presumed_ham.rb +2 -2
  16. data/app/models/resource.rb +2 -0
  17. data/app/views/admin/categories/_categories.rhtml +10 -6
  18. data/app/views/admin/categories/edit.rhtml +3 -1
  19. data/app/views/admin/comments/_form.rhtml +3 -3
  20. data/app/views/admin/comments/list.rhtml +7 -5
  21. data/app/views/admin/comments/new.rhtml +3 -1
  22. data/app/views/admin/comments/show.rhtml +3 -1
  23. data/app/views/admin/content/_articles.rhtml +1 -1
  24. data/app/views/admin/content/_form.rhtml +4 -2
  25. data/app/views/admin/content/new.rhtml +1 -0
  26. data/app/views/admin/content/preview.rhtml +8 -8
  27. data/app/views/admin/feedback/_item.rhtml +3 -1
  28. data/app/views/admin/feedback/list.rhtml +4 -4
  29. data/app/views/admin/general/index.rhtml +14 -1
  30. data/app/views/admin/pages/_form.rhtml +1 -1
  31. data/app/views/admin/pages/destroy.rhtml +1 -1
  32. data/app/views/admin/pages/new.rhtml +1 -0
  33. data/app/views/admin/shared/_edit.rhtml +2 -2
  34. data/app/views/layouts/administration.rhtml +5 -2
  35. data/app/views/layouts/minimal.rhtml +134 -2
  36. data/config/boot.rb +1 -1
  37. data/config/environment.rb +11 -3
  38. data/config/environments/test.rb +0 -7
  39. data/config/routes.rb +3 -0
  40. data/db/migrate/004_add_sidebars.rb +21 -3
  41. data/db/migrate/056_create_notifications.rb +1 -1
  42. data/db/migrate/062_add_sitealizer_plugin.rb +18 -0
  43. data/db/schema.mysql-v3.sql +217 -0
  44. data/db/schema.mysql.sql +31 -5
  45. data/db/schema.postgresql.sql +31 -6
  46. data/db/schema.rb +17 -7
  47. data/db/schema.sqlite.sql +31 -6
  48. data/db/schema.sqlserver.sql +32 -6
  49. data/db/schema_version +1 -1
  50. data/lang/de_DE.rb +493 -0
  51. data/lang/fr_FR.rb +28 -4
  52. data/lang/ro_RO.rb +554 -0
  53. data/lib/tasks/release.rake +7 -7
  54. data/lib/typo_version.rb +1 -1
  55. data/public/images/sitealizer/bar.gif +0 -0
  56. data/public/images/sitealizer/uv.png +0 -0
  57. data/public/images/sitealizer/vh.png +0 -0
  58. data/public/javascripts/tiny_mce/blank.htm +9 -0
  59. data/public/javascripts/tiny_mce/langs/en.js +41 -0
  60. data/public/javascripts/tiny_mce/license.txt +504 -0
  61. data/public/javascripts/tiny_mce/themes/advanced/about.htm +52 -0
  62. data/public/javascripts/tiny_mce/themes/advanced/anchor.htm +33 -0
  63. data/public/javascripts/tiny_mce/themes/advanced/charmap.htm +53 -0
  64. data/public/javascripts/tiny_mce/themes/advanced/color_picker.htm +13 -0
  65. data/public/javascripts/tiny_mce/themes/advanced/css/editor_content.css +58 -0
  66. data/public/javascripts/tiny_mce/themes/advanced/css/editor_popup.css +331 -0
  67. data/public/javascripts/tiny_mce/themes/advanced/css/editor_ui.css +97 -0
  68. data/public/javascripts/tiny_mce/themes/advanced/docs/en/about.htm +31 -0
  69. data/public/javascripts/tiny_mce/themes/advanced/docs/en/common_buttons.htm +162 -0
  70. data/public/javascripts/tiny_mce/themes/advanced/docs/en/create_accessible_content.htm +45 -0
  71. data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_anchor_window.gif +0 -0
  72. data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_image_window.gif +0 -0
  73. data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_link_window.gif +0 -0
  74. data/public/javascripts/tiny_mce/themes/advanced/docs/en/images/insert_table_window.gif +0 -0
  75. data/public/javascripts/tiny_mce/themes/advanced/docs/en/index.htm +27 -0
  76. data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_anchor_button.htm +32 -0
  77. data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_image_button.htm +65 -0
  78. data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_link_button.htm +33 -0
  79. data/public/javascripts/tiny_mce/themes/advanced/docs/en/insert_table_button.htm +71 -0
  80. data/public/javascripts/tiny_mce/themes/advanced/docs/en/style.css +28 -0
  81. data/public/javascripts/tiny_mce/themes/advanced/editor_template.js +1 -0
  82. data/public/javascripts/tiny_mce/themes/advanced/editor_template_src.js +1534 -0
  83. data/public/javascripts/tiny_mce/themes/advanced/image.htm +100 -0
  84. data/public/javascripts/tiny_mce/themes/advanced/images/anchor.gif +0 -0
  85. data/public/javascripts/tiny_mce/themes/advanced/images/anchor_symbol.gif +0 -0
  86. data/public/javascripts/tiny_mce/themes/advanced/images/backcolor.gif +0 -0
  87. data/public/javascripts/tiny_mce/themes/advanced/images/bold.gif +0 -0
  88. data/public/javascripts/tiny_mce/themes/advanced/images/bold_de_se.gif +0 -0
  89. data/public/javascripts/tiny_mce/themes/advanced/images/bold_es.gif +0 -0
  90. data/public/javascripts/tiny_mce/themes/advanced/images/bold_fr.gif +0 -0
  91. data/public/javascripts/tiny_mce/themes/advanced/images/bold_ru.gif +0 -0
  92. data/public/javascripts/tiny_mce/themes/advanced/images/bold_tw.gif +0 -0
  93. data/public/javascripts/tiny_mce/themes/advanced/images/browse.gif +0 -0
  94. data/public/javascripts/tiny_mce/themes/advanced/images/bullist.gif +0 -0
  95. data/public/javascripts/tiny_mce/themes/advanced/images/button_menu.gif +0 -0
  96. data/public/javascripts/tiny_mce/themes/advanced/images/buttons.gif +0 -0
  97. data/public/javascripts/tiny_mce/themes/advanced/images/cancel_button_bg.gif +0 -0
  98. data/public/javascripts/tiny_mce/themes/advanced/images/charmap.gif +0 -0
  99. data/public/javascripts/tiny_mce/themes/advanced/images/cleanup.gif +0 -0
  100. data/public/javascripts/tiny_mce/themes/advanced/images/close.gif +0 -0
  101. data/public/javascripts/tiny_mce/themes/advanced/images/code.gif +0 -0
  102. data/public/javascripts/tiny_mce/themes/advanced/images/color.gif +0 -0
  103. data/public/javascripts/tiny_mce/themes/advanced/images/copy.gif +0 -0
  104. data/public/javascripts/tiny_mce/themes/advanced/images/custom_1.gif +0 -0
  105. data/public/javascripts/tiny_mce/themes/advanced/images/cut.gif +0 -0
  106. data/public/javascripts/tiny_mce/themes/advanced/images/forecolor.gif +0 -0
  107. data/public/javascripts/tiny_mce/themes/advanced/images/help.gif +0 -0
  108. data/public/javascripts/tiny_mce/themes/advanced/images/hr.gif +0 -0
  109. data/public/javascripts/tiny_mce/themes/advanced/images/image.gif +0 -0
  110. data/public/javascripts/tiny_mce/themes/advanced/images/indent.gif +0 -0
  111. data/public/javascripts/tiny_mce/themes/advanced/images/insert_button_bg.gif +0 -0
  112. data/public/javascripts/tiny_mce/themes/advanced/images/italic.gif +0 -0
  113. data/public/javascripts/tiny_mce/themes/advanced/images/italic_de_se.gif +0 -0
  114. data/public/javascripts/tiny_mce/themes/advanced/images/italic_es.gif +0 -0
  115. data/public/javascripts/tiny_mce/themes/advanced/images/italic_ru.gif +0 -0
  116. data/public/javascripts/tiny_mce/themes/advanced/images/italic_tw.gif +0 -0
  117. data/public/javascripts/tiny_mce/themes/advanced/images/justifycenter.gif +0 -0
  118. data/public/javascripts/tiny_mce/themes/advanced/images/justifyfull.gif +0 -0
  119. data/public/javascripts/tiny_mce/themes/advanced/images/justifyleft.gif +0 -0
  120. data/public/javascripts/tiny_mce/themes/advanced/images/justifyright.gif +0 -0
  121. data/public/javascripts/tiny_mce/themes/advanced/images/link.gif +0 -0
  122. data/public/javascripts/tiny_mce/themes/advanced/images/menu_check.gif +0 -0
  123. data/public/javascripts/tiny_mce/themes/advanced/images/newdocument.gif +0 -0
  124. data/public/javascripts/tiny_mce/themes/advanced/images/numlist.gif +0 -0
  125. data/public/javascripts/tiny_mce/themes/advanced/images/opacity.png +0 -0
  126. data/public/javascripts/tiny_mce/themes/advanced/images/outdent.gif +0 -0
  127. data/public/javascripts/tiny_mce/themes/advanced/images/paste.gif +0 -0
  128. data/public/javascripts/tiny_mce/themes/advanced/images/redo.gif +0 -0
  129. data/public/javascripts/tiny_mce/themes/advanced/images/removeformat.gif +0 -0
  130. data/public/javascripts/tiny_mce/themes/advanced/images/separator.gif +0 -0
  131. data/public/javascripts/tiny_mce/themes/advanced/images/spacer.gif +0 -0
  132. data/public/javascripts/tiny_mce/themes/advanced/images/statusbar_resize.gif +0 -0
  133. data/public/javascripts/tiny_mce/themes/advanced/images/strikethrough.gif +0 -0
  134. data/public/javascripts/tiny_mce/themes/advanced/images/sub.gif +0 -0
  135. data/public/javascripts/tiny_mce/themes/advanced/images/sup.gif +0 -0
  136. data/public/javascripts/tiny_mce/themes/advanced/images/underline.gif +0 -0
  137. data/public/javascripts/tiny_mce/themes/advanced/images/underline_es.gif +0 -0
  138. data/public/javascripts/tiny_mce/themes/advanced/images/underline_fr.gif +0 -0
  139. data/public/javascripts/tiny_mce/themes/advanced/images/underline_ru.gif +0 -0
  140. data/public/javascripts/tiny_mce/themes/advanced/images/underline_tw.gif +0 -0
  141. data/public/javascripts/tiny_mce/themes/advanced/images/undo.gif +0 -0
  142. data/public/javascripts/tiny_mce/themes/advanced/images/unlink.gif +0 -0
  143. data/public/javascripts/tiny_mce/themes/advanced/images/visualaid.gif +0 -0
  144. data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_bg.gif +0 -0
  145. data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_end.gif +0 -0
  146. data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_sel_bg.gif +0 -0
  147. data/public/javascripts/tiny_mce/themes/advanced/images/xp/tab_sel_end.gif +0 -0
  148. data/public/javascripts/tiny_mce/themes/advanced/images/xp/tabs_bg.gif +0 -0
  149. data/public/javascripts/tiny_mce/themes/advanced/jscripts/about.js +75 -0
  150. data/public/javascripts/tiny_mce/themes/advanced/jscripts/anchor.js +74 -0
  151. data/public/javascripts/tiny_mce/themes/advanced/jscripts/charmap.js +326 -0
  152. data/public/javascripts/tiny_mce/themes/advanced/jscripts/color_picker.js +108 -0
  153. data/public/javascripts/tiny_mce/themes/advanced/jscripts/image.js +81 -0
  154. data/public/javascripts/tiny_mce/themes/advanced/jscripts/link.js +70 -0
  155. data/public/javascripts/tiny_mce/themes/advanced/jscripts/source_editor.js +60 -0
  156. data/public/javascripts/tiny_mce/themes/advanced/langs/en.js +82 -0
  157. data/public/javascripts/tiny_mce/themes/advanced/link.htm +100 -0
  158. data/public/javascripts/tiny_mce/themes/advanced/source_editor.htm +32 -0
  159. data/public/javascripts/tiny_mce/tiny_mce.js +1 -0
  160. data/public/javascripts/tiny_mce/tiny_mce_popup.js +288 -0
  161. data/public/javascripts/tiny_mce/tiny_mce_src.js +7284 -0
  162. data/public/javascripts/tiny_mce/utils/editable_selects.js +61 -0
  163. data/public/javascripts/tiny_mce/utils/form_utils.js +210 -0
  164. data/public/javascripts/tiny_mce/utils/mclayer.js +210 -0
  165. data/public/javascripts/tiny_mce/utils/mctabs.js +74 -0
  166. data/public/javascripts/tiny_mce/utils/validate.js +219 -0
  167. data/public/stylesheets/administration.css +5 -1
  168. data/public/stylesheets/minimal.css +1 -0
  169. data/test/functional/admin/categories_controller_test.rb +2 -2
  170. data/test/functional/xml_controller_test.rb +72 -40
  171. data/test/test_helper.rb +1 -17
  172. data/test/unit/article_test.rb +1 -1
  173. data/test/unit/trigger_test.rb +1 -1
  174. data/themes/scribbish/views/articles/_comment.rhtml +13 -17
  175. data/themes/scribbish/views/articles/_comment_form.rhtml +7 -5
  176. data/themes/scribbish/views/articles/_comment_list.rhtml +7 -0
  177. data/themes/scribbish/views/articles/read.rhtml +1 -1
  178. data/vendor/plugins/aimpresence_sidebar/views/content.rhtml +1 -1
  179. data/vendor/plugins/archives_sidebar/views/content.rhtml +1 -1
  180. data/vendor/plugins/audioscrobbler_sidebar/MAINTAINERS +26 -0
  181. data/vendor/plugins/audioscrobbler_sidebar/MIT-LICENSE +21 -0
  182. data/vendor/plugins/audioscrobbler_sidebar/README +27 -0
  183. data/vendor/plugins/backpack_sidebar/MAINTAINERS +26 -0
  184. data/vendor/plugins/backpack_sidebar/MIT-LICENSE +21 -0
  185. data/vendor/plugins/backpack_sidebar/README +27 -0
  186. data/vendor/plugins/category_sidebar/views/content.rhtml +1 -1
  187. data/vendor/plugins/sitealizer/CHANGELOG +6 -0
  188. data/vendor/plugins/sitealizer/LICENSE +22 -0
  189. data/vendor/plugins/sitealizer/README +82 -0
  190. data/vendor/plugins/sitealizer/Rakefile +22 -0
  191. data/vendor/plugins/sitealizer/init.rb +24 -0
  192. data/vendor/plugins/sitealizer/install.rb +22 -0
  193. data/vendor/plugins/sitealizer/lib/app/assets/images/bar.gif +0 -0
  194. data/vendor/plugins/sitealizer/lib/app/assets/images/uv.png +0 -0
  195. data/vendor/plugins/sitealizer/lib/app/assets/images/vh.png +0 -0
  196. data/vendor/plugins/sitealizer/lib/app/controllers/sitealizer_controller.rb +118 -0
  197. data/vendor/plugins/sitealizer/lib/app/models/site_tracker.rb +145 -0
  198. data/vendor/plugins/sitealizer/lib/app/views/layouts/sitealizer.rhtml +66 -0
  199. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_browsers.rhtml +23 -0
  200. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_daily_stats.rhtml +67 -0
  201. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_hits_summary.rhtml +0 -0
  202. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_hosts.rhtml +21 -0
  203. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_keywords.rhtml +19 -0
  204. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_languages.rhtml +21 -0
  205. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_main_frame.rhtml +84 -0
  206. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_monthly_hits.rhtml +67 -0
  207. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_page_urls.rhtml +20 -0
  208. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_platforms.rhtml +21 -0
  209. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_referers.rhtml +22 -0
  210. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_robots.rhtml +19 -0
  211. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/_search_engines.rhtml +19 -0
  212. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/hourly_stats.rhtml +39 -0
  213. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/index.rhtml +8 -0
  214. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/login.rhtml +20 -0
  215. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/menu.rhtml +74 -0
  216. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/referrer_stats.rhtml +20 -0
  217. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/search_stats.rhtml +25 -0
  218. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/summary.rhtml +22 -0
  219. data/vendor/plugins/sitealizer/lib/app/views/sitealizer/visitor_info.rhtml +30 -0
  220. data/vendor/plugins/sitealizer/lib/config.yml +18 -0
  221. data/vendor/plugins/sitealizer/lib/sitealizer/parser.rb +347 -0
  222. data/vendor/plugins/sitealizer/lib/sitealizer.rb +78 -0
  223. data/vendor/plugins/sitealizer/lib/tasks/sitealizer.rake +36 -0
  224. data/vendor/plugins/sitealizer/test/fixtures/sitealizer.yml +89 -0
  225. data/vendor/plugins/sitealizer/test/sitealizer_controller_test.rb +208 -0
  226. data/vendor/plugins/sitealizer/test/sitealizer_parser_test.rb +169 -0
  227. data/vendor/plugins/sitealizer/test/test_helper.rb +7 -0
  228. data/vendor/plugins/tada_sidebar/MAINTAINERS +26 -0
  229. data/vendor/plugins/tada_sidebar/MIT-LICENSE +21 -0
  230. data/vendor/plugins/tada_sidebar/README +27 -0
  231. data/vendor/plugins/tag_sidebar/views/content.rhtml +1 -1
  232. data/vendor/plugins/tiny_mce/README +10 -0
  233. data/vendor/plugins/tiny_mce/Rakefile +22 -0
  234. data/vendor/plugins/tiny_mce/TODO +2 -0
  235. data/vendor/plugins/tiny_mce/changelog +1017 -0
  236. data/vendor/plugins/tiny_mce/init.rb +3 -0
  237. data/vendor/plugins/tiny_mce/install.rb +1 -0
  238. data/vendor/plugins/tiny_mce/lib/tiny_mce.rb +36 -0
  239. data/vendor/plugins/tiny_mce/lib/tiny_mce_helper.rb +48 -0
  240. data/vendor/plugins/tiny_mce/tasks/tiny_mce.rake +40 -0
  241. data/vendor/plugins/tiny_mce/test/helper_testcase.rb +38 -0
  242. data/vendor/plugins/tiny_mce/test/tiny_mce_helper_test.rb +67 -0
  243. data/vendor/plugins/tiny_mce/test/tiny_mce_test.rb +85 -0
  244. data/vendor/plugins/tiny_mce/tiny_mce_options.yml +121 -0
  245. data/vendor/plugins/xbox_sidebar/MAINTAINERS +26 -0
  246. data/vendor/plugins/xbox_sidebar/MIT-LICENSE +21 -0
  247. data/vendor/plugins/xbox_sidebar/README +27 -0
  248. data/vendor/plugins/xml_sidebar/lib/xml_sidebar.rb +1 -1
  249. data/vendor/plugins/xml_sidebar/views/content.rhtml +4 -4
  250. metadata +220 -4
  251. data/TODO-4.1 +0 -16
@@ -0,0 +1,288 @@
1
+ // Some global instances, this will be filled later
2
+ var tinyMCE = null, tinyMCELang = null;
3
+
4
+ function TinyMCE_Popup() {
5
+ };
6
+
7
+ TinyMCE_Popup.prototype = {
8
+ findWin : function(w) {
9
+ var c;
10
+
11
+ // Check parents
12
+ c = w;
13
+ while (c && (c = c.parent) != null) {
14
+ if (typeof(c.tinyMCE) != "undefined")
15
+ return c;
16
+ }
17
+
18
+ // Check openers
19
+ c = w;
20
+ while (c && (c = c.opener) != null) {
21
+ if (typeof(c.tinyMCE) != "undefined")
22
+ return c;
23
+ }
24
+
25
+ // Try top
26
+ if (typeof(top.tinyMCE) != "undefined")
27
+ return top;
28
+
29
+ return null;
30
+ },
31
+
32
+ init : function() {
33
+ var win = window.opener ? window.opener : window.dialogArguments, c;
34
+ var inst;
35
+
36
+ if (!win)
37
+ win = this.findWin(window);
38
+
39
+ if (!win) {
40
+ alert("tinyMCE object reference not found from popup.");
41
+ return;
42
+ }
43
+
44
+ window.opener = win;
45
+ this.windowOpener = win;
46
+ this.onLoadEval = "";
47
+
48
+ // Setup parent references
49
+ tinyMCE = win.tinyMCE;
50
+ tinyMCELang = win.tinyMCELang;
51
+
52
+ inst = tinyMCE.selectedInstance;
53
+ this.isWindow = tinyMCE.getWindowArg('mce_inside_iframe', false) == false;
54
+ this.storeSelection = (tinyMCE.isRealIE) && !this.isWindow && tinyMCE.getWindowArg('mce_store_selection', true);
55
+
56
+ if (this.isWindow)
57
+ window.focus();
58
+
59
+ // Store selection
60
+ if (this.storeSelection)
61
+ inst.selectionBookmark = inst.selection.getBookmark(true);
62
+
63
+ // Setup dir
64
+ if (tinyMCELang['lang_dir'])
65
+ document.dir = tinyMCELang['lang_dir'];
66
+
67
+ // Setup title
68
+ var re = new RegExp('{|\\\$|}', 'g');
69
+ var title = document.title.replace(re, "");
70
+ if (typeof tinyMCELang[title] != "undefined") {
71
+ var divElm = document.createElement("div");
72
+ divElm.innerHTML = tinyMCELang[title];
73
+ document.title = divElm.innerHTML;
74
+
75
+ if (tinyMCE.setWindowTitle != null)
76
+ tinyMCE.setWindowTitle(window, divElm.innerHTML);
77
+ }
78
+
79
+ // Output Popup CSS class
80
+ document.write('<link href="' + tinyMCE.getParam("popups_css") + '" rel="stylesheet" type="text/css">');
81
+
82
+ if (tinyMCE.getParam("popups_css_add")) {
83
+ c = tinyMCE.getParam("popups_css_add");
84
+
85
+ // Is relative
86
+ if (c.indexOf('://') == -1 && c.charAt(0) != '/')
87
+ c = tinyMCE.documentBasePath + "/" + c;
88
+
89
+ document.write('<link href="' + c + '" rel="stylesheet" type="text/css">');
90
+ }
91
+
92
+ tinyMCE.addEvent(window, "load", this.onLoad);
93
+ },
94
+
95
+ onLoad : function() {
96
+ var dir, i, elms, body = document.body;
97
+
98
+ if (tinyMCE.getWindowArg('mce_replacevariables', true))
99
+ body.innerHTML = tinyMCE.applyTemplate(body.innerHTML, tinyMCE.windowArgs);
100
+
101
+ dir = tinyMCE.selectedInstance.settings['directionality'];
102
+ if (dir == "rtl" && document.forms && document.forms.length > 0) {
103
+ elms = document.forms[0].elements;
104
+ for (i=0; i<elms.length; i++) {
105
+ if ((elms[i].type == "text" || elms[i].type == "textarea") && elms[i].getAttribute("dir") != "ltr")
106
+ elms[i].dir = dir;
107
+ }
108
+ }
109
+
110
+ if (body.style.display == 'none')
111
+ body.style.display = 'block';
112
+
113
+ // Execute real onload (Opera fix)
114
+ if (tinyMCEPopup.onLoadEval != "")
115
+ eval(tinyMCEPopup.onLoadEval);
116
+ },
117
+
118
+ executeOnLoad : function(str) {
119
+ if (tinyMCE.isOpera)
120
+ this.onLoadEval = str;
121
+ else
122
+ eval(str);
123
+ },
124
+
125
+ resizeToInnerSize : function() {
126
+ // Netscape 7.1 workaround
127
+ if (this.isWindow && tinyMCE.isNS71) {
128
+ window.resizeBy(0, 10);
129
+ return;
130
+ }
131
+
132
+ if (this.isWindow) {
133
+ var doc = document;
134
+ var body = doc.body;
135
+ var oldMargin, wrapper, iframe, nodes, dx, dy;
136
+
137
+ if (body.style.display == 'none')
138
+ body.style.display = 'block';
139
+
140
+ // Remove margin
141
+ oldMargin = body.style.margin;
142
+ body.style.margin = '0';
143
+
144
+ // Create wrapper
145
+ wrapper = doc.createElement("div");
146
+ wrapper.id = 'mcBodyWrapper';
147
+ wrapper.style.display = 'none';
148
+ wrapper.style.margin = '0';
149
+
150
+ // Wrap body elements
151
+ nodes = doc.body.childNodes;
152
+ for (var i=nodes.length-1; i>=0; i--) {
153
+ if (wrapper.hasChildNodes())
154
+ wrapper.insertBefore(nodes[i].cloneNode(true), wrapper.firstChild);
155
+ else
156
+ wrapper.appendChild(nodes[i].cloneNode(true));
157
+
158
+ nodes[i].parentNode.removeChild(nodes[i]);
159
+ }
160
+
161
+ // Add wrapper
162
+ doc.body.appendChild(wrapper);
163
+
164
+ // Create iframe
165
+ iframe = document.createElement("iframe");
166
+ iframe.id = "mcWinIframe";
167
+ iframe.src = document.location.href.toLowerCase().indexOf('https') == -1 ? "about:blank" : tinyMCE.settings['default_document'];
168
+ iframe.width = "100%";
169
+ iframe.height = "100%";
170
+ iframe.style.margin = '0';
171
+
172
+ // Add iframe
173
+ doc.body.appendChild(iframe);
174
+
175
+ // Measure iframe
176
+ iframe = document.getElementById('mcWinIframe');
177
+ dx = tinyMCE.getWindowArg('mce_width') - iframe.clientWidth;
178
+ dy = tinyMCE.getWindowArg('mce_height') - iframe.clientHeight;
179
+
180
+ // Resize window
181
+ // tinyMCE.debug(tinyMCE.getWindowArg('mce_width') + "," + tinyMCE.getWindowArg('mce_height') + " - " + dx + "," + dy);
182
+ window.resizeBy(dx, dy);
183
+
184
+ // Hide iframe and show wrapper
185
+ body.style.margin = oldMargin;
186
+ iframe.style.display = 'none';
187
+ wrapper.style.display = 'block';
188
+ }
189
+ },
190
+
191
+ resizeToContent : function() {
192
+ var isMSIE = (navigator.appName == "Microsoft Internet Explorer");
193
+ var isOpera = (navigator.userAgent.indexOf("Opera") != -1);
194
+
195
+ if (isOpera)
196
+ return;
197
+
198
+ if (isMSIE) {
199
+ try { window.resizeTo(10, 10); } catch (e) {}
200
+
201
+ var elm = document.body;
202
+ var width = elm.offsetWidth;
203
+ var height = elm.offsetHeight;
204
+ var dx = (elm.scrollWidth - width) + 4;
205
+ var dy = elm.scrollHeight - height;
206
+
207
+ try { window.resizeBy(dx, dy); } catch (e) {}
208
+ } else {
209
+ window.scrollBy(1000, 1000);
210
+ if (window.scrollX > 0 || window.scrollY > 0) {
211
+ window.resizeBy(window.innerWidth * 2, window.innerHeight * 2);
212
+ window.sizeToContent();
213
+ window.scrollTo(0, 0);
214
+ var x = parseInt(screen.width / 2.0) - (window.outerWidth / 2.0);
215
+ var y = parseInt(screen.height / 2.0) - (window.outerHeight / 2.0);
216
+ window.moveTo(x, y);
217
+ }
218
+ }
219
+ },
220
+
221
+ getWindowArg : function(name, default_value) {
222
+ return tinyMCE.getWindowArg(name, default_value);
223
+ },
224
+
225
+ restoreSelection : function() {
226
+ if (this.storeSelection) {
227
+ var inst = tinyMCE.selectedInstance;
228
+
229
+ inst.getWin().focus();
230
+
231
+ if (inst.selectionBookmark)
232
+ inst.selection.moveToBookmark(inst.selectionBookmark);
233
+ }
234
+ },
235
+
236
+ execCommand : function(command, user_interface, value) {
237
+ var inst = tinyMCE.selectedInstance;
238
+
239
+ this.restoreSelection();
240
+ inst.execCommand(command, user_interface, value);
241
+
242
+ // Store selection
243
+ if (this.storeSelection)
244
+ inst.selectionBookmark = inst.selection.getBookmark(true);
245
+ },
246
+
247
+ close : function() {
248
+ tinyMCE.closeWindow(window);
249
+ },
250
+
251
+ pickColor : function(e, element_id) {
252
+ tinyMCE.selectedInstance.execCommand('mceColorPicker', true, {
253
+ element_id : element_id,
254
+ document : document,
255
+ window : window,
256
+ store_selection : false
257
+ });
258
+ },
259
+
260
+ openBrowser : function(element_id, type, option) {
261
+ var cb = tinyMCE.getParam(option, tinyMCE.getParam("file_browser_callback"));
262
+ var url = document.getElementById(element_id).value;
263
+
264
+ tinyMCE.setWindowArg("window", window);
265
+ tinyMCE.setWindowArg("document", document);
266
+
267
+ // Call to external callback
268
+ if (eval('typeof(tinyMCEPopup.windowOpener.' + cb + ')') == "undefined")
269
+ alert("Callback function: " + cb + " could not be found.");
270
+ else
271
+ eval("tinyMCEPopup.windowOpener." + cb + "(element_id, url, type, window);");
272
+ },
273
+
274
+ importClass : function(c) {
275
+ window[c] = function() {};
276
+
277
+ for (var n in window.opener[c].prototype)
278
+ window[c].prototype[n] = window.opener[c].prototype[n];
279
+
280
+ window[c].constructor = window.opener[c].constructor;
281
+ }
282
+
283
+ };
284
+
285
+ // Setup global instance
286
+ var tinyMCEPopup = new TinyMCE_Popup();
287
+
288
+ tinyMCEPopup.init();