User:Chrislk02/monobook.js

//

var topaz = new Object();

topaz.latestversion = {

statuschanger: 20061108,

editcountutil: 20061104,

enhanceduserpage: 20061107

};

topaz.init = new Object();

topaz.init.oldonload = window.onload;

window.onload = function() {

if (typeof topaz.init.oldonload == "function") topaz.init.oldonload();

var outdated = [];

var highestversion = 0;

var versionoverride = topaz.util.cookie.get("topaz.init.versionoverride");

for (mod in topaz.latestversion) {

if (topaz[mod]) {

if (!topaz[mod].version || topaz[mod].version < topaz.latestversion[mod]) {

if (!versionoverride || topaz.latestversion[mod] > versionoverride) {

outdated.push({

mod: mod,

latest: topaz.latestversion[mod],

cur: (topaz[mod].version?topaz[mod].version:0)

});

}

}

if (topaz.latestversion[mod] > highestversion) {

highestversion = topaz.latestversion[mod];

}

}

}

if (outdated.length==0) {return}

var noticemessage = 'You seem to be using outdated versions of Topaz\'s Wikiscripts. While you may opt to hide this message until the next major update (or until you clear your cookies), you should strongly consider updating them to take advantage of the new features and bug fixes. In particular, the following scripts could use updating:

    ';

    for(var i=0; i

    noticemessage += "

  • " + outdated[i].mod + " version " + outdated[i].cur + " (latest is version " + outdated[i].latest + ")
  • ";

    }

    noticemessage += "

";

with(topaz.init.noticediv = topaz.util.add(topaz.util.getobj("contentSub"), "div")) {

innerHTML = noticemessage;

style.color = "#666666";

style.backgroundColor = "#eeeeee";

style.border = "1px solid #cccccc";

style.margin = "5px";

style.padding = "2px";

}

// todo: hide button

};

topaz.util = {

getobj:function(id) {

return document.getElementById ?

document.getElementById(id) :

document.all[id];

},

time:function() {

return((new Date()).getTime()/1000);

},

add:function(parent, tag, attr) {

var el = document.createElement(tag);

if (attr) {

for (key in attr) {

el[key] = attr[key];

}

}

return parent.appendChild(el);

},

fullescape:function(text) {

return escape(text).replace(/\+/g,"%2B");

},

mousebtnmap:{

ns:[null,1,3,2],

ie:[null,1,2,null,3]

},

xmlhttpreq:function() {

if (window.XMLHttpRequest) {

xmlhttpobj = new XMLHttpRequest()

} else {

try {

xmlhttpobj = new ActiveXObject("Msxml2.XMLHTTP");

} catch (e) {

try {

xmlhttpobj = new ActiveXObject("Microsoft.XMLHTTP");

} catch (e) {

xmlhttpobj = null;

}

}

}

return xmlhttpobj;

},

cookie:{

noexpire:(function(){

var d = new Date();

d.setTime(d.getTime()+(365*24*60*60*1000));

return d.toGMTString();

})(),

expire:(function(){

var d = new Date();

d.setTime(d.getTime()-1);

return d.toGMTString();

})(),

get:function(name) {

var cl = document.cookie.split(/;\s*/);

for (var i=0; i

var curc = cl[i].split(/\=/);

if (curc[0] == name) {

return(curc[1]);

}

}

return null;

},

set:function(name, value) {

document.cookie = name + "=" + escape(value) +

"; expires=" + topaz.util.cookie.noexpire +

"; path=/";

},

del:function(name) {

document.cookie = name+"=; expires="+topaz.util.coookie.expire+"; path=/";

}

}

};

topaz.comm = {

doreq:function(url,postdata,headers) {

var req = topaz.util.xmlhttpreq();

req.open(postdata?"POST":"GET", url, false);

for(header in headers) {

req.setRequestHeader(header,headers[header]);

}

req.send(postdata||null);

return req;

}

};

topaz.wputil = {

username:function() {

return mw.config.get('wgUserName');

//return topaz.util.getobj("pt-userpage").childNodes[0].childNodes[0].nodeValue;

},

iseditpage:function() {

return document.title.indexOf("Editing ")==0;

},

pagename:function() {

var iseditpage = topaz.wputil.iseditpage();

return document.title.substr(iseditpage?8:0,document.title.indexOf(" - ")-(iseditpage?8:0));

},

addsidepanel:function(id,label) {

var div = topaz.util.add(topaz.util.getobj("column-one"), "div", {className:"portlet",id:id});

topaz.util.add(div, "H5").innerHTML = label;

topaz.util.add(topaz.util.add(div, "div", {className:"pBody"}), "ul");

},

addsidepanelbutton:function(id,label,targhref) {

var li = topaz.util.add((topaz.util.getobj(id).getElementsByTagName("ul"))[0],"li");

with(topaz.util.add(li,"a")) {

innerHTML = label;

href = targhref;

}

return li;

},

setpagecontent:function(pagename,content,summary,watch) {

var prelimresp = topaz.comm.doreq("/w/index.php?title="+pagename+"&action=submit");

var edittime = prelimresp.responseText.match(/\/)[1];

var edittoken = prelimresp.responseText.match(/\/)[1];

topaz.comm.doreq("/w/index.php?title="+pagename+"&action=submit",

"wpEdittime="+edittime+

"&wpEditToken="+topaz.util.fullescape(edittoken)+

"&wpTextbox1="+escape(content)+

"&wpSummary="+escape(summary)+

(watch?"&wpWatchthis=on":"")+

"&wpSection=&wpSave=Save+page",

{"Content-Type":"application/x-www-form-urlencoded"});

},

getpagecontent:function (pagename) {

var req = topaz.comm.doreq("/w/index.php?title="+pagename+"&action=edit");

var content = req.responseText.match(/\([\w\W]*?)\<\/textarea\>/)[1];

content = content.replace(/\<\;/gi, "<");

content = content.replace(/\>\;/gi, ">");

content = content.replace(/\"\;/gi, "\"");

content = content.replace(/\&\;/gi, "&");

return content;

}

};

//

topaz.statuschanger = new Object();

topaz.statuschanger.version = 20061108;

/* configuration */

// change these to whatever you'd like to show up on your status page. you can add new lines in

// the same format provided there is a comma at the end of each line but the last one. you can

// also use wikimarkup here to, for example, display an image instead of text.

topaz.statuschanger.statuscode = {

online:'online',

busy:'busy',

offline:'offline'

};

// this will make wikimarkup work in your stauscodes but will disable auto-updating

topaz.statuschanger.enablewikimarkup = true;

// true to use the personal bar, false to create a panel in the left column

topaz.statuschanger.usepersonalbar = true;

// true if you'd like your status page on your watchlist

topaz.statuschanger.watchstatus = false;

/* end configuration */

topaz.statuschanger.buttonlist = {};

topaz.statuschanger.oldonload = window.onload;

window.onload = function() {

if (typeof topaz.statuschanger.oldonload == "function") {

setTimeout('topaz.statuschanger.oldonload()',50);

}

if (!topaz.statuschanger.usepersonalbar) {

topaz.wputil.addsidepanel("tz-statuschanger", "status changer");

}

var buttonlist = [];

for (status in topaz.statuschanger.statuscode) {

buttonlist.push(status);

topaz.statuschanger.buttonlist[status] =

topaz.wputil.addsidepanelbutton(

topaz.statuschanger.usepersonalbar ? "p-personal" : "tz-statuschanger",

status,

'javascript:topaz.statuschanger.setstatus("' + status + '")'

);

}

if (topaz.statuschanger.usepersonalbar) {

for(var i=0; i

with (topaz.statuschanger.buttonlist[buttonlist[i]].style) {

if (i != buttonlist.length-1) {

borderRight = "1px solid #aaaaaa";

paddingRight = "2px";

}

if (i != 0) {

marginLeft = "0px";

paddingLeft = "2px";

}

}

}

}

var spanlist = document.getElementsByTagName("span");

for (var i=0; i

if (spanlist[i].className == "topaz.statuschanger.curstatus."+escape(topaz.wputil.username())) {

topaz.util.cookie.set("topaz.statuschanger.curstatus", spanlist[i].innerHTML);

}

}

topaz.statuschanger.update();

};

topaz.statuschanger.setstatus = function(statusname) {

topaz.wputil.setpagecontent(

"User:"+topaz.wputil.username()+"/Status",

(!topaz.statuschanger.enablewikimarkup ?

''

: '') +

topaz.statuschanger.statuscode[statusname] +

(!topaz.statuschanger.enablewikimarkup ?

''

: '') +

'',

statusname,

topaz.statuschanger.watchstatus);

topaz.util.cookie.set("topaz.statuschanger.curstatus", statusname);

topaz.statuschanger.update();

};

topaz.statuschanger.laststatus = null;

topaz.statuschanger.update = function() {

var curstatus = topaz.util.cookie.get("topaz.statuschanger.curstatus");

if (curstatus && curstatus != topaz.statuschanger.laststatus) {

for (status in topaz.statuschanger.buttonlist) {

with (topaz.statuschanger.buttonlist[status].style) {

if (status == curstatus) {

fontWeight = "bold";

} else {

fontWeight = "normal";

}

}

}

if (!topaz.statuschanger.enablewikimarkup) {

var spanlist = document.getElementsByTagName("span");

for (var i=0; i

if (spanlist[i].className == "topaz.statuschanger.inlinestatus."+escape(topaz.wputil.username())) {

spanlist[i].innerHTML = topaz.statuschanger.statuscode[curstatus];

}

}

}

}

topaz.statuschanger.laststatus = curstatus;

};

setInterval("topaz.statuschanger.update()", 5000);

// Commons js patch

document.write('');

//

//////////////////////////////////////////

function winc(s) {

s = s.replace(/^\[\[/, ).replace(/\]\]$/, );

document.write('');

}

winc('User:Cactus.man/Scripts/Time.js'); // Add date and time to the personal menu

// {{commons ok}} tagger

function commonsOK() {

if (document.editform) {

document.editform.wpTextbox1.value += "\n{{commons ok}}";

document.editform.wpSummary.value = "{{commons ok}}";

document.editform.submit();

} else

document.location = mw.config.get('wgServer') + mw.config.get('wgScript') + "?title=" + mw.config.get('wgPageName') + "&action=edit&commonsOK=1";

}

function addCommonsOK(){

if (mw.config.get('wgCanonicalNamespace') == "Image")

mw.util.addPortletLink("p-cactions", "javascript:commonsOK()", "{{commons ok}}", "");

if (document.location.href.indexOf("commonsOK=1") > 0)

commonsOK();

}

$(addCommonsOK);

//