it-logica-application-backbone 1.1.2 → 1.1.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (164) hide show
  1. data/VERSION +1 -1
  2. data/app/assets/javascripts/backbone_js/tinymce/changelog.txt +100 -1198
  3. data/app/assets/javascripts/backbone_js/tinymce/examples/css/content.css +105 -105
  4. data/app/assets/javascripts/backbone_js/tinymce/examples/index.html +98 -98
  5. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/jquery.tinymce.js +1 -1
  6. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/license.txt +504 -504
  7. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advhr/css/advhr.css +5 -5
  8. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advhr/editor_plugin_src.js +56 -56
  9. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advhr/js/rule.js +43 -43
  10. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advhr/rule.htm +58 -58
  11. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advimage/css/advimage.css +13 -13
  12. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advimage/editor_plugin_src.js +49 -49
  13. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advimage/image.htm +235 -235
  14. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advimage/js/image.js +464 -462
  15. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advlink/css/advlink.css +8 -8
  16. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advlink/editor_plugin_src.js +60 -60
  17. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advlink/js/advlink.js +543 -539
  18. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advlink/link.htm +338 -338
  19. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/advlist/editor_plugin_src.js +175 -175
  20. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin.js +1 -1
  21. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/autolink/editor_plugin_src.js +8 -4
  22. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin.js +1 -1
  23. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/autosave/editor_plugin_src.js +433 -431
  24. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/autosave/langs/en.js +3 -3
  25. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/bbcode/editor_plugin_src.js +119 -119
  26. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js +1 -1
  27. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js +163 -161
  28. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js +1 -1
  29. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js +84 -81
  30. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js +42 -42
  31. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm +42 -42
  32. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js +43 -43
  33. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm +22 -22
  34. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js +83 -83
  35. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js +19 -19
  36. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js +3 -3
  37. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js +3 -3
  38. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css +142 -142
  39. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js +405 -405
  40. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm +259 -259
  41. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js +232 -232
  42. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js +1 -1
  43. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js +159 -159
  44. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm +110 -110
  45. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js +53 -53
  46. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js +699 -699
  47. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm +387 -387
  48. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin_src.js +82 -82
  49. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js +261 -261
  50. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js +1 -1
  51. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js +137 -137
  52. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js +1 -1
  53. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js +18 -14
  54. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/media/css/media.css +17 -17
  55. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js +1 -1
  56. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin_src.js +898 -890
  57. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js +73 -73
  58. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/media/js/media.js +503 -470
  59. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/media/media.htm +922 -922
  60. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js +53 -53
  61. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js +1 -1
  62. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js +536 -539
  63. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js +73 -73
  64. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js +1 -1
  65. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js +885 -871
  66. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js +36 -36
  67. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js +51 -51
  68. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm +26 -26
  69. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm +21 -21
  70. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/preview/example.html +28 -28
  71. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js +73 -73
  72. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/preview/preview.html +17 -17
  73. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js +34 -34
  74. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js +100 -100
  75. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css +6 -6
  76. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js +60 -60
  77. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js +142 -142
  78. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm +100 -100
  79. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css +1 -0
  80. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js +1 -0
  81. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js +436 -0
  82. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif +0 -0
  83. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/style/css/props.css +14 -14
  84. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js +71 -71
  85. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/style/js/props.js +709 -709
  86. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/cell.htm +180 -180
  87. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css +16 -16
  88. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/css/row.css +25 -25
  89. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/css/table.css +13 -13
  90. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js +1 -1
  91. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js +79 -55
  92. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js +319 -319
  93. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/js/merge_cells.js +27 -27
  94. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/js/row.js +237 -237
  95. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/js/table.js +499 -487
  96. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm +32 -32
  97. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/row.htm +158 -158
  98. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/table/table.htm +188 -188
  99. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/template/blank.htm +12 -12
  100. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/template/css/template.css +23 -23
  101. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin_src.js +158 -158
  102. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/template/js/template.js +106 -106
  103. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/template/template.htm +31 -31
  104. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/visualblocks/css/visualblocks.css +21 -21
  105. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/visualblocks/editor_plugin_src.js +62 -62
  106. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin_src.js +82 -82
  107. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/wordcount/editor_plugin_src.js +122 -122
  108. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/abbr.htm +142 -142
  109. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/acronym.htm +142 -142
  110. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/attributes.htm +149 -149
  111. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/cite.htm +142 -142
  112. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/attributes.css +11 -11
  113. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/css/popup.css +9 -9
  114. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/del.htm +162 -162
  115. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/editor_plugin_src.js +131 -131
  116. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/ins.htm +162 -162
  117. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/abbr.js +28 -28
  118. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/acronym.js +28 -28
  119. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/attributes.js +111 -111
  120. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/cite.js +28 -28
  121. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/del.js +53 -53
  122. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/element_common.js +229 -229
  123. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/plugins/xhtmlxtras/js/ins.js +53 -53
  124. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/about.htm +52 -52
  125. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/anchor.htm +26 -26
  126. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/charmap.htm +55 -55
  127. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/color_picker.htm +70 -70
  128. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/editor_template.js +1 -1
  129. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/editor_template_src.js +1490 -1481
  130. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/image.htm +80 -80
  131. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/js/about.js +73 -73
  132. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/js/anchor.js +56 -44
  133. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/js/charmap.js +363 -363
  134. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/js/image.js +253 -253
  135. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/js/link.js +159 -153
  136. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/js/source_editor.js +78 -78
  137. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/link.htm +57 -57
  138. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/shortcuts.htm +47 -47
  139. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/content.css +50 -51
  140. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/dialog.css +118 -118
  141. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/default/ui.css +219 -219
  142. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/content.css +24 -25
  143. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/dialog.css +106 -106
  144. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/highcontrast/ui.css +106 -106
  145. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/content.css +48 -49
  146. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/dialog.css +118 -118
  147. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui.css +222 -222
  148. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_black.css +7 -7
  149. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/skins/o2k7/ui_silver.css +5 -5
  150. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/advanced/source_editor.htm +25 -25
  151. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js +83 -83
  152. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/simple/skins/default/content.css +25 -25
  153. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/simple/skins/default/ui.css +32 -32
  154. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/content.css +17 -17
  155. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/themes/simple/skins/o2k7/ui.css +35 -35
  156. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/tiny_mce.js +1 -1
  157. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/tiny_mce_popup.js +1 -1
  158. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/tiny_mce_src.js +17769 -16902
  159. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/utils/editable_selects.js +70 -70
  160. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/utils/form_utils.js +210 -210
  161. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/utils/mctabs.js +161 -161
  162. data/app/assets/javascripts/backbone_js/tinymce/jscripts/tiny_mce/utils/validate.js +252 -252
  163. data/it-logica-application-backbone.gemspec +6 -2
  164. metadata +19 -15
@@ -1,73 +1,73 @@
1
- /**
2
- * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.
3
- */
4
-
5
- function writeFlash(p) {
6
- writeEmbed(
7
- 'D27CDB6E-AE6D-11cf-96B8-444553540000',
8
- 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
9
- 'application/x-shockwave-flash',
10
- p
11
- );
12
- }
13
-
14
- function writeShockWave(p) {
15
- writeEmbed(
16
- '166B1BCA-3F9C-11CF-8075-444553540000',
17
- 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
18
- 'application/x-director',
19
- p
20
- );
21
- }
22
-
23
- function writeQuickTime(p) {
24
- writeEmbed(
25
- '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
26
- 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
27
- 'video/quicktime',
28
- p
29
- );
30
- }
31
-
32
- function writeRealMedia(p) {
33
- writeEmbed(
34
- 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
35
- 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
36
- 'audio/x-pn-realaudio-plugin',
37
- p
38
- );
39
- }
40
-
41
- function writeWindowsMedia(p) {
42
- p.url = p.src;
43
- writeEmbed(
44
- '6BF52A52-394A-11D3-B153-00C04F79FAA6',
45
- 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
46
- 'application/x-mplayer2',
47
- p
48
- );
49
- }
50
-
51
- function writeEmbed(cls, cb, mt, p) {
52
- var h = '', n;
53
-
54
- h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
55
- h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
56
- h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
57
- h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
58
- h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
59
- h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
60
- h += '>';
61
-
62
- for (n in p)
63
- h += '<param name="' + n + '" value="' + p[n] + '">';
64
-
65
- h += '<embed type="' + mt + '"';
66
-
67
- for (n in p)
68
- h += n + '="' + p[n] + '" ';
69
-
70
- h += '></embed></object>';
71
-
72
- document.write(h);
73
- }
1
+ /**
2
+ * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.
3
+ */
4
+
5
+ function writeFlash(p) {
6
+ writeEmbed(
7
+ 'D27CDB6E-AE6D-11cf-96B8-444553540000',
8
+ 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
9
+ 'application/x-shockwave-flash',
10
+ p
11
+ );
12
+ }
13
+
14
+ function writeShockWave(p) {
15
+ writeEmbed(
16
+ '166B1BCA-3F9C-11CF-8075-444553540000',
17
+ 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
18
+ 'application/x-director',
19
+ p
20
+ );
21
+ }
22
+
23
+ function writeQuickTime(p) {
24
+ writeEmbed(
25
+ '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
26
+ 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
27
+ 'video/quicktime',
28
+ p
29
+ );
30
+ }
31
+
32
+ function writeRealMedia(p) {
33
+ writeEmbed(
34
+ 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
35
+ 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
36
+ 'audio/x-pn-realaudio-plugin',
37
+ p
38
+ );
39
+ }
40
+
41
+ function writeWindowsMedia(p) {
42
+ p.url = p.src;
43
+ writeEmbed(
44
+ '6BF52A52-394A-11D3-B153-00C04F79FAA6',
45
+ 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
46
+ 'application/x-mplayer2',
47
+ p
48
+ );
49
+ }
50
+
51
+ function writeEmbed(cls, cb, mt, p) {
52
+ var h = '', n;
53
+
54
+ h += '<object classid="clsid:' + cls + '" codebase="' + cb + '"';
55
+ h += typeof(p.id) != "undefined" ? 'id="' + p.id + '"' : '';
56
+ h += typeof(p.name) != "undefined" ? 'name="' + p.name + '"' : '';
57
+ h += typeof(p.width) != "undefined" ? 'width="' + p.width + '"' : '';
58
+ h += typeof(p.height) != "undefined" ? 'height="' + p.height + '"' : '';
59
+ h += typeof(p.align) != "undefined" ? 'align="' + p.align + '"' : '';
60
+ h += '>';
61
+
62
+ for (n in p)
63
+ h += '<param name="' + n + '" value="' + p[n] + '">';
64
+
65
+ h += '<embed type="' + mt + '"';
66
+
67
+ for (n in p)
68
+ h += n + '="' + p[n] + '" ';
69
+
70
+ h += '></embed></object>';
71
+
72
+ document.write(h);
73
+ }
@@ -1,470 +1,503 @@
1
- (function() {
2
- var url;
3
-
4
- if (url = tinyMCEPopup.getParam("media_external_list_url"))
5
- document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
6
-
7
- function get(id) {
8
- return document.getElementById(id);
9
- }
10
-
11
- function clone(obj) {
12
- var i, len, copy, attr;
13
-
14
- if (null == obj || "object" != typeof obj)
15
- return obj;
16
-
17
- // Handle Array
18
- if ('length' in obj) {
19
- copy = [];
20
-
21
- for (i = 0, len = obj.length; i < len; ++i) {
22
- copy[i] = clone(obj[i]);
23
- }
24
-
25
- return copy;
26
- }
27
-
28
- // Handle Object
29
- copy = {};
30
- for (attr in obj) {
31
- if (obj.hasOwnProperty(attr))
32
- copy[attr] = clone(obj[attr]);
33
- }
34
-
35
- return copy;
36
- }
37
-
38
- function getVal(id) {
39
- var elm = get(id);
40
-
41
- if (elm.nodeName == "SELECT")
42
- return elm.options[elm.selectedIndex].value;
43
-
44
- if (elm.type == "checkbox")
45
- return elm.checked;
46
-
47
- return elm.value;
48
- }
49
-
50
- function setVal(id, value, name) {
51
- if (typeof(value) != 'undefined' && value != null) {
52
- var elm = get(id);
53
-
54
- if (elm.nodeName == "SELECT")
55
- selectByValue(document.forms[0], id, value);
56
- else if (elm.type == "checkbox") {
57
- if (typeof(value) == 'string') {
58
- value = value.toLowerCase();
59
- value = (!name && value === 'true') || (name && value === name.toLowerCase());
60
- }
61
- elm.checked = !!value;
62
- } else
63
- elm.value = value;
64
- }
65
- }
66
-
67
- window.Media = {
68
- init : function() {
69
- var html, editor, self = this;
70
-
71
- self.editor = editor = tinyMCEPopup.editor;
72
-
73
- // Setup file browsers and color pickers
74
- get('filebrowsercontainer').innerHTML = getBrowserHTML('filebrowser','src','media','media');
75
- get('qtsrcfilebrowsercontainer').innerHTML = getBrowserHTML('qtsrcfilebrowser','quicktime_qtsrc','media','media');
76
- get('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
77
- get('video_altsource1_filebrowser').innerHTML = getBrowserHTML('video_filebrowser_altsource1','video_altsource1','media','media');
78
- get('video_altsource2_filebrowser').innerHTML = getBrowserHTML('video_filebrowser_altsource2','video_altsource2','media','media');
79
- get('audio_altsource1_filebrowser').innerHTML = getBrowserHTML('audio_filebrowser_altsource1','audio_altsource1','media','media');
80
- get('audio_altsource2_filebrowser').innerHTML = getBrowserHTML('audio_filebrowser_altsource2','audio_altsource2','media','media');
81
- get('video_poster_filebrowser').innerHTML = getBrowserHTML('filebrowser_poster','video_poster','media','image');
82
-
83
- html = self.getMediaListHTML('medialist', 'src', 'media', 'media');
84
- if (html == "")
85
- get("linklistrow").style.display = 'none';
86
- else
87
- get("linklistcontainer").innerHTML = html;
88
-
89
- if (isVisible('filebrowser'))
90
- get('src').style.width = '230px';
91
-
92
- if (isVisible('video_filebrowser_altsource1'))
93
- get('video_altsource1').style.width = '220px';
94
-
95
- if (isVisible('video_filebrowser_altsource2'))
96
- get('video_altsource2').style.width = '220px';
97
-
98
- if (isVisible('audio_filebrowser_altsource1'))
99
- get('audio_altsource1').style.width = '220px';
100
-
101
- if (isVisible('audio_filebrowser_altsource2'))
102
- get('audio_altsource2').style.width = '220px';
103
-
104
- if (isVisible('filebrowser_poster'))
105
- get('video_poster').style.width = '220px';
106
-
107
- editor.dom.setOuterHTML(get('media_type'), self.getMediaTypeHTML(editor));
108
-
109
- self.setDefaultDialogSettings(editor);
110
- self.data = clone(tinyMCEPopup.getWindowArg('data'));
111
- self.dataToForm();
112
- self.preview();
113
-
114
- updateColor('bgcolor_pick', 'bgcolor');
115
- },
116
-
117
- insert : function() {
118
- var editor = tinyMCEPopup.editor;
119
-
120
- this.formToData();
121
- editor.execCommand('mceRepaint');
122
- tinyMCEPopup.restoreSelection();
123
- editor.selection.setNode(editor.plugins.media.dataToImg(this.data));
124
- tinyMCEPopup.close();
125
- },
126
-
127
- preview : function() {
128
- get('prev').innerHTML = this.editor.plugins.media.dataToHtml(this.data, true);
129
- },
130
-
131
- moveStates : function(to_form, field) {
132
- var data = this.data, editor = this.editor,
133
- mediaPlugin = editor.plugins.media, ext, src, typeInfo, defaultStates, src;
134
-
135
- defaultStates = {
136
- // QuickTime
137
- quicktime_autoplay : true,
138
- quicktime_controller : true,
139
-
140
- // Flash
141
- flash_play : true,
142
- flash_loop : true,
143
- flash_menu : true,
144
-
145
- // WindowsMedia
146
- windowsmedia_autostart : true,
147
- windowsmedia_enablecontextmenu : true,
148
- windowsmedia_invokeurls : true,
149
-
150
- // RealMedia
151
- realmedia_autogotourl : true,
152
- realmedia_imagestatus : true
153
- };
154
-
155
- function parseQueryParams(str) {
156
- var out = {};
157
-
158
- if (str) {
159
- tinymce.each(str.split('&'), function(item) {
160
- var parts = item.split('=');
161
-
162
- out[unescape(parts[0])] = unescape(parts[1]);
163
- });
164
- }
165
-
166
- return out;
167
- };
168
-
169
- function setOptions(type, names) {
170
- var i, name, formItemName, value, list;
171
-
172
- if (type == data.type || type == 'global') {
173
- names = tinymce.explode(names);
174
- for (i = 0; i < names.length; i++) {
175
- name = names[i];
176
- formItemName = type == 'global' ? name : type + '_' + name;
177
-
178
- if (type == 'global')
179
- list = data;
180
- else if (type == 'video' || type == 'audio') {
181
- list = data.video.attrs;
182
-
183
- if (!list && !to_form)
184
- data.video.attrs = list = {};
185
- } else
186
- list = data.params;
187
-
188
- if (list) {
189
- if (to_form) {
190
- setVal(formItemName, list[name], type == 'video' || type == 'audio' ? name : '');
191
- } else {
192
- delete list[name];
193
-
194
- value = getVal(formItemName);
195
- if ((type == 'video' || type == 'audio') && value === true)
196
- value = name;
197
-
198
- if (defaultStates[formItemName]) {
199
- if (value !== defaultStates[formItemName]) {
200
- value = "" + value;
201
- list[name] = value;
202
- }
203
- } else if (value) {
204
- value = "" + value;
205
- list[name] = value;
206
- }
207
- }
208
- }
209
- }
210
- }
211
- }
212
-
213
- if (!to_form) {
214
- data.type = get('media_type').options[get('media_type').selectedIndex].value;
215
- data.width = getVal('width');
216
- data.height = getVal('height');
217
-
218
- // Switch type based on extension
219
- src = getVal('src');
220
- if (field == 'src') {
221
- ext = src.replace(/^.*\.([^.]+)$/, '$1');
222
- if (typeInfo = mediaPlugin.getType(ext))
223
- data.type = typeInfo.name.toLowerCase();
224
-
225
- setVal('media_type', data.type);
226
- }
227
-
228
- if (data.type == "video" || data.type == "audio") {
229
- if (!data.video.sources)
230
- data.video.sources = [];
231
-
232
- data.video.sources[0] = {src: getVal('src')};
233
- }
234
- }
235
-
236
- // Hide all fieldsets and show the one active
237
- get('video_options').style.display = 'none';
238
- get('audio_options').style.display = 'none';
239
- get('flash_options').style.display = 'none';
240
- get('quicktime_options').style.display = 'none';
241
- get('shockwave_options').style.display = 'none';
242
- get('windowsmedia_options').style.display = 'none';
243
- get('realmedia_options').style.display = 'none';
244
- get('embeddedaudio_options').style.display = 'none';
245
-
246
- if (get(data.type + '_options'))
247
- get(data.type + '_options').style.display = 'block';
248
-
249
- setVal('media_type', data.type);
250
-
251
- setOptions('flash', 'play,loop,menu,swliveconnect,quality,scale,salign,wmode,base,flashvars');
252
- setOptions('quicktime', 'loop,autoplay,cache,controller,correction,enablejavascript,kioskmode,autohref,playeveryframe,targetcache,scale,starttime,endtime,target,qtsrcchokespeed,volume,qtsrc');
253
- setOptions('shockwave', 'sound,progress,autostart,swliveconnect,swvolume,swstretchstyle,swstretchhalign,swstretchvalign');
254
- setOptions('windowsmedia', 'autostart,enabled,enablecontextmenu,fullscreen,invokeurls,mute,stretchtofit,windowlessvideo,balance,baseurl,captioningid,currentmarker,currentposition,defaultframe,playcount,rate,uimode,volume');
255
- setOptions('realmedia', 'autostart,loop,autogotourl,center,imagestatus,maintainaspect,nojava,prefetch,shuffle,console,controls,numloop,scriptcallbacks');
256
- setOptions('video', 'poster,autoplay,loop,muted,preload,controls');
257
- setOptions('audio', 'autoplay,loop,preload,controls');
258
- setOptions('embeddedaudio', 'autoplay,loop,controls');
259
- setOptions('global', 'id,name,vspace,hspace,bgcolor,align,width,height');
260
-
261
- if (to_form) {
262
- if (data.type == 'video') {
263
- if (data.video.sources[0])
264
- setVal('src', data.video.sources[0].src);
265
-
266
- src = data.video.sources[1];
267
- if (src)
268
- setVal('video_altsource1', src.src);
269
-
270
- src = data.video.sources[2];
271
- if (src)
272
- setVal('video_altsource2', src.src);
273
- } else if (data.type == 'audio') {
274
- if (data.video.sources[0])
275
- setVal('src', data.video.sources[0].src);
276
-
277
- src = data.video.sources[1];
278
- if (src)
279
- setVal('audio_altsource1', src.src);
280
-
281
- src = data.video.sources[2];
282
- if (src)
283
- setVal('audio_altsource2', src.src);
284
- } else {
285
- // Check flash vars
286
- if (data.type == 'flash') {
287
- tinymce.each(editor.getParam('flash_video_player_flashvars', {url : '$url', poster : '$poster'}), function(value, name) {
288
- if (value == '$url')
289
- data.params.src = parseQueryParams(data.params.flashvars)[name] || data.params.src || '';
290
- });
291
- }
292
-
293
- setVal('src', data.params.src);
294
- }
295
- } else {
296
- src = getVal("src");
297
-
298
- // YouTube *NEW*
299
- if (src.match(/youtu.be\/[a-z1-9.-_]+/)) {
300
- data.width = 425;
301
- data.height = 350;
302
- data.params.frameborder = '0';
303
- data.type = 'iframe';
304
- src = 'http://www.youtube.com/embed/' + src.match(/youtu.be\/([a-z1-9.-_]+)/)[1];
305
- setVal('src', src);
306
- setVal('media_type', data.type);
307
- }
308
-
309
- // YouTube
310
- if (src.match(/youtube.com(.+)v=([^&]+)/)) {
311
- data.width = 425;
312
- data.height = 350;
313
- data.params.frameborder = '0';
314
- data.type = 'iframe';
315
- src = 'http://www.youtube.com/embed/' + src.match(/v=([^&]+)/)[1];
316
- setVal('src', src);
317
- setVal('media_type', data.type);
318
- }
319
-
320
- // Google video
321
- if (src.match(/video.google.com(.+)docid=([^&]+)/)) {
322
- data.width = 425;
323
- data.height = 326;
324
- data.type = 'flash';
325
- src = 'http://video.google.com/googleplayer.swf?docId=' + src.match(/docid=([^&]+)/)[1] + '&hl=en';
326
- setVal('src', src);
327
- setVal('media_type', data.type);
328
- }
329
-
330
- if (data.type == 'video') {
331
- if (!data.video.sources)
332
- data.video.sources = [];
333
-
334
- data.video.sources[0] = {src : src};
335
-
336
- src = getVal("video_altsource1");
337
- if (src)
338
- data.video.sources[1] = {src : src};
339
-
340
- src = getVal("video_altsource2");
341
- if (src)
342
- data.video.sources[2] = {src : src};
343
- } else if (data.type == 'audio') {
344
- if (!data.video.sources)
345
- data.video.sources = [];
346
-
347
- data.video.sources[0] = {src : src};
348
-
349
- src = getVal("audio_altsource1");
350
- if (src)
351
- data.video.sources[1] = {src : src};
352
-
353
- src = getVal("audio_altsource2");
354
- if (src)
355
- data.video.sources[2] = {src : src};
356
- } else
357
- data.params.src = src;
358
-
359
- // Set default size
360
- setVal('width', data.width || (data.type == 'audio' ? 300 : 320));
361
- setVal('height', data.height || (data.type == 'audio' ? 32 : 240));
362
- }
363
- },
364
-
365
- dataToForm : function() {
366
- this.moveStates(true);
367
- },
368
-
369
- formToData : function(field) {
370
- if (field == "width" || field == "height")
371
- this.changeSize(field);
372
-
373
- if (field == 'source') {
374
- this.moveStates(false, field);
375
- setVal('source', this.editor.plugins.media.dataToHtml(this.data));
376
- this.panel = 'source';
377
- } else {
378
- if (this.panel == 'source') {
379
- this.data = clone(this.editor.plugins.media.htmlToData(getVal('source')));
380
- this.dataToForm();
381
- this.panel = '';
382
- }
383
-
384
- this.moveStates(false, field);
385
- this.preview();
386
- }
387
- },
388
-
389
- beforeResize : function() {
390
- this.width = parseInt(getVal('width') || (this.data.type == 'audio' ? "300" : "320"), 10);
391
- this.height = parseInt(getVal('height') || (this.data.type == 'audio' ? "32" : "240"), 10);
392
- },
393
-
394
- changeSize : function(type) {
395
- var width, height, scale, size;
396
-
397
- if (get('constrain').checked) {
398
- width = parseInt(getVal('width') || (this.data.type == 'audio' ? "300" : "320"), 10);
399
- height = parseInt(getVal('height') || (this.data.type == 'audio' ? "32" : "240"), 10);
400
-
401
- if (type == 'width') {
402
- this.height = Math.round((width / this.width) * height);
403
- setVal('height', this.height);
404
- } else {
405
- this.width = Math.round((height / this.height) * width);
406
- setVal('width', this.width);
407
- }
408
- }
409
- },
410
-
411
- getMediaListHTML : function() {
412
- if (typeof(tinyMCEMediaList) != "undefined" && tinyMCEMediaList.length > 0) {
413
- var html = "";
414
-
415
- html += '<select id="linklist" name="linklist" style="width: 250px" onchange="this.form.src.value=this.options[this.selectedIndex].value;Media.formToData(\'src\');">';
416
- html += '<option value="">---</option>';
417
-
418
- for (var i=0; i<tinyMCEMediaList.length; i++)
419
- html += '<option value="' + tinyMCEMediaList[i][1] + '">' + tinyMCEMediaList[i][0] + '</option>';
420
-
421
- html += '</select>';
422
-
423
- return html;
424
- }
425
-
426
- return "";
427
- },
428
-
429
- getMediaTypeHTML : function(editor) {
430
- function option(media_type, element) {
431
- if (!editor.schema.getElementRule(element || media_type)) {
432
- return '';
433
- }
434
-
435
- return '<option value="'+media_type+'">'+tinyMCEPopup.editor.translate("media_dlg."+media_type)+'</option>'
436
- }
437
-
438
- var html = "";
439
-
440
- html += '<select id="media_type" name="media_type" onchange="Media.formToData(\'type\');">';
441
- html += option("video");
442
- html += option("audio");
443
- html += option("flash", "object");
444
- html += option("quicktime", "object");
445
- html += option("shockwave", "object");
446
- html += option("windowsmedia", "object");
447
- html += option("realmedia", "object");
448
- html += option("iframe");
449
-
450
- if (editor.getParam('media_embedded_audio', false)) {
451
- html += option('embeddedaudio', "object");
452
- }
453
-
454
- html += '</select>';
455
- return html;
456
- },
457
-
458
- setDefaultDialogSettings : function(editor) {
459
- var defaultDialogSettings = editor.getParam("media_dialog_defaults", {});
460
- tinymce.each(defaultDialogSettings, function(v, k) {
461
- setVal(k, v);
462
- });
463
- }
464
- };
465
-
466
- tinyMCEPopup.requireLangPack();
467
- tinyMCEPopup.onInit.add(function() {
468
- Media.init();
469
- });
470
- })();
1
+ (function() {
2
+ var url;
3
+
4
+ if (url = tinyMCEPopup.getParam("media_external_list_url"))
5
+ document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');
6
+
7
+ function get(id) {
8
+ return document.getElementById(id);
9
+ }
10
+
11
+ function clone(obj) {
12
+ var i, len, copy, attr;
13
+
14
+ if (null == obj || "object" != typeof obj)
15
+ return obj;
16
+
17
+ // Handle Array
18
+ if ('length' in obj) {
19
+ copy = [];
20
+
21
+ for (i = 0, len = obj.length; i < len; ++i) {
22
+ copy[i] = clone(obj[i]);
23
+ }
24
+
25
+ return copy;
26
+ }
27
+
28
+ // Handle Object
29
+ copy = {};
30
+ for (attr in obj) {
31
+ if (obj.hasOwnProperty(attr))
32
+ copy[attr] = clone(obj[attr]);
33
+ }
34
+
35
+ return copy;
36
+ }
37
+
38
+ function getVal(id) {
39
+ var elm = get(id);
40
+
41
+ if (elm.nodeName == "SELECT")
42
+ return elm.options[elm.selectedIndex].value;
43
+
44
+ if (elm.type == "checkbox")
45
+ return elm.checked;
46
+
47
+ return elm.value;
48
+ }
49
+
50
+ function setVal(id, value, name) {
51
+ if (typeof(value) != 'undefined' && value != null) {
52
+ var elm = get(id);
53
+
54
+ if (elm.nodeName == "SELECT")
55
+ selectByValue(document.forms[0], id, value);
56
+ else if (elm.type == "checkbox") {
57
+ if (typeof(value) == 'string') {
58
+ value = value.toLowerCase();
59
+ value = (!name && value === 'true') || (name && value === name.toLowerCase());
60
+ }
61
+ elm.checked = !!value;
62
+ } else
63
+ elm.value = value;
64
+ }
65
+ }
66
+
67
+ window.Media = {
68
+ init : function() {
69
+ var html, editor, self = this;
70
+
71
+ self.editor = editor = tinyMCEPopup.editor;
72
+
73
+ // Setup file browsers and color pickers
74
+ get('filebrowsercontainer').innerHTML = getBrowserHTML('filebrowser','src','media','media');
75
+ get('qtsrcfilebrowsercontainer').innerHTML = getBrowserHTML('qtsrcfilebrowser','quicktime_qtsrc','media','media');
76
+ get('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
77
+ get('video_altsource1_filebrowser').innerHTML = getBrowserHTML('video_filebrowser_altsource1','video_altsource1','media','media');
78
+ get('video_altsource2_filebrowser').innerHTML = getBrowserHTML('video_filebrowser_altsource2','video_altsource2','media','media');
79
+ get('audio_altsource1_filebrowser').innerHTML = getBrowserHTML('audio_filebrowser_altsource1','audio_altsource1','media','media');
80
+ get('audio_altsource2_filebrowser').innerHTML = getBrowserHTML('audio_filebrowser_altsource2','audio_altsource2','media','media');
81
+ get('video_poster_filebrowser').innerHTML = getBrowserHTML('filebrowser_poster','video_poster','image','media');
82
+
83
+ html = self.getMediaListHTML('medialist', 'src', 'media', 'media');
84
+ if (html == "")
85
+ get("linklistrow").style.display = 'none';
86
+ else
87
+ get("linklistcontainer").innerHTML = html;
88
+
89
+ if (isVisible('filebrowser'))
90
+ get('src').style.width = '230px';
91
+
92
+ if (isVisible('video_filebrowser_altsource1'))
93
+ get('video_altsource1').style.width = '220px';
94
+
95
+ if (isVisible('video_filebrowser_altsource2'))
96
+ get('video_altsource2').style.width = '220px';
97
+
98
+ if (isVisible('audio_filebrowser_altsource1'))
99
+ get('audio_altsource1').style.width = '220px';
100
+
101
+ if (isVisible('audio_filebrowser_altsource2'))
102
+ get('audio_altsource2').style.width = '220px';
103
+
104
+ if (isVisible('filebrowser_poster'))
105
+ get('video_poster').style.width = '220px';
106
+
107
+ editor.dom.setOuterHTML(get('media_type'), self.getMediaTypeHTML(editor));
108
+
109
+ self.setDefaultDialogSettings(editor);
110
+ self.data = clone(tinyMCEPopup.getWindowArg('data'));
111
+ self.dataToForm();
112
+ self.preview();
113
+
114
+ updateColor('bgcolor_pick', 'bgcolor');
115
+ },
116
+
117
+ insert : function() {
118
+ var editor = tinyMCEPopup.editor;
119
+
120
+ this.formToData();
121
+ editor.execCommand('mceRepaint');
122
+ tinyMCEPopup.restoreSelection();
123
+ editor.selection.setNode(editor.plugins.media.dataToImg(this.data));
124
+ tinyMCEPopup.close();
125
+ },
126
+
127
+ preview : function() {
128
+ get('prev').innerHTML = this.editor.plugins.media.dataToHtml(this.data, true);
129
+ },
130
+
131
+ moveStates : function(to_form, field) {
132
+ var data = this.data, editor = this.editor,
133
+ mediaPlugin = editor.plugins.media, ext, src, typeInfo, defaultStates, src;
134
+
135
+ defaultStates = {
136
+ // QuickTime
137
+ quicktime_autoplay : true,
138
+ quicktime_controller : true,
139
+
140
+ // Flash
141
+ flash_play : true,
142
+ flash_loop : true,
143
+ flash_menu : true,
144
+
145
+ // WindowsMedia
146
+ windowsmedia_autostart : true,
147
+ windowsmedia_enablecontextmenu : true,
148
+ windowsmedia_invokeurls : true,
149
+
150
+ // RealMedia
151
+ realmedia_autogotourl : true,
152
+ realmedia_imagestatus : true
153
+ };
154
+
155
+ function parseQueryParams(str) {
156
+ var out = {};
157
+
158
+ if (str) {
159
+ tinymce.each(str.split('&'), function(item) {
160
+ var parts = item.split('=');
161
+
162
+ out[unescape(parts[0])] = unescape(parts[1]);
163
+ });
164
+ }
165
+
166
+ return out;
167
+ };
168
+
169
+ function setOptions(type, names) {
170
+ var i, name, formItemName, value, list;
171
+
172
+ if (type == data.type || type == 'global') {
173
+ names = tinymce.explode(names);
174
+ for (i = 0; i < names.length; i++) {
175
+ name = names[i];
176
+ formItemName = type == 'global' ? name : type + '_' + name;
177
+
178
+ if (type == 'global')
179
+ list = data;
180
+ else if (type == 'video' || type == 'audio') {
181
+ list = data.video.attrs;
182
+
183
+ if (!list && !to_form)
184
+ data.video.attrs = list = {};
185
+ } else
186
+ list = data.params;
187
+
188
+ if (list) {
189
+ if (to_form) {
190
+ setVal(formItemName, list[name], type == 'video' || type == 'audio' ? name : '');
191
+ } else {
192
+ delete list[name];
193
+
194
+ value = getVal(formItemName);
195
+ if ((type == 'video' || type == 'audio') && value === true)
196
+ value = name;
197
+
198
+ if (defaultStates[formItemName]) {
199
+ if (value !== defaultStates[formItemName]) {
200
+ value = "" + value;
201
+ list[name] = value;
202
+ }
203
+ } else if (value) {
204
+ value = "" + value;
205
+ list[name] = value;
206
+ }
207
+ }
208
+ }
209
+ }
210
+ }
211
+ }
212
+
213
+ if (!to_form) {
214
+ data.type = get('media_type').options[get('media_type').selectedIndex].value;
215
+ data.width = getVal('width');
216
+ data.height = getVal('height');
217
+
218
+ // Switch type based on extension
219
+ src = getVal('src');
220
+ if (field == 'src') {
221
+ ext = src.replace(/^.*\.([^.]+)$/, '$1');
222
+ if (typeInfo = mediaPlugin.getType(ext))
223
+ data.type = typeInfo.name.toLowerCase();
224
+
225
+ setVal('media_type', data.type);
226
+ }
227
+
228
+ if (data.type == "video" || data.type == "audio") {
229
+ if (!data.video.sources)
230
+ data.video.sources = [];
231
+
232
+ data.video.sources[0] = {src: getVal('src')};
233
+ }
234
+ }
235
+
236
+ // Hide all fieldsets and show the one active
237
+ get('video_options').style.display = 'none';
238
+ get('audio_options').style.display = 'none';
239
+ get('flash_options').style.display = 'none';
240
+ get('quicktime_options').style.display = 'none';
241
+ get('shockwave_options').style.display = 'none';
242
+ get('windowsmedia_options').style.display = 'none';
243
+ get('realmedia_options').style.display = 'none';
244
+ get('embeddedaudio_options').style.display = 'none';
245
+
246
+ if (get(data.type + '_options'))
247
+ get(data.type + '_options').style.display = 'block';
248
+
249
+ setVal('media_type', data.type);
250
+
251
+ setOptions('flash', 'play,loop,menu,swliveconnect,quality,scale,salign,wmode,base,flashvars');
252
+ setOptions('quicktime', 'loop,autoplay,cache,controller,correction,enablejavascript,kioskmode,autohref,playeveryframe,targetcache,scale,starttime,endtime,target,qtsrcchokespeed,volume,qtsrc');
253
+ setOptions('shockwave', 'sound,progress,autostart,swliveconnect,swvolume,swstretchstyle,swstretchhalign,swstretchvalign');
254
+ setOptions('windowsmedia', 'autostart,enabled,enablecontextmenu,fullscreen,invokeurls,mute,stretchtofit,windowlessvideo,balance,baseurl,captioningid,currentmarker,currentposition,defaultframe,playcount,rate,uimode,volume');
255
+ setOptions('realmedia', 'autostart,loop,autogotourl,center,imagestatus,maintainaspect,nojava,prefetch,shuffle,console,controls,numloop,scriptcallbacks');
256
+ setOptions('video', 'poster,autoplay,loop,muted,preload,controls');
257
+ setOptions('audio', 'autoplay,loop,preload,controls');
258
+ setOptions('embeddedaudio', 'autoplay,loop,controls');
259
+ setOptions('global', 'id,name,vspace,hspace,bgcolor,align,width,height');
260
+
261
+ if (to_form) {
262
+ if (data.type == 'video') {
263
+ if (data.video.sources[0])
264
+ setVal('src', data.video.sources[0].src);
265
+
266
+ src = data.video.sources[1];
267
+ if (src)
268
+ setVal('video_altsource1', src.src);
269
+
270
+ src = data.video.sources[2];
271
+ if (src)
272
+ setVal('video_altsource2', src.src);
273
+ } else if (data.type == 'audio') {
274
+ if (data.video.sources[0])
275
+ setVal('src', data.video.sources[0].src);
276
+
277
+ src = data.video.sources[1];
278
+ if (src)
279
+ setVal('audio_altsource1', src.src);
280
+
281
+ src = data.video.sources[2];
282
+ if (src)
283
+ setVal('audio_altsource2', src.src);
284
+ } else {
285
+ // Check flash vars
286
+ if (data.type == 'flash') {
287
+ tinymce.each(editor.getParam('flash_video_player_flashvars', {url : '$url', poster : '$poster'}), function(value, name) {
288
+ if (value == '$url')
289
+ data.params.src = parseQueryParams(data.params.flashvars)[name] || data.params.src || '';
290
+ });
291
+ }
292
+
293
+ setVal('src', data.params.src);
294
+ }
295
+ } else {
296
+ src = getVal("src");
297
+
298
+ // YouTube *NEW*
299
+ if (src.match(/youtu.be\/[a-z1-9.-_]+/)) {
300
+ data.width = 425;
301
+ data.height = 350;
302
+ data.params.frameborder = '0';
303
+ data.type = 'iframe';
304
+ src = 'http://www.youtube.com/embed/' + src.match(/youtu.be\/([a-z1-9.-_]+)/)[1];
305
+ setVal('src', src);
306
+ setVal('media_type', data.type);
307
+ }
308
+
309
+ // YouTube
310
+ if (src.match(/youtube.com(.+)v=([^&]+)/)) {
311
+ data.width = 425;
312
+ data.height = 350;
313
+ data.params.frameborder = '0';
314
+ data.type = 'iframe';
315
+ src = 'http://www.youtube.com/embed/' + src.match(/v=([^&]+)/)[1];
316
+ setVal('src', src);
317
+ setVal('media_type', data.type);
318
+ }
319
+
320
+ // Google video
321
+ if (src.match(/video.google.com(.+)docid=([^&]+)/)) {
322
+ data.width = 425;
323
+ data.height = 326;
324
+ data.type = 'flash';
325
+ src = 'http://video.google.com/googleplayer.swf?docId=' + src.match(/docid=([^&]+)/)[1] + '&hl=en';
326
+ setVal('src', src);
327
+ setVal('media_type', data.type);
328
+ }
329
+
330
+ // Vimeo
331
+ if (src.match(/vimeo.com\/([0-9]+)/)) {
332
+ data.width = 425;
333
+ data.height = 350;
334
+ data.params.frameborder = '0';
335
+ data.type = 'iframe';
336
+ src = 'http://player.vimeo.com/video/' + src.match(/vimeo.com\/([0-9]+)/)[1];
337
+ setVal('src', src);
338
+ setVal('media_type', data.type);
339
+ }
340
+
341
+ // stream.cz
342
+ if (src.match(/stream.cz\/((?!object).)*\/([0-9]+)/)) {
343
+ data.width = 425;
344
+ data.height = 350;
345
+ data.params.frameborder = '0';
346
+ data.type = 'iframe';
347
+ src = 'http://www.stream.cz/object/' + src.match(/stream.cz\/[^/]+\/([0-9]+)/)[1];
348
+ setVal('src', src);
349
+ setVal('media_type', data.type);
350
+ }
351
+
352
+ // Google maps
353
+ if (src.match(/maps.google.([a-z]{2,3})\/maps\/(.+)msid=(.+)/)) {
354
+ data.width = 425;
355
+ data.height = 350;
356
+ data.params.frameborder = '0';
357
+ data.type = 'iframe';
358
+ src = 'http://maps.google.com/maps/ms?msid=' + src.match(/msid=(.+)/)[1] + "&output=embed";
359
+ setVal('src', src);
360
+ setVal('media_type', data.type);
361
+ }
362
+
363
+ if (data.type == 'video') {
364
+ if (!data.video.sources)
365
+ data.video.sources = [];
366
+
367
+ data.video.sources[0] = {src : src};
368
+
369
+ src = getVal("video_altsource1");
370
+ if (src)
371
+ data.video.sources[1] = {src : src};
372
+
373
+ src = getVal("video_altsource2");
374
+ if (src)
375
+ data.video.sources[2] = {src : src};
376
+ } else if (data.type == 'audio') {
377
+ if (!data.video.sources)
378
+ data.video.sources = [];
379
+
380
+ data.video.sources[0] = {src : src};
381
+
382
+ src = getVal("audio_altsource1");
383
+ if (src)
384
+ data.video.sources[1] = {src : src};
385
+
386
+ src = getVal("audio_altsource2");
387
+ if (src)
388
+ data.video.sources[2] = {src : src};
389
+ } else
390
+ data.params.src = src;
391
+
392
+ // Set default size
393
+ setVal('width', data.width || (data.type == 'audio' ? 300 : 320));
394
+ setVal('height', data.height || (data.type == 'audio' ? 32 : 240));
395
+ }
396
+ },
397
+
398
+ dataToForm : function() {
399
+ this.moveStates(true);
400
+ },
401
+
402
+ formToData : function(field) {
403
+ if (field == "width" || field == "height")
404
+ this.changeSize(field);
405
+
406
+ if (field == 'source') {
407
+ this.moveStates(false, field);
408
+ setVal('source', this.editor.plugins.media.dataToHtml(this.data));
409
+ this.panel = 'source';
410
+ } else {
411
+ if (this.panel == 'source') {
412
+ this.data = clone(this.editor.plugins.media.htmlToData(getVal('source')));
413
+ this.dataToForm();
414
+ this.panel = '';
415
+ }
416
+
417
+ this.moveStates(false, field);
418
+ this.preview();
419
+ }
420
+ },
421
+
422
+ beforeResize : function() {
423
+ this.width = parseInt(getVal('width') || (this.data.type == 'audio' ? "300" : "320"), 10);
424
+ this.height = parseInt(getVal('height') || (this.data.type == 'audio' ? "32" : "240"), 10);
425
+ },
426
+
427
+ changeSize : function(type) {
428
+ var width, height, scale, size;
429
+
430
+ if (get('constrain').checked) {
431
+ width = parseInt(getVal('width') || (this.data.type == 'audio' ? "300" : "320"), 10);
432
+ height = parseInt(getVal('height') || (this.data.type == 'audio' ? "32" : "240"), 10);
433
+
434
+ if (type == 'width') {
435
+ this.height = Math.round((width / this.width) * height);
436
+ setVal('height', this.height);
437
+ } else {
438
+ this.width = Math.round((height / this.height) * width);
439
+ setVal('width', this.width);
440
+ }
441
+ }
442
+ },
443
+
444
+ getMediaListHTML : function() {
445
+ if (typeof(tinyMCEMediaList) != "undefined" && tinyMCEMediaList.length > 0) {
446
+ var html = "";
447
+
448
+ html += '<select id="linklist" name="linklist" style="width: 250px" onchange="this.form.src.value=this.options[this.selectedIndex].value;Media.formToData(\'src\');">';
449
+ html += '<option value="">---</option>';
450
+
451
+ for (var i=0; i<tinyMCEMediaList.length; i++)
452
+ html += '<option value="' + tinyMCEMediaList[i][1] + '">' + tinyMCEMediaList[i][0] + '</option>';
453
+
454
+ html += '</select>';
455
+
456
+ return html;
457
+ }
458
+
459
+ return "";
460
+ },
461
+
462
+ getMediaTypeHTML : function(editor) {
463
+ function option(media_type, element) {
464
+ if (!editor.schema.getElementRule(element || media_type)) {
465
+ return '';
466
+ }
467
+
468
+ return '<option value="'+media_type+'">'+tinyMCEPopup.editor.translate("media_dlg."+media_type)+'</option>'
469
+ }
470
+
471
+ var html = "";
472
+
473
+ html += '<select id="media_type" name="media_type" onchange="Media.formToData(\'type\');">';
474
+ html += option("video");
475
+ html += option("audio");
476
+ html += option("flash", "object");
477
+ html += option("quicktime", "object");
478
+ html += option("shockwave", "object");
479
+ html += option("windowsmedia", "object");
480
+ html += option("realmedia", "object");
481
+ html += option("iframe");
482
+
483
+ if (editor.getParam('media_embedded_audio', false)) {
484
+ html += option('embeddedaudio', "object");
485
+ }
486
+
487
+ html += '</select>';
488
+ return html;
489
+ },
490
+
491
+ setDefaultDialogSettings : function(editor) {
492
+ var defaultDialogSettings = editor.getParam("media_dialog_defaults", {});
493
+ tinymce.each(defaultDialogSettings, function(v, k) {
494
+ setVal(k, v);
495
+ });
496
+ }
497
+ };
498
+
499
+ tinyMCEPopup.requireLangPack();
500
+ tinyMCEPopup.onInit.add(function() {
501
+ Media.init();
502
+ });
503
+ })();