<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="zh-CN">
		<id>http://wiki.citydatum.com/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-charinsert-core.js</id>
		<title>MediaWiki:Gadget-charinsert-core.js - 版本历史</title>
		<link rel="self" type="application/atom+xml" href="http://wiki.citydatum.com/index.php?action=history&amp;feed=atom&amp;title=MediaWiki%3AGadget-charinsert-core.js"/>
		<link rel="alternate" type="text/html" href="http://wiki.citydatum.com/index.php?title=MediaWiki:Gadget-charinsert-core.js&amp;action=history"/>
		<updated>2026-05-05T05:31:07Z</updated>
		<subtitle>本wiki的该页面的版本历史</subtitle>
		<generator>MediaWiki 1.29.1</generator>

	<entry>
		<id>http://wiki.citydatum.com/index.php?title=MediaWiki:Gadget-charinsert-core.js&amp;diff=183&amp;oldid=prev</id>
		<title>Reiziuh：导入1个版本</title>
		<link rel="alternate" type="text/html" href="http://wiki.citydatum.com/index.php?title=MediaWiki:Gadget-charinsert-core.js&amp;diff=183&amp;oldid=prev"/>
				<updated>2017-09-15T14:46:54Z</updated>
		
		<summary type="html">&lt;p&gt;导入1个版本&lt;/p&gt;
&lt;table class=&quot;diff diff-contentalign-left&quot; data-mw=&quot;interface&quot;&gt;
				&lt;tr style='vertical-align: top;' lang='zh-CN'&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;←上一版本&lt;/td&gt;
				&lt;td colspan='1' style=&quot;background-color: white; color:black; text-align: center;&quot;&gt;2017年9月15日 (五) 14:46的版本&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='2' style='text-align: center;' lang='zh-CN'&gt;&lt;div class=&quot;mw-diff-empty&quot;&gt;（没有差异）&lt;/div&gt;
&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;</summary>
		<author><name>Reiziuh</name></author>	</entry>

	<entry>
		<id>http://wiki.citydatum.com/index.php?title=MediaWiki:Gadget-charinsert-core.js&amp;diff=182&amp;oldid=prev</id>
		<title>Xaosflux：IPA (English) update requested on talk</title>
		<link rel="alternate" type="text/html" href="http://wiki.citydatum.com/index.php?title=MediaWiki:Gadget-charinsert-core.js&amp;diff=182&amp;oldid=prev"/>
				<updated>2017-06-28T03:10:51Z</updated>
		
		<summary type="html">&lt;p&gt;IPA (English) update requested on talk&lt;/p&gt;
&lt;p&gt;&lt;b&gt;新页面&lt;/b&gt;&lt;/p&gt;&lt;div&gt;/**&lt;br /&gt;
 * Copied from [[mw:User:Alex Smotrov/edittools.js]], modified for use on the English Wikipedia.&lt;br /&gt;
 *&lt;br /&gt;
 * Configuration (to be set from [[Special:MyPage/common.js]]):&lt;br /&gt;
 *   window.charinsertCustom – Object. Merged into the default charinsert list. For example, setting&lt;br /&gt;
 *       this to { Symbols: '‽' } will add the interrobang to the end of the Symbols section.&lt;br /&gt;
 *   window.editToolsRecall – Boolean. Set true to create a recall switch.&lt;br /&gt;
 *   window.charinsertDontMove – Boolean. Set true to leave the box in its default position, rather&lt;br /&gt;
 *       than moving it above the edit summary.&lt;br /&gt;
 *   window.updateEditTools() – Function. Call after updating window.charinsertCustom to regenerate the&lt;br /&gt;
 *       EditTools window.&lt;br /&gt;
 */&lt;br /&gt;
/* global jQuery, mw, charinsertCustom */&lt;br /&gt;
&lt;br /&gt;
window.updateEditTools = function () {&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
jQuery( document ).ready( function ( $ ) {&lt;br /&gt;
    var EditTools = {&lt;br /&gt;
        // Entries prefixed with ␥ (U+2425 SYMBOL FOR DELETE FORM TWO) will not appear in the article namespace (namespace 0).&lt;br /&gt;
        // Please make any changes to [[MediaWiki:Edittools]] as well, however, instead of using the ␥ symbol, use {{#ifeq:{{NAMESPACE}}|{{ns:0}}| | }}.&lt;br /&gt;
        charinsert: {&lt;br /&gt;
            'Insert': ' – — ° ′ ″ ≈ ≠ ≤ ≥ ± − × ÷ ← → · §  ␥Sign_your_posts_on_talk_pages: ␥~~\~~  Cite_your_sources: &amp;lt;ref&amp;gt;+&amp;lt;/ref&amp;gt;',&lt;br /&gt;
            'Wiki markup': 'Insert:  – — ° ′ ″ ≈ ≠ ≤ ≥ ± − × ÷ ← → · § ␥~~\~~ &amp;lt;ref&amp;gt;+&amp;lt;/ref&amp;gt;  Wiki_markup:  {\{+}}  {\{\{+}}}  |  [+]  [\[+]]  [\[Category:+]]  #REDIRECT.[\[+]]  &amp;amp;nbsp;  &amp;lt;s&amp;gt;+&amp;lt;/s&amp;gt;  &amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;  &amp;lt;sub&amp;gt;+&amp;lt;/sub&amp;gt;  &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;  &amp;lt;pre&amp;gt;+&amp;lt;/pre&amp;gt;  &amp;lt;blockquote&amp;gt;+&amp;lt;/blockquote&amp;gt;  &amp;lt;ref.name=&amp;quot;+&amp;quot;_/&amp;gt;  {\{#tag:ref|+|group=&amp;quot;nb&amp;quot;|name=&amp;quot;&amp;quot;}}  {\{Reflist}}  &amp;lt;references./&amp;gt;  &amp;lt;includeonly&amp;gt;+&amp;lt;/includeonly&amp;gt;  &amp;lt;noinclude&amp;gt;+&amp;lt;/noinclude&amp;gt;  {\{DEFAULTSORT:+}}  &amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;  &amp;lt;!--.+_--&amp;gt;  &amp;lt;span.class=&amp;quot;plainlinks&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;',&lt;br /&gt;
            'Symbols': '~ | ¡¿†‡↔↑↓•¶#∞  ‘+’ “+” ‹+› «+» {\{angle.bracket|+}}  ¤₳฿₵¢₡₢$₫₯€₠₣ƒ₴₭₤ℳ₥₦№₧₰£៛₨₪৳₮₩¥  ♠♣♥♦  ♭♯♮  ©®™ ◌',&lt;br /&gt;
            'Latin': 'A a Á á À à Â â Ä ä Ǎ ǎ Ă ă Ā ā Ã ã Å å Ą ą Æ æ Ǣ ǣ  B b  C c Ć ć Ċ ċ Ĉ ĉ Č č Ç ç  D d Ď ď Đ đ Ḍ ḍ Ð ð  E e É é È è Ė ė Ê ê Ë ë Ě ě Ĕ ĕ Ē ē Ẽ ẽ Ę ę Ẹ ẹ Ɛ ɛ Ǝ ǝ Ə ə  F f  G g Ġ ġ Ĝ ĝ Ğ ğ Ģ ģ  H h Ĥ ĥ Ħ ħ Ḥ ḥ  I i İ ı Í í Ì ì Î î Ï ï Ǐ ǐ Ĭ ĭ Ī ī Ĩ ĩ Į į Ị ị  J j Ĵ ĵ  K k Ķ ķ  L l Ĺ ĺ Ŀ ŀ Ľ ľ Ļ ļ Ł ł Ḷ ḷ Ḹ ḹ  M m Ṃ ṃ  N n Ń ń Ň ň Ñ ñ Ņ ņ Ṇ ṇ Ŋ ŋ  O o Ó ó Ò ò Ô ô Ö ö Ǒ ǒ Ŏ ŏ Ō ō Õ õ Ǫ ǫ Ọ ọ Ő ő Ø ø Œ œ  Ɔ ɔ  P p  Q q  R r Ŕ ŕ Ř ř Ŗ ŗ Ṛ ṛ Ṝ ṝ  S s Ś ś Ŝ ŝ Š š Ş ş Ș ș Ṣ ṣ ß  T t Ť ť Ţ ţ Ț ț Ṭ ṭ Þ þ  U u Ú ú Ù ù Û û Ü ü Ǔ ǔ Ŭ ŭ Ū ū Ũ ũ Ů ů Ų ų Ụ ụ Ű ű Ǘ ǘ Ǜ ǜ Ǚ ǚ Ǖ ǖ  V v  W w Ŵ ŵ  X x  Y y Ý ý Ŷ ŷ Ÿ ÿ Ỹ ỹ Ȳ ȳ  Z z Ź ź Ż ż Ž ž  ß Ð ð Þ þ Ŋ ŋ Ə ə',&lt;br /&gt;
            'Greek': 'ΆάΈέΉήΊίΌόΎύΏώ  ΑαΒβΓγΔδ  ΕεΖζΗηΘθ  ΙιΚκΛλΜμ  ΝνΞξΟοΠπ  ΡρΣσςΤτΥυ  ΦφΧχΨψΩω Ϝϝυ̯ι̯  ᾼᾳᾴᾺὰᾲᾶᾷἈἀᾈᾀἉἁᾉᾁἌἄᾌᾄἊἂᾊᾂἎἆᾎᾆἍἅᾍᾅἋἃᾋᾃἏἇᾏᾇ  ῈὲἘἐἙἑἜἔἚἒἝἕἛἓ  ῌῃῄῊὴῂῆῇἨἠᾘᾐἩἡᾙᾑἬἤᾜᾔἪἢᾚᾒἮἦᾞᾖἭἥᾝᾕἫἣᾛᾓἯἧᾟᾗ  ῚὶῖἸἰἹἱἼἴἺἲἾἶἽἵἻἳἿἷΪϊΐῒῗ  ῸὸὈὀὉὁὌὄὊὂὍὅὋὃ  ῤῬῥ  ῪὺῦὐὙὑὔὒὖὝὕὛὓὟὗΫϋΰῢῧ  ῼῳῴῺὼῲῶῷὨὠᾨᾠὩὡᾩᾡὬὤᾬᾤὪὢᾪᾢὮὦᾮᾦὭὥᾭᾥὫὣᾫᾣὯὧᾯᾧ ᾹᾱᾸᾰῙῑῘῐῩῡῨῠ {{lang|el|+}} {{lang|grc|+}}',&lt;br /&gt;
            'Cyrillic': 'АаБбВвГг  ҐґЃѓДдЂђ  ЕеЁёЄєЖж  ЗзЅѕИиІі  ЇїЙйЈјКк  ЌќЛлЉљМм  НнЊњОоПп  РрСсТтЋћ  УуЎўФфХх  ЦцЧчЏџШш  ЩщЪъЫыЬь  ЭэЮюЯя ӘәӨөҒғҖҗ ҚқҜҝҢңҮү ҰұҲҳҸҹҺһ  ҔҕӢӣӮӯҘҙ  ҠҡҤҥҪҫӐӑ  ӒӓӔӕӖӗӰӱ  ӲӳӸӹӀ  ҞҟҦҧҨҩҬҭ  ҴҵҶҷҼҽҾҿ  ӁӂӃӄӇӈӋӌ  ӚӛӜӝӞӟӠӡ  ӤӥӦӧӪӫӴӵ  ́',&lt;br /&gt;
            'Hebrew': 'אבגדהוזחטיכךלמםנןסעפףצץקרשת  ׳ ״  װױײ',&lt;br /&gt;
            'Arabic': '  Transliteration: ʾ  ā ī ū ṯ ḥ ḫ ẖ ḏ š ṣ ḍ ṭ ẓ ʿ ġ ẗ á ا ﺁ ب ت ث ج ح خ د ذ ر ز س ش ص ض ط ظ ع غ ف ق ك ل م ن ه ة و ي ى ء أ إ ؤ ئ',&lt;br /&gt;
            'IPA (English)': 'ˈ ˌ  ŋ ɡ tʃ dʒ ʃ ʒ θ ð ʔ  ɑː ɒ æ aɪ aʊ ɛ eɪ ɪ iː ɔː ɔɪ oʊ ʊ uː ʌ ɜr  ə ər ᵻ ᵿ ɒ̃ æ̃  {\{IPAc-en|+}} {\{IPA-en|+}} {\{IPA|+}}  {\{angle.bracket|+}}',&lt;br /&gt;
            'IPA': 'Consonants: ɱɳɲŋɴ : t̪ d̪ ʈɖɟɡɢʡʔ : ɸβθð  ʃʒʂʐɕʑ  çʝɣχʁ  ħʕʜʢɦɧ : ʋɹɻɥɰʍ : ʙⱱɾɽʀ  ɺ  ɫɬɮɭʎʟ : ɓɗᶑʄɠʛ  ʘǀǃǂǁ  Vowels: ɪʏɨʉɯʊ : øɘɵɤ  ə ɚ  ɛœɜɝɞʌɔ : æɶɐɑɒ  Spacing_diacritics: ˈˌːˑʼˀˤᵝᵊᶢˠʰʱʲˡⁿᵑʷᶣ˞‿˕˔  Combining_diacritics: ̚ ̪ ̺ ̻ ̼ ̬  ̊ ̥ ̞ ̝ ̘ ̙ ̽ ̟ ̠  ̈ ̤ ̹ ̜ ̍ ̩  ̆ ̯  ̃ ̰ ͡ ͜  Tone:  ̋  ́  ̄  ̀  ̏  ̌  ̂ ᷄ ᷅ ᷇ ᷆ ᷈ ᷉  ˥˦˧˨˩ꜛꜜ : ↗↘‖  extIPA: ͈ ͉ ͎ ̣ ̫ ͊ ᷽ ͇ : ˭ᵻᵿ  {\{angle.bracket|+}} {\{IPA|+}} {\{IPA.link|+}}',&lt;br /&gt;
            'Math and logic': '− × ÷ ⋅ ° ∗ ∘ ± ∓ ≤ ≥ ≠ ≡ ≅ ≜ ≝ ≐ ≃ ≈ ⊕ ⊗ ⇐ ⇔ ⇒ ∞ ← ↔ → ≪ ≫ ∝ √ ∤ ≀ ◅ ▻ ⋉ ⋊ ⋈ ∴ ∵ ↦ ¬ ∧ ∨ ⊻ ∀ ∃ ∈ ∉ ∋ ⊆ ⊈ ⊊ ⊂ ⊄ ⊇ ⊉ ⊋ ⊃ ⊅ ∪ ∩ ∑ ∏ ∐ ′ ∫ ∬ ∭ ∮ ∇ ∂ ∆ ∅ ℂ ℍ ℕ ℙ ℚ ℝ ℤ ℵ ⌊ ⌋ ⌈ ⌉ ⊤ ⊥ ⊢ ⊣ ⊧ □ ∠ ⟨ ⟩ &amp;lt;math&amp;gt;+&amp;lt;/math&amp;gt; {\{math|+}} {\{mvar|+}} {\{frac|+|}} {\{sfrac|+|}}'&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
        charinsertDivider: &amp;quot;\240&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        cookieName: 'edittoolscharsubset',&lt;br /&gt;
&lt;br /&gt;
        createEditTools: function ( placeholder ) {&lt;br /&gt;
            var sel, id;&lt;br /&gt;
            var box = document.createElement( &amp;quot;div&amp;quot; );&lt;br /&gt;
            var prevSubset = 0, curSubset = 0;&lt;br /&gt;
            box.id = &amp;quot;editpage-specialchars&amp;quot;;&lt;br /&gt;
            box.title = 'Click on the character or tag to insert it into the edit window';&lt;br /&gt;
&lt;br /&gt;
            // append user-defined sets&lt;br /&gt;
            if ( window.charinsertCustom ) {&lt;br /&gt;
                for ( id in charinsertCustom ) {&lt;br /&gt;
                    if ( !EditTools.charinsert[id] ) {&lt;br /&gt;
                        EditTools.charinsert[id] = '';&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // create drop-down select&lt;br /&gt;
            sel = document.createElement( 'select' );&lt;br /&gt;
            for ( id in EditTools.charinsert ) {&lt;br /&gt;
                sel.options[sel.options.length] = new Option( id, id );&lt;br /&gt;
            }&lt;br /&gt;
            sel.selectedIndex = 0;&lt;br /&gt;
            sel.style.marginRight = '.3em';&lt;br /&gt;
            sel.title = 'Choose character subset';&lt;br /&gt;
            sel.onchange = sel.onkeyup = selectSubset;&lt;br /&gt;
            box.appendChild( sel );&lt;br /&gt;
&lt;br /&gt;
            // create &amp;quot;recall&amp;quot; switch&lt;br /&gt;
            if ( window.editToolsRecall ) {&lt;br /&gt;
                var recall = document.createElement( 'span' );&lt;br /&gt;
                recall.appendChild( document.createTextNode( '↕' ) ); // ↔&lt;br /&gt;
                recall.onclick = function() {&lt;br /&gt;
                    sel.selectedIndex = prevSubset;&lt;br /&gt;
                    selectSubset();&lt;br /&gt;
                };&lt;br /&gt;
                with ( recall.style ) {&lt;br /&gt;
                    cssFloat = styleFloat = 'left';&lt;br /&gt;
                    marginRight = '5px';&lt;br /&gt;
                    cursor = 'pointer';&lt;br /&gt;
                }&lt;br /&gt;
                box.appendChild( recall );&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            // load latest selection from cookies&lt;br /&gt;
            try {&lt;br /&gt;
                var cookieRe = new RegExp( &amp;quot;(?:^|;)\\s*&amp;quot; + EditTools.cookieName + &amp;quot;=(\\d+)\\s*(?:;|$)&amp;quot; );&lt;br /&gt;
                var m = cookieRe.exec( document.cookie );&lt;br /&gt;
                if ( m &amp;amp;&amp;amp; m.length &amp;gt; 1 &amp;amp;&amp;amp; parseInt( m[1] ) &amp;lt; sel.options.length ) {&lt;br /&gt;
                    sel.selectedIndex = parseInt( m[1] );&lt;br /&gt;
                }&lt;br /&gt;
            } catch ( err ) {&lt;br /&gt;
                // ignore&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            placeholder.parentNode.replaceChild( box, placeholder );&lt;br /&gt;
            selectSubset();&lt;br /&gt;
            return;&lt;br /&gt;
&lt;br /&gt;
            function selectSubset() {&lt;br /&gt;
                // remember previous (for &amp;quot;recall&amp;quot; button)&lt;br /&gt;
                prevSubset = curSubset;&lt;br /&gt;
                curSubset = sel.selectedIndex;&lt;br /&gt;
                //save into cookies for persistence&lt;br /&gt;
                try {&lt;br /&gt;
                    var expires = new Date();&lt;br /&gt;
                    expires.setTime( expires.getTime() + 30 * 24 * 60 * 60 * 1000 );  // + 30 days&lt;br /&gt;
                    document.cookie = EditTools.cookieName + &amp;quot;=&amp;quot; + curSubset + &amp;quot;;path=/;expires=&amp;quot; + expires.toUTCString();&lt;br /&gt;
                } catch ( err ) {&lt;br /&gt;
                    // ignore&lt;br /&gt;
                }&lt;br /&gt;
                //hide other subsets&lt;br /&gt;
                var pp = box.getElementsByTagName( 'p' ) ;&lt;br /&gt;
                for ( var i = 0; i &amp;lt; pp.length; i++ ) {&lt;br /&gt;
                    pp[i].style.display = 'none';&lt;br /&gt;
                }&lt;br /&gt;
                //show/create current subset&lt;br /&gt;
                var id = sel.options[curSubset].value;&lt;br /&gt;
                var p = document.getElementById( id );&lt;br /&gt;
                if ( !p ) {&lt;br /&gt;
                    p = document.createElement( 'p' );&lt;br /&gt;
                    p.className = &amp;quot;nowraplinks&amp;quot;;&lt;br /&gt;
                    p.id = id;&lt;br /&gt;
                    if ( id == 'Arabic' || id == 'Hebrew' ) {&lt;br /&gt;
                        p.style.fontSize = '120%';&lt;br /&gt;
                        p.dir = 'rtl';&lt;br /&gt;
                    }&lt;br /&gt;
                    var tokens = EditTools.charinsert[id];&lt;br /&gt;
                    if ( window.charinsertCustom &amp;amp;&amp;amp; charinsertCustom[id] ) {&lt;br /&gt;
                        if ( tokens.length &amp;gt; 0 ) {&lt;br /&gt;
                            tokens += ' ';&lt;br /&gt;
                        }&lt;br /&gt;
                        tokens += charinsertCustom[id];&lt;br /&gt;
                    }&lt;br /&gt;
                    EditTools.createTokens( p, tokens );&lt;br /&gt;
                    box.appendChild( p );&lt;br /&gt;
                }&lt;br /&gt;
                p.style.display = 'inline';&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
        createTokens: function ( paragraph, str ) {&lt;br /&gt;
            var tokens = str.split( ' ' ), token, i, n;&lt;br /&gt;
            for ( i = 0; i &amp;lt; tokens.length; i++ ) {&lt;br /&gt;
                token = tokens[i];&lt;br /&gt;
                n = token.indexOf( '+' );&lt;br /&gt;
                if ( token.charAt( 0 ) === '␥' ) {&lt;br /&gt;
                    if ( token.length &amp;gt; 1 &amp;amp;&amp;amp; mw.config.get( 'wgNamespaceNumber' ) === 0 ) {&lt;br /&gt;
                        continue;&lt;br /&gt;
                    } else {&lt;br /&gt;
                        token = token.substring( 1 );&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
                if ( token == '' || token == '_' ) {&lt;br /&gt;
                    addText( EditTools.charinsertDivider + ' ' );&lt;br /&gt;
                } else if ( token == '\n' ) {&lt;br /&gt;
                    paragraph.appendChild( document.createElement( 'br' ) );&lt;br /&gt;
                } else if ( token == '___' ) {&lt;br /&gt;
                    paragraph.appendChild( document.createElement( 'hr' ) );&lt;br /&gt;
                } else if ( token.charAt( token.length-1 ) == ':' ) { // : at the end means just text&lt;br /&gt;
                    addBold( token );&lt;br /&gt;
                } else if ( n == 0 ) { // +&amp;lt;tag&amp;gt;  -&amp;gt;   &amp;lt;tag&amp;gt;+&amp;lt;/tag&amp;gt;&lt;br /&gt;
                    addLink( token.substring( 1 ), '&amp;lt;/' + token.substring( 2 ), token.substring( 1 ) );&lt;br /&gt;
                } else if ( n &amp;gt; 0 ) { // &amp;lt;tag&amp;gt;+&amp;lt;/tag&amp;gt;&lt;br /&gt;
                    addLink( token.substring( 0, n ), token.substring( n+1 ) );&lt;br /&gt;
                } else if ( token.length &amp;gt; 2 &amp;amp;&amp;amp; token.charCodeAt( 0 ) &amp;gt; 127 ) { // a string of insertable characters&lt;br /&gt;
                    for ( var j = 0; j &amp;lt; token.length; j++ ) {&lt;br /&gt;
                        addLink( token.charAt( j ), '' );&lt;br /&gt;
                    }&lt;br /&gt;
                } else {&lt;br /&gt;
                    addLink( token, '' );&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            return;&lt;br /&gt;
&lt;br /&gt;
            function addLink( tagOpen, tagClose, name ) {&lt;br /&gt;
                var handler;&lt;br /&gt;
                var dle = tagOpen.indexOf( '\x10' );&lt;br /&gt;
                if ( dle &amp;gt; 0 ) {&lt;br /&gt;
                    var path = tagOpen.substring( dle + 1 ).split( '.' );&lt;br /&gt;
                    tagOpen = tagOpen.substring( 0, dle );&lt;br /&gt;
                    handler = window;&lt;br /&gt;
                    for ( var i = 0; i &amp;lt; path.length; i++ ) {&lt;br /&gt;
                        handler = handler[path[i]];&lt;br /&gt;
                    }&lt;br /&gt;
                } else {&lt;br /&gt;
                    tagOpen = tagOpen.replace( /\./g,' ' );&lt;br /&gt;
                    tagClose = tagClose ? tagClose.replace( /_/g,' ' ) : '';&lt;br /&gt;
                    handler = new Function(&lt;br /&gt;
                        &amp;quot;evt&amp;quot;,&lt;br /&gt;
                        &amp;quot;mw.toolbar.insertTags('&amp;quot; + tagOpen + &amp;quot;', '&amp;quot; + tagClose + &amp;quot;', ''); evt.preventDefault(); return false;&amp;quot;&lt;br /&gt;
                    );&lt;br /&gt;
                }&lt;br /&gt;
                var a = document.createElement( 'a' );&lt;br /&gt;
                name = name || tagOpen + tagClose;&lt;br /&gt;
                name = name.replace( /\\n/g,'' );&lt;br /&gt;
                a.appendChild( document.createTextNode( name ) );&lt;br /&gt;
                a.href = &amp;quot;#&amp;quot;;&lt;br /&gt;
                $( a ).click( handler );&lt;br /&gt;
                paragraph.appendChild( a );&lt;br /&gt;
                addText( ' ' );&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            function addBold( text ) {&lt;br /&gt;
                var b = document.createElement( 'b' );&lt;br /&gt;
                b.appendChild( document.createTextNode( text.replace( /_/g,' ' ) ) );&lt;br /&gt;
                paragraph.appendChild( b );&lt;br /&gt;
                addText( ' ' );&lt;br /&gt;
            }&lt;br /&gt;
            function addText( txt ) {&lt;br /&gt;
                paragraph.appendChild( document.createTextNode( txt ) );&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
        last_active_textfield: null,&lt;br /&gt;
&lt;br /&gt;
        registerTextField: function ( evt ) {&lt;br /&gt;
            var e = evt || window.event;&lt;br /&gt;
            var node = e.target || e.srcElement;&lt;br /&gt;
            if ( !node ) {&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            EditTools.last_active_textfield = node.id;&lt;br /&gt;
            return true;&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
        getTextArea: function () {&lt;br /&gt;
            var txtarea = null;&lt;br /&gt;
            if ( EditTools.last_active_textfield &amp;amp;&amp;amp; EditTools.last_active_textfield != &amp;quot;&amp;quot; )&lt;br /&gt;
                txtarea = document.getElementById( EditTools.last_active_textfield );&lt;br /&gt;
            if ( !txtarea ) {&lt;br /&gt;
                // Fallback option: old behaviour&lt;br /&gt;
                if ( document.editform ) {&lt;br /&gt;
                    txtarea = document.editform.wpTextbox1;&lt;br /&gt;
                } else {&lt;br /&gt;
                    // Some alternate form? Take the first one we can find&lt;br /&gt;
                    txtarea = document.getElementsByTagName( 'textarea' );&lt;br /&gt;
                    if ( txtarea.length &amp;gt; 0 ) {&lt;br /&gt;
                        txtarea = txtarea[0];&lt;br /&gt;
                    } else {&lt;br /&gt;
                        txtarea = null;&lt;br /&gt;
                    }&lt;br /&gt;
                }&lt;br /&gt;
            }&lt;br /&gt;
            return txtarea;&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
        setup: function () {&lt;br /&gt;
            var placeholder;&lt;br /&gt;
            if ( $( '#editpage-specialchars' ).length ) {&lt;br /&gt;
                placeholder = $( '#editpage-specialchars' )[0];&lt;br /&gt;
            } else {&lt;br /&gt;
                placeholder = $( '&amp;lt;div id=&amp;quot;editpage-specialchars&amp;quot;&amp;gt; &amp;lt;/div&amp;gt;' ).prependTo( '.mw-editTools' )[0];&lt;br /&gt;
            }&lt;br /&gt;
            if ( !placeholder ) {&lt;br /&gt;
                return;&lt;br /&gt;
            }&lt;br /&gt;
            if ( !window.charinsertDontMove ) {&lt;br /&gt;
                $( '.editOptions' ).before( placeholder );&lt;br /&gt;
            }&lt;br /&gt;
            EditTools.createEditTools( placeholder );&lt;br /&gt;
            window.updateEditTools = function () {&lt;br /&gt;
                EditTools.createEditTools( $( '#editpage-specialchars' )[0] );&lt;br /&gt;
            };&lt;br /&gt;
        }&lt;br /&gt;
&lt;br /&gt;
    }; // end EditTools&lt;br /&gt;
&lt;br /&gt;
    EditTools.setup();&lt;br /&gt;
} );&lt;/div&gt;</summary>
		<author><name>Xaosflux</name></author>	</entry>

	</feed>