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.
//Conflicts with force edit summary script!

var scIndex = 0;
var scKeys = new Array();
var scValues = new Array();

function scFormSubmit() {
   var i=0
   var textArea = document.getElementById("wpTextbox1");
   var text = textArea.value;
   while (i<scIndex) {
      text = text.replace(scKeys[i], scValues[i]);
      ++i;
   }
   textArea.value = text;
}

addOnloadHook(function() {
   if (document.title.indexOf("Editing ") != 0) {return;}
   document.getElementById("wpSave").onclick = scFormSubmit;
   document.getElementById("wpPreview").onclick = scFormSubmit;
   document.getElementById("wpDiff").onclick = scFormSubmit;
   //TODO: make it work with previews too!
});


addOnloadHook(function() {
   if (document.title.indexOf("Editing ") != 0) {return;}
   var textArea = document.getElementById("wpTextbox1");
   var text = textArea.value;
   var re = /<!--\[\[User:Where\/sigContract\]\];(.*)-->.*<!--ESC:(.*)-->/g;
   var lastIndex = 0;
/*   while (1) {
      var textSubstr = text.substr(lastIndex);
      alert(lastIndex);
      alert(textSubstr); //TODO: remove
      var newIndex = textSubstr.search(re);
      alert("newindex:" + newIndex);
      if (newIndex == -1) {
	 break;
      }
      lastIndex += newIndex+1;*/
      text = text.replace(re,
	 function(str, p1, p2, offset, s) {
//	    alert("In replacement function");
	    if (p1 == p2) {
	       var newString = "-[[User:" + p1 + "|" + p1 + "]]";
	       scKeys[scIndex] = newString;
	       scValues[scIndex] = str;
	       ++scIndex;
	       return newString;
	    }
	    else {
	       return str;
	    }
	 });
   //}
   textArea.value = text;
});