/*
 * tweetable 1.2 - jQuery twitter feed generator plugin
 *
 * Copyright (c) 2009 Philip Beel (http://www.theodin.co.uk/)
 * Dual licensed under the MIT (http://www.opensource.org/licenses/mit-license.php) 
 * and GPL (http://www.opensource.org/licenses/gpl-license.php) licenses.
 *
 * Revision: $Id: jquery.tweetable.js 2009-08-20 $ 
 *
 */


/*

	Matt Brewer
	www.macfanatic.net
	2009-09-12

	Made changes:
	 	* Support "prettyTime" option for creating a nicer timestamp than the raw XML version of time
		* Proper HTML, list items use id instead of class for uniqueness. All have class 'tweet_content' now
		* Links inside tweets open in new window

*/

(function($) { 
	
	$.fn.tweetable = function(options) {
		
		var defaults = { limit:5, username:'philipbeel', time:false, prettyTime:false };
		var options = $.extend(defaults, options);
		
		return this.each(function(options) { 
		
			var act = $(this);
			var api = "http://twitter.com/statuses/user_timeline/";
			var count = "?count=";$.getJSON(api+defaults.username+".json"+count+defaults.limit+"&callback=?", act, function(data) { 
				$.each(data, function(i,item) { 
					
					if ( i == 0 ) {
						$(act).prepend('<ul class="tweetList"><li id="tweet_content_'+i+'" class="tweet_content">');
					} else {
						$('.tweetList').append('<li id="tweet_content_'+i+'" class="tweet_content">');
					}
					
					$('#tweet_content_'+i+'').append('<span class="tweet_link_'+i+'">'+item.text.replace(/#(.*?)(\s|$)/g,'<span class="hash">#$1 </span>').replace(/(\b(https?|ftp|file):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/ig,'<a href="$&" target="_blank">$&</a> ').replace(/@(.*?)(\s|\(|\)|$)/g,'<a href="http://twitter.com/$1" target="_blank">@$1 </a>$2'));
					
					if ( defaults.time ) {
						
						var timestamp = item.created_at.substr(0,20);
						if ( defaults.prettyTime ) {
						
							var date = timestamp.substring(0,timestamp.length-10);
							var time = timestamp.substring(timestamp.length-9,timestamp.length-4);
							if ( time.substr(0,2) < 12 ) { 
								if ( time.substr(0,2) < 10 ) {
									time = time.substr(1);
								}
								time += ' AM';
							} else {
								if ( time.substr(0,2) > 12 ) {
									time = time.substr(0,2)-12+time.substr(2);
								}
								time += ' PM';
							}
							
							timestamp = date+' @'+time;
							
						}  
						
						$('#tweet_content_'+i).append('<small> '+timestamp+'</small>');
						
					}
				});
			});
			
		});
		
	}
	
})(jQuery);