// Javascript-Funktionen zur Validierung
// -------------------------------------
// 
// BSP Internet Solutions 
// www.bsp.de
//
// Version 2.0 Date: 22.06.2003
//
// Funktionen:
// 
// boolZiffer(checkWert)
// boolNumeric(checkWert)
// boolRange(checkWert,min,max
// isValueFeld(feldname,Fehlername)Feld ausgefllt
// isZiffer(feldname,Fehlername)ganze Zahlen
// isNumeric(feldname,Fehlername)Nummerische zahlen mit . und ,
// isRange(feldname,Fehlername,min,max)Wert zwischen min und max
// isDatePart(feldname,Fehlername,min,max)
// isDateRange(rTag,rMonat,rJahr)
// isBaujahr(feldname,Fehlername)
// isEmail(feldname,Fehlername)prft Email-Adresse
// isPLZ(feldname,Fehlername)Prft PLZ auf 5 Stellen
// isRadioSelect(feldname,Fehlername,Laenge)Radio-Button gewhlt
// isCheckboxSelect(feldname,Fehlername,Laenge)CheckBox gewhlt
// isDropSelect(feldname,Fehlername,defaultWert)Listbox gewhlt
// isMinStr(feldname,Fehlername,zeichenanzahl)Mindestlnge eines Strings
// isDateFormat(feldname,Typ)Datum: Typ 0 = tt.mm.jjjj, Typ 1 = mm.jj, Typ 2 = tt.jjjj
// 
// 
// isPhone(feldname,Fehlername)checkt amerikanische Telefonnummer

function boolZiffer(checkWert){
  var boolNum=true;
  if (isNaN(checkWert)||checkWert=="") boolNum=false;
  else if (checkWert.indexOf("e")!=-1 || checkWert.indexOf(",")!=-1 || checkWert.indexOf(".")!=-1 || checkWert.indexOf("-")!=-1) boolNum=false;
  return boolNum;
}

function boolNumeric(checkWert){
  var boolNum=true;
  if (isNaN(checkWert)) {
    boolNum=false;
    if (checkWert.indexOf(".")!=-1) var zahl = checkWert.split(".");
    else var zahl = checkWert.split(",");
    if (!(zahl.length>2) && !isNaN(zahl[0]) && !isNaN(zahl[1])) boolNum=true; }
  else if (checkWert.indexOf("e")!=-1||checkWert=="") boolNum=false;
  return boolNum;
}

function boolRange(checkWert,min,max){
  var boolRng=true;
  if (boolNumeric(checkWert)) {
    if (checkWert<min || checkWert>max) boolRng=false; }
  else boolRng=false;
  return boolRng;
}

function isValueFeld(feldname,Fehlername) {
  var FE=eval("document.Formular."+feldname);
  if (FE.value=="") {
    alert(Fehlername);
    FE.focus();
    return false; }
  else return true;
}

function isZiffer(feldname,Fehlername) {
  var FE=eval("document.Formular."+feldname);
  if ((FE.value!="")&&(!boolZiffer(FE.value))) {
    alert(Fehlername);
    FE.focus();
    return false; }
  else return true;
}

function isNumeric(feldname,Fehlername) {
  var FE=eval("document.Formular."+feldname);
  var checkWert = FE.value;
  if ((FE.value!="")&&(!boolNumeric(checkWert))) {
    alert(Fehlername);
    FE.focus();
    return false; } 
  return true;
}

function isRange(feldname,Fehlername,min,max) {
  var FE=eval("document.Formular."+feldname);
  if ((FE.value!="")&&(!boolRange(FE.value,min,max))) {
    alert("Ihre Eingabe im Feld "+Fehlername+" mu zwischen "+min+" und "+max+" liegen. Wrden Sie das bitte ndern? Danke.");
    FE.focus();
    return false;} 
  return true;
}

function isDatePart(feldname,Fehlername,min,max){
  var FE=eval("document.Formular."+feldname);
  if (!boolZiffer(FE.value)||(boolZiffer(FE.value)&&(FE.value<min || FE.value>max))) {
    alert("Ihre Eingabe "+Fehlername+" muss zwischen "+min+" und "+max+" liegen. Wrden Sie das bitte ndern? Danke.");
    FE.focus();
    return false;} 
  return true;
}

function isDateRange(rTag,rMonat,rJahr){
  pruefDate = new Date(rJahr,rMonat,rTag,23,59);
  var jetzt = new Date();
  var endTermin = new Date(2003,11,31);
  if (pruefDate<jetzt || pruefDate>endTermin) {
    alert("Ihre Eingabe muss zwischen dem heutigen Tag und 2003 liegen.");
    document.Formular.Tag.focus();
    return false;} 
  return true;
}

function isBaujahr(feldname,Fehlername) {
  var FE=eval("document.Formular."+feldname);
  if (!boolRange(FE.value,1994,2002)) {
    alert("Fr Fahrzeuge, die bereits lter als acht Jahre sind, knnen wir leider keinen Schutzbrief anbieten.");
    FE.focus();
    return false;} 
  return true;
}

function isEmail(feldname,Fehlername){
  var FE=eval("document.Formular."+feldname);
  var email = FE.value;
  if ((FE.value!="") && (RegExp)) {
    var reg1 = /(@.*@)|(\.\.)|(@\.)|(\.@)|(^\.)/;
    var reg2 = /^.+\@(\[?)[a-zA-Z0-9\-\.]+\.([a-zA-Z]{2,4}|[0-9]{1,3})(\]?)$/;
    if (!reg1.test(email) && reg2.test(email)) return true;
    else{
      alert(Fehlername);
      FE.focus();
      return false; }}
  else {
    if ((FE.value!="")&& (email.indexOf("@")==-1)) {
      alert(Fehlername);
      FE.focus();
      return false; }
    else return true;}
}


function isPLZ(feldname,Fehlername) {
  var FE = eval("document.Formular."+feldname);
  if (!boolZiffer(FE.value) || (boolZiffer(FE.value) && FE.value.length!=5)) {
    alert(Fehlername);
    FE.focus();
    return false;}
  return true;
}


function isRadioSelect(feldname,Fehlername,Laenge){
  var FE=eval("document.Formular."+feldname);
  var laufZaehler=0;
  for(var i=0;i<Laenge;i++) {
    if (FE[i].checked==true) laufZaehler++; }
  if (laufZaehler==0) {
    alert(Fehlername);
    return false; }
  else return true;
}


function isCheckboxSelect(feldname,Fehlername,Laenge){
  var laufZaehler=0;
  for(var i=1;i<=Laenge;i++) {
    var FE=eval("document.Formular."+feldname+i);
    if (FE.checked==true) laufZaehler++; }
  if (laufZaehler==0) {
    alert(Fehlername);
    FE.focus();
    return false; }
  else return true;
}


function isDropSelect(feldname,Fehlername,defaultWert){
  var FE=eval("document.Formular."+feldname);
  if (FE.value==defaultWert) {
    alert(Fehlername);
    FE.focus();
    return false; }
  else return true;
}


function dropAlert(){
  alert("Sie haben da was bersehen: \"Bitte whlen Sie\". Danke.");
}


function isMinStr(feldname,Fehlername,zeichenanzahl){
  var FE=eval("document.Formular."+feldname);
  if (FE.value.length<zeichenanzahl) { 
    alert(Fehlername);
    FE.focus();
    return false;}
  else return true;         
}


function isDateFormat(feldname,Typ) {// Typ 0 = tt.mm.jjjj, Typ 1 = mm.jj, Typ 2 = tt.jjjj
  var FE=eval("document.Formular."+feldname);
  if (FE.value != "") {

    if (Typ == "0") {
    var datum = FE.value;
    var zahl = datum.split(".");
    if (zahl.length != 3) { 
      alert ("Bitte geben Sie das Datum im Format tt.mm.jjjj ein (z.B. 05.02.2004).");
      FE.focus();return false;} 
      var zahl0 = zahl[0].toString();
      var zahl1 = zahl[1].toString();
      if (isNaN(zahl[0]) || isNaN(zahl[1]) || isNaN(zahl[2]) || (zahl0.length!=2) || (zahl1.length!=2)) { 
        alert ("Bitte geben Sie das Datum im Format tt.mm.jjjj ein (z.B. 05.02.2004).");
        FE.focus();return false;} 
      if ((zahl[0]<1) || (zahl[0]>31)) { 
        alert ( "Bitte geben Sie einen Tag zwischen 1 und 31 ein.");
        FE.focus();return false;} 
      if ((zahl[1]<1) || (zahl[1]>12)) { 
        alert ( "Bitte geben Sie einen Monat zwischen 1 und 12 ein.");
        FE.focus();return false;} 
      if ((zahl[2]<1900) || (zahl[2]>3000)) { 
        alert ("Bitte geben Sie ein Jahr zwischen 1900 und 3000 ein (4 Stellen).");
        FE.focus();return false;} 
      else return true; 
    }

    if (Typ == "1") {    
      var datum = FE.value;
      var zahl = datum.split(".");
      if (zahl.length != 2) { 
        alert ("Bitte geben Sie das Datum im Format mm.jj ein (z.B. 01.02).");
        FE.focus();return false;} 
      var zahl0 = zahl[0].toString();
      var zahl1 = zahl[1].toString();
      if (isNaN(zahl[0]) || isNaN(zahl[1]) || (zahl0.length!=2) || (zahl1.length!=2)) { 
        alert ("Bitte geben Sie das Datum im Format mm.jj ein (z.B. 01.02).");
        FE.focus();return false;} 
        if ((zahl[0]<1) || (zahl[0]>12)) { 
        alert ("Bitte geben Sie einen Monat zwischen 1 und 12 ein.");
  FE.focus();return false;} 
      else return true; 
    }

    if (Typ == "2") {
      var datum = FE.value;
      var zahl = datum.split(".");
    if (zahl.length != 2) { 
      alert ( "Bitte geben Sie das Datum im Format mm.jjjj ein (z.B. 02.2003).");
      FE.focus();return false;} 
      var zahl0 = zahl[0].toString();
      var zahl1 = zahl[1].toString();
      if (isNaN(zahl[0]) || isNaN(zahl[1]) || (zahl0.length!=2) || (zahl1.length!=4)) { 
        alert ("Bitte geben Sie das Datum im Format mm.jjjj ein (z.B. 02.2003).");
        FE.focus();return false;} 
      if ((zahl[0]<1) || (zahl[0]>12)) { 
        alert ( "Bitte geben Sie einen Monat zwischen 1 und 12 ein.");
        FE.focus();return false;} 
      else return true; 
    }
  }
    
}


function isPhone(feldname,Fehlername) {
  var FE=eval("document.Formular."+feldname);
  // Pattern matches (999)-999-9999, (999) 999-9999, (999)999-9999, etc.
  var regexp = /^((\((\d{3})\)|(\d{3}))[- ]?)?(\d{3})[- ]?(\d{4})$/;
  if ( regexp.exec( FE.value ) ) {
    return true;
  }
  alert(Fehlername);
  FE.focus();
}