function FixCookieDate (date)
{ var base = new Date(0);
  var skew = base.getTime();
  if (skew > 0) date.setTime (date.getTime()-skew);
}

function getCookieVal (offset)
{ var endstr = document.cookie.indexOf (";", offset);
  if (endstr == -1)
    endstr = document.cookie.length;
  return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie(name)
{ var arg = window.location.href+"."+name+"=";
   var alen = arg.length;
   var clen = document.cookie.length;
   var i = 0;
   while (i < clen)
      { var j = i + alen;
        if (document.cookie.substring(i,j)==arg) return getCookieVal(j);
        i = document.cookie.indexOf(" ",i)+1;
        if (i==0) break; 
      }
  return null;
}

function SetCookie (name,value,expires,path,domain,secure)
 {  document.cookie = window.location.href+"."+name+"=" + escape (value) +
     ((expires) ? "; expires=" + expires.toGMTString() : "") +
     ((path) ? "; path=" + path : "") +
     ((domain) ? "; domain=" + domain : "") +
     ((secure) ? "; secure" : "");
 }


var len,clicks,perm,timer=0,transp,full,aufgedeckt,last=-1,uhrstop=false,abes=0,minclicks=1000000,gtime=0;

function uhr() {
	steuerung.document.stand.zeit.value++;
	timer=setTimeout("uhr()",1000);
}
var rndx=new Date();rndx=1/rndx.getSeconds();
function rnd(n) {
 x=rndx+3.1415926;
 x=x*x; x=x*x; x=x*x;
 rndx=x-Math.floor(x);
 x=Math.floor(n*rndx);
 return(x);
}

function permutiere() {
	var i,z,k;
	for(i=0;i<len;i++) perm[i]=i;
	for(n=0;n<2;n++)
		for(i=0;i<len;i++) {
			k=rnd(len);
			if(i==k) continue;
			z=perm[i]; perm[i]=perm[k]; perm[k]=z;
			}
}

function start() {
	var z;
	clicks=0;
	len=ELEMENTE.length;
	transp=new Image();
	transp.src="transp.gif";
	full=new Image();
	full.src="full.gif";
	select=new Image();
	select.src="select.gif";
	perm=new Array(len);
	permutiere();
	aufgedeckt=new Array(len);
	for(i=0;i<len;i++) aufgedeckt[i]=false;
	if(COOKIES) loadcookies();
	tabelleaufbauen();
	inhalt.location=DEFAULT;
}

function ende() {	
	window.location=ENDEURL;
}

function bildsrc(n,k) {  /*k=0 setzt auf HINTERGRUND  1 transparent 2 select */
	var z="steuerung.document.b"+n+".src";
	if(k==0) { 
		eval(z+"=full.src");
		aufgedeckt[n]=false;
		}
	else if(k==1) {
		eval(z+"=transp.src")
		aufgedeckt[n]=true;
		}
	else eval(z+"=select.src");
}

function loadcookies() {
	if((z=GetCookie("abes"))!=null)  abes=z; else abes=0;
   	if((z=GetCookie("gtime"))!=null) gtime=z;else gtime=0;
	if((z=GetCookie("clicks"))!=null) minclicks=z;else minclicks=1000000;
	if(abes>0) alert("Durchgänge: "+abes+"\nGesamtzeit: "+gtime+" s\nMinimum: "+minclicks+" Clicks");
  	}


function savecookies(){
	var z,exp=new Date();
	FixCookieDate(exp);
  	exp.setTime(exp.getTime()+(86400000*EXPDAYS));
	abes++;
	z=steuerung.document.stand.cl.value;
	if(z>minclicks) z=minclicks;
	SetCookie("abes",abes,exp);
	SetCookie("gtime",1*gtime+1*steuerung.document.stand.zeit.value,exp);
	SetCookie("clicks",z,exp);
}

function click(n) {
	var i;
	if(timer==0) uhr();
	clicks++;
	steuerung.document.stand.cl.value=clicks;
	if((n==last)||(aufgedeckt[n]))  {inhalt.location=DEFAULT; return;}
	inhalt.location=ELEMENTE[perm[n]];
	bildsrc(n,2);
	if(last==-1) {
		last=n;
		return;
	        }
	if(Math.floor(perm[n]/2)!=Math.floor(perm[last]/2))
		setTimeout("bildsrc("+last+",0);bildsrc("+n+",0);",VERZOEGERUNG);
	else {	bildsrc(last,1);
		bildsrc(n,1);
		for(var i=0;i<len;i++) if(!aufgedeckt[i]) break;
		if(i>=len) {
			clearTimeout(timer);
			if(COOKIES) savecookies();
			if(confirm("Neustart ?")) window.location.reload();
			else ende();
			}
		}	    
	last=-1;	
}

function tabelleaufbauen() {
	var f=steuerung.document,i,j,a=0,
	    s=SPALTEN,z=Math.floor(len/s);
	if(len%s!=0) alert("Fehler: SPALTEN kein Teiler der ELEMENTE-Feldlänge");
	f.open();
	f.write("<html>"+STARTTEXT+"<center><table>");
	for(i=0;i<z;i++) {
		f.write("<tr align=center valign=center>");
		for(j=0;j<s;j++) {
			f.write("<td><a href=javascript:window.parent.click(");
			f.write(a+")><img src='full.gif' name='b"+a);
			f.write("' border=0></a></td>");
			a++;
			}
		f.write("</tr>");
		}
	f.write("</table>");
	f.write("<form name='stand'><table width=100%><tr><td align=left>Zeit: <input type=number name='zeit' value=0 size=5>&nbsp;s</td><td align=center><b>Clicks:</b> <input type=number name='cl' value=0 size=3></td><td align=right><input type=button value='beenden' onclick=window.parent.ende()></td></tr></table></form>");
	f.write(ENDETEXT+"</body></html>");
	f.close();
}


