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);

//