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("@","");var output=u.link("http://twitter.com/"+username);return output.replace('href="','target="_blank" href="');});
};
String.prototype.linktag=function()
{
   return this.replace(/[#]+[A-Za-z0-9-_]+/,function(t){var tag=t.replace("#","%23");var output=t.link("http://search.twitter.com/search?q="+tag);return output.replace('href="','target="_blank" href="');});
};
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)
   {
	window.monitter['count-'+input]=0;
   }
   var url="http://search.twitter.com/search.json?q="+input+"&rpp="+rrp+"&since_id="+window.monitter['last_id'+input]+"&callback=?";
   $.getJSON(url,function(json)
   {
	$('div.tweet:gt('+max+')',elem).each(function(){$(this).fadeOut('slow')});
	jQuery(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));
			append='';
			minutes=thedate.getMinutes();
			if(minutes < 10) append='0';
			var thedatestr=thedate.getHours()+':'+append+minutes;
			var divstr='<div id="tw'+this.id+'" class="tweet"><p class="text">'+this.text.linkify().linkuser().linktag()+' / <a href="http://twitter.com/'+this.from_user+'" target="_blank">'+this.from_user+'</a>&nbsp;/&nbsp;'+thedatestr+'</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');
		}
	});
	fixBlogRows();

	input=escape(input);
	rrp=1;
	setTimeout(function(){fetch_tweets(elem)},8000);
    });
    return(false);
}
function startMonitter()
{
   window.monitter={};
   $('.monitter').each(function(e)
   {
	rrp=10;
	max=rrp;
	fetch_tweets(this);
	tweetHighlight();
   });
}