diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js
new file mode 100644
index 000000000..c7e1f9cb0
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/editor_plugin_src.js
@@ -0,0 +1,61 @@
+/* Import theme specific language pack */
+tinyMCE.importPluginLanguagePack('preview', 'cs,de,el,en,fr_ca,it,ko,pt,sv,zh_cn');
+
+/**
+ * Returns the HTML contents of the preview control.
+ */
+function TinyMCE_preview_getControlHTML(control_name) {
+ switch (control_name) {
+ case "preview":
+ return '
';
+ }
+
+ return "";
+}
+
+/**
+ * Executes the mcePreview command.
+ */
+function TinyMCE_preview_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ case "mcePreview":
+ var previewPage = tinyMCE.getParam("plugin_preview_pageurl", null);
+ var previewWidth = tinyMCE.getParam("plugin_preview_width", "550");
+ var previewHeight = tinyMCE.getParam("plugin_preview_height", "600");
+
+ // Use a custom preview page
+ if (previewPage) {
+ var template = new Array();
+
+ template['file'] = previewPage;
+ template['width'] = previewWidth;
+ template['height'] = previewHeight;
+
+ tinyMCE.openWindow(template, {editor_id : editor_id, resizable : "yes", scrollbars : "yes", content : tinyMCE.getContent(), content_css : tinyMCE.getParam("content_css")});
+ } else {
+ var win = window.open("", "mcePreview", "menubar=no,toolbar=no,scrollbars=yes,resizable=yes,left=20,top=20,width=" + previewWidth + ",height=" + previewHeight);
+ var html = "";
+
+ html += '';
+ html += '';
+ html += '
';
+ html += '' + tinyMCE.getLang('lang_preview_desc') + '';
+ html += '';
+ html += '';
+ html += '';
+ html += '';
+ html += tinyMCE.getContent();
+ html += '';
+ html += '';
+
+ win.document.write(html);
+ win.document.close();
+ }
+
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/cs.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/cs.js
new file mode 100644
index 000000000..27502b4ae
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/cs.js
@@ -0,0 +1,3 @@
+// UK lang variables
+
+tinyMCELang['lang_preview_desc'] = 'Náhled';
\ No newline at end of file
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/en.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/en.js
new file mode 100644
index 000000000..d94866db3
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/en.js
@@ -0,0 +1,3 @@
+// UK lang variables
+
+tinyMCELang['lang_preview_desc'] = 'Preview';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/fr_ca.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/fr_ca.js
new file mode 100644
index 000000000..7ed16482f
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/fr_ca.js
@@ -0,0 +1,3 @@
+// CAN_FR lang variables
+
+tinyMCELang['lang_preview_desc'] = 'Prévisualisation';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/sv.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/sv.js
new file mode 100644
index 000000000..32d58507d
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/sv.js
@@ -0,0 +1,3 @@
+// SE lang variables
+
+tinyMCELang['lang_preview_desc'] = 'Förhandsgranska';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/zh_cn.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/zh_cn.js
new file mode 100644
index 000000000..2c8a1a3d8
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/preview/langs/zh_cn.js
@@ -0,0 +1,3 @@
+// Simplified Chinese lang variables contributed by cube316 (cube316@etang.com)
+
+tinyMCELang['lang_preview_desc'] = 'Ô¤ÀÀ';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js
new file mode 100644
index 000000000..84c04337b
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/print/editor_plugin_src.js
@@ -0,0 +1,26 @@
+/* Import theme specific language pack */
+tinyMCE.importPluginLanguagePack('print', 'en,sv,zh_cn');
+
+function TinyMCE_print_getControlHTML(control_name) {
+ switch (control_name) {
+ case "print":
+ return '
';
+ }
+
+ return "";
+}
+
+/**
+ * Executes the search/replace commands.
+ */
+function TinyMCE_print_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ case "mcePrint":
+ tinyMCE.getInstanceById(editor_id).contentWindow.print();
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/print/langs/en.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/print/langs/en.js
new file mode 100644
index 000000000..fcaa4ef8e
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/print/langs/en.js
@@ -0,0 +1,3 @@
+// UK lang variables
+
+tinyMCELang['lang_print_desc'] = 'Print';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/print/langs/sv.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/print/langs/sv.js
new file mode 100644
index 000000000..aa553a82d
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/print/langs/sv.js
@@ -0,0 +1,3 @@
+// SE lang variables
+
+tinyMCELang['lang_print_desc'] = 'Skrivut';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/print/langs/zh_cn.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/print/langs/zh_cn.js
new file mode 100644
index 000000000..72957fb04
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/print/langs/zh_cn.js
@@ -0,0 +1,3 @@
+// Simplified Chinese lang variables contributed by cube316 (cube316@etang.com)
+
+tinyMCELang['lang_print_desc'] = '´òÓ¡';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js
new file mode 100644
index 000000000..3e9a216ad
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/save/editor_plugin_src.js
@@ -0,0 +1,43 @@
+/* Import theme specific language pack */
+tinyMCE.importPluginLanguagePack('save', 'en,zh_cn,cs');
+
+/**
+ * Returns the HTML contents of the save control.
+ */
+function TinyMCE_save_getControlHTML(control_name) {
+ switch (control_name) {
+ case "save":
+ return '
';
+ }
+ return "";
+}
+
+/**
+ * Executes the save command.
+ */
+function TinyMCE_save_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ case "mceSave":
+ var formObj = tinyMCE.selectedInstance.formElement.form;
+
+ if (formObj) {
+ tinyMCE.triggerSave();
+
+ // Disable all UI form elements that TinyMCE created
+ for (var i=0; i';
+
+ case "replace":
+ return '
';
+ }
+
+ return "";
+}
+
+/**
+ * Executes the search/replace commands.
+ */
+function TinyMCE_searchreplace_execCommand(editor_id, element, command, user_interface, value) {
+ function defValue(key, default_value) {
+ value[key] = typeof(value[key]) == "undefined" ? default_value : value[key];
+ }
+
+ function replaceSel(search_str, str) {
+ // Get current selection
+ if (!tinyMCE.isMSIE) {
+ var sel = instance.contentWindow.getSelection();
+ var rng = sel.getRangeAt(0);
+ } else {
+ var rng = instance.contentWindow.document.selection.createRange();
+ }
+
+ // Replace current one
+ if (!tinyMCE.isMSIE) {
+ var doc = instance.contentWindow.document;
+
+ // This way works when the replace doesn't contain the search string
+ if (str.indexOf(search_str) == -1) {
+ rng.deleteContents();
+ rng.insertNode(rng.createContextualFragment(str));
+ rng.collapse(false);
+ } else {
+ // Insert content ugly way! Needed to move selection to after replace item
+ doc.execCommand("insertimage", false, "#mce_temp_url#");
+ var elm = tinyMCE.getElementByAttributeValue(doc.body, "img", "src", "#mce_temp_url#");
+ elm.parentNode.replaceChild(doc.createTextNode(str), elm);
+ }
+ } else {
+ if (rng.item)
+ rng.item(0).outerHTML = str;
+ else
+ rng.pasteHTML(str);
+ }
+ }
+
+ var instance = tinyMCE.getInstanceById(editor_id);
+
+ if (!value)
+ value = new Array();
+
+ // Setup defualt values
+ defValue("editor_id", editor_id);
+ defValue("searchstring", "");
+ defValue("replacestring", null);
+ defValue("replacemode", "none");
+ defValue("casesensitive", false);
+ defValue("backwards", false);
+ defValue("wrap", false);
+ defValue("wholeword", false);
+
+ // Handle commands
+ switch (command) {
+ case "mceResetSearch":
+ tinyMCE.lastSearchRng = null;
+ return true;
+
+ case "mceSearch":
+ if (user_interface) {
+ // Open search dialog
+ var template = new Array();
+
+ if (value['replacestring'] != null) {
+ template['file'] = '../../plugins/searchreplace/replace.htm'; // Relative to theme
+ template['width'] = 310;
+ template['height'] = 180;
+ } else {
+ template['file'] = '../../plugins/searchreplace/search.htm'; // Relative to theme
+ template['width'] = 280;
+ template['height'] = 180;
+ }
+
+ tinyMCE.openWindow(template, value);
+ } else {
+ var win = tinyMCE.getInstanceById(editor_id).contentWindow;
+ var doc = tinyMCE.getInstanceById(editor_id).contentWindow.document;
+
+ // Handle replace current
+ if (value['replacemode'] == "current") {
+ replaceSel(value['string'], value['replacestring']);
+
+ // Search next one
+ value['replacemode'] = "none";
+ tinyMCE.execInstanceCommand(editor_id, 'mceSearch', user_interface, value, false);
+
+ return true;
+ }
+
+ if (tinyMCE.isMSIE) {
+ var rng = tinyMCE.lastSearchRng ? tinyMCE.lastSearchRng : doc.selection.createRange();
+ var flags = 0;
+
+ if (value['wholeword'])
+ flags = flags | 2;
+
+ if (value['casesensitive'])
+ flags = flags | 4;
+
+ // Handle replace all mode
+ if (value['replacemode'] == "all") {
+ while (rng.findText(value['string'], value['backwards'] ? -1 : 1, flags)) {
+ rng.scrollIntoView();
+ rng.select();
+ rng.collapse(false);
+ replaceSel(value['string'], value['replacestring']);
+ }
+
+ alert(tinyMCE.getLang('lang_searchreplace_allreplaced'));
+ return true;
+ }
+
+ if (rng.findText(value['string'], value['backwards'] ? -1 : 1, flags)) {
+ rng.scrollIntoView();
+ rng.select();
+ rng.collapse(value['backwards']);
+ tinyMCE.lastSearchRng = rng;
+ } else
+ alert(tinyMCE.getLang('lang_searchreplace_notfound'));
+ } else {
+ if (value['replacemode'] == "all") {
+ while (win.find(value['string'], value['casesensitive'], value['backwards'], value['wrap'], value['wholeword'], false, false))
+ replaceSel(value['string'], value['replacestring']);
+
+ alert(tinyMCE.getLang('lang_searchreplace_allreplaced'));
+ return true;
+ }
+
+ if (!win.find(value['string'], value['casesensitive'], value['backwards'], value['wrap'], value['wholeword'], false, false))
+ alert(tinyMCE.getLang('lang_searchreplace_notfound'));
+ }
+ }
+ return true;
+
+ case "mceSearchReplace":
+ value['replacestring'] = "";
+
+ tinyMCE.execInstanceCommand(editor_id, 'mceSearch', user_interface, value, false);
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
+
+function TinyMCE_searchreplace_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+ return true;
+}
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en.js
new file mode 100644
index 000000000..0626fe9ed
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/en.js
@@ -0,0 +1,19 @@
+// UK lang variables
+
+tinyMCELang['lang_searchreplace_search_desc'] = 'Find';
+tinyMCELang['lang_searchreplace_searchnext_desc'] = 'Find again';
+tinyMCELang['lang_searchreplace_replace_desc'] = 'Find/Replace';
+tinyMCELang['lang_searchreplace_notfound'] = 'The search has been compleated. The search string could not be found.';
+tinyMCELang['lang_searchreplace_search_title'] = 'Find';
+tinyMCELang['lang_searchreplace_replace_title'] = 'Find/Replace';
+tinyMCELang['lang_searchreplace_allreplaced'] = 'All occurrences of the search string was replaced.';
+tinyMCELang['lang_searchreplace_findwhat'] = 'Find what';
+tinyMCELang['lang_searchreplace_replacewith'] = 'Replace with';
+tinyMCELang['lang_searchreplace_direction'] = 'Direction';
+tinyMCELang['lang_searchreplace_up'] = 'Up';
+tinyMCELang['lang_searchreplace_down'] = 'Down';
+tinyMCELang['lang_searchreplace_case'] = 'Match case';
+tinyMCELang['lang_searchreplace_findnext'] = 'Find next';
+tinyMCELang['lang_searchreplace_replace'] = 'Replace';
+tinyMCELang['lang_searchreplace_replaceall'] = 'Replace all';
+tinyMCELang['lang_searchreplace_cancel'] = 'Cancel';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/sv.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/sv.js
new file mode 100644
index 000000000..13ddf9e93
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/sv.js
@@ -0,0 +1,19 @@
+// SE lang variables
+
+tinyMCELang['lang_searchreplace_search_desc'] = 'Sök';
+tinyMCELang['lang_searchreplace_searchnext_desc'] = 'Sög igen';
+tinyMCELang['lang_searchreplace_replace_desc'] = 'Sök/Ersätt';
+tinyMCELang['lang_searchreplace_notfound'] = 'Sökningen är slutförd. Söksträngen kunde inte hittas.';
+tinyMCELang['lang_searchreplace_search_title'] = 'Sök';
+tinyMCELang['lang_searchreplace_replace_title'] = 'Sök/Ersätt';
+tinyMCELang['lang_searchreplace_allreplaced'] = 'Alla träffar på söksträngen ersattes';
+tinyMCELang['lang_searchreplace_findwhat'] = 'Sök på';
+tinyMCELang['lang_searchreplace_replacewith'] = 'Ersätt med';
+tinyMCELang['lang_searchreplace_direction'] = 'Sökriktning';
+tinyMCELang['lang_searchreplace_up'] = 'Uppåt';
+tinyMCELang['lang_searchreplace_down'] = 'Neråt';
+tinyMCELang['lang_searchreplace_case'] = 'Matcha gemener/VERSALER';
+tinyMCELang['lang_searchreplace_findnext'] = 'Sök nästa';
+tinyMCELang['lang_searchreplace_replace'] = 'Ersätt';
+tinyMCELang['lang_searchreplace_replaceall'] = 'Ersätt alla';
+tinyMCELang['lang_searchreplace_cancel'] = 'Avbryt';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/zh_cn.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/zh_cn.js
new file mode 100644
index 000000000..d939041a7
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/searchreplace/langs/zh_cn.js
@@ -0,0 +1,19 @@
+// Simplified Chinese lang variables contributed by cube316 (cube316@etang.com)
+
+tinyMCELang['lang_searchreplace_search_desc'] = '²éÕÒ';
+tinyMCELang['lang_searchreplace_searchnext_desc'] = 'ÔٴβéÕÒ';
+tinyMCELang['lang_searchreplace_replace_desc'] = '²éÕÒ/Ìæ»»';
+tinyMCELang['lang_searchreplace_notfound'] = 'ËÑË÷Íê±Ï£¬Ã»ÓÐÕÒµ½Òª²éÕÒµÄ×Ö·û´®¡£';
+tinyMCELang['lang_searchreplace_search_title'] = '²éÕÒ';
+tinyMCELang['lang_searchreplace_replace_title'] = '²éÕÒ/Ìæ»»';
+tinyMCELang['lang_searchreplace_allreplaced'] = 'ËùÓгöÏÖµÄ×Ö·û´®ÒÑÌæ»»Íê±Ï¡£';
+tinyMCELang['lang_searchreplace_findwhat'] = '²éÕÒ';
+tinyMCELang['lang_searchreplace_replacewith'] = 'Ìæ»»Îª';
+tinyMCELang['lang_searchreplace_direction'] = '·½Ïò';
+tinyMCELang['lang_searchreplace_up'] = 'ÏòÉÏ';
+tinyMCELang['lang_searchreplace_down'] = 'ÏòÏÂ';
+tinyMCELang['lang_searchreplace_case'] = 'Æ¥Åä´óСд';
+tinyMCELang['lang_searchreplace_findnext'] = '²éÕÒÏÂÒ»¸ö';
+tinyMCELang['lang_searchreplace_replace'] = 'Ìæ»»';
+tinyMCELang['lang_searchreplace_replaceall'] = 'È«²¿Ìæ»»';
+tinyMCELang['lang_searchreplace_cancel'] = 'È¡Ïû';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/cell.htm b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/cell.htm
new file mode 100644
index 000000000..9cef19bbd
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/cell.htm
@@ -0,0 +1,120 @@
+
+
+
+
+{$lang_table_cell_title}
+
+
+
+
+
+
+
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js
new file mode 100644
index 000000000..ff52df2fd
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin.js
@@ -0,0 +1,2 @@
+/* Import plugin specific language pack */
+ tinyMCE.importPluginLanguagePack('table','en,ar,cs,da,de,el,es,fi,fr_ca,hu,it,ja,ko,nl,no,pl,pt,sv,tw,zh_cn');function TinyMCE_table_getControlHTML(control_name){var controls=new Array(['table','','{$lang_table_desc}','mceInsertTable',true],['delete_col','','{$lang_table_delete_col_desc}','mceTableDeleteCol'],['delete_row','','{$lang_table_delete_row_desc}','mceTableDeleteRow'],['col_after','','{$lang_table_insert_col_after_desc}','mceTableInsertColAfter'],['col_before','','{$lang_table_insert_col_before_desc}','mceTableInsertColBefore'],['row_after','','{$lang_table_insert_row_after_desc}','mceTableInsertRowAfter'],['row_before','','{$lang_table_insert_row_before_desc}','mceTableInsertRowBefore'],['row_props','','{$lang_table_row_desc}','mceTableRowProps',true],['cell_props','','{$lang_table_cell_desc}','mceTableCellProps',true]);for(var i=0;i';}if(control_name=="tablecontrols"){var html="";html+=tinyMCE.getControlHTML("table");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("row_props");html+=tinyMCE.getControlHTML("cell_props");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("row_before");html+=tinyMCE.getControlHTML("row_after");html+=tinyMCE.getControlHTML("delete_row");html+=tinyMCE.getControlHTML("separator");html+=tinyMCE.getControlHTML("col_before");html+=tinyMCE.getControlHTML("col_after");html+=tinyMCE.getControlHTML("delete_col");return html;}return "";}function TinyMCE_table_execCommand(editor_id,element,command,user_interface,value){function getAttrib(elm,name){return elm.getAttribute(name)?elm.getAttribute(name):"";}var inst=tinyMCE.getInstanceById(editor_id);var focusElm=inst.getFocusElement();var tdElm=tinyMCE.getParentElement(focusElm,"td");var trElm=tinyMCE.getParentElement(focusElm,"tr");switch(command){case "mceTableRowProps":if(trElm==null)return true;if(user_interface){var template=new Array();template['file']='../../plugins/table/row.htm';template['width']=340;template['height']=220;tinyMCE.openWindow(template,{editor_id:inst.editorId,align:getAttrib(trElm,'align'),valign:getAttrib(trElm,'valign'),height:getAttrib(trElm,'height'),className:getAttrib(trElm,'className')});}else{trElm.setAttribute('align',value['align']);trElm.setAttribute('vAlign',value['valign']);trElm.setAttribute('height',value['height']);trElm.setAttribute('class',value['className']);trElm.setAttribute('className',value['className']);}return true;case "mceTableCellProps":if(tdElm==null)return true;if(user_interface){var template=new Array();template['file']='../../plugins/table/cell.htm';template['width']=340;template['height']=220;tinyMCE.openWindow(template,{editor_id:inst.editorId,align:getAttrib(tdElm,'align'),valign:getAttrib(tdElm,'valign'),width:getAttrib(tdElm,'width'),height:getAttrib(tdElm,'height'),className:getAttrib(tdElm,'className')});}else{tdElm.setAttribute('align',value['align']);tdElm.setAttribute('vAlign',value['valign']);tdElm.setAttribute('width',value['width']);tdElm.setAttribute('height',value['height']);tdElm.setAttribute('class',value['className']);tdElm.setAttribute('className',value['className']);}return true;case "mceInsertTable":if(user_interface){var cols=2,rows=2,border=0,cellpadding="",cellspacing="",align="",width="",height="",action="insert",className="";tinyMCE.tableElement=tinyMCE.getParentElement(inst.getFocusElement(),"table");if(tinyMCE.tableElement){var rowsAr=tinyMCE.tableElement.rows;var cols=0;for(var i=0;icols)cols=rowsAr[i].cells.length;cols=cols;rows=rowsAr.length;border=tinyMCE.getAttrib(tinyMCE.tableElement,'border',border);cellpadding=tinyMCE.getAttrib(tinyMCE.tableElement,'cellpadding',"");cellspacing=tinyMCE.getAttrib(tinyMCE.tableElement,'cellspacing',"");width=tinyMCE.getAttrib(tinyMCE.tableElement,'width',width);height=tinyMCE.getAttrib(tinyMCE.tableElement,'height',height);align=tinyMCE.getAttrib(tinyMCE.tableElement,'align',align);className=tinyMCE.getAttrib(tinyMCE.tableElement,tinyMCE.isMSIE?'className':"class","");if(tinyMCE.isMSIE){width=tinyMCE.tableElement.style.pixelWidth==0?tinyMCE.tableElement.getAttribute("width"):tinyMCE.tableElement.style.pixelWidth;height=tinyMCE.tableElement.style.pixelHeight==0?tinyMCE.tableElement.getAttribute("height"):tinyMCE.tableElement.style.pixelHeight;}action="update";}var template=new Array();template['file']='../../plugins/table/table.htm';template['width']=340;template['height']=220;template['width']+=tinyMCE.getLang('lang_insert_table_delta_width',0);template['height']+=tinyMCE.getLang('lang_insert_table_delta_height',0);tinyMCE.openWindow(template,{editor_id:inst.editorId,cols:cols,rows:rows,border:border,cellpadding:cellpadding,cellspacing:cellspacing,align:align,width:width,height:height,action:action,className:className});}else{var html='';var cols=2,rows=2,border=0,cellpadding=-1,cellspacing=-1,align,width,height,className;if(typeof(value)=='object'){cols=value['cols'];rows=value['rows'];border=value['border']!=""?value['border']:0;cellpadding=value['cellpadding']!=""?value['cellpadding']:-1;cellspacing=value['cellspacing']!=""?value['cellspacing']:-1;align=value['align'];width=value['width'];height=value['height'];className=value['className'];}if(tinyMCE.tableElement){tinyMCE.setAttrib(tinyMCE.tableElement,'cellPadding',cellpadding);tinyMCE.setAttrib(tinyMCE.tableElement,'cellSpacing',cellspacing);tinyMCE.setAttrib(tinyMCE.tableElement,'border',border);tinyMCE.setAttrib(tinyMCE.tableElement,'width',width);tinyMCE.setAttrib(tinyMCE.tableElement,'height',height);tinyMCE.setAttrib(tinyMCE.tableElement,'align',align,true);tinyMCE.setAttrib(tinyMCE.tableElement,tinyMCE.isMSIE?'className':"class",className,true);if(tinyMCE.isMSIE){tinyMCE.tableElement.style.pixelWidth=(width==null||width=="")?0:width;tinyMCE.tableElement.style.pixelHeight=(height==null||height=="")?0:height;}tinyMCE.handleVisualAid(tinyMCE.tableElement,false,inst.visualAid);tinyMCE.tableElement.outerHTML=tinyMCE.tableElement.outerHTML;tinyMCE.triggerNodeChange();return true;}html+='';for(var y=0;y";for(var x=0;x';else html+='| ';html+=" | ";}html+="";}html+="
";inst.execCommand('mceInsertContent',false,html);}return true;case "mceTableInsertRowBefore":case "mceTableInsertRowAfter":case "mceTableDeleteRow":case "mceTableInsertColBefore":case "mceTableInsertColAfter":case "mceTableDeleteCol":var trElement=tinyMCE.getParentElement(inst.getFocusElement(),"tr");var tdElement=tinyMCE.getParentElement(inst.getFocusElement(),"td");var tableElement=tinyMCE.getParentElement(inst.getFocusElement(),"table");if(!tableElement)return true;var doc=inst.contentWindow.document;var tableBorder=tableElement.getAttribute("border");var visualAidStyle=inst.visualAid?tinyMCE.settings['visual_table_style']:"";if(tableElement.firstChild&&tableElement.firstChild.nodeName.toLowerCase()=="tbody")tableElement=tableElement.firstChild;if(tableElement&&trElement){switch(command){case "mceTableInsertRowBefore":var numcells=trElement.cells.length;var rowCount=0;var tmpTR=trElement;while(tmpTR){if(tmpTR.nodeName.toLowerCase()=="tr")rowCount++;tmpTR=tmpTR.previousSibling;}var r=tableElement.insertRow(rowCount==0?1:rowCount-1);for(var i=0;inumCols)numCols=tableElement.rows[y].cells.length;}if(numCols<=1){if(tinyMCE.isGecko)inst.selectNode(selElm);tableElement.parentNode.removeChild(tableElement);tinyMCE.triggerNodeChange();return true;}for(var y=0;y0)selElm=tableElement.rows[0].cells[index-1];if(tinyMCE.isGecko)inst.selectNode(selElm);break;}tinyMCE.triggerNodeChange();}return true;}return false;}function TinyMCE_table_handleNodeChange(editor_id,node,undo_index,undo_levels,visual_aid,any_selection){tinyMCE.switchClassSticky(editor_id+'_table','mceButtonNormal');tinyMCE.switchClassSticky(editor_id+'_row_props','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_cell_props','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_row_before','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_row_after','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_delete_row','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_col_before','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_col_after','mceButtonDisabled',true);tinyMCE.switchClassSticky(editor_id+'_delete_col','mceButtonDisabled',true);if(tinyMCE.getParentElement(node,"tr"))tinyMCE.switchClassSticky(editor_id+'_row_props','mceButtonSelected',false);if(tinyMCE.getParentElement(node,"td")){tinyMCE.switchClassSticky(editor_id+'_cell_props','mceButtonSelected',false);tinyMCE.switchClassSticky(editor_id+'_row_before','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_row_after','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_delete_row','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_col_before','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_col_after','mceButtonNormal',false);tinyMCE.switchClassSticky(editor_id+'_delete_col','mceButtonNormal',false);}if(tinyMCE.getParentElement(node,"table"))tinyMCE.switchClassSticky(editor_id+'_table','mceButtonSelected');}
\ No newline at end of file
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js
new file mode 100644
index 000000000..eeaca2195
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/editor_plugin_src.js
@@ -0,0 +1,469 @@
+/* Import plugin specific language pack */
+tinyMCE.importPluginLanguagePack('table', 'en,ar,cs,da,de,el,es,fi,fr_ca,hu,it,ja,ko,nl,no,pl,pt,sv,tw,zh_cn');
+
+/**
+ * Returns the HTML contents of the table control.
+ */
+function TinyMCE_table_getControlHTML(control_name) {
+ var controls = new Array(
+ ['table', '', '{$lang_table_desc}', 'mceInsertTable', true],
+ ['delete_col', '', '{$lang_table_delete_col_desc}', 'mceTableDeleteCol'],
+ ['delete_row', '', '{$lang_table_delete_row_desc}', 'mceTableDeleteRow'],
+ ['col_after', '', '{$lang_table_insert_col_after_desc}', 'mceTableInsertColAfter'],
+ ['col_before', '', '{$lang_table_insert_col_before_desc}', 'mceTableInsertColBefore'],
+ ['row_after', '', '{$lang_table_insert_row_after_desc}', 'mceTableInsertRowAfter'],
+ ['row_before', '', '{$lang_table_insert_row_before_desc}', 'mceTableInsertRowBefore'],
+ ['row_props', '', '{$lang_table_row_desc}', 'mceTableRowProps', true],
+ ['cell_props', '', '{$lang_table_cell_desc}', 'mceTableCellProps', true]);
+
+ // Render table control
+ for (var i=0; i';
+ }
+
+ // Special tablecontrols
+ if (control_name == "tablecontrols") {
+ var html = "";
+
+ html += tinyMCE.getControlHTML("table");
+ html += tinyMCE.getControlHTML("separator");
+ html += tinyMCE.getControlHTML("row_props");
+ html += tinyMCE.getControlHTML("cell_props");
+ html += tinyMCE.getControlHTML("separator");
+ html += tinyMCE.getControlHTML("row_before");
+ html += tinyMCE.getControlHTML("row_after");
+ html += tinyMCE.getControlHTML("delete_row");
+ html += tinyMCE.getControlHTML("separator");
+ html += tinyMCE.getControlHTML("col_before");
+ html += tinyMCE.getControlHTML("col_after");
+ html += tinyMCE.getControlHTML("delete_col");
+
+ return html;
+ }
+
+ return "";
+}
+
+/**
+ * Executes the table commands.
+ */
+function TinyMCE_table_execCommand(editor_id, element, command, user_interface, value) {
+ function getAttrib(elm, name) {
+ return elm.getAttribute(name) ? elm.getAttribute(name) : "";
+ }
+
+ var inst = tinyMCE.getInstanceById(editor_id);
+ var focusElm = inst.getFocusElement();
+ var tdElm = tinyMCE.getParentElement(focusElm, "td");
+ var trElm = tinyMCE.getParentElement(focusElm, "tr");
+
+ // Handle commands
+ switch (command) {
+ case "mceTableRowProps":
+ if (trElm == null)
+ return true;
+
+ if (user_interface) {
+ // Setup template
+ var template = new Array();
+
+ template['file'] = '../../plugins/table/row.htm';
+ template['width'] = 340;
+ template['height'] = 220;
+
+ // Open window
+ tinyMCE.openWindow(template, {editor_id : inst.editorId, align : getAttrib(trElm, 'align'), valign : getAttrib(trElm, 'valign'), height : getAttrib(trElm, 'height'), className : getAttrib(trElm, 'className')});
+ } else {
+ trElm.setAttribute('align', value['align']);
+ trElm.setAttribute('vAlign', value['valign']);
+ trElm.setAttribute('height', value['height']);
+ trElm.setAttribute('class', value['className']);
+ trElm.setAttribute('className', value['className']);
+ }
+
+ return true;
+
+ case "mceTableCellProps":
+ if (tdElm == null)
+ return true;
+
+ if (user_interface) {
+ // Setup template
+ var template = new Array();
+
+ template['file'] = '../../plugins/table/cell.htm';
+ template['width'] = 340;
+ template['height'] = 220;
+
+ // Open window
+ tinyMCE.openWindow(template, {editor_id : inst.editorId, align : getAttrib(tdElm, 'align'), valign : getAttrib(tdElm, 'valign'), width : getAttrib(tdElm, 'width'), height : getAttrib(tdElm, 'height'), className : getAttrib(tdElm, 'className')});
+ } else {
+ tdElm.setAttribute('align', value['align']);
+ tdElm.setAttribute('vAlign', value['valign']);
+ tdElm.setAttribute('width', value['width']);
+ tdElm.setAttribute('height', value['height']);
+ tdElm.setAttribute('class', value['className']);
+ tdElm.setAttribute('className', value['className']);
+ }
+
+ return true;
+
+ case "mceInsertTable":
+ if (user_interface) {
+ var cols = 2, rows = 2, border = 0, cellpadding = "", cellspacing = "", align = "", width = "", height = "", action = "insert", className = "";
+
+ tinyMCE.tableElement = tinyMCE.getParentElement(inst.getFocusElement(), "table");
+
+ if (tinyMCE.tableElement) {
+ var rowsAr = tinyMCE.tableElement.rows;
+ var cols = 0;
+ for (var i=0; i cols)
+ cols = rowsAr[i].cells.length;
+
+ cols = cols;
+ rows = rowsAr.length;
+
+ border = tinyMCE.getAttrib(tinyMCE.tableElement, 'border', border);
+ cellpadding = tinyMCE.getAttrib(tinyMCE.tableElement, 'cellpadding', "");
+ cellspacing = tinyMCE.getAttrib(tinyMCE.tableElement, 'cellspacing', "");
+ width = tinyMCE.getAttrib(tinyMCE.tableElement, 'width', width);
+ height = tinyMCE.getAttrib(tinyMCE.tableElement, 'height', height);
+ align = tinyMCE.getAttrib(tinyMCE.tableElement, 'align', align);
+ className = tinyMCE.getAttrib(tinyMCE.tableElement, tinyMCE.isMSIE ? 'className' : "class", "");
+
+ if (tinyMCE.isMSIE) {
+ width = tinyMCE.tableElement.style.pixelWidth == 0 ? tinyMCE.tableElement.getAttribute("width") : tinyMCE.tableElement.style.pixelWidth;
+ height = tinyMCE.tableElement.style.pixelHeight == 0 ? tinyMCE.tableElement.getAttribute("height") : tinyMCE.tableElement.style.pixelHeight;
+ }
+
+ action = "update";
+ }
+
+ // Setup template
+ var template = new Array();
+
+ template['file'] = '../../plugins/table/table.htm';
+ template['width'] = 340;
+ template['height'] = 220;
+
+ // Language specific width and height addons
+ template['width'] += tinyMCE.getLang('lang_insert_table_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_insert_table_delta_height', 0);
+
+ // Open window
+ tinyMCE.openWindow(template, {editor_id : inst.editorId, cols : cols, rows : rows, border : border, cellpadding : cellpadding, cellspacing : cellspacing, align : align, width : width, height : height, action : action, className : className});
+ } else {
+ var html = '';
+ var cols = 2, rows = 2, border = 0, cellpadding = -1, cellspacing = -1, align, width, height, className;
+
+ if (typeof(value) == 'object') {
+ cols = value['cols'];
+ rows = value['rows'];
+ border = value['border'] != "" ? value['border'] : 0;
+ cellpadding = value['cellpadding'] != "" ? value['cellpadding'] : -1;
+ cellspacing = value['cellspacing'] != "" ? value['cellspacing'] : -1;
+ align = value['align'];
+ width = value['width'];
+ height = value['height'];
+ className = value['className'];
+ }
+
+ // Update table
+ if (tinyMCE.tableElement) {
+ tinyMCE.setAttrib(tinyMCE.tableElement, 'cellPadding', cellpadding);
+ tinyMCE.setAttrib(tinyMCE.tableElement, 'cellSpacing', cellspacing);
+ tinyMCE.setAttrib(tinyMCE.tableElement, 'border', border);
+ tinyMCE.setAttrib(tinyMCE.tableElement, 'width', width);
+ tinyMCE.setAttrib(tinyMCE.tableElement, 'height', height);
+ tinyMCE.setAttrib(tinyMCE.tableElement, 'align', align, true);
+ tinyMCE.setAttrib(tinyMCE.tableElement, tinyMCE.isMSIE ? 'className' : "class", className, true);
+
+ if (tinyMCE.isMSIE) {
+ tinyMCE.tableElement.style.pixelWidth = (width == null || width == "") ? 0 : width;
+ tinyMCE.tableElement.style.pixelHeight = (height == null || height == "") ? 0 : height;
+ }
+
+ tinyMCE.handleVisualAid(tinyMCE.tableElement, false, inst.visualAid);
+
+ // Fix for stange MSIE align bug
+ tinyMCE.tableElement.outerHTML = tinyMCE.tableElement.outerHTML;
+
+ //inst.contentWindow.dispatchEvent(createEvent("click"));
+
+ tinyMCE.triggerNodeChange();
+ return true;
+ }
+
+ // Create new table
+ html += '';
+
+ for (var y=0; y";
+ for (var x=0; x';
+ else
+ html += '| ';
+
+ html += " | ";
+ }
+ html += "";
+ }
+
+ html += "
";
+
+ inst.execCommand('mceInsertContent', false, html);
+ }
+
+ return true;
+
+ case "mceTableInsertRowBefore":
+ case "mceTableInsertRowAfter":
+ case "mceTableDeleteRow":
+ case "mceTableInsertColBefore":
+ case "mceTableInsertColAfter":
+ case "mceTableDeleteCol":
+ var trElement = tinyMCE.getParentElement(inst.getFocusElement(), "tr");
+ var tdElement = tinyMCE.getParentElement(inst.getFocusElement(), "td");
+ var tableElement = tinyMCE.getParentElement(inst.getFocusElement(), "table");
+
+ // No table just return (invalid command)
+ if (!tableElement)
+ return true;
+
+ var doc = inst.contentWindow.document;
+ var tableBorder = tableElement.getAttribute("border");
+ var visualAidStyle = inst.visualAid ? tinyMCE.settings['visual_table_style'] : "";
+
+ // Table has a tbody use that reference
+ if (tableElement.firstChild && tableElement.firstChild.nodeName.toLowerCase() == "tbody")
+ tableElement = tableElement.firstChild;
+
+ if (tableElement && trElement) {
+ switch (command) {
+ case "mceTableInsertRowBefore":
+ var numcells = trElement.cells.length;
+ var rowCount = 0;
+ var tmpTR = trElement;
+
+ // Count rows
+ while (tmpTR) {
+ if (tmpTR.nodeName.toLowerCase() == "tr")
+ rowCount++;
+
+ tmpTR = tmpTR.previousSibling;
+ }
+
+ var r = tableElement.insertRow(rowCount == 0 ? 1 : rowCount-1);
+ for (var i=0; i numCols)
+ numCols = tableElement.rows[y].cells.length;
+ }
+
+ // Remove whole table
+ if (numCols <= 1) {
+ if (tinyMCE.isGecko)
+ inst.selectNode(selElm);
+
+ tableElement.parentNode.removeChild(tableElement);
+ tinyMCE.triggerNodeChange();
+ return true;
+ }
+
+ // Remove columns
+ for (var y=0; y 0)
+ selElm = tableElement.rows[0].cells[index-1];
+
+ if (tinyMCE.isGecko)
+ inst.selectNode(selElm);
+ break;
+ }
+
+ tinyMCE.triggerNodeChange();
+ }
+
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
+
+function TinyMCE_table_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
+ // Reset table controls
+ tinyMCE.switchClassSticky(editor_id + '_table', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_row_props', 'mceButtonDisabled', true);
+ tinyMCE.switchClassSticky(editor_id + '_cell_props', 'mceButtonDisabled', true);
+ tinyMCE.switchClassSticky(editor_id + '_row_before', 'mceButtonDisabled', true);
+ tinyMCE.switchClassSticky(editor_id + '_row_after', 'mceButtonDisabled', true);
+ tinyMCE.switchClassSticky(editor_id + '_delete_row', 'mceButtonDisabled', true);
+ tinyMCE.switchClassSticky(editor_id + '_col_before', 'mceButtonDisabled', true);
+ tinyMCE.switchClassSticky(editor_id + '_col_after', 'mceButtonDisabled', true);
+ tinyMCE.switchClassSticky(editor_id + '_delete_col', 'mceButtonDisabled', true);
+
+ // Within a tr element
+ if (tinyMCE.getParentElement(node, "tr"))
+ tinyMCE.switchClassSticky(editor_id + '_row_props', 'mceButtonSelected', false);
+
+ // Within a td element
+ if (tinyMCE.getParentElement(node, "td")) {
+ tinyMCE.switchClassSticky(editor_id + '_cell_props', 'mceButtonSelected', false);
+ tinyMCE.switchClassSticky(editor_id + '_row_before', 'mceButtonNormal', false);
+ tinyMCE.switchClassSticky(editor_id + '_row_after', 'mceButtonNormal', false);
+ tinyMCE.switchClassSticky(editor_id + '_delete_row', 'mceButtonNormal', false);
+ tinyMCE.switchClassSticky(editor_id + '_col_before', 'mceButtonNormal', false);
+ tinyMCE.switchClassSticky(editor_id + '_col_after', 'mceButtonNormal', false);
+ tinyMCE.switchClassSticky(editor_id + '_delete_col', 'mceButtonNormal', false);
+ }
+
+ // Within table
+ if (tinyMCE.getParentElement(node, "table"))
+ tinyMCE.switchClassSticky(editor_id + '_table', 'mceButtonSelected');
+}
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/images/buttons.gif b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/images/buttons.gif
new file mode 100644
index 000000000..c17b5478e
Binary files /dev/null and b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/images/buttons.gif differ
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/ar.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/ar.js
new file mode 100644
index 000000000..149e3f1f3
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/ar.js
@@ -0,0 +1,30 @@
+// Arabic lang variables
+
+tinyMCELang['lang_table_desc'] = 'إدراج/تحرير جدول';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Insert row before';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Insert row after';
+tinyMCELang['lang_table_delete_row_desc'] = 'حذف صفوف';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Insert column before';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Insert column after';
+tinyMCELang['lang_table_delete_col_desc'] = 'حذف أعمدة';
+tinyMCELang['lang_insert_table_title'] = 'إدراج/تحرير جدول';
+tinyMCELang['lang_insert_table_width'] = 'العرض';
+tinyMCELang['lang_insert_table_height'] = 'الارتفاع';
+tinyMCELang['lang_insert_table_cols'] = 'أعمدة';
+tinyMCELang['lang_insert_table_rows'] = 'صفوف';
+tinyMCELang['lang_insert_table_cellspacing'] = 'تباعد الخلايا';
+tinyMCELang['lang_insert_table_cellpadding'] = 'المسافة البادئة';
+tinyMCELang['lang_insert_table_border'] = 'سمك الحدود';
+tinyMCELang['lang_insert_table_align'] = 'المحاذاة';
+tinyMCELang['lang_insert_table_align_default'] = 'Default';
+tinyMCELang['lang_insert_table_align_left'] = 'يسار';
+tinyMCELang['lang_insert_table_align_right'] = 'يمين';
+tinyMCELang['lang_insert_table_align_middle'] = 'وسط';
+tinyMCELang['lang_insert_table_class'] = 'Class';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/cs.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/cs.js
new file mode 100644
index 000000000..6c695919c
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/cs.js
@@ -0,0 +1,30 @@
+// CZ lang variables thanks to "Pavel Novák"
+
+tinyMCELang['lang_table_desc'] = 'Vložit novou tabulku';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Vložit øádek pøed';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Vložit øádek po';
+tinyMCELang['lang_table_delete_row_desc'] = 'Smazat øádek';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Vložit sloupec pøed';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Vložit sloupec po';
+tinyMCELang['lang_table_delete_col_desc'] = 'Odstranit sloupec';
+tinyMCELang['lang_insert_table_title'] = 'Vložit/upravit tabulku';
+tinyMCELang['lang_insert_table_width'] = 'Šíøka';
+tinyMCELang['lang_insert_table_height'] = 'Výška';
+tinyMCELang['lang_insert_table_cols'] = 'Sloupce';
+tinyMCELang['lang_insert_table_rows'] = 'Øádky';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Vnìjší okraj bunìk';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Vnitøní okraj bunìk';
+tinyMCELang['lang_insert_table_border'] = 'Rámeèek';
+tinyMCELang['lang_insert_table_align'] = 'Zarovnání';
+tinyMCELang['lang_insert_table_align_default'] = 'Výchozí';
+tinyMCELang['lang_insert_table_align_left'] = 'Vlevo';
+tinyMCELang['lang_insert_table_align_right'] = 'Vpravo';
+tinyMCELang['lang_insert_table_align_middle'] = 'Na støed';
+tinyMCELang['lang_insert_table_class'] = 'Class';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/da.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/da.js
new file mode 100644
index 000000000..062bbd384
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/da.js
@@ -0,0 +1,30 @@
+// DK lang variables contributed by Jan Moelgaard
+
+tinyMCELang['lang_table_desc'] = 'Indsætter en ny tabel';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Indsæt række foran';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Indsæt række efter';
+tinyMCELang['lang_table_delete_row_desc'] = 'Slet række';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Indsæt kolonne foran';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Indslt kolonne efter';
+tinyMCELang['lang_table_delete_col_desc'] = 'Fjern kolonne';
+tinyMCELang['lang_insert_table_title'] = 'Indsæt/rediger tabel';
+tinyMCELang['lang_insert_table_width'] = 'Bredde';
+tinyMCELang['lang_insert_table_height'] = 'Højde';
+tinyMCELang['lang_insert_table_cols'] = 'Kolonner';
+tinyMCELang['lang_insert_table_rows'] = 'Rækker';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Afstand mellem celler';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Cellemargen';
+tinyMCELang['lang_insert_table_border'] = 'Kant';
+tinyMCELang['lang_insert_table_align'] = 'Justering';
+tinyMCELang['lang_insert_table_align_default'] = 'Standard';
+tinyMCELang['lang_insert_table_align_left'] = 'Venstre';
+tinyMCELang['lang_insert_table_align_right'] = 'Højre';
+tinyMCELang['lang_insert_table_align_middle'] = 'Midt i';
+tinyMCELang['lang_insert_table_class'] = 'Klasse';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/de.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/de.js
new file mode 100644
index 000000000..cd70cd3eb
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/de.js
@@ -0,0 +1,30 @@
+// DE lang variables, Translated 2004 by Crazy Chrissi, Edited 2004 by Krokogras
+
+tinyMCELang['lang_table_desc'] = 'Neue Tabelle einfügen / Tabelle bearbeiten';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Davor Zeile einfügen';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Danach Zeile einfügen';
+tinyMCELang['lang_table_delete_row_desc'] = 'Zeile löschen';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Davor Spalte einfügen';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Danach Spalte einfügen';
+tinyMCELang['lang_table_delete_col_desc'] = 'Spalte löschen';
+tinyMCELang['lang_insert_table_title'] = 'Tabelle Einfügen/Bearbeiten';
+tinyMCELang['lang_insert_table_width'] = 'Breite';
+tinyMCELang['lang_insert_table_height'] = 'Höhe';
+tinyMCELang['lang_insert_table_cols'] = 'Spalten';
+tinyMCELang['lang_insert_table_rows'] = 'Zeilen';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Außenabstand';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Innenabstand';
+tinyMCELang['lang_insert_table_border'] = 'Rahmen';
+tinyMCELang['lang_insert_table_align'] = 'Ausrichten';
+tinyMCELang['lang_insert_table_align_default'] = 'Normal';
+tinyMCELang['lang_insert_table_align_left'] = 'Links';
+tinyMCELang['lang_insert_table_align_right'] = 'Rechts';
+tinyMCELang['lang_insert_table_align_middle'] = 'Zentriert';
+tinyMCELang['lang_insert_table_class'] = 'Klasse';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/el.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/el.js
new file mode 100644
index 000000000..4079a06c2
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/el.js
@@ -0,0 +1,30 @@
+// Greek lang variables by Jacaranda Bill
+
+tinyMCELang['lang_table_desc'] = 'ÅéóáãùãÞ ðßíáêá';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'ÅéóáãùãÞ ãñáììÞò åðÜíù';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'ÅéóáãùãÞ ãñáììÞò êÜôù';
+tinyMCELang['lang_table_delete_row_desc'] = 'ÄéáãñáöÞ ãñáììÞò';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'ÅéóáãùãÞ óôÞëçò áñéóôåñÜ';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'ÅéóáãùãÞ óôÞëçò äåîéÜ';
+tinyMCELang['lang_table_delete_col_desc'] = 'ÄéáãñáöÞ óôÞëçò';
+tinyMCELang['lang_insert_table_title'] = 'ÅéóáãùãÞ/Äéüñèùóç ðßíáêá';
+tinyMCELang['lang_insert_table_width'] = 'ÐëÜôïò';
+tinyMCELang['lang_insert_table_height'] = '¾øïò';
+tinyMCELang['lang_insert_table_cols'] = 'ÓôÞëåò';
+tinyMCELang['lang_insert_table_rows'] = 'ÃñáììÝò';
+tinyMCELang['lang_insert_table_cellspacing'] = 'ÄéÜóôé÷ï';
+tinyMCELang['lang_insert_table_cellpadding'] = 'ÃÝìéóìá';
+tinyMCELang['lang_insert_table_border'] = 'Ðåñßãñáììá';
+tinyMCELang['lang_insert_table_align'] = 'Óôïß÷éóç';
+tinyMCELang['lang_insert_table_align_default'] = 'Ðñïêáè.';
+tinyMCELang['lang_insert_table_align_left'] = 'ÁñéóôåñÜ';
+tinyMCELang['lang_insert_table_align_right'] = 'ÄåîéÜ';
+tinyMCELang['lang_insert_table_align_middle'] = 'Óôï êÝíôñï';
+tinyMCELang['lang_insert_table_class'] = 'ÊëÜóç';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/en.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/en.js
new file mode 100644
index 000000000..53462629c
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/en.js
@@ -0,0 +1,30 @@
+// UK lang variables
+
+tinyMCELang['lang_table_desc'] = 'Inserts a new table';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Insert row before';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Insert row after';
+tinyMCELang['lang_table_delete_row_desc'] = 'Delete row';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Insert column before';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Insert column after';
+tinyMCELang['lang_table_delete_col_desc'] = 'Remove col';
+tinyMCELang['lang_insert_table_title'] = 'Insert/Modify table';
+tinyMCELang['lang_insert_table_width'] = 'Width';
+tinyMCELang['lang_insert_table_height'] = 'Height';
+tinyMCELang['lang_insert_table_cols'] = 'Columns';
+tinyMCELang['lang_insert_table_rows'] = 'Rows';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Cellspacing';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Cellpadding';
+tinyMCELang['lang_insert_table_border'] = 'Border';
+tinyMCELang['lang_insert_table_align'] = 'Alignment';
+tinyMCELang['lang_insert_table_align_default'] = 'Default';
+tinyMCELang['lang_insert_table_align_left'] = 'Left';
+tinyMCELang['lang_insert_table_align_right'] = 'Right';
+tinyMCELang['lang_insert_table_align_middle'] = 'Middle';
+tinyMCELang['lang_insert_table_class'] = 'Class';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/es.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/es.js
new file mode 100644
index 000000000..8e780bd2b
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/es.js
@@ -0,0 +1,30 @@
+// ES lang variables by Alvaro Velasco
+
+tinyMCELang['lang_table_desc'] = 'Insertar una tabla nueva';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Insertar una fila antes';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Insertar una fila despues';
+tinyMCELang['lang_table_delete_row_desc'] = 'Eliminar una fila';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Insertar una columna before';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Insertar columna after';
+tinyMCELang['lang_table_delete_col_desc'] = 'Eliminar una columna';
+tinyMCELang['lang_insert_table_title'] = 'Insertar/Modificar tabla';
+tinyMCELang['lang_insert_table_width'] = 'Anchura';
+tinyMCELang['lang_insert_table_height'] = 'Altura';
+tinyMCELang['lang_insert_table_cols'] = 'Columnas';
+tinyMCELang['lang_insert_table_rows'] = 'Filas';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Espacio entre celdas';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Desplazamiento entre celdas';
+tinyMCELang['lang_insert_table_border'] = 'Borde';
+tinyMCELang['lang_insert_table_align'] = 'Alineamiento';
+tinyMCELang['lang_insert_table_align_default'] = 'Por defecto';
+tinyMCELang['lang_insert_table_align_left'] = 'Izquierda';
+tinyMCELang['lang_insert_table_align_right'] = 'Derecha';
+tinyMCELang['lang_insert_table_align_middle'] = 'Centro';
+tinyMCELang['lang_insert_table_class'] = 'Class';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/fi.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/fi.js
new file mode 100644
index 000000000..74f004d66
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/fi.js
@@ -0,0 +1,30 @@
+// FI lang variables by Urho Konttori from Absolutions
+
+tinyMCELang['lang_table_desc'] = 'Lisää uusi taulu';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Lisää rivi edelle';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Lisää rivi jälkeen';
+tinyMCELang['lang_table_delete_row_desc'] = 'Posita rivi';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Lisää sarake edelle';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Lisää sarake jälkeen';
+tinyMCELang['lang_table_delete_col_desc'] = 'Poista sarake';
+tinyMCELang['lang_insert_table_title'] = 'Lisää/muokkaa taulua';
+tinyMCELang['lang_insert_table_width'] = 'Leveys';
+tinyMCELang['lang_insert_table_height'] = 'Korkeus';
+tinyMCELang['lang_insert_table_cols'] = 'Sarakkeet';
+tinyMCELang['lang_insert_table_rows'] = 'Rivit';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Solujen väli';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Solun reunan ja sisällön väli';
+tinyMCELang['lang_insert_table_border'] = 'Reuna';
+tinyMCELang['lang_insert_table_align'] = 'Asettelu';
+tinyMCELang['lang_insert_table_align_default'] = 'Oletus';
+tinyMCELang['lang_insert_table_align_left'] = 'Vasen';
+tinyMCELang['lang_insert_table_align_right'] = 'Oikea';
+tinyMCELang['lang_insert_table_align_middle'] = 'Keskelle';
+tinyMCELang['lang_insert_table_delta_height'] = 20;
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/fr_ca.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/fr_ca.js
new file mode 100644
index 000000000..4178cd14a
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/fr_ca.js
@@ -0,0 +1,30 @@
+// Canadian French lang variables by Virtuelcom
+
+tinyMCELang['lang_table_desc'] = 'Insérer un nouveau tableau';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Insérer une ligne avant';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Insérer une ligne aprés';
+tinyMCELang['lang_table_delete_row_desc'] = 'Supprimer la ligne';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Insérer une colonne avant';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Insérer une colonne aprés';
+tinyMCELang['lang_table_delete_col_desc'] = 'Supprimer la colonne';
+tinyMCELang['lang_insert_table_title'] = 'Insérer/Modifier le tableau';
+tinyMCELang['lang_insert_table_width'] = 'Largeur';
+tinyMCELang['lang_insert_table_height'] = 'Hauteur';
+tinyMCELang['lang_insert_table_cols'] = 'Colonnes';
+tinyMCELang['lang_insert_table_rows'] = 'Lignes';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Cellspacing';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Cellpadding';
+tinyMCELang['lang_insert_table_border'] = 'Bordure';
+tinyMCELang['lang_insert_table_align'] = 'Alignement';
+tinyMCELang['lang_insert_table_align_default'] = 'Défaut';
+tinyMCELang['lang_insert_table_align_left'] = 'Gauche';
+tinyMCELang['lang_insert_table_align_right'] = 'Droit';
+tinyMCELang['lang_insert_table_align_middle'] = 'Milieu';
+tinyMCELang['lang_insert_table_class'] = 'Classe CSS';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/hu.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/hu.js
new file mode 100644
index 000000000..02ed04f75
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/hu.js
@@ -0,0 +1,30 @@
+// HU lang variables, Edited by 2XP (2xp@dino.hu)
+
+tinyMCELang['lang_table_desc'] = 'Új táblázat beillesztése';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Sor beillesztése elé';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Sor beillesztése utána';
+tinyMCELang['lang_table_delete_row_desc'] = 'Sor törlése';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Oszlop beillsztése elé';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Oszlop beillesztése utána';
+tinyMCELang['lang_table_delete_col_desc'] = 'Oszlop eltávolítása';
+tinyMCELang['lang_insert_table_title'] = 'Tábla beillesztése/módosítása';
+tinyMCELang['lang_insert_table_width'] = 'Szélesség';
+tinyMCELang['lang_insert_table_height'] = 'Magasság';
+tinyMCELang['lang_insert_table_cols'] = 'Oszlopok';
+tinyMCELang['lang_insert_table_rows'] = 'Sorok';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Cellspacing';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Cellpadding';
+tinyMCELang['lang_insert_table_border'] = 'Keret';
+tinyMCELang['lang_insert_table_align'] = 'Igazítás';
+tinyMCELang['lang_insert_table_align_default'] = 'Alapértelmezett';
+tinyMCELang['lang_insert_table_align_left'] = 'Balra';
+tinyMCELang['lang_insert_table_align_right'] = 'Jobbra';
+tinyMCELang['lang_insert_table_align_middle'] = 'Középre';
+tinyMCELang['lang_insert_table_class'] = 'Class';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/it.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/it.js
new file mode 100644
index 000000000..1ad780ce3
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/it.js
@@ -0,0 +1,30 @@
+// Variabili di lingua IT - fabrix.xm@lombardiacom.it
+
+tinyMCELang['lang_table_desc'] = 'Inserisci una nuova tabella';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Inserisci una riga prima';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Inserisci una riga dopo';
+tinyMCELang['lang_table_delete_row_desc'] = 'Cancella riga';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Inserisci colonna prima';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Inserisci colonna dopo';
+tinyMCELang['lang_table_delete_col_desc'] = 'Rimuovi colonna';
+tinyMCELang['lang_insert_table_title'] = 'Inserisci/modifica tabella';
+tinyMCELang['lang_insert_table_width'] = 'Larghezza';
+tinyMCELang['lang_insert_table_height'] = 'Altezza';
+tinyMCELang['lang_insert_table_cols'] = 'Colonne';
+tinyMCELang['lang_insert_table_rows'] = 'Righe';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Cellspacing';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Cellpadding';
+tinyMCELang['lang_insert_table_border'] = 'Bordo';
+tinyMCELang['lang_insert_table_align'] = 'Allineamento';
+tinyMCELang['lang_insert_table_align_default'] = 'Default';
+tinyMCELang['lang_insert_table_align_left'] = 'Sinistra';
+tinyMCELang['lang_insert_table_align_right'] = 'Destra';
+tinyMCELang['lang_insert_table_align_middle'] = 'Centro';
+tinyMCELang['lang_insert_table_class'] = 'Classe';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/ja.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/ja.js
new file mode 100644
index 000000000..4e57ccb32
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/ja.js
@@ -0,0 +1,30 @@
+// JP lang variables
+
+tinyMCELang['lang_table_desc'] = '$B%F!<%V%k(B';
+tinyMCELang['lang_table_insert_row_before_desc'] = '$B9TA^F~(B($BA0(B)';
+tinyMCELang['lang_table_insert_row_after_desc'] = '$B9TA^F~(B($B8e(B)';
+tinyMCELang['lang_table_delete_row_desc'] = '$B9T:o=|(B';
+tinyMCELang['lang_table_insert_col_before_desc'] = '$BNsA^F~(B($BA0(B)';
+tinyMCELang['lang_table_insert_col_after_desc'] = '$BNsA^F~(B($B8e(B)';
+tinyMCELang['lang_table_delete_col_desc'] = '$BNs:o=|(B';
+tinyMCELang['lang_insert_table_title'] = '$B%F!<%V%k$NA^F~(B/$BJT=8(B';
+tinyMCELang['lang_insert_table_cols'] = '$BNs?t(B';
+tinyMCELang['lang_insert_table_rows'] = '$B9T?t(B';
+tinyMCELang['lang_insert_table_cellspacing'] = '$B%;%kM>Gr(B';
+tinyMCELang['lang_insert_table_cellpadding'] = '$B%;%k5M$a(B';
+tinyMCELang['lang_insert_table_align'] = '$B0LCVD4@0(B';
+tinyMCELang['lang_insert_table_align_default'] = '$B0EL[(B';
+tinyMCELang['lang_insert_table_align_left'] = '$B:85M$a(B';
+tinyMCELang['lang_insert_table_align_right'] = '$B1&5M$a(B';
+tinyMCELang['lang_insert_table_align_middle'] = '$BCf1{4s$;(B';
+tinyMCELang['lang_insert_table_width'] = '$BI}(B';
+tinyMCELang['lang_insert_table_height'] = '$B9b$5(B';
+tinyMCELang['lang_insert_table_border'] = '$B6-3&@~(B';
+tinyMCELang['lang_insert_table_class'] = '$B%/%i%9(B';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/ko.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/ko.js
new file mode 100644
index 000000000..0e176ac55
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/ko.js
@@ -0,0 +1,30 @@
+// KO lang variables
+
+tinyMCELang['lang_table_desc'] = 'Ç¥ ³Ö±â';
+tinyMCELang['lang_table_insert_row_before_desc'] = '¾Õ¿¡ Çà ³Ö±â';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'µÚ¿¡ Çà ³Ö±â';
+tinyMCELang['lang_table_delete_row_desc'] = 'Çà Áö¿ì±â';
+tinyMCELang['lang_table_insert_col_before_desc'] = '¾Õ¿¡ ¿ ³Ö±â';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'µÚ¿¡ ¿ ³Ö±â';
+tinyMCELang['lang_table_delete_col_desc'] = '¿ Áö¿ì±â';
+tinyMCELang['lang_insert_table_title'] = 'Ç¥ ³Ö±â/°íÄ¡±â';
+tinyMCELang['lang_insert_table_width'] = '³Êºñ';
+tinyMCELang['lang_insert_table_height'] = '³ôÀÌ';
+tinyMCELang['lang_insert_table_cols'] = 'Çà';
+tinyMCELang['lang_insert_table_rows'] = '¿';
+tinyMCELang['lang_insert_table_cellspacing'] = '¼¿ °£°Ý';
+tinyMCELang['lang_insert_table_cellpadding'] = '¼¿ ¿©¹é';
+tinyMCELang['lang_insert_table_border'] = 'Å׵θ®';
+tinyMCELang['lang_insert_table_align'] = 'Á¤·Ä';
+tinyMCELang['lang_insert_table_align_default'] = '±âº»°ª';
+tinyMCELang['lang_insert_table_align_left'] = '¿ÞÂÊ';
+tinyMCELang['lang_insert_table_align_right'] = '¿À¸¥ÂÊ';
+tinyMCELang['lang_insert_table_align_middle'] = '°¡¿îµ¥';
+tinyMCELang['lang_insert_table_class'] = 'Ŭ·¡½º';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/nl.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/nl.js
new file mode 100644
index 000000000..8d127fa1f
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/nl.js
@@ -0,0 +1,30 @@
+// NL lang variables
+
+tinyMCELang['lang_table_desc'] = 'Voeg een nieuwe tabel in';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Voeg rij in voor ...';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Voeg rij in na ...';
+tinyMCELang['lang_table_delete_row_desc'] = 'Verwijder rij';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Voeg kolom in voor ...';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Voeg kolom in na ...';
+tinyMCELang['lang_table_delete_col_desc'] = 'Verwijder kolom';
+tinyMCELang['lang_insert_table_title'] = 'Invoegen/Bewerken tabel';
+tinyMCELang['lang_insert_table_width'] = 'Breedte';
+tinyMCELang['lang_insert_table_height'] = 'Hoogte';
+tinyMCELang['lang_insert_table_cols'] = 'Kolommen';
+tinyMCELang['lang_insert_table_rows'] = 'Rijen';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Celafstand';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Celvulling';
+tinyMCELang['lang_insert_table_border'] = 'Omranding';
+tinyMCELang['lang_insert_table_align'] = 'Positionering';
+tinyMCELang['lang_insert_table_align_default'] = 'Standaard';
+tinyMCELang['lang_insert_table_align_left'] = 'Links';
+tinyMCELang['lang_insert_table_align_right'] = 'Rechts';
+tinyMCELang['lang_insert_table_align_middle'] = 'Midden';
+tinyMCELang['lang_insert_table_class'] = 'CSS-Stijl';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/no.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/no.js
new file mode 100644
index 000000000..b47296602
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/no.js
@@ -0,0 +1,30 @@
+// NO lang variables
+
+tinyMCELang['lang_table_desc'] = 'Opprett/endre tabell';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Opprett rad før';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Opprett rad etter';
+tinyMCELang['lang_table_delete_row_desc'] = 'Fjern rad';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Opprett kolonne før';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Opprett kolonne etter';
+tinyMCELang['lang_table_delete_col_desc'] = 'Fjern kolonne';
+tinyMCELang['lang_insert_table_title'] = 'Opprett/endre tabell';
+tinyMCELang['lang_insert_table_width'] = 'Bredde';
+tinyMCELang['lang_insert_table_height'] = 'Høyde';
+tinyMCELang['lang_insert_table_cols'] = 'Kolonner';
+tinyMCELang['lang_insert_table_rows'] = 'Rader';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Celle-mellomrom';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Celle-padding';
+tinyMCELang['lang_insert_table_border'] = 'Rammebredde';
+tinyMCELang['lang_insert_table_align'] = 'Justering';
+tinyMCELang['lang_insert_table_align_default'] = 'Ingen';
+tinyMCELang['lang_insert_table_align_left'] = 'Venstre';
+tinyMCELang['lang_insert_table_align_right'] = 'Høyre';
+tinyMCELang['lang_insert_table_align_middle'] = 'Midten';
+tinyMCELang['lang_insert_table_class'] = 'Stil';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/pl.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/pl.js
new file mode 100644
index 000000000..6144b39c2
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/pl.js
@@ -0,0 +1,30 @@
+// PL lang variables
+
+tinyMCELang['lang_table_desc'] = 'Wstaw now± tabelê';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Wstaw wiersz przed';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Wstaw wiersz za';
+tinyMCELang['lang_table_delete_row_desc'] = 'Usuñ wiersz';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Wstaw kolumnê przed';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Wstaw kolumnê za';
+tinyMCELang['lang_table_delete_col_desc'] = 'Usuñ kolumnê';
+tinyMCELang['lang_insert_table_title'] = 'Wstaw/Modyfikuj tabelê';
+tinyMCELang['lang_insert_table_width'] = 'Szeroko¶æ';
+tinyMCELang['lang_insert_table_height'] = 'Wysoko¶æ';
+tinyMCELang['lang_insert_table_cols'] = 'Kolumny';
+tinyMCELang['lang_insert_table_rows'] = 'Wiersze';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Cellspacing';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Cellpadding';
+tinyMCELang['lang_insert_table_border'] = 'Krawêdzie';
+tinyMCELang['lang_insert_table_align'] = 'Wyrównanie';
+tinyMCELang['lang_insert_table_align_default'] = 'Domy¶lne';
+tinyMCELang['lang_insert_table_align_left'] = 'Do lewej';
+tinyMCELang['lang_insert_table_align_right'] = 'Do prawej';
+tinyMCELang['lang_insert_table_align_middle'] = 'Do ¶rodka';
+tinyMCELang['lang_insert_table_class'] = 'Klasa';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/pt.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/pt.js
new file mode 100644
index 000000000..32aa78055
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/pt.js
@@ -0,0 +1,30 @@
+// PT lang variables
+
+tinyMCELang['lang_table_desc'] = 'Insere uma nova tabela';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Inserir linha antes';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Inserir linha depois';
+tinyMCELang['lang_table_delete_row_desc'] = 'Eliminar linha';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Inserir coluna antes';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Inserir coluna depois';
+tinyMCELang['lang_table_delete_col_desc'] = 'Remover coluna';
+tinyMCELang['lang_insert_table_title'] = 'Inserir/Modificar tabela';
+tinyMCELang['lang_insert_table_width'] = 'Largura';
+tinyMCELang['lang_insert_table_height'] = 'Altura';
+tinyMCELang['lang_insert_table_cols'] = 'Colunas';
+tinyMCELang['lang_insert_table_rows'] = 'Linhas';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Espaça
mento';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Margem interior';
+tinyMCELang['lang_insert_table_border'] = 'Borda';
+tinyMCELang['lang_insert_table_align'] = 'Alinhamento';
+tinyMCELang['lang_insert_table_align_default'] = 'Por omissão';
+tinyMCELang['lang_insert_table_align_left'] = 'Esquerda';
+tinyMCELang['lang_insert_table_align_right'] = 'Direita';
+tinyMCELang['lang_insert_table_align_middle'] = 'Centrado';
+tinyMCELang['lang_insert_table_class'] = 'Classe de CSS';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/readme.txt b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/readme.txt
new file mode 100644
index 000000000..ef48d2ba4
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/readme.txt
@@ -0,0 +1,4 @@
+Theme specific language packs.
+
+The language pack codes are based on ISO-639-2
+http://www.loc.gov/standards/iso639-2/englangn.html
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/sv.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/sv.js
new file mode 100644
index 000000000..eca659ace
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/sv.js
@@ -0,0 +1,30 @@
+// SE lang variables
+
+tinyMCELang['lang_table_desc'] = 'Skapa ny tabell';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'Skapa rad före';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'Skapa rad efter';
+tinyMCELang['lang_table_delete_row_desc'] = 'Ta bort rad';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'Skapa kolumn före';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'Skapa kolumn efter';
+tinyMCELang['lang_table_delete_col_desc'] = 'Ta bort kolumn';
+tinyMCELang['lang_insert_table_title'] = 'Skapa/Redigera tabell';
+tinyMCELang['lang_insert_table_width'] = 'Bredd';
+tinyMCELang['lang_insert_table_height'] = 'Höjd';
+tinyMCELang['lang_insert_table_cols'] = 'Kolumner';
+tinyMCELang['lang_insert_table_rows'] = 'Rader';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Cellspacing';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Cellpadding';
+tinyMCELang['lang_insert_table_border'] = 'Rambredd';
+tinyMCELang['lang_insert_table_align'] = 'Justering';
+tinyMCELang['lang_insert_table_align_default'] = 'Ingen';
+tinyMCELang['lang_insert_table_align_left'] = 'Vänster';
+tinyMCELang['lang_insert_table_align_right'] = 'Höger';
+tinyMCELang['lang_insert_table_align_middle'] = 'Mitten';
+tinyMCELang['lang_insert_table_class'] = 'Stil';
+tinyMCELang['lang_table_row_title'] = 'Tabellradsinställningar';
+tinyMCELang['lang_table_cell_title'] = 'Tabellcellsinställningar';
+tinyMCELang['lang_table_row_desc'] = 'Tabellradsinställningar';
+tinyMCELang['lang_table_cell_desc'] = 'Tabellcellsinställningar';
+tinyMCELang['lang_insert_table_valign'] = 'Vertikal justering';
+tinyMCELang['lang_insert_table_align_top'] = 'Toppen';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Botten';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/tw.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/tw.js
new file mode 100644
index 000000000..86a9c8a9d
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/tw.js
@@ -0,0 +1,30 @@
+// TW lang variables contributed by Jim Kou
+
+tinyMCELang['lang_insert_table_align'] = '¹ï»ô';
+tinyMCELang['lang_insert_table_align_default'] = '¼Ð·Ç';
+tinyMCELang['lang_insert_table_align_left'] = '»ô¥ª';
+tinyMCELang['lang_insert_table_align_middle'] = '¸m¤¤';
+tinyMCELang['lang_insert_table_align_right'] = '»ô¥k';
+tinyMCELang['lang_insert_table_border'] = '®Ø½u';
+tinyMCELang['lang_insert_table_cellpadding'] = '¦rÅé»PÀx¦s®æ¶¡»Ø';
+tinyMCELang['lang_insert_table_cellspacing'] = 'Àx¦s®æ¶¡»Ø';
+tinyMCELang['lang_insert_table_class'] = '¼Ë¦¡';
+tinyMCELang['lang_insert_table_cols'] = '¦æ';
+tinyMCELang['lang_insert_table_height'] = '°ª«×';
+tinyMCELang['lang_insert_table_rows'] = '¦C';
+tinyMCELang['lang_insert_table_title'] = 'ªí®æ¼ÐÃD';
+tinyMCELang['lang_insert_table_width'] = '¼e«×';
+tinyMCELang['lang_table_delete_col_desc'] = '§R°£¤@¦æÀx¦s®æ';
+tinyMCELang['lang_table_delete_row_desc'] = '§R°£¤@¦CÀx¦s®æ';
+tinyMCELang['lang_table_desc'] = 'ªí®æ';
+tinyMCELang['lang_table_insert_col_after_desc'] = '·s¼W¤@¦æÀx¦s®æ(«á)';
+tinyMCELang['lang_table_insert_col_before_desc'] = '·s¼W¤@¦æÀx¦s®æ(«e)';
+tinyMCELang['lang_table_insert_row_after_desc'] = '·s¼W¤@¦CÀx¦s®æ(«á)';
+tinyMCELang['lang_table_insert_row_before_desc'] = '·s¼W¤@¦CÀx¦s®æ(«e)';
+tinyMCELang['lang_table_row_title'] = 'Table row properties';
+tinyMCELang['lang_table_cell_title'] = 'Table cell properties';
+tinyMCELang['lang_table_row_desc'] = 'Table row properties';
+tinyMCELang['lang_table_cell_desc'] = 'Table cell properties';
+tinyMCELang['lang_insert_table_valign'] = 'Vertical alignment';
+tinyMCELang['lang_insert_table_align_top'] = 'Top';
+tinyMCELang['lang_insert_table_align_bottom'] = 'Bottom';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/zh_cn.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/zh_cn.js
new file mode 100644
index 000000000..180e97c77
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/langs/zh_cn.js
@@ -0,0 +1,30 @@
+// Simplified Chinese lang variables contributed by cube316 (cube316@etang.com)
+
+tinyMCELang['lang_table_desc'] = '²åÈëбí¸ñ';
+tinyMCELang['lang_table_insert_row_before_desc'] = 'ÔÚÇ°Ãæ²åÈëÐÐ';
+tinyMCELang['lang_table_insert_row_after_desc'] = 'ÔÚºóÃæ²åÈëÐÐ';
+tinyMCELang['lang_table_delete_row_desc'] = 'ɾ³ýÐÐ';
+tinyMCELang['lang_table_insert_col_before_desc'] = 'ÔÚÇ°Ãæ²åÈëÁÐ';
+tinyMCELang['lang_table_insert_col_after_desc'] = 'ÔÚºóÃæ²åÈëÁÐ';
+tinyMCELang['lang_table_delete_col_desc'] = 'ɾ³ýÁÐ';
+tinyMCELang['lang_insert_table_title'] = '²åÈë/ÐÞ¸Ä ±í¸ñ';
+tinyMCELang['lang_insert_table_width'] = '¿í¶È';
+tinyMCELang['lang_insert_table_height'] = '¸ß¶È';
+tinyMCELang['lang_insert_table_cols'] = 'ÁÐÊý';
+tinyMCELang['lang_insert_table_rows'] = 'ÐÐÊý';
+tinyMCELang['lang_insert_table_cellspacing'] = '¼ä¾à';
+tinyMCELang['lang_insert_table_cellpadding'] = 'Ìî³ä';
+tinyMCELang['lang_insert_table_border'] = '±ß¿ò';
+tinyMCELang['lang_insert_table_align'] = '¶ÔÆë·½Ê½';
+tinyMCELang['lang_insert_table_align_default'] = 'ĬÈÏ';
+tinyMCELang['lang_insert_table_align_left'] = '×ó¶ÔÆë';
+tinyMCELang['lang_insert_table_align_right'] = 'ÓÒ¶ÔÆë';
+tinyMCELang['lang_insert_table_align_middle'] = '¾ÓÖÐ¶ÔÆë';
+tinyMCELang['lang_insert_table_class'] = 'Àà';
+tinyMCELang['lang_table_row_title'] = '±í¸ñÐÐÊôÐÔ';
+tinyMCELang['lang_table_cell_title'] = 'µ¥Ôª¸ñÊôÐÔ';
+tinyMCELang['lang_table_row_desc'] = '±í¸ñÐÐÊôÐÔ';
+tinyMCELang['lang_table_cell_desc'] = 'µ¥Ôª¸ñÊôÐÔ';
+tinyMCELang['lang_insert_table_valign'] = '´¹Ö±¶ÔÆë';
+tinyMCELang['lang_insert_table_align_top'] = '¶¥¶Ë';
+tinyMCELang['lang_insert_table_align_bottom'] = 'µ×²¿';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/readme.txt b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/readme.txt
new file mode 100644
index 000000000..cdab6852f
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/readme.txt
@@ -0,0 +1,43 @@
+ Table plugin for TinyMCE
+------------------------------
+
+Installation instructions:
+ * Copy the table directory to the plugins directory of TinyMCE (/jscripts/tiny_mce/plugins).
+ * Add plugin to TinyMCE plugin option list example: plugins : "table".
+ * Add the table button name to button list, example: theme_advanced_buttons3_add_before : "tablecontrols".
+
+Initialization example:
+ tinyMCE.init({
+ theme : "advanced",
+ mode : "textareas",
+ plugins : "table",
+ theme_advanced_buttons3_add_before : "tablecontrols"
+ });
+ html += tinyMCE.getControlHTML("row_props");
+ html += tinyMCE.getControlHTML("cell_props");
+
+Table controls:
+ tablecontrols All table control below and some separators between them.
+ table Insert table control.
+ row_props Edit row properties (tr).
+ cell_props Edit cell properties (td).
+ delete_col Delete column control.
+ delete_row Delete row control.
+ col_after Column after control.
+ col_before Column before control.
+ row_after Row after control.
+ row_before Row before control.
+ row_after Row after control.
+ row_before Row before control.
+
+Table plugin commands:
+ mceInsertTable Inserts a new table at cursor location the default size is 2x2.
+ If the value parameter is specified it should contain a name/value array,
+ this array has the following options cols, rows, border, cellspacing, cellpadding.
+ The default border is set to: 0.
+ mceTableInsertRowBefore Inserts a row before/above the current cursor location.
+ mceTableInsertRowAfter Inserts a row after/under the current cursor location.
+ mceTableDeleteRow Deletes the row at the current cursor location.
+ mceTableInsertColBefore Inserts a column before the current cursor location.
+ mceTableInsertColAfter Inserts a column after the current cursor location.
+ mceTableDeleteCol Deletes the column at the current cursor location.
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/row.htm b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/row.htm
new file mode 100644
index 000000000..2a1b094ca
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/row.htm
@@ -0,0 +1,118 @@
+
+
+
+
+{$lang_table_row_title}
+
+
+
+
+
+
+
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/table/table.htm b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/table.htm
new file mode 100644
index 000000000..3495ff7b2
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/table/table.htm
@@ -0,0 +1,137 @@
+
+
+
+
+{$lang_insert_table_title}
+
+
+
+
+
+
+
diff --git a/www/extras/tinymce/jscripts/tiny_mce/plugins/zoom/editor_plugin_src.js b/www/extras/tinymce/jscripts/tiny_mce/plugins/zoom/editor_plugin_src.js
new file mode 100644
index 000000000..18c235e61
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/plugins/zoom/editor_plugin_src.js
@@ -0,0 +1,38 @@
+/* Import theme specific language pack */
+//tinyMCE.importPluginLanguagePack('zoom', 'en,sv,pt');
+
+/**
+ * Returns the HTML contents of the zoom control.
+ */
+function TinyMCE_zoom_getControlHTML(control_name) {
+ if (!tinyMCE.isMSIE || tinyMCE.isMSIE5_0)
+ return "";
+
+ switch (control_name) {
+ case "zoom":
+ return '';
+ }
+
+ return "";
+}
+
+/**
+ * Executes the mceZoom command.
+ */
+function TinyMCE_zoom_execCommand(editor_id, element, command, user_interface, value) {
+ // Handle commands
+ switch (command) {
+ case "mceZoom":
+ tinyMCE.getInstanceById(editor_id).contentDocument.body.style.zoom = value;
+ tinyMCE.getInstanceById(editor_id).contentDocument.body.style.mozZoom = value;
+ return true;
+ }
+
+ // Pass to next handler in chain
+ return false;
+}
diff --git a/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/images/browse.gif b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/images/browse.gif
new file mode 100644
index 000000000..590f2de43
Binary files /dev/null and b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/images/browse.gif differ
diff --git a/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/cs.js b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/cs.js
new file mode 100644
index 000000000..c4612d2e8
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/cs.js
@@ -0,0 +1,59 @@
+// CZ lang variables thanks to "Pavel Novák", repaired by Josef Klimosz
+
+tinyMCELang['lang_theme_style_select'] = 'Styly';
+tinyMCELang['lang_theme_code_desc'] = 'Zobrazit HTML';
+tinyMCELang['lang_theme_code_title'] = 'Editace HTML';
+tinyMCELang['lang_theme_code_wordwrap'] = 'Bez dìlení slov';
+tinyMCELang['lang_theme_sub_desc'] = 'Dolní index';
+tinyMCELang['lang_theme_sup_desc'] = 'Horní index';
+tinyMCELang['lang_theme_hr_desc'] = 'Vložit vodorovný oddìlovaè';
+tinyMCELang['lang_theme_removeformat_desc'] = 'Zrušit formátování';
+tinyMCELang['lang_theme_custom1_desc'] = 'Libovolný popisek';
+tinyMCELang['lang_insert_image_border'] = 'Rámeèek';
+tinyMCELang['lang_insert_image_dimensions'] = 'Rozmìry';
+tinyMCELang['lang_insert_image_vspace'] = 'Vertikální okraj';
+tinyMCELang['lang_insert_image_hspace'] = 'Horizontální okraj';
+tinyMCELang['lang_insert_image_align'] = 'Zarovnání';
+tinyMCELang['lang_insert_image_align_default'] = 'Výchozí';
+tinyMCELang['lang_insert_image_align_baseline'] = 'Na úèaøí';
+tinyMCELang['lang_insert_image_align_top'] = 'Nahoru';
+tinyMCELang['lang_insert_image_align_middle'] = 'Na støed';
+tinyMCELang['lang_insert_image_align_bottom'] = 'Dolù';
+tinyMCELang['lang_insert_image_align_texttop'] = 'Nejvyšší bod textu';
+tinyMCELang['lang_insert_image_align_absmiddle'] = 'Støed øádku';
+tinyMCELang['lang_insert_image_align_absbottom'] = 'Spodek øádku';
+tinyMCELang['lang_insert_image_align_left'] = 'Vlevo';
+tinyMCELang['lang_insert_image_align_right'] = 'Vpravo';
+tinyMCELang['lang_theme_font_size'] = 'Font size';
+tinyMCELang['lang_theme_fontdefault'] = 'Default';
+tinyMCELang['lang_theme_paragraph'] = 'Odstavec';
+tinyMCELang['lang_theme_div'] = 'Div';
+tinyMCELang['lang_theme_address'] = 'Adresa';
+tinyMCELang['lang_theme_pre'] = 'Pøedformát';
+tinyMCELang['lang_theme_h1'] = 'Nadpis 1';
+tinyMCELang['lang_theme_h2'] = 'Nadpis 2';
+tinyMCELang['lang_theme_h3'] = 'Nadpis 3';
+tinyMCELang['lang_theme_h4'] = 'Nadpis 4';
+tinyMCELang['lang_theme_h5'] = 'Nadpis 5';
+tinyMCELang['lang_theme_h6'] = 'Nadpis 6';
+tinyMCELang['lang_theme_colorpicker_title'] = 'Výbìr barvy';
+tinyMCELang['lang_theme_colorpicker_apply'] = 'Vybrat';
+tinyMCELang['lang_theme_forecolor_desc'] = 'Barva popøedí';
+tinyMCELang['lang_theme_backcolor_desc'] = 'Barva pozadí';
+tinyMCELang['lang_theme_charmap_title'] = 'Výbìr uživ. znaku';
+tinyMCELang['lang_theme_charmap_desc'] = 'Vložit znak';
+tinyMCELang['lang_theme_visualaid_desc'] = 'Zapnout znaèky/neviditelné prvky';
+tinyMCELang['lang_insert_anchor_title'] = 'Vložení/editace záložky';
+tinyMCELang['lang_insert_anchor_name'] = 'Název';
+tinyMCELang['lang_theme_anchor_desc'] = 'Vložit/editovat záložku';
+tinyMCELang['lang_theme_insert_link_titlefield'] = 'Název';
+tinyMCELang['lang_theme_clipboard_msg'] = 'Copy/Cut/Paste není použitelné v Mozille a Firefoxu.\nChcete více informací o tomto problému?';
+tinyMCELang['lang_theme_path'] = 'Cesta';
+tinyMCELang['lang_cut_desc'] = 'Vyjmout';
+tinyMCELang['lang_copy_desc'] = 'Kopírovat';
+tinyMCELang['lang_paste_desc'] = 'Vložit';
+tinyMCELang['lang_link_list'] = 'Link list';
+tinyMCELang['lang_image_list'] = 'Image list';
+tinyMCELang['lang_link_list'] = 'Link list';
+tinyMCELang['lang_image_list'] = 'Image list';
+tinyMCELang['lang_browse'] = 'Browse';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/da.js b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/da.js
new file mode 100644
index 000000000..a34974a8e
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/da.js
@@ -0,0 +1,57 @@
+// DK lang variables contributed by Jan Moelgaard
+
+tinyMCELang['lang_theme_style_select'] = 'Styles';
+tinyMCELang['lang_theme_code_desc'] = 'Rediger html-kode';
+tinyMCELang['lang_theme_code_title'] = 'HTML Kodeeditor';
+tinyMCELang['lang_theme_code_wordwrap'] = 'Word wrap';
+tinyMCELang['lang_theme_sub_desc'] = 'Sænket skrift';
+tinyMCELang['lang_theme_sup_desc'] = 'Hævet skrift';
+tinyMCELang['lang_theme_hr_desc'] = 'Indsæt horisontal linje';
+tinyMCELang['lang_theme_removeformat_desc'] = 'Fjern formatering';
+tinyMCELang['lang_theme_custom1_desc'] = 'Indsæt din egen beskrivelse her';
+tinyMCELang['lang_insert_image_border'] = 'Kant';
+tinyMCELang['lang_insert_image_dimensions'] = 'Dimensioner';
+tinyMCELang['lang_insert_image_vspace'] = 'VSpace';
+tinyMCELang['lang_insert_image_hspace'] = 'HSpace';
+tinyMCELang['lang_insert_image_align'] = 'Justering';
+tinyMCELang['lang_insert_image_align_default'] = 'Standard';
+tinyMCELang['lang_insert_image_align_baseline'] = 'Bundlinje';
+tinyMCELang['lang_insert_image_align_top'] = 'Top';
+tinyMCELang['lang_insert_image_align_middle'] = 'Midt i';
+tinyMCELang['lang_insert_image_align_bottom'] = 'I bunden';
+tinyMCELang['lang_insert_image_align_texttop'] = 'I toppen af teksten';
+tinyMCELang['lang_insert_image_align_absmiddle'] = 'Absolut midte';
+tinyMCELang['lang_insert_image_align_absbottom'] = 'Absolut bund';
+tinyMCELang['lang_insert_image_align_left'] = 'Venstre';
+tinyMCELang['lang_insert_image_align_right'] = 'Højre';
+tinyMCELang['lang_theme_font_size'] = 'Font size';
+tinyMCELang['lang_theme_fontdefault'] = 'Standard';
+tinyMCELang['lang_theme_paragraph'] = 'Afsnit';
+tinyMCELang['lang_theme_div'] = 'Div';
+tinyMCELang['lang_theme_address'] = 'Addresse';
+tinyMCELang['lang_theme_pre'] = 'Præformateret';
+tinyMCELang['lang_theme_h1'] = 'Overskrift 1';
+tinyMCELang['lang_theme_h2'] = 'Overskrift 2';
+tinyMCELang['lang_theme_h3'] = 'Overskrift 3';
+tinyMCELang['lang_theme_h4'] = 'Overskrift 4';
+tinyMCELang['lang_theme_h5'] = 'Overskrift 5';
+tinyMCELang['lang_theme_h6'] = 'Overskrift 6';
+tinyMCELang['lang_theme_colorpicker_title'] = 'Vælg en farve';
+tinyMCELang['lang_theme_colorpicker_apply'] = 'Anvend';
+tinyMCELang['lang_theme_forecolor_desc'] = 'Vælg forgrundsfarve';
+tinyMCELang['lang_theme_backcolor_desc'] = 'Select background color';
+tinyMCELang['lang_theme_charmap_title'] = 'Vælg specialkarakter';
+tinyMCELang['lang_theme_charmap_desc'] = 'Indsæt specialkarakter';
+tinyMCELang['lang_theme_visualaid_desc'] = 'Slå linjer/usynlige elementer til og fra';
+tinyMCELang['lang_insert_anchor_title'] = 'Indsæt/rediger bogmærke';
+tinyMCELang['lang_insert_anchor_name'] = 'Bogmærkets navn';
+tinyMCELang['lang_theme_anchor_desc'] = 'Indsæt/rediger bogmærke';
+tinyMCELang['lang_theme_insert_link_titlefield'] = 'Title';
+tinyMCELang['lang_theme_clipboard_msg'] = 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?';
+tinyMCELang['lang_theme_path'] = 'Path';
+tinyMCELang['lang_cut_desc'] = 'Cut';
+tinyMCELang['lang_copy_desc'] = 'Copy';
+tinyMCELang['lang_paste_desc'] = 'Paste';
+tinyMCELang['lang_link_list'] = 'Link list';
+tinyMCELang['lang_image_list'] = 'Image list';
+tinyMCELang['lang_browse'] = 'Browse';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js
new file mode 100644
index 000000000..ee778da6c
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/en.js
@@ -0,0 +1,57 @@
+// UK lang variables
+
+tinyMCELang['lang_theme_style_select'] = 'Styles';
+tinyMCELang['lang_theme_code_desc'] = 'Edit HTML Source';
+tinyMCELang['lang_theme_code_title'] = 'HTML Source Editor';
+tinyMCELang['lang_theme_code_wordwrap'] = 'Word wrap';
+tinyMCELang['lang_theme_sub_desc'] = 'Subscript';
+tinyMCELang['lang_theme_sup_desc'] = 'Superscript';
+tinyMCELang['lang_theme_hr_desc'] = 'Insert horizontal ruler';
+tinyMCELang['lang_theme_removeformat_desc'] = 'Remove formatting';
+tinyMCELang['lang_theme_custom1_desc'] = 'Your custom description here';
+tinyMCELang['lang_insert_image_border'] = 'Border';
+tinyMCELang['lang_insert_image_dimensions'] = 'Dimensions';
+tinyMCELang['lang_insert_image_vspace'] = 'VSpace';
+tinyMCELang['lang_insert_image_hspace'] = 'HSpace';
+tinyMCELang['lang_insert_image_align'] = 'Alignment';
+tinyMCELang['lang_insert_image_align_default'] = 'Default';
+tinyMCELang['lang_insert_image_align_baseline'] = 'Baseline';
+tinyMCELang['lang_insert_image_align_top'] = 'Top';
+tinyMCELang['lang_insert_image_align_middle'] = 'Middle';
+tinyMCELang['lang_insert_image_align_bottom'] = 'Bottom';
+tinyMCELang['lang_insert_image_align_texttop'] = 'TextTop';
+tinyMCELang['lang_insert_image_align_absmiddle'] = 'Absolute Middle';
+tinyMCELang['lang_insert_image_align_absbottom'] = 'Absolute Bottom';
+tinyMCELang['lang_insert_image_align_left'] = 'Left';
+tinyMCELang['lang_insert_image_align_right'] = 'Right';
+tinyMCELang['lang_theme_font_size'] = 'Font size';
+tinyMCELang['lang_theme_fontdefault'] = 'Default';
+tinyMCELang['lang_theme_paragraph'] = 'Paragraph';
+tinyMCELang['lang_theme_div'] = 'Div';
+tinyMCELang['lang_theme_address'] = 'Address';
+tinyMCELang['lang_theme_pre'] = 'Preformatted';
+tinyMCELang['lang_theme_h1'] = 'Heading 1';
+tinyMCELang['lang_theme_h2'] = 'Heading 2';
+tinyMCELang['lang_theme_h3'] = 'Heading 3';
+tinyMCELang['lang_theme_h4'] = 'Heading 4';
+tinyMCELang['lang_theme_h5'] = 'Heading 5';
+tinyMCELang['lang_theme_h6'] = 'Heading 6';
+tinyMCELang['lang_theme_colorpicker_title'] = 'Select a color';
+tinyMCELang['lang_theme_colorpicker_apply'] = 'Apply';
+tinyMCELang['lang_theme_forecolor_desc'] = 'Select text color';
+tinyMCELang['lang_theme_backcolor_desc'] = 'Select background color';
+tinyMCELang['lang_theme_charmap_title'] = 'Select custom character';
+tinyMCELang['lang_theme_charmap_desc'] = 'Insert custom character';
+tinyMCELang['lang_theme_visualaid_desc'] = 'Toggle guidelines/invisible elements';
+tinyMCELang['lang_insert_anchor_title'] = 'Insert/edit anchor';
+tinyMCELang['lang_insert_anchor_name'] = 'Anchor name';
+tinyMCELang['lang_theme_anchor_desc'] = 'Insert/edit anchor';
+tinyMCELang['lang_theme_insert_link_titlefield'] = 'Title';
+tinyMCELang['lang_theme_clipboard_msg'] = 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?';
+tinyMCELang['lang_theme_path'] = 'Path';
+tinyMCELang['lang_cut_desc'] = 'Cut';
+tinyMCELang['lang_copy_desc'] = 'Copy';
+tinyMCELang['lang_paste_desc'] = 'Paste';
+tinyMCELang['lang_link_list'] = 'Link list';
+tinyMCELang['lang_image_list'] = 'Image list';
+tinyMCELang['lang_browse'] = 'Browse';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr_ca.js b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr_ca.js
new file mode 100644
index 000000000..ae80725b0
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/fr_ca.js
@@ -0,0 +1,57 @@
+// Canadian French lang variables by Virtuelcom
+
+tinyMCELang['lang_theme_style_select'] = 'Styles';
+tinyMCELang['lang_theme_code_desc'] = 'Modifier le code source HTML';
+tinyMCELang['lang_theme_code_title'] = 'Éditeur de code source HTML';
+tinyMCELang['lang_theme_code_wordwrap'] = 'Word wrap';
+tinyMCELang['lang_theme_sub_desc'] = 'Souscrit';
+tinyMCELang['lang_theme_sup_desc'] = 'Indice supérieur';
+tinyMCELang['lang_theme_hr_desc'] = 'Insérer un séparateur horizontal';
+tinyMCELang['lang_theme_removeformat_desc'] = 'Supprimer le formattage';
+tinyMCELang['lang_theme_custom1_desc'] = 'Votre description personnalisée ici';
+tinyMCELang['lang_insert_image_border'] = 'Bordure';
+tinyMCELang['lang_insert_image_dimensions'] = 'Dimensions';
+tinyMCELang['lang_insert_image_vspace'] = 'VSpace';
+tinyMCELang['lang_insert_image_hspace'] = 'HSpace';
+tinyMCELang['lang_insert_image_align'] = 'Alignement';
+tinyMCELang['lang_insert_image_align_default'] = 'Défaut';
+tinyMCELang['lang_insert_image_align_baseline'] = 'Baseline';
+tinyMCELang['lang_insert_image_align_top'] = 'Haut';
+tinyMCELang['lang_insert_image_align_middle'] = 'Milieu';
+tinyMCELang['lang_insert_image_align_bottom'] = 'Bas';
+tinyMCELang['lang_insert_image_align_texttop'] = 'TextTop';
+tinyMCELang['lang_insert_image_align_absmiddle'] = 'Milieu absolu';
+tinyMCELang['lang_insert_image_align_absbottom'] = 'Bas absolu';
+tinyMCELang['lang_insert_image_align_left'] = 'Gauche';
+tinyMCELang['lang_insert_image_align_right'] = 'Droit';
+tinyMCELang['lang_theme_font_size'] = 'Font size';
+tinyMCELang['lang_theme_fontdefault'] = 'Défaut';
+tinyMCELang['lang_theme_paragraph'] = 'Paragraphe';
+tinyMCELang['lang_theme_div'] = 'Div';
+tinyMCELang['lang_theme_address'] = 'Addresse';
+tinyMCELang['lang_theme_pre'] = 'Préformatté';
+tinyMCELang['lang_theme_h1'] = 'Entête 1';
+tinyMCELang['lang_theme_h2'] = 'Entête 2';
+tinyMCELang['lang_theme_h3'] = 'Entête 3';
+tinyMCELang['lang_theme_h4'] = 'Entête 4';
+tinyMCELang['lang_theme_h5'] = 'Entête 5';
+tinyMCELang['lang_theme_h6'] = 'Entête 6';
+tinyMCELang['lang_theme_colorpicker_title'] = 'Choisir une couleur';
+tinyMCELang['lang_theme_colorpicker_apply'] = 'Appliquer';
+tinyMCELang['lang_theme_forecolor_desc'] = 'Choisir la couleur d\'avant plan';
+tinyMCELang['lang_theme_backcolor_desc'] = 'Select background color';
+tinyMCELang['lang_theme_charmap_title'] = 'Sélectionner un charactère spécial';
+tinyMCELang['lang_theme_charmap_desc'] = 'Insérer un charactère spécial';
+tinyMCELang['lang_theme_visualaid_desc'] = 'Active/Désactive les lignes guides et les éléments invisibles';
+tinyMCELang['lang_insert_anchor_title'] = 'Insérer/Modifier une ancre';
+tinyMCELang['lang_insert_anchor_name'] = 'Nom de l\'ancre';
+tinyMCELang['lang_theme_anchor_desc'] = 'Insérer/Modifier une ancre';
+tinyMCELang['lang_theme_insert_link_titlefield'] = 'Titre';
+tinyMCELang['lang_theme_clipboard_msg'] = 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?';
+tinyMCELang['lang_theme_path'] = 'Path';
+tinyMCELang['lang_cut_desc'] = 'Cut';
+tinyMCELang['lang_copy_desc'] = 'Copy';
+tinyMCELang['lang_paste_desc'] = 'Paste';
+tinyMCELang['lang_link_list'] = 'Link list';
+tinyMCELang['lang_image_list'] = 'Image list';
+tinyMCELang['lang_browse'] = 'Browse';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja.js b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja.js
new file mode 100644
index 000000000..ce809bfd2
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/ja.js
@@ -0,0 +1,55 @@
+// JP lang variables
+
+tinyMCELang['lang_theme_style_select'] = '$B%9%?%$%k(B';
+tinyMCELang['lang_theme_paragraph'] = '$BJ8L.(B';
+tinyMCELang['lang_theme_address'] = '$B%"%I%l%9(B';
+tinyMCELang['lang_theme_pre'] = '$B@07A:Q$_(B';
+tinyMCELang['lang_theme_h1'] = 'H1';
+tinyMCELang['lang_theme_h2'] = 'H2';
+tinyMCELang['lang_theme_h3'] = 'H3';
+tinyMCELang['lang_theme_h4'] = 'H4';
+tinyMCELang['lang_theme_h5'] = 'H5';
+tinyMCELang['lang_theme_h6'] = 'H6';
+tinyMCELang['lang_theme_div'] = 'Div';
+tinyMCELang['lang_insert_anchor_title'] = '$B%"%s%+!<$NA^F~(B/$BJT=8(B';
+tinyMCELang['lang_insert_anchor_name'] = '$B%"%s%+!<$NL>A0(B';
+tinyMCELang['lang_theme_anchor_desc'] = '$B%"%s%+!<$NA^F~(B/$BJT=8(B';
+tinyMCELang['lang_theme_code_desc'] = 'HTML$B$ND>@\JT=8(B';
+tinyMCELang['lang_theme_code_title'] = 'HTML$B$NJT=8(B';
+tinyMCELang['lang_theme_code_wordwrap'] = 'Word wrap';
+tinyMCELang['lang_theme_hr_desc'] = '$B?eJ?@~(B';
+tinyMCELang['lang_theme_removeformat_desc'] = '$B@07A>pJs:o=|(B';
+tinyMCELang['lang_theme_visualaid_desc'] = '$BJd=u>pJs$N;k3P2=(B($B%H%0%k(B)';
+tinyMCELang['lang_theme_sub_desc'] = '$BE:;z2<(B';
+tinyMCELang['lang_theme_sup_desc'] = '$BE:;z>e(B';
+tinyMCELang['lang_theme_charmap_desc'] = '$BFCGr(B';
+tinyMCELang['lang_insert_image_hspace'] = '$B2#M>Gr(B';
+tinyMCELang['lang_insert_image_align'] = '$B0LCV9g$o$;(B';
+tinyMCELang['lang_insert_image_align_default'] = '$B0EL[(B';
+tinyMCELang['lang_insert_image_align_baseline'] = '$B4p=`@~(B';
+tinyMCELang['lang_insert_image_align_top'] = '$B>e(B';
+tinyMCELang['lang_insert_image_align_middle'] = '$BCf(B';
+tinyMCELang['lang_insert_image_align_bottom'] = '$B2<(B';
+tinyMCELang['lang_insert_image_align_texttop'] = '$BJ8;z$N>e(B';
+tinyMCELang['lang_insert_image_align_absmiddle'] = '$B@dBP$KCf(B';
+tinyMCELang['lang_insert_image_align_absbottom'] = '$B@dBP$K2<(B';
+tinyMCELang['lang_insert_image_align_left'] = '$B:8(B';
+tinyMCELang['lang_insert_image_align_right'] = '$B1&(B';
+tinyMCELang['lang_theme_font_size'] = 'Font size';
+tinyMCELang['lang_theme_fontdefault'] = '$BI8=`(B';
+tinyMCELang['lang_theme_colorpicker_title'] = '$B?\'$N;XDj(B';
+tinyMCELang['lang_theme_colorpicker_apply'] = '$BE,MQ(B';
+tinyMCELang['lang_theme_forecolor_desc'] = '$BA07J?\'(B';
+tinyMCELang['lang_theme_backcolor_desc'] = 'Select background color';
+tinyMCELang['lang_theme_clipboard_msg'] = 'Copy/Cut/Paste is not available in Mozilla and Firefox.\nDo you want more information about this issue?';
+tinyMCELang['lang_theme_path'] = 'Path';
+tinyMCELang['lang_cut_desc'] = 'Cut';
+tinyMCELang['lang_copy_desc'] = 'Copy';
+tinyMCELang['lang_paste_desc'] = 'Paste';
+tinyMCELang['lang_link_list'] = 'Link list';
+tinyMCELang['lang_image_list'] = 'Image list';
+tinyMCELang['lang_browse'] = 'Browse';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/sv.js b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/sv.js
new file mode 100644
index 000000000..ccc11a459
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/sv.js
@@ -0,0 +1,59 @@
+// SE lang variables
+
+tinyMCELang['lang_theme_style_select'] = 'Stilar';
+tinyMCELang['lang_theme_code_desc'] = 'Redigera HTML Kåden';
+tinyMCELang['lang_theme_code_title'] = 'HTML Källkåds Redigerare';
+tinyMCELang['lang_theme_code_wordwrap'] = 'Word wrap';
+tinyMCELang['lang_theme_sub_desc'] = 'Subscript';
+tinyMCELang['lang_theme_sup_desc'] = 'Superscript';
+tinyMCELang['lang_theme_hr_desc'] = 'Sätt in horisontell linie';
+tinyMCELang['lang_theme_removeformat_desc'] = 'Tabort formattering';
+tinyMCELang['lang_theme_custom1_desc'] = 'Din specialfunktions beskriving här';
+tinyMCELang['lang_insert_image_border'] = 'Ram';
+tinyMCELang['lang_insert_image_dimensions'] = 'Dimentioner';
+tinyMCELang['lang_insert_image_vspace'] = 'Vertikalt tomrum';
+tinyMCELang['lang_insert_image_hspace'] = 'Horisontellt tomrum';
+tinyMCELang['lang_insert_image_align'] = 'Justering';
+tinyMCELang['lang_insert_image_align_default'] = 'Ingen';
+tinyMCELang['lang_insert_image_align_baseline'] = 'Bottenlinien';
+tinyMCELang['lang_insert_image_align_top'] = 'Längstupp';
+tinyMCELang['lang_insert_image_align_middle'] = 'Mitten';
+tinyMCELang['lang_insert_image_align_bottom'] = 'Längstner';
+tinyMCELang['lang_insert_image_align_texttop'] = 'Textens top';
+tinyMCELang['lang_insert_image_align_absmiddle'] = 'Absoluta mitten';
+tinyMCELang['lang_insert_image_align_absbottom'] = 'Absolut längstner';
+tinyMCELang['lang_insert_image_align_left'] = 'Vänster';
+tinyMCELang['lang_insert_image_align_right'] = 'Höger';
+tinyMCELang['lang_insert_image_delta_width'] = 30;
+tinyMCELang['lang_insert_image_delta_height'] = 10;
+tinyMCELang['lang_theme_font_size'] = 'Typsnittsstorlek';
+tinyMCELang['lang_theme_fontdefault'] = 'Normal';
+tinyMCELang['lang_theme_paragraph'] = 'Paragraf';
+tinyMCELang['lang_theme_div'] = 'Div';
+tinyMCELang['lang_theme_address'] = 'Adress';
+tinyMCELang['lang_theme_pre'] = 'Förformatterad';
+tinyMCELang['lang_theme_h1'] = 'Rubrik 1';
+tinyMCELang['lang_theme_h2'] = 'Rubrik 2';
+tinyMCELang['lang_theme_h3'] = 'Rubrik 3';
+tinyMCELang['lang_theme_h4'] = 'Rubrik 4';
+tinyMCELang['lang_theme_h5'] = 'Rubrik 5';
+tinyMCELang['lang_theme_h6'] = 'Rubrik 6';
+tinyMCELang['lang_theme_colorpicker_title'] = 'Välj en färg';
+tinyMCELang['lang_theme_colorpicker_apply'] = 'Applicera';
+tinyMCELang['lang_theme_forecolor_desc'] = 'Välj förgrundsfärg';
+tinyMCELang['lang_theme_backcolor_desc'] = 'Välj bakgrundsfärg';
+tinyMCELang['lang_theme_charmap_title'] = 'Välj specialtecken';
+tinyMCELang['lang_theme_charmap_desc'] = 'Sätt in specialtecken';
+tinyMCELang['lang_theme_visualaid_desc'] = 'Slå av/på osynliga element';
+tinyMCELang['lang_insert_anchor_title'] = 'Skapa/redigera ankare';
+tinyMCELang['lang_insert_anchor_name'] = 'Ankarnamn';
+tinyMCELang['lang_theme_anchor_desc'] = 'Skapa/redigera ankare';
+tinyMCELang['lang_theme_insert_link_titlefield'] = 'Titel';
+tinyMCELang['lang_theme_clipboard_msg'] = 'Klipput/Kopiera/Klistra fungerar inte Mozilla och Firefox. Vill du veta mer om detta?';
+tinyMCELang['lang_theme_path'] = 'Sökväg';
+tinyMCELang['lang_cut_desc'] = 'Klipput';
+tinyMCELang['lang_copy_desc'] = 'Kopiera';
+tinyMCELang['lang_paste_desc'] = 'Klistra in';
+tinyMCELang['lang_link_list'] = 'Länkar';
+tinyMCELang['lang_image_list'] = 'Bilder';
+tinyMCELang['lang_browse'] = 'Bläddra';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/zh_cn.js b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/zh_cn.js
new file mode 100644
index 000000000..ba9b5b525
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/themes/advanced/langs/zh_cn.js
@@ -0,0 +1,57 @@
+// Simplified Chinese lang variables contributed by cube316 (cube316@etang.com)
+
+tinyMCELang['lang_theme_style_select'] = '¸ñʽ';
+tinyMCELang['lang_theme_code_desc'] = '±à¼HTMLÔ´´úÂë';
+tinyMCELang['lang_theme_code_title'] = 'HTMLÔ´´úÂë±à¼Æ÷';
+tinyMCELang['lang_theme_code_wordwrap'] = '×Ô¶¯»»ÐÐ';
+tinyMCELang['lang_theme_sub_desc'] = '챐';
+tinyMCELang['lang_theme_sup_desc'] = 'Éϱê';
+tinyMCELang['lang_theme_hr_desc'] = '²åÈëˮƽÏß';
+tinyMCELang['lang_theme_removeformat_desc'] = 'ÒÆ³ý¸ñʽ';
+tinyMCELang['lang_theme_custom1_desc'] = 'ÕâÀïÌîдÓû§×Ô¶¨ÒåµÄÃèÊö';
+tinyMCELang['lang_insert_image_border'] = '±ß¿ò';
+tinyMCELang['lang_insert_image_dimensions'] = 'άÊý';
+tinyMCELang['lang_insert_image_vspace'] = 'ˮƽ¼ä¾à';
+tinyMCELang['lang_insert_image_hspace'] = '´¹Ö±¼ä¾à';
+tinyMCELang['lang_insert_image_align'] = '¶ÔÆë·½Ê½';
+tinyMCELang['lang_insert_image_align_default'] = 'ĬÈÏ';
+tinyMCELang['lang_insert_image_align_baseline'] = '»ùÏß';
+tinyMCELang['lang_insert_image_align_top'] = '¶¥¶Ë';
+tinyMCELang['lang_insert_image_align_middle'] = '¾ÓÖÐ¶ÔÆë';
+tinyMCELang['lang_insert_image_align_bottom'] = 'µ×²¿';
+tinyMCELang['lang_insert_image_align_texttop'] = 'ÎÄ×ÖÉÏ·½';
+tinyMCELang['lang_insert_image_align_absmiddle'] = '¾ø¶Ô¾ÓÖÐ';
+tinyMCELang['lang_insert_image_align_absbottom'] = '¾ø¶Ôµ×²¿';
+tinyMCELang['lang_insert_image_align_left'] = '×ó¶ÔÆë';
+tinyMCELang['lang_insert_image_align_right'] = 'ÓÒ¶ÔÆë';
+tinyMCELang['lang_theme_font_size'] = '×ÖÌå´óС';
+tinyMCELang['lang_theme_fontdefault'] = 'ĬÈÏ';
+tinyMCELang['lang_theme_paragraph'] = '¶ÎÂä';
+tinyMCELang['lang_theme_div'] = 'Div';
+tinyMCELang['lang_theme_address'] = 'µØÖ·';
+tinyMCELang['lang_theme_pre'] = 'Ô¤¸ñʽ»¯µÄ';
+tinyMCELang['lang_theme_h1'] = '±êÌâ 1';
+tinyMCELang['lang_theme_h2'] = '±êÌâ 2';
+tinyMCELang['lang_theme_h3'] = '±êÌâ 3';
+tinyMCELang['lang_theme_h4'] = '±êÌâ 4';
+tinyMCELang['lang_theme_h5'] = '±êÌâ 5';
+tinyMCELang['lang_theme_h6'] = '±êÌâ 6';
+tinyMCELang['lang_theme_colorpicker_title'] = 'Ñ¡ÔñÑÕÉ«';
+tinyMCELang['lang_theme_colorpicker_apply'] = 'Ó¦ÓÃ';
+tinyMCELang['lang_theme_forecolor_desc'] = 'Ñ¡ÔñÎÄ×ÖÑÕÉ«';
+tinyMCELang['lang_theme_backcolor_desc'] = 'Ñ¡Ôñ±³¾°ÑÕÉ«';
+tinyMCELang['lang_theme_charmap_title'] = 'Ñ¡ÔñÌØÊâ·ûºÅ';
+tinyMCELang['lang_theme_charmap_desc'] = '²åÈëÌØÊâ·ûºÅ';
+tinyMCELang['lang_theme_visualaid_desc'] = '¿ª¹Ø²»¿É¼ûÔªËØ';
+tinyMCELang['lang_insert_anchor_title'] = '²åÈë/±à¼ êµã';
+tinyMCELang['lang_insert_anchor_name'] = 'êµãÃû³Æ';
+tinyMCELang['lang_theme_anchor_desc'] = '²åÈë/±à¼ êµã';
+tinyMCELang['lang_theme_insert_link_titlefield'] = '±êÌâ';
+tinyMCELang['lang_theme_clipboard_msg'] = '¼ôÇÐ/¸´ÖÆ/Õ³Ìù¹¦ÄÜÔÚMozillaºÍFirefoxÉÏÉв»¿ÉÓá£\nÄãÏëÁË½â¹ØÓÚÕâ¸öÎÊÌâµÄ¸ü¶àÐÅÏ¢Âð£¿';
+tinyMCELang['lang_theme_path'] = '·¾¶';
+tinyMCELang['lang_cut_desc'] = '¼ôÇÐ';
+tinyMCELang['lang_copy_desc'] = '¸´ÖÆ';
+tinyMCELang['lang_paste_desc'] = 'Õ³Ìù';
+tinyMCELang['lang_link_list'] = 'Á´½ÓÁбí';
+tinyMCELang['lang_image_list'] = 'ͼÏñÁбí';
+tinyMCELang['lang_browse'] = 'ä¯ÀÀ';
diff --git a/www/extras/tinymce/jscripts/tiny_mce/themes/default/editor_template_src.js b/www/extras/tinymce/jscripts/tiny_mce/themes/default/editor_template_src.js
new file mode 100644
index 000000000..cced9b875
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/themes/default/editor_template_src.js
@@ -0,0 +1,151 @@
+function TinyMCE_default_getEditorTemplate() {
+ var template = new Array();
+
+ template['html'] = '\
+\
+| \
+IFRAME\
+ |
\
+\
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ |
\
+
';
+
+ template['delta_width'] = 0;
+ template['delta_height'] = -40;
+
+ return template;
+}
+
+/**
+ * Insert link template function.
+ */
+function TinyMCE_default_getInsertLinkTemplate() {
+ var template = new Array();
+
+ template['file'] = 'link.htm';
+ template['width'] = 320;
+ template['height'] = 200;
+
+ // Language specific width and height addons
+ template['width'] += tinyMCE.getLang('lang_insert_link_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_insert_link_delta_height', 0);
+
+ return template;
+}
+
+/**
+ * Insert image template function.
+ */
+function TinyMCE_default_getInsertImageTemplate() {
+ var template = new Array();
+
+ template['file'] = 'image.htm';
+ template['width'] = 360;
+ template['height'] = 200;
+
+ // Language specific width and height addons
+ template['width'] += tinyMCE.getLang('lang_insert_image_delta_width', 0);
+ template['height'] += tinyMCE.getLang('lang_insert_image_delta_height', 0);
+
+ return template;
+}
+
+function TinyMCE_default_handleNodeChange(editor_id, node) {
+ // Reset old states
+ tinyMCE.switchClassSticky(editor_id + '_left', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_right', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_center', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_full', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_bold', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_italic', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_underline', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_strikethrough', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_bullist', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_numlist', 'mceButtonNormal');
+
+ // Handle align attributes
+ alignNode = node;
+ breakOut = false;
+ do {
+ if (!alignNode.getAttribute || !alignNode.getAttribute('align'))
+ continue;
+
+ switch (alignNode.getAttribute('align').toLowerCase()) {
+ case "left":
+ tinyMCE.switchClassSticky(editor_id + '_left', 'mceButtonSelected');
+ breakOut = true;
+ break;
+
+ case "right":
+ tinyMCE.switchClassSticky(editor_id + '_right', 'mceButtonSelected');
+ breakOut = true;
+ break;
+
+ case "middle":
+ case "center":
+ tinyMCE.switchClassSticky(editor_id + '_center', 'mceButtonSelected');
+ breakOut = true;
+ break;
+
+ case "justify":
+ tinyMCE.switchClassSticky(editor_id + '_full', 'mceButtonSelected');
+ breakOut = true;
+ break;
+ }
+ } while (!breakOut && (alignNode = alignNode.parentNode));
+
+ // Handle elements
+ do {
+ switch (node.nodeName.toLowerCase()) {
+ case "b":
+ case "strong":
+ tinyMCE.switchClassSticky(editor_id + '_bold', 'mceButtonSelected');
+ break;
+
+ case "i":
+ case "em":
+ tinyMCE.switchClassSticky(editor_id + '_italic', 'mceButtonSelected');
+ break;
+
+ case "u":
+ tinyMCE.switchClassSticky(editor_id + '_underline', 'mceButtonSelected');
+ break;
+
+ case "strike":
+ tinyMCE.switchClassSticky(editor_id + '_strikethrough', 'mceButtonSelected');
+ break;
+
+ case "ul":
+ tinyMCE.switchClassSticky(editor_id + '_bullist', 'mceButtonSelected');
+ break;
+
+ case "ol":
+ tinyMCE.switchClassSticky(editor_id + '_numlist', 'mceButtonSelected');
+ break;
+ }
+ } while ((node = node.parentNode));
+}
diff --git a/www/extras/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js b/www/extras/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js
new file mode 100644
index 000000000..1e23fe8d5
--- /dev/null
+++ b/www/extras/tinymce/jscripts/tiny_mce/themes/simple/editor_template_src.js
@@ -0,0 +1,70 @@
+function TinyMCE_simple_getEditorTemplate() {
+ var template = new Array();
+
+ template['html'] = '\
+\
+| \
+IFRAME\
+ |
\
+\
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ \
+ |
\
+
';
+
+ template['delta_width'] = 0;
+ template['delta_height'] = -20;
+
+ return template;
+}
+
+function TinyMCE_simple_handleNodeChange(editor_id, node) {
+ // Reset old states
+ tinyMCE.switchClassSticky(editor_id + '_bold', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_italic', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_underline', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_strikethrough', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_bullist', 'mceButtonNormal');
+ tinyMCE.switchClassSticky(editor_id + '_numlist', 'mceButtonNormal');
+
+ // Handle elements
+ do {
+ switch (node.nodeName.toLowerCase()) {
+ case "b":
+ case "strong":
+ tinyMCE.switchClassSticky(editor_id + '_bold', 'mceButtonSelected');
+ break;
+
+ case "i":
+ case "em":
+ tinyMCE.switchClassSticky(editor_id + '_italic', 'mceButtonSelected');
+ break;
+
+ case "u":
+ tinyMCE.switchClassSticky(editor_id + '_underline', 'mceButtonSelected');
+ break;
+
+ case "strike":
+ tinyMCE.switchClassSticky(editor_id + '_strikethrough', 'mceButtonSelected');
+ break;
+
+ case "ul":
+ tinyMCE.switchClassSticky(editor_id + '_bullist', 'mceButtonSelected');
+ break;
+
+ case "ol":
+ tinyMCE.switchClassSticky(editor_id + '_numlist', 'mceButtonSelected');
+ break;
+ }
+ } while ((node = node.parentNode));
+}