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