//----------------------------------------------------------
// Copyright (c) 2002-2006 by Ing. Gerhard Rittenhofer
// www.rittenhofer.at
// Alle Rechte vorbehalten
//----------------------------------------------------------

function Trim(text) {
  text = text.replace(/^\s+/,"");
  text = text.replace(/\s+$/,"");
  return text;
}

function CTX(item,bez,mi,mf) {
  item.value = Trim(item.value);
  if(!mf && !item.value.length) return true;
  if(item.value.length < mi) {
    alert("Bitte füllen Sie das Feld \"" + bez + "\" vollständig aus" + (!mf ? ",\noder lassen Sie das Feld leer ..." : " ..."));
    item.focus();
    return false;
  }
  else return true;
}

function CTN(item,bez,mi,mf,TT) {
  if(!CTX(item,bez,mi,mf)) return false;
  if(!mf && !item.value.length) return true;
  if(TT.test(item.value) == false) return true;
  alert("Die eingegebene Nummer im Feld \"" + bez + "\" ist ungültig!\nBitte korrigieren Sie diese Eingabe" + (!mf ? ", oder lassen Sie das Feld leer ..." : " ..."));
  item.focus();
  return false;
}

function CMA(item,bez,mi,mf,MT) {
  if(!CTX(item,bez,mi,mf)) return false;
  if(!mf && !item.value.length) return true;
  if(MT.test(item.value) == true) return true;
  alert("Die eingegebene Adresse im Feld \"" + bez + "\" ist ungültig!\nBitte korrigieren Sie diese Eingabe" + (!mf ? ", oder lassen Sie das Feld leer ..." : " ..."));
  item.focus();
  return false;
}

function CMG(item,bez,mi,mx,mf) {
  if(!CTX(item,bez,mi,mf)) return false;
  if(!mf && !item.value.length) return true;
  if(item.value.length > mx) {
    alert("Das Feld \"" + bez + "\" enthält zu viele Zeichen ...\n(max. " + mx + " erlaubt)");
    item.focus();
    return false;
  }
  else return true;
}

function CNM(item,bez,mi,mx,mf) {
  if(!CTX(item,bez,1,mf)) return false;
  if(!mf && !item.value.length) return true;
  if(isNaN(item.value) || item.value < mi || item.value > mx) {
    alert("Die Eingabe im Feld \"" + bez + "\" ist keine Zahl im gültigen Bereich ...\n(" + mi + " bis " + mx + ")");
    item.focus();
    return false;
  }
  else return true;
}

function CDT(item,bez,mi,mf) {
  if(!CTX(item,bez,mi,mf)) return false;
  if(!mf && !item.value.length) return true;
  if(!ChkDt(item)) {
    alert("Das Datum im Feld \"" + bez + "\" ist unzulässig!\nBitte korrigieren Sie diese Eingabe" + (!mf ? ", oder lassen Sie das Feld leer ..." : " ..."));
    item.focus();
    return false;
  }
  else return true;
}

function ChkDt(item) {
  var fd = item.value.indexOf(".");
  var ld = item.value.lastIndexOf(".");
  if((fd < 1) || (ld > item.value.length - 2) || fd == ld || item.value.indexOf(".",fd + 1) != ld) return false;
  var dt = Array(parseInt(item.value.slice(0,fd),10),parseInt(item.value.slice(fd + 1,ld),10),parseInt(item.value.substr(ld + 1)),10);
  if(isNaN(dt[0]) || isNaN(dt[1]) || isNaN(dt[2])) return false;
  if(dt[2] < 0 || dt[2] > 9999 || dt[1] < 1 || dt[1] > 12 || dt[0] < 1) return false;
  switch(dt[1]) {
	  case 2: var sj = 28; if(dt[2] % 4 == 0) sj = 29; if(dt[2] % 100 == 0) sj = 28; if(dt[2] % 400 == 0) sj = 29; if(dt[0] > sj) return false;
	  case 4: case 6: case 9: case 11: if(dt[0] > 30) return false;
 	  default: if(dt[0] > 31) return false;
	}
  return true;
}

