function addEvent(obj, evType, fn) {
  if (obj.addEventListener) {
    obj.addEventListener(evType, fn, true);
    return true;
  } else if (obj.attachEvent) {
    var r = obj.attachEvent("on"+evType, fn);
    return r;
  } else {
    return false;
  }
}

function whatCorrector() {
  var replaces = 0;
  var alltags;
  if (document.all) { // IE like browser
    alltags = new Array();
    var divs = document.all.tags("DIV"); var i; for (i=0; i<divs.length; i++) { alltags[i]=divs[i]; }
    var spans = document.all.tags("SPAN"); var j; for (j=0; j<spans.length; j++) { alltags[i+j]=spans[j]; }
   } else { // Other
    alltags = document.getElementsByTagName("*");
  }
  for (i=0; i < alltags.length; i++) {
    if (alltags[i] && alltags[i].className && alltags[i].className == 'whateffect') {
      while (alltags[i].innerHTML.indexOf('##kukac##') != -1 && replaces < 10000) {
        pos = alltags[i].innerHTML.indexOf('##kukac##'); chr = alltags[i].innerHTML.substring(pos+9,pos+10)
        if (chr == '<' || chr == '.' || chr == ',' || chr == ')' || chr == '?' || chr == '!' || chr == "'" || chr == '"' || chr == ' ')
          {
          alltags[i].innerHTML = alltags[i].innerHTML.replace('##kukac##', '<span>##</span>kukac<span>##</span>');
          }
         else
          {
          alltags[i].innerHTML = alltags[i].innerHTML.replace('##kukac##', String.fromCharCode(64));
          }
        replaces++;
      }
    }
  }
}

addEvent(window, 'load', whatCorrector);