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 toggle_display(id) {
  if (document.getElementById(id).style.display == 'none') {
    document.getElementById(id).style.display = '';
  } else {
    document.getElementById(id).style.display = 'none';
  };
}  
  


function cnfrm(lng) {
  if (lng == undefined) { lng = 'de'; }
  if (lng == 'en') {
    return confirm("Are you sure?");
  } else {  
    return confirm("Sind Sie sicher?");
  }  
}

function chkfrmdatespan() {
  if (!chkdate('dvon')) {
    setfocus('dvon');
    return false;
  }
  if (!chkdate('dbis')) {
    setfocus('dbis');
  return false;
  }
  return true;
}


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, lng) {
  var o = document.getElementById(id);
  var err = false;
  var datum, y, m, d;
  var entry = o.value;
  
  if (lng == undefined) { lng = 'de'; }

  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) {
    if (lng == 'en') {
      entry = y + '-' + m + '-' + y;
    } else {  
      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);
}

