/**
 * @author Florian Beyer
 * Graceful Email Obfuscation - Javascript decoder
 */

window.onload = function(){
	var links = document.getElementsByTagName('a'); // Get all anchors
	for (var l = 0; l < links.length; l++) {
		geo_decode(links[l]);
	}
}
 
 //rot13 decode-functions
 function rot13init() {
	var map = new Array();
	var s = "abcdefghijklmnopqrstuvwxyz";
	for (var i = 0 ; i < s.length ; i++)
		map[s.charAt(i)] = s.charAt((i+13)%26);
	for (var i = 0 ; i < s.length ; i++)
		map[s.charAt(i).toUpperCase()] = s.charAt((i+13)%26).toUpperCase();
	return map;
}
function str_rot13(a,map) {
	var s = "";
	for (var i = 0 ; i < a.length ; i++) {
		var b = a.charAt(i);
		s += (b>='A' && b<='Z' || b>='a' && b<='z' ? map[b] : b);
	}
	return s;
}

function ascii_encode(str){
	var ascii_str = '';
	for(var i=0;i<str.length;i++){
		
		ascii_str += '&#'+str.charCodeAt(i)+';';
	}
	return ascii_str.replace(/&amp;/g, "&");
}

function geo_decode(anchor) { // function to recompose the orginal address
	var rel = anchor.getAttribute('rel');
	if(rel = 'nofollow'){
		var href = anchor.getAttribute('href');
		if(href.indexOf('who=') != -1 && href.indexOf('where=') != -1 && href.indexOf('what=') != -1){
			var map = rot13init();
			var pobox = href.substring((href.indexOf('who=')+4),href.indexOf('&where='));
			var site = href.substring((href.indexOf('where=')+6),href.indexOf('&what='));
			var domain = href.substring((href.indexOf('what=')+5));
			var address = str_rot13(pobox,map)+"@"+str_rot13(site,map)+"."+str_rot13(domain,map);
			var linktext = anchor.innerHTML; // IE Fix
			var encode_address = ascii_encode(address);
			anchor.setAttribute('href','mailto:' + address); // Add mailto link	
			anchor.innerHTML = encode_address; // IE Fix
		}
		
	}		
}
	
