      // decrypt helper function (TYPO3.ORG)
      // General Public License
      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 (TYPO3.ORG)
      // General Public License
      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 (TYPO3.ORG)
      // General Public License
      function linkTo_UnCryptMailto(s)	{
      	location.href = decryptString(s,-3);
      }

