Subversion Repositories Applications.papyrus

Rev

Rev 1371 | Blame | Compare with Previous | Last modification | View Log | RSS feed

/*
 * FCKeditor - The text editor for internet
 * Copyright (C) 2003-2006 Frederico Caldeira Knabben
 * 
 * Licensed under the terms of the GNU Lesser General Public License:
 *              http://www.opensource.org/licenses/lgpl-license.php
 * 
 * For further information visit:
 *              http://www.fckeditor.net/
 * 
 * "Support Open Source software. What about a donation today?"
 * 
 * File Name: fckxhtmlentities.js
 *      This file define the HTML entities handled by the editor.
 * 
 * File Authors:
 *              Frederico Caldeira Knabben (fredck@fckeditor.net)
 */

var FCKXHtmlEntities = new Object() ;

FCKXHtmlEntities.Initialize = function()
{
        if ( FCKXHtmlEntities.Entities )
                return ;

        var sChars = '' ;

        if ( FCKConfig.ProcessHTMLEntities )
        {
                FCKXHtmlEntities.Entities = {
                        // Latin-1 Entities
                        ' ':'nbsp',
                        '¡':'iexcl',
                        '¢':'cent',
                        '£':'pound',
                        '¤':'curren',
                        '¥':'yen',
                        '¦':'brvbar',
                        '§':'sect',
                        '¨':'uml',
                        '©':'copy',
                        'ª':'ordf',
                        '«':'laquo',
                        '¬':'not',
                        '­':'shy',
                        '®':'reg',
                        '¯':'macr',
                        '°':'deg',
                        '±':'plusmn',
                        '²':'sup2',
                        '³':'sup3',
                        '´':'acute',
                        'µ':'micro',
                        '¶':'para',
                        '·':'middot',
                        '¸':'cedil',
                        '¹':'sup1',
                        'º':'ordm',
                        '»':'raquo',
                        '¼':'frac14',
                        '½':'frac12',
                        '¾':'frac34',
                        '¿':'iquest',
                        '×':'times',
                        '÷':'divide',

                        // Symbols

                        'ƒ':'fnof',
                        '•':'bull',
                        '…':'hellip',
                        '′':'prime',
                        '″':'Prime',
                        '‾':'oline',
                        '⁄':'frasl',
                        '℘':'weierp',
                        'ℑ':'image',
                        'ℜ':'real',
                        '™':'trade',
                        'ℵ':'alefsym',
                        '←':'larr',
                        '↑':'uarr',
                        '→':'rarr',
                        '↓':'darr',
                        '↔':'harr',
                        '↵':'crarr',
                        '⇐':'lArr',
                        '⇑':'uArr',
                        '⇒':'rArr',
                        '⇓':'dArr',
                        '⇔':'hArr',
                        '∀':'forall',
                        '∂':'part',
                        '∃':'exist',
                        '∅':'empty',
                        '∇':'nabla',
                        '∈':'isin',
                        '∉':'notin',
                        '∋':'ni',
                        '∏':'prod',
                        '∑':'sum',
                        '−':'minus',
                        '∗':'lowast',
                        '√':'radic',
                        '∝':'prop',
                        '∞':'infin',
                        '∠':'ang',
                        '∧':'and',
                        '∨':'or',
                        '∩':'cap',
                        '∪':'cup',
                        '∫':'int',
                        '∴':'there4',
                        '∼':'sim',
                        '≅':'cong',
                        '≈':'asymp',
                        '≠':'ne',
                        '≡':'equiv',
                        '≤':'le',
                        '≥':'ge',
                        '⊂':'sub',
                        '⊃':'sup',
                        '⊄':'nsub',
                        '⊆':'sube',
                        '⊇':'supe',
                        '⊕':'oplus',
                        '⊗':'otimes',
                        '⊥':'perp',
                        '⋅':'sdot',
                        '◊':'loz',
                        '♠':'spades',
                        '♣':'clubs',
                        '♥':'hearts',
                        '♦':'diams',

                        // Other Special Characters 

                        '"':'quot',
                //      '&':'amp',              // This entity is automatically handled by the XHTML parser.
                //      '<':'lt',               // This entity is automatically handled by the XHTML parser.
                //      '>':'gt',               // This entity is automatically handled by the XHTML parser.
                        'ˆ':'circ',
                        '˜':'tilde',
                        ' ':'ensp',
                        ' ':'emsp',
                        ' ':'thinsp',
                        '‌':'zwnj',
                        '‍':'zwj',
                        '‎':'lrm',
                        '‏':'rlm',
                        '–':'ndash',
                        '—':'mdash',
                        '‘':'lsquo',
                        '’':'rsquo',
                        '‚':'sbquo',
                        '“':'ldquo',
                        '”':'rdquo',
                        '„':'bdquo',
                        '†':'dagger',
                        '‡':'Dagger',
                        '‰':'permil',
                        '‹':'lsaquo',
                        '›':'rsaquo',
                        '¤':'euro'
                } ;

                // Process Base Entities.
                for ( var e in FCKXHtmlEntities.Entities )
                        sChars += e ;

                // Include Latin Letters Entities.
                if ( FCKConfig.IncludeLatinEntities )
                {
                        var oEntities = {
                                'À':'Agrave',
                                'Á':'Aacute',
                                'Â':'Acirc',
                                'Ã':'Atilde',
                                'Ä':'Auml',
                                'Å':'Aring',
                                'Æ':'AElig',
                                'Ç':'Ccedil',
                                'È':'Egrave',
                                'É':'Eacute',
                                'Ê':'Ecirc',
                                'Ë':'Euml',
                                'Ì':'Igrave',
                                'Í':'Iacute',
                                'Î':'Icirc',
                                'Ï':'Iuml',
                                'Ð':'ETH',
                                'Ñ':'Ntilde',
                                'Ò':'Ograve',
                                'Ó':'Oacute',
                                'Ô':'Ocirc',
                                'Õ':'Otilde',
                                'Ö':'Ouml',
                                'Ø':'Oslash',
                                'Ù':'Ugrave',
                                'Ú':'Uacute',
                                'Û':'Ucirc',
                                'Ü':'Uuml',
                                'Ý':'Yacute',
                                'Þ':'THORN',
                                'ß':'szlig',
                                'à':'agrave',
                                'á':'aacute',
                                'â':'acirc',
                                'ã':'atilde',
                                'ä':'auml',
                                'å':'aring',
                                'æ':'aelig',
                                'ç':'ccedil',
                                'è':'egrave',
                                'é':'eacute',
                                'ê':'ecirc',
                                'ë':'euml',
                                'ì':'igrave',
                                'í':'iacute',
                                'î':'icirc',
                                'ï':'iuml',
                                'ð':'eth',
                                'ñ':'ntilde',
                                'ò':'ograve',
                                'ó':'oacute',
                                'ô':'ocirc',
                                'õ':'otilde',
                                'ö':'ouml',
                                'ø':'oslash',
                                'ù':'ugrave',
                                'ú':'uacute',
                                'û':'ucirc',
                                'ü':'uuml',
                                'ý':'yacute',
                                'þ':'thorn',
                                'ÿ':'yuml',
                                'Œ':'OElig',
                                'œ':'oelig',
                                'Š':'Scaron',
                                'š':'scaron',
                                '¾':'Yuml'
                        } ; 
                        
                        for ( var e in oEntities )
                        {
                                FCKXHtmlEntities.Entities[ e ] = oEntities[ e ] ;
                                sChars += e ;
                        }
                        
                        oEntities = null ;
                }

                // Include Greek Letters Entities.
                if ( FCKConfig.IncludeGreekEntities )
                {
                        var oEntities = {
                                'Α':'Alpha',
                                'Β':'Beta',
                                'Γ':'Gamma',
                                'Δ':'Delta',
                                'Ε':'Epsilon',
                                'Ζ':'Zeta',
                                'Η':'Eta',
                                'Θ':'Theta',
                                'Ι':'Iota',
                                'Κ':'Kappa',
                                'Λ':'Lambda',
                                'Μ':'Mu',
                                'Ν':'Nu',
                                'Ξ':'Xi',
                                'Ο':'Omicron',
                                'Π':'Pi',
                                'Ρ':'Rho',
                                'Σ':'Sigma',
                                'Τ':'Tau',
                                'Υ':'Upsilon',
                                'Φ':'Phi',
                                'Χ':'Chi',
                                'Ψ':'Psi',
                                'Ω':'Omega',
                                'α':'alpha',
                                'β':'beta',
                                'γ':'gamma',
                                'δ':'delta',
                                'ε':'epsilon',
                                'ζ':'zeta',
                                'η':'eta',
                                'θ':'theta',
                                'ι':'iota',
                                'κ':'kappa',
                                'λ':'lambda',
                                'μ':'mu',
                                'ν':'nu',
                                'ξ':'xi',
                                'ο':'omicron',
                                'π':'pi',
                                'ρ':'rho',
                                'ς':'sigmaf',
                                'σ':'sigma',
                                'τ':'tau',
                                'υ':'upsilon',
                                'φ':'phi',
                                'χ':'chi',
                                'ψ':'psi',
                                'ω':'omega'
                        } ;

                        for ( var e in oEntities )
                        {
                                FCKXHtmlEntities.Entities[ e ] = oEntities[ e ] ;
                                sChars += e ;
                        }

                        oEntities = null ;
                }               
        }
        else
        {
                FCKXHtmlEntities.Entities = {} ;

                // Even if we are not processing the entities, we must render the &nbsp;
                // correctly. As we don't want HTML entities, let's use its numeric
                // representation (&#160).
                sChars = ' ' ;
        }

        // Create the Regex used to find entities in the text.
        var sRegexPattern = '[' + sChars + ']' ;
        
        if ( FCKConfig.ProcessNumericEntities )
                sRegexPattern = '[^ -~]|' + sRegexPattern ;

        var sAdditional = FCKConfig.AdditionalNumericEntities ;

        if ( sAdditional || sAdditional.length > 0 )
                sRegexPattern += '|' + FCKConfig.AdditionalNumericEntities ;

        FCKXHtmlEntities.EntitiesRegex = new RegExp( sRegexPattern, 'g' ) ;
}