﻿var docFormName="myform";
/*
function startValidation() {
  //schreibweise immer z.B. isValueFeld('FormElementName','Feldname im Fehlertext','evtl. optionale Werte')
  if (!isValueFeld('myFeld','Feldname1')) return false;        //Das Feld ist nicht leer
  if (!isRadioSelect('myCheckbox','Feldname1'))return false;    //ein Radiobutton/Checkbox ist gewählt
  if (!isGroupSelect('myCheckbox','Feldname1'))return false;    //Eintrag aus Radio/Checkbox-gruppe ausgewählt
  if (!isGroupSelectNummeriert('myCheckbox','Feldname1',6))    //Eintrag aus mehreren Radio/Checkboxen ausgewählt, die so heißen "myCheckbox1" bis "myCheckbox6"
  if (!isDropSelect('myOption','Feldname1','defaultWert')) return false;    //Im Dropdown ist nicht der Eintrag mit value="defaultWert" ausgewählt
  if (!isDropNoFirstSelect('myOption','Feldname1')) return false;        //Im Dropdown ist nicht mehr der erste Eintrag ausgewählt
  if (!isNumeric('myFeld','Feldname1')) return false;        //negativ, komma oder punkt erlaubt; "e" verboten)
  if (!isPositive('myFeld','Feldname1')) return false;        //Nur Positive Zahlen. Komma oder Punkt erlaubt
  if (!isPLZ('myFeld','Feldname1')) return false;        //Nur Postleitzahlen
  if (!isRange('myFeld','Feldname1',100,1000)) return false;    //Im Bereich zwischen min und max
  if (!isMinStr('myFeld','Feldname1',3)) return false;        //Hat mindestens x Zeichen
  if (!isEmail('myFeld','Feldname1')) return false;        //ist gültige Email
  if (!isDateFormat('myFeld','Feldname1','ttmmjj')) return false;    //ist gültiges DatumsFormat  (optional:modus, sonst ttmmjjjj)
  if (!isDateRange('myFeld','Feldname1','10.03.2000','10.10.2010','ttmmjj')) return false;    //ist gültiges Datum zwischen von und bis (optional:modus, sonst ttmmjjjj)
  if (!isSpecChar('myFeld','Feldname1')) return false;        //enthält keine Sonderzeichen
  eval("document."+docFormName+".submit();");
} 
*/
//--------------------------------------------------------------------------------------------------------
function isValueFeld(feldname,Fehlername){
  var FE=eval("document."+docFormName+"."+feldname);
  var Fehlertext=Fehlername;
  if (FE.value==""){alert(Fehlertext);FE.focus();return false; }
  else return true;
}
function isRadioSelect(feldname,Fehlername){
  var FE=eval("document."+docFormName+"."+feldname);
   var Fehlertext=Fehlername;
  if(FE.checked==true)return true;
  else{alert(Fehlertext);return false;}
}
function isGroupSelect(feldname,Fehlername){
  var FE=eval("document."+docFormName+"."+feldname);
  var Fehlertext=Fehlername;
  var laufZaehler=0;var Laenge=FE.length;
  for(var i=0;i<Laenge;i++){if(FE[i].checked==true)laufZaehler++;}
  if (laufZaehler==0){alert(Fehlertext);return false;}
  else return true;
}
function isGroupSelectNummeriert(feldname,Fehlername,Anzahl){
  var Fehlertext=Fehlername;
  var laufZaehler=0;var FE;
  for(var i=1;i<Anzahl;i++){
    FE=eval("document."+docFormName+"."+feldname+i);      
    if(FE.checked==true)laufZaehler++;}
  if (laufZaehler==0){alert(Fehlertext);return false;}
  else return true;
}
function isDropSelect(feldname,Fehlername,defaultWert){
  var FE=eval("document."+docFormName+"."+feldname);
  var Fehlertext=Fehlername;
  if(FE[FE.selectedIndex].value==defaultWert){alert(Fehlertext);FE.focus();return false;}
  else return true;
}
function isDropNoFirstSelect(feldname,Fehlername){
  var FE=eval("document."+docFormName+"."+feldname);
  var Fehlertext=Fehlername;
  if(FE.selectedIndex==0){alert(Fehlertext);FE.focus();return false;}
  else return true;
}
//benötigt: function boolNumeric
function isNumeric(feldname,Fehlername) {
  var FE=eval("document."+docFormName+"."+feldname);
  var Fehlertext=Fehlername;
  if (!boolNumeric(FE.value)){alert(Fehlertext);FE.focus();return false;}
  return true;
}
//benötigt: function boolNumeric
function isPositive(feldname,Fehlername){
  var FE=eval("document."+docFormName+"."+feldname);
  var Fehlertext=Fehlername;
  if (!boolNumeric(FE.value)||(boolNumeric(FE.value)&&FE.value<=0)){alert(Fehlertext);return false;}
  return true;
}
//benötigt: function boolZiffer
function isPLZ(feldname,Fehlername) {
  var FE=eval("document."+docFormName+"."+feldname);
  var Fehlertext=Fehlername;
  if (!boolZiffer(FE.value)||(boolZiffer(FE.value)&&FE.value.length!=5)){alert(Fehlertext);FE.focus();return false;}
  return true;
}
//benötigt: function boolRange
function isRange(feldname,Fehlername,min,max) {
  var FE=eval("document."+docFormName+"."+feldname);
   var Fehlertext=Fehlername;
  if (!boolRange(FE.value,min,max)){alert(Fehlertext);FE.focus();return false;}
  return true;
}
function isMinStr(feldname,Fehlername,zeichenanzahl){
  var FE=eval("document."+docFormName+"."+feldname);
  var Fehlertext=Fehlername;
  if (FE.value.length<zeichenanzahl){alert(Fehlertext);FE.focus();return false;}
  return true;
}
function isEmail(feldname,Fehlername){
  var FE=eval("document."+docFormName+"."+feldname);
  var Fehlertext=Fehlername;
  var email=FE.value;
  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(Fehlertext);FE.focus();return false;}
}
function isSpecChar(feldname,Fehlername){
  var FE=eval("document."+docFormName+"."+feldname);
  var Fehlertext=Fehlername;
  var ReEx=/[^a-zA-Z0-9@&%\(\)\$]+/; //diese dürfen vorkommen (Sonderzeichen mit \ maskieren)
  if (ReEx.test(FE.value)){alert(Fehlertext);FE.focus();return false;}
}
function boolDate(wert,modus) {
  if(!modus) modus="ttmmjjjj"; //default
  if (modus=="ttmmjjjj") var ReEx = /^(\d{2})(\,|\:|\.|\/|\\)?(\d{2})(\2)(\d{4})$/;
  else if (modus=="ttmmjj") var ReEx = /^(\d{2})(\,|\:|\.|\/|\\)?(\d{2})(\2)(\d{2})$/;
  else if (modus=="mmjjjj") var ReEx = /^(\d{2})(\,|\:|\.|\/|\\)(\d{4})$/;
  else if (modus=="mmjj") var ReEx = /^(\d{2})(\,|\:|\.|\/|\\)(\d{2})$/;
  var REresult = ReEx.test(wert);
  if (REresult) return true;
  else return false;
}
//benötigt: function boolDate
function isDateFormat(feldname,Fehlername,modus){
  var FE=eval("document."+docFormName+"."+feldname);
  var Fehlertext=Fehlername;
  if(!modus)modus="ttmmjjjj";
  if (boolDate(FE.value,modus))return true;
  else{alert(Fehlertext);FE.focus();return false;}
}
//benötigt: function boolDate, function boolDateRange, function formatDate
function isDateRange(feldname,Fehlername,von,bis,modus){
  var FE=eval("document."+docFormName+"."+feldname);
  var Fehlertext=Fehlername;
  if(!modus)modus="ttmmjjjj";
  var wert=formatDate(FE.value,modus);
  if(boolDateRange(wert,von,bis))return true;
  else{alert(FehlertextDatum);FE.focus();return false;}
}
//--------------------------------------------------------------------------------------------------------
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 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 boolDate(wert,modus) {
  if(!modus) modus="ttmmjjjj";
  if(modus=="ttmmjjjj")var ReEx=/^(\d{2})(\,|\:|\.|\/|\\)?(\d{2})(\2)(\d{4})$/;
  else if(modus=="ttmmjj")var ReEx=/^(\d{2})(\,|\:|\.|\/|\\)?(\d{2})(\2)(\d{2})$/;
  else if(modus=="mmjjjj")var ReEx=/^(\d{2})(\,|\:|\.|\/|\\)(\d{4})$/;
  else if(modus=="mmjj")var ReEx=/^(\d{2})(\,|\:|\.|\/|\\)(\d{2})$/;
  if(ReEx.test(wert))return true;
  else return false;
}
function boolRange(checkWert,min,max){
  var boolRng=true;
  if (boolNumeric(checkWert)){if(checkWert<min||checkWert>max)boolRng=false;}
  else boolRng=false;
  return boolRng;
}
function boolDateRange(checkDate,von,bis){
  checkDate=new Date(checkDate.split(".")[2],parseInt(checkDate.split(".")[1])-1,checkDate.split(".")[0]);
  von=new Date(von.split(".")[2],parseInt(von.split(".")[1])-1,von.split(".")[0]);
  bis=new Date(bis.split(".")[2],parseInt(bis.split(".")[1])-1,bis.split(".")[0]);
  if (checkDate<von||checkDate>bis)return false;
  return true;
}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 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 boolDate(wert,modus) {
  if(!modus) modus="ttmmjjjj";
  if(modus=="ttmmjjjj")var ReEx=/^(\d{2})(\,|\:|\.|\/|\\)?(\d{2})(\2)(\d{4})$/;
  else if(modus=="ttmmjj")var ReEx=/^(\d{2})(\,|\:|\.|\/|\\)?(\d{2})(\2)(\d{2})$/;
  else if(modus=="mmjjjj")var ReEx=/^(\d{2})(\,|\:|\.|\/|\\)(\d{4})$/;
  else if(modus=="mmjj")var ReEx=/^(\d{2})(\,|\:|\.|\/|\\)(\d{2})$/;
  if(ReEx.test(wert))return true;
  else return false;
}
function boolRange(checkWert,min,max){
  var boolRng=true;
  if (boolNumeric(checkWert)){if(checkWert<min||checkWert>max)boolRng=false;}
  else boolRng=false;
  return boolRng;
}
function boolDateRange(checkDate,von,bis){
  checkDate=new Date(checkDate.split(".")[2],parseInt(checkDate.split(".")[1])-1,checkDate.split(".")[0]);
  von=new Date(von.split(".")[2],parseInt(von.split(".")[1])-1,von.split(".")[0]);
  bis=new Date(bis.split(".")[2],parseInt(bis.split(".")[1])-1,bis.split(".")[0]);
  if (checkDate<von||checkDate>bis)return false;
  return true;
}