//<div><pre><nowiki>
function MyaddLoadEvent(func)
{
if (window.addEventListener)
window.addEventListener("load", func, false);
else if (window.attachEvent)
window.attachEvent("onload", func);
}
function checkpath(url) {
var reg=/^\/w(\/|iki\/).*/;
if(reg.test(url))return true;
}
function getpathfromurl(url) {
var ret=new String(url);
var path3=/^([A-Za-z0-9_]+):\/\/([^\/]*)\/(.*)/;
return ret.replace(path3,"$3");
}
function getpath(olink){
if(is_gecko){
return olink.pathname;
}
var reg=/^.*href="([^"]+)".*$/;
return getpathfromurl(olink.outerHTML.replace(reg,"$1"));
}
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 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 updateurl(olink) {
if(is_gecko) {
return update(olink.href);
}
var reg=/^.*href="([^"]+)".*$/;
return update(olink.outerHTML.replace(reg,"$1"));
}
function fixup(obj) {
var path=getpath(obj);
if(obj.protocol=="https:" && checkpath(path))
obj.href="/"+getpath1(location)+"/"+getpath2(location)+path;
else
obj.href=updateurl(obj);
obj.onmouseover=obj.oldfun;
}
function checklink(olink) {
if(olink.hostname=="up.wiki.x.io")return;
if(olink.hostname=="mail.wiki.x.io")return;
if(olink.protocol=="https:") {
if(olink.hostname=="secure.wikimedia.org") {
if(!checkpath(olink.pathname))return;
}
}
olink.oldfun=olink.onmouseover;
if(olink.oldfun) {
olink.onmouseover=function(){this.oldfun();fixup(this);}
}
else olink.onmouseover=function(){fixup(this);}
}
function updatehook() {
for(i=0;i+document.links.length;++i) {
checklink(document.links[i]);
}
}
if(location.protocol=="https:") {
MyaddLoadEvent(updatehook);
}//</nowiki></pre></div>