//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob Wert aus Ziffern besteht
//++  Parameter:
//++   -checkWert: PrfWert
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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;
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob Wert aus Numerisch ist
//++  Erlaubt: Ziffern, ein Komma oder ein Punkt
//++  Parameter:
//++   -checkWert: PrfWert
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
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;
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob Wert zwischen zwei numerischen Werten liegt
//++  Parameter:
//++   -checkWert: PrfWert
//++   -min: Untergrenze, PrfWert muss grer sein
//++   -max: Obergrenze, PrfWert muss kleiner sein
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function boolRange(checkWert,min,max){
  var boolRng=true;
  if (boolNumeric(checkWert)) {
    if (checkWert<min || checkWert>max) boolRng=false; }
  else boolRng=false;
  return boolRng;
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob Wert in Formular-Element keine Sonderzeichen enthlt
//++    Sonderzeichen: ! "  $ % & / ( ) = ?   { [ ] } \ `  | > < - @ , . ; :  * + ~ \ #
//++  Parameter:
//++   -oN: Formular-Element-Name
//++   -fehlermeldung: Fehlermeldung im Alert-fenster
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function isPasswort(oN,fehlermeldung) {  
  var objRef = MM_findObj(oN);
  var psw = objRef.value;
	if((objRef.value.indexOf('!') != -1) || (objRef.value.indexOf('"') != -1)|| (objRef.value.indexOf('') != -1)|| (objRef.value.indexOf('$') != -1)|| (objRef.value.indexOf('%') != -1)|| (objRef.value.indexOf('&') != -1)|| (objRef.value.indexOf('/') != -1)|| (objRef.value.indexOf('(') != -1)|| (objRef.value.indexOf(')') != -1) || (objRef.value.indexOf('=') != -1)|| (objRef.value.indexOf('?') != -1)|| (objRef.value.indexOf('') != -1)|| (objRef.value.indexOf('') != -1) || (objRef.value.indexOf('{') != -1)|| (objRef.value.indexOf('[') != -1)|| (objRef.value.indexOf(']') != -1)|| (objRef.value.indexOf('}') != -1)|| (objRef.value.indexOf('\'') != -1) || (objRef.value.indexOf('`') != -1)|| (objRef.value.indexOf('') != -1)|| (objRef.value.indexOf('|') != -1)|| (objRef.value.indexOf('>') != -1)|| (objRef.value.indexOf('<') != -1)|| (objRef.value.indexOf('-') != -1) || (objRef.value.indexOf('@') != -1)|| (objRef.value.indexOf(',') != -1)|| (objRef.value.indexOf('.') != -1)|| (objRef.value.indexOf(';') != -1)|| (objRef.value.indexOf(':') != -1) || (objRef.value.indexOf('') != -1)|| (objRef.value.indexOf('*') != -1)|| (objRef.value.indexOf('+') != -1)|| (objRef.value.indexOf('~') != -1)|| (objRef.value.indexOf('\\') != -1)|| (objRef.value.indexOf('#') != -1) ) {
   alert(fehlermeldung);
   objRef.value="";
   objRef.focus();
   return false;
  }    
   return true;
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob Checkbox selektiert ist
//++  Parameter:
//++   -oN: Checkbox-Name
//++   -fehlermeldung: Fehlermeldung im Alert-fenster
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function isCheckboxSelect(oN,fehlermeldung) {
  var objRef = MM_findObj(oN);
  if (!objRef.checked){
    alert(fehlermeldung);
	//objRef.focus();
    return false;
  }
  else return true;
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob bei einer Gruppe von Checkboxen (Name1 - NameX)
//++  eine Mindestanzahl UND Hchstanzahl von Checkboxen selektiert ist
//++  Parameter:
//++   -oN: Checkbox-Name Teil (Name = oN1 - oNX)
//++   -checkMin: Mindestanzahl, die selektiert sein mssen
//++     sind weniger als checkMin Checkboxen vorhanden, mssen nur soviele selektiert sein
//++   -checkMax: Hchstanzahl, die selektiert sein drfen
//++   -fehlerMin: Fehlermeldung im Alert-fenster, wenn selektierte Anzahl zu klein
//++   -fehlerMax: Fehlermeldung im Alert-fenster, wenn selektierte Anzahl zu gro
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//function isNumGroupSelect(oN,checkMin,checkMax,fehlerMin,fehlerMax){
function isNumGroupSelect(oN,checkMin,checkMax,fehlerMin){
  var maxBoxIndex = 21; //anzahl der zu prfenden checkboxen (oN1 bis oN10)
  //es wird versucht, je ein checkbox-objekt zu finden
  var realBoxes = 0; //tatschliche anzahl von checkboxen
  var objRef;
  var checkCounter=0; //anzahl gecheckte
  for(var i=1;i<=maxBoxIndex;i++){
    objRef = MM_findObj(oN+i);
    if(objRef) {
      realBoxes++;
      if(objRef.checked==true) checkCounter++; }
  }
  var boxesToCheck = 0; // Setzt Checkboxen immer auf Anzahl Null
  boxesToCheck = (checkMin>realBoxes)?realBoxes:checkMin;
  if (boxesToCheck==1) boxesToCheck=1; //Wenn nur eine Checkbox vorhanden soll auch Fehlermeldung ausgegeben werden
  if (checkCounter<boxesToCheck){
  //wenn weniger als checkMin boxewn vorhanden, mssen minimal nur soviele gecheckt werden
    alert(fehlerMin);
    return false; }
  else if (checkCounter>checkMax){
	  //alert(fehlerMax);
    alert(fehlerMin);
	//objRef.focus();
    return false; }
  else return true;
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob bei Formular-Element ein Wert enthalten ist
//++  Parameter:
//++   -oN: Formular-Element
//++   -fehlermeldung: Fehlermeldung im Alert-fenster
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function isValue(oN,Fehlermeldung) 
{
	var objRef = MM_findObj(oN);
	if (objRef.value=="")
	{
		alert(Fehlermeldung);
		objRef.focus();
		return false; 
	}
}
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob die Eingabe eines Feldes ber einen bestimmten
//++   steigt.
//++  Parameter:
//++   -oN: Formular-Element
//++   -fehlermeldung: Fehlermeldung im Alert-fenster
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function isFeldLaenge(oN,Fehlermeldung,laenge) {
  var objRef = MM_findObj(oN);
  if (objRef.value.length > laenge) {
    alert(Fehlermeldung);
    objRef.focus();
    return false; }
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob bei Formular-Element ein Wert eine Anzahl von Zeichen
//++    zwischen einer Minimum- und Maximum-Anzahl besitzt
//++  Parameter:
//++   -oN: Formular-Element
//++   -Fehlermeldung: Fehlermeldung im Alert-fenster
//++   -zeichenanzahlMin: Anzahl von Zeichen, die berschritten werden muss
//++   -zeichenanzahlMax: Anzahl von Zeichen, die nicht erreicht werden darf
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function isRange(oN,Fehlermeldung,zeichenanzahlMin,zeichenanzahlMax) { 	
  var objRef = MM_findObj(oN);
  if ((objRef.value.length<zeichenanzahlMin)||(objRef.value.length>zeichenanzahlMax)) {
    alert(Fehlermeldung);
    objRef.value="";
    objRef.focus();
    return false; }
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob bei Formular-Element ein Wert eine Anzahl von Zeichen
//++    zwischen einer Minimum- und Maximum-Anzahl besitzt und die entsprechenden 
//++    Felder zurcksetzt
//++  Parameter:
//++   -oN1: Formular-Element (immer das zu prfende Feld)
//++   -oN2: Formular-Element
//++   -Fehlermeldung: Fehlermeldung im Alert-fenster
//++   -zeichenanzahlMin: Anzahl von Zeichen, die berschritten werden muss
//++   -zeichenanzahlMax: Anzahl von Zeichen, die nicht erreicht werden darf
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function isRangeLogin(oN1,oN2,Fehlermeldung,zeichenanzahlMin,zeichenanzahlMax,oN3,FocSetz) { 	
  var objRef1 = MM_findObj(oN1);
  var objRef2 = MM_findObj(oN2);
  var objRef3 = MM_findObj(oN3);
  if ((objRef1.value.length<zeichenanzahlMin)||(objRef1.value.length>zeichenanzahlMax)) {
    alert(Fehlermeldung);
    objRef1.value="";
    objRef2.value="";
    objRef3.value="";
    /*if (oN3.indexOf("2") != true)
	{
		objRef1.focus();
	}
	else
	{*/
		a=eval("objRef"+FocSetz);
		a.focus();
	//}
    return false; }
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob bei Formular-Element ein Wert gltige Email-Adresse ist
//++    gltigkeit: ein @ vorhanden, keine sonderzeichen, domain als [IP] oder
//++                als String mit maximal 4 Zeichen Topleveldomain
//++  Parameter:
//++   -oN: Formular-Element
//++   -Fehlermeldung: Fehlermeldung im Alert-fenster
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function isEmail(oN,fehlermeldung) {	
  var objRef = MM_findObj(oN);
  var email = objRef.value;
  if (email.indexOf(" ")!=-1) {	
    alert(fehlermeldung);
    objRef.focus();
    return false; }
  if (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)) 
	//objRef.style.backgroundColor = "white";
	return true;
    else {
      alert(fehlermeldung);
      objRef.focus();
      return false;  }
  }
  else {
    if (email.indexOf("@")==-1) {
      alert(fehlermeldung);
      objRef.focus();
      return false; }
    else 
	return true;
  }
}


//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob bei Radiobutton(-Gruppe) ein Wert selektiert ist
//++  Parameter:
//++   -oN: Radiobutton-Name
//++   -Fehlermeldung: Fehlermeldung im Alert-fenster
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function isValueRadio(oN,Fehlermeldung) {  	
  var objRef = MM_findObj(oN);
  var i=0; leer=false; x="";
  with (objRef) { 
    for (i=0;i<objRef.length;i++) {
      if (objRef[i].checked) 
      x=objRef[i].value; } 
    if (x=="") leer = true;
  }
  if (leer) {
    alert(Fehlermeldung);
	objRef[0].focus();
    return false;}
  else return true;
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob in Dropdown ein gltiger Wert selektiert ist
//++  Parameter:
//++   -oN: Dropdown-Name
//++   -Fehlermeldung: Fehlermeldung im Alert-fenster
//++   -Ausschlu: Wert, der nicht als gewhlt gilt (ungltig)
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function isValueDrop(oN,Fehlermeldung,Ausschluss)
{  	
	var objRef = MM_findObj(oN);
	var i=0; leer=false; x="";
	with (objRef)	{  
	for (i=0;i<objRef.length;i++)
    		{if (objRef[i].selected) 
    		 x=objRef[i].value;} 
		if (x=="") leer = true;
         }
	  
   if (x==Ausschluss){
   alert(Fehlermeldung);
   objRef.focus();
   return false;}
   else return true;
 
  if (leer) {
    alert(Fehlermeldung);
	objRef.focus();
    return false;}
  else return true;
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob die Werte von 2 Formularelementen gleich sind
//++  Parameter:
//++   -oN1: Formular-Element1
//++   -oN2: Formular-Element2
//++   -Fehlermeldung: Fehlermeldung im Alert-fenster
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function isCompare(oN1, oN2, fehlermeldung) { 
  var objRef1 = MM_findObj(oN1);
  var objRef2 = MM_findObj(oN2);
  if (objRef1.value != objRef2.value) {
    alert(fehlermeldung);
    objRef1.value="";
    objRef2.value="";
    objRef2.focus();
    return false; }
}

//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
//++  Funktion prft, ob Cookies aktiviert sind und schreibt das Ergebnis in
//++    ein 2 Formularelement ("yes", "no")
//++  Parameter:
//++   -oN: Formular-Element, welches den Wert erhlt
//++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
function isCookie(oN) {
  var objRef = MM_findObj(oN);
  if(navigator.cookieEnabled == true) objRef.value = "yes";
  if(navigator.cookieEnabled == false) objRef.value = "no";
}


// Funktion zum Prfen ob Zahlen eingegeben wurden
// flag fr positive: wenn true, drfen nur zahlen > 0 verwendet werden
// flag fr integer: wenn true, drfen nur int verwendet werden ( kein "." oder "," )
function isNumeric(oN,Fehlername,flagPositive,flagInteger) {
  var objRef = MM_findObj(oN);
  var objWert = objRef.value;
  var objWertOriginal = objRef.value;
  var boolError = false;
  objWert = objWert.replace(/\,/g, '.'); //komma durch punkt ersetzen

  if (isNaN(objWert)) {

    boolError=true;
  }
  else{
    if (objWert.indexOf("e")!=-1 || objWert.indexOf("E")!=-1 || objWertOriginal.indexOf(".")!=-1 || objWert.indexOf(" ")!=-1 || objWert.indexOf("+")!=-1) boolError=true;

    if (flagPositive==true) {
      if (objWert<=0) boolError=true;
    }
    if (flagPositive==0) {
      if (objWert<0) boolError=true;
    }

    // prfe auf integer
    if (!flagInteger!=true) {
      if (objWert.indexOf(".")!=-1) boolError=true;
    }
  }

  if (boolError) {
    if (flagInteger==true && (flagPositive==true || flagPositive==0)) alert ("In das Feld "+Fehlername+" drfen Sie nur positive ganze Zahlen eingeben.");
    else if (flagInteger!=true && (flagPositive==true || flagPositive==0)) alert (Fehlername);
    objRef.focus();
    return false;
  }
}
