User:ST47/monobook.js

From Wikipedia, the free encyclopedia

If a message on your talk page led you here, please be wary of who left it. The code below could contain malicious content capable of compromising your account; if your account appears to be compromised, it will be blocked. If you are unsure whether the code is safe, you can ask at the appropriate village pump.
Note: After saving, you have to bypass your browser's cache to see the changes. In Internet Explorer and Firefox, hold down the Ctrl key and click the Refresh or Reload button. Opera users have to clear their caches through Tools→Preferences, see the instructions for Opera. Konqueror and Safari users can just click the Reload button.
document.write('<script type="text/javascript" src="' 
             + 'http://en.wikipedia.org/w/index.php?title=User:ST47/adminnolupin/monobook.js' 
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');
 
importScript('User:AzaToth/morebits.js');
importScript('User:ST47/twinklefluff.js');
importScript('Wikipedia:WikiProject User scripts/Scripts/Add LI menu');
importStylesheet('Wikipedia:WikiProject User scripts/Scripts/Add LI menu/css');
importScript('User:AzaToth/twinklewarn.js');
importScript('User:AzaToth/twinklearv.js');
importScript('User:AzaToth/twinklespeedy.js');
importScript('User:AzaToth/twinklediff.js');
importScript('User:AzaToth/twinkleprotect.js');
importScript('User:AzaToth/twinkleprod.js');
importScript('User:AzaToth/twinklexfd.js');
importScript('User:AzaToth/salt.js');
importScript('User:AzaToth/twinkleimage.js');
importScript('User:Quarl/util.js');
importScript('User:Quarl/wikipage.js');
importScript('Wikipedia:WikiProject Deletion sorting/delsort.js');
importScript('User:Voice of All/History/monobook.js');
importScript('User:AzaToth/twinklebatchdelete.js');
 
DelsortConfig = {
  debugLevel : 0,
  watchDelsortedLists : 0,
  watchDelsortedAfd : 0,
  shortcuts : ['Authors','Australia','Lists']
}
TwinkleConfig = {
        revertMaxRevisions              :       50,
        userTalkPageMode                :       'window',
        showSharedIPNotice              :       false,
        openTalkPage                    :       [ 'vand' ],
        openTalkPageOnAutoRevert        :       false,
        openAOLAnonTalkPage             :       true,
        summaryAd                       :       "",
        deletionSummaryAd               :       "",
        protectionSummaryAd             :       "",
        watchSpeedyPages                :       [ ],
        watchProdPages                  :       false,
        openUserTalkPageOnSpeedyDelete  :       [ 'g1', 'g2', 'g10', 'g11', 'g12', 'a1', 'a7', 'i3', 'i4', 'i7', 'u3', 't1' ],
        watchRevertedPages              :       [ ],
        markRevertedPagesAsMinor        :       [ 'agf', 'norm', 'vand', 'torev' ],
        deleteTalkPageOnDelete          :       false,
        watchWarnings                   :       false,
        markAIVReportAsMinor            :       true,
        markSpeedyPagesAsMinor          :       true,
        markProdPagesAsMinor            :       true,
        confirmUsernameToAIV            :       true,
        toolboxButtons                  :       [ ]
};
 
 
importScript('User:GeorgeMoney/UserScripts/hacks/FilterLinksearchMainspace');
importScript('User:GeorgeMoney/UserScripts/RemExternalLinks');
 
 
////////////////////////////////////////////////////////////////
// =-=-=- HELPER FUNCTIONS -=-=-=-
function addlilink(tabs, url, name, id, title, key)
{
//check for duplicates
if (document.getElementById(id)){return;}
//cologne blue bypass
if (document.getElementById('quickbar'))
   {
   if (document.getElementById('quickbar') && document.getElementById('quickbar').getElementsByTagName('h6')[0])
      {
      addquickbarlink(url, name, id, title, 'Edit');
      }
   if (document.getElementById('footer') && !document.getElementById('bodyContent'))
      {
      addfooterlink(url, name, id, title);
      }
   return;
   }
//monobook
    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 insertAfter(parent, node, referenceNode) {
    parent.insertBefore(node, referenceNode.nextSibling);
}
 
function prependChild(parent, node) {
    parent.insertBefore(node, parent.firstChild);
}
 
function addToolboxLink(url, name, id, key)
{
    if (document.getElementById('p-tb'))
      {var tb = document.getElementById('p-tb').getElementsByTagName('ul')[0];}
    addlilink(tb, url, name, id, key);
}
 
function addTab(url, name, id, title, key)
{
//monobook
    if (document.getElementById('p-cactions'))
      {var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];}
//cologneblue
    else {
      if (document.getElementById('quickbar'))
        {var tabs = document.getElementById('quickbar').getElementsByTagName('h6')[2];}
      if (document.getElementById('footer'))
        {var tabs = document.getElementById('footer').getElementsByTagName('td')[0];}
      return addquickbarlink(url, name, id, 'Edit');
    }
      return addlilink(tabs, url, name, id, title, key);
}
 
///////////////
//cologneblue tab/link adder
function addquickbarlink(url, name, id, title, header)
{
var header = '<h6>' + header + '</h6>';
var tabs = document.getElementById('quickbar'); 
if (tabs.innerHTML.indexOf(header) ==-1)
  {return;}
var add_html = '<strong><a id="' + id + '" title="' + title + '" href="' + url + '">' + name + '</a></strong><br />';
var section_html = tabs.innerHTML.split(header)[1].split('<h6>')[0];
var next_section = '<h6>' + tabs.innerHTML.split(header)[1].split('<h6>')[1].split('</h6>')[0] + '</h6>';
tabs.innerHTML = tabs.innerHTML.split(header)[0] + header + section_html + add_html + next_section + tabs.innerHTML.split(next_section)[1];
}
 
function addfooterlink(url, name, id, title)
{
var tabs = document.getElementById('footer').getElementsByTagName('td')[1]; 
var add_html = '<strong><a href="' + url + '" title="' + title + '" id="' + id + '">' + name + '</a></strong>';
tabs.innerHTML = add_html + ' | ' + tabs.innerHTML;
}
///////////////
 
function addLink(where, url, name, id, title, key, after){
    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);
    var tabs = document.getElementById(where).getElementsByTagName('ul')[0];
    if(after) {
	tabs.insertBefore(li,document.getElementById(after));
    } else {
	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;
}
/////////////////////////////////////////////
 
/**** Add generic tab ****/
 
function addlilink_simple(tabs, url, name, id){
    var na = document.createElement('a');
    na.href = url;
    na.appendChild(document.createTextNode(name));
    var li = document.createElement('li');
    li.id = id;
    li.appendChild(na);
    tabs.appendChild(li);
    return li;
}
 
function addlimenu(tabs, name, id)
{
    var na = document.createElement('a');
    na.href = '#';
    var mn = document.createElement('ul');
    na.appendChild(document.createTextNode(name));
    var li = document.createElement('li');
    li.id = id;
    li.className = 'tabmenu';
    li.appendChild(na);
    li.appendChild(mn);
    tabs.appendChild(li);
    return li;
}
 
/////////
//These are simplier versions of the above, except they add the links on top, not on botton
function addnavbox_link(URL,Name,ID)
{
//cologne blue bypass
   if (document.getElementById('quickbar') && document.getElementById('quickbar').getElementsByTagName('h6')[0])
      {
      var tabs = document.getElementById('quickbar'); 
      addquickbarlink(URL, Name, ID, Name, 'Browse');
      return;
      }
//monobook
var portlet = document.getElementById('p-navigation');
var links = portlet.getElementsByTagName('ul')[0];
links.innerHTML += '<li id="' + ID + '"><a href="' + URL + '">' + Name + '</a></li>';
}
//////////
 
function URLEncoding(input)
      {
        var encodedInputString=escape(input);
        encodedInputString=encodedInputString.replace(/\+/g, "%2B");
        encodedInputString=encodedInputString.replace(/\//g,"%2F");  
        encodedInputString=encodedInputString.replace(/&/g,"%26");     
        var outputurl=encodedInputString;
        return outputurl;
      }
 
function toRegExp(what)
{
  what = what.replace(/\\/g,"\\\\");
  what = what.replace(/\(/g,"\\(").replace(/\)/g,"\\)");
  what = what.replace(/\{/g,"\\{").replace(/\}/g,"\\}");
  what = what.replace(/\[/g,"\\[").replace(/\]/g,"\\]");
  what = what.replace(/\|/g,"\\|");
  what = what.replace(/\./g,"\\.");
  what = what.replace(/\$/g,"\\$");
  what = what.replace(/\+/g,"\\+");
  what = what.replace(/\^/g,"\\^");
  what = what.replace(/\?/g,"\\?");
  what = what.replace(/\*/g,"\\*");
  what = what.replace(/\//g,"\\/");
  return what;
}
 
if (document.implementation.createDocument)
 {var gml_xmlparser = new DOMParser();}
 
function standard_XMLParse(string) 
{
  if (document.implementation.createDocument)
 {
    return gml_xmlparser.parseFromString(string, "text/xml");
  } 
  else if (window.ActiveXObject) 
  {
    string = string.replace(/<body .*\"ns-(.*)\">/, '<body class="ns-$1">');
    rer = string.match(/<h1 .*<\/h1>/)[0].replace(/&/g, '&');
    if (rer) {string = string.replace(/<h1 .*<\/h1>/, rer);}
    var gml_xmldoc = new ActiveXObject("Microsoft.XMLDOM");
    gml_xmldoc.async = false;
    ret = gml_xmldoc.loadXML(string);
    myErr = gml_xmldoc.parseError;
		if (myErr.errorCode || !ret)
                {
			showError("Error: " + ERROR_XML + myErr.reason);
			return null;
		}
		return gml_xmldoc.documentElement
  }
  return null;
}
 
function HTTPClient()
{
  var xml_http = false;
  if(window.XMLHttpRequest)
    xml_http = new XMLHttpRequest();
  else if (IE){
    try{
      xml_http = new ActiveXObject("Msxml2.XMLHTTP")
    } catch (e){
      try{
        xml_http = new ActiveXObject("Microsoft.XMLHTTP")
      } catch (e){}
    }
  }
	if (!xml_http) showError(ERROR_XML);
  return xml_http
};
 
//<pre><nowiki>
 
 
function add_text()
{
var target = unescape(location.href.split('&jstext=')[1].split('&')[0]);
var f = document.editform, t = f.wpTextbox1;
if (t.value.search(/<JSADD>/) ==-1) return;
t.value = t.value.replace(/<JSADD>/g,target);
f.wpSummary.value += "JS: adding " + target;
}
 
 
//<pre>
 
//A clock that autoupdates
//From the user scripts project
addOnloadHook(loadclock)
function loadclock()
{
  //monobook
    if (document.getElementById('pt-userpage'))
      {
      var toplinks = document.getElementById('p-personal').getElementsByTagName('ul')[0];
      addlilink(toplinks, '/w/index.php?title=' + wgPageName.replace(/&/g,'%26') + '&action=purge', '', 'utcdate');
      }
  //cologneblue
    else if (document.getElementById('quickbar') && document.getElementById('quickbar').getElementsByTagName('h6')[0])
       {
       var toplinks = document.getElementById('quickbar');
       addquickbarlink('/w/index.php?title=' + wgPageName.replace(/&/g,'%26') + '&action=purge', 'Current time', 'utcdate','Browse')
       }
    showtime();
}
 
function showtime()
{
    var timerID;
    var now = new Date();
    var timeValue = now.toUTCString().substring(0,22) + " UTC";
    if (document.getElementById('utcdate'))
      {document.getElementById('utcdate').firstChild.innerHTML = timeValue;}
    timerID = setTimeout('showtime()', 1000);
}
//</pre>END
 
document.getElementById('ca-addsection').firstChild.textContent = "+";