var twitterPortletContent = '<center><img src="/html/images/layout/ajax-loader.gif"></center>';

var twitterApp = new function() {
	// with changes from here: http://javascript.internet.com/math-related/date-difference.html
	this.getTimeDiffInfo = function(start, end) {
		var diffParts = {};
		diffParts["diff"] = Math.floor(Math.abs(start.getTime() - end.getTime()) / 1000);
		
		var tmpDiff = diffParts["diff"];
		diffParts["weeks"] = Math.floor(tmpDiff / (60 * 60 * 24 * 7));
		tmpDiff -= diffParts["weeks"] * (60 * 60 * 24 * 7);
		
		diffParts["days"] = Math.floor(tmpDiff / (60 * 60 * 24)); 
		tmpDiff -= diffParts["days"] * (60 * 60 * 24);

		diffParts["hours"] = Math.floor(tmpDiff / (60 * 60)); 
		tmpDiff -= diffParts["hours"] * (60 * 60);

		diffParts["minutes"] = Math.floor(tmpDiff / (60)); 
		tmpDiff -= diffParts["minutes"] * (60);

		diffParts["seconds"] = tmpDiff;
		
		return diffParts;
	},
	
	this.showLastTwitts = function (_username, _count) {
		if (_count < 1 || _count > 20) {
			_count = 1;
		}
		
		document.write('<div class="twitterPortlet" id="twitterPortlet">' + twitterPortletContent + '</div>');
		// dirty failure handler, because cross domain JSON-NP requests have no failure function
		setTimeout(function() {
			if ($("#twitterPortlet").html().toLowerCase() == twitterPortletContent.toLowerCase()) {
				$("#twitterPortlet").html('<div style="color: red;">Error: Twitter Server not accessible</div>');
			}
		}, 5000); 
		
		$.getJSON("http://twitter.com/statuses/user_timeline/" + _username + ".json?callback=?",
			function(data){
				var twitterHTML = "";
				$.each(data, function(i, item){
					var beforeTime = "";
					var timeDiff = twitterApp.getTimeDiffInfo (new Date(item.created_at), new Date());
					$.each(timeDiff, function(name, item){
						if (item > 0 && name != "diff") {
							beforeTime = item + " " + name;
							return false;
						}
					});
					
					var text = item.text.replace(/(https*\:\/\/\S*)/g, "<a href=\"$1\">$1<\/a>");
					twitterHTML += "<div class='twitt'><p>" + text + "</p><div class='time'>about " + beforeTime + " ago from " + item.source + "</div></div>";
					
					if (--_count == 0) {
						return false;
					}
				});
				
				var profileUrl = "http://twitter.com/" + _username;
				$("#twitterPortlet").hide().html("").append(twitterHTML).append("<div style='text-align: right'><a style='font-weight: bold' class='arrow' href='" + profileUrl + "'>Follow us on </a>" + 
											"<a href='" + profileUrl + "' style='vertical-align: middle;'><img src='http://twitter.com/images/twitter_logo_header.png' width='60' /></a></div>").slideDown("slow");
				addOverlayToExternalLinks("#twitterPortlet");
			}
		);
	}
}