function twitterSearchFull(results) {
//htmlPattern är den html-kod som genereras för varje tweet
var htmlPattern = '<li class="result_full"><div class="twitter_avatar"><a target="_blank" href="$USER_URL"><img src="$USERIMAGE_URL" /></a></div><div class="twitter_message"><a target="_blank" href="$USER_URL">$USERNAME</a>: <span class="twitter_message_text">$TEXT</span> <span class="twitter_info">($TIME)</span></div></li>';
  var twitters = results.results;
  var statusHTML = [];
  
  //loopa igenom varje tweet för att länka @mentions och urler, och wrappa tweeten med htmlKoden från htmlPattern
  //todo: den här loopen är identisk i alla olika callbacks och bör brytas ut till en separat funktion på ett smart sätt
  for (var i=0; i<twitters.length; i++){
    var username = twitters[i].from_user;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
      return '<a href="'+url+'" target="_blank">'+url+'</a>';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'" target="_blank">'+reply.substring(1)+'</a>';
    });
	statusHTML.push(htmlPattern.replace(/\$USER_URL/g, 'http://twitter.com/' + username).replace('$USERIMAGE_URL', twitters[i].profile_image_url).replace('$TEXT', status).replace('$USERNAME', username).replace('$TIME', relative_time(twitters[i].created_at)));
  }
  
  document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
}

function twitterSearchCompact(results) {
//htmlPattern är den html-kod som genereras för varje tweet
var htmlPattern = '<li class="result_compact"><div class="twitter_message"><a target="_blank" href="$USER_URL">$USERNAME</a>: <span class="twitter_message_text">$TEXT</span> <span class="twitter_info">($TIME)</span></div></li>';
  var twitters = results.results;
  var statusHTML = [];
  
  //loopa igenom varje tweet för att länka @mentions och urler, och wrappa tweeten med htmlKoden från htmlPattern
  //todo: den här loopen är identisk i alla olika callbacks och bör brytas ut till en separat funktion på ett smart sätt
  for (var i=0; i<twitters.length; i++){
    var username = twitters[i].from_user;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
      return '<a href="'+url+'" target="_blank">'+url+'</a>';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'" target="_blank">'+reply.substring(1)+'</a>';
    });
	statusHTML.push(htmlPattern.replace(/\$USER_URL/g, 'http://twitter.com/' + username).replace('$USERIMAGE_URL', twitters[i].profile_image_url).replace('$TEXT', status).replace('$USERNAME', username).replace('$TIME', relative_time(twitters[i].created_at)));
  }
  document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
}

function twitterSearchLite(results) {
//htmlPattern är den html-kod som genereras för varje tweet
var htmlPattern = '<li class="result_lite"><div class="twitter_message"><span class="twitter_message_text">$TEXT</span> <span class="twitter_info">($TIME)</span></div></li>';
  var twitters = results.results;
  var statusHTML = [];
  
  //loopa igenom varje tweet för att länka @mentions och urler, och wrappa tweeten med htmlKoden från htmlPattern
  //todo: den här loopen är identisk i alla olika callbacks och bör brytas ut till en separat funktion på ett smart sätt
  for (var i=0; i<twitters.length; i++){
    var username = twitters[i].from_user;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
      return '<a href="'+url+'" target="_blank">'+url+'</a>';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'" target="_blank">'+reply.substring(1)+'</a>';
    });
	statusHTML.push(htmlPattern.replace('$TEXT', status).replace('$TIME', relative_time(twitters[i].created_at)));
  }
  document.getElementById('twitter_update_list').innerHTML = statusHTML.join('');
}

function relative_time(time_value) {
  //time_value ex. "Tue, 22 Sep 2009 06:12:33 +0000"
  //var values = time_value.split(" ");
  //time_value = values[1] + " " + values[2] + ", " + values[5] + " " + values[3];
  var parsed_date = Date.parse(time_value);
  var relative_to = (arguments.length > 1) ? arguments[1] : new Date();
  var delta = parseInt((relative_to.getTime() - parsed_date) / 1000);
  //delta = delta + (relative_to.getTimezoneOffset() * 60);

  if (delta < 60) {
    return 'mindre &auml;n en minut sedan';
  } else if(delta < 120) {
    return 'ungef&auml;r en minut sedan';
  } else if(delta < (60*60)) {
    return (parseInt(delta / 60)).toString() + ' minuter sedan';
  } else if(delta < (120*60)) {
    return 'ungef&auml;r en timme sedan';
  } else if(delta < (24*60*60)) {
    return 'ungef&auml;r ' + (parseInt(delta / 3600)).toString() + ' timmar sedan';
  } else if(delta < (48*60*60)) {
    return '1 dag sedan';
  } else {
    return (parseInt(delta / 86400)).toString() + ' dagar sedan';
  }
}