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){
		return u.link("http://twitter.com/"+u.replace("@",""));
	});
};
String.prototype.linktag=function(){
	return this.replace(/[]+[A-Za-z0-9-_]+/,function(t){
		return t;
	});
};
var showTweetLinks='none';
function fetch_tweets(elem, page){
	elem=$(elem);
	
	keyword=escape(elem.attr('title'));
	num=elem.attr('class').split(' ').slice(-1);
	var url="http://search.twitter.com/search.json?q="+keyword+"&rpp="+num+"&page="+page+"&callback=?";
	elem.html('<div class="loading">loading tweets</div>');
	$.getJSON(url,function(json){
	   elem.html(' ');
		$(json.results).each(function(){
			var tTime=new Date(Date.parse(this.created_at));
			var cTime=new Date();
			var sinceMin=Math.round((cTime-tTime)/60000);
			if(sinceMin==0){
				var sinceSec=Math.round((cTime-tTime)/1000);
				if(sinceSec<10){
					var since='less than 10 seconds ago';
				}
				else if(sinceSec<20){
					var since='less than 20 seconds ago';
				}
				else{
					var since='half a minute ago';
				}
			}
			else if(sinceMin==1){
				var sinceSec=Math.round((cTime-tTime)/1000);
				if(sinceSec==30){
					var since='half a minute ago';
				}
				else if(sinceSec<60){
					var since='less than a minute ago';
				}
				else{
					var since='1 minute ago';
				}
			}
			else if(sinceMin<45){
				var since=sinceMin+' minutes ago';
			}
			else if(sinceMin>44&&sinceMin<60){
				var since='about 1 hour ago';
			}
			else if(sinceMin<1440){
				var sinceHr=Math.round(sinceMin/60);
				if(sinceHr==1){
					var since='about 1 hour ago';
				}
				else{
					var since='about '+sinceHr+' hours ago';
				}
			}
			else if(sinceMin>1439&&sinceMin<2880){
				var since='1 day ago';
			}
			else{
				var sinceDay=Math.round(sinceMin/1440);
				var since=sinceDay+' days ago';
			}
			var tweetBy='<a class="tweet-user" target="_blank" href="http://twitter.com/'+this.from_user+'">@'+this.from_user+'</a> <span class="tweet-time">'+since+'</span><br />';
			if(showTweetLinks.indexOf('reply')!=-1){
				tweetBy=tweetBy+'<a class="tweet-reply" target="_blank" href="http://twitter.com/?status=@'+this.from_user+'%20&in_reply_to_status_id='+this.id+'&in_reply_to='+this.from_user+'">Reply</a>';
			}
			if(showTweetLinks.indexOf('view')!=-1){
				tweetBy=tweetBy+' &middot; <a class="tweet-view" target="_blank" href="http://twitter.com/'+this.from_user+'/statuses/'+this.id+'">View Tweet</a>';
			}
			if(showTweetLinks.indexOf('rt')!=-1){
				tweetBy=tweetBy+' &middot; <a class="tweet-rt" target="_blank" href="http://twitter.com/?status=RT%20@'+this.from_user+'%20'+escape(this.text.replace(/&quot;/g,'"'))+'&in_reply_to_status_id='+this.id+'&in_reply_to='+this.from_user+'">RT</a>';
			}
			var tweet='<div class="tweet">';
			
			/*var tweetmeme_url = 'http://twitter.com/'+this.from_user+'/statuses/'+this.id;
			var tweetmeme_style = 'compact';
			var tweetmeme_source = this.from_user;
			
			(function(){var _url=window.location.href;var _url=_url.replace(/((?:\?|&)?fbc_receiver=.+)?(?:#.*)?$/,"");var url=escape((typeof tweetmeme_url=="string")?tweetmeme_url:((typeof TWEETMEME_URL=="string")?TWEETMEME_URL:_url)).replace(/\+/g,"%2b");var source=(typeof tweetmeme_source=="string")?escape(tweetmeme_source):((typeof TWEETMEME_SOURCE=="string")?escape(TWEETMEME_SOURCE):false);var style=(typeof tweetmeme_style=="string")?escape(tweetmeme_style):((typeof TWEETMEME_STYLE=="string")?escape(TWEETMEME_STYLE):"normal");var service=(typeof tweetmeme_service=="string")?escape(tweetmeme_service):((typeof TWEETMEME_SERIVE=="string")?escape(TWEETMEME_SERVICE):false);var service_api=(typeof tweetmeme_service_api=="string")?escape(tweetmeme_service_api):((typeof TWEETMEME_SERIVE_API=="string")?escape(TWEETMEME_SERVICE_API):false);var alias=(typeof tweetmeme_alias=="string")?escape(tweetmeme_alias):((typeof TWEETMEME_ALIAS=="string")?escape(TWEETMEME_ALIAS):false);var src="http://api.tweetmeme.com/button.js";switch(style){case"compact":var h=20;var w=90;break;case"rednose":var h=61;var w=50;break;default:var h=61;var w=50;break}src+="?url="+url;src+="&style="+style;if(source!=false){src+="&source="+source}if(service){src+="&service="+service}if(service_api){src+="&service_api="+service_api}if(alias){src+="&alias="+alias}iframe ='<iframe src="'+src+'" height="'+h+'" width="'+w+'" frameborder="0" scrolling="no"></iframe>';tweetmeme_url=null;TWEETMEME_URL=null;tweetmeme_source=null;TWEETMEME_SOURCE=null;tweetmeme_style=null;TWEETMEME_STYLE=null})();
			
			tweet += '<div class="retweet">'+iframe+'</div>';*/
			
			tweet +='<div class="tweet-left">';
			
			if (showTweetLinks.indexOf('img') != -1){
			tweet += '<a target="_blank" href="http://twitter.com/'+this.from_user+'"><img width="48" height="48" src="'+this.profile_image_url+'" /></a>';
			}
			
			//tweet += '<a class="tweet-user" target="_blank" href="http://twitter.com/'+this.from_user+'">@'+this.from_user+'</a>';
			
			tweet += '</div><div class="tweet-right"><p class="text">'+this.text.linkify().linkuser().linktag().replace(/<a/g,'<a target="_blank"')+'</p><p class="credentials">'+tweetBy+'</p></div><br style="clear: both;" /></div>';
			elem.append(tweet);
			
			

			
	   });
	});
	
	$("a.nextPage").click(function(){
	   showTweetLinks=showTweetLinks.toLowerCase();
	   if(showTweetLinks.indexOf('all')!=-1){
		showTweetLinks='reply,view,rt,img';
	   }
	   $('.twitStream').each(function(){
		  fetch_tweets(this, page + 1);
	   });
	  return false;
	})
	
	if (page > 1){
	   $("a.prevPage").css("display", "block");
	   $("a.prevPage").click(function(){
    	   showTweetLinks=showTweetLinks.toLowerCase();
	      if(showTweetLinks.indexOf('all')!=-1){
		      showTweetLinks='reply,view,rt,img';
    	   }
	      $('.twitStream').each(function(){
		    fetch_tweets(this, page - 1);
    	   });
	     return false;
        })
	}else{
	   $("a.prevPage").css("display", "none");
    }
	
	
	
	return(false);
}
$(function(){
	showTweetLinks=showTweetLinks.toLowerCase();
	if(showTweetLinks.indexOf('all')!=-1){
		showTweetLinks='reply,view,rt,img';
	}
	$('.twitStream').each(function(){
		fetch_tweets(this, 1);
	});
});