1 |
3 |
ahitrov@rambler.ru |
/** |
2 |
|
|
* charmap.js |
3 |
|
|
* |
4 |
|
|
* Copyright 2009, Moxiecode Systems AB |
5 |
|
|
* Released under LGPL License. |
6 |
|
|
* |
7 |
|
|
* License: http://tinymce.moxiecode.com/license |
8 |
|
|
* Contributing: http://tinymce.moxiecode.com/contributing |
9 |
|
|
*/ |
10 |
|
|
|
11 |
|
|
tinyMCEPopup.requireLangPack(); |
12 |
|
|
|
13 |
|
|
var charmap = [ |
14 |
|
|
[' ', ' ', true, 'no-break space'], |
15 |
|
|
['&', '&', true, 'ampersand'], |
16 |
|
|
['"', '"', true, 'quotation mark'], |
17 |
|
|
// finance |
18 |
|
|
['¢', '¢', true, 'cent sign'], |
19 |
|
|
['€', '€', true, 'euro sign'], |
20 |
|
|
['£', '£', true, 'pound sign'], |
21 |
|
|
['¥', '¥', true, 'yen sign'], |
22 |
|
|
// signs |
23 |
|
|
['©', '©', true, 'copyright sign'], |
24 |
|
|
['®', '®', true, 'registered sign'], |
25 |
|
|
['™', '™', true, 'trade mark sign'], |
26 |
|
|
['‰', '‰', true, 'per mille sign'], |
27 |
|
|
['µ', 'µ', true, 'micro sign'], |
28 |
|
|
['·', '·', true, 'middle dot'], |
29 |
|
|
['•', '•', true, 'bullet'], |
30 |
|
|
['…', '…', true, 'three dot leader'], |
31 |
|
|
['′', '′', true, 'minutes / feet'], |
32 |
|
|
['″', '″', true, 'seconds / inches'], |
33 |
|
|
['§', '§', true, 'section sign'], |
34 |
|
|
['¶', '¶', true, 'paragraph sign'], |
35 |
|
|
['ß', 'ß', true, 'sharp s / ess-zed'], |
36 |
|
|
// quotations |
37 |
|
|
['‹', '‹', true, 'single left-pointing angle quotation mark'], |
38 |
|
|
['›', '›', true, 'single right-pointing angle quotation mark'], |
39 |
|
|
['«', '«', true, 'left pointing guillemet'], |
40 |
|
|
['»', '»', true, 'right pointing guillemet'], |
41 |
|
|
['‘', '‘', true, 'left single quotation mark'], |
42 |
|
|
['’', '’', true, 'right single quotation mark'], |
43 |
|
|
['“', '“', true, 'left double quotation mark'], |
44 |
|
|
['”', '”', true, 'right double quotation mark'], |
45 |
|
|
['‚', '‚', true, 'single low-9 quotation mark'], |
46 |
|
|
['„', '„', true, 'double low-9 quotation mark'], |
47 |
|
|
['<', '<', true, 'less-than sign'], |
48 |
|
|
['>', '>', true, 'greater-than sign'], |
49 |
|
|
['≤', '≤', true, 'less-than or equal to'], |
50 |
|
|
['≥', '≥', true, 'greater-than or equal to'], |
51 |
|
|
['–', '–', true, 'en dash'], |
52 |
|
|
['—', '—', true, 'em dash'], |
53 |
|
|
['¯', '¯', true, 'macron'], |
54 |
|
|
['‾', '‾', true, 'overline'], |
55 |
|
|
['¤', '¤', true, 'currency sign'], |
56 |
|
|
['¦', '¦', true, 'broken bar'], |
57 |
|
|
['¨', '¨', true, 'diaeresis'], |
58 |
|
|
['¡', '¡', true, 'inverted exclamation mark'], |
59 |
|
|
['¿', '¿', true, 'turned question mark'], |
60 |
|
|
['ˆ', 'ˆ', true, 'circumflex accent'], |
61 |
|
|
['˜', '˜', true, 'small tilde'], |
62 |
|
|
['°', '°', true, 'degree sign'], |
63 |
|
|
['−', '−', true, 'minus sign'], |
64 |
|
|
['±', '±', true, 'plus-minus sign'], |
65 |
|
|
['÷', '÷', true, 'division sign'], |
66 |
|
|
['⁄', '⁄', true, 'fraction slash'], |
67 |
|
|
['×', '×', true, 'multiplication sign'], |
68 |
|
|
['¹', '¹', true, 'superscript one'], |
69 |
|
|
['²', '²', true, 'superscript two'], |
70 |
|
|
['³', '³', true, 'superscript three'], |
71 |
|
|
['¼', '¼', true, 'fraction one quarter'], |
72 |
|
|
['½', '½', true, 'fraction one half'], |
73 |
|
|
['¾', '¾', true, 'fraction three quarters'], |
74 |
|
|
// math / logical |
75 |
|
|
['ƒ', 'ƒ', true, 'function / florin'], |
76 |
|
|
['∫', '∫', true, 'integral'], |
77 |
|
|
['∑', '∑', true, 'n-ary sumation'], |
78 |
|
|
['∞', '∞', true, 'infinity'], |
79 |
|
|
['√', '√', true, 'square root'], |
80 |
|
|
['∼', '∼', false,'similar to'], |
81 |
|
|
['≅', '≅', false,'approximately equal to'], |
82 |
|
|
['≈', '≈', true, 'almost equal to'], |
83 |
|
|
['≠', '≠', true, 'not equal to'], |
84 |
|
|
['≡', '≡', true, 'identical to'], |
85 |
|
|
['∈', '∈', false,'element of'], |
86 |
|
|
['∉', '∉', false,'not an element of'], |
87 |
|
|
['∋', '∋', false,'contains as member'], |
88 |
|
|
['∏', '∏', true, 'n-ary product'], |
89 |
|
|
['∧', '∧', false,'logical and'], |
90 |
|
|
['∨', '∨', false,'logical or'], |
91 |
|
|
['¬', '¬', true, 'not sign'], |
92 |
|
|
['∩', '∩', true, 'intersection'], |
93 |
|
|
['∪', '∪', false,'union'], |
94 |
|
|
['∂', '∂', true, 'partial differential'], |
95 |
|
|
['∀', '∀', false,'for all'], |
96 |
|
|
['∃', '∃', false,'there exists'], |
97 |
|
|
['∅', '∅', false,'diameter'], |
98 |
|
|
['∇', '∇', false,'backward difference'], |
99 |
|
|
['∗', '∗', false,'asterisk operator'], |
100 |
|
|
['∝', '∝', false,'proportional to'], |
101 |
|
|
['∠', '∠', false,'angle'], |
102 |
|
|
// undefined |
103 |
|
|
['´', '´', true, 'acute accent'], |
104 |
|
|
['¸', '¸', true, 'cedilla'], |
105 |
|
|
['ª', 'ª', true, 'feminine ordinal indicator'], |
106 |
|
|
['º', 'º', true, 'masculine ordinal indicator'], |
107 |
|
|
['†', '†', true, 'dagger'], |
108 |
|
|
['‡', '‡', true, 'double dagger'], |
109 |
|
|
// alphabetical special chars |
110 |
|
|
['À', 'À', true, 'A - grave'], |
111 |
|
|
['Á', 'Á', true, 'A - acute'], |
112 |
|
|
['Â', 'Â', true, 'A - circumflex'], |
113 |
|
|
['Ã', 'Ã', true, 'A - tilde'], |
114 |
|
|
['Ä', 'Ä', true, 'A - diaeresis'], |
115 |
|
|
['Å', 'Å', true, 'A - ring above'], |
116 |
|
|
['Æ', 'Æ', true, 'ligature AE'], |
117 |
|
|
['Ç', 'Ç', true, 'C - cedilla'], |
118 |
|
|
['È', 'È', true, 'E - grave'], |
119 |
|
|
['É', 'É', true, 'E - acute'], |
120 |
|
|
['Ê', 'Ê', true, 'E - circumflex'], |
121 |
|
|
['Ë', 'Ë', true, 'E - diaeresis'], |
122 |
|
|
['Ì', 'Ì', true, 'I - grave'], |
123 |
|
|
['Í', 'Í', true, 'I - acute'], |
124 |
|
|
['Î', 'Î', true, 'I - circumflex'], |
125 |
|
|
['Ï', 'Ï', true, 'I - diaeresis'], |
126 |
|
|
['Ð', 'Ð', true, 'ETH'], |
127 |
|
|
['Ñ', 'Ñ', true, 'N - tilde'], |
128 |
|
|
['Ò', 'Ò', true, 'O - grave'], |
129 |
|
|
['Ó', 'Ó', true, 'O - acute'], |
130 |
|
|
['Ô', 'Ô', true, 'O - circumflex'], |
131 |
|
|
['Õ', 'Õ', true, 'O - tilde'], |
132 |
|
|
['Ö', 'Ö', true, 'O - diaeresis'], |
133 |
|
|
['Ø', 'Ø', true, 'O - slash'], |
134 |
|
|
['Œ', 'Œ', true, 'ligature OE'], |
135 |
|
|
['Š', 'Š', true, 'S - caron'], |
136 |
|
|
['Ù', 'Ù', true, 'U - grave'], |
137 |
|
|
['Ú', 'Ú', true, 'U - acute'], |
138 |
|
|
['Û', 'Û', true, 'U - circumflex'], |
139 |
|
|
['Ü', 'Ü', true, 'U - diaeresis'], |
140 |
|
|
['Ý', 'Ý', true, 'Y - acute'], |
141 |
|
|
['Ÿ', 'Ÿ', true, 'Y - diaeresis'], |
142 |
|
|
['Þ', 'Þ', true, 'THORN'], |
143 |
|
|
['à', 'à', true, 'a - grave'], |
144 |
|
|
['á', 'á', true, 'a - acute'], |
145 |
|
|
['â', 'â', true, 'a - circumflex'], |
146 |
|
|
['ã', 'ã', true, 'a - tilde'], |
147 |
|
|
['ä', 'ä', true, 'a - diaeresis'], |
148 |
|
|
['å', 'å', true, 'a - ring above'], |
149 |
|
|
['æ', 'æ', true, 'ligature ae'], |
150 |
|
|
['ç', 'ç', true, 'c - cedilla'], |
151 |
|
|
['è', 'è', true, 'e - grave'], |
152 |
|
|
['é', 'é', true, 'e - acute'], |
153 |
|
|
['ê', 'ê', true, 'e - circumflex'], |
154 |
|
|
['ë', 'ë', true, 'e - diaeresis'], |
155 |
|
|
['ì', 'ì', true, 'i - grave'], |
156 |
|
|
['í', 'í', true, 'i - acute'], |
157 |
|
|
['î', 'î', true, 'i - circumflex'], |
158 |
|
|
['ï', 'ï', true, 'i - diaeresis'], |
159 |
|
|
['ð', 'ð', true, 'eth'], |
160 |
|
|
['ñ', 'ñ', true, 'n - tilde'], |
161 |
|
|
['ò', 'ò', true, 'o - grave'], |
162 |
|
|
['ó', 'ó', true, 'o - acute'], |
163 |
|
|
['ô', 'ô', true, 'o - circumflex'], |
164 |
|
|
['õ', 'õ', true, 'o - tilde'], |
165 |
|
|
['ö', 'ö', true, 'o - diaeresis'], |
166 |
|
|
['ø', 'ø', true, 'o slash'], |
167 |
|
|
['œ', 'œ', true, 'ligature oe'], |
168 |
|
|
['š', 'š', true, 's - caron'], |
169 |
|
|
['ù', 'ù', true, 'u - grave'], |
170 |
|
|
['ú', 'ú', true, 'u - acute'], |
171 |
|
|
['û', 'û', true, 'u - circumflex'], |
172 |
|
|
['ü', 'ü', true, 'u - diaeresis'], |
173 |
|
|
['ý', 'ý', true, 'y - acute'], |
174 |
|
|
['þ', 'þ', true, 'thorn'], |
175 |
|
|
['ÿ', 'ÿ', true, 'y - diaeresis'], |
176 |
|
|
['Α', 'Α', true, 'Alpha'], |
177 |
|
|
['Β', 'Β', true, 'Beta'], |
178 |
|
|
['Γ', 'Γ', true, 'Gamma'], |
179 |
|
|
['Δ', 'Δ', true, 'Delta'], |
180 |
|
|
['Ε', 'Ε', true, 'Epsilon'], |
181 |
|
|
['Ζ', 'Ζ', true, 'Zeta'], |
182 |
|
|
['Η', 'Η', true, 'Eta'], |
183 |
|
|
['Θ', 'Θ', true, 'Theta'], |
184 |
|
|
['Ι', 'Ι', true, 'Iota'], |
185 |
|
|
['Κ', 'Κ', true, 'Kappa'], |
186 |
|
|
['Λ', 'Λ', true, 'Lambda'], |
187 |
|
|
['Μ', 'Μ', true, 'Mu'], |
188 |
|
|
['Ν', 'Ν', true, 'Nu'], |
189 |
|
|
['Ξ', 'Ξ', true, 'Xi'], |
190 |
|
|
['Ο', 'Ο', true, 'Omicron'], |
191 |
|
|
['Π', 'Π', true, 'Pi'], |
192 |
|
|
['Ρ', 'Ρ', true, 'Rho'], |
193 |
|
|
['Σ', 'Σ', true, 'Sigma'], |
194 |
|
|
['Τ', 'Τ', true, 'Tau'], |
195 |
|
|
['Υ', 'Υ', true, 'Upsilon'], |
196 |
|
|
['Φ', 'Φ', true, 'Phi'], |
197 |
|
|
['Χ', 'Χ', true, 'Chi'], |
198 |
|
|
['Ψ', 'Ψ', true, 'Psi'], |
199 |
|
|
['Ω', 'Ω', true, 'Omega'], |
200 |
|
|
['α', 'α', true, 'alpha'], |
201 |
|
|
['β', 'β', true, 'beta'], |
202 |
|
|
['γ', 'γ', true, 'gamma'], |
203 |
|
|
['δ', 'δ', true, 'delta'], |
204 |
|
|
['ε', 'ε', true, 'epsilon'], |
205 |
|
|
['ζ', 'ζ', true, 'zeta'], |
206 |
|
|
['η', 'η', true, 'eta'], |
207 |
|
|
['θ', 'θ', true, 'theta'], |
208 |
|
|
['ι', 'ι', true, 'iota'], |
209 |
|
|
['κ', 'κ', true, 'kappa'], |
210 |
|
|
['λ', 'λ', true, 'lambda'], |
211 |
|
|
['μ', 'μ', true, 'mu'], |
212 |
|
|
['ν', 'ν', true, 'nu'], |
213 |
|
|
['ξ', 'ξ', true, 'xi'], |
214 |
|
|
['ο', 'ο', true, 'omicron'], |
215 |
|
|
['π', 'π', true, 'pi'], |
216 |
|
|
['ρ', 'ρ', true, 'rho'], |
217 |
|
|
['ς', 'ς', true, 'final sigma'], |
218 |
|
|
['σ', 'σ', true, 'sigma'], |
219 |
|
|
['τ', 'τ', true, 'tau'], |
220 |
|
|
['υ', 'υ', true, 'upsilon'], |
221 |
|
|
['φ', 'φ', true, 'phi'], |
222 |
|
|
['χ', 'χ', true, 'chi'], |
223 |
|
|
['ψ', 'ψ', true, 'psi'], |
224 |
|
|
['ω', 'ω', true, 'omega'], |
225 |
|
|
// symbols |
226 |
|
|
['ℵ', 'ℵ', false,'alef symbol'], |
227 |
|
|
['ϖ', 'ϖ', false,'pi symbol'], |
228 |
|
|
['ℜ', 'ℜ', false,'real part symbol'], |
229 |
|
|
['ϑ','ϑ', false,'theta symbol'], |
230 |
|
|
['ϒ', 'ϒ', false,'upsilon - hook symbol'], |
231 |
|
|
['℘', '℘', false,'Weierstrass p'], |
232 |
|
|
['ℑ', 'ℑ', false,'imaginary part'], |
233 |
|
|
// arrows |
234 |
|
|
['←', '←', true, 'leftwards arrow'], |
235 |
|
|
['↑', '↑', true, 'upwards arrow'], |
236 |
|
|
['→', '→', true, 'rightwards arrow'], |
237 |
|
|
['↓', '↓', true, 'downwards arrow'], |
238 |
|
|
['↔', '↔', true, 'left right arrow'], |
239 |
|
|
['↵', '↵', false,'carriage return'], |
240 |
|
|
['⇐', '⇐', false,'leftwards double arrow'], |
241 |
|
|
['⇑', '⇑', false,'upwards double arrow'], |
242 |
|
|
['⇒', '⇒', false,'rightwards double arrow'], |
243 |
|
|
['⇓', '⇓', false,'downwards double arrow'], |
244 |
|
|
['⇔', '⇔', false,'left right double arrow'], |
245 |
|
|
['∴', '∴', false,'therefore'], |
246 |
|
|
['⊂', '⊂', false,'subset of'], |
247 |
|
|
['⊃', '⊃', false,'superset of'], |
248 |
|
|
['⊄', '⊄', false,'not a subset of'], |
249 |
|
|
['⊆', '⊆', false,'subset of or equal to'], |
250 |
|
|
['⊇', '⊇', false,'superset of or equal to'], |
251 |
|
|
['⊕', '⊕', false,'circled plus'], |
252 |
|
|
['⊗', '⊗', false,'circled times'], |
253 |
|
|
['⊥', '⊥', false,'perpendicular'], |
254 |
|
|
['⋅', '⋅', false,'dot operator'], |
255 |
|
|
['⌈', '⌈', false,'left ceiling'], |
256 |
|
|
['⌉', '⌉', false,'right ceiling'], |
257 |
|
|
['⌊', '⌊', false,'left floor'], |
258 |
|
|
['⌋', '⌋', false,'right floor'], |
259 |
|
|
['⟨', '〈', false,'left-pointing angle bracket'], |
260 |
|
|
['⟩', '〉', false,'right-pointing angle bracket'], |
261 |
|
|
['◊', '◊', true,'lozenge'], |
262 |
|
|
['♠', '♠', false,'black spade suit'], |
263 |
|
|
['♣', '♣', true, 'black club suit'], |
264 |
|
|
['♥', '♥', true, 'black heart suit'], |
265 |
|
|
['♦', '♦', true, 'black diamond suit'], |
266 |
|
|
[' ', ' ', false,'en space'], |
267 |
|
|
[' ', ' ', false,'em space'], |
268 |
|
|
[' ', ' ', false,'thin space'], |
269 |
|
|
['‌', '‌', false,'zero width non-joiner'], |
270 |
|
|
['‍', '‍', false,'zero width joiner'], |
271 |
|
|
['‎', '‎', false,'left-to-right mark'], |
272 |
|
|
['‏', '‏', false,'right-to-left mark'], |
273 |
|
|
['­', '­', false,'soft hyphen'] |
274 |
|
|
]; |
275 |
|
|
|
276 |
|
|
tinyMCEPopup.onInit.add(function() { |
277 |
|
|
tinyMCEPopup.dom.setHTML('charmapView', renderCharMapHTML()); |
278 |
|
|
}); |
279 |
|
|
|
280 |
|
|
function renderCharMapHTML() { |
281 |
|
|
var charsPerRow = 20, tdWidth=20, tdHeight=20, i; |
282 |
|
|
var html = '<table border="0" cellspacing="1" cellpadding="0" width="' + (tdWidth*charsPerRow) + '"><tr height="' + tdHeight + '">'; |
283 |
|
|
var cols=-1; |
284 |
|
|
|
285 |
|
|
for (i=0; i<charmap.length; i++) { |
286 |
|
|
if (charmap[i][2]==true) { |
287 |
|
|
cols++; |
288 |
|
|
html += '' |
289 |
|
|
+ '<td class="charmap">' |
290 |
|
|
+ '<a onmouseover="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" onfocus="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" href="javascript:void(0)" onclick="insertChar(\'' + charmap[i][1].substring(2,charmap[i][1].length-1) + '\');" onclick="return false;" onmousedown="return false;" title="' + charmap[i][3] + '">' |
291 |
|
|
+ charmap[i][1] |
292 |
|
|
+ '</a></td>'; |
293 |
|
|
if ((cols+1) % charsPerRow == 0) |
294 |
|
|
html += '</tr><tr height="' + tdHeight + '">'; |
295 |
|
|
} |
296 |
|
|
} |
297 |
|
|
|
298 |
|
|
if (cols % charsPerRow > 0) { |
299 |
|
|
var padd = charsPerRow - (cols % charsPerRow); |
300 |
|
|
for (var i=0; i<padd-1; i++) |
301 |
|
|
html += '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap"> </td>'; |
302 |
|
|
} |
303 |
|
|
|
304 |
|
|
html += '</tr></table>'; |
305 |
|
|
|
306 |
|
|
return html; |
307 |
|
|
} |
308 |
|
|
|
309 |
|
|
function insertChar(chr) { |
310 |
|
|
tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';'); |
311 |
|
|
|
312 |
|
|
// Refocus in window |
313 |
|
|
if (tinyMCEPopup.isWindow) |
314 |
|
|
window.focus(); |
315 |
|
|
|
316 |
|
|
tinyMCEPopup.editor.focus(); |
317 |
|
|
tinyMCEPopup.close(); |
318 |
|
|
} |
319 |
|
|
|
320 |
|
|
function previewChar(codeA, codeB, codeN) { |
321 |
|
|
var elmA = document.getElementById('codeA'); |
322 |
|
|
var elmB = document.getElementById('codeB'); |
323 |
|
|
var elmV = document.getElementById('codeV'); |
324 |
|
|
var elmN = document.getElementById('codeN'); |
325 |
|
|
|
326 |
|
|
if (codeA=='#160;') { |
327 |
|
|
elmV.innerHTML = '__'; |
328 |
|
|
} else { |
329 |
|
|
elmV.innerHTML = '&' + codeA; |
330 |
|
|
} |
331 |
|
|
|
332 |
|
|
elmB.innerHTML = '&' + codeA; |
333 |
|
|
elmA.innerHTML = '&' + codeB; |
334 |
|
|
elmN.innerHTML = codeN; |
335 |
|
|
} |