--- /dev/null
+/**\r
+ * $Id: editor_plugin_src.js 201 2007-02-12 15:56:56Z spocke $\r
+ *\r
+ * @author Moxiecode\r
+ * @copyright Copyright © 2004-2007, Moxiecode Systems AB, All rights reserved.\r
+ */\r
+\r
+/* Import plugin specific language pack */\r
+tinyMCE.importPluginLanguagePack('advimage');\r
+\r
+var TinyMCE_AdvancedImagePlugin = {\r
+ getInfo : function() {\r
+ return {\r
+ longname : 'Advanced image',\r
+ author : 'Moxiecode Systems AB',\r
+ authorurl : 'http://tinymce.moxiecode.com',\r
+ infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/advimage',\r
+ version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion\r
+ };\r
+ },\r
+\r
+ getControlHTML : function(cn) {\r
+ switch (cn) {\r
+ case "image":\r
+ return tinyMCE.getButtonHTML(cn, 'lang_image_desc', '{$themeurl}/images/image.gif', 'mceAdvImage');\r
+ }\r
+\r
+ return "";\r
+ },\r
+\r
+ execCommand : function(editor_id, element, command, user_interface, value) {\r
+ switch (command) {\r
+ case "mceAdvImage":\r
+ var template = new Array();\r
+\r
+ template['file'] = '../../plugins/advimage/image.htm';\r
+ template['width'] = 480;\r
+ template['height'] = 380;\r
+\r
+ // Language specific width and height addons\r
+ template['width'] += tinyMCE.getLang('lang_advimage_delta_width', 0);\r
+ template['height'] += tinyMCE.getLang('lang_advimage_delta_height', 0);\r
+\r
+ var inst = tinyMCE.getInstanceById(editor_id);\r
+ var elm = inst.getFocusElement();\r
+\r
+ if (elm != null && tinyMCE.getAttrib(elm, 'class').indexOf('mceItem') != -1)\r
+ return true;\r
+\r
+ tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes"});\r
+\r
+ return true;\r
+ }\r
+\r
+ return false;\r
+ },\r
+\r
+ cleanup : function(type, content) {\r
+ switch (type) {\r
+ case "insert_to_editor_dom":\r
+ var imgs = content.getElementsByTagName("img"), src, i;\r
+ for (i=0; i<imgs.length; i++) {\r
+ var onmouseover = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseover'));\r
+ var onmouseout = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseout'));\r
+\r
+ if ((src = this._getImageSrc(onmouseover)) != "") {\r
+ if (tinyMCE.getParam('convert_urls'))\r
+ src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);\r
+\r
+ imgs[i].setAttribute('onmouseover', "this.src='" + src + "';");\r
+ }\r
+\r
+ if ((src = this._getImageSrc(onmouseout)) != "") {\r
+ if (tinyMCE.getParam('convert_urls'))\r
+ src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);\r
+\r
+ imgs[i].setAttribute('onmouseout', "this.src='" + src + "';");\r
+ }\r
+ }\r
+ break;\r
+\r
+ case "get_from_editor_dom":\r
+ var imgs = content.getElementsByTagName("img");\r
+ for (var i=0; i<imgs.length; i++) {\r
+ var onmouseover = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseover'));\r
+ var onmouseout = tinyMCE.cleanupEventStr(tinyMCE.getAttrib(imgs[i], 'onmouseout'));\r
+\r
+ if ((src = this._getImageSrc(onmouseover)) != "") {\r
+ if (tinyMCE.getParam('convert_urls'))\r
+ src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");\r
+\r
+ imgs[i].setAttribute('onmouseover', "this.src='" + src + "';");\r
+ }\r
+\r
+ if ((src = this._getImageSrc(onmouseout)) != "") {\r
+ if (tinyMCE.getParam('convert_urls'))\r
+ src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");\r
+\r
+ imgs[i].setAttribute('onmouseout', "this.src='" + src + "';");\r
+ }\r
+ }\r
+ break;\r
+ }\r
+\r
+ return content;\r
+ },\r
+\r
+ handleNodeChange : function(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {\r
+ if (node == null)\r
+ return;\r
+\r
+ do {\r
+ if (node.nodeName == "IMG" && tinyMCE.getAttrib(node, 'class').indexOf('mceItem') == -1) {\r
+ tinyMCE.switchClass(editor_id + '_advimage', 'mceButtonSelected');\r
+ return true;\r
+ }\r
+ } while ((node = node.parentNode));\r
+\r
+ tinyMCE.switchClass(editor_id + '_advimage', 'mceButtonNormal');\r
+\r
+ return true;\r
+ },\r
+\r
+ /**\r
+ * Returns the image src from a scripted mouse over image str.\r
+ *\r
+ * @param {string} s String to get real src from.\r
+ * @return Image src from a scripted mouse over image str.\r
+ * @type string\r
+ */\r
+ _getImageSrc : function(s) {\r
+ var sr, p = -1;\r
+\r
+ if (!s)\r
+ return "";\r
+\r
+ if ((p = s.indexOf('this.src=')) != -1) {\r
+ sr = s.substring(p + 10);\r
+ sr = sr.substring(0, sr.indexOf('\''));\r
+\r
+ return sr;\r
+ }\r
+\r
+ return "";\r
+ }\r
+};\r
+\r
+tinyMCE.addPlugin("advimage", TinyMCE_AdvancedImagePlugin);\r