//<pre><nowiki>
//From WP:US/S/Get Tidy Title, a prereq for my AutoTag script
function get_tidy_title()
{
var editlk = document.getElementById('ca-edit').getElementsByTagName('a')[0].href;
// cut everything up to "title=" from the start and everything past "&action=edit" from the end
editlk = editlk.substring(editlk.indexOf('title=') + 6, editlk.lastIndexOf('&action=edit'));
return editlk;
}
function showatmenu()
{
if(document.getElementById("atmenu").style.display=="none")
document.getElementById("atmenu").style.display="block";
else
document.getElementById("atmenu").style.display="none";
}
// AutoTag's tagging function.
function atspeedy(dbplate)
{
var atmenuhtm="<TABLE CLASS='atmenu' STYLE='background:#FFDDDD; width:100%'><TR><TD>";
//This 'form' is a bit unusual. The names of some of the hidden inputs are carefully
//selected so that an edit-page window will come up when the form is submitted;
//for instance, <INPUT TYPE='hidden' NAME='action' VALUE='edit'> becomes ?action=edit
//in the bar when the form is submitted! So although the page appears to be submitting
//to itself, that's actually just so we hit /w/index.php or the /wiki/User talk: page
//(either works with action=edit). Other inputs are used by AutoTag to finish off the
//edit and to prompt the user for information (such as sig format). I have no idea how
//portable all this is, but it seems to work in IE.
atmenuhtm+="<FORM ACTION='"+location.href+"' METHOD='GET'>";
atmenuhtm+="<INPUT TYPE='hidden' NAME='action' VALUE='edit'/>";
atmenuhtm+="<INPUT TYPE='hidden' NAME='withautotag' VALUE='tag'/>";
var pgTitle=get_tidy_title();
atmenuhtm+="<INPUT TYPE='hidden' NAME='title' VALUE='"+pgTitle+"'/>";
var paramneeded;
if(dbplate.indexOf("!")==0)
{
dbplate=dbplate.substr(1);
paramneeded=true;
}
atmenuhtm+="<INPUT TYPE='hidden' NAME='autotagflag' VALUE='"+(paramneeded?1:0)+"'/>";
atmenuhtm+="<NOBR><B>You have chosen to tag this page with {"+"{"+dbplate+"}}.</B></NOBR><BR/>";
var edsum="Tagged with {"+"{"+dbplate+"}} using [[WP:US|user scripts]]";
atmenuhtm+="<NOBR>Edit summary: <INPUT TYPE='text' NAME='autotagsum' "+
"VALUE=\""+edsum+"\"/></NOBR><BR/>";
if(paramneeded&&dbplate.indexOf("db-")==0)
atmenuhtm+="<NOBR>Original location: ";
else if(paramneeded)
atmenuhtm+="<NOBR>Reason: ";
if(paramneeded) //This could be changed to guess which page you want
atmenuhtm+="<INPUT TYPE='text' NAME='autotag-n' VALUE=''/></NOBR><BR/>";
atmenuhtm+="<NOBR><INPUT TYPE='radio' NAME='autotagpre' VALUE='0' CHECKED>Do the "+
"edit</INPUT>";
atmenuhtm+="<INPUT TYPE='radio' NAME='autotagpre' VALUE='1'>Preview only</INPUT></NOBR><BR/>";
atmenuhtm+="<INPUT TYPE='hidden' NAME='autotagdp' VALUE='"+dbplate+"'/>";
atmenuhtm+="<INPUT TYPE='submit' VALUE='Tag with AutoTag'/>";
atmenuhtm+="</FORM></TD><TD><B><I>Reminder:</I></B><BR/>";
if(dbplate.indexOf("db-")==0)
atmenuhtm+="Please only use the reasons given for speedy deletions. In other cases, use PROD or XfD.";
else if(dbplate.indexOf("prod")==0)
atmenuhtm+="Please remember to check whether the page has been prodded or XfDd before; each page can only be prodded once.";
atmenuhtm+="<BR/>If you have not used this tag before, please preview it to check that it's appropriate.</TR></TABLE>";
document.getElementById("atform").innerHTML=atmenuhtm;
document.getElementById("atform").scrollIntoView(true);
}
// AutoTag's warning function. warnplate is the template to use (possibly check for
// -n somehow?), blockreq, if true, signifies that instead of a warning a request to
// block should be posted on AIV, AN/I, AN3, or PAIN, or a protection request at RPP.
function atwarn(warnplate,blockreq,edsum,warnlevel)
{
if(blockreq)
{ //Just link to the appropriate page for the time being; this can be enhanced
//(especially wrt AIV) later
location.href="http://en.wikipedia.org/wiki/WP:"+warnplate;
return;
}
var atmenuhtm="<TABLE CLASS='atmenu' STYLE='background:#FFDDDD; width:100%'><TR><TD>";
//This 'form' is a bit unusual. The names of some of the hidden inputs are carefully
//selected so that an edit-page window will come up when the form is submitted;
//for instance, <INPUT TYPE='hidden' NAME='action' VALUE='edit'> becomes ?action=edit
//in the bar when the form is submitted! So although the page appears to be submitting
//to itself, that's actually just so we hit /w/index.php or the /wiki/User talk: page
//(either works with action=edit). Other inputs are used by AutoTag to finish off the
//edit and to prompt the user for information (such as sig format). I have no idea how
//portable all this is, but it seems to work in IE.
atmenuhtm+="<FORM ACTION='"+location.href+"' METHOD='GET'>";
atmenuhtm+="<INPUT TYPE='hidden' NAME='action' VALUE='edit'/>";
atmenuhtm+="<INPUT TYPE='hidden' NAME='section' VALUE='new'/>";
atmenuhtm+="<INPUT TYPE='hidden' NAME='withautotag' VALUE='warn'/>";
var pgTitle=get_tidy_title();
atmenuhtm+="<INPUT TYPE='hidden' NAME='title' VALUE='"+pgTitle+"'/>";
var siginplate;
var npossible;
var nneeded;
if(warnplate.indexOf("~")==0)
{
warnplate=warnplate.substr(1);
siginplate=true;
}
if(warnplate.indexOf("!")==0)
{
warnplate=warnplate.substr(1);
nneeded=true;
}
if(warnplate.indexOf("|")==0)
{
warnplate=warnplate.substr(1);
npossible=true;
}
atmenuhtm+="<INPUT TYPE='hidden' NAME='autotagflag' VALUE='"+((siginplate?1:0)+
(nneeded?2:0)+(npossible?4:0))+"'/>";
atmenuhtm+="<NOBR><B>You have chosen to tag this page with {"+"{"+warnplate+"}}.</B></NOBR><BR/>";
atmenuhtm+="<NOBR>Name of section: <INPUT TYPE='text' NAME='autotagsum' "+
"VALUE=\""+edsum+"\"/></NOBR><BR/>";
if(nneeded||npossible)
atmenuhtm+="<NOBR>Pertaining to edits to ";
if(nneeded)
atmenuhtm+="(compulsory): ";
if(npossible)
atmenuhtm+="(optional): ";
if(nneeded||npossible) //This could be changed to guess which page you want
atmenuhtm+="<INPUT TYPE='text' NAME='autotag-n' VALUE=''/></NOBR><BR/>";
atmenuhtm+="<NOBR>Your signature: <INPUT TYPE='text' NAME='autotagsig' VALUE='~~"+
"~~'/></NOBR><BR/>";
atmenuhtm+="<NOBR><INPUT TYPE='radio' NAME='autotagpre' VALUE='0' CHECKED>Do the "+
"edit</INPUT>";
atmenuhtm+="<INPUT TYPE='radio' NAME='autotagpre' VALUE='1'>Preview only</INPUT></NOBR><BR/>";
atmenuhtm+="<INPUT TYPE='hidden' NAME='autotagwp' VALUE='"+warnplate+"'/>";
atmenuhtm+="<INPUT TYPE='submit' VALUE='Warn this user with AutoTag'/>";
atmenuhtm+="</FORM></TD><TD><B><I>Level "+warnlevel+" warning:</I></B><BR/>";
if(warnlevel==0) atmenuhtm+="Rules reminder. For good-faith mistakes or experienced users.";
if(warnlevel==1) atmenuhtm+="No previous warnings, or teaching new users the rules. Mildly worded.";
if(warnlevel==2) atmenuhtm+="Simple statement of the situation. Use if a level 1 warning didn't work.";
if(warnlevel==3) atmenuhtm+="Warning, and threat of a block. For repeat offenses.";
if(warnlevel==4) atmenuhtm+="Final warning. For serious or repeat offenses.";
atmenuhtm+="<BR/>If you have not issued this warning before, please preview it to check that it's appropriate.</TR></TABLE>";
document.getElementById("atform").innerHTML=atmenuhtm;
document.getElementById("atform").scrollIntoView(true);
}
//From [[User:Lupin/autoedit.js]]. Renamed because I know many users use popups,
//and I don't want to cause a naming conflict. Edited to decode + to space as well,
//and to use a decoding function that handles more characters.
function atGetParamValue(paramName) {
var cmdRe=RegExp('[&?]'+paramName+'=([^&]*)');
var h=document.location;
var m;
if (m=cmdRe.exec(h)) {
try {
while(m[1].indexOf('+')!=-1)
{
m[1]=m[1].substr(0,m[1].indexOf('+'))+" "+m[1].substr(m[1].indexOf('+')+1);
}
return decodeURIComponent(m[1]);
} catch (someError) {}
}
return null;
};
//AutoTag's automatic editing function: for user warnings and tags
$(function() {
if(location.href.indexOf("withautotag=warn")!=-1)
{
document.editform.wpSummary.value=atGetParamValue('autotagsum')+
'<!--using [[WP:US|user scripts]]-->';
document.editform.wpTextbox1.value='{'+'{subst:'+atGetParamValue('autotagwp');
var atf=atGetParamValue('autotagflag');
//Only 0, 1, 2, 4 supported for the time being
if(atf=='4'&&atGetParamValue('autotag-n')=='') atf='0';
if(atf=='2'&&atGetParamValue('autotag-n')=='')
{
alert("You didn't enter a page, although this is required.");
return; //Leave the user in edit mode
}
if(atf=='0') document.editform.wpTextbox1.value+='}} '+atGetParamValue('autotagsig');
if(atf=='1') document.editform.wpTextbox1.value+='|sig='+
atGetParamValue('autotagsig')+'}}';
if(atf=='2') document.editform.wpTextbox1.value+='|'+atGetParamValue('autotag-n')+
'}} '+atGetParamValue('autotagsig');
if(atf=='4') document.editform.wpTextbox1.value+='-n|'+atGetParamValue('autotag-n')+
'}} '+atGetParamValue('autotagsig');
if(atGetParamValue('autotagpre')=='1')
document.editform['wpPreview'].click();
else
document.editform['wpSave'].click(); //commented during testing to avoid accidents
}
if(location.href.indexOf("withautotag=tag")!=-1)
{
var oldcontents=document.editform.wpTextbox1.value;
document.editform.wpSummary.value=atGetParamValue('autotagsum');
document.editform.wpTextbox1.value='{'+'{'+atGetParamValue('autotagdp');
var atf=atGetParamValue('autotagflag');
//Don't newline after the tag, to prevent potential newline problems
if(atf=='0') document.editform.wpTextbox1.value+='}}'+oldcontents;
if(atf=='1') document.editform.wpTextbox1.value+='|'+atGetParamValue('autotag-n')+'}}'+oldcontents;
if(atGetParamValue('autotagpre')=='1')
document.editform['wpPreview'].click();
else
document.editform['wpSave'].click(); //commented during testing to avoid accidents
}
})
//The new AutoTag: Place an AutoTag tab on the tab bar
$(function() {
//Don't show on history, special, diff, or old revisions pages
if (location.href.indexOf("action=history") == -1 && location.href.indexOf("action=raw") == -1 && location.href.indexOf("oldid=") == -1 && location.href.indexOf("action=submit") == -1 && location.href.indexOf("Special:") == -1 && location.href.indexOf("Special%3A") == -1)
{
var atmenu;
atmenu=document.createElement("DIV");
addTab("javascript:showatmenu()","AutoTag","ca-autotag","AutoTag","");
atmenu.id="atmenu";
//This may need to change if siteSub's location is changed; it locates the correct
//position for the AutoTag menu to appear (just after the page title, where a tag
//would appear).
document.getElementById("siteSub").insertBefore(atmenu);
atmenu.style.display="none";
if(location.href.indexOf("showatmenu=true") != -1) atmenu.style.display="block";
var atmenuhtm="<B>No AutoTag available for this sort of page.</B>";
if(location.href.indexOf("User_talk:") != -1 || location.href.indexOf("User_talk%3A") != -1)
{
//User Talk namespace
var rownum=1;
var userwarnmatrix=
//Format
// Title0|Title1|Title2-3|Title4
// Description: template0 template1 |template2 ~template3 template4 blockingpage\n
// Precede a template with | if a -n version is available and ~ if it automatically
// includes a sig. If the template is itself -n, precede with !. If no template is
// available, use X.
"Please discuss your changes|Please use the sandbox|Warning|Final warning|"+
"Testing / Generic vandalism (additions): |test0 |test1 |test2 |test3 |test4 AIV\n"+
"Please discuss your changes|Please use the sandbox|Warning|Final warning|"+
"Testing / Generic vandalism (removals): X |test1a |test2a |test3a test4a AIV\n"+
"Please discuss your changes|Please use the sandbox|Warning|Final warning|"+
"Testing / Generic vandalism (page creation): X |test1article |test2article |test3article |test4article AIV\n"+
"X|Please use the sandbox|X|X|"+
"Self-reverted testing: X |test-self X X X X\n"+
"X|Please use the sandbox|Vandalism|Only warning|"+
"Obvious vandalism: X |vw X |bv |test4im AIV\n"+
"X|Please use the sandbox|Warning|Final warning|"+
"Blanking entire pages: X |blank1 |blank2 |blank3 |blank4 AIV\n"+
"Please discuss your page-moves|X|Page-move warning|Final warning|"+
"Renaming pages: |mp0 X |mp2 |mp3 |mp4 AIV\n"+
"X|Please don\\'t add commercial links|Spam warning|Final spam warning|"+
"Spamming: X |spam1 |spam2 |spam3 |spam4 AN/I\n"+
"Be careful with other user's userpages|Be careful with other user's userpages|Userpage vandalism warning|Final userpage vandalism warning|"+
"Userpage vandalism: |tpv0 |tpv1 |tpv2 |tpv3 |tpv4 AIV\n"+
"Please don\\'t remove warnings|Please don\\'t remove warnings|Warning removal|Final warning removal warning|"+
"Removing warnings: wr0 wr1 X wr3 wr4 RPP\n"+
"Neutral point of view|X|Adding personal analysis|Final NPOV warning|"+
"Non-neutral point of view: |NPOV0 X |comment2 |comment3 |comment4 AN/I\n"+
"X|Notability problems; this article may be deleted|X|X|"+
"Notability problems: X !nn-warn X X X X\n"+
"X|Please be careful with copyright|Copyright violations|X|"+
"Copyvio: X !nothanks X !usrcvtext X AN/I\n"+
"X|X|3RR warning|3RR warning|"+
"3RR violations: X X X |3RR 3RR4 AN3\n"+
"About censorship|X|Censorship warning|X|"+
"Censoring: Not_censored X X Not_censored_2 X AN/I\n"+
"X|X|Factual error warning|Final factual error warning|"+
"Adding factual errors: X X |verror2 verror3 verror4 AN/I\n"+
"X|X|Please stay on-topic|X|"+
"Adding off-topic content: X X mess2 X X X\n"+
"X|Humour|Humour warning|Final humour warning|"+
"Inappropriate humour: X |behave X ~funnybut seriously AN/I\n"+
"The Manual of Style|X|Manual of Style warning|X|"+
"Contravening the MOS: mos0 X mos2 mos3 X AN/I\n"+
"X|X|Please don\\'t reformat dates|X|"+
"Reformatting dates: X X dates2 dates3 X AN/I\n"+
"About US/UK English|X|US/UK English warning|Final US/UK English warning|"+
"US/UK English changes: lang0 X lang2 lang3 lang4 AN/I\n"+
"X|X|Articles about royalty|Final warning about royalty|"+
"Royalty stylistic problems: X X rn2 rn3 rn4 AN/I\n"+
"Please use your userpage|Article moved to your userspace|X|X|"+
"Userpage in article space: vanity userfy_warning X X X X\n"+
"X|Please use edit summaries|X|X|"+
"Missing edit summaries: X summary X X X X\n"+
"X|Sign your posts on talk pages|Sign your posts on talk pages|X|"+
"No talk-page signature: X talk_sign sign X X X\n"+
"X|Adding images to articles|Image use warning|Final image use warning|"+
"Adding inappropriate images to pages: X image1 image2 image3 image4 AIV\n"+
"X|X|Overwriting images|X|"+
"Overwriting images inappropriately: X X X imageow3 X AIV\n"+
"Image copyright|X|X|Final image copyright warning|"+
"Image copyright problems: image_copyright X X X insertimage4 AN/I\n"+
"X|X|Personal attack warning|Final personal attack warning|"+
"Personal attacks: X X |npa2 |npa3 |npa4 PAIN\n"+
"X|X|X|Defamation: only warning|"+
"Defamation: X X X X defwarn PAIN\n"+
"X|Please assume good faith|Assuming good faith warning|X|"+
"Assuming bad faith: X agf1 X agf3 X AN/I\n"+
"X|Please try to stay civil|Incivility warning|X|"+
"Incivility: X |civil1 |civil2 X X X\n"+
"X|X|X|X|"+
"Inappropriate username: X X X X X AIV\n"+
"X|X|X|Posting other user\\'s personal info: only warning|"+
"Posting other users' personal info: X X X X pinfo4 PAIN\n"+
"X|X|Don\\'t make legal threats|Legal threats:final warning|"+
"Legal threats: X X threat2 X threat4 AN/I\n"+
"X|Don\\'t remove AfD templates|AfD template removal warning|Final AfD template removal warning|"+
"Removing AfD templates: X drmafd drmafd2 drmafd3 drmafd4 AIV\n"+
"X|Don\\'t remove speedy-delete templates|Speedy-delete template removal warning|Final speedy-delete template removal warning|"+
"Removing speedy templates: X drmspeedy drmspeedy2 drmspeedy3 drmspeedy4 AIV\n"+
"X|Don\\'t remove maintenance notices|X|X|"+
"Removing maintenance notices: X drmmt X X X X\n"+
"X|Don\\'t recreate deleted articles|X|X|"+
"Recreating deleted articles: X recreated X X X X\n"+
"";
atmenuhtm="<DIV ID='atform'></DIV><TABLE CLASS='atmenu' STYLE='background:#EEFFFF;font-size:x-small'>";
while(userwarnmatrix!="")
{
var sum0, sum1, sum23, sum4;
if(rownum%2) atmenuhtm+="<TR>";
sum0=userwarnmatrix.substr(0,userwarnmatrix.indexOf("|"));
userwarnmatrix=userwarnmatrix.substr(userwarnmatrix.indexOf("|")+1);
sum1=userwarnmatrix.substr(0,userwarnmatrix.indexOf("|"));
userwarnmatrix=userwarnmatrix.substr(userwarnmatrix.indexOf("|")+1);
sum23=userwarnmatrix.substr(0,userwarnmatrix.indexOf("|"));
userwarnmatrix=userwarnmatrix.substr(userwarnmatrix.indexOf("|")+1);
sum4=userwarnmatrix.substr(0,userwarnmatrix.indexOf("|"));
userwarnmatrix=userwarnmatrix.substr(userwarnmatrix.indexOf("|")+1);
atmenuhtm+="<TD STYLE='text-align:right'><B>"+userwarnmatrix.substr(0,userwarnmatrix.indexOf(":"));
atmenuhtm+="</B></TD>";
userwarnmatrix=userwarnmatrix.substr(userwarnmatrix.indexOf(":")+2);
var testnum=0;
while(testnum<6)
{
var ttlt;
if(testnum==5)
ttlt=userwarnmatrix.substr(0,userwarnmatrix.indexOf("\n"));
else
ttlt=userwarnmatrix.substr(0,userwarnmatrix.indexOf(" "));
var tnas=""+testnum;
if(tnas=="5")
tnas=ttlt;
else
userwarnmatrix=userwarnmatrix.substr(userwarnmatrix.indexOf(" ")+1);
if(tnas=="X") tnas="---";
if(ttlt=="X")
atmenuhtm+="<TD STYLE='color:#AADDDD'>"+tnas+"</TD>";
else
atmenuhtm+="<TD><A HREF=\"javascript:atwarn('"+ttlt+"',"+(testnum==5?true:false)+",'"+(testnum==0?sum0:testnum==1?sum1:testnum==4?sum4:sum23)+"',"+testnum+");\" STYLE='color:#0000FF'>"+tnas+"</A></TD>";
testnum++;
}
userwarnmatrix=userwarnmatrix.substr(userwarnmatrix.indexOf("\n")+1);
rownum++;
if(rownum%2) atmenuhtm+="</TR>";
}
if(!(rownum%2)) atmenuhtm+="</TR>";
atmenuhtm+="</TABLE>"
}
else
{ //not the User Talk namespace
atmenuhtm="<DIV ID='atform'></DIV><TABLE CLASS='atmenu' STYLE='background:#EEFFFF;font-size:x-small'>";
var speedyg=
//G-type speedy deletions, except G8 (which is talkpage only), and G9 (WP:OFFICE actions
//surely can't be done by non-admins!)
//Format: Code%Tag%Name%Description\n
//Note that a code might be listed more than once if there's more than one
//reason for giving it (e.g. G6). Reasons preceded with ! require a parameter
//referring to the original (wikipage for G6 or website/other source for A8).
"G1%db-nonsense%Patent nonsense%No sense can be made of the page's content.\n"+
"G2%db-test%Test pages%Pages created purely for testing purposes.\n"+
"G3%db-vand%Pure vandalism%Pages created for the purposes of vandalism.\n"+
"G4%db-repost%Recreation%Recreations of previously AfDd, etc. pages.\n"+
"G5%db-ban%Banned user contrib%Page created by a user whilst banned.\n"+
"G6%!db-histmerge%History merge%<U>Destination</U> of a cut-and-paste page move.\n"+
"G6%!db-move%Blocks a move%Page is in the way of a noncontroversial move.\n"+
"G6%db-disambig%1-link dab%Disambiguation page with one link.\n"+
"G6%db-afd%AfD decision%Not deleted after an AfD closed as <I>delete</I>\n"+
"G7%db-author%Mistaken creation%Only one contributor, who created the page by mistake.\n"+
"G10%db-attack%Attack page%Page created purely to attack or disparage its subject.\n"+
"G11%db-spam%Spam%Page is pure spam.\n";
//G8 is a talk page, G9 is WP:OFFICE and therefore likely to be admin-only
var speedyo=
//Same format. Set up as A-space by default, then modified for other spaces if needed.
"A1%db-context%No context%Very short, doesn't provide enough context to expand.\n"+
"A2%db-foreign%Not English%Not in English, and exists on the relevant non-English Wikipedia.\n"+
"A3%db-a3%No content%Consists only of links and rephrasings of the title.\n"+
"A3%db-contact%Attempt to contact%Purely an attempt to contact the subject of the article.\n"+
"A3%db-blankcsd%Blanked CSD%Page is blank, and all revisions were speediable.\n"+
//A4 no longer exists.
"A5%db-transwiki%Transwikied%Pages transwikied after an AfD debate.\n"+
//A6 no longer exists.
"A7%db-bio%Non-notable person%Article about 1+ people with no notability assertion.\n"+
"A7%db-web%Non-notable website%Article about a website with no assertion of importance or significance.\n"+
"A8%!db-copyvio%Speedy copyvio%Copyvio from commercial material within past 48 hours.\n"+
"R1%db-redirnone%Broken redirect%Redirect with a redlinked target.\n"+
"R2%db-rediruser%Userspace redirect%Redirect from article-space to userspace.\n"+
"R3%db-redirtypo%Implausible typo%Redirect from an implausible typo.\n";
//Don't check Image-space yet; that's somewhat complicated.
if(location.href.indexOf("Category:")!=-1)
speedyo=
"C1%db-catempty%Empty category%Empty category for 4 days, with no content.\n"+
//C2 has no speedy tag, as it requires extra action.
"C3%db-catfd%Template category%Category populated only through deleted-template transclusions.\n";
if(location.href.indexOf("User:")!=-1)
speedyo=
"U1%db-userreq%User request%User subpage deletion request by its 'owner'.\n"+
"U2%db-nouser%No such user%Userpage of a non-existent user.\n";
if(location.href.indexOf("Template:")!=-1)
speedyo=
"T1%db-disparage%Divisive template%Divisive and inflammatory template.\n";
if(location.href.indexOf("Portal:")!=-1)
speedyo=
//P1 subreasons are A1 speedy reasons.
"P1:A1%db-context%No context%Very short, doesn't provide enough context to expand.\n"+
"P1:A2%db-foreign%Not English%Not in English, and exists on the relevant non-English Wikipedia.\n"+
"P1:A3%db-a3%No content%Consists only of links and rephrasings of the title.\n"+
"P1:A3%db-contact%Attempt to contact%Purely an attempt to contact the subject of the portal.\n"+
"P1:A3%db-blankcsd%Blanked CSD%Portal is blank, and all revisions were speediable.\n"+
//A4 no longer exists.
"P1:A5%db-transwiki%Transwikied%Portal transwikied after an AfD debate.\n"+
"P1:A6%db-attack%Attack page%Portal created purely to disparage its subject.\n"+
"P1:A7%db-bio%Non-notable person%Portal about 1+ people with no notability assertion.\n"+
"P1:A8%!db-copyvio%Speedy copyvio%Copyvio from commercial material within past 48 hours.\n"+
"P2%db-emptyportal%Empty portal%Portal with no header article or less than 3 subarticles.\n";
if(location.href.indexOf("talk:")!=-1||location.href.indexOf("Talk:")!=-1)
speedyo=
//Talk pages
"G8%db-talk%Broken talk page%Non-user, non-subpage Talk page of non-existent page.\n";
speedyo+=
//Allow prodding for any reason.
"PROD%!subst:prod%Propose deletion%Any other reason, for a not-previously-prodded page.\n";
var dbplate;
while(speedyg!="")
{
atmenuhtm+="<TR>";
if(speedyg!="")
{
atmenuhtm+="<TD>"+speedyg.substr(0,speedyg.indexOf("%"))+"</TD>";
speedyg=speedyg.substr(speedyg.indexOf("%")+1);
dbplate=speedyg.substr(0,speedyg.indexOf("%"));
speedyg=speedyg.substr(speedyg.indexOf("%")+1);
atmenuhtm+="<TD><B><A HREF='javascript:atspeedy(\""+dbplate+"\");'>";
atmenuhtm+="<FONT COLOR='#0000FF'>";
atmenuhtm+=speedyg.substr(0,speedyg.indexOf("%"))+"</FONT>";
speedyg=speedyg.substr(speedyg.indexOf("%")+1);
atmenuhtm+="</A></B></TD><TD>"+speedyg.substr(0,speedyg.indexOf("\n"))+"</TD>";
speedyg=speedyg.substr(speedyg.indexOf("\n")+1);
}
atmenuhtm+="</TR>";
}
while(speedyo!="")
{
atmenuhtm+="<TR>";
if(speedyo!="")
{
atmenuhtm+="<TD>"+speedyo.substr(0,speedyo.indexOf("%"))+"</TD>";
speedyo=speedyo.substr(speedyo.indexOf("%")+1);
dbplate=speedyo.substr(0,speedyo.indexOf("%"));
speedyo=speedyo.substr(speedyo.indexOf("%")+1);
atmenuhtm+="<TD><B><A HREF='javascript:atspeedy(\""+dbplate+"\");'>";
atmenuhtm+="<FONT COLOR='#0000FF'>";
atmenuhtm+=speedyo.substr(0,speedyo.indexOf("%"))+"</FONT>";
speedyo=speedyo.substr(speedyo.indexOf("%")+1);
atmenuhtm+="</A></B></TD><TD>"+speedyo.substr(0,speedyo.indexOf("\n"))+"</TD>";
speedyo=speedyo.substr(speedyo.indexOf("\n")+1);
}
atmenuhtm+="</TR>";
}
atmenuhtm+="</TABLE>";
}
atmenu.innerHTML=atmenuhtm;
}
});
//</nowiki></pre>