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');key=elem.attr('title');token=elem.attr('token'); from=elem.attr('rel');refresh=elem.attr('refresh');lang=elem.attr('lang');params=elem.attr('params'); 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;}
if(from != undefined) {
 var filter = ((params != '')?'&filter='+params:'');
$.getJSON("api/twitter/twitter_fetch_db.php?from="+from+"&format=json"+filter,function(json)
{	
	if(json.results != undefined && json.results.request== undefined) { 
		$('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 verified = (this.user != undefined && this.user.verified==true)?" verified":" ";
		var thedatestr= $.prettyDateEs(this.created_at); 
		var user = (this.user != undefined)?this.user.screen_name:this.from_user;
		var user_name = (this.user != undefined)?this.user.name:this.from_user;
		var url = (this.user != undefined)?this.user.url:"";
		var divstr='<div id="tw'+this.id+'" class="entry'+verified+'"><span class="thumbnail"><img width="48" height="48" src="'+((this.profile_image_url==undefined)?this.user.profile_image_url:this.profile_image_url)+'" ><br/></span><strong><a href="http://twitter.com/'+user+'" target="_blank">'+user_name+'</a></strong><span class="description"><span class="content"> '+((this.text==undefined)?"":this.text.linkify().linkuser().linktag())+'</span><span class="actions"><a title="reply to '+user+'" href="http://twitter.com/?status=@'+user+'%20&amp;in_reply_to_status_id='+this.id+'&amp;in_reply_to='+user+'" class="reply"> </a></span></span><span class="status"> &nbsp;<span class="date">'+thedatestr+'</span></span></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');
		$('#tw'+this.id+' > .description > .content > a[href^=http://twitgoo]').each(function(e){rewriteURL(this,divstr)}); 
		$('#tw'+this.id+' > .description > .content > a[href^=http://twitxr]').each(function(e){rewriteURL(this,divstr)});
		$('#tw'+this.id+' > .description > .content > a[href^=http://twitpic]').each(function(e){rewriteURL(this,divstr)}); 
		$('#tw'+this.id+' > .description > .content > a[href^=http://ustre]').each(function(e){rewriteURL(this,divstr)}); 
		}});
		input=escape(input);rrp=1;
	}
	if(json.followers != undefined && json.followers.request== undefined) { 
		$('div.tweet:gt('+window.monitter['limit']+')',elem).each(function(){
		$(this).fadeOut('slow')});
		$(json.followers).reverse().each(
		function(){
		if($('#tw'+this.id,elem).length==0){window.monitter['count-'+input]++; 
		var verified = (this.verified==true)?" verified":" ";
		var protected = (this.protected==true)?" protected":" ";
		var datestr = (this.status!=undefined)?$.prettyDateEs(this.status.created_at):"When?";
		var divstr='<div id="tw'+this.id+'" class="entry"><div class="thumbnail"><a href="http://twitter.com/'+this.screen_name+'" target="_blank" alt="'+this.name+'"><img width="48" height="48" src="'+this.profile_image_url+'"  ></a></div><a href="http://twitter.com/'+this.screen_name+'" target="_blank" alt="'+this.name+'"><strong>'+this.name+' </strong></a><span class="description">'+((this.status==undefined)?"":this.status.text.linkify().linkuser().linktag())+'</span><span class="status'+verified+protected+'"><span class="date">'+datestr+'</span><span class="friends">'+this.friends_count+'</span><span class="tweets"></span></span></div>';
		window.monitter['last_id'+input]=this.id;elem.prepend(divstr);
		}});
		input=escape(input);rrp=1;
	}
 
	}); 
  }
   
  return(false);
}

function refresh_tweets(counter,params){$('.box > .box-body').each(function(e){rrp=6;fetch_tweets(this);}); 

$.prettyDate = function(time){
	var date = new Date((time || "").replace(/-/g,"/")),
		diff = (((new Date()).getTime() - date.getTime()) / 1000),
		day_diff = Math.floor(diff / 86400);
			
	if ( isNaN(day_diff) || day_diff < 0 || day_diff >= 31 )
		return "When?";
			
	return day_diff == 0 && (
			diff < 30 && "about half a minute" ||
			diff < 60 && "less than a minute ago" ||
			diff < 120 && "1 minute ago" ||
			diff < 3600 && Math.floor( diff / 60 ) + " minutes ago" ||
			diff < 7200 && "1 hour ago" ||
			diff < 86400 && Math.floor( diff / 3600 ) + " hours ago") ||
		day_diff == 1 && "Yesterday" ||
		day_diff < 7 && day_diff + " days ago" ||
		day_diff < 31 && Math.ceil( day_diff / 7 ) + " weeks ago";
}

$.prettyDateEs = function(time){
	var date = new Date((time || "").replace(/-/g,"/")),
		diff = (((new Date()).getTime() - date.getTime()) / 1000),
		day_diff = Math.floor(diff / 86400);
			
	if ( isNaN(day_diff) || day_diff < 0 || day_diff >= 31 )
		return "hace una eternidad";
			
	return day_diff == 0 && (
			diff < 30 && "hace medio minuto" ||
			diff < 60 && "hace menos de 1 minuto" ||
			diff < 120 && "hace 1 minuto" ||
			diff < 3600 && "hace "+ Math.floor( diff / 60 ) + " minutos" ||
			diff < 7200 && "hace 1 hora" ||
			diff < 86400 && "hace " + Math.floor( diff / 3600 ) + " horas") ||
		day_diff == 1 && "Ayer" ||
		day_diff < 7 && "hace " + day_diff + " dias" ||
		day_diff < 31 &&  "hace " + Math.ceil( day_diff / 7 ) + " semanas";
}

 
};	

jQuery.fn.sort = function() {  
  return this.pushStack( [].sort.apply( this, arguments ), []);  
};  
  
function sortAscending(a,b){  
	 return a.innerHTML > b.innerHTML ? 1 : -1;  
}; 
