2 * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $
\r
5 * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.
\r
8 /* Import plugin specific language pack */
\r
9 tinyMCE.importPluginLanguagePack('advimage');
\r
11 var TinyMCE_AdvancedImagePlugin = {
\r
12 getInfo : function() {
\r
14 longname : 'Advanced image',
\r
15 author : 'Moxiecode Systems AB',
\r
16 authorurl : 'http://tinymce.moxiecode.com',
\r
17 infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',
\r
18 version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion
\r
22 getControlHTML : function(cn) {
\r
25 return tinyMCE.getButtonHTML(cn, 'lang_image_desc', '{$themeurl}/images/image.gif', 'mceAdvImage');
\r
31 execCommand : function(editor_id, element, command, user_interface, value) {
\r
34 var template = new Array();
\r
36 template['file'] = '../../plugins/advimage/image.htm';
\r
37 template['width'] = 480;
\r
38 template['height'] = 380;
\r
40 // Language specific width and height addons
\r
41 template['width'] += tinyMCE.getLang('lang_advimage_delta_width', 0);
\r
42 template['height'] += tinyMCE.getLang('lang_advimage_delta_height', 0);
\r
44 var inst = tinyMCE.getInstanceById(editor_id);
\r
45 var elm = inst.getFocusElement();
\r
47 if (elm != null && tinyMCE.getAttrib(elm, 'class').indexOf('mceItem') != -1)
\r
50 tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});
\r
58 cleanup : function(type, content) {
\r
60 case "insert_to_editor_dom":
\r
61 var imgs = content.getElementsByTagName("img"), src, i;
\r
62 for (i=0; i<imgs.length; i++) {
\r
63 var onmouseover = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseover'));
\r
64 var onmouseout = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseout'));
\r
66 if ((src = this._getImageSrc(onmouseover)) != "") {
\r
67 if (tinyMCE.getParam('convert_urls'))
\r
68 src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);
\r
70 imgs[i].setAttribute('onmouseover', "this.src='" + src + "';");
\r
73 if ((src = this._getImageSrc(onmouseout)) != "") {
\r
74 if (tinyMCE.getParam('convert_urls'))
\r
75 src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);
\r
77 imgs[i].setAttribute('onmouseout', "this.src='" + src + "';");
\r
82 case "get_from_editor_dom":
\r
83 var imgs = content.getElementsByTagName("img");
\r
84 for (var i=0; i<imgs.length; i++) {
\r
85 var onmouseover = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseover'));
\r
86 var onmouseout = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseout'));
\r
88 if ((src = this._getImageSrc(onmouseover)) != "") {
\r
89 if (tinyMCE.getParam('convert_urls'))
\r
90 src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");
\r
92 imgs[i].setAttribute('onmouseover', "this.src='" + src + "';");
\r
95 if ((src = this._getImageSrc(onmouseout)) != "") {
\r
96 if (tinyMCE.getParam('convert_urls'))
\r
97 src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");
\r
99 imgs[i].setAttribute('onmouseout', "this.src='" + src + "';");
\r
108 handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
\r
113 if (node.nodeName == "IMG" && tinyMCE.getAttrib(node, 'class').indexOf('mceItem') == -1) {
\r
114 tinyMCE.switchClass(editor_id + '_advimage', 'mceButtonSelected');
\r
117 } while ((node = node.parentNode));
\r
119 tinyMCE.switchClass(editor_id + '_advimage', 'mceButtonNormal');
\r
125 * Returns the image src from a scripted mouse over image str.
\r
127 * @param {string} s String to get real src from.
\r
128 * @return Image src from a scripted mouse over image str.
\r
131 _getImageSrc : function(s) {
\r
137 if ((p = s.indexOf('this.src=')) != -1) {
\r
138 sr = s.substring(p + 10);
\r
139 sr = sr.substring(0, sr.indexOf('\''));
\r
148 tinyMCE.addPlugin("advimage", TinyMCE_AdvancedImagePlugin);
\r