Напомена: Пошто објавите измене, можда ћете морати да обришете кеш меморију прегледача како бисте их видели. Google Chrome, Firefox, Microsoft Edge и Safari: Држите ⇧ Shift и кликните дугме Reload на траци са алаткама. За детаље и упутства о другим прегледачима, погледајте en:Wikipedia:Bypass your cache.

importScript('User:KrleNS/HarvErrors.js');

// Add Auto Edit menu in More Menu
importScript('Wikipedia:AutoEd/complete.js');

//Add auto formatting yellow button
mw.loader.load('//de.wikipedia.org/w/index.php?title=Benutzer:TMg/autoFormatter.js&action=raw&ctype=text/javascript');

// Add the reFill url to cite web tool
mw.loader.load('//meta.wikimedia.org/w/index.php?title=User:Zhaofeng_Li/Reflinks.js&action=raw&ctype=text/javascript');

//Add tool to find things with duplicate arguments in the template
importScript('User:Frietjes/findargdups.js');

// Display Harv errors
importScript('User:Trappist the monk/HarvErrors.js');


function addCitationAlphaButton() {
	if ( document.getElementById( 'wpDiff' ) ) {
		var diff = document.getElementById( 'wpDiffWidget' );
		cbButton = new OO.ui.ButtonWidget();

		cbButton.setElementId( 'wpCitations' )
		.setIcon( 'articleCheck' )
		.setLabel( 'Citations [slow]' )
		.setFlags( 'secondary' );

		cbButton.on( 'click', function () {
			$.ajax( {
				timeout: 240000, // thousandths of a second, so 4 minutes, which is basically infinite
				type: 'POST',
				url: 'https://citations.toolforge.org/gadgetapi.php?slow=1&',
				data: {
					text: $( '#wpTextbox1' ).textSelection( 'getContents' ),
					summary: $( '#wpSummary' ).textSelection( 'getContents' )
				},
				beforeSend: function() {
					$( cbButton.$element ).replaceWith( $spinnerspan );
				},
				success: function( data ) {
					expandedText = data.expandedtext;
					editSummary = data.editsummary;
					$( '#loader' ).replaceWith( cbButton.$element );
					if ( expandedText ) {
						// Populate text box with received expanded text
						$( '#wpTextbox1' ).textSelection( 'setContents', expandedText );
						// Populate edit summary textbox with received edit summary
						$( '#wpSummary' ).textSelection( 'setContents', editSummary );
						// Click 'Show preview' button
						$( '#wpDiff' ).click();
					} else {
						$( '#loader' ).replaceWith( cbButton.$element );
						alert( 'Error: Replacement text empty' );
					}
				},
				error: function( data ) {
					$( '#loader' ).replaceWith( cbButton.$element );
					alert( 'Error: Citations request failed' );
				}
			} );
		} );
		
		cbButton.$element.insertBefore( $(diff.nextSibling) );
	}
}


// Citation-bot, but not slow=1
var $spinnerspan;
var cbButton;
function addCBetaToToolbox() {
	if ( mw.config.get( 'wgCanonicalNamespace' ) !== 'Special' ) {
		var pTb = document.getElementById("p-tb");
		if ( !pTb ) {
			return;
		}
		var escPageName = encodeURIComponent( mw.config.get( 'wgPageName' ));
		mw.util.addPortletLink("p-tb", "//citations.toolforge.org/process_page.php?edit=toolbar&page="+escPageName, 'Expand citations [fast]', 't-citationbot-slow', "Expand citations and fix formatting errors");
	}
}

function addCitationBetaButton() {
	if ( document.getElementById( 'wpDiff' ) ) {
		var diff = document.getElementById( 'wpDiffWidget' );
		cbButton = new OO.ui.ButtonWidget();

		cbButton.setElementId( 'wpCitations' )
		.setIcon( 'articleCheck' )
		.setLabel( 'Citations [fast]' )
		.setFlags( 'secondary' );

		cbButton.on( 'click', function () {
			$.ajax( {
				timeout: 240000, // thousandths of a second, so 4 minutes, which is basically infinite
				type: 'POST',
				url: 'https://citations.toolforge.org/gadgetapi.php?',
				data: {
					text: $( '#wpTextbox1' ).textSelection( 'getContents' ),
					summary: $( '#wpSummary' ).textSelection( 'getContents' )
				},
				beforeSend: function() {
					$( cbButton.$element ).replaceWith( $spinnerspan );
				},
				success: function( data ) {
					expandedText = data.expandedtext;
					editSummary = data.editsummary;
					$( '#loader' ).replaceWith( cbButton.$element );
					if ( expandedText ) {
						// Populate text box with received expanded text
						$( '#wpTextbox1' ).textSelection( 'setContents', expandedText );
						// Populate edit summary textbox with received edit summary
						$( '#wpSummary' ).textSelection( 'setContents', editSummary );
						// Click 'Show preview' button
						$( '#wpDiff' ).click();
					} else {
						$( '#loader' ).replaceWith( cbButton.$element );
						alert( 'Error: Replacement text empty' );
					}
				},
				error: function( data ) {
					$( '#loader' ).replaceWith( cbButton.$element );
					alert( 'Error: Citations request failed' );
				}
			} );
		} );
		
		cbButton.$element.insertBefore( $(diff.nextSibling) );
	}
}

// Add a button to allow expanding citations in the text in the edit textbox
mw.hook( 'wikipage.editform' ).add( function() {
	if( !$spinnerspan ) {
		$spinnerspan = $( '<span id="loader"></span>');
	}
	if ( document.images ) {
		// Loading gif when Citations request is processing
		var spinner = new Image();
		spinner.src = "//upload.wikimedia.org/wikipedia/commons/4/42/Loading.gif";
		$spinnerspan.append( spinner );
	}
	if( $('#wpCitations').length === 0 ){
		mw.loader.using( [ 'oojs-ui-core', 'oojs-ui.styles.icons-content', 'jquery.textSelection' ] ).then( addCitationBetaButton );
		mw.loader.using( [ 'oojs-ui-core', 'oojs-ui.styles.icons-content', 'jquery.textSelection' ] ).then( addCitationAlphaButton );
	}
} );


// Add a toolbox button that runs Citation Bot on the most recent saved revision of the page
if ( $.inArray( mw.config.get( 'skin' ), ['monobook', 'modern', 'vector', 'timeless'] ) !== -1 ) {
  $( addCBetaToToolbox );
}

/* Automate purge confirmation dialog */
if ( mw.config.get( 'wgAction' ) === 'purge' ) {
       $('form[action*="action=purge"]').submit();
}

importScript('User:KrleNS/OneClickArchiver.js');