/* Filters */

angular.filter('twinky', function(input){
	function parseUrl(str){
		return str.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&~\?\/.=]+/g, function(url) {
			return url.link(url);
		});
	}
	function parseUsername(str){
		return str.replace(/[@]+[A-Za-z0-9-_]+/g, function(u){
			var username = u.replace('@','')
			return u.link('http://twitter.com/' + username);
		});
	}
	function parseHashtag(str){
		return str.replace(/[#]+[A-Za-z0-9-_]+/g, function(t) {
			var tag = t.replace('#','%23')
			return t.link('http://search.twitter.com/search?q=' + tag);
		});
	}
	
	return angular.filter.html(parseUsername(parseHashtag(parseUrl(input))));
});

