]*>/gi,"[quote]");
- rep(/<\/blockquote>/gi,"[/quote]");
- rep(/
/gi,"[hr]");
- rep(/
/gi,"\n");
- rep(/
/gi,"\n");
- rep(/
/gi,"\n");
- rep(//gi,"");
- rep(/<\/p>/gi,"\n");
- rep(/ /gi," ");
- rep(/"/gi,"\"");
- rep(/</gi,"<");
- rep(/>/gi,">");
- rep(/&/gi,"&");
-
- return s;
- },
-
- // BBCode -> HTML from DFRN dialect
- _dfrn_bbcode2html : function(s) {
- s = tinymce.trim(s);
-
-
- function rep(re, str) {
-
-
- //modify code to keep stuff intact within [code][/code] blocks
- //Waitman Gobble NO WARRANTY
-
-
- var o = new Array();
- var x = s.split("[code]");
- var i = 0;
-
- var si = "";
- si = x.shift();
- si = si.replace(re,str);
- o.push(si);
-
- for (i = 0; i < x.length; i++) {
- var no = new Array();
- var j = x.shift();
- var g = j.split("[/code]");
- no.push(g.shift());
- si = g.shift();
- si = si.replace(re,str);
- no.push(si);
- o.push(no.join("[/code]"));
- }
-
- s = o.join("[code]");
-
- };
-
-
-
-
-
- // example: [b] to
- rep(/\n/gi,"
");
- rep(/\[b\]/gi,"");
- rep(/\[\/b\]/gi,"");
- rep(/\[i\]/gi,"");
- rep(/\[\/i\]/gi,"");
- rep(/\[u\]/gi,"");
- rep(/\[\/u\]/gi,"");
- rep(/\[hr\]/gi,"
");
- rep(/[#\^]\[url=([^\]]+)\](.*?)\[\/url\]/gi,"#^$2");
- rep(/[#\^]\[url\](.*?)\[\/url\]/gi,"#^$1");
- rep(/(^|[^#\^])\[url=([^\]]+)\](.*?)\[\/url\]/gi,"$1#^$3");
- rep(/(^|[^#\^])\[url\](.*?)\[\/url\]/gi,"$1#^$2");
- rep(/\[img=(.*?)x(.*?)\](.*?)\[\/img\]/gi,"");
- rep(/\[img\](.*?)\[\/img\]/gi,"");
-
- rep(/\[list\](.*?)\[\/list\]/gi, '');
- rep(/\[list=\](.*?)\[\/list\]/gi, '');
- rep(/\[list=1\](.*?)\[\/list\]/gi, '');
- rep(/\[list=i\](.*?)\[\/list\]/gi,'');
- rep(/\[list=I\](.*?)\[\/list\]/gi, '');
- rep(/\[list=a\](.*?)\[\/list\]/gi, '');
- rep(/\[list=A\](.*?)\[\/list\]/gi, '');
- rep(/\[li\](.*?)\[\/li\]/gi, '$1');
- rep(/\[color=(.*?)\](.*?)\[\/color\]/gi,"$2");
- rep(/\[size=(.*?)\](.*?)\[\/size\]/gi,"$2");
- rep(/\[code\](.*?)\[\/code\]/gi,"$1
");
- rep(/\[quote.*?\](.*?)\[\/quote\]/gi,"$1
");
-
- /* oembed */
- function _b2h_cb(match, url) {
- url = bin2hex(url);
- function s_b2h(data) {
- match = data;
- }
- $.ajax({
- url: 'oembed/b2h?url=' + url,
- async: false,
- success: s_b2h,
- dataType: 'html'
- });
- return match;
- }
- s = s.replace(/\[embed\](.*?)\[\/embed\]/gi, _b2h_cb);
-
- /* /oembed */
-
- return s;
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('bbcode', tinymce.plugins.BBCodePlugin);
-})();
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js
deleted file mode 100644
index 4f99010e8..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var a=tinymce.dom.Event,c=tinymce.each,b=tinymce.DOM;tinymce.create("tinymce.plugins.ContextMenu",{init:function(e){var h=this,f,d,i;h.editor=e;d=e.settings.contextmenu_never_use_native;h.onContextMenu=new tinymce.util.Dispatcher(this);f=e.onContextMenu.add(function(j,k){if((i!==0?i:k.ctrlKey)&&!d){return}a.cancel(k);if(k.target.nodeName=="IMG"){j.selection.select(k.target)}h._getMenu(j).showMenu(k.clientX||k.pageX,k.clientY||k.pageY);a.add(j.getDoc(),"click",function(l){g(j,l)});j.nodeChanged()});e.onRemove.add(function(){if(h._menu){h._menu.removeAll()}});function g(j,k){i=0;if(k&&k.button==2){i=k.ctrlKey;return}if(h._menu){h._menu.removeAll();h._menu.destroy();a.remove(j.getDoc(),"click",g);h._menu=null}}e.onMouseDown.add(g);e.onKeyDown.add(g);e.onKeyDown.add(function(j,k){if(k.shiftKey&&!k.ctrlKey&&!k.altKey&&k.keyCode===121){a.cancel(k);f(j,k)}})},getInfo:function(){return{longname:"Contextmenu",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_getMenu:function(e){var g=this,d=g._menu,j=e.selection,f=j.isCollapsed(),h=j.getNode()||e.getBody(),i,k;if(d){d.removeAll();d.destroy()}k=b.getPos(e.getContentAreaContainer());d=e.controlManager.createDropMenu("contextmenu",{offset_x:k.x+e.getParam("contextmenu_offset_x",0),offset_y:k.y+e.getParam("contextmenu_offset_y",0),constrain:1,keyboard_focus:true});g._menu=d;d.add({title:"advanced.cut_desc",icon:"cut",cmd:"Cut"}).setDisabled(f);d.add({title:"advanced.copy_desc",icon:"copy",cmd:"Copy"}).setDisabled(f);d.add({title:"advanced.paste_desc",icon:"paste",cmd:"Paste"});if((h.nodeName=="A"&&!e.dom.getAttrib(h,"name"))||!f){d.addSeparator();d.add({title:"advanced.link_desc",icon:"link",cmd:e.plugins.advlink?"mceAdvLink":"mceLink",ui:true});d.add({title:"advanced.unlink_desc",icon:"unlink",cmd:"UnLink"})}d.addSeparator();d.add({title:"advanced.image_desc",icon:"image",cmd:e.plugins.advimage?"mceAdvImage":"mceImage",ui:true});d.addSeparator();i=d.addMenu({title:"contextmenu.align"});i.add({title:"contextmenu.left",icon:"justifyleft",cmd:"JustifyLeft"});i.add({title:"contextmenu.center",icon:"justifycenter",cmd:"JustifyCenter"});i.add({title:"contextmenu.right",icon:"justifyright",cmd:"JustifyRight"});i.add({title:"contextmenu.full",icon:"justifyfull",cmd:"JustifyFull"});g.onContextMenu.dispatch(g,d,h,f);return d}});tinymce.PluginManager.add("contextmenu",tinymce.plugins.ContextMenu)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js
deleted file mode 100644
index 004d011d0..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/contextmenu/editor_plugin_src.js
+++ /dev/null
@@ -1,161 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- var Event = tinymce.dom.Event, each = tinymce.each, DOM = tinymce.DOM;
-
- /**
- * This plugin a context menu to TinyMCE editor instances.
- *
- * @class tinymce.plugins.ContextMenu
- */
- tinymce.create('tinymce.plugins.ContextMenu', {
- /**
- * Initializes the plugin, this will be executed after the plugin has been created.
- * This call is done before the editor instance has finished it's initialization so use the onInit event
- * of the editor instance to intercept that event.
- *
- * @method init
- * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
- * @param {string} url Absolute URL to where the plugin is located.
- */
- init : function(ed) {
- var t = this, showMenu, contextmenuNeverUseNative, realCtrlKey;
-
- t.editor = ed;
-
- contextmenuNeverUseNative = ed.settings.contextmenu_never_use_native;
-
- /**
- * This event gets fired when the context menu is shown.
- *
- * @event onContextMenu
- * @param {tinymce.plugins.ContextMenu} sender Plugin instance sending the event.
- * @param {tinymce.ui.DropMenu} menu Drop down menu to fill with more items if needed.
- */
- t.onContextMenu = new tinymce.util.Dispatcher(this);
-
- showMenu = ed.onContextMenu.add(function(ed, e) {
- // Block TinyMCE menu on ctrlKey and work around Safari issue
- if ((realCtrlKey !== 0 ? realCtrlKey : e.ctrlKey) && !contextmenuNeverUseNative)
- return;
-
- Event.cancel(e);
-
- // Select the image if it's clicked. WebKit would other wise expand the selection
- if (e.target.nodeName == 'IMG')
- ed.selection.select(e.target);
-
- t._getMenu(ed).showMenu(e.clientX || e.pageX, e.clientY || e.pageY);
- Event.add(ed.getDoc(), 'click', function(e) {
- hide(ed, e);
- });
-
- ed.nodeChanged();
- });
-
- ed.onRemove.add(function() {
- if (t._menu)
- t._menu.removeAll();
- });
-
- function hide(ed, e) {
- realCtrlKey = 0;
-
- // Since the contextmenu event moves
- // the selection we need to store it away
- if (e && e.button == 2) {
- realCtrlKey = e.ctrlKey;
- return;
- }
-
- if (t._menu) {
- t._menu.removeAll();
- t._menu.destroy();
- Event.remove(ed.getDoc(), 'click', hide);
- t._menu = null;
- }
- };
-
- ed.onMouseDown.add(hide);
- ed.onKeyDown.add(hide);
- ed.onKeyDown.add(function(ed, e) {
- if (e.shiftKey && !e.ctrlKey && !e.altKey && e.keyCode === 121) {
- Event.cancel(e);
- showMenu(ed, e);
- }
- });
- },
-
- /**
- * Returns information about the plugin as a name/value array.
- * The current keys are longname, author, authorurl, infourl and version.
- *
- * @method getInfo
- * @return {Object} Name/value array containing information about the plugin.
- */
- getInfo : function() {
- return {
- longname : 'Contextmenu',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/contextmenu',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- },
-
- _getMenu : function(ed) {
- var t = this, m = t._menu, se = ed.selection, col = se.isCollapsed(), el = se.getNode() || ed.getBody(), am, p;
-
- if (m) {
- m.removeAll();
- m.destroy();
- }
-
- p = DOM.getPos(ed.getContentAreaContainer());
-
- m = ed.controlManager.createDropMenu('contextmenu', {
- offset_x : p.x + ed.getParam('contextmenu_offset_x', 0),
- offset_y : p.y + ed.getParam('contextmenu_offset_y', 0),
- constrain : 1,
- keyboard_focus: true
- });
-
- t._menu = m;
-
- m.add({title : 'advanced.cut_desc', icon : 'cut', cmd : 'Cut'}).setDisabled(col);
- m.add({title : 'advanced.copy_desc', icon : 'copy', cmd : 'Copy'}).setDisabled(col);
- m.add({title : 'advanced.paste_desc', icon : 'paste', cmd : 'Paste'});
-
- if ((el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) || !col) {
- m.addSeparator();
- m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true});
- m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'});
- }
-
- m.addSeparator();
- m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true});
-
- m.addSeparator();
- am = m.addMenu({title : 'contextmenu.align'});
- am.add({title : 'contextmenu.left', icon : 'justifyleft', cmd : 'JustifyLeft'});
- am.add({title : 'contextmenu.center', icon : 'justifycenter', cmd : 'JustifyCenter'});
- am.add({title : 'contextmenu.right', icon : 'justifyright', cmd : 'JustifyRight'});
- am.add({title : 'contextmenu.full', icon : 'justifyfull', cmd : 'JustifyFull'});
-
- t.onContextMenu.dispatch(t, m, el, col);
-
- return m;
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('contextmenu', tinymce.plugins.ContextMenu);
-})();
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js
deleted file mode 100644
index bce8e7399..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create("tinymce.plugins.Directionality",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceDirectionLTR",function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,"dir")!="ltr"){a.dom.setAttrib(d,"dir","ltr")}else{a.dom.setAttrib(d,"dir","")}}a.nodeChanged()});a.addCommand("mceDirectionRTL",function(){var d=a.dom.getParent(a.selection.getNode(),a.dom.isBlock);if(d){if(a.dom.getAttrib(d,"dir")!="rtl"){a.dom.setAttrib(d,"dir","rtl")}else{a.dom.setAttrib(d,"dir","")}}a.nodeChanged()});a.addButton("ltr",{title:"directionality.ltr_desc",cmd:"mceDirectionLTR"});a.addButton("rtl",{title:"directionality.rtl_desc",cmd:"mceDirectionRTL"});a.onNodeChange.add(c._nodeChange,c)},getInfo:function(){return{longname:"Directionality",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,e){var d=b.dom,c;e=d.getParent(e,d.isBlock);if(!e){a.setDisabled("ltr",1);a.setDisabled("rtl",1);return}c=d.getAttrib(e,"dir");a.setActive("ltr",c=="ltr");a.setDisabled("ltr",0);a.setActive("rtl",c=="rtl");a.setDisabled("rtl",0)}});tinymce.PluginManager.add("directionality",tinymce.plugins.Directionality)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js
deleted file mode 100644
index 4444959bf..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/directionality/editor_plugin_src.js
+++ /dev/null
@@ -1,82 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- tinymce.create('tinymce.plugins.Directionality', {
- init : function(ed, url) {
- var t = this;
-
- t.editor = ed;
-
- ed.addCommand('mceDirectionLTR', function() {
- var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);
-
- if (e) {
- if (ed.dom.getAttrib(e, "dir") != "ltr")
- ed.dom.setAttrib(e, "dir", "ltr");
- else
- ed.dom.setAttrib(e, "dir", "");
- }
-
- ed.nodeChanged();
- });
-
- ed.addCommand('mceDirectionRTL', function() {
- var e = ed.dom.getParent(ed.selection.getNode(), ed.dom.isBlock);
-
- if (e) {
- if (ed.dom.getAttrib(e, "dir") != "rtl")
- ed.dom.setAttrib(e, "dir", "rtl");
- else
- ed.dom.setAttrib(e, "dir", "");
- }
-
- ed.nodeChanged();
- });
-
- ed.addButton('ltr', {title : 'directionality.ltr_desc', cmd : 'mceDirectionLTR'});
- ed.addButton('rtl', {title : 'directionality.rtl_desc', cmd : 'mceDirectionRTL'});
-
- ed.onNodeChange.add(t._nodeChange, t);
- },
-
- getInfo : function() {
- return {
- longname : 'Directionality',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/directionality',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- },
-
- // Private methods
-
- _nodeChange : function(ed, cm, n) {
- var dom = ed.dom, dir;
-
- n = dom.getParent(n, dom.isBlock);
- if (!n) {
- cm.setDisabled('ltr', 1);
- cm.setDisabled('rtl', 1);
- return;
- }
-
- dir = dom.getAttrib(n, 'dir');
- cm.setActive('ltr', dir == "ltr");
- cm.setDisabled('ltr', 0);
- cm.setActive('rtl', dir == "rtl");
- cm.setDisabled('rtl', 0);
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('directionality', tinymce.plugins.Directionality);
-})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js
deleted file mode 100644
index dbdd8ffb5..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(a){a.create("tinymce.plugins.EmotionsPlugin",{init:function(b,c){b.addCommand("mceEmotion",function(){b.windowManager.open({file:c+"/emotions.htm",width:250+parseInt(b.getLang("emotions.delta_width",0)),height:160+parseInt(b.getLang("emotions.delta_height",0)),inline:1},{plugin_url:c})});b.addButton("emotions",{title:"emotions.emotions_desc",cmd:"mceEmotion"})},getInfo:function(){return{longname:"Emotions",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions",version:a.majorVersion+"."+a.minorVersion}}});a.PluginManager.add("emotions",a.plugins.EmotionsPlugin)})(tinymce);
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js
deleted file mode 100644
index 71d541697..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/emotions/editor_plugin_src.js
+++ /dev/null
@@ -1,43 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function(tinymce) {
- tinymce.create('tinymce.plugins.EmotionsPlugin', {
- init : function(ed, url) {
- // Register commands
- ed.addCommand('mceEmotion', function() {
- ed.windowManager.open({
- file : url + '/emotions.htm',
- width : 250 + parseInt(ed.getLang('emotions.delta_width', 0)),
- height : 160 + parseInt(ed.getLang('emotions.delta_height', 0)),
- inline : 1
- }, {
- plugin_url : url
- });
- });
-
- // Register buttons
- ed.addButton('emotions', {title : 'emotions.emotions_desc', cmd : 'mceEmotion'});
- },
-
- getInfo : function() {
- return {
- longname : 'Emotions',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/emotions',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('emotions', tinymce.plugins.EmotionsPlugin);
-})(tinymce);
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm b/library/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm
deleted file mode 100644
index 101355654..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/emotions/emotions.htm
+++ /dev/null
@@ -1,42 +0,0 @@
-
-
-
- {#emotions_dlg.title}
-
-
-
-
-{#emotions_dlg.title}
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif
deleted file mode 100644
index ba90cc36f..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cool.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif
deleted file mode 100644
index 74d897a4f..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-cry.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif
deleted file mode 100644
index 963a96b8a..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-embarassed.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif
deleted file mode 100644
index c7cf1011d..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-foot-in-mouth.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif
deleted file mode 100644
index 716f55e16..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-frown.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif
deleted file mode 100644
index 334d49e0e..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-innocent.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif
deleted file mode 100644
index 4efd549ed..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-kiss.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif
deleted file mode 100644
index 82c5b182e..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-laughing.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif
deleted file mode 100644
index ca2451e10..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-money-mouth.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif
deleted file mode 100644
index fe66220c2..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-sealed.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif
deleted file mode 100644
index fd27edfaa..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-smile.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif
deleted file mode 100644
index 0cc9bb71c..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-surprised.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif
deleted file mode 100644
index 2075dc160..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-tongue-out.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif
deleted file mode 100644
index bef7e2573..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-undecided.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif
deleted file mode 100644
index 0631c7616..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-wink.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif b/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif
deleted file mode 100644
index 648e6e879..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/emotions/img/smiley-yell.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js b/library/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js
deleted file mode 100644
index b360f20b6..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/emotions/js/emotions.js
+++ /dev/null
@@ -1,43 +0,0 @@
-tinyMCEPopup.requireLangPack();
-
-var EmotionsDialog = {
- addKeyboardNavigation: function(){
- var tableElm, cells, settings;
-
- cells = tinyMCEPopup.dom.select("a.emoticon_link", "emoticon_table");
-
- settings ={
- root: "emoticon_table",
- items: cells
- };
- cells[0].tabindex=0;
- tinyMCEPopup.dom.addClass(cells[0], "mceFocus");
- if (tinymce.isGecko) {
- cells[0].focus();
- } else {
- setTimeout(function(){
- cells[0].focus();
- }, 100);
- }
- tinyMCEPopup.editor.windowManager.createInstance('tinymce.ui.KeyboardNavigation', settings, tinyMCEPopup.dom);
- },
- init : function(ed) {
- tinyMCEPopup.resizeToInnerSize();
- this.addKeyboardNavigation();
- },
-
- insert : function(file, title) {
- var ed = tinyMCEPopup.editor, dom = ed.dom;
-
- tinyMCEPopup.execCommand('mceInsertContent', false, dom.createHTML('img', {
- src : tinyMCEPopup.getWindowArg('plugin_url') + '/img/' + file,
- alt : ed.getLang(title),
- title : ed.getLang(title),
- border : 0
- }));
-
- tinyMCEPopup.close();
- }
-};
-
-tinyMCEPopup.onInit.add(EmotionsDialog.init, EmotionsDialog);
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js b/library/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js
deleted file mode 100644
index 037c4b588..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/emotions/langs/en_dlg.js
+++ /dev/null
@@ -1 +0,0 @@
-tinyMCE.addI18n('en.emotions_dlg',{cry:"Cry",cool:"Cool",desc:"Emotions",title:"Insert Emotion",usage:"Use left and right arrows to navigate.",yell:"Yell",wink:"Wink",undecided:"Undecided","tongue_out":"Tongue Out",surprised:"Surprised",smile:"Smile",sealed:"Sealed","money_mouth":"Money Mouth",laughing:"Laughing",kiss:"Kiss",innocent:"Innocent",frown:"Frown","foot_in_mouth":"Foot in Mouth",embarassed:"Embarassed"});
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm b/library/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm
deleted file mode 100644
index 50b2b3445..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/example/dialog.htm
+++ /dev/null
@@ -1,22 +0,0 @@
-
-
-
- {#example_dlg.title}
-
-
-
-
-
-
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js
deleted file mode 100644
index ec1f81ea4..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.PluginManager.requireLangPack("example");tinymce.create("tinymce.plugins.ExamplePlugin",{init:function(a,b){a.addCommand("mceExample",function(){a.windowManager.open({file:b+"/dialog.htm",width:320+parseInt(a.getLang("example.delta_width",0)),height:120+parseInt(a.getLang("example.delta_height",0)),inline:1},{plugin_url:b,some_custom_arg:"custom arg"})});a.addButton("example",{title:"example.desc",cmd:"mceExample",image:b+"/img/example.gif"});a.onNodeChange.add(function(d,c,e){c.setActive("example",e.nodeName=="IMG")})},createControl:function(b,a){return null},getInfo:function(){return{longname:"Example plugin",author:"Some author",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example",version:"1.0"}}});tinymce.PluginManager.add("example",tinymce.plugins.ExamplePlugin)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js
deleted file mode 100644
index 9a0e7da15..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/example/editor_plugin_src.js
+++ /dev/null
@@ -1,84 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- // Load plugin specific language pack
- tinymce.PluginManager.requireLangPack('example');
-
- tinymce.create('tinymce.plugins.ExamplePlugin', {
- /**
- * Initializes the plugin, this will be executed after the plugin has been created.
- * This call is done before the editor instance has finished it's initialization so use the onInit event
- * of the editor instance to intercept that event.
- *
- * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
- * @param {string} url Absolute URL to where the plugin is located.
- */
- init : function(ed, url) {
- // Register the command so that it can be invoked by using tinyMCE.activeEditor.execCommand('mceExample');
- ed.addCommand('mceExample', function() {
- ed.windowManager.open({
- file : url + '/dialog.htm',
- width : 320 + parseInt(ed.getLang('example.delta_width', 0)),
- height : 120 + parseInt(ed.getLang('example.delta_height', 0)),
- inline : 1
- }, {
- plugin_url : url, // Plugin absolute URL
- some_custom_arg : 'custom arg' // Custom argument
- });
- });
-
- // Register example button
- ed.addButton('example', {
- title : 'example.desc',
- cmd : 'mceExample',
- image : url + '/img/example.gif'
- });
-
- // Add a node change handler, selects the button in the UI when a image is selected
- ed.onNodeChange.add(function(ed, cm, n) {
- cm.setActive('example', n.nodeName == 'IMG');
- });
- },
-
- /**
- * Creates control instances based in the incomming name. This method is normally not
- * needed since the addButton method of the tinymce.Editor class is a more easy way of adding buttons
- * but you sometimes need to create more complex controls like listboxes, split buttons etc then this
- * method can be used to create those.
- *
- * @param {String} n Name of the control to create.
- * @param {tinymce.ControlManager} cm Control manager to use inorder to create new control.
- * @return {tinymce.ui.Control} New control instance or null if no control was created.
- */
- createControl : function(n, cm) {
- return null;
- },
-
- /**
- * Returns information about the plugin as a name/value array.
- * The current keys are longname, author, authorurl, infourl and version.
- *
- * @return {Object} Name/value array containing information about the plugin.
- */
- getInfo : function() {
- return {
- longname : 'Example plugin',
- author : 'Some author',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example',
- version : "1.0"
- };
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('example', tinymce.plugins.ExamplePlugin);
-})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif b/library/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif
deleted file mode 100644
index 1ab5da446..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/example/img/example.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js b/library/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js
deleted file mode 100644
index fa8341132..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/example/js/dialog.js
+++ /dev/null
@@ -1,19 +0,0 @@
-tinyMCEPopup.requireLangPack();
-
-var ExampleDialog = {
- init : function() {
- var f = document.forms[0];
-
- // Get the selected contents as text and place it in the input
- f.someval.value = tinyMCEPopup.editor.selection.getContent({format : 'text'});
- f.somearg.value = tinyMCEPopup.getWindowArg('some_custom_arg');
- },
-
- insert : function() {
- // Insert the contents from the input into the document
- tinyMCEPopup.editor.execCommand('mceInsertContent', false, document.forms[0].someval.value);
- tinyMCEPopup.close();
- }
-};
-
-tinyMCEPopup.onInit.add(ExampleDialog.init, ExampleDialog);
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js b/library/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js
deleted file mode 100644
index e0784f80f..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/example/langs/en.js
+++ /dev/null
@@ -1,3 +0,0 @@
-tinyMCE.addI18n('en.example',{
- desc : 'This is just a template button'
-});
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js b/library/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js
deleted file mode 100644
index ebcf948da..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/example/langs/en_dlg.js
+++ /dev/null
@@ -1,3 +0,0 @@
-tinyMCE.addI18n('en.example_dlg',{
- title : 'This is just a example title'
-});
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin.js
deleted file mode 100644
index 0a4551d38..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create("tinymce.plugins.ExampleDependencyPlugin",{init:function(a,b){},getInfo:function(){return{longname:"Example Dependency plugin",author:"Some author",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example_dependency",version:"1.0"}}});tinymce.PluginManager.add("example_dependency",tinymce.plugins.ExampleDependencyPlugin,["example"])})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin_src.js
deleted file mode 100644
index e1c55e41b..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/example_dependency/editor_plugin_src.js
+++ /dev/null
@@ -1,50 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
-
- tinymce.create('tinymce.plugins.ExampleDependencyPlugin', {
- /**
- * Initializes the plugin, this will be executed after the plugin has been created.
- * This call is done before the editor instance has finished it's initialization so use the onInit event
- * of the editor instance to intercept that event.
- *
- * @param {tinymce.Editor} ed Editor instance that the plugin is initialized in.
- * @param {string} url Absolute URL to where the plugin is located.
- */
- init : function(ed, url) {
- },
-
-
- /**
- * Returns information about the plugin as a name/value array.
- * The current keys are longname, author, authorurl, infourl and version.
- *
- * @return {Object} Name/value array containing information about the plugin.
- */
- getInfo : function() {
- return {
- longname : 'Example Dependency plugin',
- author : 'Some author',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/example_dependency',
- version : "1.0"
- };
- }
- });
-
- /**
- * Register the plugin, specifying the list of the plugins that this plugin depends on. They are specified in a list, with the list loaded in order.
- * plugins in this list will be initialised when this plugin is initialized. (before the init method is called).
- * plugins in a depends list should typically be specified using the short name). If neccesary this can be done
- * with an object which has the url to the plugin and the shortname.
- */
- tinymce.PluginManager.add('example_dependency', tinymce.plugins.ExampleDependencyPlugin, ['example']);
-})();
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css b/library/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css
deleted file mode 100644
index 2675cec15..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/fullpage/css/fullpage.css
+++ /dev/null
@@ -1,143 +0,0 @@
-/* Hide the advanced tab */
-#advanced_tab {
- display: none;
-}
-
-#metatitle, #metakeywords, #metadescription, #metaauthor, #metacopyright {
- width: 280px;
-}
-
-#doctype, #docencoding {
- width: 200px;
-}
-
-#langcode {
- width: 30px;
-}
-
-#bgimage {
- width: 220px;
-}
-
-#fontface {
- width: 240px;
-}
-
-#leftmargin, #rightmargin, #topmargin, #bottommargin {
- width: 50px;
-}
-
-.panel_wrapper div.current {
- height: 400px;
-}
-
-#stylesheet, #style {
- width: 240px;
-}
-
-#doctypes {
- width: 200px;
-}
-
-/* Head list classes */
-
-.headlistwrapper {
- width: 100%;
-}
-
-.selected {
- border: 1px solid #0A246A;
- background-color: #B6BDD2;
-}
-
-.toolbar {
- width: 100%;
-}
-
-#headlist {
- width: 100%;
- margin-top: 3px;
- font-size: 11px;
-}
-
-#info, #title_element, #meta_element, #script_element, #style_element, #base_element, #link_element, #comment_element, #unknown_element {
- display: none;
-}
-
-#addmenu {
- position: absolute;
- border: 1px solid gray;
- display: none;
- z-index: 100;
- background-color: white;
-}
-
-#addmenu a {
- display: block;
- width: 100%;
- line-height: 20px;
- text-decoration: none;
- background-color: white;
-}
-
-#addmenu a:hover {
- background-color: #B6BDD2;
- color: black;
-}
-
-#addmenu span {
- padding-left: 10px;
- padding-right: 10px;
-}
-
-#updateElementPanel {
- display: none;
-}
-
-#script_element .panel_wrapper div.current {
- height: 108px;
-}
-
-#style_element .panel_wrapper div.current {
- height: 108px;
-}
-
-#link_element .panel_wrapper div.current {
- height: 140px;
-}
-
-#element_script_value {
- width: 100%;
- height: 100px;
-}
-
-#element_comment_value {
- width: 100%;
- height: 120px;
-}
-
-#element_style_value {
- width: 100%;
- height: 100px;
-}
-
-#element_title, #element_script_src, #element_meta_name, #element_meta_content, #element_base_href, #element_link_href, #element_link_title {
- width: 250px;
-}
-
-.updateElementButton {
- margin-top: 3px;
-}
-
-/* MSIE specific styles */
-
-* html .addbutton, * html .removebutton, * html .moveupbutton, * html .movedownbutton {
- width: 22px;
- height: 22px;
-}
-
-textarea {
- height: 55px;
-}
-
-.panel_wrapper div.current {height:420px;}
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js
deleted file mode 100644
index dcf76024d..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var b=tinymce.each,a=tinymce.html.Node;tinymce.create("tinymce.plugins.FullPagePlugin",{init:function(c,d){var e=this;e.editor=c;c.addCommand("mceFullPageProperties",function(){c.windowManager.open({file:d+"/fullpage.htm",width:430+parseInt(c.getLang("fullpage.delta_width",0)),height:495+parseInt(c.getLang("fullpage.delta_height",0)),inline:1},{plugin_url:d,data:e._htmlToData()})});c.addButton("fullpage",{title:"fullpage.desc",cmd:"mceFullPageProperties"});c.onBeforeSetContent.add(e._setContent,e);c.onGetContent.add(e._getContent,e)},getInfo:function(){return{longname:"Fullpage",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_htmlToData:function(){var f=this._parseHeader(),h={},c,i,g,e=this.editor;function d(l,j){var k=l.attr(j);return k||""}h.fontface=e.getParam("fullpage_default_fontface","");h.fontsize=e.getParam("fullpage_default_fontsize","");i=f.firstChild;if(i.type==7){h.xml_pi=true;g=/encoding="([^"]+)"/.exec(i.value);if(g){h.docencoding=g[1]}}i=f.getAll("#doctype")[0];if(i){h.doctype=""}i=f.getAll("title")[0];if(i&&i.firstChild){h.metatitle=i.firstChild.value}b(f.getAll("meta"),function(m){var k=m.attr("name"),j=m.attr("http-equiv"),l;if(k){h["meta"+k.toLowerCase()]=m.attr("content")}else{if(j=="Content-Type"){l=/charset\s*=\s*(.*)\s*/gi.exec(m.attr("content"));if(l){h.docencoding=l[1]}}}});i=f.getAll("html")[0];if(i){h.langcode=d(i,"lang")||d(i,"xml:lang")}i=f.getAll("link")[0];if(i&&i.attr("rel")=="stylesheet"){h.stylesheet=i.attr("href")}i=f.getAll("body")[0];if(i){h.langdir=d(i,"dir");h.style=d(i,"style");h.visited_color=d(i,"vlink");h.link_color=d(i,"link");h.active_color=d(i,"alink")}return h},_dataToHtml:function(g){var f,d,h,j,k,e=this.editor.dom;function c(n,l,m){n.attr(l,m?m:undefined)}function i(l){if(d.firstChild){d.insert(l,d.firstChild)}else{d.append(l)}}f=this._parseHeader();d=f.getAll("head")[0];if(!d){j=f.getAll("html")[0];d=new a("head",1);if(j.firstChild){j.insert(d,j.firstChild,true)}else{j.append(d)}}j=f.firstChild;if(g.xml_pi){k='version="1.0"';if(g.docencoding){k+=' encoding="'+g.docencoding+'"'}if(j.type!=7){j=new a("xml",7);f.insert(j,f.firstChild,true)}j.value=k}else{if(j&&j.type==7){j.remove()}}j=f.getAll("#doctype")[0];if(g.doctype){if(!j){j=new a("#doctype",10);if(g.xml_pi){f.insert(j,f.firstChild)}else{i(j)}}j.value=g.doctype.substring(9,g.doctype.length-1)}else{if(j){j.remove()}}j=f.getAll("title")[0];if(g.metatitle){if(!j){j=new a("title",1);j.append(new a("#text",3)).value=g.metatitle;i(j)}}if(g.docencoding){j=null;b(f.getAll("meta"),function(l){if(l.attr("http-equiv")=="Content-Type"){j=l}});if(!j){j=new a("meta",1);j.attr("http-equiv","Content-Type");j.shortEnded=true;i(j)}j.attr("content","text/html; charset="+g.docencoding)}b("keywords,description,author,copyright,robots".split(","),function(m){var l=f.getAll("meta"),n,p,o=g["meta"+m];for(n=0;n"))},_parseHeader:function(){return new tinymce.html.DomParser({validate:false,root_name:"#document"}).parse(this.head)},_setContent:function(g,d){var m=this,i,c,h=d.content,f,l="",e=m.editor.dom,j;function k(n){return n.replace(/<\/?[A-Z]+/g,function(o){return o.toLowerCase()})}if(d.format=="raw"&&m.head){return}if(d.source_view&&g.getParam("fullpage_hide_in_source_view")){return}h=h.replace(/<(\/?)BODY/gi,"<$1body");i=h.indexOf("",i);m.head=k(h.substring(0,i+1));c=h.indexOf("\n"}f=m._parseHeader();b(f.getAll("style"),function(n){if(n.firstChild){l+=n.firstChild.value}});j=f.getAll("body")[0];if(j){e.setAttribs(m.editor.getBody(),{style:j.attr("style")||"",dir:j.attr("dir")||"",vLink:j.attr("vlink")||"",link:j.attr("link")||"",aLink:j.attr("alink")||""})}e.remove("fullpage_styles");if(l){e.add(m.editor.getDoc().getElementsByTagName("head")[0],"style",{id:"fullpage_styles"},l);j=e.get("fullpage_styles");if(j.styleSheet){j.styleSheet.cssText=l}}},_getDefaultHeader:function(){var f="",c=this.editor,e,d="";if(c.getParam("fullpage_default_xml_pi")){f+='\n'}f+=c.getParam("fullpage_default_doctype",'');f+="\n\n\n";if(e=c.getParam("fullpage_default_title")){f+=""+e+"\n"}if(e=c.getParam("fullpage_default_encoding")){f+='\n'}if(e=c.getParam("fullpage_default_font_family")){d+="font-family: "+e+";"}if(e=c.getParam("fullpage_default_font_size")){d+="font-size: "+e+";"}if(e=c.getParam("fullpage_default_text_color")){d+="color: "+e+";"}f+="\n\n";return f},_getContent:function(d,e){var c=this;if(!e.source_view||!d.getParam("fullpage_hide_in_source_view")){e.content=tinymce.trim(c.head)+"\n"+tinymce.trim(e.content)+"\n"+tinymce.trim(c.foot)}}});tinymce.PluginManager.add("fullpage",tinymce.plugins.FullPagePlugin)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js
deleted file mode 100644
index 23de7c5a1..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/fullpage/editor_plugin_src.js
+++ /dev/null
@@ -1,405 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- var each = tinymce.each, Node = tinymce.html.Node;
-
- tinymce.create('tinymce.plugins.FullPagePlugin', {
- init : function(ed, url) {
- var t = this;
-
- t.editor = ed;
-
- // Register commands
- ed.addCommand('mceFullPageProperties', function() {
- ed.windowManager.open({
- file : url + '/fullpage.htm',
- width : 430 + parseInt(ed.getLang('fullpage.delta_width', 0)),
- height : 495 + parseInt(ed.getLang('fullpage.delta_height', 0)),
- inline : 1
- }, {
- plugin_url : url,
- data : t._htmlToData()
- });
- });
-
- // Register buttons
- ed.addButton('fullpage', {title : 'fullpage.desc', cmd : 'mceFullPageProperties'});
-
- ed.onBeforeSetContent.add(t._setContent, t);
- ed.onGetContent.add(t._getContent, t);
- },
-
- getInfo : function() {
- return {
- longname : 'Fullpage',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullpage',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- },
-
- // Private plugin internal methods
-
- _htmlToData : function() {
- var headerFragment = this._parseHeader(), data = {}, nodes, elm, matches, editor = this.editor;
-
- function getAttr(elm, name) {
- var value = elm.attr(name);
-
- return value || '';
- };
-
- // Default some values
- data.fontface = editor.getParam("fullpage_default_fontface", "");
- data.fontsize = editor.getParam("fullpage_default_fontsize", "");
-
- // Parse XML PI
- elm = headerFragment.firstChild;
- if (elm.type == 7) {
- data.xml_pi = true;
- matches = /encoding="([^"]+)"/.exec(elm.value);
- if (matches)
- data.docencoding = matches[1];
- }
-
- // Parse doctype
- elm = headerFragment.getAll('#doctype')[0];
- if (elm)
- data.doctype = '";
-
- // Parse title element
- elm = headerFragment.getAll('title')[0];
- if (elm && elm.firstChild) {
- data.metatitle = elm.firstChild.value;
- }
-
- // Parse meta elements
- each(headerFragment.getAll('meta'), function(meta) {
- var name = meta.attr('name'), httpEquiv = meta.attr('http-equiv'), matches;
-
- if (name)
- data['meta' + name.toLowerCase()] = meta.attr('content');
- else if (httpEquiv == "Content-Type") {
- matches = /charset\s*=\s*(.*)\s*/gi.exec(meta.attr('content'));
-
- if (matches)
- data.docencoding = matches[1];
- }
- });
-
- // Parse html attribs
- elm = headerFragment.getAll('html')[0];
- if (elm)
- data.langcode = getAttr(elm, 'lang') || getAttr(elm, 'xml:lang');
-
- // Parse stylesheet
- elm = headerFragment.getAll('link')[0];
- if (elm && elm.attr('rel') == 'stylesheet')
- data.stylesheet = elm.attr('href');
-
- // Parse body parts
- elm = headerFragment.getAll('body')[0];
- if (elm) {
- data.langdir = getAttr(elm, 'dir');
- data.style = getAttr(elm, 'style');
- data.visited_color = getAttr(elm, 'vlink');
- data.link_color = getAttr(elm, 'link');
- data.active_color = getAttr(elm, 'alink');
- }
-
- return data;
- },
-
- _dataToHtml : function(data) {
- var headerFragment, headElement, html, elm, value, dom = this.editor.dom;
-
- function setAttr(elm, name, value) {
- elm.attr(name, value ? value : undefined);
- };
-
- function addHeadNode(node) {
- if (headElement.firstChild)
- headElement.insert(node, headElement.firstChild);
- else
- headElement.append(node);
- };
-
- headerFragment = this._parseHeader();
- headElement = headerFragment.getAll('head')[0];
- if (!headElement) {
- elm = headerFragment.getAll('html')[0];
- headElement = new Node('head', 1);
-
- if (elm.firstChild)
- elm.insert(headElement, elm.firstChild, true);
- else
- elm.append(headElement);
- }
-
- // Add/update/remove XML-PI
- elm = headerFragment.firstChild;
- if (data.xml_pi) {
- value = 'version="1.0"';
-
- if (data.docencoding)
- value += ' encoding="' + data.docencoding + '"';
-
- if (elm.type != 7) {
- elm = new Node('xml', 7);
- headerFragment.insert(elm, headerFragment.firstChild, true);
- }
-
- elm.value = value;
- } else if (elm && elm.type == 7)
- elm.remove();
-
- // Add/update/remove doctype
- elm = headerFragment.getAll('#doctype')[0];
- if (data.doctype) {
- if (!elm) {
- elm = new Node('#doctype', 10);
-
- if (data.xml_pi)
- headerFragment.insert(elm, headerFragment.firstChild);
- else
- addHeadNode(elm);
- }
-
- elm.value = data.doctype.substring(9, data.doctype.length - 1);
- } else if (elm)
- elm.remove();
-
- // Add/update/remove title
- elm = headerFragment.getAll('title')[0];
- if (data.metatitle) {
- if (!elm) {
- elm = new Node('title', 1);
- elm.append(new Node('#text', 3)).value = data.metatitle;
- addHeadNode(elm);
- }
- }
-
- // Add meta encoding
- if (data.docencoding) {
- elm = null;
- each(headerFragment.getAll('meta'), function(meta) {
- if (meta.attr('http-equiv') == 'Content-Type')
- elm = meta;
- });
-
- if (!elm) {
- elm = new Node('meta', 1);
- elm.attr('http-equiv', 'Content-Type');
- elm.shortEnded = true;
- addHeadNode(elm);
- }
-
- elm.attr('content', 'text/html; charset=' + data.docencoding);
- }
-
- // Add/update/remove meta
- each('keywords,description,author,copyright,robots'.split(','), function(name) {
- var nodes = headerFragment.getAll('meta'), i, meta, value = data['meta' + name];
-
- for (i = 0; i < nodes.length; i++) {
- meta = nodes[i];
-
- if (meta.attr('name') == name) {
- if (value)
- meta.attr('content', value);
- else
- meta.remove();
-
- return;
- }
- }
-
- if (value) {
- elm = new Node('meta', 1);
- elm.attr('name', name);
- elm.attr('content', value);
- elm.shortEnded = true;
-
- addHeadNode(elm);
- }
- });
-
- // Add/update/delete link
- elm = headerFragment.getAll('link')[0];
- if (elm && elm.attr('rel') == 'stylesheet') {
- if (data.stylesheet)
- elm.attr('href', data.stylesheet);
- else
- elm.remove();
- } else if (data.stylesheet) {
- elm = new Node('link', 1);
- elm.attr({
- rel : 'stylesheet',
- text : 'text/css',
- href : data.stylesheet
- });
- elm.shortEnded = true;
-
- addHeadNode(elm);
- }
-
- // Update body attributes
- elm = headerFragment.getAll('body')[0];
- if (elm) {
- setAttr(elm, 'dir', data.langdir);
- setAttr(elm, 'style', data.style);
- setAttr(elm, 'vlink', data.visited_color);
- setAttr(elm, 'link', data.link_color);
- setAttr(elm, 'alink', data.active_color);
-
- // Update iframe body as well
- dom.setAttribs(this.editor.getBody(), {
- style : data.style,
- dir : data.dir,
- vLink : data.visited_color,
- link : data.link_color,
- aLink : data.active_color
- });
- }
-
- // Set html attributes
- elm = headerFragment.getAll('html')[0];
- if (elm) {
- setAttr(elm, 'lang', data.langcode);
- setAttr(elm, 'xml:lang', data.langcode);
- }
-
- // Serialize header fragment and crop away body part
- html = new tinymce.html.Serializer({
- validate: false,
- indent: true,
- apply_source_formatting : true,
- indent_before: 'head,html,body,meta,title,script,link,style',
- indent_after: 'head,html,body,meta,title,script,link,style'
- }).serialize(headerFragment);
-
- this.head = html.substring(0, html.indexOf(''));
- },
-
- _parseHeader : function() {
- // Parse the contents with a DOM parser
- return new tinymce.html.DomParser({
- validate: false,
- root_name: '#document'
- }).parse(this.head);
- },
-
- _setContent : function(ed, o) {
- var self = this, startPos, endPos, content = o.content, headerFragment, styles = '', dom = self.editor.dom, elm;
-
- function low(s) {
- return s.replace(/<\/?[A-Z]+/g, function(a) {
- return a.toLowerCase();
- })
- };
-
- // Ignore raw updated if we already have a head, this will fix issues with undo/redo keeping the head/foot separate
- if (o.format == 'raw' && self.head)
- return;
-
- if (o.source_view && ed.getParam('fullpage_hide_in_source_view'))
- return;
-
- // Parse out head, body and footer
- content = content.replace(/<(\/?)BODY/gi, '<$1body');
- startPos = content.indexOf('', startPos);
- self.head = low(content.substring(0, startPos + 1));
-
- endPos = content.indexOf('\n';
- }
-
- // Parse header and update iframe
- headerFragment = self._parseHeader();
- each(headerFragment.getAll('style'), function(node) {
- if (node.firstChild)
- styles += node.firstChild.value;
- });
-
- elm = headerFragment.getAll('body')[0];
- if (elm) {
- dom.setAttribs(self.editor.getBody(), {
- style : elm.attr('style') || '',
- dir : elm.attr('dir') || '',
- vLink : elm.attr('vlink') || '',
- link : elm.attr('link') || '',
- aLink : elm.attr('alink') || ''
- });
- }
-
- dom.remove('fullpage_styles');
-
- if (styles) {
- dom.add(self.editor.getDoc().getElementsByTagName('head')[0], 'style', {id : 'fullpage_styles'}, styles);
-
- // Needed for IE 6/7
- elm = dom.get('fullpage_styles');
- if (elm.styleSheet)
- elm.styleSheet.cssText = styles;
- }
- },
-
- _getDefaultHeader : function() {
- var header = '', editor = this.editor, value, styles = '';
-
- if (editor.getParam('fullpage_default_xml_pi'))
- header += '\n';
-
- header += editor.getParam('fullpage_default_doctype', '');
- header += '\n\n\n';
-
- if (value = editor.getParam('fullpage_default_title'))
- header += '' + value + '\n';
-
- if (value = editor.getParam('fullpage_default_encoding'))
- header += '\n';
-
- if (value = editor.getParam('fullpage_default_font_family'))
- styles += 'font-family: ' + value + ';';
-
- if (value = editor.getParam('fullpage_default_font_size'))
- styles += 'font-size: ' + value + ';';
-
- if (value = editor.getParam('fullpage_default_text_color'))
- styles += 'color: ' + value + ';';
-
- header += '\n\n';
-
- return header;
- },
-
- _getContent : function(ed, o) {
- var self = this;
-
- if (!o.source_view || !ed.getParam('fullpage_hide_in_source_view'))
- o.content = tinymce.trim(self.head) + '\n' + tinymce.trim(o.content) + '\n' + tinymce.trim(self.foot);
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('fullpage', tinymce.plugins.FullPagePlugin);
-})();
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm b/library/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm
deleted file mode 100644
index 14ab8652e..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/fullpage/fullpage.htm
+++ /dev/null
@@ -1,259 +0,0 @@
-
-
-
- {#fullpage_dlg.title}
-
-
-
-
-
-
-
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js b/library/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js
deleted file mode 100644
index 3f672ad3b..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/fullpage/js/fullpage.js
+++ /dev/null
@@ -1,232 +0,0 @@
-/**
- * fullpage.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- tinyMCEPopup.requireLangPack();
-
- var defaultDocTypes =
- 'XHTML 1.0 Transitional=,' +
- 'XHTML 1.0 Frameset=,' +
- 'XHTML 1.0 Strict=,' +
- 'XHTML 1.1=,' +
- 'HTML 4.01 Transitional=,' +
- 'HTML 4.01 Strict=,' +
- 'HTML 4.01 Frameset=';
-
- var defaultEncodings =
- 'Western european (iso-8859-1)=iso-8859-1,' +
- 'Central European (iso-8859-2)=iso-8859-2,' +
- 'Unicode (UTF-8)=utf-8,' +
- 'Chinese traditional (Big5)=big5,' +
- 'Cyrillic (iso-8859-5)=iso-8859-5,' +
- 'Japanese (iso-2022-jp)=iso-2022-jp,' +
- 'Greek (iso-8859-7)=iso-8859-7,' +
- 'Korean (iso-2022-kr)=iso-2022-kr,' +
- 'ASCII (us-ascii)=us-ascii';
-
- var defaultFontNames = 'Arial=arial,helvetica,sans-serif;Courier New=courier new,courier,monospace;Georgia=georgia,times new roman,times,serif;Tahoma=tahoma,arial,helvetica,sans-serif;Times New Roman=times new roman,times,serif;Verdana=verdana,arial,helvetica,sans-serif;Impact=impact;WingDings=wingdings';
- var defaultFontSizes = '10px,11px,12px,13px,14px,15px,16px';
-
- function setVal(id, value) {
- var elm = document.getElementById(id);
-
- if (elm) {
- value = value || '';
-
- if (elm.nodeName == "SELECT")
- selectByValue(document.forms[0], id, value);
- else if (elm.type == "checkbox")
- elm.checked = !!value;
- else
- elm.value = value;
- }
- };
-
- function getVal(id) {
- var elm = document.getElementById(id);
-
- if (elm.nodeName == "SELECT")
- return elm.options[elm.selectedIndex].value;
-
- if (elm.type == "checkbox")
- return elm.checked;
-
- return elm.value;
- };
-
- window.FullPageDialog = {
- changedStyle : function() {
- var val, styles = tinyMCEPopup.editor.dom.parseStyle(getVal('style'));
-
- setVal('fontface', styles['font-face']);
- setVal('fontsize', styles['font-size']);
- setVal('textcolor', styles['color']);
-
- if (val = styles['background-image'])
- setVal('bgimage', val.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1"));
- else
- setVal('bgimage', '');
-
- setVal('bgcolor', styles['background-color']);
-
- // Reset margin form elements
- setVal('topmargin', '');
- setVal('rightmargin', '');
- setVal('bottommargin', '');
- setVal('leftmargin', '');
-
- // Expand margin
- if (val = styles['margin']) {
- val = val.split(' ');
- styles['margin-top'] = val[0] || '';
- styles['margin-right'] = val[1] || val[0] || '';
- styles['margin-bottom'] = val[2] || val[0] || '';
- styles['margin-left'] = val[3] || val[0] || '';
- }
-
- if (val = styles['margin-top'])
- setVal('topmargin', val.replace(/px/, ''));
-
- if (val = styles['margin-right'])
- setVal('rightmargin', val.replace(/px/, ''));
-
- if (val = styles['margin-bottom'])
- setVal('bottommargin', val.replace(/px/, ''));
-
- if (val = styles['margin-left'])
- setVal('leftmargin', val.replace(/px/, ''));
-
- updateColor('bgcolor_pick', 'bgcolor');
- updateColor('textcolor_pick', 'textcolor');
- },
-
- changedStyleProp : function() {
- var val, dom = tinyMCEPopup.editor.dom, styles = dom.parseStyle(getVal('style'));
-
- styles['font-face'] = getVal('fontface');
- styles['font-size'] = getVal('fontsize');
- styles['color'] = getVal('textcolor');
- styles['background-color'] = getVal('bgcolor');
-
- if (val = getVal('bgimage'))
- styles['background-image'] = "url('" + val + "')";
- else
- styles['background-image'] = '';
-
- delete styles['margin'];
-
- if (val = getVal('topmargin'))
- styles['margin-top'] = val + "px";
- else
- styles['margin-top'] = '';
-
- if (val = getVal('rightmargin'))
- styles['margin-right'] = val + "px";
- else
- styles['margin-right'] = '';
-
- if (val = getVal('bottommargin'))
- styles['margin-bottom'] = val + "px";
- else
- styles['margin-bottom'] = '';
-
- if (val = getVal('leftmargin'))
- styles['margin-left'] = val + "px";
- else
- styles['margin-left'] = '';
-
- // Serialize, parse and reserialize this will compress redundant styles
- setVal('style', dom.serializeStyle(dom.parseStyle(dom.serializeStyle(styles))));
- this.changedStyle();
- },
-
- update : function() {
- var data = {};
-
- tinymce.each(tinyMCEPopup.dom.select('select,input,textarea'), function(node) {
- data[node.id] = getVal(node.id);
- });
-
- tinyMCEPopup.editor.plugins.fullpage._dataToHtml(data);
- tinyMCEPopup.close();
- }
- };
-
- function init() {
- var form = document.forms[0], i, item, list, editor = tinyMCEPopup.editor;
-
- // Setup doctype select box
- list = editor.getParam("fullpage_doctypes", defaultDocTypes).split(',');
- for (i = 0; i < list.length; i++) {
- item = list[i].split('=');
-
- if (item.length > 1)
- addSelectValue(form, 'doctype', item[0], item[1]);
- }
-
- // Setup fonts select box
- list = editor.getParam("fullpage_fonts", defaultFontNames).split(';');
- for (i = 0; i < list.length; i++) {
- item = list[i].split('=');
-
- if (item.length > 1)
- addSelectValue(form, 'fontface', item[0], item[1]);
- }
-
- // Setup fontsize select box
- list = editor.getParam("fullpage_fontsizes", defaultFontSizes).split(',');
- for (i = 0; i < list.length; i++)
- addSelectValue(form, 'fontsize', list[i], list[i]);
-
- // Setup encodings select box
- list = editor.getParam("fullpage_encodings", defaultEncodings).split(',');
- for (i = 0; i < list.length; i++) {
- item = list[i].split('=');
-
- if (item.length > 1)
- addSelectValue(form, 'docencoding', item[0], item[1]);
- }
-
- // Setup color pickers
- document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
- document.getElementById('link_color_pickcontainer').innerHTML = getColorPickerHTML('link_color_pick','link_color');
- document.getElementById('visited_color_pickcontainer').innerHTML = getColorPickerHTML('visited_color_pick','visited_color');
- document.getElementById('active_color_pickcontainer').innerHTML = getColorPickerHTML('active_color_pick','active_color');
- document.getElementById('textcolor_pickcontainer').innerHTML = getColorPickerHTML('textcolor_pick','textcolor');
- document.getElementById('stylesheet_browsercontainer').innerHTML = getBrowserHTML('stylesheetbrowser','stylesheet','file','fullpage');
- document.getElementById('bgimage_pickcontainer').innerHTML = getBrowserHTML('bgimage_browser','bgimage','image','fullpage');
-
- // Resize some elements
- if (isVisible('stylesheetbrowser'))
- document.getElementById('stylesheet').style.width = '220px';
-
- if (isVisible('link_href_browser'))
- document.getElementById('element_link_href').style.width = '230px';
-
- if (isVisible('bgimage_browser'))
- document.getElementById('bgimage').style.width = '210px';
-
- // Update form
- tinymce.each(tinyMCEPopup.getWindowArg('data'), function(value, key) {
- setVal(key, value);
- });
-
- FullPageDialog.changedStyle();
-
- // Update colors
- updateColor('textcolor_pick', 'textcolor');
- updateColor('bgcolor_pick', 'bgcolor');
- updateColor('visited_color_pick', 'visited_color');
- updateColor('active_color_pick', 'active_color');
- updateColor('link_color_pick', 'link_color');
- };
-
- tinyMCEPopup.onInit.add(init);
-})();
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js b/library/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js
deleted file mode 100644
index 516edc74f..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/fullpage/langs/en_dlg.js
+++ /dev/null
@@ -1 +0,0 @@
-tinyMCE.addI18n('en.fullpage_dlg',{title:"Document Properties","meta_tab":"General","appearance_tab":"Appearance","advanced_tab":"Advanced","meta_props":"Meta Information",langprops:"Language and Encoding","meta_title":"Title","meta_keywords":"Keywords","meta_description":"Description","meta_robots":"Robots",doctypes:"Doctype",langcode:"Language Code",langdir:"Language Direction",ltr:"Left to Right",rtl:"Right to Left","xml_pi":"XML Declaration",encoding:"Character Encoding","appearance_bgprops":"Background Properties","appearance_marginprops":"Body Margins","appearance_linkprops":"Link Colors","appearance_textprops":"Text Properties",bgcolor:"Background Color",bgimage:"Background Image","left_margin":"Left Margin","right_margin":"Right Margin","top_margin":"Top Margin","bottom_margin":"Bottom Margin","text_color":"Text Color","font_size":"Font Size","font_face":"Font Face","link_color":"Link Color","hover_color":"Hover Color","visited_color":"Visited Color","active_color":"Active Color",textcolor:"Color",fontsize:"Font Size",fontface:"Font Family","meta_index_follow":"Index and Follow the Links","meta_index_nofollow":"Index and Don\'t Follow the Links","meta_noindex_follow":"Do Not Index but Follow the Links","meta_noindex_nofollow":"Do Not Index and Don\'t Follow the Links","appearance_style":"Stylesheet and Style Properties",stylesheet:"Stylesheet",style:"Style",author:"Author",copyright:"Copyright",add:"Add New Element",remove:"Remove Selected Element",moveup:"Move Selected Element Up",movedown:"Move Selected Element Down","head_elements":"Head Elements",info:"Information","add_title":"Title Element","add_meta":"Meta Element","add_script":"Script Element","add_style":"Style Element","add_link":"Link Element","add_base":"Base Element","add_comment":"Comment Node","title_element":"Title Element","script_element":"Script Element","style_element":"Style Element","base_element":"Base Element","link_element":"Link Element","meta_element":"Meta Element","comment_element":"Comment",src:"Source",language:"Language",href:"HREF",target:"Target",type:"Type",charset:"Charset",defer:"Defer",media:"Media",properties:"Properties",name:"Name",value:"Value",content:"Content",rel:"Rel",rev:"Rev",hreflang:"HREF Lang","general_props":"General","advanced_props":"Advanced"});
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js
deleted file mode 100644
index 7b65e733c..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var a=tinymce.DOM;tinymce.create("tinymce.plugins.FullScreenPlugin",{init:function(d,e){var f=this,g={},c,b;f.editor=d;d.addCommand("mceFullScreen",function(){var i,j=a.doc.documentElement;if(d.getParam("fullscreen_is_enabled")){if(d.getParam("fullscreen_new_window")){closeFullscreen()}else{a.win.setTimeout(function(){tinymce.dom.Event.remove(a.win,"resize",f.resizeFunc);tinyMCE.get(d.getParam("fullscreen_editor_id")).setContent(d.getContent());tinyMCE.remove(d);a.remove("mce_fullscreen_container");j.style.overflow=d.getParam("fullscreen_html_overflow");a.setStyle(a.doc.body,"overflow",d.getParam("fullscreen_overflow"));a.win.scrollTo(d.getParam("fullscreen_scrollx"),d.getParam("fullscreen_scrolly"));tinyMCE.settings=tinyMCE.oldSettings},10)}return}if(d.getParam("fullscreen_new_window")){i=a.win.open(e+"/fullscreen.htm","mceFullScreenPopup","fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width="+screen.availWidth+",height="+screen.availHeight);try{i.resizeTo(screen.availWidth,screen.availHeight)}catch(h){}}else{tinyMCE.oldSettings=tinyMCE.settings;g.fullscreen_overflow=a.getStyle(a.doc.body,"overflow",1)||"auto";g.fullscreen_html_overflow=a.getStyle(j,"overflow",1);c=a.getViewPort();g.fullscreen_scrollx=c.x;g.fullscreen_scrolly=c.y;if(tinymce.isOpera&&g.fullscreen_overflow=="visible"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&g.fullscreen_overflow=="scroll"){g.fullscreen_overflow="auto"}if(tinymce.isIE&&(g.fullscreen_html_overflow=="visible"||g.fullscreen_html_overflow=="scroll")){g.fullscreen_html_overflow="auto"}if(g.fullscreen_overflow=="0px"){g.fullscreen_overflow=""}a.setStyle(a.doc.body,"overflow","hidden");j.style.overflow="hidden";c=a.getViewPort();a.win.scrollTo(0,0);if(tinymce.isIE){c.h-=1}if(tinymce.isIE6||document.compatMode=="BackCompat"){b="absolute;top:"+c.y}else{b="fixed;top:0"}n=a.add(a.doc.body,"div",{id:"mce_fullscreen_container",style:"position:"+b+";left:0;width:"+c.w+"px;height:"+c.h+"px;z-index:200000;"});a.add(n,"div",{id:"mce_fullscreen"});tinymce.each(d.settings,function(k,l){g[l]=k});g.id="mce_fullscreen";g.width=n.clientWidth;g.height=n.clientHeight-15;g.fullscreen_is_enabled=true;g.fullscreen_editor_id=d.id;g.theme_advanced_resizing=false;g.save_onsavecallback=function(){d.setContent(tinyMCE.get(g.id).getContent());d.execCommand("mceSave")};tinymce.each(d.getParam("fullscreen_settings"),function(m,l){g[l]=m});if(g.theme_advanced_toolbar_location==="external"){g.theme_advanced_toolbar_location="top"}f.fullscreenEditor=new tinymce.Editor("mce_fullscreen",g);f.fullscreenEditor.onInit.add(function(){f.fullscreenEditor.setContent(d.getContent());f.fullscreenEditor.focus()});f.fullscreenEditor.render();f.fullscreenElement=new tinymce.dom.Element("mce_fullscreen_container");f.fullscreenElement.update();f.resizeFunc=tinymce.dom.Event.add(a.win,"resize",function(){var o=tinymce.DOM.getViewPort(),l=f.fullscreenEditor,k,m;k=l.dom.getSize(l.getContainer().firstChild);m=l.dom.getSize(l.getContainer().getElementsByTagName("iframe")[0]);l.theme.resizeTo(o.w-k.w+m.w,o.h-k.h+m.h)})}});d.addButton("fullscreen",{title:"fullscreen.desc",cmd:"mceFullScreen"});d.onNodeChange.add(function(i,h){h.setActive("fullscreen",i.getParam("fullscreen_is_enabled"))})},getInfo:function(){return{longname:"Fullscreen",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("fullscreen",tinymce.plugins.FullScreenPlugin)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js
deleted file mode 100644
index 6622f924a..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/fullscreen/editor_plugin_src.js
+++ /dev/null
@@ -1,159 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- var DOM = tinymce.DOM;
-
- tinymce.create('tinymce.plugins.FullScreenPlugin', {
- init : function(ed, url) {
- var t = this, s = {}, vp, posCss;
-
- t.editor = ed;
-
- // Register commands
- ed.addCommand('mceFullScreen', function() {
- var win, de = DOM.doc.documentElement;
-
- if (ed.getParam('fullscreen_is_enabled')) {
- if (ed.getParam('fullscreen_new_window'))
- closeFullscreen(); // Call to close in new window
- else {
- DOM.win.setTimeout(function() {
- tinymce.dom.Event.remove(DOM.win, 'resize', t.resizeFunc);
- tinyMCE.get(ed.getParam('fullscreen_editor_id')).setContent(ed.getContent());
- tinyMCE.remove(ed);
- DOM.remove('mce_fullscreen_container');
- de.style.overflow = ed.getParam('fullscreen_html_overflow');
- DOM.setStyle(DOM.doc.body, 'overflow', ed.getParam('fullscreen_overflow'));
- DOM.win.scrollTo(ed.getParam('fullscreen_scrollx'), ed.getParam('fullscreen_scrolly'));
- tinyMCE.settings = tinyMCE.oldSettings; // Restore old settings
- }, 10);
- }
-
- return;
- }
-
- if (ed.getParam('fullscreen_new_window')) {
- win = DOM.win.open(url + "/fullscreen.htm", "mceFullScreenPopup", "fullscreen=yes,menubar=no,toolbar=no,scrollbars=no,resizable=yes,left=0,top=0,width=" + screen.availWidth + ",height=" + screen.availHeight);
- try {
- win.resizeTo(screen.availWidth, screen.availHeight);
- } catch (e) {
- // Ignore
- }
- } else {
- tinyMCE.oldSettings = tinyMCE.settings; // Store old settings
- s.fullscreen_overflow = DOM.getStyle(DOM.doc.body, 'overflow', 1) || 'auto';
- s.fullscreen_html_overflow = DOM.getStyle(de, 'overflow', 1);
- vp = DOM.getViewPort();
- s.fullscreen_scrollx = vp.x;
- s.fullscreen_scrolly = vp.y;
-
- // Fixes an Opera bug where the scrollbars doesn't reappear
- if (tinymce.isOpera && s.fullscreen_overflow == 'visible')
- s.fullscreen_overflow = 'auto';
-
- // Fixes an IE bug where horizontal scrollbars would appear
- if (tinymce.isIE && s.fullscreen_overflow == 'scroll')
- s.fullscreen_overflow = 'auto';
-
- // Fixes an IE bug where the scrollbars doesn't reappear
- if (tinymce.isIE && (s.fullscreen_html_overflow == 'visible' || s.fullscreen_html_overflow == 'scroll'))
- s.fullscreen_html_overflow = 'auto';
-
- if (s.fullscreen_overflow == '0px')
- s.fullscreen_overflow = '';
-
- DOM.setStyle(DOM.doc.body, 'overflow', 'hidden');
- de.style.overflow = 'hidden'; //Fix for IE6/7
- vp = DOM.getViewPort();
- DOM.win.scrollTo(0, 0);
-
- if (tinymce.isIE)
- vp.h -= 1;
-
- // Use fixed position if it exists
- if (tinymce.isIE6 || document.compatMode == 'BackCompat')
- posCss = 'absolute;top:' + vp.y;
- else
- posCss = 'fixed;top:0';
-
- n = DOM.add(DOM.doc.body, 'div', {
- id : 'mce_fullscreen_container',
- style : 'position:' + posCss + ';left:0;width:' + vp.w + 'px;height:' + vp.h + 'px;z-index:200000;'});
- DOM.add(n, 'div', {id : 'mce_fullscreen'});
-
- tinymce.each(ed.settings, function(v, n) {
- s[n] = v;
- });
-
- s.id = 'mce_fullscreen';
- s.width = n.clientWidth;
- s.height = n.clientHeight - 15;
- s.fullscreen_is_enabled = true;
- s.fullscreen_editor_id = ed.id;
- s.theme_advanced_resizing = false;
- s.save_onsavecallback = function() {
- ed.setContent(tinyMCE.get(s.id).getContent());
- ed.execCommand('mceSave');
- };
-
- tinymce.each(ed.getParam('fullscreen_settings'), function(v, k) {
- s[k] = v;
- });
-
- if (s.theme_advanced_toolbar_location === 'external')
- s.theme_advanced_toolbar_location = 'top';
-
- t.fullscreenEditor = new tinymce.Editor('mce_fullscreen', s);
- t.fullscreenEditor.onInit.add(function() {
- t.fullscreenEditor.setContent(ed.getContent());
- t.fullscreenEditor.focus();
- });
-
- t.fullscreenEditor.render();
-
- t.fullscreenElement = new tinymce.dom.Element('mce_fullscreen_container');
- t.fullscreenElement.update();
- //document.body.overflow = 'hidden';
-
- t.resizeFunc = tinymce.dom.Event.add(DOM.win, 'resize', function() {
- var vp = tinymce.DOM.getViewPort(), fed = t.fullscreenEditor, outerSize, innerSize;
-
- // Get outer/inner size to get a delta size that can be used to calc the new iframe size
- outerSize = fed.dom.getSize(fed.getContainer().firstChild);
- innerSize = fed.dom.getSize(fed.getContainer().getElementsByTagName('iframe')[0]);
-
- fed.theme.resizeTo(vp.w - outerSize.w + innerSize.w, vp.h - outerSize.h + innerSize.h);
- });
- }
- });
-
- // Register buttons
- ed.addButton('fullscreen', {title : 'fullscreen.desc', cmd : 'mceFullScreen'});
-
- ed.onNodeChange.add(function(ed, cm) {
- cm.setActive('fullscreen', ed.getParam('fullscreen_is_enabled'));
- });
- },
-
- getInfo : function() {
- return {
- longname : 'Fullscreen',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/fullscreen',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('fullscreen', tinymce.plugins.FullScreenPlugin);
-})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm b/library/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm
deleted file mode 100644
index ffe528e41..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/fullscreen/fullscreen.htm
+++ /dev/null
@@ -1,110 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js
deleted file mode 100644
index e9cba106c..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create("tinymce.plugins.IESpell",{init:function(a,b){var c=this,d;if(!tinymce.isIE){return}c.editor=a;a.addCommand("mceIESpell",function(){try{d=new ActiveXObject("ieSpell.ieSpellExtension");d.CheckDocumentNode(a.getDoc().documentElement)}catch(f){if(f.number==-2146827859){a.windowManager.confirm(a.getLang("iespell.download"),function(e){if(e){window.open("http://www.iespell.com/download.php","ieSpellDownload","")}})}else{a.windowManager.alert("Error Loading ieSpell: Exception "+f.number)}}});a.addButton("iespell",{title:"iespell.iespell_desc",cmd:"mceIESpell"})},getInfo:function(){return{longname:"IESpell (IE Only)",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("iespell",tinymce.plugins.IESpell)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js
deleted file mode 100644
index 1b2bb9846..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/iespell/editor_plugin_src.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- tinymce.create('tinymce.plugins.IESpell', {
- init : function(ed, url) {
- var t = this, sp;
-
- if (!tinymce.isIE)
- return;
-
- t.editor = ed;
-
- // Register commands
- ed.addCommand('mceIESpell', function() {
- try {
- sp = new ActiveXObject("ieSpell.ieSpellExtension");
- sp.CheckDocumentNode(ed.getDoc().documentElement);
- } catch (e) {
- if (e.number == -2146827859) {
- ed.windowManager.confirm(ed.getLang("iespell.download"), function(s) {
- if (s)
- window.open('http://www.iespell.com/download.php', 'ieSpellDownload', '');
- });
- } else
- ed.windowManager.alert("Error Loading ieSpell: Exception " + e.number);
- }
- });
-
- // Register buttons
- ed.addButton('iespell', {title : 'iespell.iespell_desc', cmd : 'mceIESpell'});
- },
-
- getInfo : function() {
- return {
- longname : 'IESpell (IE Only)',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/iespell',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('iespell', tinymce.plugins.IESpell);
-})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js
deleted file mode 100644
index 8bb96f9cb..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var d=tinymce.DOM,b=tinymce.dom.Element,a=tinymce.dom.Event,e=tinymce.each,c=tinymce.is;tinymce.create("tinymce.plugins.InlinePopups",{init:function(f,g){f.onBeforeRenderUI.add(function(){f.windowManager=new tinymce.InlineWindowManager(f);d.loadCSS(g+"/skins/"+(f.settings.inlinepopups_skin||"clearlooks2")+"/window.css")})},getInfo:function(){return{longname:"InlinePopups",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.create("tinymce.InlineWindowManager:tinymce.WindowManager",{InlineWindowManager:function(f){var g=this;g.parent(f);g.zIndex=300000;g.count=0;g.windows={}},open:function(s,j){var z=this,i,k="",r=z.editor,g=0,v=0,h,m,o,q,l,x,y,n;s=s||{};j=j||{};if(!s.inline){return z.parent(s,j)}n=z._frontWindow();if(n&&d.get(n.id+"_ifr")){n.focussedElement=d.get(n.id+"_ifr").contentWindow.document.activeElement}if(!s.type){z.bookmark=r.selection.getBookmark(1)}i=d.uniqueId();h=d.getViewPort();s.width=parseInt(s.width||320);s.height=parseInt(s.height||240)+(tinymce.isIE?8:0);s.min_width=parseInt(s.min_width||150);s.min_height=parseInt(s.min_height||100);s.max_width=parseInt(s.max_width||2000);s.max_height=parseInt(s.max_height||2000);s.left=s.left||Math.round(Math.max(h.x,h.x+(h.w/2)-(s.width/2)));s.top=s.top||Math.round(Math.max(h.y,h.y+(h.h/2)-(s.height/2)));s.movable=s.resizable=true;j.mce_width=s.width;j.mce_height=s.height;j.mce_inline=true;j.mce_window_id=i;j.mce_auto_focus=s.auto_focus;z.features=s;z.params=j;z.onOpen.dispatch(z,s,j);if(s.type){k+=" mceModal";if(s.type){k+=" mce"+s.type.substring(0,1).toUpperCase()+s.type.substring(1)}s.resizable=false}if(s.statusbar){k+=" mceStatusbar"}if(s.resizable){k+=" mceResizable"}if(s.minimizable){k+=" mceMinimizable"}if(s.maximizable){k+=" mceMaximizable"}if(s.movable){k+=" mceMovable"}z._addAll(d.doc.body,["div",{id:i,role:"dialog","aria-labelledby":s.type?i+"_content":i+"_title","class":(r.settings.inlinepopups_skin||"clearlooks2")+(tinymce.isIE&&window.getSelection?" ie9":""),style:"width:100px;height:100px"},["div",{id:i+"_wrapper","class":"mceWrapper"+k},["div",{id:i+"_top","class":"mceTop"},["div",{"class":"mceLeft"}],["div",{"class":"mceCenter"}],["div",{"class":"mceRight"}],["span",{id:i+"_title"},s.title||""]],["div",{id:i+"_middle","class":"mceMiddle"},["div",{id:i+"_left","class":"mceLeft",tabindex:"0"}],["span",{id:i+"_content"}],["div",{id:i+"_right","class":"mceRight",tabindex:"0"}]],["div",{id:i+"_bottom","class":"mceBottom"},["div",{"class":"mceLeft"}],["div",{"class":"mceCenter"}],["div",{"class":"mceRight"}],["span",{id:i+"_status"},"Content"]],["a",{"class":"mceMove",tabindex:"-1",href:"javascript:;"}],["a",{"class":"mceMin",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{"class":"mceMax",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{"class":"mceMed",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{"class":"mceClose",tabindex:"-1",href:"javascript:;",onmousedown:"return false;"}],["a",{id:i+"_resize_n","class":"mceResize mceResizeN",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_s","class":"mceResize mceResizeS",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_w","class":"mceResize mceResizeW",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_e","class":"mceResize mceResizeE",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_nw","class":"mceResize mceResizeNW",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_ne","class":"mceResize mceResizeNE",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_sw","class":"mceResize mceResizeSW",tabindex:"-1",href:"javascript:;"}],["a",{id:i+"_resize_se","class":"mceResize mceResizeSE",tabindex:"-1",href:"javascript:;"}]]]);d.setStyles(i,{top:-10000,left:-10000});if(tinymce.isGecko){d.setStyle(i,"overflow","auto")}if(!s.type){g+=d.get(i+"_left").clientWidth;g+=d.get(i+"_right").clientWidth;v+=d.get(i+"_top").clientHeight;v+=d.get(i+"_bottom").clientHeight}d.setStyles(i,{top:s.top,left:s.left,width:s.width+g,height:s.height+v});y=s.url||s.file;if(y){if(tinymce.relaxedDomain){y+=(y.indexOf("?")==-1?"?":"&")+"mce_rdomain="+tinymce.relaxedDomain}y=tinymce._addVer(y)}if(!s.type){d.add(i+"_content","iframe",{id:i+"_ifr",src:'javascript:""',frameBorder:0,style:"border:0;width:10px;height:10px"});d.setStyles(i+"_ifr",{width:s.width,height:s.height});d.setAttrib(i+"_ifr","src",y)}else{d.add(i+"_wrapper","a",{id:i+"_ok","class":"mceButton mceOk",href:"javascript:;",onmousedown:"return false;"},"Ok");if(s.type=="confirm"){d.add(i+"_wrapper","a",{"class":"mceButton mceCancel",href:"javascript:;",onmousedown:"return false;"},"Cancel")}d.add(i+"_middle","div",{"class":"mceIcon"});d.setHTML(i+"_content",s.content.replace("\n","
"));a.add(i,"keyup",function(f){var p=27;if(f.keyCode===p){s.button_func(false);return a.cancel(f)}});a.add(i,"keydown",function(f){var t,p=9;if(f.keyCode===p){t=d.select("a.mceCancel",i+"_wrapper")[0];if(t&&t!==f.target){t.focus()}else{d.get(i+"_ok").focus()}return a.cancel(f)}})}o=a.add(i,"mousedown",function(t){var u=t.target,f,p;f=z.windows[i];z.focus(i);if(u.nodeName=="A"||u.nodeName=="a"){if(u.className=="mceClose"){z.close(null,i);return a.cancel(t)}else{if(u.className=="mceMax"){f.oldPos=f.element.getXY();f.oldSize=f.element.getSize();p=d.getViewPort();p.w-=2;p.h-=2;f.element.moveTo(p.x,p.y);f.element.resizeTo(p.w,p.h);d.setStyles(i+"_ifr",{width:p.w-f.deltaWidth,height:p.h-f.deltaHeight});d.addClass(i+"_wrapper","mceMaximized")}else{if(u.className=="mceMed"){f.element.moveTo(f.oldPos.x,f.oldPos.y);f.element.resizeTo(f.oldSize.w,f.oldSize.h);f.iframeElement.resizeTo(f.oldSize.w-f.deltaWidth,f.oldSize.h-f.deltaHeight);d.removeClass(i+"_wrapper","mceMaximized")}else{if(u.className=="mceMove"){return z._startDrag(i,t,u.className)}else{if(d.hasClass(u,"mceResize")){return z._startDrag(i,t,u.className.substring(13))}}}}}}});q=a.add(i,"click",function(f){var p=f.target;z.focus(i);if(p.nodeName=="A"||p.nodeName=="a"){switch(p.className){case"mceClose":z.close(null,i);return a.cancel(f);case"mceButton mceOk":case"mceButton mceCancel":s.button_func(p.className=="mceButton mceOk");return a.cancel(f)}}});a.add([i+"_left",i+"_right"],"focus",function(p){var t=d.get(i+"_ifr");if(t){var f=t.contentWindow.document.body;var u=d.select(":input:enabled,*[tabindex=0]",f);if(p.target.id===(i+"_left")){u[u.length-1].focus()}else{u[0].focus()}}else{d.get(i+"_ok").focus()}});x=z.windows[i]={id:i,mousedown_func:o,click_func:q,element:new b(i,{blocker:1,container:r.getContainer()}),iframeElement:new b(i+"_ifr"),features:s,deltaWidth:g,deltaHeight:v};x.iframeElement.on("focus",function(){z.focus(i)});if(z.count==0&&z.editor.getParam("dialog_type","modal")=="modal"){d.add(d.doc.body,"div",{id:"mceModalBlocker","class":(z.editor.settings.inlinepopups_skin||"clearlooks2")+"_modalBlocker",style:{zIndex:z.zIndex-1}});d.show("mceModalBlocker");d.setAttrib(d.doc.body,"aria-hidden","true")}else{d.setStyle("mceModalBlocker","z-index",z.zIndex-1)}if(tinymce.isIE6||/Firefox\/2\./.test(navigator.userAgent)||(tinymce.isIE&&!d.boxModel)){d.setStyles("mceModalBlocker",{position:"absolute",left:h.x,top:h.y,width:h.w-2,height:h.h-2})}d.setAttrib(i,"aria-hidden","false");z.focus(i);z._fixIELayout(i,1);if(d.get(i+"_ok")){d.get(i+"_ok").focus()}z.count++;return x},focus:function(h){var g=this,f;if(f=g.windows[h]){f.zIndex=this.zIndex++;f.element.setStyle("zIndex",f.zIndex);f.element.update();h=h+"_wrapper";d.removeClass(g.lastId,"mceFocus");d.addClass(h,"mceFocus");g.lastId=h;if(f.focussedElement){f.focussedElement.focus()}else{if(d.get(h+"_ok")){d.get(f.id+"_ok").focus()}else{if(d.get(f.id+"_ifr")){d.get(f.id+"_ifr").focus()}}}}},_addAll:function(k,h){var g,l,f=this,j=tinymce.DOM;if(c(h,"string")){k.appendChild(j.doc.createTextNode(h))}else{if(h.length){k=k.appendChild(j.create(h[0],h[1]));for(g=2;gf){g=h;f=h.zIndex}});return g},setTitle:function(f,g){var h;f=this._findId(f);if(h=d.get(f+"_title")){h.innerHTML=d.encode(g)}},alert:function(g,f,j){var i=this,h;h=i.open({title:i,type:"alert",button_func:function(k){if(f){f.call(k||i,k)}i.close(null,h.id)},content:d.encode(i.editor.getLang(g,g)),inline:1,width:400,height:130})},confirm:function(g,f,j){var i=this,h;h=i.open({title:i,type:"confirm",button_func:function(k){if(f){f.call(k||i,k)}i.close(null,h.id)},content:d.encode(i.editor.getLang(g,g)),inline:1,width:400,height:130})},_findId:function(f){var g=this;if(typeof(f)=="string"){return f}e(g.windows,function(h){var i=d.get(h.id+"_ifr");if(i&&f==i.contentWindow){f=h.id;return false}});return f},_fixIELayout:function(i,h){var f,g;if(!tinymce.isIE6){return}e(["n","s","w","e","nw","ne","sw","se"],function(j){var k=d.get(i+"_resize_"+j);d.setStyles(k,{width:h?k.clientWidth:"",height:h?k.clientHeight:"",cursor:d.getStyle(k,"cursor",1)});d.setStyle(i+"_bottom","bottom","-1px");k=0});if(f=this.windows[i]){f.element.hide();f.element.show();e(d.select("div,a",i),function(k,j){if(k.currentStyle.backgroundImage!="none"){g=new Image();g.src=k.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/,"$1")}});d.get(i).style.filter=""}}});tinymce.PluginManager.add("inlinepopups",tinymce.plugins.InlinePopups)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js
deleted file mode 100644
index 67123ca31..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/editor_plugin_src.js
+++ /dev/null
@@ -1,699 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- var DOM = tinymce.DOM, Element = tinymce.dom.Element, Event = tinymce.dom.Event, each = tinymce.each, is = tinymce.is;
-
- tinymce.create('tinymce.plugins.InlinePopups', {
- init : function(ed, url) {
- // Replace window manager
- ed.onBeforeRenderUI.add(function() {
- ed.windowManager = new tinymce.InlineWindowManager(ed);
- DOM.loadCSS(url + '/skins/' + (ed.settings.inlinepopups_skin || 'clearlooks2') + "/window.css");
- });
- },
-
- getInfo : function() {
- return {
- longname : 'InlinePopups',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/inlinepopups',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
-
- tinymce.create('tinymce.InlineWindowManager:tinymce.WindowManager', {
- InlineWindowManager : function(ed) {
- var t = this;
-
- t.parent(ed);
- t.zIndex = 300000;
- t.count = 0;
- t.windows = {};
- },
-
- open : function(f, p) {
- var t = this, id, opt = '', ed = t.editor, dw = 0, dh = 0, vp, po, mdf, clf, we, w, u, parentWindow;
-
- f = f || {};
- p = p || {};
-
- // Run native windows
- if (!f.inline)
- return t.parent(f, p);
-
- parentWindow = t._frontWindow();
- if (parentWindow && DOM.get(parentWindow.id + '_ifr')) {
- parentWindow.focussedElement = DOM.get(parentWindow.id + '_ifr').contentWindow.document.activeElement;
- }
-
- // Only store selection if the type is a normal window
- if (!f.type)
- t.bookmark = ed.selection.getBookmark(1);
-
- id = DOM.uniqueId();
- vp = DOM.getViewPort();
- f.width = parseInt(f.width || 320);
- f.height = parseInt(f.height || 240) + (tinymce.isIE ? 8 : 0);
- f.min_width = parseInt(f.min_width || 150);
- f.min_height = parseInt(f.min_height || 100);
- f.max_width = parseInt(f.max_width || 2000);
- f.max_height = parseInt(f.max_height || 2000);
- f.left = f.left || Math.round(Math.max(vp.x, vp.x + (vp.w / 2.0) - (f.width / 2.0)));
- f.top = f.top || Math.round(Math.max(vp.y, vp.y + (vp.h / 2.0) - (f.height / 2.0)));
- f.movable = f.resizable = true;
- p.mce_width = f.width;
- p.mce_height = f.height;
- p.mce_inline = true;
- p.mce_window_id = id;
- p.mce_auto_focus = f.auto_focus;
-
- // Transpose
-// po = DOM.getPos(ed.getContainer());
-// f.left -= po.x;
-// f.top -= po.y;
-
- t.features = f;
- t.params = p;
- t.onOpen.dispatch(t, f, p);
-
- if (f.type) {
- opt += ' mceModal';
-
- if (f.type)
- opt += ' mce' + f.type.substring(0, 1).toUpperCase() + f.type.substring(1);
-
- f.resizable = false;
- }
-
- if (f.statusbar)
- opt += ' mceStatusbar';
-
- if (f.resizable)
- opt += ' mceResizable';
-
- if (f.minimizable)
- opt += ' mceMinimizable';
-
- if (f.maximizable)
- opt += ' mceMaximizable';
-
- if (f.movable)
- opt += ' mceMovable';
-
- // Create DOM objects
- t._addAll(DOM.doc.body,
- ['div', {id : id, role : 'dialog', 'aria-labelledby': f.type ? id + '_content' : id + '_title', 'class' : (ed.settings.inlinepopups_skin || 'clearlooks2') + (tinymce.isIE && window.getSelection ? ' ie9' : ''), style : 'width:100px;height:100px'},
- ['div', {id : id + '_wrapper', 'class' : 'mceWrapper' + opt},
- ['div', {id : id + '_top', 'class' : 'mceTop'},
- ['div', {'class' : 'mceLeft'}],
- ['div', {'class' : 'mceCenter'}],
- ['div', {'class' : 'mceRight'}],
- ['span', {id : id + '_title'}, f.title || '']
- ],
-
- ['div', {id : id + '_middle', 'class' : 'mceMiddle'},
- ['div', {id : id + '_left', 'class' : 'mceLeft', tabindex : '0'}],
- ['span', {id : id + '_content'}],
- ['div', {id : id + '_right', 'class' : 'mceRight', tabindex : '0'}]
- ],
-
- ['div', {id : id + '_bottom', 'class' : 'mceBottom'},
- ['div', {'class' : 'mceLeft'}],
- ['div', {'class' : 'mceCenter'}],
- ['div', {'class' : 'mceRight'}],
- ['span', {id : id + '_status'}, 'Content']
- ],
-
- ['a', {'class' : 'mceMove', tabindex : '-1', href : 'javascript:;'}],
- ['a', {'class' : 'mceMin', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],
- ['a', {'class' : 'mceMax', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],
- ['a', {'class' : 'mceMed', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],
- ['a', {'class' : 'mceClose', tabindex : '-1', href : 'javascript:;', onmousedown : 'return false;'}],
- ['a', {id : id + '_resize_n', 'class' : 'mceResize mceResizeN', tabindex : '-1', href : 'javascript:;'}],
- ['a', {id : id + '_resize_s', 'class' : 'mceResize mceResizeS', tabindex : '-1', href : 'javascript:;'}],
- ['a', {id : id + '_resize_w', 'class' : 'mceResize mceResizeW', tabindex : '-1', href : 'javascript:;'}],
- ['a', {id : id + '_resize_e', 'class' : 'mceResize mceResizeE', tabindex : '-1', href : 'javascript:;'}],
- ['a', {id : id + '_resize_nw', 'class' : 'mceResize mceResizeNW', tabindex : '-1', href : 'javascript:;'}],
- ['a', {id : id + '_resize_ne', 'class' : 'mceResize mceResizeNE', tabindex : '-1', href : 'javascript:;'}],
- ['a', {id : id + '_resize_sw', 'class' : 'mceResize mceResizeSW', tabindex : '-1', href : 'javascript:;'}],
- ['a', {id : id + '_resize_se', 'class' : 'mceResize mceResizeSE', tabindex : '-1', href : 'javascript:;'}]
- ]
- ]
- );
-
- DOM.setStyles(id, {top : -10000, left : -10000});
-
- // Fix gecko rendering bug, where the editors iframe messed with window contents
- if (tinymce.isGecko)
- DOM.setStyle(id, 'overflow', 'auto');
-
- // Measure borders
- if (!f.type) {
- dw += DOM.get(id + '_left').clientWidth;
- dw += DOM.get(id + '_right').clientWidth;
- dh += DOM.get(id + '_top').clientHeight;
- dh += DOM.get(id + '_bottom').clientHeight;
- }
-
- // Resize window
- DOM.setStyles(id, {top : f.top, left : f.left, width : f.width + dw, height : f.height + dh});
-
- u = f.url || f.file;
- if (u) {
- if (tinymce.relaxedDomain)
- u += (u.indexOf('?') == -1 ? '?' : '&') + 'mce_rdomain=' + tinymce.relaxedDomain;
-
- u = tinymce._addVer(u);
- }
-
- if (!f.type) {
- DOM.add(id + '_content', 'iframe', {id : id + '_ifr', src : 'javascript:""', frameBorder : 0, style : 'border:0;width:10px;height:10px'});
- DOM.setStyles(id + '_ifr', {width : f.width, height : f.height});
- DOM.setAttrib(id + '_ifr', 'src', u);
- } else {
- DOM.add(id + '_wrapper', 'a', {id : id + '_ok', 'class' : 'mceButton mceOk', href : 'javascript:;', onmousedown : 'return false;'}, 'Ok');
-
- if (f.type == 'confirm')
- DOM.add(id + '_wrapper', 'a', {'class' : 'mceButton mceCancel', href : 'javascript:;', onmousedown : 'return false;'}, 'Cancel');
-
- DOM.add(id + '_middle', 'div', {'class' : 'mceIcon'});
- DOM.setHTML(id + '_content', f.content.replace('\n', '
'));
-
- Event.add(id, 'keyup', function(evt) {
- var VK_ESCAPE = 27;
- if (evt.keyCode === VK_ESCAPE) {
- f.button_func(false);
- return Event.cancel(evt);
- }
- });
-
- Event.add(id, 'keydown', function(evt) {
- var cancelButton, VK_TAB = 9;
- if (evt.keyCode === VK_TAB) {
- cancelButton = DOM.select('a.mceCancel', id + '_wrapper')[0];
- if (cancelButton && cancelButton !== evt.target) {
- cancelButton.focus();
- } else {
- DOM.get(id + '_ok').focus();
- }
- return Event.cancel(evt);
- }
- });
- }
-
- // Register events
- mdf = Event.add(id, 'mousedown', function(e) {
- var n = e.target, w, vp;
-
- w = t.windows[id];
- t.focus(id);
-
- if (n.nodeName == 'A' || n.nodeName == 'a') {
- if (n.className == 'mceClose') {
- t.close(null, id);
- return Event.cancel(e);
- } else if (n.className == 'mceMax') {
- w.oldPos = w.element.getXY();
- w.oldSize = w.element.getSize();
-
- vp = DOM.getViewPort();
-
- // Reduce viewport size to avoid scrollbars
- vp.w -= 2;
- vp.h -= 2;
-
- w.element.moveTo(vp.x, vp.y);
- w.element.resizeTo(vp.w, vp.h);
- DOM.setStyles(id + '_ifr', {width : vp.w - w.deltaWidth, height : vp.h - w.deltaHeight});
- DOM.addClass(id + '_wrapper', 'mceMaximized');
- } else if (n.className == 'mceMed') {
- // Reset to old size
- w.element.moveTo(w.oldPos.x, w.oldPos.y);
- w.element.resizeTo(w.oldSize.w, w.oldSize.h);
- w.iframeElement.resizeTo(w.oldSize.w - w.deltaWidth, w.oldSize.h - w.deltaHeight);
-
- DOM.removeClass(id + '_wrapper', 'mceMaximized');
- } else if (n.className == 'mceMove')
- return t._startDrag(id, e, n.className);
- else if (DOM.hasClass(n, 'mceResize'))
- return t._startDrag(id, e, n.className.substring(13));
- }
- });
-
- clf = Event.add(id, 'click', function(e) {
- var n = e.target;
-
- t.focus(id);
-
- if (n.nodeName == 'A' || n.nodeName == 'a') {
- switch (n.className) {
- case 'mceClose':
- t.close(null, id);
- return Event.cancel(e);
-
- case 'mceButton mceOk':
- case 'mceButton mceCancel':
- f.button_func(n.className == 'mceButton mceOk');
- return Event.cancel(e);
- }
- }
- });
-
- // Make sure the tab order loops within the dialog.
- Event.add([id + '_left', id + '_right'], 'focus', function(evt) {
- var iframe = DOM.get(id + '_ifr');
- if (iframe) {
- var body = iframe.contentWindow.document.body;
- var focusable = DOM.select(':input:enabled,*[tabindex=0]', body);
- if (evt.target.id === (id + '_left')) {
- focusable[focusable.length - 1].focus();
- } else {
- focusable[0].focus();
- }
- } else {
- DOM.get(id + '_ok').focus();
- }
- });
-
- // Add window
- w = t.windows[id] = {
- id : id,
- mousedown_func : mdf,
- click_func : clf,
- element : new Element(id, {blocker : 1, container : ed.getContainer()}),
- iframeElement : new Element(id + '_ifr'),
- features : f,
- deltaWidth : dw,
- deltaHeight : dh
- };
-
- w.iframeElement.on('focus', function() {
- t.focus(id);
- });
-
- // Setup blocker
- if (t.count == 0 && t.editor.getParam('dialog_type', 'modal') == 'modal') {
- DOM.add(DOM.doc.body, 'div', {
- id : 'mceModalBlocker',
- 'class' : (t.editor.settings.inlinepopups_skin || 'clearlooks2') + '_modalBlocker',
- style : {zIndex : t.zIndex - 1}
- });
-
- DOM.show('mceModalBlocker'); // Reduces flicker in IE
- DOM.setAttrib(DOM.doc.body, 'aria-hidden', 'true');
- } else
- DOM.setStyle('mceModalBlocker', 'z-index', t.zIndex - 1);
-
- if (tinymce.isIE6 || /Firefox\/2\./.test(navigator.userAgent) || (tinymce.isIE && !DOM.boxModel))
- DOM.setStyles('mceModalBlocker', {position : 'absolute', left : vp.x, top : vp.y, width : vp.w - 2, height : vp.h - 2});
-
- DOM.setAttrib(id, 'aria-hidden', 'false');
- t.focus(id);
- t._fixIELayout(id, 1);
-
- // Focus ok button
- if (DOM.get(id + '_ok'))
- DOM.get(id + '_ok').focus();
- t.count++;
-
- return w;
- },
-
- focus : function(id) {
- var t = this, w;
-
- if (w = t.windows[id]) {
- w.zIndex = this.zIndex++;
- w.element.setStyle('zIndex', w.zIndex);
- w.element.update();
-
- id = id + '_wrapper';
- DOM.removeClass(t.lastId, 'mceFocus');
- DOM.addClass(id, 'mceFocus');
- t.lastId = id;
-
- if (w.focussedElement) {
- w.focussedElement.focus();
- } else if (DOM.get(id + '_ok')) {
- DOM.get(w.id + '_ok').focus();
- } else if (DOM.get(w.id + '_ifr')) {
- DOM.get(w.id + '_ifr').focus();
- }
- }
- },
-
- _addAll : function(te, ne) {
- var i, n, t = this, dom = tinymce.DOM;
-
- if (is(ne, 'string'))
- te.appendChild(dom.doc.createTextNode(ne));
- else if (ne.length) {
- te = te.appendChild(dom.create(ne[0], ne[1]));
-
- for (i=2; i ix) {
- fw = w;
- ix = w.zIndex;
- }
- });
- return fw;
- },
-
- setTitle : function(w, ti) {
- var e;
-
- w = this._findId(w);
-
- if (e = DOM.get(w + '_title'))
- e.innerHTML = DOM.encode(ti);
- },
-
- alert : function(txt, cb, s) {
- var t = this, w;
-
- w = t.open({
- title : t,
- type : 'alert',
- button_func : function(s) {
- if (cb)
- cb.call(s || t, s);
-
- t.close(null, w.id);
- },
- content : DOM.encode(t.editor.getLang(txt, txt)),
- inline : 1,
- width : 400,
- height : 130
- });
- },
-
- confirm : function(txt, cb, s) {
- var t = this, w;
-
- w = t.open({
- title : t,
- type : 'confirm',
- button_func : function(s) {
- if (cb)
- cb.call(s || t, s);
-
- t.close(null, w.id);
- },
- content : DOM.encode(t.editor.getLang(txt, txt)),
- inline : 1,
- width : 400,
- height : 130
- });
- },
-
- // Internal functions
-
- _findId : function(w) {
- var t = this;
-
- if (typeof(w) == 'string')
- return w;
-
- each(t.windows, function(wo) {
- var ifr = DOM.get(wo.id + '_ifr');
-
- if (ifr && w == ifr.contentWindow) {
- w = wo.id;
- return false;
- }
- });
-
- return w;
- },
-
- _fixIELayout : function(id, s) {
- var w, img;
-
- if (!tinymce.isIE6)
- return;
-
- // Fixes the bug where hover flickers and does odd things in IE6
- each(['n','s','w','e','nw','ne','sw','se'], function(v) {
- var e = DOM.get(id + '_resize_' + v);
-
- DOM.setStyles(e, {
- width : s ? e.clientWidth : '',
- height : s ? e.clientHeight : '',
- cursor : DOM.getStyle(e, 'cursor', 1)
- });
-
- DOM.setStyle(id + "_bottom", 'bottom', '-1px');
-
- e = 0;
- });
-
- // Fixes graphics glitch
- if (w = this.windows[id]) {
- // Fixes rendering bug after resize
- w.element.hide();
- w.element.show();
-
- // Forced a repaint of the window
- //DOM.get(id).style.filter = '';
-
- // IE has a bug where images used in CSS won't get loaded
- // sometimes when the cache in the browser is disabled
- // This fix tries to solve it by loading the images using the image object
- each(DOM.select('div,a', id), function(e, i) {
- if (e.currentStyle.backgroundImage != 'none') {
- img = new Image();
- img.src = e.currentStyle.backgroundImage.replace(/url\(\"(.+)\"\)/, '$1');
- }
- });
-
- DOM.get(id).style.filter = '';
- }
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('inlinepopups', tinymce.plugins.InlinePopups);
-})();
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif b/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif
deleted file mode 100644
index 219139857..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/alert.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif b/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif
deleted file mode 100644
index f957e49a3..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/button.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif b/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif
deleted file mode 100644
index 6baf64ad3..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/buttons.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif b/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif
deleted file mode 100644
index 20acbbf7a..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/confirm.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif b/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif
deleted file mode 100644
index d5de1cc23..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/corners.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif b/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif
deleted file mode 100644
index c2a2ad454..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/horizontal.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif b/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif
deleted file mode 100644
index 0b4cc3682..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/img/vertical.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css b/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css
deleted file mode 100644
index a50d4fc57..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/skins/clearlooks2/window.css
+++ /dev/null
@@ -1,90 +0,0 @@
-/* Clearlooks 2 */
-
-/* Reset */
-.clearlooks2, .clearlooks2 div, .clearlooks2 span, .clearlooks2 a {vertical-align:baseline; text-align:left; position:absolute; border:0; padding:0; margin:0; background:transparent; font-family:Arial,Verdana; font-size:11px; color:#000; text-decoration:none; font-weight:normal; width:auto; height:auto; overflow:hidden; display:block}
-
-/* General */
-.clearlooks2 {position:absolute; direction:ltr}
-.clearlooks2 .mceWrapper {position:static}
-.mceEventBlocker {position:fixed; left:0; top:0; background:url(img/horizontal.gif) no-repeat 0 -75px; width:100%; height:100%}
-.clearlooks2 .mcePlaceHolder {border:1px solid #000; background:#888; top:0; left:0; opacity:0.5; -ms-filter:'alpha(opacity=50)'; filter:alpha(opacity=50)}
-.clearlooks2_modalBlocker {position:fixed; left:0; top:0; width:100%; height:100%; background:#FFF; opacity:0.6; -ms-filter:'alpha(opacity=60)'; filter:alpha(opacity=60); display:none}
-
-/* Top */
-.clearlooks2 .mceTop, .clearlooks2 .mceTop div {top:0; width:100%; height:23px}
-.clearlooks2 .mceTop .mceLeft {width:6px; background:url(img/corners.gif)}
-.clearlooks2 .mceTop .mceCenter {right:6px; width:100%; height:23px; background:url(img/horizontal.gif) 12px 0; clip:rect(auto auto auto 12px)}
-.clearlooks2 .mceTop .mceRight {right:0; width:6px; height:23px; background:url(img/corners.gif) -12px 0}
-.clearlooks2 .mceTop span {width:100%; text-align:center; vertical-align:middle; line-height:23px; font-weight:bold}
-.clearlooks2 .mceFocus .mceTop .mceLeft {background:url(img/corners.gif) -6px 0}
-.clearlooks2 .mceFocus .mceTop .mceCenter {background:url(img/horizontal.gif) 0 -23px}
-.clearlooks2 .mceFocus .mceTop .mceRight {background:url(img/corners.gif) -18px 0}
-.clearlooks2 .mceFocus .mceTop span {color:#FFF}
-
-/* Middle */
-.clearlooks2 .mceMiddle, .clearlooks2 .mceMiddle div {top:0}
-.clearlooks2 .mceMiddle {width:100%; height:100%; clip:rect(23px auto auto auto)}
-.clearlooks2 .mceMiddle .mceLeft {left:0; width:5px; height:100%; background:url(img/vertical.gif) -5px 0}
-.clearlooks2 .mceMiddle span {top:23px; left:5px; width:100%; height:100%; background:#FFF}
-.clearlooks2 .mceMiddle .mceRight {right:0; width:5px; height:100%; background:url(img/vertical.gif)}
-
-/* Bottom */
-.clearlooks2 .mceBottom, .clearlooks2 .mceBottom div {height:6px}
-.clearlooks2 .mceBottom {left:0; bottom:0; width:100%}
-.clearlooks2 .mceBottom div {top:0}
-.clearlooks2 .mceBottom .mceLeft {left:0; width:5px; background:url(img/corners.gif) -34px -6px}
-.clearlooks2 .mceBottom .mceCenter {left:5px; width:100%; background:url(img/horizontal.gif) 0 -46px}
-.clearlooks2 .mceBottom .mceRight {right:0; width:5px; background: url(img/corners.gif) -34px 0}
-.clearlooks2 .mceBottom span {display:none}
-.clearlooks2 .mceStatusbar .mceBottom, .clearlooks2 .mceStatusbar .mceBottom div {height:23px}
-.clearlooks2 .mceStatusbar .mceBottom .mceLeft {background:url(img/corners.gif) -29px 0}
-.clearlooks2 .mceStatusbar .mceBottom .mceCenter {background:url(img/horizontal.gif) 0 -52px}
-.clearlooks2 .mceStatusbar .mceBottom .mceRight {background:url(img/corners.gif) -24px 0}
-.clearlooks2 .mceStatusbar .mceBottom span {display:block; left:7px; font-family:Arial, Verdana; font-size:11px; line-height:23px}
-
-/* Actions */
-.clearlooks2 a {width:29px; height:16px; top:3px;}
-.clearlooks2 .mceClose {right:6px; background:url(img/buttons.gif) -87px 0}
-.clearlooks2 .mceMin {display:none; right:68px; background:url(img/buttons.gif) 0 0}
-.clearlooks2 .mceMed {display:none; right:37px; background:url(img/buttons.gif) -29px 0}
-.clearlooks2 .mceMax {display:none; right:37px; background:url(img/buttons.gif) -58px 0}
-.clearlooks2 .mceMove {display:none;width:100%;cursor:move;background:url(img/corners.gif) no-repeat -100px -100px}
-.clearlooks2 .mceMovable .mceMove {display:block}
-.clearlooks2 .mceFocus .mceClose {right:6px; background:url(img/buttons.gif) -87px -16px}
-.clearlooks2 .mceFocus .mceMin {right:68px; background:url(img/buttons.gif) 0 -16px}
-.clearlooks2 .mceFocus .mceMed {right:37px; background:url(img/buttons.gif) -29px -16px}
-.clearlooks2 .mceFocus .mceMax {right:37px; background:url(img/buttons.gif) -58px -16px}
-.clearlooks2 .mceFocus .mceClose:hover {right:6px; background:url(img/buttons.gif) -87px -32px}
-.clearlooks2 .mceFocus .mceClose:hover {right:6px; background:url(img/buttons.gif) -87px -32px}
-.clearlooks2 .mceFocus .mceMin:hover {right:68px; background:url(img/buttons.gif) 0 -32px}
-.clearlooks2 .mceFocus .mceMed:hover {right:37px; background:url(img/buttons.gif) -29px -32px}
-.clearlooks2 .mceFocus .mceMax:hover {right:37px; background:url(img/buttons.gif) -58px -32px}
-
-/* Resize */
-.clearlooks2 .mceResize {top:auto; left:auto; display:none; width:5px; height:5px; background:url(img/horizontal.gif) no-repeat 0 -75px}
-.clearlooks2 .mceResizable .mceResize {display:block}
-.clearlooks2 .mceResizable .mceMin, .clearlooks2 .mceMax {display:none}
-.clearlooks2 .mceMinimizable .mceMin {display:block}
-.clearlooks2 .mceMaximizable .mceMax {display:block}
-.clearlooks2 .mceMaximized .mceMed {display:block}
-.clearlooks2 .mceMaximized .mceMax {display:none}
-.clearlooks2 a.mceResizeN {top:0; left:0; width:100%; cursor:n-resize}
-.clearlooks2 a.mceResizeNW {top:0; left:0; cursor:nw-resize}
-.clearlooks2 a.mceResizeNE {top:0; right:0; cursor:ne-resize}
-.clearlooks2 a.mceResizeW {top:0; left:0; height:100%; cursor:w-resize;}
-.clearlooks2 a.mceResizeE {top:0; right:0; height:100%; cursor:e-resize}
-.clearlooks2 a.mceResizeS {bottom:0; left:0; width:100%; cursor:s-resize}
-.clearlooks2 a.mceResizeSW {bottom:0; left:0; cursor:sw-resize}
-.clearlooks2 a.mceResizeSE {bottom:0; right:0; cursor:se-resize}
-
-/* Alert/Confirm */
-.clearlooks2 .mceButton {font-weight:bold; bottom:10px; width:80px; height:30px; background:url(img/button.gif); line-height:30px; vertical-align:middle; text-align:center; outline:0}
-.clearlooks2 .mceMiddle .mceIcon {left:15px; top:35px; width:32px; height:32px}
-.clearlooks2 .mceAlert .mceMiddle span, .clearlooks2 .mceConfirm .mceMiddle span {background:transparent;left:60px; top:35px; width:320px; height:50px; font-weight:bold; overflow:auto; white-space:normal}
-.clearlooks2 a:hover {font-weight:bold;}
-.clearlooks2 .mceAlert .mceMiddle, .clearlooks2 .mceConfirm .mceMiddle {background:#D6D7D5}
-.clearlooks2 .mceAlert .mceOk {left:50%; top:auto; margin-left: -40px}
-.clearlooks2 .mceAlert .mceIcon {background:url(img/alert.gif)}
-.clearlooks2 .mceConfirm .mceOk {left:50%; top:auto; margin-left: -90px}
-.clearlooks2 .mceConfirm .mceCancel {left:50%; top:auto}
-.clearlooks2 .mceConfirm .mceIcon {background:url(img/confirm.gif)}
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm b/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm
deleted file mode 100644
index f9ec64219..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/inlinepopups/template.htm
+++ /dev/null
@@ -1,387 +0,0 @@
-
-
-
-Template for dialogs
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Statusbar text.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Statusbar text.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Statusbar text.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Statusbar, Resizable
-
-
-
-
-
-
-
-
-
Statusbar text.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Resizable, Maximizable
-
-
-
-
-
-
-
-
-
Statusbar text.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Blurred, Maximizable, Statusbar, Resizable
-
-
-
-
-
-
-
-
-
Statusbar text.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Maximized, Maximizable, Minimizable
-
-
-
-
-
-
-
-
-
Statusbar text.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
Statusbar text.
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- This is a very long error message. This is a very long error message.
- This is a very long error message. This is a very long error message.
- This is a very long error message. This is a very long error message.
- This is a very long error message. This is a very long error message.
- This is a very long error message. This is a very long error message.
- This is a very long error message. This is a very long error message.
-
-
-
-
-
-
-
-
-
Ok
-
-
-
-
-
-
-
-
-
-
-
- This is a very long error message. This is a very long error message.
- This is a very long error message. This is a very long error message.
- This is a very long error message. This is a very long error message.
- This is a very long error message. This is a very long error message.
- This is a very long error message. This is a very long error message.
- This is a very long error message. This is a very long error message.
-
-
-
-
-
-
-
-
-
Ok
-
Cancel
-
-
-
-
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js
deleted file mode 100644
index 938ce6b17..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/insertdatetime/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create("tinymce.plugins.InsertDateTime",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceInsertDate",function(){var d=c._getDateTime(new Date(),a.getParam("plugin_insertdate_dateFormat",a.getLang("insertdatetime.date_fmt")));a.execCommand("mceInsertContent",false,d)});a.addCommand("mceInsertTime",function(){var d=c._getDateTime(new Date(),a.getParam("plugin_insertdate_timeFormat",a.getLang("insertdatetime.time_fmt")));a.execCommand("mceInsertContent",false,d)});a.addButton("insertdate",{title:"insertdatetime.insertdate_desc",cmd:"mceInsertDate"});a.addButton("inserttime",{title:"insertdatetime.inserttime_desc",cmd:"mceInsertTime"})},getInfo:function(){return{longname:"Insert date/time",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/insertdatetime",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_getDateTime:function(e,a){var c=this.editor;function b(g,d){g=""+g;if(g.length-1){b[e].style.zIndex=h[k];b[k].style.zIndex=h[e]}else{if(h[e]>0){b[e].style.zIndex=h[e]-1}}}else{for(g=0;gh[e]){k=g;break}}if(k>-1){b[e].style.zIndex=h[k];b[k].style.zIndex=h[e]}else{b[e].style.zIndex=h[e]+1}}c.execCommand("mceRepaint")},_getParentLayer:function(b){return this.editor.dom.getParent(b,function(c){return c.nodeType==1&&/^(absolute|relative|static)$/i.test(c.style.position)})},_insertLayer:function(){var c=this.editor,e=c.dom,d=e.getPos(e.getParent(c.selection.getNode(),"*")),b=c.getBody();c.dom.add(b,"div",{style:{position:"absolute",left:d.x,top:(d.y>20?d.y:20),width:100,height:100},"class":"mceItemVisualAid mceItemLayer"},c.selection.getContent()||c.getLang("layer.content"));if(tinymce.isIE){e.setHTML(b,b.innerHTML)}},_toggleAbsolute:function(){var b=this.editor,c=this._getParentLayer(b.selection.getNode());if(!c){c=b.dom.getParent(b.selection.getNode(),"DIV,P,IMG")}if(c){if(c.style.position.toLowerCase()=="absolute"){b.dom.setStyles(c,{position:"",left:"",top:"",width:"",height:""});b.dom.removeClass(c,"mceItemVisualAid");b.dom.removeClass(c,"mceItemLayer")}else{if(c.style.left==""){c.style.left=20+"px"}if(c.style.top==""){c.style.top=20+"px"}if(c.style.width==""){c.style.width=c.width?(c.width+"px"):"100px"}if(c.style.height==""){c.style.height=c.height?(c.height+"px"):"100px"}c.style.position="absolute";b.dom.setAttrib(c,"data-mce-style","");b.addVisual(b.getBody())}b.execCommand("mceRepaint");b.nodeChanged()}}});tinymce.PluginManager.add("layer",tinymce.plugins.Layer)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js
deleted file mode 100644
index daed2806c..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/layer/editor_plugin_src.js
+++ /dev/null
@@ -1,262 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- function findParentLayer(node) {
- do {
- if (node.className && node.className.indexOf('mceItemLayer') != -1) {
- return node;
- }
- } while (node = node.parentNode);
- };
-
- tinymce.create('tinymce.plugins.Layer', {
- init : function(ed, url) {
- var t = this;
-
- t.editor = ed;
-
- // Register commands
- ed.addCommand('mceInsertLayer', t._insertLayer, t);
-
- ed.addCommand('mceMoveForward', function() {
- t._move(1);
- });
-
- ed.addCommand('mceMoveBackward', function() {
- t._move(-1);
- });
-
- ed.addCommand('mceMakeAbsolute', function() {
- t._toggleAbsolute();
- });
-
- // Register buttons
- ed.addButton('moveforward', {title : 'layer.forward_desc', cmd : 'mceMoveForward'});
- ed.addButton('movebackward', {title : 'layer.backward_desc', cmd : 'mceMoveBackward'});
- ed.addButton('absolute', {title : 'layer.absolute_desc', cmd : 'mceMakeAbsolute'});
- ed.addButton('insertlayer', {title : 'layer.insertlayer_desc', cmd : 'mceInsertLayer'});
-
- ed.onInit.add(function() {
- var dom = ed.dom;
-
- if (tinymce.isIE)
- ed.getDoc().execCommand('2D-Position', false, true);
- });
-
- // Remove serialized styles when selecting a layer since it might be changed by a drag operation
- ed.onMouseUp.add(function(ed, e) {
- var layer = findParentLayer(e.target);
-
- if (layer) {
- ed.dom.setAttrib(layer, 'data-mce-style', '');
- }
- });
-
- // Fixes edit focus issues with layers on Gecko
- // This will enable designMode while inside a layer and disable it when outside
- ed.onMouseDown.add(function(ed, e) {
- var node = e.target, doc = ed.getDoc(), parent;
-
- if (tinymce.isGecko) {
- if (findParentLayer(node)) {
- if (doc.designMode !== 'on') {
- doc.designMode = 'on';
-
- // Repaint caret
- node = doc.body;
- parent = node.parentNode;
- parent.removeChild(node);
- parent.appendChild(node);
- }
- } else if (doc.designMode == 'on') {
- doc.designMode = 'off';
- }
- }
- });
-
- ed.onNodeChange.add(t._nodeChange, t);
- ed.onVisualAid.add(t._visualAid, t);
- },
-
- getInfo : function() {
- return {
- longname : 'Layer',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/layer',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- },
-
- // Private methods
-
- _nodeChange : function(ed, cm, n) {
- var le, p;
-
- le = this._getParentLayer(n);
- p = ed.dom.getParent(n, 'DIV,P,IMG');
-
- if (!p) {
- cm.setDisabled('absolute', 1);
- cm.setDisabled('moveforward', 1);
- cm.setDisabled('movebackward', 1);
- } else {
- cm.setDisabled('absolute', 0);
- cm.setDisabled('moveforward', !le);
- cm.setDisabled('movebackward', !le);
- cm.setActive('absolute', le && le.style.position.toLowerCase() == "absolute");
- }
- },
-
- // Private methods
-
- _visualAid : function(ed, e, s) {
- var dom = ed.dom;
-
- tinymce.each(dom.select('div,p', e), function(e) {
- if (/^(absolute|relative|fixed)$/i.test(e.style.position)) {
- if (s)
- dom.addClass(e, 'mceItemVisualAid');
- else
- dom.removeClass(e, 'mceItemVisualAid');
-
- dom.addClass(e, 'mceItemLayer');
- }
- });
- },
-
- _move : function(d) {
- var ed = this.editor, i, z = [], le = this._getParentLayer(ed.selection.getNode()), ci = -1, fi = -1, nl;
-
- nl = [];
- tinymce.walk(ed.getBody(), function(n) {
- if (n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position))
- nl.push(n);
- }, 'childNodes');
-
- // Find z-indexes
- for (i=0; i -1) {
- nl[ci].style.zIndex = z[fi];
- nl[fi].style.zIndex = z[ci];
- } else {
- if (z[ci] > 0)
- nl[ci].style.zIndex = z[ci] - 1;
- }
- } else {
- // Move forward
-
- // Try find a higher one
- for (i=0; i z[ci]) {
- fi = i;
- break;
- }
- }
-
- if (fi > -1) {
- nl[ci].style.zIndex = z[fi];
- nl[fi].style.zIndex = z[ci];
- } else
- nl[ci].style.zIndex = z[ci] + 1;
- }
-
- ed.execCommand('mceRepaint');
- },
-
- _getParentLayer : function(n) {
- return this.editor.dom.getParent(n, function(n) {
- return n.nodeType == 1 && /^(absolute|relative|static)$/i.test(n.style.position);
- });
- },
-
- _insertLayer : function() {
- var ed = this.editor, dom = ed.dom, p = dom.getPos(dom.getParent(ed.selection.getNode(), '*')), body = ed.getBody();
-
- ed.dom.add(body, 'div', {
- style : {
- position : 'absolute',
- left : p.x,
- top : (p.y > 20 ? p.y : 20),
- width : 100,
- height : 100
- },
- 'class' : 'mceItemVisualAid mceItemLayer'
- }, ed.selection.getContent() || ed.getLang('layer.content'));
-
- // Workaround for IE where it messes up the JS engine if you insert a layer on IE 6,7
- if (tinymce.isIE)
- dom.setHTML(body, body.innerHTML);
- },
-
- _toggleAbsolute : function() {
- var ed = this.editor, le = this._getParentLayer(ed.selection.getNode());
-
- if (!le)
- le = ed.dom.getParent(ed.selection.getNode(), 'DIV,P,IMG');
-
- if (le) {
- if (le.style.position.toLowerCase() == "absolute") {
- ed.dom.setStyles(le, {
- position : '',
- left : '',
- top : '',
- width : '',
- height : ''
- });
-
- ed.dom.removeClass(le, 'mceItemVisualAid');
- ed.dom.removeClass(le, 'mceItemLayer');
- } else {
- if (le.style.left == "")
- le.style.left = 20 + 'px';
-
- if (le.style.top == "")
- le.style.top = 20 + 'px';
-
- if (le.style.width == "")
- le.style.width = le.width ? (le.width + 'px') : '100px';
-
- if (le.style.height == "")
- le.style.height = le.height ? (le.height + 'px') : '100px';
-
- le.style.position = "absolute";
-
- ed.dom.setAttrib(le, 'data-mce-style', '');
- ed.addVisual(ed.getBody());
- }
-
- ed.execCommand('mceRepaint');
- ed.nodeChanged();
- }
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('layer', tinymce.plugins.Layer);
-})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js
deleted file mode 100644
index b3a4ce31c..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(a){a.onAddEditor.addToTop(function(c,b){b.settings.inline_styles=false});a.create("tinymce.plugins.LegacyOutput",{init:function(b){b.onInit.add(function(){var c="p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img",e=a.explode(b.settings.font_size_style_values),d=b.schema;b.formatter.register({alignleft:{selector:c,attributes:{align:"left"}},aligncenter:{selector:c,attributes:{align:"center"}},alignright:{selector:c,attributes:{align:"right"}},alignfull:{selector:c,attributes:{align:"justify"}},bold:[{inline:"b",remove:"all"},{inline:"strong",remove:"all"},{inline:"span",styles:{fontWeight:"bold"}}],italic:[{inline:"i",remove:"all"},{inline:"em",remove:"all"},{inline:"span",styles:{fontStyle:"italic"}}],underline:[{inline:"u",remove:"all"},{inline:"span",styles:{textDecoration:"underline"},exact:true}],strikethrough:[{inline:"strike",remove:"all"},{inline:"span",styles:{textDecoration:"line-through"},exact:true}],fontname:{inline:"font",attributes:{face:"%value"}},fontsize:{inline:"font",attributes:{size:function(f){return a.inArray(e,f.value)+1}}},forecolor:{inline:"font",styles:{color:"%value"}},hilitecolor:{inline:"font",styles:{backgroundColor:"%value"}}});a.each("b,i,u,strike".split(","),function(f){d.addValidElements(f+"[*]")});if(!d.getElementRule("font")){d.addValidElements("font[face|size|color|style]")}a.each(c.split(","),function(f){var h=d.getElementRule(f),g;if(h){if(!h.attributes.align){h.attributes.align={};h.attributesOrder.push("align")}}});b.onNodeChange.add(function(g,k){var j,f,h,i;f=g.dom.getParent(g.selection.getNode(),"font");if(f){h=f.face;i=f.size}if(j=k.get("fontselect")){j.select(function(l){return l==h})}if(j=k.get("fontsizeselect")){j.select(function(m){var l=a.inArray(e,m.fontSize);return l+1==i})}})})},getInfo:function(){return{longname:"LegacyOutput",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/legacyoutput",version:a.majorVersion+"."+a.minorVersion}}});a.PluginManager.add("legacyoutput",a.plugins.LegacyOutput)})(tinymce);
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js
deleted file mode 100644
index e627ec76e..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/legacyoutput/editor_plugin_src.js
+++ /dev/null
@@ -1,139 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- *
- * This plugin will force TinyMCE to produce deprecated legacy output such as font elements, u elements, align
- * attributes and so forth. There are a few cases where these old items might be needed for example in email applications or with Flash
- *
- * However you should NOT use this plugin if you are building some system that produces web contents such as a CMS. All these elements are
- * not apart of the newer specifications for HTML and XHTML.
- */
-
-(function(tinymce) {
- // Override inline_styles setting to force TinyMCE to produce deprecated contents
- tinymce.onAddEditor.addToTop(function(tinymce, editor) {
- editor.settings.inline_styles = false;
- });
-
- // Create the legacy ouput plugin
- tinymce.create('tinymce.plugins.LegacyOutput', {
- init : function(editor) {
- editor.onInit.add(function() {
- var alignElements = 'p,h1,h2,h3,h4,h5,h6,td,th,div,ul,ol,li,table,img',
- fontSizes = tinymce.explode(editor.settings.font_size_style_values),
- schema = editor.schema;
-
- // Override some internal formats to produce legacy elements and attributes
- editor.formatter.register({
- // Change alignment formats to use the deprecated align attribute
- alignleft : {selector : alignElements, attributes : {align : 'left'}},
- aligncenter : {selector : alignElements, attributes : {align : 'center'}},
- alignright : {selector : alignElements, attributes : {align : 'right'}},
- alignfull : {selector : alignElements, attributes : {align : 'justify'}},
-
- // Change the basic formatting elements to use deprecated element types
- bold : [
- {inline : 'b', remove : 'all'},
- {inline : 'strong', remove : 'all'},
- {inline : 'span', styles : {fontWeight : 'bold'}}
- ],
- italic : [
- {inline : 'i', remove : 'all'},
- {inline : 'em', remove : 'all'},
- {inline : 'span', styles : {fontStyle : 'italic'}}
- ],
- underline : [
- {inline : 'u', remove : 'all'},
- {inline : 'span', styles : {textDecoration : 'underline'}, exact : true}
- ],
- strikethrough : [
- {inline : 'strike', remove : 'all'},
- {inline : 'span', styles : {textDecoration: 'line-through'}, exact : true}
- ],
-
- // Change font size and font family to use the deprecated font element
- fontname : {inline : 'font', attributes : {face : '%value'}},
- fontsize : {
- inline : 'font',
- attributes : {
- size : function(vars) {
- return tinymce.inArray(fontSizes, vars.value) + 1;
- }
- }
- },
-
- // Setup font elements for colors as well
- forecolor : {inline : 'font', styles : {color : '%value'}},
- hilitecolor : {inline : 'font', styles : {backgroundColor : '%value'}}
- });
-
- // Check that deprecated elements are allowed if not add them
- tinymce.each('b,i,u,strike'.split(','), function(name) {
- schema.addValidElements(name + '[*]');
- });
-
- // Add font element if it's missing
- if (!schema.getElementRule("font"))
- schema.addValidElements("font[face|size|color|style]");
-
- // Add the missing and depreacted align attribute for the serialization engine
- tinymce.each(alignElements.split(','), function(name) {
- var rule = schema.getElementRule(name), found;
-
- if (rule) {
- if (!rule.attributes.align) {
- rule.attributes.align = {};
- rule.attributesOrder.push('align');
- }
- }
- });
-
- // Listen for the onNodeChange event so that we can do special logic for the font size and font name drop boxes
- editor.onNodeChange.add(function(editor, control_manager) {
- var control, fontElm, fontName, fontSize;
-
- // Find font element get it's name and size
- fontElm = editor.dom.getParent(editor.selection.getNode(), 'font');
- if (fontElm) {
- fontName = fontElm.face;
- fontSize = fontElm.size;
- }
-
- // Select/unselect the font name in droplist
- if (control = control_manager.get('fontselect')) {
- control.select(function(value) {
- return value == fontName;
- });
- }
-
- // Select/unselect the font size in droplist
- if (control = control_manager.get('fontsizeselect')) {
- control.select(function(value) {
- var index = tinymce.inArray(fontSizes, value.fontSize);
-
- return index + 1 == fontSize;
- });
- }
- });
- });
- },
-
- getInfo : function() {
- return {
- longname : 'LegacyOutput',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/legacyoutput',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('legacyoutput', tinymce.plugins.LegacyOutput);
-})(tinymce);
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js
deleted file mode 100644
index f07e37250..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var e=tinymce.each,r=tinymce.dom.Event,g;function p(t,s){while(t&&(t.nodeType===8||(t.nodeType===3&&/^[ \t\n\r]*$/.test(t.nodeValue)))){t=s(t)}return t}function b(s){return p(s,function(t){return t.previousSibling})}function i(s){return p(s,function(t){return t.nextSibling})}function d(s,u,t){return s.dom.getParent(u,function(v){return tinymce.inArray(t,v)!==-1})}function n(s){return s&&(s.tagName==="OL"||s.tagName==="UL")}function c(u,v){var t,w,s;t=b(u.lastChild);while(n(t)){w=t;t=b(w.previousSibling)}if(w){s=v.create("li",{style:"list-style-type: none;"});v.split(u,w);v.insertAfter(s,w);s.appendChild(w);s.appendChild(w);u=s.previousSibling}return u}function m(t,s,u){t=a(t,s,u);return o(t,s,u)}function a(u,s,v){var t=b(u.previousSibling);if(t){return h(t,u,s?t:false,v)}else{return u}}function o(u,t,v){var s=i(u.nextSibling);if(s){return h(u,s,t?s:false,v)}else{return u}}function h(u,s,t,v){if(l(u,s,!!t,v)){return f(u,s,t)}else{if(u&&u.tagName==="LI"&&n(s)){u.appendChild(s)}}return s}function l(u,t,s,v){if(!u||!t){return false}else{if(u.tagName==="LI"&&t.tagName==="LI"){return t.style.listStyleType==="none"||j(t)}else{if(n(u)){return(u.tagName===t.tagName&&(s||u.style.listStyleType===t.style.listStyleType))||q(t)}else{return v&&u.tagName==="P"&&t.tagName==="P"}}}}function q(t){var s=i(t.firstChild),u=b(t.lastChild);return s&&u&&n(t)&&s===u&&(n(s)||s.style.listStyleType==="none"||j(s))}function j(u){var t=i(u.firstChild),s=b(u.lastChild);return t&&s&&t===s&&n(t)}function f(w,v,s){var u=b(w.lastChild),t=i(v.firstChild);if(w.tagName==="P"){w.appendChild(w.ownerDocument.createElement("br"))}while(v.firstChild){w.appendChild(v.firstChild)}if(s){w.style.listStyleType=s.style.listStyleType}v.parentNode.removeChild(v);h(u,t,false);return w}function k(t,u){var s;if(!u.is(t,"li,ol,ul")){s=u.getParent(t,"li");if(s){t=s}}return t}tinymce.create("tinymce.plugins.Lists",{init:function(y){var v="TABBING";var s="EMPTY";var J="ESCAPE";var z="PARAGRAPH";var N="UNKNOWN";var x=N;function E(U){return U.keyCode===tinymce.VK.TAB&&!(U.altKey||U.ctrlKey)&&(y.queryCommandState("InsertUnorderedList")||y.queryCommandState("InsertOrderedList"))}function w(){var U=B();var W=U.parentNode.parentNode;var V=U.parentNode.lastChild===U;return V&&!t(W)&&P(U)}function t(U){if(n(U)){return U.parentNode&&U.parentNode.tagName==="LI"}else{return U.tagName==="LI"}}function F(){return y.selection.isCollapsed()&&P(B())}function B(){var U=y.selection.getStart();return((U.tagName=="BR"||U.tagName=="")&&U.parentNode.tagName=="LI")?U.parentNode:U}function P(U){var V=U.childNodes.length;if(U.tagName==="LI"){return V==0?true:V==1&&(U.firstChild.tagName==""||U.firstChild.tagName=="BR"||H(U))}return false}function H(U){var V=tinymce.grep(U.parentNode.childNodes,function(Y){return Y.tagName=="LI"});var W=U==V[V.length-1];var X=U.firstChild;return tinymce.isIE9&&W&&(X.nodeValue==String.fromCharCode(160)||X.nodeValue==String.fromCharCode(32))}function T(U){return U.keyCode===tinymce.VK.ENTER}function A(U){return T(U)&&!U.shiftKey}function M(U){if(E(U)){return v}else{if(A(U)&&w()){return N}else{if(A(U)&&F()){return s}else{return N}}}}function D(U,V){if(x==v||x==s||tinymce.isGecko&&x==J){r.cancel(V)}}function C(){var U=y.selection.getRng(true);var V=U.startContainer;if(V.nodeType==3){var W=V.nodeValue;if(tinymce.isIE9&&W.length>1&&W.charCodeAt(W.length-1)==32){return(U.endOffset==W.length-1)}else{return(U.endOffset==W.length)}}else{if(V.nodeType==1){return U.endOffset==V.childNodes.length}}return false}function I(){var W=y.selection.getNode();var V="h1,h2,h3,h4,h5,h6,p,div";var U=y.dom.is(W,V)&&W.parentNode.tagName==="LI"&&W.parentNode.lastChild===W;return y.selection.isCollapsed()&&U&&C()}function K(W,Y){if(A(Y)&&I()){var X=W.selection.getNode();var V=W.dom.create("li");var U=W.dom.getParent(X,"li");W.dom.insertAfter(V,U);if(tinymce.isIE6||tinymce.isIE7||tinyMCE.isIE8){W.selection.setCursorLocation(V,1)}else{W.selection.setCursorLocation(V,0)}Y.preventDefault()}}function u(X,Z){var ac;if(!tinymce.isGecko){return}var V=X.selection.getStart();if(Z.keyCode!=tinymce.VK.BACKSPACE||V.tagName!=="IMG"){return}function W(ag){var ah=ag.firstChild;var af=null;do{if(!ah){break}if(ah.tagName==="LI"){af=ah}}while(ah=ah.nextSibling);return af}function ae(ag,af){while(ag.childNodes.length>0){af.appendChild(ag.childNodes[0])}}ac=V.parentNode.previousSibling;if(!ac){return}var aa;if(ac.tagName==="UL"||ac.tagName==="OL"){aa=ac}else{if(ac.previousSibling&&(ac.previousSibling.tagName==="UL"||ac.previousSibling.tagName==="OL")){aa=ac.previousSibling}else{return}}var ad=W(aa);var U=X.dom.createRng();U.setStart(ad,1);U.setEnd(ad,1);X.selection.setRng(U);X.selection.collapse(true);var Y=X.selection.getBookmark();var ab=V.parentNode.cloneNode(true);if(ab.tagName==="P"||ab.tagName==="DIV"){ae(ab,ad)}else{ad.appendChild(ab)}V.parentNode.parentNode.removeChild(V.parentNode);X.selection.moveToBookmark(Y)}function G(U){var V=y.dom.getParent(U,"ol,ul");if(V!=null){var W=V.lastChild;y.selection.setCursorLocation(W,0)}}this.ed=y;y.addCommand("Indent",this.indent,this);y.addCommand("Outdent",this.outdent,this);y.addCommand("InsertUnorderedList",function(){this.applyList("UL","OL")},this);y.addCommand("InsertOrderedList",function(){this.applyList("OL","UL")},this);y.onInit.add(function(){y.editorCommands.addCommands({outdent:function(){var V=y.selection,W=y.dom;function U(X){X=W.getParent(X,W.isBlock);return X&&(parseInt(y.dom.getStyle(X,"margin-left")||0,10)+parseInt(y.dom.getStyle(X,"padding-left")||0,10))>0}return U(V.getStart())||U(V.getEnd())||y.queryCommandState("InsertOrderedList")||y.queryCommandState("InsertUnorderedList")}},"state")});y.onKeyUp.add(function(V,W){if(x==v){V.execCommand(W.shiftKey?"Outdent":"Indent",true,null);x=N;return r.cancel(W)}else{if(x==s){var U=B();var Y=V.settings.list_outdent_on_enter===true||W.shiftKey;V.execCommand(Y?"Outdent":"Indent",true,null);if(tinymce.isIE){G(U)}return r.cancel(W)}else{if(x==J){if(tinymce.isIE6||tinymce.isIE7||tinymce.isIE8){var X=V.getDoc().createTextNode("\uFEFF");V.selection.getNode().appendChild(X)}else{if(tinymce.isIE9||tinymce.isGecko){V.execCommand("Outdent");return r.cancel(W)}}}}}});function L(V,U){var W=y.getDoc().createTextNode("\uFEFF");V.insertBefore(W,U);y.selection.setCursorLocation(W,0);y.execCommand("mceRepaint")}function R(V,X){if(T(X)){var U=B();if(U){var W=U.parentNode;var Y=W&&W.parentNode;if(Y&&Y.nodeName=="LI"&&Y.firstChild==W&&U==W.firstChild){L(Y,W)}}}}function S(V,X){if(T(X)){var U=B();if(V.dom.select("ul li",U).length===1){var W=U.firstChild;L(U,W)}}}function Q(V,Z){function W(ad,aa){var ac=[];var ae=new tinymce.dom.TreeWalker(aa,ad);for(var ab=ae.current();ab;ab=ae.next()){if(V.dom.is(ab,"ol,ul,li")){ac.push(ab)}}return ac}if(Z.keyCode==tinymce.VK.BACKSPACE){var U=B();if(U){var Y=V.dom.getParent(U,"ol,ul");if(Y&&Y.firstChild===U){var X=W(Y,U);V.execCommand("Outdent",false,X);V.undoManager.add();return r.cancel(Z)}}}}function O(V,X){var U=B();if(X.keyCode===tinymce.VK.BACKSPACE&&V.dom.is(U,"li")&&U.parentNode.firstChild!==U){if(V.dom.select("ul,ol",U).length===1){var Z=U.previousSibling;V.dom.remove(V.dom.select("br",U));V.dom.remove(U,true);var W=tinymce.grep(Z.childNodes,function(aa){return aa.nodeType===3});if(W.length===1){var Y=W[0];V.selection.setCursorLocation(Y,Y.length)}V.undoManager.add();return r.cancel(X)}}}y.onKeyDown.add(function(U,V){x=M(V)});y.onKeyDown.add(D);y.onKeyDown.add(u);y.onKeyDown.add(K);if(tinymce.isGecko){y.onKeyUp.add(R)}if(tinymce.isIE8){y.onKeyUp.add(S)}if(tinymce.isGecko||tinymce.isWebKit){y.onKeyDown.add(Q)}if(tinymce.isWebKit){y.onKeyDown.add(O)}},applyList:function(y,v){var C=this,z=C.ed,I=z.dom,s=[],H=false,u=false,w=false,B,G=z.selection.getSelectedBlocks();function E(t){if(t&&t.tagName==="BR"){I.remove(t)}}function F(M){var N=I.create(y),t;function L(O){if(O.style.marginLeft||O.style.paddingLeft){C.adjustPaddingFunction(false)(O)}}if(M.tagName==="LI"){}else{if(M.tagName==="P"||M.tagName==="DIV"||M.tagName==="BODY"){K(M,function(P,O){J(P,O,M.tagName==="BODY"?null:P.parentNode);t=P.parentNode;L(t);E(O)});if(t){if(t.tagName==="LI"&&(M.tagName==="P"||G.length>1)){I.split(t.parentNode.parentNode,t.parentNode)}m(t.parentNode,true)}return}else{t=I.create("li");I.insertAfter(t,M);t.appendChild(M);L(M);M=t}}I.insertAfter(N,M);N.appendChild(M);m(N,true);s.push(M)}function J(P,L,N){var t,O=P,M;while(!I.isBlock(P.parentNode)&&P.parentNode!==I.getRoot()){P=I.split(P.parentNode,P.previousSibling);P=P.nextSibling;O=P}if(N){t=N.cloneNode(true);P.parentNode.insertBefore(t,P);while(t.firstChild){I.remove(t.firstChild)}t=I.rename(t,"li")}else{t=I.create("li");P.parentNode.insertBefore(t,P)}while(O&&O!=L){M=O.nextSibling;t.appendChild(O);O=M}if(t.childNodes.length===0){t.innerHTML='
'}F(t)}function K(Q,T){var N,R,O=3,L=1,t="br,ul,ol,p,div,h1,h2,h3,h4,h5,h6,table,blockquote,address,pre,form,center,dl";function P(X,U){var V=I.createRng(),W;g.keep=true;z.selection.moveToBookmark(g);g.keep=false;W=z.selection.getRng(true);if(!U){U=X.parentNode.lastChild}V.setStartBefore(X);V.setEndAfter(U);return !(V.compareBoundaryPoints(O,W)>0||V.compareBoundaryPoints(L,W)<=0)}function S(U){if(U.nextSibling){return U.nextSibling}if(!I.isBlock(U.parentNode)&&U.parentNode!==I.getRoot()){return S(U.parentNode)}}N=Q.firstChild;var M=false;e(I.select(t,Q),function(U){if(U.hasAttribute&&U.hasAttribute("_mce_bogus")){return true}if(P(N,U)){I.addClass(U,"_mce_tagged_br");N=S(U)}});M=(N&&P(N,undefined));N=Q.firstChild;e(I.select(t,Q),function(V){var U=S(V);if(V.hasAttribute&&V.hasAttribute("_mce_bogus")){return true}if(I.hasClass(V,"_mce_tagged_br")){T(N,V,R);R=null}else{R=V}N=U});if(M){T(N,undefined,R)}}function D(t){K(t,function(M,L,N){J(M,L);E(L);E(N)})}function A(t){if(tinymce.inArray(s,t)!==-1){return}if(t.parentNode.tagName===v){I.split(t.parentNode,t);F(t);o(t.parentNode,false)}s.push(t)}function x(M){var O,N,L,t;if(tinymce.inArray(s,M)!==-1){return}M=c(M,I);while(I.is(M.parentNode,"ol,ul,li")){I.split(M.parentNode,M)}s.push(M);M=I.rename(M,"p");L=m(M,false,z.settings.force_br_newlines);if(L===M){O=M.firstChild;while(O){if(I.isBlock(O)){O=I.split(O.parentNode,O);t=true;N=O.nextSibling&&O.nextSibling.firstChild}else{N=O.nextSibling;if(t&&O.tagName==="BR"){I.remove(O)}t=false}O=N}}}e(G,function(t){t=k(t,I);if(t.tagName===v||(t.tagName==="LI"&&t.parentNode.tagName===v)){u=true}else{if(t.tagName===y||(t.tagName==="LI"&&t.parentNode.tagName===y)){H=true}else{w=true}}});if(w&&!H||u||G.length===0){B={LI:A,H1:F,H2:F,H3:F,H4:F,H5:F,H6:F,P:F,BODY:F,DIV:G.length>1?F:D,defaultAction:D,elements:this.selectedBlocks()}}else{B={defaultAction:x,elements:this.selectedBlocks()}}this.process(B)},indent:function(){var u=this.ed,w=u.dom,x=[];function s(z){var y=w.create("li",{style:"list-style-type: none;"});w.insertAfter(y,z);return y}function t(B){var y=s(B),D=w.getParent(B,"ol,ul"),C=D.tagName,E=w.getStyle(D,"list-style-type"),A={},z;if(E!==""){A.style="list-style-type: "+E+";"}z=w.create(C,A);y.appendChild(z);return z}function v(z){if(!d(u,z,x)){z=c(z,w);var y=t(z);y.appendChild(z);m(y.parentNode,false);m(y,false);x.push(z)}}this.process({LI:v,defaultAction:this.adjustPaddingFunction(true),elements:this.selectedBlocks()})},outdent:function(y,x){var w=this,u=w.ed,z=u.dom,s=[];function A(t){var C,B,D;if(!d(u,t,s)){if(z.getStyle(t,"margin-left")!==""||z.getStyle(t,"padding-left")!==""){return w.adjustPaddingFunction(false)(t)}D=z.getStyle(t,"text-align",true);if(D==="center"||D==="right"){z.setStyle(t,"text-align","left");return}t=c(t,z);C=t.parentNode;B=t.parentNode.parentNode;if(B.tagName==="P"){z.split(B,t.parentNode)}else{z.split(C,t);if(B.tagName==="LI"){z.split(B,t)}else{if(!z.is(B,"ol,ul")){z.rename(t,"p")}}}s.push(t)}}var v=x&&tinymce.is(x,"array")?x:this.selectedBlocks();this.process({LI:A,defaultAction:this.adjustPaddingFunction(false),elements:v});e(s,m)},process:function(y){var F=this,w=F.ed.selection,z=F.ed.dom,E,u;function B(t){var s=tinymce.grep(t.childNodes,function(H){return !(H.nodeName==="BR"||H.nodeName==="SPAN"&&z.getAttrib(H,"data-mce-type")=="bookmark"||H.nodeType==3&&(H.nodeValue==String.fromCharCode(160)||H.nodeValue==""))});return s.length===0}function x(s){z.removeClass(s,"_mce_act_on");if(!s||s.nodeType!==1||E.length>1&&B(s)){return}s=k(s,z);var t=y[s.tagName];if(!t){t=y.defaultAction}t(s)}function v(s){F.splitSafeEach(s.childNodes,x)}function C(s,t){return t>=0&&s.hasChildNodes()&&t0){t=s.shift();w.removeClass(t,"_mce_act_on");u(t);s=w.select("._mce_act_on")}},adjustPaddingFunction:function(u){var s,v,t=this.ed;s=t.settings.indentation;v=/[a-z%]+/i.exec(s);s=parseInt(s,10);return function(w){var y,x;y=parseInt(t.dom.getStyle(w,"margin-left")||0,10)+parseInt(t.dom.getStyle(w,"padding-left")||0,10);if(u){x=y+s}else{x=y-s}t.dom.setStyle(w,"padding-left","");t.dom.setStyle(w,"margin-left",x>0?x+v:"")}},selectedBlocks:function(){var s=this.ed;var t=s.selection.getSelectedBlocks();return t.length==0?[s.dom.getRoot()]:t},getInfo:function(){return{longname:"Lists",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/lists",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("lists",tinymce.plugins.Lists)}());
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js
deleted file mode 100644
index e711d5301..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/lists/editor_plugin_src.js
+++ /dev/null
@@ -1,951 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2011, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- var each = tinymce.each, Event = tinymce.dom.Event, bookmark;
-
- // Skips text nodes that only contain whitespace since they aren't semantically important.
- function skipWhitespaceNodes(e, next) {
- while (e && (e.nodeType === 8 || (e.nodeType === 3 && /^[ \t\n\r]*$/.test(e.nodeValue)))) {
- e = next(e);
- }
- return e;
- }
-
- function skipWhitespaceNodesBackwards(e) {
- return skipWhitespaceNodes(e, function(e) {
- return e.previousSibling;
- });
- }
-
- function skipWhitespaceNodesForwards(e) {
- return skipWhitespaceNodes(e, function(e) {
- return e.nextSibling;
- });
- }
-
- function hasParentInList(ed, e, list) {
- return ed.dom.getParent(e, function(p) {
- return tinymce.inArray(list, p) !== -1;
- });
- }
-
- function isList(e) {
- return e && (e.tagName === 'OL' || e.tagName === 'UL');
- }
-
- function splitNestedLists(element, dom) {
- var tmp, nested, wrapItem;
- tmp = skipWhitespaceNodesBackwards(element.lastChild);
- while (isList(tmp)) {
- nested = tmp;
- tmp = skipWhitespaceNodesBackwards(nested.previousSibling);
- }
- if (nested) {
- wrapItem = dom.create('li', { style: 'list-style-type: none;'});
- dom.split(element, nested);
- dom.insertAfter(wrapItem, nested);
- wrapItem.appendChild(nested);
- wrapItem.appendChild(nested);
- element = wrapItem.previousSibling;
- }
- return element;
- }
-
- function attemptMergeWithAdjacent(e, allowDifferentListStyles, mergeParagraphs) {
- e = attemptMergeWithPrevious(e, allowDifferentListStyles, mergeParagraphs);
- return attemptMergeWithNext(e, allowDifferentListStyles, mergeParagraphs);
- }
-
- function attemptMergeWithPrevious(e, allowDifferentListStyles, mergeParagraphs) {
- var prev = skipWhitespaceNodesBackwards(e.previousSibling);
- if (prev) {
- return attemptMerge(prev, e, allowDifferentListStyles ? prev : false, mergeParagraphs);
- } else {
- return e;
- }
- }
-
- function attemptMergeWithNext(e, allowDifferentListStyles, mergeParagraphs) {
- var next = skipWhitespaceNodesForwards(e.nextSibling);
- if (next) {
- return attemptMerge(e, next, allowDifferentListStyles ? next : false, mergeParagraphs);
- } else {
- return e;
- }
- }
-
- function attemptMerge(e1, e2, differentStylesMasterElement, mergeParagraphs) {
- if (canMerge(e1, e2, !!differentStylesMasterElement, mergeParagraphs)) {
- return merge(e1, e2, differentStylesMasterElement);
- } else if (e1 && e1.tagName === 'LI' && isList(e2)) {
- // Fix invalidly nested lists.
- e1.appendChild(e2);
- }
- return e2;
- }
-
- function canMerge(e1, e2, allowDifferentListStyles, mergeParagraphs) {
- if (!e1 || !e2) {
- return false;
- } else if (e1.tagName === 'LI' && e2.tagName === 'LI') {
- return e2.style.listStyleType === 'none' || containsOnlyAList(e2);
- } else if (isList(e1)) {
- return (e1.tagName === e2.tagName && (allowDifferentListStyles || e1.style.listStyleType === e2.style.listStyleType)) || isListForIndent(e2);
- } else return mergeParagraphs && e1.tagName === 'P' && e2.tagName === 'P';
- }
-
- function isListForIndent(e) {
- var firstLI = skipWhitespaceNodesForwards(e.firstChild), lastLI = skipWhitespaceNodesBackwards(e.lastChild);
- return firstLI && lastLI && isList(e) && firstLI === lastLI && (isList(firstLI) || firstLI.style.listStyleType === 'none' || containsOnlyAList(firstLI));
- }
-
- function containsOnlyAList(e) {
- var firstChild = skipWhitespaceNodesForwards(e.firstChild), lastChild = skipWhitespaceNodesBackwards(e.lastChild);
- return firstChild && lastChild && firstChild === lastChild && isList(firstChild);
- }
-
- function merge(e1, e2, masterElement) {
- var lastOriginal = skipWhitespaceNodesBackwards(e1.lastChild), firstNew = skipWhitespaceNodesForwards(e2.firstChild);
- if (e1.tagName === 'P') {
- e1.appendChild(e1.ownerDocument.createElement('br'));
- }
- while (e2.firstChild) {
- e1.appendChild(e2.firstChild);
- }
- if (masterElement) {
- e1.style.listStyleType = masterElement.style.listStyleType;
- }
- e2.parentNode.removeChild(e2);
- attemptMerge(lastOriginal, firstNew, false);
- return e1;
- }
-
- function findItemToOperateOn(e, dom) {
- var item;
- if (!dom.is(e, 'li,ol,ul')) {
- item = dom.getParent(e, 'li');
- if (item) {
- e = item;
- }
- }
- return e;
- }
-
- tinymce.create('tinymce.plugins.Lists', {
- init: function(ed) {
- var LIST_TABBING = 'TABBING';
- var LIST_EMPTY_ITEM = 'EMPTY';
- var LIST_ESCAPE = 'ESCAPE';
- var LIST_PARAGRAPH = 'PARAGRAPH';
- var LIST_UNKNOWN = 'UNKNOWN';
- var state = LIST_UNKNOWN;
-
- function isTabInList(e) {
- // Don't indent on Ctrl+Tab or Alt+Tab
- return e.keyCode === tinymce.VK.TAB && !(e.altKey || e.ctrlKey) &&
- (ed.queryCommandState('InsertUnorderedList') || ed.queryCommandState('InsertOrderedList'));
- }
-
- function isOnLastListItem() {
- var li = getLi();
- var grandParent = li.parentNode.parentNode;
- var isLastItem = li.parentNode.lastChild === li;
- return isLastItem && !isNestedList(grandParent) && isEmptyListItem(li);
- }
-
- function isNestedList(grandParent) {
- if (isList(grandParent)) {
- return grandParent.parentNode && grandParent.parentNode.tagName === 'LI';
- } else {
- return grandParent.tagName === 'LI';
- }
- }
-
- function isInEmptyListItem() {
- return ed.selection.isCollapsed() && isEmptyListItem(getLi());
- }
-
- function getLi() {
- var n = ed.selection.getStart();
- // Get start will return BR if the LI only contains a BR or an empty element as we use these to fix caret position
- return ((n.tagName == 'BR' || n.tagName == '') && n.parentNode.tagName == 'LI') ? n.parentNode : n;
- }
-
- function isEmptyListItem(li) {
- var numChildren = li.childNodes.length;
- if (li.tagName === 'LI') {
- return numChildren == 0 ? true : numChildren == 1 && (li.firstChild.tagName == '' || li.firstChild.tagName == 'BR' || isEmptyIE9Li(li));
- }
- return false;
- }
-
- function isEmptyIE9Li(li) {
- // only consider this to be last item if there is no list item content or that content is nbsp or space since IE9 creates these
- var lis = tinymce.grep(li.parentNode.childNodes, function(n) {return n.tagName == 'LI'});
- var isLastLi = li == lis[lis.length - 1];
- var child = li.firstChild;
- return tinymce.isIE9 && isLastLi && (child.nodeValue == String.fromCharCode(160) || child.nodeValue == String.fromCharCode(32));
- }
-
- function isEnter(e) {
- return e.keyCode === tinymce.VK.ENTER;
- }
-
- function isEnterWithoutShift(e) {
- return isEnter(e) && !e.shiftKey;
- }
-
- function getListKeyState(e) {
- if (isTabInList(e)) {
- return LIST_TABBING;
- } else if (isEnterWithoutShift(e) && isOnLastListItem()) {
- // Returns LIST_UNKNOWN since breaking out of lists is handled by the EnterKey.js logic now
- //return LIST_ESCAPE;
- return LIST_UNKNOWN;
- } else if (isEnterWithoutShift(e) && isInEmptyListItem()) {
- return LIST_EMPTY_ITEM;
- } else {
- return LIST_UNKNOWN;
- }
- }
-
- function cancelDefaultEvents(ed, e) {
- // list escape is done manually using outdent as it does not create paragraphs correctly in td's
- if (state == LIST_TABBING || state == LIST_EMPTY_ITEM || tinymce.isGecko && state == LIST_ESCAPE) {
- Event.cancel(e);
- }
- }
-
- function isCursorAtEndOfContainer() {
- var range = ed.selection.getRng(true);
- var startContainer = range.startContainer;
- if (startContainer.nodeType == 3) {
- var value = startContainer.nodeValue;
- if (tinymce.isIE9 && value.length > 1 && value.charCodeAt(value.length-1) == 32) {
- // IE9 places a space on the end of the text in some cases so ignore last char
- return (range.endOffset == value.length-1);
- } else {
- return (range.endOffset == value.length);
- }
- } else if (startContainer.nodeType == 1) {
- return range.endOffset == startContainer.childNodes.length;
- }
- return false;
- }
-
- /*
- If we are at the end of a list item surrounded with an element, pressing enter should create a
- new list item instead without splitting the element e.g. don't want to create new P or H1 tag
- */
- function isEndOfListItem() {
- var node = ed.selection.getNode();
- var validElements = 'h1,h2,h3,h4,h5,h6,p,div';
- var isLastParagraphOfLi = ed.dom.is(node, validElements) && node.parentNode.tagName === 'LI' && node.parentNode.lastChild === node;
- return ed.selection.isCollapsed() && isLastParagraphOfLi && isCursorAtEndOfContainer();
- }
-
- // Creates a new list item after the current selection's list item parent
- function createNewLi(ed, e) {
- if (isEnterWithoutShift(e) && isEndOfListItem()) {
- var node = ed.selection.getNode();
- var li = ed.dom.create("li");
- var parentLi = ed.dom.getParent(node, 'li');
- ed.dom.insertAfter(li, parentLi);
-
- // Move caret to new list element.
- if (tinymce.isIE6 || tinymce.isIE7 || tinyMCE.isIE8) {
- // Removed this line since it would create an odd < > tag and placing the caret inside an empty LI is handled and should be handled by the selection logic
- //li.appendChild(ed.dom.create(" ")); // IE needs an element within the bullet point
- ed.selection.setCursorLocation(li, 1);
- } else {
- ed.selection.setCursorLocation(li, 0);
- }
- e.preventDefault();
- }
- }
-
- function imageJoiningListItem(ed, e) {
- var prevSibling;
-
- if (!tinymce.isGecko)
- return;
-
- var n = ed.selection.getStart();
- if (e.keyCode != tinymce.VK.BACKSPACE || n.tagName !== 'IMG')
- return;
-
- function lastLI(node) {
- var child = node.firstChild;
- var li = null;
- do {
- if (!child)
- break;
-
- if (child.tagName === 'LI')
- li = child;
- } while (child = child.nextSibling);
-
- return li;
- }
-
- function addChildren(parentNode, destination) {
- while (parentNode.childNodes.length > 0)
- destination.appendChild(parentNode.childNodes[0]);
- }
-
- // Check if there is a previous sibling
- prevSibling = n.parentNode.previousSibling;
- if (!prevSibling)
- return;
-
- var ul;
- if (prevSibling.tagName === 'UL' || prevSibling.tagName === 'OL')
- ul = prevSibling;
- else if (prevSibling.previousSibling && (prevSibling.previousSibling.tagName === 'UL' || prevSibling.previousSibling.tagName === 'OL'))
- ul = prevSibling.previousSibling;
- else
- return;
-
- var li = lastLI(ul);
-
- // move the caret to the end of the list item
- var rng = ed.dom.createRng();
- rng.setStart(li, 1);
- rng.setEnd(li, 1);
- ed.selection.setRng(rng);
- ed.selection.collapse(true);
-
- // save a bookmark at the end of the list item
- var bookmark = ed.selection.getBookmark();
-
- // copy the image an its text to the list item
- var clone = n.parentNode.cloneNode(true);
- if (clone.tagName === 'P' || clone.tagName === 'DIV')
- addChildren(clone, li);
- else
- li.appendChild(clone);
-
- // remove the old copy of the image
- n.parentNode.parentNode.removeChild(n.parentNode);
-
- // move the caret where we saved the bookmark
- ed.selection.moveToBookmark(bookmark);
- }
-
- // fix the cursor position to ensure it is correct in IE
- function setCursorPositionToOriginalLi(li) {
- var list = ed.dom.getParent(li, 'ol,ul');
- if (list != null) {
- var lastLi = list.lastChild;
- // Removed this line since IE9 would report an DOM character error and placing the caret inside an empty LI is handled and should be handled by the selection logic
- //lastLi.appendChild(ed.getDoc().createElement(''));
- ed.selection.setCursorLocation(lastLi, 0);
- }
- }
-
- this.ed = ed;
- ed.addCommand('Indent', this.indent, this);
- ed.addCommand('Outdent', this.outdent, this);
- ed.addCommand('InsertUnorderedList', function() {
- this.applyList('UL', 'OL');
- }, this);
- ed.addCommand('InsertOrderedList', function() {
- this.applyList('OL', 'UL');
- }, this);
-
- ed.onInit.add(function() {
- ed.editorCommands.addCommands({
- 'outdent': function() {
- var sel = ed.selection, dom = ed.dom;
-
- function hasStyleIndent(n) {
- n = dom.getParent(n, dom.isBlock);
- return n && (parseInt(ed.dom.getStyle(n, 'margin-left') || 0, 10) + parseInt(ed.dom.getStyle(n, 'padding-left') || 0, 10)) > 0;
- }
-
- return hasStyleIndent(sel.getStart()) || hasStyleIndent(sel.getEnd()) || ed.queryCommandState('InsertOrderedList') || ed.queryCommandState('InsertUnorderedList');
- }
- }, 'state');
- });
-
- ed.onKeyUp.add(function(ed, e) {
- if (state == LIST_TABBING) {
- ed.execCommand(e.shiftKey ? 'Outdent' : 'Indent', true, null);
- state = LIST_UNKNOWN;
- return Event.cancel(e);
- } else if (state == LIST_EMPTY_ITEM) {
- var li = getLi();
- var shouldOutdent = ed.settings.list_outdent_on_enter === true || e.shiftKey;
- ed.execCommand(shouldOutdent ? 'Outdent' : 'Indent', true, null);
- if (tinymce.isIE) {
- setCursorPositionToOriginalLi(li);
- }
-
- return Event.cancel(e);
- } else if (state == LIST_ESCAPE) {
- if (tinymce.isIE6 || tinymce.isIE7 || tinymce.isIE8) {
- // append a zero sized nbsp so that caret is positioned correctly in IE after escaping and applying formatting.
- // if there is no text then applying formatting for e.g a H1 to the P tag immediately following list after
- // escaping from it will cause the caret to be positioned on the last li instead of staying the in P tag.
- var n = ed.getDoc().createTextNode('\uFEFF');
- ed.selection.getNode().appendChild(n);
- } else if (tinymce.isIE9 || tinymce.isGecko) {
- // IE9 does not escape the list so we use outdent to do this and cancel the default behaviour
- // Gecko does not create a paragraph outdenting inside a TD so default behaviour is cancelled and we outdent ourselves
- ed.execCommand('Outdent');
- return Event.cancel(e);
- }
- }
- });
-
- function fixListItem(parent, reference) {
- // a zero-sized non-breaking space is placed in the empty list item so that the nested list is
- // displayed on the below line instead of next to it
- var n = ed.getDoc().createTextNode('\uFEFF');
- parent.insertBefore(n, reference);
- ed.selection.setCursorLocation(n, 0);
- // repaint to remove rendering artifact. only visible when creating new list
- ed.execCommand('mceRepaint');
- }
-
- function fixIndentedListItemForGecko(ed, e) {
- if (isEnter(e)) {
- var li = getLi();
- if (li) {
- var parent = li.parentNode;
- var grandParent = parent && parent.parentNode;
- if (grandParent && grandParent.nodeName == 'LI' && grandParent.firstChild == parent && li == parent.firstChild) {
- fixListItem(grandParent, parent);
- }
- }
- }
- }
-
- function fixIndentedListItemForIE8(ed, e) {
- if (isEnter(e)) {
- var li = getLi();
- if (ed.dom.select('ul li', li).length === 1) {
- var list = li.firstChild;
- fixListItem(li, list);
- }
- }
- }
-
- function fixDeletingFirstCharOfList(ed, e) {
- function listElements(list, li) {
- var elements = [];
- var walker = new tinymce.dom.TreeWalker(li, list);
- for (var node = walker.current(); node; node = walker.next()) {
- if (ed.dom.is(node, 'ol,ul,li')) {
- elements.push(node);
- }
- }
- return elements;
- }
-
- if (e.keyCode == tinymce.VK.BACKSPACE) {
- var li = getLi();
- if (li) {
- var list = ed.dom.getParent(li, 'ol,ul');
- if (list && list.firstChild === li) {
- var elements = listElements(list, li);
- ed.execCommand("Outdent", false, elements);
- ed.undoManager.add();
- return Event.cancel(e);
- }
- }
- }
- }
-
- function fixDeletingEmptyLiInWebkit(ed, e) {
- var li = getLi();
- if (e.keyCode === tinymce.VK.BACKSPACE && ed.dom.is(li, 'li') && li.parentNode.firstChild!==li) {
- if (ed.dom.select('ul,ol', li).length === 1) {
- var prevLi = li.previousSibling;
- ed.dom.remove(ed.dom.select('br', li));
- ed.dom.remove(li, true);
- var textNodes = tinymce.grep(prevLi.childNodes, function(n){ return n.nodeType === 3 });
- if (textNodes.length === 1) {
- var textNode = textNodes[0]
- ed.selection.setCursorLocation(textNode, textNode.length);
- }
- ed.undoManager.add();
- return Event.cancel(e);
- }
- }
- }
-
- ed.onKeyDown.add(function(_, e) { state = getListKeyState(e); });
- ed.onKeyDown.add(cancelDefaultEvents);
- ed.onKeyDown.add(imageJoiningListItem);
- ed.onKeyDown.add(createNewLi);
-
- if (tinymce.isGecko) {
- ed.onKeyUp.add(fixIndentedListItemForGecko);
- }
- if (tinymce.isIE8) {
- ed.onKeyUp.add(fixIndentedListItemForIE8);
- }
- if (tinymce.isGecko || tinymce.isWebKit) {
- ed.onKeyDown.add(fixDeletingFirstCharOfList);
- }
- if (tinymce.isWebKit) {
- ed.onKeyDown.add(fixDeletingEmptyLiInWebkit);
- }
- },
-
- applyList: function(targetListType, oppositeListType) {
- var t = this, ed = t.ed, dom = ed.dom, applied = [], hasSameType = false, hasOppositeType = false, hasNonList = false, actions,
- selectedBlocks = ed.selection.getSelectedBlocks();
-
- function cleanupBr(e) {
- if (e && e.tagName === 'BR') {
- dom.remove(e);
- }
- }
-
- function makeList(element) {
- var list = dom.create(targetListType), li;
-
- function adjustIndentForNewList(element) {
- // If there's a margin-left, outdent one level to account for the extra list margin.
- if (element.style.marginLeft || element.style.paddingLeft) {
- t.adjustPaddingFunction(false)(element);
- }
- }
-
- if (element.tagName === 'LI') {
- // No change required.
- } else if (element.tagName === 'P' || element.tagName === 'DIV' || element.tagName === 'BODY') {
- processBrs(element, function(startSection, br) {
- doWrapList(startSection, br, element.tagName === 'BODY' ? null : startSection.parentNode);
- li = startSection.parentNode;
- adjustIndentForNewList(li);
- cleanupBr(br);
- });
- if (li) {
- if (li.tagName === 'LI' && (element.tagName === 'P' || selectedBlocks.length > 1)) {
- dom.split(li.parentNode.parentNode, li.parentNode);
- }
- attemptMergeWithAdjacent(li.parentNode, true);
- }
- return;
- } else {
- // Put the list around the element.
- li = dom.create('li');
- dom.insertAfter(li, element);
- li.appendChild(element);
- adjustIndentForNewList(element);
- element = li;
- }
- dom.insertAfter(list, element);
- list.appendChild(element);
- attemptMergeWithAdjacent(list, true);
- applied.push(element);
- }
-
- function doWrapList(start, end, template) {
- var li, n = start, tmp;
- while (!dom.isBlock(start.parentNode) && start.parentNode !== dom.getRoot()) {
- start = dom.split(start.parentNode, start.previousSibling);
- start = start.nextSibling;
- n = start;
- }
- if (template) {
- li = template.cloneNode(true);
- start.parentNode.insertBefore(li, start);
- while (li.firstChild) dom.remove(li.firstChild);
- li = dom.rename(li, 'li');
- } else {
- li = dom.create('li');
- start.parentNode.insertBefore(li, start);
- }
- while (n && n != end) {
- tmp = n.nextSibling;
- li.appendChild(n);
- n = tmp;
- }
- if (li.childNodes.length === 0) {
- li.innerHTML = '
';
- }
- makeList(li);
- }
-
- function processBrs(element, callback) {
- var startSection, previousBR, END_TO_START = 3, START_TO_END = 1,
- breakElements = 'br,ul,ol,p,div,h1,h2,h3,h4,h5,h6,table,blockquote,address,pre,form,center,dl';
-
- function isAnyPartSelected(start, end) {
- var r = dom.createRng(), sel;
- bookmark.keep = true;
- ed.selection.moveToBookmark(bookmark);
- bookmark.keep = false;
- sel = ed.selection.getRng(true);
- if (!end) {
- end = start.parentNode.lastChild;
- }
- r.setStartBefore(start);
- r.setEndAfter(end);
- return !(r.compareBoundaryPoints(END_TO_START, sel) > 0 || r.compareBoundaryPoints(START_TO_END, sel) <= 0);
- }
-
- function nextLeaf(br) {
- if (br.nextSibling)
- return br.nextSibling;
- if (!dom.isBlock(br.parentNode) && br.parentNode !== dom.getRoot())
- return nextLeaf(br.parentNode);
- }
-
- // Split on BRs within the range and process those.
- startSection = element.firstChild;
- // First mark the BRs that have any part of the previous section selected.
- var trailingContentSelected = false;
- each(dom.select(breakElements, element), function(br) {
- if (br.hasAttribute && br.hasAttribute('_mce_bogus')) {
- return true; // Skip the bogus Brs that are put in to appease Firefox and Safari.
- }
- if (isAnyPartSelected(startSection, br)) {
- dom.addClass(br, '_mce_tagged_br');
- startSection = nextLeaf(br);
- }
- });
- trailingContentSelected = (startSection && isAnyPartSelected(startSection, undefined));
- startSection = element.firstChild;
- each(dom.select(breakElements, element), function(br) {
- // Got a section from start to br.
- var tmp = nextLeaf(br);
- if (br.hasAttribute && br.hasAttribute('_mce_bogus')) {
- return true; // Skip the bogus Brs that are put in to appease Firefox and Safari.
- }
- if (dom.hasClass(br, '_mce_tagged_br')) {
- callback(startSection, br, previousBR);
- previousBR = null;
- } else {
- previousBR = br;
- }
- startSection = tmp;
- });
- if (trailingContentSelected) {
- callback(startSection, undefined, previousBR);
- }
- }
-
- function wrapList(element) {
- processBrs(element, function(startSection, br, previousBR) {
- // Need to indent this part
- doWrapList(startSection, br);
- cleanupBr(br);
- cleanupBr(previousBR);
- });
- }
-
- function changeList(element) {
- if (tinymce.inArray(applied, element) !== -1) {
- return;
- }
- if (element.parentNode.tagName === oppositeListType) {
- dom.split(element.parentNode, element);
- makeList(element);
- attemptMergeWithNext(element.parentNode, false);
- }
- applied.push(element);
- }
-
- function convertListItemToParagraph(element) {
- var child, nextChild, mergedElement, splitLast;
- if (tinymce.inArray(applied, element) !== -1) {
- return;
- }
- element = splitNestedLists(element, dom);
- while (dom.is(element.parentNode, 'ol,ul,li')) {
- dom.split(element.parentNode, element);
- }
- // Push the original element we have from the selection, not the renamed one.
- applied.push(element);
- element = dom.rename(element, 'p');
- mergedElement = attemptMergeWithAdjacent(element, false, ed.settings.force_br_newlines);
- if (mergedElement === element) {
- // Now split out any block elements that can't be contained within a P.
- // Manually iterate to ensure we handle modifications correctly (doesn't work with tinymce.each)
- child = element.firstChild;
- while (child) {
- if (dom.isBlock(child)) {
- child = dom.split(child.parentNode, child);
- splitLast = true;
- nextChild = child.nextSibling && child.nextSibling.firstChild;
- } else {
- nextChild = child.nextSibling;
- if (splitLast && child.tagName === 'BR') {
- dom.remove(child);
- }
- splitLast = false;
- }
- child = nextChild;
- }
- }
- }
-
- each(selectedBlocks, function(e) {
- e = findItemToOperateOn(e, dom);
- if (e.tagName === oppositeListType || (e.tagName === 'LI' && e.parentNode.tagName === oppositeListType)) {
- hasOppositeType = true;
- } else if (e.tagName === targetListType || (e.tagName === 'LI' && e.parentNode.tagName === targetListType)) {
- hasSameType = true;
- } else {
- hasNonList = true;
- }
- });
-
- if (hasNonList &&!hasSameType || hasOppositeType || selectedBlocks.length === 0) {
- actions = {
- 'LI': changeList,
- 'H1': makeList,
- 'H2': makeList,
- 'H3': makeList,
- 'H4': makeList,
- 'H5': makeList,
- 'H6': makeList,
- 'P': makeList,
- 'BODY': makeList,
- 'DIV': selectedBlocks.length > 1 ? makeList : wrapList,
- defaultAction: wrapList,
- elements: this.selectedBlocks()
- };
- } else {
- actions = {
- defaultAction: convertListItemToParagraph,
- elements: this.selectedBlocks()
- };
- }
- this.process(actions);
- },
-
- indent: function() {
- var ed = this.ed, dom = ed.dom, indented = [];
-
- function createWrapItem(element) {
- var wrapItem = dom.create('li', { style: 'list-style-type: none;'});
- dom.insertAfter(wrapItem, element);
- return wrapItem;
- }
-
- function createWrapList(element) {
- var wrapItem = createWrapItem(element),
- list = dom.getParent(element, 'ol,ul'),
- listType = list.tagName,
- listStyle = dom.getStyle(list, 'list-style-type'),
- attrs = {},
- wrapList;
- if (listStyle !== '') {
- attrs.style = 'list-style-type: ' + listStyle + ';';
- }
- wrapList = dom.create(listType, attrs);
- wrapItem.appendChild(wrapList);
- return wrapList;
- }
-
- function indentLI(element) {
- if (!hasParentInList(ed, element, indented)) {
- element = splitNestedLists(element, dom);
- var wrapList = createWrapList(element);
- wrapList.appendChild(element);
- attemptMergeWithAdjacent(wrapList.parentNode, false);
- attemptMergeWithAdjacent(wrapList, false);
- indented.push(element);
- }
- }
-
- this.process({
- 'LI': indentLI,
- defaultAction: this.adjustPaddingFunction(true),
- elements: this.selectedBlocks()
- });
-
- },
-
- outdent: function(ui, elements) {
- var t = this, ed = t.ed, dom = ed.dom, outdented = [];
-
- function outdentLI(element) {
- var listElement, targetParent, align;
- if (!hasParentInList(ed, element, outdented)) {
- if (dom.getStyle(element, 'margin-left') !== '' || dom.getStyle(element, 'padding-left') !== '') {
- return t.adjustPaddingFunction(false)(element);
- }
- align = dom.getStyle(element, 'text-align', true);
- if (align === 'center' || align === 'right') {
- dom.setStyle(element, 'text-align', 'left');
- return;
- }
- element = splitNestedLists(element, dom);
- listElement = element.parentNode;
- targetParent = element.parentNode.parentNode;
- if (targetParent.tagName === 'P') {
- dom.split(targetParent, element.parentNode);
- } else {
- dom.split(listElement, element);
- if (targetParent.tagName === 'LI') {
- // Nested list, need to split the LI and go back out to the OL/UL element.
- dom.split(targetParent, element);
- } else if (!dom.is(targetParent, 'ol,ul')) {
- dom.rename(element, 'p');
- }
- }
- outdented.push(element);
- }
- }
-
- var listElements = elements && tinymce.is(elements, 'array') ? elements : this.selectedBlocks();
- this.process({
- 'LI': outdentLI,
- defaultAction: this.adjustPaddingFunction(false),
- elements: listElements
- });
-
- each(outdented, attemptMergeWithAdjacent);
- },
-
- process: function(actions) {
- var t = this, sel = t.ed.selection, dom = t.ed.dom, selectedBlocks, r;
-
- function isEmptyElement(element) {
- var excludeBrsAndBookmarks = tinymce.grep(element.childNodes, function(n) {
- return !(n.nodeName === 'BR' || n.nodeName === 'SPAN' && dom.getAttrib(n, 'data-mce-type') == 'bookmark'
- || n.nodeType == 3 && (n.nodeValue == String.fromCharCode(160) || n.nodeValue == ''));
- });
- return excludeBrsAndBookmarks.length === 0;
- }
-
- function processElement(element) {
- dom.removeClass(element, '_mce_act_on');
- if (!element || element.nodeType !== 1 || selectedBlocks.length > 1 && isEmptyElement(element)) {
- return;
- }
- element = findItemToOperateOn(element, dom);
- var action = actions[element.tagName];
- if (!action) {
- action = actions.defaultAction;
- }
- action(element);
- }
-
- function recurse(element) {
- t.splitSafeEach(element.childNodes, processElement);
- }
-
- function brAtEdgeOfSelection(container, offset) {
- return offset >= 0 && container.hasChildNodes() && offset < container.childNodes.length &&
- container.childNodes[offset].tagName === 'BR';
- }
-
- function isInTable() {
- var n = sel.getNode();
- var p = dom.getParent(n, 'td');
- return p !== null;
- }
-
- selectedBlocks = actions.elements;
-
- r = sel.getRng(true);
- if (!r.collapsed) {
- if (brAtEdgeOfSelection(r.endContainer, r.endOffset - 1)) {
- r.setEnd(r.endContainer, r.endOffset - 1);
- sel.setRng(r);
- }
- if (brAtEdgeOfSelection(r.startContainer, r.startOffset)) {
- r.setStart(r.startContainer, r.startOffset + 1);
- sel.setRng(r);
- }
- }
-
-
- if (tinymce.isIE8) {
- // append a zero sized nbsp so that caret is restored correctly using bookmark
- var s = t.ed.selection.getNode();
- if (s.tagName === 'LI' && !(s.parentNode.lastChild === s)) {
- var i = t.ed.getDoc().createTextNode('\uFEFF');
- s.appendChild(i);
- }
- }
-
- bookmark = sel.getBookmark();
- actions.OL = actions.UL = recurse;
- t.splitSafeEach(selectedBlocks, processElement);
- sel.moveToBookmark(bookmark);
- bookmark = null;
-
- // we avoid doing repaint in a table as this will move the caret out of the table in Firefox 3.6
- if (!isInTable()) {
- // Avoids table or image handles being left behind in Firefox.
- t.ed.execCommand('mceRepaint');
- }
- },
-
- splitSafeEach: function(elements, f) {
- if (tinymce.isGecko && (/Firefox\/[12]\.[0-9]/.test(navigator.userAgent) ||
- /Firefox\/3\.[0-4]/.test(navigator.userAgent))) {
- this.classBasedEach(elements, f);
- } else {
- each(elements, f);
- }
- },
-
- classBasedEach: function(elements, f) {
- var dom = this.ed.dom, nodes, element;
- // Mark nodes
- each(elements, function(element) {
- dom.addClass(element, '_mce_act_on');
- });
- nodes = dom.select('._mce_act_on');
- while (nodes.length > 0) {
- element = nodes.shift();
- dom.removeClass(element, '_mce_act_on');
- f(element);
- nodes = dom.select('._mce_act_on');
- }
- },
-
- adjustPaddingFunction: function(isIndent) {
- var indentAmount, indentUnits, ed = this.ed;
- indentAmount = ed.settings.indentation;
- indentUnits = /[a-z%]+/i.exec(indentAmount);
- indentAmount = parseInt(indentAmount, 10);
- return function(element) {
- var currentIndent, newIndentAmount;
- currentIndent = parseInt(ed.dom.getStyle(element, 'margin-left') || 0, 10) + parseInt(ed.dom.getStyle(element, 'padding-left') || 0, 10);
- if (isIndent) {
- newIndentAmount = currentIndent + indentAmount;
- } else {
- newIndentAmount = currentIndent - indentAmount;
- }
- ed.dom.setStyle(element, 'padding-left', '');
- ed.dom.setStyle(element, 'margin-left', newIndentAmount > 0 ? newIndentAmount + indentUnits : '');
- };
- },
-
- selectedBlocks: function() {
- var ed = this.ed
- var selectedBlocks = ed.selection.getSelectedBlocks();
- return selectedBlocks.length == 0 ? [ ed.dom.getRoot() ] : selectedBlocks;
- },
-
- getInfo: function() {
- return {
- longname : 'Lists',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/lists',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
- tinymce.PluginManager.add("lists", tinymce.plugins.Lists);
-}());
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/media/css/media.css b/library/tinymce/jscripts/tiny_mce/plugins/media/css/media.css
deleted file mode 100644
index 0c45c7ff6..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/media/css/media.css
+++ /dev/null
@@ -1,17 +0,0 @@
-#id, #name, #hspace, #vspace, #class_name, #align { width: 100px }
-#hspace, #vspace { width: 50px }
-#flash_quality, #flash_align, #flash_scale, #flash_salign, #flash_wmode { width: 100px }
-#flash_base, #flash_flashvars, #html5_altsource1, #html5_altsource2, #html5_poster { width: 240px }
-#width, #height { width: 40px }
-#src, #media_type { width: 250px }
-#class { width: 120px }
-#prev { margin: 0; border: 1px solid black; width: 380px; height: 260px; overflow: auto }
-.panel_wrapper div.current { height: 420px; overflow: auto }
-#flash_options, #shockwave_options, #qt_options, #wmp_options, #rmp_options { display: none }
-.mceAddSelectValue { background-color: #DDDDDD }
-#qt_starttime, #qt_endtime, #qt_fov, #qt_href, #qt_moveid, #qt_moviename, #qt_node, #qt_pan, #qt_qtsrc, #qt_qtsrcchokespeed, #qt_target, #qt_tilt, #qt_urlsubstituten, #qt_volume { width: 70px }
-#wmp_balance, #wmp_baseurl, #wmp_captioningid, #wmp_currentmarker, #wmp_currentposition, #wmp_defaultframe, #wmp_playcount, #wmp_rate, #wmp_uimode, #wmp_volume { width: 70px }
-#rmp_console, #rmp_numloop, #rmp_controls, #rmp_scriptcallbacks { width: 70px }
-#shockwave_swvolume, #shockwave_swframe, #shockwave_swurl, #shockwave_swstretchvalign, #shockwave_swstretchhalign, #shockwave_swstretchstyle { width: 90px }
-#qt_qtsrc { width: 200px }
-iframe {border: 1px solid gray}
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js
deleted file mode 100644
index 37b4320bd..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/media/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var d=tinymce.explode("id,name,width,height,style,align,class,hspace,vspace,bgcolor,type"),h=tinymce.makeMap(d.join(",")),b=tinymce.html.Node,f,a,g=tinymce.util.JSON,e;f=[["Flash","d27cdb6e-ae6d-11cf-96b8-444553540000","application/x-shockwave-flash","http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"],["ShockWave","166b1bca-3f9c-11cf-8075-444553540000","application/x-director","http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0"],["WindowsMedia","6bf52a52-394a-11d3-b153-00c04f79faa6,22d6f312-b0f6-11d0-94ab-0080c74c7e95,05589fa1-c356-11ce-bf01-00aa0055595a","application/x-mplayer2","http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701"],["QuickTime","02bf25d5-8c17-4b23-bc80-d3488abddc6b","video/quicktime","http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0"],["RealMedia","cfcdaa03-8be4-11cf-b84b-0020afbbccfa","audio/x-pn-realaudio-plugin","http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0"],["Java","8ad9c840-044e-11d1-b3e9-00805f499d93","application/x-java-applet","http://java.sun.com/products/plugin/autodl/jinstall-1_5_0-windows-i586.cab#Version=1,5,0,0"],["Silverlight","dfeaf541-f3e1-4c24-acac-99c30715084a","application/x-silverlight-2"],["Iframe"],["Video"],["EmbeddedAudio"],["Audio"]];function c(m){var l,j,k;if(m&&!m.splice){j=[];for(k=0;true;k++){if(m[k]){j[k]=m[k]}else{break}}return j}return m}tinymce.create("tinymce.plugins.MediaPlugin",{init:function(n,j){var r=this,l={},m,p,q,k;function o(i){return i&&i.nodeName==="IMG"&&n.dom.hasClass(i,"mceItemMedia")}r.editor=n;r.url=j;a="";for(m=0;m0){N+=(N?"&":"")+O+"="+escape(P)}});if(N.length){G.params.flashvars=N}K=p.getParam("flash_video_player_params",{allowfullscreen:true,allowscriptaccess:true});tinymce.each(K,function(P,O){G.params[O]=""+P})}}G=z.attr("data-mce-json");if(!G){return}G=g.parse(G);q=this.getType(z.attr("class"));B=z.attr("data-mce-style");if(!B){B=z.attr("style");if(B){B=p.dom.serializeStyle(p.dom.parseStyle(B,"img"))}}if(q.name==="Iframe"){x=new b("iframe",1);tinymce.each(d,function(i){var n=z.attr(i);if(i=="class"&&n){n=n.replace(/mceItem.+ ?/g,"")}if(n&&n.length>0){x.attr(i,n)}});for(I in G.params){x.attr(I,G.params[I])}x.attr({style:B,src:G.params.src});z.replace(x);return}if(this.editor.settings.media_use_script){x=new b("script",1).attr("type","text/javascript");y=new b("#text",3);y.value="write"+q.name+"("+g.serialize(tinymce.extend(G.params,{width:z.attr("width"),height:z.attr("height")}))+");";x.append(y);z.replace(x);return}if(q.name==="Video"&&G.video.sources[0]){C=new b("video",1).attr(tinymce.extend({id:z.attr("id"),width:z.attr("width"),height:z.attr("height"),style:B},G.video.attrs));if(G.video.attrs){l=G.video.attrs.poster}k=G.video.sources=c(G.video.sources);for(A=0;A 0)
- flashVarsOutput += (flashVarsOutput ? '&' : '') + name + '=' + escape(value);
- });
-
- if (flashVarsOutput.length)
- data.params.flashvars = flashVarsOutput;
-
- params = editor.getParam('flash_video_player_params', {
- allowfullscreen: true,
- allowscriptaccess: true
- });
-
- tinymce.each(params, function(value, name) {
- data.params[name] = "" + value;
- });
- }
- };
-
- data = node.attr('data-mce-json');
- if (!data)
- return;
-
- data = JSON.parse(data);
- typeItem = this.getType(node.attr('class'));
-
- style = node.attr('data-mce-style')
- if (!style) {
- style = node.attr('style');
-
- if (style)
- style = editor.dom.serializeStyle(editor.dom.parseStyle(style, 'img'));
- }
-
- // Handle iframe
- if (typeItem.name === 'Iframe') {
- replacement = new Node('iframe', 1);
-
- tinymce.each(rootAttributes, function(name) {
- var value = node.attr(name);
-
- if (name == 'class' && value)
- value = value.replace(/mceItem.+ ?/g, '');
-
- if (value && value.length > 0)
- replacement.attr(name, value);
- });
-
- for (name in data.params)
- replacement.attr(name, data.params[name]);
-
- replacement.attr({
- style: style,
- src: data.params.src
- });
-
- node.replace(replacement);
-
- return;
- }
-
- // Handle scripts
- if (this.editor.settings.media_use_script) {
- replacement = new Node('script', 1).attr('type', 'text/javascript');
-
- value = new Node('#text', 3);
- value.value = 'write' + typeItem.name + '(' + JSON.serialize(tinymce.extend(data.params, {
- width: node.attr('width'),
- height: node.attr('height')
- })) + ');';
-
- replacement.append(value);
- node.replace(replacement);
-
- return;
- }
-
- // Add HTML5 video element
- if (typeItem.name === 'Video' && data.video.sources[0]) {
- // Create new object element
- video = new Node('video', 1).attr(tinymce.extend({
- id : node.attr('id'),
- width: node.attr('width'),
- height: node.attr('height'),
- style : style
- }, data.video.attrs));
-
- // Get poster source and use that for flash fallback
- if (data.video.attrs)
- posterSrc = data.video.attrs.poster;
-
- sources = data.video.sources = toArray(data.video.sources);
- for (i = 0; i < sources.length; i++) {
- if (/\.mp4$/.test(sources[i].src))
- mp4Source = sources[i].src;
- }
-
- if (!sources[0].type) {
- video.attr('src', sources[0].src);
- sources.splice(0, 1);
- }
-
- for (i = 0; i < sources.length; i++) {
- source = new Node('source', 1).attr(sources[i]);
- source.shortEnded = true;
- video.append(source);
- }
-
- // Create flash fallback for video if we have a mp4 source
- if (mp4Source) {
- addPlayer(mp4Source, posterSrc);
- typeItem = self.getType('flash');
- } else
- data.params.src = '';
- }
-
- // Add HTML5 audio element
- if (typeItem.name === 'Audio' && data.video.sources[0]) {
- // Create new object element
- audio = new Node('audio', 1).attr(tinymce.extend({
- id : node.attr('id'),
- width: node.attr('width'),
- height: node.attr('height'),
- style : style
- }, data.video.attrs));
-
- // Get poster source and use that for flash fallback
- if (data.video.attrs)
- posterSrc = data.video.attrs.poster;
-
- sources = data.video.sources = toArray(data.video.sources);
- if (!sources[0].type) {
- audio.attr('src', sources[0].src);
- sources.splice(0, 1);
- }
-
- for (i = 0; i < sources.length; i++) {
- source = new Node('source', 1).attr(sources[i]);
- source.shortEnded = true;
- audio.append(source);
- }
-
- data.params.src = '';
- }
-
- if (typeItem.name === 'EmbeddedAudio') {
- embed = new Node('embed', 1);
- embed.shortEnded = true;
- embed.attr({
- id: node.attr('id'),
- width: node.attr('width'),
- height: node.attr('height'),
- style : style,
- type: node.attr('type')
- });
-
- for (name in data.params)
- embed.attr(name, data.params[name]);
-
- tinymce.each(rootAttributes, function(name) {
- if (data[name] && name != 'type')
- embed.attr(name, data[name]);
- });
-
- data.params.src = '';
- }
-
- // Do we have a params src then we can generate object
- if (data.params.src) {
- // Is flv movie add player for it
- if (/\.flv$/i.test(data.params.src))
- addPlayer(data.params.src, '');
-
- if (args && args.force_absolute)
- data.params.src = editor.documentBaseURI.toAbsolute(data.params.src);
-
- // Create new object element
- object = new Node('object', 1).attr({
- id : node.attr('id'),
- width: node.attr('width'),
- height: node.attr('height'),
- style : style
- });
-
- tinymce.each(rootAttributes, function(name) {
- var value = data[name];
-
- if (name == 'class' && value)
- value = value.replace(/mceItem.+ ?/g, '');
-
- if (value && name != 'type')
- object.attr(name, value);
- });
-
- // Add params
- for (name in data.params) {
- param = new Node('param', 1);
- param.shortEnded = true;
- value = data.params[name];
-
- // Windows media needs to use url instead of src for the media URL
- if (name === 'src' && typeItem.name === 'WindowsMedia')
- name = 'url';
-
- param.attr({name: name, value: value});
- object.append(param);
- }
-
- // Setup add type and classid if strict is disabled
- if (this.editor.getParam('media_strict', true)) {
- object.attr({
- data: data.params.src,
- type: typeItem.mimes[0]
- });
- } else {
- object.attr({
- classid: "clsid:" + typeItem.clsids[0],
- codebase: typeItem.codebase
- });
-
- embed = new Node('embed', 1);
- embed.shortEnded = true;
- embed.attr({
- id: node.attr('id'),
- width: node.attr('width'),
- height: node.attr('height'),
- style : style,
- type: typeItem.mimes[0]
- });
-
- for (name in data.params)
- embed.attr(name, data.params[name]);
-
- tinymce.each(rootAttributes, function(name) {
- if (data[name] && name != 'type')
- embed.attr(name, data[name]);
- });
-
- object.append(embed);
- }
-
- // Insert raw HTML
- if (data.object_html) {
- value = new Node('#text', 3);
- value.raw = true;
- value.value = data.object_html;
- object.append(value);
- }
-
- // Append object to video element if it exists
- if (video)
- video.append(object);
- }
-
- if (video) {
- // Insert raw HTML
- if (data.video_html) {
- value = new Node('#text', 3);
- value.raw = true;
- value.value = data.video_html;
- video.append(value);
- }
- }
-
- if (audio) {
- // Insert raw HTML
- if (data.video_html) {
- value = new Node('#text', 3);
- value.raw = true;
- value.value = data.video_html;
- audio.append(value);
- }
- }
-
- var n = video || audio || object || embed;
- if (n)
- node.replace(n);
- else
- node.remove();
- },
-
- /**
- * Converts a tinymce.html.Node video/object/embed to an img element.
- *
- * The video/object/embed will be converted into an image placeholder with a JSON data attribute like this:
- *
- *
- * The JSON structure will be like this:
- * {'params':{'flashvars':'something','quality':'high','src':'someurl'}, 'video':{'sources':[{src: 'someurl', type: 'video/mp4'}]}}
- */
- objectToImg : function(node) {
- var object, embed, video, iframe, img, name, id, width, height, style, i, html,
- param, params, source, sources, data, type, lookup = this.lookup,
- matches, attrs, urlConverter = this.editor.settings.url_converter,
- urlConverterScope = this.editor.settings.url_converter_scope,
- hspace, vspace, align, bgcolor;
-
- function getInnerHTML(node) {
- return new tinymce.html.Serializer({
- inner: true,
- validate: false
- }).serialize(node);
- };
-
- function lookupAttribute(o, attr) {
- return lookup[(o.attr(attr) || '').toLowerCase()];
- }
-
- function lookupExtension(src) {
- var ext = src.replace(/^.*\.([^.]+)$/, '$1');
- return lookup[ext.toLowerCase() || ''];
- }
-
- // If node isn't in document
- if (!node.parent)
- return;
-
- // Handle media scripts
- if (node.name === 'script') {
- if (node.firstChild)
- matches = scriptRegExp.exec(node.firstChild.value);
-
- if (!matches)
- return;
-
- type = matches[1];
- data = {video : {}, params : JSON.parse(matches[2])};
- width = data.params.width;
- height = data.params.height;
- }
-
- // Setup data objects
- data = data || {
- video : {},
- params : {}
- };
-
- // Setup new image object
- img = new Node('img', 1);
- img.attr({
- src : this.editor.theme.url + '/img/trans.gif'
- });
-
- // Video element
- name = node.name;
- if (name === 'video' || name == 'audio') {
- video = node;
- object = node.getAll('object')[0];
- embed = node.getAll('embed')[0];
- width = video.attr('width');
- height = video.attr('height');
- id = video.attr('id');
- data.video = {attrs : {}, sources : []};
-
- // Get all video attributes
- attrs = data.video.attrs;
- for (name in video.attributes.map)
- attrs[name] = video.attributes.map[name];
-
- source = node.attr('src');
- if (source)
- data.video.sources.push({src : urlConverter.call(urlConverterScope, source, 'src', node.name)});
-
- // Get all sources
- sources = video.getAll("source");
- for (i = 0; i < sources.length; i++) {
- source = sources[i].remove();
-
- data.video.sources.push({
- src: urlConverter.call(urlConverterScope, source.attr('src'), 'src', 'source'),
- type: source.attr('type'),
- media: source.attr('media')
- });
- }
-
- // Convert the poster URL
- if (attrs.poster)
- attrs.poster = urlConverter.call(urlConverterScope, attrs.poster, 'poster', node.name);
- }
-
- // Object element
- if (node.name === 'object') {
- object = node;
- embed = node.getAll('embed')[0];
- }
-
- // Embed element
- if (node.name === 'embed')
- embed = node;
-
- // Iframe element
- if (node.name === 'iframe') {
- iframe = node;
- type = 'Iframe';
- }
-
- if (object) {
- // Get width/height
- width = width || object.attr('width');
- height = height || object.attr('height');
- style = style || object.attr('style');
- id = id || object.attr('id');
- hspace = hspace || object.attr('hspace');
- vspace = vspace || object.attr('vspace');
- align = align || object.attr('align');
- bgcolor = bgcolor || object.attr('bgcolor');
- data.name = object.attr('name');
-
- // Get all object params
- params = object.getAll("param");
- for (i = 0; i < params.length; i++) {
- param = params[i];
- name = param.remove().attr('name');
-
- if (!excludedAttrs[name])
- data.params[name] = param.attr('value');
- }
-
- data.params.src = data.params.src || object.attr('data');
- }
-
- if (embed) {
- // Get width/height
- width = width || embed.attr('width');
- height = height || embed.attr('height');
- style = style || embed.attr('style');
- id = id || embed.attr('id');
- hspace = hspace || embed.attr('hspace');
- vspace = vspace || embed.attr('vspace');
- align = align || embed.attr('align');
- bgcolor = bgcolor || embed.attr('bgcolor');
-
- // Get all embed attributes
- for (name in embed.attributes.map) {
- if (!excludedAttrs[name] && !data.params[name])
- data.params[name] = embed.attributes.map[name];
- }
- }
-
- if (iframe) {
- // Get width/height
- width = iframe.attr('width');
- height = iframe.attr('height');
- style = style || iframe.attr('style');
- id = iframe.attr('id');
- hspace = iframe.attr('hspace');
- vspace = iframe.attr('vspace');
- align = iframe.attr('align');
- bgcolor = iframe.attr('bgcolor');
-
- tinymce.each(rootAttributes, function(name) {
- img.attr(name, iframe.attr(name));
- });
-
- // Get all iframe attributes
- for (name in iframe.attributes.map) {
- if (!excludedAttrs[name] && !data.params[name])
- data.params[name] = iframe.attributes.map[name];
- }
- }
-
- // Use src not movie
- if (data.params.movie) {
- data.params.src = data.params.src || data.params.movie;
- delete data.params.movie;
- }
-
- // Convert the URL to relative/absolute depending on configuration
- if (data.params.src)
- data.params.src = urlConverter.call(urlConverterScope, data.params.src, 'src', 'object');
-
- if (video) {
- if (node.name === 'video')
- type = lookup.video.name;
- else if (node.name === 'audio')
- type = lookup.audio.name;
- }
-
- if (object && !type)
- type = (lookupAttribute(object, 'clsid') || lookupAttribute(object, 'classid') || lookupAttribute(object, 'type') || {}).name;
-
- if (embed && !type)
- type = (lookupAttribute(embed, 'type') || lookupExtension(data.params.src) || {}).name;
-
- // for embedded audio we preserve the original specified type
- if (embed && type == 'EmbeddedAudio') {
- data.params.type = embed.attr('type');
- }
-
- // Replace the video/object/embed element with a placeholder image containing the data
- node.replace(img);
-
- // Remove embed
- if (embed)
- embed.remove();
-
- // Serialize the inner HTML of the object element
- if (object) {
- html = getInnerHTML(object.remove());
-
- if (html)
- data.object_html = html;
- }
-
- // Serialize the inner HTML of the video element
- if (video) {
- html = getInnerHTML(video.remove());
-
- if (html)
- data.video_html = html;
- }
-
- data.hspace = hspace;
- data.vspace = vspace;
- data.align = align;
- data.bgcolor = bgcolor;
-
- // Set width/height of placeholder
- img.attr({
- id : id,
- 'class' : 'mceItemMedia mceItem' + (type || 'Flash'),
- style : style,
- width : width || (node.name == 'audio' ? "300" : "320"),
- height : height || (node.name == 'audio' ? "32" : "240"),
- hspace : hspace,
- vspace : vspace,
- align : align,
- bgcolor : bgcolor,
- "data-mce-json" : JSON.serialize(data, "'")
- });
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('media', tinymce.plugins.MediaPlugin);
-})();
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js b/library/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js
deleted file mode 100644
index f8dc81052..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/media/js/embed.js
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.
- */
-
-function writeFlash(p) {
- writeEmbed(
- 'D27CDB6E-AE6D-11cf-96B8-444553540000',
- 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
- 'application/x-shockwave-flash',
- p
- );
-}
-
-function writeShockWave(p) {
- writeEmbed(
- '166B1BCA-3F9C-11CF-8075-444553540000',
- 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
- 'application/x-director',
- p
- );
-}
-
-function writeQuickTime(p) {
- writeEmbed(
- '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
- 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
- 'video/quicktime',
- p
- );
-}
-
-function writeRealMedia(p) {
- writeEmbed(
- 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
- 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
- 'audio/x-pn-realaudio-plugin',
- p
- );
-}
-
-function writeWindowsMedia(p) {
- p.url = p.src;
- writeEmbed(
- '6BF52A52-394A-11D3-B153-00C04F79FAA6',
- 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
- 'application/x-mplayer2',
- p
- );
-}
-
-function writeEmbed(cls, cb, mt, p) {
- var h = '', n;
-
- h += '';
-
- document.write(h);
-}
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/media/js/media.js b/library/tinymce/jscripts/tiny_mce/plugins/media/js/media.js
deleted file mode 100644
index 733c5f6c2..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/media/js/media.js
+++ /dev/null
@@ -1,470 +0,0 @@
-(function() {
- var url;
-
- if (url = tinyMCEPopup.getParam("media_external_list_url"))
- document.write('');
-
- function get(id) {
- return document.getElementById(id);
- }
-
- function clone(obj) {
- var i, len, copy, attr;
-
- if (null == obj || "object" != typeof obj)
- return obj;
-
- // Handle Array
- if ('length' in obj) {
- copy = [];
-
- for (i = 0, len = obj.length; i < len; ++i) {
- copy[i] = clone(obj[i]);
- }
-
- return copy;
- }
-
- // Handle Object
- copy = {};
- for (attr in obj) {
- if (obj.hasOwnProperty(attr))
- copy[attr] = clone(obj[attr]);
- }
-
- return copy;
- }
-
- function getVal(id) {
- var elm = get(id);
-
- if (elm.nodeName == "SELECT")
- return elm.options[elm.selectedIndex].value;
-
- if (elm.type == "checkbox")
- return elm.checked;
-
- return elm.value;
- }
-
- function setVal(id, value, name) {
- if (typeof(value) != 'undefined' && value != null) {
- var elm = get(id);
-
- if (elm.nodeName == "SELECT")
- selectByValue(document.forms[0], id, value);
- else if (elm.type == "checkbox") {
- if (typeof(value) == 'string') {
- value = value.toLowerCase();
- value = (!name && value === 'true') || (name && value === name.toLowerCase());
- }
- elm.checked = !!value;
- } else
- elm.value = value;
- }
- }
-
- window.Media = {
- init : function() {
- var html, editor, self = this;
-
- self.editor = editor = tinyMCEPopup.editor;
-
- // Setup file browsers and color pickers
- get('filebrowsercontainer').innerHTML = getBrowserHTML('filebrowser','src','media','media');
- get('qtsrcfilebrowsercontainer').innerHTML = getBrowserHTML('qtsrcfilebrowser','quicktime_qtsrc','media','media');
- get('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
- get('video_altsource1_filebrowser').innerHTML = getBrowserHTML('video_filebrowser_altsource1','video_altsource1','media','media');
- get('video_altsource2_filebrowser').innerHTML = getBrowserHTML('video_filebrowser_altsource2','video_altsource2','media','media');
- get('audio_altsource1_filebrowser').innerHTML = getBrowserHTML('audio_filebrowser_altsource1','audio_altsource1','media','media');
- get('audio_altsource2_filebrowser').innerHTML = getBrowserHTML('audio_filebrowser_altsource2','audio_altsource2','media','media');
- get('video_poster_filebrowser').innerHTML = getBrowserHTML('filebrowser_poster','video_poster','media','image');
-
- html = self.getMediaListHTML('medialist', 'src', 'media', 'media');
- if (html == "")
- get("linklistrow").style.display = 'none';
- else
- get("linklistcontainer").innerHTML = html;
-
- if (isVisible('filebrowser'))
- get('src').style.width = '230px';
-
- if (isVisible('video_filebrowser_altsource1'))
- get('video_altsource1').style.width = '220px';
-
- if (isVisible('video_filebrowser_altsource2'))
- get('video_altsource2').style.width = '220px';
-
- if (isVisible('audio_filebrowser_altsource1'))
- get('audio_altsource1').style.width = '220px';
-
- if (isVisible('audio_filebrowser_altsource2'))
- get('audio_altsource2').style.width = '220px';
-
- if (isVisible('filebrowser_poster'))
- get('video_poster').style.width = '220px';
-
- editor.dom.setOuterHTML(get('media_type'), self.getMediaTypeHTML(editor));
-
- self.setDefaultDialogSettings(editor);
- self.data = clone(tinyMCEPopup.getWindowArg('data'));
- self.dataToForm();
- self.preview();
-
- updateColor('bgcolor_pick', 'bgcolor');
- },
-
- insert : function() {
- var editor = tinyMCEPopup.editor;
-
- this.formToData();
- editor.execCommand('mceRepaint');
- tinyMCEPopup.restoreSelection();
- editor.selection.setNode(editor.plugins.media.dataToImg(this.data));
- tinyMCEPopup.close();
- },
-
- preview : function() {
- get('prev').innerHTML = this.editor.plugins.media.dataToHtml(this.data, true);
- },
-
- moveStates : function(to_form, field) {
- var data = this.data, editor = this.editor,
- mediaPlugin = editor.plugins.media, ext, src, typeInfo, defaultStates, src;
-
- defaultStates = {
- // QuickTime
- quicktime_autoplay : true,
- quicktime_controller : true,
-
- // Flash
- flash_play : true,
- flash_loop : true,
- flash_menu : true,
-
- // WindowsMedia
- windowsmedia_autostart : true,
- windowsmedia_enablecontextmenu : true,
- windowsmedia_invokeurls : true,
-
- // RealMedia
- realmedia_autogotourl : true,
- realmedia_imagestatus : true
- };
-
- function parseQueryParams(str) {
- var out = {};
-
- if (str) {
- tinymce.each(str.split('&'), function(item) {
- var parts = item.split('=');
-
- out[unescape(parts[0])] = unescape(parts[1]);
- });
- }
-
- return out;
- };
-
- function setOptions(type, names) {
- var i, name, formItemName, value, list;
-
- if (type == data.type || type == 'global') {
- names = tinymce.explode(names);
- for (i = 0; i < names.length; i++) {
- name = names[i];
- formItemName = type == 'global' ? name : type + '_' + name;
-
- if (type == 'global')
- list = data;
- else if (type == 'video' || type == 'audio') {
- list = data.video.attrs;
-
- if (!list && !to_form)
- data.video.attrs = list = {};
- } else
- list = data.params;
-
- if (list) {
- if (to_form) {
- setVal(formItemName, list[name], type == 'video' || type == 'audio' ? name : '');
- } else {
- delete list[name];
-
- value = getVal(formItemName);
- if ((type == 'video' || type == 'audio') && value === true)
- value = name;
-
- if (defaultStates[formItemName]) {
- if (value !== defaultStates[formItemName]) {
- value = "" + value;
- list[name] = value;
- }
- } else if (value) {
- value = "" + value;
- list[name] = value;
- }
- }
- }
- }
- }
- }
-
- if (!to_form) {
- data.type = get('media_type').options[get('media_type').selectedIndex].value;
- data.width = getVal('width');
- data.height = getVal('height');
-
- // Switch type based on extension
- src = getVal('src');
- if (field == 'src') {
- ext = src.replace(/^.*\.([^.]+)$/, '$1');
- if (typeInfo = mediaPlugin.getType(ext))
- data.type = typeInfo.name.toLowerCase();
-
- setVal('media_type', data.type);
- }
-
- if (data.type == "video" || data.type == "audio") {
- if (!data.video.sources)
- data.video.sources = [];
-
- data.video.sources[0] = {src: getVal('src')};
- }
- }
-
- // Hide all fieldsets and show the one active
- get('video_options').style.display = 'none';
- get('audio_options').style.display = 'none';
- get('flash_options').style.display = 'none';
- get('quicktime_options').style.display = 'none';
- get('shockwave_options').style.display = 'none';
- get('windowsmedia_options').style.display = 'none';
- get('realmedia_options').style.display = 'none';
- get('embeddedaudio_options').style.display = 'none';
-
- if (get(data.type + '_options'))
- get(data.type + '_options').style.display = 'block';
-
- setVal('media_type', data.type);
-
- setOptions('flash', 'play,loop,menu,swliveconnect,quality,scale,salign,wmode,base,flashvars');
- setOptions('quicktime', 'loop,autoplay,cache,controller,correction,enablejavascript,kioskmode,autohref,playeveryframe,targetcache,scale,starttime,endtime,target,qtsrcchokespeed,volume,qtsrc');
- setOptions('shockwave', 'sound,progress,autostart,swliveconnect,swvolume,swstretchstyle,swstretchhalign,swstretchvalign');
- setOptions('windowsmedia', 'autostart,enabled,enablecontextmenu,fullscreen,invokeurls,mute,stretchtofit,windowlessvideo,balance,baseurl,captioningid,currentmarker,currentposition,defaultframe,playcount,rate,uimode,volume');
- setOptions('realmedia', 'autostart,loop,autogotourl,center,imagestatus,maintainaspect,nojava,prefetch,shuffle,console,controls,numloop,scriptcallbacks');
- setOptions('video', 'poster,autoplay,loop,muted,preload,controls');
- setOptions('audio', 'autoplay,loop,preload,controls');
- setOptions('embeddedaudio', 'autoplay,loop,controls');
- setOptions('global', 'id,name,vspace,hspace,bgcolor,align,width,height');
-
- if (to_form) {
- if (data.type == 'video') {
- if (data.video.sources[0])
- setVal('src', data.video.sources[0].src);
-
- src = data.video.sources[1];
- if (src)
- setVal('video_altsource1', src.src);
-
- src = data.video.sources[2];
- if (src)
- setVal('video_altsource2', src.src);
- } else if (data.type == 'audio') {
- if (data.video.sources[0])
- setVal('src', data.video.sources[0].src);
-
- src = data.video.sources[1];
- if (src)
- setVal('audio_altsource1', src.src);
-
- src = data.video.sources[2];
- if (src)
- setVal('audio_altsource2', src.src);
- } else {
- // Check flash vars
- if (data.type == 'flash') {
- tinymce.each(editor.getParam('flash_video_player_flashvars', {url : '$url', poster : '$poster'}), function(value, name) {
- if (value == '$url')
- data.params.src = parseQueryParams(data.params.flashvars)[name] || data.params.src || '';
- });
- }
-
- setVal('src', data.params.src);
- }
- } else {
- src = getVal("src");
-
- // YouTube *NEW*
- if (src.match(/youtu.be\/[a-z1-9.-_]+/)) {
- data.width = 425;
- data.height = 350;
- data.params.frameborder = '0';
- data.type = 'iframe';
- src = 'http://www.youtube.com/embed/' + src.match(/youtu.be\/([a-z1-9.-_]+)/)[1];
- setVal('src', src);
- setVal('media_type', data.type);
- }
-
- // YouTube
- if (src.match(/youtube.com(.+)v=([^&]+)/)) {
- data.width = 425;
- data.height = 350;
- data.params.frameborder = '0';
- data.type = 'iframe';
- src = 'http://www.youtube.com/embed/' + src.match(/v=([^&]+)/)[1];
- setVal('src', src);
- setVal('media_type', data.type);
- }
-
- // Google video
- if (src.match(/video.google.com(.+)docid=([^&]+)/)) {
- data.width = 425;
- data.height = 326;
- data.type = 'flash';
- src = 'http://video.google.com/googleplayer.swf?docId=' + src.match(/docid=([^&]+)/)[1] + '&hl=en';
- setVal('src', src);
- setVal('media_type', data.type);
- }
-
- if (data.type == 'video') {
- if (!data.video.sources)
- data.video.sources = [];
-
- data.video.sources[0] = {src : src};
-
- src = getVal("video_altsource1");
- if (src)
- data.video.sources[1] = {src : src};
-
- src = getVal("video_altsource2");
- if (src)
- data.video.sources[2] = {src : src};
- } else if (data.type == 'audio') {
- if (!data.video.sources)
- data.video.sources = [];
-
- data.video.sources[0] = {src : src};
-
- src = getVal("audio_altsource1");
- if (src)
- data.video.sources[1] = {src : src};
-
- src = getVal("audio_altsource2");
- if (src)
- data.video.sources[2] = {src : src};
- } else
- data.params.src = src;
-
- // Set default size
- setVal('width', data.width || (data.type == 'audio' ? 300 : 320));
- setVal('height', data.height || (data.type == 'audio' ? 32 : 240));
- }
- },
-
- dataToForm : function() {
- this.moveStates(true);
- },
-
- formToData : function(field) {
- if (field == "width" || field == "height")
- this.changeSize(field);
-
- if (field == 'source') {
- this.moveStates(false, field);
- setVal('source', this.editor.plugins.media.dataToHtml(this.data));
- this.panel = 'source';
- } else {
- if (this.panel == 'source') {
- this.data = clone(this.editor.plugins.media.htmlToData(getVal('source')));
- this.dataToForm();
- this.panel = '';
- }
-
- this.moveStates(false, field);
- this.preview();
- }
- },
-
- beforeResize : function() {
- this.width = parseInt(getVal('width') || (this.data.type == 'audio' ? "300" : "320"), 10);
- this.height = parseInt(getVal('height') || (this.data.type == 'audio' ? "32" : "240"), 10);
- },
-
- changeSize : function(type) {
- var width, height, scale, size;
-
- if (get('constrain').checked) {
- width = parseInt(getVal('width') || (this.data.type == 'audio' ? "300" : "320"), 10);
- height = parseInt(getVal('height') || (this.data.type == 'audio' ? "32" : "240"), 10);
-
- if (type == 'width') {
- this.height = Math.round((width / this.width) * height);
- setVal('height', this.height);
- } else {
- this.width = Math.round((height / this.height) * width);
- setVal('width', this.width);
- }
- }
- },
-
- getMediaListHTML : function() {
- if (typeof(tinyMCEMediaList) != "undefined" && tinyMCEMediaList.length > 0) {
- var html = "";
-
- html += '';
-
- return html;
- }
-
- return "";
- },
-
- getMediaTypeHTML : function(editor) {
- function option(media_type, element) {
- if (!editor.schema.getElementRule(element || media_type)) {
- return '';
- }
-
- return ''
- }
-
- var html = "";
-
- html += '';
- return html;
- },
-
- setDefaultDialogSettings : function(editor) {
- var defaultDialogSettings = editor.getParam("media_dialog_defaults", {});
- tinymce.each(defaultDialogSettings, function(v, k) {
- setVal(k, v);
- });
- }
- };
-
- tinyMCEPopup.requireLangPack();
- tinyMCEPopup.onInit.add(function() {
- Media.init();
- });
-})();
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js b/library/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js
deleted file mode 100644
index ecef3a801..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/media/langs/en_dlg.js
+++ /dev/null
@@ -1 +0,0 @@
-tinyMCE.addI18n('en.media_dlg',{list:"List",file:"File/URL",advanced:"Advanced",general:"General",title:"Insert/Edit Embedded Media","align_top_left":"Top Left","align_center":"Center","align_left":"Left","align_bottom":"Bottom","align_right":"Right","align_top":"Top","qt_stream_warn":"Streamed RTSP resources should be added to the QT Source field under the Advanced tab.\nYou should also add a non-streamed version to the Source field.",qtsrc:"QT Source",progress:"Progress",sound:"Sound",swstretchvalign:"Stretch V-Align",swstretchhalign:"Stretch H-Align",swstretchstyle:"Stretch Style",scriptcallbacks:"Script Callbacks","align_top_right":"Top Right",uimode:"UI Mode",rate:"Rate",playcount:"Play Count",defaultframe:"Default Frame",currentposition:"Current Position",currentmarker:"Current Marker",captioningid:"Captioning ID",baseurl:"Base URL",balance:"Balance",windowlessvideo:"Windowless Video",stretchtofit:"Stretch to Fit",mute:"Mute",invokeurls:"Invoke URLs",fullscreen:"Full Screen",enabled:"Enabled",autostart:"Auto Start",volume:"Volume",target:"Target",qtsrcchokespeed:"Choke Speed",href:"HREF",endtime:"End Time",starttime:"Start Time",enablejavascript:"Enable JavaScript",correction:"No Correction",targetcache:"Target Cache",playeveryframe:"Play Every Frame",kioskmode:"Kiosk Mode",controller:"Controller",menu:"Show Menu",loop:"Loop",play:"Auto Play",hspace:"H-Space",vspace:"V-Space","class_name":"Class",name:"Name",id:"ID",type:"Type",size:"Dimensions",preview:"Preview","constrain_proportions":"Constrain Proportions",controls:"Controls",numloop:"Num Loops",console:"Console",cache:"Cache",autohref:"Auto HREF",liveconnect:"SWLiveConnect",flashvars:"Flash Vars",base:"Base",bgcolor:"Background",wmode:"WMode",salign:"SAlign",align:"Align",scale:"Scale",quality:"Quality",shuffle:"Shuffle",prefetch:"Prefetch",nojava:"No Java",maintainaspect:"Maintain Aspect",imagestatus:"Image Status",center:"Center",autogotourl:"Auto Goto URL","shockwave_options":"Shockwave Options","rmp_options":"Real Media Player Options","wmp_options":"Windows Media Player Options","qt_options":"QuickTime Options","flash_options":"Flash Options",hidden:"Hidden","align_bottom_left":"Bottom Left","align_bottom_right":"Bottom Right","html5_video_options":"HTML5 Video Options",altsource1:"Alternative source 1",altsource2:"Alternative source 2",preload:"Preload",poster:"Poster",source:"Source","html5_audio_options":"Audio Options","preload_none":"Don\'t Preload","preload_metadata":"Preload video metadata","preload_auto":"Let user\'s browser decide", "embedded_audio_options":"Embedded Audio Options", video:"HTML5 Video", audio:"HTML5 Audio", flash:"Flash", quicktime:"QuickTime", shockwave:"Shockwave", windowsmedia:"Windows Media", realmedia:"Real Media", iframe:"Iframe", embeddedaudio:"Embedded Audio" });
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/media/media.htm b/library/tinymce/jscripts/tiny_mce/plugins/media/media.htm
deleted file mode 100644
index 957d83a68..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/media/media.htm
+++ /dev/null
@@ -1,922 +0,0 @@
-
-
-
- {#media_dlg.title}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf b/library/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf
deleted file mode 100644
index 585d772d6..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/media/moxieplayer.swf and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js
deleted file mode 100644
index 687f54866..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create("tinymce.plugins.Nonbreaking",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceNonBreaking",function(){a.execCommand("mceInsertContent",false,(a.plugins.visualchars&&a.plugins.visualchars.state)?' ':" ")});a.addButton("nonbreaking",{title:"nonbreaking.nonbreaking_desc",cmd:"mceNonBreaking"});if(a.getParam("nonbreaking_force_tab")){a.onKeyDown.add(function(d,f){if(f.keyCode==9){f.preventDefault();d.execCommand("mceNonBreaking");d.execCommand("mceNonBreaking");d.execCommand("mceNonBreaking")}})}},getInfo:function(){return{longname:"Nonbreaking space",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("nonbreaking",tinymce.plugins.Nonbreaking)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js
deleted file mode 100644
index d492fbefe..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/nonbreaking/editor_plugin_src.js
+++ /dev/null
@@ -1,54 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- tinymce.create('tinymce.plugins.Nonbreaking', {
- init : function(ed, url) {
- var t = this;
-
- t.editor = ed;
-
- // Register commands
- ed.addCommand('mceNonBreaking', function() {
- ed.execCommand('mceInsertContent', false, (ed.plugins.visualchars && ed.plugins.visualchars.state) ? ' ' : ' ');
- });
-
- // Register buttons
- ed.addButton('nonbreaking', {title : 'nonbreaking.nonbreaking_desc', cmd : 'mceNonBreaking'});
-
- if (ed.getParam('nonbreaking_force_tab')) {
- ed.onKeyDown.add(function(ed, e) {
- if (e.keyCode == 9) {
- e.preventDefault();
-
- ed.execCommand('mceNonBreaking');
- ed.execCommand('mceNonBreaking');
- ed.execCommand('mceNonBreaking');
- }
- });
- }
- },
-
- getInfo : function() {
- return {
- longname : 'Nonbreaking space',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/nonbreaking',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
-
- // Private methods
- });
-
- // Register plugin
- tinymce.PluginManager.add('nonbreaking', tinymce.plugins.Nonbreaking);
-})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js
deleted file mode 100644
index e204328d9..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var c=tinymce.dom.TreeWalker;var a="contenteditable",d="data-mce-"+a;var e=tinymce.VK;function b(n){var j=n.dom,p=n.selection,r,o="mce_noneditablecaret";r=tinymce.isGecko?"\u200B":"\uFEFF";function m(t){var s;if(t.nodeType===1){s=t.getAttribute(d);if(s&&s!=="inherit"){return s}s=t.contentEditable;if(s!=="inherit"){return s}}return null}function g(s){var t;while(s){t=m(s);if(t){return t==="false"?s:null}s=s.parentNode}}function l(s){while(s){if(s.id===o){return s}s=s.parentNode}}function k(s){var t;if(s){t=new c(s,s);for(s=t.current();s;s=t.next()){if(s.nodeType===3){return s}}}}function f(v,u){var s,t;if(m(v)==="false"){if(j.isBlock(v)){p.select(v);return}}t=j.createRng();if(m(v)==="true"){if(!v.firstChild){v.appendChild(n.getDoc().createTextNode("\u00a0"))}v=v.firstChild;u=true}s=j.create("span",{id:o,"data-mce-bogus":true},r);if(u){v.parentNode.insertBefore(s,v)}else{j.insertAfter(s,v)}t.setStart(s.firstChild,1);t.collapse(true);p.setRng(t);return s}function i(s){var v,t,u;if(s){rng=p.getRng(true);rng.setStartBefore(s);rng.setEndBefore(s);v=k(s);if(v&&v.nodeValue.charAt(0)==r){v=v.deleteData(0,1)}j.remove(s,true);p.setRng(rng)}else{t=l(p.getStart());while((s=j.get(o))&&s!==u){if(t!==s){v=k(s);if(v&&v.nodeValue.charAt(0)==r){v=v.deleteData(0,1)}j.remove(s,true)}u=s}}}function q(){var s,w,u,t,v;function x(B,D){var A,F,E,C,z;A=t.startContainer;F=t.startOffset;if(A.nodeType==3){z=A.nodeValue.length;if((F>0&&F0?F-1:F;A=A.childNodes[G];if(A.hasChildNodes()){A=A.firstChild}}else{return !D?B:null}}E=new c(A,B);while(C=E[D?"prev":"next"]()){if(C.nodeType===3&&C.nodeValue.length>0){return}else{if(m(C)==="true"){return C}}}return B}i();u=p.isCollapsed();s=g(p.getStart());w=g(p.getEnd());if(s||w){t=p.getRng(true);if(u){s=s||w;var y=p.getStart();if(v=x(s,true)){f(v,true)}else{if(v=x(s,false)){f(v,false)}else{p.select(s)}}}else{t=p.getRng(true);if(s){t.setStartBefore(s)}if(w){t.setEndAfter(w)}p.setRng(t)}}}function h(z,B){var F=B.keyCode,x,C,D,v;function u(H,G){while(H=H[G?"previousSibling":"nextSibling"]){if(H.nodeType!==3||H.nodeValue.length>0){return H}}}function y(G,H){p.select(G);p.collapse(H)}function t(K){var J,I,M,H;function G(O){var N=I;while(N){if(N===O){return}N=N.parentNode}j.remove(O);q()}function L(){var O,P,N=z.schema.getNonEmptyElements();P=new tinymce.dom.TreeWalker(I,z.getBody());while(O=(K?P.prev():P.next())){if(N[O.nodeName.toLowerCase()]){break}if(O.nodeType===3&&tinymce.trim(O.nodeValue).length>0){break}if(m(O)==="false"){G(O);return true}}if(g(O)){return true}return false}if(p.isCollapsed()){J=p.getRng(true);I=J.startContainer;M=J.startOffset;I=l(I)||I;if(H=g(I)){G(H);return false}if(I.nodeType==3&&(K?M>0:M124)&&F!=e.DELETE&&F!=e.BACKSPACE){if((tinymce.isMac?B.metaKey:B.ctrlKey)&&(F==67||F==88||F==86)){return}B.preventDefault();if(F==e.LEFT||F==e.RIGHT){var w=F==e.LEFT;if(z.dom.isBlock(x)){var A=w?x.previousSibling:x.nextSibling;var s=new c(A,A);var E=w?s.prev():s.next();y(E,!w)}else{y(x,w)}}}else{if(F==e.LEFT||F==e.RIGHT||F==e.BACKSPACE||F==e.DELETE){C=l(D);if(C){if(F==e.LEFT||F==e.BACKSPACE){x=u(C,true);if(x&&m(x)==="false"){B.preventDefault();if(F==e.LEFT){y(x,true)}else{j.remove(x);return}}else{i(C)}}if(F==e.RIGHT||F==e.DELETE){x=u(C);if(x&&m(x)==="false"){B.preventDefault();if(F==e.RIGHT){y(x,false)}else{j.remove(x);return}}else{i(C)}}}if((F==e.BACKSPACE||F==e.DELETE)&&!t(F==e.BACKSPACE)){B.preventDefault();return false}}}}n.onMouseDown.addToTop(function(s,u){var t=s.selection.getNode();if(m(t)==="false"&&t==u.target){q()}});n.onMouseUp.addToTop(q);n.onKeyDown.addToTop(h);n.onKeyUp.addToTop(q)}tinymce.create("tinymce.plugins.NonEditablePlugin",{init:function(i,k){var h,g,j;function f(m,n){var o=j.length,p=n.content,l=tinymce.trim(g);if(n.format=="raw"){return}while(o--){p=p.replace(j[o],function(s){var r=arguments,q=r[r.length-2];if(q>0&&p.charAt(q-1)=='"'){return s}return''+m.dom.encode(typeof(r[1])==="string"?r[1]:r[0])+""})}n.content=p}h=" "+tinymce.trim(i.getParam("noneditable_editable_class","mceEditable"))+" ";g=" "+tinymce.trim(i.getParam("noneditable_noneditable_class","mceNonEditable"))+" ";j=i.getParam("noneditable_regexp");if(j&&!j.length){j=[j]}i.onPreInit.add(function(){b(i);if(j){i.selection.onBeforeSetContent.add(f);i.onBeforeSetContent.add(f)}i.parser.addAttributeFilter("class",function(l){var m=l.length,n,o;while(m--){o=l[m];n=" "+o.attr("class")+" ";if(n.indexOf(h)!==-1){o.attr(d,"true")}else{if(n.indexOf(g)!==-1){o.attr(d,"false")}}}});i.serializer.addAttributeFilter(d,function(l,m){var n=l.length,o;while(n--){o=l[n];if(j&&o.attr("data-mce-content")){o.name="#text";o.type=3;o.raw=true;o.value=o.attr("data-mce-content")}else{o.attr(a,null);o.attr(d,null)}}});i.parser.addAttributeFilter(a,function(l,m){var n=l.length,o;while(n--){o=l[n];o.attr(d,o.attr(a));o.attr(a,null)}})})},getInfo:function(){return{longname:"Non editable elements",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("noneditable",tinymce.plugins.NonEditablePlugin)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js
deleted file mode 100644
index c0efe749c..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/noneditable/editor_plugin_src.js
+++ /dev/null
@@ -1,540 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- var TreeWalker = tinymce.dom.TreeWalker;
- var externalName = 'contenteditable', internalName = 'data-mce-' + externalName;
- var VK = tinymce.VK;
-
- function handleContentEditableSelection(ed) {
- var dom = ed.dom, selection = ed.selection, invisibleChar, caretContainerId = 'mce_noneditablecaret';
-
- // Setup invisible character use zero width space on Gecko since it doesn't change the height of the container
- invisibleChar = tinymce.isGecko ? '\u200B' : '\uFEFF';
-
- // Returns the content editable state of a node "true/false" or null
- function getContentEditable(node) {
- var contentEditable;
-
- // Ignore non elements
- if (node.nodeType === 1) {
- // Check for fake content editable
- contentEditable = node.getAttribute(internalName);
- if (contentEditable && contentEditable !== "inherit") {
- return contentEditable;
- }
-
- // Check for real content editable
- contentEditable = node.contentEditable;
- if (contentEditable !== "inherit") {
- return contentEditable;
- }
- }
-
- return null;
- };
-
- // Returns the noneditable parent or null if there is a editable before it or if it wasn't found
- function getNonEditableParent(node) {
- var state;
-
- while (node) {
- state = getContentEditable(node);
- if (state) {
- return state === "false" ? node : null;
- }
-
- node = node.parentNode;
- }
- };
-
- // Get caret container parent for the specified node
- function getParentCaretContainer(node) {
- while (node) {
- if (node.id === caretContainerId) {
- return node;
- }
-
- node = node.parentNode;
- }
- };
-
- // Finds the first text node in the specified node
- function findFirstTextNode(node) {
- var walker;
-
- if (node) {
- walker = new TreeWalker(node, node);
-
- for (node = walker.current(); node; node = walker.next()) {
- if (node.nodeType === 3) {
- return node;
- }
- }
- }
- };
-
- // Insert caret container before/after target or expand selection to include block
- function insertCaretContainerOrExpandToBlock(target, before) {
- var caretContainer, rng;
-
- // Select block
- if (getContentEditable(target) === "false") {
- if (dom.isBlock(target)) {
- selection.select(target);
- return;
- }
- }
-
- rng = dom.createRng();
-
- if (getContentEditable(target) === "true") {
- if (!target.firstChild) {
- target.appendChild(ed.getDoc().createTextNode('\u00a0'));
- }
-
- target = target.firstChild;
- before = true;
- }
-
- //caretContainer = dom.create('span', {id: caretContainerId, 'data-mce-bogus': true, style:'border: 1px solid red'}, invisibleChar);
- caretContainer = dom.create('span', {id: caretContainerId, 'data-mce-bogus': true}, invisibleChar);
-
- if (before) {
- target.parentNode.insertBefore(caretContainer, target);
- } else {
- dom.insertAfter(caretContainer, target);
- }
-
- rng.setStart(caretContainer.firstChild, 1);
- rng.collapse(true);
- selection.setRng(rng);
-
- return caretContainer;
- };
-
- // Removes any caret container except the one we might be in
- function removeCaretContainer(caretContainer) {
- var child, currentCaretContainer, lastContainer;
-
- if (caretContainer) {
- rng = selection.getRng(true);
- rng.setStartBefore(caretContainer);
- rng.setEndBefore(caretContainer);
-
- child = findFirstTextNode(caretContainer);
- if (child && child.nodeValue.charAt(0) == invisibleChar) {
- child = child.deleteData(0, 1);
- }
-
- dom.remove(caretContainer, true);
-
- selection.setRng(rng);
- } else {
- currentCaretContainer = getParentCaretContainer(selection.getStart());
- while ((caretContainer = dom.get(caretContainerId)) && caretContainer !== lastContainer) {
- if (currentCaretContainer !== caretContainer) {
- child = findFirstTextNode(caretContainer);
- if (child && child.nodeValue.charAt(0) == invisibleChar) {
- child = child.deleteData(0, 1);
- }
-
- dom.remove(caretContainer, true);
- }
-
- lastContainer = caretContainer;
- }
- }
- };
-
- // Modifies the selection to include contentEditable false elements or insert caret containers
- function moveSelection() {
- var nonEditableStart, nonEditableEnd, isCollapsed, rng, element;
-
- // Checks if there is any contents to the left/right side of caret returns the noneditable element or any editable element if it finds one inside
- function hasSideContent(element, left) {
- var container, offset, walker, node, len;
-
- container = rng.startContainer;
- offset = rng.startOffset;
-
- // If endpoint is in middle of text node then expand to beginning/end of element
- if (container.nodeType == 3) {
- len = container.nodeValue.length;
- if ((offset > 0 && offset < len) || (left ? offset == len : offset == 0)) {
- return;
- }
- } else {
- // Can we resolve the node by index
- if (offset < container.childNodes.length) {
- // Browser represents caret position as the offset at the start of an element. When moving right
- // this is the element we are moving into so we consider our container to be child node at offset-1
- var pos = !left && offset > 0 ? offset-1 : offset;
- container = container.childNodes[pos];
- if (container.hasChildNodes()) {
- container = container.firstChild;
- }
- } else {
- // If not then the caret is at the last position in it's container and the caret container should be inserted after the noneditable element
- return !left ? element : null;
- }
- }
-
- // Walk left/right to look for contents
- walker = new TreeWalker(container, element);
- while (node = walker[left ? 'prev' : 'next']()) {
- if (node.nodeType === 3 && node.nodeValue.length > 0) {
- return;
- } else if (getContentEditable(node) === "true") {
- // Found contentEditable=true element return this one to we can move the caret inside it
- return node;
- }
- }
-
- return element;
- };
-
- // Remove any existing caret containers
- removeCaretContainer();
-
- // Get noneditable start/end elements
- isCollapsed = selection.isCollapsed();
- nonEditableStart = getNonEditableParent(selection.getStart());
- nonEditableEnd = getNonEditableParent(selection.getEnd());
-
- // Is any fo the range endpoints noneditable
- if (nonEditableStart || nonEditableEnd) {
- rng = selection.getRng(true);
-
- // If it's a caret selection then look left/right to see if we need to move the caret out side or expand
- if (isCollapsed) {
- nonEditableStart = nonEditableStart || nonEditableEnd;
- var start = selection.getStart();
- if (element = hasSideContent(nonEditableStart, true)) {
- // We have no contents to the left of the caret then insert a caret container before the noneditable element
- insertCaretContainerOrExpandToBlock(element, true);
- } else if (element = hasSideContent(nonEditableStart, false)) {
- // We have no contents to the right of the caret then insert a caret container after the noneditable element
- insertCaretContainerOrExpandToBlock(element, false);
- } else {
- // We are in the middle of a noneditable so expand to select it
- selection.select(nonEditableStart);
- }
- } else {
- rng = selection.getRng(true);
-
- // Expand selection to include start non editable element
- if (nonEditableStart) {
- rng.setStartBefore(nonEditableStart);
- }
-
- // Expand selection to include end non editable element
- if (nonEditableEnd) {
- rng.setEndAfter(nonEditableEnd);
- }
-
- selection.setRng(rng);
- }
- }
- };
-
- function handleKey(ed, e) {
- var keyCode = e.keyCode, nonEditableParent, caretContainer, startElement, endElement;
-
- function getNonEmptyTextNodeSibling(node, prev) {
- while (node = node[prev ? 'previousSibling' : 'nextSibling']) {
- if (node.nodeType !== 3 || node.nodeValue.length > 0) {
- return node;
- }
- }
- };
-
- function positionCaretOnElement(element, start) {
- selection.select(element);
- selection.collapse(start);
- }
-
- function canDelete(backspace) {
- var rng, container, offset, nonEditableParent;
-
- function removeNodeIfNotParent(node) {
- var parent = container;
-
- while (parent) {
- if (parent === node) {
- return;
- }
-
- parent = parent.parentNode;
- }
-
- dom.remove(node);
- moveSelection();
- }
-
- function isNextPrevTreeNodeNonEditable() {
- var node, walker, nonEmptyElements = ed.schema.getNonEmptyElements();
-
- walker = new tinymce.dom.TreeWalker(container, ed.getBody());
- while (node = (backspace ? walker.prev() : walker.next())) {
- // Found IMG/INPUT etc
- if (nonEmptyElements[node.nodeName.toLowerCase()]) {
- break;
- }
-
- // Found text node with contents
- if (node.nodeType === 3 && tinymce.trim(node.nodeValue).length > 0) {
- break;
- }
-
- // Found non editable node
- if (getContentEditable(node) === "false") {
- removeNodeIfNotParent(node);
- return true;
- }
- }
-
- // Check if the content node is within a non editable parent
- if (getNonEditableParent(node)) {
- return true;
- }
-
- return false;
- }
-
- if (selection.isCollapsed()) {
- rng = selection.getRng(true);
- container = rng.startContainer;
- offset = rng.startOffset;
- container = getParentCaretContainer(container) || container;
-
- // Is in noneditable parent
- if (nonEditableParent = getNonEditableParent(container)) {
- removeNodeIfNotParent(nonEditableParent);
- return false;
- }
-
- // Check if the caret is in the middle of a text node
- if (container.nodeType == 3 && (backspace ? offset > 0 : offset < container.nodeValue.length)) {
- return true;
- }
-
- // Resolve container index
- if (container.nodeType == 1) {
- container = container.childNodes[offset] || container;
- }
-
- // Check if previous or next tree node is non editable then block the event
- if (isNextPrevTreeNodeNonEditable()) {
- return false;
- }
- }
-
- return true;
- }
-
- startElement = selection.getStart()
- endElement = selection.getEnd();
-
- // Disable all key presses in contentEditable=false except delete or backspace
- nonEditableParent = getNonEditableParent(startElement) || getNonEditableParent(endElement);
- if (nonEditableParent && (keyCode < 112 || keyCode > 124) && keyCode != VK.DELETE && keyCode != VK.BACKSPACE) {
- // Is Ctrl+c, Ctrl+v or Ctrl+x then use default browser behavior
- if ((tinymce.isMac ? e.metaKey : e.ctrlKey) && (keyCode == 67 || keyCode == 88 || keyCode == 86)) {
- return;
- }
-
- e.preventDefault();
-
- // Arrow left/right select the element and collapse left/right
- if (keyCode == VK.LEFT || keyCode == VK.RIGHT) {
- var left = keyCode == VK.LEFT;
- // If a block element find previous or next element to position the caret
- if (ed.dom.isBlock(nonEditableParent)) {
- var targetElement = left ? nonEditableParent.previousSibling : nonEditableParent.nextSibling;
- var walker = new TreeWalker(targetElement, targetElement);
- var caretElement = left ? walker.prev() : walker.next();
- positionCaretOnElement(caretElement, !left);
- } else {
- positionCaretOnElement(nonEditableParent, left);
- }
- }
- } else {
- // Is arrow left/right, backspace or delete
- if (keyCode == VK.LEFT || keyCode == VK.RIGHT || keyCode == VK.BACKSPACE || keyCode == VK.DELETE) {
- caretContainer = getParentCaretContainer(startElement);
- if (caretContainer) {
- // Arrow left or backspace
- if (keyCode == VK.LEFT || keyCode == VK.BACKSPACE) {
- nonEditableParent = getNonEmptyTextNodeSibling(caretContainer, true);
-
- if (nonEditableParent && getContentEditable(nonEditableParent) === "false") {
- e.preventDefault();
-
- if (keyCode == VK.LEFT) {
- positionCaretOnElement(nonEditableParent, true);
- } else {
- dom.remove(nonEditableParent);
- return;
- }
- } else {
- removeCaretContainer(caretContainer);
- }
- }
-
- // Arrow right or delete
- if (keyCode == VK.RIGHT || keyCode == VK.DELETE) {
- nonEditableParent = getNonEmptyTextNodeSibling(caretContainer);
-
- if (nonEditableParent && getContentEditable(nonEditableParent) === "false") {
- e.preventDefault();
-
- if (keyCode == VK.RIGHT) {
- positionCaretOnElement(nonEditableParent, false);
- } else {
- dom.remove(nonEditableParent);
- return;
- }
- } else {
- removeCaretContainer(caretContainer);
- }
- }
- }
-
- if ((keyCode == VK.BACKSPACE || keyCode == VK.DELETE) && !canDelete(keyCode == VK.BACKSPACE)) {
- e.preventDefault();
- return false;
- }
- }
- }
- };
-
- ed.onMouseDown.addToTop(function(ed, e) {
- var node = ed.selection.getNode();
-
- if (getContentEditable(node) === "false" && node == e.target) {
- // Expand selection on mouse down we can't block the default event since it's used for drag/drop
- moveSelection();
- }
- });
-
- ed.onMouseUp.addToTop(moveSelection);
- ed.onKeyDown.addToTop(handleKey);
- ed.onKeyUp.addToTop(moveSelection);
- };
-
- tinymce.create('tinymce.plugins.NonEditablePlugin', {
- init : function(ed, url) {
- var editClass, nonEditClass, nonEditableRegExps;
-
- // Converts configured regexps to noneditable span items
- function convertRegExpsToNonEditable(ed, args) {
- var i = nonEditableRegExps.length, content = args.content, cls = tinymce.trim(nonEditClass);
-
- // Don't replace the variables when raw is used for example on undo/redo
- if (args.format == "raw") {
- return;
- }
-
- while (i--) {
- content = content.replace(nonEditableRegExps[i], function(match) {
- var args = arguments, index = args[args.length - 2];
-
- // Is value inside an attribute then don't replace
- if (index > 0 && content.charAt(index - 1) == '"') {
- return match;
- }
-
- return '' + ed.dom.encode(typeof(args[1]) === "string" ? args[1] : args[0]) + '';
- });
- }
-
- args.content = content;
- };
-
- editClass = " " + tinymce.trim(ed.getParam("noneditable_editable_class", "mceEditable")) + " ";
- nonEditClass = " " + tinymce.trim(ed.getParam("noneditable_noneditable_class", "mceNonEditable")) + " ";
-
- // Setup noneditable regexps array
- nonEditableRegExps = ed.getParam("noneditable_regexp");
- if (nonEditableRegExps && !nonEditableRegExps.length) {
- nonEditableRegExps = [nonEditableRegExps];
- }
-
- ed.onPreInit.add(function() {
- handleContentEditableSelection(ed);
-
- if (nonEditableRegExps) {
- ed.selection.onBeforeSetContent.add(convertRegExpsToNonEditable);
- ed.onBeforeSetContent.add(convertRegExpsToNonEditable);
- }
-
- // Apply contentEditable true/false on elements with the noneditable/editable classes
- ed.parser.addAttributeFilter('class', function(nodes) {
- var i = nodes.length, className, node;
-
- while (i--) {
- node = nodes[i];
- className = " " + node.attr("class") + " ";
-
- if (className.indexOf(editClass) !== -1) {
- node.attr(internalName, "true");
- } else if (className.indexOf(nonEditClass) !== -1) {
- node.attr(internalName, "false");
- }
- }
- });
-
- // Remove internal name
- ed.serializer.addAttributeFilter(internalName, function(nodes, name) {
- var i = nodes.length, node;
-
- while (i--) {
- node = nodes[i];
-
- if (nonEditableRegExps && node.attr('data-mce-content')) {
- node.name = "#text";
- node.type = 3;
- node.raw = true;
- node.value = node.attr('data-mce-content');
- } else {
- node.attr(externalName, null);
- node.attr(internalName, null);
- }
- }
- });
-
- // Convert external name into internal name
- ed.parser.addAttributeFilter(externalName, function(nodes, name) {
- var i = nodes.length, node;
-
- while (i--) {
- node = nodes[i];
- node.attr(internalName, node.attr(externalName));
- node.attr(externalName, null);
- }
- });
- });
- },
-
- getInfo : function() {
- return {
- longname : 'Non editable elements',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/noneditable',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('noneditable', tinymce.plugins.NonEditablePlugin);
-})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js
deleted file mode 100644
index 35085e8ad..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create("tinymce.plugins.PageBreakPlugin",{init:function(b,d){var f='',a="mcePageBreak",c=b.getParam("pagebreak_separator",""),e;e=new RegExp(c.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g,function(g){return"\\"+g}),"g");b.addCommand("mcePageBreak",function(){b.execCommand("mceInsertContent",0,f)});b.addButton("pagebreak",{title:"pagebreak.desc",cmd:a});b.onInit.add(function(){if(b.theme.onResolveName){b.theme.onResolveName.add(function(g,h){if(h.node.nodeName=="IMG"&&b.dom.hasClass(h.node,a)){h.name="pagebreak"}})}});b.onClick.add(function(g,h){h=h.target;if(h.nodeName==="IMG"&&g.dom.hasClass(h,a)){g.selection.select(h)}});b.onNodeChange.add(function(h,g,i){g.setActive("pagebreak",i.nodeName==="IMG"&&h.dom.hasClass(i,a))});b.onBeforeSetContent.add(function(g,h){h.content=h.content.replace(e,f)});b.onPostProcess.add(function(g,h){if(h.get){h.content=h.content.replace(/]+>/g,function(i){if(i.indexOf('class="mcePageBreak')!==-1){i=c}return i})}})},getInfo:function(){return{longname:"PageBreak",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("pagebreak",tinymce.plugins.PageBreakPlugin)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js
deleted file mode 100644
index a094c1916..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/pagebreak/editor_plugin_src.js
+++ /dev/null
@@ -1,74 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- tinymce.create('tinymce.plugins.PageBreakPlugin', {
- init : function(ed, url) {
- var pb = '', cls = 'mcePageBreak', sep = ed.getParam('pagebreak_separator', ''), pbRE;
-
- pbRE = new RegExp(sep.replace(/[\?\.\*\[\]\(\)\{\}\+\^\$\:]/g, function(a) {return '\\' + a;}), 'g');
-
- // Register commands
- ed.addCommand('mcePageBreak', function() {
- ed.execCommand('mceInsertContent', 0, pb);
- });
-
- // Register buttons
- ed.addButton('pagebreak', {title : 'pagebreak.desc', cmd : cls});
-
- ed.onInit.add(function() {
- if (ed.theme.onResolveName) {
- ed.theme.onResolveName.add(function(th, o) {
- if (o.node.nodeName == 'IMG' && ed.dom.hasClass(o.node, cls))
- o.name = 'pagebreak';
- });
- }
- });
-
- ed.onClick.add(function(ed, e) {
- e = e.target;
-
- if (e.nodeName === 'IMG' && ed.dom.hasClass(e, cls))
- ed.selection.select(e);
- });
-
- ed.onNodeChange.add(function(ed, cm, n) {
- cm.setActive('pagebreak', n.nodeName === 'IMG' && ed.dom.hasClass(n, cls));
- });
-
- ed.onBeforeSetContent.add(function(ed, o) {
- o.content = o.content.replace(pbRE, pb);
- });
-
- ed.onPostProcess.add(function(ed, o) {
- if (o.get)
- o.content = o.content.replace(/]+>/g, function(im) {
- if (im.indexOf('class="mcePageBreak') !== -1)
- im = sep;
-
- return im;
- });
- });
- },
-
- getInfo : function() {
- return {
- longname : 'PageBreak',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/pagebreak',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('pagebreak', tinymce.plugins.PageBreakPlugin);
-})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js
deleted file mode 100644
index be7eee8f1..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var c=tinymce.each,a={paste_auto_cleanup_on_paste:true,paste_enable_default_filters:true,paste_block_drop:false,paste_retain_style_properties:"none",paste_strip_class_attributes:"mso",paste_remove_spans:false,paste_remove_styles:false,paste_remove_styles_if_webkit:true,paste_convert_middot_lists:true,paste_convert_headers_to_strong:false,paste_dialog_width:"450",paste_dialog_height:"400",paste_text_use_dialog:false,paste_text_sticky:false,paste_text_sticky_default:false,paste_text_notifyalways:false,paste_text_linebreaktype:"combined",paste_text_replacements:[[/\u2026/g,"..."],[/[\x93\x94\u201c\u201d]/g,'"'],[/[\x60\x91\x92\u2018\u2019]/g,"'"]]};function b(d,e){return d.getParam(e,a[e])}tinymce.create("tinymce.plugins.PastePlugin",{init:function(d,e){var f=this;f.editor=d;f.url=e;f.onPreProcess=new tinymce.util.Dispatcher(f);f.onPostProcess=new tinymce.util.Dispatcher(f);f.onPreProcess.add(f._preProcess);f.onPostProcess.add(f._postProcess);f.onPreProcess.add(function(i,j){d.execCallback("paste_preprocess",i,j)});f.onPostProcess.add(function(i,j){d.execCallback("paste_postprocess",i,j)});d.onKeyDown.addToTop(function(i,j){if(((tinymce.isMac?j.metaKey:j.ctrlKey)&&j.keyCode==86)||(j.shiftKey&&j.keyCode==45)){return false}});d.pasteAsPlainText=b(d,"paste_text_sticky_default");function h(l,j){var k=d.dom,i;f.onPreProcess.dispatch(f,l);l.node=k.create("div",0,l.content);if(tinymce.isGecko){i=d.selection.getRng(true);if(i.startContainer==i.endContainer&&i.startContainer.nodeType==3){if(l.node.childNodes.length===1&&/^(p|h[1-6]|pre)$/i.test(l.node.firstChild.nodeName)&&l.content.indexOf("__MCE_ITEM__")===-1){k.remove(l.node.firstChild,true)}}}f.onPostProcess.dispatch(f,l);l.content=d.serializer.serialize(l.node,{getInner:1,forced_root_block:""});if((!j)&&(d.pasteAsPlainText)){f._insertPlainText(l.content);if(!b(d,"paste_text_sticky")){d.pasteAsPlainText=false;d.controlManager.setActive("pastetext",false)}}else{f._insert(l.content)}}d.addCommand("mceInsertClipboardContent",function(i,j){h(j,true)});if(!b(d,"paste_text_use_dialog")){d.addCommand("mcePasteText",function(j,i){var k=tinymce.util.Cookie;d.pasteAsPlainText=!d.pasteAsPlainText;d.controlManager.setActive("pastetext",d.pasteAsPlainText);if((d.pasteAsPlainText)&&(!k.get("tinymcePasteText"))){if(b(d,"paste_text_sticky")){d.windowManager.alert(d.translate("paste.plaintext_mode_sticky"))}else{d.windowManager.alert(d.translate("paste.plaintext_mode"))}if(!b(d,"paste_text_notifyalways")){k.set("tinymcePasteText","1",new Date(new Date().getFullYear()+1,12,31))}}})}d.addButton("pastetext",{title:"paste.paste_text_desc",cmd:"mcePasteText"});d.addButton("selectall",{title:"paste.selectall_desc",cmd:"selectall"});function g(s){var l,p,j,t,k=d.selection,o=d.dom,q=d.getBody(),i,r;if(s.clipboardData||o.doc.dataTransfer){r=(s.clipboardData||o.doc.dataTransfer).getData("Text");if(d.pasteAsPlainText){s.preventDefault();h({content:o.encode(r).replace(/\r?\n/g,"
")});return}}if(o.get("_mcePaste")){return}l=o.add(q,"div",{id:"_mcePaste","class":"mcePaste","data-mce-bogus":"1"},"\uFEFF\uFEFF");if(q!=d.getDoc().body){i=o.getPos(d.selection.getStart(),q).y}else{i=q.scrollTop+o.getViewPort(d.getWin()).y}o.setStyles(l,{position:"absolute",left:tinymce.isGecko?-40:0,top:i-25,width:1,height:1,overflow:"hidden"});if(tinymce.isIE){t=k.getRng();j=o.doc.body.createTextRange();j.moveToElementText(l);j.execCommand("Paste");o.remove(l);if(l.innerHTML==="\uFEFF\uFEFF"){d.execCommand("mcePasteWord");s.preventDefault();return}k.setRng(t);k.setContent("");setTimeout(function(){h({content:l.innerHTML})},0);return tinymce.dom.Event.cancel(s)}else{function m(n){n.preventDefault()}o.bind(d.getDoc(),"mousedown",m);o.bind(d.getDoc(),"keydown",m);p=d.selection.getRng();l=l.firstChild;j=d.getDoc().createRange();j.setStart(l,0);j.setEnd(l,2);k.setRng(j);window.setTimeout(function(){var u="",n;if(!o.select("div.mcePaste > div.mcePaste").length){n=o.select("div.mcePaste");c(n,function(w){var v=w.firstChild;if(v&&v.nodeName=="DIV"&&v.style.marginTop&&v.style.backgroundColor){o.remove(v,1)}c(o.select("span.Apple-style-span",w),function(x){o.remove(x,1)});c(o.select("br[data-mce-bogus]",w),function(x){o.remove(x)});if(w.parentNode.className!="mcePaste"){u+=w.innerHTML}})}else{u=""+o.encode(r).replace(/\r?\n\r?\n/g,"
").replace(/\r?\n/g,"
")+"
"}c(o.select("div.mcePaste"),function(v){o.remove(v)});if(p){k.setRng(p)}h({content:u});o.unbind(d.getDoc(),"mousedown",m);o.unbind(d.getDoc(),"keydown",m)},0)}}if(b(d,"paste_auto_cleanup_on_paste")){if(tinymce.isOpera||/Firefox\/2/.test(navigator.userAgent)){d.onKeyDown.addToTop(function(i,j){if(((tinymce.isMac?j.metaKey:j.ctrlKey)&&j.keyCode==86)||(j.shiftKey&&j.keyCode==45)){g(j)}})}else{d.onPaste.addToTop(function(i,j){return g(j)})}}d.onInit.add(function(){d.controlManager.setActive("pastetext",d.pasteAsPlainText);if(b(d,"paste_block_drop")){d.dom.bind(d.getBody(),["dragend","dragover","draggesture","dragdrop","drop","drag"],function(i){i.preventDefault();i.stopPropagation();return false})}});f._legacySupport()},getInfo:function(){return{longname:"Paste text/word",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_preProcess:function(g,e){var k=this.editor,j=e.content,p=tinymce.grep,n=tinymce.explode,f=tinymce.trim,l,i;function d(h){c(h,function(o){if(o.constructor==RegExp){j=j.replace(o,"")}else{j=j.replace(o[0],o[1])}})}if(k.settings.paste_enable_default_filters==false){return}if(tinymce.isIE&&document.documentMode>=9&&/<(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)/.test(e.content)){d([[/(?:
[\s\r\n]+|
)*(<\/?(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)[^>]*>)(?:
[\s\r\n]+|
)*/g,"$1"]]);d([[/
/g,"
"],[/
/g," "],[/
/g,"
"]])}if(/class="?Mso|style="[^"]*\bmso-|w:WordDocument/i.test(j)||e.wordContent){e.wordContent=true;d([/^\s*( )+/gi,/( |
]*>)+\s*$/gi]);if(b(k,"paste_convert_headers_to_strong")){j=j.replace(/]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi,"
$1
")}if(b(k,"paste_convert_middot_lists")){d([[//gi,"$&__MCE_ITEM__"],[/(]+(?:mso-list:|:\s*symbol)[^>]+>)/gi,"$1__MCE_ITEM__"],[/(]+(?:MsoListParagraph)[^>]+>)/gi,"$1__MCE_ITEM__"]])}d([//gi,/<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,[/<(\/?)s>/gi,"<$1strike>"],[/ /gi,"\u00a0"]]);do{l=j.length;j=j.replace(/(<[a-z][^>]*\s)(?:id|name|language|type|on\w+|\w+:\w+)=(?:"[^"]*"|\w+)\s?/gi,"$1")}while(l!=j.length);if(b(k,"paste_retain_style_properties").replace(/^none$/i,"").length==0){j=j.replace(/<\/?span[^>]*>/gi,"")}else{d([[/([\s\u00a0]*)<\/span>/gi,function(o,h){return(h.length>0)?h.replace(/./," ").slice(Math.floor(h.length/2)).split("").join("\u00a0"):""}],[/(<[a-z][^>]*)\sstyle="([^"]*)"/gi,function(t,h,r){var u=[],o=0,q=n(f(r).replace(/"/gi,"'"),";");c(q,function(s){var w,y,z=n(s,":");function x(A){return A+((A!=="0")&&(/\d$/.test(A)))?"px":""}if(z.length==2){w=z[0].toLowerCase();y=z[1].toLowerCase();switch(w){case"mso-padding-alt":case"mso-padding-top-alt":case"mso-padding-right-alt":case"mso-padding-bottom-alt":case"mso-padding-left-alt":case"mso-margin-alt":case"mso-margin-top-alt":case"mso-margin-right-alt":case"mso-margin-bottom-alt":case"mso-margin-left-alt":case"mso-table-layout-alt":case"mso-height":case"mso-width":case"mso-vertical-align-alt":u[o++]=w.replace(/^mso-|-alt$/g,"")+":"+x(y);return;case"horiz-align":u[o++]="text-align:"+y;return;case"vert-align":u[o++]="vertical-align:"+y;return;case"font-color":case"mso-foreground":u[o++]="color:"+y;return;case"mso-background":case"mso-highlight":u[o++]="background:"+y;return;case"mso-default-height":u[o++]="min-height:"+x(y);return;case"mso-default-width":u[o++]="min-width:"+x(y);return;case"mso-padding-between-alt":u[o++]="border-collapse:separate;border-spacing:"+x(y);return;case"text-line-through":if((y=="single")||(y=="double")){u[o++]="text-decoration:line-through"}return;case"mso-zero-height":if(y=="yes"){u[o++]="display:none"}return}if(/^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?!align|decor|indent|trans)|top-bar|version|vnd|word-break)/.test(w)){return}u[o++]=w+":"+z[1]}});if(o>0){return h+' style="'+u.join(";")+'"'}else{return h}}]])}}if(b(k,"paste_convert_headers_to_strong")){d([[/]*>/gi,""],[/<\/h[1-6][^>]*>/gi,"
"]])}d([[/Version:[\d.]+\nStartHTML:\d+\nEndHTML:\d+\nStartFragment:\d+\nEndFragment:\d+/gi,""]]);i=b(k,"paste_strip_class_attributes");if(i!=="none"){function m(q,o){if(i==="all"){return""}var h=p(n(o.replace(/^(["'])(.*)\1$/,"$2")," "),function(r){return(/^(?!mso)/i.test(r))});return h.length?' class="'+h.join(" ")+'"':""}j=j.replace(/ class="([^"]+)"/gi,m);j=j.replace(/ class=([\-\w]+)/gi,m)}if(b(k,"paste_remove_spans")){j=j.replace(/<\/?span[^>]*>/gi,"")}e.content=j},_postProcess:function(g,i){var f=this,e=f.editor,h=e.dom,d;if(e.settings.paste_enable_default_filters==false){return}if(i.wordContent){c(h.select("a",i.node),function(j){if(!j.href||j.href.indexOf("#_Toc")!=-1){h.remove(j,1)}});if(b(e,"paste_convert_middot_lists")){f._convertLists(g,i)}d=b(e,"paste_retain_style_properties");if((tinymce.is(d,"string"))&&(d!=="all")&&(d!=="*")){d=tinymce.explode(d.replace(/^none$/i,""));c(h.select("*",i.node),function(m){var n={},k=0,l,o,j;if(d){for(l=0;l0){h.setStyles(m,n)}else{if(m.nodeName=="SPAN"&&!m.className){h.remove(m,true)}}})}}if(b(e,"paste_remove_styles")||(b(e,"paste_remove_styles_if_webkit")&&tinymce.isWebKit)){c(h.select("*[style]",i.node),function(j){j.removeAttribute("style");j.removeAttribute("data-mce-style")})}else{if(tinymce.isWebKit){c(h.select("*",i.node),function(j){j.removeAttribute("data-mce-style")})}}},_convertLists:function(g,e){var i=g.editor.dom,h,l,d=-1,f,m=[],k,j;c(i.select("p",e.node),function(t){var q,u="",s,r,n,o;for(q=t.firstChild;q&&q.nodeType==3;q=q.nextSibling){u+=q.nodeValue}u=t.innerHTML.replace(/<\/?\w+[^>]*>/gi,"").replace(/ /g,"\u00a0");if(/^(__MCE_ITEM__)+[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*\u00a0*/.test(u)){s="ul"}if(/^__MCE_ITEM__\s*\w+\.\s*\u00a0+/.test(u)){s="ol"}if(s){f=parseFloat(t.style.marginLeft||0);if(f>d){m.push(f)}if(!h||s!=k){h=i.create(s);i.insertAfter(h,t)}else{if(f>d){h=l.appendChild(i.create(s))}else{if(f]*>/gi,"");if(s=="ul"&&/^__MCE_ITEM__[\u2022\u00b7\u00a7\u00d8o\u25CF]/.test(p)){i.remove(v)}else{if(/^__MCE_ITEM__[\s\S]*\w+\.( |\u00a0)*\s*/.test(p)){i.remove(v)}}});r=t.innerHTML;if(s=="ul"){r=t.innerHTML.replace(/__MCE_ITEM__/g,"").replace(/^[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*( |\u00a0)+\s*/,"")}else{r=t.innerHTML.replace(/__MCE_ITEM__/g,"").replace(/^\s*\w+\.( |\u00a0)+\s*/,"")}l=h.appendChild(i.create("li",0,r));i.remove(t);d=f;k=s}else{h=d=0}});j=e.node.innerHTML;if(j.indexOf("__MCE_ITEM__")!=-1){e.node.innerHTML=j.replace(/__MCE_ITEM__/g,"")}},_insert:function(f,d){var e=this.editor,g=e.selection.getRng();if(!e.selection.isCollapsed()&&g.startContainer!=g.endContainer){e.getDoc().execCommand("Delete",false,null)}e.execCommand("mceInsertContent",false,f,{skip_undo:d})},_insertPlainText:function(g){var d=this.editor,e=b(d,"paste_text_linebreaktype"),i=b(d,"paste_text_replacements"),f=tinymce.is;function h(j){c(j,function(k){if(k.constructor==RegExp){g=g.replace(k,"")}else{g=g.replace(k[0],k[1])}})}if((typeof(g)==="string")&&(g.length>0)){if(/<(?:p|br|h[1-6]|ul|ol|dl|table|t[rdh]|div|blockquote|fieldset|pre|address|center)[^>]*>/i.test(g)){h([/[\n\r]+/g])}else{h([/\r+/g])}h([[/<\/(?:p|h[1-6]|ul|ol|dl|table|div|blockquote|fieldset|pre|address|center)>/gi,"\n\n"],[/
]*>|<\/tr>/gi,"\n"],[/<\/t[dh]>\s*]*>/gi,"\t"],/<[a-z!\/?][^>]*>/gi,[/ /gi," "],[/(?:(?!\n)\s)*(\n+)(?:(?!\n)\s)*/gi,"$1"],[/\n{3,}/g,"\n\n"]]);g=d.dom.decode(tinymce.html.Entities.encodeRaw(g));if(f(i,"array")){h(i)}else{if(f(i,"string")){h(new RegExp(i,"gi"))}}if(e=="none"){h([[/\n+/g," "]])}else{if(e=="br"){h([[/\n/g,"
"]])}else{if(e=="p"){h([[/\n+/g,"
"],[/^(.*<\/p>)(
)$/,"
$1"]])}else{h([[/\n\n/g,"
"],[/^(.*<\/p>)(
)$/,"
$1"],[/\n/g,"
"]])}}}d.execCommand("mceInsertContent",false,g)}},_legacySupport:function(){var e=this,d=e.editor;d.addCommand("mcePasteWord",function(){d.windowManager.open({file:e.url+"/pasteword.htm",width:parseInt(b(d,"paste_dialog_width")),height:parseInt(b(d,"paste_dialog_height")),inline:1})});if(b(d,"paste_text_use_dialog")){d.addCommand("mcePasteText",function(){d.windowManager.open({file:e.url+"/pastetext.htm",width:parseInt(b(d,"paste_dialog_width")),height:parseInt(b(d,"paste_dialog_height")),inline:1})})}d.addButton("pasteword",{title:"paste.paste_word_desc",cmd:"mcePasteWord"})}});tinymce.PluginManager.add("paste",tinymce.plugins.PastePlugin)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js
deleted file mode 100644
index 9f1c35476..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/paste/editor_plugin_src.js
+++ /dev/null
@@ -1,871 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- var each = tinymce.each,
- defs = {
- paste_auto_cleanup_on_paste : true,
- paste_enable_default_filters : true,
- paste_block_drop : false,
- paste_retain_style_properties : "none",
- paste_strip_class_attributes : "mso",
- paste_remove_spans : false,
- paste_remove_styles : false,
- paste_remove_styles_if_webkit : true,
- paste_convert_middot_lists : true,
- paste_convert_headers_to_strong : false,
- paste_dialog_width : "450",
- paste_dialog_height : "400",
- paste_text_use_dialog : false,
- paste_text_sticky : false,
- paste_text_sticky_default : false,
- paste_text_notifyalways : false,
- paste_text_linebreaktype : "combined",
- paste_text_replacements : [
- [/\u2026/g, "..."],
- [/[\x93\x94\u201c\u201d]/g, '"'],
- [/[\x60\x91\x92\u2018\u2019]/g, "'"]
- ]
- };
-
- function getParam(ed, name) {
- return ed.getParam(name, defs[name]);
- }
-
- tinymce.create('tinymce.plugins.PastePlugin', {
- init : function(ed, url) {
- var t = this;
-
- t.editor = ed;
- t.url = url;
-
- // Setup plugin events
- t.onPreProcess = new tinymce.util.Dispatcher(t);
- t.onPostProcess = new tinymce.util.Dispatcher(t);
-
- // Register default handlers
- t.onPreProcess.add(t._preProcess);
- t.onPostProcess.add(t._postProcess);
-
- // Register optional preprocess handler
- t.onPreProcess.add(function(pl, o) {
- ed.execCallback('paste_preprocess', pl, o);
- });
-
- // Register optional postprocess
- t.onPostProcess.add(function(pl, o) {
- ed.execCallback('paste_postprocess', pl, o);
- });
-
- ed.onKeyDown.addToTop(function(ed, e) {
- // Block ctrl+v from adding an undo level since the default logic in tinymce.Editor will add that
- if (((tinymce.isMac ? e.metaKey : e.ctrlKey) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45))
- return false; // Stop other listeners
- });
-
- // Initialize plain text flag
- ed.pasteAsPlainText = getParam(ed, 'paste_text_sticky_default');
-
- // This function executes the process handlers and inserts the contents
- // force_rich overrides plain text mode set by user, important for pasting with execCommand
- function process(o, force_rich) {
- var dom = ed.dom, rng;
-
- // Execute pre process handlers
- t.onPreProcess.dispatch(t, o);
-
- // Create DOM structure
- o.node = dom.create('div', 0, o.content);
-
- // If pasting inside the same element and the contents is only one block
- // remove the block and keep the text since Firefox will copy parts of pre and h1-h6 as a pre element
- if (tinymce.isGecko) {
- rng = ed.selection.getRng(true);
- if (rng.startContainer == rng.endContainer && rng.startContainer.nodeType == 3) {
- // Is only one block node and it doesn't contain word stuff
- if (o.node.childNodes.length === 1 && /^(p|h[1-6]|pre)$/i.test(o.node.firstChild.nodeName) && o.content.indexOf('__MCE_ITEM__') === -1)
- dom.remove(o.node.firstChild, true);
- }
- }
-
- // Execute post process handlers
- t.onPostProcess.dispatch(t, o);
-
- // Serialize content
- o.content = ed.serializer.serialize(o.node, {getInner : 1, forced_root_block : ''});
-
- // Plain text option active?
- if ((!force_rich) && (ed.pasteAsPlainText)) {
- t._insertPlainText(o.content);
-
- if (!getParam(ed, "paste_text_sticky")) {
- ed.pasteAsPlainText = false;
- ed.controlManager.setActive("pastetext", false);
- }
- } else {
- t._insert(o.content);
- }
- }
-
- // Add command for external usage
- ed.addCommand('mceInsertClipboardContent', function(u, o) {
- process(o, true);
- });
-
- if (!getParam(ed, "paste_text_use_dialog")) {
- ed.addCommand('mcePasteText', function(u, v) {
- var cookie = tinymce.util.Cookie;
-
- ed.pasteAsPlainText = !ed.pasteAsPlainText;
- ed.controlManager.setActive('pastetext', ed.pasteAsPlainText);
-
- if ((ed.pasteAsPlainText) && (!cookie.get("tinymcePasteText"))) {
- if (getParam(ed, "paste_text_sticky")) {
- ed.windowManager.alert(ed.translate('paste.plaintext_mode_sticky'));
- } else {
- ed.windowManager.alert(ed.translate('paste.plaintext_mode'));
- }
-
- if (!getParam(ed, "paste_text_notifyalways")) {
- cookie.set("tinymcePasteText", "1", new Date(new Date().getFullYear() + 1, 12, 31))
- }
- }
- });
- }
-
- ed.addButton('pastetext', {title: 'paste.paste_text_desc', cmd: 'mcePasteText'});
- ed.addButton('selectall', {title: 'paste.selectall_desc', cmd: 'selectall'});
-
- // This function grabs the contents from the clipboard by adding a
- // hidden div and placing the caret inside it and after the browser paste
- // is done it grabs that contents and processes that
- function grabContent(e) {
- var n, or, rng, oldRng, sel = ed.selection, dom = ed.dom, body = ed.getBody(), posY, textContent;
-
- // Check if browser supports direct plaintext access
- if (e.clipboardData || dom.doc.dataTransfer) {
- textContent = (e.clipboardData || dom.doc.dataTransfer).getData('Text');
-
- if (ed.pasteAsPlainText) {
- e.preventDefault();
- process({content : dom.encode(textContent).replace(/\r?\n/g, '
')});
- return;
- }
- }
-
- if (dom.get('_mcePaste'))
- return;
-
- // Create container to paste into
- n = dom.add(body, 'div', {id : '_mcePaste', 'class' : 'mcePaste', 'data-mce-bogus' : '1'}, '\uFEFF\uFEFF');
-
- // If contentEditable mode we need to find out the position of the closest element
- if (body != ed.getDoc().body)
- posY = dom.getPos(ed.selection.getStart(), body).y;
- else
- posY = body.scrollTop + dom.getViewPort(ed.getWin()).y;
-
- // Styles needs to be applied after the element is added to the document since WebKit will otherwise remove all styles
- // If also needs to be in view on IE or the paste would fail
- dom.setStyles(n, {
- position : 'absolute',
- left : tinymce.isGecko ? -40 : 0, // Need to move it out of site on Gecko since it will othewise display a ghost resize rect for the div
- top : posY - 25,
- width : 1,
- height : 1,
- overflow : 'hidden'
- });
-
- if (tinymce.isIE) {
- // Store away the old range
- oldRng = sel.getRng();
-
- // Select the container
- rng = dom.doc.body.createTextRange();
- rng.moveToElementText(n);
- rng.execCommand('Paste');
-
- // Remove container
- dom.remove(n);
-
- // Check if the contents was changed, if it wasn't then clipboard extraction failed probably due
- // to IE security settings so we pass the junk though better than nothing right
- if (n.innerHTML === '\uFEFF\uFEFF') {
- ed.execCommand('mcePasteWord');
- e.preventDefault();
- return;
- }
-
- // Restore the old range and clear the contents before pasting
- sel.setRng(oldRng);
- sel.setContent('');
-
- // For some odd reason we need to detach the the mceInsertContent call from the paste event
- // It's like IE has a reference to the parent element that you paste in and the selection gets messed up
- // when it tries to restore the selection
- setTimeout(function() {
- // Process contents
- process({content : n.innerHTML});
- }, 0);
-
- // Block the real paste event
- return tinymce.dom.Event.cancel(e);
- } else {
- function block(e) {
- e.preventDefault();
- };
-
- // Block mousedown and click to prevent selection change
- dom.bind(ed.getDoc(), 'mousedown', block);
- dom.bind(ed.getDoc(), 'keydown', block);
-
- or = ed.selection.getRng();
-
- // Move select contents inside DIV
- n = n.firstChild;
- rng = ed.getDoc().createRange();
- rng.setStart(n, 0);
- rng.setEnd(n, 2);
- sel.setRng(rng);
-
- // Wait a while and grab the pasted contents
- window.setTimeout(function() {
- var h = '', nl;
-
- // Paste divs duplicated in paste divs seems to happen when you paste plain text so lets first look for that broken behavior in WebKit
- if (!dom.select('div.mcePaste > div.mcePaste').length) {
- nl = dom.select('div.mcePaste');
-
- // WebKit will split the div into multiple ones so this will loop through then all and join them to get the whole HTML string
- each(nl, function(n) {
- var child = n.firstChild;
-
- // WebKit inserts a DIV container with lots of odd styles
- if (child && child.nodeName == 'DIV' && child.style.marginTop && child.style.backgroundColor) {
- dom.remove(child, 1);
- }
-
- // Remove apply style spans
- each(dom.select('span.Apple-style-span', n), function(n) {
- dom.remove(n, 1);
- });
-
- // Remove bogus br elements
- each(dom.select('br[data-mce-bogus]', n), function(n) {
- dom.remove(n);
- });
-
- // WebKit will make a copy of the DIV for each line of plain text pasted and insert them into the DIV
- if (n.parentNode.className != 'mcePaste')
- h += n.innerHTML;
- });
- } else {
- // Found WebKit weirdness so force the content into paragraphs this seems to happen when you paste plain text from Nodepad etc
- // So this logic will replace double enter with paragraphs and single enter with br so it kind of looks the same
- h = '
' + dom.encode(textContent).replace(/\r?\n\r?\n/g, '
').replace(/\r?\n/g, '
') + '
';
- }
-
- // Remove the nodes
- each(dom.select('div.mcePaste'), function(n) {
- dom.remove(n);
- });
-
- // Restore the old selection
- if (or)
- sel.setRng(or);
-
- process({content : h});
-
- // Unblock events ones we got the contents
- dom.unbind(ed.getDoc(), 'mousedown', block);
- dom.unbind(ed.getDoc(), 'keydown', block);
- }, 0);
- }
- }
-
- // Check if we should use the new auto process method
- if (getParam(ed, "paste_auto_cleanup_on_paste")) {
- // Is it's Opera or older FF use key handler
- if (tinymce.isOpera || /Firefox\/2/.test(navigator.userAgent)) {
- ed.onKeyDown.addToTop(function(ed, e) {
- if (((tinymce.isMac ? e.metaKey : e.ctrlKey) && e.keyCode == 86) || (e.shiftKey && e.keyCode == 45))
- grabContent(e);
- });
- } else {
- // Grab contents on paste event on Gecko and WebKit
- ed.onPaste.addToTop(function(ed, e) {
- return grabContent(e);
- });
- }
- }
-
- ed.onInit.add(function() {
- ed.controlManager.setActive("pastetext", ed.pasteAsPlainText);
-
- // Block all drag/drop events
- if (getParam(ed, "paste_block_drop")) {
- ed.dom.bind(ed.getBody(), ['dragend', 'dragover', 'draggesture', 'dragdrop', 'drop', 'drag'], function(e) {
- e.preventDefault();
- e.stopPropagation();
-
- return false;
- });
- }
- });
-
- // Add legacy support
- t._legacySupport();
- },
-
- getInfo : function() {
- return {
- longname : 'Paste text/word',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/paste',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- },
-
- _preProcess : function(pl, o) {
- var ed = this.editor,
- h = o.content,
- grep = tinymce.grep,
- explode = tinymce.explode,
- trim = tinymce.trim,
- len, stripClass;
-
- //console.log('Before preprocess:' + o.content);
-
- function process(items) {
- each(items, function(v) {
- // Remove or replace
- if (v.constructor == RegExp)
- h = h.replace(v, '');
- else
- h = h.replace(v[0], v[1]);
- });
- }
-
- if (ed.settings.paste_enable_default_filters == false) {
- return;
- }
-
- // IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser
- if (tinymce.isIE && document.documentMode >= 9 && /<(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)/.test(o.content)) {
- // IE9 adds BRs before/after block elements when contents is pasted from word or for example another browser
- process([[/(?:
[\s\r\n]+|
)*(<\/?(h[1-6r]|p|div|address|pre|form|table|tbody|thead|tfoot|th|tr|td|li|ol|ul|caption|blockquote|center|dl|dt|dd|dir|fieldset)[^>]*>)(?:
[\s\r\n]+|
)*/g, '$1']]);
-
- // IE9 also adds an extra BR element for each soft-linefeed and it also adds a BR for each word wrap break
- process([
- [/
/g, '
'], // Replace multiple BR elements with uppercase BR to keep them intact
- [/
/g, ' '], // Replace single br elements with space since they are word wrap BR:s
- [/
/g, '
'] // Replace back the double brs but into a single BR
- ]);
- }
-
- // Detect Word content and process it more aggressive
- if (/class="?Mso|style="[^"]*\bmso-|w:WordDocument/i.test(h) || o.wordContent) {
- o.wordContent = true; // Mark the pasted contents as word specific content
- //console.log('Word contents detected.');
-
- // Process away some basic content
- process([
- /^\s*( )+/gi, // entities at the start of contents
- /( |
]*>)+\s*$/gi // entities at the end of contents
- ]);
-
- if (getParam(ed, "paste_convert_headers_to_strong")) {
- h = h.replace(/]*class="?MsoHeading"?[^>]*>(.*?)<\/p>/gi, "
$1
");
- }
-
- if (getParam(ed, "paste_convert_middot_lists")) {
- process([
- [//gi, '$&__MCE_ITEM__'], // Convert supportLists to a list item marker
- [/(]+(?:mso-list:|:\s*symbol)[^>]+>)/gi, '$1__MCE_ITEM__'], // Convert mso-list and symbol spans to item markers
- [/(]+(?:MsoListParagraph)[^>]+>)/gi, '$1__MCE_ITEM__'] // Convert mso-list and symbol paragraphs to item markers (FF)
- ]);
- }
-
- process([
- // Word comments like conditional comments etc
- //gi,
-
- // Remove comments, scripts (e.g., msoShowComment), XML tag, VML content, MS Office namespaced tags, and a few other tags
- /<(!|script[^>]*>.*?<\/script(?=[>\s])|\/?(\?xml(:\w+)?|img|meta|link|style|\w:\w+)(?=[\s\/>]))[^>]*>/gi,
-
- // Convert into for line-though
- [/<(\/?)s>/gi, "<$1strike>"],
-
- // Replace nsbp entites to char since it's easier to handle
- [/ /gi, "\u00a0"]
- ]);
-
- // Remove bad attributes, with or without quotes, ensuring that attribute text is really inside a tag.
- // If JavaScript had a RegExp look-behind, we could have integrated this with the last process() array and got rid of the loop. But alas, it does not, so we cannot.
- do {
- len = h.length;
- h = h.replace(/(<[a-z][^>]*\s)(?:id|name|language|type|on\w+|\w+:\w+)=(?:"[^"]*"|\w+)\s?/gi, "$1");
- } while (len != h.length);
-
- // Remove all spans if no styles is to be retained
- if (getParam(ed, "paste_retain_style_properties").replace(/^none$/i, "").length == 0) {
- h = h.replace(/<\/?span[^>]*>/gi, "");
- } else {
- // We're keeping styles, so at least clean them up.
- // CSS Reference: http://msdn.microsoft.com/en-us/library/aa155477.aspx
-
- process([
- // Convert ___ to string of alternating breaking/non-breaking spaces of same length
- [/([\s\u00a0]*)<\/span>/gi,
- function(str, spaces) {
- return (spaces.length > 0)? spaces.replace(/./, " ").slice(Math.floor(spaces.length/2)).split("").join("\u00a0") : "";
- }
- ],
-
- // Examine all styles: delete junk, transform some, and keep the rest
- [/(<[a-z][^>]*)\sstyle="([^"]*)"/gi,
- function(str, tag, style) {
- var n = [],
- i = 0,
- s = explode(trim(style).replace(/"/gi, "'"), ";");
-
- // Examine each style definition within the tag's style attribute
- each(s, function(v) {
- var name, value,
- parts = explode(v, ":");
-
- function ensureUnits(v) {
- return v + ((v !== "0") && (/\d$/.test(v)))? "px" : "";
- }
-
- if (parts.length == 2) {
- name = parts[0].toLowerCase();
- value = parts[1].toLowerCase();
-
- // Translate certain MS Office styles into their CSS equivalents
- switch (name) {
- case "mso-padding-alt":
- case "mso-padding-top-alt":
- case "mso-padding-right-alt":
- case "mso-padding-bottom-alt":
- case "mso-padding-left-alt":
- case "mso-margin-alt":
- case "mso-margin-top-alt":
- case "mso-margin-right-alt":
- case "mso-margin-bottom-alt":
- case "mso-margin-left-alt":
- case "mso-table-layout-alt":
- case "mso-height":
- case "mso-width":
- case "mso-vertical-align-alt":
- n[i++] = name.replace(/^mso-|-alt$/g, "") + ":" + ensureUnits(value);
- return;
-
- case "horiz-align":
- n[i++] = "text-align:" + value;
- return;
-
- case "vert-align":
- n[i++] = "vertical-align:" + value;
- return;
-
- case "font-color":
- case "mso-foreground":
- n[i++] = "color:" + value;
- return;
-
- case "mso-background":
- case "mso-highlight":
- n[i++] = "background:" + value;
- return;
-
- case "mso-default-height":
- n[i++] = "min-height:" + ensureUnits(value);
- return;
-
- case "mso-default-width":
- n[i++] = "min-width:" + ensureUnits(value);
- return;
-
- case "mso-padding-between-alt":
- n[i++] = "border-collapse:separate;border-spacing:" + ensureUnits(value);
- return;
-
- case "text-line-through":
- if ((value == "single") || (value == "double")) {
- n[i++] = "text-decoration:line-through";
- }
- return;
-
- case "mso-zero-height":
- if (value == "yes") {
- n[i++] = "display:none";
- }
- return;
- }
-
- // Eliminate all MS Office style definitions that have no CSS equivalent by examining the first characters in the name
- if (/^(mso|column|font-emph|lang|layout|line-break|list-image|nav|panose|punct|row|ruby|sep|size|src|tab-|table-border|text-(?!align|decor|indent|trans)|top-bar|version|vnd|word-break)/.test(name)) {
- return;
- }
-
- // If it reached this point, it must be a valid CSS style
- n[i++] = name + ":" + parts[1]; // Lower-case name, but keep value case
- }
- });
-
- // If style attribute contained any valid styles the re-write it; otherwise delete style attribute.
- if (i > 0) {
- return tag + ' style="' + n.join(';') + '"';
- } else {
- return tag;
- }
- }
- ]
- ]);
- }
- }
-
- // Replace headers with
- if (getParam(ed, "paste_convert_headers_to_strong")) {
- process([
- [/]*>/gi, ""],
- [/<\/h[1-6][^>]*>/gi, "
"]
- ]);
- }
-
- process([
- // Copy paste from Java like Open Office will produce this junk on FF
- [/Version:[\d.]+\nStartHTML:\d+\nEndHTML:\d+\nStartFragment:\d+\nEndFragment:\d+/gi, '']
- ]);
-
- // Class attribute options are: leave all as-is ("none"), remove all ("all"), or remove only those starting with mso ("mso").
- // Note:- paste_strip_class_attributes: "none", verify_css_classes: true is also a good variation.
- stripClass = getParam(ed, "paste_strip_class_attributes");
-
- if (stripClass !== "none") {
- function removeClasses(match, g1) {
- if (stripClass === "all")
- return '';
-
- var cls = grep(explode(g1.replace(/^(["'])(.*)\1$/, "$2"), " "),
- function(v) {
- return (/^(?!mso)/i.test(v));
- }
- );
-
- return cls.length ? ' class="' + cls.join(" ") + '"' : '';
- };
-
- h = h.replace(/ class="([^"]+)"/gi, removeClasses);
- h = h.replace(/ class=([\-\w]+)/gi, removeClasses);
- }
-
- // Remove spans option
- if (getParam(ed, "paste_remove_spans")) {
- h = h.replace(/<\/?span[^>]*>/gi, "");
- }
-
- //console.log('After preprocess:' + h);
-
- o.content = h;
- },
-
- /**
- * Various post process items.
- */
- _postProcess : function(pl, o) {
- var t = this, ed = t.editor, dom = ed.dom, styleProps;
-
- if (ed.settings.paste_enable_default_filters == false) {
- return;
- }
-
- if (o.wordContent) {
- // Remove named anchors or TOC links
- each(dom.select('a', o.node), function(a) {
- if (!a.href || a.href.indexOf('#_Toc') != -1)
- dom.remove(a, 1);
- });
-
- if (getParam(ed, "paste_convert_middot_lists")) {
- t._convertLists(pl, o);
- }
-
- // Process styles
- styleProps = getParam(ed, "paste_retain_style_properties"); // retained properties
-
- // Process only if a string was specified and not equal to "all" or "*"
- if ((tinymce.is(styleProps, "string")) && (styleProps !== "all") && (styleProps !== "*")) {
- styleProps = tinymce.explode(styleProps.replace(/^none$/i, ""));
-
- // Retains some style properties
- each(dom.select('*', o.node), function(el) {
- var newStyle = {}, npc = 0, i, sp, sv;
-
- // Store a subset of the existing styles
- if (styleProps) {
- for (i = 0; i < styleProps.length; i++) {
- sp = styleProps[i];
- sv = dom.getStyle(el, sp);
-
- if (sv) {
- newStyle[sp] = sv;
- npc++;
- }
- }
- }
-
- // Remove all of the existing styles
- dom.setAttrib(el, 'style', '');
-
- if (styleProps && npc > 0)
- dom.setStyles(el, newStyle); // Add back the stored subset of styles
- else // Remove empty span tags that do not have class attributes
- if (el.nodeName == 'SPAN' && !el.className)
- dom.remove(el, true);
- });
- }
- }
-
- // Remove all style information or only specifically on WebKit to avoid the style bug on that browser
- if (getParam(ed, "paste_remove_styles") || (getParam(ed, "paste_remove_styles_if_webkit") && tinymce.isWebKit)) {
- each(dom.select('*[style]', o.node), function(el) {
- el.removeAttribute('style');
- el.removeAttribute('data-mce-style');
- });
- } else {
- if (tinymce.isWebKit) {
- // We need to compress the styles on WebKit since if you paste it will become
- // Removing the mce_style that contains the real value will force the Serializer engine to compress the styles
- each(dom.select('*', o.node), function(el) {
- el.removeAttribute('data-mce-style');
- });
- }
- }
- },
-
- /**
- * Converts the most common bullet and number formats in Office into a real semantic UL/LI list.
- */
- _convertLists : function(pl, o) {
- var dom = pl.editor.dom, listElm, li, lastMargin = -1, margin, levels = [], lastType, html;
-
- // Convert middot lists into real semantic lists
- each(dom.select('p', o.node), function(p) {
- var sib, val = '', type, html, idx, parents;
-
- // Get text node value at beginning of paragraph
- for (sib = p.firstChild; sib && sib.nodeType == 3; sib = sib.nextSibling)
- val += sib.nodeValue;
-
- val = p.innerHTML.replace(/<\/?\w+[^>]*>/gi, '').replace(/ /g, '\u00a0');
-
- // Detect unordered lists look for bullets
- if (/^(__MCE_ITEM__)+[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*\u00a0*/.test(val))
- type = 'ul';
-
- // Detect ordered lists 1., a. or ixv.
- if (/^__MCE_ITEM__\s*\w+\.\s*\u00a0+/.test(val))
- type = 'ol';
-
- // Check if node value matches the list pattern: o
- if (type) {
- margin = parseFloat(p.style.marginLeft || 0);
-
- if (margin > lastMargin)
- levels.push(margin);
-
- if (!listElm || type != lastType) {
- listElm = dom.create(type);
- dom.insertAfter(listElm, p);
- } else {
- // Nested list element
- if (margin > lastMargin) {
- listElm = li.appendChild(dom.create(type));
- } else if (margin < lastMargin) {
- // Find parent level based on margin value
- idx = tinymce.inArray(levels, margin);
- parents = dom.getParents(listElm.parentNode, type);
- listElm = parents[parents.length - 1 - idx] || listElm;
- }
- }
-
- // Remove middot or number spans if they exists
- each(dom.select('span', p), function(span) {
- var html = span.innerHTML.replace(/<\/?\w+[^>]*>/gi, '');
-
- // Remove span with the middot or the number
- if (type == 'ul' && /^__MCE_ITEM__[\u2022\u00b7\u00a7\u00d8o\u25CF]/.test(html))
- dom.remove(span);
- else if (/^__MCE_ITEM__[\s\S]*\w+\.( |\u00a0)*\s*/.test(html))
- dom.remove(span);
- });
-
- html = p.innerHTML;
-
- // Remove middot/list items
- if (type == 'ul')
- html = p.innerHTML.replace(/__MCE_ITEM__/g, '').replace(/^[\u2022\u00b7\u00a7\u00d8o\u25CF]\s*( |\u00a0)+\s*/, '');
- else
- html = p.innerHTML.replace(/__MCE_ITEM__/g, '').replace(/^\s*\w+\.( |\u00a0)+\s*/, '');
-
- // Create li and add paragraph data into the new li
- li = listElm.appendChild(dom.create('li', 0, html));
- dom.remove(p);
-
- lastMargin = margin;
- lastType = type;
- } else
- listElm = lastMargin = 0; // End list element
- });
-
- // Remove any left over makers
- html = o.node.innerHTML;
- if (html.indexOf('__MCE_ITEM__') != -1)
- o.node.innerHTML = html.replace(/__MCE_ITEM__/g, '');
- },
-
- /**
- * Inserts the specified contents at the caret position.
- */
- _insert : function(h, skip_undo) {
- var ed = this.editor, r = ed.selection.getRng();
-
- // First delete the contents seems to work better on WebKit when the selection spans multiple list items or multiple table cells.
- if (!ed.selection.isCollapsed() && r.startContainer != r.endContainer)
- ed.getDoc().execCommand('Delete', false, null);
-
- ed.execCommand('mceInsertContent', false, h, {skip_undo : skip_undo});
- },
-
- /**
- * Instead of the old plain text method which tried to re-create a paste operation, the
- * new approach adds a plain text mode toggle switch that changes the behavior of paste.
- * This function is passed the same input that the regular paste plugin produces.
- * It performs additional scrubbing and produces (and inserts) the plain text.
- * This approach leverages all of the great existing functionality in the paste
- * plugin, and requires minimal changes to add the new functionality.
- * Speednet - June 2009
- */
- _insertPlainText : function(content) {
- var ed = this.editor,
- linebr = getParam(ed, "paste_text_linebreaktype"),
- rl = getParam(ed, "paste_text_replacements"),
- is = tinymce.is;
-
- function process(items) {
- each(items, function(v) {
- if (v.constructor == RegExp)
- content = content.replace(v, "");
- else
- content = content.replace(v[0], v[1]);
- });
- };
-
- if ((typeof(content) === "string") && (content.length > 0)) {
- // If HTML content with line-breaking tags, then remove all cr/lf chars because only tags will break a line
- if (/<(?:p|br|h[1-6]|ul|ol|dl|table|t[rdh]|div|blockquote|fieldset|pre|address|center)[^>]*>/i.test(content)) {
- process([
- /[\n\r]+/g
- ]);
- } else {
- // Otherwise just get rid of carriage returns (only need linefeeds)
- process([
- /\r+/g
- ]);
- }
-
- process([
- [/<\/(?:p|h[1-6]|ul|ol|dl|table|div|blockquote|fieldset|pre|address|center)>/gi, "\n\n"], // Block tags get a blank line after them
- [/
]*>|<\/tr>/gi, "\n"], // Single linebreak for
tags and table rows
- [/<\/t[dh]>\s*]*>/gi, "\t"], // Table cells get tabs betweem them
- /<[a-z!\/?][^>]*>/gi, // Delete all remaining tags
- [/ /gi, " "], // Convert non-break spaces to regular spaces (remember, *plain text*)
- [/(?:(?!\n)\s)*(\n+)(?:(?!\n)\s)*/gi, "$1"],// Cool little RegExp deletes whitespace around linebreak chars.
- [/\n{3,}/g, "\n\n"] // Max. 2 consecutive linebreaks
- ]);
-
- content = ed.dom.decode(tinymce.html.Entities.encodeRaw(content));
-
- // Perform default or custom replacements
- if (is(rl, "array")) {
- process(rl);
- } else if (is(rl, "string")) {
- process(new RegExp(rl, "gi"));
- }
-
- // Treat paragraphs as specified in the config
- if (linebr == "none") {
- // Convert all line breaks to space
- process([
- [/\n+/g, " "]
- ]);
- } else if (linebr == "br") {
- // Convert all line breaks to
- process([
- [/\n/g, "
"]
- ]);
- } else if (linebr == "p") {
- // Convert all line breaks to ...
- process([
- [/\n+/g, "
"],
- [/^(.*<\/p>)(
)$/, '
$1']
- ]);
- } else {
- // defaults to "combined"
- // Convert single line breaks to
and double line breaks to
...
- process([
- [/\n\n/g, "
"],
- [/^(.*<\/p>)(
)$/, '
$1'],
- [/\n/g, "
"]
- ]);
- }
-
- ed.execCommand('mceInsertContent', false, content);
- }
- },
-
- /**
- * This method will open the old style paste dialogs. Some users might want the old behavior but still use the new cleanup engine.
- */
- _legacySupport : function() {
- var t = this, ed = t.editor;
-
- // Register command(s) for backwards compatibility
- ed.addCommand("mcePasteWord", function() {
- ed.windowManager.open({
- file: t.url + "/pasteword.htm",
- width: parseInt(getParam(ed, "paste_dialog_width")),
- height: parseInt(getParam(ed, "paste_dialog_height")),
- inline: 1
- });
- });
-
- if (getParam(ed, "paste_text_use_dialog")) {
- ed.addCommand("mcePasteText", function() {
- ed.windowManager.open({
- file : t.url + "/pastetext.htm",
- width: parseInt(getParam(ed, "paste_dialog_width")),
- height: parseInt(getParam(ed, "paste_dialog_height")),
- inline : 1
- });
- });
- }
-
- // Register button for backwards compatibility
- ed.addButton("pasteword", {title : "paste.paste_word_desc", cmd : "mcePasteWord"});
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add("paste", tinymce.plugins.PastePlugin);
-})();
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js b/library/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js
deleted file mode 100644
index c524f9eb0..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/paste/js/pastetext.js
+++ /dev/null
@@ -1,36 +0,0 @@
-tinyMCEPopup.requireLangPack();
-
-var PasteTextDialog = {
- init : function() {
- this.resize();
- },
-
- insert : function() {
- var h = tinyMCEPopup.dom.encode(document.getElementById('content').value), lines;
-
- // Convert linebreaks into paragraphs
- if (document.getElementById('linebreaks').checked) {
- lines = h.split(/\r?\n/);
- if (lines.length > 1) {
- h = '';
- tinymce.each(lines, function(row) {
- h += '
' + row + '
';
- });
- }
- }
-
- tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h});
- tinyMCEPopup.close();
- },
-
- resize : function() {
- var vp = tinyMCEPopup.dom.getViewPort(window), el;
-
- el = document.getElementById('content');
-
- el.style.width = (vp.w - 20) + 'px';
- el.style.height = (vp.h - 90) + 'px';
- }
-};
-
-tinyMCEPopup.onInit.add(PasteTextDialog.init, PasteTextDialog);
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js b/library/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js
deleted file mode 100644
index a52731c36..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/paste/js/pasteword.js
+++ /dev/null
@@ -1,51 +0,0 @@
-tinyMCEPopup.requireLangPack();
-
-var PasteWordDialog = {
- init : function() {
- var ed = tinyMCEPopup.editor, el = document.getElementById('iframecontainer'), ifr, doc, css, cssHTML = '';
-
- // Create iframe
- el.innerHTML = '';
- ifr = document.getElementById('iframe');
- doc = ifr.contentWindow.document;
-
- // Force absolute CSS urls
- css = [ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css")];
- css = css.concat(tinymce.explode(ed.settings.content_css) || []);
- tinymce.each(css, function(u) {
- cssHTML += '';
- });
-
- // Write content into iframe
- doc.open();
- doc.write('' + cssHTML + '');
- doc.close();
-
- doc.designMode = 'on';
- this.resize();
-
- window.setTimeout(function() {
- ifr.contentWindow.focus();
- }, 10);
- },
-
- insert : function() {
- var h = document.getElementById('iframe').contentWindow.document.body.innerHTML;
-
- tinyMCEPopup.editor.execCommand('mceInsertClipboardContent', false, {content : h, wordContent : true});
- tinyMCEPopup.close();
- },
-
- resize : function() {
- var vp = tinyMCEPopup.dom.getViewPort(window), el;
-
- el = document.getElementById('iframe');
-
- if (el) {
- el.style.width = (vp.w - 20) + 'px';
- el.style.height = (vp.h - 90) + 'px';
- }
- }
-};
-
-tinyMCEPopup.onInit.add(PasteWordDialog.init, PasteWordDialog);
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js b/library/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js
deleted file mode 100644
index bc74daf85..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/paste/langs/en_dlg.js
+++ /dev/null
@@ -1 +0,0 @@
-tinyMCE.addI18n('en.paste_dlg',{"word_title":"Use Ctrl+V on your keyboard to paste the text into the window.","text_linebreaks":"Keep Linebreaks","text_title":"Use Ctrl+V on your keyboard to paste the text into the window."});
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm b/library/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm
deleted file mode 100644
index b65594547..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/paste/pastetext.htm
+++ /dev/null
@@ -1,27 +0,0 @@
-
-
- {#paste.paste_text_desc}
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm b/library/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm
deleted file mode 100644
index 0f6bb4121..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/paste/pasteword.htm
+++ /dev/null
@@ -1,21 +0,0 @@
-
-
- {#paste.paste_word_desc}
-
-
-
-
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js
deleted file mode 100644
index 507909c5f..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create("tinymce.plugins.Preview",{init:function(a,b){var d=this,c=tinymce.explode(a.settings.content_css);d.editor=a;tinymce.each(c,function(f,e){c[e]=a.documentBaseURI.toAbsolute(f)});a.addCommand("mcePreview",function(){a.windowManager.open({file:a.getParam("plugin_preview_pageurl",b+"/preview.html"),width:parseInt(a.getParam("plugin_preview_width","550")),height:parseInt(a.getParam("plugin_preview_height","600")),resizable:"yes",scrollbars:"yes",popup_css:c?c.join(","):a.baseURI.toAbsolute("themes/"+a.settings.theme+"/skins/"+a.settings.skin+"/content.css"),inline:a.getParam("plugin_preview_inline",1)},{base:a.documentBaseURI.getURI()})});a.addButton("preview",{title:"preview.preview_desc",cmd:"mcePreview"})},getInfo:function(){return{longname:"Preview",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("preview",tinymce.plugins.Preview)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js
deleted file mode 100644
index 80f00f0d9..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js
+++ /dev/null
@@ -1,53 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- tinymce.create('tinymce.plugins.Preview', {
- init : function(ed, url) {
- var t = this, css = tinymce.explode(ed.settings.content_css);
-
- t.editor = ed;
-
- // Force absolute CSS urls
- tinymce.each(css, function(u, k) {
- css[k] = ed.documentBaseURI.toAbsolute(u);
- });
-
- ed.addCommand('mcePreview', function() {
- ed.windowManager.open({
- file : ed.getParam("plugin_preview_pageurl", url + "/preview.html"),
- width : parseInt(ed.getParam("plugin_preview_width", "550")),
- height : parseInt(ed.getParam("plugin_preview_height", "600")),
- resizable : "yes",
- scrollbars : "yes",
- popup_css : css ? css.join(',') : ed.baseURI.toAbsolute("themes/" + ed.settings.theme + "/skins/" + ed.settings.skin + "/content.css"),
- inline : ed.getParam("plugin_preview_inline", 1)
- }, {
- base : ed.documentBaseURI.getURI()
- });
- });
-
- ed.addButton('preview', {title : 'preview.preview_desc', cmd : 'mcePreview'});
- },
-
- getInfo : function() {
- return {
- longname : 'Preview',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/preview',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('preview', tinymce.plugins.Preview);
-})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/preview/example.html b/library/tinymce/jscripts/tiny_mce/plugins/preview/example.html
deleted file mode 100644
index b2c3d90ce..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/preview/example.html
+++ /dev/null
@@ -1,28 +0,0 @@
-
-
-
-
-
-Example of a custom preview page
-
-
-
-Editor contents:
-
-
-
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js b/library/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js
deleted file mode 100644
index f8dc81052..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/preview/jscripts/embed.js
+++ /dev/null
@@ -1,73 +0,0 @@
-/**
- * This script contains embed functions for common plugins. This scripts are complety free to use for any purpose.
- */
-
-function writeFlash(p) {
- writeEmbed(
- 'D27CDB6E-AE6D-11cf-96B8-444553540000',
- 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
- 'application/x-shockwave-flash',
- p
- );
-}
-
-function writeShockWave(p) {
- writeEmbed(
- '166B1BCA-3F9C-11CF-8075-444553540000',
- 'http://download.macromedia.com/pub/shockwave/cabs/director/sw.cab#version=8,5,1,0',
- 'application/x-director',
- p
- );
-}
-
-function writeQuickTime(p) {
- writeEmbed(
- '02BF25D5-8C17-4B23-BC80-D3488ABDDC6B',
- 'http://www.apple.com/qtactivex/qtplugin.cab#version=6,0,2,0',
- 'video/quicktime',
- p
- );
-}
-
-function writeRealMedia(p) {
- writeEmbed(
- 'CFCDAA03-8BE4-11cf-B84B-0020AFBBCCFA',
- 'http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,40,0',
- 'audio/x-pn-realaudio-plugin',
- p
- );
-}
-
-function writeWindowsMedia(p) {
- p.url = p.src;
- writeEmbed(
- '6BF52A52-394A-11D3-B153-00C04F79FAA6',
- 'http://activex.microsoft.com/activex/controls/mplayer/en/nsmp2inf.cab#Version=5,1,52,701',
- 'application/x-mplayer2',
- p
- );
-}
-
-function writeEmbed(cls, cb, mt, p) {
- var h = '', n;
-
- h += '';
-
- document.write(h);
-}
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/preview/preview.html b/library/tinymce/jscripts/tiny_mce/plugins/preview/preview.html
deleted file mode 100644
index 67e7b142f..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/preview/preview.html
+++ /dev/null
@@ -1,17 +0,0 @@
-
-
-
-
-
-
-{#preview.preview_desc}
-
-
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js
deleted file mode 100644
index b5b3a55ed..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create("tinymce.plugins.Print",{init:function(a,b){a.addCommand("mcePrint",function(){a.getWin().print()});a.addButton("print",{title:"print.print_desc",cmd:"mcePrint"})},getInfo:function(){return{longname:"Print",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("print",tinymce.plugins.Print)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js
deleted file mode 100644
index 3933fe656..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js
+++ /dev/null
@@ -1,34 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- tinymce.create('tinymce.plugins.Print', {
- init : function(ed, url) {
- ed.addCommand('mcePrint', function() {
- ed.getWin().print();
- });
-
- ed.addButton('print', {title : 'print.print_desc', cmd : 'mcePrint'});
- },
-
- getInfo : function() {
- return {
- longname : 'Print',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/print',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('print', tinymce.plugins.Print);
-})();
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js
deleted file mode 100644
index 8e9399667..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create("tinymce.plugins.Save",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceSave",c._save,c);a.addCommand("mceCancel",c._cancel,c);a.addButton("save",{title:"save.save_desc",cmd:"mceSave"});a.addButton("cancel",{title:"save.cancel_desc",cmd:"mceCancel"});a.onNodeChange.add(c._nodeChange,c);a.addShortcut("ctrl+s",a.getLang("save.save_desc"),"mceSave")},getInfo:function(){return{longname:"Save",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_nodeChange:function(b,a,c){var b=this.editor;if(b.getParam("save_enablewhendirty")){a.setDisabled("save",!b.isDirty());a.setDisabled("cancel",!b.isDirty())}},_save:function(){var c=this.editor,a,e,d,b;a=tinymce.DOM.get(c.id).form||tinymce.DOM.getParent(c.id,"form");if(c.getParam("save_enablewhendirty")&&!c.isDirty()){return}tinyMCE.triggerSave();if(e=c.getParam("save_onsavecallback")){if(c.execCallback("save_onsavecallback",c)){c.startContent=tinymce.trim(c.getContent({format:"raw"}));c.nodeChanged()}return}if(a){c.isNotDirty=true;if(a.onsubmit==null||a.onsubmit()!=false){a.submit()}c.nodeChanged()}else{c.windowManager.alert("Error: No form element found.")}},_cancel:function(){var a=this.editor,c,b=tinymce.trim(a.startContent);if(c=a.getParam("save_oncancelcallback")){a.execCallback("save_oncancelcallback",a);return}a.setContent(b);a.undoManager.clear();a.nodeChanged()}});tinymce.PluginManager.add("save",tinymce.plugins.Save)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js
deleted file mode 100644
index f5a3de8f5..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js
+++ /dev/null
@@ -1,101 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- tinymce.create('tinymce.plugins.Save', {
- init : function(ed, url) {
- var t = this;
-
- t.editor = ed;
-
- // Register commands
- ed.addCommand('mceSave', t._save, t);
- ed.addCommand('mceCancel', t._cancel, t);
-
- // Register buttons
- ed.addButton('save', {title : 'save.save_desc', cmd : 'mceSave'});
- ed.addButton('cancel', {title : 'save.cancel_desc', cmd : 'mceCancel'});
-
- ed.onNodeChange.add(t._nodeChange, t);
- ed.addShortcut('ctrl+s', ed.getLang('save.save_desc'), 'mceSave');
- },
-
- getInfo : function() {
- return {
- longname : 'Save',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/save',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- },
-
- // Private methods
-
- _nodeChange : function(ed, cm, n) {
- var ed = this.editor;
-
- if (ed.getParam('save_enablewhendirty')) {
- cm.setDisabled('save', !ed.isDirty());
- cm.setDisabled('cancel', !ed.isDirty());
- }
- },
-
- // Private methods
-
- _save : function() {
- var ed = this.editor, formObj, os, i, elementId;
-
- formObj = tinymce.DOM.get(ed.id).form || tinymce.DOM.getParent(ed.id, 'form');
-
- if (ed.getParam("save_enablewhendirty") && !ed.isDirty())
- return;
-
- tinyMCE.triggerSave();
-
- // Use callback instead
- if (os = ed.getParam("save_onsavecallback")) {
- if (ed.execCallback('save_onsavecallback', ed)) {
- ed.startContent = tinymce.trim(ed.getContent({format : 'raw'}));
- ed.nodeChanged();
- }
-
- return;
- }
-
- if (formObj) {
- ed.isNotDirty = true;
-
- if (formObj.onsubmit == null || formObj.onsubmit() != false)
- formObj.submit();
-
- ed.nodeChanged();
- } else
- ed.windowManager.alert("Error: No form element found.");
- },
-
- _cancel : function() {
- var ed = this.editor, os, h = tinymce.trim(ed.startContent);
-
- // Use callback instead
- if (os = ed.getParam("save_oncancelcallback")) {
- ed.execCallback('save_oncancelcallback', ed);
- return;
- }
-
- ed.setContent(h);
- ed.undoManager.clear();
- ed.nodeChanged();
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('save', tinymce.plugins.Save);
-})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css b/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css
deleted file mode 100644
index ecdf58c7b..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/css/searchreplace.css
+++ /dev/null
@@ -1,6 +0,0 @@
-.panel_wrapper {height:85px;}
-.panel_wrapper div.current {height:85px;}
-
-/* IE */
-* html .panel_wrapper {height:100px;}
-* html .panel_wrapper div.current {height:100px;}
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js
deleted file mode 100644
index 165bc12df..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create("tinymce.plugins.SearchReplacePlugin",{init:function(a,c){function b(d){window.focus();a.windowManager.open({file:c+"/searchreplace.htm",width:420+parseInt(a.getLang("searchreplace.delta_width",0)),height:170+parseInt(a.getLang("searchreplace.delta_height",0)),inline:1,auto_focus:0},{mode:d,search_string:a.selection.getContent({format:"text"}),plugin_url:c})}a.addCommand("mceSearch",function(){b("search")});a.addCommand("mceReplace",function(){b("replace")});a.addButton("search",{title:"searchreplace.search_desc",cmd:"mceSearch"});a.addButton("replace",{title:"searchreplace.replace_desc",cmd:"mceReplace"});a.addShortcut("ctrl+f","searchreplace.search_desc","mceSearch")},getInfo:function(){return{longname:"Search/Replace",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("searchreplace",tinymce.plugins.SearchReplacePlugin)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js
deleted file mode 100644
index 4c87e8fa7..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/editor_plugin_src.js
+++ /dev/null
@@ -1,61 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- tinymce.create('tinymce.plugins.SearchReplacePlugin', {
- init : function(ed, url) {
- function open(m) {
- // Keep IE from writing out the f/r character to the editor
- // instance while initializing a new dialog. See: #3131190
- window.focus();
-
- ed.windowManager.open({
- file : url + '/searchreplace.htm',
- width : 420 + parseInt(ed.getLang('searchreplace.delta_width', 0)),
- height : 170 + parseInt(ed.getLang('searchreplace.delta_height', 0)),
- inline : 1,
- auto_focus : 0
- }, {
- mode : m,
- search_string : ed.selection.getContent({format : 'text'}),
- plugin_url : url
- });
- };
-
- // Register commands
- ed.addCommand('mceSearch', function() {
- open('search');
- });
-
- ed.addCommand('mceReplace', function() {
- open('replace');
- });
-
- // Register buttons
- ed.addButton('search', {title : 'searchreplace.search_desc', cmd : 'mceSearch'});
- ed.addButton('replace', {title : 'searchreplace.replace_desc', cmd : 'mceReplace'});
-
- ed.addShortcut('ctrl+f', 'searchreplace.search_desc', 'mceSearch');
- },
-
- getInfo : function() {
- return {
- longname : 'Search/Replace',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/searchreplace',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('searchreplace', tinymce.plugins.SearchReplacePlugin);
-})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js b/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js
deleted file mode 100644
index 80284b9f3..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/js/searchreplace.js
+++ /dev/null
@@ -1,142 +0,0 @@
-tinyMCEPopup.requireLangPack();
-
-var SearchReplaceDialog = {
- init : function(ed) {
- var t = this, f = document.forms[0], m = tinyMCEPopup.getWindowArg("mode");
-
- t.switchMode(m);
-
- f[m + '_panel_searchstring'].value = tinyMCEPopup.getWindowArg("search_string");
-
- // Focus input field
- f[m + '_panel_searchstring'].focus();
-
- mcTabs.onChange.add(function(tab_id, panel_id) {
- t.switchMode(tab_id.substring(0, tab_id.indexOf('_')));
- });
- },
-
- switchMode : function(m) {
- var f, lm = this.lastMode;
-
- if (lm != m) {
- f = document.forms[0];
-
- if (lm) {
- f[m + '_panel_searchstring'].value = f[lm + '_panel_searchstring'].value;
- f[m + '_panel_backwardsu'].checked = f[lm + '_panel_backwardsu'].checked;
- f[m + '_panel_backwardsd'].checked = f[lm + '_panel_backwardsd'].checked;
- f[m + '_panel_casesensitivebox'].checked = f[lm + '_panel_casesensitivebox'].checked;
- }
-
- mcTabs.displayTab(m + '_tab', m + '_panel');
- document.getElementById("replaceBtn").style.display = (m == "replace") ? "inline" : "none";
- document.getElementById("replaceAllBtn").style.display = (m == "replace") ? "inline" : "none";
- this.lastMode = m;
- }
- },
-
- searchNext : function(a) {
- var ed = tinyMCEPopup.editor, se = ed.selection, r = se.getRng(), f, m = this.lastMode, s, b, fl = 0, w = ed.getWin(), wm = ed.windowManager, fo = 0;
-
- // Get input
- f = document.forms[0];
- s = f[m + '_panel_searchstring'].value;
- b = f[m + '_panel_backwardsu'].checked;
- ca = f[m + '_panel_casesensitivebox'].checked;
- rs = f['replace_panel_replacestring'].value;
-
- if (tinymce.isIE) {
- r = ed.getDoc().selection.createRange();
- }
-
- if (s == '')
- return;
-
- function fix() {
- // Correct Firefox graphics glitches
- // TODO: Verify if this is actually needed any more, maybe it was for very old FF versions?
- r = se.getRng().cloneRange();
- ed.getDoc().execCommand('SelectAll', false, null);
- se.setRng(r);
- };
-
- function replace() {
- ed.selection.setContent(rs); // Needs to be duplicated due to selection bug in IE
- };
-
- // IE flags
- if (ca)
- fl = fl | 4;
-
- switch (a) {
- case 'all':
- // Move caret to beginning of text
- ed.execCommand('SelectAll');
- ed.selection.collapse(true);
-
- if (tinymce.isIE) {
- ed.focus();
- r = ed.getDoc().selection.createRange();
-
- while (r.findText(s, b ? -1 : 1, fl)) {
- r.scrollIntoView();
- r.select();
- replace();
- fo = 1;
-
- if (b) {
- r.moveEnd("character", -(rs.length)); // Otherwise will loop forever
- }
- }
-
- tinyMCEPopup.storeSelection();
- } else {
- while (w.find(s, ca, b, false, false, false, false)) {
- replace();
- fo = 1;
- }
- }
-
- if (fo)
- tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.allreplaced'));
- else
- tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
-
- return;
-
- case 'current':
- if (!ed.selection.isCollapsed())
- replace();
-
- break;
- }
-
- se.collapse(b);
- r = se.getRng();
-
- // Whats the point
- if (!s)
- return;
-
- if (tinymce.isIE) {
- ed.focus();
- r = ed.getDoc().selection.createRange();
-
- if (r.findText(s, b ? -1 : 1, fl)) {
- r.scrollIntoView();
- r.select();
- } else
- tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
-
- tinyMCEPopup.storeSelection();
- } else {
- if (!w.find(s, ca, b, false, false, false, false))
- tinyMCEPopup.alert(ed.getLang('searchreplace_dlg.notfound'));
- else
- fix();
- }
- }
-};
-
-tinyMCEPopup.onInit.add(SearchReplaceDialog.init, SearchReplaceDialog);
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js b/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js
deleted file mode 100644
index 8a6590097..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en_dlg.js
+++ /dev/null
@@ -1 +0,0 @@
-tinyMCE.addI18n('en.searchreplace_dlg',{findwhat:"Find What",replacewith:"Replace with",direction:"Direction",up:"Up",down:"Down",mcase:"Match Case",findnext:"Find Next",allreplaced:"All occurrences of the search string were replaced.","searchnext_desc":"Find Again",notfound:"The search has been completed. The search string could not be found.","search_title":"Find","replace_title":"Find/Replace",replaceall:"Replace All",replace:"Replace"});
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm b/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm
deleted file mode 100644
index 5a22d8aa4..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/searchreplace/searchreplace.htm
+++ /dev/null
@@ -1,100 +0,0 @@
-
-
-
- {#searchreplace_dlg.replace_title}
-
-
-
-
-
-
-
-{#searchreplace_dlg.replace_title}
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css b/library/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css
deleted file mode 100644
index 24efa0217..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/spellchecker/css/content.css
+++ /dev/null
@@ -1 +0,0 @@
-.mceItemHiddenSpellWord {background:url(../img/wline.gif) repeat-x bottom left; cursor:default;}
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js
deleted file mode 100644
index 48549c923..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var a=tinymce.util.JSONRequest,c=tinymce.each,b=tinymce.DOM;tinymce.create("tinymce.plugins.SpellcheckerPlugin",{getInfo:function(){return{longname:"Spellchecker",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker",version:tinymce.majorVersion+"."+tinymce.minorVersion}},init:function(e,f){var g=this,d;g.url=f;g.editor=e;g.rpcUrl=e.getParam("spellchecker_rpc_url","{backend}");if(g.rpcUrl=="{backend}"){if(tinymce.isIE){return}g.hasSupport=true;e.onContextMenu.addToTop(function(h,i){if(g.active){return false}})}e.addCommand("mceSpellCheck",function(){if(g.rpcUrl=="{backend}"){g.editor.getBody().spellcheck=g.active=!g.active;return}if(!g.active){e.setProgressState(1);g._sendRPC("checkWords",[g.selectedLang,g._getWords()],function(h){if(h.length>0){g.active=1;g._markWords(h);e.setProgressState(0);e.nodeChanged()}else{e.setProgressState(0);if(e.getParam("spellchecker_report_no_misspellings",true)){e.windowManager.alert("spellchecker.no_mpell")}}})}else{g._done()}});if(e.settings.content_css!==false){e.contentCSS.push(f+"/css/content.css")}e.onClick.add(g._showMenu,g);e.onContextMenu.add(g._showMenu,g);e.onBeforeGetContent.add(function(){if(g.active){g._removeWords()}});e.onNodeChange.add(function(i,h){h.setActive("spellchecker",g.active)});e.onSetContent.add(function(){g._done()});e.onBeforeGetContent.add(function(){g._done()});e.onBeforeExecCommand.add(function(h,i){if(i=="mceFullScreen"){g._done()}});g.languages={};c(e.getParam("spellchecker_languages","+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv","hash"),function(i,h){if(h.indexOf("+")===0){h=h.substring(1);g.selectedLang=i}g.languages[h]=i})},createControl:function(h,d){var f=this,g,e=f.editor;if(h=="spellchecker"){if(f.rpcUrl=="{backend}"){if(f.hasSupport){g=d.createButton(h,{title:"spellchecker.desc",cmd:"mceSpellCheck",scope:f})}return g}g=d.createSplitButton(h,{title:"spellchecker.desc",cmd:"mceSpellCheck",scope:f});g.onRenderMenu.add(function(j,i){i.add({title:"spellchecker.langs","class":"mceMenuItemTitle"}).setDisabled(1);c(f.languages,function(n,m){var p={icon:1},l;p.onclick=function(){if(n==f.selectedLang){return}l.setSelected(1);f.selectedItem.setSelected(0);f.selectedItem=l;f.selectedLang=n};p.title=m;l=i.add(p);l.setSelected(n==f.selectedLang);if(n==f.selectedLang){f.selectedItem=l}})});return g}},_walk:function(i,g){var h=this.editor.getDoc(),e;if(h.createTreeWalker){e=h.createTreeWalker(i,NodeFilter.SHOW_TEXT,null,false);while((i=e.nextNode())!=null){g.call(this,i)}}else{tinymce.walk(i,g,"childNodes")}},_getSeparators:function(){var e="",d,f=this.editor.getParam("spellchecker_word_separator_chars",'\\s!"#$%&()*+,-./:;<=>?@[]^_{|}§©«®±¶·¸»¼½¾¿×÷¤\u201d\u201c');for(d=0;d$2");while((s=p.indexOf(""))!=-1){o=p.substring(0,s);if(o.length){r=j.createTextNode(g.decode(o));q.appendChild(r)}p=p.substring(s+10);s=p.indexOf("");o=p.substring(0,s);p=p.substring(s+11);q.appendChild(g.create("span",{"class":"mceItemHiddenSpellWord"},o))}if(p.length){r=j.createTextNode(g.decode(p));q.appendChild(r)}}else{q.innerHTML=p.replace(f,'$1$2')}g.replace(q,t)}});i.setRng(d)},_showMenu:function(h,j){var i=this,h=i.editor,d=i._menu,l,k=h.dom,g=k.getViewPort(h.getWin()),f=j.target;j=0;if(!d){d=h.controlManager.createDropMenu("spellcheckermenu",{"class":"mceNoIcons"});i._menu=d}if(k.hasClass(f,"mceItemHiddenSpellWord")){d.removeAll();d.add({title:"spellchecker.wait","class":"mceMenuItemTitle"}).setDisabled(1);i._sendRPC("getSuggestions",[i.selectedLang,k.decode(f.innerHTML)],function(m){var e;d.removeAll();if(m.length>0){d.add({title:"spellchecker.sug","class":"mceMenuItemTitle"}).setDisabled(1);c(m,function(n){d.add({title:n,onclick:function(){k.replace(h.getDoc().createTextNode(n),f);i._checkDone()}})});d.addSeparator()}else{d.add({title:"spellchecker.no_sug","class":"mceMenuItemTitle"}).setDisabled(1)}if(h.getParam("show_ignore_words",true)){e=i.editor.getParam("spellchecker_enable_ignore_rpc","");d.add({title:"spellchecker.ignore_word",onclick:function(){var n=f.innerHTML;k.remove(f,1);i._checkDone();if(e){h.setProgressState(1);i._sendRPC("ignoreWord",[i.selectedLang,n],function(o){h.setProgressState(0)})}}});d.add({title:"spellchecker.ignore_words",onclick:function(){var n=f.innerHTML;i._removeWords(k.decode(n));i._checkDone();if(e){h.setProgressState(1);i._sendRPC("ignoreWords",[i.selectedLang,n],function(o){h.setProgressState(0)})}}})}if(i.editor.getParam("spellchecker_enable_learn_rpc")){d.add({title:"spellchecker.learn_word",onclick:function(){var n=f.innerHTML;k.remove(f,1);i._checkDone();h.setProgressState(1);i._sendRPC("learnWord",[i.selectedLang,n],function(o){h.setProgressState(0)})}})}d.update()});l=b.getPos(h.getContentAreaContainer());d.settings.offset_x=l.x;d.settings.offset_y=l.y;h.selection.select(f);l=k.getPos(f);d.showMenu(l.x,l.y+f.offsetHeight-g.y);return tinymce.dom.Event.cancel(j)}else{d.hideMenu()}},_checkDone:function(){var e=this,d=e.editor,g=d.dom,f;c(g.select("span"),function(h){if(h&&g.hasClass(h,"mceItemHiddenSpellWord")){f=true;return false}});if(!f){e._done()}},_done:function(){var d=this,e=d.active;if(d.active){d.active=0;d._removeWords();if(d._menu){d._menu.hideMenu()}if(e){d.editor.nodeChanged()}}},_sendRPC:function(e,g,d){var f=this;a.sendRPC({url:f.rpcUrl,method:e,params:g,success:d,error:function(i,h){f.editor.setProgressState(0);f.editor.windowManager.alert(i.errstr||("Error response: "+h.responseText))}})}});tinymce.PluginManager.add("spellchecker",tinymce.plugins.SpellcheckerPlugin)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js
deleted file mode 100644
index 86fdfceb4..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/spellchecker/editor_plugin_src.js
+++ /dev/null
@@ -1,436 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- var JSONRequest = tinymce.util.JSONRequest, each = tinymce.each, DOM = tinymce.DOM;
-
- tinymce.create('tinymce.plugins.SpellcheckerPlugin', {
- getInfo : function() {
- return {
- longname : 'Spellchecker',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/spellchecker',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- },
-
- init : function(ed, url) {
- var t = this, cm;
-
- t.url = url;
- t.editor = ed;
- t.rpcUrl = ed.getParam("spellchecker_rpc_url", "{backend}");
-
- if (t.rpcUrl == '{backend}') {
- // Sniff if the browser supports native spellchecking (Don't know of a better way)
- if (tinymce.isIE)
- return;
-
- t.hasSupport = true;
-
- // Disable the context menu when spellchecking is active
- ed.onContextMenu.addToTop(function(ed, e) {
- if (t.active)
- return false;
- });
- }
-
- // Register commands
- ed.addCommand('mceSpellCheck', function() {
- if (t.rpcUrl == '{backend}') {
- // Enable/disable native spellchecker
- t.editor.getBody().spellcheck = t.active = !t.active;
- return;
- }
-
- if (!t.active) {
- ed.setProgressState(1);
- t._sendRPC('checkWords', [t.selectedLang, t._getWords()], function(r) {
- if (r.length > 0) {
- t.active = 1;
- t._markWords(r);
- ed.setProgressState(0);
- ed.nodeChanged();
- } else {
- ed.setProgressState(0);
-
- if (ed.getParam('spellchecker_report_no_misspellings', true))
- ed.windowManager.alert('spellchecker.no_mpell');
- }
- });
- } else
- t._done();
- });
-
- if (ed.settings.content_css !== false)
- ed.contentCSS.push(url + '/css/content.css');
-
- ed.onClick.add(t._showMenu, t);
- ed.onContextMenu.add(t._showMenu, t);
- ed.onBeforeGetContent.add(function() {
- if (t.active)
- t._removeWords();
- });
-
- ed.onNodeChange.add(function(ed, cm) {
- cm.setActive('spellchecker', t.active);
- });
-
- ed.onSetContent.add(function() {
- t._done();
- });
-
- ed.onBeforeGetContent.add(function() {
- t._done();
- });
-
- ed.onBeforeExecCommand.add(function(ed, cmd) {
- if (cmd == 'mceFullScreen')
- t._done();
- });
-
- // Find selected language
- t.languages = {};
- each(ed.getParam('spellchecker_languages', '+English=en,Danish=da,Dutch=nl,Finnish=fi,French=fr,German=de,Italian=it,Polish=pl,Portuguese=pt,Spanish=es,Swedish=sv', 'hash'), function(v, k) {
- if (k.indexOf('+') === 0) {
- k = k.substring(1);
- t.selectedLang = v;
- }
-
- t.languages[k] = v;
- });
- },
-
- createControl : function(n, cm) {
- var t = this, c, ed = t.editor;
-
- if (n == 'spellchecker') {
- // Use basic button if we use the native spellchecker
- if (t.rpcUrl == '{backend}') {
- // Create simple toggle button if we have native support
- if (t.hasSupport)
- c = cm.createButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t});
-
- return c;
- }
-
- c = cm.createSplitButton(n, {title : 'spellchecker.desc', cmd : 'mceSpellCheck', scope : t});
-
- c.onRenderMenu.add(function(c, m) {
- m.add({title : 'spellchecker.langs', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
- each(t.languages, function(v, k) {
- var o = {icon : 1}, mi;
-
- o.onclick = function() {
- if (v == t.selectedLang) {
- return;
- }
- mi.setSelected(1);
- t.selectedItem.setSelected(0);
- t.selectedItem = mi;
- t.selectedLang = v;
- };
-
- o.title = k;
- mi = m.add(o);
- mi.setSelected(v == t.selectedLang);
-
- if (v == t.selectedLang)
- t.selectedItem = mi;
- })
- });
-
- return c;
- }
- },
-
- // Internal functions
-
- _walk : function(n, f) {
- var d = this.editor.getDoc(), w;
-
- if (d.createTreeWalker) {
- w = d.createTreeWalker(n, NodeFilter.SHOW_TEXT, null, false);
-
- while ((n = w.nextNode()) != null)
- f.call(this, n);
- } else
- tinymce.walk(n, f, 'childNodes');
- },
-
- _getSeparators : function() {
- var re = '', i, str = this.editor.getParam('spellchecker_word_separator_chars', '\\s!"#$%&()*+,-./:;<=>?@[\]^_{|}§©«®±¶·¸»¼½¾¿×÷¤\u201d\u201c');
-
- // Build word separator regexp
- for (i=0; i elements content is broken after spellchecking.
- // Bug #1408: Preceding whitespace characters are removed
- // @TODO: I'm not sure that both are still issues on IE9.
- if (tinymce.isIE) {
- // Enclose mispelled words with temporal tag
- v = v.replace(rx, '$1$2');
- // Loop over the content finding mispelled words
- while ((pos = v.indexOf('')) != -1) {
- // Add text node for the content before the word
- txt = v.substring(0, pos);
- if (txt.length) {
- node = doc.createTextNode(dom.decode(txt));
- elem.appendChild(node);
- }
- v = v.substring(pos+10);
- pos = v.indexOf('');
- txt = v.substring(0, pos);
- v = v.substring(pos+11);
- // Add span element for the word
- elem.appendChild(dom.create('span', {'class' : 'mceItemHiddenSpellWord'}, txt));
- }
- // Add text node for the rest of the content
- if (v.length) {
- node = doc.createTextNode(dom.decode(v));
- elem.appendChild(node);
- }
- } else {
- // Other browsers preserve whitespace characters on innerHTML usage
- elem.innerHTML = v.replace(rx, '$1$2');
- }
-
- // Finally, replace the node with the container
- dom.replace(elem, n);
- }
- });
-
- se.setRng(r);
- },
-
- _showMenu : function(ed, e) {
- var t = this, ed = t.editor, m = t._menu, p1, dom = ed.dom, vp = dom.getViewPort(ed.getWin()), wordSpan = e.target;
-
- e = 0; // Fixes IE memory leak
-
- if (!m) {
- m = ed.controlManager.createDropMenu('spellcheckermenu', {'class' : 'mceNoIcons'});
- t._menu = m;
- }
-
- if (dom.hasClass(wordSpan, 'mceItemHiddenSpellWord')) {
- m.removeAll();
- m.add({title : 'spellchecker.wait', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
-
- t._sendRPC('getSuggestions', [t.selectedLang, dom.decode(wordSpan.innerHTML)], function(r) {
- var ignoreRpc;
-
- m.removeAll();
-
- if (r.length > 0) {
- m.add({title : 'spellchecker.sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
- each(r, function(v) {
- m.add({title : v, onclick : function() {
- dom.replace(ed.getDoc().createTextNode(v), wordSpan);
- t._checkDone();
- }});
- });
-
- m.addSeparator();
- } else
- m.add({title : 'spellchecker.no_sug', 'class' : 'mceMenuItemTitle'}).setDisabled(1);
-
- if (ed.getParam('show_ignore_words', true)) {
- ignoreRpc = t.editor.getParam("spellchecker_enable_ignore_rpc", '');
- m.add({
- title : 'spellchecker.ignore_word',
- onclick : function() {
- var word = wordSpan.innerHTML;
-
- dom.remove(wordSpan, 1);
- t._checkDone();
-
- // tell the server if we need to
- if (ignoreRpc) {
- ed.setProgressState(1);
- t._sendRPC('ignoreWord', [t.selectedLang, word], function(r) {
- ed.setProgressState(0);
- });
- }
- }
- });
-
- m.add({
- title : 'spellchecker.ignore_words',
- onclick : function() {
- var word = wordSpan.innerHTML;
-
- t._removeWords(dom.decode(word));
- t._checkDone();
-
- // tell the server if we need to
- if (ignoreRpc) {
- ed.setProgressState(1);
- t._sendRPC('ignoreWords', [t.selectedLang, word], function(r) {
- ed.setProgressState(0);
- });
- }
- }
- });
- }
-
- if (t.editor.getParam("spellchecker_enable_learn_rpc")) {
- m.add({
- title : 'spellchecker.learn_word',
- onclick : function() {
- var word = wordSpan.innerHTML;
-
- dom.remove(wordSpan, 1);
- t._checkDone();
-
- ed.setProgressState(1);
- t._sendRPC('learnWord', [t.selectedLang, word], function(r) {
- ed.setProgressState(0);
- });
- }
- });
- }
-
- m.update();
- });
-
- p1 = DOM.getPos(ed.getContentAreaContainer());
- m.settings.offset_x = p1.x;
- m.settings.offset_y = p1.y;
-
- ed.selection.select(wordSpan);
- p1 = dom.getPos(wordSpan);
- m.showMenu(p1.x, p1.y + wordSpan.offsetHeight - vp.y);
-
- return tinymce.dom.Event.cancel(e);
- } else
- m.hideMenu();
- },
-
- _checkDone : function() {
- var t = this, ed = t.editor, dom = ed.dom, o;
-
- each(dom.select('span'), function(n) {
- if (n && dom.hasClass(n, 'mceItemHiddenSpellWord')) {
- o = true;
- return false;
- }
- });
-
- if (!o)
- t._done();
- },
-
- _done : function() {
- var t = this, la = t.active;
-
- if (t.active) {
- t.active = 0;
- t._removeWords();
-
- if (t._menu)
- t._menu.hideMenu();
-
- if (la)
- t.editor.nodeChanged();
- }
- },
-
- _sendRPC : function(m, p, cb) {
- var t = this;
-
- JSONRequest.sendRPC({
- url : t.rpcUrl,
- method : m,
- params : p,
- success : cb,
- error : function(e, x) {
- t.editor.setProgressState(0);
- t.editor.windowManager.alert(e.errstr || ('Error response: ' + x.responseText));
- }
- });
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('spellchecker', tinymce.plugins.SpellcheckerPlugin);
-})();
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif b/library/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif
deleted file mode 100644
index 7d0a4dbca..000000000
Binary files a/library/tinymce/jscripts/tiny_mce/plugins/spellchecker/img/wline.gif and /dev/null differ
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/style/css/props.css b/library/tinymce/jscripts/tiny_mce/plugins/style/css/props.css
deleted file mode 100644
index 3b8f0ee77..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/style/css/props.css
+++ /dev/null
@@ -1,14 +0,0 @@
-#text_font {width:250px;}
-#text_size {width:70px;}
-.mceAddSelectValue {background:#DDD;}
-select, #block_text_indent, #box_width, #box_height, #box_padding_top, #box_padding_right, #box_padding_bottom, #box_padding_left {width:70px;}
-#box_margin_top, #box_margin_right, #box_margin_bottom, #box_margin_left, #positioning_width, #positioning_height, #positioning_zindex {width:70px;}
-#positioning_placement_top, #positioning_placement_right, #positioning_placement_bottom, #positioning_placement_left {width:70px;}
-#positioning_clip_top, #positioning_clip_right, #positioning_clip_bottom, #positioning_clip_left {width:70px;}
-.panel_toggle_insert_span {padding-top:10px;}
-.panel_wrapper div.current {padding-top:10px;height:230px;}
-.delim {border-left:1px solid gray;}
-.tdelim {border-bottom:1px solid gray;}
-#block_display {width:145px;}
-#list_type {width:115px;}
-.disabled {background:#EEE;}
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js
deleted file mode 100644
index dda9f928b..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create("tinymce.plugins.StylePlugin",{init:function(a,b){a.addCommand("mceStyleProps",function(){var c=false;var f=a.selection.getSelectedBlocks();var d=[];if(f.length===1){d.push(a.selection.getNode().style.cssText)}else{tinymce.each(f,function(g){d.push(a.dom.getAttrib(g,"style"))});c=true}a.windowManager.open({file:b+"/props.htm",width:480+parseInt(a.getLang("style.delta_width",0)),height:340+parseInt(a.getLang("style.delta_height",0)),inline:1},{applyStyleToBlocks:c,plugin_url:b,styles:d})});a.addCommand("mceSetElementStyle",function(d,c){if(e=a.selection.getNode()){a.dom.setAttrib(e,"style",c);a.execCommand("mceRepaint")}});a.onNodeChange.add(function(d,c,f){c.setDisabled("styleprops",f.nodeName==="BODY")});a.addButton("styleprops",{title:"style.desc",cmd:"mceStyleProps"})},getInfo:function(){return{longname:"Style",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("style",tinymce.plugins.StylePlugin)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js
deleted file mode 100644
index eaa7c7713..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/style/editor_plugin_src.js
+++ /dev/null
@@ -1,71 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- tinymce.create('tinymce.plugins.StylePlugin', {
- init : function(ed, url) {
- // Register commands
- ed.addCommand('mceStyleProps', function() {
-
- var applyStyleToBlocks = false;
- var blocks = ed.selection.getSelectedBlocks();
- var styles = [];
-
- if (blocks.length === 1) {
- styles.push(ed.selection.getNode().style.cssText);
- }
- else {
- tinymce.each(blocks, function(block) {
- styles.push(ed.dom.getAttrib(block, 'style'));
- });
- applyStyleToBlocks = true;
- }
-
- ed.windowManager.open({
- file : url + '/props.htm',
- width : 480 + parseInt(ed.getLang('style.delta_width', 0)),
- height : 340 + parseInt(ed.getLang('style.delta_height', 0)),
- inline : 1
- }, {
- applyStyleToBlocks : applyStyleToBlocks,
- plugin_url : url,
- styles : styles
- });
- });
-
- ed.addCommand('mceSetElementStyle', function(ui, v) {
- if (e = ed.selection.getNode()) {
- ed.dom.setAttrib(e, 'style', v);
- ed.execCommand('mceRepaint');
- }
- });
-
- ed.onNodeChange.add(function(ed, cm, n) {
- cm.setDisabled('styleprops', n.nodeName === 'BODY');
- });
-
- // Register buttons
- ed.addButton('styleprops', {title : 'style.desc', cmd : 'mceStyleProps'});
- },
-
- getInfo : function() {
- return {
- longname : 'Style',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/style',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('style', tinymce.plugins.StylePlugin);
-})();
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/style/js/props.js b/library/tinymce/jscripts/tiny_mce/plugins/style/js/props.js
deleted file mode 100644
index 0a8a8ec3e..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/style/js/props.js
+++ /dev/null
@@ -1,709 +0,0 @@
-tinyMCEPopup.requireLangPack();
-
-var defaultFonts = "" +
- "Arial, Helvetica, sans-serif=Arial, Helvetica, sans-serif;" +
- "Times New Roman, Times, serif=Times New Roman, Times, serif;" +
- "Courier New, Courier, mono=Courier New, Courier, mono;" +
- "Times New Roman, Times, serif=Times New Roman, Times, serif;" +
- "Georgia, Times New Roman, Times, serif=Georgia, Times New Roman, Times, serif;" +
- "Verdana, Arial, Helvetica, sans-serif=Verdana, Arial, Helvetica, sans-serif;" +
- "Geneva, Arial, Helvetica, sans-serif=Geneva, Arial, Helvetica, sans-serif";
-
-var defaultSizes = "9;10;12;14;16;18;24;xx-small;x-small;small;medium;large;x-large;xx-large;smaller;larger";
-var defaultMeasurement = "+pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%";
-var defaultSpacingMeasurement = "pixels=px;points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;+ems=em;exs=ex;%";
-var defaultIndentMeasurement = "pixels=px;+points=pt;inches=in;centimetres=cm;millimetres=mm;picas=pc;ems=em;exs=ex;%";
-var defaultWeight = "normal;bold;bolder;lighter;100;200;300;400;500;600;700;800;900";
-var defaultTextStyle = "normal;italic;oblique";
-var defaultVariant = "normal;small-caps";
-var defaultLineHeight = "normal";
-var defaultAttachment = "fixed;scroll";
-var defaultRepeat = "no-repeat;repeat;repeat-x;repeat-y";
-var defaultPosH = "left;center;right";
-var defaultPosV = "top;center;bottom";
-var defaultVAlign = "baseline;sub;super;top;text-top;middle;bottom;text-bottom";
-var defaultDisplay = "inline;block;list-item;run-in;compact;marker;table;inline-table;table-row-group;table-header-group;table-footer-group;table-row;table-column-group;table-column;table-cell;table-caption;none";
-var defaultBorderStyle = "none;solid;dashed;dotted;double;groove;ridge;inset;outset";
-var defaultBorderWidth = "thin;medium;thick";
-var defaultListType = "disc;circle;square;decimal;lower-roman;upper-roman;lower-alpha;upper-alpha;none";
-
-function aggregateStyles(allStyles) {
- var mergedStyles = {};
-
- tinymce.each(allStyles, function(style) {
- if (style !== '') {
- var parsedStyles = tinyMCEPopup.editor.dom.parseStyle(style);
- for (var name in parsedStyles) {
- if (parsedStyles.hasOwnProperty(name)) {
- if (mergedStyles[name] === undefined) {
- mergedStyles[name] = parsedStyles[name];
- }
- else if (name === 'text-decoration') {
- if (mergedStyles[name].indexOf(parsedStyles[name]) === -1) {
- mergedStyles[name] = mergedStyles[name] +' '+ parsedStyles[name];
- }
- }
- }
- }
- }
- });
-
- return mergedStyles;
-}
-
-var applyActionIsInsert;
-var existingStyles;
-
-function init(ed) {
- var ce = document.getElementById('container'), h;
-
- existingStyles = aggregateStyles(tinyMCEPopup.getWindowArg('styles'));
- ce.style.cssText = tinyMCEPopup.editor.dom.serializeStyle(existingStyles);
-
- applyActionIsInsert = ed.getParam("edit_css_style_insert_span", false);
- document.getElementById('toggle_insert_span').checked = applyActionIsInsert;
-
- h = getBrowserHTML('background_image_browser','background_image','image','advimage');
- document.getElementById("background_image_browser").innerHTML = h;
-
- document.getElementById('text_color_pickcontainer').innerHTML = getColorPickerHTML('text_color_pick','text_color');
- document.getElementById('background_color_pickcontainer').innerHTML = getColorPickerHTML('background_color_pick','background_color');
- document.getElementById('border_color_top_pickcontainer').innerHTML = getColorPickerHTML('border_color_top_pick','border_color_top');
- document.getElementById('border_color_right_pickcontainer').innerHTML = getColorPickerHTML('border_color_right_pick','border_color_right');
- document.getElementById('border_color_bottom_pickcontainer').innerHTML = getColorPickerHTML('border_color_bottom_pick','border_color_bottom');
- document.getElementById('border_color_left_pickcontainer').innerHTML = getColorPickerHTML('border_color_left_pick','border_color_left');
-
- fillSelect(0, 'text_font', 'style_font', defaultFonts, ';', true);
- fillSelect(0, 'text_size', 'style_font_size', defaultSizes, ';', true);
- fillSelect(0, 'text_size_measurement', 'style_font_size_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'text_case', 'style_text_case', "capitalize;uppercase;lowercase", ';', true);
- fillSelect(0, 'text_weight', 'style_font_weight', defaultWeight, ';', true);
- fillSelect(0, 'text_style', 'style_font_style', defaultTextStyle, ';', true);
- fillSelect(0, 'text_variant', 'style_font_variant', defaultVariant, ';', true);
- fillSelect(0, 'text_lineheight', 'style_font_line_height', defaultLineHeight, ';', true);
- fillSelect(0, 'text_lineheight_measurement', 'style_font_line_height_measurement', defaultMeasurement, ';', true);
-
- fillSelect(0, 'background_attachment', 'style_background_attachment', defaultAttachment, ';', true);
- fillSelect(0, 'background_repeat', 'style_background_repeat', defaultRepeat, ';', true);
-
- fillSelect(0, 'background_hpos_measurement', 'style_background_hpos_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'background_vpos_measurement', 'style_background_vpos_measurement', defaultMeasurement, ';', true);
-
- fillSelect(0, 'background_hpos', 'style_background_hpos', defaultPosH, ';', true);
- fillSelect(0, 'background_vpos', 'style_background_vpos', defaultPosV, ';', true);
-
- fillSelect(0, 'block_wordspacing', 'style_wordspacing', 'normal', ';', true);
- fillSelect(0, 'block_wordspacing_measurement', 'style_wordspacing_measurement', defaultSpacingMeasurement, ';', true);
- fillSelect(0, 'block_letterspacing', 'style_letterspacing', 'normal', ';', true);
- fillSelect(0, 'block_letterspacing_measurement', 'style_letterspacing_measurement', defaultSpacingMeasurement, ';', true);
- fillSelect(0, 'block_vertical_alignment', 'style_vertical_alignment', defaultVAlign, ';', true);
- fillSelect(0, 'block_text_align', 'style_text_align', "left;right;center;justify", ';', true);
- fillSelect(0, 'block_whitespace', 'style_whitespace', "normal;pre;nowrap", ';', true);
- fillSelect(0, 'block_display', 'style_display', defaultDisplay, ';', true);
- fillSelect(0, 'block_text_indent_measurement', 'style_text_indent_measurement', defaultIndentMeasurement, ';', true);
-
- fillSelect(0, 'box_width_measurement', 'style_box_width_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'box_height_measurement', 'style_box_height_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'box_float', 'style_float', 'left;right;none', ';', true);
- fillSelect(0, 'box_clear', 'style_clear', 'left;right;both;none', ';', true);
- fillSelect(0, 'box_padding_left_measurement', 'style_padding_left_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'box_padding_top_measurement', 'style_padding_top_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'box_padding_bottom_measurement', 'style_padding_bottom_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'box_padding_right_measurement', 'style_padding_right_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'box_margin_left_measurement', 'style_margin_left_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'box_margin_top_measurement', 'style_margin_top_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'box_margin_bottom_measurement', 'style_margin_bottom_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'box_margin_right_measurement', 'style_margin_right_measurement', defaultMeasurement, ';', true);
-
- fillSelect(0, 'border_style_top', 'style_border_style_top', defaultBorderStyle, ';', true);
- fillSelect(0, 'border_style_right', 'style_border_style_right', defaultBorderStyle, ';', true);
- fillSelect(0, 'border_style_bottom', 'style_border_style_bottom', defaultBorderStyle, ';', true);
- fillSelect(0, 'border_style_left', 'style_border_style_left', defaultBorderStyle, ';', true);
-
- fillSelect(0, 'border_width_top', 'style_border_width_top', defaultBorderWidth, ';', true);
- fillSelect(0, 'border_width_right', 'style_border_width_right', defaultBorderWidth, ';', true);
- fillSelect(0, 'border_width_bottom', 'style_border_width_bottom', defaultBorderWidth, ';', true);
- fillSelect(0, 'border_width_left', 'style_border_width_left', defaultBorderWidth, ';', true);
-
- fillSelect(0, 'border_width_top_measurement', 'style_border_width_top_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'border_width_right_measurement', 'style_border_width_right_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'border_width_bottom_measurement', 'style_border_width_bottom_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'border_width_left_measurement', 'style_border_width_left_measurement', defaultMeasurement, ';', true);
-
- fillSelect(0, 'list_type', 'style_list_type', defaultListType, ';', true);
- fillSelect(0, 'list_position', 'style_list_position', "inside;outside", ';', true);
-
- fillSelect(0, 'positioning_type', 'style_positioning_type', "absolute;relative;static", ';', true);
- fillSelect(0, 'positioning_visibility', 'style_positioning_visibility', "inherit;visible;hidden", ';', true);
-
- fillSelect(0, 'positioning_width_measurement', 'style_positioning_width_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'positioning_height_measurement', 'style_positioning_height_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'positioning_overflow', 'style_positioning_overflow', "visible;hidden;scroll;auto", ';', true);
-
- fillSelect(0, 'positioning_placement_top_measurement', 'style_positioning_placement_top_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'positioning_placement_right_measurement', 'style_positioning_placement_right_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'positioning_placement_bottom_measurement', 'style_positioning_placement_bottom_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'positioning_placement_left_measurement', 'style_positioning_placement_left_measurement', defaultMeasurement, ';', true);
-
- fillSelect(0, 'positioning_clip_top_measurement', 'style_positioning_clip_top_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'positioning_clip_right_measurement', 'style_positioning_clip_right_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'positioning_clip_bottom_measurement', 'style_positioning_clip_bottom_measurement', defaultMeasurement, ';', true);
- fillSelect(0, 'positioning_clip_left_measurement', 'style_positioning_clip_left_measurement', defaultMeasurement, ';', true);
-
- TinyMCE_EditableSelects.init();
- setupFormData();
- showDisabledControls();
-}
-
-function setupFormData() {
- var ce = document.getElementById('container'), f = document.forms[0], s, b, i;
-
- // Setup text fields
-
- selectByValue(f, 'text_font', ce.style.fontFamily, true, true);
- selectByValue(f, 'text_size', getNum(ce.style.fontSize), true, true);
- selectByValue(f, 'text_size_measurement', getMeasurement(ce.style.fontSize));
- selectByValue(f, 'text_weight', ce.style.fontWeight, true, true);
- selectByValue(f, 'text_style', ce.style.fontStyle, true, true);
- selectByValue(f, 'text_lineheight', getNum(ce.style.lineHeight), true, true);
- selectByValue(f, 'text_lineheight_measurement', getMeasurement(ce.style.lineHeight));
- selectByValue(f, 'text_case', ce.style.textTransform, true, true);
- selectByValue(f, 'text_variant', ce.style.fontVariant, true, true);
- f.text_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.color);
- updateColor('text_color_pick', 'text_color');
- f.text_underline.checked = inStr(ce.style.textDecoration, 'underline');
- f.text_overline.checked = inStr(ce.style.textDecoration, 'overline');
- f.text_linethrough.checked = inStr(ce.style.textDecoration, 'line-through');
- f.text_blink.checked = inStr(ce.style.textDecoration, 'blink');
- f.text_none.checked = inStr(ce.style.textDecoration, 'none');
- updateTextDecorations();
-
- // Setup background fields
-
- f.background_color.value = tinyMCEPopup.editor.dom.toHex(ce.style.backgroundColor);
- updateColor('background_color_pick', 'background_color');
- f.background_image.value = ce.style.backgroundImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
- selectByValue(f, 'background_repeat', ce.style.backgroundRepeat, true, true);
- selectByValue(f, 'background_attachment', ce.style.backgroundAttachment, true, true);
- selectByValue(f, 'background_hpos', getNum(getVal(ce.style.backgroundPosition, 0)), true, true);
- selectByValue(f, 'background_hpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 0)));
- selectByValue(f, 'background_vpos', getNum(getVal(ce.style.backgroundPosition, 1)), true, true);
- selectByValue(f, 'background_vpos_measurement', getMeasurement(getVal(ce.style.backgroundPosition, 1)));
-
- // Setup block fields
-
- selectByValue(f, 'block_wordspacing', getNum(ce.style.wordSpacing), true, true);
- selectByValue(f, 'block_wordspacing_measurement', getMeasurement(ce.style.wordSpacing));
- selectByValue(f, 'block_letterspacing', getNum(ce.style.letterSpacing), true, true);
- selectByValue(f, 'block_letterspacing_measurement', getMeasurement(ce.style.letterSpacing));
- selectByValue(f, 'block_vertical_alignment', ce.style.verticalAlign, true, true);
- selectByValue(f, 'block_text_align', ce.style.textAlign, true, true);
- f.block_text_indent.value = getNum(ce.style.textIndent);
- selectByValue(f, 'block_text_indent_measurement', getMeasurement(ce.style.textIndent));
- selectByValue(f, 'block_whitespace', ce.style.whiteSpace, true, true);
- selectByValue(f, 'block_display', ce.style.display, true, true);
-
- // Setup box fields
-
- f.box_width.value = getNum(ce.style.width);
- selectByValue(f, 'box_width_measurement', getMeasurement(ce.style.width));
-
- f.box_height.value = getNum(ce.style.height);
- selectByValue(f, 'box_height_measurement', getMeasurement(ce.style.height));
- selectByValue(f, 'box_float', ce.style.cssFloat || ce.style.styleFloat, true, true);
-
- selectByValue(f, 'box_clear', ce.style.clear, true, true);
-
- setupBox(f, ce, 'box_padding', 'padding', '');
- setupBox(f, ce, 'box_margin', 'margin', '');
-
- // Setup border fields
-
- setupBox(f, ce, 'border_style', 'border', 'Style');
- setupBox(f, ce, 'border_width', 'border', 'Width');
- setupBox(f, ce, 'border_color', 'border', 'Color');
-
- updateColor('border_color_top_pick', 'border_color_top');
- updateColor('border_color_right_pick', 'border_color_right');
- updateColor('border_color_bottom_pick', 'border_color_bottom');
- updateColor('border_color_left_pick', 'border_color_left');
-
- f.elements.border_color_top.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_top.value);
- f.elements.border_color_right.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_right.value);
- f.elements.border_color_bottom.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_bottom.value);
- f.elements.border_color_left.value = tinyMCEPopup.editor.dom.toHex(f.elements.border_color_left.value);
-
- // Setup list fields
-
- selectByValue(f, 'list_type', ce.style.listStyleType, true, true);
- selectByValue(f, 'list_position', ce.style.listStylePosition, true, true);
- f.list_bullet_image.value = ce.style.listStyleImage.replace(new RegExp("url\\('?([^']*)'?\\)", 'gi'), "$1");
-
- // Setup box fields
-
- selectByValue(f, 'positioning_type', ce.style.position, true, true);
- selectByValue(f, 'positioning_visibility', ce.style.visibility, true, true);
- selectByValue(f, 'positioning_overflow', ce.style.overflow, true, true);
- f.positioning_zindex.value = ce.style.zIndex ? ce.style.zIndex : "";
-
- f.positioning_width.value = getNum(ce.style.width);
- selectByValue(f, 'positioning_width_measurement', getMeasurement(ce.style.width));
-
- f.positioning_height.value = getNum(ce.style.height);
- selectByValue(f, 'positioning_height_measurement', getMeasurement(ce.style.height));
-
- setupBox(f, ce, 'positioning_placement', '', '', ['top', 'right', 'bottom', 'left']);
-
- s = ce.style.clip.replace(new RegExp("rect\\('?([^']*)'?\\)", 'gi'), "$1");
- s = s.replace(/,/g, ' ');
-
- if (!hasEqualValues([getVal(s, 0), getVal(s, 1), getVal(s, 2), getVal(s, 3)])) {
- f.positioning_clip_top.value = getNum(getVal(s, 0));
- selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));
- f.positioning_clip_right.value = getNum(getVal(s, 1));
- selectByValue(f, 'positioning_clip_right_measurement', getMeasurement(getVal(s, 1)));
- f.positioning_clip_bottom.value = getNum(getVal(s, 2));
- selectByValue(f, 'positioning_clip_bottom_measurement', getMeasurement(getVal(s, 2)));
- f.positioning_clip_left.value = getNum(getVal(s, 3));
- selectByValue(f, 'positioning_clip_left_measurement', getMeasurement(getVal(s, 3)));
- } else {
- f.positioning_clip_top.value = getNum(getVal(s, 0));
- selectByValue(f, 'positioning_clip_top_measurement', getMeasurement(getVal(s, 0)));
- f.positioning_clip_right.value = f.positioning_clip_bottom.value = f.positioning_clip_left.value;
- }
-
-// setupBox(f, ce, '', 'border', 'Color');
-}
-
-function getMeasurement(s) {
- return s.replace(/^([0-9.]+)(.*)$/, "$2");
-}
-
-function getNum(s) {
- if (new RegExp('^(?:[0-9.]+)(?:[a-z%]+)$', 'gi').test(s))
- return s.replace(/[^0-9.]/g, '');
-
- return s;
-}
-
-function inStr(s, n) {
- return new RegExp(n, 'gi').test(s);
-}
-
-function getVal(s, i) {
- var a = s.split(' ');
-
- if (a.length > 1)
- return a[i];
-
- return "";
-}
-
-function setValue(f, n, v) {
- if (f.elements[n].type == "text")
- f.elements[n].value = v;
- else
- selectByValue(f, n, v, true, true);
-}
-
-function setupBox(f, ce, fp, pr, sf, b) {
- if (typeof(b) == "undefined")
- b = ['Top', 'Right', 'Bottom', 'Left'];
-
- if (isSame(ce, pr, sf, b)) {
- f.elements[fp + "_same"].checked = true;
-
- setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));
- f.elements[fp + "_top"].disabled = false;
-
- f.elements[fp + "_right"].value = "";
- f.elements[fp + "_right"].disabled = true;
- f.elements[fp + "_bottom"].value = "";
- f.elements[fp + "_bottom"].disabled = true;
- f.elements[fp + "_left"].value = "";
- f.elements[fp + "_left"].disabled = true;
-
- if (f.elements[fp + "_top_measurement"]) {
- selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));
- f.elements[fp + "_left_measurement"].disabled = true;
- f.elements[fp + "_bottom_measurement"].disabled = true;
- f.elements[fp + "_right_measurement"].disabled = true;
- }
- } else {
- f.elements[fp + "_same"].checked = false;
-
- setValue(f, fp + "_top", getNum(ce.style[pr + b[0] + sf]));
- f.elements[fp + "_top"].disabled = false;
-
- setValue(f, fp + "_right", getNum(ce.style[pr + b[1] + sf]));
- f.elements[fp + "_right"].disabled = false;
-
- setValue(f, fp + "_bottom", getNum(ce.style[pr + b[2] + sf]));
- f.elements[fp + "_bottom"].disabled = false;
-
- setValue(f, fp + "_left", getNum(ce.style[pr + b[3] + sf]));
- f.elements[fp + "_left"].disabled = false;
-
- if (f.elements[fp + "_top_measurement"]) {
- selectByValue(f, fp + '_top_measurement', getMeasurement(ce.style[pr + b[0] + sf]));
- selectByValue(f, fp + '_right_measurement', getMeasurement(ce.style[pr + b[1] + sf]));
- selectByValue(f, fp + '_bottom_measurement', getMeasurement(ce.style[pr + b[2] + sf]));
- selectByValue(f, fp + '_left_measurement', getMeasurement(ce.style[pr + b[3] + sf]));
- f.elements[fp + "_left_measurement"].disabled = false;
- f.elements[fp + "_bottom_measurement"].disabled = false;
- f.elements[fp + "_right_measurement"].disabled = false;
- }
- }
-}
-
-function isSame(e, pr, sf, b) {
- var a = [], i, x;
-
- if (typeof(b) == "undefined")
- b = ['Top', 'Right', 'Bottom', 'Left'];
-
- if (typeof(sf) == "undefined" || sf == null)
- sf = "";
-
- a[0] = e.style[pr + b[0] + sf];
- a[1] = e.style[pr + b[1] + sf];
- a[2] = e.style[pr + b[2] + sf];
- a[3] = e.style[pr + b[3] + sf];
-
- for (i=0; i 0 ? s.substring(1) : s;
-
- if (f.text_none.checked)
- s = "none";
-
- ce.style.textDecoration = s;
-
- // Build background styles
-
- ce.style.backgroundColor = f.background_color.value;
- ce.style.backgroundImage = f.background_image.value != "" ? "url(" + f.background_image.value + ")" : "";
- ce.style.backgroundRepeat = f.background_repeat.value;
- ce.style.backgroundAttachment = f.background_attachment.value;
-
- if (f.background_hpos.value != "") {
- s = "";
- s += f.background_hpos.value + (isNum(f.background_hpos.value) ? f.background_hpos_measurement.value : "") + " ";
- s += f.background_vpos.value + (isNum(f.background_vpos.value) ? f.background_vpos_measurement.value : "");
- ce.style.backgroundPosition = s;
- }
-
- // Build block styles
-
- ce.style.wordSpacing = f.block_wordspacing.value + (isNum(f.block_wordspacing.value) ? f.block_wordspacing_measurement.value : "");
- ce.style.letterSpacing = f.block_letterspacing.value + (isNum(f.block_letterspacing.value) ? f.block_letterspacing_measurement.value : "");
- ce.style.verticalAlign = f.block_vertical_alignment.value;
- ce.style.textAlign = f.block_text_align.value;
- ce.style.textIndent = f.block_text_indent.value + (isNum(f.block_text_indent.value) ? f.block_text_indent_measurement.value : "");
- ce.style.whiteSpace = f.block_whitespace.value;
- ce.style.display = f.block_display.value;
-
- // Build box styles
-
- ce.style.width = f.box_width.value + (isNum(f.box_width.value) ? f.box_width_measurement.value : "");
- ce.style.height = f.box_height.value + (isNum(f.box_height.value) ? f.box_height_measurement.value : "");
- ce.style.styleFloat = f.box_float.value;
- ce.style.cssFloat = f.box_float.value;
-
- ce.style.clear = f.box_clear.value;
-
- if (!f.box_padding_same.checked) {
- ce.style.paddingTop = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");
- ce.style.paddingRight = f.box_padding_right.value + (isNum(f.box_padding_right.value) ? f.box_padding_right_measurement.value : "");
- ce.style.paddingBottom = f.box_padding_bottom.value + (isNum(f.box_padding_bottom.value) ? f.box_padding_bottom_measurement.value : "");
- ce.style.paddingLeft = f.box_padding_left.value + (isNum(f.box_padding_left.value) ? f.box_padding_left_measurement.value : "");
- } else
- ce.style.padding = f.box_padding_top.value + (isNum(f.box_padding_top.value) ? f.box_padding_top_measurement.value : "");
-
- if (!f.box_margin_same.checked) {
- ce.style.marginTop = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");
- ce.style.marginRight = f.box_margin_right.value + (isNum(f.box_margin_right.value) ? f.box_margin_right_measurement.value : "");
- ce.style.marginBottom = f.box_margin_bottom.value + (isNum(f.box_margin_bottom.value) ? f.box_margin_bottom_measurement.value : "");
- ce.style.marginLeft = f.box_margin_left.value + (isNum(f.box_margin_left.value) ? f.box_margin_left_measurement.value : "");
- } else
- ce.style.margin = f.box_margin_top.value + (isNum(f.box_margin_top.value) ? f.box_margin_top_measurement.value : "");
-
- // Build border styles
-
- if (!f.border_style_same.checked) {
- ce.style.borderTopStyle = f.border_style_top.value;
- ce.style.borderRightStyle = f.border_style_right.value;
- ce.style.borderBottomStyle = f.border_style_bottom.value;
- ce.style.borderLeftStyle = f.border_style_left.value;
- } else
- ce.style.borderStyle = f.border_style_top.value;
-
- if (!f.border_width_same.checked) {
- ce.style.borderTopWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : "");
- ce.style.borderRightWidth = f.border_width_right.value + (isNum(f.border_width_right.value) ? f.border_width_right_measurement.value : "");
- ce.style.borderBottomWidth = f.border_width_bottom.value + (isNum(f.border_width_bottom.value) ? f.border_width_bottom_measurement.value : "");
- ce.style.borderLeftWidth = f.border_width_left.value + (isNum(f.border_width_left.value) ? f.border_width_left_measurement.value : "");
- } else
- ce.style.borderWidth = f.border_width_top.value + (isNum(f.border_width_top.value) ? f.border_width_top_measurement.value : "");
-
- if (!f.border_color_same.checked) {
- ce.style.borderTopColor = f.border_color_top.value;
- ce.style.borderRightColor = f.border_color_right.value;
- ce.style.borderBottomColor = f.border_color_bottom.value;
- ce.style.borderLeftColor = f.border_color_left.value;
- } else
- ce.style.borderColor = f.border_color_top.value;
-
- // Build list styles
-
- ce.style.listStyleType = f.list_type.value;
- ce.style.listStylePosition = f.list_position.value;
- ce.style.listStyleImage = f.list_bullet_image.value != "" ? "url(" + f.list_bullet_image.value + ")" : "";
-
- // Build positioning styles
-
- ce.style.position = f.positioning_type.value;
- ce.style.visibility = f.positioning_visibility.value;
-
- if (ce.style.width == "")
- ce.style.width = f.positioning_width.value + (isNum(f.positioning_width.value) ? f.positioning_width_measurement.value : "");
-
- if (ce.style.height == "")
- ce.style.height = f.positioning_height.value + (isNum(f.positioning_height.value) ? f.positioning_height_measurement.value : "");
-
- ce.style.zIndex = f.positioning_zindex.value;
- ce.style.overflow = f.positioning_overflow.value;
-
- if (!f.positioning_placement_same.checked) {
- ce.style.top = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");
- ce.style.right = f.positioning_placement_right.value + (isNum(f.positioning_placement_right.value) ? f.positioning_placement_right_measurement.value : "");
- ce.style.bottom = f.positioning_placement_bottom.value + (isNum(f.positioning_placement_bottom.value) ? f.positioning_placement_bottom_measurement.value : "");
- ce.style.left = f.positioning_placement_left.value + (isNum(f.positioning_placement_left.value) ? f.positioning_placement_left_measurement.value : "");
- } else {
- s = f.positioning_placement_top.value + (isNum(f.positioning_placement_top.value) ? f.positioning_placement_top_measurement.value : "");
- ce.style.top = s;
- ce.style.right = s;
- ce.style.bottom = s;
- ce.style.left = s;
- }
-
- if (!f.positioning_clip_same.checked) {
- s = "rect(";
- s += (isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto") + " ";
- s += (isNum(f.positioning_clip_right.value) ? f.positioning_clip_right.value + f.positioning_clip_right_measurement.value : "auto") + " ";
- s += (isNum(f.positioning_clip_bottom.value) ? f.positioning_clip_bottom.value + f.positioning_clip_bottom_measurement.value : "auto") + " ";
- s += (isNum(f.positioning_clip_left.value) ? f.positioning_clip_left.value + f.positioning_clip_left_measurement.value : "auto");
- s += ")";
-
- if (s != "rect(auto auto auto auto)")
- ce.style.clip = s;
- } else {
- s = "rect(";
- t = isNum(f.positioning_clip_top.value) ? f.positioning_clip_top.value + f.positioning_clip_top_measurement.value : "auto";
- s += t + " ";
- s += t + " ";
- s += t + " ";
- s += t + ")";
-
- if (s != "rect(auto auto auto auto)")
- ce.style.clip = s;
- }
-
- ce.style.cssText = ce.style.cssText;
-}
-
-function isNum(s) {
- return new RegExp('[0-9]+', 'g').test(s);
-}
-
-function showDisabledControls() {
- var f = document.forms, i, a;
-
- for (i=0; i 1) {
- addSelectValue(f, s, p[0], p[1]);
-
- if (se)
- selectByValue(f, s, p[1]);
- } else {
- addSelectValue(f, s, p[0], p[0]);
-
- if (se)
- selectByValue(f, s, p[0]);
- }
- }
-}
-
-function toggleSame(ce, pre) {
- var el = document.forms[0].elements, i;
-
- if (ce.checked) {
- el[pre + "_top"].disabled = false;
- el[pre + "_right"].disabled = true;
- el[pre + "_bottom"].disabled = true;
- el[pre + "_left"].disabled = true;
-
- if (el[pre + "_top_measurement"]) {
- el[pre + "_top_measurement"].disabled = false;
- el[pre + "_right_measurement"].disabled = true;
- el[pre + "_bottom_measurement"].disabled = true;
- el[pre + "_left_measurement"].disabled = true;
- }
- } else {
- el[pre + "_top"].disabled = false;
- el[pre + "_right"].disabled = false;
- el[pre + "_bottom"].disabled = false;
- el[pre + "_left"].disabled = false;
-
- if (el[pre + "_top_measurement"]) {
- el[pre + "_top_measurement"].disabled = false;
- el[pre + "_right_measurement"].disabled = false;
- el[pre + "_bottom_measurement"].disabled = false;
- el[pre + "_left_measurement"].disabled = false;
- }
- }
-
- showDisabledControls();
-}
-
-function synch(fr, to) {
- var f = document.forms[0];
-
- f.elements[to].value = f.elements[fr].value;
-
- if (f.elements[fr + "_measurement"])
- selectByValue(f, to + "_measurement", f.elements[fr + "_measurement"].value);
-}
-
-function updateTextDecorations(){
- var el = document.forms[0].elements;
-
- var textDecorations = ["text_underline", "text_overline", "text_linethrough", "text_blink"];
- var noneChecked = el["text_none"].checked;
- tinymce.each(textDecorations, function(id) {
- el[id].disabled = noneChecked;
- if (noneChecked) {
- el[id].checked = false;
- }
- });
-}
-
-tinyMCEPopup.onInit.add(init);
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js b/library/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js
deleted file mode 100644
index 35881b3ac..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/style/langs/en_dlg.js
+++ /dev/null
@@ -1 +0,0 @@
-tinyMCE.addI18n('en.style_dlg',{"text_lineheight":"Line Height","text_variant":"Variant","text_style":"Style","text_weight":"Weight","text_size":"Size","text_font":"Font","text_props":"Text","positioning_tab":"Positioning","list_tab":"List","border_tab":"Border","box_tab":"Box","block_tab":"Block","background_tab":"Background","text_tab":"Text",apply:"Apply",toggle_insert_span:"Insert span at selection",title:"Edit CSS Style",clip:"Clip",placement:"Placement",overflow:"Overflow",zindex:"Z-index",visibility:"Visibility","positioning_type":"Type",position:"Position","bullet_image":"Bullet Image","list_type":"Type",color:"Color",height:"Height",width:"Width",style:"Style",margin:"Margin",left:"Left",bottom:"Bottom",right:"Right",top:"Top",same:"Same for All",padding:"Padding","box_clear":"Clear","box_float":"Float","box_height":"Height","box_width":"Width","block_display":"Display","block_whitespace":"Whitespace","block_text_indent":"Text Indent","block_text_align":"Text Align","block_vertical_alignment":"Vertical Alignment","block_letterspacing":"Letter Spacing","block_wordspacing":"Word Spacing","background_vpos":"Vertical Position","background_hpos":"Horizontal Position","background_attachment":"Attachment","background_repeat":"Repeat","background_image":"Background Image","background_color":"Background Color","text_none":"None","text_blink":"Blink","text_case":"Case","text_striketrough":"Strikethrough","text_underline":"Underline","text_overline":"Overline","text_decoration":"Decoration","text_color":"Color",text:"Text",background:"Background",block:"Block",box:"Box",border:"Border",list:"List"});
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/style/props.htm b/library/tinymce/jscripts/tiny_mce/plugins/style/props.htm
deleted file mode 100644
index 7dc087a30..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/style/props.htm
+++ /dev/null
@@ -1,845 +0,0 @@
-
-
-
- {#style_dlg.title}
-
-
-
-
-
-
-
-
-
-{#style_dlg.title}
-
-
-
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/style/readme.txt b/library/tinymce/jscripts/tiny_mce/plugins/style/readme.txt
deleted file mode 100644
index 5bac30202..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/style/readme.txt
+++ /dev/null
@@ -1,19 +0,0 @@
-Edit CSS Style plug-in notes
-~~~~~~~~~~~~~~~~~~~~~~~~~~~~
-Unlike WYSIWYG editor functionality that operates only on the selected text,
-typically by inserting new HTML elements with the specified styles.
-This plug-in operates on the HTML blocks surrounding the selected text.
-No new HTML elements are created.
-
-This plug-in only operates on the surrounding blocks and not the nearest
-parent node. This means that if a block encapsulates a node,
-e.g text
, then only the styles in the block are
-recognized, not those in the span.
-
-When selecting text that includes multiple blocks at the same level (peers),
-this plug-in accumulates the specified styles in all of the surrounding blocks
-and populates the dialogue checkboxes accordingly. There is no differentiation
-between styles set in all the blocks versus styles set in some of the blocks.
-
-When the [Update] or [Apply] buttons are pressed, the styles selected in the
-checkboxes are applied to all blocks that surround the selected text.
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js
deleted file mode 100644
index 2c5129161..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var c=tinymce.DOM,a=tinymce.dom.Event,d=tinymce.each,b=tinymce.explode;tinymce.create("tinymce.plugins.TabFocusPlugin",{init:function(f,g){function e(i,j){if(j.keyCode===9){return a.cancel(j)}}function h(l,p){var j,m,o,n,k;function q(t){n=c.select(":input:enabled,*[tabindex]:not(iframe)");function s(v){return v.nodeName==="BODY"||(v.type!="hidden"&&!(v.style.display=="none")&&!(v.style.visibility=="hidden")&&s(v.parentNode))}function i(v){return v.attributes.tabIndex.specified||v.nodeName=="INPUT"||v.nodeName=="TEXTAREA"}function u(){return tinymce.isIE6||tinymce.isIE7}function r(v){return((!u()||i(v)))&&v.getAttribute("tabindex")!="-1"&&s(v)}d(n,function(w,v){if(w.id==l.id){j=v;return false}});if(t>0){for(m=j+1;m=0;m--){if(r(n[m])){return n[m]}}}return null}if(p.keyCode===9){k=b(l.getParam("tab_focus",l.getParam("tabfocus_elements",":prev,:next")));if(k.length==1){k[1]=k[0];k[0]=":prev"}if(p.shiftKey){if(k[0]==":prev"){n=q(-1)}else{n=c.get(k[0])}}else{if(k[1]==":next"){n=q(1)}else{n=c.get(k[1])}}if(n){if(n.id&&(l=tinymce.get(n.id||n.name))){l.focus()}else{window.setTimeout(function(){if(!tinymce.isWebKit){window.focus()}n.focus()},10)}return a.cancel(p)}}}f.onKeyUp.add(e);if(tinymce.isGecko){f.onKeyPress.add(h);f.onKeyDown.add(e)}else{f.onKeyDown.add(h)}},getInfo:function(){return{longname:"Tabfocus",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("tabfocus",tinymce.plugins.TabFocusPlugin)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js
deleted file mode 100644
index 94f45320d..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/tabfocus/editor_plugin_src.js
+++ /dev/null
@@ -1,122 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- var DOM = tinymce.DOM, Event = tinymce.dom.Event, each = tinymce.each, explode = tinymce.explode;
-
- tinymce.create('tinymce.plugins.TabFocusPlugin', {
- init : function(ed, url) {
- function tabCancel(ed, e) {
- if (e.keyCode === 9)
- return Event.cancel(e);
- }
-
- function tabHandler(ed, e) {
- var x, i, f, el, v;
-
- function find(d) {
- el = DOM.select(':input:enabled,*[tabindex]:not(iframe)');
-
- function canSelectRecursive(e) {
- return e.nodeName==="BODY" || (e.type != 'hidden' &&
- !(e.style.display == "none") &&
- !(e.style.visibility == "hidden") && canSelectRecursive(e.parentNode));
- }
- function canSelectInOldIe(el) {
- return el.attributes["tabIndex"].specified || el.nodeName == "INPUT" || el.nodeName == "TEXTAREA";
- }
- function isOldIe() {
- return tinymce.isIE6 || tinymce.isIE7;
- }
- function canSelect(el) {
- return ((!isOldIe() || canSelectInOldIe(el))) && el.getAttribute("tabindex") != '-1' && canSelectRecursive(el);
- }
-
- each(el, function(e, i) {
- if (e.id == ed.id) {
- x = i;
- return false;
- }
- });
- if (d > 0) {
- for (i = x + 1; i < el.length; i++) {
- if (canSelect(el[i]))
- return el[i];
- }
- } else {
- for (i = x - 1; i >= 0; i--) {
- if (canSelect(el[i]))
- return el[i];
- }
- }
-
- return null;
- }
-
- if (e.keyCode === 9) {
- v = explode(ed.getParam('tab_focus', ed.getParam('tabfocus_elements', ':prev,:next')));
-
- if (v.length == 1) {
- v[1] = v[0];
- v[0] = ':prev';
- }
-
- // Find element to focus
- if (e.shiftKey) {
- if (v[0] == ':prev')
- el = find(-1);
- else
- el = DOM.get(v[0]);
- } else {
- if (v[1] == ':next')
- el = find(1);
- else
- el = DOM.get(v[1]);
- }
-
- if (el) {
- if (el.id && (ed = tinymce.get(el.id || el.name)))
- ed.focus();
- else
- window.setTimeout(function() {
- if (!tinymce.isWebKit)
- window.focus();
- el.focus();
- }, 10);
-
- return Event.cancel(e);
- }
- }
- }
-
- ed.onKeyUp.add(tabCancel);
-
- if (tinymce.isGecko) {
- ed.onKeyPress.add(tabHandler);
- ed.onKeyDown.add(tabCancel);
- } else
- ed.onKeyDown.add(tabHandler);
-
- },
-
- getInfo : function() {
- return {
- longname : 'Tabfocus',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/tabfocus',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('tabfocus', tinymce.plugins.TabFocusPlugin);
-})();
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/table/cell.htm b/library/tinymce/jscripts/tiny_mce/plugins/table/cell.htm
deleted file mode 100644
index a72a8d697..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/table/cell.htm
+++ /dev/null
@@ -1,180 +0,0 @@
-
-
-
- {#table_dlg.cell_title}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css b/library/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css
deleted file mode 100644
index a067ecdfe..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/table/css/cell.css
+++ /dev/null
@@ -1,17 +0,0 @@
-/* CSS file for cell dialog in the table plugin */
-
-.panel_wrapper div.current {
- height: 200px;
-}
-
-.advfield {
- width: 200px;
-}
-
-#action {
- margin-bottom: 3px;
-}
-
-#class {
- width: 150px;
-}
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/table/css/row.css b/library/tinymce/jscripts/tiny_mce/plugins/table/css/row.css
deleted file mode 100644
index 1f7755daf..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/table/css/row.css
+++ /dev/null
@@ -1,25 +0,0 @@
-/* CSS file for row dialog in the table plugin */
-
-.panel_wrapper div.current {
- height: 200px;
-}
-
-.advfield {
- width: 200px;
-}
-
-#action {
- margin-bottom: 3px;
-}
-
-#rowtype,#align,#valign,#class,#height {
- width: 150px;
-}
-
-#height {
- width: 50px;
-}
-
-.col2 {
- padding-left: 20px;
-}
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/table/css/table.css b/library/tinymce/jscripts/tiny_mce/plugins/table/css/table.css
deleted file mode 100644
index d11c3f69c..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/table/css/table.css
+++ /dev/null
@@ -1,13 +0,0 @@
-/* CSS file for table dialog in the table plugin */
-
-.panel_wrapper div.current {
- height: 245px;
-}
-
-.advfield {
- width: 200px;
-}
-
-#class {
- width: 150px;
-}
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js
deleted file mode 100644
index ad462f0e0..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(d){var e=d.each;function c(g,h){var j=h.ownerDocument,f=j.createRange(),k;f.setStartBefore(h);f.setEnd(g.endContainer,g.endOffset);k=j.createElement("body");k.appendChild(f.cloneContents());return k.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi,"-").replace(/<[^>]+>/g,"").length==0}function a(g,f){return parseInt(g.getAttribute(f)||1)}function b(H,G,K){var g,L,D,o;t();o=G.getParent(K.getStart(),"th,td");if(o){L=F(o);D=I();o=z(L.x,L.y)}function A(N,M){N=N.cloneNode(M);N.removeAttribute("id");return N}function t(){var M=0;g=[];e(["thead","tbody","tfoot"],function(N){var O=G.select("> "+N+" tr",H);e(O,function(P,Q){Q+=M;e(G.select("> td, > th",P),function(W,R){var S,T,U,V;if(g[Q]){while(g[Q][R]){R++}}U=a(W,"rowspan");V=a(W,"colspan");for(T=Q;T'}return false}},"childNodes");M=A(M,false);s(M,"rowSpan",1);s(M,"colSpan",1);if(N){M.appendChild(N)}else{if(!d.isIE){M.innerHTML='
'}}return M}function q(){var M=G.createRng();e(G.select("tr",H),function(N){if(N.cells.length==0){G.remove(N)}});if(G.select("tr",H).length==0){M.setStartAfter(H);M.setEndAfter(H);K.setRng(M);G.remove(H);return}e(G.select("thead,tbody,tfoot",H),function(N){if(N.rows.length==0){G.remove(N)}});t();row=g[Math.min(g.length-1,L.y)];if(row){K.select(row[Math.min(row.length-1,L.x)].elm,true);K.collapse(true)}}function u(S,Q,U,R){var P,N,M,O,T;P=g[Q][S].elm.parentNode;for(M=1;M<=U;M++){P=G.getNext(P,"tr");if(P){for(N=S;N>=0;N--){T=g[Q+M][N].elm;if(T.parentNode==P){for(O=1;O<=R;O++){G.insertAfter(f(T),T)}break}}if(N==-1){for(O=1;O<=R;O++){P.insertBefore(f(P.cells[0]),P.cells[0])}}}}}function C(){e(g,function(M,N){e(M,function(P,O){var S,R,T,Q;if(j(P)){P=P.elm;S=a(P,"colspan");R=a(P,"rowspan");if(S>1||R>1){s(P,"rowSpan",1);s(P,"colSpan",1);for(Q=0;Q1){s(S,"rowSpan",O+1);continue}}else{if(M>0&&g[M-1][R]){V=g[M-1][R].elm;O=a(V,"rowSpan");if(O>1){s(V,"rowSpan",O+1);continue}}}N=f(S);s(N,"colSpan",S.colSpan);U.appendChild(N);P=S}}if(U.hasChildNodes()){if(!Q){G.insertAfter(U,T)}else{T.parentNode.insertBefore(U,T)}}}function h(N){var O,M;e(g,function(P,Q){e(P,function(S,R){if(j(S)){O=R;if(N){return false}}});if(N){return !O}});e(g,function(S,T){var P,Q,R;if(!S[O]){return}P=S[O].elm;if(P!=M){R=a(P,"colspan");Q=a(P,"rowspan");if(R==1){if(!N){G.insertAfter(f(P),P);u(O,T,Q-1,R)}else{P.parentNode.insertBefore(f(P),P);u(O,T,Q-1,R)}}else{s(P,"colSpan",P.colSpan+1)}M=P}})}function n(){var M=[];e(g,function(N,O){e(N,function(Q,P){if(j(Q)&&d.inArray(M,P)===-1){e(g,function(T){var R=T[P].elm,S;S=a(R,"colSpan");if(S>1){s(R,"colSpan",S-1)}else{G.remove(R)}});M.push(P)}})});q()}function m(){var N;function M(Q){var P,R,O;P=G.getNext(Q,"tr");e(Q.cells,function(S){var T=a(S,"rowSpan");if(T>1){s(S,"rowSpan",T-1);R=F(S);u(R.x,R.y,1,1)}});R=F(Q.cells[0]);e(g[R.y],function(S){var T;S=S.elm;if(S!=O){T=a(S,"rowSpan");if(T<=1){G.remove(S)}else{s(S,"rowSpan",T-1)}O=S}})}N=k();e(N.reverse(),function(O){M(O)});q()}function E(){var M=k();G.remove(M);q();return M}function J(){var M=k();e(M,function(O,N){M[N]=A(O,true)});return M}function B(O,N){var P=k(),M=P[N?0:P.length-1],Q=M.cells.length;e(g,function(S){var R;Q=0;e(S,function(U,T){if(U.real){Q+=U.colspan}if(U.elm.parentNode==M){R=1}});if(R){return false}});if(!N){O.reverse()}e(O,function(T){var S=T.cells.length,R;for(i=0;iN){N=R}if(Q>M){M=Q}if(S.real){U=S.colspan-1;T=S.rowspan-1;if(U){if(R+U>N){N=R+U}}if(T){if(Q+T>M){M=Q+T}}}}})});return{x:N,y:M}}function v(S){var P,O,U,T,N,M,Q,R;D=F(S);if(L&&D){P=Math.min(L.x,D.x);O=Math.min(L.y,D.y);U=Math.max(L.x,D.x);T=Math.max(L.y,D.y);N=U;M=T;for(y=O;y<=M;y++){S=g[y][P];if(!S.real){if(P-(S.colspan-1)N){N=x+Q}}if(R){if(y+R>M){M=y+R}}}}}G.removeClass(G.select("td.mceSelected,th.mceSelected"),"mceSelected");for(y=O;y<=M;y++){for(x=P;x<=N;x++){if(g[y][x]){G.addClass(g[y][x].elm,"mceSelected")}}}}}d.extend(this,{deleteTable:r,split:C,merge:p,insertRow:l,insertCol:h,deleteCols:n,deleteRows:m,cutRows:E,copyRows:J,pasteRows:B,getPos:F,setStartCell:w,setEndCell:v})}d.create("tinymce.plugins.TablePlugin",{init:function(g,h){var f,m,j=true;function l(p){var o=g.selection,n=g.dom.getParent(p||o.getNode(),"table");if(n){return new b(n,g.dom,o)}}function k(){g.getBody().style.webkitUserSelect="";if(j){g.dom.removeClass(g.dom.select("td.mceSelected,th.mceSelected"),"mceSelected");j=false}}e([["table","table.desc","mceInsertTable",true],["delete_table","table.del","mceTableDelete"],["delete_col","table.delete_col_desc","mceTableDeleteCol"],["delete_row","table.delete_row_desc","mceTableDeleteRow"],["col_after","table.col_after_desc","mceTableInsertColAfter"],["col_before","table.col_before_desc","mceTableInsertColBefore"],["row_after","table.row_after_desc","mceTableInsertRowAfter"],["row_before","table.row_before_desc","mceTableInsertRowBefore"],["row_props","table.row_desc","mceTableRowProps",true],["cell_props","table.cell_desc","mceTableCellProps",true],["split_cells","table.split_cells_desc","mceTableSplitCells",true],["merge_cells","table.merge_cells_desc","mceTableMergeCells",true]],function(n){g.addButton(n[0],{title:n[1],cmd:n[2],ui:n[3]})});if(!d.isIE){g.onClick.add(function(n,o){o=o.target;if(o.nodeName==="TABLE"){n.selection.select(o);n.nodeChanged()}})}g.onPreProcess.add(function(o,p){var n,q,r,t=o.dom,s;n=t.select("table",p.node);q=n.length;while(q--){r=n[q];t.setAttrib(r,"data-mce-style","");if((s=t.getAttrib(r,"width"))){t.setStyle(r,"width",s);t.setAttrib(r,"width","")}if((s=t.getAttrib(r,"height"))){t.setStyle(r,"height",s);t.setAttrib(r,"height","")}}});g.onNodeChange.add(function(q,o,s){var r;s=q.selection.getStart();r=q.dom.getParent(s,"td,th,caption");o.setActive("table",s.nodeName==="TABLE"||!!r);if(r&&r.nodeName==="CAPTION"){r=0}o.setDisabled("delete_table",!r);o.setDisabled("delete_col",!r);o.setDisabled("delete_table",!r);o.setDisabled("delete_row",!r);o.setDisabled("col_after",!r);o.setDisabled("col_before",!r);o.setDisabled("row_after",!r);o.setDisabled("row_before",!r);o.setDisabled("row_props",!r);o.setDisabled("cell_props",!r);o.setDisabled("split_cells",!r);o.setDisabled("merge_cells",!r)});g.onInit.add(function(r){var p,t,q=r.dom,u;f=r.windowManager;r.onMouseDown.add(function(w,z){if(z.button!=2){k();t=q.getParent(z.target,"td,th");p=q.getParent(t,"table")}});q.bind(r.getDoc(),"mouseover",function(C){var A,z,B=C.target;if(t&&(u||B!=t)&&(B.nodeName=="TD"||B.nodeName=="TH")){z=q.getParent(B,"table");if(z==p){if(!u){u=l(z);u.setStartCell(t);r.getBody().style.webkitUserSelect="none"}u.setEndCell(B);j=true}A=r.selection.getSel();try{if(A.removeAllRanges){A.removeAllRanges()}else{A.empty()}}catch(w){}C.preventDefault()}});r.onMouseUp.add(function(F,G){var z,B=F.selection,H,I=B.getSel(),w,C,A,E;if(t){if(u){F.getBody().style.webkitUserSelect=""}function D(J,L){var K=new d.dom.TreeWalker(J,J);do{if(J.nodeType==3&&d.trim(J.nodeValue).length!=0){if(L){z.setStart(J,0)}else{z.setEnd(J,J.nodeValue.length)}return}if(J.nodeName=="BR"){if(L){z.setStartBefore(J)}else{z.setEndBefore(J)}return}}while(J=(L?K.next():K.prev()))}H=q.select("td.mceSelected,th.mceSelected");if(H.length>0){z=q.createRng();C=H[0];E=H[H.length-1];z.setStartBefore(C);z.setEndAfter(C);D(C,1);w=new d.dom.TreeWalker(C,q.getParent(H[0],"table"));do{if(C.nodeName=="TD"||C.nodeName=="TH"){if(!q.hasClass(C,"mceSelected")){break}A=C}}while(C=w.next());D(A);B.setRng(z)}F.nodeChanged();t=u=p=null}});r.onKeyUp.add(function(w,z){k()});r.onKeyDown.add(function(w,z){n(w)});r.onMouseDown.add(function(w,z){if(z.button!=2){n(w)}});function o(D,z,A,F){var B=3,G=D.dom.getParent(z.startContainer,"TABLE"),C,w,E;if(G){C=G.parentNode}w=z.startContainer.nodeType==B&&z.startOffset==0&&z.endOffset==0&&F&&(A.nodeName=="TR"||A==C);E=(A.nodeName=="TD"||A.nodeName=="TH")&&!F;return w||E}function n(A){if(!d.isWebKit){return}var z=A.selection.getRng();var C=A.selection.getNode();var B=A.dom.getParent(z.startContainer,"TD,TH");if(!o(A,z,C,B)){return}if(!B){B=C}var w=B.lastChild;while(w.lastChild){w=w.lastChild}z.setEnd(w,w.nodeValue.length);A.selection.setRng(z)}r.plugins.table.fixTableCellSelection=n;if(r&&r.plugins.contextmenu){r.plugins.contextmenu.onContextMenu.add(function(A,w,C){var D,B=r.selection,z=B.getNode()||r.getBody();if(r.dom.getParent(C,"td")||r.dom.getParent(C,"th")||r.dom.select("td.mceSelected,th.mceSelected").length){w.removeAll();if(z.nodeName=="A"&&!r.dom.getAttrib(z,"name")){w.add({title:"advanced.link_desc",icon:"link",cmd:r.plugins.advlink?"mceAdvLink":"mceLink",ui:true});w.add({title:"advanced.unlink_desc",icon:"unlink",cmd:"UnLink"});w.addSeparator()}if(z.nodeName=="IMG"&&z.className.indexOf("mceItem")==-1){w.add({title:"advanced.image_desc",icon:"image",cmd:r.plugins.advimage?"mceAdvImage":"mceImage",ui:true});w.addSeparator()}w.add({title:"table.desc",icon:"table",cmd:"mceInsertTable",value:{action:"insert"}});w.add({title:"table.props_desc",icon:"table_props",cmd:"mceInsertTable"});w.add({title:"table.del",icon:"delete_table",cmd:"mceTableDelete"});w.addSeparator();D=w.addMenu({title:"table.cell"});D.add({title:"table.cell_desc",icon:"cell_props",cmd:"mceTableCellProps"});D.add({title:"table.split_cells_desc",icon:"split_cells",cmd:"mceTableSplitCells"});D.add({title:"table.merge_cells_desc",icon:"merge_cells",cmd:"mceTableMergeCells"});D=w.addMenu({title:"table.row"});D.add({title:"table.row_desc",icon:"row_props",cmd:"mceTableRowProps"});D.add({title:"table.row_before_desc",icon:"row_before",cmd:"mceTableInsertRowBefore"});D.add({title:"table.row_after_desc",icon:"row_after",cmd:"mceTableInsertRowAfter"});D.add({title:"table.delete_row_desc",icon:"delete_row",cmd:"mceTableDeleteRow"});D.addSeparator();D.add({title:"table.cut_row_desc",icon:"cut",cmd:"mceTableCutRow"});D.add({title:"table.copy_row_desc",icon:"copy",cmd:"mceTableCopyRow"});D.add({title:"table.paste_row_before_desc",icon:"paste",cmd:"mceTablePasteRowBefore"}).setDisabled(!m);D.add({title:"table.paste_row_after_desc",icon:"paste",cmd:"mceTablePasteRowAfter"}).setDisabled(!m);D=w.addMenu({title:"table.col"});D.add({title:"table.col_before_desc",icon:"col_before",cmd:"mceTableInsertColBefore"});D.add({title:"table.col_after_desc",icon:"col_after",cmd:"mceTableInsertColAfter"});D.add({title:"table.delete_col_desc",icon:"delete_col",cmd:"mceTableDeleteCol"})}else{w.add({title:"table.desc",icon:"table",cmd:"mceInsertTable"})}})}if(d.isWebKit){function v(C,N){var L=d.VK;var Q=N.keyCode;function O(Y,U,S){var T=Y?"previousSibling":"nextSibling";var Z=C.dom.getParent(U,"tr");var X=Z[T];if(X){z(C,U,X,Y);d.dom.Event.cancel(S);return true}else{var aa=C.dom.getParent(Z,"table");var W=Z.parentNode;var R=W.nodeName.toLowerCase();if(R==="tbody"||R===(Y?"tfoot":"thead")){var V=w(Y,aa,W,"tbody");if(V!==null){return K(Y,V,U,S)}}return M(Y,Z,T,aa,S)}}function w(V,T,U,X){var S=C.dom.select(">"+X,T);var R=S.indexOf(U);if(V&&R===0||!V&&R===S.length-1){return B(V,T)}else{if(R===-1){var W=U.tagName.toLowerCase()==="thead"?0:S.length-1;return S[W]}else{return S[R+(V?-1:1)]}}}function B(U,T){var S=U?"thead":"tfoot";var R=C.dom.select(">"+S,T);return R.length!==0?R[0]:null}function K(V,T,S,U){var R=J(T,V);R&&z(C,S,R,V);d.dom.Event.cancel(U);return true}function M(Y,U,R,X,W){var S=X[R];if(S){F(S);return true}else{var V=C.dom.getParent(X,"td,th");if(V){return O(Y,V,W)}else{var T=J(U,!Y);F(T);return d.dom.Event.cancel(W)}}}function J(S,R){var T=S&&S[R?"lastChild":"firstChild"];return T&&T.nodeName==="BR"?C.dom.getParent(T,"td,th"):T}function F(R){C.selection.setCursorLocation(R,0)}function A(){return Q==L.UP||Q==L.DOWN}function D(R){var T=R.selection.getNode();var S=R.dom.getParent(T,"tr");return S!==null}function P(S){var R=0;var T=S;while(T.previousSibling){T=T.previousSibling;R=R+a(T,"colspan")}return R}function E(T,R){var U=0;var S=0;e(T.children,function(V,W){U=U+a(V,"colspan");S=W;if(U>R){return false}});return S}function z(T,W,Y,V){var X=P(T.dom.getParent(W,"td,th"));var S=E(Y,X);var R=Y.childNodes[S];var U=J(R,V);F(U||R)}function H(R){var T=C.selection.getNode();var U=C.dom.getParent(T,"td,th");var S=C.dom.getParent(R,"td,th");return U&&U!==S&&I(U,S)}function I(S,R){return C.dom.getParent(S,"TABLE")===C.dom.getParent(R,"TABLE")}if(A()&&D(C)){var G=C.selection.getNode();setTimeout(function(){if(H(G)){O(!N.shiftKey&&Q===L.UP,G,N)}},0)}}r.onKeyDown.add(v)}if(!d.isIE){function s(){var w;for(w=r.getBody().lastChild;w&&w.nodeType==3&&!w.nodeValue.length;w=w.previousSibling){}if(w&&w.nodeName=="TABLE"){r.dom.add(r.getBody(),"p",null,'
')}}if(d.isGecko){r.onKeyDown.add(function(z,B){var w,A,C=z.dom;if(B.keyCode==37||B.keyCode==38){w=z.selection.getRng();A=C.getParent(w.startContainer,"table");if(A&&z.getBody().firstChild==A){if(c(w,A)){w=C.createRng();w.setStartBefore(A);w.setEndBefore(A);z.selection.setRng(w);B.preventDefault()}}}})}r.onKeyUp.add(s);r.onSetContent.add(s);r.onVisualAid.add(s);r.onPreProcess.add(function(w,A){var z=A.node.lastChild;if(z&&z.childNodes.length==1&&z.firstChild.nodeName=="BR"){w.dom.remove(z)}});if(d.isGecko){r.onKeyDown.add(function(z,B){if(B.keyCode===d.VK.ENTER&&B.shiftKey){var A=z.selection.getRng().startContainer;var C=q.getParent(A,"td,th");if(C){var w=z.getDoc().createTextNode("\uFEFF");q.insertAfter(w,A)}}})}s();r.startContent=r.getContent({format:"raw"})}});e({mceTableSplitCells:function(n){n.split()},mceTableMergeCells:function(o){var p,q,n;n=g.dom.getParent(g.selection.getNode(),"th,td");if(n){p=n.rowSpan;q=n.colSpan}if(!g.dom.select("td.mceSelected,th.mceSelected").length){f.open({url:h+"/merge_cells.htm",width:240+parseInt(g.getLang("table.merge_cells_delta_width",0)),height:110+parseInt(g.getLang("table.merge_cells_delta_height",0)),inline:1},{rows:p,cols:q,onaction:function(r){o.merge(n,r.cols,r.rows)},plugin_url:h})}else{o.merge()}},mceTableInsertRowBefore:function(n){n.insertRow(true)},mceTableInsertRowAfter:function(n){n.insertRow()},mceTableInsertColBefore:function(n){n.insertCol(true)},mceTableInsertColAfter:function(n){n.insertCol()},mceTableDeleteCol:function(n){n.deleteCols()},mceTableDeleteRow:function(n){n.deleteRows()},mceTableCutRow:function(n){m=n.cutRows()},mceTableCopyRow:function(n){m=n.copyRows()},mceTablePasteRowBefore:function(n){n.pasteRows(m,true)},mceTablePasteRowAfter:function(n){n.pasteRows(m)},mceTableDelete:function(n){n.deleteTable()}},function(o,n){g.addCommand(n,function(){var p=l();if(p){o(p);g.execCommand("mceRepaint");k()}})});e({mceInsertTable:function(n){f.open({url:h+"/table.htm",width:400+parseInt(g.getLang("table.table_delta_width",0)),height:320+parseInt(g.getLang("table.table_delta_height",0)),inline:1},{plugin_url:h,action:n?n.action:0})},mceTableRowProps:function(){f.open({url:h+"/row.htm",width:400+parseInt(g.getLang("table.rowprops_delta_width",0)),height:295+parseInt(g.getLang("table.rowprops_delta_height",0)),inline:1},{plugin_url:h})},mceTableCellProps:function(){f.open({url:h+"/cell.htm",width:400+parseInt(g.getLang("table.cellprops_delta_width",0)),height:295+parseInt(g.getLang("table.cellprops_delta_height",0)),inline:1},{plugin_url:h})}},function(o,n){g.addCommand(n,function(p,q){o(q)})})}});d.PluginManager.add("table",d.plugins.TablePlugin)})(tinymce);
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js
deleted file mode 100644
index 832b5e943..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js
+++ /dev/null
@@ -1,1428 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2009, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function(tinymce) {
- var each = tinymce.each;
-
- // Checks if the selection/caret is at the start of the specified block element
- function isAtStart(rng, par) {
- var doc = par.ownerDocument, rng2 = doc.createRange(), elm;
-
- rng2.setStartBefore(par);
- rng2.setEnd(rng.endContainer, rng.endOffset);
-
- elm = doc.createElement('body');
- elm.appendChild(rng2.cloneContents());
-
- // Check for text characters of other elements that should be treated as content
- return elm.innerHTML.replace(/<(br|img|object|embed|input|textarea)[^>]*>/gi, '-').replace(/<[^>]+>/g, '').length == 0;
- };
-
- function getSpanVal(td, name) {
- return parseInt(td.getAttribute(name) || 1);
- }
-
- /**
- * Table Grid class.
- */
- function TableGrid(table, dom, selection) {
- var grid, startPos, endPos, selectedCell;
-
- buildGrid();
- selectedCell = dom.getParent(selection.getStart(), 'th,td');
- if (selectedCell) {
- startPos = getPos(selectedCell);
- endPos = findEndPos();
- selectedCell = getCell(startPos.x, startPos.y);
- }
-
- function cloneNode(node, children) {
- node = node.cloneNode(children);
- node.removeAttribute('id');
-
- return node;
- }
-
- function buildGrid() {
- var startY = 0;
-
- grid = [];
-
- each(['thead', 'tbody', 'tfoot'], function(part) {
- var rows = dom.select('> ' + part + ' tr', table);
-
- each(rows, function(tr, y) {
- y += startY;
-
- each(dom.select('> td, > th', tr), function(td, x) {
- var x2, y2, rowspan, colspan;
-
- // Skip over existing cells produced by rowspan
- if (grid[y]) {
- while (grid[y][x])
- x++;
- }
-
- // Get col/rowspan from cell
- rowspan = getSpanVal(td, 'rowspan');
- colspan = getSpanVal(td, 'colspan');
-
- // Fill out rowspan/colspan right and down
- for (y2 = y; y2 < y + rowspan; y2++) {
- if (!grid[y2])
- grid[y2] = [];
-
- for (x2 = x; x2 < x + colspan; x2++) {
- grid[y2][x2] = {
- part : part,
- real : y2 == y && x2 == x,
- elm : td,
- rowspan : rowspan,
- colspan : colspan
- };
- }
- }
- });
- });
-
- startY += rows.length;
- });
- };
-
- function getCell(x, y) {
- var row;
-
- row = grid[y];
- if (row)
- return row[x];
- };
-
- function setSpanVal(td, name, val) {
- if (td) {
- val = parseInt(val);
-
- if (val === 1)
- td.removeAttribute(name, 1);
- else
- td.setAttribute(name, val, 1);
- }
- }
-
- function isCellSelected(cell) {
- return cell && (dom.hasClass(cell.elm, 'mceSelected') || cell == selectedCell);
- };
-
- function getSelectedRows() {
- var rows = [];
-
- each(table.rows, function(row) {
- each(row.cells, function(cell) {
- if (dom.hasClass(cell, 'mceSelected') || cell == selectedCell.elm) {
- rows.push(row);
- return false;
- }
- });
- });
-
- return rows;
- };
-
- function deleteTable() {
- var rng = dom.createRng();
-
- rng.setStartAfter(table);
- rng.setEndAfter(table);
-
- selection.setRng(rng);
-
- dom.remove(table);
- };
-
- function cloneCell(cell) {
- var formatNode;
-
- // Clone formats
- tinymce.walk(cell, function(node) {
- var curNode;
-
- if (node.nodeType == 3) {
- each(dom.getParents(node.parentNode, null, cell).reverse(), function(node) {
- node = cloneNode(node, false);
-
- if (!formatNode)
- formatNode = curNode = node;
- else if (curNode)
- curNode.appendChild(node);
-
- curNode = node;
- });
-
- // Add something to the inner node
- if (curNode)
- curNode.innerHTML = tinymce.isIE ? ' ' : '
';
-
- return false;
- }
- }, 'childNodes');
-
- cell = cloneNode(cell, false);
- setSpanVal(cell, 'rowSpan', 1);
- setSpanVal(cell, 'colSpan', 1);
-
- if (formatNode) {
- cell.appendChild(formatNode);
- } else {
- if (!tinymce.isIE)
- cell.innerHTML = '
';
- }
-
- return cell;
- };
-
- function cleanup() {
- var rng = dom.createRng();
-
- // Empty rows
- each(dom.select('tr', table), function(tr) {
- if (tr.cells.length == 0)
- dom.remove(tr);
- });
-
- // Empty table
- if (dom.select('tr', table).length == 0) {
- rng.setStartAfter(table);
- rng.setEndAfter(table);
- selection.setRng(rng);
- dom.remove(table);
- return;
- }
-
- // Empty header/body/footer
- each(dom.select('thead,tbody,tfoot', table), function(part) {
- if (part.rows.length == 0)
- dom.remove(part);
- });
-
- // Restore selection to start position if it still exists
- buildGrid();
-
- // Restore the selection to the closest table position
- row = grid[Math.min(grid.length - 1, startPos.y)];
- if (row) {
- selection.select(row[Math.min(row.length - 1, startPos.x)].elm, true);
- selection.collapse(true);
- }
- };
-
- function fillLeftDown(x, y, rows, cols) {
- var tr, x2, r, c, cell;
-
- tr = grid[y][x].elm.parentNode;
- for (r = 1; r <= rows; r++) {
- tr = dom.getNext(tr, 'tr');
-
- if (tr) {
- // Loop left to find real cell
- for (x2 = x; x2 >= 0; x2--) {
- cell = grid[y + r][x2].elm;
-
- if (cell.parentNode == tr) {
- // Append clones after
- for (c = 1; c <= cols; c++)
- dom.insertAfter(cloneCell(cell), cell);
-
- break;
- }
- }
-
- if (x2 == -1) {
- // Insert nodes before first cell
- for (c = 1; c <= cols; c++)
- tr.insertBefore(cloneCell(tr.cells[0]), tr.cells[0]);
- }
- }
- }
- };
-
- function split() {
- each(grid, function(row, y) {
- each(row, function(cell, x) {
- var colSpan, rowSpan, newCell, i;
-
- if (isCellSelected(cell)) {
- cell = cell.elm;
- colSpan = getSpanVal(cell, 'colspan');
- rowSpan = getSpanVal(cell, 'rowspan');
-
- if (colSpan > 1 || rowSpan > 1) {
- setSpanVal(cell, 'rowSpan', 1);
- setSpanVal(cell, 'colSpan', 1);
-
- // Insert cells right
- for (i = 0; i < colSpan - 1; i++)
- dom.insertAfter(cloneCell(cell), cell);
-
- fillLeftDown(x, y, rowSpan - 1, colSpan);
- }
- }
- });
- });
- };
-
- function merge(cell, cols, rows) {
- var startX, startY, endX, endY, x, y, startCell, endCell, cell, children, count;
-
- // Use specified cell and cols/rows
- if (cell) {
- pos = getPos(cell);
- startX = pos.x;
- startY = pos.y;
- endX = startX + (cols - 1);
- endY = startY + (rows - 1);
- } else {
- // Use selection
- startX = startPos.x;
- startY = startPos.y;
- endX = endPos.x;
- endY = endPos.y;
- }
-
- // Find start/end cells
- startCell = getCell(startX, startY);
- endCell = getCell(endX, endY);
-
- // Check if the cells exists and if they are of the same part for example tbody = tbody
- if (startCell && endCell && startCell.part == endCell.part) {
- // Split and rebuild grid
- split();
- buildGrid();
-
- // Set row/col span to start cell
- startCell = getCell(startX, startY).elm;
- setSpanVal(startCell, 'colSpan', (endX - startX) + 1);
- setSpanVal(startCell, 'rowSpan', (endY - startY) + 1);
-
- // Remove other cells and add it's contents to the start cell
- for (y = startY; y <= endY; y++) {
- for (x = startX; x <= endX; x++) {
- if (!grid[y] || !grid[y][x])
- continue;
-
- cell = grid[y][x].elm;
-
- if (cell != startCell) {
- // Move children to startCell
- children = tinymce.grep(cell.childNodes);
- each(children, function(node) {
- startCell.appendChild(node);
- });
-
- // Remove bogus nodes if there is children in the target cell
- if (children.length) {
- children = tinymce.grep(startCell.childNodes);
- count = 0;
- each(children, function(node) {
- if (node.nodeName == 'BR' && dom.getAttrib(node, 'data-mce-bogus') && count++ < children.length - 1)
- startCell.removeChild(node);
- });
- }
-
- // Remove cell
- dom.remove(cell);
- }
- }
- }
-
- // Remove empty rows etc and restore caret location
- cleanup();
- }
- };
-
- function insertRow(before) {
- var posY, cell, lastCell, x, rowElm, newRow, newCell, otherCell, rowSpan;
-
- // Find first/last row
- each(grid, function(row, y) {
- each(row, function(cell, x) {
- if (isCellSelected(cell)) {
- cell = cell.elm;
- rowElm = cell.parentNode;
- newRow = cloneNode(rowElm, false);
- posY = y;
-
- if (before)
- return false;
- }
- });
-
- if (before)
- return !posY;
- });
-
- for (x = 0; x < grid[0].length; x++) {
- // Cell not found could be because of an invalid table structure
- if (!grid[posY][x])
- continue;
-
- cell = grid[posY][x].elm;
-
- if (cell != lastCell) {
- if (!before) {
- rowSpan = getSpanVal(cell, 'rowspan');
- if (rowSpan > 1) {
- setSpanVal(cell, 'rowSpan', rowSpan + 1);
- continue;
- }
- } else {
- // Check if cell above can be expanded
- if (posY > 0 && grid[posY - 1][x]) {
- otherCell = grid[posY - 1][x].elm;
- rowSpan = getSpanVal(otherCell, 'rowSpan');
- if (rowSpan > 1) {
- setSpanVal(otherCell, 'rowSpan', rowSpan + 1);
- continue;
- }
- }
- }
-
- // Insert new cell into new row
- newCell = cloneCell(cell);
- setSpanVal(newCell, 'colSpan', cell.colSpan);
-
- newRow.appendChild(newCell);
-
- lastCell = cell;
- }
- }
-
- if (newRow.hasChildNodes()) {
- if (!before)
- dom.insertAfter(newRow, rowElm);
- else
- rowElm.parentNode.insertBefore(newRow, rowElm);
- }
- };
-
- function insertCol(before) {
- var posX, lastCell;
-
- // Find first/last column
- each(grid, function(row, y) {
- each(row, function(cell, x) {
- if (isCellSelected(cell)) {
- posX = x;
-
- if (before)
- return false;
- }
- });
-
- if (before)
- return !posX;
- });
-
- each(grid, function(row, y) {
- var cell, rowSpan, colSpan;
-
- if (!row[posX])
- return;
-
- cell = row[posX].elm;
- if (cell != lastCell) {
- colSpan = getSpanVal(cell, 'colspan');
- rowSpan = getSpanVal(cell, 'rowspan');
-
- if (colSpan == 1) {
- if (!before) {
- dom.insertAfter(cloneCell(cell), cell);
- fillLeftDown(posX, y, rowSpan - 1, colSpan);
- } else {
- cell.parentNode.insertBefore(cloneCell(cell), cell);
- fillLeftDown(posX, y, rowSpan - 1, colSpan);
- }
- } else
- setSpanVal(cell, 'colSpan', cell.colSpan + 1);
-
- lastCell = cell;
- }
- });
- };
-
- function deleteCols() {
- var cols = [];
-
- // Get selected column indexes
- each(grid, function(row, y) {
- each(row, function(cell, x) {
- if (isCellSelected(cell) && tinymce.inArray(cols, x) === -1) {
- each(grid, function(row) {
- var cell = row[x].elm, colSpan;
-
- colSpan = getSpanVal(cell, 'colSpan');
-
- if (colSpan > 1)
- setSpanVal(cell, 'colSpan', colSpan - 1);
- else
- dom.remove(cell);
- });
-
- cols.push(x);
- }
- });
- });
-
- cleanup();
- };
-
- function deleteRows() {
- var rows;
-
- function deleteRow(tr) {
- var nextTr, pos, lastCell;
-
- nextTr = dom.getNext(tr, 'tr');
-
- // Move down row spanned cells
- each(tr.cells, function(cell) {
- var rowSpan = getSpanVal(cell, 'rowSpan');
-
- if (rowSpan > 1) {
- setSpanVal(cell, 'rowSpan', rowSpan - 1);
- pos = getPos(cell);
- fillLeftDown(pos.x, pos.y, 1, 1);
- }
- });
-
- // Delete cells
- pos = getPos(tr.cells[0]);
- each(grid[pos.y], function(cell) {
- var rowSpan;
-
- cell = cell.elm;
-
- if (cell != lastCell) {
- rowSpan = getSpanVal(cell, 'rowSpan');
-
- if (rowSpan <= 1)
- dom.remove(cell);
- else
- setSpanVal(cell, 'rowSpan', rowSpan - 1);
-
- lastCell = cell;
- }
- });
- };
-
- // Get selected rows and move selection out of scope
- rows = getSelectedRows();
-
- // Delete all selected rows
- each(rows.reverse(), function(tr) {
- deleteRow(tr);
- });
-
- cleanup();
- };
-
- function cutRows() {
- var rows = getSelectedRows();
-
- dom.remove(rows);
- cleanup();
-
- return rows;
- };
-
- function copyRows() {
- var rows = getSelectedRows();
-
- each(rows, function(row, i) {
- rows[i] = cloneNode(row, true);
- });
-
- return rows;
- };
-
- function pasteRows(rows, before) {
- var selectedRows = getSelectedRows(),
- targetRow = selectedRows[before ? 0 : selectedRows.length - 1],
- targetCellCount = targetRow.cells.length;
-
- // Calc target cell count
- each(grid, function(row) {
- var match;
-
- targetCellCount = 0;
- each(row, function(cell, x) {
- if (cell.real)
- targetCellCount += cell.colspan;
-
- if (cell.elm.parentNode == targetRow)
- match = 1;
- });
-
- if (match)
- return false;
- });
-
- if (!before)
- rows.reverse();
-
- each(rows, function(row) {
- var cellCount = row.cells.length, cell;
-
- // Remove col/rowspans
- for (i = 0; i < cellCount; i++) {
- cell = row.cells[i];
- setSpanVal(cell, 'colSpan', 1);
- setSpanVal(cell, 'rowSpan', 1);
- }
-
- // Needs more cells
- for (i = cellCount; i < targetCellCount; i++)
- row.appendChild(cloneCell(row.cells[cellCount - 1]));
-
- // Needs less cells
- for (i = targetCellCount; i < cellCount; i++)
- dom.remove(row.cells[i]);
-
- // Add before/after
- if (before)
- targetRow.parentNode.insertBefore(row, targetRow);
- else
- dom.insertAfter(row, targetRow);
- });
- };
-
- function getPos(target) {
- var pos;
-
- each(grid, function(row, y) {
- each(row, function(cell, x) {
- if (cell.elm == target) {
- pos = {x : x, y : y};
- return false;
- }
- });
-
- return !pos;
- });
-
- return pos;
- };
-
- function setStartCell(cell) {
- startPos = getPos(cell);
- };
-
- function findEndPos() {
- var pos, maxX, maxY;
-
- maxX = maxY = 0;
-
- each(grid, function(row, y) {
- each(row, function(cell, x) {
- var colSpan, rowSpan;
-
- if (isCellSelected(cell)) {
- cell = grid[y][x];
-
- if (x > maxX)
- maxX = x;
-
- if (y > maxY)
- maxY = y;
-
- if (cell.real) {
- colSpan = cell.colspan - 1;
- rowSpan = cell.rowspan - 1;
-
- if (colSpan) {
- if (x + colSpan > maxX)
- maxX = x + colSpan;
- }
-
- if (rowSpan) {
- if (y + rowSpan > maxY)
- maxY = y + rowSpan;
- }
- }
- }
- });
- });
-
- return {x : maxX, y : maxY};
- };
-
- function setEndCell(cell) {
- var startX, startY, endX, endY, maxX, maxY, colSpan, rowSpan;
-
- endPos = getPos(cell);
-
- if (startPos && endPos) {
- // Get start/end positions
- startX = Math.min(startPos.x, endPos.x);
- startY = Math.min(startPos.y, endPos.y);
- endX = Math.max(startPos.x, endPos.x);
- endY = Math.max(startPos.y, endPos.y);
-
- // Expand end positon to include spans
- maxX = endX;
- maxY = endY;
-
- // Expand startX
- for (y = startY; y <= maxY; y++) {
- cell = grid[y][startX];
-
- if (!cell.real) {
- if (startX - (cell.colspan - 1) < startX)
- startX -= cell.colspan - 1;
- }
- }
-
- // Expand startY
- for (x = startX; x <= maxX; x++) {
- cell = grid[startY][x];
-
- if (!cell.real) {
- if (startY - (cell.rowspan - 1) < startY)
- startY -= cell.rowspan - 1;
- }
- }
-
- // Find max X, Y
- for (y = startY; y <= endY; y++) {
- for (x = startX; x <= endX; x++) {
- cell = grid[y][x];
-
- if (cell.real) {
- colSpan = cell.colspan - 1;
- rowSpan = cell.rowspan - 1;
-
- if (colSpan) {
- if (x + colSpan > maxX)
- maxX = x + colSpan;
- }
-
- if (rowSpan) {
- if (y + rowSpan > maxY)
- maxY = y + rowSpan;
- }
- }
- }
- }
-
- // Remove current selection
- dom.removeClass(dom.select('td.mceSelected,th.mceSelected'), 'mceSelected');
-
- // Add new selection
- for (y = startY; y <= maxY; y++) {
- for (x = startX; x <= maxX; x++) {
- if (grid[y][x])
- dom.addClass(grid[y][x].elm, 'mceSelected');
- }
- }
- }
- };
-
- // Expose to public
- tinymce.extend(this, {
- deleteTable : deleteTable,
- split : split,
- merge : merge,
- insertRow : insertRow,
- insertCol : insertCol,
- deleteCols : deleteCols,
- deleteRows : deleteRows,
- cutRows : cutRows,
- copyRows : copyRows,
- pasteRows : pasteRows,
- getPos : getPos,
- setStartCell : setStartCell,
- setEndCell : setEndCell
- });
- };
-
- tinymce.create('tinymce.plugins.TablePlugin', {
- init : function(ed, url) {
- var winMan, clipboardRows, hasCellSelection = true; // Might be selected cells on reload
-
- function createTableGrid(node) {
- var selection = ed.selection, tblElm = ed.dom.getParent(node || selection.getNode(), 'table');
-
- if (tblElm)
- return new TableGrid(tblElm, ed.dom, selection);
- };
-
- function cleanup() {
- // Restore selection possibilities
- ed.getBody().style.webkitUserSelect = '';
-
- if (hasCellSelection) {
- ed.dom.removeClass(ed.dom.select('td.mceSelected,th.mceSelected'), 'mceSelected');
- hasCellSelection = false;
- }
- };
-
- // Register buttons
- each([
- ['table', 'table.desc', 'mceInsertTable', true],
- ['delete_table', 'table.del', 'mceTableDelete'],
- ['delete_col', 'table.delete_col_desc', 'mceTableDeleteCol'],
- ['delete_row', 'table.delete_row_desc', 'mceTableDeleteRow'],
- ['col_after', 'table.col_after_desc', 'mceTableInsertColAfter'],
- ['col_before', 'table.col_before_desc', 'mceTableInsertColBefore'],
- ['row_after', 'table.row_after_desc', 'mceTableInsertRowAfter'],
- ['row_before', 'table.row_before_desc', 'mceTableInsertRowBefore'],
- ['row_props', 'table.row_desc', 'mceTableRowProps', true],
- ['cell_props', 'table.cell_desc', 'mceTableCellProps', true],
- ['split_cells', 'table.split_cells_desc', 'mceTableSplitCells', true],
- ['merge_cells', 'table.merge_cells_desc', 'mceTableMergeCells', true]
- ], function(c) {
- ed.addButton(c[0], {title : c[1], cmd : c[2], ui : c[3]});
- });
-
- // Select whole table is a table border is clicked
- if (!tinymce.isIE) {
- ed.onClick.add(function(ed, e) {
- e = e.target;
-
- if (e.nodeName === 'TABLE') {
- ed.selection.select(e);
- ed.nodeChanged();
- }
- });
- }
-
- ed.onPreProcess.add(function(ed, args) {
- var nodes, i, node, dom = ed.dom, value;
-
- nodes = dom.select('table', args.node);
- i = nodes.length;
- while (i--) {
- node = nodes[i];
- dom.setAttrib(node, 'data-mce-style', '');
-
- if ((value = dom.getAttrib(node, 'width'))) {
- dom.setStyle(node, 'width', value);
- dom.setAttrib(node, 'width', '');
- }
-
- if ((value = dom.getAttrib(node, 'height'))) {
- dom.setStyle(node, 'height', value);
- dom.setAttrib(node, 'height', '');
- }
- }
- });
-
- // Handle node change updates
- ed.onNodeChange.add(function(ed, cm, n) {
- var p;
-
- n = ed.selection.getStart();
- p = ed.dom.getParent(n, 'td,th,caption');
- cm.setActive('table', n.nodeName === 'TABLE' || !!p);
-
- // Disable table tools if we are in caption
- if (p && p.nodeName === 'CAPTION')
- p = 0;
-
- cm.setDisabled('delete_table', !p);
- cm.setDisabled('delete_col', !p);
- cm.setDisabled('delete_table', !p);
- cm.setDisabled('delete_row', !p);
- cm.setDisabled('col_after', !p);
- cm.setDisabled('col_before', !p);
- cm.setDisabled('row_after', !p);
- cm.setDisabled('row_before', !p);
- cm.setDisabled('row_props', !p);
- cm.setDisabled('cell_props', !p);
- cm.setDisabled('split_cells', !p);
- cm.setDisabled('merge_cells', !p);
- });
-
- ed.onInit.add(function(ed) {
- var startTable, startCell, dom = ed.dom, tableGrid;
-
- winMan = ed.windowManager;
-
- // Add cell selection logic
- ed.onMouseDown.add(function(ed, e) {
- if (e.button != 2) {
- cleanup();
-
- startCell = dom.getParent(e.target, 'td,th');
- startTable = dom.getParent(startCell, 'table');
- }
- });
-
- dom.bind(ed.getDoc(), 'mouseover', function(e) {
- var sel, table, target = e.target;
-
- if (startCell && (tableGrid || target != startCell) && (target.nodeName == 'TD' || target.nodeName == 'TH')) {
- table = dom.getParent(target, 'table');
- if (table == startTable) {
- if (!tableGrid) {
- tableGrid = createTableGrid(table);
- tableGrid.setStartCell(startCell);
-
- ed.getBody().style.webkitUserSelect = 'none';
- }
-
- tableGrid.setEndCell(target);
- hasCellSelection = true;
- }
-
- // Remove current selection
- sel = ed.selection.getSel();
-
- try {
- if (sel.removeAllRanges)
- sel.removeAllRanges();
- else
- sel.empty();
- } catch (ex) {
- // IE9 might throw errors here
- }
-
- e.preventDefault();
- }
- });
-
- ed.onMouseUp.add(function(ed, e) {
- var rng, sel = ed.selection, selectedCells, nativeSel = sel.getSel(), walker, node, lastNode, endNode;
-
- // Move selection to startCell
- if (startCell) {
- if (tableGrid)
- ed.getBody().style.webkitUserSelect = '';
-
- function setPoint(node, start) {
- var walker = new tinymce.dom.TreeWalker(node, node);
-
- do {
- // Text node
- if (node.nodeType == 3 && tinymce.trim(node.nodeValue).length != 0) {
- if (start)
- rng.setStart(node, 0);
- else
- rng.setEnd(node, node.nodeValue.length);
-
- return;
- }
-
- // BR element
- if (node.nodeName == 'BR') {
- if (start)
- rng.setStartBefore(node);
- else
- rng.setEndBefore(node);
-
- return;
- }
- } while (node = (start ? walker.next() : walker.prev()));
- }
-
- // Try to expand text selection as much as we can only Gecko supports cell selection
- selectedCells = dom.select('td.mceSelected,th.mceSelected');
- if (selectedCells.length > 0) {
- rng = dom.createRng();
- node = selectedCells[0];
- endNode = selectedCells[selectedCells.length - 1];
- rng.setStartBefore(node);
- rng.setEndAfter(node);
-
- setPoint(node, 1);
- walker = new tinymce.dom.TreeWalker(node, dom.getParent(selectedCells[0], 'table'));
-
- do {
- if (node.nodeName == 'TD' || node.nodeName == 'TH') {
- if (!dom.hasClass(node, 'mceSelected'))
- break;
-
- lastNode = node;
- }
- } while (node = walker.next());
-
- setPoint(lastNode);
-
- sel.setRng(rng);
- }
-
- ed.nodeChanged();
- startCell = tableGrid = startTable = null;
- }
- });
-
- ed.onKeyUp.add(function(ed, e) {
- cleanup();
- });
-
- ed.onKeyDown.add(function (ed, e) {
- fixTableCellSelection(ed);
- });
-
- ed.onMouseDown.add(function (ed, e) {
- if (e.button != 2) {
- fixTableCellSelection(ed);
- }
- });
- function tableCellSelected(ed, rng, n, currentCell) {
- // The decision of when a table cell is selected is somewhat involved. The fact that this code is
- // required is actually a pointer to the root cause of this bug. A cell is selected when the start
- // and end offsets are 0, the start container is a text, and the selection node is either a TR (most cases)
- // or the parent of the table (in the case of the selection containing the last cell of a table).
- var TEXT_NODE = 3, table = ed.dom.getParent(rng.startContainer, 'TABLE'),
- tableParent, allOfCellSelected, tableCellSelection;
- if (table)
- tableParent = table.parentNode;
- allOfCellSelected =rng.startContainer.nodeType == TEXT_NODE &&
- rng.startOffset == 0 &&
- rng.endOffset == 0 &&
- currentCell &&
- (n.nodeName=="TR" || n==tableParent);
- tableCellSelection = (n.nodeName=="TD"||n.nodeName=="TH")&& !currentCell;
- return allOfCellSelected || tableCellSelection;
- // return false;
- }
-
- // this nasty hack is here to work around some WebKit selection bugs.
- function fixTableCellSelection(ed) {
- if (!tinymce.isWebKit)
- return;
-
- var rng = ed.selection.getRng();
- var n = ed.selection.getNode();
- var currentCell = ed.dom.getParent(rng.startContainer, 'TD,TH');
-
- if (!tableCellSelected(ed, rng, n, currentCell))
- return;
- if (!currentCell) {
- currentCell=n;
- }
-
- // Get the very last node inside the table cell
- var end = currentCell.lastChild;
- while (end.lastChild)
- end = end.lastChild;
-
- // Select the entire table cell. Nothing outside of the table cell should be selected.
- rng.setEnd(end, end.nodeValue.length);
- ed.selection.setRng(rng);
- }
- ed.plugins.table.fixTableCellSelection=fixTableCellSelection;
-
- // Add context menu
- if (ed && ed.plugins.contextmenu) {
- ed.plugins.contextmenu.onContextMenu.add(function(th, m, e) {
- var sm, se = ed.selection, el = se.getNode() || ed.getBody();
-
- if (ed.dom.getParent(e, 'td') || ed.dom.getParent(e, 'th') || ed.dom.select('td.mceSelected,th.mceSelected').length) {
- m.removeAll();
-
- if (el.nodeName == 'A' && !ed.dom.getAttrib(el, 'name')) {
- m.add({title : 'advanced.link_desc', icon : 'link', cmd : ed.plugins.advlink ? 'mceAdvLink' : 'mceLink', ui : true});
- m.add({title : 'advanced.unlink_desc', icon : 'unlink', cmd : 'UnLink'});
- m.addSeparator();
- }
-
- if (el.nodeName == 'IMG' && el.className.indexOf('mceItem') == -1) {
- m.add({title : 'advanced.image_desc', icon : 'image', cmd : ed.plugins.advimage ? 'mceAdvImage' : 'mceImage', ui : true});
- m.addSeparator();
- }
-
- m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable', value : {action : 'insert'}});
- m.add({title : 'table.props_desc', icon : 'table_props', cmd : 'mceInsertTable'});
- m.add({title : 'table.del', icon : 'delete_table', cmd : 'mceTableDelete'});
- m.addSeparator();
-
- // Cell menu
- sm = m.addMenu({title : 'table.cell'});
- sm.add({title : 'table.cell_desc', icon : 'cell_props', cmd : 'mceTableCellProps'});
- sm.add({title : 'table.split_cells_desc', icon : 'split_cells', cmd : 'mceTableSplitCells'});
- sm.add({title : 'table.merge_cells_desc', icon : 'merge_cells', cmd : 'mceTableMergeCells'});
-
- // Row menu
- sm = m.addMenu({title : 'table.row'});
- sm.add({title : 'table.row_desc', icon : 'row_props', cmd : 'mceTableRowProps'});
- sm.add({title : 'table.row_before_desc', icon : 'row_before', cmd : 'mceTableInsertRowBefore'});
- sm.add({title : 'table.row_after_desc', icon : 'row_after', cmd : 'mceTableInsertRowAfter'});
- sm.add({title : 'table.delete_row_desc', icon : 'delete_row', cmd : 'mceTableDeleteRow'});
- sm.addSeparator();
- sm.add({title : 'table.cut_row_desc', icon : 'cut', cmd : 'mceTableCutRow'});
- sm.add({title : 'table.copy_row_desc', icon : 'copy', cmd : 'mceTableCopyRow'});
- sm.add({title : 'table.paste_row_before_desc', icon : 'paste', cmd : 'mceTablePasteRowBefore'}).setDisabled(!clipboardRows);
- sm.add({title : 'table.paste_row_after_desc', icon : 'paste', cmd : 'mceTablePasteRowAfter'}).setDisabled(!clipboardRows);
-
- // Column menu
- sm = m.addMenu({title : 'table.col'});
- sm.add({title : 'table.col_before_desc', icon : 'col_before', cmd : 'mceTableInsertColBefore'});
- sm.add({title : 'table.col_after_desc', icon : 'col_after', cmd : 'mceTableInsertColAfter'});
- sm.add({title : 'table.delete_col_desc', icon : 'delete_col', cmd : 'mceTableDeleteCol'});
- } else
- m.add({title : 'table.desc', icon : 'table', cmd : 'mceInsertTable'});
- });
- }
-
- // Fix to allow navigating up and down in a table in WebKit browsers.
- if (tinymce.isWebKit) {
- function moveSelection(ed, e) {
- var VK = tinymce.VK;
- var key = e.keyCode;
-
- function handle(upBool, sourceNode, event) {
- var siblingDirection = upBool ? 'previousSibling' : 'nextSibling';
- var currentRow = ed.dom.getParent(sourceNode, 'tr');
- var siblingRow = currentRow[siblingDirection];
-
- if (siblingRow) {
- moveCursorToRow(ed, sourceNode, siblingRow, upBool);
- tinymce.dom.Event.cancel(event);
- return true;
- } else {
- var tableNode = ed.dom.getParent(currentRow, 'table');
- var middleNode = currentRow.parentNode;
- var parentNodeName = middleNode.nodeName.toLowerCase();
- if (parentNodeName === 'tbody' || parentNodeName === (upBool ? 'tfoot' : 'thead')) {
- var targetParent = getTargetParent(upBool, tableNode, middleNode, 'tbody');
- if (targetParent !== null) {
- return moveToRowInTarget(upBool, targetParent, sourceNode, event);
- }
- }
- return escapeTable(upBool, currentRow, siblingDirection, tableNode, event);
- }
- }
-
- function getTargetParent(upBool, topNode, secondNode, nodeName) {
- var tbodies = ed.dom.select('>' + nodeName, topNode);
- var position = tbodies.indexOf(secondNode);
- if (upBool && position === 0 || !upBool && position === tbodies.length - 1) {
- return getFirstHeadOrFoot(upBool, topNode);
- } else if (position === -1) {
- var topOrBottom = secondNode.tagName.toLowerCase() === 'thead' ? 0 : tbodies.length - 1;
- return tbodies[topOrBottom];
- } else {
- return tbodies[position + (upBool ? -1 : 1)];
- }
- }
-
- function getFirstHeadOrFoot(upBool, parent) {
- var tagName = upBool ? 'thead' : 'tfoot';
- var headOrFoot = ed.dom.select('>' + tagName, parent);
- return headOrFoot.length !== 0 ? headOrFoot[0] : null;
- }
-
- function moveToRowInTarget(upBool, targetParent, sourceNode, event) {
- var targetRow = getChildForDirection(targetParent, upBool);
- targetRow && moveCursorToRow(ed, sourceNode, targetRow, upBool);
- tinymce.dom.Event.cancel(event);
- return true;
- }
-
- function escapeTable(upBool, currentRow, siblingDirection, table, event) {
- var tableSibling = table[siblingDirection];
- if (tableSibling) {
- moveCursorToStartOfElement(tableSibling);
- return true;
- } else {
- var parentCell = ed.dom.getParent(table, 'td,th');
- if (parentCell) {
- return handle(upBool, parentCell, event);
- } else {
- var backUpSibling = getChildForDirection(currentRow, !upBool);
- moveCursorToStartOfElement(backUpSibling);
- return tinymce.dom.Event.cancel(event);
- }
- }
- }
-
- function getChildForDirection(parent, up) {
- var child = parent && parent[up ? 'lastChild' : 'firstChild'];
- // BR is not a valid table child to return in this case we return the table cell
- return child && child.nodeName === 'BR' ? ed.dom.getParent(child, 'td,th') : child;
- }
-
- function moveCursorToStartOfElement(n) {
- ed.selection.setCursorLocation(n, 0);
- }
-
- function isVerticalMovement() {
- return key == VK.UP || key == VK.DOWN;
- }
-
- function isInTable(ed) {
- var node = ed.selection.getNode();
- var currentRow = ed.dom.getParent(node, 'tr');
- return currentRow !== null;
- }
-
- function columnIndex(column) {
- var colIndex = 0;
- var c = column;
- while (c.previousSibling) {
- c = c.previousSibling;
- colIndex = colIndex + getSpanVal(c, "colspan");
- }
- return colIndex;
- }
-
- function findColumn(rowElement, columnIndex) {
- var c = 0;
- var r = 0;
- each(rowElement.children, function(cell, i) {
- c = c + getSpanVal(cell, "colspan");
- r = i;
- if (c > columnIndex)
- return false;
- });
- return r;
- }
-
- function moveCursorToRow(ed, node, row, upBool) {
- var srcColumnIndex = columnIndex(ed.dom.getParent(node, 'td,th'));
- var tgtColumnIndex = findColumn(row, srcColumnIndex);
- var tgtNode = row.childNodes[tgtColumnIndex];
- var rowCellTarget = getChildForDirection(tgtNode, upBool);
- moveCursorToStartOfElement(rowCellTarget || tgtNode);
- }
-
- function shouldFixCaret(preBrowserNode) {
- var newNode = ed.selection.getNode();
- var newParent = ed.dom.getParent(newNode, 'td,th');
- var oldParent = ed.dom.getParent(preBrowserNode, 'td,th');
- return newParent && newParent !== oldParent && checkSameParentTable(newParent, oldParent)
- }
-
- function checkSameParentTable(nodeOne, NodeTwo) {
- return ed.dom.getParent(nodeOne, 'TABLE') === ed.dom.getParent(NodeTwo, 'TABLE');
- }
-
- if (isVerticalMovement() && isInTable(ed)) {
- var preBrowserNode = ed.selection.getNode();
- setTimeout(function() {
- if (shouldFixCaret(preBrowserNode)) {
- handle(!e.shiftKey && key === VK.UP, preBrowserNode, e);
- }
- }, 0);
- }
- }
-
- ed.onKeyDown.add(moveSelection);
- }
-
- // Fixes an issue on Gecko where it's impossible to place the caret behind a table
- // This fix will force a paragraph element after the table but only when the forced_root_block setting is enabled
- if (!tinymce.isIE) {
- function fixTableCaretPos() {
- var last;
-
- // Skip empty text nodes form the end
- for (last = ed.getBody().lastChild; last && last.nodeType == 3 && !last.nodeValue.length; last = last.previousSibling) ;
-
- if (last && last.nodeName == 'TABLE')
- ed.dom.add(ed.getBody(), 'p', null, '
');
- };
-
- // Fixes an bug where it's impossible to place the caret before a table in Gecko
- // this fix solves it by detecting when the caret is at the beginning of such a table
- // and then manually moves the caret infront of the table
- if (tinymce.isGecko) {
- ed.onKeyDown.add(function(ed, e) {
- var rng, table, dom = ed.dom;
-
- // On gecko it's not possible to place the caret before a table
- if (e.keyCode == 37 || e.keyCode == 38) {
- rng = ed.selection.getRng();
- table = dom.getParent(rng.startContainer, 'table');
-
- if (table && ed.getBody().firstChild == table) {
- if (isAtStart(rng, table)) {
- rng = dom.createRng();
-
- rng.setStartBefore(table);
- rng.setEndBefore(table);
-
- ed.selection.setRng(rng);
-
- e.preventDefault();
- }
- }
- }
- });
- }
-
- ed.onKeyUp.add(fixTableCaretPos);
- ed.onSetContent.add(fixTableCaretPos);
- ed.onVisualAid.add(fixTableCaretPos);
-
- ed.onPreProcess.add(function(ed, o) {
- var last = o.node.lastChild;
-
- if (last && last.childNodes.length == 1 && last.firstChild.nodeName == 'BR')
- ed.dom.remove(last);
- });
-
-
- /**
- * Fixes bug in Gecko where shift-enter in table cell does not place caret on new line
- */
- if (tinymce.isGecko) {
- ed.onKeyDown.add(function(ed, e) {
- if (e.keyCode === tinymce.VK.ENTER && e.shiftKey) {
- var node = ed.selection.getRng().startContainer;
- var tableCell = dom.getParent(node, 'td,th');
- if (tableCell) {
- var zeroSizedNbsp = ed.getDoc().createTextNode("\uFEFF");
- dom.insertAfter(zeroSizedNbsp, node);
- }
- }
- });
- }
-
-
- fixTableCaretPos();
- ed.startContent = ed.getContent({format : 'raw'});
- }
- });
-
- // Register action commands
- each({
- mceTableSplitCells : function(grid) {
- grid.split();
- },
-
- mceTableMergeCells : function(grid) {
- var rowSpan, colSpan, cell;
-
- cell = ed.dom.getParent(ed.selection.getNode(), 'th,td');
- if (cell) {
- rowSpan = cell.rowSpan;
- colSpan = cell.colSpan;
- }
-
- if (!ed.dom.select('td.mceSelected,th.mceSelected').length) {
- winMan.open({
- url : url + '/merge_cells.htm',
- width : 240 + parseInt(ed.getLang('table.merge_cells_delta_width', 0)),
- height : 110 + parseInt(ed.getLang('table.merge_cells_delta_height', 0)),
- inline : 1
- }, {
- rows : rowSpan,
- cols : colSpan,
- onaction : function(data) {
- grid.merge(cell, data.cols, data.rows);
- },
- plugin_url : url
- });
- } else
- grid.merge();
- },
-
- mceTableInsertRowBefore : function(grid) {
- grid.insertRow(true);
- },
-
- mceTableInsertRowAfter : function(grid) {
- grid.insertRow();
- },
-
- mceTableInsertColBefore : function(grid) {
- grid.insertCol(true);
- },
-
- mceTableInsertColAfter : function(grid) {
- grid.insertCol();
- },
-
- mceTableDeleteCol : function(grid) {
- grid.deleteCols();
- },
-
- mceTableDeleteRow : function(grid) {
- grid.deleteRows();
- },
-
- mceTableCutRow : function(grid) {
- clipboardRows = grid.cutRows();
- },
-
- mceTableCopyRow : function(grid) {
- clipboardRows = grid.copyRows();
- },
-
- mceTablePasteRowBefore : function(grid) {
- grid.pasteRows(clipboardRows, true);
- },
-
- mceTablePasteRowAfter : function(grid) {
- grid.pasteRows(clipboardRows);
- },
-
- mceTableDelete : function(grid) {
- grid.deleteTable();
- }
- }, function(func, name) {
- ed.addCommand(name, function() {
- var grid = createTableGrid();
-
- if (grid) {
- func(grid);
- ed.execCommand('mceRepaint');
- cleanup();
- }
- });
- });
-
- // Register dialog commands
- each({
- mceInsertTable : function(val) {
- winMan.open({
- url : url + '/table.htm',
- width : 400 + parseInt(ed.getLang('table.table_delta_width', 0)),
- height : 320 + parseInt(ed.getLang('table.table_delta_height', 0)),
- inline : 1
- }, {
- plugin_url : url,
- action : val ? val.action : 0
- });
- },
-
- mceTableRowProps : function() {
- winMan.open({
- url : url + '/row.htm',
- width : 400 + parseInt(ed.getLang('table.rowprops_delta_width', 0)),
- height : 295 + parseInt(ed.getLang('table.rowprops_delta_height', 0)),
- inline : 1
- }, {
- plugin_url : url
- });
- },
-
- mceTableCellProps : function() {
- winMan.open({
- url : url + '/cell.htm',
- width : 400 + parseInt(ed.getLang('table.cellprops_delta_width', 0)),
- height : 295 + parseInt(ed.getLang('table.cellprops_delta_height', 0)),
- inline : 1
- }, {
- plugin_url : url
- });
- }
- }, function(func, name) {
- ed.addCommand(name, function(ui, val) {
- func(val);
- });
- });
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('table', tinymce.plugins.TablePlugin);
-})(tinymce);
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js b/library/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js
deleted file mode 100644
index 02ecf22c8..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/table/js/cell.js
+++ /dev/null
@@ -1,319 +0,0 @@
-tinyMCEPopup.requireLangPack();
-
-var ed;
-
-function init() {
- ed = tinyMCEPopup.editor;
- tinyMCEPopup.resizeToInnerSize();
-
- document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
- document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
- document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor')
-
- var inst = ed;
- var tdElm = ed.dom.getParent(ed.selection.getStart(), "td,th");
- var formObj = document.forms[0];
- var st = ed.dom.parseStyle(ed.dom.getAttrib(tdElm, "style"));
-
- // Get table cell data
- var celltype = tdElm.nodeName.toLowerCase();
- var align = ed.dom.getAttrib(tdElm, 'align');
- var valign = ed.dom.getAttrib(tdElm, 'valign');
- var width = trimSize(getStyle(tdElm, 'width', 'width'));
- var height = trimSize(getStyle(tdElm, 'height', 'height'));
- var bordercolor = convertRGBToHex(getStyle(tdElm, 'bordercolor', 'borderLeftColor'));
- var bgcolor = convertRGBToHex(getStyle(tdElm, 'bgcolor', 'backgroundColor'));
- var className = ed.dom.getAttrib(tdElm, 'class');
- var backgroundimage = getStyle(tdElm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");
- var id = ed.dom.getAttrib(tdElm, 'id');
- var lang = ed.dom.getAttrib(tdElm, 'lang');
- var dir = ed.dom.getAttrib(tdElm, 'dir');
- var scope = ed.dom.getAttrib(tdElm, 'scope');
-
- // Setup form
- addClassesToList('class', 'table_cell_styles');
- TinyMCE_EditableSelects.init();
-
- if (!ed.dom.hasClass(tdElm, 'mceSelected')) {
- formObj.bordercolor.value = bordercolor;
- formObj.bgcolor.value = bgcolor;
- formObj.backgroundimage.value = backgroundimage;
- formObj.width.value = width;
- formObj.height.value = height;
- formObj.id.value = id;
- formObj.lang.value = lang;
- formObj.style.value = ed.dom.serializeStyle(st);
- selectByValue(formObj, 'align', align);
- selectByValue(formObj, 'valign', valign);
- selectByValue(formObj, 'class', className, true, true);
- selectByValue(formObj, 'celltype', celltype);
- selectByValue(formObj, 'dir', dir);
- selectByValue(formObj, 'scope', scope);
-
- // Resize some elements
- if (isVisible('backgroundimagebrowser'))
- document.getElementById('backgroundimage').style.width = '180px';
-
- updateColor('bordercolor_pick', 'bordercolor');
- updateColor('bgcolor_pick', 'bgcolor');
- } else
- tinyMCEPopup.dom.hide('action');
-}
-
-function updateAction() {
- var el, inst = ed, tdElm, trElm, tableElm, formObj = document.forms[0];
-
- if (!AutoValidator.validate(formObj)) {
- tinyMCEPopup.alert(AutoValidator.getErrorMessages(formObj).join('. ') + '.');
- return false;
- }
-
- tinyMCEPopup.restoreSelection();
- el = ed.selection.getStart();
- tdElm = ed.dom.getParent(el, "td,th");
- trElm = ed.dom.getParent(el, "tr");
- tableElm = ed.dom.getParent(el, "table");
-
- // Cell is selected
- if (ed.dom.hasClass(tdElm, 'mceSelected')) {
- // Update all selected sells
- tinymce.each(ed.dom.select('td.mceSelected,th.mceSelected'), function(td) {
- updateCell(td);
- });
-
- ed.addVisual();
- ed.nodeChanged();
- inst.execCommand('mceEndUndoLevel');
- tinyMCEPopup.close();
- return;
- }
-
- switch (getSelectValue(formObj, 'action')) {
- case "cell":
- var celltype = getSelectValue(formObj, 'celltype');
- var scope = getSelectValue(formObj, 'scope');
-
- function doUpdate(s) {
- if (s) {
- updateCell(tdElm);
-
- ed.addVisual();
- ed.nodeChanged();
- inst.execCommand('mceEndUndoLevel');
- tinyMCEPopup.close();
- }
- };
-
- if (ed.getParam("accessibility_warnings", 1)) {
- if (celltype == "th" && scope == "")
- tinyMCEPopup.confirm(ed.getLang('table_dlg.missing_scope', '', true), doUpdate);
- else
- doUpdate(1);
-
- return;
- }
-
- updateCell(tdElm);
- break;
-
- case "row":
- var cell = trElm.firstChild;
-
- if (cell.nodeName != "TD" && cell.nodeName != "TH")
- cell = nextCell(cell);
-
- do {
- cell = updateCell(cell, true);
- } while ((cell = nextCell(cell)) != null);
-
- break;
-
- case "col":
- var curr, col = 0, cell = trElm.firstChild, rows = tableElm.getElementsByTagName("tr");
-
- if (cell.nodeName != "TD" && cell.nodeName != "TH")
- cell = nextCell(cell);
-
- do {
- if (cell == tdElm)
- break;
- col += cell.getAttribute("colspan")?cell.getAttribute("colspan"):1;
- } while ((cell = nextCell(cell)) != null);
-
- for (var i=0; i 0) {
- tinymce.each(tableElm.rows, function(tr) {
- var i;
-
- for (i = 0; i < tr.cells.length; i++) {
- if (dom.hasClass(tr.cells[i], 'mceSelected')) {
- updateRow(tr, true);
- return;
- }
- }
- });
-
- inst.addVisual();
- inst.nodeChanged();
- inst.execCommand('mceEndUndoLevel');
- tinyMCEPopup.close();
- return;
- }
-
- switch (action) {
- case "row":
- updateRow(trElm);
- break;
-
- case "all":
- var rows = tableElm.getElementsByTagName("tr");
-
- for (var i=0; i colLimit) {
- tinyMCEPopup.alert(inst.getLang('table_dlg.col_limit').replace(/\{\$cols\}/g, colLimit));
- return false;
- } else if (rowLimit && rows > rowLimit) {
- tinyMCEPopup.alert(inst.getLang('table_dlg.row_limit').replace(/\{\$rows\}/g, rowLimit));
- return false;
- } else if (cellLimit && cols * rows > cellLimit) {
- tinyMCEPopup.alert(inst.getLang('table_dlg.cell_limit').replace(/\{\$cells\}/g, cellLimit));
- return false;
- }
-
- // Update table
- if (action == "update") {
- dom.setAttrib(elm, 'cellPadding', cellpadding, true);
- dom.setAttrib(elm, 'cellSpacing', cellspacing, true);
-
- if (!isCssSize(border)) {
- dom.setAttrib(elm, 'border', border);
- } else {
- dom.setAttrib(elm, 'border', '');
- }
-
- if (border == '') {
- dom.setStyle(elm, 'border-width', '');
- dom.setStyle(elm, 'border', '');
- dom.setAttrib(elm, 'border', '');
- }
-
- dom.setAttrib(elm, 'align', align);
- dom.setAttrib(elm, 'frame', frame);
- dom.setAttrib(elm, 'rules', rules);
- dom.setAttrib(elm, 'class', className);
- dom.setAttrib(elm, 'style', style);
- dom.setAttrib(elm, 'id', id);
- dom.setAttrib(elm, 'summary', summary);
- dom.setAttrib(elm, 'dir', dir);
- dom.setAttrib(elm, 'lang', lang);
-
- capEl = inst.dom.select('caption', elm)[0];
-
- if (capEl && !caption)
- capEl.parentNode.removeChild(capEl);
-
- if (!capEl && caption) {
- capEl = elm.ownerDocument.createElement('caption');
-
- if (!tinymce.isIE)
- capEl.innerHTML = '
';
-
- elm.insertBefore(capEl, elm.firstChild);
- }
-
- if (width && inst.settings.inline_styles) {
- dom.setStyle(elm, 'width', width);
- dom.setAttrib(elm, 'width', '');
- } else {
- dom.setAttrib(elm, 'width', width, true);
- dom.setStyle(elm, 'width', '');
- }
-
- // Remove these since they are not valid XHTML
- dom.setAttrib(elm, 'borderColor', '');
- dom.setAttrib(elm, 'bgColor', '');
- dom.setAttrib(elm, 'background', '');
-
- if (height && inst.settings.inline_styles) {
- dom.setStyle(elm, 'height', height);
- dom.setAttrib(elm, 'height', '');
- } else {
- dom.setAttrib(elm, 'height', height, true);
- dom.setStyle(elm, 'height', '');
- }
-
- if (background != '')
- elm.style.backgroundImage = "url('" + background + "')";
- else
- elm.style.backgroundImage = '';
-
-/* if (tinyMCEPopup.getParam("inline_styles")) {
- if (width != '')
- elm.style.width = getCSSSize(width);
- }*/
-
- if (bordercolor != "") {
- elm.style.borderColor = bordercolor;
- elm.style.borderStyle = elm.style.borderStyle == "" ? "solid" : elm.style.borderStyle;
- elm.style.borderWidth = cssSize(border);
- } else
- elm.style.borderColor = '';
-
- elm.style.backgroundColor = bgcolor;
- elm.style.height = getCSSSize(height);
-
- inst.addVisual();
-
- // Fix for stange MSIE align bug
- //elm.outerHTML = elm.outerHTML;
-
- inst.nodeChanged();
- inst.execCommand('mceEndUndoLevel', false, {}, {skip_undo: true});
-
- // Repaint if dimensions changed
- if (formObj.width.value != orgTableWidth || formObj.height.value != orgTableHeight)
- inst.execCommand('mceRepaint');
-
- tinyMCEPopup.close();
- return true;
- }
-
- // Create new table
- html += '';
-
- if (caption) {
- if (!tinymce.isIE)
- html += '
';
- else
- html += '';
- }
-
- for (var y=0; y";
-
- for (var x=0; x
';
- else
- html += ' | ';
- }
-
- html += "";
- }
-
- html += "
";
-
- // Move table
- if (inst.settings.fix_table_elements) {
- var patt = '';
-
- inst.focus();
- inst.selection.setContent('
');
-
- tinymce.each('h1,h2,h3,h4,h5,h6,p'.split(','), function(n) {
- if (patt)
- patt += ',';
-
- patt += n + ' ._mce_marker';
- });
-
- tinymce.each(inst.dom.select(patt), function(n) {
- inst.dom.split(inst.dom.getParent(n, 'h1,h2,h3,h4,h5,h6,p'), n);
- });
-
- dom.setOuterHTML(dom.select('br._mce_marker')[0], html);
- } else
- inst.execCommand('mceInsertContent', false, html);
-
- tinymce.each(dom.select('table[data-mce-new]'), function(node) {
- var tdorth = dom.select('td,th', node);
-
- // Fixes a bug in IE where the caret cannot be placed after the table if the table is at the end of the document
- if (tinymce.isIE && node.nextSibling == null) {
- dom.insertAfter(dom.create('p'), node);
- }
-
- try {
- // IE9 might fail to do this selection
- inst.selection.setCursorLocation(tdorth[0], 0);
- } catch (ex) {
- // Ignore
- }
-
- dom.setAttrib(node, 'data-mce-new', '');
- });
-
- inst.addVisual();
- inst.execCommand('mceEndUndoLevel', false, {}, {skip_undo: true});
-
- tinyMCEPopup.close();
-}
-
-function makeAttrib(attrib, value) {
- var formObj = document.forms[0];
- var valueElm = formObj.elements[attrib];
-
- if (typeof(value) == "undefined" || value == null) {
- value = "";
-
- if (valueElm)
- value = valueElm.value;
- }
-
- if (value == "")
- return "";
-
- // XML encode it
- value = value.replace(/&/g, '&');
- value = value.replace(/\"/g, '"');
- value = value.replace(//g, '>');
-
- return ' ' + attrib + '="' + value + '"';
-}
-
-function init() {
- tinyMCEPopup.resizeToInnerSize();
-
- document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
- document.getElementById('backgroundimagebrowsercontainer').innerHTML = getBrowserHTML('backgroundimagebrowser','backgroundimage','image','table');
- document.getElementById('bordercolor_pickcontainer').innerHTML = getColorPickerHTML('bordercolor_pick','bordercolor');
- document.getElementById('bgcolor_pickcontainer').innerHTML = getColorPickerHTML('bgcolor_pick','bgcolor');
-
- var cols = 2, rows = 2, border = tinyMCEPopup.getParam('table_default_border', '0'), cellpadding = tinyMCEPopup.getParam('table_default_cellpadding', ''), cellspacing = tinyMCEPopup.getParam('table_default_cellspacing', '');
- var align = "", width = "", height = "", bordercolor = "", bgcolor = "", className = "";
- var id = "", summary = "", style = "", dir = "", lang = "", background = "", bgcolor = "", bordercolor = "", rules = "", frame = "";
- var inst = tinyMCEPopup.editor, dom = inst.dom;
- var formObj = document.forms[0];
- var elm = dom.getParent(inst.selection.getNode(), "table");
-
- action = tinyMCEPopup.getWindowArg('action');
-
- if (!action)
- action = elm ? "update" : "insert";
-
- if (elm && action != "insert") {
- var rowsAr = elm.rows;
- var cols = 0;
- for (var i=0; i cols)
- cols = rowsAr[i].cells.length;
-
- cols = cols;
- rows = rowsAr.length;
-
- st = dom.parseStyle(dom.getAttrib(elm, "style"));
- border = trimSize(getStyle(elm, 'border', 'borderWidth'));
- cellpadding = dom.getAttrib(elm, 'cellpadding', "");
- cellspacing = dom.getAttrib(elm, 'cellspacing', "");
- width = trimSize(getStyle(elm, 'width', 'width'));
- height = trimSize(getStyle(elm, 'height', 'height'));
- bordercolor = convertRGBToHex(getStyle(elm, 'bordercolor', 'borderLeftColor'));
- bgcolor = convertRGBToHex(getStyle(elm, 'bgcolor', 'backgroundColor'));
- align = dom.getAttrib(elm, 'align', align);
- frame = dom.getAttrib(elm, 'frame');
- rules = dom.getAttrib(elm, 'rules');
- className = tinymce.trim(dom.getAttrib(elm, 'class').replace(/mceItem.+/g, ''));
- id = dom.getAttrib(elm, 'id');
- summary = dom.getAttrib(elm, 'summary');
- style = dom.serializeStyle(st);
- dir = dom.getAttrib(elm, 'dir');
- lang = dom.getAttrib(elm, 'lang');
- background = getStyle(elm, 'background', 'backgroundImage').replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");
- formObj.caption.checked = elm.getElementsByTagName('caption').length > 0;
-
- orgTableWidth = width;
- orgTableHeight = height;
-
- action = "update";
- formObj.insert.value = inst.getLang('update');
- }
-
- addClassesToList('class', "table_styles");
- TinyMCE_EditableSelects.init();
-
- // Update form
- selectByValue(formObj, 'align', align);
- selectByValue(formObj, 'tframe', frame);
- selectByValue(formObj, 'rules', rules);
- selectByValue(formObj, 'class', className, true, true);
- formObj.cols.value = cols;
- formObj.rows.value = rows;
- formObj.border.value = border;
- formObj.cellpadding.value = cellpadding;
- formObj.cellspacing.value = cellspacing;
- formObj.width.value = width;
- formObj.height.value = height;
- formObj.bordercolor.value = bordercolor;
- formObj.bgcolor.value = bgcolor;
- formObj.id.value = id;
- formObj.summary.value = summary;
- formObj.style.value = style;
- formObj.dir.value = dir;
- formObj.lang.value = lang;
- formObj.backgroundimage.value = background;
-
- updateColor('bordercolor_pick', 'bordercolor');
- updateColor('bgcolor_pick', 'bgcolor');
-
- // Resize some elements
- if (isVisible('backgroundimagebrowser'))
- document.getElementById('backgroundimage').style.width = '180px';
-
- // Disable some fields in update mode
- if (action == "update") {
- formObj.cols.disabled = true;
- formObj.rows.disabled = true;
- }
-}
-
-function changedSize() {
- var formObj = document.forms[0];
- var st = dom.parseStyle(formObj.style.value);
-
-/* var width = formObj.width.value;
- if (width != "")
- st['width'] = tinyMCEPopup.getParam("inline_styles") ? getCSSSize(width) : "";
- else
- st['width'] = "";*/
-
- var height = formObj.height.value;
- if (height != "")
- st['height'] = getCSSSize(height);
- else
- st['height'] = "";
-
- formObj.style.value = dom.serializeStyle(st);
-}
-
-function isCssSize(value) {
- return /^[0-9.]+(%|in|cm|mm|em|ex|pt|pc|px)$/.test(value);
-}
-
-function cssSize(value, def) {
- value = tinymce.trim(value || def);
-
- if (!isCssSize(value)) {
- return parseInt(value, 10) + 'px';
- }
-
- return value;
-}
-
-function changedBackgroundImage() {
- var formObj = document.forms[0];
- var st = dom.parseStyle(formObj.style.value);
-
- st['background-image'] = "url('" + formObj.backgroundimage.value + "')";
-
- formObj.style.value = dom.serializeStyle(st);
-}
-
-function changedBorder() {
- var formObj = document.forms[0];
- var st = dom.parseStyle(formObj.style.value);
-
- // Update border width if the element has a color
- if (formObj.border.value != "" && (isCssSize(formObj.border.value) || formObj.bordercolor.value != ""))
- st['border-width'] = cssSize(formObj.border.value);
- else {
- if (!formObj.border.value) {
- st['border'] = '';
- st['border-width'] = '';
- }
- }
-
- formObj.style.value = dom.serializeStyle(st);
-}
-
-function changedColor() {
- var formObj = document.forms[0];
- var st = dom.parseStyle(formObj.style.value);
-
- st['background-color'] = formObj.bgcolor.value;
-
- if (formObj.bordercolor.value != "") {
- st['border-color'] = formObj.bordercolor.value;
-
- // Add border-width if it's missing
- if (!st['border-width'])
- st['border-width'] = cssSize(formObj.border.value, 1);
- }
-
- formObj.style.value = dom.serializeStyle(st);
-}
-
-function changedStyle() {
- var formObj = document.forms[0];
- var st = dom.parseStyle(formObj.style.value);
-
- if (st['background-image'])
- formObj.backgroundimage.value = st['background-image'].replace(new RegExp("url\\(['\"]?([^'\"]*)['\"]?\\)", 'gi'), "$1");
- else
- formObj.backgroundimage.value = '';
-
- if (st['width'])
- formObj.width.value = trimSize(st['width']);
-
- if (st['height'])
- formObj.height.value = trimSize(st['height']);
-
- if (st['background-color']) {
- formObj.bgcolor.value = st['background-color'];
- updateColor('bgcolor_pick','bgcolor');
- }
-
- if (st['border-color']) {
- formObj.bordercolor.value = st['border-color'];
- updateColor('bordercolor_pick','bordercolor');
- }
-}
-
-tinyMCEPopup.onInit.add(init);
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js b/library/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js
deleted file mode 100644
index 463e09ee1..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/table/langs/en_dlg.js
+++ /dev/null
@@ -1 +0,0 @@
-tinyMCE.addI18n('en.table_dlg',{"rules_border":"border","rules_box":"box","rules_vsides":"vsides","rules_rhs":"rhs","rules_lhs":"lhs","rules_hsides":"hsides","rules_below":"below","rules_above":"above","rules_void":"void",rules:"Rules","frame_all":"all","frame_cols":"cols","frame_rows":"rows","frame_groups":"groups","frame_none":"none",frame:"Frame",caption:"Table Caption","missing_scope":"Are you sure you want to continue without specifying a scope for this table header cell. Without it, it may be difficult for some users with disabilities to understand the content or data displayed of the table.","cell_limit":"You\'ve exceeded the maximum number of cells of {$cells}.","row_limit":"You\'ve exceeded the maximum number of rows of {$rows}.","col_limit":"You\'ve exceeded the maximum number of columns of {$cols}.",colgroup:"Col Group",rowgroup:"Row Group",scope:"Scope",tfoot:"Footer",tbody:"Body",thead:"Header","row_all":"Update All Rows in Table","row_even":"Update Even Rows in Table","row_odd":"Update Odd Rows in Table","row_row":"Update Current Row","cell_all":"Update All Cells in Table","cell_row":"Update All Cells in Row","cell_cell":"Update Current Cell",th:"Header",td:"Data",summary:"Summary",bgimage:"Background Image",rtl:"Right to Left",ltr:"Left to Right",mime:"Target MIME Type",langcode:"Language Code",langdir:"Language Direction",style:"Style",id:"ID","merge_cells_title":"Merge Table Cells",bgcolor:"Background Color",bordercolor:"Border Color","align_bottom":"Bottom","align_top":"Top",valign:"Vertical Alignment","cell_type":"Cell Type","cell_title":"Table Cell Properties","row_title":"Table Row Properties","align_middle":"Center","align_right":"Right","align_left":"Left","align_default":"Default",align:"Alignment",border:"Border",cellpadding:"Cell Padding",cellspacing:"Cell Spacing",rows:"Rows",cols:"Columns",height:"Height",width:"Width",title:"Insert/Edit Table",rowtype:"Row Type","advanced_props":"Advanced Properties","general_props":"General Properties","advanced_tab":"Advanced","general_tab":"General","cell_col":"Update all cells in column"});
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm b/library/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm
deleted file mode 100644
index d231090e7..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/table/merge_cells.htm
+++ /dev/null
@@ -1,32 +0,0 @@
-
-
-
- {#table_dlg.merge_cells_title}
-
-
-
-
-
-
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/table/row.htm b/library/tinymce/jscripts/tiny_mce/plugins/table/row.htm
deleted file mode 100644
index 1885401f6..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/table/row.htm
+++ /dev/null
@@ -1,158 +0,0 @@
-
-
-
- {#table_dlg.row_title}
-
-
-
-
-
-
-
-
-
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/table/table.htm b/library/tinymce/jscripts/tiny_mce/plugins/table/table.htm
deleted file mode 100644
index b92fa741e..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/table/table.htm
+++ /dev/null
@@ -1,188 +0,0 @@
-
-
-
- {#table_dlg.title}
-
-
-
-
-
-
-
-
-
- {#table_dlg.title}
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/template/blank.htm b/library/tinymce/jscripts/tiny_mce/plugins/template/blank.htm
deleted file mode 100644
index ecde53fae..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/template/blank.htm
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
- blank_page
-
-
-
-
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/template/css/template.css b/library/tinymce/jscripts/tiny_mce/plugins/template/css/template.css
deleted file mode 100644
index 2d23a4938..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/template/css/template.css
+++ /dev/null
@@ -1,23 +0,0 @@
-#frmbody {
- padding: 10px;
- background-color: #FFF;
- border: 1px solid #CCC;
-}
-
-.frmRow {
- margin-bottom: 10px;
-}
-
-#templatesrc {
- border: none;
- width: 320px;
- height: 240px;
-}
-
-.title {
- padding-bottom: 5px;
-}
-
-.mceActionPanel {
- padding-top: 5px;
-}
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js
deleted file mode 100644
index ebe3c27d7..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/template/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){var a=tinymce.each;tinymce.create("tinymce.plugins.TemplatePlugin",{init:function(b,c){var d=this;d.editor=b;b.addCommand("mceTemplate",function(e){b.windowManager.open({file:c+"/template.htm",width:b.getParam("template_popup_width",750),height:b.getParam("template_popup_height",600),inline:1},{plugin_url:c})});b.addCommand("mceInsertTemplate",d._insertTemplate,d);b.addButton("template",{title:"template.desc",cmd:"mceTemplate"});b.onPreProcess.add(function(e,g){var f=e.dom;a(f.select("div",g.node),function(h){if(f.hasClass(h,"mceTmpl")){a(f.select("*",h),function(i){if(f.hasClass(i,e.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){i.innerHTML=d._getDateTime(new Date(),e.getParam("template_mdate_format",e.getLang("template.mdate_format")))}});d._replaceVals(h)}})})},getInfo:function(){return{longname:"Template plugin",author:"Moxiecode Systems AB",authorurl:"http://www.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/template",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_insertTemplate:function(i,j){var k=this,g=k.editor,f,c,d=g.dom,b=g.selection.getContent();f=j.content;a(k.editor.getParam("template_replace_values"),function(l,h){if(typeof(l)!="function"){f=f.replace(new RegExp("\\{\\$"+h+"\\}","g"),l)}});c=d.create("div",null,f);n=d.select(".mceTmpl",c);if(n&&n.length>0){c=d.create("div",null);c.appendChild(n[0].cloneNode(true))}function e(l,h){return new RegExp("\\b"+h+"\\b","g").test(l.className)}a(d.select("*",c),function(h){if(e(h,g.getParam("template_cdate_classes","cdate").replace(/\s+/g,"|"))){h.innerHTML=k._getDateTime(new Date(),g.getParam("template_cdate_format",g.getLang("template.cdate_format")))}if(e(h,g.getParam("template_mdate_classes","mdate").replace(/\s+/g,"|"))){h.innerHTML=k._getDateTime(new Date(),g.getParam("template_mdate_format",g.getLang("template.mdate_format")))}if(e(h,g.getParam("template_selected_content_classes","selcontent").replace(/\s+/g,"|"))){h.innerHTML=b}});k._replaceVals(c);g.execCommand("mceInsertContent",false,c.innerHTML);g.addVisual()},_replaceVals:function(c){var d=this.editor.dom,b=this.editor.getParam("template_replace_values");a(d.select("*",c),function(f){a(b,function(g,e){if(d.hasClass(f,e)){if(typeof(b[e])=="function"){b[e](f)}}})})},_getDateTime:function(e,b){if(!b){return""}function c(g,d){var f;g=""+g;if(g.length 0) {
- el = dom.create('div', null);
- el.appendChild(n[0].cloneNode(true));
- }
-
- function hasClass(n, c) {
- return new RegExp('\\b' + c + '\\b', 'g').test(n.className);
- };
-
- each(dom.select('*', el), function(n) {
- // Replace cdate
- if (hasClass(n, ed.getParam('template_cdate_classes', 'cdate').replace(/\s+/g, '|')))
- n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_cdate_format", ed.getLang("template.cdate_format")));
-
- // Replace mdate
- if (hasClass(n, ed.getParam('template_mdate_classes', 'mdate').replace(/\s+/g, '|')))
- n.innerHTML = t._getDateTime(new Date(), ed.getParam("template_mdate_format", ed.getLang("template.mdate_format")));
-
- // Replace selection
- if (hasClass(n, ed.getParam('template_selected_content_classes', 'selcontent').replace(/\s+/g, '|')))
- n.innerHTML = sel;
- });
-
- t._replaceVals(el);
-
- ed.execCommand('mceInsertContent', false, el.innerHTML);
- ed.addVisual();
- },
-
- _replaceVals : function(e) {
- var dom = this.editor.dom, vl = this.editor.getParam('template_replace_values');
-
- each(dom.select('*', e), function(e) {
- each(vl, function(v, k) {
- if (dom.hasClass(e, k)) {
- if (typeof(vl[k]) == 'function')
- vl[k](e);
- }
- });
- });
- },
-
- _getDateTime : function(d, fmt) {
- if (!fmt)
- return "";
-
- function addZeros(value, len) {
- var i;
-
- value = "" + value;
-
- if (value.length < len) {
- for (i=0; i<(len-value.length); i++)
- value = "0" + value;
- }
-
- return value;
- }
-
- fmt = fmt.replace("%D", "%m/%d/%y");
- fmt = fmt.replace("%r", "%I:%M:%S %p");
- fmt = fmt.replace("%Y", "" + d.getFullYear());
- fmt = fmt.replace("%y", "" + d.getYear());
- fmt = fmt.replace("%m", addZeros(d.getMonth()+1, 2));
- fmt = fmt.replace("%d", addZeros(d.getDate(), 2));
- fmt = fmt.replace("%H", "" + addZeros(d.getHours(), 2));
- fmt = fmt.replace("%M", "" + addZeros(d.getMinutes(), 2));
- fmt = fmt.replace("%S", "" + addZeros(d.getSeconds(), 2));
- fmt = fmt.replace("%I", "" + ((d.getHours() + 11) % 12 + 1));
- fmt = fmt.replace("%p", "" + (d.getHours() < 12 ? "AM" : "PM"));
- fmt = fmt.replace("%B", "" + this.editor.getLang("template_months_long").split(',')[d.getMonth()]);
- fmt = fmt.replace("%b", "" + this.editor.getLang("template_months_short").split(',')[d.getMonth()]);
- fmt = fmt.replace("%A", "" + this.editor.getLang("template_day_long").split(',')[d.getDay()]);
- fmt = fmt.replace("%a", "" + this.editor.getLang("template_day_short").split(',')[d.getDay()]);
- fmt = fmt.replace("%%", "%");
-
- return fmt;
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('template', tinymce.plugins.TemplatePlugin);
-})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/template/js/template.js b/library/tinymce/jscripts/tiny_mce/plugins/template/js/template.js
deleted file mode 100644
index bc3045d24..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/template/js/template.js
+++ /dev/null
@@ -1,106 +0,0 @@
-tinyMCEPopup.requireLangPack();
-
-var TemplateDialog = {
- preInit : function() {
- var url = tinyMCEPopup.getParam("template_external_list_url");
-
- if (url != null)
- document.write('');
- },
-
- init : function() {
- var ed = tinyMCEPopup.editor, tsrc, sel, x, u;
-
- tsrc = ed.getParam("template_templates", false);
- sel = document.getElementById('tpath');
-
- // Setup external template list
- if (!tsrc && typeof(tinyMCETemplateList) != 'undefined') {
- for (x=0, tsrc = []; x');
- });
- },
-
- selectTemplate : function(u, ti) {
- var d = window.frames['templatesrc'].document, x, tsrc = this.tsrc;
-
- if (!u)
- return;
-
- d.body.innerHTML = this.templateHTML = this.getFileContents(u);
-
- for (x=0; x
-
- {#template_dlg.title}
-
-
-
-
-
-
-
-
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/visualblocks/css/visualblocks.css b/library/tinymce/jscripts/tiny_mce/plugins/visualblocks/css/visualblocks.css
deleted file mode 100644
index 76bc92b50..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/visualblocks/css/visualblocks.css
+++ /dev/null
@@ -1,21 +0,0 @@
-p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, blockquote, address, pre, figure {display: block; padding-top: 10px; border: 1px dashed #BBB; background: transparent no-repeat}
-p, h1, h2, h3, h4, h5, h6, hgroup, aside, div, section, article, address, pre, figure {margin-left: 3px}
-section, article, address, hgroup, aside, figure {margin: 0 0 1em 3px}
-
-p {background-image: url(data:image/gif;base64,R0lGODlhCQAJAJEAAAAAAP///7u7u////yH5BAEAAAMALAAAAAAJAAkAAAIQnG+CqCN/mlyvsRUpThG6AgA7)}
-h1 {background-image: url(data:image/gif;base64,R0lGODlhDQAKAIABALu7u////yH5BAEAAAEALAAAAAANAAoAAAIXjI8GybGu1JuxHoAfRNRW3TWXyF2YiRUAOw==)}
-h2 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8Hybbx4oOuqgTynJd6bGlWg3DkJzoaUAAAOw==)}
-h3 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIZjI8Hybbx4oOuqgTynJf2Ln2NOHpQpmhAAQA7)}
-h4 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxInR0zqeAdhtJlXwV1oCll2HaWgAAOw==)}
-h5 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjane4iq5GlW05GgIkIZUAAAOw==)}
-h6 {background-image: url(data:image/gif;base64,R0lGODlhDgAKAIABALu7u////yH5BAEAAAEALAAAAAAOAAoAAAIajI8HybbxIoiuwjan04jep1iZ1XRlAo5bVgAAOw==)}
-div {background-image: url(data:image/gif;base64,R0lGODlhEgAKAIABALu7u////yH5BAEAAAEALAAAAAASAAoAAAIfjI9poI0cgDywrhuxfbrzDEbQM2Ei5aRjmoySW4pAAQA7)}
-section {background-image: url(data:image/gif;base64,R0lGODlhKAAKAIABALu7u////yH5BAEAAAEALAAAAAAoAAoAAAI5jI+pywcNY3sBWHdNrplytD2ellDeSVbp+GmWqaDqDMepc8t17Y4vBsK5hDyJMcI6KkuYU+jpjLoKADs=)}
-article {background-image: url(data:image/gif;base64,R0lGODlhKgAKAIABALu7u////yH5BAEAAAEALAAAAAAqAAoAAAI6jI+pywkNY3wG0GBvrsd2tXGYSGnfiF7ikpXemTpOiJScasYoDJJrjsG9gkCJ0ag6KhmaIe3pjDYBBQA7)}
-blockquote {background-image: url(data:image/gif;base64,R0lGODlhPgAKAIABALu7u////yH5BAEAAAEALAAAAAA+AAoAAAJPjI+py+0Knpz0xQDyuUhvfoGgIX5iSKZYgq5uNL5q69asZ8s5rrf0yZmpNkJZzFesBTu8TOlDVAabUyatguVhWduud3EyiUk45xhTTgMBBQA7)}
-address {background-image: url(data:image/gif;base64,R0lGODlhLQAKAIABALu7u////yH5BAEAAAEALAAAAAAtAAoAAAI/jI+pywwNozSP1gDyyZcjb3UaRpXkWaXmZW4OqKLhBmLs+K263DkJK7OJeifh7FicKD9A1/IpGdKkyFpNmCkAADs=)}
-pre {background-image: url(data:image/gif;base64,R0lGODlhFQAKAIABALu7uwAAACH5BAEAAAEALAAAAAAVAAoAAAIjjI+ZoN0cgDwSmnpz1NCueYERhnibZVKLNnbOq8IvKpJtVQAAOw==)}
-hgroup {background-image: url(data:image/gif;base64,R0lGODlhJwAKAIABALu7uwAAACH5BAEAAAEALAAAAAAnAAoAAAI3jI+pywYNI3uB0gpsRtt5fFnfNZaVSYJil4Wo03Hv6Z62uOCgiXH1kZIIJ8NiIxRrAZNMZAtQAAA7)}
-aside {background-image: url(data:image/gif;base64,R0lGODlhHgAKAIABAKqqqv///yH5BAEAAAEALAAAAAAeAAoAAAItjI+pG8APjZOTzgtqy7I3f1yehmQcFY4WKZbqByutmW4aHUd6vfcVbgudgpYCADs=)}
-figure {background-image: url(data:image/gif;base64,R0lGODlhJAAKAIAAALu7u////yH5BAEAAAEALAAAAAAkAAoAAAI0jI+py+2fwAHUSFvD3RlvG4HIp4nX5JFSpnZUJ6LlrM52OE7uSWosBHScgkSZj7dDKnWAAgA7)}
-figcaption {border: 1px dashed #BBB}
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/visualblocks/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/visualblocks/editor_plugin.js
deleted file mode 100644
index c65eaf2b4..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/visualblocks/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create("tinymce.plugins.VisualBlocks",{init:function(a,b){var c;if(!window.NodeList){return}a.addCommand("mceVisualBlocks",function(){var e=a.dom,d;if(!c){c=e.uniqueId();d=e.create("link",{id:c,rel:"stylesheet",href:b+"/css/visualblocks.css"});a.getDoc().getElementsByTagName("head")[0].appendChild(d)}else{d=e.get(c);d.disabled=!d.disabled}a.controlManager.setActive("visualblocks",!d.disabled)});a.addButton("visualblocks",{title:"visualblocks.desc",cmd:"mceVisualBlocks"});a.onInit.add(function(){if(a.settings.visualblocks_default_state){a.execCommand("mceVisualBlocks",false,null,{skip_focus:true})}})},getInfo:function(){return{longname:"Visual blocks",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualblocks",version:tinymce.majorVersion+"."+tinymce.minorVersion}}});tinymce.PluginManager.add("visualblocks",tinymce.plugins.VisualBlocks)})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/visualblocks/editor_plugin_src.js b/library/tinymce/jscripts/tiny_mce/plugins/visualblocks/editor_plugin_src.js
deleted file mode 100644
index b9d2ab2e1..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/visualblocks/editor_plugin_src.js
+++ /dev/null
@@ -1,63 +0,0 @@
-/**
- * editor_plugin_src.js
- *
- * Copyright 2012, Moxiecode Systems AB
- * Released under LGPL License.
- *
- * License: http://tinymce.moxiecode.com/license
- * Contributing: http://tinymce.moxiecode.com/contributing
- */
-
-(function() {
- tinymce.create('tinymce.plugins.VisualBlocks', {
- init : function(ed, url) {
- var cssId;
-
- // We don't support older browsers like IE6/7 and they don't provide prototypes for DOM objects
- if (!window.NodeList) {
- return;
- }
-
- ed.addCommand('mceVisualBlocks', function() {
- var dom = ed.dom, linkElm;
-
- if (!cssId) {
- cssId = dom.uniqueId();
- linkElm = dom.create('link', {
- id: cssId,
- rel : 'stylesheet',
- href : url + '/css/visualblocks.css'
- });
-
- ed.getDoc().getElementsByTagName('head')[0].appendChild(linkElm);
- } else {
- linkElm = dom.get(cssId);
- linkElm.disabled = !linkElm.disabled;
- }
-
- ed.controlManager.setActive('visualblocks', !linkElm.disabled);
- });
-
- ed.addButton('visualblocks', {title : 'visualblocks.desc', cmd : 'mceVisualBlocks'});
-
- ed.onInit.add(function() {
- if (ed.settings.visualblocks_default_state) {
- ed.execCommand('mceVisualBlocks', false, null, {skip_focus : true});
- }
- });
- },
-
- getInfo : function() {
- return {
- longname : 'Visual blocks',
- author : 'Moxiecode Systems AB',
- authorurl : 'http://tinymce.moxiecode.com',
- infourl : 'http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualblocks',
- version : tinymce.majorVersion + "." + tinymce.minorVersion
- };
- }
- });
-
- // Register plugin
- tinymce.PluginManager.add('visualblocks', tinymce.plugins.VisualBlocks);
-})();
\ No newline at end of file
diff --git a/library/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js b/library/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js
deleted file mode 100644
index 1a148e8b4..000000000
--- a/library/tinymce/jscripts/tiny_mce/plugins/visualchars/editor_plugin.js
+++ /dev/null
@@ -1 +0,0 @@
-(function(){tinymce.create("tinymce.plugins.VisualChars",{init:function(a,b){var c=this;c.editor=a;a.addCommand("mceVisualChars",c._toggleVisualChars,c);a.addButton("visualchars",{title:"visualchars.desc",cmd:"mceVisualChars"});a.onBeforeGetContent.add(function(d,e){if(c.state&&e.format!="raw"&&!e.draft){c.state=true;c._toggleVisualChars(false)}})},getInfo:function(){return{longname:"Visual characters",author:"Moxiecode Systems AB",authorurl:"http://tinymce.moxiecode.com",infourl:"http://wiki.moxiecode.com/index.php/TinyMCE:Plugins/visualchars",version:tinymce.majorVersion+"."+tinymce.minorVersion}},_toggleVisualChars:function(m){var p=this,k=p.editor,a,g,j,n=k.getDoc(),o=k.getBody(),l,q=k.selection,e,c,f;p.state=!p.state;k.controlManager.setActive("visualchars",p.state);if(m){f=q.getBookmark()}if(p.state){a=[];tinymce.walk(o,function(b){if(b.nodeType==3&&b.nodeValue&&b.nodeValue.indexOf("\u00a0")!=-1){a.push(b)}},"childNodes");for(g=0;g$1