Bladeren bron

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

Ivan Tcholakov 15 jaren geleden
bovenliggende
commit
f42ed072f3
97 gewijzigde bestanden met toevoegingen van 7551 en 45 verwijderingen
  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