function twitterCallbackByUser(twitters) {
  var feedname = '';
  var statusHTML = [];
  var created_at = '';
  for (var i=0; i<twitters.length; i++){
    var username = twitters[i].user.screen_name;
    feedname = username.toLowerCase();
    var profile_img_url = twitters[i].user.profile_image_url;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
      return '<a href="'+url+'">'+url+'</a>';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
    });
    statusHTML.push('<span>'+status+'</span>');
    created_at = twitters[i].created_at
  }
  var mydoc = document.getElementById('twitter_update_list_' + feedname);
  mydoc.innerHTML = statusHTML.join('');
  mydoc = '';
  mydoc = document.getElementById('twitter_update_time_' + feedname);
  mydoc.innerHTML = relative_time(created_at) + '&nbsp;&nbsp;&nbsp;&nbsp;';
}

function relative_time(time_value) {
  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 'less than a minute ago';
  } else if(delta < 120) {
    return 'about a minute ago';
  } else if(delta < (60*60)) {
    return (parseInt(delta / 60)).toString() + ' minutes ago';
  } else if(delta < (120*60)) {
    return 'about an hour ago';
  } else if(delta < (24*60*60)) {
    return 'about ' + (parseInt(delta / 3600)).toString() + ' hours ago';
  } else if(delta < (48*60*60)) {
    return '1 day ago';
  } else {
    return (parseInt(delta / 86400)).toString() + ' days ago';
  }
}

function twitterCallbackByList(twitters) {
  var feedname = '';
  var statusHTML = [];

  statusHTML.push('<TABLE CELLSPACING="4" CELLPADDING="0" BORDER="0">');  
  for (var i=0; i<twitters.length; i++){
    var username = twitters[i].user.screen_name;
    feedname = username.toLowerCase();
    var profile_img_url = twitters[i].user.profile_image_url;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
      return '<a href="'+url+'">'+url+'</a>';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'<a href="http://twitter.com/'+reply.substring(1)+'">'+reply.substring(1)+'</a>';
    });
    statusHTML.push('<TR><TD><IMG SRC="' + twitters[i].user.profile_image_url + '" BORDER="0"></TD><TD WIDTH="4"></TD><TD><span>'+status+'</span></TD></TR>');
  }
  statusHTML.push('</TABLE>');
  var mydoc = document.getElementById('twitter_update_list_science')
  mydoc.innerHTML = statusHTML.join('');
}

function h_twitterCallbackByList(twitters) {
  var feedname = '';
  var statusHTML = [];

  statusHTML.push('<TABLE CELLSPACING="4" CELLPADDING="0" BORDER="0" style="overflow: hidden;" WIDTH="390">');  
  for (var i=0; i<twitters.length; i++){
    var username = twitters[i].user.screen_name;
    feedname = username.toLowerCase();
    var profile_img_url = twitters[i].user.profile_image_url;
    var status = twitters[i].text.replace(/((https?|s?ftp|ssh)\:\/\/[^"\s\<\>]*[^.,;'">\:\s\<\>\)\]\!])/g, function(url) {
      return '';
    }).replace(/\B@([_a-z0-9]+)/ig, function(reply) {
      return  reply.charAt(0)+'';
    });
    var test_status = '@'+username+': '+status
    if (test_status.length > 45)
    {
      status = status.substring(0, 45) + '...';
    }
    
    statusHTML.push('<TR><TD WIDTH="390" style="overflow: hidden;"><span style="overflow: hidden; line-height: 12px;"><A HREF="services.aspx" STYLE=" line-height: 12px; text-decoration: none;"><B>@'+username+': </B>'+status+'</A></span></TD></TR>');
  }
  statusHTML.push('</TABLE>');
  var mydoc = document.getElementById('twitter_update_list_science')
  mydoc.innerHTML = statusHTML.join('');
}
