TwitterTickerBox = function (instance_name, data_source) {
	this.instance_name = instance_name;
	this.data_source = data_source;

	this.load = function () {
		AjaxUtils.loadJSON(this.data_source, {
			instance_name: this.instance_name,
			site: Globals.currentSite
		}, this.dataHandler, this);
	};

	this.dataHandler = function(data) {
		this.renderList(data.data);
	};
	
	this.renderList = function (list_data) {
		var target = $(".twitterTickerBoxContainer."+this.instance_name+" .twitterItems").eq(0);
		
		target.empty();
		var newHTML = "";
		for (var i=0; i<list_data.length; i++) {
			target.append(this.renderItem(list_data[i]));
		}
		
		
		
		if (list_data.length > 1) {
			ScrollableTeaserController.getInstance().registerScroller('.twitterTickerBoxContainer.'+this.instance_name, 1, {
				vertical: true,
				mousewheel: true,
				keyboard: false,
				circular: true
			}, {
				autoplay: true,
				steps: 1,
				interval: 4000
			});
		}
		
		$(".twitterTickerBoxContainer."+this.instance_name+" .tweetDate").timeago();
		
	};
	
	this.renderItem = function (list_item_data) {
		
		var tweetDate = new Date(list_item_data.created_at.replace(/^\w+ (\w+) (\d+) ([\d:]+) \+0000 (\d+)$/,"$1 $2 $4 $3 UTC"));

		var out = "";
		out = '<div class="twitterItem">';
		out+=	'<div class="tweetDate" title="'+tweetDate.getTime()+'"></div>';
		out+= 	'<div class="tweetText">'+StringUtils.wrapURLs(list_item_data.text)+'</div>';
		out+= '</div>';
		
		return out;
	};
};


