var EXTERN=0;
function start() {
	var v;
	if((v=window.parent)!=self) if(v.extern(-1,-1)) EXTERN=1;
}
window.start=start(); 

var ANZ,text,STATISTIK,GESAMT,DURCHGANG,EXRICHTIG;

function auswahlteil(n,anw) {
	var k=anw.indexOf('|'),r,s;
	r=FRAGEANF+anw.substring(0,k)+FRAGEEND;
	anw=anw.substring(k+1);
	s=2+size(anw);
	if(s<6) s=6;
	r+=" <input type=text name=f"+n+" size="+s+">";
	r+="<input type=hidden name=f"+n+"a value='"+anw+"'>";
	return r;
}

function size(s) {
	var k=1,max=1;
	while(k>=0) {
		k=s.indexOf('|');
		if(k>max) max=k;
		s=s.substring(k+1);
		}
	k=s.length;
	if(k>max) max=k;
	return max;
}

function textaufbauen() {  
	var n=0,a,e,brace=0,tc;
	tc=TEXT;
	while(true) {
		a=tc.indexOf('{');
		e=tc.indexOf('}');
		if(a>=0) brace++;
		if(e>=0) brace--;
		if(a>e) { alert("FEHLER:\n} vor { \nABBRUCH!");
			  return;
			}
		if((a<0)||(e<0)) break;
		text=tc.substring(0,a);
		text=text+auswahlteil(n,tc.substring(a+1,e));
		text=text+tc.substring(e+1);
		tc=text;
		n++;
		}
	if(brace!=0) { alert("FEHLER:\n{ und } nicht ausgeglichen\n       ABBRUCH!"); return; }
	if(GESAMT==0) GESAMT=n;
	ANZ=n;
	text="<form name=z>"+tc+"<hr><center><input type=button ";

	if(EXTERN==2) text+=" value=Weiter onClick=window.parent.externweiter()>";
	else {
		if(n>0) text+=" value=Auswerten onClick=window.parent.auswerten()>";
		else    text+=" value=Statistik onClick=window.parent.statistik()>";
	
		if((n>0)&&(DURCHGANG>=MAX)) text+=" <input type=button value=Aufloesen onClick=window.parent.aufloesen()>";
		}
 	text+="</center></form>";
	schreibe(text);
}

function berichtigt(z) {
	var r=KORREKTANF,i=0,l=z.length;
	for(i=0;i<l;i++) {
		c=z.charAt(i);
		if(c=='|') c="/";
		r+=c;
		}
	r+=KORREKTEND;
	return r;
	}

function enthalten(z1,z2) {
	var z=z2.indexOf(z1),c;
	if(z<0) return false;
	if(z>0) if(z2.charAt(z-1)!='|') return false;
	c=z+z1.length;
	if(c==z2.length) return true;
	c=z2.charAt(c);
	return (c=='|');
}


function auswerten() {
	var richtig=0,i,p="window.inhalt.document.z.f",z1,z2;
	var v="",h=TEXT,aindex,eindex;
	for(i=0;i<ANZ;i++) {
		aindex=h.indexOf('{');
		v=v+h.substring(0,aindex);
		h=h.substring(aindex);
		eindex=h.indexOf('}');
		z1=eval(p+i+".value");
		z2=eval(p+i+"a.value");
		if(enthalten(z1,z2)) { 
			richtig++;
			v=v+berichtigt(z2);
			}
		else v=v+h.substring(0,eindex+1);
		h=h.substring(eindex+1);
		}
		TEXT=v+h;
	if(DURCHGANG<MAX) STATISTIK[DURCHGANG]=richtig;
	DURCHGANG++;

	if(EXTERN) externaw();
	else textaufbauen();
}

function starten() {
	GESAMT=0;
	DURCHGANG=0;
	STATISTIK=new Array(MAX);
	textaufbauen();
}

function beenden() {
	window.location=QUIT;
}

function schreibe(t) {
	d=window.inhalt.document;
	d.open();
	d.write("<html><head>"+HEADTXT+"</head><body "+INSBODYTAG+">");
	d.write(t+"</body></html>");
	d.close();
}


function statistik() {
	var s=0,i,anz=MAX,anz1;
	if(DURCHGANG<anz) anz=DURCHGANG;
	var r="<center><table border=1 cols=2><tr><td align=center><h2>Ihre Statistik</h2></td><td align=center><h2>Ihr Kommentar</h2></td></tr>";
	r=r+"<tr><td>Von insgesamt "+GESAMT+" Feldern: <center><table border=0>";
	for(i=0;i<anz;i++) {
		s+=STATISTIK[i];
		r+="<tr><td>"+(i+1)+". Durchgang:</td><td>"+s+" Richtige</td></tr>";
		if(i==0) anz1=s;
		}
	r+="</table><form><input type=button onClick='window.parent.location=\""+QUIT+"\"' value=Beenden></form></td>";
	r+="<td><table><tr><td><FORM ENCTYPE='text/plain' METHOD='POST' ACTION='mailto:";
	r=r+RUECKADRESSE+"?subject="+window.parent.location.href+"'>";
	r+="<INPUT TYPE=HIDDEN NAME=Durchgang1 VALUE='"+anz1+"'>E-mail-Adresse:</td><td><input type=text name=Emailadresse size=25></td></tr><tr><td>Bemerkungen:</td><td><textarea name=Kommentar rows=5 cols=25 WRAP=1></textarea></td></tr></table><center><input type=SUBMIT VALUE=Absenden></center></form>";
	r+="</td></tr></table>";
	schreibe(r);
}

function aufloesen() {
	var aindex,eindex,t=TEXT,w,z;
	while(true) {
		aindex=t.indexOf('{');
		if(aindex<0) break;
		eindex=t.indexOf('}');
		w=t.substring(aindex+1,eindex);
		z=w.indexOf('|');
		if(z>=0) w=w.substring(1+z);		
		t=t.substring(0,aindex)+berichtigt(w)+t.substring(eindex+1);
		}
	TEXT=t;
	textaufbauen();
}


function externaw() {
	window.parent.extern(STATISTIK[0],GESAMT);
	if(!window.parent.KLA) {
		aufloesen();
		EXTERN=2;
		textaufbauen();
		}
	else window.parent.next();
}

function externweiter() {
	window.parent.next();
}
