function rejig() {
	
	// find all links in HTML
	var link = document.getElementsByTagName && document.getElementsByTagName("a");
	var em, e;
	
	// examine all links
	for (e = 0; link && e < link.length; e++) {
		if ((" "+link[e].className+" ").indexOf(" rejig ") >= 0) {
			
			em = link[e].firstChild.firstChild.nodeValue.toLowerCase() || "";
			            
			// transform
			em = em.replace(/d_o_t/ig, ".");
			em = em.replace(/a_t/ig, "@");
			em = em.replace(/_/ig, "");
			
			// is valid?
			if (/^[^@]+@[a-z0-9]+([_\.\-]{0,1}[a-z0-9]+)*([\.]{1}[a-z0-9]+)+$/.test(em)) {
			
				// change into link
				link[e].href = "m"+"a"+"i"+"l"+"t"+"o:" + em;
				link[e].firstChild.nodeValue = em;
                link[e].firstChild.firstChild.nodeValue = em;
			}
		}
	}
}

window.onload = rejig;  
