Jump to content

User:Saruoh/monobook.js

From Wikipedia, the free encyclopedia
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
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.
// This javascript prevents carelessly submission (hitting Enter at summary field).
// To enable, copy and paste this script to a subpage of your user page.
// 2004-07-30: New feature: Replace Fullwidth comma (U+FF0C) to Ideographic comma (U+3001)
//                          and Fullwidth full stop (U+FF0E) to Ideographic full stop (U+3002)
//             If you don't need this feature, use the past version.

// This script is under public domain, and comes with ABSOLUTELY NO WARRANTY.
// You can use/modify/redistribute without any permission.

var submitchecker_buttonclicked = false;
var confirm_prompt = "Textarea contains “\uFF0C”(U+FF0C) and/or “\uFF0E”(U+FF0E).\nReplace them?";
var confirm_result = null;

function install_submitchecker() {
  var f = document.getElementById("editform");
  if(f) {
    var inputs = f.getElementsByTagName("input");
    for(var i = 0; i < inputs.length; ++i)
      if(inputs[i].type == "submit")
        inputs[i].onclick = submitchecker_nocheck;
    f.onsubmit = submitchecker;
  }
}
function submitchecker() {
  var edit = document.getElementById("editform").getElementsByTagName("textarea")[0];
  if(edit && /[\uFF0C\uFF0E]/.test(edit.value)) {
    var r;
    if(window.execScript) {
      window.execScript(
        "confirm_result = MsgBox(confirm_prompt,vbYesNoCancel)",
        "VBScript");
      if(confirm_result == 2) return false;
      r = (confirm_result == 6);
    } else {
      r = prompt(confirm_prompt, "yes");
      if(!r) return false;
      r = /^[yY]/.test(r);
    }
    if(r) {
      edit.value = edit.value.replace(/\uFF0C/g, '\u3001').replace(/\uFF0E/g, '\u3002');
    }
  }
  if(submitchecker_buttonclicked) return true;
  return confirm("Are you sure you want to submit your changes?");
}
function submitchecker_nocheck(e) {
  if(e && e.target) {
    var name = e.target.name;
    if(name != "wpSave" && name != "wpPreview") return true;
  }
  submitchecker_buttonclicked = true;
  return true;
}
if(window.attachEvent) window.attachEvent("onload", install_submitchecker);
else if(window.addEventListener) window.addEventListener("load", install_submitchecker, false);

// restore helper
function install_restore_helper() {
  var e, t, p, b;
  if(!(e = document.getElementById('undelete'))) return;
  if(!(t = e.getElementsByTagName('h2')[1])) return;
  p = document.createElement('p');
  b = document.createElement('button');
  b.setAttribute('type', 'button');
  b.onclick = restore_select_all;
  b.appendChild(document.createTextNode('Check all'));
  p.appendChild(b);
  p.appendChild(document.createTextNode(' '));
  b = document.createElement('button');
  b.setAttribute('type', 'button');
  b.onclick = restore_select_reverse;
  b.appendChild(document.createTextNode('Reverse checks'));
  p.appendChild(b);
  e.insertBefore(p, t.nextSibling);
}
function restore_select_all() {
  var e, i;
  if(!(e = document.getElementById('undelete'))) return;
  e = e.getElementsByTagName('input');
  for(i = 0; i < e.length; ++i)
    if(e[i].type == 'checkbox') e[i].checked = true;
  return false;
}
function restore_select_reverse() {
  var e, i;
  if(!(e = document.getElementById('undelete'))) return;
  e = e.getElementsByTagName('input');
  for(i = 0; i < e.length; ++i)
    if(e[i].type == 'checkbox') e[i].checked = !e[i].checked;
  return false;
}
if(window.attachEvent) window.attachEvent("onload", install_restore_helper);
else if(window.addEventListener) window.addEventListener("load", install_restore_helper, false);