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

