Корисник:Михајло Анђелковић/mb.js

С Википедије, слободне енциклопедије

Напомена: Пошто објавите измене, можда ћете морати да обришете кеш меморију прегледача како бисте их видели. Google Chrome, Firefox, Microsoft Edge и Safari: Држите ⇧ Shift и кликните дугме Reload на траци са алаткама. За детаље и упутства о другим прегледачима, погледајте en:Wikipedia:Bypass your cache.

/**
 * Reads the content of the edited text and categorizes it as a cyrlat upon
 * need. Cyrlats-texts are text where some (or all) words have been written
 * by use of Cyrillic and Latin letters in one word.
 *
 * No parameters, the function does all needed changes internally.
 */   

function iscyrlat()
{
  var cattag = "Категорија:Мешанци";

  var txtarea;
    if (document.editform) {
      txtarea = document.editform.wpTextbox1;
    } else {
    // some alternate form? take the first one we can find
    var areas = document.getElementsByTagName('textarea');
    txtarea = areas[0];
  }
  var txt = txtarea.value.toLowerCase();
  var tpresent = false;
  if(txt.indexOf("[[" + cattag.toLowerCase() + "]]") != -1) {
    tpresent = true;
  }
  var cyr = "абвгдђежзијклљмнњопрстћуфхцчџш";
  var lat = "abvgdđežzijklmnoprstćufhcčšqwxy"
  var state = 0;
  var pstate = 0;
  
  for(i=0; i<txt.length; i++) {
    if(cyr.indexOf(txt.charAt(i)) != -1) {
      state = 1;
    } else if(lat.indexOf(txt.charAt(i)) != -1) {
      state = -1;
    } else {
      state = 0;
    }
    if(state != pstate && state != 0 && pstate != 0) {
      if(!tpresent) {
        txtarea.value += "\n[[" + cattag + "]]";
      }
      return;
    }
    pstate = state;
  }
  if(tpresent) {
    txtarea.value = txtarea.value.replace("[[" + cattag + "]]","");
  }
}

function iscyrlatInit() {
  if(document.getElementById('editform')) {
    document.getElementById('editform').setAttribute('onsubmit', 'return iscyrlat();'); 
    }
}
 
$(iscyrlatInit);