மீடியாவிக்கி:Gadget-wikilove.js
//&lt;nowiki&gt;
 if (( mw.config.get('wgCanonicalNamespace') == 'User_talk' &amp;&amp; mw.config.get('wgAction') == 'view' &amp;&amp; skin == 'vector' )) {
   // இந்த நிரல்வரி jQuery உரையாடல் பெட்டியைச் சார்ந்து உள்ளது
   mw.loader.using( 'jquery.ui', function() {
     // பெயர்வெளி வழுக்களைத் தடுக்க ஒரு பொருள் (Object) ஆக்கப்படுகிறது.
     wikiLove = {
 
       displayProgress: function( form, message ) {
         $('#'+form+' div').hide(); // உரையாடல் பெட்டியில் இருந்து பிற அனைத்தையும் நீக்கல்
         $('#'+form).append ( $('&lt;div style=&quot;text-align:center;margin:3em 0;&quot;&gt;&lt;/div&gt;').html( message+'&lt;br/&gt;&lt;img src=&quot;//upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif&quot; /&gt;' ) );
       },
       
       displayError: function( form, error ) {
         $('#'+form+' div').hide(); // உரையாடல் பெட்டியில் இருந்து பிற அனைத்தையும் நீக்கல்
         $('#'+form).append ( $('&lt;div style=&quot;color:#990000;margin-top:0.4em;&quot;&gt;&lt;/div&gt;').html( 'Error: '+error ) );
       },
       
       getEditToken: function() {
         $.ajax({
           url: wgScriptPath + '/api.php?',
           data: 'action=query&amp;prop=info&amp;intoken=edit&amp;titles=Main%20Page&amp;indexpageids&amp;format=json',
           dataType: 'json',
           success: function( data ) {
             if ( data.query.pages &amp;&amp; data.query.pageids ) {
               var pageid = data.query.pageids[0];
               wikiLove.editToken = data.query.pages[pageid].edittoken;
             }
           }
         });
       },
       
       getEmailable: function() {
         // 'இப்பயனருக்கு மின்னஞ்சல் செய்' என்ற இணைப்பு உள்ளதா என்று சோதித்தல்
         wikiLove.emailable = $('#t-emailuser').length ? true : false;
       },
       
       editPage: function( form, summary, template ) {
         $.ajax({
           url: wgScriptPath + '/api.php?',
           data: 'action=edit&amp;title='+encodeURIComponent(mw.config.get('wgPageName'))+'&amp;section=new&amp;summary='+encodeURIComponent(summary)+'&amp;text='+encodeURIComponent(template)+'&amp;format=json&amp;token='+encodeURIComponent(wikiLove.editToken),
           dataType: 'json',
           type: 'POST',
           success: function( data ) {
             if ( data.edit.result == &quot;Success&quot; ) {
               window.location.reload();
             } else {
               wikiLove.displayError( form, 'Unknown result from API.' );
             }
           },
           error: function( xhr ) {
             wikiLove.displayError( form, 'தொகுத்தல் தோல்வியடைந்தது.' );
             //console.debug( xhr.responseText );
           }
         });
       },
       
       sendEmail: function( form, subject, text ) {
         $.ajax({
           url: wgScriptPath + '/api.php?',
           data: 'action=emailuser&amp;target='+encodeURIComponent(mw.config.get('wgTitle'))+'&amp;subject='+encodeURIComponent(subject)+'&amp;text='+encodeURIComponent(text)+'&amp;format=json&amp;token='+encodeURIComponent(wikiLove.editToken),
           dataType: 'json',
           type: 'POST'
         });
       },
 
       launchDialog: function( interface, emailOption ) {
         // பயனர் மின்னஞ்சல் மூலம் அணுகத்தக்கவர் எனில், மின்னஞ்சல் சோதனைப் பெட்டியைக் காட்டுதல்.
         if ( emailOption &amp;&amp; typeof wikiLove.emailable !== 'undefined' &amp;&amp; wikiLove.emailable ) {
           if ( typeof interface.data('emailCheckboxAppended') == 'undefined' ) {
             interface.append( $('&lt;div style=&quot;margin-top:0.4em;&quot;&gt;&lt;/div&gt;').html('&lt;input type=&quot;checkbox&quot; name=&quot;notify&quot;/&gt; பயனருக்கு மின்னஞ்சல் மூலம் தெரியப்படுத்தவும்') );
             interface.data('emailCheckboxAppended', true);
           }
         }
         // உரையாடல் பெட்டியைத் திறத்தல்
         interface.dialog('open');
         // படிவம் சமர்ப்பிக்கப்பட்டவுடன் தொகுத்தல் என்ற வில்லை கிடைக்ககூடியதாக இருக்க வேண்டி அது மீட்டெடுக்கப்படுகிறது. (Retrieve)
         wikiLove.getEditToken();
       },
       
       initialize: function() {
 
         // ஒரு பட்டியல் படிமங்களிலிருந்து தேர்ந்தெடுப்பதற்கானச் செயற்கூறு (Function)
         $.fn.selectItem = function() {
           return this.each(function() {
             var containerId = this.id;
             var customId = 0;
             $('#'+containerId+' img').css('border', '8px solid transparent');
             $('#'+containerId+' img').each(function() {
               if (this.id == '') {
                 this.id = 'select_img_' + customId;
                 customId++;
               }
               $('#'+this.id).click(function() {
                   $('#'+containerId+'Selected').val(this.title);
                   $('#'+containerId+' img').css('border', '8px solid transparent');
                   $('#'+this.id).css('border', '8px solid #AED0EA');
               })
             });
           });
         };
       
         // கிடைக்கக்கூடிய பதக்கங்கள்
         var $barnstarList = [
           'விக்கிப்புயல் பதக்கம்',
           'சிறந்த உழைப்பாளர் பதக்கம்',
           'விடாமுயற்சியாளர் பதக்கம்',
           'களைப்படையாப் பங்களிப்பாளர் பதக்கம்',
           'சிறந்த படக்கலைஞர் பதக்கம்',
           'விக்கிப்பதக்கத் தக்கவைப்பாளர் பதக்கம்',
           'தீக்குறும்பு களைவர் பதக்கம்',
           'சிறந்த நகைச்சுவை உணர்வாளர் பதக்கம்',
           'சிறந்த உரைதிருத்துனர் பதக்கம்',
           'சிறப்புப் பதக்கம்',
           'சிறந்த மேற்கோள்வழங்குனர் பதக்கம்',
           'சிறந்த கூட்டுமுயற்சிப் பதக்கம்',
           'செயல்நயம் மிக்கவர் பதக்கம்',
           'மரியாதை மிக்கவர் பதக்கம்',
           'மெய்வாழ்வுப் பதக்கம்',
           'அசத்தும் புதிய பயனர் பதக்கம்',
           'உயிரியல் பங்களிப்புப் பதக்கம்',
           'உங்களுக்குத் தெரியுமா பங்களிப்புப் பதக்கம்',
           'முதற்பக்கக் கட்டுரைப் பங்களிப்புப் பதக்கம்',
           'மருத்துவப் பதக்கம்',
           'பகுப்பாக்குனர் பதக்கம்',
           'சிறந்த வழிகாட்டிப் பதக்கம்',
           'ஊக்குவிப்பாளர் பதக்கம்',
           'பயனர் பக்கப்பதக்கம்',
           'வார்ப்புரு ஆக்குனர் பதக்கம்',
           'சிறந்த யோசனைக்கான பதக்கம்',
           'அறிவியல் பதக்கம்',
           'தாவரவியல் பதக்கம்',
           'கணிதப் பதக்கம்',
           'நடப்பு நிகழ்வுகள் பதக்கம்',
           'வாய்மொழி விண்மீன் பதக்கம்',
           'சிறந்த கூட்டு முயற்சிக் கட்டுரையாளர்',
           'சிறந்த முக்கிய கட்டுரை உருவாக்குனர்',
           'அசத்தும் பள்ளி மாணவர் பதக்கம்',
           'சைவ சமயக் கட்டுரைப் பங்களிப்புப் பதக்கம்',
         ];
         
         // பதக்க இடைமுகப்பை வரையறுத்தல்
         $wlBarnstars = $('&lt;div id=&quot;barnstarForm&quot; style=&quot;position:relative;&quot;&gt;&lt;/div&gt;')
           .append( $('&lt;div style=&quot;margin-top:0.4em;&quot;&gt;&lt;/div&gt;').html( 'பதக்கத்தைத் தெரிவு செய்யவும்: ' ).append( $('&lt;select id=&quot;barnstarSelect&quot; style=&quot;padding:1px;vertical-align:baseline;&quot;&gt;&lt;/select&gt;') ) )
           .append( $('&lt;div style=&quot;margin-top:0.4em;&quot;&gt;&lt;/div&gt;').html( 'ஒரு செய்தியை உள்ளிடவும் (கையொப்பமின்றி):&lt;br/&gt;' ).append( $('&lt;textarea name=&quot;message&quot; id=&quot;barnstarMessage&quot; style=&quot;width:99%&quot; rows=&quot;4&quot; cols=&quot;60&quot;&gt;&lt;/textarea&gt;') ) )
           .dialog({
             width: 500,
             autoOpen: false,
             title: 'ஒரு பதக்கத்தைத் தரவும்',
             modal: true,
             buttons: { &quot;பதக்கத்தை அளிக்கவும்&quot;: function() { 
               $(this).dialog({buttons:{}});
               if ( typeof wikiLove.editToken !== 'undefined' ) {
                 if ( $('#barnstarForm input[name=&quot;notify&quot;]').attr('checked') ) {
                   // மின்னஞ்சல் அனுப்பவும்
                   wikiLove.sendEmail( 'barnstarForm', 'உங்களுக்கு ஒரு பதக்கம் தரப்பட்டுள்ளது!', 'வணக்கம் '+mw.config.get('wgTitle')+'!\n\nநான் உங்களுக்கு '+$('#barnstarSelect').val()+' என்ற பதக்கத்தைத் தங்களது தமிழ் விக்கிப்பீடியா பேச்சுப் பக்கத்தில் தந்துள்ளேன்! வாழ்த்துகள்.' );
                 }
                 // பக்கத்தில் தொகுத்தலை மேற்கொள்ளல்
                 wikiLove.displayProgress( 'barnstarForm', 'பதக்கம் சேர்க்கப்பட்டுக் கொண்டிருக்கிறது...' );
                 var template = '{{subst:'+$('#barnstarSelect').val()+'|'+$('#barnstarMessage').val() +' ~~~~}}';
                 wikiLove.editPage( 'barnstarForm', 'பதக்கம்', template );
               } else {
                 wikiLove.displayError( 'barnstarForm', 'தொகுத்தலைத் திரும்பப் பெற முடியவில்லை.' );
               }
             }}
           });
     
         // பதக்கத் தெரிவுப் பட்டியலைப் பரப்பவும்
         $.each( $barnstarList, function(index, value) { $('#barnstarSelect').append( $('&lt;option&gt;&lt;/option&gt;').val(value).html(value) ); });
     
         // பக்கத்தினும் புதிய தத்தலைச் செருகவும்
         var menuBarnstar = '&lt;li id=&quot;wl-barnstar&quot;&gt;&lt;span&gt;&lt;a onclick=&quot;wikiLove.launchDialog( $wlBarnstars, true ); return false;&quot; href=&quot;#&quot;&gt;பதக்கம்&lt;/a&gt;&lt;/span&gt;&lt;/li&gt;';
         var wikiLoveMenu = '&lt;div class=&quot;vectorMenu&quot; id=&quot;p-wikilove&quot;&gt;&lt;h5&gt;&lt;span&gt;WikiLove&lt;/span&gt;&lt;a href=&quot;#&quot; style=&quot;padding:0 0.4em;width:auto;&quot;&gt;&lt;span style=&quot;display:inline-block;height:2.5em;width:16px;margin-right:14px;background-position:0 60%;background-image:url(//upload.wikimedia.org/wikipedia/commons/d/d9/Heart.png);background-repeat:no-repeat;&quot;&gt;&amp;nbsp;&lt;/span&gt;&lt;/a&gt;&lt;/h5&gt;&lt;div class=&quot;menu&quot;&gt;&lt;ul&gt;'+menuBarnstar+'&lt;/ul&gt;&lt;/div&gt;&lt;/div&gt;';
         $('#p-cactions').after(wikiLoveMenu);
 
       } // தொடக்கமதிப்பளிப்புச் செயற்கூறை முடித்தல்
 
     } // விக்கியன்பு பொருளை முடித்தல்
     wikiLove.initialize();
     wikiLove.getEmailable();
   }) // mw.ஏற்றியை மூடல்
 } // ifஐ மூடல்