//<nowiki>
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:'[[Image:GreenTrafficLight.jpg]]<br><font color="00FF00">Online</font>',
busy:'[[Image:YellowTrafficLight.jpg]]<br><font color="FF9900">Busy</font>',
away:'[[Image:YellowFlashTrafficLight.gif]]<br><font color="FF9900">Away</font>',
vandal:'[[Image:GreenFlashTrafficLight.gif]]<br><font color="00FF00">Vandal-Fighting</font>',
offline:'[[Image:RedTrafficLight.jpg]]<br><font color="FF0000">Offline</font>'
};
// 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<buttonlist.length; 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<spanlist.length; 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 ?
'<includeonly><span class="topaz.statuschanger.inlinestatus.'
+ escape(topaz.wputil.username())
+ '"></includeonly>'
: '') +
topaz.statuschanger.statuscode[statusname] +
(!topaz.statuschanger.enablewikimarkup ?
'<includeonly></span></includeonly>'
: '') +
'<span class="topaz.statuschanger.curstatus.'+escape(topaz.wputil.username()) +
'" style="display:none">'+statusname+'</span>',
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<spanlist.length; 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);
//</nowiki>