User:Ipatrol/bitbox.js

//

Simplevote.afd = new Object();

if( typeof( SimplevoteConfig.useAfdIcons ) == 'undefined' ) {

SimplevoteConfig.useAfdIcons = true;

}

$( function() {

Simplevote.afd.normal();

}

);

var catlinks=document.getElementById("catlinks");

Simplevote.afd.normal = function() {

if document.write(catlinks.search(/Category:Non-talk_pages_that_are_automatically_signed|Category:Non-talk_pages_with_subpages_that_are_automatically_signed/) != -1||wgNamespaceNumber = 5||wgPageName.indexOf( 'Wikipedia:Articles_for_deletion/Log/') != -1{ // yes its redundant, but it works for safety purposes

// afdhelper code goes here

var anchors = new Array();

var oldanchors = document.getElementById('bodyContent').getElementsByTagName('a');

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

anchors[i] = oldanchors[i];

}

var url_re = /\?title= + var wgPageNamen\/([^&]+)&action=edit&/;

var url, matches;

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

if (!(matches = anchors[i].href.match(url_re)) || (matches[1].substr(0, 4) == 'Log/')) continue;

var article = matches[1];

var na = document.createElement('a');

var query = new QueryString( anchors[i].href.split('?',2)[1].toString() );

var link = query.get('title');

na.href = "javascript:Simplevote.afd.voteon('"+escape(link).replace(/_/g,' ')+"')";

na.title = "Vote on deletion of "+unescape(link).replace(/_/g,' ').split('/',2)[1];

var inlink = document.createElement('sup');

inlink.appendChild(document.createTextNode('vote'));

na.appendChild(inlink);

anchors[i].parentNode.insertBefore(na, anchors[i].nextSibling);

}

}

}

Simplevote.afd.voteon = function(link) {

var Window = new SimpleWindow( 600, 200 );

Window.setTitle( "Create a vote" );

var form = new QuickForm( Simplevote.afd.voteon.evaluate );

var categories = form.append( {

type: 'select',

name: 'vote',

label: 'Select vote: '

// event: twinklearv.callback.change_category

} );

if (wgPageName.indexOf( 'Wikipedia:Articles_for_deletion/Log/') != -1 ){

categories.append( {

type: 'option',

label: 'Delete',

value: 'Symbol delete vote.svg|Delete'

} );

categories.append( {

type: 'option',

label: 'Keep',

value: 'Symbol keep vote.svg|Keep'

} );

categories.append( {

type: 'option',

label: 'Speedy delete',

value: 'Symbol speedy vote.svg|Speedy delete'

} );

categories.append( {

type: 'option',

label: 'Speedy keep',

value: 'Symbol speedy keep.svg|Speedy keep'

} );

categories.append( {

type: 'option',

label: 'SNOW delete',

value: 'Symbol speedy delete vote.svg| delete'

} );

categories.append( {

type: 'option',

label: 'Keep and cleanup',

value: 'Symbol keep vote.svg|Ambox style.png|Keep and cleanup'

} );

categories.append( {

type: 'option',

label: 'Redirect',

value: 'Symbol redirect vote.svg|Redirect'

} );

categories.append( {

type: 'option',

label: 'Merge',

value: 'Symbol merge vote.svg|Merge'

} );

categories.append( {

type: 'option',

label: 'Withdraw',

value: 'Symbol unsupport vote.svg|Withdrawn'

} );

}

else

{

categories.append( {

type: 'option',

label: 'Support',

value: 'Symbol support vote.svg|Support'

} );

categories.append( {

type: 'option',

label: 'Oppose}',

value: 'Symbol oppose vote.svg|Oppose'

} );

categories.append( {

type: 'option',

label: 'Full support',

value: 'Symbol full support vote.PNG|Full support'

} );

categories.append( {

type: 'option',

label: 'Full oppose',

value: 'Symbol full oppose vote.svg|Full oppose'

} );

categories.append( {

type: 'option',

label: 'Deffer',

value: 'Symbol deferred.svg|Deffer'

} );

categories.append( {

type: 'option',

label: 'Conditional support',

value: 'Symbol conditional support.svg|Conditional support'

} );

categories.append( {

type: 'option',

label: 'Unlikely',

value: 'Symbol unlikely.svg|Unlikely'

} );

categories.append( {

type: 'option',

label: 'Possible',

value: 'Symbol possible vote.svg|Possible'

} );

categories.append( {

type: 'option',

label: 'Weak support',

value: 'Symbol partial support vote.svg|Weak support'

} );

categories.append( {

type: 'option',

label: 'Wait',

value: 'Symbol wait alternative.svg|Wait'

} );

}

categories.append( {

type: 'option',

label: 'Neutral',

value: 'Symbol neutral vote.svg|Neutral'

} );

categories.append( {

type: 'option',

label:'Comment',

name: 'Symbol comment vote.svg|Comment'

} );

categories.append( {

type: 'option',

label: 'Opinion',

value: 'Symbol opinion vote.svg|Opinion'

} );

categories.append( {

type: 'option',

label: 'Question',

value: 'Symbol question.svg|Question'

} );

categories.append( {

type: 'option',

label: 'Note',

value: 'Symbol note.svg|Note'

} );

form.append( {

type: 'hidden',

name: 'link',

value: link

} );

form.append( {

type: 'textarea',

name: 'reason',

label: 'Comment:'

} );

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

var result = form.render();

Window.setContent( result );

Window.display();

Simplevote.afd.voteon.evaluate = function(e) {

var form = e.target;

// alert( form.vote.value + ' on ' + form.link.value + ' for reason "' + form.reason.value + '"' );

var params = {

vote: form.vote.value,

// article: form.link.value, // just in case, hopefully temp as it is unneccesary

reason: form.reason.value

};

var query = {

'title': form.link.value,

'action': 'submit'

};

Status.init( form );

Wikipedia.actionCompleted.redirect = null; // we will try null and see if it works, was previously wgPageName

Wikipedia.actionCompleted.notice = "Adding vote";

var wikipedia_wiki = new Wikipedia.wiki( 'Grabbing vote page for article ' + form.link.value.split('/',2)[1], query, Simplevote.afd.voteon.callbacks.main );

wikipedia_wiki.params = params;

wikipedia_wiki.get();

}

Simplevote.afd.voteon.callbacks = {

main: function(self) {

// code to make the vote goes here - self.params.vote, and self.params.reason are available - responseXML should be available too

var rawvote = self.params.vote;

var reason = self.params.reason;

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

if( !form ) {

// Status.error( 'Failed to retrieve edit form.' );

return;

}

var text = form.wpTextbox1.value; // now we have it in a nice var, we can do various operations on it

// Status.info( 'Automatically adding vote to page text...' );

var votearr = rawvote.split('|');

var votetext = votearr[votearr.length-1];

if(reason != '') {

temptext = '\'\'\'' + votetext + '\'\'\ + reason + ' ~~' + '~~';

} else {

temptext = '\'\'\'' + votetext + '\'\'\' ~~' + '~~';

}

for(var i=0; i

if(i==0) {

images = '15px';

} else {

images += '15px';

}

}

if(SimplevoteConfig.useAfdIcons) {

temptext = '\n*' + temptext + ' ' + images;

} else {

temptext = '\n*' + temptext;

}

if(votetext == 'Comment') {

summary = 'Added ' + votetext.toLowerCase() + SimplevoteConfig.summaryAd + '.';

} else {

summary = 'Voted ' + votetext.toLowerCase() + SimplevoteConfig.summaryAd + '.';

}

text += temptext

// alert(text); // DEBUG

var postData = {

'wpMinoredit': undefined,

'wpWatchthis': undefined,

'wpStarttime': form.wpStarttime.value,

'wpEdittime': form.wpEdittime.value,

'wpAutoSummary': form.wpAutoSummary.value,

'wpEditToken': form.wpEditToken.value,

'wpSummary': summary,

'wpTextbox1': text

};

// Status.info( 'Saving changes...' );

self.post( postData );

// Status.info( 'Done' )

}

}

//