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;;}
	var url="http://search.twitter.com/search.json?q="+input+"&lang="+lang+"&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 cleanminutes = thedate.getMinutes(); if(thedate.getMinutes() < 10){ cleanminutes='0'+thedate.getMinutes(); }
				var thedatestr=thedate.getHours()+':'+cleanminutes;
				var divstr='<div id="tw'+this.id+'" class="tweet"><img src="'+this.profile_image_url+'" /><div class="tweet-time">'+thedatestr+'</div><p class="text"><b><a href="http://twitter.com/'+this.from_user+'" target="_blank">'+this.from_user+'</a></b><br />'+this.text.linkify().linkuser().linktag()+'</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=10;
		setTimeout(function(){fetch_tweets(elem)},20000);
		});
	return(false);
	}
	
$(document).ready(function(){window.monitter={};$('.monitter').each(function(e){rrp=20;fetch_tweets(this);});});