
function createXMLHttpRequest()
{
 var ua;

 if(window.XMLHttpRequest)
 {
    try { ua = new XMLHttpRequest();}
      catch(e) {ua = false;}
 }
 else if(window.ActiveXObject)
 { try {ua = new ActiveXObject("Microsoft.XMLHTTP");}
      catch(e) {ua = false;}
 }
 return ua;
}
var readymsg="";
var req = createXMLHttpRequest();
var brq = createXMLHttpRequest();
var elbu="HFEMW";
var xbtn=0;
var pkpat = new Array(5); //Knopfpattern 
var kapat = new Array(5); //Kategoriepattern 
var kasum = new Array(5); //Körperpunkte 
var emsum = new Array(5); //Emotionpunkte
var elnamen = new Array("HOLZ","FEUER","ERDE","METALL","WASSER");
var firstentry=1;

function handlerespo(rhd)
{
  var rok=0;
  switch (rhd.readyState)
  {
   case 1: readymsg='loading...';break;
   case 2: readymsg='loaded...';break;
   case 3: readymsg='interactive...';break;
   case 4: readymsg=rhd.responseText;if(rhd.status==200) rok=1;break;
   default: readymsg='Uninitialized!';
  }
  return rok;
}


//naechstes Elemente ohne Punkte suchen
function searchnextfree()
{
 var nok=1;
 if (firstentry) {
   firstentry=0;     //wg.MsIE
   return 1;
 }
 else while (nok<6 && document.getElementById('p'+nok).innerHTML!="") nok++;
 return nok;
}


function sendRequest(ida)
{
  var yalisto="";
  var lix=0;
  if (ida=="X")
  {
     document.forms["fraka"].elements["submit"].style.visibility = "hidden";
     //n&auml;chstes Elemente ohne Punkte suchen
     lix=searchnextfree();
     if (lix<6) {
          ida=elbu.substring(lix-1,lix); //wg.MsIE substring!
          yalisto=document.getElementById('p'+lix).innerHTML;
          if (yalisto == "") xbtn=0;   //noch keine Punkte
          else xbtn=lix;     //damit Response weiß, daß Punkte vorh. sind
          jdv='xernfunc0.php?s='+ida; //Fragentext des Elementes ida laden
          req.open('get',jdv);
      	  req.onreadystatechange = handleQueries;
      	  req.send(null);
     }
     else
     {  //jetzt Auswertung anstossen! SENDEN aktivieren
      document.getElementById('auswert').innerHTML="Alle Fragen beantwortet! ";
      document.getElementById('xex').innerHTML ="";
      document.getElementById('xele').innerHTML ="";
      document.getElementById('inhalt').innerHTML ="<div class='kleinkom'><p>Zur Anzeige der Auswertung tragen Sie nun, falls Sie es noch nicht getan haben, Ihre Emailaddresse und Namen ein.</p><p>Dann klicken Sie bitte <b>senden</b>.</p><p><input id='absend' type=button value=senden onclick=javascript:sendRequest('Y')></p></div>";

      document.getElementById('emailtb').bgColor = "#cccccc";

      document.forms["fraka"].elements["rezet"].style.visibility = "hidden";
     }

   } else if (ida=="Y")
       {
        var qy="";
        //Punkte und Pattern + Kat.buchstaben ab Dez.08  *** Hier Körper und Emotion ... ***
        for (var bi=1;bi<6;bi++) qy=qy+'&p'+bi+'='+document.getElementById('p'+bi).innerHTML+'&b'+bi+'='+pkpat[bi-1]+'&k'+bi+'='+kasum[bi-1]+'&e'+bi+'='+emsum[bi-1]; //<==
        //Ern.-Tabellen , Email, Name
	var ix=0;
	while (ix<4 && document.getElementsByName("ETab")[ix].checked==false) ix++;
        qy=qy+'&etb='+ix+'&ema='+document.getElementById('Et_mail').value+'&nam='+document.getElementById('Et_name').value;
        qy=qy.slice(1);
        jdv='xernfunc1.php?'+qy;
        req.open('get',jdv);
        //alert(jdv);
        req.onreadystatechange = handleResumen;
        req.send(null);
       }
}

function handleQueries()
{
  if(handlerespo(req))
  {
     document.getElementById('inhalt').innerHTML =readymsg;
     lix=elbu.indexOf(document.getElementById('eb').innerHTML);
     document.getElementById('xele').innerHTML=elnamen[lix];
     document.getElementById('auswert').innerHTML ="Sie sind bei: "+elnamen[lix];
     pkpat[lix]=document.getElementById('bh').innerHTML;  //Patternarray des Elements
  }
}

//Auswertungsanzeige
function handleResumen()
{
  if(handlerespo(req))
   {
    eval("var jsonmsg = ("+req.responseText+")");
    document.getElementById('inhalt').innerHTML =jsonmsg.inhalt;
    document.getElementById('xex').innerHTML="";
    document.getElementById('xele').innerHTML=jsonmsg.emtext;
    if (jsonmsg.fehler==0) {
      document.getElementById('auswert').innerHTML=jsonmsg.auswert;
      document.forms["fraka"].elements["rezet"].style.visibility = "hidden";
     }
   }
  else document.getElementById('inhalt').innerHTML =readymsg;

}

//onclick-function fuer die Radiobuttons
function btnclicker(xbn)
{if (xbn>0)
 {
  var i=0;
  var fb=document.forms["fraka"].elements["Osf"+xbn];
  while (i<3)
  {
     var dummy=fb[i].checked; //2x! da nicht immer eindeutig (Browserprobl?)
     if (fb[i].checked) break; else i++;
   }
 //jetzt Ajax-request !!
  jdv='xernfunc2.php?s='+xbn+'&bs='+i+'&bh='+document.getElementById('bh').innerHTML+'&eb='+document.getElementById('eb').innerHTML;
  brq.open('get',jdv);
  brq.onreadystatechange = handlebkResponse;
  brq.send(null);
 }
 else     //zur&uuml;cksetzen
 {var pat=document.getElementById('bh').innerHTML;
  var fb="";
  for (var i=0;i<pat.length;i++) fb+="0";
  document.getElementById('bh').innerHTML=fb;
  for (var bi=1;bi<pat.length;bi++) document.getElementById('Bild'+bi).style.visibility = "hidden";
  document.forms["fraka"].elements["submit"].style.visibility = "hidden";
  lix=elbu.indexOf(document.getElementById('eb').innerHTML)+1;
  document.getElementById('p'+lix).innerHTML="";
  pkpat[lix]=fb;  //Elementpattern dto.
 }
}


//nach Buttonclick
function handlebkResponse()
{
if(handlerespo(brq))
 {
    eval("var jsonmsg = ("+brq.responseText+")");
    document.getElementById('bh').innerHTML =jsonmsg.bitter;
    readymsg=jsonmsg.bezei;
    if (jsonmsg.haken>0)
    {
          bi=jsonmsg.haken;
          document.getElementById('Bild'+bi).style.visibility = "visible";
    }
    if( jsonmsg.punkte>=0)
    {
       lix=elbu.indexOf(document.getElementById('eb').innerHTML)+1; //Punkte anzeigen
       document.getElementById('p'+lix).innerHTML=jsonmsg.punkte;
       pkpat[lix-1]=jsonmsg.bitter;  //Knopfpattern
       kasum[lix-1]=jsonmsg.korp;
       emsum[lix-1]=jsonmsg.emot;
       document.forms["fraka"].elements["submit"].style.visibility = "visible";
       rok=searchnextfree();
       if (rok<6) document.forms["fraka"].elements["submit"].value=" weiter mit "+elnamen[rok-1];
       else
       { document.forms["fraka"].elements["submit"].value=" weiter zur AUSWERTUNG";
         readymsg+=" Alle beantwortet.";
       }
    } else document.forms["fraka"].elements["submit"].style.visibility = "hidden";
 }
 document.getElementById('auswert').innerHTML =readymsg;
}

function blofort()  //Debugfunction zum Punkte testen
{var pat=document.getElementById('bh').innerHTML;
  var fb="";
  for (var i=1;i<=pat.length;i++)
  {document.getElementById('Bild'+i).style.visibility = "visible"; //Haken an
   var b=Math.floor(10*Math.random()/3);
   if(b==0) b=3;
   fb+=String(b);
   document.forms["fraka"].elements["Osf"+i][b-1].checked=true;
  }
  document.getElementById('bh').innerHTML=fb;
  b=b-1;//letzter Knopf mit Ajax
  var jdv='xernfunc2.php?s='+pat.length+'&bs='+b+'&bh='+document.getElementById('bh').innerHTML+'&eb='+document.getElementById('eb').innerHTML;
  brq.open('get',jdv);
  brq.onreadystatechange = handlebkResponse;
  brq.send(null);
}



function sofort()  //Debugfunction zum Auswertung testen
{
 var i=1;
 var ps = new Array(5,9,16,34,1);
 while (i<6)
   { document.getElementById('p'+i).innerHTML=ps[i-1];
     i++;
   }
 document.forms["fraka"].elements["submit"].value=" weiter zur AUSWERTUNG";
 document.forms["fraka"].elements["submit"].style.visibility = "visible";
}



