// <!--
// This code is Copyright (c) 2004-2007 Charles R. Estabrooks
// You are granted a license to use this javascript in your
// web site as long as it remains as-is including the
// copyright notice.  The author asks for a contribution
// of $10 or more to support further development. Funds
// may be transmitted via Paypal. Please visit
// www.estabrooks.org for Paypal ID and contact info

// The writecrypt() function scans the encrypted string, decrypts
// it and writes it to a new page, which is the 'mailto:' call
//
// writecrypt(string, key1, key2);
//

function writecrypt(foo,key1,key2,bar) {
	foo += ' ';
	var len = foo.length;
	var digit = 0;
	var newstr = '';
	for(var inc = 0; inc < len; inc++) {
		digit = 0;
		while(foo.charCodeAt(inc) != 32) {
			digit = digit * 10;
			digit = digit + foo.charCodeAt(inc)-48;
			inc++;
		}
		newstr += String.fromCharCode(decrypt(digit,key1,key2));
	}
	parent.location = 'm'+'a'+'i'+'l'+'t'+'o'+':'+newstr+bar;
}

//
// The writeclear() function scans the encrypted string, decrypts
// it and writes it to the HTML document.
//
//	writeclear(string, key1, key2);
//

function writeclear(foo,key1,key2) {
	foo += ' ';
	var len = foo.length;
	var digit = 0;
	for(var inc = 0; inc < len; inc++) {
		digit = 0;
		while(foo.charCodeAt(inc) != 32) {
			digit = digit * 10;
			digit = digit + foo.charCodeAt(inc)-48;
			inc++;
		}
		document.write(String.fromCharCode(decrypt(digit,key1,key2)));
	}
}
//
// The decrypt() function takes the encrypted string and
// two keys as arguments and returns the ASCII code of the 
// decrypted character
// 
// decrypt(string, key1, key2);
//
//

function decrypt(source,key1,key2) {
	holder = (source*source) % key1;
	result = Math.pow(source,(key2 % 2));
	for (var i=1; i<= key2/2; i++) {
		result = (holder*result) % key1;
	}
	return result;
}
// -->