summaryrefslogtreecommitdiff
path: root/program/js/tiny_mce/themes/advanced/jscripts
diff options
context:
space:
mode:
authorsvncommit <devs@roundcube.net>2006-09-14 03:49:28 +0000
committersvncommit <devs@roundcube.net>2006-09-14 03:49:28 +0000
commita0109c4933e0bfb5ed9dbcf94f932991ca689542 (patch)
tree955246969bf9da5d5335d1d7c483025fdbd50407 /program/js/tiny_mce/themes/advanced/jscripts
parentbb5ddfa0ade5fbd2ed9be16e51d4ce695252eece (diff)
Initial TinyMCE editor support (still need to work on spellcheck and skins)
Diffstat (limited to 'program/js/tiny_mce/themes/advanced/jscripts')
-rw-r--r--program/js/tiny_mce/themes/advanced/jscripts/about.js75
-rw-r--r--program/js/tiny_mce/themes/advanced/jscripts/anchor.js74
-rw-r--r--program/js/tiny_mce/themes/advanced/jscripts/charmap.js326
-rw-r--r--program/js/tiny_mce/themes/advanced/jscripts/color_picker.js108
-rw-r--r--program/js/tiny_mce/themes/advanced/jscripts/image.js81
-rw-r--r--program/js/tiny_mce/themes/advanced/jscripts/link.js70
-rw-r--r--program/js/tiny_mce/themes/advanced/jscripts/source_editor.js66
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, '&amp;');
+ name = name.replace(/\"/g, '&quot;');
+ name = name.replace(/</g, '&lt;');
+ name = name.replace(/>/g, '&gt;');
+
+ // 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 = [
+ ['&nbsp;', '&#160;', true, 'no-break space'],
+ ['&amp;', '&#38;', true, 'ampersand'],
+ ['&quot;', '&#34;', true, 'quotation mark'],
+// finance
+ ['&cent;', '&#162;', true, 'cent sign'],
+ ['&euro;', '&#8364;', true, 'euro sign'],
+ ['&pound;', '&#163;', true, 'pound sign'],
+ ['&yen;', '&#165;', true, 'yen sign'],
+// signs
+ ['&copy;', '&#169;', true, 'copyright sign'],
+ ['&reg;', '&#174;', true, 'registered sign'],
+ ['&trade;', '&#8482;', true, 'trade mark sign'],
+ ['&permil;', '&#8240;', true, 'per mille sign'],
+ ['&micro;', '&#181;', true, 'micro sign'],
+ ['&middot;', '&#183;', true, 'middle dot'],
+ ['&bull;', '&#8226;', true, 'bullet'],
+ ['&hellip;', '&#8230;', true, 'three dot leader'],
+ ['&prime;', '&#8242;', true, 'minutes / feet'],
+ ['&Prime;', '&#8243;', true, 'seconds / inches'],
+ ['&sect;', '&#167;', true, 'section sign'],
+ ['&para;', '&#182;', true, 'paragraph sign'],
+ ['&szlig;', '&#223;', true, 'sharp s / ess-zed'],
+// quotations
+ ['&lsaquo;', '&#8249;', true, 'single left-pointing angle quotation mark'],
+ ['&rsaquo;', '&#8250;', true, 'single right-pointing angle quotation mark'],
+ ['&laquo;', '&#171;', true, 'left pointing guillemet'],
+ ['&raquo;', '&#187;', true, 'right pointing guillemet'],
+ ['&lsquo;', '&#8216;', true, 'left single quotation mark'],
+ ['&rsquo;', '&#8217;', true, 'right single quotation mark'],
+ ['&ldquo;', '&#8220;', true, 'left double quotation mark'],
+ ['&rdquo;', '&#8221;', true, 'right double quotation mark'],
+ ['&sbquo;', '&#8218;', true, 'single low-9 quotation mark'],
+ ['&bdquo;', '&#8222;', true, 'double low-9 quotation mark'],
+ ['&lt;', '&#60;', true, 'less-than sign'],
+ ['&gt;', '&#62;', true, 'greater-than sign'],
+ ['&le;', '&#8804;', true, 'less-than or equal to'],
+ ['&ge;', '&#8805;', true, 'greater-than or equal to'],
+ ['&ndash;', '&#8211;', true, 'en dash'],
+ ['&mdash;', '&#8212;', true, 'em dash'],
+ ['&macr;', '&#175;', true, 'macron'],
+ ['&oline;', '&#8254;', true, 'overline'],
+ ['&curren;', '&#164;', true, 'currency sign'],
+ ['&brvbar;', '&#166;', true, 'broken bar'],
+ ['&uml;', '&#168;', true, 'diaeresis'],
+ ['&iexcl;', '&#161;', true, 'inverted exclamation mark'],
+ ['&iquest;', '&#191;', true, 'turned question mark'],
+ ['&circ;', '&#710;', true, 'circumflex accent'],
+ ['&tilde;', '&#732;', true, 'small tilde'],
+ ['&deg;', '&#176;', true, 'degree sign'],
+ ['&minus;', '&#8722;', true, 'minus sign'],
+ ['&plusmn;', '&#177;', true, 'plus-minus sign'],
+ ['&divide;', '&#247;', true, 'division sign'],
+ ['&frasl;', '&#8260;', true, 'fraction slash'],
+ ['&times;', '&#215;', true, 'multiplication sign'],
+ ['&sup1;', '&#185;', true, 'superscript one'],
+ ['&sup2;', '&#178;', true, 'superscript two'],
+ ['&sup3;', '&#179;', true, 'superscript three'],
+ ['&frac14;', '&#188;', true, 'fraction one quarter'],
+ ['&frac12;', '&#189;', true, 'fraction one half'],
+ ['&frac34;', '&#190;', true, 'fraction three quarters'],
+// math / logical
+ ['&fnof;', '&#402;', true, 'function / florin'],
+ ['&int;', '&#8747;', true, 'integral'],
+ ['&sum;', '&#8721;', true, 'n-ary sumation'],
+ ['&infin;', '&#8734;', true, 'infinity'],
+ ['&radic;', '&#8730;', true, 'square root'],
+ ['&sim;', '&#8764;', false,'similar to'],
+ ['&cong;', '&#8773;', false,'approximately equal to'],
+ ['&asymp;', '&#8776;', true, 'almost equal to'],
+ ['&ne;', '&#8800;', true, 'not equal to'],
+ ['&equiv;', '&#8801;', true, 'identical to'],
+ ['&isin;', '&#8712;', false,'element of'],
+ ['&notin;', '&#8713;', false,'not an element of'],
+ ['&ni;', '&#8715;', false,'contains as member'],
+ ['&prod;', '&#8719;', true, 'n-ary product'],
+ ['&and;', '&#8743;', false,'logical and'],
+ ['&or;', '&#8744;', false,'logical or'],
+ ['&not;', '&#172;', true, 'not sign'],
+ ['&cap;', '&#8745;', true, 'intersection'],
+ ['&cup;', '&#8746;', false,'union'],
+ ['&part;', '&#8706;', true, 'partial differential'],
+ ['&forall;', '&#8704;', false,'for all'],
+ ['&exist;', '&#8707;', false,'there exists'],
+ ['&empty;', '&#8709;', false,'diameter'],
+ ['&nabla;', '&#8711;', false,'backward difference'],
+ ['&lowast;', '&#8727;', false,'asterisk operator'],
+ ['&prop;', '&#8733;', false,'proportional to'],
+ ['&ang;', '&#8736;', false,'angle'],
+// undefined
+ ['&acute;', '&#180;', true, 'acute accent'],
+ ['&cedil;', '&#184;', true, 'cedilla'],
+ ['&ordf;', '&#170;', true, 'feminine ordinal indicator'],
+ ['&ordm;', '&#186;', true, 'masculine ordinal indicator'],
+ ['&dagger;', '&#8224;', true, 'dagger'],
+ ['&Dagger;', '&#8225;', true, 'double dagger'],
+// alphabetical special chars
+ ['&Agrave;', '&#192;', true, 'A - grave'],
+ ['&Aacute;', '&#193;', true, 'A - acute'],
+ ['&Acirc;', '&#194;', true, 'A - circumflex'],
+ ['&Atilde;', '&#195;', true, 'A - tilde'],
+ ['&Auml;', '&#196;', true, 'A - diaeresis'],
+ ['&Aring;', '&#197;', true, 'A - ring above'],
+ ['&AElig;', '&#198;', true, 'ligature AE'],
+ ['&Ccedil;', '&#199;', true, 'C - cedilla'],
+ ['&Egrave;', '&#200;', true, 'E - grave'],
+ ['&Eacute;', '&#201;', true, 'E - acute'],
+ ['&Ecirc;', '&#202;', true, 'E - circumflex'],
+ ['&Euml;', '&#203;', true, 'E - diaeresis'],
+ ['&Igrave;', '&#204;', true, 'I - grave'],
+ ['&Iacute;', '&#205;', true, 'I - acute'],
+ ['&Icirc;', '&#206;', true, 'I - circumflex'],
+ ['&Iuml;', '&#207;', true, 'I - diaeresis'],
+ ['&ETH;', '&#208;', true, 'ETH'],
+ ['&Ntilde;', '&#209;', true, 'N - tilde'],
+ ['&Ograve;', '&#210;', true, 'O - grave'],
+ ['&Oacute;', '&#211;', true, 'O - acute'],
+ ['&Ocirc;', '&#212;', true, 'O - circumflex'],
+ ['&Otilde;', '&#213;', true, 'O - tilde'],
+ ['&Ouml;', '&#214;', true, 'O - diaeresis'],
+ ['&Oslash;', '&#216;', true, 'O - slash'],
+ ['&OElig;', '&#338;', true, 'ligature OE'],
+ ['&Scaron;', '&#352;', true, 'S - caron'],
+ ['&Ugrave;', '&#217;', true, 'U - grave'],
+ ['&Uacute;', '&#218;', true, 'U - acute'],
+ ['&Ucirc;', '&#219;', true, 'U - circumflex'],
+ ['&Uuml;', '&#220;', true, 'U - diaeresis'],
+ ['&Yacute;', '&#221;', true, 'Y - acute'],
+ ['&Yuml;', '&#376;', true, 'Y - diaeresis'],
+ ['&THORN;', '&#222;', true, 'THORN'],
+ ['&agrave;', '&#224;', true, 'a - grave'],
+ ['&aacute;', '&#225;', true, 'a - acute'],
+ ['&acirc;', '&#226;', true, 'a - circumflex'],
+ ['&atilde;', '&#227;', true, 'a - tilde'],
+ ['&auml;', '&#228;', true, 'a - diaeresis'],
+ ['&aring;', '&#229;', true, 'a - ring above'],
+ ['&aelig;', '&#230;', true, 'ligature ae'],
+ ['&ccedil;', '&#231;', true, 'c - cedilla'],
+ ['&egrave;', '&#232;', true, 'e - grave'],
+ ['&eacute;', '&#233;', true, 'e - acute'],
+ ['&ecirc;', '&#234;', true, 'e - circumflex'],
+ ['&euml;', '&#235;', true, 'e - diaeresis'],
+ ['&igrave;', '&#236;', true, 'i - grave'],
+ ['&iacute;', '&#237;', true, 'i - acute'],
+ ['&icirc;', '&#238;', true, 'i - circumflex'],
+ ['&iuml;', '&#239;', true, 'i - diaeresis'],
+ ['&eth;', '&#240;', true, 'eth'],
+ ['&ntilde;', '&#241;', true, 'n - tilde'],
+ ['&ograve;', '&#242;', true, 'o - grave'],
+ ['&oacute;', '&#243;', true, 'o - acute'],
+ ['&ocirc;', '&#244;', true, 'o - circumflex'],
+ ['&otilde;', '&#245;', true, 'o - tilde'],
+ ['&ouml;', '&#246;', true, 'o - diaeresis'],
+ ['&oslash;', '&#248;', true, 'o slash'],
+ ['&oelig;', '&#339;', true, 'ligature oe'],
+ ['&scaron;', '&#353;', true, 's - caron'],
+ ['&ugrave;', '&#249;', true, 'u - grave'],
+ ['&uacute;', '&#250;', true, 'u - acute'],
+ ['&ucirc;', '&#251;', true, 'u - circumflex'],
+ ['&uuml;', '&#252;', true, 'u - diaeresis'],
+ ['&yacute;', '&#253;', true, 'y - acute'],
+ ['&thorn;', '&#254;', true, 'thorn'],
+ ['&yuml;', '&#255;', true, 'y - diaeresis'],
+ ['&Alpha;', '&#913;', true, 'Alpha'],
+ ['&Beta;', '&#914;', true, 'Beta'],
+ ['&Gamma;', '&#915;', true, 'Gamma'],
+ ['&Delta;', '&#916;', true, 'Delta'],
+ ['&Epsilon;', '&#917;', true, 'Epsilon'],
+ ['&Zeta;', '&#918;', true, 'Zeta'],
+ ['&Eta;', '&#919;', true, 'Eta'],
+ ['&Theta;', '&#920;', true, 'Theta'],
+ ['&Iota;', '&#921;', true, 'Iota'],
+ ['&Kappa;', '&#922;', true, 'Kappa'],
+ ['&Lambda;', '&#923;', true, 'Lambda'],
+ ['&Mu;', '&#924;', true, 'Mu'],
+ ['&Nu;', '&#925;', true, 'Nu'],
+ ['&Xi;', '&#926;', true, 'Xi'],
+ ['&Omicron;', '&#927;', true, 'Omicron'],
+ ['&Pi;', '&#928;', true, 'Pi'],
+ ['&Rho;', '&#929;', true, 'Rho'],
+ ['&Sigma;', '&#931;', true, 'Sigma'],
+ ['&Tau;', '&#932;', true, 'Tau'],
+ ['&Upsilon;', '&#933;', true, 'Upsilon'],
+ ['&Phi;', '&#934;', true, 'Phi'],
+ ['&Chi;', '&#935;', true, 'Chi'],
+ ['&Psi;', '&#936;', true, 'Psi'],
+ ['&Omega;', '&#937;', true, 'Omega'],
+ ['&alpha;', '&#945;', true, 'alpha'],
+ ['&beta;', '&#946;', true, 'beta'],
+ ['&gamma;', '&#947;', true, 'gamma'],
+ ['&delta;', '&#948;', true, 'delta'],
+ ['&epsilon;', '&#949;', true, 'epsilon'],
+ ['&zeta;', '&#950;', true, 'zeta'],
+ ['&eta;', '&#951;', true, 'eta'],
+ ['&theta;', '&#952;', true, 'theta'],
+ ['&iota;', '&#953;', true, 'iota'],
+ ['&kappa;', '&#954;', true, 'kappa'],
+ ['&lambda;', '&#955;', true, 'lambda'],
+ ['&mu;', '&#956;', true, 'mu'],
+ ['&nu;', '&#957;', true, 'nu'],
+ ['&xi;', '&#958;', true, 'xi'],
+ ['&omicron;', '&#959;', true, 'omicron'],
+ ['&pi;', '&#960;', true, 'pi'],
+ ['&rho;', '&#961;', true, 'rho'],
+ ['&sigmaf;', '&#962;', true, 'final sigma'],
+ ['&sigma;', '&#963;', true, 'sigma'],
+ ['&tau;', '&#964;', true, 'tau'],
+ ['&upsilon;', '&#965;', true, 'upsilon'],
+ ['&phi;', '&#966;', true, 'phi'],
+ ['&chi;', '&#967;', true, 'chi'],
+ ['&psi;', '&#968;', true, 'psi'],
+ ['&omega;', '&#969;', true, 'omega'],
+// symbols
+ ['&alefsym;', '&#8501;', false,'alef symbol'],
+ ['&piv;', '&#982;', false,'pi symbol'],
+ ['&real;', '&#8476;', false,'real part symbol'],
+ ['&thetasym;','&#977;', false,'theta symbol'],
+ ['&upsih;', '&#978;', false,'upsilon - hook symbol'],
+ ['&weierp;', '&#8472;', false,'Weierstrass p'],
+ ['&image;', '&#8465;', false,'imaginary part'],
+// arrows
+ ['&larr;', '&#8592;', true, 'leftwards arrow'],
+ ['&uarr;', '&#8593;', true, 'upwards arrow'],
+ ['&rarr;', '&#8594;', true, 'rightwards arrow'],
+ ['&darr;', '&#8595;', true, 'downwards arrow'],
+ ['&harr;', '&#8596;', true, 'left right arrow'],
+ ['&crarr;', '&#8629;', false,'carriage return'],
+ ['&lArr;', '&#8656;', false,'leftwards double arrow'],
+ ['&uArr;', '&#8657;', false,'upwards double arrow'],
+ ['&rArr;', '&#8658;', false,'rightwards double arrow'],
+ ['&dArr;', '&#8659;', false,'downwards double arrow'],
+ ['&hArr;', '&#8660;', false,'left right double arrow'],
+ ['&there4;', '&#8756;', false,'therefore'],
+ ['&sub;', '&#8834;', false,'subset of'],
+ ['&sup;', '&#8835;', false,'superset of'],
+ ['&nsub;', '&#8836;', false,'not a subset of'],
+ ['&sube;', '&#8838;', false,'subset of or equal to'],
+ ['&supe;', '&#8839;', false,'superset of or equal to'],
+ ['&oplus;', '&#8853;', false,'circled plus'],
+ ['&otimes;', '&#8855;', false,'circled times'],
+ ['&perp;', '&#8869;', false,'perpendicular'],
+ ['&sdot;', '&#8901;', false,'dot operator'],
+ ['&lceil;', '&#8968;', false,'left ceiling'],
+ ['&rceil;', '&#8969;', false,'right ceiling'],
+ ['&lfloor;', '&#8970;', false,'left floor'],
+ ['&rfloor;', '&#8971;', false,'right floor'],
+ ['&lang;', '&#9001;', false,'left-pointing angle bracket'],
+ ['&rang;', '&#9002;', false,'right-pointing angle bracket'],
+ ['&loz;', '&#9674;', true,'lozenge'],
+ ['&spades;', '&#9824;', false,'black spade suit'],
+ ['&clubs;', '&#9827;', true, 'black club suit'],
+ ['&hearts;', '&#9829;', true, 'black heart suit'],
+ ['&diams;', '&#9830;', true, 'black diamond suit'],
+ ['&ensp;', '&#8194;', false,'en space'],
+ ['&emsp;', '&#8195;', false,'em space'],
+ ['&thinsp;', '&#8201;', false,'thin space'],
+ ['&zwnj;', '&#8204;', false,'zero width non-joiner'],
+ ['&zwj;', '&#8205;', false,'zero width joiner'],
+ ['&lrm;', '&#8206;', false,'left-to-right mark'],
+ ['&rlm;', '&#8207;', false,'right-to-left mark'],
+ ['&shy;', '&#173;', 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">&nbsp;</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 = '&amp;' + codeA;
+ elmA.innerHTML = '&amp;' + 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>');
+}