User:Ou0430/Friendly/friendlycsd.js

维基新闻,自由的新闻源

注意:在发布之后,您可能需要清除浏览器缓存才能看到所作出的变更的影响。

  • Firefox或Safari:按住Shift的同时单击刷新,或按Ctrl-F5Ctrl-R(Mac为⌘-R
  • Google Chrome:Ctrl-Shift-R(Mac为⌘-Shift-R
  • Internet Explorer或Edge:按住Ctrl的同时单击刷新,或按Ctrl-F5
  • Opera:Ctrl-F5
//Code pasted from [[:en:WP:TW]] and localized.

// 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.deletionSummaryAd (string)
 If ad should be added or not to deletion summary, default [[WP:FRIENDLY|Friendly]]
 */
if( typeof( FriendlyConfig.deletionSummaryAd ) == 'undefined' ) {
 	FriendlyConfig.deletionSummaryAd = " using [[WP:FRIENDLY|Friendly]]";
}
 
/**
 FriendlyConfig.watchSpeedyPages (array)
 What types of actions that should result in forced addition to watchlist
 */
if( typeof( FriendlyConfig.watchSpeedyPages ) == 'undefined' ) {
 	FriendlyConfig.watchSpeedyPages = [];
}
 
/**
 FriendlyConfig.markSpeedyPagesAsMinor (boolean)
 If, when applying speedy template to page, to mark the edit as minor, default true
 */
if( typeof( FriendlyConfig.markSpeedyPagesAsMinor ) == 'undefined' ) {
 	FriendlyConfig.markSpeedyPagesAsMinor = false;
}
 
/**
 FriendlyConfig.markSpeedyPagesAsPatrolled (boolean)
 If, when applying speedy template to page, to mark the page as patrolled, default true
 */
if( typeof( FriendlyConfig.markSpeedyPagesAsPatrolled ) == 'undefined' ) {
 	FriendlyConfig.markSpeedyPagesAsPatrolled = true;
}
 
/**
 FriendlyConfig.notifyUserOnSpeedyDeletionNomination (array of strings)
 What types of actions that should result that the author of the page should be notified of nomination
 */
if( typeof( FriendlyConfig.notifyUserOnSpeedyDeletionNomination ) == 'undefined' ) {
 	FriendlyConfig.notifyUserOnSpeedyDeletionNomination = ['g1', 'g2', 'g3', 'g5', 'g11', 'g12', 'g13', 'g14', 'a1', 'a2', 'a3', 'r4'];
}
 
/**
 FriendlyConfig.welcomeUserOnSpeedyDeletionNotification (array of strings)
 On what types of speedy deletion notifications shall the user be welcomed
 with a {{firstarticle}} notice if his talk page has not yet been created.
 */
if( typeof( FriendlyConfig.welcomeUserOnSpeedyDeletionNotification ) == 'undefined' ) {
 	FriendlyConfig.welcomeUserOnSpeedyDeletionNotification = FriendlyConfig.notifyUserOnSpeedyDeletionNomination;
}

/**
 FriendlyConfig.openUserTalkPageOnSpeedyDelete (array of strings)
 What types of actions that should result user talk page to be opened when speedily deleting (admin only)
 */
if( typeof( FriendlyConfig.openUserTalkPageOnSpeedyDelete ) == 'undefined' ) {
 	FriendlyConfig.openUserTalkPageOnSpeedyDelete = [/* 'g1', 'g2', 'g3', 'g4', 'g5', 'g10', 'g11', 'g12', 'a1', 'a3', 'a7', 'a9', 'f3', 'f4', 'f5', 'f6', 'f7', 'f9', 'f11', 'u3', 't2' */];
}

/**
 FriendlyConfig.userTalkPageMode may take arguments:
 'window': open a new window, remmenber the opened window
 'tab': opens in a new tab, if possible.
 'blank': force open in a new window, even if a such window exist
 */
if( typeof( FriendlyConfig.userTalkPageMode ) == 'undefined' ) {
 	FriendlyConfig.userTalkPageMode = 'tab';
}
 
/**
 FriendlyConfig.deleteTalkPageOnDelete (boolean)
 If talk page if exists should also be deleted (CSD G8) when spedying a page (admin only)
 */
if( typeof( FriendlyConfig.deleteTalkPageOnDelete ) == 'undefined' ) {
 	FriendlyConfig.deleteTalkPageOnDelete = true;
}
 
/**
 FriendlyConfig.orphanNormalPagesOnSpeedyDelete (hash)
 Defines if all backlinks to a page should be removed.
 property 'exclude' defined actions not to orphan
 */
if( typeof( FriendlyConfig.orphanBacklinksOnSpeedyDelete ) == 'undefined' ) {
 	FriendlyConfig.orphanBacklinksOnSpeedyDelete = { orphan:false };
}

/**
 FriendlyConfig.checkDeleteDup (boolean)
 */
if( typeof( FriendlyConfig.checkDeleteDup ) == 'undefined' ) {
 	FriendlyConfig.checkDeleteDup = true;
}

function friendlyspeedy() {
 	if( wgNamespaceNumber < 0 || wgCurRevisionId == false ) {
 	 	return;
 	}
 	if( userIsInGroup( 'sysop' ) ) {
 	 	twAddPortletLink( "javascript:friendlyspeedy.callback()", "速刪", "friendly-csd", "快速刪除", "");
 	} else if ( userIsInGroup( 'autoconfirmed' ) ) {
 	 	twAddPortletLink( "javascript:friendlyspeedy.callback()", "速刪", "friendly-csd", "請求快速刪除", "");
 	}
 	else
 	{
 	 	twAddPortletLink( 'javascript:alert("您必須首先達到自動確認。");', "速刪", "friendly-csd", "請求快速刪除", "");
 	}
}
$(friendlyspeedy);
 
friendlyspeedy.callback = function friendlyspeedycallback() {
	var Window = new SimpleWindow( 800, 500 );
	Window.setTitle( "選擇快速刪除的標準" );

	var form = new QuickForm( userIsInGroup( 'sysop' ) ? friendlyspeedy.callback.evaluateSysop : friendlyspeedy.callback.evaluateUser, 'change' );
	var notalk = (document.evaluate( '//div[@id="head"]//div[@id="left-navigation"]//div[@id="namespaces"]//ul//li[@class="new"]', document, null,  XPathResult.STRING_TYPE, null ).stringValue.length != 0) || (wgNamespaceNumber % 2 == 1)
 	if( userIsInGroup( 'sysop' ) ) {
 	 	form.append( {
 	 	 	 	type: 'checkbox',
 	 	 	 	list: [
 	 	 	 	 	{
 	 	 	 	 	 	label: '僅標記',
 	 	 	 	 	 	value: 'tag_only',
 	 	 	 	 	 	name: 'tag_only',
 	 	 	 	 	 	checked: (document.getElementById("speedy-delete") == null),
 	 	 	 	 	 	event: function( event ) {
 	 	 	 	 	 	 	event.target.form.orphan_backlinks.disabled = event.target.checked;
 	 	 	 	 	 	 	event.target.form.delete_talk.disabled = (event.target.checked || notalk || wgNamespaceNumber == 2);
 	 	 	 	 	 	 	event.stopPropagation();
 	 	 	 	 	 	}
 	 	 	 	 	},
 	 	 	 	 	{
 	 	 	 	 	 	label: '移除鏈入',
 	 	 	 	 	 	value: 'orphan_backlinks',
 	 	 	 	 	 	name: 'orphan_backlinks',
 	 	 	 	 	 	disabled: (document.getElementById("speedy-delete") == null),
 	 	 	 	 	 	checked: FriendlyConfig.orphanBacklinksOnSpeedyDelete.orphan,
 	 	 	 	 	 	event: function( event ) {
 	 	 	 	 	 	 	FriendlyConfig.orphanBacklinksOnSpeedyDelete.orphan = event.target.checked;
 	 	 	 	 	 	 	event.stopPropagation();
 	 	 	 	 	 	}
 	 	 	 	 	},
 	 	 	 	 	{
 	 	 	 	 	 	label: '刪除討論頁',
 	 	 	 	 	 	value: 'delete_talk',
 	 	 	 	 	 	name: 'delete_talk',
 	 	 	 	 	 	disabled: notalk || (document.getElementById("speedy-delete") == null) || wgNamespaceNumber == 2,
 	 	 	 	 	 	checked: FriendlyConfig.deleteTalkPageOnDelete && wgNamespaceNumber != 2,
 	 	 	 	 	 	event: function( event ) {
 	 	 	 	 	 	 	FriendlyConfig.deleteTalkPageOnDelete = event.target.checked;
 	 	 	 	 	 	 	event.stopPropagation();
 	 	 	 	 	 	}
 	 	 	 	 	}
 	 	 	 	]
 	 	 	} );
 	}
 
 	form.append( {
 	 	 	type: 'checkbox',
 	 	 	list: [
 	 	 	 	{
 	 	 	 	 	label: '如果可能,通知創建者',
 	 	 	 	 	value: 'notify',
 	 	 	 	 	name: 'notify',
 	 	 	 	 	checked: true,
 	 	 	 	 	//disabled: userIsInGroup( 'sysop' ),
 	 	 	 	 	event: function( event ) {
 	 	 	 	 	 	event.stopPropagation();
 	 	 	 	 	}
 	 	 	 	}
 	 	 	]
 	 	}
 	);
 	if( wgNamespaceNumber ==  Namespace.IMAGE ) {
 	 	form.append( {type:'header', label:'文件' } );
 	 	form.append ( {
 	 	 	 	type: 'radio',
 	 	 	 	name: 'csd',
 	 	 	 	list: [
 	 	 	 	 	{ 
 	 	 	 	 	 	label: 'F1: 重複的文件,而且所有的鏈入連接已經被修改為指向保留的文件',
 	 	 	 	 	 	value: 'f1'
 	 	 	 	 	},
 	 	 	 	 	{
 	 	 	 	 	 	label: 'F5: 被高分辨率與SVG文件取代的圖片',
 	 	 	 	 	 	value: 'f5',
 	 	 	 	 	},
 	 	 	 	 	{
 	 	 	 	 	 	label: 'F6: 孤立而沒有被條目使用的非自由版權文件',
 	 	 	 	 	 	value: 'f6',
 	 	 	 	 	},
 	 	 	 	 	{
 	 	 	 	 	 	label: 'F7: 被維基共享資源文件取代的文件',
 	 	 	 	 	 	value: 'f7'
 	 	 	 	 	}
 	 	 	 	]
 	 	 	} );
 	}
 
 	form.append( { type:'header', label:'常規' } );
 	form.append( {
 	 	 	type: 'radio',
 	 	 	name: 'csd',
 	 	 	list: [
 	 	 	 	{ 
 	 	 	 	 	label: 'G1: 沒有實際內容或歷史紀錄的文章', 
 	 	 	 	 	value: 'g1',
 	 	 	 	},
 	 	 	 	{ 
 	 	 	 	 	label: 'G2: 這是一個測試頁',
 	 	 	 	 	value: 'g2'
 	 	 	 	},
 	 	 	 	{ 
 	 	 	 	 	label: 'G3: 純粹破壞',
 	 	 	 	 	value: 'g3'
 	 	 	 	},
 	 	 	 	{
 	 	 	 	 	label: 'G5: 曾經根據各項存廢討論被除刪除後又重新創建的內容', 
 	 	 	 	 	value: 'g5'
 	 	 	 	},
 	 	 	 	{
 	 	 	 	 	label: 'G10: 原作者清空頁面或提出刪除,且貢獻者只有一人',
 	 	 	 	 	value: 'g10'
 	 	 	 	},
 	 	 	 	{
 	 	 	 	 	label: 'G11: 其內容僅僅是聯繫信息,或明顯以廣告宣傳為目的建立的頁面',
 	 	 	 	 	value: 'g11'
 	 	 	 	},
 	 	 	 	{
 	 	 	 	 	label: 'G12: 並未列明來源及負面語調的人物傳記',
 	 	 	 	 	value: 'g12'
 	 	 	 	},
 	 	 	 	{
 	 	 	 	 	label: 'G13: 明顯的、拙劣的機器翻譯',
 	 	 	 	 	value: 'g13'
 	 	 	 	},
 	 	 	 	{
 	 	 	 	 	label: 'G14: 超過兩周沒有進行任何翻譯的非現代標準漢語頁面',
 	 	 	 	 	value: 'g14'
 	 	 	 	},
 	 	 	 	{
 	 	 	 	 	label: 'G15: 孤立頁面',
 	 	 	 	 	value: 'g15'
 	 	 	 	},
 	 	 	 	{
 	 	 	 	 	label: 'G16: 臨時頁面依然侵權',
 	 	 	 	 	value: 'g16'
 	 	 	 	}
 	 	 	]
 	 	});
 	if( wgNamespaceNumber ==  0 ) {
 	 	form.append( { type:'header', label: '條目' } );
 	 	form.append( {
 	 	 	type: 'radio',
 	 	 	name: 'csd',
 	 	 	list: [
 	 	 	 	{
 	 	 	 	 	label: 'A1: 非常短,而且沒有定義或內容',
 	 	 	 	 	value: 'a1'
 	 	 	 	},
 	 	 	 	{
 	 	 	 	 	label: 'A2: 內容只包括外部連接、參見、圖書參考、類別標籤、模板標籤、跨語言連接的條目',
 	 	 	 	 	value: 'a2'
 	 	 	 	},
 	 	 	 	{
 	 	 	 	 	label: 'A3: 複製自其他中文維基計劃,或是與其他中文維基計劃內容相同的文章',
 	 	 	 	 	value: 'a3'
 	 	 	 	}
 	 	 	]
 	 	} );
 	} 
 	form.append( { type:'header', label: '重定向' } );
 	form.append( {
 	 	 	type: 'radio',
 	 	 	name: 'csd',
 	 	 	list: [
 	 	 	 	{ 
 	 	 	 	 	label: 'R2: 跨命名空間重定向', 
 	 	 	 	 	value: 'r2'
 	 	 	 	},
 	 	 	 	{ 
 	 	 	 	 	label: 'R3: 拼寫錯誤的新頁面', 
 	 	 	 	 	value: 'r3'
 	 	 	 	},
 	 	 	 	{ 
 	 	 	 	 	label: 'R4: 故意破壞的結果', 
 	 	 	 	 	value: 'r4'
 	 	 	 	},
 	 	 	 	{ 
 	 	 	 	 	label: 'R5: 指向本身的重定向或循環的重定向', 
 	 	 	 	 	value: 'r5'
 	 	 	 	}
 	 	 	]
 	 	} );
 	if( wgNamespaceNumber ==  14 || wgNamespaceNumber == 15 ) {
 	 	form.append( { type:'header', label: '分類' } );
 	 	form.append( {
 	 	 	type: 'radio',
 	 	 	name: 'csd',
 	 	 	list: [
 	 	 	 	{ 
 	 	 	 	 	label: 'O4: 空的類別',
 	 	 	 	 	value: 'o4'
 	 	 	 	}
 	 	 	]
 	 	} );
 	} if( wgNamespaceNumber ==  2 || wgNamespaceNumber == 3 ) {
 	 	form.append( { type:'header', label: '用戶頁' } );
 	 	form.append( {
 	 	 	type: 'radio',
 	 	 	name: 'csd',
 	 	 	list: [
 	 	 	 	{
 	 	 	 	 	label: 'O1: 用戶請求刪除的他們自己的用戶頁子頁面',
 	 	 	 	 	value: 'o1'
 	 	 	 	},
 	 	 	 	{
 	 	 	 	 	label: 'O3: 匿名用戶的用戶討論頁,其中的內容不再有用',
 	 	 	 	 	value: 'o3'
 	 	 	 	}
 	 	 	]
 	 	} );
 	}
 
 	var result = form.render();
 	Window.setContent( result );
 	Window.display();
}
 
friendlyspeedy.normalizeHash = {
 	'g1': 'g1',
 	'g2': 'g2',
 	'g3': 'g3',
 	'g5': 'g5',
 	'g10': 'g10',
 	'g11': 'g11',
 	'g12': 'g12',
 	'g13': 'g13',
 	'g14': 'g14',
 	'g15': 'g15',
 	'g16': 'g16',
 	'a1': 'a1',
 	'a2': 'a2',
 	'a3': 'a3',
 	'r2': 'r2',
 	'r3': 'r3',
 	'r5': 'r5',
 	'f1': 'f1',
 	'f5': 'f5',
 	'f6': 'f6',
 	'f7': 'f7',
 	'o1': 'o1',
 	'o3': 'o3',
 	'o4': 'o4'
};
 
friendlyspeedy.reasonHash = {
 	'g1': '無實際內容',
 	'g2': '測試頁',
 	'g3': '破壞',
 	'g4': '非常短而無定義或內容',
 	'g5': '曾經依存廢討論被刪除的重建內容',
 	'g7': '與其他中文維基計劃內容相同的文章',
 	'g8': '刪除以便移動',
 	'g10': '作者請求',
 	'g11': '廣告或宣傳',
 	'g12': '未列明來源或違反[[Wikipedia:生者傳記]]的負面內容',
 	'g13': '明顯且拙劣的機器翻譯',
 	'g14': '超過兩周沒有翻譯的非現代標準漢語頁面',
 	'g15': '孤立頁面',
 	'g16': '臨時頁面依然侵權',
 	'a1': '非常短而無定義或內容',
 	'a2': '內容只包含參考、鏈接、模板或/及分類',
 	'a3': '與其他中文維基計劃內容相同的文章',
 	'r2': '跨名字空間重定向',
 	'r3': '名稱錯誤的重定向',
 	'r4': '重定向破壞',
 	'r5': '指向本身的重定向或循環的重定向',
 	'o1': '用戶請求刪除自己的用戶頁',
 	'o3': '匿名用戶的討論頁', 
 	'o4': '空的類別',
 	'f1': '重複的圖片',
 	'f5': '已有圖片取代',
 	'f6': '孤立而沒有被條目使用的非自由版權圖片',
 	'f7': '與維基共享資源重複的檔案'
};
 
friendlyspeedy.callbacks = {
 	sysop: {
 	 	main: function( self ) {
 	 	 	var xmlDoc = self.responseXML;
 	 	 	var normal = xmlDoc.evaluate( '//normalized/n/@to', xmlDoc, null, XPathResult.STRING_TYPE, null ).stringValue;
 	 	 	if( normal ) {
 	 	 	 	wgPageName = normal;
 	 	 	}
 	 	 	var exists = xmlDoc.evaluate( 'boolean(//pages/page[not(@missing)])', xmlDoc, null, XPathResult.BOOLEAN_TYPE, null ).booleanValue;
 
 	 	 	if( ! exists ) {
 	 	 	 	self.statelem.error( "頁面不存在,可能已被刪除" );
 	 	 	 	return;
 	 	 	}
 
 	 	 	if( self.params.openusertalk ) {
 	 	 	 	// Open talk page of first contributor
 	 	 	 	var query = {
 	 	 	 	 	'action': 'query',
 	 	 	 	 	'prop': 'revisions',
 	 	 	 	 	'titles': wgPageName,
 	 	 	 	 	'rvlimit': 1,
 	 	 	 	 	'rvprop': 'user',
 	 	 	 	 	'rvdir': 'newer'
 	 	 	 	}
 
 	 	 	 	var wikipedia_api = new Wikipedia.api( '抓創建者信息', query, friendlyspeedy.callbacks.sysop.openUserTalkPage );
 	 	 	 	wikipedia_api.params = self.params;
 	 	 	 	wikipedia_api.post();
 	 	 	}
 
 	 	 	var query = { 
 	 	 	 	'title': wgPageName, 
 	 	 	 	'action': 'delete'
 	 	 	};
 
 	 	 	var wikipedia_wiki = new Wikipedia.wiki( '刪除頁面', query, friendlyspeedy.callbacks.sysop.deletePage );
 	 	 	wikipedia_wiki.params = self.params;
 	 	 	wikipedia_wiki.followRedirect = false;
 	 	 	wikipedia_wiki.get();
 
 	 	 	if( 
 	 	 	 	FriendlyConfig.deleteTalkPageOnDelete && 
 	 	 	 	self.params.normalized != 'f7' &&
 	 	 	 	wgNamespaceNumber % 2 == 0 && 
 	 	 	 	wgNamespaceNumber != 2 && 
 	 	 	 	document.getElementById( 'ca-talk' ).className != 'new' 
 	 	 	) {
 	 	 	 	var talk_page = namespaces[ wgNamespaceNumber  + 1 ] + ':' + wgTitle;
 	 	 	 	var query = query = {
 	 	 	 	 	'title': talk_page,
 	 	 	 	 	'action': 'delete'
 	 	 	 	};
 	 	 	 	var wikipedia_wiki = new Wikipedia.wiki( '刪除討論頁', query, friendlyspeedy.callbacks.sysop.deleteTalkPage );
 	 	 	 	wikipedia_wiki.params = self.params;
 	 	 	 	wikipedia_wiki.followRedirect = false;
 	 	 	 	wikipedia_wiki.get();
 	 	 	}

 	 	 	// Notification to first contributor
 	 	 	var query = {
 	 	 	 	'action': 'query',
 	 	 	 	'prop': 'revisions',
 	 	 	 	'titles': wgPageName,
 	 	 	 	'rvlimit': 1,
 	 	 	 	'rvprop': 'user',
 	 	 	 	'rvdir': 'newer'
 	 	 	}
 	 	 	var callback = function( self ) {
 	 	 	 	var xmlDoc = self.responseXML;
 	 	 	 	var user = xmlDoc.evaluate( '//rev/@user', xmlDoc, null, XPathResult.STRING_TYPE, null ).stringValue;
 	 	 	 	if( wgPageName != ( 'User talk:' + user ) ) {
 	 	 	 	 	var query = {
 	 	 	 	 	 	'title': 'User talk:' + user,
 	 	 	 	 	 	'action': 'submit'
 	 	 	 	 	};
 	 	 	 	 	var wikipedia_wiki = new Wikipedia.wiki( '通知頁面創建者' + user, query, friendlyspeedy.callbacks.user.userNotification );
 	 	 	 	 	wikipedia_wiki.params = self.params;
 	 	 	 	 	wikipedia_wiki.get();
 	 	 	 	} else {
 	 	 	 	 	Status.info( '信息', '當前頁面為創建者討論頁,取消通知' );
 	 	 	 	}
 	 	 	}
 
 	 	 	if( self.params.usertalk ) {
 	 	 	 	var wikipedia_api = new Wikipedia.api( '抓創建者信息', query, callback );
 	 	 	 	wikipedia_api.params = self.params;
 	 	 	 	wikipedia_api.post();
 	 	 	}
 
 	 	 	if( wgNamespaceNumber == 6 && self.params.normalized != 'f7' ) {
 	 	 	 	var query = {
 	 	 	 	 	'action': 'query',
 	 	 	 	 	'list': 'imageusage',
 	 	 	 	 	'titles': wgPageName,
 	 	 	 	 	'iulimit': userIsInGroup( 'sysop' ) ? 5000 : 500 // 500 is max for normal users, 5000 for bots and sysops
 	 	 	 	};
 	 	 	 	var wikipedia_api = new Wikipedia.api( '抓圖像鏈接', query, friendlyspeedy.callbacks.sysop.unlinkImageInstancesMain );
 	 	 	 	wikipedia_api.params = self.params;
 	 	 	 	wikipedia_api.post();
 	 	 	}
 	 	 	var doOrphan = FriendlyConfig.orphanBacklinksOnSpeedyDelete;
 	 	 	if( 
 	 	 	 	doOrphan.orphan && 
 	 	 	 	doOrphan.exclude.indexOf( self.params.normalized.toLowerCase() ) == -1 
 	 	 	) {
 	 	 	 	var query = {
 	 	 	 	 	'action': 'query',
 	 	 	 	 	'list': 'backlinks',
 	 	 	 	 	'blfilterredir': 'nonredirects',
 	 	 	 	 	'bltitle': wgPageName,
 	 	 	 	 	'bllimit': userIsInGroup( 'sysop' ) ? 5000 : 500, // 500 is max for normal users, 5000 for bots and sysops
 	 	 	 	 	'blnamespace': [0, 100] // Main namespace and portal namespace only, keep on talk pages.
 	 	 	 	};
 	 	 	 	var wikipedia_api = new Wikipedia.api( '抓鏈入信息', query, friendlyspeedy.callbacks.sysop.unlinkBacklinksMain );
 	 	 	 	wikipedia_api.params = self.params;
 	 	 	 	wikipedia_api.post();
 	 	 	}
 	 	 	var query = {
 	 	 	 	'action': 'query',
 	 	 	 	'list': 'backlinks',
 	 	 	 	'blfilterredir': 'redirects',
 	 	 	 	'bltitle': wgPageName,
 	 	 	 	'bllimit': userIsInGroup( 'sysop' ) ? 5000 : 500 // 500 is max for normal users, 5000 for bots and sysops
 	 	 	};
 	 	 	var wikipedia_api = new Wikipedia.api( '抓重定向信息', query, friendlyspeedy.callbacks.sysop.deleteRedirectsMain );
 	 	 	wikipedia_api.params = self.params;
 	 	 	wikipedia_api.post();
 
 	 	},
 	 	openUserTalkPage: function( self ) {
 	 	 	var xmlDoc = self.responseXML;
 	 	 	var user = xmlDoc.evaluate( '//rev/@user', xmlDoc, null, XPathResult.STRING_TYPE, null ).stringValue;
 	 	 	var statusIndicator = new Status('開啟用戶' + user, '的討論頁');
 
 	 	 	var query = {
 	 	 	 	'title': 'User talk:' + user,
 	 	 	 	'action': 'edit',
 	 	 	 	'preview': 'yes',
 	 	 	 	'vanarticle': wgPageName.replace(/_/g, ' ')
 	 	 	};
 	 	 	switch( FriendlyConfig.userTalkPageMode ) {
 	 	 	case 'tab':
 	 	 	 	window.open( mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?' + QueryString.create( query ), '_tab' );
 	 	 	 	break;
 	 	 	case 'blank':
 	 	 	 	window.open( mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?' + QueryString.create( query ), '_blank', 'location=no,toolbar=no,status=no,directories=no,scrollbars=yes,width=1200,height=800' );
 	 	 	 	break;
 	 	 	case 'window':
 	 	 	 	default :
 	 	 	 	window.open( mw.config.get('wgServer') + mw.config.get('wgScriptPath') + '/index.php?' + QueryString.create( query ), 'Friendlywarnwindow', 'location=no,toolbar=no,status=no,directories=no,scrollbars=yes,width=1200,height=800' );
 	 	 	 	break;
 	 	 	}
 
 	 	 	statusIndicator.info( '完成' );
 	 	},
 	 	unlinkBacklinksMain: function( self ) {
 	 	 	var xmlDoc = self.responseXML;
 	 	 	var snapshot = xmlDoc.evaluate('//backlinks/bl/@title', xmlDoc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
 
 	 	 	if( snapshot.snapshotLength == 0 ) {
 	 	 	 	return;
 	 	 	}
 
 	 	 	var statusIndicator = new Status('移除鏈入', '0%');
 
 	 	 	var total = snapshot.snapshotLength * 2;
 
 	 	 	var onsuccess = function( self ) {
 	 	 	 	var obj = self.params.obj;
 	 	 	 	var total = self.params.total;
 	 	 	 	var now = parseInt( 100 * ++(self.params.current)/total ) + '%';
 	 	 	 	obj.update( now );
 	 	 	 	self.statelem.unlink();
 	 	 	 	if( self.params.current >= total ) {
 	 	 	 	 	obj.info( now + ' (完成)' );
 	 	 	 	 	Wikipedia.removeCheckpoint();
 	 	 	 	}
 	 	 	}
 	 	 	var onloaded = onsuccess;
 
 	 	 	var onloading = function( self ) {}
 
 
 	 	 	Wikipedia.addCheckpoint();
 	 	 	if( snapshot.snapshotLength == 0 ) {
 	 	 	 	statusIndicator.info( '100% (完成)' );
 	 	 	 	Wikipedia.removeCheckpoint();
 	 	 	 	return;
 	 	 	}
 
 	 	 	var params = clone( self.params );
 	 	 	params.current = 0;
 	 	 	params.total = total;
 	 	 	params.obj = statusIndicator;
 	 	 	params.page = wgPageName;
 
 
 	 	 	for ( var i = 0; i < snapshot.snapshotLength; ++i ) {
 	 	 	 	var title = snapshot.snapshotItem(i).value;
 	 	 	 	var query = {
 	 	 	 	 	'title': title,
 	 	 	 	 	'action': 'submit'
 	 	 	 	}
 	 	 	 	var wikipedia_wiki = new Wikipedia.wiki( "移除鏈入" + title, query, friendlyspeedy.callbacks.sysop.unlinkBacklinks );
 	 	 	 	wikipedia_wiki.params = params;
 	 	 	 	wikipedia_wiki.onloading = onloading;
 	 	 	 	wikipedia_wiki.onloaded = onloaded;
 	 	 	 	wikipedia_wiki.onsuccess = onsuccess;
 	 	 	 	wikipedia_wiki.get();
 	 	 	}
 	 	},
 	 	unlinkBacklinks: function( self ) {
 	 	 	var form = self.responseXML.getElementById('editform');
 	 	 	var text = form.wpTextbox1.value;
 	 	 	var old_text = text;
 	 	 	var wikiPage = new Mediawiki.Page( text );
 	 	 	wikiPage.removeLink( self.params.page );
 
 	 	 	text = wikiPage.getText();
 	 	 	if( text == old_text ) {
 	 	 	 	// Nothing to do, return
 	 	 	 	self.onsuccess( self );
 	 	 	 	Wikipedia.actionCompleted( self );
 	 	 	 	return;
 	 	 	}
 	 	 	var postData = {
 	 	 	 	'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
 	 	 	 	'wpWatchthis': undefined,
 	 	 	 	'wpStarttime': form.wpStarttime.value,
 	 	 	 	'wpEdittime': form.wpEdittime.value,
 	 	 	 	'wpAutoSummary': form.wpAutoSummary.value,
 	 	 	 	'wpEditToken': form.wpEditToken.value,
 	 	 	 	'wpSection': '',
 	 	 	 	'wpSummary': '移除鏈入' + self.params.page + "因其已被快速刪除([[WP:CSD#" + self.params.normalized.toUpperCase() + "|CSD " + self.params.normalized.toUpperCase() + "]])" + "; " + FriendlyConfig.deletionSummaryAd,
 	 	 	 	'wpTextbox1': text
 	 	 	};
 	 	 	self.post( postData );
 	 	},
 	 	deleteRedirectsMain: function( self ) {
 	 	 	var xmlDoc = self.responseXML;
 	 	 	var snapshot = xmlDoc.evaluate('//backlinks/bl/@title', xmlDoc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
 
 	 	 	var total = snapshot.snapshotLength * 2;
 
 	 	 	if( snapshot.snapshotLength == 0 ) {
 	 	 	 	return;
 	 	 	}
 
 	 	 	var statusIndicator = new Status('刪除重定向', '0%');
 
 	 	 	var onsuccess = function( self ) {
 	 	 	 	var obj = self.params.obj;
 	 	 	 	var total = self.params.total;
 	 	 	 	var now = parseInt( 100 * ++(self.params.current)/total ) + '%';
 	 	 	 	obj.update( now );
 	 	 	 	self.statelem.unlink();
 	 	 	 	if( self.params.current >= total ) {
 	 	 	 	 	obj.info( now + ' (完成)' );
 	 	 	 	 	Wikipedia.removeCheckpoint();
 	 	 	 	}
 	 	 	}
 	 	 	var onloaded = onsuccess;
 
 	 	 	var onloading = function( self ) {}
 
 
 	 	 	Wikipedia.addCheckpoint();
 	 	 	if( snapshot.snapshotLength == 0 ) {
 	 	 	 	statusIndicator.info( '100% (完成)' );
 	 	 	 	Wikipedia.removeCheckpoint();
 	 	 	 	return;
 	 	 	}
 
 	 	 	var params = clone( self.params );
 	 	 	params.current = 0;
 	 	 	params.total = total;
 	 	 	params.obj = statusIndicator;
 
 
 	 	 	for ( var i = 0; i < snapshot.snapshotLength; ++i ) {
 	 	 	 	var title = snapshot.snapshotItem(i).value;
 	 	 	 	var query = {
 	 	 	 	 	'title': title,
 	 	 	 	 	'action': 'delete'
 	 	 	 	}
 	 	 	 	var wikipedia_wiki = new Wikipedia.wiki( "刪除" + title, query, friendlyspeedy.callbacks.sysop.deleteRedirects );
 	 	 	 	wikipedia_wiki.params = params;
 	 	 	 	wikipedia_wiki.onloading = onloading;
 	 	 	 	wikipedia_wiki.onloaded = onloaded;
 	 	 	 	wikipedia_wiki.onsuccess = onsuccess;
 	 	 	 	wikipedia_wiki.followRedirect = false;
 	 	 	 	wikipedia_wiki.get();
 	 	 	}
 	 	},
 	 	deleteRedirects: function( self ) {
 	 	 	var form = this.responseXML.getElementById( 'deleteconfirm' );
 	 	 	if( ! form ) { // Hell, image deletion is b0rked :(
 	 	 	 	form = this.responseXML.getElementsByTagName( 'form' )[0];
 	 	 	 	var postData = {
 	 	 	 	 	'wpDeleteReasonList': 'other',
 	 	 	 	 	'wpReason': "[[WP:CSD#G15|CSD G15]] 孤立頁面\"" + wgPageName + "\"" + FriendlyConfig.deletionSummaryAd,
 	 	 	 	 	'wpEditToken': form.wpEditToken.value
 	 	 	 	}
 	 	 	} else {
 
 	 	 	 	var postData = {
 	 	 	 	 	'wpWatch': form.wpWatch.checked ? '' : undefined,
 	 	 	 	 	'wpDeleteReasonList': 'other',
 	 	 	 	 	'wpReason': "[[WP:CSD#G15|CSD G15]] 孤立頁面\"" + wgPageName + "\"" + FriendlyConfig.deletionSummaryAd,
 	 	 	 	 	'wpEditToken': form.wpEditToken.value
 	 	 	 	}
 	 	 	}
 	 	 	self.post( postData );
 	 	},
 	 	unlinkImageInstancesMain: function( self ) {
 	 	 	var xmlDoc = self.responseXML;
 	 	 	var snapshot = xmlDoc.evaluate('//imageusage/iu/@title', xmlDoc, null, XPathResult.UNORDERED_NODE_SNAPSHOT_TYPE, null );
 
 	 	 	if( snapshot.snapshotLength == 0 ) {
 	 	 	 	return;
 	 	 	}
 
 	 	 	var statusIndicator = new Status('移除鏈入圖像', '0%');
 
 	 	 	var total = snapshot.snapshotLength * 2;
 
 	 	 	var onsuccess = function( self ) {
 	 	 	 	var obj = self.params.obj;
 	 	 	 	var total = self.params.total;
 	 	 	 	var now = parseInt( 100 * ++(self.params.current)/total ) + '%';
 	 	 	 	obj.update( now );
 	 	 	 	self.statelem.unlink();
 	 	 	 	if( self.params.current >= total ) {
 	 	 	 	 	obj.info( now + ' (completed)' );
 	 	 	 	 	Wikipedia.removeCheckpoint();
 	 	 	 	}
 	 	 	}
 	 	 	var onloaded = onsuccess;
 
 	 	 	var onloading = function( self ) {}
 
 
 	 	 	Wikipedia.addCheckpoint();
 	 	 	if( snapshot.snapshotLength == 0 ) {
 	 	 	 	 	statusIndicator.info( '100% (完成)' );
 	 	 	 	 	Wikipedia.removeCheckpoint();
 	 	 	 	 	return;
 	 	 	}
 
 	 	 	var params = clone( self.params );
 	 	 	params.current = 0;
 	 	 	params.total = total;
 	 	 	params.obj = statusIndicator;
 	 	 	params.image = wgTitle;
 
 	 	 	for ( var i = 0; i < snapshot.snapshotLength; ++i ) {
 	 	 	 	var title = snapshot.snapshotItem(i).value;
 	 	 	 	var query = {
 	 	 	 	 	'title': title,
 	 	 	 	 	'action': 'submit'
 	 	 	 	}
 	 	 	 	var wikipedia_wiki = new Wikipedia.wiki( "移除鏈入位於" + title, query, friendlyspeedy.callbacks.sysop.unlinkImageInstances );
 	 	 	 	wikipedia_wiki.params = params;
 	 	 	 	wikipedia_wiki.onloading = onloading;
 	 	 	 	wikipedia_wiki.onloaded = onloaded;
 	 	 	 	wikipedia_wiki.onsuccess = onsuccess;
 	 	 	 	wikipedia_wiki.get();
 	 	 	}
 	 	},
 	 	unlinkImageInstances: function( self ) {
 	 	 	var form = self.responseXML.getElementById('editform');
 	 	 	var text = form.wpTextbox1.value;
 	 	 	var old_text = text;
 	 	 	var wikiPage = new Mediawiki.Page( text );
 	 	 	wikiPage.commentOutImage( self.params.image, '註釋出已被刪除的圖像' );
 
 	 	 	text = wikiPage.getText();
 	 	 	if( text == old_text ) {
 	 	 	 	// Nothing to do, return
 	 	 	 	self.onsuccess( self );
 	 	 	 	Wikipedia.actionCompleted( self );
 	 	 	 	return;
 	 	 	}
 	 	 	var postData = {
 	 	 	 	'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
 	 	 	 	'wpWatchthis': undefined,
 	 	 	 	'wpStarttime': form.wpStarttime.value,
 	 	 	 	'wpEdittime': form.wpEdittime.value,
 	 	 	 	'wpAutoSummary': form.wpAutoSummary.value,
 	 	 	 	'wpEditToken': form.wpEditToken.value,
 	 	 	 	'wpSection': '',
 	 	 	 	'wpSummary': "移除已經刪除的圖像" + self.params.image + " ([[WP:CSD#" + self.params.normalized.toUpperCase() + "|CSD " + self.params.normalized.toUpperCase() + "]])" + "; " + FriendlyConfig.deletionSummaryAd,
 	 	 	 	'wpTextbox1': text
 	 	 	};
 	 	 	self.post( postData );
 	 	},
 	 	deletePage: function( self ) {
 	 	 	var form = this.responseXML.getElementById( 'deleteconfirm' );
 	 	 	if( ! form ) { // Hell, image deletion is b0rked :(
 	 	 	 	form = this.responseXML.getElementsByTagName( 'form' )[0];
 	 	 	 	var postData = {
 	 	 	 	 	'wpDeleteReasonList': 'other',
 	 	 	 	 	'wpReason': "[[WP:CSD#" + self.params.normalized.toUpperCase() + "|CSD " + self.params.normalized.toUpperCase() + "]] " + self.params.reason + FriendlyConfig.deletionSummaryAd,
 	 	 	 	 	'wpEditToken': form.wpEditToken.value
 	 	 	 	}
 	 	 	 	self.post( postData );
 	 	 	} else {
 
 	 	 	 	var postData = {
 	 	 	 	 	'wpWatch': (self.params.watch || form.wpWatch.checked) ? '' : undefined,
 	 	 	 	 	'wpDeleteReasonList': 'other',
 	 	 	 	 	'wpReason': "[[WP:CSD#" + self.params.normalized.toUpperCase() + "|CSD " + self.params.normalized.toUpperCase() + "]] " + self.params.reason + FriendlyConfig.deletionSummaryAd,
 	 	 	 	 	'wpEditToken': form.wpEditToken.value
 	 	 	 	}
 	 	 	 	self.post( postData );
 	 	 	}
 	 	},
 	 	deleteTalkPage: function( self ) {
 	 	 	form = this.responseXML.getElementById( 'deleteconfirm' );
 
 	 	 	var postData = {
 	 	 	 	'wpWatch': (self.params.watch || form.wpWatch.checked) ? '' : undefined,
 	 	 	 	'wpDeleteReasonList': 'other',
 	 	 	 	'wpReason': "[[WP:CSD#G15|CSD G15]] 孤立頁面" + FriendlyConfig.deletionSummaryAd,
 	 	 	 	'wpEditToken': form.wpEditToken.value
 	 	 	}
 	 	 	self.post( postData );
 	 	}
 	},
 	user: {
 	 	main: function( self ) {
 	 	 	var xmlDoc = self.responseXML;
 
 	 	 	var exists = xmlDoc.evaluate( 'boolean(//pages/page[not(@missing)])', xmlDoc, null, XPathResult.BOOLEAN_TYPE, null ).booleanValue;
 
 	 	 	if( ! exists ) {
 	 	 	 	self.statelem.error( "頁面不存在,可能已被刪除" );
 	 	 	 	return;
 	 	 	}
 	 	 	var query = { 
 	 	 	 	'title': wgPageName, 
 	 	 	 	'action': 'submit'
 	 	 	};
 
 	 	 	var wikipedia_wiki = new Wikipedia.wiki( '標記頁面', query, friendlyspeedy.callbacks.user.tagPage );
 	 	 	wikipedia_wiki.params = self.params;
 	 	 	wikipedia_wiki.followRedirect = false;
 	 	 	wikipedia_wiki.get();
 	 	},
 	 	tagPage: function( self ) {
 	 	 	form = this.responseXML.getElementById( 'editform' );
 
 	 	 	var text = form.wpTextbox1.value;
 
 	 	 	if( FriendlyConfig.checkDeleteDup ){
 	 	 	 	self.statelem.status( '檢查頁面已有標記...' );
 
 	 	 	 	var tag = /(\{\{(?:db-?|delete\||d\||Delete\||D\|).*?\}\})/.exec( text );
 
 	 	 	 	if( tag ) {
 	 	 	 	 	self.statelem.error( [ htmlNode( 'strong', tag[0] ) , "已被置於條目中" ] )
 	 	 	 	 	return;
 	 	 	 	}
 
 	 	 	 	var xfd = /(\{\{(?:[RrSsAaIiTtCcMmVv]fd|md1)[^{}]*?\}\})/i.exec( text );
 
 	 	 	 	if( xfd && !confirm( "刪除討論模板" + xfd[0] + "已被置於條目中,是否仍希望提交快速刪除?" ) ) {
 	 	 	 	 	return;
 	 	 	 	}
 	 	 	}

 	 	 	var code;
 	 	 	switch( self.params.normalized ) {
 	 	 	 	case 'f7':
 	 	 	 	 	var filename = prompt( '請輸入維基共享相應文件名(不含File:):', wgPageName.replace(/_/g,' ') );
 	 	 	 	 	if (filename == null)
 	 	 	 	 	{
 	 	 	 	 	 	self.statelem.error( '用戶請求取消' );
 	 	 	 	 	 	return;
 	 	 	 	 	}
 	 	 	 	 	if( filename == '' ) {
 	 	 	 	 	 	filename = wgPageName.replace(/_/g,' ');
 	 	 	 	 	}
 	 	 	 	 	var date = new Date();
 	 	 	 	 	var code = "\{\{nowcommons|" + filename + "\}\}";
 	 	 	 	 	break;
 	 	 	 	case 'f1':
 	 	 	 	case 'f5':
 	 	 	 	 	var img = prompt( '輸入文件名(不含File:):' );
 	 	 	 	 	if (img == null)
 	 	 	 	 	{
 	 	 	 	 	 	self.statelem.error( '用戶請求取消' );
 	 	 	 	 	 	return;
 	 	 	 	 	}
 	 	 	 	 	code = "\{\{d|" +  self.params.value.toUpperCase() + "|" + img + "\}\}";
 	 	 	 	 	break;
 	 	 	 	default:
 	 	 	 	 	code = "\{\{d|" +  self.params.value.toUpperCase() + "\}\}";
 	 	 	 	 	break;
 	 	 	}
 	 	 	code = '<noinclude>' + code + '</noinclude>'
 
 	 	 	if( FriendlyConfig.markSpeedyPagesAsPatrolled && self.params.rcid != '' ) {
 	 	 	 	var query = {
 	 	 	 	 	'title': wgPageName,
 	 	 	 	 	'action': 'markpatrolled',
 	 	 	 	 	'rcid': self.params.rcid
 	 	 	 	};
 
 	 	 	 	var wikipedia_wiki = new Wikipedia.wiki( '標記頁面為已巡查', query );
 	 	 	 	wikipedia_wiki.post();
 	 	 	}
 
 	 	 	// Notification to first contributor
 	 	 	var query = {
 	 	 	 	'action': 'query',
 	 	 	 	'prop': 'revisions',
 	 	 	 	'titles': wgPageName,
 	 	 	 	'rvlimit': 1,
 	 	 	 	'rvprop': 'user',
 	 	 	 	'rvdir': 'newer'
 	 	 	}
 	 	 	var callback = function( self ) {
 	 	 	 	var xmlDoc = self.responseXML;
 	 	 	 	var user = xmlDoc.evaluate( '//rev/@user', xmlDoc, null, XPathResult.STRING_TYPE, null ).stringValue;
 	 	 	 	if( wgPageName != ( 'User talk:' + user ) ) {
 	 	 	 	 	var query = {
 	 	 	 	 	 	'title': 'User talk:' + user,
 	 	 	 	 	 	'action': 'submit'
 	 	 	 	 	};
 	 	 	 	 	var wikipedia_wiki = new Wikipedia.wiki( '通知頁面創建者' + user, query, friendlyspeedy.callbacks.user.userNotification );
 	 	 	 	 	wikipedia_wiki.params = self.params;
 	 	 	 	 	wikipedia_wiki.get();
 	 	 	 	} else {
 	 	 	 	 	Status.info( '信息', '當前頁面為創建者討論頁,取消通知' );
 	 	 	 	}
 	 	 	}
 
 	 	 	if( self.params.usertalk ) {
 	 	 	 	var wikipedia_api = new Wikipedia.api( 'Grabbing data of initial contributor', query, callback );
 	 	 	 	wikipedia_api.params = self.params;
 	 	 	 	wikipedia_api.post();
 	 	 	}
 
 	 	 	var postData = {
 	 	 	 	'wpMinoredit': FriendlyConfig.markSpeedyPagesAsMinor ? '' : undefined,
 	 	 	 	'wpWatchthis': (self.params.watch || form.wpWatchthis.checked ) ? '' : undefined,
 	 	 	 	'wpStarttime': form.wpStarttime.value,
 	 	 	 	'wpEdittime': form.wpEdittime.value,
 	 	 	 	'wpAutoSummary': form.wpAutoSummary.value,
 	 	 	 	'wpEditToken': form.wpEditToken.value,
 	 	 	 	'wpSection': '',
 	 	 	 	'wpSummary': "請求快速刪除([[WP:CSD#" + self.params.normalized.toUpperCase() + "|CSD " + self.params.normalized.toUpperCase() + "]])" + FriendlyConfig.summaryAd,
 	 	 	 	'wpTextbox1': code + "\n" + text
 	 	 	};
 	 	 	self.post( postData );
 	 	},
 	 	userNotification: function( self ) {
 	 	 	var nowelcome = FriendlyConfig.welcomeUserOnSpeedyDeletionNotification.indexOf( self.params.normalized ) == -1;
 	 	 	var form = self.responseXML.getElementById( 'editform' );
 	 	 	var text = form.wpTextbox1.value;
 	 	 	text += "\n\{\{subst:db-notice|target=" + wgPageName + "\}\}--\~\~\~\~";
 	 	 	var postData = {
 	 	 	 	'wpMinoredit': form.wpMinoredit.checked ? '' : undefined,
 	 	 	 	'wpWatchthis': form.wpWatchthis.checked ? '' : undefined,
 	 	 	 	'wpStarttime': form.wpStarttime.value,
 	 	 	 	'wpEdittime': form.wpEdittime.value,
 	 	 	 	'wpAutoSummary': form.wpAutoSummary.value,
 	 	 	 	'wpEditToken': form.wpEditToken.value,
 	 	 	 	'wpSection': '',
 	 	 	 	'wpSummary': '通知:請求快速刪除\[\[' + wgPageName + '\]\].' + FriendlyConfig.summaryAd,
 	 	 	 	'wpTextbox1': text
 	 	 	};
 	 	 	self.post( postData );
 	 	}
 	}
}
 
friendlyspeedy.callback.evaluateSysop = function FriendlyspeedyCallbackEvaluateSysop(e) {
 
 	wgPageName = wgPageName.replace( /_/g, ' ' ); // for queen/king/whatever and country!
 
 	var tag_only = e.target.form.tag_only;
 	if( tag_only && tag_only.checked ) {
 	 	return friendlyspeedy.callback.evaluateUser(e);
 	}
 
 	var value = e.target.value;
 	var normalized = friendlyspeedy.normalizeHash[ value ];

 	var params = {
 	 	value: value,
 	 	normalized: normalized,
 	 	watch: false,
 	 	reason: friendlyspeedy.reasonHash[ value ],
 	 	openusertalk: FriendlyConfig.openUserTalkPageOnSpeedyDelete.indexOf( normalized ) != -1
 	};
 	Status.init( e.target.form );
 
 	var query = {
 	 	'action': 'query',
 	 	'titles': wgPageName
 	}
 	var wikipedia_api = new Wikipedia.api( '檢查頁面是否存在', query, friendlyspeedy.callbacks.sysop.main );
 	wikipedia_api.params = params;
 	wikipedia_api.post();
}
 
friendlyspeedy.callback.evaluateUser = function FriendlyspeedyCallbackEvaluateUser(e) {
 	wgPageName = wgPageName.replace( /_/g, ' ' ); // for queen/king/whatever and country!
 	var value = e.target.value;
 	var normalized = friendlyspeedy.normalizeHash[ value ];
 
 	var params = {
 	 	value: value,
 	 	normalized: normalized,
 	 	watch: false,
 	 	usertalk: FriendlyConfig.notifyUserOnSpeedyDeletionNomination.indexOf( normalized ) != -1 && e.target.form.notify.checked,
 	 	rcid: QueryString.exists( 'rcid' ) ? QueryString.get( 'rcid' ) : ''
 	};
 
 	Status.init( e.target.form );
 
 	Wikipedia.actionCompleted.redirect = wgPageName;
 	Wikipedia.actionCompleted.notice = "完成";
 
 	var query = {
 	 	'action': 'query',
 	 	'titles': wgPageName
 	}
 
 	var wikipedia_api = new Wikipedia.api( '檢查頁面是否存在', query, friendlyspeedy.callbacks.user.main );
 	wikipedia_api.params = params;
 	wikipedia_api.post();
 
}