( function( M, $ ) {
	var api = M.require( 'api' ),
		popup = M.require( 'toast' ),
		schema = M.require( 'loggingSchemas/MobileWebClickTracking' );

	function thankUser( name, revision, gender ) {
		var d = $.Deferred();
		api.getToken( 'edit' ).done( function( token ) {
			api.get( {
				'action' : 'thank',
				'rev' : revision,
				'source' : 'mobilediff',
				'token' : token
			} )
			.done( function() {
				popup.show( mw.msg( 'thanks-thanked-notice', name, gender ) );
				d.resolve();
			} )
			.fail( function( errorCode ) {
				switch( errorCode ) {
					case 'invalidrevision':
						popup.show( mw.msg( 'thanks-error-invalidrevision' ) );
						break;
					case 'ratelimited':
						popup.show( mw.msg( 'thanks-error-ratelimited', gender ) );
						break;
					default:
						popup.show( mw.msg( 'thanks-error-undefined' ) );
				}
				d.reject();
			} );
		} );
		return d;
	}

	/**
	 * Create a thank button for a given edit
	 *
	 * @param name String The username of the user who made the edit
	 * @param rev String The revision the user created
	 * @param gender String The gender of the user who made the edit
	 */
	function createThankLink( name, rev, gender ) {
		var thankImg = mw.config.get( 'wgExtensionAssetsPath' ) + '/Thanks/WhiteSmiley.png',
			thankImgTag = '<img width="25" height="20" src="' + thankImg + '" class="mw-mf-action-button-icon"/>',
			$thankBtn;
		// Don't make thank button for self
		if ( name !== mw.config.get( 'wgUserName' ) ) {
			// See if user has already been thanked for this edit
			if ( mw.config.get( 'wgThanksAlreadySent' ) ) {
				$thankBtn = $( '<button class="mw-mf-action-button mw-ui-button mw-ui-constructive thanked">' )
					.attr( 'disabled', true )
					.html( thankImgTag + mw.message( 'thanks-button-thanked', mw.user ).escaped() );
			} else {
				$thankBtn = $( '<button class="mw-mf-action-button mw-ui-button mw-ui-constructive">' )
					.html( thankImgTag + mw.message( 'thanks-button-thank', mw.user ).escaped()
					)
					.on( 'click', function() {
						var $this = $( this );
						schema.log( 'diff-thank', name );
						if ( !$this.hasClass( 'thanked' ) ) {
							thankUser( name, rev, gender  ).done( function() {
								$this.addClass( 'thanked' ).attr( 'disabled', true )
									.html( thankImgTag + mw.message( 'thanks-button-thanked', mw.user ).escaped() );
							} );
						}
					} );
			}
			return $thankBtn;
		}
	}

	$( function() {
		var $user = $( '.mw-mf-user' ),
			username = $user.data( 'user-name' ),
			rev = $user.data( 'revision-id' ),
			gender = $user.data( 'user-gender' ),
			$thankBtn;

		if ( !$user.hasClass( 'mw-mf-anon' ) ) {
			$thankBtn = createThankLink( username, rev, gender );
			if ( $thankBtn ) {
				$thankBtn.prependTo( '#mw-mf-userinfo' );
			}
		}
	} );
} )( mw.mobileFrontend, jQuery );

@@ -273,18 +273,19 @@
 %0A%09%09%09api.
-ge
+pos
 t( %7B%0A%09%09%09

Send thanks via POST on mobile too