// ip textarea scripts v1.0.0

// erhoeht oder verringert die y-Ausdehnung der textarea imt der id 'id'
function adjustTextAreas (id,vsizeinc) {
  var trs = document.getElementsByTagName('textarea');
  var i;
  var found = -1;
  var tagName;

  for (i = 0; i < trs.length; i++) {
    tagName = String(trs[i].id);
// nur Elemente, die subnavXXX heissen
    if (tagName == id) {
      found = i;
      }
    }
// wenn gefunden, zeigen
  if (found != -1) {
    if (trs[found].rows + vsizeinc > 3) trs[found].rows += vsizeinc;
    }
}

function findElement (tagName,id) {
  var elem = document.getElementsByTagName(tagName);
  var i;
  var found = -1;
  var tagId;

  for (i = 0; i < elem.length; i++) {
    tagId = String(elem[i].id);
    if (tagId == id) {
      found = i;
      }
    }
// wenn gefunden, zeigen
  if (found != -1) return elem[found];
  return null;
}

function requeryCaptcha() {
    var hid = findElement('input', 'captchacode');
    var img = findElement('img', 'captchaimg');

    if ((!hid) || (!img)) return;

    var ccode = '';
    var astr = 'a';
    var acode = astr.charCodeAt(0);
    while (ccode.length < 5) {
        var rnd = Math.random();
        rnd = Math.round(rnd * 25);

        ccode += String.fromCharCode(rnd + acode);
    }

    hid.value = ccode;
    img.src = '?captcha=' + ccode;
}

function limitText(textArea, displayParentId, maxCharacters) {
  if (textArea.value.length > maxCharacters) textArea.value = textArea.value.substring(0, maxCharacters);
  
  var displayParent = findElement ('div',displayParentId);
  displayParent.childNodes.item(0).nodeValue = 'Sie haben noch ' + (maxCharacters - textArea.value.length) + ' Zeichen frei.';

  try {
      setDirty(true);
  }
  catch (e) {
  }
}

function showSibling(elem) {
    var sib = elem.parentNode.nextSibling
    while (sib && sib.nodeName.toLowerCase() != 'td') sib = sib.nextSibling;
    if (!sib) return;

    if (sib.style.display == 'none') {
    sib.style.display = 'block';
    }
  else {
    sib.style.display = 'none';
    }
}

// credits to http://www.evocomp.de/beispiele/javascript/trim.html
function trim (zeichenkette) {
  return zeichenkette.replace (/^\s+/, '').replace (/\s+$/, '');
}

function toggleDisplay(tagName,id,par) {
  var elem = findElement(tagName,id);
  if (elem == null) return;

  if (elem.style.display == 'none') {
    elem.style.display = 'block'
    }
  else elem.style.display = 'none';
  
  if (par != null) {
    elem.style.position = 'absolute';
    elem.style.top = par.offsetTop+par.parentNode.offsetTop+30; // +140;
    elem.style.left = par.offsetLeft+par.parentNode.offsetLeft-150;
    elem.style.background = 'lightgrey';
    elem.style.border = 'solid 1px black';
    elem.style.padding = '6px';
    }
  if (elem.style.display == 'block') {
    elem.childNodes.item(2).focus();
    }
}
