includes/clientside/tinymce/themes/advanced/js/charmap.js
changeset 1344 dc96d6c5cd1e
parent 1343 2a31905a567d
child 1345 1de01205143b
equal deleted inserted replaced
1343:2a31905a567d 1344:dc96d6c5cd1e
     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">&nbsp;</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 = '&amp;' + codeA;
       
   323 	elmA.innerHTML = '&amp;' + codeB;
       
   324 	elmN.innerHTML = codeN;
       
   325 }