(function($) {
	/*
		jquery.twitter.js v1.0
		Last updated: 26 October 2008

		Created by Damien du Toit
		http://coda.co.za/blog/2008/10/26/jquery-plugin-for-twitter

		Licensed under a Creative Commons Attribution-Non-Commercial 3.0 Unported License
		http://creativecommons.org/licenses/by-nc/3.0/
	*/

	$.fn.getTwitter = function(options) {
		var o = $.extend({}, $.fn.getTwitter.defaults, options);


		// show container element
		//$(this).show();

		$.getScript("http://api.twitter.com/1/statuses/user_timeline/" + o.userName + ".json?callback=twitterCallback2&include_rts=1&count=" + o.numTweets, function () {
			// remove preLoader from container element
			//$(pl).remove();
			/*
			// show twitter list
			if (o.slideIn) {
				$("ul#twitter_update_list").slideDown(1000);
			}
			else {
				$("ul#twitter_update_list").show();
			}

			// give first list item a special class
			$("ul#twitter_update_list li:first").addClass("firstTweet");

			// give last list item a special class
			$("ul#twitter_update_list li:last").addClass("lastTweet");
			*/
		});
		
		
	};
	

	// plugin defaults
	$.fn.getTwitter.defaults = {
		userName: null,
		numTweets: 5,
		preloaderId: "preloader",
		loaderText: "Loading Tweets...",
		slideIn: false,
		showHeading: true,
		headingText: "Latest Tweets",
		showProfileLink: true
	};
})(jQuery);


function twitterCallback2(twitters) {
	  var statusHTML = [];
	  for (var i=0; i<twitters.length; i++){
	    var username = twitters[i].user.screen_name;
	    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
	      return '<a href="'+url+'" target="_blank" >'+url+'</a>';
	    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
	      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'" target="_blank" >'+reply.substring(1)+'</a>';
	    });
	    
	    if (i == 0)
	    {
	    	div_class = 'col2 first';
	    }
	    else
	    {
	    	div_class = 'col2 last';
	    }
	    //statusHTML.push('<li class="' + div_class + '"><span class="item">'+status+'</span> <span class="date_diff"><a href="http://twitter.com/'+username+'/statuses/'+twitters[i].id+'">'+relative_time(twitters[i].created_at)+'</a></span></li>');
	    statusHTML.push('<li class="' + div_class + '"><span class="item">'+status+'</span> <span class="date_diff">'+relative_time(twitters[i].created_at)+'</span></li>');
	  }
	  /*<li>
		<span class="item">RT <a href="http://www.twitter.com/LiquorlandNZ" target="_blank">@LiquorlandNZ</a>: Win a $1,500 Gift Card, 1,000 Fly Buys Pts, $200 Pizza Hut Voucher, $150 New World Gift Card &amp; more! liquorlandparty.co.nz</span>
		<span class="date_diff">23 hrs ago</span>
	</li>
		*/
	  document.getElementById('twitter').innerHTML = statusHTML.join('');
	}

	function relative_time(time_value) {
	  var values = time_value.split(" ");
	  time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
	  var parsed_date = Date.parse(time_value);
	  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 (parseInt(delta / 60)).toString() + ' minutes ago';
	  } else if(delta < (120*60)) {
	    return 'about an hour ago';
	  } else if(delta < (24*60*60)) {
	    return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
	  } else if(delta < (48*60*60)) {
	    return '1 day ago';
	  } else {
	    return (parseInt(delta / 86400)).toString() + ' days ago';
	  }
	}
