function linkify(text){return text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g,function(url){return'<a href="'+url+'">'+url+'</a>';}).replace(/\B@([_a-z0-9]+)/ig,function(reply){return reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';});};function parseTweets(tweets){var _r=[],username;for(var i=0;i<tweets.length;i++){username=tweets[i].user.screen_name;_r.push({text:linkify(tweets[i].text),permalink:'http://twitter.com/'+username+'/status/'+tweets[i].id,username:username,age:relative_time(tweets[i].created_at),userLink:"http://twitter.com/"+username});}
return _r;};function tweetHTML(tweet){var elm=$('<div class="tweet">');elm.append($('<p class="text">'+tweet.text+'</p>'));var permalink=$('<a class="permalink" href="'+tweet.permalink+'">'+tweet.age+'</a>');elm.append(permalink);return elm;};function tweetsLoaded(tweets){tweets=parseTweets(tweets);var sidebar=$('#twitter_container');var twitter=$('<div id="twitter"></div>');sidebar.append('<h2>Latest Tweets</h2>')
for(var i=0;i<tweets.length;i++){twitter.append(tweetHTML(tweets[i]));}
sidebar.append(twitter);}
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';}}
