");}else selectByValue(selectElm,"");}var selectElm=document.getElementById(editor_id+"_fontNameSelect");if(selectElm){var elm=tinyMCE.getParentElement(node,"font","face");if(elm)selectByValue(selectElm,elm.getAttribute("face"));else selectByValue(selectElm,"");}var selectElm=document.getElementById(editor_id+"_fontSizeSelect");if(selectElm){var elm=tinyMCE.getParentElement(node,"font","size");if(elm&&tinyMCE.getAttrib(elm,"size")!="")selectByValue(selectElm,elm.getAttribute("size"));else selectByValue(selectElm,"0");}alignNode=node;breakOut=false;do{if(!alignNode.getAttribute||!alignNode.getAttribute('align'))continue;switch(alignNode.getAttribute('align').toLowerCase()){case "left":tinyMCE.switchClassSticky(editor_id+'_justifyleft','mceButtonSelected');breakOut=true;break;case "right":tinyMCE.switchClassSticky(editor_id+'_justifyright','mceButtonSelected');breakOut=true;break;case "middle":case "center":tinyMCE.switchClassSticky(editor_id+'_justifycenter','mceButtonSelected');breakOut=true;break;case "justify":tinyMCE.switchClassSticky(editor_id+'_justifyfull','mceButtonSelected');breakOut=true;break;}}while(!breakOut&&(alignNode=alignNode.parentNode));if(tinyMCE.isGecko&&node.nodeType==3){var inst=tinyMCE.getInstanceById(editor_id);var doc=inst.getDoc();if(doc.queryCommandState("Bold"))tinyMCE.switchClassSticky(editor_id+'_bold','mceButtonSelected');if(doc.queryCommandState("Italic"))tinyMCE.switchClassSticky(editor_id+'_italic','mceButtonSelected');if(doc.queryCommandState("Underline")&&(node.parentNode==null||node.parentNode.nodeName!="A"))tinyMCE.switchClassSticky(editor_id+'_underline','mceButtonSelected');if(doc.queryCommandState("Strikethrough"))tinyMCE.switchClassSticky(editor_id+'_strikethrough','mceButtonSelected');}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;case "sub":tinyMCE.switchClassSticky(editor_id+'_sub','mceButtonSelected');break;case "sup":tinyMCE.switchClassSticky(editor_id+'_sup','mceButtonSelected');break;case "hr":tinyMCE.switchClassSticky(editor_id+'_hr','mceButtonSelected');break;case "img":if(tinyMCE.getAttrib(node,'name').indexOf('mce_')!=0)tinyMCE.switchClassSticky(editor_id+'_image','mceButtonSelected');break;}}while((node=node.parentNode));}function TinyMCE_advanced_setupCSSClasses(editor_id){if(!TinyMCE_advanced_autoImportCSSClasses)return;var selectElm=document.getElementById(editor_id+'_styleSelect');if(selectElm&&selectElm.getAttribute('cssImported')!='true'){var csses=tinyMCE.getCSSClasses(editor_id);if(csses&&selectElm){for(var i=0;i0)selectElm.setAttribute('cssImported','true');}}
\ No newline at end of file
diff --git a/source/web/scripts/tiny_mce/themes/advanced/editor_template_src.js b/source/web/scripts/tiny_mce/themes/advanced/editor_template_src.js
deleted file mode 100644
index 646c5adab0..0000000000
--- a/source/web/scripts/tiny_mce/themes/advanced/editor_template_src.js
+++ /dev/null
@@ -1,763 +0,0 @@
-/* Import theme specific language pack */
-tinyMCE.importThemeLanguagePack('advanced');
-
-// Variable declarations
-var TinyMCE_advanced_autoImportCSSClasses = true;
-var TinyMCE_advanced_foreColor = "#000000";
-var TinyMCE_advanced_anchorName = "";
-var TinyMCE_advanced_buttons = [
- // Control id, button img, button title, command, user_interface, value
- ['bold', '{$lang_bold_img}', '{$lang_bold_desc}', 'Bold'],
- ['italic', '{$lang_italic_img}', '{$lang_italic_desc}', 'Italic'],
- ['underline', '{$lang_underline_img}', '{$lang_underline_desc}', 'Underline'],
- ['strikethrough', 'strikethrough.gif', '{$lang_striketrough_desc}', 'Strikethrough'],
- ['justifyleft', 'left.gif', '{$lang_justifyleft_desc}', 'JustifyLeft'],
- ['justifycenter', 'center.gif', '{$lang_justifycenter_desc}', 'JustifyCenter'],
- ['justifyright', 'right.gif', '{$lang_justifyright_desc}', 'JustifyRight'],
- ['justifyfull', 'full.gif', '{$lang_justifyfull_desc}', 'JustifyFull'],
- ['bullist', 'bullist.gif', '{$lang_bullist_desc}', 'InsertUnorderedList'],
- ['numlist', 'numlist.gif', '{$lang_numlist_desc}', 'InsertOrderedList'],
- ['outdent', 'outdent.gif', '{$lang_outdent_desc}', 'Outdent'],
- ['indent', 'indent.gif', '{$lang_indent_desc}', 'Indent'],
- ['cut', 'cut.gif', '{$lang_cut_desc}', 'Cut'],
- ['copy', 'copy.gif', '{$lang_copy_desc}', 'Copy'],
- ['paste', 'paste.gif', '{$lang_paste_desc}', 'Paste'],
- ['undo', 'undo.gif', '{$lang_undo_desc}', 'Undo'],
- ['redo', 'redo.gif', '{$lang_redo_desc}', 'Redo'],
- ['link', 'link.gif', '{$lang_link_desc}', 'mceLink', true],
- ['unlink', 'unlink.gif', '{$lang_unlink_desc}', 'unlink'],
- ['image', 'image.gif', '{$lang_image_desc}', 'mceImage', true],
- ['cleanup', 'cleanup.gif', '{$lang_cleanup_desc}', 'mceCleanup'],
- ['help', 'help.gif', '{$lang_help_desc}', 'mceHelp'],
- ['code', 'code.gif', '{$lang_theme_code_desc}', 'mceCodeEditor'],
- ['hr', 'hr.gif', '{$lang_theme_hr_desc}', 'inserthorizontalrule'],
- ['removeformat', 'removeformat.gif', '{$lang_theme_removeformat_desc}', 'removeformat'],
- ['sub', 'sub.gif', '{$lang_theme_sub_desc}', 'subscript'],
- ['sup', 'sup.gif', '{$lang_theme_sup_desc}', 'superscript'],
- ['forecolor', 'forecolor.gif', '{$lang_theme_forecolor_desc}', 'mceForeColor', true],
- ['backcolor', 'backcolor.gif', '{$lang_theme_backcolor_desc}', 'mceBackColor', true],
- ['charmap', 'charmap.gif', '{$lang_theme_charmap_desc}', 'mceCharMap'],
- ['visualaid', 'visualaid.gif', '{$lang_theme_visualaid_desc}', 'mceToggleVisualAid'],
- ['anchor', 'anchor.gif', '{$lang_theme_anchor_desc}', 'mceInsertAnchor'],
- ['newdocument', 'newdocument.gif', '{$lang_newdocument_desc}', 'mceSetContent', false, '']
- ];
-
-
-/**
- * Returns HTML code for the specificed control.
- */
-function TinyMCE_advanced_getControlHTML(button_name) {
- var buttonTileMap = new Array('anchor.gif','backcolor.gif','bullist.gif','center.gif','charmap.gif','cleanup.gif','code.gif','copy.gif','custom_1.gif','cut.gif','forecolor.gif','full.gif','help.gif','hr.gif','image.gif','indent.gif','left.gif','link.gif','numlist.gif','outdent.gif','paste.gif','redo.gif','removeformat.gif','right.gif','strikethrough.gif','sub.gif','sup.gif','undo.gif','unlink.gif','visualaid.gif');
-
- // Lookup button in button list
- for (var i=0; i';
- }
- }
-
- // Old style
- return ' ';
- }
- }
-
- // Custom controlls other than buttons
- switch (button_name) {
- case "formatselect":
- var html = '';
- var formats = tinyMCE.getParam("theme_advanced_blockformats", "p,address,pre,h1,h2,h3,h4,h5,h6", true).split(',');
- var lookup = [
- ['p', '{$lang_theme_paragraph}'],
- ['address', '{$lang_theme_address}'],
- ['pre', '{$lang_theme_pre}'],
- ['h1', '{$lang_theme_h1}'],
- ['h2', '{$lang_theme_h2}'],
- ['h3', '{$lang_theme_h3}'],
- ['h4', '{$lang_theme_h4}'],
- ['h5', '{$lang_theme_h5}'],
- ['h6', '{$lang_theme_h6}']
- ];
-
- // Build format select
- for (var i=0; i' + lookup[x][1] + '';
- }
- }
-
- html += ' ';
-
- return html;
-
-
- case "styleselect":
- return '{$style_select_options} ';
-
- case "fontselect":
- return '\
- {$lang_theme_fontdefault} \
- Arial \
- Times New Roman \
- Verdana \
- Courier \
- Georgia \
- Tahoma \
- ';
-
- case "fontsizeselect":
- return '\
- -- {$lang_theme_font_size} -- \
- 1 (8 pt) \
- 2 (10 pt) \
- 3 (12 pt) \
- 4 (14 pt) \
- 5 (18 pt) \
- 6 (24 pt) \
- 7 (36 pt) \
- ';
-
- case "|":
- case "separator":
- return ' ';
-
- case "spacer":
- return ' ';
-
- case "rowseparator":
- return ' ';
- }
-
- return "";
-}
-
-/**
- * Theme specific exec command handeling.
- */
-function TinyMCE_advanced_execCommand(editor_id, element, command, user_interface, value) {
- switch (command) {
- case "mceForeColor":
- var template = new Array();
- var inputColor = TinyMCE_advanced_foreColor;
-
- if (!inputColor)
- inputColor = "#000000";
-
- template['file'] = 'color_picker.htm';
- template['width'] = 210;
- template['height'] = 200;
-
- tinyMCE.openWindow(template, {editor_id : editor_id, command : "forecolor", input_color : inputColor});
- return true;
-
- case "mceBackColor":
- var template = new Array();
- var inputColor = TinyMCE_advanced_foreColor;
-
- if (!inputColor)
- inputColor = "#000000";
-
- template['file'] = 'color_picker.htm';
- template['width'] = 210;
- template['height'] = 200;
-
- tinyMCE.openWindow(template, {editor_id : editor_id, command : "HiliteColor", input_color : inputColor});
- return true;
-
- case "mceCodeEditor":
- var template = new Array();
-
- template['file'] = 'source_editor.htm';
- template['width'] = tinyMCE.getParam("theme_advanced_source_editor_width", 500);
- template['height'] = tinyMCE.getParam("theme_advanced_source_editor_height", 400);
-
- tinyMCE.openWindow(template, {editor_id : editor_id, resizable : "yes", scrollbars : "no"});
- return true;
-
- case "mceCharMap":
- var template = new Array();
-
- template['file'] = 'charmap.htm';
- template['width'] = 550;
- template['height'] = 280;
-
- tinyMCE.openWindow(template, {editor_id : editor_id});
- return true;
-
- case "mceInsertAnchor":
- var template = new Array();
-
- template['file'] = 'anchor.htm';
- template['width'] = 320;
- template['height'] = 130;
-
- tinyMCE.openWindow(template, {editor_id : editor_id, name : TinyMCE_advanced_anchorName, action : (TinyMCE_advanced_anchorName == "" ? "insert" : "update")});
- return true;
- }
-
- // Default behavior
- return false;
-}
-
-/**
- * Editor instance template function.
- */
-function TinyMCE_advanced_getEditorTemplate(settings) {
- function removeFromArray(in_array, remove_array) {
- var outArray = new Array();
- for (var i=0; i
- //###########################################################################################################
-
- var pathHTML = '{$lang_theme_path}: ';
- var layoutManager = tinyMCE.getParam("theme_advanced_layout_manager", "SimpleLayout");
-
- switch(layoutManager) {
- case "SimpleLayout" : //the default TinyMCE Layout (for backwards compatibility)...
- var toolbarHTML = "";
- var toolbarLocation = tinyMCE.getParam("theme_advanced_toolbar_location", "bottom");
- var toolbarAlign = tinyMCE.getParam("theme_advanced_toolbar_align", "center");
- var pathLocation = tinyMCE.getParam("theme_advanced_path_location", "none");
-
- // Render row 1
- var buttonNamesRow1 = tinyMCE.getParam("theme_advanced_buttons1", "bold,italic,underline,strikethrough,separator,justifyleft,justifycenter,justifyright,justifyfull,separator,styleselect,formatselect", true, ',');
- buttonNamesRow1 = removeFromArray(buttonNamesRow1, tinyMCE.getParam("theme_advanced_disable", "", true, ','));
- buttonNamesRow1 = addToArray(buttonNamesRow1, tinyMCE.getParam("theme_advanced_buttons1_add", "", true, ','));
- buttonNamesRow1 = addToArray(tinyMCE.getParam("theme_advanced_buttons1_add_before", "", true, ','), buttonNamesRow1);
- for (var i=0; i 0) {
- toolbarHTML += " ";
- deltaHeight -= 23;
- }
-
- // Render row 2
- var buttonNamesRow2 = tinyMCE.getParam("theme_advanced_buttons2", "bullist,numlist,separator,outdent,indent,separator,undo,redo,separator,link,unlink,anchor,image,cleanup,help,code", true, ',');
- buttonNamesRow2 = removeFromArray(buttonNamesRow2, tinyMCE.getParam("theme_advanced_disable", "", true, ','));
- buttonNamesRow2 = addToArray(buttonNamesRow2, tinyMCE.getParam("theme_advanced_buttons2_add", "", true, ','));
- buttonNamesRow2 = addToArray(tinyMCE.getParam("theme_advanced_buttons2_add_before", "", true, ','), buttonNamesRow2);
- for (var i=0; i 0) {
- toolbarHTML += " ";
- deltaHeight -= 23;
- }
-
- // Render row 3
- var buttonNamesRow3 = tinyMCE.getParam("theme_advanced_buttons3", "hr,removeformat,visualaid,separator,sub,sup,separator,charmap", true, ',');
- buttonNamesRow3 = removeFromArray(buttonNamesRow3, tinyMCE.getParam("theme_advanced_disable", "", true, ','));
- buttonNamesRow3 = addToArray(buttonNamesRow3, tinyMCE.getParam("theme_advanced_buttons3_add", "", true, ','));
- buttonNamesRow3 = addToArray(tinyMCE.getParam("theme_advanced_buttons3_add_before", "", true, ','), buttonNamesRow3);
- for (var i=0; i 0)
- deltaHeight -= 20;
-
- // Setup template html
- template['html'] = '';
-
- if (toolbarLocation == "top")
- template['html'] += '' + toolbarHTML + ' ';
-
- if (pathLocation == "top") {
- template['html'] += '' + pathHTML + ' ';
- deltaHeight -= 23;
- }
-
- /* template['html'] += '\
- \
- ';*/
- template['html'] += '\
- \
- ';
-
- if (toolbarLocation == "bottom")
- template['html'] += '' + toolbarHTML + ' ';
-
- if (pathLocation == "bottom") {
- template['html'] += '' + pathHTML + ' ';
- deltaHeight -= 23;
- }
-
- template['html'] += '
';
- break;
-
- case "RowLayout" : //Container Layout - containers defined in "theme_advanced_containers" are rendered from top to bottom.
- template['html'] = '';
-
- var containers = tinyMCE.getParam("theme_advanced_containers", "", true, ",");
- var defaultContainerCSS = tinyMCE.getParam("theme_advanced_containers_default_class", "container");
- var defaultContainerAlign = tinyMCE.getParam("theme_advanced_containers_default_align", "center");
-
- //Render Containers:
- for(var i = 0; i < containers.length; i++)
- {
- if(containers[i] == "mceEditor") //Exceptions for mceEditor and ...
- {
- template['html'] += '\
- \
- ';
- }
- else if(containers[i] == "mceElementpath") // ... mceElementpath:
- {
- var pathClass = "mcePath";
-
- if (i == containers.length-1)
- pathClass = "mcePathBottom";
- else if (i == 0)
- pathClass = "mcePathTop";
- else
- deltaHeight-=2;
-
- template['html'] += '' + pathHTML + ' ';
- deltaHeight -= 22;
- }
- else //Render normal Container:
- {
- var curContainer = tinyMCE.getParam("theme_advanced_container_"+containers[i], "", true, ',');
- var curContainerHTML = "";
- var curAlign = tinyMCE.getParam("theme_advanced_container_"+containers[i]+"_align", defaultContainerAlign);
- var curCSS = tinyMCE.getParam("theme_advanced_container_"+containers[i]+"_class", defaultContainerCSS);
-
- for (var j=0; j 0) {
- curContainerHTML += " ";
- deltaHeight -= 23;
- }
-
- template['html'] += '' + curContainerHTML + ' ';
- }
- }
-
- template['html'] += '
';
- break;
- case "BorderLayout" : //will be like java.awt.BorderLayout of SUN Java...
- // Not implemented yet...
- break;
- case "CustomLayout" : //User defined layout callback...
- var customLayout = tinyMCE.getParam("theme_advanced_custom_layout","");
- if (customLayout != "" && eval("typeof(" + customLayout + ")") != "undefined")
- template = eval(customLayout + "(template);");
- break;
- default:
- alert('UNDEFINED LAYOUT MANAGER! PLEASE CHECK YOUR TINYMCE CONFIG!');
- break;
- }
-
- //###########################################################################################################
- //
- //###########################################################################################################
-
- // Setup style select options
- var styleSelectHTML = '-- {$lang_theme_style_select} -- ';
- if (settings['theme_advanced_styles']) {
- var stylesAr = settings['theme_advanced_styles'].split(';');
- for (var i=0; i' + key + '';
- }
-
- TinyMCE_advanced_autoImportCSSClasses = false;
- }
-
- template['html'] = tinyMCE.replaceVar(template['html'], 'style_select_options', styleSelectHTML);
- template['delta_width'] = 0;
- template['delta_height'] = deltaHeight;
-
- return template;
-}
-
-/**
- * Insert link template function.
- */
-function TinyMCE_advanced_getInsertLinkTemplate() {
- var template = new Array();
-
- template['file'] = 'link.htm';
- template['width'] = 300;
- template['height'] = 150;
-
- // 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_advanced_getInsertImageTemplate() {
- var template = new Array();
-
- template['file'] = 'image.htm?src={$src}';
- template['width'] = 340;
- template['height'] = 280;
-
- // 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;
-}
-
-/**
- * Node change handler.
- */
-function TinyMCE_advanced_handleNodeChange(editor_id, node, undo_index, undo_levels, visual_aid, any_selection) {
- function selectByValue(select_elm, value) {
- if (select_elm) {
- for (var i=0; i=0; i--) {
- var nodeName = path[i].nodeName.toLowerCase();
- var nodeData = "";
- var className = tinyMCE.getVisualAidClass(tinyMCE.getAttrib(path[i], 'class'), false);
-
- if (nodeName == "b")
- nodeName = "strong";
-
- if (nodeName == "i")
- nodeName = "em";
-
- if (tinyMCE.getAttrib(path[i], 'id') != "")
- nodeData += "id: " + path[i].getAttribute('id') + " ";
-
- if (className != "")
- nodeData += "class: " + className + " ";
-
- if (tinyMCE.getAttrib(path[i], 'src') != "")
- nodeData += "src: " + path[i].getAttribute('src') + " ";
-
- if (tinyMCE.getAttrib(path[i], 'href') != "")
- nodeData += "href: " + path[i].getAttribute('href') + " ";
-
- if (nodeName == "img" && tinyMCE.getAttrib(path[i], 'name') == "mce_plugin_flash") {
- nodeName = "flash";
- nodeData = "";
- }
-
- if (tinyMCE.getAttrib(path[i], 'name').indexOf("mce_") != 0) {
- if (className != "")
- nodeName += "." + className;
- }
-
- if (tinyMCE.isMSIE || tinyMCE.isSafari)
- html += '' + nodeName + ' ';
- else
- html += '' + nodeName + ' ';
-
- if (i > 0)
- html += " » ";
- }
-
- pathElm.innerHTML = html + " ";
- }
-
- // Get element color
- var colorElm = tinyMCE.getParentElement(node, "font", "color");
- if (colorElm)
- TinyMCE_advanced_foreColor = "" + colorElm.color.toUpperCase();
-
- // Reset old states
- tinyMCE.switchClassSticky(editor_id + '_justifyleft', 'mceButtonNormal');
- tinyMCE.switchClassSticky(editor_id + '_justifyright', 'mceButtonNormal');
- tinyMCE.switchClassSticky(editor_id + '_justifycenter', 'mceButtonNormal');
- tinyMCE.switchClassSticky(editor_id + '_justifyfull', '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');
- tinyMCE.switchClassSticky(editor_id + '_sub', 'mceButtonNormal');
- tinyMCE.switchClassSticky(editor_id + '_sup', 'mceButtonNormal');
- tinyMCE.switchClassSticky(editor_id + '_anchor', 'mceButtonNormal');
- tinyMCE.switchClassSticky(editor_id + '_link', 'mceButtonDisabled', true);
- tinyMCE.switchClassSticky(editor_id + '_unlink', 'mceButtonDisabled', true);
- tinyMCE.switchClassSticky(editor_id + '_outdent', 'mceButtonDisabled', true);
- tinyMCE.switchClassSticky(editor_id + '_image', 'mceButtonNormal');
- tinyMCE.switchClassSticky(editor_id + '_hr', 'mceButtonNormal');
-
- // Get anchor name
- var anchorName = tinyMCE.getParentElement(node, "a", "name");
- TinyMCE_advanced_anchorName = "";
- if (anchorName) {
- TinyMCE_advanced_anchorName = anchorName.getAttribute("name");
- tinyMCE.switchClassSticky(editor_id + '_anchor', 'mceButtonSelected');
- }
-
- // Get link
- var anchorLink = tinyMCE.getParentElement(node, "a", "href");
- if (anchorLink || any_selection) {
- tinyMCE.switchClassSticky(editor_id + '_link', anchorLink ? 'mceButtonSelected' : 'mceButtonNormal', false);
- tinyMCE.switchClassSticky(editor_id + '_unlink', anchorLink ? 'mceButtonSelected' : 'mceButtonNormal', false);
- }
-
- // Handle visual aid
- tinyMCE.switchClassSticky(editor_id + '_visualaid', visual_aid ? 'mceButtonSelected' : 'mceButtonNormal', false);
-
- if (undo_levels != -1) {
- tinyMCE.switchClassSticky(editor_id + '_undo', 'mceButtonDisabled', true);
- tinyMCE.switchClassSticky(editor_id + '_redo', 'mceButtonDisabled', true);
- }
-
- // Within li, blockquote
- if (tinyMCE.getParentElement(node, "li,blockquote"))
- tinyMCE.switchClassSticky(editor_id + '_outdent', 'mceButtonNormal', false);
-
- // Has redo levels
- if (undo_index != -1 && (undo_index < undo_levels-1 && undo_levels > 0))
- tinyMCE.switchClassSticky(editor_id + '_redo', 'mceButtonNormal', false);
-
- // Has undo levels
- if (undo_index != -1 && (undo_index > 0 && undo_levels > 0))
- tinyMCE.switchClassSticky(editor_id + '_undo', 'mceButtonNormal', false);
-
- // Select class in select box
- var selectElm = document.getElementById(editor_id + "_styleSelect");
- if (selectElm) {
- TinyMCE_advanced_setupCSSClasses(editor_id);
-
- classNode = node;
- breakOut = false;
- var index = 0;
-
- do {
- if (classNode && classNode.className) {
- for (var i=0; i");
- } else
- selectByValue(selectElm, "");
- }
-
- // Select fontselect
- var selectElm = document.getElementById(editor_id + "_fontNameSelect");
- if (selectElm) {
- var elm = tinyMCE.getParentElement(node, "font", "face");
- if (elm)
- selectByValue(selectElm, elm.getAttribute("face"));
- else
- selectByValue(selectElm, "");
- }
-
- // Select fontsize
- var selectElm = document.getElementById(editor_id + "_fontSizeSelect");
- if (selectElm) {
- var elm = tinyMCE.getParentElement(node, "font", "size");
- if (elm && tinyMCE.getAttrib(elm, "size") != "")
- selectByValue(selectElm, elm.getAttribute("size"));
- else
- selectByValue(selectElm, "0");
- }
-
- // 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 + '_justifyleft', 'mceButtonSelected');
- breakOut = true;
- break;
-
- case "right":
- tinyMCE.switchClassSticky(editor_id + '_justifyright', 'mceButtonSelected');
- breakOut = true;
- break;
-
- case "middle":
- case "center":
- tinyMCE.switchClassSticky(editor_id + '_justifycenter', 'mceButtonSelected');
- breakOut = true;
- break;
-
- case "justify":
- tinyMCE.switchClassSticky(editor_id + '_justifyfull', 'mceButtonSelected');
- breakOut = true;
- break;
- }
- } while (!breakOut && (alignNode = alignNode.parentNode));
-
- // Do special text
- if (tinyMCE.isGecko && node.nodeType == 3) {
- var inst = tinyMCE.getInstanceById(editor_id);
- var doc = inst.getDoc();
-
- if (doc.queryCommandState("Bold"))
- tinyMCE.switchClassSticky(editor_id + '_bold', 'mceButtonSelected');
-
- if (doc.queryCommandState("Italic"))
- tinyMCE.switchClassSticky(editor_id + '_italic', 'mceButtonSelected');
-
- if (doc.queryCommandState("Underline") && (node.parentNode == null || node.parentNode.nodeName != "A"))
- tinyMCE.switchClassSticky(editor_id + '_underline', 'mceButtonSelected');
-
- if (doc.queryCommandState("Strikethrough"))
- tinyMCE.switchClassSticky(editor_id + '_strikethrough', 'mceButtonSelected');
- }
-
- // 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;
-
- case "sub":
- tinyMCE.switchClassSticky(editor_id + '_sub', 'mceButtonSelected');
- break;
-
- case "sup":
- tinyMCE.switchClassSticky(editor_id + '_sup', 'mceButtonSelected');
- break;
-
- case "hr":
- tinyMCE.switchClassSticky(editor_id + '_hr', 'mceButtonSelected');
- break;
-
- case "img":
- if (tinyMCE.getAttrib(node, 'name').indexOf('mce_') != 0)
- tinyMCE.switchClassSticky(editor_id + '_image', 'mceButtonSelected');
- break;
- }
- } while ((node = node.parentNode));
-}
-
-// This function auto imports CSS classes into the class selection droplist
-function TinyMCE_advanced_setupCSSClasses(editor_id) {
- if (!TinyMCE_advanced_autoImportCSSClasses)
- return;
-
- var selectElm = document.getElementById(editor_id + '_styleSelect');
-
- if (selectElm && selectElm.getAttribute('cssImported') != 'true') {
- var csses = tinyMCE.getCSSClasses(editor_id);
- if (csses && selectElm) {
- for (var i=0; i 0)
- selectElm.setAttribute('cssImported', 'true');
- }
-}
\ No newline at end of file
diff --git a/source/web/scripts/tiny_mce/themes/advanced/editor_ui.css b/source/web/scripts/tiny_mce/themes/advanced/editor_ui.css
deleted file mode 100644
index 693ab5de0e..0000000000
--- a/source/web/scripts/tiny_mce/themes/advanced/editor_ui.css
+++ /dev/null
@@ -1,148 +0,0 @@
-.mceButtonNormal, .mceButtonOver, .mceButtonDown, .mceSeparator, .mceButtonDisabled, .mceButtonSelected {
- margin-top: 1px;
- margin-left: 1px;
-}
-
-.mceButtonNormal {
- border-top: 1px solid;
- border-left: 1px solid;
- border-bottom: 1px solid;
- border-right: 1px solid;
- border-color: #F0F0EE;
- cursor: arrow;
-}
-
-.mceButtonOver {
-/* border-top: 1px solid buttonhighlight;
- border-left: 1px solid buttonhighlight;
- border-bottom: 1px solid buttonshadow;
- border-right: 1px solid buttonshadow;*/
- border: 1px solid #0A246A;
- cursor: arrow;
- background-color: #B6BDD2;
-}
-
-.mceButtonDown {
-/* border-bottom: 1px solid buttonhighlight;
- border-right: 1px solid buttonhighlight;
- border-top: 1px solid buttonshadow;
- border-left: 1px solid buttonshadow;*/
- cursor: arrow;
- border: 1px solid #0A246A;
- background-color: #8592B5;
-}
-
-.mceButtonSelected {
- border: 1px solid;
- border-color: #C0C0BB;
- cursor: arrow;
-}
-
-.mceButtonDisabled {
- filter:progid:DXImageTransform.Microsoft.Alpha(opacity=30);
- -moz-opacity:0.3;
- opacity: 0.3;
- border-top: 1px solid;
- border-left: 1px solid;
- border-bottom: 1px solid;
- border-right: 1px solid;
- border-color: #F0F0EE;
- cursor: arrow;
-}
-
-.mceSeparator {
- border-top: 1px solid buttonhighlight;
- border-left: 1px solid buttonhighlight;
- border-bottom: 1px solid buttonshadow;
- border-right: 1px solid buttonshadow;
- margin-right: 2px;
- margin-left: 2px;
-}
-
-.mceSeparatorLine {
- margin:2px;
- margin-left: 4px;
- background-color: #F0F0EE;
- border-top: 1px solid buttonshadow;
- border-left: 1px solid buttonshadow;
- border-bottom: 1px solid buttonhighlight;
- border-right: 1px solid buttonhighlight;
- width: 0px;
- height: 15px;
-}
-
-.mceSelectList {
- font-family: "MS Sans Serif";
- font-size: 7pt;
- font-weight: normal;
- margin-top: 3px;
- padding: 0px;
- display: inline;
- vertical-align: top;
- background-color: #F0F0EE
-}
-
-.mceLabel, .mceLabelDisabled {
- font-family: "MS Sans Serif";
- font-size: 9pt;
-}
-
-.mceLabel {
- color: #000000;
-}
-
-.mceLabelDisabled {
- cursor: text;
- color: #999999;
-}
-
-.mceEditor {
- background: #F0F0EE;
- border: 1px solid #cccccc;
-}
-
-.mceEditorArea {
- font-family: "MS Sans Serif";
- background: #FFFFFF;
-}
-
-.mceToolbarTop, .mceToolbarBottom {
- background: #F0F0EE;
-}
-
-.mceToolbarTop {
- border-bottom: 1px solid #cccccc;
-}
-
-.mceToolbarBottom {
- border-top: 1px solid #cccccc;
-}
-
-.mcePathTop, .mcePathBottom, .mcePath {
- font-family: "MS Sans Serif";
- font-size: 9pt;
- padding: 2px;
- height: 20px;
-}
-
-.mcePathTop {
- border-bottom: 1px solid #cccccc;
-}
-
-.mcePathBottom {
- border-top: 1px solid #cccccc;
-}
-
-.mcePathItem, .mcePathItem:link, .mcePathItem:visited, .mcePathItem:hover {
- text-decoration: none;
- font-family: "MS Sans Serif";
- font-size: 9pt;
-}
-
-.mcePathItem:hover {
- text-decoration: underline;
-}
-
-.mcePath {
- border-bottom: 1px solid #cccccc;
-}
\ No newline at end of file
diff --git a/source/web/scripts/tiny_mce/themes/advanced/image.htm b/source/web/scripts/tiny_mce/themes/advanced/image.htm
deleted file mode 100644
index 04a8258fd8..0000000000
--- a/source/web/scripts/tiny_mce/themes/advanced/image.htm
+++ /dev/null
@@ -1,193 +0,0 @@
-
-
-{$lang_insert_image_title}
-
-
-
-
-
-
-
-
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/anchor.gif b/source/web/scripts/tiny_mce/themes/advanced/images/anchor.gif
deleted file mode 100644
index ae7b2f3959..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/anchor.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/backcolor.gif b/source/web/scripts/tiny_mce/themes/advanced/images/backcolor.gif
deleted file mode 100644
index d44277dd6c..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/backcolor.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/bold.gif b/source/web/scripts/tiny_mce/themes/advanced/images/bold.gif
deleted file mode 100644
index 31f004b24f..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/bold.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/bold_de_se.gif b/source/web/scripts/tiny_mce/themes/advanced/images/bold_de_se.gif
deleted file mode 100644
index 2d86b00314..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/bold_de_se.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/bold_fr.gif b/source/web/scripts/tiny_mce/themes/advanced/images/bold_fr.gif
deleted file mode 100644
index 7782282838..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/bold_fr.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/bold_ru.gif b/source/web/scripts/tiny_mce/themes/advanced/images/bold_ru.gif
deleted file mode 100644
index c9e89b27e5..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/bold_ru.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/browse.gif b/source/web/scripts/tiny_mce/themes/advanced/images/browse.gif
deleted file mode 100644
index 590f2de43f..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/browse.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/bullist.gif b/source/web/scripts/tiny_mce/themes/advanced/images/bullist.gif
deleted file mode 100644
index 12d0ec2299..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/bullist.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/buttons.gif b/source/web/scripts/tiny_mce/themes/advanced/images/buttons.gif
deleted file mode 100644
index b5e454c17e..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/buttons.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/center.gif b/source/web/scripts/tiny_mce/themes/advanced/images/center.gif
deleted file mode 100644
index a9e13e004c..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/center.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/charmap.gif b/source/web/scripts/tiny_mce/themes/advanced/images/charmap.gif
deleted file mode 100644
index b826f88823..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/charmap.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/cleanup.gif b/source/web/scripts/tiny_mce/themes/advanced/images/cleanup.gif
deleted file mode 100644
index 87b8f87a2f..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/cleanup.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/code.gif b/source/web/scripts/tiny_mce/themes/advanced/images/code.gif
deleted file mode 100644
index e16da11e91..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/code.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/copy.gif b/source/web/scripts/tiny_mce/themes/advanced/images/copy.gif
deleted file mode 100644
index f0b51871e2..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/copy.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/custom_1.gif b/source/web/scripts/tiny_mce/themes/advanced/images/custom_1.gif
deleted file mode 100644
index 5e385c0549..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/custom_1.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/cut.gif b/source/web/scripts/tiny_mce/themes/advanced/images/cut.gif
deleted file mode 100644
index 6a969e55bd..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/cut.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/forecolor.gif b/source/web/scripts/tiny_mce/themes/advanced/images/forecolor.gif
deleted file mode 100644
index db21e1cbee..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/forecolor.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/full.gif b/source/web/scripts/tiny_mce/themes/advanced/images/full.gif
deleted file mode 100644
index 5a78c63067..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/full.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/help.gif b/source/web/scripts/tiny_mce/themes/advanced/images/help.gif
deleted file mode 100644
index a5d67714bc..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/help.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/hr.gif b/source/web/scripts/tiny_mce/themes/advanced/images/hr.gif
deleted file mode 100644
index 8e6b34dc68..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/hr.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/image.gif b/source/web/scripts/tiny_mce/themes/advanced/images/image.gif
deleted file mode 100644
index 36109de73c..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/image.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/indent.gif b/source/web/scripts/tiny_mce/themes/advanced/images/indent.gif
deleted file mode 100644
index 7a17288c55..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/indent.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/italic.gif b/source/web/scripts/tiny_mce/themes/advanced/images/italic.gif
deleted file mode 100644
index ec03278f34..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/italic.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/italic_de_se.gif b/source/web/scripts/tiny_mce/themes/advanced/images/italic_de_se.gif
deleted file mode 100644
index 6ce0d8d466..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/italic_de_se.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/italic_ru.gif b/source/web/scripts/tiny_mce/themes/advanced/images/italic_ru.gif
deleted file mode 100644
index 5c2f7fec27..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/italic_ru.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/left.gif b/source/web/scripts/tiny_mce/themes/advanced/images/left.gif
deleted file mode 100644
index 4225e00775..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/left.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/link.gif b/source/web/scripts/tiny_mce/themes/advanced/images/link.gif
deleted file mode 100644
index 0de427490e..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/link.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/newdocument.gif b/source/web/scripts/tiny_mce/themes/advanced/images/newdocument.gif
deleted file mode 100644
index 79a93da5cc..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/newdocument.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/numlist.gif b/source/web/scripts/tiny_mce/themes/advanced/images/numlist.gif
deleted file mode 100644
index 7ff907be75..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/numlist.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/outdent.gif b/source/web/scripts/tiny_mce/themes/advanced/images/outdent.gif
deleted file mode 100644
index 53e89a77f4..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/outdent.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/paste.gif b/source/web/scripts/tiny_mce/themes/advanced/images/paste.gif
deleted file mode 100644
index a676604cf6..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/paste.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/redo.gif b/source/web/scripts/tiny_mce/themes/advanced/images/redo.gif
deleted file mode 100644
index 26a146bdaf..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/redo.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/removeformat.gif b/source/web/scripts/tiny_mce/themes/advanced/images/removeformat.gif
deleted file mode 100644
index 38a9cdf96c..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/removeformat.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/right.gif b/source/web/scripts/tiny_mce/themes/advanced/images/right.gif
deleted file mode 100644
index 88bfaf2542..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/right.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/spacer.gif b/source/web/scripts/tiny_mce/themes/advanced/images/spacer.gif
deleted file mode 100644
index fc2560981e..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/spacer.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/strikethrough.gif b/source/web/scripts/tiny_mce/themes/advanced/images/strikethrough.gif
deleted file mode 100644
index ce7b65304e..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/strikethrough.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/sub.gif b/source/web/scripts/tiny_mce/themes/advanced/images/sub.gif
deleted file mode 100644
index 481840702b..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/sub.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/sup.gif b/source/web/scripts/tiny_mce/themes/advanced/images/sup.gif
deleted file mode 100644
index 03f8efc63d..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/sup.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/table.gif b/source/web/scripts/tiny_mce/themes/advanced/images/table.gif
deleted file mode 100644
index f8a00544a9..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/table.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/table_delete_col.gif b/source/web/scripts/tiny_mce/themes/advanced/images/table_delete_col.gif
deleted file mode 100644
index 0b2f0fb612..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/table_delete_col.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/table_delete_row.gif b/source/web/scripts/tiny_mce/themes/advanced/images/table_delete_row.gif
deleted file mode 100644
index 1997065fb2..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/table_delete_row.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/table_insert_col_after.gif b/source/web/scripts/tiny_mce/themes/advanced/images/table_insert_col_after.gif
deleted file mode 100644
index c30dafab6f..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/table_insert_col_after.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/table_insert_col_before.gif b/source/web/scripts/tiny_mce/themes/advanced/images/table_insert_col_before.gif
deleted file mode 100644
index 5d1ff37afe..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/table_insert_col_before.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/table_insert_row_after.gif b/source/web/scripts/tiny_mce/themes/advanced/images/table_insert_row_after.gif
deleted file mode 100644
index c3aa15f93a..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/table_insert_row_after.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/table_insert_row_before.gif b/source/web/scripts/tiny_mce/themes/advanced/images/table_insert_row_before.gif
deleted file mode 100644
index c3271e5493..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/table_insert_row_before.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/underline.gif b/source/web/scripts/tiny_mce/themes/advanced/images/underline.gif
deleted file mode 100644
index d6b8afdabd..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/underline.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/underline_fr.gif b/source/web/scripts/tiny_mce/themes/advanced/images/underline_fr.gif
deleted file mode 100644
index a8e3018a18..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/underline_fr.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/underline_ru.gif b/source/web/scripts/tiny_mce/themes/advanced/images/underline_ru.gif
deleted file mode 100644
index 2a517e8b6b..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/underline_ru.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/undo.gif b/source/web/scripts/tiny_mce/themes/advanced/images/undo.gif
deleted file mode 100644
index b0722d06c6..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/undo.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/unlink.gif b/source/web/scripts/tiny_mce/themes/advanced/images/unlink.gif
deleted file mode 100644
index dd073a2b44..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/unlink.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/images/visualaid.gif b/source/web/scripts/tiny_mce/themes/advanced/images/visualaid.gif
deleted file mode 100644
index 188b3487ad..0000000000
Binary files a/source/web/scripts/tiny_mce/themes/advanced/images/visualaid.gif and /dev/null differ
diff --git a/source/web/scripts/tiny_mce/themes/advanced/langs/en.js b/source/web/scripts/tiny_mce/themes/advanced/langs/en.js
deleted file mode 100644
index f5ef50b569..0000000000
--- a/source/web/scripts/tiny_mce/themes/advanced/langs/en.js
+++ /dev/null
@@ -1,59 +0,0 @@
-// 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';
-tinyMCELang['lang_image_props_desc'] = 'Image properties';
-tinyMCELang['lang_newdocument_desc'] = 'New document';
diff --git a/source/web/scripts/tiny_mce/themes/advanced/langs/readme.txt b/source/web/scripts/tiny_mce/themes/advanced/langs/readme.txt
deleted file mode 100644
index ef48d2ba4a..0000000000
--- a/source/web/scripts/tiny_mce/themes/advanced/langs/readme.txt
+++ /dev/null
@@ -1,4 +0,0 @@
-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/source/web/scripts/tiny_mce/themes/advanced/link.htm b/source/web/scripts/tiny_mce/themes/advanced/link.htm
deleted file mode 100644
index bff34c2afa..0000000000
--- a/source/web/scripts/tiny_mce/themes/advanced/link.htm
+++ /dev/null
@@ -1,135 +0,0 @@
-
-
-{$lang_insert_link_title}
-
-
-
-
-
-
-
-
diff --git a/source/web/scripts/tiny_mce/themes/advanced/source_editor.htm b/source/web/scripts/tiny_mce/themes/advanced/source_editor.htm
deleted file mode 100644
index f3a9991be3..0000000000
--- a/source/web/scripts/tiny_mce/themes/advanced/source_editor.htm
+++ /dev/null
@@ -1,88 +0,0 @@
-
-
-{$lang_theme_code_title}
-
-
-
-
-
-
-
-
diff --git a/source/web/scripts/tiny_mce/tiny_mce.js b/source/web/scripts/tiny_mce/tiny_mce.js
deleted file mode 100644
index c07b3ed442..0000000000
--- a/source/web/scripts/tiny_mce/tiny_mce.js
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * $RCSfile: tiny_mce.js,v $
- * $Revision: 1.240 $
- * $Date: 2005/05/27 09:53:43 $
- *
- * @author Moxiecode
- * @copyright Copyright © 2004, Moxiecode Systems AB, All rights reserved.
- */
- function TinyMCE(){this.instances=new Array();this.stickyClassesLookup=new Array();this.windowArgs=new Array();this.loadedFiles=new Array();this.configs=new Array();this.currentConfig=0;this.eventHandlers=new Array();this.isMSIE=(navigator.appName=="Microsoft Internet Explorer");this.isMSIE5=this.isMSIE&&(navigator.userAgent.indexOf('MSIE 5')!=-1);this.isMSIE5_0=this.isMSIE&&(navigator.userAgent.indexOf('MSIE 5.0')!=-1);this.isGecko=navigator.userAgent.indexOf('Gecko')!=-1;this.isSafari=navigator.userAgent.indexOf('Safari')!=-1;if(this.isSafari)alert("Safari support is very limited and should be considered experimental.\nSo there is no need to even submit bugreports on this early version.");this.idCounter=0;};TinyMCE.prototype.defParam=function(key,def_val){this.settings[key]=tinyMCE.getParam(key,def_val);};TinyMCE.prototype.init=function(settings){var theme;this.settings=settings;if(typeof(document.execCommand)=='undefined')return;if(!tinyMCE.baseURL){var elements=document.getElementsByTagName('script');for(var i=0;i');this.loadedFiles[this.loadedFiles.length]=url;};TinyMCE.prototype.loadCSS=function(url){for(var i=0;i ');this.loadedFiles[this.loadedFiles.length]=url;};TinyMCE.prototype.importCSS=function(doc,css_file){if(tinyMCE.isMSIE)var styleSheet=doc.createStyleSheet(css_file);else{var elm=doc.createElement("link");elm.rel="stylesheet";elm.href=css_file;if(headArr=doc.getElementsByTagName("head"))headArr[0].appendChild(elm);}};TinyMCE.prototype.confirmAdd=function(e,settings){var elm=tinyMCE.isMSIE?event.srcElement:e.target;var elementId=elm.name?elm.name:elm.id;tinyMCE.settings=settings;if(!elm.getAttribute('mce_noask')&&confirm(tinyMCELang['lang_edit_confirm']))tinyMCE.addMCEControl(elm,elementId);elm.setAttribute('mce_noask','true');};TinyMCE.prototype.queryInstanceCommandValue=function(editor_id,command){var inst=tinyMCE.getInstanceById(editor_id);if(inst)return inst.getDoc().queryCommandValue(command);return null;};TinyMCE.prototype.queryInstanceCommandState=function(editor_id,command){var inst=tinyMCE.getInstanceById(editor_id);if(inst)return inst.getDoc().queryCommandState(command);return null;};TinyMCE.prototype.updateContent=function(form_element_name){var formElement=document.getElementById(form_element_name);for(var n in tinyMCE.instances){var inst=tinyMCE.instances[n];inst.switchSettings();if(inst.formElement==formElement){var doc=inst.getDoc();tinyMCE._setHTML(doc,inst.formElement.value);if(!tinyMCE.isMSIE)doc.body.innerHTML=tinyMCE._cleanupHTML(doc,this.settings,doc.body,inst.visualAid);}}};TinyMCE.prototype.addMCEControl=function(replace_element,form_element_name,target_document){var id="mce_editor_"+tinyMCE.idCounter++;var inst=new TinyMCEControl(tinyMCE.settings);inst.editorId=id;this.instances[id]=inst;inst.onAdd(replace_element,form_element_name,target_document);};TinyMCE.prototype.triggerSave=function(skip_cleanup,skip_callback){for(var n in tinyMCE.instances){var inst=tinyMCE.instances[n];inst.switchSettings();tinyMCE.settings['preformatted']=false;if(typeof(skip_cleanup)=="undefined")skip_cleanup=false;if(typeof(skip_callback)=="undefined")skip_callback=false;tinyMCE._setHTML(inst.getDoc(),inst.getBody().innerHTML);var htm=skip_cleanup?inst.getBody().innerHTML:tinyMCE._cleanupHTML(inst.getDoc(),this.settings,inst.getBody(),this.visualAid,true);if(tinyMCE.settings["encoding"]=="xml"||tinyMCE.settings["encoding"]=="html")htm=tinyMCE.convertStringToXML(htm);if(!skip_callback&&tinyMCE.settings['save_callback']!="")var content=eval(tinyMCE.settings['save_callback']+"(inst.formTargetElementId,htm,inst.getBody());");if((typeof(content)!="undefined")&&content!=null)htm=content;htm=tinyMCE.regexpReplace(htm,"(","(","gi");htm=tinyMCE.regexpReplace(htm,")",")","gi");htm=tinyMCE.regexpReplace(htm,";",";","gi");htm=tinyMCE.regexpReplace(htm,""",""","gi");htm=tinyMCE.regexpReplace(htm,"^","^","gi");if(inst.formElement)inst.formElement.value=htm;}};TinyMCE.prototype._convertOnClick=function(node){if(tinyMCE.isMSIE5)return;var elms=node.getElementsByTagName("a");for(var i=0;i ","gi");content=tinyMCE.regexpReplace(content,"\r"," ","gi");content=tinyMCE.regexpReplace(content,"\n"," ","gi");}content=tinyMCE._customCleanup("insert_to_editor",content);if(tinyMCE.isMSIE){window.setInterval('try{tinyMCE.getCSSClasses(document.frames["'+editor_id+'"].document, "'+editor_id+'");}catch(e){}',500);if(tinyMCE.settings["force_br_newlines"])document.frames[editor_id].document.styleSheets[0].addRule("p","margin: 0px;");var body=document.frames[editor_id].document.body;tinyMCE.addEvent(body,"beforepaste",TinyMCE.prototype.eventPatch);tinyMCE.addEvent(body,"beforecut",TinyMCE.prototype.eventPatch);tinyMCE.addEvent(body,"paste",TinyMCE.prototype.eventPatch);body.editorId=editor_id;}if(!tinyMCE.isMSIE){var contentElement=inst.getDoc().createElement("body");var doc=inst.getDoc();contentElement.innerHTML=content;if(tinyMCE.settings['force_p_newlines'])content=content.replace(new RegExp('<>','g'),"");if(tinyMCE.settings['cleanup_on_startup'])inst.getBody().innerHTML=tinyMCE._cleanupHTML(doc,this.settings,contentElement);else{content=tinyMCE.regexpReplace(content,"","","gi");content=tinyMCE.regexpReplace(content,"","","gi");inst.getBody().innerHTML=content;}inst.convertAllRelativeURLs();}else{if(tinyMCE.settings['cleanup_on_startup']){tinyMCE._setHTML(inst.getDoc(),content);eval('try {inst.getBody().innerHTML = tinyMCE._cleanupHTML(inst.contentDocument, this.settings, inst.getBody());} catch(e) {}');}else inst.getBody().innerHTML=content;}tinyMCE._convertOnClick(inst.getBody());var parentElm=document.getElementById(inst.editorId+'_parent');if(parentElm.lastChild.nodeName.toLowerCase()=="input")inst.formElement=parentElm.lastChild;else inst.formElement=parentElm.nextSibling;tinyMCE.handleVisualAid(inst.getBody(),true,tinyMCE.settings['visual']);tinyMCE.executeCallback('setupcontent_callback','_setupContent',0,editor_id,inst.getBody(),inst.getDoc());if(!tinyMCE.isMSIE)TinyMCE.prototype.addEventHandlers(editor_id);inst.startContent=inst.getBody().innerHTML;tinyMCE.selectedInstance=inst;tinyMCE.selectedElement=inst.contentWindow.document.body;tinyMCE.triggerNodeChange(false,true);tinyMCE._customCleanup("insert_to_editor_dom",inst.contentWindow.document.body);};TinyMCE.prototype.cancelEvent=function(e){if(tinyMCE.isMSIE){e.returnValue=false;e.cancelBubble=true;}else e.preventDefault();};TinyMCE.prototype.removeTinyMCEFormElements=function(form_obj){for(var i=0;i ");rng.collapse(false);rng.select();tinyMCE.triggerNodeChange(false);return false;}}if(e.keyCode==8||e.keyCode==46){tinyMCE.selectedElement=e.target;tinyMCE.linkElement=tinyMCE.getParentElement(e.target,"a");tinyMCE.imgElement=tinyMCE.getParentElement(e.target,"img");tinyMCE.triggerNodeChange(false);}return false;break;case "keyup":case "keydown":if(e.target.editorId)tinyMCE.selectedInstance=tinyMCE.instances[e.target.editorId];else return;if(tinyMCE.selectedInstance)tinyMCE.selectedInstance.switchSettings();if(tinyMCE.isGecko&&tinyMCE.settings['force_p_newlines']&&(e.keyCode==8||e.keyCode==46)&&!e.shiftKey){if(tinyMCE.selectedInstance._handleBackSpace(e.type)){e.preventDefault();return false;}}tinyMCE.selectedElement=null;tinyMCE.selectedNode=null;var elm=tinyMCE.selectedInstance.getFocusElement();tinyMCE.linkElement=tinyMCE.getParentElement(elm,"a");tinyMCE.imgElement=tinyMCE.getParentElement(elm,"img");tinyMCE.selectedElement=elm;if(tinyMCE.isGecko&&e.type=="keyup"&&e.keyCode==9)tinyMCE.handleVisualAid(tinyMCE.selectedInstance.getBody(),true,tinyMCE.settings['visual']);if(tinyMCE.isGecko&&tinyMCE.settings['document_base_url']!=""+document.location.href&&e.type=="keyup"&&e.ctrlKey&&e.keyCode==86)tinyMCE.selectedInstance.fixBrokenURLs();if(tinyMCE.isMSIE&&tinyMCE.settings['custom_undo_redo']){var keys=new Array(13,45,36,35,33,34,37,38,39,40);var posKey=false;for(var i=0;i18&&e.keyCode!=255)){tinyMCE.selectedInstance.execCommand("mceAddUndoLevel");tinyMCE.selectedInstance.typing=true;tinyMCE.triggerNodeChange(false);}if(posKey&&e.type=="keyup")tinyMCE.triggerNodeChange(false);var keys=new Array(8,46);for(var i=0;i0){for(var i=0;i"+this.convertStringToXML(String.fromCharCode(160))+""+elementName+">";if(tinyMCE.isMSIE&&elementName=="script")return "<"+elementName+elementAttribs+">"+node.text+""+elementName+">";if(node.hasChildNodes()){if(elementName=="p"&&tinyMCE.cleanup_force_br_newlines)output+="";else output+="<"+elementName+elementAttribs+">";for(var i=0;i
";else output+=""+elementName+">";}else{if(openTag)output+="<"+elementName+elementAttribs+">"+elementName+">";else{output+="<"+elementName+elementAttribs+" />";}}return output;case 3:if(node.parentNode.nodeName.toLowerCase()=="script")return node.nodeValue;return this.convertStringToXML(node.nodeValue);case 8:return "";default:return "[UNKNOWN NODETYPE "+node.nodeType+"]";}};TinyMCE.prototype.convertStringToXML=function(html_data){var output="";for(var i=0;i127)output+=''+chr+";";else output+=String.fromCharCode(chr);continue;}if(tinyMCE.settings['entity_encoding']=="raw"){output+=String.fromCharCode(chr);continue;}if(typeof(tinyMCE.cleanup_entities["c"+chr])!='undefined'&&tinyMCE.cleanup_entities["c"+chr]!='')output+='&'+tinyMCE.cleanup_entities["c"+chr]+';';else output+=''+String.fromCharCode(chr);}return output;};TinyMCE.prototype._getCleanupElementName=function(chunk){var pos;if(chunk.charAt(0)=='+')chunk=chunk.substring(1);if((pos=chunk.indexOf('/'))!=-1)chunk=chunk.substring(0,pos);if((pos=chunk.indexOf('['))!=-1)chunk=chunk.substring(0,pos);return chunk;};TinyMCE.prototype._initCleanup=function(){var validElements=tinyMCE.settings["valid_elements"];validElements=validElements.split(',');var extendedValidElements=tinyMCE.settings["extended_valid_elements"];extendedValidElements=extendedValidElements.split(',');for(var i=0;i[ \n\r]* [ \n\r]*',' ','gi');element.innerHTML=tinyMCE.regexpReplace(element.innerHTML,'','','gi');}var html=this.cleanupNode(element);if(tinyMCE.settings['debug'])alert("Cleanup process executed in: "+(new Date().getTime()-startTime)+" ms.");html=tinyMCE.regexpReplace(html,'
',' ');html=tinyMCE.regexpReplace(html,'
',' ');if(!tinyMCE.isMSIE)html=html.replace(new RegExp(' ','g'),"");if(tinyMCE.settings['apply_source_formatting']){html=html.replace(new RegExp('<(p|div)([^>]*)>','g'),"\n<$1$2>\n");html=html.replace(new RegExp('<\/(p|div)([^>]*)>','g'),"\n$1$2>\n");html=html.replace(new RegExp(' ','g')," \n");}if(tinyMCE.settings['force_br_newlines']){var re=new RegExp('
','g');html=html.replace(re," ");}if(tinyMCE.settings['force_p_newlines']){var re=new RegExp('<>','g');html=html.replace(re,"");}if(tinyMCE.settings['remove_linebreaks'])html=html.replace(new RegExp('\r|\n','g'),' ');html=tinyMCE._customCleanup(on_save?"get_from_editor":"insert_to_editor",html);var chk=tinyMCE.regexpReplace(html,"[ \t\r\n]","");if(chk==" "||chk==" "||chk=="
"||chk=="
"||chk=="
")html="";if(tinyMCE.settings["preformatted"])return ""+html+" ";return html;};TinyMCE.prototype.setAttrib=function(element,name,value,no_fix_value){if(!no_fix_value&&value!=null){var re=new RegExp('[^0-9%]','g');value=value.replace(re,'');}if(value!=null&&value!="")element.setAttribute(name,value);else element.removeAttribute(name);if(value!=null&&value!="")element.setAttribute(name,value);else element.removeAttribute(name);};TinyMCE.prototype.insertLink=function(href,target,title,onclick){this.execCommand("mceAddUndoLevel");if(this.selectedInstance&&this.selectedElement&&this.selectedElement.nodeName.toLowerCase()=="img"){var doc=this.selectedInstance.getDoc();var linkElement=tinyMCE.getParentElement(this.selectedElement,"a");var newLink=false;if(!linkElement){linkElement=doc.createElement("a");newLink=true;}href=eval(tinyMCE.settings['urlconverter_callback']+"(href, linkElement);");tinyMCE.setAttrib(linkElement,'href',href);tinyMCE.setAttrib(linkElement,'target',target);tinyMCE.setAttrib(linkElement,'title',title);tinyMCE.setAttrib(linkElement,'mce_onclick',onclick);if(newLink){linkElement.appendChild(this.selectedElement.cloneNode(true));this.selectedElement.parentNode.replaceChild(linkElement,this.selectedElement);}return;}if(!this.linkElement&&this.selectedInstance){this.selectedInstance.contentDocument.execCommand("createlink",false,"#mce_temp_url#");tinyMCE.linkElement=this.getElementByAttributeValue(this.selectedInstance.contentDocument.body,"a","href","#mce_temp_url#");var elementArray=this.getElementsByAttributeValue(this.selectedInstance.contentDocument.body,"a","href","#mce_temp_url#");for(var i=0;i=strTok2.length){for(var i=0;i=strTok2.length||strTok1[i]!=strTok2[i]){breakPoint=i+1;break;}}}if(strTok1.length=strTok1.length||strTok1[i]!=strTok2[i]){breakPoint=i+1;break;}}}if(breakPoint==1)return url_to_relative;for(var i=0;i<(strTok1.length-(breakPoint-1));i++)outputString+="../";for(var i=breakPoint-1;i=0;i--){if(baseURLParts[i].length==0)continue;newBaseURLParts[newBaseURLParts.length]=baseURLParts[i];}baseURLParts=newBaseURLParts.reverse();var newRelURLParts=new Array();var numBack=0;for(var i=relURLParts.length-1;i>=0;i--){if(relURLParts[i].length==0||relURLParts[i]==".")continue;if(relURLParts[i]=='..'){numBack++;continue;}if(numBack>0){numBack--;continue;}newRelURLParts[newRelURLParts.length]=relURLParts[i];}relURLParts=newRelURLParts.reverse();var len=baseURLParts.length-numBack;var absPath=(len<=0?"":"/")+baseURLParts.slice(0,len).join('/')+"/"+relURLParts.join('/');var start="",end="";if(baseURL['protocol'])start+=baseURL['protocol']+"://";if(baseURL['host'])start+=baseURL['host'];if(baseURL['port'])start+=":"+baseURL['port'];if(relURL['query'])end+="?"+relURL['query'];if(relURL['anchor'])end+="#"+relURL['anchor'];if(relative_url.charAt(relative_url.length-1)=="/")end+="/";return start+absPath+end;};TinyMCE.prototype.getParam=function(name,default_value,strip_whitespace,split_chr){var value=(typeof(this.settings[name])=="undefined")?default_value:this.settings[name];if(value=="true"||value=="false")return(value=="true");if(strip_whitespace)value=tinyMCE.regexpReplace(value,"[ \t\r\n]","");if(typeof(split_chr)!="undefined"&&split_chr!=null){value=value.split(split_chr);var outArray=new Array();for(var i=0;i0);if(tinyMCE.settings['custom_undo_redo']){undoIndex=inst.undoIndex;undoLevels=inst.undoLevels.length;}tinyMCE.executeCallback('handleNodeChangeCallback','_handleNodeChange',0,editorId,elm,undoIndex,undoLevels,inst.visualAid,anySelection);}}if(this.selectedInstance&&(typeof(focus)=="undefined"||focus))this.selectedInstance.contentWindow.focus();};TinyMCE.prototype._customCleanup=function(type,content){var customCleanup=tinyMCE.settings['cleanup_callback'];if(customCleanup!=""&&eval("typeof("+customCleanup+")")!="undefined")content=eval(customCleanup+"(type, content);");var plugins=tinyMCE.getParam('plugins','',true,',');for(var i=0;i0)className+=" ";className+=classNames[i];}return className;};TinyMCE.prototype.handleVisualAid=function(element,deep,state){if(!element)return;var tableElement=null;switch(element.nodeName.toLowerCase()){case "table":var oldW=element.style.width;var oldH=element.style.height;element.className=tinyMCE.getVisualAidClass(element.className,state&&element.getAttribute("border")==0);element.style.width=oldW;element.style.height=oldH;for(var y=0;y ','g');html_content=html_content.replace(re," ");}doc.body.innerHTML=html_content;if(tinyMCE.isMSIE&&tinyMCE.settings['fix_content_duplication']){var paras=doc.getElementsByTagName("P");for(var i=0;i<\/o:p>"," ");html=tinyMCE.regexpReplace(html," <\/o:p>","");html=tinyMCE.regexpReplace(html,"","");html=tinyMCE.regexpReplace(html,"<\/p>","");html=tinyMCE.regexpReplace(html,"
<\/p>\r\n
<\/p>","");html=tinyMCE.regexpReplace(html,"
<\/p>"," ");html=tinyMCE.regexpReplace(html,"
\s*(
\s*)?","
");html=tinyMCE.regexpReplace(html,"<\/p>\s*(<\/p>\s*)?","
");}doc.body.innerHTML=html;}};TinyMCE.prototype.getImageSrc=function(str){var pos=-1;if(!str)return "";if((pos=str.indexOf('this.src='))!=-1){var src=str.substring(pos+10);src=src.substring(0,src.indexOf('\''));return src;}return "";};TinyMCE.prototype._getElementById=function(element_id){var elm=document.getElementById(element_id);if(!elm){for(var j=0;j0){var csses=null;eval("try {var csses = tinyMCE.isMSIE ? doc.styleSheets(0).rules : doc.styleSheets[0].cssRules;} catch(e) {}");if(!csses)return new Array();for(var i=0;i0)tinyMCE.cssClasses=output;return output;};TinyMCE.prototype.regexpReplace=function(in_str,reg_exp,replace_str,opts){if(typeof(opts)=="undefined")opts='g';var re=new RegExp(reg_exp,opts);return in_str.replace(re,replace_str);};TinyMCE.prototype.cleanupEventStr=function(str){str=""+str;str=str.replace('function anonymous()\n{\n','');str=str.replace('\n}','');return str;};TinyMCE.prototype.getAbsPosition=function(node){var pos=new Object();pos.absLeft=pos.absTop=0;var parentNode=node;while(parentNode){pos.absLeft+=parentNode.offsetLeft;pos.absTop+=parentNode.offsetTop;parentNode=parentNode.offsetParent;}return pos;};TinyMCE.prototype.openFileBrowser=function(field_name,url,type,win){var cb=tinyMCE.getParam("file_browser_callback");this.setWindowArg("window",win);if(eval('typeof('+cb+')')=="undefined")alert("Callback function: "+cb+" could not be found.");else eval(cb+"(field_name, url, type, win);");};TinyMCE.prototype.getControlHTML=function(control_name){var themePlugins=tinyMCE.getParam('plugins','',true,',');var templateFunction;for(var i=themePlugins.length;i>=0;i--){templateFunction='TinyMCE_'+themePlugins[i]+"_getControlHTML";if(eval("typeof("+templateFunction+")")!='undefined'){var html=eval(templateFunction+"('"+control_name+"');");if(html!="")return tinyMCE.replaceVar(html,"pluginurl",tinyMCE.baseURL+"/plugins/"+themePlugins[i]);}}return eval('TinyMCE_'+tinyMCE.settings['theme']+"_getControlHTML"+"('"+control_name+"');");};TinyMCE.prototype._themeExecCommand=function(editor_id,element,command,user_interface,value){var themePlugins=tinyMCE.getParam('plugins','',true,',');var templateFunction;for(var i=themePlugins.length;i>=0;i--){templateFunction='TinyMCE_'+themePlugins[i]+"_execCommand";if(eval("typeof("+templateFunction+")")!='undefined'){if(eval(templateFunction+"(editor_id, element, command, user_interface, value);"))return true;}}templateFunction='TinyMCE_'+tinyMCE.settings['theme']+"_execCommand";if(eval("typeof("+templateFunction+")")!='undefined')return eval(templateFunction+"(editor_id, element, command, user_interface, value);");return false;};TinyMCE.prototype._getThemeFunction=function(suffix,skip_plugins){if(skip_plugins)return 'TinyMCE_'+tinyMCE.settings['theme']+suffix;var themePlugins=tinyMCE.getParam('plugins','',true,',');var templateFunction;for(var i=themePlugins.length;i>=0;i--){templateFunction='TinyMCE_'+themePlugins[i]+suffix;if(eval("typeof("+templateFunction+")")!='undefined')return templateFunction;}return 'TinyMCE_'+tinyMCE.settings['theme']+suffix;};TinyMCE.prototype.isFunc=function(func_name){if(func_name==null||func_name=="")return false;return eval("typeof("+func_name+")")!="undefined";};TinyMCE.prototype.exec=function(func_name,args){var str=func_name+'(';for(var i=3;i1&&tinyMCE.currentConfig!=this.settings['index']){tinyMCE.settings=this.settings;tinyMCE.currentConfig=this.settings['index'];}};TinyMCEControl.prototype.fixBrokenURLs=function(){var body=this.getBody();var elms=body.getElementsByTagName("img");for(var i=0;i0)rng.selectNodeContents(nodes[0]);else rng.selectNodeContents(node);}else rng.selectNode(node);if(collapse){if(!to_start&&node.nodeType==3){rng.setStart(node,node.nodeValue.length);rng.setEnd(node,node.nodeValue.length);}else rng.collapse(to_start);}sel.removeAllRanges();sel.addRange(rng);}this.scrollToNode(node);tinyMCE.selectedElement=null;if(node.nodeType==1)tinyMCE.selectedElement=node;};TinyMCEControl.prototype.scrollToNode=function(node){var pos=tinyMCE.getAbsPosition(node);var doc=this.getDoc();var scrollX=doc.body.scrollLeft+doc.documentElement.scrollLeft;var scrollY=doc.body.scrollTop+doc.documentElement.scrollTop;var height=tinyMCE.isMSIE?document.getElementById(this.editorId).style.pixelHeight:this.targetElement.clientHeight;if(!tinyMCE.settings['auto_resize']&&!(node.absTop>scrollY&&node.absTop<(scrollY-25+height)))this.contentWindow.scrollTo(pos.absLeft,pos.absTop-height+25);};TinyMCEControl.prototype.getBody=function(){return this.getDoc().body;};TinyMCEControl.prototype.getDoc=function(){return this.contentWindow.document;};TinyMCEControl.prototype.getWin=function(){return this.contentWindow;};TinyMCEControl.prototype.getSel=function(){if(tinyMCE.isMSIE)return this.getDoc().selection;var sel=this.contentWindow.getSelection();if(tinyMCE.isSafari&&!sel.getRangeAt){var newSel=new Object();var doc=this.getDoc();function getRangeAt(idx){var rng=new Object();rng.startContainer=this.focusNode;rng.endContainer=this.anchorNode;rng.commonAncestorContainer=this.focusNode;rng.createContextualFragment=function(html){if(html.charAt(0)=='<'){var elm=doc.createElement("div");elm.innerHTML=html;return elm.firstChild;}return doc.createTextNode("UNSUPPORTED, DUE TO LIMITATIONS IN SAFARI!");};rng.deleteContents=function(){doc.execCommand("Delete",false,"");};return rng;}newSel.focusNode=sel.baseNode;newSel.focusOffset=sel.baseOffset;newSel.anchorNode=sel.extentNode;newSel.anchorOffset=sel.extentOffset;newSel.getRangeAt=getRangeAt;newSel.text=""+sel;newSel.realSelection=sel;newSel.toString=function(){return this.text;};return newSel;}return sel;};TinyMCEControl.prototype.getRng=function(){var sel=this.getSel();if(sel==null)return null;if(tinyMCE.isMSIE)return sel.createRange();return this.getSel().getRangeAt(0);};TinyMCEControl.prototype._insertPara=function(e){function isEmpty(para){function isEmptyHTML(html){return html.replace(new RegExp('[ \t\r\n]+','g'),'').toLowerCase()=="";}if(para.getElementsByTagName("img").length>0)return false;if(para.getElementsByTagName("table").length>0)return false;if(para.getElementsByTagName("hr").length>0)return false;var nodes=tinyMCE.getNodeTree(para,new Array(),3);for(var i=0;i "+blockName+"><"+blockName+"> "+blockName+">";paraAfter=body.childNodes[1];}this.selectNode(paraAfter,true,true);return true;}if(startChop.nodeName==blockName)rngBefore.setStart(startChop,0);else rngBefore.setStartBefore(startChop);rngBefore.setEnd(startNode,startOffset);paraBefore.appendChild(rngBefore.cloneContents());rngAfter.setEndAfter(endChop);rngAfter.setStart(endNode,endOffset);var contents=rngAfter.cloneContents();if(contents.firstChild&&contents.firstChild.nodeName==blockName){var nodes=contents.firstChild.childNodes;for(var i=0;i0)rng.pasteHTML(''+rng.htmlText+"
");tinyMCE.triggerNodeChange();return;}}}switch(command){case "mceSelectNode":this.selectNode(value);tinyMCE.triggerNodeChange();tinyMCE.selectedNode=value;break;case "mceSelectNodeDepth":var parentNode=this.getFocusElement();for(var i=0;parentNode;i++){if(parentNode.nodeName.toLowerCase()=="body")break;if(parentNode.nodeName.toLowerCase()=="#text"){i--;parentNode=parentNode.parentNode;continue;}if(i==value){this.selectNode(parentNode,false);tinyMCE.triggerNodeChange();tinyMCE.selectedNode=parentNode;return;}parentNode=parentNode.parentNode;}break;case "HiliteColor":if(tinyMCE.isGecko){this.getDoc().execCommand("useCSS",false,false);this.getDoc().execCommand('hilitecolor',false,value);this.getDoc().execCommand("useCSS",false,true);}else this.getDoc().execCommand('BackColor',false,value);break;case "Cut":case "Copy":case "Paste":var cmdFailed=false;eval('try {this.getDoc().execCommand(command, user_interface, value);} catch (e) {cmdFailed = true;}');if(tinyMCE.isGecko&&cmdFailed){if(confirm(tinyMCE.getLang('lang_clipboard_msg')))window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html','mceExternal');return;}else tinyMCE.triggerNodeChange();break;case "mceSetContent":if(!value)value="";html_content=tinyMCE._customCleanup("insert_to_editor",value);tinyMCE._setHTML(doc,value);doc.body.innerHTML=tinyMCE._cleanupHTML(doc,tinyMCE.settings,doc.body);tinyMCE.handleVisualAid(doc.body,true,this.visualAid);return true;case "mceLink":var selectedText="";if(tinyMCE.isMSIE){var rng=doc.selection.createRange();selectedText=rng.text;}else selectedText=this.getSel().toString();if(!tinyMCE.linkElement){if((tinyMCE.selectedElement.nodeName.toLowerCase()!="img")&&(selectedText.length<=0))return;}var href="",target="",title="",onclick="",action="insert";if(tinyMCE.selectedElement.nodeName.toLowerCase()=="a")tinyMCE.linkElement=tinyMCE.selectedElement;if(tinyMCE.linkElement!=null&&tinyMCE.getAttrib(tinyMCE.linkElement,'href')=="")tinyMCE.linkElement=null;if(tinyMCE.linkElement){href=tinyMCE.getAttrib(tinyMCE.linkElement,'href');target=tinyMCE.getAttrib(tinyMCE.linkElement,'target');title=tinyMCE.getAttrib(tinyMCE.linkElement,'title');onclick=tinyMCE.getAttrib(tinyMCE.linkElement,'mce_onclick');if(onclick=="")onclick=tinyMCE.getAttrib(tinyMCE.linkElement,'onclick');onclick=tinyMCE.cleanupEventStr(onclick);mceRealHref=tinyMCE.getAttrib(tinyMCE.linkElement,'mce_real_href');if(mceRealHref!="")href=mceRealHref;href=eval(tinyMCE.settings['urlconverter_callback']+"(href, tinyMCE.linkElement, true);");action="update";}if(this.settings['insertlink_callback']){var returnVal=eval(this.settings['insertlink_callback']+"(href, target, title, onclick, action);");if(returnVal&&returnVal['href'])tinyMCE.insertLink(returnVal['href'],returnVal['target'],returnVal['title'],returnVal['onclick']);}else{tinyMCE.openWindow(this.insertLinkTemplate,{href:href,target:target,title:title,onclick:onclick,action:action});}break;case "mceImage":var src="",alt="",border="",hspace="",vspace="",width="",height="",align="";var title="",onmouseover="",onmouseout="",action="insert";var img=tinyMCE.imgElement;if(tinyMCE.selectedElement!=null&&tinyMCE.selectedElement.nodeName.toLowerCase()=="img"){img=tinyMCE.selectedElement;tinyMCE.imgElement=img;}if(img){if(tinyMCE.getAttrib(img,'name').indexOf('mce_')==0)return;src=tinyMCE.getAttrib(img,'src');alt=tinyMCE.getAttrib(img,'alt');if(alt=="")alt=tinyMCE.getAttrib(img,'title');if(tinyMCE.isGecko){var w=img.style.width;if(w!=null&&w!="")img.setAttribute("width",w);var h=img.style.height;if(h!=null&&h!="")img.setAttribute("height",h);}border=tinyMCE.getAttrib(img,'border');hspace=tinyMCE.getAttrib(img,'hspace');vspace=tinyMCE.getAttrib(img,'vspace');width=tinyMCE.getAttrib(img,'width');height=tinyMCE.getAttrib(img,'height');align=tinyMCE.getAttrib(img,'align');onmouseover=tinyMCE.getAttrib(img,'onmouseover');onmouseout=tinyMCE.getAttrib(img,'onmouseout');title=tinyMCE.getAttrib(img,'title');if(tinyMCE.isMSIE){width=img.attributes['width'].specified?width:"";height=img.attributes['height'].specified?height:"";}onmouseover=tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseover));onmouseout=tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseout));mceRealSrc=tinyMCE.getAttrib(img,'mce_real_src');if(mceRealSrc!="")src=mceRealSrc;src=eval(tinyMCE.settings['urlconverter_callback']+"(src, img, true);");if(onmouseover!="")onmouseover=eval(tinyMCE.settings['urlconverter_callback']+"(onmouseover, img, true);");if(onmouseout!="")onmouseout=eval(tinyMCE.settings['urlconverter_callback']+"(onmouseout, img, true);");action="update";}if(this.settings['insertimage_callback']){var returnVal=eval(this.settings['insertimage_callback']+"(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout, action);");if(returnVal&&returnVal['src'])tinyMCE.insertImage(returnVal['src'],returnVal['alt'],returnVal['border'],returnVal['hspace'],returnVal['vspace'],returnVal['width'],returnVal['height'],returnVal['align'],returnVal['title'],returnVal['onmouseover'],returnVal['onmouseout']);}else tinyMCE.openWindow(this.insertImageTemplate,{src:src,alt:alt,border:border,hspace:hspace,vspace:vspace,width:width,height:height,align:align,title:title,onmouseover:onmouseover,onmouseout:onmouseout,action:action});break;case "mceCleanupWord":if(tinyMCE.isMSIE){var html=this.getBody().createTextRange().htmlText;if(html.indexOf('="mso')!=-1){tinyMCE._setHTML(this.contentDocument,this.getBody().innerHTML);html=tinyMCE._cleanupHTML(this.contentDocument,this.settings,this.getBody(),this.visualAid);}this.getBody().innerHTML=html;}break;case "mceCleanup":tinyMCE._setHTML(this.contentDocument,this.getBody().innerHTML);this.getBody().innerHTML=tinyMCE._cleanupHTML(this.contentDocument,this.settings,this.getBody(),this.visualAid);tinyMCE.handleVisualAid(this.getBody(),true,this.visualAid);this.repaint();tinyMCE.triggerNodeChange();break;case "mceAnchor":if(!user_interface){var aElm=tinyMCE.getParentElement(this.getFocusElement(),"a","name");if(aElm){if(value==null||value==""){if(tinyMCE.isMSIE){aElm.outerHTML=aElm.innerHTML;}else{var rng=aElm.ownerDocument.createRange();rng.setStartBefore(aElm);rng.setEndAfter(aElm);rng.deleteContents();rng.insertNode(rng.createContextualFragment(aElm.innerHTML));}}else aElm.setAttribute('name',value);}else{this.getDoc().execCommand("fontname",false,"#mce_temp_font#");var elementArray=tinyMCE.getElementsByAttributeValue(this.getBody(),"font","face","#mce_temp_font#");for(var x=0;x0){value=tinyMCE.replaceVar(value,"selection",selectedText);tinyMCE.execCommand('mceInsertContent',false,value);}tinyMCE.triggerNodeChange();break;case "mceSetAttribute":if(typeof(value)=='object'){var targetElms=(typeof(value['targets'])=="undefined")?"p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address":value['targets'];var targetNode=tinyMCE.getParentElement(this.getFocusElement(),targetElms);if(targetNode){targetNode.setAttribute(value['name'],value['value']);tinyMCE.triggerNodeChange();}}break;case "mceSetCSSClass":var selectedText=false;if(tinyMCE.isMSIE){var rng=doc.selection.createRange();selectedText=(rng.text&&rng.text.length>0);}else selectedText=(this.getSel().toString().length>0);if(tinyMCE.selectedNode)tinyMCE.selectedElement=tinyMCE.selectedNode;if(selectedText&&!tinyMCE.selectedNode){this.getDoc().execCommand("RemoveFormat",false,null);if(value==null)return this.execCommand("RemoveFormat",false,null);this.getDoc().execCommand("fontname",false,"#mce_temp_font#");var elementArray=tinyMCE.getElementsByAttributeValue(this.getBody(),"font","face","#mce_temp_font#");for(var x=0;xcustomUndoLevels){for(var i=0;i0){this.undoIndex--;this.getBody().innerHTML=this.undoLevels[this.undoIndex];}tinyMCE.triggerNodeChange();}else this.getDoc().execCommand(command,user_interface,value);break;case "Redo":if(tinyMCE.settings['custom_undo_redo']){if(this.undoIndex<(this.undoLevels.length-1)){this.undoIndex++;this.getBody().innerHTML=this.undoLevels[this.undoIndex];}tinyMCE.triggerNodeChange();}else this.getDoc().execCommand(command,user_interface,value);break;case "mceToggleVisualAid":this.visualAid=!this.visualAid;tinyMCE.handleVisualAid(this.getBody(),true,this.visualAid);tinyMCE.triggerNodeChange();break;case "removeformat":var text=this.getSelectedText();if(tinyMCE.isMSIE){try{win.focus();var rng=doc.selection.createRange();rng.execCommand("RemoveFormat",false,null);rng.pasteHTML(rng.text);}catch(e){}}else this.getDoc().execCommand(command,user_interface,value);if(text.length==0)this.execCommand("mceSetCSSClass",false,"");tinyMCE.triggerNodeChange();break;default:this.getDoc().execCommand(command,user_interface,value);tinyMCE.triggerNodeChange();}};TinyMCEControl.prototype.queryCommandValue=function(command){return this.getDoc().queryCommandValue(command);};TinyMCEControl.prototype.queryCommandState=function(command){return this.getDoc().queryCommandState(command);};TinyMCEControl.prototype.onAdd=function(replace_element,form_element_name,target_document){var targetDoc=target_document?target_document:document;this.targetDoc=targetDoc;tinyMCE.themeURL=tinyMCE.baseURL+"/themes/"+this.settings['theme'];this.settings['themeurl']=tinyMCE.themeURL;if(!replace_element){alert("Error: Could not find the target element.");return false;}var templateFunction=tinyMCE._getThemeFunction('_getInsertLinkTemplate');if(eval("typeof("+templateFunction+")")!='undefined')this.insertLinkTemplate=eval(templateFunction+'(this.settings);');var templateFunction=tinyMCE._getThemeFunction('_getInsertImageTemplate');if(eval("typeof("+templateFunction+")")!='undefined')this.insertImageTemplate=eval(templateFunction+'(this.settings);');var templateFunction=tinyMCE._getThemeFunction('_getEditorTemplate');if(eval("typeof("+templateFunction+")")=='undefined'){alert("Error: Could not find the template function: "+templateFunction);return false;}var editorTemplate=eval(templateFunction+'(this.settings, this.editorId);');var deltaWidth=editorTemplate['delta_width']?editorTemplate['delta_width']:0;var deltaHeight=editorTemplate['delta_height']?editorTemplate['delta_height']:0;var html=''+editorTemplate['html'];var templateFunction=tinyMCE._getThemeFunction('_handleNodeChange',true);if(eval("typeof("+templateFunction+")")!='undefined')this.settings['handleNodeChangeCallback']=templateFunction;html=tinyMCE.replaceVar(html,"editor_id",this.editorId);html=tinyMCE.replaceVar(html,"default_document",tinyMCE.baseURL+"/blank.htm");this.settings['default_document']=tinyMCE.baseURL+"/blank.htm";this.settings['old_width']=this.settings['width'];this.settings['old_height']=this.settings['height'];if(this.settings['width']==-1)this.settings['width']=replace_element.offsetWidth;if(this.settings['height']==-1)this.settings['height']=replace_element.offsetHeight;if(this.settings['width']==0)this.settings['width']=replace_element.style.width;if(this.settings['height']==0)this.settings['height']=replace_element.style.height;if(this.settings['width']==0)this.settings['width']=320;if(this.settings['height']==0)this.settings['height']=240;this.settings['area_width']=parseInt(this.settings['width']);this.settings['area_height']=parseInt(this.settings['height']);this.settings['area_width']+=deltaWidth;this.settings['area_height']+=deltaHeight;if((""+this.settings['width']).indexOf('%')!=-1)this.settings['area_width']="100%";if((""+this.settings['height']).indexOf('%')!=-1)this.settings['area_height']="100%";if((""+replace_element.style.width).indexOf('%')!=-1){this.settings['width']=replace_element.style.width;this.settings['area_width']="100%";}if((""+replace_element.style.height).indexOf('%')!=-1){this.settings['height']=replace_element.style.height;this.settings['area_height']="100%";}html=tinyMCE.applyTemplate(html);this.settings['width']=this.settings['old_width'];this.settings['height']=this.settings['old_height'];this.visualAid=this.settings['visual'];this.formTargetElementId=form_element_name;if(replace_element.nodeName.toLowerCase()=="textarea")this.startContent=replace_element.value;else this.startContent=replace_element.innerHTML;if(replace_element.nodeName.toLowerCase()!="textarea"){this.oldTargetElement=replace_element.cloneNode(true);if(tinyMCE.settings['debug'])html+=' ';else html+=' ';html+=' ';if(!tinyMCE.isMSIE){var rng=replace_element.ownerDocument.createRange();rng.setStartBefore(replace_element);var fragment=rng.createContextualFragment(html);replace_element.parentNode.replaceChild(fragment,replace_element);}else replace_element.outerHTML=html;}else{html+='';this.oldTargetElement=replace_element;if(!tinyMCE.settings['debug'])this.oldTargetElement.style.display="none";if(!tinyMCE.isMSIE){var rng=replace_element.ownerDocument.createRange();rng.setStartBefore(replace_element);var fragment=rng.createContextualFragment(html);replace_element.parentNode.insertBefore(fragment,replace_element);}else replace_element.insertAdjacentHTML("beforeBegin",html);}var dynamicIFrame=false;var tElm=targetDoc.getElementById(this.editorId);if(!tinyMCE.isMSIE){if(tElm&&tElm.nodeName.toLowerCase()=="span"){tElm=tinyMCE._createIFrame(tElm);dynamicIFrame=true;}this.targetElement=tElm;this.iframeElement=tElm;this.contentDocument=tElm.contentDocument;this.contentWindow=tElm.contentWindow;}else{if(tElm&&tElm.nodeName.toLowerCase()=="span")tElm=tinyMCE._createIFrame(tElm);else tElm=targetDoc.frames[this.editorId];this.targetElement=tElm;this.iframeElement=targetDoc.getElementById(this.editorId);this.contentDocument=tElm.window.document;this.contentWindow=tElm.window;this.getDoc().designMode="on";}var doc=this.contentDocument;if(dynamicIFrame){var html=""+''+''+''+' '+'blank_page '+' '+''+''+''+'';try{this.getDoc().designMode="on";doc.open();doc.write(html);doc.close();}catch(e){this.getDoc().location.href=tinyMCE.baseURL+"/blank.htm";}}if(tinyMCE.isMSIE)window.setTimeout("TinyMCE.prototype.addEventHandlers('"+this.editorId+"');",1);tinyMCE.setupContent(this.editorId,true);return true;};TinyMCEControl.prototype.getFocusElement=function(){if(tinyMCE.isMSIE){var doc=this.getDoc();var rng=doc.selection.createRange();if(rng.collapse)rng.collapse(true);var elm=rng.item?rng.item(0):rng.parentElement();}else{var sel=this.getSel();var elm=(sel&&sel.anchorNode)?sel.anchorNode:null;if(tinyMCE.selectedElement!=null&&tinyMCE.selectedElement.nodeName.toLowerCase()=="img")elm=tinyMCE.selectedElement;}return elm;};var tinyMCE=new TinyMCE();var tinyMCELang=new Array();function debug(){var msg="";var elm=document.getElementById("tinymce_debug");if(!elm){var debugDiv=document.createElement("div");debugDiv.setAttribute("className","debugger");debugDiv.className="debugger";debugDiv.innerHTML='\
- Debug output:\
- \
- ';document.body.appendChild(debugDiv);elm=document.getElementById("tinymce_debug");}var args=this.debug.arguments;for(var i=0;i 0 || window.scrollY > 0) {
- window.resizeBy(window.innerWidth * 2, window.innerHeight * 2);
- window.sizeToContent();
- window.scrollTo(0, 0);
- var x = parseInt(screen.width / 2.0) - (window.outerWidth / 2.0);
- var y = parseInt(screen.height / 2.0) - (window.outerHeight / 2.0);
- window.moveTo(x, y);
- }
- }
-}
-
-// Add onload trigger
-tinyMCE.addEvent(window, "load", TinyMCEPlugin_onLoad);
-
-// Output Popup CSS class
-document.write(' ');
diff --git a/source/web/scripts/tiny_mce/tiny_mce_src.js b/source/web/scripts/tiny_mce/tiny_mce_src.js
deleted file mode 100644
index 4a9f8bfc39..0000000000
--- a/source/web/scripts/tiny_mce/tiny_mce_src.js
+++ /dev/null
@@ -1,4738 +0,0 @@
-/**
- * $RCSfile: tiny_mce_src.js,v $
- * $Revision: 1.204 $
- * $Date: 2005/05/27 09:35:59 $
- *
- * @author Moxiecode
- * @copyright Copyright © 2004, Moxiecode Systems AB, All rights reserved.
- */
-
-function TinyMCE() {
- this.instances = new Array();
- this.stickyClassesLookup = new Array();
- this.windowArgs = new Array();
- this.loadedFiles = new Array();
- this.configs = new Array();
- this.currentConfig = 0;
- this.eventHandlers = new Array();
-
- // Browser check
- this.isMSIE = (navigator.appName == "Microsoft Internet Explorer");
- this.isMSIE5 = this.isMSIE && (navigator.userAgent.indexOf('MSIE 5') != -1);
- this.isMSIE5_0 = this.isMSIE && (navigator.userAgent.indexOf('MSIE 5.0') != -1);
- this.isGecko = navigator.userAgent.indexOf('Gecko') != -1;
- this.isSafari = navigator.userAgent.indexOf('Safari') != -1;
-
- if (this.isSafari)
- alert("Safari support is very limited and should be considered experimental.\nSo there is no need to even submit bugreports on this early version.");
-
- // TinyMCE editor id instance counter
- this.idCounter = 0;
-};
-
-TinyMCE.prototype.defParam = function(key, def_val) {
- this.settings[key] = tinyMCE.getParam(key, def_val);
-};
-
-TinyMCE.prototype.init = function(settings) {
- var theme;
-
- this.settings = settings;
-
- // Check if valid browser has execcommand support
- if (typeof(document.execCommand) == 'undefined')
- return;
-
- // Get script base path
- if (!tinyMCE.baseURL) {
- var elements = document.getElementsByTagName('script');
-
- for (var i=0; i');
-
- this.loadedFiles[this.loadedFiles.length] = url;
-};
-
-TinyMCE.prototype.loadCSS = function(url) {
- for (var i=0; i ');
-
- this.loadedFiles[this.loadedFiles.length] = url;
-};
-
-TinyMCE.prototype.importCSS = function(doc, css_file) {
- if (tinyMCE.isMSIE)
- var styleSheet = doc.createStyleSheet(css_file);
- else {
- var elm = doc.createElement("link");
-
- elm.rel = "stylesheet";
- elm.href = css_file;
-
- if (headArr = doc.getElementsByTagName("head"))
- headArr[0].appendChild(elm);
- }
-};
-
-TinyMCE.prototype.confirmAdd = function(e, settings) {
- var elm = tinyMCE.isMSIE ? event.srcElement : e.target;
- var elementId = elm.name ? elm.name : elm.id;
-
- tinyMCE.settings = settings;
-
- if (!elm.getAttribute('mce_noask') && confirm(tinyMCELang['lang_edit_confirm']))
- tinyMCE.addMCEControl(elm, elementId);
-
- elm.setAttribute('mce_noask', 'true');
-};
-
-TinyMCE.prototype.queryInstanceCommandValue = function(editor_id, command) {
- var inst = tinyMCE.getInstanceById(editor_id);
- if (inst)
- return inst.getDoc().queryCommandValue(command);
-
- return null;
-};
-
-TinyMCE.prototype.queryInstanceCommandState = function(editor_id, command) {
- var inst = tinyMCE.getInstanceById(editor_id);
- if (inst)
- return inst.getDoc().queryCommandState(command);
-
- return null;
-};
-
-TinyMCE.prototype.updateContent = function(form_element_name) {
- // Find MCE instance linked to given form element and copy it's value
- var formElement = document.getElementById(form_element_name);
- for (var n in tinyMCE.instances) {
- var inst = tinyMCE.instances[n];
-
- inst.switchSettings();
-
- if (inst.formElement == formElement) {
- var doc = inst.getDoc();
-
- tinyMCE._setHTML(doc, inst.formElement.value);
-
- if (!tinyMCE.isMSIE)
- doc.body.innerHTML = tinyMCE._cleanupHTML(doc, this.settings, doc.body, inst.visualAid);
- }
- }
-};
-
-TinyMCE.prototype.addMCEControl = function(replace_element, form_element_name, target_document) {
- var id = "mce_editor_" + tinyMCE.idCounter++;
- var inst = new TinyMCEControl(tinyMCE.settings);
-
- inst.editorId = id;
- this.instances[id] = inst;
-
- inst.onAdd(replace_element, form_element_name, target_document);
-};
-
-TinyMCE.prototype.triggerSave = function(skip_cleanup, skip_callback) {
- // Cleanup and set all form fields
- for (var n in tinyMCE.instances) {
- var inst = tinyMCE.instances[n];
-
- inst.switchSettings();
-
- tinyMCE.settings['preformatted'] = false;
-
- // Default to false
- if (typeof(skip_cleanup) == "undefined")
- skip_cleanup = false;
-
- // Default to false
- if (typeof(skip_callback) == "undefined")
- skip_callback = false;
-
- tinyMCE._setHTML(inst.getDoc(), inst.getBody().innerHTML);
-
- var htm = skip_cleanup ? inst.getBody().innerHTML : tinyMCE._cleanupHTML(inst.getDoc(), this.settings, inst.getBody(), this.visualAid, true);
-
- //var htm = tinyMCE._cleanupHTML(inst.getDoc(), tinyMCE.settings, inst.getBody(), false, true);
-
- if (tinyMCE.settings["encoding"] == "xml" || tinyMCE.settings["encoding"] == "html")
- htm = tinyMCE.convertStringToXML(htm);
-
- if (!skip_callback && tinyMCE.settings['save_callback'] != "")
- var content = eval(tinyMCE.settings['save_callback'] + "(inst.formTargetElementId,htm,inst.getBody());");
-
- // Use callback content if available
- if ((typeof(content) != "undefined") && content != null)
- htm = content;
-
- // Replace some weird entities (Bug: #1056343)
- htm = tinyMCE.regexpReplace(htm, "(", "(", "gi");
- htm = tinyMCE.regexpReplace(htm, ")", ")", "gi");
- htm = tinyMCE.regexpReplace(htm, ";", ";", "gi");
- htm = tinyMCE.regexpReplace(htm, """, """, "gi");
- htm = tinyMCE.regexpReplace(htm, "^", "^", "gi");
-
- if (inst.formElement)
- inst.formElement.value = htm;
- }
-};
-
-TinyMCE.prototype._convertOnClick = function(node) {
- // Skip on MSIE < 6+
- if (tinyMCE.isMSIE5)
- return;
-
- // Convert all onclick to mce_onclick
- var elms = node.getElementsByTagName("a");
- for (var i=0; i ", "gi");
- content = tinyMCE.regexpReplace(content, "\r", " ", "gi");
- content = tinyMCE.regexpReplace(content, "\n", " ", "gi");
- }
-
- // Call custom cleanup code
- content = tinyMCE._customCleanup("insert_to_editor", content);
-
- if (tinyMCE.isMSIE) {
- // Ugly!!!
- window.setInterval('try{tinyMCE.getCSSClasses(document.frames["' + editor_id + '"].document, "' + editor_id + '");}catch(e){}', 500);
-
- if (tinyMCE.settings["force_br_newlines"])
- document.frames[editor_id].document.styleSheets[0].addRule("p", "margin: 0px;");
-
- var body = document.frames[editor_id].document.body;
-
- tinyMCE.addEvent(body, "beforepaste", TinyMCE.prototype.eventPatch);
- tinyMCE.addEvent(body, "beforecut", TinyMCE.prototype.eventPatch);
- tinyMCE.addEvent(body, "paste", TinyMCE.prototype.eventPatch);
-
- body.editorId = editor_id;
- }
-
- // Fix for bug #958637
- if (!tinyMCE.isMSIE) {
- var contentElement = inst.getDoc().createElement("body");
- var doc = inst.getDoc();
-
- contentElement.innerHTML = content;
-
- // Remove weridness!
- if (tinyMCE.settings['force_p_newlines'])
- content = content.replace(new RegExp('<>', 'g'), "");
-
- if (tinyMCE.settings['cleanup_on_startup'])
- inst.getBody().innerHTML = tinyMCE._cleanupHTML(doc, this.settings, contentElement);
- else {
- // Convert all strong/em to b/i
- content = tinyMCE.regexpReplace(content, "", "", "gi");
- content = tinyMCE.regexpReplace(content, "", "", "gi");
- inst.getBody().innerHTML = content;
- }
-
- inst.convertAllRelativeURLs();
- } else {
- if (tinyMCE.settings['cleanup_on_startup']) {
- tinyMCE._setHTML(inst.getDoc(), content);
- // Produces permission denied error in MSIE 5.5
- eval('try {inst.getBody().innerHTML = tinyMCE._cleanupHTML(inst.contentDocument, this.settings, inst.getBody());} catch(e) {}');
- } else
- inst.getBody().innerHTML = content;
- }
-
- tinyMCE._convertOnClick(inst.getBody());
-
- // Fix for bug #957681
- //inst.getDoc().designMode = inst.getDoc().designMode;
-
- // Setup element references
- var parentElm = document.getElementById(inst.editorId + '_parent');
- if (parentElm.lastChild.nodeName.toLowerCase() == "input")
- inst.formElement = parentElm.lastChild;
- else
- inst.formElement = parentElm.nextSibling;
-
- tinyMCE.handleVisualAid(inst.getBody(), true, tinyMCE.settings['visual']);
- tinyMCE.executeCallback('setupcontent_callback', '_setupContent', 0, editor_id, inst.getBody(), inst.getDoc());
-
- // Re-add design mode on mozilla
- if (!tinyMCE.isMSIE)
- TinyMCE.prototype.addEventHandlers(editor_id);
-
- inst.startContent = inst.getBody().innerHTML;
-
- // Trigger node change, this call locks buttons for tables and so forth
- tinyMCE.selectedInstance = inst;
- tinyMCE.selectedElement = inst.contentWindow.document.body;
- tinyMCE.triggerNodeChange(false, true);
-
- // Call custom DOM cleanup
- tinyMCE._customCleanup("insert_to_editor_dom", inst.contentWindow.document.body);
-};
-
-TinyMCE.prototype.cancelEvent = function(e) {
- if (tinyMCE.isMSIE) {
- e.returnValue = false;
- e.cancelBubble = true;
- } else
- e.preventDefault();
-};
-
-TinyMCE.prototype.removeTinyMCEFormElements = function(form_obj) {
- // Disable all UI form elements that TinyMCE created
- for (var i=0; i ");
- rng.collapse(false);
- rng.select();
-
- tinyMCE.triggerNodeChange(false);
- return false;
- }
- }
-
- // Backspace or delete
- if (e.keyCode == 8 || e.keyCode == 46) {
- tinyMCE.selectedElement = e.target;
- tinyMCE.linkElement = tinyMCE.getParentElement(e.target, "a");
- tinyMCE.imgElement = tinyMCE.getParentElement(e.target, "img");
- tinyMCE.triggerNodeChange(false);
- }
-
- return false;
- break;
-
- case "keyup":
- case "keydown":
- if (e.target.editorId)
- tinyMCE.selectedInstance = tinyMCE.instances[e.target.editorId];
- else
- return;
-
- if (tinyMCE.selectedInstance)
- tinyMCE.selectedInstance.switchSettings();
-
- // Handle backspace
- if (tinyMCE.isGecko && tinyMCE.settings['force_p_newlines'] && (e.keyCode == 8 || e.keyCode == 46) && !e.shiftKey) {
- // Insert P element instead of BR
- if (tinyMCE.selectedInstance._handleBackSpace(e.type)) {
- // Cancel event
- e.preventDefault();
- return false;
- }
- }
-
- tinyMCE.selectedElement = null;
- tinyMCE.selectedNode = null;
- var elm = tinyMCE.selectedInstance.getFocusElement();
- tinyMCE.linkElement = tinyMCE.getParentElement(elm, "a");
- tinyMCE.imgElement = tinyMCE.getParentElement(elm, "img");
- tinyMCE.selectedElement = elm;
-
- // Update visualaids on tabs
- if (tinyMCE.isGecko && e.type == "keyup" && e.keyCode == 9)
- tinyMCE.handleVisualAid(tinyMCE.selectedInstance.getBody(), true, tinyMCE.settings['visual']);
-
- // Run image/link fix on Gecko if diffrent document base on paste
- if (tinyMCE.isGecko && tinyMCE.settings['document_base_url'] != "" + document.location.href && e.type == "keyup" && e.ctrlKey && e.keyCode == 86)
- tinyMCE.selectedInstance.fixBrokenURLs();
-
- // Insert space instead of
-/* if (e.type == "keydown" && e.keyCode == 32) {
- if (tinyMCE.selectedInstance._insertSpace()) {
- // Cancel event
- e.returnValue = false;
- e.cancelBubble = true;
- return false;
- }
- }*/
-
- // MSIE custom key handling
- if (tinyMCE.isMSIE && tinyMCE.settings['custom_undo_redo']) {
- // Check if it's a position key press
- var keys = new Array(13,45,36,35,33,34,37,38,39,40);
- var posKey = false;
- for (var i=0; i 18 && e.keyCode != 255)) {
- tinyMCE.selectedInstance.execCommand("mceAddUndoLevel");
- tinyMCE.selectedInstance.typing = true;
- tinyMCE.triggerNodeChange(false);
- }
-
- if (posKey && e.type == "keyup")
- tinyMCE.triggerNodeChange(false);
-
- var keys = new Array(8,46); // Backspace,Delete
- for (var i=0; i 0) {
- for (var i=0; i" + this.convertStringToXML(String.fromCharCode(160)) + "" + elementName + ">";
-
- // Is MSIE script element
- if (tinyMCE.isMSIE && elementName == "script")
- return "<" + elementName + elementAttribs + ">" + node.text + "" + elementName + ">";
-
- // Clean up children
- if (node.hasChildNodes()) {
- // Force BR
- if (elementName == "p" && tinyMCE.cleanup_force_br_newlines)
- output += "";
- else
- output += "<" + elementName + elementAttribs + ">";
-
- for (var i=0; i
";
- else
- output += "" + elementName + ">";
- } else {
- // Allways leave anchor elements open
- if (openTag)
- output += "<" + elementName + elementAttribs + ">" + elementName + ">";
- else {
- // No children
- output += "<" + elementName + elementAttribs + " />";
- }
- }
-
- return output;
-
- case 3: // Text
- // Do not convert script elements
- if (node.parentNode.nodeName.toLowerCase() == "script")
- return node.nodeValue;
-
- return this.convertStringToXML(node.nodeValue);
-
- case 8: // Comment
- return "";
-
- default: // Unknown
- return "[UNKNOWN NODETYPE " + node.nodeType + "]";
- }
-};
-
-TinyMCE.prototype.convertStringToXML = function(html_data) {
- var output = "";
-
- for (var i=0; i 127)
- output += '' + chr + ";";
- else
- output += String.fromCharCode(chr);
-
- continue;
- }
-
- // Raw entities
- if (tinyMCE.settings['entity_encoding'] == "raw") {
- output += String.fromCharCode(chr);
- continue;
- }
-
- // Named entities
- if (typeof(tinyMCE.cleanup_entities["c" + chr]) != 'undefined' && tinyMCE.cleanup_entities["c" + chr] != '')
- output += '&' + tinyMCE.cleanup_entities["c" + chr] + ';';
- else
- output += '' + String.fromCharCode(chr);
- }
-
- return output;
-};
-
-TinyMCE.prototype._getCleanupElementName = function(chunk) {
- var pos;
-
- if (chunk.charAt(0) == '+')
- chunk = chunk.substring(1);
-
- if ((pos = chunk.indexOf('/')) != -1)
- chunk = chunk.substring(0, pos);
-
- if ((pos = chunk.indexOf('[')) != -1)
- chunk = chunk.substring(0, pos);
-
- return chunk;
-};
-
-TinyMCE.prototype._initCleanup = function() {
- // Parse valid elements and attributes
- var validElements = tinyMCE.settings["valid_elements"];
- validElements = validElements.split(',');
-
- // Handle extended valid elements
- var extendedValidElements = tinyMCE.settings["extended_valid_elements"];
- extendedValidElements = extendedValidElements.split(',');
- for (var i=0; i[ \n\r]* [ \n\r]*', ' ', 'gi');
- element.innerHTML = tinyMCE.regexpReplace(element.innerHTML, '', '', 'gi');
- }
-
- var html = this.cleanupNode(element);
-
- if (tinyMCE.settings['debug'])
- alert("Cleanup process executed in: " + (new Date().getTime()-startTime) + " ms.");
-
- // Remove pesky HR paragraphs
- html = tinyMCE.regexpReplace(html, '
', ' ');
- html = tinyMCE.regexpReplace(html, '
', ' ');
-
- // Remove some mozilla crap
- if (!tinyMCE.isMSIE)
- html = html.replace(new RegExp(' ', 'g'), "");
-
- if (tinyMCE.settings['apply_source_formatting']) {
- html = html.replace(new RegExp('<(p|div)([^>]*)>', 'g'), "\n<$1$2>\n");
- html = html.replace(new RegExp('<\/(p|div)([^>]*)>', 'g'), "\n$1$2>\n");
- html = html.replace(new RegExp(' ', 'g'), " \n");
- }
-
- if (tinyMCE.settings['force_br_newlines']) {
- var re = new RegExp('
', 'g');
- html = html.replace(re, " ");
- }
-
- if (tinyMCE.settings['force_p_newlines']) {
- // Remove weridness!
- var re = new RegExp('<>', 'g');
- html = html.replace(re, "");
- }
-
- if (tinyMCE.settings['remove_linebreaks'])
- html = html.replace(new RegExp('\r|\n', 'g'), ' ');
-
- // Call custom cleanup code
- html = tinyMCE._customCleanup(on_save ? "get_from_editor" : "insert_to_editor", html);
-
- // Emtpy node, return empty
- var chk = tinyMCE.regexpReplace(html, "[ \t\r\n]", "");
- if (chk == " " || chk == " " || chk == "
" || chk == "
" || chk == "
")
- html = "";
-
- if (tinyMCE.settings["preformatted"])
- return "" + html + " ";
-
- return html;
-};
-
-TinyMCE.prototype.setAttrib = function(element, name, value, no_fix_value) {
- if (!no_fix_value && value != null) {
- var re = new RegExp('[^0-9%]', 'g');
- value = value.replace(re, '');
- }
-
- if (value != null && value != "")
- element.setAttribute(name, value);
- else
- element.removeAttribute(name);
-
- if (value != null && value != "")
- element.setAttribute(name, value);
- else
- element.removeAttribute(name);
-};
-
-TinyMCE.prototype.insertLink = function(href, target, title, onclick) {
- this.execCommand("mceAddUndoLevel");
-
- if (this.selectedInstance && this.selectedElement && this.selectedElement.nodeName.toLowerCase() == "img") {
- var doc = this.selectedInstance.getDoc();
- var linkElement = tinyMCE.getParentElement(this.selectedElement, "a");
- var newLink = false;
-
- if (!linkElement) {
- linkElement = doc.createElement("a");
- newLink = true;
- }
-
- href = eval(tinyMCE.settings['urlconverter_callback'] + "(href, linkElement);");
- tinyMCE.setAttrib(linkElement, 'href', href);
- tinyMCE.setAttrib(linkElement, 'target', target);
- tinyMCE.setAttrib(linkElement, 'title', title);
- tinyMCE.setAttrib(linkElement, 'mce_onclick', onclick);
-
- if (newLink) {
- linkElement.appendChild(this.selectedElement.cloneNode(true));
- this.selectedElement.parentNode.replaceChild(linkElement, this.selectedElement);
- }
-
- return;
- }
-
- if (!this.linkElement && this.selectedInstance) {
- this.selectedInstance.contentDocument.execCommand("createlink", false, "#mce_temp_url#");
- tinyMCE.linkElement = this.getElementByAttributeValue(this.selectedInstance.contentDocument.body, "a", "href", "#mce_temp_url#");
-
- var elementArray = this.getElementsByAttributeValue(this.selectedInstance.contentDocument.body, "a", "href", "#mce_temp_url#");
-
- for (var i=0; i= strTok2.length) {
- for (var i=0; i= strTok2.length || strTok1[i] != strTok2[i]) {
- breakPoint = i + 1;
- break;
- }
- }
- }
-
- if (strTok1.length < strTok2.length) {
- for (var i=0; i= strTok1.length || strTok1[i] != strTok2[i]) {
- breakPoint = i + 1;
- break;
- }
- }
- }
-
- if (breakPoint == 1)
- return url_to_relative;
-
- for (var i=0; i<(strTok1.length-(breakPoint-1)); i++)
- outputString += "../";
-
- for (var i=breakPoint-1; i=0; i--) {
- if (baseURLParts[i].length == 0)
- continue;
-
- newBaseURLParts[newBaseURLParts.length] = baseURLParts[i];
- }
- baseURLParts = newBaseURLParts.reverse();
-
- // Merge relURLParts chunks
- var newRelURLParts = new Array();
- var numBack = 0;
- for (var i=relURLParts.length-1; i>=0; i--) {
- if (relURLParts[i].length == 0 || relURLParts[i] == ".")
- continue;
-
- if (relURLParts[i] == '..') {
- numBack++;
- continue;
- }
-
- if (numBack > 0) {
- numBack--;
- continue;
- }
-
- newRelURLParts[newRelURLParts.length] = relURLParts[i];
- }
-
- relURLParts = newRelURLParts.reverse();
-
- // Remove end from absolute path
- var len = baseURLParts.length-numBack;
- var absPath = (len <= 0 ? "" : "/") + baseURLParts.slice(0, len).join('/') + "/" + relURLParts.join('/');
- var start = "", end = "";
-
- // Build start part
- if (baseURL['protocol'])
- start += baseURL['protocol'] + "://";
-
- if (baseURL['host'])
- start += baseURL['host'];
-
- if (baseURL['port'])
- start += ":" + baseURL['port'];
-
- // Build end part
- if (relURL['query'])
- end += "?" + relURL['query'];
-
- if (relURL['anchor'])
- end += "#" + relURL['anchor'];
-
- // Re-add trailing slash if it's removed
- if (relative_url.charAt(relative_url.length-1) == "/")
- end += "/";
-
- return start + absPath + end;
-};
-
-TinyMCE.prototype.getParam = function(name, default_value, strip_whitespace, split_chr) {
- var value = (typeof(this.settings[name]) == "undefined") ? default_value : this.settings[name];
-
- // Fix bool values
- if (value == "true" || value == "false")
- return (value == "true");
-
- if (strip_whitespace)
- value = tinyMCE.regexpReplace(value, "[ \t\r\n]", "");
-
- if (typeof(split_chr) != "undefined" && split_chr != null) {
- value = value.split(split_chr);
- var outArray = new Array();
-
- for (var i=0; i 0);
-
- if (tinyMCE.settings['custom_undo_redo']) {
- undoIndex = inst.undoIndex;
- undoLevels = inst.undoLevels.length;
- }
-
- tinyMCE.executeCallback('handleNodeChangeCallback', '_handleNodeChange', 0, editorId, elm, undoIndex, undoLevels, inst.visualAid, anySelection);
- }
- }
-
- if (this.selectedInstance && (typeof(focus) == "undefined" || focus))
- this.selectedInstance.contentWindow.focus();
-};
-
-TinyMCE.prototype._customCleanup = function(type, content) {
- // Call custom cleanup
- var customCleanup = tinyMCE.settings['cleanup_callback'];
- if (customCleanup != "" && eval("typeof(" + customCleanup + ")") != "undefined")
- content = eval(customCleanup + "(type, content);");
-
- // Trigger plugin cleanups
- var plugins = tinyMCE.getParam('plugins', '', true, ',');
- for (var i=0; i 0)
- className += " ";
-
- className += classNames[i];
- }
-
- return className;
-};
-
-TinyMCE.prototype.handleVisualAid = function(element, deep, state) {
- if (!element)
- return;
-
- var tableElement = null;
-
- switch (element.nodeName.toLowerCase()) {
- case "table":
- var oldW = element.style.width;
- var oldH = element.style.height;
-
- element.className = tinyMCE.getVisualAidClass(element.className, state && element.getAttribute("border") == 0);
-
- element.style.width = oldW;
- element.style.height = oldH;
-
- for (var y=0; y ';
- return;
- }
-
- break;*/
- }
-
- if (deep && element.hasChildNodes()) {
- for (var i=0; i breaks runtime?
- if (tinyMCE.isMSIE) {
- var re = new RegExp('
', 'g');
- html_content = html_content.replace(re, " ");
- }
-
- doc.body.innerHTML = html_content;
-
- // Content duplication bug fix
- if (tinyMCE.isMSIE && tinyMCE.settings['fix_content_duplication']) {
- // Remove P elements in P elements
- var paras = doc.getElementsByTagName("P");
- for (var i=0; i<\/o:p>", " ");
- html = tinyMCE.regexpReplace(html, " <\/o:p>", "");
- html = tinyMCE.regexpReplace(html, "", "");
- html = tinyMCE.regexpReplace(html, "<\/p>", "");
- html = tinyMCE.regexpReplace(html, "
<\/p>\r\n
<\/p>", "");
- html = tinyMCE.regexpReplace(html, "
<\/p>", " ");
- html = tinyMCE.regexpReplace(html, "
\s*(
\s*)?", "
");
- html = tinyMCE.regexpReplace(html, "<\/p>\s*(<\/p>\s*)?", "
");
- }
-
- // Always set the htmlText output
- doc.body.innerHTML = html;
- }
-};
-
-TinyMCE.prototype.getImageSrc = function(str) {
- var pos = -1;
-
- if (!str)
- return "";
-
- if ((pos = str.indexOf('this.src=')) != -1) {
- var src = str.substring(pos + 10);
-
- src = src.substring(0, src.indexOf('\''));
-
- return src;
- }
-
- return "";
-};
-
-TinyMCE.prototype._getElementById = function(element_id) {
- var elm = document.getElementById(element_id);
- if (!elm) {
- // Check for element in forms
- for (var j=0; j 0) {
- var csses = null;
-
- // Just ignore any errors
- eval("try {var csses = tinyMCE.isMSIE ? doc.styleSheets(0).rules : doc.styleSheets[0].cssRules;} catch(e) {}");
- if (!csses)
- return new Array();
-
- for (var i=0; i 0)
- tinyMCE.cssClasses = output;
-
- return output;
-};
-
-TinyMCE.prototype.regexpReplace = function(in_str, reg_exp, replace_str, opts) {
- if (typeof(opts) == "undefined")
- opts = 'g';
-
- var re = new RegExp(reg_exp, opts);
- return in_str.replace(re, replace_str);
-};
-
-TinyMCE.prototype.cleanupEventStr = function(str) {
- str = "" + str;
- str = str.replace('function anonymous()\n{\n', '');
- str = str.replace('\n}', '');
-
- return str;
-};
-
-TinyMCE.prototype.getAbsPosition = function(node) {
- var pos = new Object();
-
- pos.absLeft = pos.absTop = 0;
-
- var parentNode = node;
- while (parentNode) {
- pos.absLeft += parentNode.offsetLeft;
- pos.absTop += parentNode.offsetTop;
-
- parentNode = parentNode.offsetParent;
- }
-
- return pos;
-};
-
-TinyMCE.prototype.openFileBrowser = function(field_name, url, type, win) {
- var cb = tinyMCE.getParam("file_browser_callback");
-
- this.setWindowArg("window", win);
-
- // Call to external callback
- if(eval('typeof('+cb+')') == "undefined")
- alert("Callback function: " + cb + " could not be found.");
- else
- eval(cb + "(field_name, url, type, win);");
-};
-
-TinyMCE.prototype.getControlHTML = function(control_name) {
- var themePlugins = tinyMCE.getParam('plugins', '', true, ',');
- var templateFunction;
-
- // Is it defined in any plugins
- for (var i=themePlugins.length; i>=0; i--) {
- templateFunction = 'TinyMCE_' + themePlugins[i] + "_getControlHTML";
- if (eval("typeof(" + templateFunction + ")") != 'undefined') {
- var html = eval(templateFunction + "('" + control_name + "');");
- if (html != "")
- return tinyMCE.replaceVar(html, "pluginurl", tinyMCE.baseURL + "/plugins/" + themePlugins[i]);
- }
- }
-
- return eval('TinyMCE_' + tinyMCE.settings['theme'] + "_getControlHTML" + "('" + control_name + "');");
-};
-
-TinyMCE.prototype._themeExecCommand = function(editor_id, element, command, user_interface, value) {
- var themePlugins = tinyMCE.getParam('plugins', '', true, ',');
- var templateFunction;
-
- // Is it defined in any plugins
- for (var i=themePlugins.length; i>=0; i--) {
- templateFunction = 'TinyMCE_' + themePlugins[i] + "_execCommand";
- if (eval("typeof(" + templateFunction + ")") != 'undefined') {
- if (eval(templateFunction + "(editor_id, element, command, user_interface, value);"))
- return true;
- }
- }
-
- // Theme funtion
- templateFunction = 'TinyMCE_' + tinyMCE.settings['theme'] + "_execCommand";
- if (eval("typeof(" + templateFunction + ")") != 'undefined')
- return eval(templateFunction + "(editor_id, element, command, user_interface, value);");
-
- // Pass to normal
- return false;
-};
-
-TinyMCE.prototype._getThemeFunction = function(suffix, skip_plugins) {
- if (skip_plugins)
- return 'TinyMCE_' + tinyMCE.settings['theme'] + suffix;
-
- var themePlugins = tinyMCE.getParam('plugins', '', true, ',');
- var templateFunction;
-
- // Is it defined in any plugins
- for (var i=themePlugins.length; i>=0; i--) {
- templateFunction = 'TinyMCE_' + themePlugins[i] + suffix;
- if (eval("typeof(" + templateFunction + ")") != 'undefined')
- return templateFunction;
- }
-
- return 'TinyMCE_' + tinyMCE.settings['theme'] + suffix;
-};
-
-
-TinyMCE.prototype.isFunc = function(func_name) {
- if (func_name == null || func_name == "")
- return false;
-
- return eval("typeof(" + func_name + ")") != "undefined";
-};
-
-TinyMCE.prototype.exec = function(func_name, args) {
- var str = func_name + '(';
-
- // Add all arguments
- for (var i=3; i 1 && tinyMCE.currentConfig != this.settings['index']) {
- tinyMCE.settings = this.settings;
- tinyMCE.currentConfig = this.settings['index'];
- }
-};
-
-TinyMCEControl.prototype.fixBrokenURLs = function() {
- var body = this.getBody();
-
- var elms = body.getElementsByTagName("img");
- for (var i=0; i 0)
- rng.selectNodeContents(nodes[0]);
- else
- rng.selectNodeContents(node);
- } else
- rng.selectNode(node);
-
- if (collapse) {
- // Special treatment of textnode collapse
- if (!to_start && node.nodeType == 3) {
- rng.setStart(node, node.nodeValue.length);
- rng.setEnd(node, node.nodeValue.length);
- } else
- rng.collapse(to_start);
- }
-
- sel.removeAllRanges();
- sel.addRange(rng);
- }
-
- this.scrollToNode(node);
-
- // Set selected element
- tinyMCE.selectedElement = null;
- if (node.nodeType == 1)
- tinyMCE.selectedElement = node;
-};
-
-TinyMCEControl.prototype.scrollToNode = function(node) {
- // Scroll to node position
- var pos = tinyMCE.getAbsPosition(node);
- var doc = this.getDoc();
- var scrollX = doc.body.scrollLeft + doc.documentElement.scrollLeft;
- var scrollY = doc.body.scrollTop + doc.documentElement.scrollTop;
- var height = tinyMCE.isMSIE ? document.getElementById(this.editorId).style.pixelHeight : this.targetElement.clientHeight;
-
- // Only scroll if out of visible area
- if (!tinyMCE.settings['auto_resize'] && !(node.absTop > scrollY && node.absTop < (scrollY - 25 + height)))
- this.contentWindow.scrollTo(pos.absLeft, pos.absTop - height + 25);
-};
-
-TinyMCEControl.prototype.getBody = function() {
- return this.getDoc().body;
-};
-
-TinyMCEControl.prototype.getDoc = function() {
- return this.contentWindow.document;
-};
-
-TinyMCEControl.prototype.getWin = function() {
- return this.contentWindow;
-};
-
-TinyMCEControl.prototype.getSel = function() {
- if (tinyMCE.isMSIE)
- return this.getDoc().selection;
-
- var sel = this.contentWindow.getSelection();
-
- // Fake getRangeAt
- if (tinyMCE.isSafari && !sel.getRangeAt) {
- var newSel = new Object();
- var doc = this.getDoc();
-
- function getRangeAt(idx) {
- var rng = new Object();
-
- rng.startContainer = this.focusNode;
- rng.endContainer = this.anchorNode;
- rng.commonAncestorContainer = this.focusNode;
- rng.createContextualFragment = function (html) {
- // Seems to be a tag
- if (html.charAt(0) == '<') {
- var elm = doc.createElement("div");
-
- elm.innerHTML = html;
-
- return elm.firstChild;
- }
-
- return doc.createTextNode("UNSUPPORTED, DUE TO LIMITATIONS IN SAFARI!");
- };
-
- rng.deleteContents = function () {
- doc.execCommand("Delete", false, "");
- };
-
- return rng;
- }
-
- // Patch selection
-
- newSel.focusNode = sel.baseNode;
- newSel.focusOffset = sel.baseOffset;
- newSel.anchorNode = sel.extentNode;
- newSel.anchorOffset = sel.extentOffset;
- newSel.getRangeAt = getRangeAt;
- newSel.text = "" + sel;
- newSel.realSelection = sel;
-
- newSel.toString = function () {return this.text;};
-
- return newSel;
- }
-
- return sel;
-};
-
-TinyMCEControl.prototype.getRng = function() {
- var sel = this.getSel();
- if (sel == null)
- return null;
-
- if (tinyMCE.isMSIE)
- return sel.createRange();
-
- return this.getSel().getRangeAt(0);
-};
-
-TinyMCEControl.prototype._insertPara = function(e) {
- function isEmpty(para) {
- function isEmptyHTML(html) {
- return html.replace(new RegExp('[ \t\r\n]+', 'g'), '').toLowerCase() == "";
- }
-
- // Check for images
- if (para.getElementsByTagName("img").length > 0)
- return false;
-
- // Check for tables
- if (para.getElementsByTagName("table").length > 0)
- return false;
-
- // Check for HRs
- if (para.getElementsByTagName("hr").length > 0)
- return false;
-
- // Check all textnodes
- var nodes = tinyMCE.getNodeTree(para, new Array(), 3);
- for (var i=0; i " + blockName + "><" + blockName + "> " + blockName + ">";
- paraAfter = body.childNodes[1];
- }
-
- this.selectNode(paraAfter, true, true);
-
- return true;
- }
-
- // Place first part within new paragraph
- if (startChop.nodeName == blockName)
- rngBefore.setStart(startChop, 0);
- else
- rngBefore.setStartBefore(startChop);
- rngBefore.setEnd(startNode, startOffset);
- paraBefore.appendChild(rngBefore.cloneContents());
-
- // Place secound part within new paragraph
- rngAfter.setEndAfter(endChop);
- rngAfter.setStart(endNode, endOffset);
- var contents = rngAfter.cloneContents();
- if (contents.firstChild && contents.firstChild.nodeName == blockName) {
- var nodes = contents.firstChild.childNodes;
- for (var i=0; i 0)
- rng.pasteHTML('' + rng.htmlText + "
");
-
- tinyMCE.triggerNodeChange();
- return;
- }
- }
- }
-
- switch (command) {
- case "mceSelectNode":
- this.selectNode(value);
- tinyMCE.triggerNodeChange();
- tinyMCE.selectedNode = value;
- break;
-
- case "mceSelectNodeDepth":
- var parentNode = this.getFocusElement();
- for (var i=0; parentNode; i++) {
- if (parentNode.nodeName.toLowerCase() == "body")
- break;
-
- if (parentNode.nodeName.toLowerCase() == "#text") {
- i--;
- parentNode = parentNode.parentNode;
- continue;
- }
-
- if (i == value) {
- this.selectNode(parentNode, false);
- tinyMCE.triggerNodeChange();
- tinyMCE.selectedNode = parentNode;
- return;
- }
-
- parentNode = parentNode.parentNode;
- }
-
- break;
-
- case "HiliteColor":
- if (tinyMCE.isGecko) {
- this.getDoc().execCommand("useCSS", false, false);
- this.getDoc().execCommand('hilitecolor', false, value);
- this.getDoc().execCommand("useCSS", false, true);
- } else
- this.getDoc().execCommand('BackColor', false, value);
-
- break;
-
- case "Cut":
- case "Copy":
- case "Paste":
- var cmdFailed = false;
-
- // Try executing command
- eval('try {this.getDoc().execCommand(command, user_interface, value);} catch (e) {cmdFailed = true;}');
-
- // Alert error in gecko if command failed
- if (tinyMCE.isGecko && cmdFailed) {
- // Confirm more info
- if (confirm(tinyMCE.getLang('lang_clipboard_msg')))
- window.open('http://www.mozilla.org/editor/midasdemo/securityprefs.html', 'mceExternal');
-
- return;
- } else
- tinyMCE.triggerNodeChange();
- break;
-
- case "mceSetContent":
- if (!value)
- value = "";
-
- // Call custom cleanup code
- html_content = tinyMCE._customCleanup("insert_to_editor", value);
- tinyMCE._setHTML(doc, value);
- doc.body.innerHTML = tinyMCE._cleanupHTML(doc, tinyMCE.settings, doc.body);
- tinyMCE.handleVisualAid(doc.body, true, this.visualAid);
- return true;
-
- case "mceLink":
- var selectedText = "";
-
- if (tinyMCE.isMSIE) {
- var rng = doc.selection.createRange();
- selectedText = rng.text;
- } else
- selectedText = this.getSel().toString();
-
- if (!tinyMCE.linkElement) {
- if ((tinyMCE.selectedElement.nodeName.toLowerCase() != "img") && (selectedText.length <= 0))
- return;
- }
-
- var href = "", target = "", title = "", onclick = "", action = "insert";
-
- if (tinyMCE.selectedElement.nodeName.toLowerCase() == "a")
- tinyMCE.linkElement = tinyMCE.selectedElement;
-
- // Is anchor not a link
- if (tinyMCE.linkElement != null && tinyMCE.getAttrib(tinyMCE.linkElement, 'href') == "")
- tinyMCE.linkElement = null;
-
- if (tinyMCE.linkElement) {
- href = tinyMCE.getAttrib(tinyMCE.linkElement, 'href');
- target = tinyMCE.getAttrib(tinyMCE.linkElement, 'target');
- title = tinyMCE.getAttrib(tinyMCE.linkElement, 'title');
- onclick = tinyMCE.getAttrib(tinyMCE.linkElement, 'mce_onclick');
-
- // Try old onclick to if copy/pasted content
- if (onclick == "")
- onclick = tinyMCE.getAttrib(tinyMCE.linkElement, 'onclick');
-
- onclick = tinyMCE.cleanupEventStr(onclick);
-
- // Fix for drag-drop/copy paste bug in Mozilla
- mceRealHref = tinyMCE.getAttrib(tinyMCE.linkElement, 'mce_real_href');
- if (mceRealHref != "")
- href = mceRealHref;
-
- href = eval(tinyMCE.settings['urlconverter_callback'] + "(href, tinyMCE.linkElement, true);");
- action = "update";
- }
-
- if (this.settings['insertlink_callback']) {
- var returnVal = eval(this.settings['insertlink_callback'] + "(href, target, title, onclick, action);");
- if (returnVal && returnVal['href'])
- tinyMCE.insertLink(returnVal['href'], returnVal['target'], returnVal['title'], returnVal['onclick']);
- } else {
- tinyMCE.openWindow(this.insertLinkTemplate, {href : href, target : target, title : title, onclick : onclick, action : action});
- }
- break;
-
- case "mceImage":
- var src = "", alt = "", border = "", hspace = "", vspace = "", width = "", height = "", align = "";
- var title = "", onmouseover = "", onmouseout = "", action = "insert";
- var img = tinyMCE.imgElement;
-
- if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "img") {
- img = tinyMCE.selectedElement;
- tinyMCE.imgElement = img;
- }
-
- if (img) {
- // Is it a internal MCE visual aid image, then skip this one.
- if (tinyMCE.getAttrib(img, 'name').indexOf('mce_') == 0)
- return;
-
- src = tinyMCE.getAttrib(img, 'src');
- alt = tinyMCE.getAttrib(img, 'alt');
-
- // Try polling out the title
- if (alt == "")
- alt = tinyMCE.getAttrib(img, 'title');
-
- // Fix width/height attributes if the styles is specified
- if (tinyMCE.isGecko) {
- var w = img.style.width;
- if (w != null && w != "")
- img.setAttribute("width", w);
-
- var h = img.style.height;
- if (h != null && h != "")
- img.setAttribute("height", h);
- }
-
- border = tinyMCE.getAttrib(img, 'border');
- hspace = tinyMCE.getAttrib(img, 'hspace');
- vspace = tinyMCE.getAttrib(img, 'vspace');
- width = tinyMCE.getAttrib(img, 'width');
- height = tinyMCE.getAttrib(img, 'height');
- align = tinyMCE.getAttrib(img, 'align');
- onmouseover = tinyMCE.getAttrib(img, 'onmouseover');
- onmouseout = tinyMCE.getAttrib(img, 'onmouseout');
- title = tinyMCE.getAttrib(img, 'title');
-
- // Is realy specified?
- if (tinyMCE.isMSIE) {
- width = img.attributes['width'].specified ? width : "";
- height = img.attributes['height'].specified ? height : "";
- }
-
- onmouseover = tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseover));
- onmouseout = tinyMCE.getImageSrc(tinyMCE.cleanupEventStr(onmouseout));
-
- // Fix for drag-drop/copy paste bug in Mozilla
- mceRealSrc = tinyMCE.getAttrib(img, 'mce_real_src');
- if (mceRealSrc != "")
- src = mceRealSrc;
-
- src = eval(tinyMCE.settings['urlconverter_callback'] + "(src, img, true);");
-
- if (onmouseover != "")
- onmouseover = eval(tinyMCE.settings['urlconverter_callback'] + "(onmouseover, img, true);");
-
- if (onmouseout != "")
- onmouseout = eval(tinyMCE.settings['urlconverter_callback'] + "(onmouseout, img, true);");
-
- action = "update";
- }
-
- if (this.settings['insertimage_callback']) {
- var returnVal = eval(this.settings['insertimage_callback'] + "(src, alt, border, hspace, vspace, width, height, align, title, onmouseover, onmouseout, action);");
- if (returnVal && returnVal['src'])
- tinyMCE.insertImage(returnVal['src'], returnVal['alt'], returnVal['border'], returnVal['hspace'], returnVal['vspace'], returnVal['width'], returnVal['height'], returnVal['align'], returnVal['title'], returnVal['onmouseover'], returnVal['onmouseout']);
- } else
- tinyMCE.openWindow(this.insertImageTemplate, {src : src, alt : alt, border : border, hspace : hspace, vspace : vspace, width : width, height : height, align : align, title : title, onmouseover : onmouseover, onmouseout : onmouseout, action : action});
- break;
-
- case "mceCleanupWord":
- if (tinyMCE.isMSIE) {
- var html = this.getBody().createTextRange().htmlText;
-
- if (html.indexOf('="mso') != -1) {
- tinyMCE._setHTML(this.contentDocument, this.getBody().innerHTML);
- html = tinyMCE._cleanupHTML(this.contentDocument, this.settings, this.getBody(), this.visualAid);
- }
-
- this.getBody().innerHTML = html;
- }
- break;
-
- case "mceCleanup":
- tinyMCE._setHTML(this.contentDocument, this.getBody().innerHTML);
- this.getBody().innerHTML = tinyMCE._cleanupHTML(this.contentDocument, this.settings, this.getBody(), this.visualAid);
- tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid);
- this.repaint();
- tinyMCE.triggerNodeChange();
- break;
-
- case "mceAnchor":
- if (!user_interface) {
- var aElm = tinyMCE.getParentElement(this.getFocusElement(), "a", "name");
- if (aElm) {
- if (value == null || value == "") {
- if (tinyMCE.isMSIE) {
- aElm.outerHTML = aElm.innerHTML;
- } else {
- var rng = aElm.ownerDocument.createRange();
- rng.setStartBefore(aElm);
- rng.setEndAfter(aElm);
- rng.deleteContents();
- rng.insertNode(rng.createContextualFragment(aElm.innerHTML));
- }
- } else
- aElm.setAttribute('name', value);
- } else {
- this.getDoc().execCommand("fontname", false, "#mce_temp_font#");
- var elementArray = tinyMCE.getElementsByAttributeValue(this.getBody(), "font", "face", "#mce_temp_font#");
- for (var x=0; x 0) {
- value = tinyMCE.replaceVar(value, "selection", selectedText);
- tinyMCE.execCommand('mceInsertContent',false,value);
- }
-
- tinyMCE.triggerNodeChange();
- break;
-
- case "mceSetAttribute":
- if (typeof(value) == 'object') {
- var targetElms = (typeof(value['targets']) == "undefined") ? "p,img,span,div,td,h1,h2,h3,h4,h5,h6,pre,address" : value['targets'];
- var targetNode = tinyMCE.getParentElement(this.getFocusElement(), targetElms);
-
- if (targetNode) {
- targetNode.setAttribute(value['name'], value['value']);
- tinyMCE.triggerNodeChange();
- }
- }
- break;
-
- case "mceSetCSSClass":
- var selectedText = false;
-
- if (tinyMCE.isMSIE) {
- var rng = doc.selection.createRange();
- selectedText = (rng.text && rng.text.length > 0);
- } else
- selectedText = (this.getSel().toString().length > 0);
-
- // Use selectedNode instead if defined
- if (tinyMCE.selectedNode)
- tinyMCE.selectedElement = tinyMCE.selectedNode;
-
- if (selectedText && !tinyMCE.selectedNode) {
- this.getDoc().execCommand("RemoveFormat", false, null);
- if (value == null)
- return this.execCommand("RemoveFormat", false, null);
-
- this.getDoc().execCommand("fontname", false, "#mce_temp_font#");
- var elementArray = tinyMCE.getElementsByAttributeValue(this.getBody(), "font", "face", "#mce_temp_font#");
-
- // Change them all
- for (var x=0; x customUndoLevels) {
- for (var i=0; i 0) {
- this.undoIndex--;
- this.getBody().innerHTML = this.undoLevels[this.undoIndex];
- }
-
- // debug("Undo - undo levels:" + this.undoLevels.length + ", undo index: " + this.undoIndex);
- tinyMCE.triggerNodeChange();
- } else
- this.getDoc().execCommand(command, user_interface, value);
- break;
-
- case "Redo":
- if (tinyMCE.settings['custom_undo_redo']) {
- if (this.undoIndex < (this.undoLevels.length-1)) {
- this.undoIndex++;
- this.getBody().innerHTML = this.undoLevels[this.undoIndex];
- // debug("Redo - undo levels:" + this.undoLevels.length + ", undo index: " + this.undoIndex);
- }
-
- tinyMCE.triggerNodeChange();
- } else
- this.getDoc().execCommand(command, user_interface, value);
- break;
-
- case "mceToggleVisualAid":
- this.visualAid = !this.visualAid;
- tinyMCE.handleVisualAid(this.getBody(), true, this.visualAid);
- tinyMCE.triggerNodeChange();
- break;
-
- case "removeformat":
- var text = this.getSelectedText();
-
- if (tinyMCE.isMSIE) {
- try {
- win.focus();
- var rng = doc.selection.createRange();
- rng.execCommand("RemoveFormat", false, null);
- rng.pasteHTML(rng.text);
- } catch (e) {
- // Do nothing
- }
- } else
- this.getDoc().execCommand(command, user_interface, value);
-
- // Remove class
- if (text.length == 0)
- this.execCommand("mceSetCSSClass", false, "");
-
- tinyMCE.triggerNodeChange();
- break;
-
- default:
- this.getDoc().execCommand(command, user_interface, value);
- tinyMCE.triggerNodeChange();
- }
-};
-
-TinyMCEControl.prototype.queryCommandValue = function(command) {
- return this.getDoc().queryCommandValue(command);
-};
-
-TinyMCEControl.prototype.queryCommandState = function(command) {
- return this.getDoc().queryCommandState(command);
-};
-
-TinyMCEControl.prototype.onAdd = function(replace_element, form_element_name, target_document) {
- var targetDoc = target_document ? target_document : document;
-
- this.targetDoc = targetDoc;
-
- tinyMCE.themeURL = tinyMCE.baseURL + "/themes/" + this.settings['theme'];
- this.settings['themeurl'] = tinyMCE.themeURL;
-
- if (!replace_element) {
- alert("Error: Could not find the target element.");
- return false;
- }
-
- var templateFunction = tinyMCE._getThemeFunction('_getInsertLinkTemplate');
- if (eval("typeof(" + templateFunction + ")") != 'undefined')
- this.insertLinkTemplate = eval(templateFunction + '(this.settings);');
-
- var templateFunction = tinyMCE._getThemeFunction('_getInsertImageTemplate');
- if (eval("typeof(" + templateFunction + ")") != 'undefined')
- this.insertImageTemplate = eval(templateFunction + '(this.settings);');
-
- var templateFunction = tinyMCE._getThemeFunction('_getEditorTemplate');
- if (eval("typeof(" + templateFunction + ")") == 'undefined') {
- alert("Error: Could not find the template function: " + templateFunction);
- return false;
- }
-
- var editorTemplate = eval(templateFunction + '(this.settings, this.editorId);');
-
- var deltaWidth = editorTemplate['delta_width'] ? editorTemplate['delta_width'] : 0;
- var deltaHeight = editorTemplate['delta_height'] ? editorTemplate['delta_height'] : 0;
- var html = '' + editorTemplate['html'];
-
- var templateFunction = tinyMCE._getThemeFunction('_handleNodeChange', true);
- if (eval("typeof(" + templateFunction + ")") != 'undefined')
- this.settings['handleNodeChangeCallback'] = templateFunction;
-
- html = tinyMCE.replaceVar(html, "editor_id", this.editorId);
- html = tinyMCE.replaceVar(html, "default_document", tinyMCE.baseURL + "/blank.htm");
- this.settings['default_document'] = tinyMCE.baseURL + "/blank.htm";
-
- this.settings['old_width'] = this.settings['width'];
- this.settings['old_height'] = this.settings['height'];
-
- // Set default width, height
- if (this.settings['width'] == -1)
- this.settings['width'] = replace_element.offsetWidth;
-
- if (this.settings['height'] == -1)
- this.settings['height'] = replace_element.offsetHeight;
-
- // Try the style width
- if (this.settings['width'] == 0)
- this.settings['width'] = replace_element.style.width;
-
- // Try the style height
- if (this.settings['height'] == 0)
- this.settings['height'] = replace_element.style.height;
-
- // If no width/height then default to 320x240, better than nothing
- if (this.settings['width'] == 0)
- this.settings['width'] = 320;
-
- if (this.settings['height'] == 0)
- this.settings['height'] = 240;
-
- this.settings['area_width'] = parseInt(this.settings['width']);
- this.settings['area_height'] = parseInt(this.settings['height']);
- this.settings['area_width'] += deltaWidth;
- this.settings['area_height'] += deltaHeight;
-
- // Special % handling
- if (("" + this.settings['width']).indexOf('%') != -1)
- this.settings['area_width'] = "100%";
-
- if (("" + this.settings['height']).indexOf('%') != -1)
- this.settings['area_height'] = "100%";
-
- if (("" + replace_element.style.width).indexOf('%') != -1) {
- this.settings['width'] = replace_element.style.width;
- this.settings['area_width'] = "100%";
- }
-
- if (("" + replace_element.style.height).indexOf('%') != -1) {
- this.settings['height'] = replace_element.style.height;
- this.settings['area_height'] = "100%";
- }
-
- html = tinyMCE.applyTemplate(html);
-
- this.settings['width'] = this.settings['old_width'];
- this.settings['height'] = this.settings['old_height'];
-
- this.visualAid = this.settings['visual'];
- this.formTargetElementId = form_element_name;
-
- // Get replace_element contents
- if (replace_element.nodeName.toLowerCase() == "textarea")
- this.startContent = replace_element.value;
- else
- this.startContent = replace_element.innerHTML;
-
- // If not text area
- if (replace_element.nodeName.toLowerCase() != "textarea") {
- this.oldTargetElement = replace_element.cloneNode(true);
-
- // Debug mode
- if (tinyMCE.settings['debug'])
- html += ' ';
- else
- html += ' ';
-
- html += ' ';
-
- // Output HTML and set editable
- if (!tinyMCE.isMSIE) {
- var rng = replace_element.ownerDocument.createRange();
- rng.setStartBefore(replace_element);
-
- var fragment = rng.createContextualFragment(html);
- replace_element.parentNode.replaceChild(fragment, replace_element);
- } else
- replace_element.outerHTML = html;
- } else {
- html += '';
-
- // Just hide the textarea element
- this.oldTargetElement = replace_element;
-
- if (!tinyMCE.settings['debug'])
- this.oldTargetElement.style.display = "none";
-
- // Output HTML and set editable
- if (!tinyMCE.isMSIE) {
- var rng = replace_element.ownerDocument.createRange();
- rng.setStartBefore(replace_element);
-
- var fragment = rng.createContextualFragment(html);
- replace_element.parentNode.insertBefore(fragment, replace_element);
- } else
- replace_element.insertAdjacentHTML("beforeBegin", html);
- }
-
- // Setup iframe
- var dynamicIFrame = false;
- var tElm = targetDoc.getElementById(this.editorId);
-
- if (!tinyMCE.isMSIE) {
- if (tElm && tElm.nodeName.toLowerCase() == "span") {
- tElm = tinyMCE._createIFrame(tElm);
- dynamicIFrame = true;
- }
-
- this.targetElement = tElm;
- this.iframeElement = tElm;
- this.contentDocument = tElm.contentDocument;
- this.contentWindow = tElm.contentWindow;
-
- //this.getDoc().designMode = "on";
- } else {
- if (tElm && tElm.nodeName.toLowerCase() == "span")
- tElm = tinyMCE._createIFrame(tElm);
- else
- tElm = targetDoc.frames[this.editorId];
-
- this.targetElement = tElm;
- this.iframeElement = targetDoc.getElementById(this.editorId);
- this.contentDocument = tElm.window.document;
- this.contentWindow = tElm.window;
- this.getDoc().designMode = "on";
- }
-
- // Setup base HTML
- var doc = this.contentDocument;
- if (dynamicIFrame) {
- var html = ""
- + ''
- + ''
- + ''
- + ' '
- + 'blank_page '
- + ' '
- + ''
- + ''
- + ''
- + '';
-
- try {
- this.getDoc().designMode = "on";
- doc.open();
- doc.write(html);
- doc.close();
- } catch (e) {
- // Failed Mozilla 1.3
- this.getDoc().location.href = tinyMCE.baseURL + "/blank.htm";
- }
- }
-
- // This timeout is needed in MSIE 5.5 for some odd reason
- // it seems that the document.frames isn't initialized yet?
- if (tinyMCE.isMSIE)
- window.setTimeout("TinyMCE.prototype.addEventHandlers('" + this.editorId + "');", 1);
-
- tinyMCE.setupContent(this.editorId, true);
-
- return true;
-};
-
-TinyMCEControl.prototype.getFocusElement = function() {
- if (tinyMCE.isMSIE) {
- var doc = this.getDoc();
- var rng = doc.selection.createRange();
-
- if (rng.collapse)
- rng.collapse(true);
-
- var elm = rng.item ? rng.item(0) : rng.parentElement();
- } else {
- var sel = this.getSel();
- var elm = (sel && sel.anchorNode) ? sel.anchorNode : null;
-
- if (tinyMCE.selectedElement != null && tinyMCE.selectedElement.nodeName.toLowerCase() == "img")
- elm = tinyMCE.selectedElement;
- }
-
- return elm;
-};
-
-// Global instances
-var tinyMCE = new TinyMCE();
-var tinyMCELang = new Array();
-
-function debug() {
- var msg = "";
-
- var elm = document.getElementById("tinymce_debug");
- if (!elm) {
- var debugDiv = document.createElement("div");
- debugDiv.setAttribute("className", "debugger");
- debugDiv.className = "debugger";
- debugDiv.innerHTML = '\
- Debug output:\
- \
- ';
-
- document.body.appendChild(debugDiv);
- elm = document.getElementById("tinymce_debug");
- }
-
- var args = this.debug.arguments;
- for (var i=0; i