MediaWiki:Gadget-Twinkle.js/Hızlı silme.js

Vikihaber, özgür haber kaynağı!

Not: Yayımladıktan sonra değişiklikleri görmek için tarayıcınızın önbelleğini temizlemeniz gerekebilir.

  • Firefox / Safari: Shift tuşuna basılıyken Yeniden Yükle'ye tıklayın ya da Ctrl-F5 ya da Ctrl-R tıklayın (Mac için ⌘-R).
  • Google Chrome: Ctrl-Shift-R'ye basın. (Mac için ⌘-Shift-R)
  • Internet Explorer / Edge: Ctrl basılıyken Yenile'ye tıklayın ya da Ctrl-F5 yapın.
  • Opera: Ctrl-F5 tıklayın.
// If TwinkleConfig aint exist.
if( typeof( TwinkleConfig ) == 'undefined' ) {
	TwinkleConfig = {};
}

/**
 TwinkleConfig.summaryAd (string)
 If ad should be added or not to summary, default [[WP:TWINKLE|TWINKLE]]
 */
if( typeof( TwinkleConfig.summaryAd ) == 'undefined' ) {
	TwinkleConfig.summaryAd = "  ([[VH:TW|Twinkle]])";
}

/**
 TwinkleConfig.deletionSummaryAd (string)
 If ad should be added or not to deletion summary, default [[WP:TWINKLE|TWINKLE]]
 */
if( typeof( TwinkleConfig.deletionSummaryAd ) == 'undefined' ) {
	TwinkleConfig.deletionSummaryAd = "  ([[VH:TW|Twinkle]])";
}

/**
 TwinkleConfig.watchSpeedyPages (array)
 What types of actions that should result in forced addition to watchlist
 */
if( typeof( TwinkleConfig.watchSpeedyPages ) == 'undefined' ) {
	TwinkleConfig.watchSpeedyPages = [ '' ];
}

/**
 TwinkleConfig.markSpeedyPagesAsMinor (boolean)
 If, when applying speedy template to page, to mark the edit as minor, default true
 */
if( typeof( TwinkleConfig.markSpeedyPagesAsMinor ) == 'undefined' ) {
	TwinkleConfig.markSpeedyPagesAsMinor = false;
}

/**
 TwinkleConfig.markSpeedyPagesAsPatrolled (boolean)
 If, when applying speedy template to page, to mark the page as patrolled, default true
 */
if( typeof( TwinkleConfig.markSpeedyPagesAsPatrolled ) == 'undefined' ) {
	TwinkleConfig.markSpeedyPagesAsPatrolled = true;
}

/**
 TwinkleConfig.notifyUserOnSpeedyDeletionNomination (array of strings)
 What types of actions that should result that the author of the page should be notified of nomination
 */
if( typeof( TwinkleConfig.notifyUserOnSpeedyDeletionNomination ) == 'undefined' ) {
	TwinkleConfig.notifyUserOnSpeedyDeletionNomination = [ 'g1', 'g2', 'g3', 'g4', 'g10', 'g11', 'g12', 'm1', 'm2', 'm3', 'm5', 'm7', 'm9', 'd1', 'd2', 'd3', 'd4', 'd5', 'd6', 'd7', 'd9', 'd10', 'd11', 'ks3', 'ş1', 'ş2', 'p2' ];
}

/**
 TwinkleConfig.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( TwinkleConfig.welcomeUserOnSpeedyDeletionNotification ) == 'undefined' ) {
	TwinkleConfig.welcomeUserOnSpeedyDeletionNotification = TwinkleConfig.notifyUserOnSpeedyDeletionNomination;
}

/**
 TwinkleConfig.openUserTalkPageOnSpeedyDelete (array of strings)
 What types of actions that should result user talk page to be opened when speedily deleting (admin only)
 */
if( typeof( TwinkleConfig.openUserTalkPageOnSpeedyDelete ) == 'undefined' ) {
	TwinkleConfig.openUserTalkPageOnSpeedyDelete = [ 'g1','g2','g3','g9','m8' ];
}

/**
 TwinkleConfig.userTalkPageMode may take arguments:
 'window': open a new window, remember 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( TwinkleConfig.userTalkPageMode ) == 'undefined' ) {
	TwinkleConfig.userTalkPageMode = 'window';
}

/**
 TwinkleConfig.deleteTalkPageOnDelete (boolean)
 If talk page if exists should also be deleted (CSD G8) when spedying a page (admin only)
 */
if( typeof( TwinkleConfig.deleteTalkPageOnDelete ) == 'undefined' ) {
	TwinkleConfig.deleteTalkPageOnDelete = false;
}

/**
 TwinkleConfig.orphanNormalPagesOnSpeedyDelete (hash)
 Defines if all backlinks to a page should be removed.
 property 'exclude' defined actions not to orphan
 */
if( typeof( TwinkleConfig.orphanBacklinksOnSpeedyDelete ) == 'undefined' ) {
	TwinkleConfig.orphanBacklinksOnSpeedyDelete = { exclude: ['g6'], orphan:true };
}

/**
 TwinkleConfig.speedyWindowWidth (integer)
 Defines the width of the Twinkle SD window in pixels
 */
if( typeof( TwinkleConfig.speedyWindowWidth ) == 'undefined' ) {
	TwinkleConfig.speedyWindowWidth = 800;
}

/**
 TwinkleConfig.speedyWindowHeight (integer)
 Defines the height of the Twinkle SD window in pixels
 */
if( typeof( TwinkleConfig.speedyWindowHeight ) == 'undefined' ) {
	TwinkleConfig.speedyWindowHeight = 500;
}


function twinklespeedy() {
	if( wgNamespaceNumber < 0 || wgCurRevisionId == false ) {
		return;
	}
	if( userIsInGroup( 'sysop' ) ) {
		twAddPortletLink( "javascript:twinklespeedy.callback()", "H-silme", "tw-csd", "VH:HS uyarınca hızlı sil", "");
	} else if (twinkleConfigExists) {
		twAddPortletLink( "javascript:twinklespeedy.callback()", "Hs", "tw-csd", "VH:HS uyarınca hızlı silme talep et", "");
	}
	else
	{
		twAddPortletLink( 'javascript:alert("Hesabınız Twinkle kullanmak için fazla yeni.");', 'hs', 'tw-csd', 'VH:HS uyarınca hızlı silme talep et', '');
	}
}
window.TwinkleInit = (window.TwinkleInit || []).concat(twinklespeedy); //schedule initializer 

twinklespeedy.callback = function twinklespeedyCallback() {
	var Window = new SimpleWindow( TwinkleConfig.speedyWindowWidth, TwinkleConfig.speedyWindowHeight );
	Window.setTitle( "Hızlı silme kriteri seçin" );

	var form = new QuickForm( userIsInGroup( 'sysop' ) ? twinklespeedy.callback.evaluateSysop : twinklespeedy.callback.evaluateUser, 'change' );
	if( userIsInGroup( 'sysop' ) ) {
		form.append( {
				type: 'checkbox',
				list: [
					{
						label: 'Sadece sayfayı etiketle, silme',
						value: 'tag_only',
						name: 'tag_only',
						tooltip: 'Sayfayı silmek yerine silinmesi için işaretlemek istiyorsanız',
						event: function( event ) {
							event.target.form.notify.disabled = ! event.target.checked;
							event.target.form.notify.checked = event.target.checked;
							event.stopPropagation();
						}
					},
					{
						label: 'Sayfaya bağlantıları çıkar',
						value: 'orphan_backlinks',
						name: 'orphan_backlinks',
						tooltip: 'Sayfaya bağlantıları çıkarmak istiyorsanız',
						checked: TwinkleConfig.orphanBacklinksOnSpeedyDelete.orphan,
						event: function( event ) {
							TwinkleConfig.orphanBacklinksOnSpeedyDelete.orphan = event.target.checked;
							event.stopPropagation();
						}
					}
				]
			} );
	}

	form.append( {
			type: 'checkbox',
			list: [
				{
					label: 'Mümkünse haber ver',
					value: 'notify',
					name: 'notify',
					tooltip: 'Bildirim konfigürasyonda tanımlanmışsa, bu değer true ise haber ver, yoksa haber verme',
					checked: !userIsInGroup( 'sysop' ),
					disabled: userIsInGroup( 'sysop' ),
					event: function( event ) {
						event.stopPropagation();
					}
				}
			]
		}
	);
	if( wgNamespaceNumber ==  Namespace.IMAGE ) {
		form.append( {type:'header', label:'Dosyalar' } );
		form.append ( {
				type: 'radio',
				name: 'csd',
				list: [					{ 
						label: 'D1: Çift kopya dosya',
						value: 'd1',
						tooltip: 'Dosya, Vikipedi\’de veya Wikimedia Commons\'ta hâli hazırda bulunan bir dosyanın aynısı/kopyası ise, dosya formatı aynı, çözünürlüğü ise aynı veya daha düşükse, bu kopya silinir. Commons üzerinden yüklenen dosyaların Vikipedi üzerinde açılan sayfaları, dosyalar seçkin statüsüne sahip değilse silinebilir.'
					},
					{ 
						label: 'D2: Bozuk veya boş dosya',
						value: 'd2', 
						tooltip: 'Bu tür dosyaları silmeden önce dosyayı bir ön izleme ile görüntülemeye çalışarak bozuk olduğundan kesin olarak emin olmaya çalışın.' 
					},
					{ 
						label: 'D3: Uygunsuz lisanslı dosya',
						value: 'd3',
						tooltip: 'Adil kullanım politikası dahilinde kullanılabilecekler hariç "sadece ticari olmayan kullanıma açık", "izne tabi" veya "resmin değiştirilmesi sınırlandırılmış" dosyalar Vikipedi\'nin telif politikaları açısından uygunsuzdur.'
					},
					{
						label: 'D4: Lisans veya kaynak bilgisi eksik dosya', 
						value: 'd4',
						tooltip: 'İlgili şablonlarla etiketlendikten sonra 7 gün boyunca "Durumu belirsiz dosyalar" ve "Kaynağı belirsiz dosyalar" kategorilerinde yer alan dosyalar silinebilir. Bazı kullanıcılar kaynaklarını değişik özeti olarak belirttiği için, bu tür değişikliklerin de kontrol edilmesi yararlı olabilir.'
					},
					{
						label: 'D5: Kullanılmayan adil kullanım dosyası',
						value: 'd5',
						tooltip: 'Özgür bir lisansa sahip olmayan ya da kamu malı olmayan dosyalar, ilgili şablonlarla etiketlendikten sonra 7 gün boyunca "Kullanılmayan adil kullanım dosyaları" kategorilerinde yer almaları halinde silinebilir.' 
					},
					{
						label: 'D6: Adil kullanımı hatalı belirtilmiş dosya',
						value: 'd6',
						tooltip: 'Adil kullanımı hatalı belirtilmiş dosyalar, yükleyen kullanıcıya haber verildikten 48 saat sonra silinebilir.'
					},
					{ 
						label: 'D7: Kullanımı gerekçelendirilmemiş dosya',
						value: 'd7', 
						tooltip: '1 Ekim 2008 tarihinden sonra yüklenen özgür olmayan dosyalar adil kullanıma giriyor olmasına rağmen kullanım gerekçelendirilmesi yapılmamışsa, işaretlendikten bir hafta sonra silinirler.' 
					},
					{
						label: 'D8: Herhangi bir sayfada kullanılmayan ansiklopedik açıdan değersiz dosya',
						value: 'd8',
						tooltip: 'Özgür lisanslı olmalarına rağmen ansiklopedik değer taşımayan ve (kullanıcı sayfaları da dahil olmak üzere) herhangi bir sayfada kullanılmayan her türlü dosya silinebilir. Eğer dosyanın ansiklopedik değeri tartışmalıysa hızlı sil ile silinemez'
					},
					{
						label: 'D9: Kullanışsız dosya',
						value: 'd9',
						tooltip: 'Resim, video ve ses dosyaları dışında kalan dosyalar (Örn: .doc, .pdf veya .xls dosyaları) herhangi bir maddede kullanılmıyor ve ansiklopedik kullanımı olmadığı düşünülüyorsa silinebilir.'
					},
					{
						label: 'D10: Vektörel dosya',
						value: 'd10',
						tooltip: 'SVG gibi vektörel dosyalar VH:AKP uyarınca eğer serbest kullanıma izin vermiyorlarsa silinebilir.'
					},
					{
						label: 'D11: Şüpheli dosya',
						value: 'd11',
						tooltip: 'Şüpheli olarak işaretlenmiş bir dosya bir telif inceleme elemanı tarafından incelendikten sonra, sonuçsuz etiketiyle etiketlenirse, görüntünün durumunun netleştirilmesi için 7 gün beklenilir. Eğer 7 gün sonunda herhangi bir ek bilgi veya kanıt gelmezse, görüntü silinebilir'
					},
					{
						label: 'D12: Tanımsız dosya',
						value: 'd12',
						tooltip: 'Bir görüntü herhangi bir tanım bilgisi içermiyorsa ve görüntünün kendisinden de konusu ve tanımı net olarak belli olmuyorsa, ilgili etiket ile işaretlenir. Eğer bu etiket eklendikten sonra 7 gün içerisinde gerekli tanım bilgisi eklenmezse, görüntü silinebilir.'
					},
					{
						label: 'D13: İçeriği kaynaksız dosya',
						value: 'd13',
						tooltip: 'Bir görüntü içeriği kaynaksız bir grafikse (basit grafikler hariç) ilgili etiket ile etiketlenir. Etiket eklendikten sonra 7 gün içerisinde gerekli kaynak bilgisi verilmezse, görüntü silinebilir.'
					}
				]
			} );
	}

	if( wgNamespaceNumber ==  0 || wgNamespaceNumber == 1 ) {
		form.append( { type:'header', label:'Maddeler' } );
		form.append( {
			type: 'radio',
			name: 'csd',
			list: [
				{
					label: 'M1: Çok az bilgi taşıyan ya da hiç bilgi taşımayan kısa içerikli sayfa.',
					value: 'm1',
					tooltip: 'Örneğin: “Fabrikası olan garip bir adamdı.” Maddenin taslak madde kriterlerini sağlayan, bütünsel anlatımlı bir içeriğe sahip olması durumunda, madde yetersiz içerik gerekçesiyle silinemez.'
				},
				{
					label: 'M2: Bir başka Wikimedia projesinde mevcut olan, yabancı dildeki madde',
					value: 'm2',
					tooltip: 'Eğer madde yabancı dilde olmasına rağmen bir başka Wikimedia projesinde bulunmuyorsa, {\{Türkçe değil}\} şablonu konur, madde silinmez.'
				},
				{
					label: 'M3: İçeriğe sahip olmayan madde',
					value: 'm3',
					tooltip: 'İçerik olarak sadece dış bağlantı, Göz At, şablon veya başlığın tekrarını içeren maddeler.'
				},
				{
					label: 'M4: Başka bir Wikimedia projesine aktarılmış madde',
					value: 'm4',
					tooltip: 'Başka bir Wikimedia projesine aktarıma dair şablonlardan birini içeren ve/veya silmeye aday olduktan sonra, oylama ile başka bir projeye aktarılmasına karar verilen ve aktarılan maddeler, işlem başarıyla yapıldıktan ve maddenin yazarı aktarımdan haberdar edildikten sonra silinebilir.'
				},
				{
					label: 'M6: Kayda değer olmayan konuya sahip madde',
					value: 'm6',
					tooltip: 'Genel olarak kayda değerlik ana yönergesi ve alt-yönergelerinin sunduğu kıstaslara bariz bir şekilde uymayan maddeler için bu kural kullanılabilir. Bununla birlikte dikkatli bir şekilde kullanılmalı; kayda değerlik kıstasları ile uyumsuzluğun bariz olmadığı, tartışmalı olduğu durumlarda hızlı sil uygulanmamalıdır. Bunun yerine kayda değerlik tartışması açılabilir veya kayda değerlik sorunu hasebiyle bekletmeli silme uygulanabilir.'
				},
				{
					label: 'M8: Düzen ve ansiklopediklik açısından uygunsuz madde',
					value: 'm8',
					tooltip: 'Eğer bir madde a. Çalışma var şablonu barındırmıyorsa, içeriğinin büyük bir kısmında viki işaret dili kodu bulundurmuyorsa, ve taraflı veya yanlış bir içerik barındırıyorsa, veya içeriğinin en az %30\'luk kısmı Türkçe dışındaki bir dilde ise hızlı sil ile silinebilir. Bununla birlikte, eğer madde bir kullanıcı tarafından oluşturulmuşsa , silme işleminden önce veya sonra, kullanıcı ilgili Hızlı Silme kriterinden haberdar edilmelidir. Anonim bir IP tarafından yaratılmışsa, maddenin ilgili yazarına haber verilmesine gerek yoktur.'
				}
			]
		} );
	}
	if( wgNamespaceNumber ==  14 || wgNamespaceNumber == 15 ) {
		form.append( { type:'header', label: 'Kategoriler' } );
		form.append( {
			type: 'radio',
			name: 'csd',
			list: [
				{ 
					label: 'K1: Boş kategori',
					value: 'k1',
					tooltip: 'Madde veya alt kategori içermeyen, tek içeriği üst kategoriye bağlantı olan kategoriler. Eğer söz konusu kategori silmeye aday ise, hızlı sil uygulanamaz.'
				},
				{ 
					label: 'K2: İsmi düzeltilen kategori',
					value: 'k1',
					tooltip: 'İsmi değiştirme durumunda eski kategori silinebilir.'
				},
				{ 
					label: 'K3: Şablon kategorisi',
					value: 'k1',
					tooltip: 'Şablon silindikten veya kategorileri değiştirildikten sonra kalan kategoriler.'
				}
			]
		} );
	} if( wgNamespaceNumber ==  2 || wgNamespaceNumber == 3 ) {
		form.append( { type:'header', label: 'Kullanıcı sayfaları' } );
		form.append( {
			type: 'radio',
			name: 'csd',
			list: [
				{
					label: 'KS2: Var olmayan kullanıcının kullanıcı sayfası',
					value: 'ks2',
					tooltip: 'Oturum açmamış kullanıcıların tartışma sayfaları, yazılmış mesajlar geçerli olmadığı zaman silinir. Böylece aynı IP adresiyle değişiklik yapan yeni kullanıcıların aklı karışmaz.'
				},
				{
					label: 'KS3: Adil kullanım galerisi',
					value: 'ks3',
					tooltip: 'Kullanıcı alanında bulunan ve çoğunlukla adil kullanım kaynaklı resimler barındıran galeriler silinebilir.'
				},
			]
		} );
	} if( wgNamespaceNumber ==  10 || wgNamespaceNumber == 11 ) {
		form.append( { type:'header', label: 'Şablonlar' } );
		form.append( {
			type: 'radio',
			name: 'csd',
			list: [
				{
					label: 'Ş1: Bölücü ve kışkırtıcı şablon',
					value: 'ş1',
					tooltip: 'Bölücü ve kışkırtıcı şablonlar silinebilir.'
				},
				{
					label: 'Ş2: Kullanılmayan şablon',
					value: 'ş2',
					tooltip: '"Subst" komutuyla kullanılması gereken şablonlar da kullanılmayan şablonlar arasında listelenebileceği için, bu tür şablonlar sadece ihtiyaç duyulmaması durumunda silinmelidir.'
				}
			]
		} );
	} if( wgNamespaceNumber ==  100 || wgNamespaceNumber == 101 ) {
		form.append( { type:'header', label: 'Portaller' } );
		form.append( {
			type: 'radio',
			name: 'csd',
			list: [
				{
					label: 'P1: Madde kriterlerine uymayan portal sayfası',
					value: 'p1',
					tooltip: 'Madde kriterlerine uymayan portal sayfaları silinebilir.'
				},
				{
					label: 'P2: Katılımcısı az olan, etkin olmayan, kriterlere uymayan portal',
					value: 'p2',
					tooltip: 'Portallar, şu kriterlerden herhangi birine uymamaları halinde silinebilir: 1. Taslak olmayan bir başlık maddesine sahip olan bir konuyu ele almak ve portalın konusuyla ilgili en azından on tane taslak olmayan maddenin bulunması, veya 2. En azından son 2 ay içerisinde güncellenmiş olmasıdır.'
				}
			]
		} ); }

	form.append( { type:'header', label:'Genel' } );
	form.append( {
			type: 'radio',
			name: 'csd',
			list: [
				{ 
					label: 'G1: Hiçbir anlam içermeyen içerikli sayfa.', 
					value: 'g1', 
					tooltip: 'Örneğin: "nafnşew359cşs.ndc30" veya "traa laa laaa". Buna: Vandalizm, kısa içerik, kötü yazım, partizan nutuklar, imkansız teoriler ve kötü bir tercümeye sahip içerikler dahil değildir.' 
                                },
				{ 
					label: 'G2: Deneme yapılmış sayfa',
					value: 'g2',
					tooltip: 'Deneme amaçlı olarak açılmış sayfalar silinebilir.' 
				},
				{ 
					label: 'G3: Vandalizm yapılmış sayfa',
					value: 'g3',
					tooltip: 'Ad değiştirme vandalizmi sonucu oluşan yönlendirme sayfaları da dahil.'
				},
				{ 
					label: 'G4: Daha önce silinmiş içeriğin büyük ölçüde aynısına sahip sayfa',
					value: 'g4',
					tooltip: 'SAS tartışması sonucunda veya Hızlı Silme ile silinen herhangi bir sayfayla büyük ölçüde benzerlik taşıyan herhangi bir isimdeki sayfalar, SAS kararı emsal kabul edilerek silinebilir. Tekrar silinmeden önce, hizmetlinin, içeriğin büyük ölçüde aynı olduğundan ve aynı konuda yeni bir madde olmadığından emin olması gerekmektedir.'
				},
				{
					label: 'G6: Sayfayı oluşturan kullanıcının talebi', 
					value: 'g6',
					tooltip: 'Eğer bir sayfayı oluşturan kişi, yazdığı sayfa başka hiçbir kişi tarafından değişikliğe uğramamışsa ve kullanıcı tarafından yanlışlıkla açılmışsa, sayfanın silinmesini talep edebilir. Bu talep sebebiyle söz konusu sayfa silinir.' 
				},
				{
					label: 'G7: Silinmiş sayfanın tartışma sayfası',
					value: 'g7',
					tooltip: 'Eğer sayfanın niçin silindiğine dair bir tartışma içermiyorsa hızlı sil ile silinebilir.'
				},
				{
					label: 'G8: Temizlik işlemi',
					value: 'g8',
					tooltip: 'Tartışma yaratmayacak bakım ve temizlik işlemleri, sayfa geçmişlerini birleştirme, bir isim değişikliği işlemini geri alma ve sadece tek bir maddeye bağlantı veren bir anlam ayrım sayfasını silme amacıyla sayfalar silinebilir.'
				},
				{
					label: 'G9: Telif ihlali yaratan sayfa',
					value: 'g9', 
					tooltip: 'Telif hakları saklı bir kaynaktan alındığı kesin olarak belirlenen ya da bu konuda ciddi şüpheler bulunan her türlü içerik için hızlı silme işlemi uygulanabilir. Eğer telif hakkı ihlali taşıyan içerik küçük bir kısımsa veya sayfanın belirli bir kısmına eklenmişse, sayfanın hızlı sil ile silinmesinden ziyade ilgili kısımların çıkarılması tavsiye edilebilir.' 
				},
				{ 
					label: 'G10: Saldırı sayfası',
					value: 'g10', 
					tooltip: 'Saldırı, hakaret dışında bir amaca hizmet etmeyen içeriğe sahip sayfa ve dosyalar (örneğin "... bir salaktır" benzeri bir içerik barındıran bir madde) silinebilir. Herhangi bir şahsa, topluluğa, kuruma ya da fikre yoğun biçimde saldırı niteliği taşıyan ve geri alınacak tarafsız bir sürümü bulunmayan sayfalar buna dahildir. Parodi amaçlı resim veya medya bu kapsama girmez.'
				},
				{ 
					label: 'G11: Yoğun reklam içeren sayfa',
					value: 'g11', 
					tooltip: 'Yalnızca bir şirketin, ürünün, grubun veya hizmetin reklamını yapan ve ansiklopedik olabilmesi için baştan yazılması gereken sayfalar silinebilir. Unutmayınız ki herhangi bir madde, konusu sırf bir şirket, ürün, grup veya hizmeti içeriyor diye bu kriterin uygulanabileceği bir durum yaratmaz: Yoğun şekilde reklam içeren bir maddenin uygunsuz içerik de barındırması gerekmektedir. Eğer herhangi bir madde daha önce silinme prosedürüne dahil edilmiş, fakat sonuç olarak silinmemiş ise, bu kriter ile hızlı silinmesi mümkün değildir.'
				},
				{ 
					label: 'G12: İçeriği geliştirmeye yönelik olmayan tartışma sayfası', 
					value: 'g12',
					tooltip: 'Tartışma sayfası tamamen bu tür yorumlardan oluşmadıkça silme işlemi yapılamaz. Geliştirme amaçlı yorumlar mevcutsa sayfa silinmez, sadece ilgisiz yorumlar çıkartılır.'
				}
			]
		});

	form.append( { type:'header', label: 'Yönlendirmeler' } );
	form.append( {
			type: 'radio',
			name: 'csd',
			list: [
				{ 
					label: 'Y1: Var olmayan sayfaya olan yönlendirme', 
					value: 'y1', 
					tooltip: 'Eğer mümkünse söz konusu yönlendirme, uygun ve var olan bir başka maddeye yönlendirilmelidir.'
				},
				{ 
					label: 'Y2: Büyük bir yazım hatası içeren yeni oluşturulmuş yönlendirme', 
					value: 'y2', 
					tooltip: 'Eğer söz konusu yazım hatası sıklıkla yapılan bir hataysa, kalmasında sakınca yoktur.'
				},
				{ 
					label: 'Y3: Farklı isim alanları arasındaki yönlendirme', 
					value: 'y3', 
					tooltip: 'Örn: Vikipedi->Şablon, Şablon->Madde, Madde->Kullanıcı. VP ve KAT gibi kısayol kısaltmaları bu kapsama dahil değildir.'
				}
			]
		} );
	var result = form.render();
	Window.setContent( result );
	Window.display();
}

twinklespeedy.normalizeHash = {
	'g1': 'g1',
	'g2': 'g2',
	'g3': 'g3',
	'g4': 'g4',
	'g6': 'g6',
	'g7': 'g7',
	'g8': 'g8',
	'g9': 'g9',
	'g10': 'g10',
	'g11': 'g11',
	'g12': 'g12',
	'm1': 'm1',
	'm2': 'm2',
	'm3': 'm3', 
	'm4': 'm4',
	'm6': 'm6',
	'm8': 'm8',
	'y1': 'y1',
	'y2': 'y2',
	'y3': 'y3',
	'd1': 'd1',
	'd2': 'd2',
	'd3': 'd3',
	'd4': 'd4',
	'd5': 'd5',
	'd6': 'd6',
	'd7': 'd7',
	'd8': 'd8',
	'd9': 'd9',
	'd10': 'd10',
	'd11': 'd11',
	'd12': 'd12',
	'd13': 'd13',
	'k1': 'k1',
	'k2': 'k2',
	'k3': 'k3',
	'ks2': 'ks2',
	'ks3': 'ks3',
	'ş1': 'ş1',
	'ş2': 'ş2',
	'p1': 'p1',
	'p2': 'p2'
};

twinklespeedy.reasonHash = {
	'g1': 'Hiçbir anlama sahip olmayan bir sayfaydı',
	'g2': 'Deneme amaçlı olarak açılmış bir sayfaydı',
	'g3': 'Vandalizm amaçlı olarak açılmış bir sayfaydı',
	'g4': 'Daha önce silinmiş bir sayfanın aynısı ya da benzeriydi',
	'g6': 'Önemli değişiklik geçirmemiş sayfayı açan kullanıcı silinmesini talep etti',
	'g7': 'Silinen ya da var olmayan bir sayfanın tartışma sayfasıydı',
	'g8': 'İşlem, temizlik amacıyla gerçekleştirildi',
	'g9': 'Telif hakkı ihlali ya da yoğun şüphe söz konusuydu',
	'g10': 'Saldırı amaçlı bir sayfa veya dosyaydı',
	'g11': 'Yoğun reklam içeriyordu',
	'g12': 'İlgili sayfanın içeriğini geliştirmeye yönelik olmayan tartışma sayfasıydı',
	'y1': 'Var olmayan bir sayfa için kullanılan bir yönlendirme sayfasıydı',
	'y2': 'Büyük bir yazım hatası içeren bir yönlendirme sayfasıydı',
	'y3': 'Farklı isim alanları arasında kullanılan bir yönlendirme sayfasıydı',
	'k1': 'Boş bir kategoriydi',
	'k2': 'İsmi değiştirilen ve kullanımdan kaldırılan bir kategoriydi',
	'k3': 'Şablonların kullandığı ve kullanımdan kaldırılan bir kategoriydi',
	'm1': 'Taslak madde kriterlerini karşılamayan bir maddeydi',
	'm2': 'Başka bir Wikimedia projesinde yer alan yabancı dildeki bir maddeydi',
	'm3': 'İçeriğe sahip olmayan bir maddeydi', 
	'm4': 'Madde, başka bir Wikimedia projesine aktarıldı',
	'm6': '[[VH:KD|Kayda değerlik kriterlerini]] karşılamayan konuya sahip bir maddeydi',
	'm8': 'Düzen ve ansiklopediklik açısından uygun olmayan bir maddeydi',
	'd1': 'Vikipedi\'de veya Wikimedia Commons\'ta bulunan bir dosyanın kopyası ya da seçkin olmayan bir resim için hatalı şekilde açılmış bir sayfaydı',
	'd2': 'Boş veya bozuk bir dosyaydı',
	'd3': 'Lisansı telif politikasına uygun olmayan bir dosyaydı',
	'd4': 'Lisans veya kaynak bilgileri belirsiz olan bir dosyaydı',
	'd5': 'Kullanılmayan bir adil kullanım dosyasıydı',
	'd6': 'Adil kullanımı hatalı belirtilmiş bir dosyaydı',
	'd7': 'Kullanımı gerekçelendirilmemiş bir dosyaydı',
	'd8': 'Herhangi bir sayfada kullanılmayan ansiklopedik açıdan değersiz bir dosyaydı',
	'd9': 'Kullanışsız bir dosyaydı',
	'd10': 'Vektörel bir dosyaydı',
	'd11': 'Telif durumu şüpheli bir dosyaydı',
	'd12': 'Tanımlanamayan bir dosyaydı',
	'd13': 'İçeriği kaynaklandırılamayan bir dosyaydı',
	'ks2': 'Var olmayan bir kullanıcı hesabı için açılmış bir kullanıcı sayfasıydı',
	'ks3': 'Ağırlıklı olarak adil kullanım resimlerinden oluşan bir galeriydi',
	'ş1': 'Bölücü ve kışkırtıcı bir şablondu',
	'ş2': 'Kullanılmayan bir şablondu',
	'p1': 'Madde kriterlerini karşılamayan bir portaldı',
	'p2': 'Etkin olmayan veya gerekli kriterleri karşılamayan bir portaldı'
};

twinklespeedy.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( "Görünüşe göre sayfa mevcut değil, belki de önceden silinmiştir" );
				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( 'Sayfayı oluşturan kullanıcının kullanıcı adı alınıyor', query, twinklespeedy.callbacks.sysop.openUserTalkPage );
				wikipedia_api.params = self.params;
				wikipedia_api.post();
			}
			
			var query = { 
				'title': wgPageName, 
				'action': 'delete'
			};

			var wikipedia_wiki = new Wikipedia.wiki( 'Sayfa siliniyor', query, twinklespeedy.callbacks.sysop.deletePage );
			wikipedia_wiki.params = self.params;
			wikipedia_wiki.followRedirect = false;
			wikipedia_wiki.get();

			if( 
				TwinkleConfig.deleteTalkPageOnDelete && 
				self.params.normalized != 'd8' &&
				wgNamespaceNumber % 2 == 0 && 
				wgNamespaceNumber != Namespace.USER && 
				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( 'Tartışma sayfası siliniyor', query, twinklespeedy.callbacks.sysop.deleteTalkPage );
				wikipedia_wiki.params = self.params;
				wikipedia_wiki.followRedirect = false;
				wikipedia_wiki.get();
			}

			if( wgNamespaceNumber == 6 && self.params.normalized != 'd8' ) {
				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( 'Dosya bağlantıları alınıyor', query, twinklespeedy.callbacks.sysop.unlinkImageInstancesMain );
				wikipedia_api.params = self.params;
				wikipedia_api.post();
			}
			var doOrphan = TwinkleConfig.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( 'Grabbing backlinks', query, twinklespeedy.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( 'Yönlendirmeler alınıyor', query, twinklespeedy.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('Opening user talk page edit form for user ' + user, 'opening');
			
			var query = {
				'title': 'Kullanıcı mesaj:' + user,
				'action': 'edit',
				'preview': 'yes',
				'vanarticle': wgPageName.replace(/_/g, ' ')
			};
			switch( TwinkleConfig.userTalkPageMode ) {
			case 'tab':
				window.open( wgServer + wgScriptPath + '/index.php?' + QueryString.create( query ), '_tab' );
				break;
			case 'blank':
				window.open( wgServer + 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( wgServer + wgScriptPath + '/index.php?' + QueryString.create( query ), 'twinklewarnwindow', 'location=no,toolbar=no,status=no,directories=no,scrollbars=yes,width=1200,height=800' );
				break;
			}
			
			statusIndicator.info( 'tamamlandı' );
		},
		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('Sayfaya verilmiş bağlantılar çıkarılıyor', '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 + ' (tamamlandı)' );
					Wikipedia.removeCheckpoint();
				}
			}
			var onloaded = onsuccess;

			var onloading = function( self ) {}


			Wikipedia.addCheckpoint();
			if( snapshot.snapshotLength == 0 ) {
				statusIndicator.info( '%100 (tamamlandı)' );
				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 + " sayfasındaki bağlantılar çıkarılıyor", query, twinklespeedy.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': "([[VH:HS#" + self.params.normalized.toUpperCase() + "|VH:HS - " + self.params.normalized.toUpperCase() + "]]) uyarınca hızlı silinen " + self.params.page + " adlı sayfaya verilmiş iç bağlantılar çıkarıldı. " + TwinkleConfig.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('Yönlendirmeler siliniyor', '%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 + ' (tamamlandı)' );
					Wikipedia.removeCheckpoint();
				}
			}
			var onloaded = onsuccess;

			var onloading = function( self ) {}


			Wikipedia.addCheckpoint();
			if( snapshot.snapshotLength == 0 ) {
				statusIndicator.info( '%100 (tamamlandı)' );
				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 + " adlı sayfa siliniyor", query, twinklespeedy.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, file deletion is b0rked :(
				form = this.responseXML.getElementsByTagName( 'form' )[0];
				var postData = {
					'wpDeleteReasonList': 'other',
					'wpReason': "[[VH:HS#Y1|Yönlendirme 1]] kriteri uyarınca silindi. Yönlendirilmiş olduğu silinmiş sayfa: \"" + wgPageName + "\"." + TwinkleConfig.deletionSummaryAd,
					'wpEditToken': form.wpEditToken.value
				}
			} else {

				var postData = {
					'wpWatch': form.wpWatch.checked ? '' : undefined,
					'wpDeleteReasonList': 'other',
					'wpReason': "[[VH:HS#Y1|Yönlendirme 1]] kriteri uyarınca silindi. Yönlendirilmiş olduğu silinmiş sayfa: \"" + wgPageName + "\"." + TwinkleConfig.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('Dosya, kullanıldığı yerlerden çıkarılıyor ', '%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 + ' (tamamlandı)' );
					Wikipedia.removeCheckpoint();
				}
			}
			var onloaded = onsuccess;

			var onloading = function( self ) {}


			Wikipedia.addCheckpoint();
			if( snapshot.snapshotLength == 0 ) {
					statusIndicator.info( '%100 (tamamlandı)' );
					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 + " adlı sayfadaki bağlantılar çıkarılıyor", query, twinklespeedy.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, 'Dosya silindiği için kapsam dışında bırakıldı' );

			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': "([[VH:HS#" + self.params.normalized.toUpperCase() + "|VH:HS - " + self.params.normalized.toUpperCase() + "]]) uyarınca hızlı silinen " + self.params.image + " adlı dosya, sayfadan çıkarıldı; " + TwinkleConfig.deletionSummaryAd,
				'wpTextbox1': text
			};
			self.post( postData );
		},
		deletePage: function( self ) {
			var form = this.responseXML.getElementById( 'deleteconfirm' );
			if( ! form ) { // Hell, file deletion is b0rked :(
				form = this.responseXML.getElementsByTagName( 'form' )[0];
				var postData = {
					'wpDeleteReasonList': 'other',
					'wpReason': "[[VH:HS#" + self.params.normalized.toUpperCase() + "|VH:HS - " + self.params.normalized.toUpperCase() + "]] kriteri uyarınca hızlı silindi. " + self.params.reason + "." + TwinkleConfig.deletionSummaryAd,
					'wpEditToken': form.wpEditToken.value
				}
				self.post( postData );
			} else {

				var postData = {
					'wpWatch': (self.params.watch || form.wpWatch.checked) ? '' : undefined,
					'wpDeleteReasonList': 'other',
					'wpReason': "[[VH:HS#" + self.params.normalized.toUpperCase() + "|VH:HS - " + self.params.normalized.toUpperCase() + "]] kriteri uyarınca hızlı silindi. " + self.params.reason + "." + TwinkleConfig.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': "[[VH:HS#G7|Genel 7]] kriteri uyarınca silindi. Silinen ya da var olmayan bir sayfanın tartışma sayfasıydı." + TwinkleConfig.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( "Görünüşe göre sayfa mevcut değil; belki de önceden silinmiştir" );
				return;
			}
			var query = { 
				'title': wgPageName, 
				'action': 'submit'
			};

			var wikipedia_wiki = new Wikipedia.wiki( 'Sayfa etiketleniyor', query, twinklespeedy.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;

			self.statelem.status( 'Sayfadaki etiketler kontrol ediliyor...' );

			var tag = /(\{\{(?:sil?|sil)\|?.*?\}\})/.exec( text );

			if( tag ) {
				self.statelem.error( [ htmlNode( 'strong', tag[0] ) , " etiketi zaten sayfaya yerleştirilmiş." ] )
				return;
			}

			var xfd = /(\{\{(?:[rsaitcm]fd|md1)[^{}]*?\}\})/i.exec( text );

			if( xfd && !confirm( "Silinmeye ilişkin " + xfd[0] + " şablonu zaten sayfaya eklenmiş durumda, yine de SİL şablonu eklemek istiyor musunuz?" ) ) {
				return;
			}
			var code;
			switch( self.params.normalized ) {
				case 'ş1':
					var rationale = prompt( 'Lütfen bu şablonun neden silinmesi gerektiğine dair bir gerekçe sunun:' );
					if (rationale == null || rationale == '') {
						self.statelem.error( 'Kullanıcı tarafından iptal edildi.' );
						return;
					}
					code = "\{\{sil|" +  self.params.value + "-" + rationale + "\}\}";
					break;
				case 'd1':
					var filename = prompt( 'Lütfen Commons üzerindeki dosyanın ismini girin:', wgPageName.replace( '_', ' ' ) );
					if (filename == null)
					{
						self.statelem.error( 'Kullanıcı tarafından iptal edildi.' );
						return;
					}
					if( filename == '' ) {
						filename = wgPageName.replace( '_', ' ' );
					}
					var date = new Date();
					var code = "\{\{sil|" + self.params.value + "|2=" + filename + "\}\}";
					break;
				case 'g8':
					switch( self.params.value ) {
						case 'histmerge':
							var title = prompt( 'Lütfen geçmişi birleştirilecek sayfanın adını girin:' );
							if (title == null)
							{
								self.statelem.error( 'Kullanıcı tarafından iptal edildi.' );
								return;
							}
							code = "\{\{sil|" +  self.params.value + "-" + title + "\}\}";
							break;
						default:
							code = "\{\{sil|" +  self.params.value + "\}\}";
							break;
					}
					break;
				case 'g10':
					text = ''; //blank attack pages.
					code = "\{\{sil|" +  self.params.value + "\}\}";
					break; 
				case 'g9':
					var url = prompt( 'Lütfen varsa "http://": öneki ile URL\'yi girin' );
					if (url == null)
					{
						self.statelem.error( 'Kullanıcı tarafından iptal edildi.' );
						return;
					}
					code = "\{\{sil|" +  self.params.value + "-" + url + "\}\}";
					break;
				default:
					code = "\{\{sil|" +  self.params.value + "\}\}";
					break;
			}

			if( TwinkleConfig.markSpeedyPagesAsPatrolled && self.params.rcid != '' ) {
				var query = {
					'title': wgPageName,
					'action': 'markpatrolled',
					'rcid': self.params.rcid
				};

				var wikipedia_wiki = new Wikipedia.wiki( 'Sayfa, kontrol edilmiş olarak işaretleniyor', 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 != ( 'Kullanıcı mesaj:' + user ) ) {
					var query = {
						'title': 'Kullanıcı mesaj:' + user,
						'action': 'submit'
					};
					var wikipedia_wiki = new Wikipedia.wiki( 'Sayfayı oluşturan kullanıcıya bilgi veriliyor (' + user + ')', query, twinklespeedy.callbacks.user.userNotification );
					wikipedia_wiki.params = self.params;
					wikipedia_wiki.get();
				} else {
					Status.info( 'Bilgi', 'Mevcut sayfa, sayfayı oluşturan kullanıcının mesaj sayfası, bildirim iptal ediliyor' );
				}
			}

			if( self.params.usertalk ) {
				var wikipedia_api = new Wikipedia.api( 'Sayfayı oluşturan kullanıcının verileri alınıyor', query, callback );
				wikipedia_api.params = self.params;
				wikipedia_api.post();
			}

			//wrap SD template in noinclude tags if we are in template space.
			//won't work with userboxes in userspace, or any other transcluded page outside template space
			if (self.params.wgCanonicalNamespace == "Template") code = "<noinclude>" + code + "</noinclude>";

			//Remove tags that become superfluous with this action
			text = text.replace(/{\{\s*(New unreviewed article|Userspace draft)\s*(\|(?:{{[^{}]*}}|[^{}])*)?}}\s*/ig, "");

			var postData = {
				'wpMinoredit': TwinkleConfig.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': "Sayfanın hızlı silinmesi istendi ([[VH:HS#" + self.params.normalized.toUpperCase() + "|VH:HS - " + self.params.normalized.toUpperCase() + "]])." + TwinkleConfig.summaryAd,
				'wpTextbox1': code + "\n" + text
			};
			self.post( postData );
		},
		userNotification: function( self ) {
			var nowelcome = TwinkleConfig.welcomeUserOnSpeedyDeletionNotification.indexOf( self.params.normalized ) == -1;
			var form = self.responseXML.getElementById( 'editform' );
			var text = form.wpTextbox1.value;
			text += "\n\{\{kopyala:hızlı silme bildirimi|1=" + wgPageName + "|2=" + self.params.value + (nowelcome?"|nowelcome=yes":"") +
				(typeof(self.params.key1)!=typeof(undefined)?("|key1="+self.params.key1+"|value1="+self.params.value1):"")+
				"\}\}\n\~\~\~\~";
			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 + '\]\] adlı sayfa hızlı silinmeye aday. ' + TwinkleConfig.summaryAd,
				'wpTextbox1': text
			};
			self.post( postData );
		}
	}
}

twinklespeedy.callback.evaluateSysop = function twinklespeedyCallbackEvaluateSysop(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 twinklespeedy.callback.evaluateUser(e);
	}

	var value = e.target.value;
	var normalized = twinklespeedy.normalizeHash[ value ];

	var params = {
		value: value,
		normalized: normalized,
		watch: TwinkleConfig.watchSpeedyPages.indexOf( normalized ) != -1,
		reason: twinklespeedy.reasonHash[ value ],
		openusertalk: TwinkleConfig.openUserTalkPageOnSpeedyDelete.indexOf( normalized ) != -1
	};
	Status.init( e.target.form );

	var query = {
		'action': 'query',
		'titles': wgPageName
	}
	var wikipedia_api = new Wikipedia.api( 'Sayfanın var olup olmadığı kontrol ediliyor', query, twinklespeedy.callbacks.sysop.main );
	wikipedia_api.params = params;
	wikipedia_api.post();
}

twinklespeedy.callback.evaluateUser = function twinklespeedyCallbackEvaluateUser(e) {
	wgPageName = wgPageName.replace( /_/g, ' ' ); // for queen/king/whatever and country!
	var value = e.target.value;
	var normalized = twinklespeedy.normalizeHash[ value ];

	var params = {
		value: value,
		normalized: normalized,
		watch: TwinkleConfig.watchSpeedyPages.indexOf( normalized ) != -1,
		usertalk: TwinkleConfig.notifyUserOnSpeedyDeletionNomination.indexOf( normalized ) != -1 && e.target.form.notify.checked,
		rcid: QueryString.exists( 'rcid' ) ? QueryString.get( 'rcid' ) : '',
		wgCanonicalNamespace : wgCanonicalNamespace
	};

	Status.init( e.target.form );

	Wikipedia.actionCompleted.redirect = wgPageName;
	Wikipedia.actionCompleted.notice = "Etiketleme tamamlandı";

	var query = {
		'action': 'query',
		'titles': wgPageName
	}

	var wikipedia_api = new Wikipedia.api( 'Sayfanın var olup olmadığı kontrol ediliyor', query, twinklespeedy.callbacks.user.main );
	wikipedia_api.params = params;
	wikipedia_api.post();

}