/**
 * By Daniel Camargo (http://twitter.com/pererinha | http://danielcamargo.com.br/)
 * Copyright (c) 2009
 * Released under the MIT license (MIT-LICENSE.txt)
 * 
 * First, make sure you're using jQuery http://www.jquery.com/
 *
 */

function createSearchURL(){
	return 'http://twitter.com/status/user_timeline/' + twitterConfig.username + '.json?count=' + twitterConfig.results + '&callback=parseJson';
}

$(document).ready(function(){
	if(typeof(twitterConfig) != "undefined"){ 
		var script = $('<script></script>');
		script.attr('src',createSearchURL());
		$('head').append(script);
	}
});

function parseJson(oJson){
	var elUl = $('<ul></ul>');
	elUl.attr('id',twitterConfig.listID);
	for(twitter in oJson){
		var elLi = $('<li></li>');
		elLi.html(oJson[twitter].text.parseURL().parseUsername().parseHashtag());
		elUl.append(elLi);
		elUl.append('<div class="sidebar_separating"></div>');
	}
	$('#' + twitterConfig.listID).html(elUl.html());
}

String.prototype.parseURL = function() {
	return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/, function(url) {
		return url.link(url);
	});
};

String.prototype.parseUsername = function() {
	return this.replace(/[@]+[A-Za-z0-9-_]+/, function(u) {
		var username = u.replace("@","")
		return u.link("http://twitter.com/"+username);
	});
};

String.prototype.parseHashtag = function() {
	return this.replace(/[#]+[A-Za-z0-9-_]+/, function(t) {
		var tag = t.replace("#","%23")
		return t.link("http://search.twitter.com/search?q="+tag);
	});
};

