diff options
author | svncommit <devs@roundcube.net> | 2006-09-14 03:49:28 +0000 |
---|---|---|
committer | svncommit <devs@roundcube.net> | 2006-09-14 03:49:28 +0000 |
commit | a0109c4933e0bfb5ed9dbcf94f932991ca689542 (patch) | |
tree | 955246969bf9da5d5335d1d7c483025fdbd50407 /program/js/tiny_mce/themes/advanced/jscripts | |
parent | bb5ddfa0ade5fbd2ed9be16e51d4ce695252eece (diff) |
Initial TinyMCE editor support (still need to work on spellcheck and skins)
Diffstat (limited to 'program/js/tiny_mce/themes/advanced/jscripts')
7 files changed, 800 insertions, 0 deletions
diff --git a/program/js/tiny_mce/themes/advanced/jscripts/about.js b/program/js/tiny_mce/themes/advanced/jscripts/about.js new file mode 100644 index 000000000..4e53c285b --- /dev/null +++ b/program/js/tiny_mce/themes/advanced/jscripts/about.js @@ -0,0 +1,75 @@ +function init() {
+ var inst;
+
+ tinyMCEPopup.resizeToInnerSize();
+ inst = tinyMCE.selectedInstance;
+
+ // Give FF some time
+ window.setTimeout('insertHelpIFrame();', 10);
+
+ var tcont = document.getElementById('plugintablecontainer');
+ var plugins = tinyMCE.getParam('plugins', '', true, ',');
+ if (plugins.length == 0)
+ document.getElementById('plugins_tab').style.display = 'none';
+
+ var html = "";
+ html += '<table id="plugintable">';
+ html += '<thead>';
+ html += '<tr>';
+ html += '<td>' + tinyMCE.getLang('lang_plugin') + '</td>';
+ html += '<td>' + tinyMCE.getLang('lang_author') + '</td>';
+ html += '<td>' + tinyMCE.getLang('lang_version') + '</td>';
+ html += '</tr>';
+ html += '</thead>';
+ html += '<tbody>';
+
+ for (var i=0; i<inst.plugins.length; i++) {
+ var info = getPluginInfo(inst.plugins[i]);
+
+ html += '<tr>';
+
+ if (info.infourl != null && info.infourl != '')
+ html += '<td width="50%" title="' + plugins[i] + '"><a href="' + info.infourl + '" target="mceplugin">' + info.longname + '</a></td>';
+ else
+ html += '<td width="50%" title="' + plugins[i] + '">' + info.longname + '</td>';
+
+ if (info.authorurl != null && info.authorurl != '')
+ html += '<td width="35%"><a href="' + info.authorurl + '" target="mceplugin">' + info.author + '</a></td>';
+ else
+ html += '<td width="35%">' + info.author + '</td>';
+
+ html += '<td width="15%">' + info.version + '</td>';
+ html += '</tr>';
+ }
+
+ html += '</tbody>';
+ html += '</table>';
+
+ tcont.innerHTML = html;
+}
+
+function getPluginInfo(name) {
+ if (tinyMCE.plugins[name].getInfo)
+ return tinyMCE.plugins[name].getInfo();
+
+ return {
+ longname : name,
+ authorurl : '',
+ infourl : '',
+ author : '--',
+ version : '--'
+ };
+}
+
+function insertHelpIFrame() {
+ var html = '<iframe width="100%" height="300" src="' + tinyMCE.themeURL + "/docs/" + tinyMCE.settings['docs_language'] + "/index.htm" + '"></iframe>';
+
+ document.getElementById('iframecontainer').innerHTML = html;
+
+ html = '';
+ html += '<a href="http://www.moxiecode.com" target="_blank"><img src="http://tinymce.moxiecode.com/images/gotmoxie.png" alt="Got Moxie?" border="0" /></a> ';
+ html += '<a href="http://sourceforge.net/projects/tinymce/" target="_blank"><img src="http://sourceforge.net/sflogo.php?group_id=103281" alt="Hosted By Sourceforge" border="0" /></a> ';
+ html += '<a href="http://www.freshmeat.net/projects/tinymce" target="_blank"><img src="http://tinymce.moxiecode.com/images/fm.gif" alt="Also on freshmeat" border="0" /></a> ';
+
+ document.getElementById('buttoncontainer').innerHTML = html;
+}
diff --git a/program/js/tiny_mce/themes/advanced/jscripts/anchor.js b/program/js/tiny_mce/themes/advanced/jscripts/anchor.js new file mode 100644 index 000000000..e7c1c62c5 --- /dev/null +++ b/program/js/tiny_mce/themes/advanced/jscripts/anchor.js @@ -0,0 +1,74 @@ +var action, element;
+
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+ var anchor = tinyMCE.getParentElement(inst.getFocusElement(), "a", "name");
+ var img = inst.getFocusElement();
+ action = 'insert';
+
+ if (anchor != null) {
+ element = anchor;
+ action = "update";
+ }
+
+ if (tinyMCE.getAttrib(img, "class") == "mceItemAnchor") {
+ element = img;
+ action = "update";
+ }
+
+ if (action == "update")
+ document.forms[0].anchorName.value = element.nodeName == "IMG" ? element.getAttribute("title") : element.getAttribute("name");
+
+ document.forms[0].insert.value = tinyMCE.getLang('lang_' + action, 'Insert', true);
+}
+
+function insertAnchor() {
+ var inst = tinyMCE.getInstanceById(tinyMCE.getWindowArg('editor_id'));
+ var name = document.forms[0].anchorName.value, e;
+
+ tinyMCEPopup.execCommand("mceBeginUndoLevel");
+
+ if (action == "update") {
+ if (element.nodeName == "IMG")
+ element.setAttribute("title", name);
+ else
+ element.setAttribute("name", name);
+ } else {
+ var rng = inst.getRng();
+
+ if (rng.collapse)
+ rng.collapse(false);
+
+ name = name.replace(/&/g, '&');
+ name = name.replace(/\"/g, '"');
+ name = name.replace(/</g, '<');
+ name = name.replace(/>/g, '>');
+
+ // Fix for bug #1447335
+ if (tinyMCE.isGecko)
+ html = '<a id="mceNewAnchor" name="' + name + '"></a>';
+ else
+ html = '<a name="' + name + '"></a>';
+
+ tinyMCEPopup.execCommand("mceInsertContent", false, html);
+
+ // Fix for bug #1447335 force cursor after the anchor element
+ if (tinyMCE.isGecko) {
+ e = inst.getDoc().getElementById('mceNewAnchor');
+
+ if (e) {
+ inst.selection.selectNode(e, true, false, false);
+ e.removeAttribute('id');
+ }
+ }
+
+ tinyMCE.handleVisualAid(inst.getBody(), true, inst.visualAid, inst);
+ }
+
+ tinyMCEPopup.execCommand("mceEndUndoLevel");
+
+ tinyMCE.triggerNodeChange();
+ tinyMCEPopup.close();
+}
diff --git a/program/js/tiny_mce/themes/advanced/jscripts/charmap.js b/program/js/tiny_mce/themes/advanced/jscripts/charmap.js new file mode 100644 index 000000000..eaa6a94b6 --- /dev/null +++ b/program/js/tiny_mce/themes/advanced/jscripts/charmap.js @@ -0,0 +1,326 @@ +function init() {
+ tinyMCEPopup.resizeToInnerSize();
+}
+
+var charmap = new Array();
+
+// for mor details please see w3c.org
+// now here is the complete list ;)
+
+charmap = [
+ [' ', ' ', true, 'no-break space'],
+ ['&', '&', true, 'ampersand'],
+ ['"', '"', true, 'quotation mark'],
+// finance
+ ['¢', '¢', true, 'cent sign'],
+ ['€', '€', true, 'euro sign'],
+ ['£', '£', true, 'pound sign'],
+ ['¥', '¥', true, 'yen sign'],
+// signs
+ ['©', '©', true, 'copyright sign'],
+ ['®', '®', true, 'registered sign'],
+ ['™', '™', true, 'trade mark sign'],
+ ['‰', '‰', true, 'per mille sign'],
+ ['µ', 'µ', true, 'micro sign'],
+ ['·', '·', true, 'middle dot'],
+ ['•', '•', true, 'bullet'],
+ ['…', '…', true, 'three dot leader'],
+ ['′', '′', true, 'minutes / feet'],
+ ['″', '″', true, 'seconds / inches'],
+ ['§', '§', true, 'section sign'],
+ ['¶', '¶', true, 'paragraph sign'],
+ ['ß', 'ß', true, 'sharp s / ess-zed'],
+// quotations
+ ['‹', '‹', true, 'single left-pointing angle quotation mark'],
+ ['›', '›', true, 'single right-pointing angle quotation mark'],
+ ['«', '«', true, 'left pointing guillemet'],
+ ['»', '»', true, 'right pointing guillemet'],
+ ['‘', '‘', true, 'left single quotation mark'],
+ ['’', '’', true, 'right single quotation mark'],
+ ['“', '“', true, 'left double quotation mark'],
+ ['”', '”', true, 'right double quotation mark'],
+ ['‚', '‚', true, 'single low-9 quotation mark'],
+ ['„', '„', true, 'double low-9 quotation mark'],
+ ['<', '<', true, 'less-than sign'],
+ ['>', '>', true, 'greater-than sign'],
+ ['≤', '≤', true, 'less-than or equal to'],
+ ['≥', '≥', true, 'greater-than or equal to'],
+ ['–', '–', true, 'en dash'],
+ ['—', '—', true, 'em dash'],
+ ['¯', '¯', true, 'macron'],
+ ['‾', '‾', true, 'overline'],
+ ['¤', '¤', true, 'currency sign'],
+ ['¦', '¦', true, 'broken bar'],
+ ['¨', '¨', true, 'diaeresis'],
+ ['¡', '¡', true, 'inverted exclamation mark'],
+ ['¿', '¿', true, 'turned question mark'],
+ ['ˆ', 'ˆ', true, 'circumflex accent'],
+ ['˜', '˜', true, 'small tilde'],
+ ['°', '°', true, 'degree sign'],
+ ['−', '−', true, 'minus sign'],
+ ['±', '±', true, 'plus-minus sign'],
+ ['÷', '÷', true, 'division sign'],
+ ['⁄', '⁄', true, 'fraction slash'],
+ ['×', '×', true, 'multiplication sign'],
+ ['¹', '¹', true, 'superscript one'],
+ ['²', '²', true, 'superscript two'],
+ ['³', '³', true, 'superscript three'],
+ ['¼', '¼', true, 'fraction one quarter'],
+ ['½', '½', true, 'fraction one half'],
+ ['¾', '¾', true, 'fraction three quarters'],
+// math / logical
+ ['ƒ', 'ƒ', true, 'function / florin'],
+ ['∫', '∫', true, 'integral'],
+ ['∑', '∑', true, 'n-ary sumation'],
+ ['∞', '∞', true, 'infinity'],
+ ['√', '√', true, 'square root'],
+ ['∼', '∼', false,'similar to'],
+ ['≅', '≅', false,'approximately equal to'],
+ ['≈', '≈', true, 'almost equal to'],
+ ['≠', '≠', true, 'not equal to'],
+ ['≡', '≡', true, 'identical to'],
+ ['∈', '∈', false,'element of'],
+ ['∉', '∉', false,'not an element of'],
+ ['∋', '∋', false,'contains as member'],
+ ['∏', '∏', true, 'n-ary product'],
+ ['∧', '∧', false,'logical and'],
+ ['∨', '∨', false,'logical or'],
+ ['¬', '¬', true, 'not sign'],
+ ['∩', '∩', true, 'intersection'],
+ ['∪', '∪', false,'union'],
+ ['∂', '∂', true, 'partial differential'],
+ ['∀', '∀', false,'for all'],
+ ['∃', '∃', false,'there exists'],
+ ['∅', '∅', false,'diameter'],
+ ['∇', '∇', false,'backward difference'],
+ ['∗', '∗', false,'asterisk operator'],
+ ['∝', '∝', false,'proportional to'],
+ ['∠', '∠', false,'angle'],
+// undefined
+ ['´', '´', true, 'acute accent'],
+ ['¸', '¸', true, 'cedilla'],
+ ['ª', 'ª', true, 'feminine ordinal indicator'],
+ ['º', 'º', true, 'masculine ordinal indicator'],
+ ['†', '†', true, 'dagger'],
+ ['‡', '‡', true, 'double dagger'],
+// alphabetical special chars
+ ['À', 'À', true, 'A - grave'],
+ ['Á', 'Á', true, 'A - acute'],
+ ['Â', 'Â', true, 'A - circumflex'],
+ ['Ã', 'Ã', true, 'A - tilde'],
+ ['Ä', 'Ä', true, 'A - diaeresis'],
+ ['Å', 'Å', true, 'A - ring above'],
+ ['Æ', 'Æ', true, 'ligature AE'],
+ ['Ç', 'Ç', true, 'C - cedilla'],
+ ['È', 'È', true, 'E - grave'],
+ ['É', 'É', true, 'E - acute'],
+ ['Ê', 'Ê', true, 'E - circumflex'],
+ ['Ë', 'Ë', true, 'E - diaeresis'],
+ ['Ì', 'Ì', true, 'I - grave'],
+ ['Í', 'Í', true, 'I - acute'],
+ ['Î', 'Î', true, 'I - circumflex'],
+ ['Ï', 'Ï', true, 'I - diaeresis'],
+ ['Ð', 'Ð', true, 'ETH'],
+ ['Ñ', 'Ñ', true, 'N - tilde'],
+ ['Ò', 'Ò', true, 'O - grave'],
+ ['Ó', 'Ó', true, 'O - acute'],
+ ['Ô', 'Ô', true, 'O - circumflex'],
+ ['Õ', 'Õ', true, 'O - tilde'],
+ ['Ö', 'Ö', true, 'O - diaeresis'],
+ ['Ø', 'Ø', true, 'O - slash'],
+ ['Œ', 'Œ', true, 'ligature OE'],
+ ['Š', 'Š', true, 'S - caron'],
+ ['Ù', 'Ù', true, 'U - grave'],
+ ['Ú', 'Ú', true, 'U - acute'],
+ ['Û', 'Û', true, 'U - circumflex'],
+ ['Ü', 'Ü', true, 'U - diaeresis'],
+ ['Ý', 'Ý', true, 'Y - acute'],
+ ['Ÿ', 'Ÿ', true, 'Y - diaeresis'],
+ ['Þ', 'Þ', true, 'THORN'],
+ ['à', 'à', true, 'a - grave'],
+ ['á', 'á', true, 'a - acute'],
+ ['â', 'â', true, 'a - circumflex'],
+ ['ã', 'ã', true, 'a - tilde'],
+ ['ä', 'ä', true, 'a - diaeresis'],
+ ['å', 'å', true, 'a - ring above'],
+ ['æ', 'æ', true, 'ligature ae'],
+ ['ç', 'ç', true, 'c - cedilla'],
+ ['è', 'è', true, 'e - grave'],
+ ['é', 'é', true, 'e - acute'],
+ ['ê', 'ê', true, 'e - circumflex'],
+ ['ë', 'ë', true, 'e - diaeresis'],
+ ['ì', 'ì', true, 'i - grave'],
+ ['í', 'í', true, 'i - acute'],
+ ['î', 'î', true, 'i - circumflex'],
+ ['ï', 'ï', true, 'i - diaeresis'],
+ ['ð', 'ð', true, 'eth'],
+ ['ñ', 'ñ', true, 'n - tilde'],
+ ['ò', 'ò', true, 'o - grave'],
+ ['ó', 'ó', true, 'o - acute'],
+ ['ô', 'ô', true, 'o - circumflex'],
+ ['õ', 'õ', true, 'o - tilde'],
+ ['ö', 'ö', true, 'o - diaeresis'],
+ ['ø', 'ø', true, 'o slash'],
+ ['œ', 'œ', true, 'ligature oe'],
+ ['š', 'š', true, 's - caron'],
+ ['ù', 'ù', true, 'u - grave'],
+ ['ú', 'ú', true, 'u - acute'],
+ ['û', 'û', true, 'u - circumflex'],
+ ['ü', 'ü', true, 'u - diaeresis'],
+ ['ý', 'ý', true, 'y - acute'],
+ ['þ', 'þ', true, 'thorn'],
+ ['ÿ', 'ÿ', true, 'y - diaeresis'],
+ ['Α', 'Α', true, 'Alpha'],
+ ['Β', 'Β', true, 'Beta'],
+ ['Γ', 'Γ', true, 'Gamma'],
+ ['Δ', 'Δ', true, 'Delta'],
+ ['Ε', 'Ε', true, 'Epsilon'],
+ ['Ζ', 'Ζ', true, 'Zeta'],
+ ['Η', 'Η', true, 'Eta'],
+ ['Θ', 'Θ', true, 'Theta'],
+ ['Ι', 'Ι', true, 'Iota'],
+ ['Κ', 'Κ', true, 'Kappa'],
+ ['Λ', 'Λ', true, 'Lambda'],
+ ['Μ', 'Μ', true, 'Mu'],
+ ['Ν', 'Ν', true, 'Nu'],
+ ['Ξ', 'Ξ', true, 'Xi'],
+ ['Ο', 'Ο', true, 'Omicron'],
+ ['Π', 'Π', true, 'Pi'],
+ ['Ρ', 'Ρ', true, 'Rho'],
+ ['Σ', 'Σ', true, 'Sigma'],
+ ['Τ', 'Τ', true, 'Tau'],
+ ['Υ', 'Υ', true, 'Upsilon'],
+ ['Φ', 'Φ', true, 'Phi'],
+ ['Χ', 'Χ', true, 'Chi'],
+ ['Ψ', 'Ψ', true, 'Psi'],
+ ['Ω', 'Ω', true, 'Omega'],
+ ['α', 'α', true, 'alpha'],
+ ['β', 'β', true, 'beta'],
+ ['γ', 'γ', true, 'gamma'],
+ ['δ', 'δ', true, 'delta'],
+ ['ε', 'ε', true, 'epsilon'],
+ ['ζ', 'ζ', true, 'zeta'],
+ ['η', 'η', true, 'eta'],
+ ['θ', 'θ', true, 'theta'],
+ ['ι', 'ι', true, 'iota'],
+ ['κ', 'κ', true, 'kappa'],
+ ['λ', 'λ', true, 'lambda'],
+ ['μ', 'μ', true, 'mu'],
+ ['ν', 'ν', true, 'nu'],
+ ['ξ', 'ξ', true, 'xi'],
+ ['ο', 'ο', true, 'omicron'],
+ ['π', 'π', true, 'pi'],
+ ['ρ', 'ρ', true, 'rho'],
+ ['ς', 'ς', true, 'final sigma'],
+ ['σ', 'σ', true, 'sigma'],
+ ['τ', 'τ', true, 'tau'],
+ ['υ', 'υ', true, 'upsilon'],
+ ['φ', 'φ', true, 'phi'],
+ ['χ', 'χ', true, 'chi'],
+ ['ψ', 'ψ', true, 'psi'],
+ ['ω', 'ω', true, 'omega'],
+// symbols
+ ['ℵ', 'ℵ', false,'alef symbol'],
+ ['ϖ', 'ϖ', false,'pi symbol'],
+ ['ℜ', 'ℜ', false,'real part symbol'],
+ ['ϑ','ϑ', false,'theta symbol'],
+ ['ϒ', 'ϒ', false,'upsilon - hook symbol'],
+ ['℘', '℘', false,'Weierstrass p'],
+ ['ℑ', 'ℑ', false,'imaginary part'],
+// arrows
+ ['←', '←', true, 'leftwards arrow'],
+ ['↑', '↑', true, 'upwards arrow'],
+ ['→', '→', true, 'rightwards arrow'],
+ ['↓', '↓', true, 'downwards arrow'],
+ ['↔', '↔', true, 'left right arrow'],
+ ['↵', '↵', false,'carriage return'],
+ ['⇐', '⇐', false,'leftwards double arrow'],
+ ['⇑', '⇑', false,'upwards double arrow'],
+ ['⇒', '⇒', false,'rightwards double arrow'],
+ ['⇓', '⇓', false,'downwards double arrow'],
+ ['⇔', '⇔', false,'left right double arrow'],
+ ['∴', '∴', false,'therefore'],
+ ['⊂', '⊂', false,'subset of'],
+ ['⊃', '⊃', false,'superset of'],
+ ['⊄', '⊄', false,'not a subset of'],
+ ['⊆', '⊆', false,'subset of or equal to'],
+ ['⊇', '⊇', false,'superset of or equal to'],
+ ['⊕', '⊕', false,'circled plus'],
+ ['⊗', '⊗', false,'circled times'],
+ ['⊥', '⊥', false,'perpendicular'],
+ ['⋅', '⋅', false,'dot operator'],
+ ['⌈', '⌈', false,'left ceiling'],
+ ['⌉', '⌉', false,'right ceiling'],
+ ['⌊', '⌊', false,'left floor'],
+ ['⌋', '⌋', false,'right floor'],
+ ['⟨', '〈', false,'left-pointing angle bracket'],
+ ['⟩', '〉', false,'right-pointing angle bracket'],
+ ['◊', '◊', true,'lozenge'],
+ ['♠', '♠', false,'black spade suit'],
+ ['♣', '♣', true, 'black club suit'],
+ ['♥', '♥', true, 'black heart suit'],
+ ['♦', '♦', true, 'black diamond suit'],
+ [' ', ' ', false,'en space'],
+ [' ', ' ', false,'em space'],
+ [' ', ' ', false,'thin space'],
+ ['‌', '‌', false,'zero width non-joiner'],
+ ['‍', '‍', false,'zero width joiner'],
+ ['‎', '‎', false,'left-to-right mark'],
+ ['‏', '‏', false,'right-to-left mark'],
+ ['­', '­', false,'soft hyphen']
+];
+
+function renderCharMapHTML() {
+ var charsPerRow = 20, tdWidth=20, tdHeight=20;
+ var html = '<table border="0" cellspacing="1" cellpadding="0" width="' + (tdWidth*charsPerRow) + '"><tr height="' + tdHeight + '">';
+ var cols=-1;
+ for (var i=0; i<charmap.length; i++) {
+ if (charmap[i][2]==true) {
+ cols++;
+ html += ''
+ + '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap"'
+ + ' onmouseover="this.className=\'charmapOver\';'
+ + 'previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');"'
+ + ' onmouseout="this.className=\'charmap\';"'
+ + ' nowrap="nowrap" onclick="insertChar(\'' + charmap[i][1].substring(2,charmap[i][1].length-1) + '\');"><a style="text-decoration: none;" onfocus="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" href="javascript:insertChar(\'' + charmap[i][1].substring(2,charmap[i][1].length-1) + '\');" onclick="return false;" onmousedown="return false;" title="' + charmap[i][3] + '">'
+ + charmap[i][1]
+ + '</a></td>';
+ if ((cols+1) % charsPerRow == 0)
+ html += '</tr><tr height="' + tdHeight + '">';
+ }
+ }
+ if (cols % charsPerRow > 0) {
+ var padd = charsPerRow - (cols % charsPerRow);
+ for (var i=0; i<padd-1; i++)
+ html += '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap"> </td>';
+ }
+ html += '</tr></table>';
+ document.write(html);
+}
+
+function insertChar(chr) {
+ tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';');
+
+ // Refocus in window
+ if (tinyMCEPopup.isWindow)
+ window.focus();
+
+ tinyMCEPopup.close();
+}
+
+function previewChar(codeA, codeB, codeN) {
+ var elmA = document.getElementById('codeA');
+ var elmB = document.getElementById('codeB');
+ var elmV = document.getElementById('codeV');
+ var elmN = document.getElementById('codeN');
+
+ if (codeA=='#160;') {
+ elmV.innerHTML = '__';
+ } else {
+ elmV.innerHTML = '&' + codeA;
+ }
+
+ elmB.innerHTML = '&' + codeA;
+ elmA.innerHTML = '&' + codeB;
+ elmN.innerHTML = codeN;
+}
diff --git a/program/js/tiny_mce/themes/advanced/jscripts/color_picker.js b/program/js/tiny_mce/themes/advanced/jscripts/color_picker.js new file mode 100644 index 000000000..68b5db2d6 --- /dev/null +++ b/program/js/tiny_mce/themes/advanced/jscripts/color_picker.js @@ -0,0 +1,108 @@ +function init() {
+ if (tinyMCE.isMSIE)
+ tinyMCEPopup.resizeToInnerSize();
+}
+
+function selectColor() {
+ var color = document.getElementById("selectedColorBox").value;
+
+ tinyMCEPopup.execCommand(tinyMCE.getWindowArg('command'), false, color);
+ tinyMCEPopup.close();
+}
+
+function showColor(color) {
+ document.getElementById("selectedColor").style.backgroundColor = color;
+ document.getElementById("selectedColorBox").value = color;
+}
+
+var colors = new Array(
+ "#000000","#000033","#000066","#000099","#0000cc","#0000ff","#330000","#330033",
+ "#330066","#330099","#3300cc","#3300ff","#660000","#660033","#660066","#660099",
+ "#6600cc","#6600ff","#990000","#990033","#990066","#990099","#9900cc","#9900ff",
+ "#cc0000","#cc0033","#cc0066","#cc0099","#cc00cc","#cc00ff","#ff0000","#ff0033",
+ "#ff0066","#ff0099","#ff00cc","#ff00ff","#003300","#003333","#003366","#003399",
+ "#0033cc","#0033ff","#333300","#333333","#333366","#333399","#3333cc","#3333ff",
+ "#663300","#663333","#663366","#663399","#6633cc","#6633ff","#993300","#993333",
+ "#993366","#993399","#9933cc","#9933ff","#cc3300","#cc3333","#cc3366","#cc3399",
+ "#cc33cc","#cc33ff","#ff3300","#ff3333","#ff3366","#ff3399","#ff33cc","#ff33ff",
+ "#006600","#006633","#006666","#006699","#0066cc","#0066ff","#336600","#336633",
+ "#336666","#336699","#3366cc","#3366ff","#666600","#666633","#666666","#666699",
+ "#6666cc","#6666ff","#996600","#996633","#996666","#996699","#9966cc","#9966ff",
+ "#cc6600","#cc6633","#cc6666","#cc6699","#cc66cc","#cc66ff","#ff6600","#ff6633",
+ "#ff6666","#ff6699","#ff66cc","#ff66ff","#009900","#009933","#009966","#009999",
+ "#0099cc","#0099ff","#339900","#339933","#339966","#339999","#3399cc","#3399ff",
+ "#669900","#669933","#669966","#669999","#6699cc","#6699ff","#999900","#999933",
+ "#999966","#999999","#9999cc","#9999ff","#cc9900","#cc9933","#cc9966","#cc9999",
+ "#cc99cc","#cc99ff","#ff9900","#ff9933","#ff9966","#ff9999","#ff99cc","#ff99ff",
+ "#00cc00","#00cc33","#00cc66","#00cc99","#00cccc","#00ccff","#33cc00","#33cc33",
+ "#33cc66","#33cc99","#33cccc","#33ccff","#66cc00","#66cc33","#66cc66","#66cc99",
+ "#66cccc","#66ccff","#99cc00","#99cc33","#99cc66","#99cc99","#99cccc","#99ccff",
+ "#cccc00","#cccc33","#cccc66","#cccc99","#cccccc","#ccccff","#ffcc00","#ffcc33",
+ "#ffcc66","#ffcc99","#ffcccc","#ffccff","#00ff00","#00ff33","#00ff66","#00ff99",
+ "#00ffcc","#00ffff","#33ff00","#33ff33","#33ff66","#33ff99","#33ffcc","#33ffff",
+ "#66ff00","#66ff33","#66ff66","#66ff99","#66ffcc","#66ffff","#99ff00","#99ff33",
+ "#99ff66","#99ff99","#99ffcc","#99ffff","#ccff00","#ccff33","#ccff66","#ccff99",
+ "#ccffcc","#ccffff","#ffff00","#ffff33","#ffff66","#ffff99","#ffffcc","#ffffff"
+);
+
+function convertRGBToHex(col) {
+ var re = new RegExp("rgb\\s*\\(\\s*([0-9]+).*,\\s*([0-9]+).*,\\s*([0-9]+).*\\)", "gi");
+
+ var rgb = col.replace(re, "$1,$2,$3").split(',');
+ if (rgb.length == 3) {
+ r = parseInt(rgb[0]).toString(16);
+ g = parseInt(rgb[1]).toString(16);
+ b = parseInt(rgb[2]).toString(16);
+
+ r = r.length == 1 ? '0' + r : r;
+ g = g.length == 1 ? '0' + g : g;
+ b = b.length == 1 ? '0' + b : b;
+
+ return "#" + r + g + b;
+ }
+
+ return col;
+}
+
+function convertHexToRGB(col) {
+ if (col.indexOf('#') != -1) {
+ col = col.replace(new RegExp('[^0-9A-F]', 'gi'), '');
+
+ r = parseInt(col.substring(0, 2), 16);
+ g = parseInt(col.substring(2, 4), 16);
+ b = parseInt(col.substring(4, 6), 16);
+
+ return "rgb(" + r + "," + g + "," + b + ")";
+ }
+
+ return col;
+}
+
+function renderColorMap() {
+ var html = "";
+ var inputColor = convertRGBToHex(tinyMCE.getWindowArg('input_color'));
+
+ html += '<table border="0" cellspacing="1" cellpadding="0">'
+ + '<tr>';
+ for (var i=0; i<colors.length; i++) {
+ html += '<td bgcolor="' + colors[i] + '">'
+ + '<a href="javascript:selectColor();" onfocus="showColor(\'' + colors[i] + '\');" onmouseover="showColor(\'' + colors[i] + '\');">'
+ + '<img border="0" src="images/spacer.gif" width="10" height="10" title="' + colors[i] + '" alt="' + colors[i] + '" /></a></td>';
+ if ((i+1) % 18 == 0)
+ html += '</tr><tr>';
+ }
+ html += '<tr><td colspan="18">'
+ + '<table width="100%" border="0" cellspacing="0" cellpadding="0">'
+ + '<tr><td>'
+ + '<img id="selectedColor" style="background-color:' + tinyMCE.getWindowArg('input_color') + '" border="0" src="images/spacer.gif" width="80" height="16" />'
+ + '</td><td align="right">'
+ + '<input id="selectedColorBox" name="selectedColorBox" type="text" size="7" maxlength="7" style="width:65px" value="' + inputColor + '" />'
+ + '</td></tr>'
+ + '</table>'
+ + '<div style="float: left"><input type="button" id="insert" name="insert" value="{$lang_theme_colorpicker_apply}" style="margin-top:3px" onclick="selectColor();"></div>'
+ + '<div style="float: right"><input type="button" name="cancel" value="{$lang_cancel}" style="margin-top:3px" onclick="tinyMCEPopup.close();" id="cancel" /></div>'
+ + '</td></tr>'
+ + '</table>';
+
+ document.write(html);
+}
\ No newline at end of file diff --git a/program/js/tiny_mce/themes/advanced/jscripts/image.js b/program/js/tiny_mce/themes/advanced/jscripts/image.js new file mode 100644 index 000000000..a52bfad6a --- /dev/null +++ b/program/js/tiny_mce/themes/advanced/jscripts/image.js @@ -0,0 +1,81 @@ +var url = tinyMCE.getParam("external_image_list_url");
+if (url != null) {
+ // Fix relative
+ if (url.charAt(0) != '/' && url.indexOf('://') == -1)
+ url = tinyMCE.documentBasePath + "/" + url;
+
+ document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
+}
+
+function insertImage() {
+ var src = document.forms[0].src.value;
+ var alt = document.forms[0].alt.value;
+ var border = document.forms[0].border.value;
+ var vspace = document.forms[0].vspace.value;
+ var hspace = document.forms[0].hspace.value;
+ var width = document.forms[0].width.value;
+ var height = document.forms[0].height.value;
+ var align = document.forms[0].align.options[document.forms[0].align.selectedIndex].value;
+
+ tinyMCEPopup.restoreSelection();
+ tinyMCE.themes['advanced']._insertImage(src, alt, border, hspace, vspace, width, height, align);
+ tinyMCEPopup.close();
+}
+
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ document.getElementById('srcbrowsercontainer').innerHTML = getBrowserHTML('srcbrowser','src','image','theme_advanced_image');
+
+ var formObj = document.forms[0];
+
+ for (var i=0; i<document.forms[0].align.options.length; i++) {
+ if (document.forms[0].align.options[i].value == tinyMCE.getWindowArg('align'))
+ document.forms[0].align.options.selectedIndex = i;
+ }
+
+ formObj.src.value = tinyMCE.getWindowArg('src');
+ formObj.alt.value = tinyMCE.getWindowArg('alt');
+ formObj.border.value = tinyMCE.getWindowArg('border');
+ formObj.vspace.value = tinyMCE.getWindowArg('vspace');
+ formObj.hspace.value = tinyMCE.getWindowArg('hspace');
+ formObj.width.value = tinyMCE.getWindowArg('width');
+ formObj.height.value = tinyMCE.getWindowArg('height');
+ formObj.insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true);
+
+ // Handle file browser
+ if (isVisible('srcbrowser'))
+ document.getElementById('src').style.width = '180px';
+
+ // Auto select image in list
+ if (typeof(tinyMCEImageList) != "undefined" && tinyMCEImageList.length > 0) {
+ for (var i=0; i<formObj.image_list.length; i++) {
+ if (formObj.image_list.options[i].value == tinyMCE.getWindowArg('src'))
+ formObj.image_list.options[i].selected = true;
+ }
+ }
+}
+
+var preloadImg = new Image();
+
+function resetImageData() {
+ var formObj = document.forms[0];
+ formObj.width.value = formObj.height.value = "";
+}
+
+function updateImageData() {
+ var formObj = document.forms[0];
+
+ if (formObj.width.value == "")
+ formObj.width.value = preloadImg.width;
+
+ if (formObj.height.value == "")
+ formObj.height.value = preloadImg.height;
+}
+
+function getImageData() {
+ preloadImg = new Image();
+ tinyMCE.addEvent(preloadImg, "load", updateImageData);
+ tinyMCE.addEvent(preloadImg, "error", function () {var formObj = document.forms[0];formObj.width.value = formObj.height.value = "";});
+ preloadImg.src = tinyMCE.convertRelativeToAbsoluteURL(tinyMCE.settings['base_href'], document.forms[0].src.value);
+}
diff --git a/program/js/tiny_mce/themes/advanced/jscripts/link.js b/program/js/tiny_mce/themes/advanced/jscripts/link.js new file mode 100644 index 000000000..57290040d --- /dev/null +++ b/program/js/tiny_mce/themes/advanced/jscripts/link.js @@ -0,0 +1,70 @@ +var url = tinyMCE.getParam("external_link_list_url");
+if (url != null) {
+ // Fix relative
+ if (url.charAt(0) != '/' && url.indexOf('://') == -1)
+ url = tinyMCE.documentBasePath + "/" + url;
+
+ document.write('<sc'+'ript language="javascript" type="text/javascript" src="' + url + '"></sc'+'ript>');
+}
+
+function init() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ document.getElementById('hrefbrowsercontainer').innerHTML = getBrowserHTML('hrefbrowser','href','file','theme_advanced_link');
+
+ // Handle file browser
+ if (isVisible('hrefbrowser'))
+ document.getElementById('href').style.width = '180px';
+
+ var formObj = document.forms[0];
+
+ for (var i=0; i<document.forms[0].target.options.length; i++) {
+ var option = document.forms[0].target.options[i];
+
+ if (option.value == tinyMCE.getWindowArg('target'))
+ option.selected = true;
+ }
+
+ document.forms[0].href.value = tinyMCE.getWindowArg('href');
+ document.forms[0].linktitle.value = tinyMCE.getWindowArg('title');
+ document.forms[0].insert.value = tinyMCE.getLang('lang_' + tinyMCE.getWindowArg('action'), 'Insert', true);
+
+ addClassesToList('styleSelect', 'theme_advanced_link_styles');
+ selectByValue(formObj, 'styleSelect', tinyMCE.getWindowArg('className'), true);
+
+ // Hide css select row if no CSS classes
+ if (formObj.styleSelect && formObj.styleSelect.options.length <= 1) {
+ var sr = document.getElementById('styleSelectRow');
+ sr.style.display = 'none';
+ sr.parentNode.removeChild(sr);
+ }
+
+ // Auto select link in list
+ if (typeof(tinyMCELinkList) != "undefined" && tinyMCELinkList.length > 0) {
+ var formObj = document.forms[0];
+
+ for (var i=0; i<formObj.link_list.length; i++) {
+ if (formObj.link_list.options[i].value == tinyMCE.getWindowArg('href'))
+ formObj.link_list.options[i].selected = true;
+ }
+ }
+}
+
+function insertLink() {
+ var href = document.forms[0].href.value;
+ var target = document.forms[0].target.options[document.forms[0].target.selectedIndex].value;
+ var title = document.forms[0].linktitle.value;
+ var style_class = document.forms[0].styleSelect ? document.forms[0].styleSelect.value : "";
+ var dummy;
+
+ // Make anchors absolute
+ if (href.charAt(0) == '#')
+ href = tinyMCE.settings['document_base_url'] + href;
+
+ if (target == '_self')
+ target = '';
+
+ tinyMCEPopup.restoreSelection();
+ tinyMCE.themes['advanced']._insertLink(href, target, title, dummy, style_class);
+ tinyMCEPopup.close();
+}
diff --git a/program/js/tiny_mce/themes/advanced/jscripts/source_editor.js b/program/js/tiny_mce/themes/advanced/jscripts/source_editor.js new file mode 100644 index 000000000..1c1acaab7 --- /dev/null +++ b/program/js/tiny_mce/themes/advanced/jscripts/source_editor.js @@ -0,0 +1,66 @@ +function saveContent() {
+ tinyMCE.setContent(document.getElementById('htmlSource').value);
+ tinyMCE.closeWindow(window);
+}
+
+// Fixes some charcode issues
+function fixContent(html) {
+/* html = html.replace(new RegExp('<(p|hr|table|tr|td|ol|ul|object|embed|li|blockquote)', 'gi'),'\n<$1');
+ html = html.replace(new RegExp('<\/(p|ol|ul|li|table|tr|td|blockquote|object)>', 'gi'),'</$1>\n');
+ html = tinyMCE.regexpReplace(html, '<br />','<br />\n','gi');
+ html = tinyMCE.regexpReplace(html, '\n\n','\n','gi');*/
+ return html;
+}
+
+function onLoadInit() {
+ tinyMCEPopup.resizeToInnerSize();
+
+ document.forms[0].htmlSource.value = fixContent(tinyMCE.getContent(tinyMCE.getWindowArg('editor_id')));
+ resizeInputs();
+
+ if (tinyMCE.getParam("theme_advanced_source_editor_wrap", true)) {
+ setWrap('soft');
+ document.forms[0].wraped.checked = true;
+ }
+}
+
+function setWrap(val) {
+ var s = document.forms[0].htmlSource;
+
+ s.wrap = val;
+
+ if (tinyMCE.isGecko) {
+ var v = s.value;
+ var n = s.cloneNode(false);
+ n.setAttribute("wrap", val);
+ s.parentNode.replaceChild(n, s);
+ n.value = v;
+ }
+}
+
+function toggleWordWrap(elm) {
+ if (elm.checked)
+ setWrap('soft');
+ else
+ setWrap('off');
+}
+
+var wHeight=0, wWidth=0, owHeight=0, owWidth=0;
+
+function resizeInputs() {
+ if (!tinyMCE.isMSIE) {
+ wHeight = self.innerHeight-80;
+ wWidth = self.innerWidth-16;
+ } else {
+ wHeight = document.body.clientHeight - 80;
+ wWidth = document.body.clientWidth - 16;
+ }
+
+ document.forms[0].htmlSource.style.height = Math.abs(wHeight) + 'px';
+ document.forms[0].htmlSource.style.width = Math.abs(wWidth) + 'px';
+}
+
+function renderWordWrap() {
+ if (tinyMCE.isMSIE || tinyMCE.isGecko)
+ document.write('<input type="checkbox" name="wraped" id="wraped" onclick="toggleWordWrap(this);" class="wordWrapCode" /><label for="wraped">{$lang_theme_code_wordwrap}</label>');
+}
|