
(function($) {
	$.fn.twitterfeed = function(username, options) {
		var defaults = { limit: 10, header: true, tweeticon: true, tweetname: true, tweettime: true };
		var options = $.extend(defaults, options);
		return this.each(function(i, e) {
			var $e = $(e);
			if (!$e.hasClass('twitterFeed')) $e.addClass('twitterFeed');
			if (username == null) return false;
			var url = 'http://twitter.com/statuses/user_timeline/' + username + '.json';
			var params = {};
			params.count = options.limit;
			jQuery.ajax({ url: url, data: params, dataType: 'jsonp', success: function(o) { _callback(e, o, options); } });
		});
	};

	var _callback = function(e, feeds, options) {
		if (!feeds) { return false; }
		var html = ''; var row = 'odd'; if (options.header)
			var name = feeds[0].user.name;
		var screenname = feeds[0].user.screen_name;
		var icon = '/Common/Twitter/twitter_icon.png'; //feeds[0].user.profile_image_url; 
		var link = '<a href="http://twitter.com/' + screenname + '/" title="Visit ' + name + ' on Twitter">'; html += '<div class="twitterHeader">' +
link + '<img src="' + icon + '" alt="' + name + '" /></a>' + '<span>' + link + name + '</a></span>' + '</div>'; html += '<div class="twitterBody">'; for (var i = 0; i < feeds.length; i++) {
			var tweet = feeds[i]; var link = '<a href="http://twitter.com/' + tweet.user.screen_name + '/" title="Visit ' + tweet.user.name + ' on Twitter">'; html += '<div class="twitterRow ' + row + '">';

			if (options.tweeticon) {
				var icon = '/Common/Twitter/twitter_icon.png'; //tweet.user.profile_image_url; 
				html += link + '<img src="' + icon + '" alt="' + name + '" /></a>';
			}
			if (options.tweetname) {
				var name = tweet.user.name; html += '<div class="tweetName">' + link + name + '</a></div>'
			}
			
			var text = tweet.text.replace(/(https?:\/\/[-_.!~*\'()a-zA-Z0-9;\/?:\@&=+\$,%#]+)/, function(u) { var shortUrl = (u.length > 30) ? u.substr(0, 30) + '...' : u; return '<a href="' + u + '" title="Click to view this link">' + shortUrl + '</a>'; }).replace(/@([a-zA-Z0-9_]+)/g, '@<a href="http://twitter.com/$1" title="Click to view $1 on Twitter">$1</a>').replace(/(?:^|\s)#([^\s\.\+:!]+)/g, function(a, u) { return ' <a href="http://twitter.com/search?q=' + encodeURIComponent(u) + '" title="Click to view this on Twitter">#' + u + '</a>'; }); html += text
			
			if (options.tweettime) {
				var lapsedTime = getLapsedTime(tweet.created_at);
				var createdTime = getCreatedTime(tweet.created_at);
				html += '<br /><span class="tweetTime">' + createdTime /*lapsedTime*/ + '</span>';
			}
			
			html += '</div>'; if (row == 'odd') { row = 'even'; } else { row = 'odd'; }
		}
		html += '<a href="http://twitter.com/vensters_vo" target="_blank"><img src="/Common/Twitter/twitter_follow.png" align="right" style="padding-bottom: 10px; padding-right: 10px; border: 0px;" /></a>'
		html += '</div>'
		$(e).html(html);
	};
	function getCreatedTime(strDate) {
		strDate = Date.parse(strDate.replace(/^([a-z]{3})( [a-z]{3} \d\d?)(.*)( \d{4})$/i, '$1,$2$4$3')); var todayDate = new Date(); var tweetDate = new Date(strDate)
		return tweetDate.format("d-M-yyyy HH:mm");
	}
	function getLapsedTime(strDate) {
		strDate = Date.parse(strDate.replace(/^([a-z]{3})( [a-z]{3} \d\d?)(.*)( \d{4})$/i, '$1,$2$4$3')); var todayDate = new Date(); var tweetDate = new Date(strDate)
		var lapsedTime = Math.round((todayDate.getTime() - tweetDate.getTime()) / 1000)
		if (lapsedTime < 60) { return '< 1m'; } else if (lapsedTime < (60 * 60)) { return Math.round(lapsedTime / 60) + 'm'; } else if (lapsedTime < (24 * 60 * 60)) { return Math.round(lapsedTime / 3600) + 'h'; } else if (lapsedTime < (7 * 24 * 60 * 60)) { return Math.round(lapsedTime / 86400) + 'd'; } else { return Math.round(lapsedTime / 604800) + 'w'; }
	};
})(jQuery);