User:StonedChipmunk/statuschanger.js
//
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
Online',
busy:'Image:YellowTrafficLight.jpg
Busy',
away:'Image:YellowFlashTrafficLight.gif
Away',
vandal:'Image:GreenFlashTrafficLight.gif
Vandal-Fighting',
offline:'Image:RedTrafficLight.jpg
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); //