var effects = {} ;
function toggle_element(id){
  if (!effects[id]) effects[id] = new fx.Height(id);
  effects[id].toggle();
}
function hide_element(id){
  if (!effects[id]) effects[id] = new fx.Height(id);
  effects[id].hide();
}




function cnfrm() {
  return confirm("Wirklich löschen?");
}



function chrcnt(haystack, needle) {
  var cnt = 0;
  for (var i = 1; i <= haystack.length; i++) {
    if (haystack.charAt(i - 1) == needle) { cnt ++; }
  }
  return cnt;
}

function strpos(haystack, needle, occurence) {
  var cnt    = 0;
  var result = -1;
  for (var i = 1; i <= haystack.length; i++) {
    if (haystack.charAt(i - 1) == needle) { cnt ++; }
    if (cnt == occurence) { result = (i - 1); break; }
  }
  return result;
}

function padlft(core, padding, size) {
  var result = core.substring(0, size);
  while (result.length < size) { result = padding + result; }
  return result;
}

function setfocus(id) {
  document.getElementById(id).select();
  document.getElementById(id).focus();
}

function chkdate(id) {
  var o = document.getElementById(id);
  var err = false;
  var datum, y, m, d;
  var entry = o.value;

  if (chrcnt(entry, '-') == 2) {
    // 1. Prüfung: 2 Striche drin? -> ANSI-Datum
    datum = entry.split("-");
    y = datum[0];
    if (y < 100) { y = String(Number(y) + 2000); }
    y = padlft(y, '0', 4);
    m = padlft(datum[1], '0', 2);
    d = padlft(datum[2], '0', 2);
  } else if (chrcnt(entry, '.') == 2) {
    // 2. Prüfung: 2 Punkte drin? -> DIN-Datum
    datum = entry.split(".");
    d = padlft(datum[0], '0', 2);
    m = padlft(datum[1], '0', 2);
    y = datum[2];
    if (y < 100) { y = String(Number(y) + 2000); }
    y = padlft(y, '0', 4);
  } else {
    // keins von beiden? Fehler!
    err = true;
  }
  if (!err) {
    entry = d + '.' + m + '.' + y;
    datum = new Date(y, m - 1, d);
    err   = !(datum.getDate() == d && datum.getMonth() == m - 1 && datum.getFullYear() == y);
  }
  if (err) {
    o.style.backgroundColor = '#ffc0c0';
  } else {
    o.style.backgroundColor = '#ffffff';
  }
  o.value = entry;
  return !(err);
}


