+++ /dev/null
-/* Import plugin specific language pack */\r
-tinyMCE.importPluginLanguagePack('flash', 'en,de,sv,zh_cn,cs,fa,fr_ca,fr,pl,pt_br,nl,da,he,nb,hu,ru,ru_KOI8-R,ru_UTF-8,nn,es,cy,is,zh_tw,zh_tw_utf8,sk,pt_br');\r
-\r
-function TinyMCE_flash_getInfo() {\r
- return {\r
- longname : 'Flash',\r
- author : 'Moxiecode Systems',\r
- authorurl : 'http://tinymce.moxiecode.com',\r
- infourl : 'http://tinymce.moxiecode.com/tinymce/docs/plugin_flash.html',\r
- version : tinyMCE.majorVersion + "." + tinyMCE.minorVersion\r
- };\r
-};\r
-\r
-function TinyMCE_flash_initInstance(inst) {\r
- if (!tinyMCE.settings['flash_skip_plugin_css'])\r
- tinyMCE.importCSS(inst.getDoc(), tinyMCE.baseURL + "/plugins/flash/css/content.css");\r
-}\r
-\r
-function TinyMCE_flash_getControlHTML(control_name) {\r
- switch (control_name) {\r
- case "flash":\r
- var cmd = 'tinyMCE.execInstanceCommand(\'{$editor_id}\',\'mceFlash\');return false;';\r
- return '<a href="javascript:' + cmd + '" onclick="' + cmd + '" target="_self" onmousedown="return false;"><img id="{$editor_id}_flash" src="{$pluginurl}/images/flash.gif" title="{$lang_flash_desc}" width="20" height="20" class="mceButtonNormal" onmouseover="tinyMCE.switchClass(this,\'mceButtonOver\');" onmouseout="tinyMCE.restoreClass(this);" onmousedown="tinyMCE.restoreAndSwitchClass(this,\'mceButtonDown\');" /></a>';\r
- }\r
-\r
- return "";\r
-}\r
-\r
-function TinyMCE_flash_parseAttributes(attribute_string) {\r
- var attributeName = "";\r
- var attributeValue = "";\r
- var withInName;\r
- var withInValue;\r
- var attributes = new Array();\r
- var whiteSpaceRegExp = new RegExp('^[ \n\r\t]+', 'g');\r
-\r
- if (attribute_string == null || attribute_string.length < 2)\r
- return null;\r
-\r
- withInName = withInValue = false;\r
-\r
- for (var i=0; i<attribute_string.length; i++) {\r
- var chr = attribute_string.charAt(i);\r
-\r
- if ((chr == '"' || chr == "'") && !withInValue)\r
- withInValue = true;\r
- else if ((chr == '"' || chr == "'") && withInValue) {\r
- withInValue = false;\r
-\r
- var pos = attributeName.lastIndexOf(' ');\r
- if (pos != -1)\r
- attributeName = attributeName.substring(pos+1);\r
-\r
- attributes[attributeName.toLowerCase()] = attributeValue.substring(1);\r
-\r
- attributeName = "";\r
- attributeValue = "";\r
- } else if (!whiteSpaceRegExp.test(chr) && !withInName && !withInValue)\r
- withInName = true;\r
-\r
- if (chr == '=' && withInName)\r
- withInName = false;\r
-\r
- if (withInName)\r
- attributeName += chr;\r
-\r
- if (withInValue)\r
- attributeValue += chr;\r
- }\r
-\r
- return attributes;\r
-}\r
-\r
-function TinyMCE_flash_execCommand(editor_id, element, command, user_interface, value) {\r
- // Handle commands\r
- switch (command) {\r
- case "mceFlash":\r
- var name = "", swffile = "", swfwidth = "", swfheight = "", action = "insert";\r
- var template = new Array();\r
- var inst = tinyMCE.getInstanceById(editor_id);\r
- var focusElm = inst.getFocusElement();\r
-\r
- template['file'] = '../../plugins/flash/flash.htm'; // Relative to theme\r
- template['width'] = 430;\r
- template['height'] = 175;\r
-\r
- template['width'] += tinyMCE.getLang('lang_flash_delta_width', 0);\r
- template['height'] += tinyMCE.getLang('lang_flash_delta_height', 0);\r
-\r
- // Is selection a image\r
- if (focusElm != null && focusElm.nodeName.toLowerCase() == "img") {\r
- name = tinyMCE.getAttrib(focusElm, 'class');\r
-\r
- if (name.indexOf('mceItemFlash') == -1) // Not a Flash\r
- return true;\r
-\r
- // Get rest of Flash items\r
- swffile = tinyMCE.getAttrib(focusElm, 'alt');\r
-\r
- if (tinyMCE.getParam('convert_urls'))\r
- swffile = eval(tinyMCE.settings['urlconverter_callback'] + "(swffile, null, true);");\r
-\r
- swfwidth = tinyMCE.getAttrib(focusElm, 'width');\r
- swfheight = tinyMCE.getAttrib(focusElm, 'height');\r
- action = "update";\r
- }\r
-\r
- tinyMCE.openWindow(template, {editor_id : editor_id, inline : "yes", swffile : swffile, swfwidth : swfwidth, swfheight : swfheight, action : action});\r
- return true;\r
- }\r
-\r
- // Pass to next handler in chain\r
- return false;\r
-}\r
-\r
-function TinyMCE_flash_cleanup(type, content) {\r
- switch (type) {\r
- case "insert_to_editor_dom":\r
- // Force relative/absolute\r
- if (tinyMCE.getParam('convert_urls')) {\r
- var imgs = content.getElementsByTagName("img");\r
- for (var i=0; i<imgs.length; i++) {\r
- if (tinyMCE.getAttrib(imgs[i], "class") == "mceItemFlash") {\r
- var src = tinyMCE.getAttrib(imgs[i], "alt");\r
-\r
- if (tinyMCE.getParam('convert_urls'))\r
- src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");\r
-\r
- imgs[i].setAttribute('alt', src);\r
- imgs[i].setAttribute('title', src);\r
- }\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
- if (tinyMCE.getAttrib(imgs[i], "class") == "mceItemFlash") {\r
- var src = tinyMCE.getAttrib(imgs[i], "alt");\r
-\r
- if (tinyMCE.getParam('convert_urls'))\r
- src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, null, true);");\r
-\r
- imgs[i].setAttribute('alt', src);\r
- imgs[i].setAttribute('title', src);\r
- }\r
- }\r
- break;\r
-\r
- case "insert_to_editor":\r
- var startPos = 0;\r
- var embedList = new Array();\r
-\r
- // Fix the embed and object elements\r
- content = content.replace(new RegExp('<[ ]*embed','gi'),'<embed');\r
- content = content.replace(new RegExp('<[ ]*/embed[ ]*>','gi'),'</embed>');\r
- content = content.replace(new RegExp('<[ ]*object','gi'),'<object');\r
- content = content.replace(new RegExp('<[ ]*/object[ ]*>','gi'),'</object>');\r
-\r
- // Parse all embed tags\r
- while ((startPos = content.indexOf('<embed', startPos+1)) != -1) {\r
- var endPos = content.indexOf('>', startPos);\r
- var attribs = TinyMCE_flash_parseAttributes(content.substring(startPos + 6, endPos));\r
- embedList[embedList.length] = attribs;\r
- }\r
-\r
- // Parse all object tags and replace them with images from the embed data\r
- var index = 0;\r
- while ((startPos = content.indexOf('<object', startPos)) != -1) {\r
- if (index >= embedList.length)\r
- break;\r
-\r
- var attribs = embedList[index];\r
-\r
- // Find end of object\r
- endPos = content.indexOf('</object>', startPos);\r
- endPos += 9;\r
-\r
- // Insert image\r
- var contentAfter = content.substring(endPos);\r
- content = content.substring(0, startPos);\r
- content += '<img width="' + attribs["width"] + '" height="' + attribs["height"] + '"';\r
- content += ' src="' + (tinyMCE.getParam("theme_href") + '/images/spacer.gif') + '" title="' + attribs["src"] + '"';\r
- content += ' alt="' + attribs["src"] + '" class="mceItemFlash" />' + content.substring(endPos);\r
- content += contentAfter;\r
- index++;\r
-\r
- startPos++;\r
- }\r
-\r
- // Parse all embed tags and replace them with images from the embed data\r
- var index = 0;\r
- while ((startPos = content.indexOf('<embed', startPos)) != -1) {\r
- if (index >= embedList.length)\r
- break;\r
-\r
- var attribs = embedList[index];\r
-\r
- // Find end of embed\r
- endPos = content.indexOf('>', startPos);\r
- endPos += 9;\r
-\r
- // Insert image\r
- var contentAfter = content.substring(endPos);\r
- content = content.substring(0, startPos);\r
- content += '<img width="' + attribs["width"] + '" height="' + attribs["height"] + '"';\r
- content += ' src="' + (tinyMCE.getParam("theme_href") + '/images/spacer.gif') + '" title="' + attribs["src"] + '"';\r
- content += ' alt="' + attribs["src"] + '" class="mceItemFlash" />' + content.substring(endPos);\r
- content += contentAfter;\r
- index++;\r
-\r
- startPos++;\r
- }\r
-\r
- break;\r
-\r
- case "get_from_editor":\r
- // Parse all img tags and replace them with object+embed\r
- var startPos = -1;\r
- while ((startPos = content.indexOf('<img', startPos+1)) != -1) {\r
- var endPos = content.indexOf('/>', startPos);\r
- var attribs = TinyMCE_flash_parseAttributes(content.substring(startPos + 4, endPos));\r
-\r
- // Is not flash, skip it\r
- if (attribs['class'] != "mceItemFlash")\r
- continue;\r
-\r
- endPos += 2;\r
-\r
- var embedHTML = '';\r
- var wmode = tinyMCE.getParam("flash_wmode", "");\r
- var quality = tinyMCE.getParam("flash_quality", "high");\r
- var menu = tinyMCE.getParam("flash_menu", "false");\r
-\r
- // Insert object + embed\r
- embedHTML += '<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000"';\r
- embedHTML += ' codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0"';\r
- embedHTML += ' width="' + attribs["width"] + '" height="' + attribs["height"] + '">';\r
- embedHTML += '<param name="movie" value="' + attribs["title"] + '" />';\r
- embedHTML += '<param name="quality" value="' + quality + '" />';\r
- embedHTML += '<param name="menu" value="' + menu + '" />';\r
- embedHTML += '<param name="wmode" value="' + wmode + '" />';\r
- embedHTML += '<embed src="' + attribs["title"] + '" wmode="' + wmode + '" quality="' + quality + '" menu="' + menu + '" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="' + attribs["width"] + '" height="' + attribs["height"] + '"></embed></object>';\r
-\r
- // Insert embed/object chunk\r
- chunkBefore = content.substring(0, startPos);\r
- chunkAfter = content.substring(endPos);\r
- content = chunkBefore + embedHTML + chunkAfter;\r
- }\r
- break;\r
- }\r
-\r
- // Pass through to next handler in chain\r
- return content;\r
-}\r
-\r
-function TinyMCE_flash_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {\r
- tinyMCE.switchClassSticky(editor_id + '_flash', 'mceButtonNormal');\r
-\r
- if (node == null)\r
- return;\r
-\r
- do {\r
- if (node.nodeName.toLowerCase() == "img" && tinyMCE.getAttrib(node, 'class').indexOf('mceItemFlash') == 0)\r
- tinyMCE.switchClassSticky(editor_id + '_flash', 'mceButtonSelected');\r
- } while ((node = node.parentNode));\r
-\r
- return true;\r
-}\r