function antiSpamMailLink(a,offset) {
  var c = rotate(decode_base64(a),offset);
  document.write('<a href="javascript:Decrypt(\''+a+'\','+offset+')">'+c.replace(/@/, " (at) ")+'</a>');
}

function Decrypt(a,offset) {
  location.href = decode_base64('bWFpbHRvOg==')+rotate(decode_base64(a),offset);
}

function rotate(a,offset) {
  var b = a.substring(0,a.length - offset);
  var c = a.substring(a.length - offset, a.length);
  return c+b;
}

function antiSpamText(a) {
  document.write(decode_base64(a));
}

function encode_base64(d) {
  var r=[];
  var i=0;
  var dl=d.length;
  if ((dl%3) == 1)
  {
    d[d.length] = 0; d[d.length] = 0;
  }
  if ((dl%3) == 2)
    d[d.length] = 0;
  while (i<d.length)
  {
    r[r.length] = b64[d[i]>>2];
    r[r.length] = b64[((d[i]&3)<<4) | (d[i+1]>>4)];
    r[r.length] = b64[((d[i+1]&15)<<2) | (d[i+2]>>6)];
    r[r.length] = b64[d[i+2]&63];
    if ((i%57)==54)
      r[r.length] = "\n";
    i+=3;
  }
  if ((dl%3) == 1)
    r[r.length-1] = r[r.length-2] = "=";
  if ((dl%3) == 2)
    r[r.length-1] = "=";
  var t=r.join("");
  return t;
}

function decode_base64(a) {
  return utf8d2t(b64t2d(a));
}

function b64arrays() {
  var b64s='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
  b64 = [];
  f64 = [];
  for (var i=0; i<b64s.length ;i++) {
    b64[i] = b64s.charAt(i);
    f64[b64s.charAt(i)] = i;
  }
}

function b64t2d(t) {
  var d=[];
  var i=0;
  t=t.replace(/\n|\r/g,"");
  t=t.replace(/=/g,"");
  while (i<t.length)
  {
    d[d.length] = (f64[t.charAt(i)]<<2) | (f64[t.charAt(i+1)]>>4);
    d[d.length] = (((f64[t.charAt(i+1)]&15)<<4) | (f64[t.charAt(i+2)]>>2));
    d[d.length] = (((f64[t.charAt(i+2)]&3)<<6) | (f64[t.charAt(i+3)]));
    i+=4;
  }
  if (t.length%4 == 2)
    d = d.slice(0, d.length-2);
  if (t.length%4 == 3)
    d = d.slice(0, d.length-1);
  return d;
}

function utf8d2t(d) {
  var r=new Array;
  var i=0;
  while(i<d.length)
  {
    if (d[i]<128) {
      r[r.length]= String.fromCharCode(d[i]); i++;}
    else if((d[i]>191) && (d[i]<224)) {
      r[r.length]= String.fromCharCode(((d[i]&31)<<6) | (d[i+1]&63)); i+=2;
    }
    else {
      r[r.length]= String.fromCharCode(((d[i]&15)<<12) | ((d[i+1]&63)<<6) | (d[i+2]&63)); i+=3;
    }
  }
  return r.join("");
}