
function encode(str_to_encrypt)
{
	if( !str_to_encrypt ) 
	{
		return null;
	}
	var forward = create_char_list();
	var reversed = forward.join(','); // break reference to chars so reverse() method does not effect both original and copy of chars
	reversed = reversed.split(',');
	reversed.reverse();
	var ret_list = [];
	ret_str = '';
	
	for(var i=0; i<str_to_encrypt.length; i++)
	{
		var curr_char_code = str_to_encrypt.charCodeAt(i);
		var found = 0;
		
		for(j=0; j<forward.length; j++)
		{
			if( forward[j] == curr_char_code )
			{
				//ret_list[ret_list.length] =  String.fromCharCode(reversed[j]);
				ret_str +=  String.fromCharCode(reversed[j]);
				found = 1;
				break;
			}
		}
		
		if( !found )
		{
			//ret_list[ret_list.length] = str_to_encrypt.charAt(i);
			ret_str += str_to_encrypt.charAt(i);
		}	
	}
	//return ret_list;
	return ret_str;	
}

function create_char_list()
{
	var str = '';
	char_list = [];
	var chars = " -.0123456789:ABCDEFGHIJKLMNOPQRSTUVWXYZ_@abcdefghijklmnopqrstuvwxyz"
	
	for(var i=0;i<chars.length;i++)
	{
		char_list[char_list.length] = chars.charCodeAt(i);
	}
	
	return char_list;
}

function alter_links()
{
	if( !document.links.length ) return;
	
	if(!document.links[0].setAttribute ) return;
	
	for (var i=0; i<document.links.length; i++)  
   	{		
		if (document.links[i].getAttribute('class') == 'newWindow' || document.links[i].className == 'newWindow') 
   		{
			changeAllLinksWithClassToTargetBlanks(document.links[i]) 
		}
		
		if (document.links[i].getAttribute('class') == 'crypto' || document.links[i].className == 'crypto') 
   		{
			decrypt_links(document.links[i]) 
		}
	}
	
}

function changeAllLinksWithClassToTargetBlanks(link) 
{
	// from http://development.incutio.com/simon/targetBlankExperiment.html
	
 		  	link.setAttribute('target', '_blank');
		   	link.setAttribute('title', 'opens in new window');
			
}

function decrypt_links(link)
{
		var link_href = link.title;
		
		if( !link_href )
		{
			return;
		}
		
		regexp = /^(.+)$/;
		matches = link_href.match(regexp);

		if( ! matches || ! matches.length > 1 ) 
		{
			return;
		}
		
		link_href = encode(matches[1]);
		var orginal_link_text = link.firstChild.nodeValue;
		link.href = link_href;
		link.firstChild.nodeValue = link_href.replace(encode(':LDA38m'),'');
		link.title = 'Email ' + orginal_link_text;
}

