/************************************************************
 * Base64 decoder
 */

var b64ch = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/=';

function b64decode(s)
{
    var res = '';

    var n = 0;
    while (n < s.length)
    {
        var c0 = b64ch.indexOf(s.charAt(n++));
        var c1 = b64ch.indexOf(s.charAt(n++));
        var c2 = b64ch.indexOf(s.charAt(n++));
        var c3 = b64ch.indexOf(s.charAt(n++));

        var block = ((c0 & 0x3F) << 18) |
                    ((c1 & 0x3F) << 12) |
                    ((c2 & 0x3F) << 6)  |
                     (c3 & 0x3F);

        res += String.fromCharCode((block >> 16) & 0xFF);
        if (c2 == 0x40) break; // c2 is pad?
        res += String.fromCharCode((block >> 8)  & 0xFF);
        if (c3 == 0x40) break; // c3 is pad?
        res += String.fromCharCode(block & 0xFF);
    }

    return res;
}

/************************************************************
 * Anti spam mail decrypter
 */
 
function decryptURL(url)
{
    window.location.href = b64decode(url);
}

function decryptText(text)
{
    document.write(b64decode(text));
}

function decryptLink(url, text)
{
    document.write('<a href="' + b64decode(url) + '">' + b64decode(text) + '</a>');
}