+++ /dev/null
-/* Functions for the advimage plugin popup */\r
-\r
-var preloadImg = null;\r
-var orgImageWidth, orgImageHeight;\r
-\r
-function preinit() {\r
- // Initialize\r
- tinyMCE.setWindowArg('mce_windowresize', false);\r
-\r
- // Import external list url javascript\r
- var url = tinyMCE.getParam("external_image_list_url");\r
- if (url != null) {\r
- // Fix relative\r
- if (url.charAt(0) != '/' && url.indexOf('://') == -1)\r
- url = tinyMCE.documentBasePath + "/" + url;\r
-\r
- document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');\r
- }\r
-}\r
-\r
-function convertURL(url, node, on_save) {\r
- return eval("tinyMCEPopup.windowOpener." + tinyMCE.settings['urlconverter_callback'] + "(url, node, on_save);");\r
-}\r
-\r
-function getImageSrc(str) {\r
- var pos = -1;\r
-\r
- if (!str)\r
- return "";\r
-\r
- if ((pos = str.indexOf('this.src=')) != -1) {\r
- var src = str.substring(pos + 10);\r
-\r
- src = src.substring(0, src.indexOf('\''));\r
-\r
- if (tinyMCE.getParam('convert_urls'))\r
- src = convertURL(src, null, true);\r
-\r
- return src;\r
- }\r
-\r
- return "";\r
-}\r
-\r
-function init() {\r
- tinyMCEPopup.resizeToInnerSize();\r
-\r
- var formObj = document.forms[0];\r
- var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));\r
- var elm = inst.getFocusElement();\r
- var action = "insert";\r
- var html = "";\r
-\r
- // Image list src\r
- html = getImageListHTML('imagelistsrc','src','onSelectMainImage');\r
- if (html == "")\r
- document.getElementById("imagelistsrcrow").style.display = 'none';\r
- else\r
- document.getElementById("imagelistsrccontainer").innerHTML = html;\r
-\r
- // Image list oversrc\r
- html = getImageListHTML('imagelistover','onmouseoversrc');\r
- if (html == "")\r
- document.getElementById("imagelistoverrow").style.display = 'none';\r
- else\r
- document.getElementById("imagelistovercontainer").innerHTML = html;\r
-\r
- // Image list outsrc\r
- html = getImageListHTML('imagelistout','onmouseoutsrc');\r
- if (html == "")\r
- document.getElementById("imagelistoutrow").style.display = 'none';\r
- else\r
- document.getElementById("imagelistoutcontainer").innerHTML = html;\r
-\r
- // Src browser\r
- html = getBrowserHTML('srcbrowser','src','image','advimage');\r
- document.getElementById("srcbrowsercontainer").innerHTML = html;\r
-\r
- // Over browser\r
- html = getBrowserHTML('oversrcbrowser','onmouseoversrc','image','advimage');\r
- document.getElementById("onmouseoversrccontainer").innerHTML = html;\r
-\r
- // Out browser\r
- html = getBrowserHTML('outsrcbrowser','onmouseoutsrc','image','advimage');\r
- document.getElementById("onmouseoutsrccontainer").innerHTML = html;\r
-\r
- // Longdesc browser\r
- html = getBrowserHTML('longdescbrowser','longdesc','file','advimage');\r
- document.getElementById("longdesccontainer").innerHTML = html;\r
-\r
- // Resize some elements\r
- if (isVisible('srcbrowser'))\r
- document.getElementById('src').style.width = '260px';\r
-\r
- if (isVisible('oversrcbrowser'))\r
- document.getElementById('onmouseoversrc').style.width = '260px';\r
-\r
- if (isVisible('outsrcbrowser'))\r
- document.getElementById('onmouseoutsrc').style.width = '260px';\r
-\r
- if (isVisible('longdescbrowser'))\r
- document.getElementById('longdesc').style.width = '180px';\r
-\r
- // Check action\r
- if (elm != null && elm.nodeName == "IMG")\r
- action = "update";\r
-\r
- formObj.insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true); \r
-\r
- if (action == "update") {\r
- var src = tinyMCE.getAttrib(elm, 'src');\r
- var onmouseoversrc = getImageSrc(tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseover')));\r
- var onmouseoutsrc = getImageSrc(tinyMCE.cleanupEventStr(tinyMCE.getAttrib(elm, 'onmouseout')));\r
-\r
- src = convertURL(src, elm, true);\r
-\r
- // Use mce_src if found\r
- var mceRealSrc = tinyMCE.getAttrib(elm, 'mce_src');\r
- if (mceRealSrc != "") {\r
- src = mceRealSrc;\r
-\r
- if (tinyMCE.getParam('convert_urls'))\r
- src = convertURL(src, elm, true);\r
- }\r
-\r
- if (onmouseoversrc != "" && tinyMCE.getParam('convert_urls'))\r
- onmouseoversrc = convertURL(onmouseoversrc, elm, true);\r
-\r
- if (onmouseoutsrc != "" && tinyMCE.getParam('convert_urls'))\r
- onmouseoutsrc = convertURL(onmouseoutsrc, elm, true);\r
-\r
- // Setup form data\r
- var style = tinyMCE.parseStyle(tinyMCE.getAttrib(elm, "style"));\r
-\r
- // Store away old size\r
- orgImageWidth = trimSize(getStyle(elm, 'width'))\r
- orgImageHeight = trimSize(getStyle(elm, 'height'));\r
-\r
- formObj.src.value = src;\r
- formObj.alt.value = tinyMCE.getAttrib(elm, 'alt');\r
- formObj.title.value = tinyMCE.getAttrib(elm, 'title');\r
- formObj.border.value = trimSize(getStyle(elm, 'border', 'borderWidth'));\r
- formObj.vspace.value = tinyMCE.getAttrib(elm, 'vspace');\r
- formObj.hspace.value = tinyMCE.getAttrib(elm, 'hspace');\r
- formObj.width.value = orgImageWidth;\r
- formObj.height.value = orgImageHeight;\r
- formObj.onmouseoversrc.value = onmouseoversrc;\r
- formObj.onmouseoutsrc.value = onmouseoutsrc;\r
- formObj.id.value = tinyMCE.getAttrib(elm, 'id');\r
- formObj.dir.value = tinyMCE.getAttrib(elm, 'dir');\r
- formObj.lang.value = tinyMCE.getAttrib(elm, 'lang');\r
- formObj.longdesc.value = tinyMCE.getAttrib(elm, 'longdesc');\r
- formObj.usemap.value = tinyMCE.getAttrib(elm, 'usemap');\r
- formObj.style.value = tinyMCE.serializeStyle(style);\r
-\r
- // Select by the values\r
- if (tinyMCE.isMSIE)\r
- selectByValue(formObj, 'align', getStyle(elm, 'align', 'styleFloat'));\r
- else\r
- selectByValue(formObj, 'align', getStyle(elm, 'align', 'cssFloat'));\r
-\r
- addClassesToList('classlist', 'advimage_styles');\r
-\r
- selectByValue(formObj, 'classlist', tinyMCE.getAttrib(elm, 'class'));\r
- selectByValue(formObj, 'imagelistsrc', src);\r
- selectByValue(formObj, 'imagelistover', onmouseoversrc);\r
- selectByValue(formObj, 'imagelistout', onmouseoutsrc);\r
-\r
- updateStyle();\r
- showPreviewImage(src, true);\r
- changeAppearance();\r
-\r
- window.focus();\r
- } else\r
- addClassesToList('classlist', 'advimage_styles');\r
-\r
- // If option enabled default contrain proportions to checked\r
- if (tinyMCE.getParam("advimage_constrain_proportions", true))\r
- formObj.constrain.checked = true;\r
-\r
- // Check swap image if valid data\r
- if (formObj.onmouseoversrc.value != "" || formObj.onmouseoutsrc.value != "")\r
- setSwapImageDisabled(false);\r
- else\r
- setSwapImageDisabled(true);\r
-}\r
-\r
-function setSwapImageDisabled(state) {\r
- var formObj = document.forms[0];\r
-\r
- formObj.onmousemovecheck.checked = !state;\r
-\r
- setBrowserDisabled('overbrowser', state);\r
- setBrowserDisabled('outbrowser', state);\r
-\r
- if (formObj.imagelistover)\r
- formObj.imagelistover.disabled = state;\r
-\r
- if (formObj.imagelistout)\r
- formObj.imagelistout.disabled = state;\r
-\r
- formObj.onmouseoversrc.disabled = state;\r
- formObj.onmouseoutsrc.disabled = state;\r
-}\r
-\r
-function setAttrib(elm, attrib, value) {\r
- var formObj = document.forms[0];\r
- var valueElm = formObj.elements[attrib];\r
-\r
- if (typeof(value) == "undefined" || value == null) {\r
- value = "";\r
-\r
- if (valueElm)\r
- value = valueElm.value;\r
- }\r
-\r
- if (value != "") {\r
- elm.setAttribute(attrib, value);\r
-\r
- if (attrib == "style")\r
- attrib = "style.cssText";\r
-\r
- if (attrib == "longdesc")\r
- attrib = "longDesc";\r
-\r
- if (attrib == "width") {\r
- attrib = "style.width";\r
- value = value + "px";\r
- }\r
-\r
- if (attrib == "height") {\r
- attrib = "style.height";\r
- value = value + "px";\r
- }\r
-\r
- if (attrib == "class")\r
- attrib = "className";\r
-\r
- eval('elm.' + attrib + "=value;");\r
- } else\r
- elm.removeAttribute(attrib);\r
-}\r
-\r
-function makeAttrib(attrib, value) {\r
- var formObj = document.forms[0];\r
- var valueElm = formObj.elements[attrib];\r
-\r
- if (typeof(value) == "undefined" || value == null) {\r
- value = "";\r
-\r
- if (valueElm)\r
- value = valueElm.value;\r
- }\r
-\r
- if (value == "")\r
- return "";\r
-\r
- // XML encode it\r
- value = value.replace(/&/g, '&');\r
- value = value.replace(/\"/g, '"');\r
- value = value.replace(/</g, '<');\r
- value = value.replace(/>/g, '&gr;');\r
-\r
- return ' ' + attrib + '="' + value + '"';\r
-}\r
-\r
-function insertAction() {\r
- var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));\r
- var elm = inst.getFocusElement();\r
- var formObj = document.forms[0];\r
- var src = formObj.src.value;\r
- var onmouseoversrc = formObj.onmouseoversrc.value;\r
- var onmouseoutsrc = formObj.onmouseoutsrc.value;\r
-\r
- if (tinyMCE.getParam("accessibility_warnings")) {\r
- if (formObj.alt.value == "") {\r
- var answer = confirm(tinyMCE.getLang('lang_advimage_missing_alt', '', true));\r
- if (answer == true) {\r
- formObj.alt.value = " ";\r
- }\r
- } else {\r
- var answer = true;\r
- }\r
-\r
- if (!answer)\r
- return;\r
- }\r
-\r
- if (onmouseoversrc && onmouseoversrc != "")\r
- onmouseoversrc = "this.src='" + convertURL(onmouseoversrc, tinyMCE.imgElement) + "';";\r
-\r
- if (onmouseoutsrc && onmouseoutsrc != "")\r
- onmouseoutsrc = "this.src='" + convertURL(onmouseoutsrc, tinyMCE.imgElement) + "';";\r
-\r
- if (elm != null && elm.nodeName == "IMG") {\r
- setAttrib(elm, 'src', convertURL(src, tinyMCE.imgElement));\r
- setAttrib(elm, 'mce_src', src);\r
- setAttrib(elm, 'alt');\r
- setAttrib(elm, 'title');\r
- setAttrib(elm, 'border');\r
- setAttrib(elm, 'vspace');\r
- setAttrib(elm, 'hspace');\r
- setAttrib(elm, 'width');\r
- setAttrib(elm, 'height');\r
- setAttrib(elm, 'onmouseover', onmouseoversrc);\r
- setAttrib(elm, 'onmouseout', onmouseoutsrc);\r
- setAttrib(elm, 'id');\r
- setAttrib(elm, 'dir');\r
- setAttrib(elm, 'lang');\r
- setAttrib(elm, 'longdesc');\r
- setAttrib(elm, 'usemap');\r
- setAttrib(elm, 'style');\r
- setAttrib(elm, 'class', getSelectValue(formObj, 'classlist'));\r
- setAttrib(elm, 'align', getSelectValue(formObj, 'align'));\r
-\r
- //tinyMCEPopup.execCommand("mceRepaint");\r
-\r
- // Repaint if dimensions changed\r
- if (formObj.width.value != orgImageWidth || formObj.height.value != orgImageHeight)\r
- inst.repaint();\r
-\r
- // Refresh in old MSIE\r
- if (tinyMCE.isMSIE5)\r
- elm.outerHTML = elm.outerHTML;\r
- } else {\r
- var html = "<img";\r
-\r
- html += makeAttrib('src', convertURL(src, tinyMCE.imgElement));\r
- html += makeAttrib('mce_src', src);\r
- html += makeAttrib('alt');\r
- html += makeAttrib('title');\r
- html += makeAttrib('border');\r
- html += makeAttrib('vspace');\r
- html += makeAttrib('hspace');\r
- html += makeAttrib('width');\r
- html += makeAttrib('height');\r
- html += makeAttrib('onmouseover', onmouseoversrc);\r
- html += makeAttrib('onmouseout', onmouseoutsrc);\r
- html += makeAttrib('id');\r
- html += makeAttrib('dir');\r
- html += makeAttrib('lang');\r
- html += makeAttrib('longdesc');\r
- html += makeAttrib('usemap');\r
- html += makeAttrib('style');\r
- html += makeAttrib('class', getSelectValue(formObj, 'classlist'));\r
- html += makeAttrib('align', getSelectValue(formObj, 'align'));\r
- html += " />";\r
-\r
- tinyMCEPopup.execCommand("mceInsertContent", false, html);\r
- }\r
-\r
- tinyMCE._setEventsEnabled(inst.getBody(), false);\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function cancelAction() {\r
- tinyMCEPopup.close();\r
-}\r
-\r
-function changeAppearance() {\r
- var formObj = document.forms[0];\r
- var img = document.getElementById('alignSampleImg');\r
-\r
- if (img) {\r
- img.align = formObj.align.value;\r
- img.border = formObj.border.value;\r
- img.hspace = formObj.hspace.value;\r
- img.vspace = formObj.vspace.value;\r
- }\r
-}\r
-\r
-function changeMouseMove() {\r
- var formObj = document.forms[0];\r
-\r
- setSwapImageDisabled(!formObj.onmousemovecheck.checked);\r
-}\r
-\r
-function updateStyle() {\r
- var formObj = document.forms[0];\r
- var st = tinyMCE.parseStyle(formObj.style.value);\r
-\r
- if (tinyMCE.getParam('inline_styles', false)) {\r
- st['width'] = formObj.width.value == '' ? '' : formObj.width.value + "px";\r
- st['height'] = formObj.height.value == '' ? '' : formObj.height.value + "px";\r
- st['border-width'] = formObj.border.value == '' ? '' : formObj.border.value + "px";\r
- st['margin-top'] = formObj.vspace.value == '' ? '' : formObj.vspace.value + "px";\r
- st['margin-bottom'] = formObj.vspace.value == '' ? '' : formObj.vspace.value + "px";\r
- st['margin-left'] = formObj.hspace.value == '' ? '' : formObj.hspace.value + "px";\r
- st['margin-right'] = formObj.hspace.value == '' ? '' : formObj.hspace.value + "px";\r
- } else {\r
- st['width'] = st['height'] = st['border-width'] = null;\r
-\r
- if (st['margin-top'] == st['margin-bottom'])\r
- st['margin-top'] = st['margin-bottom'] = null;\r
-\r
- if (st['margin-left'] == st['margin-right'])\r
- st['margin-left'] = st['margin-right'] = null;\r
- }\r
-\r
- formObj.style.value = tinyMCE.serializeStyle(st);\r
-}\r
-\r
-function styleUpdated() {\r
- var formObj = document.forms[0];\r
- var st = tinyMCE.parseStyle(formObj.style.value);\r
-\r
- if (st['width'])\r
- formObj.width.value = st['width'].replace('px', '');\r
-\r
- if (st['height'])\r
- formObj.height.value = st['height'].replace('px', '');\r
-\r
- if (st['margin-top'] && st['margin-top'] == st['margin-bottom'])\r
- formObj.vspace.value = st['margin-top'].replace('px', '');\r
-\r
- if (st['margin-left'] && st['margin-left'] == st['margin-right'])\r
- formObj.hspace.value = st['margin-left'].replace('px', '');\r
-\r
- if (st['border-width'])\r
- formObj.border.value = st['border-width'].replace('px', '');\r
-}\r
-\r
-function changeHeight() {\r
- var formObj = document.forms[0];\r
-\r
- if (!formObj.constrain.checked || !preloadImg) {\r
- updateStyle();\r
- return;\r
- }\r
-\r
- if (formObj.width.value == "" || formObj.height.value == "")\r
- return;\r
-\r
- var temp = (formObj.width.value / preloadImg.width) * preloadImg.height;\r
- formObj.height.value = temp.toFixed(0);\r
- updateStyle();\r
-}\r
-\r
-function changeWidth() {\r
- var formObj = document.forms[0];\r
-\r
- if (!formObj.constrain.checked || !preloadImg) {\r
- updateStyle();\r
- return;\r
- }\r
-\r
- if (formObj.width.value == "" || formObj.height.value == "")\r
- return;\r
-\r
- var temp = (formObj.height.value / preloadImg.height) * preloadImg.width;\r
- formObj.width.value = temp.toFixed(0);\r
- updateStyle();\r
-}\r
-\r
-function onSelectMainImage(target_form_element, name, value) {\r
- var formObj = document.forms[0];\r
-\r
- formObj.alt.value = name;\r
- formObj.title.value = name;\r
-\r
- resetImageData();\r
- showPreviewImage(formObj.elements[target_form_element].value, false);\r
-}\r
-\r
-function showPreviewImage(src, start) {\r
- var formObj = document.forms[0];\r
-\r
- selectByValue(document.forms[0], 'imagelistsrc', src);\r
-\r
- var elm = document.getElementById('prev');\r
- var src = src == "" ? src : tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], src);\r
-\r
- if (!start && tinyMCE.getParam("advimage_update_dimensions_onchange", true))\r
- resetImageData();\r
-\r
- if (src == "")\r
- elm.innerHTML = "";\r
- else\r
- elm.innerHTML = '<img src="' + src + '" border="0" />'\r
-\r
- getImageData(src);\r
-}\r
-\r
-function getImageData(src) {\r
- preloadImg = new Image();\r
-\r
- tinyMCE.addEvent(preloadImg, "load", updateImageData);\r
- tinyMCE.addEvent(preloadImg, "error", resetImageData);\r
-\r
- preloadImg.src = src;\r
-}\r
-\r
-function updateImageData() {\r
- var formObj = document.forms[0];\r
-\r
- if (formObj.width.value == "")\r
- formObj.width.value = preloadImg.width;\r
-\r
- if (formObj.height.value == "")\r
- formObj.height.value = preloadImg.height;\r
-\r
- updateStyle();\r
-}\r
-\r
-function resetImageData() {\r
- var formObj = document.forms[0];\r
- formObj.width.value = formObj.height.value = ""; \r
-}\r
-\r
-function getSelectValue(form_obj, field_name) {\r
- var elm = form_obj.elements[field_name];\r
-\r
- if (elm == null || elm.options == null)\r
- return "";\r
-\r
- return elm.options[elm.selectedIndex].value;\r
-}\r
-\r
-function getImageListHTML(elm_id, target_form_element, onchange_func) {\r
- if (typeof(tinyMCEImageList) == "undefined" || tinyMCEImageList.length == 0)\r
- return "";\r
-\r
- var html = "";\r
-\r
- html += '<select id="' + elm_id + '" name="' + elm_id + '"';\r
- html += ' class="mceImageList" onfocus="tinyMCE.addSelectAccessibility(event, this, window);" onchange="this.form.' + target_form_element + '.value=';\r
- html += 'this.options[this.selectedIndex].value;';\r
-\r
- if (typeof(onchange_func) != "undefined")\r
- html += onchange_func + '(\'' + target_form_element + '\',this.options[this.selectedIndex].text,this.options[this.selectedIndex].value);';\r
-\r
- html += '"><option value="">---</option>';\r
-\r
- for (var i=0; i<tinyMCEImageList.length; i++)\r
- html += '<option value="' + tinyMCEImageList[i][1] + '">' + tinyMCEImageList[i][0] + '</option>';\r
-\r
- html += '</select>';\r
-\r
- return html;\r
-\r
- // tinyMCE.debug('-- image list start --', html, '-- image list end --');\r
-}\r
-\r
-// While loading\r
-preinit();\r