function platoonE(key, pt) {
	s = new Array();
	for (var i=0; i<256; i++) {
		s[i] = i;
	}
	var j = 0;
	var x;
	for (i=0; i<256; i++) {
		j = (j + s[i] + key.charCodeAt(i % key.length)) % 256;
		x = s[i];
		s[i] = s[j];
		s[j] = x;
	}
	i = 0;
	j = 0;
	var ct = '';
	for (var y=0; y<pt.length; y++) {
		i = (i + 1) % 256;
		j = (j + s[i]) % 256;
		x = s[i];
		s[i] = s[j];
		s[j] = x;
		ct += String.fromCharCode(pt.charCodeAt(y) ^ s[(s[i] + s[j]) % 256]);
	}
	return ct;
}

function platoonD(key, ct) {
	return platoonE(key, ct);
}

//Encodes data to Hex(base16) format
function hexEncode(data){
	var b16_digits = '0123456789abcdef';
	var b16_map = new Array();
	for (var i=0; i<256; i++) {
		b16_map[i] = b16_digits.charAt(i >> 4) + b16_digits.charAt(i & 15);
	}
	
	var result = new Array();
	for (var i=0; i<data.length; i++) {
		result[i] = b16_map[data.charCodeAt(i)];
	}
	
	return result.join('');
}

//Decodes Hex(base16) formated data
function hexDecode(data){
	var b16_digits = '0123456789abcdef';
	var b16_map = new Array();
	for (var i=0; i<256; i++) {
		b16_map[b16_digits.charAt(i >> 4) + b16_digits.charAt(i & 15)] = String.fromCharCode(i);
	}
	if (!data.match(/^[a-f0-9]*$/i)) return false;// return false if input data is not a valid Hex string
	
	if (data.length % 2) data = '0'+data;
		
	var result = new Array();
	var j=0;
	for (var i=0; i<data.length; i+=2) {
		result[j++] = b16_map[data.substr(i,2)];
	}

	return result.join('');
}


function getCookie(c_name){
	var i,x,y,ARRcookies=document.cookie.split(";");
	for (i=0;i<ARRcookies.length;i++){
 		x=ARRcookies[i].substr(0,ARRcookies[i].indexOf("="));
 		y=ARRcookies[i].substr(ARRcookies[i].indexOf("=")+1);
 		x=x.replace(/^\s+|\s+$/g,"");
 		if (x==c_name){
   		return unescape(y);
   	}
 	}
}
function setCookie(c_name,value,exdays,c_domain){
	var exdate=new Date();
	exdate.setDate(exdate.getDate() + exdays);
	//value = platoonE('dg7ezndkmahytd6ezahnasuwamsiwena123zdjheua', value);
	value = hexEncode(platoonE('dg7ezndkmahytd6ezahnasuwamsiwena123zdjheua', value));
	//alert(c_name+' / '+value);
	var c_value=escape(value)+((exdays==null)?"":";expires="+exdate.toUTCString()+";path=/;domain=."+c_domain+"");
	//alert(c_name+' / '+c_value);
	document.cookie=c_name+"="+c_value;
}
function delete_cookie(c_name,c_var){
 	var jetzt = new Date();
 	var halbwertszeit = 1000*60*60*24; //minus 1 sekunde * 60  * 60 min * 24 stunden
 	var verfall = new Date(jetzt.getTime() - halbwertszeit);
 	document.cookie = c_name+"="+c_var+";expires="+verfall.toGMTString()+";";
}


function c_DATA(c_name,c_var_param,c_dauer,c_domain){
	var c_var=getCookie(c_name);
	if(c_var!=null && c_var!=""){
		/*document.write('Cookie: '+c_name+ ' => Value:' + platoonD('geheim',c_var)+'<br>');*/
	}else{
 		if (c_var_param!=null && c_var_param!=""){
   		setCookie(c_name,c_var_param,c_dauer,c_domain);
   	}
 	}
}
