PageRenderTime 66ms CodeModel.GetById 16ms app.highlight 43ms RepoModel.GetById 1ms app.codeStats 1ms

/static/scripts/tiny_mce/themes/advanced/js/charmap.js

http://n23.googlecode.com/
JavaScript | 325 lines | 303 code | 13 blank | 9 comment | 9 complexity | 0c12182af62b43dd83b9309a05d08664 MD5 | raw file
  1tinyMCEPopup.requireLangPack();
  2
  3var 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
266tinyMCEPopup.onInit.add(function() {
267	tinyMCEPopup.dom.setHTML('charmapView', renderCharMapHTML());
268});
269
270function 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
299function 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
310function 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}