(function($){

jQuery.fn.reverse=Array.prototype.reverse;String.prototype.linkify=function()
{return this.replace(/[A-Za-z]+:\/\/[A-Za-z0-9-_]+\.[A-Za-z0-9-_:%&\?\/.=]+/g,function(m)
{return m.link(m);});};String.prototype.linkuser=function()
{return this.replace(/[@]+[A-Za-z0-9-_]+/g,function(u)
{var username=u.replace("@","")
return u.link("http://twitter.com/"+username);});};String.prototype.linktag=function()
{return this.replace(/[#]+[A-Za-z0-9-_]+/,function(t)
{var tag=t.replace("#","%23")
return t.link("http://search.twitter.com/search?q="+tag);});};function fetch_tweets(elem)
{elem=$(elem);input=elem.attr('title');lang=elem.attr('lang');if(input!=window.monitter['text-'+input])
{window.monitter['last_id'+input]=0;window.monitter['text-'+input]=input;window.monitter['count-'+input]=12;;}
if(window.monitter['count-'+input]>10)
{elem.prepend('<div class="tweet"><p class="text"><img src="http://monitter.com/widget/favicon.gif" align="absmiddle" />&nbsp;&nbsp;real time twitter by: <a href="http://monitter.com" target="_blank">monitter.com</a></p></div>');window.monitter['count-'+input]=0;}
var url="http://search.twitter.com/search.json?q=vegas&rpp="+rrp+"&since_id="+window.monitter['last_id'+input]+"&callback=?";$.getJSON(url,function(json)
{$('div.tweet:gt('+window.monitter['limit']+')',elem).each(function(){$(this).fadeOut('slow')});$(json.results).reverse().each(function()
{if($('#tw'+this.id,elem).length==0)
{window.monitter['count-'+input]++;var thedate=new Date(Date.parse(this.created_at));var thedatestr=thedate.getHours()+':'+thedate.getMinutes();var divstr='<div id="tw'+this.id+'" class="tweet"><img width="48" height="48" src="'+this.profile_image_url+'" ><p class="text">'+this.text.linkify().linkuser().linktag()+'<hr style="color:#ccc;background-color:#999;height:1px;border:none;" /><p class="text">&nbsp;<b>From:</b> <a target="_blank" href="http://twitter.com/'+this.from_user+'" target="_blank">@'+this.from_user+'</a>&nbsp;&nbsp;<b>Sent:</b><a href="http://twitter.com/'+this.from_user+'/status/'+this.id+'" target="_blank"> ' + relative_time(this.created_at) + '</a>&nbsp;&nbsp;<a href="http://twitter.com/home?status=@'+this.from_user+'+(via+http%3A%2F%2Ftweetvegas.com)%3A+" target="_blank"><b>(Reply)</b></a></p></div>';window.monitter['last_id'+input]=this.id;elem.prepend(divstr);$('#tw'+this.id,elem).hide();$('#tw'+this.id+' img',elem).hide();$('#tw'+this.id+' img',elem).fadeIn(4000);$('#tw'+this.id,elem).fadeIn('slow');}});input=escape(input);rrp=1;setTimeout(function(){fetch_tweets(elem)},2000);});return(false);}
$(document).ready(function(){window.monitter={};$('.monitter').each(function(e){rrp=50;fetch_tweets(this);});});

function relative_time(time_value) {
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);
if(delta < 60) {
return 'less than a minute ago';
} else if(delta < 120) {
return 'about a minute ago';
} else if(delta < (45*60)) {
return (parseInt(delta / 60)).toString() + ' minutes ago';
} else if(delta < (90*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';
}
}


})(jQuery);