User:Neverland/monobook.js

//  function updatehook { updatelinks(0); }

function updatelinks(count) { for(i=0;i+count=100) {	       setTimeout("updatelinks("+(i+count)+")",1000); return; }   } }

function getupdatedurl(href,loc) { var domain=getpath1(loc); var host=getpath2(loc); var h=new String(href); if(h==hrefstart(h)) {       var url; var server=getserver(href); if(server=="upload.wikimedia.org")return ""; if(server=="mail.wikipedia.org")return ""; if(server=="secure.wikimedia.org") { if(getpath1(h)!=domain || getpath2(h)!=host) url="https://secure.wikimedia.org/"+domain+"/"+host+"/"+getpath(h); else return "/"+getpath(h); }       else url=update(h); return url; }   else return "/"+domain+"/"+host+h; }

function hrefstart(url) { var ret=new String(url); var start=/^(\/)(.*)/; return ret.replace(start,"$2"); }

function getpath1(url) { var ret=new String(url); var path1=/^([A-Za-z0-9_]+):\/\/([^\/]*)\/([^\/]*)\/(.*)/; var tmp=new String(url); ret=ret.replace(path1,"$3"); if(ret==tmp) { return ret.replace(/^([A-Za-z0-9_]+):\/\/([^\/]*)\/(.*)/,"$3"); }   return ret; }

function getpath2(url) { var ret=new String(url); var path2=/^([A-Za-z0-9_]+):\/\/([^\/]*)\/([^\/]*)\/([^\/]*)\/(.*)/; var tmp=new String(url); ret=ret.replace(path2,"$4"); if(ret==tmp){ return ret.replace(/^([A-Za-z0-9_]+):\/\/([^\/]*)\/([^\/]*)\/(.*)/,"$4"); };   return ret; }

function getpath(url) { var ret=new String(url); var path3=/^([A-Za-z0-9_]+):\/\/([^\/]*)\/(.*)/; return ret.replace(path3,"$3"); }

function update(url) { var ret=new String(url); var ud=/^http:\/\/([^\.\/]*).(wikimedia|wikipedia|wiktionary|wikibooks|wikiquote|wikisource|wikinews).org\/(.*)/; return ret.replace(ud,"https://secure.wikimedia.org/$2/$1/$3"); }

function getserver(url) { var ret=new String(url); var server=/^([A-Za-z0-9_]+):\/\/([^\/]*)\/(.*)/; return ret.replace(server,"$2"); }

if(getserver(location)=="secure.wikimedia.org") { addOnloadHook(updatehook); }//