var RNDX,RD;
var ESCSET=" ABCDEFGHIJKLMNOPQRSTUVWXYZ1234567890abcdefghijklmnopqrstuvwxyz/+*-.,:;!?§$%&=#[]{}_";
var PWFALSCHTXT="<body><center><hr><h1>Zugriff verweigert !</h1><hr></body>";

function rnd(n)
        { x=RNDX+RD;
	  x*=x;x*=x;x*=x;
	  RNDX=x-Math.floor(x);
          return Math.floor(RNDX*n);
        }

function stodouble(s) {  /* 8 Zeichen werden ausgewertet */
	var cset=ESCSET+"ßäöüÄÖÜ";
	var i,k=0.0,len=1+cset.length,lens=s.length;
	if(lens>8) lens=8;
	for(i=0;i<lens;i++) {
		z=cset.indexOf(s.charAt(i));
		if(z<0) z=len-1;
		k=len*k+z;
		}
	while(k>1) k/=10.0;
	return k;
	}

function init(p)
	{ while(p.length<16) p=p+" ";
	  RNDX=1/Math.PI+stodouble(p.substring(0,8));
	  RD=2*Math.PI+stodouble(p.substring(8,16));
	} 

function entkrypt3(p,v) {
	window.status="Bitte warten";
	init(p);
	var n=v.length,i,k,m,z=new Array(n),zn=50/(n-1),lesc=ESCSET.length;
	for(i=0;i<n;i++) z[i]=v.charAt(i);
	for(i=0;i<n;i++) { 
		k=rnd(n);m=z[i];z[i]=z[k];z[k]=m;
		window.status=Math.round(zn*i)+"% entschlüsselt"; 
		} 
	m='';
	for(i=0;i<n;i++) {
		k=ESCSET.indexOf(z[i])+rnd(lesc);
		m+=ESCSET.charAt(k%lesc);
		window.status=Math.round(50+zn*i)+"% entschlüsselt";
		}
	return unescape(m); 
	}

function ekrypt(v){
	var p=prompt('Diese Seite erfordert ein Passwort:','');
	if((p==null)||(p=="")) {history.go(-1); return; }
	var m=entkrypt3(p,v),lm=m.length,lp=p.length,s=m.substring(lm-lp,lm);
	if(p==s) document.write(m.substring(0,lm-lp));
	else document.write(PWFALSCHTXT);
	document.close();
	}

function ekrypturl(v) {
	var p=prompt('Bitte Passwort eingeben:','');
	if((p==null)||(p=="")) return;
	var m=entkrypt3(p,v),lm=m.length,lp=p.length,s=m.substring(lm-lp,lm);
	if(p==s) window.location=m.substring(0,lm-lp);
	else alert("Falsches Passwort");
	}


