+++ /dev/null
-var ImageDialog = {\r
- preInit : function() {\r
- var url;\r
-\r
- tinyMCEPopup.requireLangPack();\r
-\r
- if (url = tinyMCEPopup.getParam("external_image_list_url"))\r
- document.write('<script language="javascript" type="text/javascript" src="' + tinyMCEPopup.editor.documentBaseURI.toAbsolute(url) + '"></script>');\r
- },\r
-\r
- init : function() {\r
- var f = document.forms[0], ed = tinyMCEPopup.editor;\r
-\r
- // Setup browse button\r
- document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');\r
- if (isVisible('srcbrowser'))\r
- document.getElementById('src').style.width = '180px';\r
-\r
- e = ed.selection.getNode();\r
-\r
- this.fillFileList('image_list', tinyMCEPopup.getParam('external_image_list', 'tinyMCEImageList'));\r
-\r
- if (e.nodeName == 'IMG') {\r
- f.src.value = ed.dom.getAttrib(e, 'src');\r
- f.alt.value = ed.dom.getAttrib(e, 'alt');\r
- f.border.value = this.getAttrib(e, 'border');\r
- f.vspace.value = this.getAttrib(e, 'vspace');\r
- f.hspace.value = this.getAttrib(e, 'hspace');\r
- f.width.value = ed.dom.getAttrib(e, 'width');\r
- f.height.value = ed.dom.getAttrib(e, 'height');\r
- f.insert.value = ed.getLang('update');\r
- this.styleVal = ed.dom.getAttrib(e, 'style');\r
- selectByValue(f, 'image_list', f.src.value);\r
- selectByValue(f, 'align', this.getAttrib(e, 'align'));\r
- this.updateStyle();\r
- }\r
- },\r
-\r
- fillFileList : function(id, l) {\r
- var dom = tinyMCEPopup.dom, lst = dom.get(id), v, cl;\r
-\r
- l = typeof(l) === 'function' ? l() : window[l];\r
-\r
- if (l && l.length > 0) {\r
- lst.options[lst.options.length] = new Option('', '');\r
-\r
- tinymce.each(l, function(o) {\r
- lst.options[lst.options.length] = new Option(o[0], o[1]);\r
- });\r
- } else\r
- dom.remove(dom.getParent(id, 'tr'));\r
- },\r
-\r
- update : function() {\r
- var f = document.forms[0], nl = f.elements, ed = tinyMCEPopup.editor, args = {}, el;\r
-\r
- tinyMCEPopup.restoreSelection();\r
-\r
- if (f.src.value === '') {\r
- if (ed.selection.getNode().nodeName == 'IMG') {\r
- ed.dom.remove(ed.selection.getNode());\r
- ed.execCommand('mceRepaint');\r
- }\r
-\r
- tinyMCEPopup.close();\r
- return;\r
- }\r
-\r
- if (!ed.settings.inline_styles) {\r
- args = tinymce.extend(args, {\r
- vspace : nl.vspace.value,\r
- hspace : nl.hspace.value,\r
- border : nl.border.value,\r
- align : getSelectValue(f, 'align')\r
- });\r
- } else\r
- args.style = this.styleVal;\r
-\r
- tinymce.extend(args, {\r
- src : f.src.value.replace(/ /g, '%20'),\r
- alt : f.alt.value,\r
- width : f.width.value,\r
- height : f.height.value\r
- });\r
-\r
- el = ed.selection.getNode();\r
-\r
- if (el && el.nodeName == 'IMG') {\r
- ed.dom.setAttribs(el, args);\r
- tinyMCEPopup.editor.execCommand('mceRepaint');\r
- tinyMCEPopup.editor.focus();\r
- } else {\r
- tinymce.each(args, function(value, name) {\r
- if (value === "") {\r
- delete args[name];\r
- }\r
- });\r
-\r
- ed.execCommand('mceInsertContent', false, tinyMCEPopup.editor.dom.createHTML('img', args), {skip_undo : 1});\r
- ed.undoManager.add();\r
- }\r
-\r
- tinyMCEPopup.close();\r
- },\r
-\r
- updateStyle : function() {\r
- var dom = tinyMCEPopup.dom, st = {}, v, f = document.forms[0];\r
-\r
- if (tinyMCEPopup.editor.settings.inline_styles) {\r
- tinymce.each(tinyMCEPopup.dom.parseStyle(this.styleVal), function(value, key) {\r
- st[key] = value;\r
- });\r
-\r
- // Handle align\r
- v = getSelectValue(f, 'align');\r
- if (v) {\r
- if (v == 'left' || v == 'right') {\r
- st['float'] = v;\r
- delete st['vertical-align'];\r
- } else {\r
- st['vertical-align'] = v;\r
- delete st['float'];\r
- }\r
- } else {\r
- delete st['float'];\r
- delete st['vertical-align'];\r
- }\r
-\r
- // Handle border\r
- v = f.border.value;\r
- if (v || v == '0') {\r
- if (v == '0')\r
- st['border'] = '0';\r
- else\r
- st['border'] = v + 'px solid black';\r
- } else\r
- delete st['border'];\r
-\r
- // Handle hspace\r
- v = f.hspace.value;\r
- if (v) {\r
- delete st['margin'];\r
- st['margin-left'] = v + 'px';\r
- st['margin-right'] = v + 'px';\r
- } else {\r
- delete st['margin-left'];\r
- delete st['margin-right'];\r
- }\r
-\r
- // Handle vspace\r
- v = f.vspace.value;\r
- if (v) {\r
- delete st['margin'];\r
- st['margin-top'] = v + 'px';\r
- st['margin-bottom'] = v + 'px';\r
- } else {\r
- delete st['margin-top'];\r
- delete st['margin-bottom'];\r
- }\r
-\r
- // Merge\r
- st = tinyMCEPopup.dom.parseStyle(dom.serializeStyle(st), 'img');\r
- this.styleVal = dom.serializeStyle(st, 'img');\r
- }\r
- },\r
-\r
- getAttrib : function(e, at) {\r
- var ed = tinyMCEPopup.editor, dom = ed.dom, v, v2;\r
-\r
- if (ed.settings.inline_styles) {\r
- switch (at) {\r
- case 'align':\r
- if (v = dom.getStyle(e, 'float'))\r
- return v;\r
-\r
- if (v = dom.getStyle(e, 'vertical-align'))\r
- return v;\r
-\r
- break;\r
-\r
- case 'hspace':\r
- v = dom.getStyle(e, 'margin-left')\r
- v2 = dom.getStyle(e, 'margin-right');\r
- if (v && v == v2)\r
- return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
- break;\r
-\r
- case 'vspace':\r
- v = dom.getStyle(e, 'margin-top')\r
- v2 = dom.getStyle(e, 'margin-bottom');\r
- if (v && v == v2)\r
- return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
- break;\r
-\r
- case 'border':\r
- v = 0;\r
-\r
- tinymce.each(['top', 'right', 'bottom', 'left'], function(sv) {\r
- sv = dom.getStyle(e, 'border-' + sv + '-width');\r
-\r
- // False or not the same as prev\r
- if (!sv || (sv != v && v !== 0)) {\r
- v = 0;\r
- return false;\r
- }\r
-\r
- if (sv)\r
- v = sv;\r
- });\r
-\r
- if (v)\r
- return parseInt(v.replace(/[^0-9]/g, ''));\r
-\r
- break;\r
- }\r
- }\r
-\r
- if (v = dom.getAttrib(e, at))\r
- return v;\r
-\r
- return '';\r
- },\r
-\r
- resetImageData : function() {\r
- var f = document.forms[0];\r
-\r
- f.width.value = f.height.value = ""; \r
- },\r
-\r
- updateImageData : function() {\r
- var f = document.forms[0], t = ImageDialog;\r
-\r
- if (f.width.value == "")\r
- f.width.value = t.preloadImg.width;\r
-\r
- if (f.height.value == "")\r
- f.height.value = t.preloadImg.height;\r
- },\r
-\r
- getImageData : function() {\r
- var f = document.forms[0];\r
-\r
- this.preloadImg = new Image();\r
- this.preloadImg.onload = this.updateImageData;\r
- this.preloadImg.onerror = this.resetImageData;\r
- this.preloadImg.src = tinyMCEPopup.editor.documentBaseURI.toAbsolute(f.src.value);\r
- }\r
-};\r
-\r
-ImageDialog.preInit();\r
-tinyMCEPopup.onInit.add(ImageDialog.init, ImageDialog);\r