From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

// If FriendlyConfig aint exist.

if( typeof( FriendlyConfig ) == 'undefined' ) {

	FriendlyConfig = {};

}



/**

 FriendlyConfig.summaryAd ( string )

 If ad should be added or not to summary, default [[WP:FRIENDLY|Friendly]]

 */

if( typeof( FriendlyConfig.summaryAd ) == 'undefined' ) {

	FriendlyConfig.summaryAd = " using [[WP:FRIENDLY|Friendly]]";

}



/**

 FriendlyConfig.groupByDefault ( boolean )

 */

if( typeof( FriendlyConfig.groupByDefault ) == 'undefined' ) {

	FriendlyConfig.groupByDefault = true;

}



/**

 FriendlyConfig.watchTaggedPages ( boolean )

 */

if( typeof( FriendlyConfig.watchTaggedPages ) == 'undefined' ) {

	FriendlyConfig.watchTaggedPages = true;

}



/**

 FriendlyConfig.markTaggedPagesAsMinor ( boolean )

 */

if( typeof( FriendlyConfig.markTaggedPagesAsMinor ) == 'undefined' ) {

	FriendlyConfig.markTaggedPagesAsMinor = true;

}



function friendlytag() {

	if( QueryString.exists( 'redirect' ) && QueryString.get( 'redirect' ) == 'no' ) {

		isRedirect = true;

		mw.util.addPortletLink( 'p-cactions', "javascript:friendlytag.callback()", "tag", "friendly-tag", "Tag redirect", "");

	} else if( wgNamespaceNumber != 0 || wgCurRevisionId == false ) {

		return;

	} else {

		mw.util.addPortletLink( 'p-cactions', "javascript:friendlytag.callback()", "tag", "friendly-tag", "Tag article", "");

	}

}



$(friendlytag);



friendlytag.callback = function friendlytagCallback( uid ) {

	var Window = new SimpleWindow( 600, 400 );

	if( !isRedirect ) {

		Window.setTitle( "Article maintenance tagging" );

	} else {

		Window.setTitle( "Redirect tagging" );

	}

	var form = new QuickForm( friendlytag.callback.evaluate );



	if( !isRedirect ) {

		form.append( {

				type: 'checkbox',

				list: 

					{

						label: 'Group into {{articleissues}} if possible',

						value: 'group',

						name: 'group',

						tooltip: 'If applying more than three templates supported by {{articleissues}} and this box is checked, all supported templates will be grouped into a single {{articleissues}} template.',

						checked: FriendlyConfig.groupByDefault

					}

				

			}

		);



		form.append( { type:'submit' } );



		form.append( { type:'header', label:'Maintenance templates' } );

		form.append( { type:'checkbox', name: 'maintenance', list: friendlytag.maintenanceList } );



		form.append( { type:'header', label:'Problem templates' } );

		form.append( { type:'checkbox', name: 'problem', list: friendlytag.problemList } );



		form.append( { type:'header', label:'Notice templates' } );

		form.append( { type:'checkbox', name: 'notice', list: friendlytag.noticeList } );

	} else {

		form.append( { type:'submit' } );



		form.append( { type:'header', label:'Spelling, misspelling, tense and capitalization templates' } );

		form.append( { type:'checkbox', name: 'spelling', list: friendlytag.spellingList } );



		form.append( { type:'header', label:'Alternative name templates' } );

		form.append( { type:'checkbox', name: 'alternative', list: friendlytag.alternativeList } );



		form.append( { type:'header', label:'Miscellaneous and administrative redirect templates' } );

		form.append( { type:'checkbox', name: 'administrative', list: friendlytag.administrativeList } );

	}



	form.append( { type:'submit' } );



	var result = form.render();

	Window.setContent( result );

	Window.display();

}



isRedirect = false;



friendlytag.maintenanceList = 

	{

		label: '\{\{cleanup\}\}: article may require cleanup',

		value: 'cleanup'

	},

	{

		label: '\{\{confusing\}\}: article may be confusing or unclear',

		value: 'confusing'

	},

	{

		label: '\{\{copyedit\}\}: article needs copy editing for grammar, style, cohesion, tone, and/or spelling',

		value: 'copyedit'

	},

	{

		label: '\{\{deadend\}\}: article has few or no links to other articles',

		value: 'deadend'

	},

	{

		label: '\{\{essay-like\}\}: article is written like an essay and needs cleanup',

		value: 'essay-like'

	},

	{

		label: '\{\{expand\}\}: article needs expansion',

		value: 'expand' 

	},

	{

		label: '\{\{expert\}\}: article needs attention from an expert on the subject',

		value: 'expert'

	},

	{

		label: '\{\{in-universe\}\}: article subject is fictional and needs rewriting from a non-fictional perspective',

		value: 'in-universe'

	},

	{

		label: '\{\{internallinks\}\}: article needs more relevant internal links',

		value: 'internallinks'

	},

	{

		label: '\{\{introrewrite\}\}: lead section of article needs to be rewritten to comply with guidelines',

		value: 'introrewrite'

	},

	{

		label: '\{\{nofootnotes\}\}: article has references, but no in-text citations',

		value: 'nofootnotes'

	},

	{

		label: '\{\{orphan\}\}: article has few or no other articles that link to it',

		value: 'orphan' 

	},

	{

		label: '\{\{plot\}\}: plot summary in article is too long',

		value: 'plot' 

	},

	{

		label: '\{\{prose\}\}: article is in a list format that may be better presented using prose',

		value: 'prose'

	},

	{

		label: '\{\{sections\}\}: article needs to be broken into sections',

		value: 'sections'

	},

	{

		label: '\{\{tone\}\}: tone of article is not appropriate',

		value: 'tone'

	},

	{

		label: '\{\{toolong\}\}: lead section of article is too long and should be shortened',

		value: 'toolong'

	},

	{

		label: '\{\{tooshort\}\}: lead section of article is too short and should be expanded',

		value: 'tooshort'

	},

	{

		label: '\{\{uncategorized\}\}: article is uncategorized',

		value: 'uncategorized'

	},

	{

		label: '\{\{verylong\}\}: article is too long',

		value: 'verylong'

	},

	{

		label: '\{\{wikify\}\}: article needs to be wikified',

		value: 'wikify'

	}

];





friendlytag.problemList = 

	{

		label: '\{\{advert\}\}: article is written like an advertisement',

		value: 'advert'

	},

	{

		label: '\{\{autobiography\}\}: article is an autobiography and may not be of NPOV',

		value: 'autobiography'

	},

	{

		label: '\{\{coi\}\}: article creator or major contributor may have a conflict of interest',

		value: 'coi'

	},

	{

		label: '\{\{context\}\}: article provides insufficient context',

		value: 'context'

	},

	{

		label: '\{\{disputed\}\}: article has questionable factual accuracy',

		value: 'disputed'

	},

	{

		label: '\{\{hoax\}\}: article may be a complete hoax',

		value: 'hoax'

	},

	{

		label: '\{\{non-free\}\}: article may contain excessive or improper use of copyrighted materials',

		value: 'non-free'

	},

	{

		label: '\{\{notability\}\}: article\'s subject may not meet the notability guideline',

		value: 'notability',

		subgroup: {

			name: 'notabillity',

			type: 'select',

			list: 

				{

					label: "\{\{notability|Academics\}\}: notability guideline for academics",

					value: "Academics"

				},

				{

					label: "\{\{notability|Biographies\}\}: notability guideline for biographies",

					value: "Biographies"

				},

				{

					label: "\{\{notability|Books\}\}: notability guideline for books",

					value: "Books"

				},

				{

					label: "\{\{notability|Companies\}\}: notability guideline for companies and organizations",

					value: "Companies"

				},

				{

					label: "\{\{notability|Episode\}\}: notability guideline for television episodes",

					value: "Episode"

				},

				{

					label: "\{\{notability|Fiction\}\}: notability guideline for fiction",

					value: "Fiction"

				},

				{

					label: "\{\{notability|Institutions\}\}: synonym of \"Companies\"",

					value: "Institutions"

				},

				{

					label: "\{\{notability|Music\}\}: notability guideline for music",

					value: "Music"

				},

				{

					label: "\{\{notability|Neologisms\}\}: notability guideline for neologisms",

					value: "Neologisms"

				},

				{

					label: "\{\{notability|Numbers\}\}: notability guideline for numbers",

					value: "Numbers"

				},

				{

					label: "\{\{notability|Organizations\}\}: synonym of \"Companies\"",

					value: "Organizations"

				},

				{

					label: "\{\{notability|Products\}\}: notability guideline for products and services",

					value: "Products"

				},

				{

					label: "\{\{notability|Web\}\}: notability guideline for web content",

					value: "Web"

				}

			

		}

	},

	{

		label: '\{\{npov\}\}: article does not maintain a neutral point of view',

		value: 'npov'

	},

	{

		label: '\{\{original research\}\}: article has original research or unverified claims',

		value: 'original research'

	},

	{

		label: '\{\{primarysources\}\}: article needs reliable, third-party sources',

		value: 'primarysources'

	},

	{ 

		label: '\{\{refimprove\}\}: article needs additional references or sources for verification',

		value: 'refimprove' 

	},

	{

		label: '\{\{self-published\}\}: article may contain improper references to self-published sources',

		value: 'self-published'

	},

	{

		label: '\{\{totally-disputed\}\}: article is not neutral and has questionable factual accuracy',

		value: 'totally-disputed'

	},

	{

		label: '\{\{unencyclopedic\}\}: article is unencyclopedic and should be deleted',

		value: 'unencyclopedic'

	},

	{

		label: '\{\{unreferenced\}\}: article has no references at all',

		value: 'unreferenced'

	},

	{

		label: '\{\{update\}\}: article information is out of date',

		value: 'update'

	},

	{

		label: '\{\{weasel\}\}: article quality may be compromised by the use of weasel words',

		value: 'weasel'

	}

];



friendlytag.noticeList = 

	{

		label: '\{\{current\}\}: article documents a current event',

		value: 'current',

		subgroup: {

			name: 'current',

			type: 'select',

			list: 

				{

					label: "\{\{current\}\}: article documents a current event",

					value: "current"

				},

				{

					label: "\{\{airng\}\}: program is currently airing",

					value: "airing"

				},

				{

					label: "\{\{bridge under construction\}\}: article contains information about a bridge currently under construction",

					value: "bridge under construction"

				},

				{

					label: "\{\{bridge under construction\}\}: article contains information about a building currently under construction",

					value: "building under construction"

				},

				{

					label: "\{\{current antics\}\}: person is currently participating in a reality television show",

					value: "current antics"

				},

				{

					label: "\{\{current bill\}\}: article documents proposed legislation that is currently being considered",

					value: "current bill"

				},

				{

					label: "\{\{current court case\}\}: article documents a current court case",

					value: "current court case"

				},

				{

					label: "\{\{current fiction\}\}: article is about a recently released work of fiction",

					value: "current fiction"

				},

				{

					label: "\{\{current game\}\}: article documents a current event in video gaming",

					value: "current game"

				},

				{

					label: "\{\{current person\}\}: article is about a person involved in a current event",

					value: "current person"

				},

				{

					label: "\{\{current product\}\}: article documents a recently released product",

					value: "current product"

				},

				{

					label: "\{\{current pw\}\}: article documents a current professional wrestling event",

					value: "current pw"

				},

				{

					label: "\{\{current spaceflight\}\}: article or section documents a current spaceflight",

					value: "current spaceflight"

				},

				{

					label: "\{\{current sport\}\}: article documents a current sports-related event",

					value: "current sport"

				},

				{

					label: "\{\{current sport delay\}\}: article documents a current sports-related event which may contain information not aired because of tape delay",

					value: "current sport delay"

				},

				{

					label: "\{\{current related\}\}: article is related to a current event",

					value: "current related"

				},

				{

					label: "\{\{current single\}\}: article documents a current single",

					value: "current single"

				},

				{

					label: "\{\{current territorial changes\}\}: article is subject to current territorial changes and may not represent up-to-date detail",

					value: "current territorial changes"

				},

				{

					label: "\{\{in space\}\}: article documents a person who is currently in space",

					value: "in space"

				},

				{

					label: "\{\{inland waterway under restoration\}\}: article contains information about an inland waterway currently under restoration",

					value: "inland waterway under restoration"

				},

				{

					label: "\{\{ongoing lawsuit\}\}: article documents an ongoing lawsuit",

					value: "ongoing lawsuit"

				},

				{

					label: "\{\{ongoing election\}\}: article contains information about an ongoing election",

					value: "ongoing election"

				},

				{

					label: "\{\{ongoing weather\}\}: article contains information about an ongoing meteorological event or phenomenon",

					value: "ongoing weather"

				},

				{

					label: "\{\{recent death\}\}: article is about a person who has recently died",

					value: "recent death"

				},

				{

					label: "\{\{recently convicted\}\}: article is about a person who has recently been convicted in a criminal case",

					value: "recently convicted"

				},

				{

					label: "\{\{road under construction\}\}: article contains information about a road currently under construction",

					value: "road under construction"

				}

			

		}

	},

	{

		label: '\{\{future\}\}: article is about scheduled or expected future events',

		value: 'future',

		subgroup: {

			name: 'future',

			type: 'select',

			list:  

				{

					label: "\{\{future\}\}: article is about scheduled or expected future events",

					value: "future"

				},

				{

					label: "Education",

					list: 

						{

							label: "\{\{future article\}\}: expected future articles",

							value: "future article"

						},

						{

							label: "\{\{future book\}\}: scheduled, forthcoming or expected future book(s)",

							value: "future book"

						},

						{

							label: "\{\{future museum\}\}: planned museum",

							value: "future museum"

						},

						{

							label: "\{\{future zoo exhibit\}\}: planned or expected new zoo exhibit",

							value: "future zoo exhibit"

						}

					

				},

				{

					label: "Engineering",

					list: 

						{

							label: "\{\{future building\}\}: expected future buildings or structures",

							value: "future building"

						},

						{

							label: "\{\{future chip\}\}: scheduled or expected future computer chips",

							value: "future chip"

						},

						{

							label: "\{\{future dam\}\}: planned or expected dam",

							value: "future dam"

						},

						{

							label: "\{\{future energy infrastructure\}\}: planned or expected future energy production, transmission, distribution or other energy related infrastructure",

							value: "future energy infrastructure"

						},

						{

							label: "\{\{future infrastructure\}\}: planned or expected future infrastructure",

							value: "future infrastructure"

						},

						{

							label: "\{\{future mine\}\}: planned or proposed future mine",

							value: "future mine"

						},

						{

							label: "\{\{future pipeline\}\}: planned or expected pipeline",

							value: "future pipeline"

						},

						{

							label: "\{\{future power plant\}\}: planned or expected power plant",

							value: "future power plant"

						},

						{

							label: "\{\{future scientific facility\}\}: expected future scientific facility",

							value: "future scientific facility"

						},

						{

							label: "\{\{future software\}\}: scheduled or expected future software",

							value: "future software"

						},

						{

							label: "\{\{future spaceflight\}\}: scheduled or expected spaceflight",

							value: "future spaceflight"

						},

						{

							label: "\{\{launching\}\}: rocket or spacecraft which is either currently in the process of launching, or is scheduled to launch within the next few days",

							value: "launching"

						},

						{

							label: "\{\{future web service\}\}: scheduled or expected Web service",

							value: "future web service"

						}

					

				},

				{

					label: "Entertainment",

					list: 

						{

							label: "\{\{future album\}\}: scheduled or expected album",

							value: "future album"

						},

						{

							label: "\{\{future amusement ride\}\}: planned or expected future amusement ride",

							value: "future amusement ride"

						},

						{

							label: "\{\{future awards show\}\}: upcoming awards show",

							value: "future awards show"

						},

						{

							label: "\{\{future channel\}\}: future television station, channel or network",

							value: "future channel"

						},

						{

							label: "\{\{future comic\}\}: scheduled or expected comic book release, or a series already in progress",

							value: "future comic"

						},

						{

							label: "\{\{future film\}\}: one or more scheduled or expected films",

							value: "future film"

						},

						{

							label: "\{\{future game\}\}: unreleased video game",

							value: "future game"

						},

						{

							label: "\{\{future music festival\}\}: upcoming music/arts festival",

							value: "future music festival"

						},

						{

							label: "\{\{future play article\}\}: upcoming play or musical",

							value: "future play article"

						},

						{

							label: "\{\{future radio\}\}: future radio station, radio network or radio show",

							value: "future radio"

						},

						{

							label: "\{\{future UK radio station\}\}: future radio station in the United Kingdom",

							value: "future UK radio station"

						},

						{

							label: "\{\{future single\}\}: scheduled or expected future single",

							value: "future single"

						},

						{

							label: "\{\{future television episode\}\}: scheduled upcoming television episode of an already-running TV series",

							value: "future television episode"

						},

						{

							label: "\{\{future television series\}\}: scheduled upcoming television series",

							value: "future television series"

						},

						{

							label: "\{\{future webcomic\}\}: scheduled or expected webcomic update/premiere, or a series already in progress",

							value: "future webcomic"

						}

					

				},

				{

					label: "Miscellaneous",

					list: 

						{

							label: "\{\{concept product\}\}: contains information about conceptual products",

							value: "concept product"

						},

						{

							label: "\{\{future election\}\}: forthcoming or ongoing election",

							value: "future election"

						},

						{

							label: "\{\{future election in the United States\}\}: upcoming or ongoing election in the United States",

							value: "future election in the United States"

						},

						{

							label: "\{\{future product\}\}: scheduled or expected future product",

							value: "future product"

						},

						{

							label: "\{\{future product small\}\}: (small) future product, and may contain unverified, unreliable, or incorrect information",

							value: "future product small"

						}

					

				},

				{

					label: "Transportation",

					list: 

						{

							label: "\{\{future aircraft\}\}: scheduled or anticipated future aircraft",

							value: "future aircraft"

						},

						{

							label: "\{\{future airline\}\}: planned or expected new airline",

							value: "future airline"

						},

						{

							label: "\{\{future airport\}\}: planned or expected new airport",

							value: "future airport"

						},

						{

							label: "\{\{future airport authority\}\}: planned or expected new airport authority",

							value: "future airport authority"

						},

						{

							label: "\{\{future airport expansion\}\}: planned or expected expansion of an existing airport",

							value: "future airport expansion"

						},

						{

							label: "\{\{future Australian public transportation\}\}: planned or expected public transportation infrastructure in Australia",

							value: "future Australian public transportation"

						},

						{

							label: "\{\{future automobile\}\}: scheduled or anticipated future automobile",

							value: "future automobile"

						},

						{

							label: "\{\{future bridge\}\}: planned or proposed future bridge",

							value: "future bridge"

						},

						{

							label: "\{\{future Canadian public transportation\}\}: planned or expected public transportation infrastructure in Canada",

							value: "future Canadian public transportation"

						},

						{

							label: "\{\{future Chinese public transportation\}\}: planned or expected public transportation infrastructure in China",

							value: "future Chinese public transportation"

						},

						{

							label: "\{\{concept automobile\}\}: concept automobile",

							value: "concept automobile"

						},

						{

							label: "\{\{future French public transportation\}\}: planned or expected public transportation infrastructure in France",

							value: "future French public transportation"

						},

						{

							label: "\{\{future London transport infrastructure\}\}: planned or expected London Transport infrastructure",

							value: "future London transport infrastructure"

						},

						{

							label: "\{\{future motorcycle\}\}: scheduled or anticipated future motorcycle",

							value: "future motorcycle"

						},

						{

							label: "\{\{future public transportation\}\}: planned or expected public transportation infrastructure",

							value: "future public transportation"

						},

						{

							label: "\{\{future railway station\}\}: planned or expected future railway station",

							value: "future railway station"

						},

						{

							label: "\{\{future road\}\}: planned or expected future road",

							value: "future road"

						},

						{

							label: "\{\{future tunnel\}\}: planned or expected future tunnel",

							value: "future tunnel"

						},

						{

							label: "\{\{future UK public transportation\}\}: planned or expected public transportation in the United Kingdom",

							value: "future UK public transportation"

						},

						{

							label: "\{\{future USA public transportation\}\}: proposed, planned, or expected public transportation infrastructure in the United States",

							value: "future USA public transportation"

						}

					

				},

				{

					label: "Sports",

					list: 

						{

							label: "\{\{future arena\}\}: planned or proposed arena",

							value: "future arena"

						},

						{

							label: "\{\{future motor sport\}\}: future motor sporting event or team",

							value: "future motor sport"

						},

						{

							label: "\{\{future pw\}\}: scheduled professional wrestling event that is taking place in the future",

							value: "future pw"

						},

						{

							label: "\{\{future sport\}\}: future sporting event or team",

							value: "future sport"

						},

						{

							label: "\{\{future sports venue\}\}: planned or expected sports venue",

							value: "future sports venue"

						},

						{

							label: "\{\{future stadium\}\}: planned or proposed stadium",

							value: "future stadium"

						}

					

				}

			

		}

	},

	{

		label: '\{\{inuse\}\}: article is undergoing a major edit for a short while',

		value: 'inuse' },

	{

		label: '\{\{underconstruction\}\}: article is currently in the middle of an expansion or major revamping',

		value: 'underconstruction' }

];





friendlytag.spellingList = 

	{

		label: '\{\{R from abbreviation\}\}: redirect from a title with an abbreviation',

		value: 'R from abbreviation' 

	},

	{

		label: '\{\{R to list entry\}\}: redirect to a \"list of minor entities\"-type article which is a collection of brief descriptions for subjects not notable enough to have separate articles',

		value: 'R to list entry' 

	},

	{

		label: '\{\{R to section\}\}: sames as \{\{R to list entry\}\}, but when list is more sectionlike in organization, such as list of fictional characters in a fictional universe.',

		value: 'R to section' 

	},

	{

		label: '\{\{R from misspelling\}\}: redirect from a misspelling or typographical error',

		value: 'R from misspelling' 

	},

	{

		label: '\{\{R from alternative spelling\}\}: redirect from a title with a different spelling',

		value: 'R from alternative spelling' 

	},

	{

		label: '\{\{R from plural\}\}: redirect from a plural word to the singular equivalent',

		value: 'R from plural' 

	},

	{

		label: '\{\{R from related word\}\}: redirect from a related word',

		value: 'R from related word' 

	},

	{

		label: '\{\{R with possibilities\}\}: redirect from a title for a topic more detailed than what is currently provided on the target page, or section of that page, hence something which can and should be expanded',

		value: 'R with possibilities' 

	},

	{

		label: '\{\{R from member\}\}: redirect from a person who is a member of a group to more general related topics, such as the group, organization, ensemble or team that he or she belongs to',

		value: 'R from member' 

	},

	{

		label: '\{\{R from other capitalisation\}\}: redirect from a title with another method of capitalisation',

		value: 'R from other capitalisation'

	}

];



friendlytag.alternativeList = 

	{

		label: '\{\{R from alternative name\}\}: redirect from a title that is another name, a pseudonym, a nickname, or a synonym',

		value: 'R from alternative name' 

	},

	{

		label: '\{\{R from historic name\}\}: redirect from a title that is another name, a pseudonym, a nickname, or a synonym that has a significant historic past as a region, state, principate\'s holding, city, city-state or such, but which region has been subsumed into a modern era municipality, district or state, or otherwise suffered from a name change over time',

		value: 'R from historic name' 

	},

	{

		label: '\{\{R from scientific name\}\}: redirect from the scientific name to the common name',

		value: 'R from scientific name' 

	},

	{

		label: '\{\{R to scientific name\}\}: redirect from the common name to the scientific name',

		value: 'R to scientific name' 

	},

	{

		label: '\{\{R from alternative language\}\}: redirect from an English name to a name in another language, or vice-versa',

		value: 'R from alternative language' 

	},

	{

		label: '\{\{R from ASCII\}\}: redirect from a title in basic ASCII to the formal article title, with differences that are not diacritical marks (accents, umlauts, etc.)',

		value: 'R from ASCII' 

	},

	{

		label: '\{\{R from title without diacritics\}\}: redirect to the article title with diacritical marks (accents, umlauts, etc.)',

		value: 'R from title without diacritics'

	}

];



friendlytag.administrativeList = 

	{

		label: '\{\{R to disambiguation page\}\}: redirect to a disambiguation page',

		value: 'R to disambiguation page' 

	},

	{

		label: '\{\{R for as of\}\}: redirect page affects an \"as of ...\" link',

		value: 'R for as of' 

	},

	{

		label: '\{\{R to decade\}\}: redirect from a year to the decade article',

		value: 'R to decade' 

	},

	{

		label: '\{\{R from shortcut\}\}: redirect from a Wikipedia shortcut',

		value: 'R from shortcut' 

	},

	{

		label: '\{\{R from CamelCase\}\}: redirect from a CamelCase title',

		value: 'R from CamelCase' 

	},

	{

		label: '\{\{R from EXIF\}\}: redirect of a wikilink created from JPEG EXIF information (i.e. the \"metadata\" section on some image description pages)',

		value: 'R from EXIF' 

	},

	{

		label: '\{\{R from school\}\}: redirect from a school article that had very little information',

		value: 'R from school'

	}

];



// Set to true if template can be grouped into {{articleissues}}

friendlytag.groupHash = {

	'cleanup': true,

	'confusing': true,

	'copyedit': true,

	'deadend': true,

	'essay-like': true,

	'expand': true,

	'expert': true,

	'in-universe': true,

	'internallinks': false,

	'introrewrite': true,

	'nofootnotes': false,

	'orphan': true,

	'plot': true,

	'sections': true,

	'tone': true,

	'toolong': true,

	'tooshort': true,

	'uncategorized': false,

	'verylong': true,

	'wikify': true,

	'advert': true,

	'autobiography': true,

	'coi': true,

	'context': true,

	'disputed': true,

	'hoax': false,

	'non-free': true,

	'notability': true,

	'npov': true,

	'original research': true,

	'primarysources': true,

	'refimprove': true,

	'self-published': true,

	'totally-disputed': false,

	'unencyclopedic': true,

	'unreferenced': true,

	'update': true,

	'weasel': true,

	'currentevent': false,

	'future': false,

	'inuse': false,

	'underconstruction': false

}



friendlytag.callbacks = {

	main: function( self ) {

		var form = self.responseXML.getElementById( 'editform' );

		var tagRe, text = '', summaryText = 'Added';

		var tags = new Array(), groupableTags = new Array();



		if( !isRedirect ) {

			// Check for preexisting tags and separate tags into groupable and non-groupable arrays

			Status.info( 'Info', 'Checking for preexisting tags on the article' );

			for( var i = 0; i < self.params.tags.length; i++ ) {

				tagRe = new RegExp( '(\\{\\{' + self.params.tagsi + '(\\||\\}\\}))', 'im' );

				if( !tagRe.exec( form.wpTextbox1.value ) ) {

					if( friendlytag.groupHash self.params.tagsi  ) {

						groupableTags = groupableTags.concat( self.params.tagsi );

					} else {

						tags = tags.concat( self.params.tagsi );

					}

				} else {

					Status.info( 'Info', 'Found \{\{' + self.params.tagsi

						+ '\}\} on the article already...excluding' );

				}

			}



			if( self.params.group && groupableTags.length > 3 ) {

				Status.info( 'Info', 'Grouping supported tags into \{\{articleissues\}\}' );



				groupableTags.sort();

				text += '\{\{articleissues';

				summaryText += ' \{\{articleissues\}\} with parameters';

				for( var i = 0; i < groupableTags.length; i++ ) {

					text += '|' + groupableTagsi

					+ '=\{\{subst:CURRENTMONTHNAME\}\} \{\{subst:CURRENTYEAR\}\}';



					if( i == (groupableTags.length - 1) ) {

						summaryText += ' and';

					} else if ( i < (groupableTags.length - 1) && i != 0 ) {

						summaryText += ',';

					}

					summaryText += ' ' + groupableTagsi];

				}

				text += '\}\}\n';

			} else {

				tags = tags.concat( groupableTags );

			}

		} else {

			// Check for preexisting tags

			Status.info( 'Info', 'Checking for preexisting tags on the redirect' );

			for( var i = 0; i < self.params.tags.length; i++ ) {

				tagRe = new RegExp( '(\\{\\{' + self.params.tagsi + '(\\||\\}\\}))', 'im' );

				if( !tagRe.exec( form.wpTextbox1.value ) ) {

					tags = tags.concat( self.params.tagsi );

				} else {

					Status.info( 'Info', 'Found \{\{' + self.params.tagsi

						+ '\}\} on the redirect already...excluding' );

				}

			}

		}



		tags.sort();

		for( var i = 0; i < tags.length; i++ ) {

			if( tagsi != 'uncategorized' ) {

				if( tagsi == 'current' ) {

					text += '\{\{' + self.params.currentSubcategory;

				} else if( tagsi == 'future' ) {

					text += '\{\{' + self.params.futureSubcategory;

				} else {

					text += ( isRedirect ? '\n' : '' ) + '\{\{' + tagsi];

				}



				if( tagsi == 'notability' && self.params.notabilitySubcategory != 'none' ) {

					text += '|' + self.params.notabilitySubcategory;

				}



				text += isRedirect ? '\}\}' : '|date=\{\{subst:CURRENTMONTHNAME\}\} \{\{subst:CURRENTYEAR\}\}\}\}\n';

			} else {

				form.wpTextbox1.value += '\n\n\{\{' + tagsi

				+ '|date=\{\{subst:CURRENTMONTHNAME\}\} \{\{subst:CURRENTYEAR\}\}\}\}';

			}



			if( i == (tags.length - 1) && ( i > 0 || groupableTags.length > 3 ) ) {

				summaryText += ' and';

			} else if ( i < (tags.length - 1) && ( i != 0 || groupableTags.length > 3 ) ) {

				summaryText += ',';

			}



			summaryText += ' \{\{[[Template:';

			if( tagsi == 'current' ) {

				summaryText += self.params.currentSubcategory + '|' + self.params.currentSubcategory;

			} else if( tagsi == 'future' ) {

				summaryText += self.params.futureSubcategory + '|' + self.params.futureSubcategory;

			} else {

				summaryText += tagsi + '|' + tagsi];

			}

			summaryText += ']]\}\}';

		}



		if( !isRedirect ) {

			text += form.wpTextbox1.value;

		} else {

			text = form.wpTextbox1.value + text;

		}

		summaryText += ' tag' + ( ( tags.length + ( groupableTags.length > 3 ? 1 : 0 ) ) > 1 ? 's' : '' )

		+ ' to ' + ( isRedirect ? 'redirect.' : 'article.' ) + FriendlyConfig.summaryAd;



		var postData = {

			'wpMinoredit': FriendlyConfig.markTaggedPagesAsMinor ? 1 : undefined,

			'wpWatchthis': form.wpWatchthis.checked ? 1 : (FriendlyConfig.watchTaggedPages ? 1 : undefined),

			'wpStarttime': form.wpStarttime.value,

			'wpEdittime': form.wpEdittime.value,

			'wpAutoSummary': form.wpAutoSummary.value,

			'wpEditToken': form.wpEditToken.value,

			'wpSummary': summaryText,

			'wpTextbox1': text

		};



		self.post( postData );

	}

}



friendlytag.callback.evaluate = function friendlytagCallbackEvaluate(e) {

	var form = e.target;

	if( isRedirect ) {

		var tags = form.getChecked( 'administrative' ).concat( form.getChecked( 'alternative' ) ).concat( form.getChecked( 'spelling' ) );

	} else {

		var tags = form.getChecked( 'notice' ).concat( form.getChecked( 'problem' ) ).concat( form.getChecked( 'maintenance' ) );

	}

	var params;



	if( tags.length == 0 ) {

		alert( 'You must select at least one tag!' );

		return;

	}

	var notabilitySubcategory = form.getChecked( 'problem.notability' );

	var currentSubcategory = form.getChecked( 'notice.current' );

	var futureSubcategory = form.getChecked( 'notice.future' );

	if( !isRedirect ) {

		params = {

			tags: tags,

			group: form.group.checked,

			notabilitySubcategory: notabilitySubcategory ? notabilitySubcategory0 : null,

			currentSubcategory: currentSubcategory ? currentSubcategory0 : null,

			futureSubcategory: futureSubcategory ? futureSubcategory0 : null,

		}

	} else {

		params = {

			tags: tags

		}

	}



	Status.init( form );



	var query = { 

		'title': wgPageName, 

		'action': 'submit'

	};

	Wikipedia.actionCompleted.redirect = wgPageName;

	Wikipedia.actionCompleted.notice = "Tagging complete, reloading article in some seconds";

	var wikipedia_wiki = new Wikipedia.wiki( 'Article modification', query, friendlytag.callbacks.main );

	wikipedia_wiki.params = params;

	wikipedia_wiki.get();

}
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.

// If FriendlyConfig aint exist.

if( typeof( FriendlyConfig ) == 'undefined' ) {

	FriendlyConfig = {};

}



/**

 FriendlyConfig.summaryAd ( string )

 If ad should be added or not to summary, default [[WP:FRIENDLY|Friendly]]

 */

if( typeof( FriendlyConfig.summaryAd ) == 'undefined' ) {

	FriendlyConfig.summaryAd = " using [[WP:FRIENDLY|Friendly]]";

}



/**

 FriendlyConfig.groupByDefault ( boolean )

 */

if( typeof( FriendlyConfig.groupByDefault ) == 'undefined' ) {

	FriendlyConfig.groupByDefault = true;

}



/**

 FriendlyConfig.watchTaggedPages ( boolean )

 */

if( typeof( FriendlyConfig.watchTaggedPages ) == 'undefined' ) {

	FriendlyConfig.watchTaggedPages = true;

}



/**

 FriendlyConfig.markTaggedPagesAsMinor ( boolean )

 */

if( typeof( FriendlyConfig.markTaggedPagesAsMinor ) == 'undefined' ) {

	FriendlyConfig.markTaggedPagesAsMinor = true;

}



function friendlytag() {

	if( QueryString.exists( 'redirect' ) && QueryString.get( 'redirect' ) == 'no' ) {

		isRedirect = true;

		mw.util.addPortletLink( 'p-cactions', "javascript:friendlytag.callback()", "tag", "friendly-tag", "Tag redirect", "");

	} else if( wgNamespaceNumber != 0 || wgCurRevisionId == false ) {

		return;

	} else {

		mw.util.addPortletLink( 'p-cactions', "javascript:friendlytag.callback()", "tag", "friendly-tag", "Tag article", "");

	}

}



$(friendlytag);



friendlytag.callback = function friendlytagCallback( uid ) {

	var Window = new SimpleWindow( 600, 400 );

	if( !isRedirect ) {

		Window.setTitle( "Article maintenance tagging" );

	} else {

		Window.setTitle( "Redirect tagging" );

	}

	var form = new QuickForm( friendlytag.callback.evaluate );



	if( !isRedirect ) {

		form.append( {

				type: 'checkbox',

				list: 

					{

						label: 'Group into {{articleissues}} if possible',

						value: 'group',

						name: 'group',

						tooltip: 'If applying more than three templates supported by {{articleissues}} and this box is checked, all supported templates will be grouped into a single {{articleissues}} template.',

						checked: FriendlyConfig.groupByDefault

					}

				

			}

		);



		form.append( { type:'submit' } );



		form.append( { type:'header', label:'Maintenance templates' } );

		form.append( { type:'checkbox', name: 'maintenance', list: friendlytag.maintenanceList } );



		form.append( { type:'header', label:'Problem templates' } );

		form.append( { type:'checkbox', name: 'problem', list: friendlytag.problemList } );



		form.append( { type:'header', label:'Notice templates' } );

		form.append( { type:'checkbox', name: 'notice', list: friendlytag.noticeList } );

	} else {

		form.append( { type:'submit' } );



		form.append( { type:'header', label:'Spelling, misspelling, tense and capitalization templates' } );

		form.append( { type:'checkbox', name: 'spelling', list: friendlytag.spellingList } );



		form.append( { type:'header', label:'Alternative name templates' } );

		form.append( { type:'checkbox', name: 'alternative', list: friendlytag.alternativeList } );



		form.append( { type:'header', label:'Miscellaneous and administrative redirect templates' } );

		form.append( { type:'checkbox', name: 'administrative', list: friendlytag.administrativeList } );

	}



	form.append( { type:'submit' } );



	var result = form.render();

	Window.setContent( result );

	Window.display();

}



isRedirect = false;



friendlytag.maintenanceList = 

	{

		label: '\{\{cleanup\}\}: article may require cleanup',

		value: 'cleanup'

	},

	{

		label: '\{\{confusing\}\}: article may be confusing or unclear',

		value: 'confusing'

	},

	{

		label: '\{\{copyedit\}\}: article needs copy editing for grammar, style, cohesion, tone, and/or spelling',

		value: 'copyedit'

	},

	{

		label: '\{\{deadend\}\}: article has few or no links to other articles',

		value: 'deadend'

	},

	{

		label: '\{\{essay-like\}\}: article is written like an essay and needs cleanup',

		value: 'essay-like'

	},

	{

		label: '\{\{expand\}\}: article needs expansion',

		value: 'expand' 

	},

	{

		label: '\{\{expert\}\}: article needs attention from an expert on the subject',

		value: 'expert'

	},

	{

		label: '\{\{in-universe\}\}: article subject is fictional and needs rewriting from a non-fictional perspective',

		value: 'in-universe'

	},

	{

		label: '\{\{internallinks\}\}: article needs more relevant internal links',

		value: 'internallinks'

	},

	{

		label: '\{\{introrewrite\}\}: lead section of article needs to be rewritten to comply with guidelines',

		value: 'introrewrite'

	},

	{

		label: '\{\{nofootnotes\}\}: article has references, but no in-text citations',

		value: 'nofootnotes'

	},

	{

		label: '\{\{orphan\}\}: article has few or no other articles that link to it',

		value: 'orphan' 

	},

	{

		label: '\{\{plot\}\}: plot summary in article is too long',

		value: 'plot' 

	},

	{

		label: '\{\{prose\}\}: article is in a list format that may be better presented using prose',

		value: 'prose'

	},

	{

		label: '\{\{sections\}\}: article needs to be broken into sections',

		value: 'sections'

	},

	{

		label: '\{\{tone\}\}: tone of article is not appropriate',

		value: 'tone'

	},

	{

		label: '\{\{toolong\}\}: lead section of article is too long and should be shortened',

		value: 'toolong'

	},

	{

		label: '\{\{tooshort\}\}: lead section of article is too short and should be expanded',

		value: 'tooshort'

	},

	{

		label: '\{\{uncategorized\}\}: article is uncategorized',

		value: 'uncategorized'

	},

	{

		label: '\{\{verylong\}\}: article is too long',

		value: 'verylong'

	},

	{

		label: '\{\{wikify\}\}: article needs to be wikified',

		value: 'wikify'

	}

];





friendlytag.problemList = 

	{

		label: '\{\{advert\}\}: article is written like an advertisement',

		value: 'advert'

	},

	{

		label: '\{\{autobiography\}\}: article is an autobiography and may not be of NPOV',

		value: 'autobiography'

	},

	{

		label: '\{\{coi\}\}: article creator or major contributor may have a conflict of interest',

		value: 'coi'

	},

	{

		label: '\{\{context\}\}: article provides insufficient context',

		value: 'context'

	},

	{

		label: '\{\{disputed\}\}: article has questionable factual accuracy',

		value: 'disputed'

	},

	{

		label: '\{\{hoax\}\}: article may be a complete hoax',

		value: 'hoax'

	},

	{

		label: '\{\{non-free\}\}: article may contain excessive or improper use of copyrighted materials',

		value: 'non-free'

	},

	{

		label: '\{\{notability\}\}: article\'s subject may not meet the notability guideline',

		value: 'notability',

		subgroup: {

			name: 'notabillity',

			type: 'select',

			list: 

				{

					label: "\{\{notability|Academics\}\}: notability guideline for academics",

					value: "Academics"

				},

				{

					label: "\{\{notability|Biographies\}\}: notability guideline for biographies",

					value: "Biographies"

				},

				{

					label: "\{\{notability|Books\}\}: notability guideline for books",

					value: "Books"

				},

				{

					label: "\{\{notability|Companies\}\}: notability guideline for companies and organizations",

					value: "Companies"

				},

				{

					label: "\{\{notability|Episode\}\}: notability guideline for television episodes",

					value: "Episode"

				},

				{

					label: "\{\{notability|Fiction\}\}: notability guideline for fiction",

					value: "Fiction"

				},

				{

					label: "\{\{notability|Institutions\}\}: synonym of \"Companies\"",

					value: "Institutions"

				},

				{

					label: "\{\{notability|Music\}\}: notability guideline for music",

					value: "Music"

				},

				{

					label: "\{\{notability|Neologisms\}\}: notability guideline for neologisms",

					value: "Neologisms"

				},

				{

					label: "\{\{notability|Numbers\}\}: notability guideline for numbers",

					value: "Numbers"

				},

				{

					label: "\{\{notability|Organizations\}\}: synonym of \"Companies\"",

					value: "Organizations"

				},

				{

					label: "\{\{notability|Products\}\}: notability guideline for products and services",

					value: "Products"

				},

				{

					label: "\{\{notability|Web\}\}: notability guideline for web content",

					value: "Web"

				}

			

		}

	},

	{

		label: '\{\{npov\}\}: article does not maintain a neutral point of view',

		value: 'npov'

	},

	{

		label: '\{\{original research\}\}: article has original research or unverified claims',

		value: 'original research'

	},

	{

		label: '\{\{primarysources\}\}: article needs reliable, third-party sources',

		value: 'primarysources'

	},

	{ 

		label: '\{\{refimprove\}\}: article needs additional references or sources for verification',

		value: 'refimprove' 

	},

	{

		label: '\{\{self-published\}\}: article may contain improper references to self-published sources',

		value: 'self-published'

	},

	{

		label: '\{\{totally-disputed\}\}: article is not neutral and has questionable factual accuracy',

		value: 'totally-disputed'

	},

	{

		label: '\{\{unencyclopedic\}\}: article is unencyclopedic and should be deleted',

		value: 'unencyclopedic'

	},

	{

		label: '\{\{unreferenced\}\}: article has no references at all',

		value: 'unreferenced'

	},

	{

		label: '\{\{update\}\}: article information is out of date',

		value: 'update'

	},

	{

		label: '\{\{weasel\}\}: article quality may be compromised by the use of weasel words',

		value: 'weasel'

	}

];



friendlytag.noticeList = 

	{

		label: '\{\{current\}\}: article documents a current event',

		value: 'current',

		subgroup: {

			name: 'current',

			type: 'select',

			list: 

				{

					label: "\{\{current\}\}: article documents a current event",

					value: "current"

				},

				{

					label: "\{\{airng\}\}: program is currently airing",

					value: "airing"

				},

				{

					label: "\{\{bridge under construction\}\}: article contains information about a bridge currently under construction",

					value: "bridge under construction"

				},

				{

					label: "\{\{bridge under construction\}\}: article contains information about a building currently under construction",

					value: "building under construction"

				},

				{

					label: "\{\{current antics\}\}: person is currently participating in a reality television show",

					value: "current antics"

				},

				{

					label: "\{\{current bill\}\}: article documents proposed legislation that is currently being considered",

					value: "current bill"

				},

				{

					label: "\{\{current court case\}\}: article documents a current court case",

					value: "current court case"

				},

				{

					label: "\{\{current fiction\}\}: article is about a recently released work of fiction",

					value: "current fiction"

				},

				{

					label: "\{\{current game\}\}: article documents a current event in video gaming",

					value: "current game"

				},

				{

					label: "\{\{current person\}\}: article is about a person involved in a current event",

					value: "current person"

				},

				{

					label: "\{\{current product\}\}: article documents a recently released product",

					value: "current product"

				},

				{

					label: "\{\{current pw\}\}: article documents a current professional wrestling event",

					value: "current pw"

				},

				{

					label: "\{\{current spaceflight\}\}: article or section documents a current spaceflight",

					value: "current spaceflight"

				},

				{

					label: "\{\{current sport\}\}: article documents a current sports-related event",

					value: "current sport"

				},

				{

					label: "\{\{current sport delay\}\}: article documents a current sports-related event which may contain information not aired because of tape delay",

					value: "current sport delay"

				},

				{

					label: "\{\{current related\}\}: article is related to a current event",

					value: "current related"

				},

				{

					label: "\{\{current single\}\}: article documents a current single",

					value: "current single"

				},

				{

					label: "\{\{current territorial changes\}\}: article is subject to current territorial changes and may not represent up-to-date detail",

					value: "current territorial changes"

				},

				{

					label: "\{\{in space\}\}: article documents a person who is currently in space",

					value: "in space"

				},

				{

					label: "\{\{inland waterway under restoration\}\}: article contains information about an inland waterway currently under restoration",

					value: "inland waterway under restoration"

				},

				{

					label: "\{\{ongoing lawsuit\}\}: article documents an ongoing lawsuit",

					value: "ongoing lawsuit"

				},

				{

					label: "\{\{ongoing election\}\}: article contains information about an ongoing election",

					value: "ongoing election"

				},

				{

					label: "\{\{ongoing weather\}\}: article contains information about an ongoing meteorological event or phenomenon",

					value: "ongoing weather"

				},

				{

					label: "\{\{recent death\}\}: article is about a person who has recently died",

					value: "recent death"

				},

				{

					label: "\{\{recently convicted\}\}: article is about a person who has recently been convicted in a criminal case",

					value: "recently convicted"

				},

				{

					label: "\{\{road under construction\}\}: article contains information about a road currently under construction",

					value: "road under construction"

				}

			

		}

	},

	{

		label: '\{\{future\}\}: article is about scheduled or expected future events',

		value: 'future',

		subgroup: {

			name: 'future',

			type: 'select',

			list:  

				{

					label: "\{\{future\}\}: article is about scheduled or expected future events",

					value: "future"

				},

				{

					label: "Education",

					list: 

						{

							label: "\{\{future article\}\}: expected future articles",

							value: "future article"

						},

						{

							label: "\{\{future book\}\}: scheduled, forthcoming or expected future book(s)",

							value: "future book"

						},

						{

							label: "\{\{future museum\}\}: planned museum",

							value: "future museum"

						},

						{

							label: "\{\{future zoo exhibit\}\}: planned or expected new zoo exhibit",

							value: "future zoo exhibit"

						}

					

				},

				{

					label: "Engineering",

					list: 

						{

							label: "\{\{future building\}\}: expected future buildings or structures",

							value: "future building"

						},

						{

							label: "\{\{future chip\}\}: scheduled or expected future computer chips",

							value: "future chip"

						},

						{

							label: "\{\{future dam\}\}: planned or expected dam",

							value: "future dam"

						},

						{

							label: "\{\{future energy infrastructure\}\}: planned or expected future energy production, transmission, distribution or other energy related infrastructure",

							value: "future energy infrastructure"

						},

						{

							label: "\{\{future infrastructure\}\}: planned or expected future infrastructure",

							value: "future infrastructure"

						},

						{

							label: "\{\{future mine\}\}: planned or proposed future mine",

							value: "future mine"

						},

						{

							label: "\{\{future pipeline\}\}: planned or expected pipeline",

							value: "future pipeline"

						},

						{

							label: "\{\{future power plant\}\}: planned or expected power plant",

							value: "future power plant"

						},

						{

							label: "\{\{future scientific facility\}\}: expected future scientific facility",

							value: "future scientific facility"

						},

						{

							label: "\{\{future software\}\}: scheduled or expected future software",

							value: "future software"

						},

						{

							label: "\{\{future spaceflight\}\}: scheduled or expected spaceflight",

							value: "future spaceflight"

						},

						{

							label: "\{\{launching\}\}: rocket or spacecraft which is either currently in the process of launching, or is scheduled to launch within the next few days",

							value: "launching"

						},

						{

							label: "\{\{future web service\}\}: scheduled or expected Web service",

							value: "future web service"

						}

					

				},

				{

					label: "Entertainment",

					list: 

						{

							label: "\{\{future album\}\}: scheduled or expected album",

							value: "future album"

						},

						{

							label: "\{\{future amusement ride\}\}: planned or expected future amusement ride",

							value: "future amusement ride"

						},

						{

							label: "\{\{future awards show\}\}: upcoming awards show",

							value: "future awards show"

						},

						{

							label: "\{\{future channel\}\}: future television station, channel or network",

							value: "future channel"

						},

						{

							label: "\{\{future comic\}\}: scheduled or expected comic book release, or a series already in progress",

							value: "future comic"

						},

						{

							label: "\{\{future film\}\}: one or more scheduled or expected films",

							value: "future film"

						},

						{

							label: "\{\{future game\}\}: unreleased video game",

							value: "future game"

						},

						{

							label: "\{\{future music festival\}\}: upcoming music/arts festival",

							value: "future music festival"

						},

						{

							label: "\{\{future play article\}\}: upcoming play or musical",

							value: "future play article"

						},

						{

							label: "\{\{future radio\}\}: future radio station, radio network or radio show",

							value: "future radio"

						},

						{

							label: "\{\{future UK radio station\}\}: future radio station in the United Kingdom",

							value: "future UK radio station"

						},

						{

							label: "\{\{future single\}\}: scheduled or expected future single",

							value: "future single"

						},

						{

							label: "\{\{future television episode\}\}: scheduled upcoming television episode of an already-running TV series",

							value: "future television episode"

						},

						{

							label: "\{\{future television series\}\}: scheduled upcoming television series",

							value: "future television series"

						},

						{

							label: "\{\{future webcomic\}\}: scheduled or expected webcomic update/premiere, or a series already in progress",

							value: "future webcomic"

						}

					

				},

				{

					label: "Miscellaneous",

					list: 

						{

							label: "\{\{concept product\}\}: contains information about conceptual products",

							value: "concept product"

						},

						{

							label: "\{\{future election\}\}: forthcoming or ongoing election",

							value: "future election"

						},

						{

							label: "\{\{future election in the United States\}\}: upcoming or ongoing election in the United States",

							value: "future election in the United States"

						},

						{

							label: "\{\{future product\}\}: scheduled or expected future product",

							value: "future product"

						},

						{

							label: "\{\{future product small\}\}: (small) future product, and may contain unverified, unreliable, or incorrect information",

							value: "future product small"

						}

					

				},

				{

					label: "Transportation",

					list: 

						{

							label: "\{\{future aircraft\}\}: scheduled or anticipated future aircraft",

							value: "future aircraft"

						},

						{

							label: "\{\{future airline\}\}: planned or expected new airline",

							value: "future airline"

						},

						{

							label: "\{\{future airport\}\}: planned or expected new airport",

							value: "future airport"

						},

						{

							label: "\{\{future airport authority\}\}: planned or expected new airport authority",

							value: "future airport authority"

						},

						{

							label: "\{\{future airport expansion\}\}: planned or expected expansion of an existing airport",

							value: "future airport expansion"

						},

						{

							label: "\{\{future Australian public transportation\}\}: planned or expected public transportation infrastructure in Australia",

							value: "future Australian public transportation"

						},

						{

							label: "\{\{future automobile\}\}: scheduled or anticipated future automobile",

							value: "future automobile"

						},

						{

							label: "\{\{future bridge\}\}: planned or proposed future bridge",

							value: "future bridge"

						},

						{

							label: "\{\{future Canadian public transportation\}\}: planned or expected public transportation infrastructure in Canada",

							value: "future Canadian public transportation"

						},

						{

							label: "\{\{future Chinese public transportation\}\}: planned or expected public transportation infrastructure in China",

							value: "future Chinese public transportation"

						},

						{

							label: "\{\{concept automobile\}\}: concept automobile",

							value: "concept automobile"

						},

						{

							label: "\{\{future French public transportation\}\}: planned or expected public transportation infrastructure in France",

							value: "future French public transportation"

						},

						{

							label: "\{\{future London transport infrastructure\}\}: planned or expected London Transport infrastructure",

							value: "future London transport infrastructure"

						},

						{

							label: "\{\{future motorcycle\}\}: scheduled or anticipated future motorcycle",

							value: "future motorcycle"

						},

						{

							label: "\{\{future public transportation\}\}: planned or expected public transportation infrastructure",

							value: "future public transportation"

						},

						{

							label: "\{\{future railway station\}\}: planned or expected future railway station",

							value: "future railway station"

						},

						{

							label: "\{\{future road\}\}: planned or expected future road",

							value: "future road"

						},

						{

							label: "\{\{future tunnel\}\}: planned or expected future tunnel",

							value: "future tunnel"

						},

						{

							label: "\{\{future UK public transportation\}\}: planned or expected public transportation in the United Kingdom",

							value: "future UK public transportation"

						},

						{

							label: "\{\{future USA public transportation\}\}: proposed, planned, or expected public transportation infrastructure in the United States",

							value: "future USA public transportation"

						}

					

				},

				{

					label: "Sports",

					list: 

						{

							label: "\{\{future arena\}\}: planned or proposed arena",

							value: "future arena"

						},

						{

							label: "\{\{future motor sport\}\}: future motor sporting event or team",

							value: "future motor sport"

						},

						{

							label: "\{\{future pw\}\}: scheduled professional wrestling event that is taking place in the future",

							value: "future pw"

						},

						{

							label: "\{\{future sport\}\}: future sporting event or team",

							value: "future sport"

						},

						{

							label: "\{\{future sports venue\}\}: planned or expected sports venue",

							value: "future sports venue"

						},

						{

							label: "\{\{future stadium\}\}: planned or proposed stadium",

							value: "future stadium"

						}

					

				}

			

		}

	},

	{

		label: '\{\{inuse\}\}: article is undergoing a major edit for a short while',

		value: 'inuse' },

	{

		label: '\{\{underconstruction\}\}: article is currently in the middle of an expansion or major revamping',

		value: 'underconstruction' }

];





friendlytag.spellingList = 

	{

		label: '\{\{R from abbreviation\}\}: redirect from a title with an abbreviation',

		value: 'R from abbreviation' 

	},

	{

		label: '\{\{R to list entry\}\}: redirect to a \"list of minor entities\"-type article which is a collection of brief descriptions for subjects not notable enough to have separate articles',

		value: 'R to list entry' 

	},

	{

		label: '\{\{R to section\}\}: sames as \{\{R to list entry\}\}, but when list is more sectionlike in organization, such as list of fictional characters in a fictional universe.',

		value: 'R to section' 

	},

	{

		label: '\{\{R from misspelling\}\}: redirect from a misspelling or typographical error',

		value: 'R from misspelling' 

	},

	{

		label: '\{\{R from alternative spelling\}\}: redirect from a title with a different spelling',

		value: 'R from alternative spelling' 

	},

	{

		label: '\{\{R from plural\}\}: redirect from a plural word to the singular equivalent',

		value: 'R from plural' 

	},

	{

		label: '\{\{R from related word\}\}: redirect from a related word',

		value: 'R from related word' 

	},

	{

		label: '\{\{R with possibilities\}\}: redirect from a title for a topic more detailed than what is currently provided on the target page, or section of that page, hence something which can and should be expanded',

		value: 'R with possibilities' 

	},

	{

		label: '\{\{R from member\}\}: redirect from a person who is a member of a group to more general related topics, such as the group, organization, ensemble or team that he or she belongs to',

		value: 'R from member' 

	},

	{

		label: '\{\{R from other capitalisation\}\}: redirect from a title with another method of capitalisation',

		value: 'R from other capitalisation'

	}

];



friendlytag.alternativeList = 

	{

		label: '\{\{R from alternative name\}\}: redirect from a title that is another name, a pseudonym, a nickname, or a synonym',

		value: 'R from alternative name' 

	},

	{

		label: '\{\{R from historic name\}\}: redirect from a title that is another name, a pseudonym, a nickname, or a synonym that has a significant historic past as a region, state, principate\'s holding, city, city-state or such, but which region has been subsumed into a modern era municipality, district or state, or otherwise suffered from a name change over time',

		value: 'R from historic name' 

	},

	{

		label: '\{\{R from scientific name\}\}: redirect from the scientific name to the common name',

		value: 'R from scientific name' 

	},

	{

		label: '\{\{R to scientific name\}\}: redirect from the common name to the scientific name',

		value: 'R to scientific name' 

	},

	{

		label: '\{\{R from alternative language\}\}: redirect from an English name to a name in another language, or vice-versa',

		value: 'R from alternative language' 

	},

	{

		label: '\{\{R from ASCII\}\}: redirect from a title in basic ASCII to the formal article title, with differences that are not diacritical marks (accents, umlauts, etc.)',

		value: 'R from ASCII' 

	},

	{

		label: '\{\{R from title without diacritics\}\}: redirect to the article title with diacritical marks (accents, umlauts, etc.)',

		value: 'R from title without diacritics'

	}

];



friendlytag.administrativeList = 

	{

		label: '\{\{R to disambiguation page\}\}: redirect to a disambiguation page',

		value: 'R to disambiguation page' 

	},

	{

		label: '\{\{R for as of\}\}: redirect page affects an \"as of ...\" link',

		value: 'R for as of' 

	},

	{

		label: '\{\{R to decade\}\}: redirect from a year to the decade article',

		value: 'R to decade' 

	},

	{

		label: '\{\{R from shortcut\}\}: redirect from a Wikipedia shortcut',

		value: 'R from shortcut' 

	},

	{

		label: '\{\{R from CamelCase\}\}: redirect from a CamelCase title',

		value: 'R from CamelCase' 

	},

	{

		label: '\{\{R from EXIF\}\}: redirect of a wikilink created from JPEG EXIF information (i.e. the \"metadata\" section on some image description pages)',

		value: 'R from EXIF' 

	},

	{

		label: '\{\{R from school\}\}: redirect from a school article that had very little information',

		value: 'R from school'

	}

];



// Set to true if template can be grouped into {{articleissues}}

friendlytag.groupHash = {

	'cleanup': true,

	'confusing': true,

	'copyedit': true,

	'deadend': true,

	'essay-like': true,

	'expand': true,

	'expert': true,

	'in-universe': true,

	'internallinks': false,

	'introrewrite': true,

	'nofootnotes': false,

	'orphan': true,

	'plot': true,

	'sections': true,

	'tone': true,

	'toolong': true,

	'tooshort': true,

	'uncategorized': false,

	'verylong': true,

	'wikify': true,

	'advert': true,

	'autobiography': true,

	'coi': true,

	'context': true,

	'disputed': true,

	'hoax': false,

	'non-free': true,

	'notability': true,

	'npov': true,

	'original research': true,

	'primarysources': true,

	'refimprove': true,

	'self-published': true,

	'totally-disputed': false,

	'unencyclopedic': true,

	'unreferenced': true,

	'update': true,

	'weasel': true,

	'currentevent': false,

	'future': false,

	'inuse': false,

	'underconstruction': false

}



friendlytag.callbacks = {

	main: function( self ) {

		var form = self.responseXML.getElementById( 'editform' );

		var tagRe, text = '', summaryText = 'Added';

		var tags = new Array(), groupableTags = new Array();



		if( !isRedirect ) {

			// Check for preexisting tags and separate tags into groupable and non-groupable arrays

			Status.info( 'Info', 'Checking for preexisting tags on the article' );

			for( var i = 0; i < self.params.tags.length; i++ ) {

				tagRe = new RegExp( '(\\{\\{' + self.params.tagsi + '(\\||\\}\\}))', 'im' );

				if( !tagRe.exec( form.wpTextbox1.value ) ) {

					if( friendlytag.groupHash self.params.tagsi  ) {

						groupableTags = groupableTags.concat( self.params.tagsi );

					} else {

						tags = tags.concat( self.params.tagsi );

					}

				} else {

					Status.info( 'Info', 'Found \{\{' + self.params.tagsi

						+ '\}\} on the article already...excluding' );

				}

			}



			if( self.params.group && groupableTags.length > 3 ) {

				Status.info( 'Info', 'Grouping supported tags into \{\{articleissues\}\}' );



				groupableTags.sort();

				text += '\{\{articleissues';

				summaryText += ' \{\{articleissues\}\} with parameters';

				for( var i = 0; i < groupableTags.length; i++ ) {

					text += '|' + groupableTagsi

					+ '=\{\{subst:CURRENTMONTHNAME\}\} \{\{subst:CURRENTYEAR\}\}';



					if( i == (groupableTags.length - 1) ) {

						summaryText += ' and';

					} else if ( i < (groupableTags.length - 1) && i != 0 ) {

						summaryText += ',';

					}

					summaryText += ' ' + groupableTagsi];

				}

				text += '\}\}\n';

			} else {

				tags = tags.concat( groupableTags );

			}

		} else {

			// Check for preexisting tags

			Status.info( 'Info', 'Checking for preexisting tags on the redirect' );

			for( var i = 0; i < self.params.tags.length; i++ ) {

				tagRe = new RegExp( '(\\{\\{' + self.params.tagsi + '(\\||\\}\\}))', 'im' );

				if( !tagRe.exec( form.wpTextbox1.value ) ) {

					tags = tags.concat( self.params.tagsi );

				} else {

					Status.info( 'Info', 'Found \{\{' + self.params.tagsi

						+ '\}\} on the redirect already...excluding' );

				}

			}

		}



		tags.sort();

		for( var i = 0; i < tags.length; i++ ) {

			if( tagsi != 'uncategorized' ) {

				if( tagsi == 'current' ) {

					text += '\{\{' + self.params.currentSubcategory;

				} else if( tagsi == 'future' ) {

					text += '\{\{' + self.params.futureSubcategory;

				} else {

					text += ( isRedirect ? '\n' : '' ) + '\{\{' + tagsi];

				}



				if( tagsi == 'notability' && self.params.notabilitySubcategory != 'none' ) {

					text += '|' + self.params.notabilitySubcategory;

				}



				text += isRedirect ? '\}\}' : '|date=\{\{subst:CURRENTMONTHNAME\}\} \{\{subst:CURRENTYEAR\}\}\}\}\n';

			} else {

				form.wpTextbox1.value += '\n\n\{\{' + tagsi

				+ '|date=\{\{subst:CURRENTMONTHNAME\}\} \{\{subst:CURRENTYEAR\}\}\}\}';

			}



			if( i == (tags.length - 1) && ( i > 0 || groupableTags.length > 3 ) ) {

				summaryText += ' and';

			} else if ( i < (tags.length - 1) && ( i != 0 || groupableTags.length > 3 ) ) {

				summaryText += ',';

			}



			summaryText += ' \{\{[[Template:';

			if( tagsi == 'current' ) {

				summaryText += self.params.currentSubcategory + '|' + self.params.currentSubcategory;

			} else if( tagsi == 'future' ) {

				summaryText += self.params.futureSubcategory + '|' + self.params.futureSubcategory;

			} else {

				summaryText += tagsi + '|' + tagsi];

			}

			summaryText += ']]\}\}';

		}



		if( !isRedirect ) {

			text += form.wpTextbox1.value;

		} else {

			text = form.wpTextbox1.value + text;

		}

		summaryText += ' tag' + ( ( tags.length + ( groupableTags.length > 3 ? 1 : 0 ) ) > 1 ? 's' : '' )

		+ ' to ' + ( isRedirect ? 'redirect.' : 'article.' ) + FriendlyConfig.summaryAd;



		var postData = {

			'wpMinoredit': FriendlyConfig.markTaggedPagesAsMinor ? 1 : undefined,

			'wpWatchthis': form.wpWatchthis.checked ? 1 : (FriendlyConfig.watchTaggedPages ? 1 : undefined),

			'wpStarttime': form.wpStarttime.value,

			'wpEdittime': form.wpEdittime.value,

			'wpAutoSummary': form.wpAutoSummary.value,

			'wpEditToken': form.wpEditToken.value,

			'wpSummary': summaryText,

			'wpTextbox1': text

		};



		self.post( postData );

	}

}



friendlytag.callback.evaluate = function friendlytagCallbackEvaluate(e) {

	var form = e.target;

	if( isRedirect ) {

		var tags = form.getChecked( 'administrative' ).concat( form.getChecked( 'alternative' ) ).concat( form.getChecked( 'spelling' ) );

	} else {

		var tags = form.getChecked( 'notice' ).concat( form.getChecked( 'problem' ) ).concat( form.getChecked( 'maintenance' ) );

	}

	var params;



	if( tags.length == 0 ) {

		alert( 'You must select at least one tag!' );

		return;

	}

	var notabilitySubcategory = form.getChecked( 'problem.notability' );

	var currentSubcategory = form.getChecked( 'notice.current' );

	var futureSubcategory = form.getChecked( 'notice.future' );

	if( !isRedirect ) {

		params = {

			tags: tags,

			group: form.group.checked,

			notabilitySubcategory: notabilitySubcategory ? notabilitySubcategory0 : null,

			currentSubcategory: currentSubcategory ? currentSubcategory0 : null,

			futureSubcategory: futureSubcategory ? futureSubcategory0 : null,

		}

	} else {

		params = {

			tags: tags

		}

	}



	Status.init( form );



	var query = { 

		'title': wgPageName, 

		'action': 'submit'

	};

	Wikipedia.actionCompleted.redirect = wgPageName;

	Wikipedia.actionCompleted.notice = "Tagging complete, reloading article in some seconds";

	var wikipedia_wiki = new Wikipedia.wiki( 'Article modification', query, friendlytag.callbacks.main );

	wikipedia_wiki.params = params;

	wikipedia_wiki.get();

}

Videos

Youtube | Vimeo | Bing

Websites

Google | Yahoo | Bing

Encyclopedia

Google | Yahoo | Bing

Facebook