// 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,-2);
}
