(function($){
	CBSCParseTweets = function(elem, data){
		var make_links = function(textData){
			var regExp = /(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig;
			textData = textData.replace(regExp,'<a href="$1" class="tweet_link">$1</a>'); 
			regExp = /[\@]+([A-Za-z0-9-_]+)/ig;
			textData = textData.replace(regExp,'<a href="http://twitter.com/$1" class="tweet_person">@$1</a>');
			regExp = /[\#]+([A-Za-z0-9-_]+)/ig;
			textData = textData.replace(regExp,'<a href="http://twitter.com/search?q=#$1" class="tweet_hashtag">#$1</a>'); 
			return textData;
		},
		relative_time = function(time_value) {
			var time_value_raw = time_value.split(' ');
			time_value_raw = time_value_raw[1]+', '+time_value_raw[2]+', '+time_value_raw[5]+', '+time_value_raw[3];
			var parsed_date = Date.parse(time_value_raw);
			var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
			var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
			delta = delta + (relative_to.getTimezoneOffset() * 60);
			if (delta < 60) {
				return 'less than a minute ago';
			} else if(delta < 120) {
				return 'about a minute ago';
			} else if(delta < (60*60)) {
				return 'about ' + (parseInt(delta / 60)) + ' minutes ago';
			} else if(delta < (120*60)) {
				return 'about an hour ago';
			} else if(delta < (24*60*60)) {
				return 'about ' + (parseInt(delta / 3600)) + ' hours ago';
			} else if(delta < (48*60*60)) {
				return '1 day ago';
			} else {
				return (parseInt(delta / 86400)) + ' days ago';
			}
		}
		if(data.length === 0){
			$(elem).append('<p>No tweets available</p>');
		}else{
			var tweets = '<ul class="tweets">', i;
			for(i=0; i<data.length; i++){
				tweets += '<li class="tweet_'+(i%2==0?'odd':'even')+(i===(data.length-1)?' bottom':'')+'">';
				tweets += '<span class="tweet_date"><p>';
				tweets += relative_time(data[i].created_at);
				tweets += '</p></span>';
				tweets += '<span class="tweet_content"><p>';
				tweets += make_links(data[i].text);
				tweets += '</p></span>';
				tweets += '</li>';
			}
			tweets += '</ul>';
			$(elem).html(
				$('<div />')
					.addClass('twitter_holder')
					.append(
						tweets
					)
					.append(
						$('<span />')
							.addClass('twitter_clearer')
					)
			);
		}
	}
}(jQuery));
