function correct_email_addresses() {
    var email_spans = getElementsByTagNameClass('span','email');
    
    for (var j=0, k=email_spans.length; j<k; j++) {
        var email = email_spans[j].firstChild.nodeValue;
        email = email.replace(/ \[dot\] /g, '.');
        email = email.replace(/ \[at\] /, '@');
        
        var a = document.createElement('a');
        a.href = 'mailto:' + email;
        a.appendChild(document.createTextNode(email));
        
        email_spans[j].replaceChild(a, email_spans[j].firstChild);
    }
}

function getElementsByTagNameClass (tag_name, css_class) {
    var child_elements = new Array();
    var elements = document.getElementsByTagName( tag_name );
    for (var i = 0, j = elements.length; i<j; i++) {
        if (elements[i].className.match(new RegExp("\\b" + css_class + "\\b")) == css_class) {
            child_elements.push(elements[i]);
        }
    }
    return child_elements;
}