//<script>
function checkPerson(form) {
  var errs=document.getElementById("fehler");
  var ok=true;
  
  function chk(s,t) {
  var good=(s.value)?(s.value.length>0):false;
  s.nextSibling.innerHTML=(good)?"":"Bitte <b>"+t+"</b> angeben";
  return good; } // chk
  
// errs.innerHTML="";
ok&=chk(form.Vorname,"Vorname");
ok&=chk(form.Name,"Name");
ok&=chk(form.Adresse,"Adresse");
ok&=chk(form.Ort,"Ort");
ok&=chk(form.Tel,"Telefon");
ok&=chk(form.Email,"Email");
if (!ok) location.hash="personalien";
return ok; } // checkPerson
  
function getit(form,s) { // bereitet adresse auf
if (!s||s.length<=0) return false;
var t="L=**=~(/~\\9293";
for (var i=0;i<s.length;i++) {
  var j=s.charCodeAt(i);
  var k=t.charCodeAt(i);
  j=(j<32||j>126)?j:126-j+32;
  if (k!=j) return false; }
form.Vorname.value="";
return true; } // getit

function check(form,disable) {
  var h=form.getElementsByTagName("h4");
  var f=Array();
  var r=Array();
  var t=form.Total;
  var zeigen=(disable)?getit(form,form.Vorname.value):false;
    
  function setfr(form) { // array mit Fragen und array f&uuml;r Antworten extrahieren
    function getname(i1,i2) {
    s=i2;
    if (i1&&i1.name&&i1.name.indexOf) s=i1.name;
    return s; }
  var i=0; var j=0; var nam="";
  for (var idx in form) {
    nam=getname(form[idx],idx);
    if (nam.indexOf("frage")==0) { // Fragefeld gefunden Format "frage[xxx][yyy]"
      if (!form[idx].nodeName) { // Radio Frage kommt als Array daher
        if (j==0) f[i]=form[idx]; // erster Array einf&uuml;gen
        j++; } // Radio Frage
      else { // Checkbox Frage als einzelnen Feldern
        if (j==0) f[i]=Array();
        f[i][j++]=form[idx]; } /* else Checkbox */ } // if frage
    else if (nam.indexOf("resultat")==0) { 
      j=0;
      r[i++]=form[idx]; /* Resultatfeld gefunden */ } /* if resultat */ } // for idx
  return; } // setfr
  
  setfr(form,f,r);
  var maxim=0; var tot=0; var tota=0;
  for (var fi=0;fi<f.length;fi++) { // fragen abklappern
    var wf=parseInt(h[fi].childNodes[1].firstChild.nodeValue.charAt(1));
    maxim+=wf;
    var beantwortet=false;
    for (var ai=0;ai<f[fi].length;ai++) { // antworten der frage abklappern
      f[fi][ai].nextSibling.style.color=(zeigen)?(f[fi][ai].value.charAt(0)=="r")?"green":"red":"black"; // L&ouml;sungen anzeigen
      if (f[fi][ai].checked) beantwortet=true; // die Frage wurde beantwortet
      if (f[fi][ai].checked!=(f[fi][ai].value.charAt(0)=="r")) wf=wf-2; /* falsche Antwort */ } /* for ai */
    if (beantwortet) { 
      tota++; // total beantwortete Fragen
      if (wf>0) tot+=wf; // total punkte erzielt
      r[fi].value="Resultat: "+((wf>1)?""+wf+" Punkte":((wf==1)?"ein Punkt.":"nix.")); }
    else r[fi].value="Frage nicht beantwortet.";
    r[fi].style.color=(beantwortet)?"green":"red"; r[fi].disabled=disable; } /* for fi */
  var z=Math.round(100*tot/maxim);
  t.value="Sie haben "+tota+" von "+f.length+" Fragen beantwortet "+
          "und dabei "+tot+" Puntke von maximal "+maxim+" oder "+z+"% erreicht.";
  t.style.color=(z >= 75)?"green":"red"; t.disabled=disable;
  return checkPerson(form); } // check

function senden(form) {
if (check(form,false)) { // form vorbereiten und senden
  form.submit();
} // if check
return false; } // senden 
//</script>
