User:DESiegel/monobook.js

Source: Wikipedia, the free encyclopedia.
Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
citeUserDateFormat ='<date> <monthname> <year>';
importScript('User:Apoc2400/refToolbar.js');


// if(document.title.indexOf("My watchlist") == 0) unwatchlinks(); //commented out 25 apr 07

// -----------------------------------------------------------------------------
// Ãœbergodmode Monobook skin
// (c) 2005 Sam Hocevar <[email protected]>
// $Id: ubergodmode.js 886 2005-05-14 23:56:48Z sam $
// -----------------------------------------------------------------------------

var blocklink = 'Block this user';

// -----------------------------------------------------------------------------
// Our nice Block functions
// -----------------------------------------------------------------------------
function PerformBlock() {
  var l, target = '';
  // Look for '&faketarget=XXX' in URL
  url = location.pathname;
  l = location.search.substring(1).split('&');
  for (i = 0; i < l.length; i++) {
    var n = l[i].indexOf('=');
    if (l[i].substring(0, n) == 'faketarget') {
      target = l[i].substring(n + 1);
    }
  }
  if (!target)
    return;
  form = document.getElementById('blockip');
  if (!form)
    return;
  input = form.getElementsByTagName('input')[0];
  input.value = target;
}

// -----------------------------------------------------------------------------
// Add block buttons to the page
// -----------------------------------------------------------------------------
function AddBlockButtons() {
  var l, article = '', vandal;
  // Add 'block' links to a diff page
  l = document.getElementById('t-emailuser');
  if (l) {
    clone = l.cloneNode(true);
    l.id = 't-blockuser';
    a = clone.getElementsByTagName('a')[0];
    a.href = a.href.replace(/Special:Emailuser/, 'Special:Blockip');
    a.href = a.href.replace(/target=/, 'faketarget=');
    a.innerHTML = blocklink;
    l.parentNode.insertBefore(clone, l.nextSibling);
  }
}

// -----------------------------------------------------------------------------
// Modify the page once it is loaded
// -----------------------------------------------------------------------------
if (window.addEventListener) {
  window.addEventListener("load", PerformBlock, false);
  window.addEventListener("load", AddBlockButtons, false);
} else if (window.attachEvent) {
  window.attachEvent("onload", PerformBlock);
  window.attachEvent("onload", AddBlockButtons);
}



// This will add an [edit top] link at the top of all pages except preview pages // by 


setTimeout("editTopLink()", 0) // this is equivalent of onload 
function editTopLink() {

   // if this is preview page or generated page, stop
  if(document.getElementById("wikiPreview") || window.location.href.indexOf("w/index.php?title=Special:") != -1) return;

  // get the page title
  var pageTitle = document.title.split(" - ")[0].replace(" ", "_"); 

  // create div and set innerHTML to link
  var divContainer = document.createElement("div");
  divContainer.innerHTML = '<div class="editsection" style="float:right;margin-left:5px;margin-top:3px;">[<a href="/w/index.php?title='+pageTitle+'&action=edit&section=0" title="'+document.title.split(" - ")[0]+'">edit top</a>]</div>';

  // insert divContainer into the DOM before the h1
  document.getElementById("content").insertBefore(divContainer, document.getElementsByTagName("h1")[0]);

}

// //Add purge to tabs 
function addPurge(){

   ta['ca-purge'] = ['g', 'Purge the internal cache for this page'];
   var x = document.getElementById('ca-history');
   if(!x) return;
   if(x.children) x = x.children[0].href;
   else x = x.childNodes[0].href;
   addTab(x.replace(/=history/, "=purge"), 'purge', 'ca-purge');
   akeytt();
}

if (window.addEventListener) window.addEventListener("load", addPurge, false); else if (window.attachEvent) window.attachEvent("onload", addPurge);

//

//From http://en.wikipedia.org/w/index.php?title=User:JesseW/monobook.js&oldid=20755510
// ** function removed 25 apr 07


// **** Functions called by Modules ****

function addlilink(tabs, url, name, id, title, key){

   var na = document.createElement('a');
   na.href = url;
   na.appendChild(document.createTextNode(name));
   var li = document.createElement('li');
   if(id) li.id = id;
   li.appendChild(na);
   tabs.appendChild(li);
   if(id)
   {
       if(key && title)
       {
           ta[id] = [key, title];
       }
       else if(key)
       {
           ta[id] = [key, ];
       }
       else if(title)
       {
           ta[id] = [, title];
       }
   }
   // re-render the title and accesskeys from existing code in wikibits.js
   akeytt();
   return li;
}

//


function addTab(url, name, id, title, key){

   var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
   addlilink(tabs, url, name, id, title, key);
} //



// ================================================================
// Adds an unwatch link after each entry on the regular watchlist 
// (instead of requiring you to navigate to a separate page)
// by User:Omegatron
// Workaround for Bug 424 http://bugzilla.wikipedia.org/show_bug.cgi?id=424
//


// function unwatchlinks(){
// if(document.title.indexOf("My watchlist") == 0) {
//     var x,i;
//     x=document.links;                                           // Gets all the links on the page
//         for(i=0;i<x.length;++i) {
//             if (/action=history/.test(x[i].href)) {             // Find all the ones that link to history pages
//                 newUnwatchLink = document.createElement('a');
//                 newSeparator = document.createTextNode("; ");
//                 newUnwatchLink.href = x[i].href.match(/\/w\/.+?&/) + "action=unwatch";    // Replace the action=history with action=unwatch
//                 newUnwatchLink.innerHTML = "un";
//                 x[i].parentNode.insertBefore(newUnwatchLink, x[i].nextSibling);
//                 x[i].parentNode.insertBefore(newSeparator, x[i].nextSibling);             // Insert after the hist link with a semicolon
//             }
//         }
//     }
// }

// Delete reason helper //
/* <pre><nowiki> */

if ((document.title.indexOf("Confirm deletion") != -1) || (document.title.indexOf("Confirm delete") != -1)) {
     var csdDeleteForm = {
				FillSelect:function(sel, arr){
					if(arr && arr.length>0){
						if(arr.length>1){
							var FirstOpt = new Option("CSD Reasons", "");
							// catches stupid IE error
							if(FirstOpt.innerHTML != "CSD Reasons"){
								FirstOpt.innerHTML = "CSD Reasons";
							}
							sel.appendChild(FirstOpt);
							sel.options[0].style.color = "gray"
						}
						sel.disabled = false;
						for(var i=0;i<arr.length;i++){
							var opt = new Option(arr[i].display, arr[i].value);
							// catches stupid IE error
							if(opt.innerHTML != arr[i].display){
								opt.innerHTML = arr[i].display;
							}
							sel.appendChild(opt);
						}
					}else{
						sel.options[0] = new Option("No Options Available", "");
						// catches stupid IE error
						if(sel.options[0].innerHTML != "No Options Available"){
							sel.options[0].innerHTML = "No Options Available";
						}
						sel.disabled = true;
						return false;
					}
					return true;
				},
                                ValueArray:[
                                        {"value":"[[WP:CSD#G1|CSD G1]]: [[WP:PN|Patent Nonsense]]","display":"G1 - Nonsense"},
                                        {"value":"[[WP:CSD#G2|CSD G2]]: Test Pages","display":"G2 - Test Pages"},
                                        {"value":"[[WP:CSD#G3|CSD G3]]: [[WP:VAND|Pure Vandalism]]","display":"G3 - Pure Vandalism"},
                                        {"value":"[[WP:CSD#G4|CSD G4]]: Recreation of deleted material","display":"G4 - Recreated Deleted"},
                                        {"value":"[[WP:CSD#G5|CSD G5]]: Contributions by [[Wikipedia:List of banned users|Banned User]]","display":"G5 - Banned User"},
                                        {"value":"[[WP:CSD#G6|CSD G6]]: Housekeeping","display":"G6 - Housekeeping"},
                                        {"value":"[[WP:CSD#G7|CSD G7]]: Author Requests Deletion","display":"G7 - Author Request"},
                                        {"value":"[[WP:CSD#G8|CSD G8]]: Talkpage of deleted or non-Existent Article","display":"G8 - Talk Page"},
                                        {"value":"[[WP:CSD#G9|CSD G9]]: [[WP:OFFICE|Office Actions]]","display":"G9 - Office Actions"},
                                        {"value":"[[WP:CSD#G10|CSD G10]]: [[Wikipedia:Attack page|Attack Page]]","display":"G10 - Attack Pages"},
                                        {"value":"[[WP:CSD#G11|CSD G11]]: [[WP:SPAM|Blatant Advertising]]","display":"G11 - Advertising"},
                                        {"value":"[[WP:CSD#G12|CSD G12]]: [[WP:C|Blatant Copyright infringement]]","display":"G12 - Copyright"},
                                        {"value":"[[WP:CSD#A1|CSD A1]]: Very short article providing little or no context","display":"A1 - No Context"},
                                        {"value":"[[WP:CSD#A2|CSD A2]]: Foreign language article that exists on another Wikipedia","display":"A2 - Foreign Language"},
                                        {"value":"[[WP:CSD#A3|CSD A3]]: No content","display":"A3 - No Content"},
                                        {"value":"[[WP:CSD#A5|CSD A5]]: Has been transwikied","display":"A5 - Transwikied"},
                                        {"value":"[[WP:CSD#A7|CSD A7(Bio)]]: Biographical article that does not assert significance","display":"A7 - Unremarkable Bio"},
                                        {"value":"[[WP:CSD#A7|CSD A7(Group)]]: Article about a club or group that does not assert significance","display":"A7 - Unremarkable Group"},
                                        {"value":"[[WP:CSD#A7|CSD A7(Band)]]: Article about a band that does not assert [[WP:MUSIC|significance]]","display":"A7 - Unremarkable Band"},
                                        {"value":"[[WP:CSD#A7|CSD A7(Corp)]]: Article about a company that doesn't assert [[WP:CORP|significance]]","display":"A7 - Unremarkable Firm"},
                                        {"value":"[[WP:CSD#A7|CSD A7(Web)]]: Article about a web site that does not assert [[WP:WEB|significance]]","display":"A7 - Unremarkable Web"},
                                        {"value":"[[WP:CSD#R1|CSD R1]]: Redirect to non-existent page","display":"R1 - Bad Target"},
                                        {"value":"[[WP:CSD#R2|CSD R2]]: Redirect to User/User talk namespaces from mainspace","display":"R2 - Crossnamespace"},
                                        {"value":"[[WP:CSD#R3|CSD R3]]: Implausible typo","display":"R3 - Bad Typo"},
                                        {"value":"[[WP:CSD#I1|CSD I1]]: Redundant to another image","display":"I1 - Redundant"},
                                        {"value":"[[WP:CSD#I2|CSD I2]]: Image is corrupted","display":"I2 - Corrupt/Empty"},
                                        {"value":"[[WP:CSD#I3|CSD I3]]: Improper license","display":"I3 - Improper License"},
                                        {"value":"[[WP:CSD#I4|CSD I4]]: No license or No Source Information","display":"I4 - Lack of License"},
                                        {"value":"[[WP:CSD#I5|CSD I5]]: Is unused and [[WP:NFCC|not free]]","display":"I5 - Unused Unfree"},
                                        {"value":"[[WP:CSD#I6|CSD I6]]: No [[WP:FURG|justification]] given for fair use","display":"I6 - No Fair Use"},
                                        {"value":"[[WP:CSD#I7|CSD I7]]: Bad [[WP:FURG|justification]] given for fair use","display":"I7 - Invalid Fair Use"},
                                        {"value":"[[WP:CSD#I8|CSD I8]]: Image exists on the Commons","display":"I8 - On Commons"},
                                        {"value":"[[WP:CSD#G1|CSD C1]]: Category is Empty (and has been for 4 days or more)","display":"C1 - Empty"},
                                        {"value":"[[WP:CSD#C2|CSD C2]]: Speedy Renaming","display":"C2 - Speedy Rename"},
                                        {"value":"[[WP:CSD#C3|CSD C3]]: Corresponding template was deleted","display":"C3 - Template"},
                                        {"value":"[[WP:CSD#U1|CSD U1]]: User requested deletion","display":"U1 - User Request"},
                                        {"value":"[[WP:CSD#U2|CSD U2]]: Userpage of non-existent user","display":"U2 - No User"},
                                        {"value":"[[WP:CSD#U3|CSD U3]]: Userpage that is primarily a gallery of fair use images","display":"U3 - Fair Use Gallery"},
                                        {"value":"[[WP:CSD#T1|CSD T1]]: Template that is divisive and inflammatory.","display":"T1 - Divisive"},
                                        {"value":"[[WP:CSD#P2|CSD P2]]: Underpopulated","display":"P2 - Underpopulated"},
                                        {"value":"[[WP:AFD|AFD]]: Deleted after discussion at Articles for Deletion","display":"AFD close"},
                                        {"value":"Closing [[WP:PROD|prod]]","display":"Prod close"}
                                        ],
				//**************************** attaching function *****************************************
				// got thIS super handi function from http://www.scottandrew.com he is pretty dang smart **
			        //*****************************************************************************************
				addEvent:function(obj, evType, fn, useCapture){
					//alert(obj);
					if (obj.addEventListener){
						obj.addEventListener(evType, fn, useCapture);
						return true;
					} else if (obj.attachEvent){
						var r = obj.attachEvent("on"+evType, fn);
						return r;
					} else {
						alert("Handler could not be attached");
					}
				}
			}
			function addSelectAfter(){
    				var obj = document.getElementById('wpReason');
    			        // create select using included array
				var sel = document.createElement("SELECT");
				csdDeleteForm .FillSelect(sel, csdDeleteForm .ValueArray);
				// name it
				sel.name = "csdOptions";
				sel.id = "csdOptions";
                                sel.style.marginLeft = "10px";
                                csdDeleteForm .addEvent(sel, "change", csdChangeBox, false);
				// check for next sibling and insert before it or at the end
				if(obj.nextSibling){
					obj.parentNode.insertBefore(sel,obj.nextSibling);
				}else{
					obj.parentNode.appendChild(sel);
				}
			}
			try{
				// add one on load
				csdDeleteForm.addEvent(window, "load", addSelectAfter, false);
			}catch(err){}
}

function csdChangeBox() {
                                                         var obj = document.getElementById('wpReason');
                                                         obj.value = document.getElementById('csdOptions').value;
                                                         }


/* </nowiki><pre> */
// End Delete reason helper //