MediaWiki:Gadget-fix dia.js

Notă: După salvare, trebuie să treceți peste cache-ul browser-ului pentru a vedea modificările.

  • Mozilla, Google Chrome, Safari, Konqueror: țineți apăsat Shift în timp ce apăsați butonul Reload (sau apăsați Ctrl-Shift-R).
  • Internet Explorer: apăsați Ctrl-F5.
  • Opera: apăsați F5.
$(do_fix_diacriticals);

function do_fix_diacriticals()
{
  var fd_form=document.getElementById('editform');
  if(mw.config.get('wgPageName')=='Wikipedia:Cafenea') {
    return true;
  }
  if ((mw.config.get('wgNamespaceNumber')%2===0) && ($.inArray(mw.config.get('wgAction'), ['edit' , 'submit']) !== -1) && fd_form) {
    fd_form.onsubmit=function() {
      var ta=document.getElementById('wpTextbox1');
      if (!ta) {
        return true;
      }
      var orig=ta.value;
      ta.value=ta.value.replace(/ț/g,"ţ");
      ta.value=ta.value.replace(/Ț/g,"Ţ");
      ta.value=ta.value.replace(/ș/g,"ş");
      ta.value=ta.value.replace(/Ș/g,"Ş");
      // mind the scope!
      var form=document.getElementById('editform');
      var es=document.getElementById('wpSummary');
      if (form.elements.wpSection.value=='new') {
        es.value=es.value.replace(/ț/g,"ţ");
        es.value=es.value.replace(/Ț/g,"Ţ");
        es.value=es.value.replace(/ș/g,"ş");
        es.value=es.value.replace(/Ș/g,"Ş");
      } else if (es && (orig!=ta.value) && (es.value.search("Auto-diacritice")==-1)) {
        es.value+=' (+[[:ro:Wikipedia:Unelte/Auto-diacritice|ad]])';
      }
      return true;
    };
  }
}

/*
Note:

Dacă mai există un event handler pentru onSubmit venit din alte unelte, Dumnezeu cu mila.

De văzut ce-i cu hookEvent(), vezi primele linii (probabil nativ Wikipedia).

Variantă alternativă de agăţat hook corect:

   document.getElementById("FrmPage").onsubmit=function(){return false;};

   if(typeof(document.addEventListener)!="undefined")
        objForm.addEventListener("submit",FrmPage_submit,false);
   else if(typeof(document.attachEvent)!=undefined)
       objForm.attachEvent("onsubmit",FrmPage_submit);  
*/