
(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;
}

if (feeds[0] == undefined)
{
html = "<p>This feed could not be found.<br\/> Please check the feed name is valid<\/p>";
$(e).html(html);

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=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">'+'<ul>';

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+='<li class="twitterRow '+row+'">';

if(options.tweeticon)
{
var icon=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>'
}

if(options.tweettime)
{
var lapsedTime=getLapsedTime(tweet.created_at);
html+='<div class="tweetTime">'+lapsedTime+'</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+='<p>'+text+'</p>'

html+='</li>';if(row=='odd')
{
row='even';
}
else
{
row='odd';
}
}

html+='</ul>'+'</div>'
$(e).html(html);
}

;
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);

