/*
 * TwitStream - A jQuery plugin for the Twitter Search API
 * Version 1.2
 * http://kjc-designs.com/TwitStream
 * Copyright (c) 2009 Noah Cooper
 * Licensed under the GNU General Public License <http://www.gnu.org/licenses/>
*/
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 showtype = 'none';
function fetch_tweets(elem) {
  elem = $(elem);
  var q = new Array();
  var qkeyword = "";
  var qFrom = "";
  var qHash = "";
  var showtype = "none";
  var number = "3";


  if (elem.attr('data-keyword') != undefined) {
    qKeyword = escape(elem.attr('data-keyword'));
    if (qKeyword != '') {
      q.push(qKeyword);
    }
  }

  if (elem.attr('data-from') != undefined) {
    qFrom = escape(elem.attr('data-from'));
    if (qFrom != '') {
      q.push("from:" + qFrom);
    }
  }

  if (elem.attr('data-hash') != undefined) {
    qHash = escape(elem.attr('data-hash'));
    if (qHash != '') {
      q.push("%23" + qHash);
    }
  }



  var query = "";
  $.each(q, function (key, value) {
    query += value;
    if (key + 1 < q.length) {
      query += "+";
    }
  });

  if (elem.attr('data-showtype') != undefined && elem.attr('data-showtype') != '') {
    showtype = elem.attr('data-showtype').toLowerCase();
  }

  if (elem.attr('data-number') != undefined) {
    number = escape(elem.attr('data-number'));
  }

  var url = "http://search.twitter.com/search.json?q=" + query + "&rpp=" + number + "&callback=?";
  $.getJSON(url, function (json) {
  	var results = json.results;
  	var finalResults = new Array();
  	
    if(results.length==0){
	      	url = "http://search.twitter.com/search.json?q=from:enbeeNB&rpp=20&callback=?";
	      	  $.getJSON(url, function (json2) {
	      	  	results = json2.results;
	      	  	
	      	  	$(results).each(function () {
				   if(this.text.charAt(0) !='@'){
				     finalResults.push(this);
				     results = finalResults;
				     return false;
				   }	
	      	  	
	      	  	});
	      	  	
	      	  	if(results.length>0)
	      	  	{
	      	  	  results.splice(1, results.length-1);
	      	  	}
	      	  	
      	  		render(results, elem);
	      	  });
    }
	render(results, elem);
   
  });
  return (false);
}




$(function () {
  $('.twitStream').each(function () {
    fetch_tweets(this);
    



  });
});





function render(results, elem){

 $(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 = 'minder dan 10 seconden geleden';
        else if (sinceSec < 20)
          var since = 'minder dan 20 seconden geleden';
        else
          var since = 'halve minuut geleden';
      }
      else if (sinceMin == 1) {
        var sinceSec = Math.round((cTime - tTime) / 1000);
        if (sinceSec == 30)
          var since = 'halve minuut geleden';
        else if (sinceSec < 60)
          var since = 'minder dan een minuut geleden';
        else
          var since = '1 minuut geleden';
      }
      else if (sinceMin < 45)
        var since = sinceMin + ' minuten geleden';
      else if (sinceMin > 44 && sinceMin < 60)
        var since = 'ongeveer 1 uur geleden';
      else if (sinceMin < 1440) {
        var sinceHr = Math.round(sinceMin / 60);
        if (sinceHr == 1)
          var since = 'ongeveer 1 uur geleden';
        else
          var since = 'ongeveer ' + sinceHr + ' uur geleden';
      }
      else if (sinceMin > 1439 && sinceMin < 2880)
        var since = '1 dag geleden';
      else {
        var sinceDay = Math.round(sinceMin / 1440);
        var since = sinceDay + ' dagen geleden';
      }
      var tweetBy = '<a class="tweet-user" target="_blank" href="http://twitter.com/' + this.from_user + '">' + this.from_user + '</a> ';
      var footer = "";
      if (showtype.indexOf('reply') != -1)
        footer += ' &middot; <a class="tweet-reply" target="_blank" href="http://twitter.com/?status=@' + this.from_user + ' &in_reply_to_status_id=' + this.id + '&in_reply_to=' + this.from_user + '">Reply</a>';
      if (showtype.indexOf('view') != -1)
        footer += ' &middot; <a class="tweet-view" target="_blank" href="http://twitter.com/' + this.from_user + '/statuses/' + this.id + '">View Tweet</a>';
      if (showtype.indexOf('rt') != -1)
        footer += ' &middot; <a class="tweet-rt" target="_blank" href="http://twitter.com/?status=RT @' + this.from_user + ' ' + escape(this.text.replace(/&quot;/g, '"')) + '&in_reply_to_status_id=' + this.id + '&in_reply_to=' + this.from_user + '">RT</a>';
      var tweet = '<p>' + this.text.linkify().linkuser().linktag().replace(/<a/g, '<a target="_blank"') + '</p><span class="time">' + since + '</span>';
//      var tweet = '<div class="tweet"><div class="tweet-left"><a target="_blank" href="http://twitter.com/' + this.from_user + '"><img alt="' + this.from_user + ' on Twitter" src="' + this.profile_image_url + '" /></a></div><div class="tweet-right"><p class="text"><strong>' + tweetBy + '</strong><br/>' + this.text.linkify().linkuser().linktag().replace(/<a/g, '<a target="_blank"') + '<br /><span class="tweet-time">' + since + '</span>' + footer + '</p></div><br style="clear: both;" /></div>';
      elem.append(tweet);
    });

}

