Jump to content

User:Tonei/monobook.js

From 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.
//<nowiki>
 
function PortletMenu( id ) // constructor
	{
		this.menu = document.getElementById( id );
		this.list = this.menu.getElementsByTagName( 'ul' )[ 0 ]; // bypass "<h5>Views</h5>", etc.
		var LIs = this.list.getElementsByTagName( 'li' );
 
		for ( var i = 0; i < LIs.length; i++ )
		{
			this[ LIs[ i ].id ] = LIs[ i ];
		}
 
		this.newItem = function( id, txt, url )
		{	var li = document.createElement( 'li' ); li.id   = id;
			var  a = document.createElement( 'a'  );  a.href = url;
 
			 a.appendChild( document.createTextNode( txt ) );
			li.appendChild( a );
alert("trying " + id + " at 831");
			this[ id ] = li; // watch this!!!
 
			return li;
		}
 
		this.append = function( id, txt, url )
		{	this.list.appendChild( this.newItem( id, txt, url ) );
		}
 
		this.insertBefore = function( old, id, txt, url )
		{	this.list.insertBefore( this.newItem( id, txt, url ), this[ old ] );
		}
 
			//	the ByTagName here is a bit annoying, but in Safari, I was picking
			//	up TextNodes by using this[ id ].firstChild.firstChild
			//
		this.getText = function( id      ) { return this[ id ].getElementsByTagName( 'a' )[ 0 ].firstChild.data }
		this.setText = function( id, txt ) { if(!this[id]){return;} this[ id ].getElementsByTagName( 'a' )[ 0 ].firstChild.data = txt }
 
		this.getHref = function( id      ) { return this[ id ].getElementsByTagName( 'a' )[ 0 ].href       }
		this.setHref = function( id, url ) { if(!this[id]){return;} this[ id ].getElementsByTagName( 'a' )[ 0 ].href = url }
 
		//	I add em as I need em....
	}
 
 
 
function SoFixItInit() // pre-load, (don't want to slow down loading of article's content, though)
	{
		UserMenu = new PortletMenu( 'p-personal'   );
		PageMenu = new PortletMenu( 'p-cactions'   );
		NavMenu  = new PortletMenu( 'p-navigation' );            
 
		UserMenu.setText( 'pt-mytalk'     , 'Talk'  );
		UserMenu.setText( 'pt-preferences', 'Prefs' );
		UserMenu.setText( 'pt-watchlist'  , 'Watchlist' );
		UserMenu.setText( 'pt-mycontris'  , 'Contribs' );
		UserMenu.setText( 'pt-logout'     , 'Log out'   );
 
		PageMenu.setText( 'ca-talk'        , 'talk'    );
                PageMenu.setText( 'ca-edit'        , 'edit'    );
                PageMenu.setText( 'ca-history'     , 'history' );
                PageMenu.setText( 'ca-delete'      , 'delete'  );
                PageMenu.setText( 'ca-watch'       , 'watch'   );
                PageMenu.setText( 'ca-protect'     , 'protect' );
                PageMenu.setText( 'ca-addsection'  , '+'       );
 
		}
window.addEventListener( 'load', SoFixItInit, true );
 
function addlilink(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;
}
 
// appends msg to the currently-editted page, sets the summary to summ,
// and marks or unmarks the Watch this page checkbox according to watch.
function edit_summary_watch(msg, summ, watch, line)
{
  var f = document.editform, t = f.wpTextbox1;
  if ((t.value.length > 0) && (line == 1))
    t.value += '\n\n';
  if (line == -1)
    t.value = msg + t.value;
  else
    t.value += msg;
  if (summ.charAt(0) == '+')
    f.wpSummary.value += summ.substr(1);
  else
    f.wpSummary.value = summ;
  f.wpWatchthis.checked = 0;
}
 
function add_talk_header()
{
  var from_page = "";
  var from_index = location.search.indexOf("&fakefrom=");
  if(from_index != -1)
    var from_page = unescape(location.search.substring(from_index + 10));
  edit_summary_watch("Regarding your edits to [[\:" + from_page + "]]: ", "\/\* " + from_page + "\*\/ ", true, 1);
}
 
function vfddelete(){
    document.forms.deleteconfirm.wpReason.value = '[[Wikipedia:Articles for deletion/' + unescape(window.location.href.replace(/^.*\?title=([^&]+)&action=delete.*$/, '$1').replace(/_/g, ' ')).replace(/^(Talk|Wikipedia( talk)?):/, '') + ']]';
}
 
function csddelete (reason) {
  document.forms.deleteconfirm.wpReason.value = reason + document.forms.deleteconfirm.wpReason.value;
}
 
function testwarning(level, summ, sig)
{
    var user_warnings = new Array (
       "test1", "test1a", "test2", "test2a", "test3", "test4", "usertalk-sprotect");
    var msg = "{{" + (level == 6 ? "" : "subst:") + user_warnings [level] + "}}" + (sig==1 ? "\n\n\~\~\~\~\n" : "\n");
    if (level == 4)
        msg = "[[" + "Image:Stop_hand.png|left|30px]]" + msg;
    edit_summary_watch (msg, summ, true, ((level != 6) ? 1 : -1));
}
 
function test5()
{
  var howlong = prompt("How long have they been blocked for?")
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
    t.value += '\n\n';
  t.value += "{{subst:test5-n|" + howlong + "}} \~\~\~\~";
  f.wpSummary.value = "Blocked for " + howlong + ".";
}
 
 
function userpageban()
{
    edit_summary_watch("{{" + "subst:Indefblockeduser}}\n" , "Permanently blocked", true, -1);
}
 
// adds various tabs to call the above
function add_tabs()
{
 
  var c1 = document.getElementById('column-one');
  var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];
 
  if (mw.config.get('wgCanonicalNamespace') == 'User_talk' && mw.config.get('wgAction') == 'edit')
  {
   addlimenu(tabs, 'Warnings', 'usert');
   var usert = document.getElementById('usert').getElementsByTagName('ul')[0];
   addlilink(usert,'javascript:add_talk_header()',"header");
   addlilink(usert,'javascript:testwarning(0,"+{{" + "test1}}",1)',"test1");
   addlilink(usert,'javascript:testwarning(1,"+{{" + "test1a}}",1)',"test1a");
   addlilink(usert,'javascript:testwarning(2,"+{{" + "test2}}",1)',"test2");
   addlilink(usert,'javascript:testwarning(3,"+{{" + "test2a}}",1)',"test2a");
   addlilink(usert,'javascript:testwarning(4,"+{{" + "test3}}",1)',"test3");
   addlilink(usert,'javascript:testwarning(5,"+{{" + "test4}}",1)',"test4");
   addlilink(usert,'javascript:test5()',"block");
   addlilink(usert,'javascript:testwarning(6,"semi-protected",0)',"spt");
 
   }
   if (mw.config.get('wgAction') == 'delete')
   {    
        addlimenu(tabs, 'Article Deletion', 'articlesmenu');
        var art = document.getElementById('articlesmenu').getElementsByTagName('ul')[0];
        addlilink(art,'javascript:vfddelete()', 'AFD', '');
        addlilink(art,'javascript:csddelete("[[WP:CSD#Articles|CSD A1]]: Little or no context. ")', 'Context', '');
        addlilink(art,'javascript:csddelete("[[WP:CSD#Articles|CSD A2]]: Foreign language articles that exists on another Wikimedia project. ")', 'Foreign', '');
        addlilink(art,'javascript:csddelete("[[WP:CSD#Articles|CSD A3]]: No content whatsoever. ")', 'Content', '');
        addlilink(art,'javascript:csddelete("[[WP:CSD#Articles|CSD A5]]: Transwikied article. ")', 'Trnswiki', '');
        addlilink(art,'javascript:csddelete("[[WP:CSD#Articles|CSD A7]]: Unremarkable people or groups. ")', 'Bio', '');        
 
        addlimenu(tabs, 'General Deletion', 'generalmenu');
        var gen = document.getElementById('generalmenu').getElementsByTagName('ul')[0];
        addlilink(gen,'javascript:csddelete("[[WP:CSD#General criteria|CSD G1]]: Patent nonsense. ")', 'Nons', '');
        addlilink(gen,'javascript:csddelete("[[WP:CSD#General criteria|CSD G2]]: Test pages. ")', 'Test', '');
        addlilink(gen,'javascript:csddelete("[[WP:CSD#General criteria|CSD G3]]: Pure vandalism. ")', 'Vand', '');        
        addlilink(gen,'javascript:csddelete("[[WP:CSD#General criteria|CSD G4]]: Recreation of deleted material. ")', 'Recr', '');
        addlilink(gen,'javascript:csddelete("[[WP:CSD#General criteria|CSD G5]]: Page created by a banned user.")', 'Banned', '');
        addlilink(gen,'javascript:csddelete("[[WP:CSD#General criteria|CSD G6]]: Housekeeping. ")', 'Housek', '');
        addlilink(gen,'javascript:csddelete("[[WP:CSD#General criteria|CSD G7]]: Author request. ")', 'Request', '');
        addlilink(gen,'javascript:csddelete("[[WP:CSD#General criteria|CSD G10]]: Attack page. ")', 'Attack', '');
        addlilink(gen,'javascript:csddelete("[[WP:CSD#General criteria|CSD G11]]: Blatant advertising. ")', 'Spam', '');
         addlilink(gen,'javascript:csddelete("[[WP:CSD#General criteria|CSD G12]]: Blatant copyright infringement. ")', 'Cpv', '');        
        addlilink(gen,'javascript:csddelete("Talk page of a deleted... ")', 'Talk', '');
   }
 
  // Only add for pages with "Editing User:" somewhere in the title
  if (mw.config.get('wgCanonicalNamespace') == 'User' && mw.config.get('wgAction') == 'edit')
  {
      addlilink(tabs,'javascript:userpageban()',"ban");
  }
 
}
 
if (window.addEventListener)
  window.addEventListener("load", add_tabs, false);
else if (window.attachEvent)
  window.attachEvent("onload", add_tabs);
 
function hidevfd(){
    var divs = document.getElementsByTagName("div");
    for(var x = 0; x < divs.length; ++x)
        if(divs[x].className.indexOf("vfd") != -1)
            divs[x].style.display = "none";
    document.getElementById('footer').style.display = 'none';
}
 
function showvfd(){
    var divs = document.getElementsByTagName("div");
    for(var x = 0; x < divs.length; ++x)
        if(divs[x].className.indexOf("vfd") != -1)
            divs[x].style.display = "";
    document.getElementById('footer').style.display = '';
}
 
function vfdlinks(){
    var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
    if(document.title.indexOf("Wikipedia:Articles for deletion") == 0){
        add_link2('javascript:hidevfd()', 'hide');
        add_link2('javascript:showvfd()', 'show');
    }
}
 
if (window.addEventListener) window.addEventListener("load",vfdlinks,false);
else if (window.attachEvent) window.attachEvent("onload",vfdlinks);
 
///////////////////////////////////////////////////////////////////
// AutoVFD by Korath
// This needs to change depending on skin used.
//////////////////////////////////////////////////////////////////
function add_link2(url, name)
{
  var na = document.createElement('a');
  na.setAttribute('href', url);
  na.appendChild(document.createTextNode(name));
 
  var li = document.createElement('li');
  li.appendChild(na);
 
  var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
  tabs.appendChild(li);
}
 
function strip_namespace(target)
{
  var colon = target.indexOf(':');
  if (colon != -1)
    {
      var spaces = new Array('User', 'Wikipedia', 'Image', 'MediaWiki', 'Template', 'Help', 'Category');
      var ns = target.substring(0, colon);
      if (ns == '' || ns == 'Talk')
        return target.substring(colon + 1);
      else
        for (var i = 0; i < spaces.length; ++i)
          {
            if (ns == spaces[i]
                || ns == spaces[i] + '_talk')
              return target.substring(colon + 1);
          }
    }
 
  return target;
}
function copyvio()
{
  document.editform.wpTextbox1.value = '{' + '{' + 'copyvio|url=}}';
  document.editform.wpSummary.value = 'copyvio';
 
  var target = document.editform.action;
  target = target.substring(target.indexOf('title=') + 6,
                            target.lastIndexOf('&action=submit'));
 
  var months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
  var date = new Date();
  date = date.getUTCFullYear() + '_' + months[date.getUTCMonth()] + '_' + date.getUTCDate();
 
  var pagename = strip_namespace(target);
 
  window.open('/w/index.php?title=Wikipedia%3ACopyright_problems/' + date + '/Articles' + '&action=edit&fakeaction=copyviolist&faketarget=' + pagename,
              'cpvio',
              'status,location,directories,resizeable,scrollbars');
}
 
function autocopyvio()
{
  if (mw.config.get('wgAction') = 'edit')
    {
      var action = '';
      var target = '';
      if (location.search)
        {
          var l = location.search.substring(1).split('&');
          for (var i = 0; i < l.length; ++i)
            {
              var eq = l[i].indexOf('=');
              var name = l[i].substring(0, eq);
              if (name == 'fakeaction')
                action = l[i].substring(eq + 1);
              else if (name == 'faketarget')
                target = unescape(l[i].substring(eq + 1)).replace(/_/g, ' ');
 
            }
        }
 
      if (action == 'copyviolist')
        {
          document.editform.wpTextbox1.value += '*' + '{{subst:article-cv|' + target + '}}' + ' from [' + ']. ~' + '~~' + '~\n';
          document.editform.wpSummary.value = 'Copyvio ' + '[[' + target + ']]';
        }
    }
}
 
if (window.addEventListener)
  window.addEventListener('load', autocopyvio, false);
else if (window.attachEvent)
  window.attachEvent('onload', autocopyvio);
 
function vfd()
{
  document.editform.wpTextbox1.value = '{' + '{' + 'subst:afd}}\n' + document.editform.wpTextbox1.value;
  document.editform.wpSummary.value = 'AfD';
  document.editform.wpWatchthis.checked = true;
 
  var target = document.editform.action;
  target = target.substring(target.indexOf('title=') + 6,
                            target.lastIndexOf('&action=submit'));
 
  var months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December');
  var date = new Date();
  date = date.getUTCFullYear() + '_' + months[date.getUTCMonth()] + '_' + date.getUTCDate();
 
  var pagename = strip_namespace(target);
 
  window.open('/w/index.php?title=Wikipedia%3AArticles_for_deletion/' + pagename + '&action=edit&fakeaction=vfdsub&faketarget=' + target,
              'Vfd',
              'status,location,directories,resizable,scrollbars');
  window.open('/w/index.php?title=Wikipedia%3AArticles_for_deletion/Log/' + date + '&action=edit&fakeaction=vfdlist&faketarget=' + pagename,
              'VfdLog',
              'status,location,directories,resizable,scrollbars');
}
 
 
function vfdvote(vote)
{
	if (vote == 1)
	        edit_summary_watch("*\'\'\'Delete\'\'\' ~"+"~"+"~"+"~", document.editform.wpSummary.value + "delete", true, 0);
	else if (vote == 2)
		edit_summary_watch("*\'\'\'Keep\'\'\' ~"+"~"+"~"+"~", document.editform.wpSummary.value + "keep", true, 0);
	else if (vote == 3)
		edit_summary_watch("*\'\'\'Merge\'\'\' ~"+"~"+"~"+"~", document.editform.wpSummary.value + "merge", true, 0);
	else if (vote == 4)
		edit_summary_watch("*\'\'\'Redirect\'\'\' ~"+"~"+"~"+"~", document.editform.wpSummary.value + "redirect", true, 0);
 
}
 
function deletiontags()
{
    if (document.title.indexOf("Editing Wikipedia:Articles for deletion") != -1)
    {
        if (document.editform.wpTextbox1.value.indexOf("Please do not modify it") == -1)
        {
            add_link2('javascript:vfdvote(1)', 'v - d');
            add_link2('javascript:vfdvote(2)', 'v - k');
            add_link2('javascript:vfdvote(3)', 'v - m');
            add_link2('javascript:vfdvote(4)', 'v - r');
        }
    }
    else if (document.title.indexOf("Editing Wikipedia:Votes for deletion") == -1 && document.title.indexOf("Editing Wikipedia:Pages for deletion") == -1 && document.title.indexOf("Editing Wikipedia:Articles for deletion") == -1 && document.title.indexOf("Editing Talk:") == -1 && document.title.indexOf("Editing User talk:") == -1)
    {
        if((document.editform.wpTextbox1.value.indexOf("["+"[Template:Afd") == -1) &&
           (document.editform.wpTextbox1.value.indexOf("\{\{afd\}\}") == -1))
            add_link2('javascript:vfd()', 'afd');
        add_link2('javascript:copyvio()', 'copyvio');
    }
    else if (document.title.indexOf("Editing Wikipedia:Votes for deletion") == -1 && document.title.indexOf("Editing Wikipedia:Pages for deletion") == -1 && document.title.indexOf("Editing Wikipedia:Articles for deletion") == -1 && document.title.indexOf("Editing Talk:") != -1 && document.title.indexOf("Editing User talk:") == -1)
    {
        add_link2('javascript:vfdtalk(1)','afd - k');
        add_link2('javascript:vfdtalk(2)','afd - m');
        add_link2('javascript:vfdtalk(3)','afd - r');
    }
}
 
function autovfd()
{
  if (document.title.indexOf('Editing ') == 0)
    {
      var action = '';
      var target = '';
      if (location.search)
        {
          var l = location.search.substring(1).split('&');
          for (var i = 0; i < l.length; ++i)
            {
              var eq = l[i].indexOf('=');
              var name = l[i].substring(0, eq);
              if (name == 'fakeaction')
                action = l[i].substring(eq + 1);
              else if (name == 'faketarget')
                target = unescape(l[i].substring(eq + 1)).replace(/_/g, ' ');
            }
        }
 
      if (action == 'vfdlist')
        {
          document.editform.wpTextbox1.value += '{{' + 'subst:afd3|pg=' + target + '}}\n';
          document.editform.wpSummary.value = '[[Wikipedia:Articles for deletion/' + target + ']]';
          document.editform.wpWatchthis.checked = false;
        }
      else if (action == 'vfdsub')
        {
          if (document.editform.wpTextbox1.value.length > 0)
            {
              target = document.editform.action;
              target = unescape(target.substring(target.indexOf('title=') + 6, target.lastIndexOf('&action=submit'))).replace(/_/g, ' ');
              window.alert("There's an old vfd at the default location already.\n\n" +
                           'Please either move it out of the way (and update existing links to it), or file the AfD by hand in another location (such as [[' + target + ' (2)]]).');
            }
          else
          {
            document.editform.wpTextbox1.value += "{{" + "subst:afd2|pg=" + target + "|text=\'\'\'Delete\'\'\'}} ~" + "~" + "~" + "~";
            document.editform.wpSummary.value = 'Nominate';
            document.editform.wpWatchthis.checked = true;
          }
        }
      else
           deletiontags();
    }
}
 
if (window.addEventListener)
  window.addEventListener('load', autovfd, false);
else if (window.attachEvent)
  window.attachEvent('onload', autovfd);
 
// Returns <li><a href="url">name</a></li>
/*function addlilink(url, name)
{
  var na = document.createElement('a');
  na.setAttribute('href', url);
 
  var txt = document.createTextNode(name);
  na.appendChild(txt);
 
  var li = document.createElement('li');
  li.appendChild(na);
  return li;
}*/
 
 
//////////////////////////////////////
// Mass checkbox manipulation
// for version undelete and watchlist
// by OwenX
//////////////////////////////////////
function any_boxes()
{
    for (i=0; i<document.forms.length; i++)
        for (j=0; j<document.forms[i].elements.length; j++)
            if (document.forms[i].elements[j].type == 'checkbox')
                return true;
    return false;
}
 
function check_all_boxes(act)
{
    var in_range = false;
    for (i=0; i<document.forms.length; i++)
    {
        for (j=0; j<document.forms[i].elements.length; j++)
        {
            f= document.forms[i].elements[j];
            if (f.type == 'checkbox')
            {
                if (act == 1)
                    f.checked = true;
                else if (act == 0)
                    f.checked = false;
                else if (act == -1)
                    f.checked = !f.checked;
                else if (act == 2)
                {
                    if (in_range)
                        if (f.checked)
                        {
                            in_range = false;
                            break;
                        }
                        else
                            f.checked = true;
                    else if (f.checked)
                        in_range = true;
                }
            }
        }
    }
}
 
function do_checkboxing()
{
    if (any_boxes())
    {
        var c1 = document.getElementById('column-one');
        var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];
 
        addlilink(tabs,'javascript:check_all_boxes(1)', 'Check all');
        addlilink(tabs,'javascript:check_all_boxes(0)', 'Uncheck all');
        addlilink(tabs,'javascript:check_all_boxes(-1)', 'Invert all');
        addlilink(tabs,'javascript:check_all_boxes(2)', 'Fill range');
    }
}
 
function do_warn_stuff()
{
  var c1 = document.getElementById('column-one');
  var tabs = c1.getElementsByTagName('div')[0].getElementsByTagName('ul')[0];
  var rcol = document.getElementById('bodyContent').getElementsByTagName('td').item(1);
  if (rcol != null)
  {
     var vandalname = rcol.getElementsByTagName('a')[3].innerHTML;
    var page = document.title.substring (0, document.title.length - 35);
    addlilink(tabs,'http://en.wikipedia.org/w/index.php?title=User_talk:' + vandalname + '&action=edit&fakefrom=' + escape(page), 'Warn');
  }
}
 
function do_onload()
{
  if (mw.config.get('wgCanonicalSpecialPageName') == 'Undelete' || mw.config.get('wgCanonicalSpecialPageName') == 'Watchlist')
    do_checkboxing();
 
  if (document.getElementById('contentSub').innerHTML.indexOf("<div id=\"difference\">(<a href=\"http://en.wikipedia.org/wiki/Help:Diff\">Difference between revisions</a>)</div>")>-1)
   do_warn_stuff();
 
    // add a clock
    var toplinks = document.getElementById('p-personal').getElementsByTagName('ul')[0];
    addlilink(toplinks, '#', '', 'utcdate');
    showtime();
    morelinks();
}
 
if (window.addEventListener) 
  window.addEventListener("load", do_onload, false);
else if (window.attachEvent) 
  window.attachEvent("onload", do_onload);
 
 
// ##### begin various mods from Essjay's monobook #####
 
function addTab(url, name, id, title, key){ 
    var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
    addlilink(tabs, url, name, id, title, key);
}
 
function morelinks()
{
    var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0];
if(mw.config.get('wgCanonicalNamespace') == 'User_talk'||
   mw.config.get('wgCanonicalNamespace') == 'User')
    {
        addlimenu(tabs, 'User functions', 'userf');
        var userf = document.getElementById('userf').getElementsByTagName('ul')[0];
 
         var editlk = mw.config.get('wgTitle');
            var slloc = editlk.indexOf('/');
            if(slloc > 0) editlk = editlk.substring(0, slloc);
         var anon= IPhandler(editlk);
 
        // format: addlilink(userf, url, name);
 
        // add "block" tab
        addlilink(userf, '/wiki/Special:Blockip/' + editlk, 'block user', '');
 
        // add "blocklog" tab
        addlilink(userf, '/wiki/Special:Log/block?page=User:' + editlk, 'block log', '');
 
        // add "unblock" tab
        addlilink(userf, '/w/index.php?title=Special:Ipblocklist&action=unblock&ip=' + editlk, 'unblock', '');
 
        // add "contributions" tab
        addlilink(userf, '/wiki/Special:Contributions/' + editlk, 'contribs', '');   
 
        if (anon != true)
        {
        // add "user log" tab
        addlilink(userf, '/w/index.php?title=Special:Log&type=&user=' + editlk, 'user log', '');
        }
 
        // add "edit count" tab
        addlilink(userf, 'http://tools.wikimedia.de/~interiot/cgi-bin/Tool1/wannabe_kate?username=' + editlk + '&site=en.wikipedia.org', 'editcount', '');
 
        if (anon != true)
        {
        // add "rights" tab
        addlilink(userf, '/w/index.php?title=Special:Listusers&limit=1&username=' + editlk.replace(" ","+"), 'rights', '');
        }
 
        if (anon == true)
        {
        // add "whois" tab
        addlilink(userf, 'http://www.dnsstuff.com/tools/whois.ch?ip=' + editlk, 'whois', '');
 
        // add "RDNS" tab
        addlilink(userf, 'http://www.dnsstuff.com/tools/ptr.ch?ip=' + editlk, 'RDNS', '');
        }
     }
}
function IPhandler(PossIP)
{
           var count = 0
           while (perp != -1)
           {
           var IP;
           var perp = PossIP.indexOf('.');
           if (perp == -1)
           {
            IP = PossIP.substring(0, PossIP.length)
           }
           else
           {
           IP = PossIP.substring(0, perp);
           }
           var check = Iptest(IP);
           if (check != 1)
           {
           return false;
           }
           else
           {
           PossIP = PossIP.substring(perp + 1, PossIP.length)
           count++;
           }    
}
       if (count == 4)
       return true;  
       else
       return false;
}
function Iptest(Num)
{
    if (Num >=0 && Num <= 255)
    return 1;
}
 
 
function showtime()
{
    var timerID;
    var now = new Date();
    var timeValue = now.toUTCString().replace(/GMT/, "UTC");
    document.getElementById('utcdate').firstChild.innerHTML = timeValue;
    timerID = setTimeout('showtime()', 100);
}
 
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;
}
 
function topaz_extratoolbarbuttons() {
  topaz.wputil.addsidepanelbutton("p-tb", "Page log",
    'http://en.wikipedia.org/w/index.php?title=Special:Log&page='+mw.config.get('wgPageName')
  );
  topaz.wputil.addsidepanelbutton("p-tb", "Purge page cache",
    'http://en.wikipedia.org/w/index.php?title='+mw.config.get('wgPageName')+'&action=purge'
  );
}
if (window.addEventListener)
  window.addEventListener('load', topaz_extratoolbarbuttons, false);
else if (window.attachEvent)
  window.attachEvent('onload', topaz_extratoolbarbuttons);
 
 
 
 
 
// {{commons ok}} tagger
function commonsOK() {
  document.editform.wpTextbox1.value += "\n{{commons ok}}";
  document.editform.wpSummary.value = "{{[[Template:commons ok|commons ok]]}}";
  document.editform.submit();
}
function addCommonsOK(){
  imgString = "Editing Image:";
  if (document.getElementsByTagName('h1')[0].firstChild.nodeValue.substring(0, imgString.length) == imgString) {
    addTab("javascript:commonsOK()", "{{commons ok}}", "");
    akeytt();
  }
}
$(addCommonsOK);
 
 
 
function inc (file) {
  mw.loader.load('/w/index.php?title='+file+'&action=raw&ctype=text/javascript&dontcountme=s');
}
 
// [[User:Lupin/popups.js]] - please include this line 
 
mw.loader.load(
             'https://en.wikipedia.org/w/index.php?title=User:Lupin/popups.js'
             + '&action=raw&ctype=text/javascript&dontcountme=s');
 
// Filter changes live
// [[User:Lupin/recent2.js]] - please include this line
mw.loader.load(
             'https://en.wikipedia.org/w/index.php?title=User:Lupin/recent2.js'
             + '&action=raw&ctype=text/javascript&dontcountme=s');
 
popupFixDabs=true;
popupFixRedirs=true;
popupAdminLinks=true;
popupOnEditSelection=false;
 
if (mw.config.get('wgAction') != 'submit')
{
$(function(){ var x; if (x=document.getElementById('wpAnonOnly')) {x.checked=false;} });
$(function(){ var x; if (x=document.getElementById('wpReason')) {x.value='';} });
}

importScript('User:AzaToth/twinkle.js');

// jncsp-start
if (location.href == "http://en.wikipedia.org/wiki/Wikipedia:WikiProject_User_scripts/User-script_manager")
  {{subst:js|User:Jitse_Niesen/Client-side_preferences/Main.js}}
// jncsp-end
 
inc("User:Topaz/init.js");
inc("User:Topaz/util.js");
inc("User:Topaz/comm.js");
inc("User:Topaz/wputil.js");
inc("User:Prodego/statuschanger.js");
inc("User:Interiot/Tool2/code.js");
inc("User:Prodego/AFDclose.js");
inc("User:Prodego/Sandbox.js");

//</nowiki>