[1] | 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('charmap', 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 width="' + tdWidth + '" height="' + tdHeight + '" class="charmap"' |
---|
| 280 | + ' onmouseover="this.className=\'charmapOver\';' |
---|
| 281 | + 'previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');"' |
---|
| 282 | + ' onmouseout="this.className=\'charmap\';"' |
---|
| 283 | + ' nowrap="nowrap" onclick="insertChar(\'' + charmap[i][1].substring(2,charmap[i][1].length-1) + '\');"><a style="text-decoration: none;" onfocus="previewChar(\'' + charmap[i][1].substring(1,charmap[i][1].length) + '\',\'' + charmap[i][0].substring(1,charmap[i][0].length) + '\',\'' + charmap[i][3] + '\');" href="javascript:insertChar(\'' + charmap[i][1].substring(2,charmap[i][1].length-1) + '\');" onclick="return false;" onmousedown="return false;" title="' + charmap[i][3] + '">' |
---|
| 284 | + charmap[i][1] |
---|
| 285 | + '</a></td>'; |
---|
| 286 | if ((cols+1) % charsPerRow == 0) |
---|
| 287 | html += '</tr><tr height="' + tdHeight + '">'; |
---|
| 288 | } |
---|
| 289 | } |
---|
| 290 | |
---|
| 291 | if (cols % charsPerRow > 0) { |
---|
| 292 | var padd = charsPerRow - (cols % charsPerRow); |
---|
| 293 | for (var i=0; i<padd-1; i++) |
---|
| 294 | html += '<td width="' + tdWidth + '" height="' + tdHeight + '" class="charmap"> </td>'; |
---|
| 295 | } |
---|
| 296 | |
---|
| 297 | html += '</tr></table>'; |
---|
| 298 | |
---|
| 299 | return html; |
---|
| 300 | } |
---|
| 301 | |
---|
| 302 | function insertChar(chr) { |
---|
| 303 | tinyMCEPopup.execCommand('mceInsertContent', false, '&#' + chr + ';'); |
---|
| 304 | |
---|
| 305 | // Refocus in window |
---|
| 306 | if (tinyMCEPopup.isWindow) |
---|
| 307 | window.focus(); |
---|
| 308 | |
---|
| 309 | tinyMCEPopup.editor.focus(); |
---|
| 310 | tinyMCEPopup.close(); |
---|
| 311 | } |
---|
| 312 | |
---|
| 313 | function previewChar(codeA, codeB, codeN) { |
---|
| 314 | var elmA = document.getElementById('codeA'); |
---|
| 315 | var elmB = document.getElementById('codeB'); |
---|
| 316 | var elmV = document.getElementById('codeV'); |
---|
| 317 | var elmN = document.getElementById('codeN'); |
---|
| 318 | |
---|
| 319 | if (codeA=='#160;') { |
---|
| 320 | elmV.innerHTML = '__'; |
---|
| 321 | } else { |
---|
| 322 | elmV.innerHTML = '&' + codeA; |
---|
| 323 | } |
---|
| 324 | |
---|
| 325 | elmB.innerHTML = '&' + codeA; |
---|
| 326 | elmA.innerHTML = '&' + codeB; |
---|
| 327 | elmN.innerHTML = codeN; |
---|
| 328 | } |
---|