User:ProgMania/monobook.js

// Source: // http://commons.wikimedia.org/w/index.php?title=User:Alphax/monobook.js&action=edit

/** * Initialises function loading on page load */

if (window.addEventListener) window.addEventListener("load",myLoadFuncs,false); else if (window.attachEvent) window.attachEvent("onload",myLoadFuncs); else {   window.oldonload = window.onload; window.onload = function {       window.oldonload; myLoadFuncs; } }

/** * Loads functions */

function myLoadFuncs {   addPurge; addForceSummary; addEditSection0; }

/** * Forces edit summary */

function addForceSummary {   if(!/&action=edit/.test(window.location.href) && !/&action=submit/.test(window.location.href)) return; if(/&section=new/.test(window.location.href)) return; if(!document.forms.editform) return; document.forms.editform.wpSave.onclick = forceSummary; //document.forms.editform.wpSave.onfocus = forceSummary; }

function forceSummary {   if(!document.forms.editform.wpSummary.value.replace(/^(?:\/\\*.*\\*\/)? *(.*) *$/,'$1'))   {        var r = prompt('Are you sure you want to submit without adding a summary?\nTo add a summary, type it in the box below:',document.forms.editform.wpSummary.value); if(r === null) { return false; } document.forms.editform.wpSummary.value = r;   } return true; }

/** * Adds a "purge" tab */

function addPurge {   ta['ca-purge'] = ['g', 'Purge the internal cache for this page']; if(!document.getElementById) return; var x = document.getElementById('ca-history'); var tabs = document.getElementById('p-cactions').getElementsByTagName('ul')[0]; if(!x) { return; } if(x.children) { x = x.children[0]; } else { x = x.childNodes[0]; } addlilink(tabs, x.href.replace(/=history/, "=purge"), 'purge', 'ca-purge'); }

/** * Does replacing of stuff */

function replace {   var s = prompt("Search regexp?"); if(s){ var r = prompt("Replace regexp?"); var txt = document.editform.wpTextbox1; txt.value = txt.value.replace(new RegExp(s, "g"), r); } }

/** * Adds tabs */

function addlilink(tabs, url, name, id) {   var na = document.createElement('a'); na.href = url; na.appendChild(document.createTextNode(name)); var li = document.createElement('li'); li.id = id; li.appendChild(na); tabs.appendChild(li); return li; }

/** * Adds an "edit section 0" tab */

function addEditSection0 {   ta['ca-edit-0'] = ['', 'Edit the zeroth section of this page']; if(!document.getElementById) return; var x = document.getElementById('ca-edit'); if(!x) return; var y = document.createElement('LI'); y.id = 'ca-edit-0'; if(x.className == 'selected'){ if(/&action=edit&section=0$/.test(window.location.href)){ x.className = 'istalk'; y.className = 'selected'; } else { x.className = 'selected istalk'; }   } else if(x.className == 'selected istalk'){ if(/&action=edit&section=0$/.test(window.location.href)){ x.className = 'istalk'; y.className = 'selected istalk'; } else { y.className = 'istalk'; }   } else { y.className = x.className; x.className = 'istalk'; }   var z = document.createElement('A'); if(x.children){ z.href = x.children[0].href + '&section=0'; z.appendChild(document.createTextNode('0')); y.appendChild(z); document.getElementById('p-cactions').children[1].insertBefore(y,x.nextSibling); }else{ z.href = x.childNodes[0].href + '&section=0'; z.appendChild(document.createTextNode('0')); y.appendChild(z); document.getElementById('p-cactions').childNodes[3].insertBefore(y,x.nextSibling); } }

/** * Redefine the upload form */

function fillDestFilename {	if (!document.getElementById) return; if (document.getElementById('wpDestFile').value.length > 0) return; var path = document.getElementById('wpUploadFile').value; // Find trailing part var slash = path.lastIndexOf( '/' ); var backslash = path.lastIndexOf( '\\' ); var fname; if ( slash == -1 && backslash == -1 ) { fname = path; } else if ( slash > backslash ) { fname = path.substring( slash+1, 10000 ); } else { fname = path.substring( backslash+1, 10000 ); }

// Capitalise first letter and replace spaces by underscores fname = fname.charAt(0).toUpperCase.concat(fname.substring(1,10000)).replace( / /g, '_' );

// Output result var destFile = document.getElementById('wpDestFile'); if (destFile) destFile.value = fname; }