* Upgraded TinyMCE to version 2.0RC3. This fixes a conflict with
[citadel.git] / webcit / tiny_mce / plugins / advimage / editor_plugin_src.js
1 /* Import plugin specific language pack */
2 tinyMCE.importPluginLanguagePack('advimage', 'en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br,nl,he,no');
3
4 function TinyMCE_advimage_getInfo() {
5         return {
6                 longname : 'Advanced image',
7                 author : 'Moxiecode Systems',
8                 authorurl : 'http://tinymce.moxiecode.com',
9                 infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_advimage.html',
10                 version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
11         };
12 };
13
14 function TinyMCE_advimage_getControlHTML(control_name) {
15         switch (control_name) {
16                 case "image":
17                         return '<a href="javascript:tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceAdvImage\');" target="_self" onmousedown="return false;"><img id="{$editor_id}_advimage" src="{$themeurl}/images/image.gif" title="{$lang_image_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreClass(this);" /></a>';
18         }
19
20         return "";
21 }
22
23 function TinyMCE_advimage_execCommand(editor_id, element, command, user_interface, value) {
24         switch (command) {
25                 case "mceAdvImage":
26                         var template = new Array();
27
28                         template['file']   = '../../plugins/advimage/image.htm';
29                         template['width']  = 480;
30                         template['height'] = 380;
31
32                         // Language specific width and height addons
33                         template['width']  += tinyMCE.getLang('lang_advimage_delta_width', 0);
34                         template['height'] += tinyMCE.getLang('lang_advimage_delta_height', 0);
35
36                         tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});
37
38                         return true;
39         }
40
41         return false;
42 }
43
44 function TinyMCE_advimage_cleanup(type, content) {
45         switch (type) {
46                 case "insert_to_editor_dom":
47                         var imgs = content.getElementsByTagName("img");
48                         for (var i=0; i<imgs.length; i++) {
49                                 var onmouseover = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseover'));
50                                 var onmouseout = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseout'));
51
52                                 if ((src = tinyMCE.getImageSrc(onmouseover)) != "") {
53                                         src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);
54                                         imgs[i].setAttribute('onmouseover', "this.src='" + src + "';");
55                                 }
56
57                                 if ((src = tinyMCE.getImageSrc(onmouseout)) != "") {
58                                         src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);
59                                         imgs[i].setAttribute('onmouseout', "this.src='" + src + "';");
60                                 }
61                         }
62                         break;
63
64                 case "get_from_editor_dom":
65                         var imgs = content.getElementsByTagName("img");
66                         for (var i=0; i<imgs.length; i++) {
67                                 var onmouseover = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseover'));
68                                 var onmouseout = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseout'));
69
70                                 if ((src = tinyMCE.getImageSrc(onmouseover)) != "") {
71                                         src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");
72                                         imgs[i].setAttribute('onmouseover', "this.src='" + src + "';");
73                                 }
74
75                                 if ((src = tinyMCE.getImageSrc(onmouseout)) != "") {
76                                         src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");
77                                         imgs[i].setAttribute('onmouseout', "this.src='" + src + "';");
78                                 }
79                         }
80                         break;
81         }
82
83         return content;
84 }
85
86 function TinyMCE_advimage_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
87         tinyMCE.switchClassSticky(editor_id + '_advimage', 'mceButtonNormal');
88
89         if (node == null)
90                 return;
91
92         do {
93                 if (node.nodeName == "IMG" && tinyMCE.getAttrib(node, 'class').indexOf('mceItem') == -1)
94                         tinyMCE.switchClassSticky(editor_id + '_advimage', 'mceButtonSelected');
95         } while ((node = node.parentNode));
96
97         return true;
98 }