
function menuover(thisPar) {
	//alert (thisPar.className);
	thisPar.className='menutexton';
	}
	
function menuoff(thisPar) {
	//alert (thisPar.className);
	thisPar.className='menutextoff';
	}

// This script is (c) copyright 2006 Jim Tucek under the
// GNU General Public License (http://www.gnu.org/licenses/gpl.html)
// For more information, visit www.jracademy.com/~jtucek/email/ 
// Leave the above comments alone!

var addresses = new Array();
addresses.push("893 497 466 431 687 755 317 175 875 256 431 755 404 647 410 256 431 755 404 647 215 755 431 587 404 563 382 404 317 698 100 647 680 319 672 404 587 317 473 787 466 431 687 755 850 714 475 175 466 850 254 404 319 850 676 687 317 404");
addresses.push("893 497 466 431 687 755 317 175 875 215 175 647 317 466 431 647 317 404 475 410 256 431 755 404 647 215 755 431 587 404 563 382 404 317 698 100 647 680 319 672 404 587 317 473 787 466 431 687 755 850 714 475 175 466 850 254 404 319 850 676 687 317 404");
addresses.push("893 497 466 431 687 755 317 175 875 647 680 215 215 175 475 317 410 647 404 431 475 587 548 294 687 382 563 382 404 317 698 100 647 680 319 672 404 587 317 473 787 466 431 687 755 850 714 475 175 466 850 254 404 319 850 676 687 317 404");
addresses.push("893 497 466 431 687 755 317 175 875 294 404 319 466 431 647 317 404 475 410 256 431 755 404 647 215 755 431 587 404 563 382 404 317 698 100 647 680 319 672 404 587 317 473 787 466 431 687 755 850 714 475 175 466 850 254 404 319 850 676 687 317 404");
addresses.push("893 497 466 431 687 755 317 175 875 647 680 215 215 175 475 317 410 256 431 755 404 647 215 755 431 587 404 563 382 404 317 698 100 647 680 319 672 404 587 317 473 787 466 431 687 755 850 714 475 175 466 850 254 404 319 850 676 687 317 404");
addresses.push("893 497 466 431 687 755 317 175 875 647 680 475 777 404 277 410 256 431 755 404 647 215 755 431 587 404 563 382 404 317 100 647 680 319 672 404 587 317 473 787 466 431 687 755 850 714 475 175 466 850 254 404 319 850 676 687 317 404");

var decryption_cache = new Array();

function decrypt_string(crypted_string,n,decryption_key,just_email_address) {
	var cache_index = "'"+crypted_string+","+just_email_address+"'";

	if(decryption_cache[cache_index])					// If this string has already been decrypted, just
		return decryption_cache[cache_index];				// return the cached version.

	if(addresses[crypted_string])						// Is crypted_string an index into the addresses array
		var crypted_string = addresses[crypted_string];			// or an actual string of numbers?

	if(!crypted_string.length)						// Make sure the string is actually a string
		return "Error, not a valid index.";

	if(n == 0 || decryption_key == 0) {					// If the decryption key and n are not passed to the
		var numbers = crypted_string.split(' ');			// function, assume they are stored as the first two
		n = numbers[0];	decryption_key = numbers[1];			// numbers in crypted string.
		numbers[0] = ""; numbers[1] = "";				// Remove them from the crypted string and continue
		crypted_string = numbers.join(" ").substr(2);
	}

	var decrypted_string = '';
	var crypted_characters = crypted_string.split(' ');

	for(var i in crypted_characters) {
		var current_character = crypted_characters[i];
		var decrypted_character = exponentialModulo(current_character,n,decryption_key);
		if(just_email_address && i < 7)				// Skip 'mailto:' part
			continue;
		if(just_email_address && decrypted_character == 63)	// Stop at '?subject=....'
			break;
		decrypted_string += String.fromCharCode(decrypted_character);
	}
	
	decryption_cache[cache_index] = decrypted_string;			// Cache this string for any future calls

	return decrypted_string;
}

function decrypt_and_email(crypted_string,n,decryption_key) {
	if(!n || !decryption_key) { n = 0; decryption_key = 0; }
	if(!crypted_string) crypted_string = 0;

	var decrypted_string = decrypt_string(crypted_string,n,decryption_key,false);
	parent.location = decrypted_string;
}

function decrypt_and_echo(crypted_string,n,decryption_key) {
	if(!n || !decryption_key) { n = 0; decryption_key = 0; }
	if(!crypted_string) crypted_string = 0;

	var decrypted_string = decrypt_string(crypted_string,n,decryption_key,true);
	document.write(decrypted_string);
	return true;
}

// Finds base^exponent % y for large values of (base^exponent)
function exponentialModulo(base,exponent,y) {
	if (y % 2 == 0) {
		answer = 1;
		for(var i = 1; i <= y/2; i++) {
			temp = (base*base) % exponent;
			answer = (temp*answer) % exponent;
		}
	} else {
		answer = base;
		for(var i = 1; i <= y/2; i++) {
			temp = (base*base) % exponent;
			answer = (temp*answer) % exponent;
		}
	}
	return answer;
}
// -->

/*
// <!-- 1718760036
// This script is (C) Copyright 2002 Jim Tucek
// Leave these comments alone!  For more info, visit
// www.jracademy.com/~jtucek/ 
*/

function find(grandmother,air,astonishment) {
grandmother += ' ';
var song = grandmother.length;
var rocket = 0;
var coordinated = '';
for(var thing = 0; thing < song; thing++) {
rocket = 0;
while(grandmother.charCodeAt(thing) != 32) {
rocket = rocket * 10;
rocket = rocket + grandmother.charCodeAt(thing)-48;
thing++;
}
coordinated += String.fromCharCode(meet(rocket,air,astonishment));
}
parent.location = 'm'+'a'+'i'+'l'+'t'+'o'+':'+coordinated;
}

function lend(credibility,detail,fraction) {
credibility += ' ';
var man = credibility.length;
var shoulder = 0;
for(var language = 0; language < man; language++) {
shoulder = 0;
while(credibility.charCodeAt(language) != 32) {
shoulder = shoulder * 10;
shoulder = shoulder + credibility.charCodeAt(language)-48;
language++;
}
document.write('&');
document.write('#');
document.write(meet(shoulder,detail,fraction));
}
}

function meet(integrity,invitation,magic) {
if (magic % 2 == 0) {
message = 1;
for(var monkey = 1; monkey <= magic/2; monkey++) {
watched = (integrity*integrity) % invitation;
message = (watched*message) % invitation;
}
} else {
message = integrity;
for(var nest = 1; nest <= magic/2; nest++) {
watched = (integrity*integrity) % invitation;
message = (watched*message) % invitation;
}
}
return message;
}
/*
// -->
*/