// decrypt helper function
function decryptCharcode( n, start, end, offset )
{
	n = n + offset;
	if( offset > 0 && n > end )
	{
		n = start + ( n - end - 1 );
	}
	else if( offset < 0 && n < start )
	{
		n = end - ( start - n - 1 );
	}
	return String.fromCharCode( n );
}
// decrypt string
function decryptString( enc, offset )
{
	var dec = "";
	var len = enc.length;
	for( var i=0; i < len; i++ )
	{
		var n = enc.charCodeAt( i );
		if( n >= 0x2B && n <= 0x3A )
		{
			dec += decryptCharcode(n,0x2B,0x3A,offset); // 0-9 . , - + / :
		}
		else if( n >= 0x40 && n <= 0x5A )
		{
			dec += decryptCharcode(n,0x40,0x5A,offset); // A-Z @
		}
		else if( n >= 0x61 && n <= 0x7A )
		{
			dec += decryptCharcode(n,0x61,0x7A,offset); // a-z
		}
		else
		{
			dec += enc.charAt(i);
		}
	}
	return dec;
}
// decrypt spam-protected emails
function linkTo_UnCryptMailto( s )
{
	location.href = decryptString(s,-1);
}
