

	
	function NewWindow( sURL, sFeatures )
	{
		window.open( sURL, "", sFeatures );	
	}
	
	





	var ref = document.referrer;
	if(ref&&ref!="") {
		ref = new String(ref);
	} else {
		ref = new String("No Referrer");
	}
	
	if(ref.indexOf(".dysanalytics.")>=0){}
	else {
		//location and ref
		cookieString1 = "ref=" + ref + ";";
		cookieString2 = "landing=" + document.location + ";";
		document.cookie=cookieString1;
		document.cookie=cookieString2;
	}
	
	//var docOpener = self.opener.document.location;
	//cookieString3 = "opener=" + docOpener + ";";
	//document.cookie=cookieString3;



// 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 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;
}
// -->




// http://www.jracademy.com/~jtucek/email/download.php
if(!addresses) 
{
	//(0)sales_inquiries - WEB: Corporate Info
	var addresses = new Array();
	addresses.push("34189 22547 30036 23759 29388 28908 22391 71 24167 16559 23759 28908 4631 16559 2650 29388 31818 6959 28919 29388 11417 29388 4631 16559 22821 8519 27922 16559 23759 31818 23759 28908 27922 22391 29388 13007 16559 28958 13007 71 30036 10724 16559 28919 18089 28590 4631 13007 22391 21847 8912 20808 13984 24167 32768 27251 71 11417 3179 71 11417 23759 22391 4631 32768 12938 31818 1349 71");

	//(1)sales_inquiries - WEB: Sales Info	
	addresses.push("34189 22547 30036 23759 29388 28908 22391 71 24167 16559 23759 28908 4631 16559 2650 29388 31818 6959 28919 29388 11417 29388 4631 16559 22821 8519 27922 16559 23759 31818 23759 28908 27922 22391 29388 13007 16559 28958 13007 71 30036 10724 16559 28919 18089 28590 4631 13007 22391 21847 8912 20808 13984 24167 32768 24763 23759 28908 4631 16559 32768 12938 31818 1349 71");
	
	//(2)dys_pr - WEB: Press Release	
	addresses.push("262 87 225 127 109 16 162 253 184 84 196 144 208 179 227 127 40 127 16 179 162 109 113 227 134 113 253 225 99 227 7 88 226 117 113 162 89 97 223 82 184 18 52 196 117 227 227 18 120 117 16 117 127 227 117");
	
	//(3)dys_jobs - WEB: Careers
	addresses.push("11857 7747 2616 11541 7496 2870 7629 4076 5400 9882 11541 11276 10599 10599 11276 3179 1290 4012 4868 3179 11541 3016 11541 2870 4868 7629 7496 9882 3179 2480 9882 4076 2616 1050 3179 918 4489 5316 10599 9882 7629 1698 6368 10599 4489 5400 9054 4338 11541 11276 10599 10599 11276 3179 9054 11541 7629 9054 6150 5406 2651");

	//(4)support - WEB: Customer Support
	addresses.push("12709 8307 11420 10334 1106 1521 10398 7768 4477 8504 279 6938 6938 7768 7300 10398 7964 8698 5010 8504 10334 9264 10334 1521 5010 10398 1106 4415 8504 8373 4415 7768 11420 8576 8504 279 726 9079 872 4415 10398 10928 10344 10784 7898 4477 7350 8456 279 8504 10398 7768 11420 872 7300 7350 12591 279 6938 6938 7768 7300 10398");

	//(5)support - WEB: Maintenance Services
	addresses.push("12709 8307 11420 10334 1106 1521 10398 7768 4477 8504 279 6938 6938 7768 7300 10398 7964 8698 5010 8504 10334 9264 10334 1521 5010 10398 1106 4415 8504 8373 4415 7768 11420 8576 8504 279 726 9079 872 4415 10398 10928 10344 10784 7898 4477 7350 11718 10334 1106 9264 10398 872 9264 10334 9264 4415 872 7350 12591 872 7300 3571 1106 4415 872 8504");

	//(6)dys_webmaster - WEB: Webmaster
	addresses.push("262 87 225 127 109 16 162 253 184 237 117 88 225 127 227 162 117 196 144 208 179 227 127 40 127 16 179 162 109 113 227 134 113 253 225 99 227 7 88 226 117 113 162 89 97 223 82 184 18 97 117 88 225 127 227 162 117 196");

	//(7)sales_inquiries - WEB: DYS Solutions	
	addresses.push("12709 8307 11420 10334 1106 1521 10398 7768 4477 8504 10334 1521 872 8504 5872 1106 9264 6780 279 1106 7300 1106 872 8504 7964 8698 5010 8504 10334 9264 10334 1521 5010 10398 1106 4415 8504 8373 4415 7768 11420 8576 8504 279 726 9079 872 4415 10398 10928 10344 10784 7898 4477 7350 9416 5974 12591 7350 12591 7768 1521 279 10398 1106 7768 9264 8504");

	//(8)sales_inquiries - WEB: DYS Products
	addresses.push("12709 8307 11420 10334 1106 1521 10398 7768 4477 8504 10334 1521 872 8504 5872 1106 9264 6780 279 1106 7300 1106 872 8504 7964 8698 5010 8504 10334 9264 10334 1521 5010 10398 1106 4415 8504 8373 4415 7768 11420 8576 8504 279 726 9079 872 4415 10398 10928 10344 10784 7898 4477 7350 9416 5974 12591 7350 3640 7300 7768 8698 279 4415 10398 8504");

	//(9)sales_inquiries - WEB: DYS Services
	addresses.push("12709 8307 11420 10334 1106 1521 10398 7768 4477 8504 10334 1521 872 8504 5872 1106 9264 6780 279 1106 7300 1106 872 8504 7964 8698 5010 8504 10334 9264 10334 1521 5010 10398 1106 4415 8504 8373 4415 7768 11420 8576 8504 279 726 9079 872 4415 10398 10928 10344 10784 7898 4477 7350 9416 5974 12591 7350 12591 872 7300 3571 1106 4415 872 8504");

	//(10)mkmarinac - Web: DYS Press Releases
	addresses.push("12709 8307 11420 10334 1106 1521 10398 7768 4477 11420 4979 11420 10334 7300 1106 9264 10334 4415 7964 4415 7768 11420 4415 10334 8504 10398 8373 9264 872 10398 8576 8504 279 726 9079 872 4415 10398 10928 10344 872 726 4477 7350 9416 5974 12591 7350 3640 7300 872 8504 8504 7350 4881 872 1521 872 10334 8504 872 8504");

	//(11)rgomez - Web: Driving Down the Cost of Email
	addresses.push("1357 851 451 769 104 416 346 1132 1061 1057 342 1132 451 338 182 243 1248 676 1035 769 1140 769 416 676 346 104 44 1035 989 44 1132 451 359 1035 353 791 927 338 44 346 362 965 1057 104 1062 104 1140 342 200 965 1132 1122 1140 200 346 1268 338 200 866 1132 1035 346 200 1132 34 200 115 451 769 104 416");
}
