jQuery.fn.replaceURLsWithHTMLLinks = function() {
	// Remove existing links (to avoid weird nesting when adding later)
	var html = this.html();
	var exp = /<a\s.*href=['"](\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])['"].*>.*<\/a>/ig;
	var htmlMinusLinks = html.replace(exp,"$1");
	// Then add links
	exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
	var htmlWithLinks = htmlMinusLinks.replace(exp,"<a href='$1' rel='nofollow' target='_blank' title='$1'>(external link)</a>");
	this.html( htmlWithLinks);
	return this;
}
jQuery.fn.replaceURLsWithHTMLLinksRaw = function() {
	// Remove existing links (to avoid weird nesting when adding later)
	var html = this.html();
	var exp = /<a\s.*href=['"](\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])['"].*>.*<\/a>/ig;
	var htmlMinusLinks = html.replace(exp,"$1");
	// Then add links
	exp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
	var htmlWithLinks = htmlMinusLinks.replace(exp,"<a href='$1' rel='nofollow' target='_blank' title='$1'>$1</a>");
	this.html( htmlWithLinks);
	return this;
}
