Jump to content

User:Mojo Hand/vector.js

From Wikipedia, the free encyclopedia
This is an old revision of this page, as edited by Mojo Hand (talk | contribs) at 04:45, 13 March 2012 (Give it a try). The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.
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.
// [[User:Lupin/popups.js]] - please include this line 
importScript('User:Lupin/popups.js');

popupFixDabs=true;
popupAdminLinks=true;

importScript('User:Lupin/recent2.js');

// CSD AutoReason
importScript('User:AuburnPilot/csd.js');

// [[User:Outriggr/metadatatest.js]] <nowiki>
importScript('User:Outriggr/metadatatest.js'); 
assessmentMyTemplateCode = ["{{WikiProject Virginia|class=|importance=}}"];
assessmentDefaultProject = "WikiProject Virginia";
// </nowiki>

assessmentMarkAsMinor = false;

//
 // Edit tools for the vandal whack-a-mole game
 // [[User:Kbh3rd/whackamole.js]] - please include this line
 //
 document.write('<script type="text/javascript" src="' 
             + 'http://en.wikipedia.org/w/index.php?title=User:Kbh3rd/whackamole.js' 
             + '&action=raw&ctype=text/javascript&dontcountme=s"></script>');

//this helps automate AfD closing by adding a 'close' tab to AfD debates
//written by [[User:Johnleemk]] based on [[Wikipedia:WikiProject User scripts/Scripts/test-n.js]] by [[User:Celestianpower]]

function autoafd_result()
{
  var close = prompt("Result of debate?")
  var f = document.editform, t = f.wpTextbox1;
  t.value = t.value.split('{{REMOVE THIS TEMPLATE WHEN CLOSING THIS AfD').join('{{ns:0');
  t.value = "{{subst:" + "at" + "}} '''" + close + "'''. " + "~" + "~" + "~" + "~" + '\n' + '\n' + t.value;
  if (t.value.length > 0)
    t.value += '\n';
  t.value += "{{subst:" + "ab" + "}}";
  f.wpSummary.value = "Closing debate; result was " + close;
}

function autoafd_relist()
{
  var f = document.editform, t = f.wpTextbox1;
  if (t.value.length > 0)
    t.value += '\n';
  t.value += "{{subst:" + "relist" + "|~" + "~" + "~" + "~}}";
  f.wpSummary.value = "Relisting debate";
}

function autoafd_keep()
{
  var date = prompt("Nomination was made when?")
  var votepage = prompt("Vote page is? (Enter 'd' for default.)")
  var f = document.editform, t = f.wpTextbox1;

    // If default votepage...
    if (votepage=="d")
      {
        var temp = document.editform.action.split("/w/index.php?title=");
        var temp = temp[1].split("&action=submit");
        var temp = temp[0].substring(5);
        var votepage = temp;
      }

  t.value = "{{" + "oldafdfull" + "|date=" + date + "|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;
  f.wpSummary.value = "Article survived AfD";
}

function autoafd_no_consensus()
{
  var date = prompt("Nomination was made when?")
  var votepage = prompt("Vote page is? (Enter 'd' for default.)")
  var f = document.editform, t = f.wpTextbox1;

    // If default votepage...
    if (votepage=="d")
      {
        var temp = document.editform.action.split("/w/index.php?title=");
        var temp = temp[1].split("&action=submit");
        var temp = temp[0].substring(5);
        var votepage = temp;
      }

  t.value = "{{" + "oldafdfull" + "|date=" + date + "|result='''no consensus'''|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;
  f.wpSummary.value = "Article survived AfD with no consensus";
}

function autoafd_redirect()
{
  var date = prompt("Nomination was made when?")
  var redirect = prompt("Redirect to?")
  var votepage = prompt("Vote page is? (Enter 'd' for default.)")
  var f = document.editform, t = f.wpTextbox1;

    // If default votepage...
    if (votepage=="d")
      {
        var temp = document.editform.action.split("/w/index.php?title=");
        var temp = temp[1].split("&action=submit");
        var temp = temp[0].substring(5);
        var votepage = temp;
      }

  t.value = "{{" + "oldafdfull" + "|date=" + date + "|result='''redirect to [[" + redirect + "]]'''|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;
  f.wpSummary.value = "Article redirected to [[" + redirect + "]] as per AfD";
}

function autoafd_merge()
{
  var date = prompt("Nomination was made when?")
  var redirect = prompt("Merge and redirect to?")
  var votepage = prompt("Vote page is? (Enter 'd' for default.)")
  var f = document.editform, t = f.wpTextbox1;

    // If default votepage...
    if (votepage=="d")
      {
        var temp = document.editform.action.split("/w/index.php?title=");
        var temp = temp[1].split("&action=submit");
        var temp = temp[0].substring(5);
        var votepage = temp;
      }

  t.value = "{{" + "oldafdfull" + "|date=" + date + "|result='''merge and redirect to [[" + redirect + "]]'''|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;
  f.wpSummary.value = "Article merged and redirected to [[" + redirect + "]] as per AfD";
}

function autoafd_other()
{
  var date = prompt("Nomination was made when?")
  var result = prompt("Result was?")
  var votepage = prompt("Vote page is? (Enter 'd' for default.)")
  var f = document.editform, t = f.wpTextbox1;

    // If default votepage...
    if (votepage=="d")
      {
        var temp = document.editform.action.split("/w/index.php?title=");
        var temp = temp[1].split("&action=submit");
        var temp = temp[0].substring(5);
        var votepage = temp;
      }

  t.value = "{{" + "oldafdfull" + "|date=" + date + "|result='''" + result + "'''|votepage=" + votepage + "}}" + '\n' + '\n' + t.value;
  f.wpSummary.value = "AfDed; result was " + result;
}

function autoafd_add_afd_tabs()
{
  // Only add for pages with the right string somewhere in the title
  if (document.title.indexOf("Editing Wikipedia:Articles for deletion/") != -1)
    {
      addPortletLink('p-cactions', 'javascript:autoafd_result()', "close");
      addPortletLink('p-cactions', 'javascript:autoafd_relist()', "relist");
    }
  if (document.title.indexOf("Editing Talk:") != -1)
    {
      addPortletLink('p-cactions', 'javascript:autoafd_keep()', "keep");
      addPortletLink('p-cactions', 'javascript:autoafd_no_consensus()', "no consensus");
      addPortletLink('p-cactions', 'javascript:autoafd_redirect()', "redirect");
      addPortletLink('p-cactions', 'javascript:autoafd_merge()', "merge");
      addPortletLink('p-cactions', 'javascript:autoafd_other()', "other");
    }
}

addOnloadHook(autoafd_add_afd_tabs);

//end AfD closing script

//[[User:ais523 non-admin/adminrights.js]]
//
// This script highlights bluelinks to admins' userpages or talkpages in bodyContent (that is, everything but the tabs, personal
// links at the top of the screen and sidebar) by giving them a cyan background. Please import this script using importScript,
// rather than copying the code, as the list of admins is hard-coded for performance and if you copy the code the list won't update
// with time (I update it from time to time). You can do this by substing Template:js with this script's name as an argument in your
// monobook.js.
//
// If you want a colour other than cyan, add
// .ais523_adminrights_admin {background-color: #FFFF00 !important}
// (or any other colour code) to your monobook.css file.
 
//Update this list at
//http://en.wikipedia.org/w/index.php?title=Special:Listusers&limit=5000&group=sysop&ais523update=y
var adminrights=new Array();
 
importScript('User:Ais523/adminrights-admins.js'); //[[User:Ais523/adminrights.js]]
 
//Updating script
addOnloadHook(function(){
  if(location.href=="http://en.wikipedia.org/w/index.php?title=Special:ListUsers&limit=5000&"+
                    "group=sysop&ais523update=y")
  {
    var h=document.getElementById('bodyContent').innerHTML;
    var a=new Array();
    h=h.split(/\< *li *\>/i);
    var i=0;
    while(++i<h.length)
    {
      a[h[i].split(">")[1].split("<")[0]]=h[i].split(/\< *\/ *li *\>/i)[0];
    }
    for(i in a)
    {
      document.write("adminrights['"+
        encodeURIComponent(i).split("\\").join("\\\\").split("'").join("%27")
                             .split("(").join("%28").split(")").join("%29")
                             .split("%21").join("!").split("%2C").join(",")
                             .split("%3A").join(":")+"']=1;<BR/>");
    }
  }
});
 
//Highlighting script. Based on [[User:ais523/highlightmyname.js]].
 
function highlightadmins(n,p) //node, parent node
{
  while(n!=null)
  {
    if(n.nodeType==1&&n.tagName.toLowerCase()=="a") //anchor
    {
      if(n.href.indexOf("http://en.wikipedia.org/wiki/User:")!=-1)
      {
        var u=n.href.split("http://en.wikipedia.org/wiki/User:")[1];
        if(adminrights[u.split("_").join("%20")]==1)
        {
          n.style.backgroundColor="#cedff2";
          if(n.className==null||n.className=="") n.className="ais523_adminrights_admin";
          else n.className+="ais523_adminrights_admin";
        }
        n=n.nextSibling;
      }
      else if(n.href.indexOf("http://en.wikipedia.org/wiki/User_talk:")!=-1)
      {
        var u=n.href.split("http://en.wikipedia.org/wiki/User_talk:")[1];
        if(adminrights[u.split("_").join("%20")]==1)
        {
          n.style.backgroundColor="#cedff2";
          if(n.className==null||n.className=="") n.className="ais523_adminrights_admin";
          else n.className+=" ais523_adminrights_admin";
        }
        n=n.nextSibling;
      }
      else if(n.href.indexOf("http://en.wikipedia.org/wiki/Special:Contributions:")!=-1)
      {
        var u=n.href.split("http://en.wikipedia.org/wiki/Special:Contributions:")[1];
        if(adminrights[u.split("_").join("%20")]==1)
        {
          n.style.backgroundColor="#cedff2";
          if(n.className==null||n.className=="") n.className="ais523_adminrights_admin";
          else n.className+=" ais523_adminrights_admin";
        }
        n=n.nextSibling;
      }
      else if(n.href.indexOf("http://en.wikipedia.org/w/index.php?title=User:")!=-1)
      {
        var u=n.href.split("http://en.wikipedia.org/w/index.php?title=User:")[1];
        if(adminrights[u.split("_").join("%20")]==1)
        {
          n.style.backgroundColor="#cedff2";
          if(n.className==null||n.className=="") n.className="ais523_adminrights_admin";
          else n.className+=" ais523_adminrights_admin";
        }
        n=n.nextSibling;
      }
      else if(n.href.indexOf("http://en.wikipedia.org/w/index.php?title=User_talk:")!=-1)
      {
        var u=n.href.split("http://en.wikipedia.org/w/index.php?title=User_talk:")[1];
        if(adminrights[u.split("_").join("%20")]==1)
        {
          n.style.backgroundColor="#cedff2";
          if(n.className==null||n.className=="") n.className="ais523_adminrights_admin";
          else n.className+=" ais523_adminrights_admin";
        }
        n=n.nextSibling;
      }
      else
      {
        if(n.firstChild!=null) highlightadmins(n.firstChild,n);
        n=n.nextSibling;
      }
    }
    else
    {
      if(n.firstChild!=null) highlightadmins(n.firstChild,n);
      n=n.nextSibling;
    }
  }
}
 
addOnloadHook(function() {
  if(location.href.indexOf("?ais523")==-1&&location.href.indexOf("&ais523")==-1&&
     location.href.indexOf("?action=edit")==-1&&location.href.indexOf("?action=submit")==-1&&
     location.href.indexOf("&action=edit")==-1&&location.href.indexOf("&action=submit")==-1&&
     wgPageName!="Special:Preferences")
  {
    highlightadmins(document.getElementById('bodyContent').firstChild,
                    document.getElementById('bodyContent'));
  }
});
/* Category watch ([[User:ais523/catwatch.js]]); adds entries on the watchlist if a page is
   added to a category (and is still in the category when the watchlist is checked). The entry
   will only appear if there is another page on the watchlist edited that day (if the addition
   was the only change on that day, it's neglected). The recategorisation of a page in a watched
   category will also trigger the watching, even if it's a different category that's added or
   removed (unless the watched category is removed); removals from the watched category can't
   be detected.
 
   A previous version of this script had a limit on the maximum size of a category that could be
   watched; this limit no longer exists.
 
   Thanks to [[User:TheDJ]] for helping me make this compatible with more browsers and preference
   settings, and to Roan Kattouw for fixing [[bugzilla:11275]] and making this cheap on the servers.
 
   Note that some users have had problems installing this in Internet Explorer; if the second cache
   bypass (after changing the category watchlist) doesn't work, deleting all your temporary
   Internet files seems to.
*/
 
//<source lang="javascript">
 
var cwwpajax;
// From [[WP:US]] mainpage (wpajax renamed to cwwpajax)
cwwpajax={
        download:function(bundle) {
                // mandatory: bundle.url
                // mandatory: bundle.async
                // optional:  bundle.onSuccess (xmlhttprequest, bundle)
                // optional:  bundle.onFailure (xmlhttprequest, bundle)
                // optional:  bundle.otherStuff OK too, passed to onSuccess and onFailure
 
                var x = window.XMLHttpRequest ? new XMLHttpRequest() // Firefox, Safari, Opera, IE7
                : window.ActiveXObject ? new ActiveXObject("Microsoft.XMLHTTP") // IE6
                : false;
 
                if (x) {
                        x.onreadystatechange=function() {
                                x.readyState==4 && cwwpajax.downloadComplete(x,bundle);
                        };
                        x.open("GET",bundle.url,bundle.async);
                        x.send(null); 
                }
                return x;
        },
 
        downloadComplete:function(x,bundle) {
                x.status==200 && ( bundle.onSuccess && bundle.onSuccess(x,bundle) || true )
                || ( bundle.onFailure && bundle.onFailure(x,bundle) || alert(x.statusText));
        }
};
 
// Example:
// function dlComplete(xmlreq, data) {
//      alert(data.message + xmlreq.responseText);
// }
//  cwwpajax.download({url:'http://en.wikipedia.org/w/index.php?title=Thresher&action=raw', 
//                   onSuccess: dlComplete, message: "Here's what we got:\n\n" });
 
// End of [[WP:US]] quote
 
function cwOntoWatchlist(xmlreq, data)
{
  var a=xmlreq.responseText;
  var c=data.catname;
  var i;
  var diag="";
  if(a.indexOf("<categorymembers/>")!=-1) return; //cat is empty, nothing to do here
  if(a.indexOf('title="')==-1) return; // this error happens sometimes, just do nothing here
  var latesttime=0;
  var latestpage="";
  var temp, temp2;
  latestpage=a.split('title="')[1].split('" timestamp=')[0];
  latesttime=a.split('timestamp="')[1].split('"/>')[0];
  a=document.getElementsByTagName("h4"); //get dates in the watchlist
  var monthname=new Array();
  monthname['01']="January";
  monthname['02']="February";
  monthname['03']="March";
  monthname['04']="April";
  monthname['05']="May";
  monthname['06']="June";
  monthname['07']="July";
  monthname['08']="August";
  monthname['09']="September";
  monthname['10']="October";
  monthname['11']="November";
  monthname['12']="December";
  latesttime=new String(latesttime);
 
  var mn1, mn2, mn3, mn4;
 
  // Allow for different date styles:
  // January 29, 2001
  mn1=""+monthname[latesttime.substr(5,2)]+" "+new Number(latesttime.substr(8,2))+
      ", "+latesttime.substr(0,4);
  // 29 January 2001
  mn2=""+new Number(latesttime.substr(8,2))+" "+monthname[latesttime.substr(5,2)]+
      " "+latesttime.substr(0,4);
  // 2001 January 29
  mn3=""+latesttime.substr(0,4)+" "+monthname[latesttime.substr(5,2)]+
      " "+new Number(latesttime.substr(8,2));
  // 2001-01-29
  mn4=""+latesttime.substr(0,4)+"-"+latesttime.substr(5,2)+"-"+latesttime.substr(8,2);
 
  i=a.length;
  while(i--)
  {
    if(a[i].innerHTML==mn1||a[i].innerHTML==mn2||a[i].innerHTML==mn3||a[i].innerHTML==mn4)
    {
      diag+=a[i].innerHTML+":";
      temp=a[i].nextSibling.firstChild;
      if(temp==null) temp=a[i].nextSibling.nextSibling.firstChild;
      while(temp!=null)
      {
        diag+=temp.tagname+"!";
        if(temp.tagName!=null)
        if(temp.tagName.toLowerCase()=="li")
        {
          temp2=temp.innerHTML.match(/; ([0-9][0-9]):([0-9][0-9])(:[0-9][0-9])? \. \./);
          temp2=new Number(temp2[1])*100+new Number(temp2[2]);
          diag+=temp2+",";
          if(temp2<new Number(latesttime.substr(11,2)+latesttime.substr(14,2))) {temp2=temp; break;}
        }
        temp2=temp; temp=temp.nextSibling;
        if(temp==null) break;
      }
      temp=document.createElement("li");
      if(temp2==null) {return;}
      if(a[i].nextSibling.firstChild!=null) // IE-like whitespace handling
        a[i].nextSibling.insertBefore(temp,temp2);
      else // Firefox-like whitespace handling
        a[i].nextSibling.nextSibling.insertBefore(temp,temp2);
 
      temp.innerHTML="(diff) (hist) . . <a "+
                     "href='http://en.wikipedia.org/wiki/Category:"+
                     encodeURI(c)+
                     "'>Category:"+c+"</a>; "+latesttime.substr(11,2)+":"+latesttime.substr(14,2)+
                     " . . (+ <a "+
                     "href='http://en.wikipedia.org/wiki/"+
                     encodeURI(latestpage)+"'>"+latestpage+"</a> "+
                     "(<a href='http://en.wikipedia.org/w/index.php?title="+encodeURI(latestpage)+
                     "&diff=last'>last</a>))";
      return;
    }
  }
}
 
var WatchedCategories;
 
//An example of a query to check a category would be
 
//http://en.wikipedia.org/w/api.php?action=query&list=categorymembers&cmcategory=Wikipedia%20protected%20edit%20requests&cmlimit=1&cmprop=title|timestamp&cmsort=timestamp&cmdir=desc&format=xml
addOnloadHook(function(){
  //DHTMLloadscript( 'http://en.wikipedia.org/w/index.php?title=User:'+wgUserName
  //  +'/WatchedCategories.js&action=raw&ctype=text/javascript');
  if(wgPageName=="Special:Watchlist")
  {
    // load the script using AJAX, because DHTML fails in Firefox and document.write fails in Safari
    var sru='http://en.wikipedia.org/w/index.php?title=User:'+wgUserName+'/WatchedCategories.js&action=raw&ctype=text/javascript';
    var sr=cwwpajax.download({url:sru,async:false});
    eval(sr.responseText);
    if(WatchedCategories==undefined)
    {
      if(confirm("You don't have a category watchlist yet. Do you want to create one?\n\n"+
                 "(Please provide the following debug information when reporting a problem if "+
                 "this message comes up when you already have a category watchlist: "+
                 (sr.responseText.length<50 ? "responseText='"+sr.responseText+"'" :
                 "responseText.length="+sr.responseText.length)+", statusText='"+sr.statusText
                 +"'.)"))
        location.href='http://en.wikipedia.org/w/index.php?title=User:'+wgUserName+
        '/WatchedCategories.js&action=edit&preload=User:Ais523/WatchedCategoriesTemplate.js';
    }
    else
    {
      var i;
      for(i=0; i<WatchedCategories.length; i++)
      {
        var a=WatchedCategories[i];
        cwwpajax.download({url:'http://en.wikipedia.org/w/api.php?action=query&list=categorymembers&'
                           +'cmtitle=Category:'+encodeURI(a)+'&cmlimit=1&cmprop=title'
                           +'|timestamp&cmsort=timestamp&cmdir=desc&format=xml',
                           onSuccess:cwOntoWatchlist,
                           catname:a, async:true});
      }
    }
  }
});
 
//</source>
//<!--[[Category:Wikipedia scripts]]-->