
var tweets=new Array();
var tweetusers=new Array();
var tweetcount=0;
var _twpos=0;

var accountsLoaded	= 0;

//es: getTweets(numtweets=5,'camuc1','SennepLND','anotherUsername',...)
// will store in the array tweets 5 tweets ordered from the most recent

String.prototype.linkify_tweet = function(_isevent) {
   var tweet = this.replace(/(^|\s)@(\w+)/g, '$1<a href="http://www.twitter.com/$2" target="_blank">@$2</a>');
   if (!_isevent) {
		return tweet.replace(/(^|\s)#(\w+)/g, '$1<a href="http://search.twitter.com/search?q=%23$2" target="_blank">#$2</a>');
	}
   else {
		//return tweet.replace(/(^|\s)#(\w+)/g, '$2');
		var hashtag		= tweet.replace(/(^|\s)#(\w+)/g, '$1<a href="http://search.twitter.com/search?q=%23$2" target="_blank">#$2</a>');
		hashtag=hashtag.replace('<a href="http://search.twitter.com/search?q=%23fbib" target="_blank">','<a class="red" href="http://search.twitter.com/search?q=%23fbib" target="_blank">');
		hashtag=hashtag.replace('<a href="http://search.twitter.com/search?q=%23Fbib" target="_blank">','<a class="red" href="http://search.twitter.com/search?q=%23fbib" target="_blank">');
		hashtag=hashtag.replace('<a href="http://search.twitter.com/search?q=%23FBIB" target="_blank">','<a class="red" href="http://search.twitter.com/search?q=%23fbib" target="_blank">');
		return hashtag;

	}
};


function getTweets()
{
	tweetusers = Array.prototype.slice.call(arguments);  
	tweetcount = tweetusers.shift();	
	loadTweets();
}

function loadTweets()
{
		if(_twpos<tweetusers.length)
		{		
			//var strreq="http://twitter.com/statuses/user_timeline/"+tweetusers[_twpos]+".json?count="+(tweetcount+1);
			var strreq="./cache/tweetgateway.php?u="+tweetusers[_twpos]+"&c="+(tweetcount+1);
			var req = new Request.JSON({
				method: 'get',
				cache: false,
				url: strreq,
				data: {},
				onRequest: function() { },
				onCancel: function() { _twpos++;	loadTweets(); },
				onTimeout: function() { _twpos++; loadTweets(); },
				onComplete: function(data) {
					for(var i=0;i<data.length;i++)
					tweets.push(data[i]);
					_twpos++;
					loadTweets();
				}
			}).send();
		}
		else
		{
			sortTweets();
		}
}

function sortTweets()
{
	d=new Date.parse(tweets[0]['created_at']);
	tweets.sort(function(a, b){
		var dateA	= new Date.parse(a.created_at),
			dateB	= new Date.parse(b.created_at);
		return dateB - dateA; //sort by date ascending
	});
	var str='';
	var replacePattern = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;

	for(var i=0;i<tweetcount;i++)	{
		str+='<li';
		if(i==0) str+=' class="nomargin" ';
		var tweettext=tweets[i].text.replace(replacePattern,'<a href="$1" target="_blank">$1</a>');
		tweettext=tweettext.linkify_tweet();
		str+='><h3><a target="_blank" href="http://twitter.com/'+tweets[i].user.screen_name+'">@'+tweets[i].user.screen_name+'</a></h3><p>'+tweettext+'</p><p><a href="http://twitter.com/#!/'+tweets[i].user.screen_name+'/status/'+tweets[i].id_str+'" class="tweetTime" target="_blank">'+twitterDate(tweets[i].created_at)+'</a></p></li>';	
	}
	$$('.tweets').set('html',str);
	
	//$$('.hometweets').set('html', '');
	//$$('.hometweets').getNext('.category').set('text', 'TWITTER');
	
	$$('.tweets').getPrevious('.category').set('text', 'TWITTER');
	$$('.tweets').setStyle('opacity', 1);
	
	if (isIE) {
		setIEHovers();
	}
}

function oneAccTweets(account,divdest,amount)
{
//	var strreq="http://twitter.com/statuses/user_timeline/"+account+".json?count="+(amount+1);
	var d = new Date() ;
	var strreq="./cache/tweetgateway.php?u="+account+"&c="+(amount+1)+'&d='+d.getTime();
	 var req = new Request.JSON({
    method: 'get',
    url: strreq,
 	 cache: false,
    data: {},
  	  onRequest: function() { }, 
	  onError: function() {}, 
     onComplete: function(datatweets) { 
			var str='';
			var replacePattern = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
			for(var i=0;(i<datatweets.length)&&(i<amount);i++) {
				var tweettext=datatweets[i].text.replace(replacePattern,'<a href="$1" target="_blank">$1</a>');
				tweettext=tweettext.linkify_tweet();
				str+='<li';
				if(i==0) str+=' class="nomargin"><h3><a target="_blank" href="http://twitter.com/'+datatweets[i].user.screen_name+'">@'+datatweets[i].user.screen_name+'</a></h3>';
				else str+='>';
				str+='<p>'+tweettext+'</p><p><a href="http://twitter.com/#!/'+datatweets[i].user.screen_name+'/status/'+datatweets[i].id_str+'" class="tweetTime" target="_blank">'+twitterDate(datatweets[i].created_at)+'</a></p></li>';	
			}
			$$('#'+divdest+' ul').set('html',str);
			$$('#'+divdest+' ul').setStyle('opacity', 1);
			
			accountsLoaded++
			if (accountsLoaded == 5 && isIE) {
				setIEHovers();
			}
		}
   }).send(); 

}

// if we want to use this function for other things, change the static link: http://twitter.com/#!/search/realtime/%23fbib
function tweetSearch(srcterm,amount)
{
	//srcterm must include the #
	 srcterm=srcterm.toLowerCase();
    var strreq="http://search.twitter.com/search.json?q="+encodeURIComponent(srcterm);
	 var req = new Request.JSONP({
    method: 'get',
  	  onRequest: function() { },
    url: strreq,
    data: {},
     onComplete: function(data) { 
			datatweets=data.results;
			var str='';
			var replacePattern = /(\b(https?|ftp):\/\/[-A-Z0-9+&@#\/%?=~_|!:,.;]*[-A-Z0-9+&@#\/%=~_|])/gim;
			for(var i=0;(i<datatweets.length) && (i<amount);i++)
				{
				var tweettext=datatweets[i].text.replace(replacePattern,'<a href="$1" target="_blank">$1</a>');
				tweettext=tweettext.linkify_tweet(true);
				var low=datatweets[i].text.toLowerCase();
				var pos=low.search(srcterm);
				var out=datatweets[i].text.substring(0,pos)+'<span class="colordefault">'+datatweets[i].text.substring(pos,pos+5)+'</span>'+datatweets[i].text.substring(pos+5,datatweets[i].text.length);
				datatweets[i].text=out;
				str+='<li';
				if(i==0) str+=' class="nomargin"><h3><a class="red" href="http://twitter.com/#!/search/realtime/%23fbib" target="_blank">'+srcterm.toUpperCase()+'</a></h3';
				str+='><h3><a target="_blank" href="http://twitter.com/'+datatweets[i].from_user+'">@'+datatweets[i].from_user+'</a></h3><p>'+tweettext+'</p><p><a href="http://twitter.com/#!/'+datatweets[i].from_user+'/status/'+datatweets[i].id_str+'" class="tweetTime" target="_blank">'+twitterDate(datatweets[i].created_at)+'</a></p></li>';	
				}
			$$('.tweets').set('html',str);
			$$('.tweets').setStyle('opacity', 1);
			
			if (isIE) {
				setIEHovers();
			}
		}
   }).send();
}


function setIEHovers() {
	$$('.tweets a').addEvent('mouseover', function() {
		this.setStyle('color', DEFAULT_COLOR);
	});
	$$('.tweets h3 a').addEvent('mouseout', function() {
		if (isHome) this.setStyle('color', '#444');
		else		this.setStyle('color', DEFAULT_COLOR);
	});
	$$('.tweets p a').addEvent('mouseout', function() {
		if (this.hasClass('tweetTime')) this.setStyle('color', '#444');
		else this.setStyle('color', '#c8c8c8');
	});
}
