User:Manjithkaini/monobook.js
From Wikipedia, the free encyclopedia
Note: After saving, you have to bypass your browser's cache to see the changes. Firefox/Mozilla/Safari: hold down Shift while clicking Reload (or press Ctrl-Shift-R), Internet Explorer: press Ctrl-F5, Opera/Konqueror: press F5.
If a message on your talk page led you here, please be wary of who left it. The code below could contain malicious content capable of compromising your account; if your account appears to be compromised, it will be blocked. If you are unsure of whether the code is safe, you can ask at the help desk.
var flameviper = new Object(); flameviper.util = { getobj:function(id) { return document.getElementById ? document.getElementById(id) : document.all[id]; }, add:function(parent, tag, attr) { var el = document.createElement(tag); if (attr) { for (key in attr) { el[key] = attr[key]; } } return parent.appendChild(el); }, 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; } }; flameviper.comm = { doreq:function(url,postdata,headers) { var req = flameviper.util.xmlhttpreq(); req.open(postdata?"POST":"GET", url, false); for(header in headers) { req.setRequestHeader(header,headers[header]); } req.send(postdata||null); return req; } }; flameviper.wputil = { username:function() { return wgUserName; //return flameviper.util.getobj("pt-userpage").childNodes[0].childNodes[0].nodeValue; }, iseditpage:function() { return document.title.indexOf("Editing ")==0; }, pagename:function() { var iseditpage = flameviper.wputil.iseditpage(); return document.title.substr(iseditpage?8:0,document.title.indexOf(" - ")-(iseditpage?8:0)); }, addsidepanel:function(id,label) { var div = flameviper.util.add(flameviper.util.getobj("column-one"), "div", {className:"portlet",id:id}); flameviper.util.add(div, "H5").innerHTML = label; flameviper.util.add(flameviper.util.add(div, "div", {className:"pBody"}), "ul"); }, addsidepanelbutton:function(id,label,targhref) { var li = flameviper.util.add((flameviper.util.getobj(id).getElementsByTagName("ul"))[0],"li"); with(flameviper.util.add(li,"a")) { innerHTML = label; href = targhref; } return li; }, setpagecontent:function(pagename,content,summary,watch) { var prelimresp = flameviper.comm.doreq("/w/index.php?title="+pagename+"&action=submit"); var edittime = prelimresp.responseText.match(/\<input type='hidden' value="(\d+)" name="wpEdittime" \/\>/)[1]; var edittoken = prelimresp.responseText.match(/\<input type='hidden' value="([0-9a-f]+)" name="wpEditToken" \/\>/)[1]; flameviper.comm.doreq("/w/index.php?title="+pagename+"&action=submit", "wpEdittime="+edittime+ "&wpEditToken="+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 = flameviper.comm.doreq("/w/index.php?title="+pagename+"&action=edit"); var content = req.responseText.match(/\<textarea[\w\W]*?\>([\w\W]*?)\<\/textarea\>/)[1]; content = content.replace(/\<\;/gi, "<"); content = content.replace(/\>\;/gi, ">"); content = content.replace(/\"\;/gi, "\""); content = content.replace(/\&\;/gi, "&"); return content; } }; flameviper.statuschanger = new Object(); /* configuration */ // change these to whatever you'd like to show up on your status page. flameviper.statuschanger.statuscode = { online:'{{{2|<font color= "green">online</font> [[Category:Wikipedians who are currently online|Manjithkaini ]]}}}', busy:'{{{3|<font color= "blue">on wikivacation</font>}}}', offline:'{{{4|<font color= "red">offline</font>}}}' }; // true to use the personal bar, false to create a panel in the left column flameviper.statuschanger.usepersonalbar = "true"; // true if you'd like your status page on your watchlist flameviper.statuschanger.watchstatus = ; /* end configuration */ flameviper.statuschanger.oldonload = window.onload; window.onload = function() { if (typeof flameviper.statuschanger.oldonload == "function"){setTimeout('flameviper.statuschanger.oldonload()',50);} if (flameviper.statuschanger.usepersonalbar) { var a = flameviper.wputil.addsidepanelbutton("p-personal", "Online", 'javascript:flameviper.statuschanger.setstatus("online")' ); var b = flameviper.wputil.addsidepanelbutton("p-personal", "Offline", 'javascript:flameviper.statuschanger.setstatus("offline")' ); var c = flameviper.wputil.addsidepanelbutton("p-personal", "Vacation", 'javascript:flameviper.statuschanger.setstatus("busy")' ); 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 { flameviper.wputil.addsidepanel("tz-statuschanger", "status changer"); flameviper.wputil.addsidepanelbutton("tz-statuschanger", "Online", 'javascript:flameviper.statuschanger.setstatus("online")' ); flameviper.wputil.addsidepanelbutton("tz-statuschanger", "Busy", 'javascript:flameviper.statuschanger.setstatus("busy")' ); flameviper.wputil.addsidepanelbutton("tz-statuschanger", "Offline", 'javascript:flameviper.statuschanger.setstatus("offline")' ); } }; flameviper.statuschanger.setstatus = function(statusname) { flameviper.wputil.setpagecontent( "User:"+flameviper.wputil.username()+"/Status", flameviper.statuschanger.statuscode[statusname], statusname, flameviper.statuschanger.watchstatus); };