//JS-Framework zur Validation von Form-Eingaben
var FormCheckAllErrorMessages='';
var FormCheckNoError=true;
var ErrDivTplDefault='<div id="{id}" style="border:1px solid #ff0000; baclground-color:#ff8888;"></div>';

//Beispielstruktur
//Achtung NAME != ID  es dürfen keine überschneidungen auftreten, da der IE6 ID & NAME vermischt
//<form action="" method="" target=""
// onsubmit="FormCheckClearAllErrorDivs(this);
//           FormCheck_input_length('a',3,5,'err_a','Eingabe muß mind. 3 aber max. 5 Zeichen lang sein. ');
//           return FormCheckNoError;">
// Name:<input type="Text" name="a" value=""  >  <div id=err_a class=err>T</div><br>


//Ausgabe des Fehlers in entsprechendes Div
//function FormCheckSetErrorDiv(ErrDivID,ErrorMessage)

//Angegebenes fehlerdiv zurücksetzen
//function FormCheckClearErrorDiv(ErrDivID)

//Alle Aktivierten FehlerDivs zurücksetzen
//function FormCheckClearAllErrorDivs(formO)
//-------------
//Prüfen Eingabe auf potentielle eMail
//function FormCheck_input_email(field_name,ErrDivID,ErrorMessage)

//Prüfen Eingegebene Länge
//function FormCheck_input_length(field_name,minSize,maxSize,ErrDivID,ErrorMessage)

//Prüfen ob Eingabe Zahl ist
//function FormCheck_input_isZahl(field_name,ErrDivID,ErrorMessage)

//Prüfen Eingegebene Länge
//function FormCheck_input_pw(pwfield_name1,pwfield_name2,ErrDivID,ErrorMessage)

//Prüfen, ob Radiobuttonauswahl getroffen wurde
//oder ob Checkbox ausgefüllt ist
//function FormCheck_input_checked(field_name,ErrDivID,ErrorMessage)

//Prüfen, ob in Selektbox mindestens minAuswahl Einträge und höchstens maxAuswahl Einträge ausgewählt wurden
//function FormCheck_input_select(field_name,minAuswahl,maxAuswahl,ErrDivID,ErrorMessage)






//Ausgabe des Fehlers in entsprechendes Div
function FormCheckSetErrorDiv(ErrDivID,ErrorMessage)
{ FormCheckNoError=false;
  if (ErrDivID!='')
  { var errO=$(ErrDivID);
    if (!errO){alert('Objekt '+ErrDivID+' nicht definiert');}
    errO.innerHTML=errO.innerHTML+ErrorMessage;
    FormCheckAllErrorMessages=FormCheckAllErrorMessages+ErrorMessage;
    errO.style.display='inline';
    errO.Fehler=true;//Als Fehlerdiv vermerken
  }
}

//Angegebenes fehlerdiv zurücksetzen
function FormCheckClearErrorDiv(ErrDivID)
{ if (ErrDivID!='')
  { var errO=$(ErrDivID);
    if (!errO){alert('Objekt '+ErrDivID+' nicht definiert');}
    errO.innerHTML='';
    errO.style.display='none';
  }
}

//Alle Aktivierten FehlerDivs zurücksetzen
function FormCheckClearAllErrorDivs(formO)
{ var divs=formO.getElementsByTagName("div");
  FormCheckAllErrorMessages='';
  FormCheckNoError=true;
  for (var key in divs)
  { if (divs[key].Fehler)
    { FormCheckClearErrorDiv(divs[key].id);
    }
  }
}

function FormCheck_PruefeZeichen(str, ZugelasseneZeichen)
{ for (var Pos = 0; Pos < str.value.length; Pos++)
  { if (ZugelasseneZeichen.indexOf(str.value.charAt(Pos)) == -1)
    { return false;}
  }
  return true;
}

//Prüfen Eingabe auf potentielle eMail
function FormCheck_input_email(field_name,ErrDivID,ErrorMessage)
{ var o=N(field_name);
  if (o)
  {
    if (o.type != "hidden")
    { var errs=0;
      if (o.value.length<5) {errs++;}
      var posET=o.value.indexOf("@");
      if (posET<1) {errs++;} //Kein @ oder kein Namenteil
      if (o.value.indexOf("@", posET + 1) > posET) {errs++;} //Mehr als ein @
      var PosPt = o.value.indexOf(".", posET);
      if ((PosPt == -1) || (PosPt - posET < 2) || (o.value.length - PosPt < 3)){errs++;}

      var ZugelasseneZeichen = new String("abcdefghijklmnopqrstuvwxyz")
      ZugelasseneZeichen += ZugelasseneZeichen.toUpperCase() + "0123456789.-_+@"
      if (!FormCheck_PruefeZeichen(o,ZugelasseneZeichen)){errs++;}

      if (errs>0)
      { FormCheckSetErrorDiv(ErrDivID,ErrorMessage);
        return false;
      }
    }
  }
  else
  {alert('Objekt '+field_name+' nicht definiert.');}
  return true;
}

//Prüfen Eingegebene Länge
function FormCheck_input_length(field_name,minSize,maxSize,ErrDivID,ErrorMessage)
{
  var o=N(field_name);
  if (o)
  {
    if (o.type != "hidden")
    { if ((o.value.length<minSize)||
          (o.value.length>maxSize))
      { FormCheckSetErrorDiv(ErrDivID,ErrorMessage);
        return false;
      }
    }
  }
  else
  {alert('Objekt '+field_name+' nicht definiert.');}
  return true;
}

//Prüfen ob Eingabe Zahl ist
function FormCheck_input_isZahl(field_name,ErrDivID,ErrorMessage)
{
  var o=N(field_name);
  if (o)
  { if (o.type != "hidden")
    { if (isNaN(o.value))
      { FormCheckSetErrorDiv(ErrDivID,ErrorMessage);
        return false;
      }
    }
  }
  else
  {alert('Objekt '+field_name+' nicht definiert.');}
  return true;
}
//Prüfen Eingegebene Länge
function FormCheck_input_pw(pwfield_name1,pwfield_name2,ErrDivID,ErrorMessage)
{
  var o1=N(pwfield_name1);
  var o2=N(pwfield_name2);
  if (o1&&o2)
  { if ((o1.type != "hidden")&&(o2.type != "hidden"))
    { if (o1.value!=o2.value)
      { FormCheckSetErrorDiv(ErrDivID,ErrorMessage);
        return false;
      }
    }
  }
  else
  {alert('Objekt '+field_name+' nicht definiert.');}
  return true;
}

//Prüfen, ob Radiobuttonauswahl getroffen wurde
//oder ob Checkbox ausgefüllt ist
function FormCheck_input_checked(field_name,ErrDivID,ErrorMessage)
{ var isChecked = false;
  var o=document.getElementsByName(field_name);
  if (o)
  {
    for (var key=0;key<o.length;key++)
    {
      if ((o[key].tagName=="INPUT")&&(o[key].type != "hidden"))
      {
        if (o[key].checked) {isChecked=true;}
      }
    }
    if (!isChecked)
    { FormCheckSetErrorDiv(ErrDivID,ErrorMessage);
      return false;
    }
  }
  else
  {alert('Objekt '+field_name+' nicht definiert.');}
  return true;
}

//Prüfen, ob in Selektbox mindestens minAuswahl Einträge und höchstens maxAuswahl Einträge ausgewählt wurden
function FormCheck_input_select(field_name,minAuswahl,maxAuswahl,ErrDivID,ErrorMessage)
{ var selected=0;
  var o=N(field_name);
  if (o)
  { if (o.type != "hidden")
    {
      for (var key=0;key<o.length;key++)
      {
        if ((o[key].tagName=="OPTION")&&(o.options[key].selected)){selected++;}
      }
      if ((selected<minAuswahl)||(selected>maxAuswahl))
      { FormCheckSetErrorDiv(ErrDivID,ErrorMessage);
        return false;
      }
    }
  }
  else
  {alert('Objekt '+field_name+' nicht definiert.');}
  return true;
}
