User:Actown/statuschanger.js

Note: After saving, you have to bypass your browser's cache to see the changes. Google Chrome, Firefox, Microsoft Edge and Safari: Hold down the ⇧ Shift key and click the Reload toolbar button. For details and instructions about other browsers, see Wikipedia:Bypass your cache.
topaz.statuschanger = new Object();

/* configuration */
// change these to whatever you'd like to show up on your status page.
topaz.statuschanger.statuscode = {
  online:'<font color="green">Online<br>[[Image:In_Icon.JPG|center]]</font>',
  busy:'<font color="orange">Busy<br>[[Image:Around_Icon.JPG|center]]<br></font>',
  offline:'<font color="red">Offline<br>[[Image:Out_Icon.JPG|center]]</font>'
};
// 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.oldonload = window.onload;
window.onload = function() {
  if (typeof topaz.statuschanger.oldonload == "function") topaz.statuschanger.oldonload();
  if (topaz.statuschanger.usepersonalbar) {
    var a = topaz.wputil.addsidepanelbutton("p-personal", "Online",
        'javascript:topaz.statuschanger.setstatus("online")'
    );
    var b = topaz.wputil.addsidepanelbutton("p-personal", "Busy",
        'javascript:topaz.statuschanger.setstatus("busy")'
    );
    var c = topaz.wputil.addsidepanelbutton("p-personal", "Offline",
        'javascript:topaz.statuschanger.setstatus("offline")'
    );
    a.style.borderRight=b.style.borderRight="1px solid #aaaaaa";
    b.style.marginLeft=c.style.marginLeft="0px";
    a.style.paddingRight=b.style.paddingLeft=b.style.paddingRight=c.style.paddingLeft="2px";
  } else {
    topaz.wputil.addsidepanel("tz-statuschanger", "status changer");
    topaz.wputil.addsidepanelbutton("tz-statuschanger", "Online",
        'javascript:topaz.statuschanger.setstatus("online")'
    );
    topaz.wputil.addsidepanelbutton("tz-statuschanger", "Busy",
        'javascript:topaz.statuschanger.setstatus("busy")'
    );
    topaz.wputil.addsidepanelbutton("tz-statuschanger", "Offline",
        'javascript:topaz.statuschanger.setstatus("offline")'
    );
  }
};

topaz.statuschanger.setstatus = function(statusname) {
  topaz.wputil.setpagecontent(
      "User:"+topaz.wputil.username()+"/Status",
      topaz.statuschanger.statuscode[statusname],
      statusname,
      topaz.statuschanger.watchstatus);
};