var spamSpanMainClass='spamspan';
var spamSpanUserClass='u';
var spamSpanDomainClass='d';
var spamSpanAnchorTextClass='t';
addEvent(window,'load',spamSpan);
function spamSpan(){
var allSpamSpans=getElementsByClass(spamSpanMainClass,document,'span');
for(var i=0;i<allSpamSpans.length;i++){
var user=getSpanValue(spamSpanUserClass, allSpamSpans[i]);
var domain=getSpanValue(spamSpanDomainClass, allSpamSpans[i]);
var anchorText=getSpanValue(spamSpanAnchorTextClass, allSpamSpans[i]);
var at=String.fromCharCode(32*2);
var email=cleanSpan(user)+at+cleanSpan(domain);
var anchorTagText=document.createTextNode(anchorText?anchorText:email);
var mto=String.fromCharCode(109,97,105,108,116,111,58);
var anchorTag=document.createElement('a');
anchorTag.className=spamSpanMainClass;
anchorTag.setAttribute('href',mto+email);
anchorTag.appendChild(anchorTagText);
allSpamSpans[i].parentNode.replaceChild(anchorTag,allSpamSpans[i]);
}
}

function getElementsByClass(searchClass,scope,tag){
var classElements=new Array();
if(scope==null)node=document;
if(tag==null)tag='*';
var els=scope.getElementsByTagName(tag);
var elsLen=els.length;
var pattern=new RegExp("(^|\s)"+searchClass+"(\s|$)");
for(var i=0,j=0;i<elsLen;i++){
if(pattern.test(els[i].className)){
classElements[j]=els[i];
j++;
}
}
return classElements;
}

function getSpanValue(searchClass,scope){var span=getElementsByClass(searchClass,scope,'span');if(span[0])return span[0].firstChild.nodeValue;else return false;}

function cleanSpan(string){string=string.replace(/[\[\(\{]?[P][u][n][k][t][\}\)\]]?/g,'.');string=string.replace(/\s+/g,'');return string;}

function addEvent(obj,type,fn){
if(obj.addEventListener)
obj.addEventListener(type,fn,false);
else if(obj.attachEvent)
{obj['e'+type+fn]=fn;
obj[type+fn]=function(){obj['e'+type+fn](window.event);}
obj.attachEvent('on'+type,obj[type+fn]);
}}