User:Olipro/monobook.js

fcktest = false; function addRollback { if(mw.config.get('wgPageName') == 'Special:Recentchanges' && fcktest != true) { items = document.getElementsByTagName('ul')[0]; items = items.getElementsByTagName('li'); for(i = 0; i < items.length; i++) { checker = items[i].getElementsByTagName('a')[0].innerHTML; if(checker != 'diff') continue; var title = items[i].getElementsByTagName('a')[2].getAttribute('href'); var uname = items[i].getElementsByTagName('a')[3].innerHTML; title = title.substring(6,title.length); items[i].appendChild(document.createTextNode(' [')); newlink = document.createElement('a'); thetext = document.createTextNode('rollback'); newlink.appendChild(thetext); newlink.setAttribute('href', '/w/index.php?title='+title+'&action=history&rolldown=true&uname='+escape(uname)); items[i].appendChild(newlink); items[i].appendChild(document.createTextNode(']')); //items[i].innerHTML += ' [rollback]'; }   } } function addHistRollback { if(document.title.indexOf("- History") != -1 && fcktest != true) { item = document.getElementById('pagehistory').getElementsByTagName('li')[0]; newlink = document.createElement('a'); thetext = document.createTextNode('rollback'); newlink.appendChild(thetext); newlink.setAttribute('onClick', 'rollbackLast'); newlink.setAttribute('href', 'javascript:rollbackLast'); item.appendChild(document.createTextNode(' [')); item.appendChild(newlink); item.appendChild(document.createTextNode(']')); //item.innerHTML += ' [rollback]'; } } function rollbackLast { uname = document.getElementById('pagehistory'); unamea = uname.getElementsByTagName('li'); unamer = unamea[0].getElementsByTagName('a')[2].innerHTML; for(i = 1; i < unamea.length; i++) { if(unamea[i].getElementsByTagName('a')[3].innerHTML != unamer) { gohere = unamea[i].getElementsByTagName('a')[2].getAttribute('href'); lastpe = unamea[i].getElementsByTagName('a')[3].innerHTML; break; }   }    if(gohere) location.href = gohere + '&saverevision=true&unamea=' + unamer + '&unameb=' + lastpe; } function getLastRevision { if(document.title.indexOf("- History") == -1 || location.href.indexOf("rolldown=true") == -1) return; uname = document.getElementById('pagehistory'); unamea = uname.getElementsByTagName('li'); unamer = unamea[0].getElementsByTagName('a')[2].innerHTML; if(location.href.indexOf('uname='+escape(unamer)) == -1) { alert('Edit conflict, revert cancelled.'); return; }   for(i = 1; i < unamea.length; i++) { if(unamea[i].getElementsByTagName('a')[3].innerHTML != unamer) { gohere = unamea[i].getElementsByTagName('a')[2].getAttribute('href'); lastpe = unamea[i].getElementsByTagName('a')[3].innerHTML; break; }   }    if(gohere) location.href = gohere + '&saverevision=true&unamea=' + unamer + '&unameb=' + lastpe; } function goToEditPage { if(location.href.indexOf("saverevision=true") == -1) return;

edittab = document.getElementById('ca-edit').getElementsByTagName('a')[0]; editref = edittab.getAttribute('href'); location.href = editref + '&rollbacksave=true&unamea=' + queryString('unamea') + '&unameb=' + queryString('unameb'); } function saveEditPage { if(location.href.indexOf("rollbacksave=true") == -1) return; unamea = unescape(queryString('unamea')); unameb = unescape(queryString('unameb')); esumm = document.getElementById('wpSummary'); esumm.value = 'Reverted edit(s) of ' + unamea + ' (talk) to last version by ' + unameb; theform = document.getElementById('editform'); theform.submit; }

function loadInitCrap { if(fcktest == true) return; addRollback; getLastRevision; goToEditPage; saveEditPage; addHistRollback; } mybrowser = navigator.userAgent; if(mybrowser.search(/MSIE/i) != -1 || mybrowser.search(/Safari/i) != -1) {   addOnLoadHook(loadInitCrap); } else if(mybrowser.search(/Firefox/i) == -1) { document.addEventListener('load', loadInitCrap, false); } else { document.addEventListener('DOMContentLoaded', loadInitCrap, false); } function queryString(p) { var re = RegExp('[&?]' + p + '=([^&]*)'); var matches;

if (matches = re.exec(document.location)) { try { return decodeURI(matches[1]); } catch (e) { }   }    return null; };