
var keyStr = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+-=";

function encode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   do {
      chr1 = input.charCodeAt(i++);
      chr2 = input.charCodeAt(i++);
      chr3 = input.charCodeAt(i++);

      enc1 = chr1 >> 2;
      enc2 = ((chr1 & 3) << 4) | (chr2 >> 4);
      enc3 = ((chr2 & 15) << 2) | (chr3 >> 6);
      enc4 = chr3 & 63;

      if (isNaN(chr2)) {
         enc3 = enc4 = 64;
      } else if (isNaN(chr3)) {
         enc4 = 64;
      }

      output = output + keyStr.charAt(enc1) + keyStr.charAt(enc2) + 
         keyStr.charAt(enc3) + keyStr.charAt(enc4);
   } while (i < input.length);
   
   return output;
}

function decode64(input) {
   var output = "";
   var chr1, chr2, chr3;
   var enc1, enc2, enc3, enc4;
   var i = 0;

   // remove all characters that are not A-Z, a-z, 0-9, +, -, or =
   input = input.replace(/[^A-Za-z0-9\+\-\=]/g, "");

   do {
      enc1 = keyStr.indexOf(input.charAt(i++));
      enc2 = keyStr.indexOf(input.charAt(i++));
      enc3 = keyStr.indexOf(input.charAt(i++));
      enc4 = keyStr.indexOf(input.charAt(i++));

      chr1 = (enc1 << 2) | (enc2 >> 4);
      chr2 = ((enc2 & 15) << 4) | (enc3 >> 2);
      chr3 = ((enc3 & 3) << 6) | enc4;

      output = output + String.fromCharCode(chr1);

      if (enc3 != 64) {
         output = output + String.fromCharCode(chr2);
      }
      if (enc4 != 64) {
         output = output + String.fromCharCode(chr3);
      }
   } while (i < input.length);

   return output;
}

function decodePCX(input){
	var z=0;
	var output="";
var keyHex = "0123456789ABCDEF";
	while(z < input.length){

		var Pixel= input.charCodeAt(z);
		Pixel=Pixel & 255;
		if(Pixel>192){
			var Anzahl = Pixel-192;
			z++;
			Pixel= input.charCodeAt(z);
			Pixel=Pixel & 255;
			for(i=0; i<Anzahl; i++){
				output += String.fromCharCode(Pixel);
			}
		} else {
			output += String.fromCharCode(Pixel);
		}
	
		z++;
	}
	return output;
}

function encodePCX(input){
	var output="";
	for(z=0; z<input.length; z++){
		var Pixel = input.charCodeAt(z);      /* erstes Vorkommen der Farbe */
		var Anzahl=1;
		while((Pixel==input.charCodeAt(z+1)) && (Anzahl<63)){
			Anzahl++;
			z++;
	        }
	        /* Anzahl>1 oder Farbe>=192, dann RLC durchfÃ¼hren */
		if((Anzahl>1) || (Pixel>=192)){
			Anzahl = 192 + Anzahl;
			output += String.fromCharCode(Anzahl);
			output += String.fromCharCode(Pixel);
		}else{
			output += String.fromCharCode(Pixel);
		}
	}
	return output;
}


//------------Broserunabhaengig--------------

function setmyclip(x,y){
	maplink(x,y);
	var karte=document.getElementById("karte").style;
	fx=x*2.9358-160;
	fy=y*2.93985-110;
	karte.top=40-fy;
	karte.left=-7-fx;
	karte.clip="rect("+fy+" "+(250+fx)+" "+(221+fy)+" " +fx+"  )";
}
function maplink(x,y){
	tx=Math.floor((x)/2);
	ty=Math.floor((y)/2);
//	alert (":"+tx+":"+oleft+":"+ty+":"+otop+":"+owidth+":"+oheight+":");
	if ((tx>oleft) && (ty>otop) && (tx<owidth+oleft) && (ty<oheight+otop)){
		var zx=tx-oleft;
		var zy=ty-otop;
		var key=ostfield.charCodeAt(zx+zy*owidth);
		if (lt[key]){
			changetext(lt[key]);
		} else {
//			if (key != 255) {alert(key)};
			changetext(" ");
		}
	} else if ((tx>wleft) && (ty>wtop) && (tx<wwidth+wleft) && (ty< wheight+wtop)){
		var zx=tx-wleft;
		var zy=ty-wtop;
		var key=westfield.charCodeAt(zx+zy*wwidth);
		if (rt[key]){
			changetext(rt[key]);
		} else {
//			if (key != 255) {alert(key)};
			changetext(" ");
		}
	} else {
		changetext(" ");
	}
}

function changetext(text){
	var parts = text.split(",");
	document.getElementById("lupentext1").firstChild.data=parts[0];
	if (parts[2]){
		document.getElementById("lupentext3").firstChild.data=parts[2];
	} else {
		document.getElementById("lupentext3").firstChild.data="";
	}
	currentlink=parts[0];
	if (parts[1] > 1){
		document.getElementById("lupentext2").firstChild.data=parts[1]+" Einträge";
	} else if (parts[1] > 0){
		document.getElementById("lupentext2").firstChild.data=parts[1]+" Eintrag";
	} else if (parts[0] != " ") {
		document.getElementById("lupentext2").firstChild.data="0 Einträge";
	} else {
		document.getElementById("lupentext2").firstChild.data="";
	}

}

function goon(){
	if ((currentlink == " ") || (currentlink == "")){
		document.getElementById("helpme").style.display="block";
		return 1;
	}
	var where=currentlink.toLowerCase();
	where=where.replace(/ä/,'a_');
	where=where.replace(/ö/,'o_');
	where=where.replace(/ü/,'u_');
	self.location.href="kreis/"+where+".htm";
}
