<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://wiki.ekatrafoundation.org/index.php?action=history&amp;feed=atom&amp;title=User%3AGurwinder%2FEdittool.js</id>
	<title>User:Gurwinder/Edittool.js - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.ekatrafoundation.org/index.php?action=history&amp;feed=atom&amp;title=User%3AGurwinder%2FEdittool.js"/>
	<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;action=history"/>
	<updated>2026-04-11T21:45:54Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.38.2</generator>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;diff=73094&amp;oldid=prev</id>
		<title>Gurwinder at 15:29, 1 May 2024</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;diff=73094&amp;oldid=prev"/>
		<updated>2024-05-01T15:29:30Z</updated>

		<summary type="html">&lt;p&gt;&lt;/p&gt;
&lt;table style=&quot;background-color: #fff; color: #202122;&quot; data-mw=&quot;interface&quot;&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;col class=&quot;diff-marker&quot; /&gt;
				&lt;col class=&quot;diff-content&quot; /&gt;
				&lt;tr class=&quot;diff-title&quot; lang=&quot;en&quot;&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;← Older revision&lt;/td&gt;
				&lt;td colspan=&quot;2&quot; style=&quot;background-color: #fff; color: #202122; text-align: center;&quot;&gt;Revision as of 15:29, 1 May 2024&lt;/td&gt;
				&lt;/tr&gt;&lt;tr&gt;&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot; id=&quot;mw-diff-left-l235&quot;&gt;Line 235:&lt;/td&gt;
&lt;td colspan=&quot;2&quot; class=&quot;diff-lineno&quot;&gt;Line 235:&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             if ( !window.charinsertDontMove ) {&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             if ( !window.charinsertDontMove ) {&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;−&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #ffe49c; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 $( &amp;#039;.&lt;del style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;editOptions&lt;/del&gt;&amp;#039; ).before( placeholder );&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot; data-marker=&quot;+&quot;&gt;&lt;/td&gt;&lt;td style=&quot;color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #a3d3ff; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;                 $( &amp;#039;.&lt;ins style=&quot;font-weight: bold; text-decoration: none;&quot;&gt;mw-body-content&lt;/ins&gt;&amp;#039; ).before( placeholder );&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             }&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             }&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;tr&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             // Find the element that is focused&lt;/div&gt;&lt;/td&gt;&lt;td class=&quot;diff-marker&quot;&gt;&lt;/td&gt;&lt;td style=&quot;background-color: #f8f9fa; color: #202122; font-size: 88%; border-style: solid; border-width: 1px 1px 1px 4px; border-radius: 0.33em; border-color: #eaecf0; vertical-align: top; white-space: pre-wrap;&quot;&gt;&lt;div&gt;             // Find the element that is focused&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;
&lt;/table&gt;</summary>
		<author><name>Gurwinder</name></author>
	</entry>
	<entry>
		<id>https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;diff=73072&amp;oldid=prev</id>
		<title>Gurwinder: New</title>
		<link rel="alternate" type="text/html" href="https://wiki.ekatrafoundation.org/index.php?title=User:Gurwinder/Edittool.js&amp;diff=73072&amp;oldid=prev"/>
		<updated>2024-05-01T05:54:20Z</updated>

		<summary type="html">&lt;p&gt;New&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;//&amp;lt;pre&amp;gt;&lt;br /&gt;
// copied from [[mw:User:Alex Smotrov/edittools.js]], modified for use on the English Wikipedia.&lt;br /&gt;
// enableForAllFields() feature from [[commons:MediaWiki:Edittools.js]]&lt;br /&gt;
// combined and modified by [[User:Ilmari Karonen]]&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: &amp;#039;‽&amp;#039; } 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;
&lt;br /&gt;
window.updateEditTools = function () {&lt;br /&gt;
};&lt;br /&gt;
&lt;br /&gt;
jQuery( document ).ready( function ( $ ) {&lt;br /&gt;
	var $currentFocused,&lt;br /&gt;
		editTools;&lt;br /&gt;
&lt;br /&gt;
    function getSelectedSection() {&lt;br /&gt;
		var selectedSection = mw.storage.get( editTools.storageKey )&lt;br /&gt;
			|| mw.storage.session.get( editTools.storageKey );&lt;br /&gt;
		&lt;br /&gt;
		return selectedSection;&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    function saveSelectedSection( newIndex ) {&lt;br /&gt;
		mw.storage.set( editTools.storageKey, newIndex )&lt;br /&gt;
			|| mw.storage.session.set( editTools.storageKey, newIndex );&lt;br /&gt;
    }&lt;br /&gt;
    &lt;br /&gt;
    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;
            &amp;#039;Insert&amp;#039;: &amp;#039;  &amp;lt;!--.+_--&amp;gt;  {\{+}}  {\{\{+|}}}  |  [+]  [\[+|]]  &amp;quot;+&amp;quot;  =  [\[Category:+]]  #Redirect.[\[+]]  &amp;amp;nb&amp;#039;+&amp;#039;sp;  &amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;  ␥Sign: ␥~~\~~  &amp;lt;pagelist+/&amp;gt;  &amp;lt;br/&amp;gt;&amp;#039;,&lt;br /&gt;
            &amp;#039;Wikimarkup&amp;#039;: &amp;#039;&amp;lt;!--.+_--&amp;gt;  &amp;lt;nowiki&amp;gt;+&amp;lt;/nowiki&amp;gt;  ␥~~\~~  &amp;lt;span.class=&amp;quot;plainlinks&amp;quot;&amp;gt;+&amp;lt;/span&amp;gt;  &amp;lt;s&amp;gt;+&amp;lt;/s&amp;gt;  &amp;lt;sub&amp;gt;+&amp;lt;/sub&amp;gt;  &amp;lt;sup&amp;gt;+&amp;lt;/sup&amp;gt;  &amp;lt;ref&amp;gt;+&amp;lt;/ref&amp;gt;  &amp;lt;ref.name=&amp;quot;+&amp;quot;_/&amp;gt;  &amp;lt;ref.follow=&amp;quot;+&amp;quot;_/&amp;gt;  {\{smallrefs}}  {\{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;  &amp;lt;onlyinclude&amp;gt;+&amp;lt;/onlyinclude&amp;gt;    &amp;lt;blockquote&amp;gt;+&amp;lt;/blockquote&amp;gt;  &amp;lt;pre&amp;gt;+&amp;lt;/pre&amp;gt;  &amp;lt;code&amp;gt;+&amp;lt;/code&amp;gt;  &amp;lt;tt&amp;gt;+&amp;lt;/tt&amp;gt;  &amp;lt;syntaxhighlight.lang=&amp;quot;html5&amp;quot;.enclose=&amp;quot;div&amp;quot;&amp;gt;+&amp;lt;/syntaxhighlight&amp;gt;  {\{পূর্বনির্ধারিতবাছাই:+}}  {\{hyphenated.word.start|+}}  {\{hyphenated.word.end|+}} &amp;lt;small&amp;gt;+&amp;lt;/small&amp;gt; &amp;lt;big&amp;gt;+&amp;lt;/big&amp;gt;  &amp;lt;mark&amp;gt;+&amp;lt;/mark&amp;gt; &amp;#039;,&lt;br /&gt;
                &amp;#039;Proofread&amp;#039;: &amp;#039;{\{center|+}} {\{center|&amp;lt;poem&amp;gt;+&amp;lt;/poem&amp;gt;}} &amp;lt;poem&amp;gt;+&amp;lt;/poem&amp;gt; {\{Block.center|+}} {\{Block.center|&amp;lt;poem&amp;gt;+&amp;lt;/poem&amp;gt;}} [\[Author:+|]] {\{block.center/s}} {\{block.center/e}} {\{Type|f=|l=|w=|i=|+}} {\{Head2Columns‎}} {\{TwoColumns‎}} {\{xxxx-larger|+}} {\{gap}}  {\{nop}} {\{rh|left|center|right}} {\{rule}} {\{dhr|3em}}&amp;#039;,&lt;br /&gt;
                &amp;#039;Template&amp;#039;: &amp;#039; {\{xxxx-larger|+}} {\{gap}}  {\{nop}} {\{rh|left|center|right}}   {\{rule}}&amp;#039;,&lt;br /&gt;
                &amp;#039;IndexPage&amp;#039;: &amp;#039; &amp;lt;pagelist+/&amp;gt;   {\{rh|{{{pagenum}}}|Bookname|{{{pagenum}}}}}   {\{rule}}&amp;#039;,&lt;br /&gt;
                &amp;#039;NS0&amp;#039;: &amp;#039;{\{No.source}} {\{No.license}} {\{Migrate.to.djvu|+}} {\{Copyvio}} {\{Incomplete}} {\{small.scan.link|+}} {\{Export|+}}&amp;#039;,&lt;br /&gt;
                &amp;#039;Transclusion&amp;#039;: &amp;#039;&amp;lt;pages.index=&amp;quot;filename&amp;quot;.from=x.to=y/&amp;gt;  &amp;lt;section.begin=&amp;quot;+&amp;quot;_/&amp;gt;   &amp;lt;section.end=&amp;quot;+&amp;quot;_/&amp;gt;  &amp;lt;pages.index=&amp;quot;filename&amp;quot;.from=x.to=y.tosection=&amp;quot;label&amp;quot;./&amp;gt; &amp;lt;pages.index=&amp;quot;filename&amp;quot;.from=x.fromsection=&amp;quot;label&amp;quot;.to=y./&amp;gt;  &amp;lt;pages.index=&amp;quot;filename&amp;quot;.from=x.fromsection=&amp;quot;label&amp;quot;.to=y.tosection=&amp;quot;label&amp;quot;./&amp;gt;  {\{page.break|label=}}&amp;#039;,&lt;br /&gt;
	},&lt;br /&gt;
&lt;br /&gt;
        charinsertDivider: &amp;quot;\240&amp;quot;,&lt;br /&gt;
&lt;br /&gt;
        storageKey: &amp;#039;edittoolscharsubset&amp;#039;,&lt;br /&gt;
&lt;br /&gt;
        createEditTools: function ( placeholder ) {&lt;br /&gt;
            var sel, id;&lt;br /&gt;
            var box = document.createElement( &amp;#039;div&amp;#039; );&lt;br /&gt;
            var prevSubset = 0, curSubset = 0;&lt;br /&gt;
            box.id = &amp;#039;editpage-specialchars&amp;#039;;&lt;br /&gt;
            box.title = &amp;#039;Click on template after select the text&amp;#039;;&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] = &amp;#039;&amp;#039;;&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( &amp;#039;select&amp;#039; );&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 = &amp;#039;.3em&amp;#039;;&lt;br /&gt;
            sel.title = &amp;#039;Choose character subset&amp;#039;;&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( &amp;#039;span&amp;#039; );&lt;br /&gt;
                recall.appendChild( document.createTextNode( &amp;#039;↕&amp;#039; ) ); // ↔&lt;br /&gt;
                recall.onclick = function() {&lt;br /&gt;
                    sel.selectedIndex = prevSubset;&lt;br /&gt;
                    selectSubset();&lt;br /&gt;
                }&lt;br /&gt;
                recall.style.cssFloat = &amp;#039;left&amp;#039;;&lt;br /&gt;
                recall.style.marginLeft = &amp;#039;5px&amp;#039;;&lt;br /&gt;
                recall.style.cursor = &amp;#039;pointer&amp;#039;;&lt;br /&gt;
                box.appendChild( recall );&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
			if ( getSelectedSection() ) {&lt;br /&gt;
				sel.selectedIndex = getSelectedSection();&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 web storage for persistence&lt;br /&gt;
                saveSelectedSection( curSubset );&lt;br /&gt;
&lt;br /&gt;
                //hide other subsets&lt;br /&gt;
                var pp = box.getElementsByTagName( &amp;#039;p&amp;#039; ) ;&lt;br /&gt;
                for ( var i = 0; i &amp;lt; pp.length; i++ ) {&lt;br /&gt;
                    pp[i].style.display = &amp;#039;none&amp;#039;;&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( &amp;#039;p&amp;#039; );&lt;br /&gt;
                    p.className = &amp;#039;nowraplinks&amp;#039;;&lt;br /&gt;
                    p.id = id;&lt;br /&gt;
                    if ( id == &amp;#039;Arabic&amp;#039; || id == &amp;#039;Hebrew&amp;#039; ) {&lt;br /&gt;
                        p.style.fontSize = &amp;#039;120%&amp;#039;;&lt;br /&gt;
                        p.dir = &amp;#039;rtl&amp;#039;;&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 += &amp;#039; &amp;#039;;&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 = &amp;#039;inline&amp;#039;;&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
        createTokens: function ( paragraph, str ) {&lt;br /&gt;
            var tokens = str.split( &amp;#039; &amp;#039; ), 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( &amp;#039;+&amp;#039; );&lt;br /&gt;
                if ( token[0] === &amp;#039;␥&amp;#039; ) {&lt;br /&gt;
                    if ( token.length &amp;gt; 1 &amp;amp;&amp;amp; mw.config.get( &amp;#039;wgNamespaceNumber&amp;#039; ) === 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 === &amp;#039;&amp;#039; || token === &amp;#039;_&amp;#039; ) {&lt;br /&gt;
                    addText( editTools.charinsertDivider + &amp;#039; &amp;#039; );&lt;br /&gt;
                } else if ( token === &amp;#039;\n&amp;#039; ) {&lt;br /&gt;
                    paragraph.appendChild( document.createElement( &amp;#039;br&amp;#039; ) );&lt;br /&gt;
                } else if ( token === &amp;#039;___&amp;#039; ) {&lt;br /&gt;
                    paragraph.appendChild( document.createElement( &amp;#039;hr&amp;#039; ) );&lt;br /&gt;
                } else if ( token.charAt( token.length-1 ) === &amp;#039;:&amp;#039; ) { // : 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;#039;&amp;lt;/&amp;#039; + 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 ), &amp;#039;&amp;#039; );&lt;br /&gt;
                    }&lt;br /&gt;
                } else {&lt;br /&gt;
                    addLink( token, &amp;#039;&amp;#039; );&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( &amp;#039;\x10&amp;#039; );&lt;br /&gt;
                var a = document.createElement( &amp;#039;a&amp;#039; );&lt;br /&gt;
&lt;br /&gt;
                if ( dle &amp;gt; 0 ) {&lt;br /&gt;
                    var path = tagOpen.substring( dle + 1 ).split( &amp;#039;.&amp;#039; );&lt;br /&gt;
                    tagOpen = tagOpen.substring( 0, dle );&lt;br /&gt;
                    var 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;
	                $( a ).on( &amp;#039;click&amp;#039;, handler );&lt;br /&gt;
                    }&lt;br /&gt;
                } else {&lt;br /&gt;
                    tagOpen = tagOpen.replace( /\./g,&amp;#039; &amp;#039; );&lt;br /&gt;
                    tagClose = tagClose ? tagClose.replace( /_/g,&amp;#039; &amp;#039; ) : &amp;#039;&amp;#039;;&lt;br /&gt;
                    $( a ).on( &amp;#039;click&amp;#039;, {&lt;br /&gt;
                    	tagOpen: tagOpen,&lt;br /&gt;
                    	sampleText: &amp;#039;&amp;#039;,&lt;br /&gt;
                    	tagClose: tagClose&lt;br /&gt;
                    }, insertTags );&lt;br /&gt;
                }&lt;br /&gt;
&lt;br /&gt;
                name = name || tagOpen + tagClose;&lt;br /&gt;
                name = name.replace( /\\n/g,&amp;#039;&amp;#039; );&lt;br /&gt;
                a.appendChild( document.createTextNode( name ) );&lt;br /&gt;
                a.href = &amp;#039;&amp;#039;;&lt;br /&gt;
                paragraph.appendChild( a );&lt;br /&gt;
                addText( &amp;#039; &amp;#039; );&lt;br /&gt;
            }&lt;br /&gt;
&lt;br /&gt;
            function addBold( text ) {&lt;br /&gt;
                var b = document.createElement( &amp;#039;b&amp;#039; );&lt;br /&gt;
                b.appendChild( document.createTextNode( text.replace( /_/g,&amp;#039; &amp;#039; ) ) );&lt;br /&gt;
                paragraph.appendChild( b );&lt;br /&gt;
                addText( &amp;#039; &amp;#039; );&lt;br /&gt;
            }&lt;br /&gt;
            function addText( txt ) {&lt;br /&gt;
                paragraph.appendChild( document.createTextNode( txt ) );&lt;br /&gt;
            }&lt;br /&gt;
            function insertTags( e ) {&lt;br /&gt;
            	e.preventDefault();&lt;br /&gt;
            	if ( $currentFocused &amp;amp;&amp;amp; $currentFocused.length ) {&lt;br /&gt;
					$currentFocused.textSelection(&lt;br /&gt;
						&amp;#039;encapsulateSelection&amp;#039;, {&lt;br /&gt;
							pre: e.data.tagOpen,&lt;br /&gt;
							peri: e.data.sampleText,&lt;br /&gt;
							post: e.data.tagClose&lt;br /&gt;
						}&lt;br /&gt;
					);&lt;br /&gt;
				}&lt;br /&gt;
            }&lt;br /&gt;
        },&lt;br /&gt;
&lt;br /&gt;
        setup: function () {&lt;br /&gt;
            var placeholder;&lt;br /&gt;
            if ( $( &amp;#039;#editpage-specialchars&amp;#039; ).length ) {&lt;br /&gt;
                placeholder = $( &amp;#039;#editpage-specialchars&amp;#039; )[0];&lt;br /&gt;
            } else {&lt;br /&gt;
                placeholder = $( &amp;#039;&amp;lt;div id=&amp;quot;editpage-specialchars&amp;quot;&amp;gt; &amp;lt;/div&amp;gt;&amp;#039; ).prependTo( &amp;#039;.mw-editTools&amp;#039; )[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;
                $( &amp;#039;.editOptions&amp;#039; ).before( placeholder );&lt;br /&gt;
            }&lt;br /&gt;
            // Find the element that is focused&lt;br /&gt;
            $currentFocused = $( &amp;#039;#wpTextbox1&amp;#039; );&lt;br /&gt;
            // Apply to dynamically created textboxes as well as normal ones&lt;br /&gt;
			$( document ).on( &amp;#039;focus&amp;#039;, &amp;#039;textarea, input:text&amp;#039;, function () {&lt;br /&gt;
				$currentFocused = $( this );&lt;br /&gt;
			} );&lt;br /&gt;
&lt;br /&gt;
			// Used to determine where to insert tags&lt;br /&gt;
            editTools.createEditTools( placeholder );&lt;br /&gt;
            window.updateEditTools = function () {&lt;br /&gt;
                editTools.createEditTools( $( &amp;#039;#editpage-specialchars&amp;#039; )[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>Gurwinder</name></author>
	</entry>
</feed>