Browse Source

Task #2867 - The online editor: Adding a new plugin asciimath for entering mathematical formulas, based on the ASCIIMathML.js library.

Ivan Tcholakov 15 years ago
parent
commit
f42ed072f3
97 changed files with 7551 additions and 45 deletions
  1. 1 0
      documentation/changelog.html
  2. 1 0
      main/inc/global.inc.php
  3. 3453 0
      main/inc/lib/asciimath/ASCIIMathML.js
  4. 363 0
      main/inc/lib/asciimath/asciimath.html
  5. 118 0
      main/inc/lib/asciimath/asciimathcalculator.html
  6. 227 0
      main/inc/lib/asciimath/asciimathchanges.txt
  7. 117 0
      main/inc/lib/asciimath/asciimathdemo.html
  8. 76 0
      main/inc/lib/asciimath/asciimathextend.html
  9. 38 0
      main/inc/lib/asciimath/asciimathsample.html
  10. 506 0
      main/inc/lib/asciimath/asciimathsyntax.html
  11. 8 0
      main/inc/lib/asciimath/d.svg
  12. 44 0
      main/inc/lib/asciimath/filter.php
  13. 8 0
      main/inc/lib/asciimath/index.html
  14. 28 0
      main/inc/lib/asciimath/javascript.php
  15. 37 0
      main/inc/lib/asciimath/readme.txt
  16. BIN
      main/inc/lib/fckeditor/editor/plugins/asciimath/asciimath.gif
  17. 268 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/fck_asciimath.html
  18. 334 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/fck_asciimath.js
  19. 341 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/fckplugin.js
  20. 8 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/index.html
  21. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/af.js
  22. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/ar.js
  23. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/bg.js
  24. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/bn.js
  25. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/bs.js
  26. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/ca.js
  27. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/cs.js
  28. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/da.js
  29. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/de.js
  30. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/el.js
  31. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/en-au.js
  32. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/en-ca.js
  33. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/en-uk.js
  34. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/en.js
  35. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/eo.js
  36. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/es.js
  37. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/et.js
  38. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/eu.js
  39. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/fa.js
  40. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/fi.js
  41. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/fo.js
  42. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/fr-ca.js
  43. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/fr.js
  44. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/gl.js
  45. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/gu.js
  46. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/he.js
  47. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/hi.js
  48. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/hr.js
  49. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/hu.js
  50. 8 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/index.html
  51. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/is.js
  52. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/it.js
  53. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/ja.js
  54. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/km.js
  55. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/ko.js
  56. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/lt.js
  57. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/lv.js
  58. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/mn.js
  59. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/ms.js
  60. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/nb.js
  61. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/nl.js
  62. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/no.js
  63. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/pl.js
  64. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/pt-br.js
  65. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/pt.js
  66. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/ro.js
  67. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/ru.js
  68. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/sk.js
  69. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/sl.js
  70. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/sr-latn.js
  71. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/sr.js
  72. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/sv.js
  73. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/th.js
  74. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/tr.js
  75. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/uk.js
  76. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/vi.js
  77. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/zh-cn.js
  78. 22 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lang/zh.js
  79. 165 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/lgpl-3.0.txt
  80. 13 0
      main/inc/lib/fckeditor/editor/plugins/asciimath/readme.txt
  81. 82 0
      main/inc/lib/fckeditor/editor/plugins/customizations/fckplugin_load.js
  82. 1 3
      main/inc/lib/fckeditor/fckeditor.php
  83. 12 14
      main/inc/lib/fckeditor/myconfig.js
  84. 8 1
      main/inc/lib/fckeditor/myconfig.php
  85. 1 1
      main/inc/lib/fckeditor/toolbars/default/admin_templates.php
  86. 1 1
      main/inc/lib/fckeditor/toolbars/default/documents.php
  87. 1 1
      main/inc/lib/fckeditor/toolbars/default/documents_student.php
  88. 1 1
      main/inc/lib/fckeditor/toolbars/default/learning_path_documents.php
  89. 1 1
      main/inc/lib/fckeditor/toolbars/default/wiki.php
  90. 1 1
      main/inc/lib/fckeditor/toolbars/default/wiki_student.php
  91. 2 2
      main/inc/lib/fckeditor/toolbars/extended/documents.php
  92. 2 2
      main/inc/lib/fckeditor/toolbars/extended/documents_student.php
  93. 2 2
      main/inc/lib/fckeditor/toolbars/extended/learning_path_documents.php
  94. 2 2
      main/inc/lib/fckeditor/toolbars/extended/wiki.php
  95. 2 2
      main/inc/lib/fckeditor/toolbars/extended/wiki_student.php
  96. 11 3
      main/inc/lib/media.lib.php
  97. 5 8
      tests/main/inc/lib/media.lib.test.php

+ 1 - 0
documentation/changelog.html

@@ -40,6 +40,7 @@
   <li>Online editor: Preview tabs have been added to the dialogs for inserting video, flv-video, and YouTube video. (FS#2867)</li>
   <li>Online editor: The <b>audio</b> plugin has been activated by default as an implementation of the "Insert audio / Audio properties" dialog. This new plugin is intended to replace the "MP3" plugin. (FS#2867)</li>
   <li>Online editor: Configuration of the <b>mimetex</b> plugin has been reworked to gain simplicity. The procedure for configuration has been updated, see <a href="http://www.dokeos.com/forum/viewtopic.php?t=29594" target="_blank">the related forum topic</a>. (FS#2867)</li>
+  <li>Online editor: A new <b>asciimath</b> plugin for inserting mathematical formulas has been added. It is based on the <a href="http://mathcs.chapman.edu/~jipsen/mathml/asciimath.html" target="_blank">ASCIIMathML.js</a> library. (FS#2867)</li>
   <li>Online editor: The toolbar icons have been upgraded to those from CKEditor 3.0. (FS#2867)</li>
   <li>A solution has been implemented for fixing the <a href="http://bugs.adobe.com/jira/browse/FP-529" target="_blank">"__flash__removeCallback" bug</a>, which affects the media player on Internet Explorer browser. (FS#4378 and FS#2867)</li>
   <li>Implement new sub-language feature by which language terms redefinition becomes possible through the admin section (FS#4321)</li>

+ 1 - 0
main/inc/global.inc.php

@@ -219,6 +219,7 @@ require_once($lib_path.'display.lib.php');
 require_once($lib_path.'text.lib.php');
 require_once($lib_path.'security.lib.php');
 require_once($lib_path.'events.lib.inc.php');
+require_once($lib_path.'media.lib.php');
 
 // @todo: this shouldn't be done here. It should be stored correctly during installation
 if(empty($_configuration['statistics_database']) && $already_installed)

File diff suppressed because it is too large
+ 3453 - 0
main/inc/lib/asciimath/ASCIIMathML.js


+ 363 - 0
main/inc/lib/asciimath/asciimath.html

@@ -0,0 +1,363 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+          "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>ASCIIMathML: Math on the web for everyone</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<script type="text/javascript" src="ASCIIMathML.js"></script>
+<style type="text/css">
+#menu, #title, #subtitle, #author, .display {text-align: center}
+body {font-family: Arial; background-color:beige}
+p,table {font-family: Times}
+</style>
+</head>
+<body>
+
+<div id="menu">
+| <a href="asciimath.html">Home Page</a> |
+<a href="asciimathsyntax.html">Syntax</a> |
+<a href="asciimathdemo.html">Try it</a> |
+<a href="asciimathcalculator.html">Calculator</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/mathml/asciimathdownload.html">Download</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathGraphs.html">Graphs</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathFAQ.html">ASCIIMath FAQ</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathMLSandbox.html">Sandbox</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathCommentsAndSuggestions.html">Comments</a> |
+</div>
+
+<hr/>
+
+<h2 id="title">
+ASCIIMathML.js (ver 2.0): Translating ASCII math notation to MathML
+and graphics</h2>
+
+<h4 align="center">
+Would you or your students like to <i>easily</i> produce
+<i>good-looking</i> math formulas on webpages<br/>
+using a <i>simple</i> calculator-style syntax and your 
+own ASCII or HTML editor?
+<br/>
+Here is a free multi-platform solution (and if you prefer it, 
+LaTeX-style formulas also work).
+</h4>
+
+<center>
+<b><font color="red">Now even easier to use:</font> 
+<font color="green"> just add one line to your 
+HTML file to load ASCIIMathML.js
+</font></b><p>
+ASCIIMathML.js is mentioned on the <a
+href="http://www.w3.org/Math/">MathML</a> page of the <a
+href="http://www.w3.org/">World Wide Web Consortium</a>, also on <a
+href="http://mathforge.net/index.jsp">mathforge.net</a> and <a
+href="http://mathforum.org/library/resource_types/typesetting/">The
+Math Forum.</a>
+</p>
+
+<font color="red"><b>New:</b></font> Now with <b>automatic math recognition</b>
+mode, better LaTeX support and graphics integration<br/>
+A <a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathMLMoodleFilter.html">Moodle filter</a> and a <a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathMLPmWikiCookbook.html">PmWiki cookbook</a> are also available<br/>
+<a href="http://www.pierce.ctc.edu/dlippman/asciimathtex/AMT.html">ASCIIMath Image Fallback Scripts</a> by David Lippman (including a Moodle filter)<br/>
+and a <a href="http://www.maths.nottingham.ac.uk/personal/drw/lm.html">LaTeXMathML</a> version of ASCIIMathML by <a href="http://www.maths.nottingham.ac.uk/personal/drw/">Dr Douglas R. Woodall</a> 
+(<a href="http://www.maths.nott.ac.uk/personal/drw/lmtest.html">examples</a>)
+<br />
+<a href="http://math.chapman.edu/~jipsen/asciencepad/asciencepad.html">ASciencePad</a> is a WYSIWYG editor that integrates
+
+<a href="http://www.tiddlywiki.com/">TiddlyWiki</a>, ASCIIMathML and ASCIIsvg graphs.<br />
+It's free and works locally (no installation or server required).<br />
+Useful information about <a 
+href="http://www.maths.ed.ac.uk/~james/ASCIIMathMLinfo.html">ASCIIMathML</a> 
+by <a href="http://www.maths.ed.ac.uk/~james/">James Gray</a>, including 
+a nice <a href="http://www.maths.ed.ac.uk/~james/ASCIIMathTutorial.html">tutorial</a>.<br />
+ASCIIMathML also works with <a href="http://www.meyerweb.com/eric/tools/s5/">S5</a> (CSS 
+Presentation slide show; <a href="http://math.chapman.edu/~jipsen/talks/MathFest2005/JipsenMathFestSlides2005.html">S5 ASCIIMath example</a>)<br/> 
+
+and in valid
+<a href="http://math.chapman.edu/~jipsen/mathml/asciimathandmathmlsvg.xhtml">
+XHTML pages with standard MathML and SVG</a> in several browsers.
+<br/>
+ASCIIMathML is being used with Movable Type, WordPress, phpBB, and many wikis.
+<br/>
+Also available: A PHP port of ASCIIMathML.js to <a 
+href="http://www.jcphysics.com/ASCIIMath/">ASCIIMathPHP</a> by <a 
+href="mailto:kc56@cornell.edu">Steven Chan</a>.
+</center>
+
+<p>
+
+This is the main page (HTML version) for the ASCIIMathML.js script which allows
+incorporating mathematical formulas on webpages with a minimum of
+fuss (just add one line to a webpage to load the script). 
+If you like what you see, choose <b>Save As...</b> in your browser
+and this page should work equally well locally on your machine.
+</p>
+
+<p class="display">
+<b>
+This page requires Internet Explorer 6 + <a href=
+"http://www.dessci.com/en/products/mathplayer/welcome.asp">MathPlayer</a>
+or Netscape7.1/Mozilla/Firefox.
+</b>
+</p>
+
+<p>
+ASCIIMathML.js is freely available under the <a
+href="http://www.gnu.org/licenses/lgpl.html">GNU Lesser General Public
+License</a>. You can get your own copy from the <a href=
+"http://www.chapman.edu/~jipsen/mathml/asciimathdownload/">ASCIIMathML.js
+download page</a>. The script works with both HTML and XHTML webpages. 
+(The homepage for an XML 
+version is at <a href="asciimath.xml">asciimath.xml</a> but is no 
+longer maintained).
+
+</p>
+
+<p>
+If you use it on a webpage, please send me an email at <a
+href="mailto:jipsen@chapman.edu">jipsen@chapman.edu</a> with the URL
+so that I can add a link to it on the <a 
+href="http://math.chapman.edu/cgi-bin/mathxml.pl?Webpages_that_use_ASCIIMathML.js">users page</a>. 
+(Also send me an
+email if you have problems or would like to provide some feedback.)
+I'm currently using ASCIIMathML on a Wikiserver for lecture notes and
+<!--a href="http://math.chapman.edu/cgi-bin/mathxml.pl?Calculus_Text_Puzzles">Text
+Puzzles</a>. M-->my students are also using it in Moodle
+for writing and reading homework in their calculus class and 
+discrete mathematics class.
+<font color="red">
+If you just want to display MathML on HTML pages using 
+Netscape/Mozilla/Firefox or IE+MathPlayer, have a look at <a 
+href="http://www1.chapman.edu/~jipsen/mathml/mathhtml">mathhtmltest</a>
+(the page includes a 50 line JavaScript program that does the trick).
+</font>
+</p>
+
+<hr/>
+
+<p>
+<b>Let's test the ASCIIMathML.js translator on a simple example.</b>
+</p>
+
+<p>amath
+<b>Example:</b> Solving the quadratic equation. 
+Suppose a x^2+b x+c=0 and a!=0. We first 
+divide by \a to get x^2+b/a x+c/a=0. 
+
+Then we complete the square and obtain x^2+b/a x+(b/(2a))^2-(b/(2a))^2+c/a=0. 
+The first three terms factor to give (x+b/(2a))^2=(b^2)/(4a^2)-c/a.
+Now we take square roots on both sides and get
+x+b/(2a)=+-sqrt((b^2)/(4a^2)-c/a).
+
+Finally we subtract b/(2a) from both sides and simplify to get 
+the two solutions: x_(1,2)=(-b+-sqrt(b^2 - 4a c))/(2a)
+</p>
+endamath
+
+<p>
+<b>Here is the text that was typed in (<font color="red">using the new 
+auto-math-recognize mode</font> started by "a``math"):</b>
+
+</p>
+
+<pre>amath
+<b>Example:</b> Solving the quadratic equation.
+Suppose a x^2+b x+c=0 and a!=0. We first divide by \a to get x^2+b/a x+c/a=0. 
+
+Then we complete the square and obtain x^2+b/a x+(b/(2a))^2-(b/(2a))^2+c/a=0. 
+The first three terms factor to give (x+b/(2a))^2=(b^2)/(4a^2)-c/a.
+Now we take square roots on both sides and get x+b/(2a)=+-sqrt((b^2)/(4a^2)-c/a).
+
+Finally we move the b/(2a) to the right and simplify to get 
+the two solutions: x_(1,2)=(-b+-sqrt(b^2-4a c))/(2a)
+</pre>
+
+<hr/>
+
+<center>
+<b>
+If you don't believe this, copy the text and paste it on the 
+<a href="asciimathdemo.html">ASCIIMathML.js: Try it yourself</a> demo page.
+</b>
+
+</center>
+
+<hr/>
+
+<h4>
+Here are a few more examples:
+</h4>
+
+<table id="examples" border="5" cellpadding="10">
+<tr>
+<th>Type this</th>
+<th>See that</th>
+<th>Comment</th>
+</tr>
+
+<tr>
+<td>\`x^2+y_1+z_12^34\`</td>
+<td>`x^2+y_1+z_12^34`</td>
+<td>subscripts as in TeX, but numbers are treated as a unit</td>
+</tr>
+<tr>
+<td>\`sin^-1(x)\`</td>
+<td>`sin^-1(x)`</td>
+<td>function names are treated as constants</td>
+</tr>
+<tr>
+
+<td>\`d/dxf(x)=lim_(h->0)(f(x+h)-f(x))/h\`</td>
+<td>`d/dxf(x)=lim_(h->0)(f(x+h)-f(x))/h`</td>
+<td>complex subscripts are bracketed, displayed under lim</td>
+</tr>
+<tr>
+<td>\$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}\$</td>
+<td>$\frac{d}{dx}f(x)=\lim_{h\to 0}\frac{f(x+h)-f(x)}{h}$</td>
+<td>standard LaTeX notation is an alternative</td>
+</tr>
+<tr>
+<td>\`f(x)=sum_(n=0)^oo(f^((n))(a))/(n!)(x-a)^n\`</td>
+
+<td>`f(x)=sum_(n=0)^oo(f^((n))(a))/(n!)(x-a)^n`</td>
+<td>f^((n))(a) must be bracketed, else the numerator is only `a`</td>
+</tr>
+<tr>
+<td>\$f(x)=\sum_{n=0}^\infty\frac{f^{(n)}(a)}{n!}(x-a)^n\$</td>
+<td>$f(x)=\sum_{n=0}^\infty\frac{f^{(n)}(a)}{n!}(x-a)^n$</td>
+<td>standard LaTeX produces the same result</td>
+</tr>
+<tr>
+<td>\`int_0^1f(x)dx\`</td>
+<td>`int_0^1f(x)dx`</td>
+
+<td>subscripts must come before superscripts</td>
+</tr>
+<tr>
+<td>\`[[a,b],[c,d]]((n),(k))\`</td>
+<td>`[[a,b],[c,d]]((n),(k))`</td>
+<td>matrices and column vectors are simple to type</td>
+</tr>
+<tr>
+<td>\`x/x={(1,if x!=0),(text{undefined},if x=0):}\`</td>
+<td>`x/x={(1,if x!=0),(text{undefined},if x=0):}`</td>
+<td>piecewise defined function are based on matrix notation</td>
+
+</tr>
+<tr>
+<td>\`a//b\`</td>
+<td>`a//b`</td>
+<td>use // for inline fractions</td>
+</tr>
+<tr>
+<td>\`(a/b)/(c/d)\`</td>
+<td>`(a/b)/(c/d)`</td>
+<td>with brackets, multiple fraction work as expected</td>
+</tr>
+
+<tr>
+<td>\`a/b/c/d\`</td>
+<td>`a/b/c/d`</td>
+<td>without brackets the parser chooses this particular expression</td>
+</tr>
+<tr>
+<td>\`((a*b))/c\`</td>
+<td>`((a*b))/c`</td>
+<td>only one level of brackets is removed; * gives standard product</td>
+</tr>
+<tr>
+
+<td>\`sqrt sqrt root3x\`</td>
+<td>`sqrt sqrt root3x`</td>
+<td>spaces are optional, only serve to split strings that should not match</td>
+</tr>
+<tr>
+<td>\`<< a,b >> and {:(x,y),(u,v):}\`</td>
+<td>`<< a,b >> and {:(x,y),(u,v):}`</td>
+<td>angle brackets and invisible brackets</td>
+</tr>
+<tr>
+<td>\`(a,b]={x in RR | a < x <= b}\`</td>
+
+<td>`(a,b]={x in RR | a < x <= b}`</td>
+<td>grouping brackets don't have to match</td>
+</tr>
+<tr>
+<td>\`abc-123.45^-1.1\`</td>
+<td>`abc-123.45^-1.1`</td>
+<td>non-tokens are split into single characters,<br/>
+but decimal numbers are parsed with possible sign</td>
+</tr>
+
+<tr>
+<td>\`hat(ab) bar(xy) ulA vec v dotx ddot y\`</td>
+<td>`hat(ab) bar(xy) ulA vec v dotx ddot y`</td>
+<td>accents can be used on any expression (work well in IE)</td>
+</tr>
+<tr>
+<td>\`bb{AB3}.bbb(AB].cc(AB).fr{AB}.tt[AB].sf(AB)\`</td>
+<td>`bb{AB3}.bbb(AB].cc(AB).fr{AB}.tt[AB].sf(AB)`</td>
+<td>font commands; can use any brackets around argument</td>
+</tr>
+<tr>
+
+<td>\`stackrel"def"= or \stackrel{\Delta}{=}" "("or ":=)\`</td>
+<td>`stackrel"def"= or \stackrel{\Delta}{=}" "("or ":=)`</td>
+<td>symbols can be stacked</td>
+</tr>
+<tr>
+<td>\`{::}_(\ 92)^238U\`</td>
+<td>`{::}_(\ 92)^238U`</td>
+<td>prescripts simulated by subsuperscripts</td>
+</tr>
+</table>
+
+<p>
+If you are familiar with MathML, you can appreciate that this ASCII
+input form is less verbose and more readable. If you are familiar with
+TeX, this is still somewhat less cluttered. The aim is to have input
+notation that is close to graphing calculator notation, so that
+students are able to use it on webpages and in emails without having
+to learn another specialized syntax.
+</p>
+
+<p>
+For an explicit description of the input syntax see <a
+href="asciimathsyntax.html">ASCIIMathML.js Syntax and List of
+Constants</a>.
+</p>
+
+<p>
+<b>Acknowledgements:</b> Many thanks to the numerous people who have
+contributed to the fantastic MathML standard. Without such a
+well designed standard, a project like this would be impossible.<br/>
+
+Thanks to the many volunteers who implemented MathML in the
+Gecko layout engine for Netscape7/Mozilla/Firefox.<br/> 
+
+
+Thanks to the people at Design Science for producing the excellent
+MathPlayer plugin and making it freely available.<br/>
+
+Finally, thanks to the designers and implementors of JavaScript.  All
+these tools work together fairly seemlessly to allow us to put
+mathematical formulas on webpages in a convenient and inexpensive way.<br/>
+
+And thanks to Andrew White for making a logo for ASCIIMathML (see below).
+</p>
+<hr/>
+
+<div id="author">
+<a href="http://www.chapman.edu/~jipsen/">Peter Jipsen</a>, 
+<a href="http://www.chapman.edu/">Chapman University</a>, September 2007
+
+<a href="http://validator.w3.org/check/referer"><img border="0"
+src="http://www.w3.org/Icons/valid-html401"
+alt="Valid HTML 4.01!" height="31" width="88"></a>
+</div>
+
+<p><div class="display">
+<a style="color:white" href="../asciimath.html">
+<img src="asciimathml.jpeg" alt="ASCIIMathML"></a>
+</div>
+</body>
+</html>

+ 118 - 0
main/inc/lib/asciimath/asciimathcalculator.html

@@ -0,0 +1,118 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+          "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>ASCIIMath Calculator Demo</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<script type="text/javascript" src="ASCIIMathML.js"></script>
+<!--script type="text/javascript">mathfontsize=".9em"</script-->
+<style type="text/css">
+#menu, #title, #subtitle, #author {text-align: center}
+body {font-family: Arial; background-color:beige}
+p,table {font-family: Times}
+</style>
+</head>
+<body>
+
+<div id="menu">
+| <a href="asciimath.html">Home Page</a> |
+<a href="asciimathsyntax.html">Syntax</a> |
+<a href="asciimathdemo.html">Try it</a> |
+<a href="asciimathcalculator.html">Calculator</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/mathml/asciimathdownload.html">Download</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathGraphs.html">Graphs</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathFAQ.html">ASCIIMath FAQ</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathMLSandbox.html">Sandbox</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathCommentsAndSuggestions.html">Comments</a> |
+</div>
+
+<hr/>
+
+<h2 id="title">
+ASCIIMath Scientific Calculator (ver 1.2)
+</h2>
+
+<h4 align="center">
+A free webpage calculator with live MathML display
+</h4>
+
+<h4 align="center">
+This page requires Internet Explorer 6+<a 
+href="http://www.dessci.com/en/products/mathplayer">MathPlayer</a> 
+or Mozilla/Firefox/Netscape 7+.
+</h4>
+
+<div class="ASCIIMathCalculator"></div>
+
+<p>
+More calculator areas:<br>
+<textarea id="in1" rows="2" cols="40" onkeyup="calculate('in1','out1')">
+2sin^-1(1)</textarea> &nbsp; <span id="out1"></span>
+<p/>
+
+<p>
+<textarea id="in2" rows="2" cols="30" 
+onkeyup="calculate('in2','out2');calculate('in3','out3')">
+a=5; b=4; c=-1; (-b+sqrt(b^2-4a*c))/(2a)
+</textarea> &nbsp; <span id="out2"></span>
+<br/>
+<textarea id="in3" rows="1" cols="30" 
+onkeyup="calculate('in2','out2');calculate('in3','out3')">
+(-b-sqrt(b^2-4a*c))/(2a)</textarea> &nbsp; <span id="out3"></span>
+
+</p>
+
+<p>
+<b>Note that this is dynamic HTML running locally on your machine.</b>
+<br/>
+Right-click on the output to copy or view the MathML code (or have it
+<b>spoken</b> in IE+MathPlayer).
+</p>
+
+<p>
+<b>Some technical remarks:</b> This calculator works only in radians.
+(Multiply angles by pi/180 to convert from degrees to radians.)
+<br/>
+
+The syntax is loosely based on JavaScript and a subset of ASCIIMathML.
+<br/>
+The multiplication symbol * can be omitted after a digit (0-9) 
+or a closing parenthesis.
+<br/>
+Available constants and functions: 
+<br/>
+&nbsp; &nbsp; +, -, *, /, ^, pi, e, sqrt(), ln(), abs(), sign(), 
+floor(), ceil(), n!, C(n,k), ran(a,b,n)
+<br/>
+&nbsp; &nbsp; sin(), cos(), tan(), sin^-1(), cos^-1(), tan^-1(), 
+sinh(), cosh(), tanh(), sinh^-1(), cosh^-1(), tanh^-1()
+<br/>
+&nbsp; &nbsp; sec(), csc(), cot(), sec^-1(), csc^-1(), cot^-1(),
+sech(), csch(), coth(), sech^-1(), csch^-1(), coth^-1()
+
+<br/>
+Values can be assigned to (legal JavaScript) variable names. 
+Use ";" to separate expressions.
+<br/>
+Any number of calculator textareas can be placed anywhere on <b>your own</b> 
+webpages.
+</p>
+ASCIIMathML and this calculator are freely available under the 
+<a href="http://www.gnu.org/licenses/lgpl.html">GNU Lesser General
+Public License</a>. Please include a link to <a
+href="http://asciimathml.sourceforge.net">asciimathml.sourceforge.net</a>
+on any webpage that makes use of them, and send a link of your webpage
+to <a href="mailto:jipsen@chapman.edu">jipsen@chapman.edu</a>.
+
+<hr/>
+
+<div id="author">
+<a href="http://www.chapman.edu/~jipsen/">Peter Jipsen</a>, 
+<a href="http://www.chapman.edu/">Chapman University</a>, May 2007
+
+<a href="http://validator.w3.org/check/referer"><img border="0"
+src="http://www.w3.org/Icons/valid-html401"
+alt="Valid HTML 4.01!" height="31" width="88"></a>
+</div>
+</body>
+</html>

+ 227 - 0
main/inc/lib/asciimath/asciimathchanges.txt

@@ -0,0 +1,227 @@
+Changes file for ASCIIMathML.js
+===============================
+
+Sep 27, 2007 Version 2.0
+(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML20.js)
+
+- included LaTeXMathML.js and ASCIIsvg.js in the ASCIIMathML script
+
+- changed license to GNU LGPL 2.1
+
+- Added auto-math-recognize mode (amath ... endamath)
+
+- Added some LaTeX environments and simple formatting
+
+- Created Moodle filter and PmWiki cookbook
+
+- Added MathML text labels to SVG graphs
+
+- Fixed SVG cursor tracking in Firefox
+
+- Added stroke/fillopacity to graphs
+
+- Simplified syntax for graph inclusion
+
+- SVG mouseevents are now added in the scope of the graph code
+
+- MathML fontsize can now be magnified relative to surrounding text
+
+-------------------------------
+
+Aug 7, 2005 Version 1.4.7
+(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML147.js)
+
+- changed IE MathML prefix from mml: to m: (default of MathPlayer, so now
+  <html> works without the xmlns attribute)
+
+- for IE the script now writes out the <object ...> and <?import ...> tags
+  simplifying the header file significantly 
+
+- script now uses a generic onload (by www.brothercake.com) so 
+  no need for onload="translate()" in <body> (but earlier pages still work)
+
+- ASCIIMathML.js can now be used on any HTML page by just adding one line to
+  load the script. So validating your HTML pages is now possible, and use
+  of HTML editors is simple.
+
+- added unparametrized macros: put <script>newcommand("short","long")</script>
+  on your webpage and each occurrence of "short" is replaced by "long"
+
+- added /_ (\angle) and :. (\therefore) as symbols
+
+- made an ASCIIMath plugin for Xinha HTML editor (see editor link on homepage)
+  with instant preview, template popup and builtin calculator
+
+-------------------------------
+
+Apr 23, 2005 Version 1.4.6
+(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML146.js)
+
+- added "showasciiformulaonhover" variable; if true then pointing at a MathML 
+  expression shows the ascii form that produces the expression
+
+- added "decimalsign" variable; default is "."
+
+- removed "separatetokens" option (to speed up token recognition)
+
+- changed |-, |=, |_, _| to |--, |==, |__, __| to avoid parsing problems
+  e.g. |-x|, |x|=a, ||A||_1 now parse as expected
+
+- changed parser so that "-" is unary if previous token is INFIX
+  e.g. now x^-y works like x^(-y) (but x-y is same as x - y)
+
+- added "spanclassAM" option; invoked by translate(true), all math should
+  then be delimited by <span class="AM">...</span>; translate() works as before
+
+-------------------------------
+
+Jan 30, 2005 Version 1.4.5
+(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML145.js)
+
+- added TEXT token type for \text{...}, \mbox{...} and "..."
+
+- changed sin, cos, tan, ..., lcm to UNARY type (func); now 1/sinx works
+
+- changed parser so that ^, _ have priority over /
+  now x_1/3^2 works like (x_1)/(3^2)
+
+-------------------------------
+
+Jan 14, 2005 Version 1.4.4
+(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML144.js)
+
+- added "mathfontfamily" variable (default "serif")
+
+- mathcolor and mathfontfamily can be "" to inherit values of surrounding text
+
+- added "AMdelimiter" variables to set math delimiters (default "`" and "$")
+
+- added LEFTRIGHT token type for "|"; now `|x|` displays like `{:|x|:}`;
+  a single | still parses as \mid e.g. in {x | x > 0}
+
+-------------------------------
+
+Dec 28, 2004 Version 1.4.3
+(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML143.js)
+
+- added mapsto |->
+
+- fixed a parsing error that was generated by incomplete fractions (1/)
+
+- fixed parsing of negative numbers (<mn>-1</mn> is now translated to
+  <mrow><mo>-</mo><mn>1</mn></mrow>)
+
+- added notifyIfNoMathML flag. If false, no note is inserted at top of page.
+
+- included ASCIIMathCalculator.js: a small script that implements a
+  webpage calculator with live MathML preview
+
+-------------------------------
+
+Nov 12, 2004 Version 1.4.2
+(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML142.js)
+
+- added constants for: setminus, vdots, ddots, glb, lub
+
+-------------------------------
+
+Aug 16, 2004 Version 1.4.1
+(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML141.js)
+
+- fixed a typo to make the check for MathML capability work correctly
+
+- added stackrel command (mover in MathML), e.g. stackrel{def}{=}
+
+- added := as binary relation to get spacing right in Mozilla/Firefox/Netscape
+
+-------------------------------
+
+July 13, 2004 Version 1.4
+(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML4.js)
+
+- cleaned up the js code, thanks to some very helpful suggestions by Alex V. 
+
+- most global variables prefixed with "AM" to avoid conflict with ASCIIsvg.js
+
+- added macro definition ability to define dx, dy, dz, ...
+  e.g. now dx is replaced by {d x}, so `d/dx` can be used rather than `d/(dx)`.
+  Users can add their own (parameterless) macros.
+
+- added check for MathML capability. If absent, inserts note at top of page.
+
+- unmatched right bracket no longer ends expression. E.g. in `cosx]_0^1`
+  the "]" is treated simply as a constant symbol (better to use `{:cosx]_0^1`).
+
+- numeric unicode entity names can be used for unnamed symbols, e.g. `&#x2270;`
+
+-------------------------------
+
+Mar 26, 2004 Version 1.3
+(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML3.js)
+
+- fixed parser so that unary/binary symbols without arguments are treated 
+  as constants (previously generated js error)
+
+- noticed that ASCIIMathML.js does not require XML, actually works in HTML
+  on multiple browsers (required no change to the script)
+
+- added `"any"` as alternative to `text{any}`
+
+- added  min, max  as standard function names (subscripts go underneath)
+
+- added o. (\odot) as symbol
+
+- added separatetokens flag: lowercase tokens must be separated by nonletters
+  (if true, `sinx` is a sequence of 4 variables, instead use `sin x`)
+  switched off by default, can be switched on (see top of ASCIIMathML.js)
+
+- added (experimental) doubleblankmathdelimiter so  a+b  is same as `a+b`
+  switched off by default, can be switched on (see top of ASCIIMathML.js)
+
+-------------------------------
+
+Feb 8, 2004 Version 1.2
+(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML2.js)
+
+- added accents: hat bar ul vec dot ddot
+
+- added sans-serif font: sf
+
+- both `...` and $...$ are now allowed as math delimiters
+
+- \$ and \` can now be used to insert $ or ` in plain text
+
+- `a text{ sometext }b` now shows the space around "sometext"
+
+- blocks of ASCIIMathML + text can be enclosed in comments <!-- -->
+  in which case blank lines are converted to paragraph breaks;
+  inside comments the < character can be used (does not cause XML error)
+  (use this "comment mode" with caution; future versions of IE or
+   Mozilla may not display it the same way)
+
+-------------------------------
+
+Jan 9, 2004 Version 1.1
+(at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML1.js)
+
+- added \vdash, \models (actually &vDash;!), \vartheta, \bigwedge, \bigvee,
+  \bigcup, \bigcap, \propto, \oint to symbol table, with ASCII equivalents
+
+- renamed "subset, supset" to their entity names "sube, supe", 
+  added "sub, sup" and their LaTeX equivalents \subset, \supset
+
+- updated webpages
+
+-------------------------------
+
+Jan 6, 2004 Version 1.0 
+(now at http://www.chapman.edu/~jipsen/mathml/ASCIIMathML0.js)
+
+- calligraphic, black board bold and fraktur fonts are finally working 
+  also in Mozilla/Netscape 7
+
+- added a download page
+
+- added GNU GPL notices
+
+===============================

+ 117 - 0
main/inc/lib/asciimath/asciimathdemo.html

@@ -0,0 +1,117 @@
+<html>
+<head>
+<title>ASCIIMathML.js demo</title>
+<script type="text/javascript" src="ASCIIMathML.js"></script>
+<script type="text/javascript">
+translateOnLoad=false;
+function display() {
+  var str = document.getElementById("inputText").value;
+  var outnode = document.getElementById("outputNode");
+  var n = outnode.childNodes.length;
+  for (var i=0; i<n; i++)
+    outnode.removeChild(outnode.firstChild);
+  outnode.appendChild(document.createTextNode(str));
+  AMprocessNode(outnode);
+}
+</script>
+<style type="text/css">
+#menu, #title, #subtitle, #author {text-align: center}
+body {font-family: Arial; background-color:beige;}
+</style>
+</head>
+<body onload="display()">
+
+<div id="menu">
+| <a href="asciimath.html">Home Page</a> |
+<a href="asciimathsyntax.html">Syntax</a> |
+<a href="asciimathdemo.html">Try it</a> |
+<a href="asciimathcalculator.html">Calculator</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/mathml/asciimathdownload.html">Download</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathGraphs.html">Graphs</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathFAQ.html">ASCIIMath FAQ</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathMLSandbox.html">Sandbox</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathCommentsAndSuggestions.html">Comments</a> |
+</div>
+
+<hr/>
+
+<h2 id="title">
+ASCIIMathML.js: Try it yourself (HTML version)
+</h2>
+
+<center>
+<b>
+This page requires Internet Explorer 6+<a 
+href="http://www.dessci.com/en/products/mathplayer">MathPlayer</a> 
+or Mozilla/Firefox/Netscape 7+.
+</b>
+<p>
+Edit the formulas below (the display updates dynamically).
+If you know (La)TeX formula syntax, you can try some of that as well
+(LaTeX formulas work best when enclosed in $-signs).
+The "amath" token switches on the new auto-math-recognize mode.</p>
+
+<form>
+<textarea id="inputText" rows="10" cols="80" onkeyup="display()">
+amath
+
+Let's try some interesting formulas: E=m c^2
+and e^(i pi)=-1
+and AA x in CC (sin^2x+cos^2x=1)
+and one more: sum_(i=1)^n i^3=((n(n+1))/2)^2
+
+(add your own -- note that text-tokens are only recognized if separated by spaces)
+
+</textarea>
+</form>
+
+<p>
+<div id="outputNode"></div>
+</p>
+
+<hr/>
+<p>
+<b>Note that this is dynamic XHTML running locally on your machine!</b>
+<br>
+Right-click on an output formula to copy or view the MathML code.
+</p>
+</center>
+(Copy and paste the following lines to see what symbols they produce)<br/>
+<b>You can use the following ASCIIMathML constructs:</b> 
+<tt> `(x+1)/(x-1) x^(i+j) x_(ij) sqrt(x) root(n)(x) stackrel(+)(->) text(any) "any"`</tt><br/>
+<b>Operation symbols</b> 
+<tt> `+ - * ** // \\ xx -: @ o+ ox sum prod ^^ ^^^ vv vvv nn nnn uu uuu`</tt><br/>
+<b>Relation symbols</b>
+<tt> `= != &lt; &lt;= > >= -&lt; >- in !in sub sup sube supe -= ~= ~~ prop`</tt><br/>
+<b>Logical symbols</b><tt> `\and \or \not => if iff AA EE _|_ TT |-- |==`</tt><br/>
+<b>Miscellaneous symbols</b> 
+<tt> `int oint del grad +- O/ oo aleph ... cdots \  quad qquad diamond square |__ __| |~ ~| CC NN QQ RR ZZ`</tt><br/>
+<b>Standard functions</b> 
+<tt> `sin cos tan csc sec cot sinh cosh tanh log ln det dim lim mod gcd lcm`</tt><br/>
+<b>Grouping brackets</b><tt> `( ) [ ] { } (: :) {: :}` </tt> 
+<b>Arrows</b><tt> `uarr darr rarr -> larr harr rArr lArr hArr` </tt><br/>
+<b>Accents</b><tt> `hatx barx ulx vecx dotx ddotx` </tt>
+<b>Font commands</b><tt> `bbA bbbA ccA ttA frA sfA` </tt>
+<b>Matrices</b><tt> `[[a,b],[c,d]] ((1,0),(0,1))` </tt><br/>
+<b>Greek letters</b><tt> `alpha beta chi delta Delta epsi eta gamma Gamma
+iota kappa lambda Lambda mu nu omega Omega phi Phi pi Pi psi rho sigma Sigma 
+tau theta Theta upsilon xi Xi zeta`</tt> 
+
+<p>
+This demo page shows that ASCIIMathML.js can be used easily to
+dynamically preview mathematical formulas (client-side). E.g. here is a
+(beta) webpage that can be used to <b><a
+href="http://math.chapman.edu/email/">write and read
+mathematical emails and discussion group articles</a></b>. Since most
+email communication is still done with ASCII text (or at least not yet
+with XHTML), this is a reasonable (and inexpensive) solution for
+communicating with students in online math courses.
+</p>
+
+<hr/>
+<div id="author">
+<a href="http://www.chapman.edu/~jipsen/">Peter Jipsen</a>, 
+<a href="http://www.chapman.edu/">Chapman University</a>, September 2007
+</div>
+</body>
+</html>

+ 76 - 0
main/inc/lib/asciimath/asciimathextend.html

@@ -0,0 +1,76 @@
+<html>
+<head>
+<title>Extending ASCIIMathML</title>
+<script type="text/javascript" src="ASCIIMathML.js"></script>
+
+<script type="text/javascript">
+define("!<=","\u2270")
+define("!>=","\u2271")
+newcommand("\\nle","\u2270")
+newcommand("\\nge","\u2271")
+</script>
+</head>
+<body bgcolor="beige">
+
+<h2>ASCIIMathML.js: Extending the symbol table</h2>
+
+<p>
+The standard symbol table of ASCIIMathML.js does not contain many symbols.
+It can be extended by adding additional symbols on any webpage that 
+requires them. This is done by adding a few lines of JavaScript code.
+
+</p>
+
+<p>
+For example, suppose we want to add symbols for "not less or equal" and
+"not greater or equal".
+</p>
+
+<p>
+We first have to find the four-digit hexadecimal Unicode value for
+these symbols by looking them up at, say, <a
+href="http://www.w3.org/TR/MathML2/chapter6.html#chars.entity.tables">http://www.w3.org/TR/MathML2/chapter6.html#chars.entity.tables</a>
+</p>
+
+<p>
+Next we have to decide what input strings we want to associate with these
+symbols, say "!<=" and "!>=".
+</p>
+
+<p>
+Finally we add the following lines to the head or body of our HTML file:
+<pre style="border-style:groove">&lt;script type="text/javascript">
+define("!<=","\u2270")
+define("!>=","\u2271")
+&lt;/script>
+</pre>
+</p>
+
+<p>
+Here we test the modified symbol table: 
+<tt>\`a !<= b !>= c\`</tt> produces `a !<= b !>= c`
+</p>
+
+<p>To add a symbol to the LaTeX commands, use the following alternate syntax:
+<pre style="border-style:groove">&lt;script type="text/javascript">
+newcommand("\\nle","\u2270")
+newcommand("\\nge","\u2271")
+&lt;/script>
+</pre>
+</p>
+
+<p>
+Now 
+<tt>\$a \nle b \nge c\$</tt> produces $a \nle b \nge c$.
+</p>
+
+<hr/>
+<p>
+If you know the numeric entity reference of the symbol you want to use
+on an ASCIIMathML webpage, you can also refer to the symbol directly
+by using that reference. E.g \`&amp;#x2270;\` produces `&#x2270;`.
+If a symbol is only used occasionally, this is certainly the simplest
+way to include it.
+</p>
+</body>
+</html>

+ 38 - 0
main/inc/lib/asciimath/asciimathsample.html

@@ -0,0 +1,38 @@
+<html xmlns:mml="http://www.w3.org/1998/Math/MathML">
+<head>
+<script type="text/javascript" src="ASCIIMathML.js"></script>
+<title>ASCIIMathML sample page</title>
+</head>
+<body>
+
+<h2>ASCIIMathML.js sample page</h2>
+
+<p>
+Use auto-math-recognize mode (amath here x^2 and text is 
+mixed endamath) or surround ASCIIMath formulas 
+with left-quotes: 
+`sum_(i=1)^n i=(n(n+1))/2` or LaTeX formulas with \$-signs 
+$\int_0^{\pi/2} \sin x\,dx=1$.
+</p>
+
+<p>
+And here is a simple graph:
+
+agraph plot(sin(x)) endagraph
+
+followed by a more elaborate graph (try double-clicking it, also 
+while holding down shift or alt)
+
+agraph
+width=300; height=200; xmin=-5; xmax=5; xscl=1;
+plot((x-2)*(x-1)*x*(x+1)*(x+2)/2,-2.5,2.5);
+endagraph
+</p>
+
+<p>
+Note: this page uses a relative link to ASCIIMathML.js, 
+so the script should be in the same folder as this sample file.
+</p>
+
+</body>
+</html>

+ 506 - 0
main/inc/lib/asciimath/asciimathsyntax.html

@@ -0,0 +1,506 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
+          "http://www.w3.org/TR/html4/loose.dtd">
+<html>
+<head>
+<title>ASCIIMathML: Syntax and constants</title>
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
+<script type="text/javascript" src="ASCIIMathML.js"></script>
+<style type="text/css">
+#menu, #title, #subtitle, #author {text-align: center}
+body {font-family: Arial; background-color:beige}
+p,table {font-family: Times}
+</style>
+</head>
+<body>
+
+<div id="menu">
+| <a href="asciimath.html">Home Page</a> |
+<a href="asciimathsyntax.html">Syntax</a> |
+<a href="asciimathdemo.html">Try it</a> |
+<a href="asciimathcalculator.html">Calculator</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/mathml/asciimathdownload.html">Download</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathGraphs.html">Graphs</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathFAQ.html">ASCIIMath FAQ</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathMLSandbox.html">Sandbox</a> |
+<a href="http://mathcs.chapman.edu/~jipsen/math/index.php/ASCIIMathML/ASCIIMathCommentsAndSuggestions.html">Comments</a> |
+</div>
+
+<hr/>
+
+<h2 id="title">
+ASCIIMathML.js (ver 2.0): Syntax and List of Constants
+</h2>
+
+<h4 id="subtitle">
+The main aims of the ASCIIMathML syntax are: -- 1. close to standard
+mathematical notation -- 2. easy to read -- 3. easy to type
+</h4>
+
+<p>
+You can use your favorite editor to write HTML pages that use this
+JavaScript program. If the page is viewed by a browser that does not
+support MathML or JavaScript, the ASCII formulas are still quite
+readable. Most users will not have to read the technicalities on
+this page. If you type
+</p>
+
+<pre>amath x^2 or a_(m n) or a_{m n} or (x+1)/y or sqrtx endamath</pre>
+
+<p>
+you pretty much get what you expect: amath x^2 or a_(m n) or a_{m n} or
+(x+1)/y or sqrtx endamath. The a``math ... enda``math tokens are used to
+start/stop the <b>new auto-math-recognize mode</b>. Of course one can still use
+the \`...\` back-quotes to delimit math formulas explicitly
+(\$...\$ should only be used for LaTeX formulas). 
+The choice of grouping parenthesis is up to you
+(they don't have to match either). If the displayed expression can be
+parsed uniquely without them, they are omitted. Printing the table of
+constant symbols (below) may be helpful (but is not necessary if you
+know the LaTeX equivalents).
+</p>
+
+<p>
+It is hoped that this simple input format for MathML will further
+encourage its use on the web. The remainder of this page gives a fairly
+detailed specification of the ASCII syntax. <b>The expressions described here
+correspond to a wellspecified subset of Presentation MathML and behave
+in a predictable way.</b>
+</p>
+
+<p>
+The syntax is very permissive and does not generate syntax
+errors. This allows mathematically incorrect expressions to be
+displayed, which is important for teaching purposes. It also causes
+less frustration when previewing formulas.
+</p>
+
+<p>
+The parser uses no operator precedence and only respects the grouping
+brackets, subscripts, superscript, fractions and (square) roots. This
+is done for reasons of efficiency and generality. The resulting MathML
+code can quite easily be processed further to ensure additional syntactic
+requirements of any particular application.
+</p>
+
+<p>
+<b>The grammar:</b> Here is a definition of the grammar used to parse
+ASCIIMathML expressions. In the Backus-Naur form given below, the
+letter on the left of the ::= represents a category of symbols that
+could be one of the possible sequences of symbols listed on the right.
+The vertical bar | separates the alternatives.
+</p>
+
+<pre>c ::= [A-z] | numbers | greek letters | other constant symbols (see below)
+u ::= 'sqrt' | 'text' | 'bb' |     other unary symbols for font commands
+b ::= 'frac' | 'root' | 'stackrel' binary symbols
+l ::= ( | [ | { | (: | {:          left brackets
+r ::= ) | ] | } | :) | :}          right brackets
+S ::= c | lEr | uS | bSS | "any"   simple expression
+E ::= SE | S/S |S_S | S^S | S_S^S  expression (fraction, sub-, super-, subsuperscript)
+</pre>
+
+<p>
+<b>The translation rules:</b> Each terminal symbol is translated into
+a corresponding MathML node. The constants are mostly converted to
+their respective Unicode symbols. The other expressions are converted
+as follows:<br/>
+<table>
+<tr><td>l`S`r</td><td>`to`</td><td>&lt;mrow>l`S`r&lt;/mrow> 
+(note that any pair of brackets can be used to delimit subexpressions, 
+they don't have to match)</td></tr>
+<tr><td>sqrt `S`</td><td>`to`</td><td>&lt;msqrt>`S'`&lt;/msqrt></td></tr>
+
+<tr><td>text `S`</td><td>`to`</td><td>&lt;mtext>`S'`&lt;/mtext></td></tr>
+<tr><td>"any"</td><td>`to`</td><td>&lt;mtext>any&lt;/mtext></td></tr>
+<tr><td>
+frac `S_1` `S_2`</td><td>`to`</td><td>&lt;mfrac>`S_1'` `S_2'`&lt;/mfrac>
+</td></tr>
+<tr><td>
+
+root `S_1` `S_2`</td><td>`to`</td><td>&lt;mroot>`S_2'` `S_1'`&lt;/mroot>
+</td></tr>
+<tr><td>
+stackrel `S_1` `S_2`</td><td>`to`</td><td>&lt;mover>`S_2'` `S_1'`&lt;/mover>
+</td></tr>
+<tr><td>
+`S_1`/`S_2`</td><td>`to`</td><td>&lt;mfrac>`S_1'` `S_2'`&lt;/mfrac>
+</td></tr>
+
+<tr><td>
+`S_1`_`S_2`</td><td>`to`</td><td>&lt;msub>`S_1` `S_2'`&lt;/msub>
+</td></tr>
+<tr><td>
+`S_1`^`S_2`</td><td>`to`</td><td>&lt;msup>`S_1` `S_2'`&lt;/msup>
+</td></tr>
+<tr><td>
+`S_1`_`S_2`^`S_3`</td><td>`to`</td>
+<td>&lt;msubsup>`S_1` `S_2'` `S_3'`&lt;/msubsup> or
+
+&lt;munderover>`S_1` `S_2'` `S_3'`&lt;/munderover> (in some cases)
+</td></tr>
+</table>
+In the rules above, the expression `S'` is the same as `S`, except that if
+`S` has an outer level of brackets, then `S'` is the expression inside 
+these brackets.
+
+<p>
+<b>Matrices:</b> A simple syntax for matrices is also recognized:
+<br/>
+<tt>l(`S_(11)`,...,`S_(1n)`),(...),(`S_(m1)`,...,`S_(mn)`)r</tt>
+&#x00A0; &#x00A0; or &#x00A0; &#x00A0;
+
+<tt>l[`S_(11)`,...,`S_(1n)`],[...],[`S_(m1)`,...,`S_(mn)`]r</tt>.
+<br/>
+
+Here <tt>l</tt> and <tt>r</tt> stand for any of the left and right
+brackets (just like in the grammar they do not have to match). Both of
+these expressions are translated to
+<br/>
+
+&lt;mrow>l&lt;mtable>&lt;mtr>&lt;mtd>`S_(11)`&lt;/mtd>...
+
+&lt;mtd>`S_(1n)`&lt;/mtd>&lt;/mtr>...
+&lt;mtr>&lt;mtd>`S_(m1)`&lt;/mtd>... 
+&lt;mtd>`S_(mn)`&lt;/mtd>&lt;/mtr>&lt;/mtable>r&lt;/mrow>.
+<br/>
+
+For example 
+<tt>{(S_(11),...,S_(1n)),(vdots,ddots,vdots),(S_(m1),...,S_(mn))]</tt>
+displays as `{(S_(11),...,S_(1n)),(vdots,ddots,vdots),(S_(m1),...,S_(mn))]`.
+
+<br/>
+
+Note that each row must have the same number of expressions, and there
+should be at least two rows.
+
+<p>
+<b>Tokenization:</b> The input formula is broken into tokens using a
+"longest matching initial substring search". Suppose the input formula
+has been processed from left to right up to a fixed position. The
+longest string from the list of constants (given below) that matches
+the initial part of the remainder of the formula is the next token. If
+there is no matching string, then the first character of the remainder
+is the next token. The symbol table at the top of the ASCIIMathML.js
+script specifies whether a symbol is a math operator (surrounded by a
+&lt;mo> tag) or a math identifier (surrounded by a &lt;mi> tag). For
+single character tokens, letters are treated as math identifiers, and
+non-alphanumeric characters are treated as math operators. For digits,
+see "Numbers" below.
+
+<p>
+Spaces are significant when they separate characters and thus prevent
+a certain string of characters from matching one of the
+constants. Multiple spaces and end-of-line characters are equivalent
+to a single space.
+</p>
+
+<h4>
+Now for a complete list of constants (<a
+href="http://math.chapman.edu/cgi-bin/mathxml.pl?Complete_list_of_LaTeX_constants">standard
+LaTeX names</a> also work):
+
+</h4> 
+
+<p>
+Numbers: A string of digits, optionally preceded by a minus sign, and
+optionally followed by a decimal point (a period) and another string
+of digits, is parsed as a single token and converted to a MathML
+number, i.e., enclosed with the &lt;mn> tag. If it is not desirable to 
+have a preceding minus sign be part of the number, a space should be inserted.
+Thus <tt>x-1</tt> is converted to &lt;mi>x&lt;/mi>&lt;mn>-1&lt;/mn>, whereas
+<tt>x - 1</tt> is converted to &lt;mi>x&lt;/mi>&lt;mo>-&lt;/mo>&lt;mn>1&lt;/mn>.
+
+</p>
+
+<p>
+Greek letters:
+alpha `alpha`
+beta `beta`
+chi `chi`
+delta `delta`
+Delta `Delta`
+epsilon `epsilon`
+varepsilon `varepsilon`
+eta `eta`
+gamma `gamma`
+Gamma `Gamma`
+iota `iota`
+kappa `kappa`
+lambda `lambda`
+Lambda `Lambda`
+mu `mu`
+nu `nu`
+omega `omega`
+Omega `Omega`
+phi `phi`
+varphi `varphi`
+Phi `Phi`
+pi `pi`
+Pi `Pi`
+psi `psi`
+Psi `Psi`
+rho `rho`
+sigma `sigma`
+Sigma `Sigma`
+tau `tau`
+theta `theta`
+vartheta `vartheta`
+Theta `Theta`
+upsilon `upsilon`
+xi `xi`
+Xi `Xi`
+zeta `zeta`
+</p>
+
+<table border="5" cellpadding="10">
+<tr valign="top"><td>
+Operation symbols
+<table border="5" cellpadding="10">
+<tr><th>Type</th><th>See</th></tr>
+<tr><td>+</td><td>`+`</td></tr>
+<tr><td>-</td><td>`-`</td></tr>
+
+<tr><td>*</td><td>`*`</td></tr>
+<tr><td>**</td><td>`**`</td></tr>
+<tr><td>//</td><td>`//`</td></tr>
+<tr><td>\\</td><td>`\\ `</td></tr>
+<tr><td>xx</td><td>`xx`</td></tr>
+<tr><td>-:</td><td>`-:`</td></tr>
+
+<tr><td>@</td><td>`@`</td></tr>
+<tr><td>o+</td><td>`o+`</td></tr>
+<tr><td>ox</td><td>`ox`</td></tr>
+<tr><td>o.</td><td>`o.`</td></tr>
+<tr><td>sum</td><td>`sum`</td></tr>
+<tr><td>prod</td><td>`prod`</td></tr>
+
+<tr><td>^^</td><td>`^^`</td></tr>
+<tr><td>^^^</td><td>`^^^`</td></tr>
+<tr><td>vv</td><td>`vv`</td></tr>
+<tr><td>vvv</td><td>`vvv`</td></tr>
+<tr><td>nn</td><td>`nn`</td></tr>
+<tr><td>nnn</td><td>`nnn`</td></tr>
+
+<tr><td>uu</td><td>`uu`</td></tr>
+<tr><td>uuu</td><td>`uuu`</td></tr>
+</table>
+</td><td>
+Relation symbols
+<table border="5" cellpadding="10">
+<tr><th>Type</th><th>See</th></tr>
+<tr><td>=</td><td>`=`</td></tr>
+<tr><td>!=</td><td>`!=`</td></tr>
+
+<tr><td>< </td><td>`<`</td></tr>
+<tr><td>></td><td>`>`</td></tr>
+<tr><td><=</td><td>`<=`</td></tr>
+<tr><td>>=</td><td>`>=`</td></tr>
+<tr><td>-<</td><td>`-<`</td></tr>
+
+<tr><td>>-</td><td>`>-`</td></tr>
+<tr><td>in</td><td>`in`</td></tr>
+<tr><td>!in</td><td>`notin`</td></tr>
+<tr><td>sub</td><td>`sub`</td></tr>
+<tr><td>sup</td><td>`sup`</td></tr>
+<tr><td>sube</td><td>`sube`</td></tr>
+
+<tr><td>supe</td><td>`supe`</td></tr>
+<tr><td>-=</td><td>`-=`</td></tr>
+<tr><td>~=</td><td>`~=`</td></tr>
+<tr><td>~~</td><td>`~~`</td></tr>
+<tr><td>prop</td><td>`prop`</td></tr>
+</table>
+</td><td>
+
+Logical symbols
+<table border="5" cellpadding="10">
+<tr><th>Type</th><th>See</th></tr>
+<tr><td>and</td><td>`and`</td></tr>
+<tr><td>or</td><td>`or`</td></tr>
+<tr><td>not</td><td>`not`</td></tr>
+<tr><td>=></td><td>`=>`</td></tr>
+
+<tr><td>if</td><td>`if`</td></tr>
+<tr><td>iff</td><td>`iff`</td></tr>
+<tr><td>AA</td><td>`AA`</td></tr>
+<tr><td>EE</td><td>`EE`</td></tr>
+<tr><td>_|_</td><td>`_|_`</td></tr>
+<tr><td>TT</td><td>`TT`</td></tr>
+
+<tr><td>|--</td><td>`|--`</td></tr>
+<tr><td>|==</td><td>`|==`</td></tr>
+</table>
+<p>
+Grouping brackets
+<table border="5" cellpadding="10">
+<tr><th>Type</th><th>See</th></tr>
+<tr><td>(</td><td>`(`</td></tr>
+<tr><td>)</td><td>`)`</td></tr>
+
+<tr><td>[</td><td>`[`</td></tr>
+<tr><td>]</td><td>`]`</td></tr>
+<tr><td>{</td><td>`{`</td></tr>
+<tr><td>}</td><td>`}`</td></tr>
+<tr><td>(:</td><td>`(:`</td></tr>
+<tr><td>:)</td><td>`:)`</td></tr>
+
+<tr><td>{:</td><td>`{:`</td></tr>
+<tr><td>:}</td><td>`{::}`</td></tr>
+</table>
+
+</td><td>
+Miscellaneous symbols
+<table border="5" cellpadding="10">
+<tr><th>Type</th><th>See</th></tr>
+<tr><td>int</td><td>`int`</td></tr>
+
+<tr><td>oint</td><td>`oint`</td></tr>
+<tr><td>del</td><td>`del`</td></tr>
+<tr><td>grad</td><td>`grad`</td></tr>
+<tr><td>+-</td><td>`+-`</td></tr>
+<tr><td>O/</td><td>`O/`</td></tr>
+<tr><td>oo</td><td>`oo`</td></tr>
+
+<tr><td>aleph</td><td>`aleph`</td></tr>
+<tr><td>/_</td><td>`/_`</td></tr>
+<tr><td>:.</td><td>`:.`</td></tr>
+<tr><td>|...|</td><td>|`...`|</td></tr>
+<tr><td>|cdots|</td><td>|`cdots`|</td></tr>
+<tr><td>vdots</td><td>`vdots`</td></tr>
+
+<tr><td>ddots</td><td>`ddots`</td></tr>
+<tr><td>|\ |</td><td>|`\ `|</td></tr>
+<tr><td>|quad|</td><td>|`quad`|</td></tr>
+<tr><td>diamond</td><td>`diamond`</td></tr>
+<tr><td>square</td><td>`square`</td></tr>
+<tr><td>|__</td><td>`|__`</td></tr>
+
+<tr><td>__|</td><td>`__|`</td></tr>
+<tr><td>|~</td><td>`|~`</td></tr>
+<tr><td>~|</td><td>`~|`</td></tr>
+<tr><td>CC</td><td>`CC`</td></tr>
+<tr><td>NN</td><td>`NN`</td></tr>
+<tr><td>QQ</td><td>`QQ`</td></tr>
+
+<tr><td>RR</td><td>`RR`</td></tr>
+<tr><td>ZZ</td><td>`ZZ`</td></tr>
+</table>
+</td><td>
+Standard functions
+<table border="5" cellpadding="10">
+<tr><th>Type</th><th>See</th></tr>
+<tr><td>sin</td><td>`sin`</td></tr>
+<tr><td>cos</td><td>`cos`</td></tr>
+
+<tr><td>tan</td><td>`tan`</td></tr>
+<tr><td>csc</td><td>`csc`</td></tr>
+<tr><td>sec</td><td>`sec`</td></tr>
+<tr><td>cot</td><td>`cot`</td></tr>
+<tr><td>sinh</td><td>`sinh`</td></tr>
+<tr><td>cosh</td><td>`cosh`</td></tr>
+
+<tr><td>tanh</td><td>`tanh`</td></tr>
+<tr><td>log</td><td>`log`</td></tr>
+<tr><td>ln</td><td>`ln`</td></tr>
+<tr><td>det</td><td>`det`</td></tr>
+<tr><td>dim</td><td>`dim`</td></tr>
+<tr><td>lim</td><td>`lim`</td></tr>
+
+<tr><td>mod</td><td>`mod`</td></tr>
+<tr><td>gcd</td><td>`gcd`</td></tr>
+<tr><td>lcm</td><td>`lcm`</td></tr>
+<tr><td>min</td><td>`min`</td></tr>
+<tr><td>max</td><td>`max`</td></tr>
+</table>
+<p>
+
+Accents
+<table border="5" cellpadding="10">
+<tr><th>Type</th><th>See</th></tr>
+<tr><td>hat x</td><td>`hat x`</td></tr>
+<tr><td>bar x</td><td>`bar x`</td></tr>
+<tr><td>ul x</td><td>`ul x`</td></tr>
+<tr><td>vec x</td><td>`vec x`</td></tr>
+
+<tr><td>dot x</td><td>`dot x`</td></tr>
+<tr><td>ddot x</td><td>`ddot x`</td></tr>
+</table>
+
+</td><td>
+Arrows
+<table border="5" cellpadding="10">
+<tr><th>Type</th><th>See</th></tr>
+<tr><td>uarr</td><td>`uarr`</td></tr>
+
+<tr><td>darr</td><td>`darr`</td></tr>
+<tr><td>rarr</td><td>`rarr`</td></tr>
+<tr><td>-></td><td>`->`</td></tr>
+<tr><td>|-></td><td>`|->`</td></tr>
+<tr><td>larr</td><td>`larr`</td></tr>
+<tr><td>harr</td><td>`harr`</td></tr>
+
+<tr><td>rArr</td><td>`rArr`</td></tr>
+<tr><td>lArr</td><td>`lArr`</td></tr>
+<tr><td>hArr</td><td>`hArr`</td></tr>
+</table>
+<p>
+Font commands
+<table border="5" cellpadding="10">
+<tr><th>Type</th><th>See</th></tr>
+<tr><td>bb A</td><td>`bb A`</td></tr>
+
+<tr><td>bbb A</td><td>`bbb A`</td></tr>
+<tr><td>cc A</td><td>`cc A`</td></tr>
+<tr><td>tt A</td><td>`tt A`</td></tr>
+<tr><td>fr A</td><td>`fr A`</td></tr>
+<tr><td>sf A</td><td>`sf A`</td></tr>
+</table>
+
+</td></tr>
+</table>
+
+<p>
+Of course you may want or need other symbols from the thousands of <a
+href="http://www.ctan.org/tex-archive/info/symbols/comprehensive/symbols-letter.pdf">LaTeX
+symbols</a> or <a
+href="http://www.alanwood.net/unicode/#links">unicode
+symbols</a>. Fortunately ASCIIMathML.js is very <a
+href="asciimathextend.html">easy
+to extend</a>, so you can tailor it to your specific needs. (This
+could be compared to the LaTeX macro files that many users have
+developed over the years.)
+</p>
+
+<!--p>
+Large files with many formulas can take quite some time to display,
+especially on older hardware. To address this problem, there is a
+version ASCIIMathMLite.js that has a shorter symbol table (without the
+LaTeX symbol names) and slightly simplified parser. Send me an email
+at <a href="mailto:jipsen@chapman.edu">jipsen@chapman.edu</a> if you
+would like a copy.
+</p>
+
+<p>
+Another version that also recognizes some <a
+href="http://www.latex-project.org/">LaTeX</a> layout commands and
+(the fairly standard) <a
+href="http://en.wikipedia.org/wiki/Wikipedia:How_to_edit_a_page">Wiki
+formatting codes</a> for ASCII text is in the works. This further
+simplifies producing mathematical content for the web. However such a
+development is less easily justified since there are good free HTML
+editors and the HTML syntax is a well-established standard that is
+simple enough to be coded by hand.
+</p-->
+
+<hr/>
+
+<div id="author">
+<a href="http://www.chapman.edu/~jipsen/">Peter Jipsen</a>, 
+<a href="http://www.chapman.edu/">Chapman University</a>, September 2007
+
+<a href="http://validator.w3.org/check/referer"><img border="0"
+src="http://www.w3.org/Icons/valid-html401"
+alt="Valid HTML 4.01!" height="31" width="88"></a>
+</div>
+</body>
+</html>

+ 8 - 0
main/inc/lib/asciimath/d.svg

@@ -0,0 +1,8 @@
+<?xml version="1.0" standalone="no"?>
+<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN" 
+  "http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
+<svg id="root" xml:space="preserve" width="100%" height="100%" 
+  preserveAspectRatio="xMidYMid meet"
+  xmlns="http://www.w3.org/2000/svg"
+  xmlns:xlink="http:///www.w3.org/1999/xlink">
+</svg>

+ 44 - 0
main/inc/lib/asciimath/filter.php

@@ -0,0 +1,44 @@
+<?PHP
+/////////////////////////////////////////////////////////////////////////////
+//                                                                         //
+// NOTICE OF COPYRIGHT                                                     //
+//                                                                         //
+// Moodle - Filter for converting asciimath notation to MathML             //
+//                                                                         //
+// Copyright (C) 2007 by Peter Jipsen                                      //
+// This program is free software; you can redistribute it and/or modify    //
+// it under the terms of the GNU General Public License as published by    //
+// the Free Software Foundation; either version 2 of the License, or       //
+// (at your option) any later version.                                     //
+//                                                                         //
+// This program is distributed in the hope that it will be useful,         //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of          //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           //
+// GNU General Public License for more details:                            //
+//                                                                         //
+//          http://www.gnu.org/copyleft/gpl.html                           //
+//                                                                         //
+/////////////////////////////////////////////////////////////////////////////
+//-------------------------------------------------------------------------
+// NOTE: This Moodle text filter uses javascript to process ASCIIMath commands
+// embedded in the text.  Math should be surrounded by `...` or $...$
+// or put    amath ... amathoff   around the whole text to use the
+// experimental auto-math-recognize mode.
+//
+// The filter enables the ASCIIMathML.js code to do most of the work. 
+//
+// A copy of ASCIIMathML (version 2.0 or later) is included and
+// automatically loaded in the file asciimath/javascript.php
+//
+//-------------------------------------------------------------------------
+
+$textfilter_function='asciimath_filter';
+if (function_exists($textfilter_function)) {return;}
+
+function asciimath_filter ($courseid, $text) {
+  global $CFG;
+  $text = '<span id="processasciimathinmoodle" class="'.$CFG->wwwroot.'/filter/asciimath/"></span>'.$text;
+  return $text;
+}
+
+?>

+ 8 - 0
main/inc/lib/asciimath/index.html

@@ -0,0 +1,8 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+</head>
+<body>
+<br />
+</body>
+</html>

+ 28 - 0
main/inc/lib/asciimath/javascript.php

@@ -0,0 +1,28 @@
+/////////////////////////////////////////////////////////////////////////////
+//                                                                         //
+// NOTICE OF COPYRIGHT                                                     //
+//                                                                         //
+// Moodle - Filter for converting ASCIImath notation to MathML             //
+// Now also handles a larger subset of LaTeX, as well as ASCIIsvg          //
+//                                                                         //
+// Copyright (C) 2007 by Peter Jipsen                                      //
+// This program is free software; you can redistribute it and/or modify    //
+// it under the terms of the GNU General Public License as published by    //
+// the Free Software Foundation; either version 2 of the License, or       //
+// (at your option) any later version.                                     //
+//                                                                         //
+// This program is distributed in the hope that it will be useful,         //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of          //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the           //
+// GNU General Public License for more details:                            //
+//                                                                         //
+//          http://www.gnu.org/copyleft/gpl.html                           //
+//                                                                         //
+/////////////////////////////////////////////////////////////////////////////
+
+// if this script url sniffing does not work try setting wwwroot explicitly
+// var wwwroot = "http://path/to/your/moodledir"
+// or copy the ASCIIMathML.js file into this file.
+
+var wwwroot = document.getElementsByTagName("script")[0].src.replace(/((.*?)\/lib\/.*)/,"$2"); 
+document.write('<script src="'+wwwroot+'/filter/asciimath/ASCIIMathML.js"></script>');

+ 37 - 0
main/inc/lib/asciimath/readme.txt

@@ -0,0 +1,37 @@
+ASCIIMathML.js 
+
+Brief Instructions (2007-9-28)
+
+This script can be used in any html page and also in systems like Moodle.
+The license is LGPL (see top of ASCIIMathML.js for more info).
+
+In a html page, just add the following line near the top of your file:
+<script type="text/javascript" src="ASCIIMathML.js"></script>
+
+To install in Moodle, just move this asciimath-x.y.z folder into moodle/filter,
+rename the folder "asciimath" and go to the admin panel Modules->Filters 
+to switch it on.
+
+Then try some ASCIIMath on your webpages: `x/y` 
+
+or LaTeX $\sqrt{x}$ and $$\int_0^1 x^2 dx$$ (only a \emph{subset} works, 
+including a few environments like \begin{theorem}... and \begin{proof})
+
+Try some graphics like agraph plot(sin(x)) endagraph or 
+\begin{graph}plot(sin(x))\end{graph}
+
+Try the auto-math-recognize mode: amath here we can mix x^2 and text endamath
+
+All this is supposed to work in Firefox on many platforms (recommended; 
+you may be asked to install math fonts) and in Internet Explorer (only 
+on WinXP and you have to install MathPlayer and Adobe SVGview).
+
+For more examples, see http://www.chapman.edu/~jipsen/asciimath.html and
+http://mathcs.chapman.edu/~jipsen/math
+
+If you use this script on the web, please send an email to jipsen@chapman.edu
+and put a link to http://www.chapman.edu/~jipsen/asciimath.html on your page.
+
+Best wishes with ASCIIMathML.js
+
+Peter Jipsen

BIN
main/inc/lib/fckeditor/editor/plugins/asciimath/asciimath.gif


+ 268 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/fck_asciimath.html

@@ -0,0 +1,268 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
+<!--
+ *	Dokeos - elearning and course management software
+ *
+ *	Copyright (c) 2008-2009 Dokeos SPRL
+ *	Copyright (c) 2008-2009 Ivan Tcholakov <ivantcholakov@gmail.com>
+ *
+ *	License:
+ *	GNU Lesser General Public License, Version 3, 29 June 2007
+ *	by Free Software Foundation, Inc. (http://www.gnu.org/licenses/lgpl.html)
+ *
+ * Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium
+ * Mail: info@dokeos.com
+-->
+<html xmlns="http://www.w3.org/1999/xhtml">
+	<head>
+		<title>AsciiMath Editor</title>
+		<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
+		<meta name="robots" content="noindex, nofollow" />
+
+		<script type="text/javascript">
+document.write( '<scr' + 'ipt type="text/javascript" src="' + window.parent.frameElement._DialogArguments.Editor.FCKConfig.ScriptASCIIMathML + '"><\/scr' + 'ipt>' ) ;
+		</script>
+
+		<script src="../../dialog/common/fck_dialog_common.js" type="text/javascript"></script>
+		<script src="fck_asciimath.js" type="text/javascript"></script>
+
+		<script type="text/javascript">
+document.write( FCKTools.GetStyleHtml( GetCommonDialogCss() ) ) ;
+		</script>
+
+		<style type="text/css">
+			body, td, input, textarea, select, label { font-family: Arial, Verdana, Geneva, helvetica, sans-serif; font-size: 11px; }
+		</style>
+
+  <style type="text/css">
+
+form { padding: 0px; margin: 0px; }
+form p { margin-top: 5px; margin-bottom: 5px; }
+table { font: 11px Tahoma,Verdana,sans-serif; }
+select, input, button { font: 11px Tahoma,Verdana,sans-serif; }
+table .label { text-align: right; width: 8em; }
+.fl { width: 9em; float: left; padding: 2px 5px; text-align: right; }
+.fr { width: 7em; float: left; padding: 2px 5px; text-align: right; }
+fieldset { padding: 0px 10px 5px 5px; }
+.space { padding: 2px; }
+
+#buttons {
+      margin-top: 10px;
+}
+
+	#outputNode,#inputText,#mathml {
+		padding:5px;
+		background-color:white;
+		width:98%;
+		height:130px;
+		font-size:1.3em;
+		border: 1px solid darkgrey;
+		overflow:auto;
+	}
+	#clickInput {
+		width:100%;
+		border-collapse:collapse;
+		background-color: white;
+		text-align:center;
+	}
+	#clickInput td {
+		border: thin solid gray;
+		cursor:pointer;
+		font-size:1.1em;
+		
+	}
+	h3 {
+		font-size:1.6em;
+	}
+  </style>
+
+	</head>
+<body scroll="no" style="overflow: hidden;">
+
+<!--
+Table modified from CharacterMap for ASCIIMathML by Peter Jipsen
+HTMLSource based on HTMLArea XTD 1.5 (http://mosforge.net/projects/htmlarea3xtd/) modified by Holger Hees
+Original Author - Bernhard Pfeifer novocaine@gmx.net
+-->
+<table  id="clickInput">
+<tr>
+<td colspan="3" class="character" title="(x+1)/(x-1)" onclick="javascript: Set('(x+1)/(x-1)');">`(x+1)/(x-1)`</td>
+<td colspan="2" class="character" title="x^(m+n)" onclick="javascript: Set('x^(m+n)');">`x^(m+n)`</td>
+<td colspan="2" class="character" title="x_(mn)" onclick="javascript: Set('x_(mn)');">`x_(mn)`</td>
+<td colspan="2" class="character" title="sqrt(x)" onclick="javascript: Set('sqrt(x)');">`sqrt(x)`</td>
+<td colspan="3" class="character" title="root(n)(x)" onclick="javascript: Set('root(n)(x)');">`root(n)(x)`</td>
+<td colspan="2" class="character" title="&quot;text&quot;" onclick="javascript: Set('&quot;text&quot;');">`&quot;text&quot;`</td>
+<td colspan="2" class="character" style="cursor:default"></td>
+</tr><tr>
+<td colspan="2" class="character" title="dy/dx" onclick="javascript: Set('dy/dx');">`dy/dx`</td>
+<td colspan="3" class="character" title="lim_(x-&gt;oo)" onclick="javascript: Set('lim_(x-&gt;oo)');">`lim_(x-&gt;oo)`</td>
+<td colspan="3" class="character" title="sum_(n=1)^oo" onclick="javascript: Set('sum_(n=1)^oo');">`sum_(n=1)^oo`</td>
+<td colspan="3" class="character" title="int_a^bf(x)dx" onclick="javascript: Set('int_a^bf(x)dx');">`int_a^bf(x)dx`</td>
+<td colspan="3" class="character" title="[[a,b],[c,d]]" onclick="javascript: Set('[[a,b],[c,d]]');">`[[a,b],[c,d]]`</td>
+<td colspan="2" class="character" title="((n),(k))" onclick="javascript: Set('((n),(k))');">`((n),(k))`</td>
+</tr><tr>
+<td class="character" title="*" onclick="javascript: Set('*');">`*`</td>
+<td class="character" title="**" onclick="javascript: Set('**');">`**`</td>
+<td class="character" title="//" onclick="javascript: Set('//');">`//`</td>
+<td class="character" title="\\" onclick="javascript: Set('\\\\');">`\\`</td>
+<td class="character" title="xx" onclick="javascript: Set('xx');">`xx`</td>
+<td class="character" title="-:" onclick="javascript: Set('-:');">`-:`</td>
+<td class="character" title="@" onclick="javascript: Set('@');">`@`</td>
+<td class="character" title="o+" onclick="javascript: Set('o+');">`o+`</td>
+<td class="character" title="ox" onclick="javascript: Set('ox');">`ox`</td>
+<td class="character" title="o." onclick="javascript: Set('o.');">`o.`</td>
+<td class="character" title="sum" onclick="javascript: Set('sum');">`sum`</td>
+<td class="character" title="prod" onclick="javascript: Set('prod');">`prod`</td>
+<td class="character" title="^^" onclick="javascript: Set('^^');">`^^`</td>
+<td class="character" title="^^^" onclick="javascript: Set('^^^');"><span style="font-size:larger">`&and;`</span></td>
+<td class="character" title="vv" onclick="javascript: Set('vv');">`vv`</td>
+<td class="character" title="vvv" onclick="javascript: Set('vvv');"><span style="font-size:larger">`&or;`</span></td>
+</tr><tr>
+<td class="character" title="!=" onclick="javascript: Set('!=');">`!=`</td>
+<td class="character" title="&lt;=" onclick="javascript: Set('&lt;=');">`&lt;=`</td>
+<td class="character" title="&gt;=" onclick="javascript: Set('&gt;=');">`&gt;=`</td>
+<td class="character" title="-&lt;" onclick="javascript: Set('-&lt;');">`-&lt;`</td>
+<td class="character" title="&gt;-" onclick="javascript: Set('&gt;-');">`&gt;-`</td>
+<td class="character" title="in" onclick="javascript: Set('in');">`in`</td>
+<td class="character" title="!in" onclick="javascript: Set('!in');">`!in`</td>
+<td class="character" title="sub" onclick="javascript: Set('sub');">`sub`</td>
+<td class="character" title="sup" onclick="javascript: Set('sup');">`sup`</td>
+<td class="character" title="sube" onclick="javascript: Set('sube');">`sube`</td>
+<td class="character" title="supe" onclick="javascript: Set('supe');">`supe`</td>
+<td class="character" title="O/" onclick="javascript: Set('O/');">`O/`</td>
+<td class="character" title="nn" onclick="javascript: Set('nn');">`nn`</td>
+<td class="character" title="nnn" onclick="javascript: Set('nnn');"><span style="font-size:larger">`&cap;`</span></td>
+<td class="character" title="uu" onclick="javascript: Set('uu');">`uu`</td>
+<td class="character" title="uuu" onclick="javascript: Set('uuu');"><span style="font-size:larger">`&cup;`</span></td>
+</tr><tr>
+<td class="character" title="and" onclick="javascript: Set('and');">`and`</td>
+<td class="character" title="or" onclick="javascript: Set('or');">`or`</td>
+<td class="character" title="not" onclick="javascript: Set('not');">`not`</td>
+<td class="character" title="=&gt;" onclick="javascript: Set('==&gt;');">`=&gt;`</td>
+<td class="character" title="if" onclick="javascript: Set('if');">`if`</td>
+<td class="character" title="&lt;=&gt;" onclick="javascript: Set('&lt;=&gt;');">`&lt;=&gt;`</td>
+<td class="character" title="AA" onclick="javascript: Set('AA');">`AA`</td>
+<td class="character" title="EE" onclick="javascript: Set('EE');">`EE`</td>
+<td class="character" title="_|_" onclick="javascript: Set('_|_');">`_|_`</td>
+<td class="character" title="TT" onclick="javascript: Set('TT');">`TT`</td>
+<td class="character" title="|--" onclick="javascript: Set('|--');">`|--`</td>
+<td class="character" title="|==" onclick="javascript: Set('|==');">`|==`</td>
+<td class="character" title="-=" onclick="javascript: Set('-=');">`-=`</td>
+<td class="character" title="~=" onclick="javascript: Set('~=');">`~=`</td>
+<td class="character" title="~~" onclick="javascript: Set('~~');">`~~`</td>
+<td class="character" title="prop" onclick="javascript: Set('prop');">`prop`</td>
+</tr><tr>
+<td class="character" title="int" onclick="javascript: Set('int');">`int`</td>
+<td class="character" title="oint" onclick="javascript: Set('oint');">`oint`</td>
+<td class="character" title="del" onclick="javascript: Set('del');">`del`</td>
+<td class="character" title="grad" onclick="javascript: Set('grad');">`grad`</td>
+<td class="character" title="+-" onclick="javascript: Set('+-');">`+-`</td>
+<td class="character" title="oo" onclick="javascript: Set('oo');">`oo`</td>
+<td class="character" title="aleph" onclick="javascript: Set('aleph');">`aleph`</td>
+<td class="character" title="quad" onclick="javascript: Set('quad');">`quad`</td>
+<td class="character" title="diamond" onclick="javascript: Set('diamond');">`diamond`</td>
+<td class="character" title="square" onclick="javascript: Set('square');">`square`</td>
+<td class="character" title="|__" onclick="javascript: Set('|__');">`|__`</td>
+<td class="character" title="__|" onclick="javascript: Set('__|');">`__|`</td>
+<td class="character" title="|~" onclick="javascript: Set('|~');">`|~`</td>
+<td class="character" title="~|" onclick="javascript: Set('~|');">`~|`</td>
+<td class="character" title="&lt;x&gt;" onclick="javascript: Set('&lt;x&gt;');">`&lt;x&gt;`</td>
+<td class="character" title="/_" onclick="javascript: Set('/_');">`/_`</td>
+</tr><tr>
+<td class="character" title="uarr" onclick="javascript: Set('uarr');">`uarr`</td>
+<td class="character" title="darr" onclick="javascript: Set('darr');">`darr`</td>
+<td class="character" title="larr" onclick="javascript: Set('larr');">`larr`</td>
+<td class="character" title="-&gt;" onclick="javascript: Set('-&gt;');">`-&gt;`</td>
+<td class="character" title="|-&gt;" onclick="javascript: Set('|-&gt;');">`|-&gt;`</td>
+<td class="character" title="harr" onclick="javascript: Set('harr');">`harr`</td>
+<td class="character" title="lArr" onclick="javascript: Set('lArr');">`lArr`</td>
+<td class="character" title="rArr" onclick="javascript: Set('rArr');">`rArr`</td>
+<td class="character" title="hArr" onclick="javascript: Set('hArr');">`hArr`</td>
+<td class="character" title="hata" onclick="javascript: Set('hat');">`hata`</td>
+<td class="character" title="ula" onclick="javascript: Set('ul');">`ula`</td>
+<td class="character" title="dota" onclick="javascript: Set('dot');">`dota`</td>
+<td class="character" title="ddota" onclick="javascript: Set('ddot');">`ddota`</td>
+<td class="character" title="veca" onclick="javascript: Set('vec');">`veca`</td>
+<td class="character" title="bara" onclick="javascript: Set('bar');">`bara`</td>
+<td class="character" title=":." onclick="javascript: Set(':.');">`:.`</td>
+</tr><tr>
+<td class="character" title="NN" onclick="javascript: Set('NN');">`NN`</td>
+<td class="character" title="ZZ" onclick="javascript: Set('ZZ');">`ZZ`</td>
+<td class="character" title="QQ" onclick="javascript: Set('QQ');">`QQ`</td>
+<td class="character" title="RR" onclick="javascript: Set('RR');">`RR`</td>
+<td class="character" title="CC" onclick="javascript: Set('CC');">`CC`</td>
+<td class="character" title="bba" onclick="javascript: Set('bb');">`bba`</td>
+<td class="character" title="bbba" onclick="javascript: Set('bbb');">`bbba`</td>
+<td class="character" title="cca" onclick="javascript: Set('cc');">`cca`</td>
+<td class="character" title="fra" onclick="javascript: Set('fr');">`fra`</td>
+<td class="character" title="sfa" onclick="javascript: Set('sf');">`sfa`</td>
+<td class="character" title="tta" onclick="javascript: Set('tt');">`tta`</td>
+<td colspan="4" class="character" title="stackrel(-&gt;)(+)" onclick="javascript: Set('stackrel(-&gt;)(+)');">`stackrel(-&gt;)(+)`</td>
+<td class="character" title="upsilon" onclick="javascript: Set('upsilon');">`upsilon`</td>
+</tr><tr>
+<td class="character" title="alpha" onclick="javascript: Set('alpha');">`alpha`</td>
+<td class="character" title="beta" onclick="javascript: Set('beta');">`beta`</td>
+<td class="character" title="gamma" onclick="javascript: Set('gamma');">`gamma`</td>
+<td class="character" title="Gamma" onclick="javascript: Set('Gamma');">`Gamma`</td>
+<td class="character" title="delta" onclick="javascript: Set('delta');">`delta`</td>
+<td class="character" title="Delta" onclick="javascript: Set('Delta');">`Delta`</td>
+<td class="character" title="epsi" onclick="javascript: Set('epsi');">`epsi`</td>
+<td class="character" title="zeta" onclick="javascript: Set('zeta');">`zeta`</td>
+<td class="character" title="eta" onclick="javascript: Set('eta');">`eta`</td>
+<td class="character" title="theta" onclick="javascript: Set('theta');">`theta`</td>
+<td class="character" title="Theta" onclick="javascript: Set('Theta');">`Theta`</td>
+<td class="character" title="iota" onclick="javascript: Set('iota');">`iota`</td>
+<td class="character" title="kappa" onclick="javascript: Set('kappa');">`kappa`</td>
+<td class="character" title="lambda" onclick="javascript: Set('lambda');">`lambda`</td>
+<td class="character" title="Lambda" onclick="javascript: Set('Lambda');">`Lambda`</td>
+<td class="character" title="mu" onclick="javascript: Set('mu');">`mu`</td>
+</tr><tr>
+<td class="character" title="nu" onclick="javascript: Set('nu');">`nu`</td>
+<td class="character" title="pi" onclick="javascript: Set('pi');">`pi`</td>
+<td class="character" title="Pi" onclick="javascript: Set('Pi');">`Pi`</td>
+<td class="character" title="rho" onclick="javascript: Set('rho');">`rho`</td>
+<td class="character" title="sigma" onclick="javascript: Set('sigma');">`sigma`</td>
+<td class="character" title="Sigma" onclick="javascript: Set('Sigma');">`Sigma`</td>
+<td class="character" title="tau" onclick="javascript: Set('tau');">`tau`</td>
+<td class="character" title="xi" onclick="javascript: Set('xi');">`xi`</td>
+<td class="character" title="Xi" onclick="javascript: Set('Xi');">`Xi`</td>
+<td class="character" title="phi" onclick="javascript: Set('phi');">`phi`</td>
+<td class="character" title="Phi" onclick="javascript: Set('Phi');">`Phi`</td>
+<td class="character" title="chi" onclick="javascript: Set('chi');">`chi`</td>
+<td class="character" title="psi" onclick="javascript: Set('psi');">`psi`</td>
+<td class="character" title="Psi" onclick="javascript: Set('Psi');">`Psi`</td>
+<td class="character" title="omega" onclick="javascript: Set('omega');">`omega`</td>
+<td class="character" title="Omega" onclick="javascript: Set('Omega');">`Omega`</td>
+</tr>
+</table>
+<form action="javascript: void(0);">
+<table style="width: 100%; border: none;">
+  <tr>
+    <td style="width:50%;" nowrap="nowrap"><span fckLang="DlgAsciiMathInput">Input</span>&nbsp;&nbsp;<input id="clear" type="button" fckLang="DlgAsciiMathClear" onclick="javascript: Clear();" style="width: 100px; font-size: 10px;" value="Clear" />&nbsp;&nbsp;<input id="delete" type="button" fckLang="DlgAsciiMathDelete" onclick="javascript: Delete();" style="width: 100px; font-size: 10px;" value="Delete" />&nbsp;&nbsp;</td>
+    <td style="width:50%;"><input id="show_mathml" type="button" fckLang="DlgAsciiMathShowMathML" onclick="javascript: ShowMathML();" style="float: right; font-size: 10px;" value="Show MathML" /><span fckLang="DlgAsciiMathPreview">Preview</span></td>
+  </tr>
+  <tr>
+    <td>
+    <textarea id="inputText" onkeyup="javascript: Preview();"></textarea>
+    </td>
+    <td>
+    <div id="outputNode"></div>
+    </td>
+  </tr>
+  <tr><td colspan="2">
+  <span fckLang="DlgAsciiMathBasedOn">Based on ASCIIMathML by </span><a href="http://www.chapman.edu/~jipsen" onclick="javascript: window.open(this.href,'_blank','');return false;">Peter Jipsen</a>, 
+<a href="http://www.chapman.edu" onclick="javascript: window.open(this.href,'_blank','');return false;">Chapman University</a><br />
+  <span fckLang="DlgAsciiMathForMoreInfo">For more information on AsciiMathML visit this page: </span><a href="http://www1.chapman.edu/~jipsen/mathml/asciimath.html" onclick="javascript: window.open(this.href,'_blank','');return false;">http://www1.chapman.edu/~jipsen/mathml/asciimath.html</a></td></tr>
+</table>
+
+<div id="buttons">
+<script type="text/javascript">
+if ( !CheckBrowserCompatibility() )
+{
+	CheckBrowserCompatibility( true ) ;
+}
+</script>
+</div>
+</form>
+
+</body>
+</html>

+ 334 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/fck_asciimath.js

@@ -0,0 +1,334 @@
+/*
+ *	Dokeos - elearning and course management software
+ *
+ *	Copyright (c) 2008-2009 Dokeos SPRL
+ *	Copyright (c) 2008-2009 Ivan Tcholakov <ivantcholakov@gmail.com>
+ *
+ *	License:
+ *	GNU Lesser General Public License, Version 3, 29 June 2007
+ *	by Free Software Foundation, Inc. (http://www.gnu.org/licenses/lgpl.html)
+ *
+ * Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium
+ * Mail: info@dokeos.com
+ */
+
+var dialog = window.parent ;
+var oEditor	= dialog.InnerDialogLoaded() ;
+var FCK = oEditor.FCK ;
+var FCKLang = oEditor.FCKLang ;
+var FCKConfig = oEditor.FCKConfig ;
+var FCKTools = oEditor.FCKTools ;
+var FCKBrowserInfo = oEditor.FCKBrowserInfo ;
+var FCKUndo = oEditor.FCKUndo ;
+var FCKAsciiMath = oEditor.FCKAsciiMath ;
+
+// Set the language direction.
+window.document.dir = FCKLang.Dir ;
+
+FCKLang["DlgAsciiIncompatibleBrowser"] = FCKLang["DlgAsciiIncompatibleBrowser"] ? FCKLang["DlgAsciiIncompatibleBrowser"] : 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang['DlgAsciiIncompatibleBrowser'] = FCKLang['DlgAsciiIncompatibleBrowser'].replace( '%s1', '<a href="http://www.mozilla.com" onclick="javascript: window.open(this.href,\'_blank\');return false;">Mozilla Firefox 1.5+</a>, <a href="http://www.opera.com" onclick="javascript: window.open(this.href,\'_blank\');return false;">Opera 9.5+</a>' ) ;
+FCKLang['DlgAsciiIncompatibleBrowser'] = FCKLang['DlgAsciiIncompatibleBrowser'].replace( '%s2', '<a href="http://www.dessci.com/en/products/mathplayer/" onclick="javascript: window.open(this.href,\'_blank\');return false;">MathPlayer</a>' ) ;
+
+FCKLang["DlgAsciiMathOldIE"] = FCKLang["DlgAsciiMathOldIE"] ? FCKLang["DlgAsciiMathOldIE"] : 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang['DlgAsciiMathOldIE'] = FCKLang['DlgAsciiMathOldIE'].replace( '%s', '<a href="http://www.dessci.com/en/products/mathplayer/" onclick="javascript: window.open(this.href,\'_blank\');return false;">http://www.dessci.com/en/products/mathplayer/</a>' ) ;
+
+FCKLang['DlgAsciiMathInstallMathPlayer'] = FCKLang['DlgAsciiMathInstallMathPlayer'] ? FCKLang['DlgAsciiMathInstallMathPlayer'] : 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang['DlgAsciiMathInstallMathPlayer'] = FCKLang['DlgAsciiMathInstallMathPlayer'].replace( '%s', '<a href="http://www.dessci.com/en/products/mathplayer/" onclick="javascript: window.open(this.href,\'_blank\');return false;">http://www.dessci.com/en/products/mathplayer/</a>' ) ;
+
+FCKLang['DlgAsciiMathOldMathPlayer'] = FCKLang['DlgAsciiMathOldMathPlayer'] ? FCKLang['DlgAsciiMathOldMathPlayer'] : 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;
+FCKLang['DlgAsciiMathOldMathPlayer'] = FCKLang['DlgAsciiMathOldMathPlayer'].replace( '%s', '<a href="http://www.dessci.com/en/products/mathplayer/" onclick="javascript: window.open(this.href,\'_blank\');return false;">http://www.dessci.com/en/products/mathplayer/</a>' ) ;
+
+var showasciiformulaonhover = false;
+
+// Suppressing the built-in notification message when the browser is incompatible.
+notifyIfNoMathML = false ;
+//Small font is used in the dialog.
+mathfontsize = "1.1em";
+
+// oSpanAM: The actual selected span element in the editor that contains the formula.
+var oSpanAM = FCKAsciiMath.FindFormulaContainer( FCKAsciiMath.GetSearchElementFromSelection() ) ;
+if ( oSpanAM )
+{
+	FCK.Selection.SelectNode( oSpanAM ) ;
+}
+
+function LoadSelection()
+{
+	GetE( 'inputText' ).value = FCKAsciiMath.GetFormula( oSpanAM ) ;
+	Preview() ;
+}
+
+function Ok()
+{
+	if ( FCKBrowserInfo.IsIE )
+	{
+		if ( oSpanAM )
+		{
+			FCK.Selection.SelectNode( oSpanAM ) ;
+			// For IE: Before updating, we have to move the selection outside the formula
+			// in order to prevent "Unspecified error".
+			var span_target = FCK.EditorDocument.createElement( 'span' ) ;
+			span_target.innerHTML = '&nbsp;' ;
+			span_target = oSpanAM.parentNode.insertBefore( span_target, oSpanAM ) ;
+			FCK.Selection.SelectNode( span_target ) ;
+		}
+	}
+
+	var formula = GetE( 'inputText' ).value ;
+
+	if ( formula != '' )
+	{
+		FCK.InsertHtml( '<span class="AM">`' + formula + '`<\/span>' ) ;
+	}
+	else
+	{
+		FCK.Selection.Delete() ;
+	}
+
+	if ( FCKBrowserInfo.IsIE )
+	{
+		if ( oSpanAM )
+		{
+			FCKUndo.SaveUndoStep() ;
+			oSpanAM.parentNode.removeChild( oSpanAM ) ;
+		}
+	}
+
+	return true ;
+}
+
+window.onload = function()
+{
+	// Translate the dialog box texts.
+	oEditor.FCKLanguageManager.TranslatePage( document ) ;
+
+	// Load the selected element information (if any).
+	LoadSelection() ;
+
+	dialog.SetAutoSize( true ) ;
+
+	// Activate the "OK" button.
+	dialog.SetOkButton( true ) ;
+
+	var inputField = GetE( 'inputText' ) ;
+	inputField.focus() ;
+}
+
+function Set ( string )
+{
+	var inputField = GetE( 'inputText' ) ;
+	inputField.value += string ;
+	Preview() ;
+	inputField.focus() ;
+	return false ;
+}
+
+function Clear()
+{
+	var inputField = GetE( 'inputText' ) ;
+	inputField.value = '' ;
+	Preview() ;
+	inputField.focus() ;
+	return false ;
+}
+
+function Delete()
+{
+	Clear();
+	dialog.Ok();
+}
+
+function Preview()
+{
+	if ( GetE( 'inputText' ).value != '' )
+	{
+		var str = GetE( 'inputText' ).value ;
+		var outnode = GetE( 'outputNode' ) ;
+		var newnode = AMcreateElementXHTML( 'div' ) ;
+		newnode.setAttribute( 'id', 'outputNode' ) ;
+		outnode.parentNode.replaceChild( newnode, outnode ) ;
+		outnode = GetE( 'outputNode' ) ;
+		var n = outnode.childNodes.length ;
+		for ( var i = 0; i < n; i++ )
+		{
+			outnode.removeChild( outnode.firstChild ) ;
+		}
+		outnode.appendChild( document.createComment( '`' + str + '`' ) ) ;
+		AMprocessNode( outnode, true ) ;
+		if ( FCKLang['DlgAsciiMathShowMathML'] )
+		{
+			GetE( 'show_mathml' ).value = FCKLang['DlgAsciiMathShowMathML'] ;
+		}
+	}
+	else
+	{
+		var outnode = GetE( 'outputNode' ) ;
+		var n = outnode.childNodes.length ;
+		for ( var i = 0; i < n; i++ )
+		{
+			outnode.removeChild( outnode.firstChild ) ;
+		}
+	}
+}
+
+function AMnode2string( inNode, indent )
+{
+	// thanks to James Frazer for contributing an initial version of this function
+	var i, str = '' ;
+	if ( inNode.nodeType == 1 )
+	{
+		var name = inNode.nodeName.toLowerCase() ; // (IE fix)
+		str = '\r' + indent + '<' + name ;
+		for ( i = 0; i < inNode.attributes.length; i++ )
+		{
+			if ( inNode.attributes[i].nodeValue != 'italic' &&
+				inNode.attributes[i].nodeValue != '' &&  //stop junk attributes
+				inNode.attributes[i].nodeValue != 'inherit' && // (mostly IE)
+				inNode.attributes[i].nodeValue != undefined &&
+				inNode.attributes[i].nodeName[0] != '-' )
+			{
+				str += ' ' + inNode.attributes[i].nodeName + '=' + '"' + inNode.attributes[i].nodeValue + '"' ;
+			}
+		}
+		if ( name == 'math' )
+		{
+			str += ' xmlns="http://www.w3.org/1998/Math/MathML"' ;
+		}
+		str += '>' ;
+		for ( i = 0; i < inNode.childNodes.length; i++ )
+		{
+			str += AMnode2string( inNode.childNodes[i], indent + '  ' ) ;
+		}
+		if ( name != 'mo' && name != 'mi' && name != 'mn' ) str += '\r' + indent ;
+		str += '</' + name + '>' ;
+	}
+	else if( inNode.nodeType == 3 )
+	{
+		var st = inNode.nodeValue ;
+		for ( i = 0; i < st.length; i++ )
+		{
+			if ( st.charCodeAt( i ) < 32 || st.charCodeAt( i ) > 126 )
+			{
+				str += '&#' + st.charCodeAt( i ) + ';' ;
+			}
+			else if ( st.charAt(i) == '<' && indent != '  ' ) str += '&lt;' ;
+			else if ( st.charAt(i) == '>' && indent != '  ' ) str += '&gt;' ;
+			else if ( st.charAt(i) == '&' && indent != '  ' ) str += '&amp;' ;
+			else str += st.charAt( i ) ;
+		}
+	}
+	return str ;
+}
+
+function ShowMathML()
+{
+	if ( GetE( 'inputText' ).value != '' )
+	{
+		var math = GetE( 'outputNode' ).getElementsByTagName( 'math' )[0] ;
+		if ( math )
+		{
+			var width ;
+			if ( GetE( 'outputNode' ).offsetWidth )
+			{
+				width = GetE( 'outputNode' ).offsetWidth ;
+			}
+
+			math.parentNode.innerHTML = '<pre>' + FCKTools.HTMLEncode( AMnode2string( math, '' ) ) + '</pre>' ;
+
+			if ( width && FCKBrowserInfo.IsGecko )
+			{
+				GetE( 'outputNode' ).style.width = width + 'px' ;
+			}
+
+			if ( FCKLang['DlgAsciiMathFormulaPreview'] )
+			{
+				GetE( 'show_mathml' ).value = FCKLang['DlgAsciiMathFormulaPreview'] ;
+			}
+		}
+		else
+		{
+			Preview() ;
+		}
+	}
+	else
+	{
+		Preview() ;
+	}
+}
+
+function CheckBrowserCompatibility( show_message )
+{
+	if ( FCKBrowserInfo.IsGecko )
+	{
+		// The browser is compatible, it is genuine Gecko - Firefox, etc.
+		return true ;
+	}
+	else if ( FCKBrowserInfo.IsIE )
+	{
+		// Internet Explorer.
+		if ( FCKBrowserInfo.IsIE6 )
+		{
+			if ( IsMathPlayerInstalled() )
+			{       
+				var start = navigator.appVersion.indexOf( 'MathPlayer' ) ;
+				if ( start != -1 )
+				{ 
+					// The browser is Internet Explorer 6.0+ with properly set up plugin MathPalyer 2.
+					return true ;
+				}
+				else
+				{             
+					// Notify reader they need to upgrade to MathPlayer 2.
+					if ( show_message )
+					{
+						document.write( '<span style="color:red;">' + FCKLang['DlgAsciiMathOldMathPlayer'] + '</span>' ) ;
+					}
+					return false ;
+				}
+			}
+			else
+			{               
+				// Direct reader to MathPlayer page.
+				if ( show_message )
+				{
+					document.write( '<span style="color:red;">' + FCKLang['DlgAsciiMathInstallMathPlayer'] + '</span>' ) ;
+				}
+				return false ;
+			}
+		}
+		else
+		{
+			// The browser is a very old version of Internet Explorer, it have to be upgraded.
+			if ( show_message )
+			{
+				document.write( '<span style="color:red;">' + FCKLang['DlgAsciiMathOldIE'] + '</span>' ) ;
+			}
+			return false ;
+		}
+	}
+	else if ( FCKBrowserInfo.IsOpera && parseFloat( navigator.appVersion, 10 ) >= 9.5 )
+	{
+		return true ;
+	}
+
+	// The browser is not compatible.
+	if ( show_message )
+	{
+		document.write( '<span style="color:red;">' + FCKLang['DlgAsciiIncompatibleBrowser'] + '</span>' ) ;
+	}
+	return false ;
+}
+
+// Returns true if MathPlayer is installed.
+function IsMathPlayerInstalled()
+{
+	try
+	{
+		var oMP = new ActiveXObject( 'MathPlayer.Factory.1' ) ;
+		return true ;
+	}
+	catch(e)
+	{
+		return false ;
+	}
+}

+ 341 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/fckplugin.js

@@ -0,0 +1,341 @@
+/*
+ *	Dokeos - elearning and course management software
+ *
+ *	Copyright (c) 2008-2009 Dokeos SPRL
+ *	Copyright (c) 2008-2009 Ivan Tcholakov <ivantcholakov@gmail.com>
+ *
+ *	License:
+ *	GNU Lesser General Public License, Version 3, 29 June 2007
+ *	by Free Software Foundation, Inc. (http://www.gnu.org/licenses/lgpl.html)
+ *
+ * Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium
+ * Mail: info@dokeos.com
+ */
+
+// Loading the ASCIIMathML.js if it is not present yet.
+if ( typeof AMprocessNode != 'function' )
+{
+	LoadScript( FCKConfig.ScriptASCIIMathML ) ;
+}
+// Suppressing the built-in notification message when the browser is incompatible.
+notifyIfNoMathML = false ;
+// Suppressing parsing AsciiMath formulas at loading.
+translateASCIIMath = false ;
+// Small font is used in the dialog.
+mathfontsize = "1.1em";
+
+// Registering the related command.
+FCKCommands.RegisterCommand( 'asciimath', new FCKDialogCommand( FCKLang['DlgAsciiMath'], FCKLang['DlgAsciiMath'], FCKConfig.PluginsPath + 'asciimath/fck_asciimath.html', 800, 550 ) ) ;
+
+// Create the "asciimath" toolbar button.
+var oAsciiMathItem = new FCKToolbarButton( 'asciimath', FCKLang['DlgAsciiMath'] ) ;
+oAsciiMathItem.IconPath = FCKConfig.PluginsPath + 'asciimath/asciimath.gif' ;
+// 'asciimath' is the name used in the Toolbar config.
+FCKToolbarItems.RegisterItem( 'asciimath', oAsciiMathItem ) ;
+
+// Context menu support.
+FCK.ContextMenu.RegisterListener( {
+	AddItems : function( menu, tag, tagName )
+	{
+		if ( FCKAsciiMath.FindFormulaContainer( tag ) )
+		{
+			menu.AddSeparator() ;
+			menu.AddItem( 'asciimath', FCKLang['DlgAsciiMath'], oAsciiMathItem.IconPath ) ;
+		}
+	}}
+);
+
+// Double-click support.
+FCK.RegisterDoubleClickHandler(
+	function ( tag )
+	{
+		if ( FCKAsciiMath.FindFormulaContainer( tag ) )
+		{
+			FCKCommands.GetCommand( 'asciimath' ).Execute() ;
+		}
+	}, null
+) ;
+
+// This object implements some AsciiMath related operations.
+var FCKAsciiMath = new Object() ;
+
+FCKAsciiMath.GetSearchElementFromSelection = function()
+{
+	var oSelectedContainer = FCK.Selection.GetSelectedElement() ;
+	if ( ! oSelectedContainer )
+	{
+		oSelectedContainer = FCK.Selection.GetBoundaryParentElement( true ) ;
+	}
+	return oSelectedContainer ;
+}
+
+FCKAsciiMath.IsFormula = function( node )
+{
+	if ( node && node.nodeName && node.nodeName.IEquals( 'span' ) && node.className && node.className.indexOf( 'AM' ) != -1 )
+	{
+		return true ;
+	}
+	return false ;
+}
+
+FCKAsciiMath.FindFormulaContainer = function( node )
+{
+	var current_node = node ;
+	while ( current_node )
+	{
+		if ( !current_node.nodeName )
+		{
+			continue ;
+		}
+		if ( current_node.nodeName.IEquals( 'body', 'table' ) )
+		{
+			break ;
+		}
+		if ( FCKAsciiMath.IsFormula( current_node ) )
+		{
+			return current_node ;
+		}
+		if ( current_node.parentNode )
+		{
+			current_node = current_node.parentNode ;
+		}
+		else
+		{
+			break ;
+		}
+	}
+	return null ;
+}
+
+FCKAsciiMath.IsParsed = function( node )
+{
+	return node.getElementsByTagName( 'math' )[0] ? true : false ;
+}
+
+FCKAsciiMath.GetFormula = function( node )
+{
+	var result = '' ;
+	if ( FCKAsciiMath.IsFormula( node ) )
+	{
+		if ( FCKAsciiMath.IsParsed( node ) )
+		{
+			if ( node.title )
+			{
+				result = node.title ;
+			}
+		}
+		else
+		{
+			result = node.innerHTML ;
+		}
+	}
+	return result.replace( /`/g, '' ) ;
+}
+
+FCKAsciiMath.Delete = function()
+{
+	var oSpanAM = FCKAsciiMath.FindFormulaContainer( FCKAsciiMath.GetSearchElementFromSelection() ) ;
+	if ( oSpanAM )
+	{
+		FCK.Selection.SelectNode( oSpanAM ) ;
+	}
+	else
+	{
+		return ;
+	}
+
+	if ( FCKBrowserInfo.IsIE )
+	{
+		// For IE: Before deletion, we have to move the selection outside the formula
+		// in order to prevent "Unspecified error".
+		var span_target = FCK.EditorDocument.createElement( 'span' ) ;
+		span_target.innerHTML = '&nbsp;' ;
+		span_target = oSpanAM.parentNode.insertBefore( span_target, oSpanAM ) ;
+		FCK.Selection.SelectNode( span_target ) ;
+	}
+
+	FCK.Selection.Delete() ;
+
+	if ( FCKBrowserInfo.IsIE )
+	{
+		FCKUndo.SaveUndoStep() ;
+		oSpanAM.parentNode.removeChild( oSpanAM ) ;
+	}
+}
+
+var FCKAsciiMathProcessor = FCKDocumentProcessor.AppendNew() ;
+
+FCKAsciiMathProcessor.ProcessDocument = function( document )
+{
+	var spans = FCK.EditorDocument.getElementsByTagName( 'SPAN' ) ;
+	var span ;
+	var i = spans.length - 1 ;
+	while ( i >= 0 && ( span = spans[i--] ) )
+	{
+		if ( FCKAsciiMath.IsFormula( span ) && !FCKAsciiMath.IsParsed ( span ) )
+		{
+			var clone = span.cloneNode( true ) ;
+			clone.title = span.innerHTML ;
+			AMprocessNode( clone, false ) ;
+
+			clone.setAttribute( '_fckfakelement', 'true', 0 ) ;
+			clone.setAttribute( '_fckrealelement', FCKTempBin.AddElement( span ), 0 ) ;
+
+			// To disable resizing.
+			clone.onresizestart = function()
+			{
+				FCK.EditorWindow.event.returnValue = false ;
+				return false ;
+			}
+
+			span.parentNode.insertBefore( clone, span ) ;
+			span.parentNode.removeChild( span ) ;
+		}
+	}
+}
+
+FCKAsciiMath.SetListeners = function()
+{
+	if ( FCK.EditMode != FCK_EDITMODE_WYSIWYG )
+	{
+		return ;
+	}
+
+	if ( !FCKBrowserInfo.IsIE )
+	{
+		// On Gecko we must do this trick so the user select all the SPAN when clicking on it.
+		FCK.EditorDocument.addEventListener( 'click', function( e )
+			{
+				var formula_container = FCKAsciiMath.FindFormulaContainer( e.target ) ;
+				if ( formula_container )
+				{
+					FCKSelection.SelectNode( formula_container ) ;
+				}
+			}, true
+		) ;
+
+		// On Gecko-like browsers we have to prevent editing the parsed formula in the editor.
+		FCK.EditorDocument.addEventListener( 'keypress', function( e )
+			{
+				var key = e.keyCode || e.which ;
+				switch ( key )
+				{
+					// Only keys for moving the cursor should be enabled.
+					case 37: // Left
+					case 39: // Right
+					case 38: // Up
+					case 40: // Down
+					case 36: // Home
+					case 35: // End
+					case 33: // Pg Up
+					case 34: // Pg Down
+						break ;
+					// Deletion.
+					case 8:  // Backspace
+					case 46: // Del
+						if ( FCKAsciiMath.FindFormulaContainer( FCKAsciiMath.GetSearchElementFromSelection() ) )
+						{
+							FCKAsciiMath.Delete() ;
+							if ( e.preventDefault ) e.preventDefault() ;
+							if ( e.stopPropagation ) e.stopPropagation() ;
+							break ;
+						}
+					default:
+						if ( FCKAsciiMath.FindFormulaContainer( FCKAsciiMath.GetSearchElementFromSelection() ) )
+						{
+							// We are inside a formula, block edition.
+							if ( e.preventDefault ) e.preventDefault() ;
+							if ( e.stopPropagation ) e.stopPropagation() ;
+						}
+						break ;
+				}
+			}, true
+		) ;
+	}
+	else
+	{
+		FCKAsciiMath.KeyDownIE = function( e )
+		{
+			if ( !e ) e = window.event ;
+			var key = e.keyCode ;
+			switch ( key )
+			{
+				// Deletion.
+				case 8:  // Backspace
+				case 46: // Del
+					if ( FCKAsciiMath.FindFormulaContainer( FCKAsciiMath.GetSearchElementFromSelection() ) )
+					{
+						FCKAsciiMath.Delete() ;
+						e.cancelBubble = true ;
+						break ;
+					}
+				default:
+					break ;
+			}
+		}
+
+		FCKTools.AddEventListener( FCK.EditorDocument.body, 'keydown', FCKAsciiMath.KeyDownIE ) ;
+	}
+}
+
+FCK.Events.AttachEvent( 'OnAfterSetHTML', FCKAsciiMath.SetListeners ) ;
+
+// We need to attach the script AsciiMathML.js after editing a full page content.
+// There is no appropriate event to be captured, so the following method has been chosen for modification.
+FCK.UpdateLinkedField = function()
+{
+	// Added code.
+	if ( FCKConfig.FullPage )
+	{
+		var html = FCK.EditorDocument.getElementsByTagName('html')[0] ;
+		var head ;
+		if ( typeof html == 'object' )
+		{
+			head = html.getElementsByTagName( 'HEAD' )[0] ;
+		}
+
+		if ( typeof head == 'object' )
+		{
+			var has_formula = false ;
+			var spans = FCK.EditorDocument.getElementsByTagName( 'SPAN' ) ;
+			var span ;
+			var i = spans.length - 1 ;
+			while ( i >= 0 && ( span = spans[i--] ) )
+			{
+				if ( FCKAsciiMath.IsFormula( span ) )
+				{
+					has_formula = true ;
+					break ;
+				}
+			}
+
+			var has_script = false ;
+			var head_data = FCK.GetData( false ).match( /<head\s?[^>]*>(.*?)<\/head\s*>/i )[1] ;
+			if ( head_data )
+			{
+				if ( head_data.indexOf( 'ASCIIMathML.js' ) != -1 )
+				{
+					has_script = true ;
+				}
+			}
+
+			if ( !has_script )
+			{
+				// TODO: This fragment works in WYSIWYG mode only.
+				script = FCK.EditorDocument.createElement( 'script' ) ;
+				script.setAttribute( 'src', FCKConfig.ScriptASCIIMathML ) ;
+				script.setAttribute( 'type', 'text/javascript' ) ;
+				head.appendChild( script ) ;
+			}
+		}
+	}
+	// End added code.
+
+	var value = FCK.GetData( FCKConfig.FormatOutput ) ;
+
+	if ( FCKConfig.HtmlEncodeOutput )
+		value = FCKTools.HTMLEncode( value ) ;
+
+	FCK.LinkedField.value = value ;
+	FCK.Events.FireEvent( 'OnAfterLinkedFieldUpdate' ) ;
+} ;

+ 8 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/index.html

@@ -0,0 +1,8 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+</head>
+<body>
+<br />
+</body>
+</html>

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/af.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: af.js
+ * asciimath plugin Afrikaans language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/ar.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: ar.js
+ * asciimath plugin Arabic language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/bg.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: bg.js
+ * asciimath plugin English language file.
+ * Encoding: UTF-8.
+ *
+ * Author: Ivan Tcholakov (ivantcholakov@gmail.com), 2009
+ */
+
+FCKLang["DlgAsciiMath"] = 'Въвеждане на математическа формула (AsciiMath)' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Математическа формула' ;
+FCKLang["DlgAsciiMathInput"] = 'Въвеждане' ;
+FCKLang["DlgAsciiMathClear"] = 'Изчистване' ;
+FCKLang["DlgAsciiMathDelete"] = 'Изтриване' ;
+FCKLang["DlgAsciiMathPreview"] = 'Преглед' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Редакторът е разработен на базата на ASCIIMathML от ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'За повече информация за AsciiMathML вижте тази страница: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Показване на MathML-код' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Преглед на формулата' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Вашият браузър не може да показва математически формули. Моля, използвайте %s1 или Internet Explorer с приставката %s2.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Вашият браузър не може да показва математически формули. Трябва да направите ъпгрейд до Internet Explorer 6.0+. След това трябва да инсталирате приставката MathPlayer 2 Internet Explorer. Моля, вижте %s за повече информация.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Вашият браузър не може да показва математически формули. Трябва да инсталирате приставката MathPlayer 2 Internet Explorer. Моля, вижте %s за повече информация.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Вашият браузър не може да показва математически формули. Трябва да направите ъпгрейд до версия 2 на приставката MathPlayer за Internet Explorer. Моля, вижте %s за повече информация.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/bn.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: bn.js
+ * asciimath plugin Bengali/Bangla language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/bs.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: bs.js
+ * asciimath plugin Bosnian language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/ca.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: ca.js
+ * asciimath plugin Catalan language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/cs.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: cs.js
+ * asciimath plugin Czech language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/da.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: da.js
+ * asciimath plugin Danish language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/de.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: de.js
+ * asciimath plugin German language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/el.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: el.js
+ * asciimath plugin Greek language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/en-au.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: en-au.js
+ * asciimath plugin English (Australia) language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/en-ca.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: en-ca.js
+ * asciimath plugin English (Canadian) language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/en-uk.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: en-uk.js
+ * asciimath plugin English (United Kingdom) language file.
+ * Encoding: UTF-8.
+ *
+ * Author: Ivan Tcholakov (ivantcholakov@gmail.com), 2009
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/en.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: en.js
+ * asciimath plugin English language file.
+ * Encoding: UTF-8.
+ *
+ * Author: Ivan Tcholakov (ivantcholakov@gmail.com), 2009
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/eo.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: eo.js
+ * asciimath plugin Esperanto language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/es.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: es.js
+ * asciimath plugin Spanish language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/et.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: et.js
+ * asciimath plugin Estonian language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/eu.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: eu.js
+ * asciimath plugin Basque language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/fa.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: fa.js
+ * asciimath plugin Persian language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/fi.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: fi.js
+ * asciimath plugin Finnish language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/fo.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: fo.js
+ * asciimath plugin Faroese language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/fr-ca.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: fr-ca.js
+ * asciimath plugin Canadian French language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/fr.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: fr.js
+ * asciimath plugin French language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/gl.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: gl.js
+ * asciimath plugin Galician language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/gu.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: gu.js
+ * asciimath plugin Gujarati language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/he.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: he.js
+ * asciimath plugin Hebrew language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/hi.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: hi.js
+ * asciimath plugin Hindi language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/hr.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: hr.js
+ * asciimath plugin Croatian language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/hu.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: hu.js
+ * asciimath plugin Hungarian language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 8 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/index.html

@@ -0,0 +1,8 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
+<head>
+</head>
+<body>
+<br />
+</body>
+</html>

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/is.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: is.js
+ * asciimath plugin Icelandic language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/it.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: it.js
+ * asciimath plugin Italian language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/ja.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: ja.js
+ * asciimath plugin Japanese language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/km.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: km.js
+ * asciimath plugin Khmer language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/ko.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: ko.js
+ * asciimath plugin Korean language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/lt.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: lt.js
+ * asciimath plugin Lithuanian language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/lv.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: lv.js
+ * asciimath plugin Latvian language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/mn.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: mn.js
+ * asciimath plugin Mongolian language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/ms.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: ms.js
+ * asciimath plugin Malay language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/nb.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: nb.js
+ * asciimath plugin Norwegian Bokmål language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/nl.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: nl.js
+ * asciimath plugin Dutch language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/no.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: no.js
+ * asciimath plugin Norwegian language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/pl.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: pl.js
+ * asciimath plugin Polish language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/pt-br.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: pt-br.js
+ * asciimath plugin Brazilian Portuguese language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/pt.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: pt.js
+ * asciimath plugin Portuguese language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/ro.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: ro.js
+ * asciimath plugin Romanian language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/ru.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: ru.js
+ * asciimath plugin Russian language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/sk.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: sk.js
+ * asciimath plugin Slovak language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/sl.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: sl.js
+ * asciimath plugin Slovenian language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/sr-latn.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: sr-latn.js
+ * asciimath plugin Serbian (Latin) language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/sr.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: sr.js
+ * asciimath plugin Serbian (Cyrillic) language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/sv.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: sv.js
+ * asciimath plugin Swedish language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/th.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: th.js
+ * asciimath plugin Thai language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/tr.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: tr.js
+ * asciimath plugin Turkish language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/uk.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: uk.js
+ * asciimath plugin Ukrainian language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/vi.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: vi.js
+ * asciimath plugin Vietnamese language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/zh-cn.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: zh-cn.js
+ * asciimath plugin Chinese Simplified language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 22 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lang/zh.js

@@ -0,0 +1,22 @@
+/*
+ * File Name: zn.js
+ * asciimath plugin Chinese Traditional language file.
+ * Encoding: UTF-8.
+ *
+ * Author:
+ */
+
+FCKLang["DlgAsciiMath"] = 'AsciiMath Formula Input' ;
+FCKLang["DlgAsciiMathFormulaEditor"] = 'Formula Editor' ;
+FCKLang["DlgAsciiMathInput"] = 'Input' ;
+FCKLang["DlgAsciiMathClear"] = 'Clear' ;
+FCKLang["DlgAsciiMathDelete"] = 'Delete' ;
+FCKLang["DlgAsciiMathPreview"] = 'Preview' ;
+FCKLang["DlgAsciiMathBasedOn"] = 'Based on ASCIIMathML by ' ;
+FCKLang["DlgAsciiMathForMoreInfo"] = 'For more information on AsciiMathML visit this page: ' ;
+FCKLang["DlgAsciiMathShowMathML"] = 'Show MathML' ;
+FCKLang["DlgAsciiMathFormulaPreview"] = 'Formula Preview' ;
+FCKLang["DlgAsciiIncompatibleBrowser"] = 'Your browser is not able to show mathematical formulas. Please, use %s1 or Internet Explorer with %s2 plugin.' ;
+FCKLang["DlgAsciiMathOldIE"] = 'Your browser is not able to show mathematical formulas. You need to upgrade to Internet Explorer 6.0+. Then you need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathInstallMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to install the MathPlayer 2 plugin for Internet Explorer. Please, see %s for more information.' ;
+FCKLang["DlgAsciiMathOldMathPlayer"] = 'Your browser is not able to show mathematical formulas. You need to upgrade the MathPlayer plugin for Internet Explorer to version 2. Please, see %s for more information.' ;

+ 165 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/lgpl-3.0.txt

@@ -0,0 +1,165 @@
+		   GNU LESSER GENERAL PUBLIC LICENSE
+                       Version 3, 29 June 2007
+
+ Copyright (C) 2007 Free Software Foundation, Inc. <http://fsf.org/>
+ Everyone is permitted to copy and distribute verbatim copies
+ of this license document, but changing it is not allowed.
+
+
+  This version of the GNU Lesser General Public License incorporates
+the terms and conditions of version 3 of the GNU General Public
+License, supplemented by the additional permissions listed below.
+
+  0. Additional Definitions.
+
+  As used herein, "this License" refers to version 3 of the GNU Lesser
+General Public License, and the "GNU GPL" refers to version 3 of the GNU
+General Public License.
+
+  "The Library" refers to a covered work governed by this License,
+other than an Application or a Combined Work as defined below.
+
+  An "Application" is any work that makes use of an interface provided
+by the Library, but which is not otherwise based on the Library.
+Defining a subclass of a class defined by the Library is deemed a mode
+of using an interface provided by the Library.
+
+  A "Combined Work" is a work produced by combining or linking an
+Application with the Library.  The particular version of the Library
+with which the Combined Work was made is also called the "Linked
+Version".
+
+  The "Minimal Corresponding Source" for a Combined Work means the
+Corresponding Source for the Combined Work, excluding any source code
+for portions of the Combined Work that, considered in isolation, are
+based on the Application, and not on the Linked Version.
+
+  The "Corresponding Application Code" for a Combined Work means the
+object code and/or source code for the Application, including any data
+and utility programs needed for reproducing the Combined Work from the
+Application, but excluding the System Libraries of the Combined Work.
+
+  1. Exception to Section 3 of the GNU GPL.
+
+  You may convey a covered work under sections 3 and 4 of this License
+without being bound by section 3 of the GNU GPL.
+
+  2. Conveying Modified Versions.
+
+  If you modify a copy of the Library, and, in your modifications, a
+facility refers to a function or data to be supplied by an Application
+that uses the facility (other than as an argument passed when the
+facility is invoked), then you may convey a copy of the modified
+version:
+
+   a) under this License, provided that you make a good faith effort to
+   ensure that, in the event an Application does not supply the
+   function or data, the facility still operates, and performs
+   whatever part of its purpose remains meaningful, or
+
+   b) under the GNU GPL, with none of the additional permissions of
+   this License applicable to that copy.
+
+  3. Object Code Incorporating Material from Library Header Files.
+
+  The object code form of an Application may incorporate material from
+a header file that is part of the Library.  You may convey such object
+code under terms of your choice, provided that, if the incorporated
+material is not limited to numerical parameters, data structure
+layouts and accessors, or small macros, inline functions and templates
+(ten or fewer lines in length), you do both of the following:
+
+   a) Give prominent notice with each copy of the object code that the
+   Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the object code with a copy of the GNU GPL and this license
+   document.
+
+  4. Combined Works.
+
+  You may convey a Combined Work under terms of your choice that,
+taken together, effectively do not restrict modification of the
+portions of the Library contained in the Combined Work and reverse
+engineering for debugging such modifications, if you also do each of
+the following:
+
+   a) Give prominent notice with each copy of the Combined Work that
+   the Library is used in it and that the Library and its use are
+   covered by this License.
+
+   b) Accompany the Combined Work with a copy of the GNU GPL and this license
+   document.
+
+   c) For a Combined Work that displays copyright notices during
+   execution, include the copyright notice for the Library among
+   these notices, as well as a reference directing the user to the
+   copies of the GNU GPL and this license document.
+
+   d) Do one of the following:
+
+       0) Convey the Minimal Corresponding Source under the terms of this
+       License, and the Corresponding Application Code in a form
+       suitable for, and under terms that permit, the user to
+       recombine or relink the Application with a modified version of
+       the Linked Version to produce a modified Combined Work, in the
+       manner specified by section 6 of the GNU GPL for conveying
+       Corresponding Source.
+
+       1) Use a suitable shared library mechanism for linking with the
+       Library.  A suitable mechanism is one that (a) uses at run time
+       a copy of the Library already present on the user's computer
+       system, and (b) will operate properly with a modified version
+       of the Library that is interface-compatible with the Linked
+       Version.
+
+   e) Provide Installation Information, but only if you would otherwise
+   be required to provide such information under section 6 of the
+   GNU GPL, and only to the extent that such information is
+   necessary to install and execute a modified version of the
+   Combined Work produced by recombining or relinking the
+   Application with a modified version of the Linked Version. (If
+   you use option 4d0, the Installation Information must accompany
+   the Minimal Corresponding Source and Corresponding Application
+   Code. If you use option 4d1, you must provide the Installation
+   Information in the manner specified by section 6 of the GNU GPL
+   for conveying Corresponding Source.)
+
+  5. Combined Libraries.
+
+  You may place library facilities that are a work based on the
+Library side by side in a single library together with other library
+facilities that are not Applications and are not covered by this
+License, and convey such a combined library under terms of your
+choice, if you do both of the following:
+
+   a) Accompany the combined library with a copy of the same work based
+   on the Library, uncombined with any other library facilities,
+   conveyed under the terms of this License.
+
+   b) Give prominent notice with the combined library that part of it
+   is a work based on the Library, and explaining where to find the
+   accompanying uncombined form of the same work.
+
+  6. Revised Versions of the GNU Lesser General Public License.
+
+  The Free Software Foundation may publish revised and/or new versions
+of the GNU Lesser General Public License from time to time. Such new
+versions will be similar in spirit to the present version, but may
+differ in detail to address new problems or concerns.
+
+  Each version is given a distinguishing version number. If the
+Library as you received it specifies that a certain numbered version
+of the GNU Lesser General Public License "or any later version"
+applies to it, you have the option of following the terms and
+conditions either of that published version or of any later version
+published by the Free Software Foundation. If the Library as you
+received it does not specify a version number of the GNU Lesser
+General Public License, you may choose any version of the GNU Lesser
+General Public License ever published by the Free Software Foundation.
+
+  If the Library as you received it specifies that a proxy can decide
+whether future versions of the GNU Lesser General Public License shall
+apply, that proxy's public statement of acceptance of any version is
+permanent authorization for you to choose that version for the
+Library.

+ 13 - 0
main/inc/lib/fckeditor/editor/plugins/asciimath/readme.txt

@@ -0,0 +1,13 @@
+
+AsciiMathML formula editor for Dokeos
+Author: Ivan Tcholakov (ivantcholakov@gmail.com), August 2009.
+ 
+This work is a port for the FCKEditor of Equation plugin for the Xinha editor (http://xinha.org)
+by Raimund Meyer (ray) xinha@raimundmeyer.de, November 2006.
+
+The plugin relies on ASCIIMathML.js, a javascript library for translating ASCII math notation to MathML
+by Peter Jipsen (http://www.chapman.edu/~jipsen).
+
+License:
+GNU Lesser General Public License, Version 3, 29 June 2007
+by Free Software Foundation, Inc. (http://www.gnu.org/licenses/lgpl.html)

+ 82 - 0
main/inc/lib/fckeditor/editor/plugins/customizations/fckplugin_load.js

@@ -0,0 +1,82 @@
+/*
+ *	Dokeos - elearning and course management software
+ *
+ *	Copyright (c) 2009 Dokeos SPRL
+ *	Copyright (c) 2009 Ivan Tcholakov <ivantcholakov@gmail.com>
+ *
+ *	For a full list of contributors, see "credits.txt".
+ *	The full license can be read in "license.txt".
+ *
+ *	This program is free software; you can redistribute it and/or
+ *	modify it under the terms of the GNU General Public License
+ *	as published by the Free Software Foundation; either version 2
+ *	of the License, or (at your option) any later version.
+ *
+ *	See the GNU General Public License for more details.
+ *
+ * Contact address: Dokeos, rue du Corbeau, 108, B-1030 Brussels, Belgium
+ * Mail: info@dokeos.com
+ */
+
+
+/*
+ * A fragment of the original source code of FCKeditor version 2.6.4.1
+ * is used in this file.
+ * 
+ * FCKeditor - The text editor for Internet - http://www.fckeditor.net
+ * Copyright (C) 2003-2009 Frederico Caldeira Knabben
+ */
+
+// Logic-improvement for ensuring that English language will be shown at least, when the required language file is missing.
+FCKPlugin.prototype.Load = function()
+{
+	// Logic-modification.
+	switch ( this.Name )
+	{
+		// The following plugins do not need language files or they load language files in their own way.
+		case 'dragresizetable':
+		case 'tablecommands':
+		case 'ImageManager':
+		case 'prompt':
+			// In this case we have to clear the list of available languages.
+			this.AvailableLangs = null ;
+			this.AvailableLangs = new Array() ;
+			break ;
+		// The following plugins have all needed language files, default logic works well for them.
+		case 'customizations':
+		case 'audio':
+		case 'fckEmbedMovies':
+		case 'flvPlayer':
+		case 'youtube':
+		case 'googlemaps':
+		case 'mimetex':
+		case 'wikilink':
+		case 'imgmap':
+			// No actions are needed for fully integrated plugins.
+			break ;
+		// For new (unknown) plugins we assume that the English language file always exists.
+		default:
+			// English language is loaded first, later the required language is to be loaded.
+			LoadScript( this.Path + 'lang/en.js' ) ;
+	}
+	// End of logic-modification.
+
+	// Load the language file, if defined.
+	if ( this.AvailableLangs.length > 0 )
+	{
+		var sLang ;
+
+		// Check if the plugin has the language file for the active language.
+		if ( this.AvailableLangs.IndexOf( FCKLanguageManager.ActiveLanguage.Code ) >= 0 )
+			sLang = FCKLanguageManager.ActiveLanguage.Code ;
+		else
+			// Load the default language file (first one) if the current one is not available.
+			sLang = this.AvailableLangs[0] ;
+
+		// Add the main plugin script.
+		LoadScript( this.Path + 'lang/' + sLang + '.js' ) ;
+	}
+
+	// Add the main plugin script.
+	LoadScript( this.Path + 'fckplugin.js' ) ;
+}

+ 1 - 3
main/inc/lib/fckeditor/fckeditor.php

@@ -35,9 +35,6 @@
  * @return boolean
  */
 
-//require_once api_get_path(LIBRARY_PATH).'/media.lib.php';  // This fails in some pages (Tests).
-require_once dirname(__FILE__).'/../media.lib.php';
-
 function FCKeditor_IsCompatibleBrowser()
 {
 	if ( isset( $_SERVER ) ) {
@@ -590,6 +587,7 @@ class FCKeditor
 		$config['FlashPlayerAudio'] = Media::get_path(FLASH_PLAYER_AUDIO, REL_PATH);
 		$config['FlashPlayerVideo'] = Media::get_path(FLASH_PLAYER_VIDEO, REL_PATH);
 		$config['ScriptSWFObject'] = Media::get_path(SCRIPT_SWFOBJECT, REL_PATH);
+		$config['ScriptASCIIMathML'] = Media::get_path(SCRIPT_ASCIIMATHML, REL_PATH);
 		return $config;
 	}
 

+ 12 - 14
main/inc/lib/fckeditor/myconfig.js

@@ -48,25 +48,18 @@ FCKConfig.SmileyWindowHeight = 250 ;
 
 
 /*
- * Plugins.
+ * Loading plugins integrated by the Dokeos team. To enable/disable them, see myconfig.php.
  */
 
-// Loading integrated by the Dokeos team plugins. To enable/disable them, see myconfig.php.
+// This is a list of all supported by the online editor languages.
 FCKConfig.AvailableLanguages = 'en,af,ar,bg,bn,bs,ca,cs,da,de,el,en-au,en-ca,en-uk,eo,es,et,eu,fa,fi,fo,fr-ca,fr,gl,gu,he,hi,hr,hu,is,it,ja,km,ko,lt,lv,mn,ms,nb,nl,no,pl,pt-br,pt,ro,ru,sk,sl,sr-latn,sr,sv,th,tr,uk,vi,zh-cn,zh' ;
+// Loadding additional script that ensures the English language will be shown for plugins, if they are not provided with the requiested language files.
+LoadScript( FCKConfig.PluginsPath + 'customizations/fckplugin_load.js' ) ;
+// Reading the list of the enabled in myconfig.php plugins.
 FCKConfig.LoadPlugin = eval( '(' + FCKConfig.PageConfig.LoadPlugin + ')' ) ;
+// Loading the enabled plugins.
 for ( var i = 0 ; i < FCKConfig.LoadPlugin.length ; i++ ) {
-	switch ( FCKConfig.LoadPlugin[i] ) {
-		// These plugins do not need language files or they load lannguage files in their own way.
-		case 'dragresizetable':
-		case 'tablecommands':
-		case 'ImageManager':
-		case 'prompt':
-			FCKConfig.Plugins.Add( FCKConfig.LoadPlugin[i] ) ;
-			break ;
-		default:
-			// The rest of the plugins require loading language files.
-			FCKConfig.Plugins.Add( FCKConfig.LoadPlugin[i], FCKConfig.AvailableLanguages ) ;
-	}
+	FCKConfig.Plugins.Add( FCKConfig.LoadPlugin[i], FCKConfig.AvailableLanguages ) ;
 }
 
 // API-key for the "googlemaps" plugin.
@@ -80,6 +73,11 @@ FCKConfig.GoogleMaps_Key = 'ABQIAAAAlXu5Pw6DFAUgqM2wQn01gxT2yXp_ZAY8_ufC3CFXhHIE
 // Probably this plugin will be removed at the next release.
 //FCKConfig.Plugins.Add('Flash', 'en') ;
 
+
+/*
+ * Loading custom plugins.
+ */
+
 // You may add your own plugins here, i.e. write something as follows:
 // FCKConfig.Plugins.Add('my_plugin', 'en') ;
 

+ 8 - 1
main/inc/lib/fckeditor/myconfig.php

@@ -76,7 +76,7 @@ $config['ToolbarSets']['Directory'] = 'default';
  */
 
 // customizations : This plugin has been developed by the Dokeos team for editor's integration within the system.
-// Please, do not disable it.
+// The plugin should be loaded first, before all other plugins. Please, do not disable it.
 $config['LoadPlugin'][] = 'customizations';
 
 // dragresizetable & tablecommands : Plugins for improvement table-related operations.
@@ -158,6 +158,13 @@ if (IS_WINDOWS_OS) {
 // Timeout for MimeTeX executable file detection - keep this value as low as possible, especially on Windows servers.
 $config['MimetexExecutableDetectionTimeout'] = 0.05;
 
+// asciimath : Yet another plugin for inserting mathematical formulas.
+// An additional javascript library ASCIIMathML.js has to be inserted within the pages with formulas.
+// After enabling it, this plugin is configured to work with full-page html documents out-of-the box.
+// You may try it in the "Documents" and "Wiki" tools.
+// Browser compatibility: Internet Explorer 6.0+ with MathPlayer plugin, Mozilla Firefox 2.0+, Opera 9.5+
+//$config['LoadPlugin'][] = 'asciimath';
+
 // wikilink : Adds a dialog for inserting wiki-formatted links.
 $config['LoadPlugin'][] = 'wikilink';
 

+ 1 - 1
main/inc/lib/fckeditor/toolbars/default/admin_templates.php

@@ -12,7 +12,7 @@ $config['ToolbarSets']['Normal'] = array(
 	array('NewPage','Templates','Save','Print','PageBreak','FitWindow','-','PasteWord','-','Undo','Redo','-','SelectAll','-','Find'),
 	array('Bold','Italic','Underline'),
 	array('Link','Unlink','Anchor'),
-	array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
+	array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex','asciimath'),
 	array('Table','Smiley','SpecialChar','googlemaps'),
 	array('FontFormat','FontName','FontSize'),
 	array('JustifyLeft','JustifyCenter','JustifyRight','-','OrderedList','UnorderedList','-','Outdent','Indent','-','TextColor','BGColor'),

+ 1 - 1
main/inc/lib/fckeditor/toolbars/default/documents.php

@@ -11,7 +11,7 @@
 $config['ToolbarSets']['Normal'] = array(
 	array('Save','FitWindow','PasteWord','-','Undo','Redo'),
 	array('Link','Unlink','Anchor','Glossary'),
-	array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
+	array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex','asciimath'),
 	array('Table','SpecialChar'),
 	array('Outdent','Indent','-','TextColor','BGColor','-','OrderedList','UnorderedList','-','Source'),
 	'/',

+ 1 - 1
main/inc/lib/fckeditor/toolbars/default/documents_student.php

@@ -11,7 +11,7 @@
 $config['ToolbarSets']['Normal'] = array(
 	array('Save','FitWindow','PasteWord','-','Undo','Redo'),
 	array('Link','Unlink','Anchor'),
-	array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
+	array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex','asciimath'),
 	array('Table','SpecialChar'),
 	array('Outdent','Indent','-','TextColor','BGColor','-','OrderedList','UnorderedList'),
 	'/',	

+ 1 - 1
main/inc/lib/fckeditor/toolbars/default/learning_path_documents.php

@@ -11,7 +11,7 @@
 $config['ToolbarSets']['Normal'] = array(
 	array('PasteWord','-','Undo','Redo'),
 	array('Link','Unlink','Anchor'),
-	array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex','Table','SpecialChar'),
+	array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex','asciimath','Table','SpecialChar'),
 	array('Outdent','Indent','TextColor','BGColor','-','OrderedList','UnorderedList','JustifyLeft','JustifyCenter','JustifyRight'),
 	'/',	
 	array('Style','FontFormat','FontName','FontSize'),

+ 1 - 1
main/inc/lib/fckeditor/toolbars/default/wiki.php

@@ -11,7 +11,7 @@
 $config['ToolbarSets']['Normal'] = array(
 	array('NewPage','Templates','Save','PageBreak','Preview','FitWindow','-','PasteText','-','Undo','Redo','-','SelectAll','-','Find'),
 	array('Wikilink','Link','Unlink','Anchor'),
-	array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
+	array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex','asciimath'),
 	array('Table','Smiley','SpecialChar','googlemaps'),
 	array('FontFormat','FontName','FontSize'),
 	array('Bold','Italic','Underline'),

+ 1 - 1
main/inc/lib/fckeditor/toolbars/default/wiki_student.php

@@ -11,7 +11,7 @@
 $config['ToolbarSets']['Normal'] = array(
 	array('NewPage','Save','PageBreak','Preview','FitWindow','-','PasteText','-','Undo','Redo','-','SelectAll','-','Find'),
 	array('Wikilink','Link','Unlink','Anchor'),
-	array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex'),
+	array('Image','flvPlayer','Flash','EmbedMovies','YouTube','MP3','mimetex','asciimath'),
 	array('Table','Smiley','SpecialChar','googlemaps'),
 	array('FontFormat','FontName','FontSize'),
 	array('Bold','Italic','Underline'),

+ 2 - 2
main/inc/lib/fckeditor/toolbars/extended/documents.php

@@ -19,7 +19,7 @@ $config['ToolbarSets']['Normal'] = array(
 	'/',
 	array('Style','FontFormat','FontName','FontSize'),
 	array('TextColor','BGColor'),
-	array('Rule','Table','SpecialChar','mimetex'),
+	array('Rule','Table','SpecialChar','mimetex','asciimath'),
 	array('Source')
 );
 
@@ -35,7 +35,7 @@ $config['ToolbarSets']['Maximized'] = array(
 	array('OrderedList','UnorderedList','-','Outdent','Indent','Blockquote','CreateDiv'),
 	array('JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'),
 	array('Rule','SpecialChar','PageBreak'),
-	array('mimetex','Image','imgmapPopup','Flash','MP3','EmbedMovies','flvPlayer','YouTube','googlemaps','Smiley'),
+	array('mimetex','asciimath','Image','imgmapPopup','Flash','MP3','EmbedMovies','flvPlayer','YouTube','googlemaps','Smiley'),
 	'/',
 	array('Style','FontFormat','FontName','FontSize'),
 	array('TextColor','BGColor'),

+ 2 - 2
main/inc/lib/fckeditor/toolbars/extended/documents_student.php

@@ -19,7 +19,7 @@ $config['ToolbarSets']['Normal'] = array(
 	'/',
 	array('Style','FontFormat','FontName','FontSize'),
 	array('TextColor','BGColor'),
-	array('Rule','Table','SpecialChar','mimetex')
+	array('Rule','Table','SpecialChar','mimetex','asciimath')
 );
 
 // This is the visible toolbar set when the editor is maximized.
@@ -34,7 +34,7 @@ $config['ToolbarSets']['Maximized'] = array(
 	array('OrderedList','UnorderedList','-','Outdent','Indent','Blockquote','CreateDiv'),
 	array('JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'),
 	array('Rule','SpecialChar','PageBreak'),
-	array('mimetex','Image','imgmapPopup','Flash','MP3','EmbedMovies','flvPlayer','googlemaps','Smiley'),
+	array('mimetex','asciimath','Image','imgmapPopup','Flash','MP3','EmbedMovies','flvPlayer','googlemaps','Smiley'),
 	'/',
 	array('Style','FontFormat','FontName','FontSize'),
 	array('TextColor','BGColor'),

+ 2 - 2
main/inc/lib/fckeditor/toolbars/extended/learning_path_documents.php

@@ -19,7 +19,7 @@ $config['ToolbarSets']['Normal'] = array(
 	'/',
 	array('Style','FontFormat','FontName','FontSize'),
 	array('TextColor','BGColor'),
-	array('Rule','Table','SpecialChar','mimetex'),
+	array('Rule','Table','SpecialChar','mimetex','asciimath'),
 	array('Source')
 );
 
@@ -35,7 +35,7 @@ $config['ToolbarSets']['Maximized'] = array(
 	array('OrderedList','UnorderedList','-','Outdent','Indent','Blockquote','CreateDiv'),
 	array('JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'),
 	array('Rule','SpecialChar','PageBreak'),
-	array('mimetex','Image','imgmapPopup','Flash','MP3','EmbedMovies','flvPlayer','YouTube','googlemaps','Smiley'),
+	array('mimetex','asciimath','Image','imgmapPopup','Flash','MP3','EmbedMovies','flvPlayer','YouTube','googlemaps','Smiley'),
 	'/',
 	array('Style','FontFormat','FontName','FontSize'),
 	array('TextColor','BGColor'),

+ 2 - 2
main/inc/lib/fckeditor/toolbars/extended/wiki.php

@@ -19,7 +19,7 @@ $config['ToolbarSets']['Normal'] = array(
 	'/',
 	array('Style','FontFormat','FontName','FontSize'),
 	array('TextColor','BGColor'),
-	array('Rule','Table','SpecialChar','mimetex'),
+	array('Rule','Table','SpecialChar','mimetex','asciimath'),
 	array('Source')
 );
 
@@ -35,7 +35,7 @@ $config['ToolbarSets']['Maximized'] = array(
 	array('OrderedList','UnorderedList','-','Outdent','Indent','Blockquote','CreateDiv'),
 	array('JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'),
 	array('Rule','SpecialChar','PageBreak'),
-	array('mimetex','Image','imgmapPopup','Flash','MP3','EmbedMovies','flvPlayer','YouTube','googlemaps','Smiley'),
+	array('mimetex','asciimath','Image','imgmapPopup','Flash','MP3','EmbedMovies','flvPlayer','YouTube','googlemaps','Smiley'),
 	'/',
 	array('Style','FontFormat','FontName','FontSize'),
 	array('TextColor','BGColor'),

+ 2 - 2
main/inc/lib/fckeditor/toolbars/extended/wiki_student.php

@@ -19,7 +19,7 @@ $config['ToolbarSets']['Normal'] = array(
 	'/',
 	array('Style','FontFormat','FontName','FontSize'),
 	array('TextColor','BGColor'),
-	array('Rule','Table','SpecialChar','mimetex')
+	array('Rule','Table','SpecialChar','mimetex','asciimath')
 );
 
 // This is the visible toolbar set when the editor is maximized.
@@ -34,7 +34,7 @@ $config['ToolbarSets']['Maximized'] = array(
 	array('OrderedList','UnorderedList','-','Outdent','Indent','Blockquote','CreateDiv'),
 	array('JustifyLeft','JustifyCenter','JustifyRight','JustifyFull'),
 	array('Rule','SpecialChar','PageBreak'),
-	array('mimetex','Image','imgmapPopup','Flash','MP3','EmbedMovies','flvPlayer','googlemaps','Smiley'),
+	array('mimetex','asciimath','Image','imgmapPopup','Flash','MP3','EmbedMovies','flvPlayer','googlemaps','Smiley'),
 	'/',
 	array('Style','FontFormat','FontName','FontSize'),
 	array('TextColor','BGColor'),

+ 11 - 3
main/inc/lib/media.lib.php

@@ -4,6 +4,7 @@
 define('FLASH_PLAYER_AUDIO', 'FLASH_PLAYER_AUDIO');
 define('FLASH_PLAYER_VIDEO', 'FLASH_PLAYER_VIDEO');
 define('SCRIPT_SWFOBJECT', 'SCRIPT_SWFOBJECT');
+define('SCRIPT_ASCIIMATHML', 'SCRIPT_ASCIIMATHML');
 
 /**
  * A static class for serving the Dokeos system's multi-media features.
@@ -13,7 +14,7 @@ class Media {
 
 	/**
 	 * This method returns the path (location) of a specified multi-media resource file.
-	 * @param string $media_resource		The identificator of the requested resource: FLASH_PLAYER_AUDIO, FLASH_PLAYER_VIDEO, SCRIPT_SWFOBJECT
+	 * @param string $media_resource		The identificator of the requested resource: FLASH_PLAYER_AUDIO, FLASH_PLAYER_VIDEO, SCRIPT_SWFOBJECT, SCRIPT_ASCIIMATHML
 	 * @param string $path_type (optional)	Type (or base) of the returned path, it can be: WEB_PATH, SYS_PATH, REL_PATH (default)
 	 * @return string						Path to access the requeted media-related file.
 	 * Note: At the moment returned paths are based on hard-coded data. Configuration data may be used in the future.
@@ -29,10 +30,17 @@ class Media {
 			case SCRIPT_SWFOBJECT:
 				$relative_path = 'main/inc/lib/swfobject/swfobject.js';
 				break;
+			case SCRIPT_ASCIIMATHML:
+				$relative_path = 'main/inc/lib/asciimath/ASCIIMathML.js';
+				break;
 			default:
-				$relative_path = '';
+				return '';
+		}
+		$base_path = api_get_path($path_type);
+		if (empty($base_path)) {
+			return '';
 		}
-		return api_get_path($path_type).$relative_path;
+		return $base_path.$relative_path;
 	}
 
 }

+ 5 - 8
tests/main/inc/lib/media.lib.test.php

@@ -1,17 +1,14 @@
 <?php
 require_once(api_get_path(LIBRARY_PATH).'media.lib.php');
-define('FLASH_PLAYER_AUDIO', 'FLASH_PLAYER_AUDIO');
-define('FLASH_PLAYER_VIDEO', 'FLASH_PLAYER_VIDEO');
-define('SCRIPT_SWFOBJECT', 'SCRIPT_SWFOBJECT');
-
 
 class TestMedia extends UnitTestCase {
 	
 		public function testget_path() {
-			$media_resource='';
-			$res=Media::get_path($media_resource,$path_type = REL_PATH);
-			$this->assertTrue(is_string($res));
-			//var_dump($res);
+			$result1 = Media::get_path(FLASH_PLAYER_AUDIO, REL_PATH);
+			$result2 = Media::get_path(FLASH_PLAYER_VIDEO, WEB_PATH);
+			$result3 = Media::get_path(SCRIPT_SWFOBJECT, SYS_PATH);
+			$result4 = Media::get_path(SCRIPT_ASCIIMATHML, REL_PATH);
+			$this->assertTrue(!empty($result1) && !empty($result2) && !empty($result3) && !empty($result4));
 		}
 }
 ?>

Some files were not shown because too many files changed in this diff