var items = 0;
var data;
var timer;

window.onload=load;


function load() {
  new Ajax.Request('tweets.json?',{
    method: 'GET',
    onComplete: function(request){
      data = request.responseText.evalJSON();  
      timer = setTimeout("next_item();", 2000);
    }
  });
}

function next_item()
{ 
  // loop if we're out of items
  if(items == data.length)
    items = 0;
  
  // remove items not showing
  cleanup();
  
  var string = data[items].text;
  var highlight = "ticketmaster";
  var index = string.toUpperCase().lastIndexOf(highlight.toUpperCase());
  var renderedString = (index > 0 ? (string.slice(0,index-1) + '<br/>') : '') + '<em>' + string.slice(index,index+highlight.length) + '</em>' +
    string.slice(index+highlight.length);
    
  var element = new Element('li',{style:'height:auto'}).update(renderedString);
  
  $('items').insert(element);
  items++;
    
  $('items').setStyle('bottom:-'+element.scrollHeight+'px');
  $('items').morph('bottom:0px',{ duration: .8 });
  setTimeout("next_item();", 2000); 
}

function cleanup()
{
  if(this.items!=50) return;
  var items = $$('#items li');
  items.slice(0,25).each(function(li){ Element.remove(li) });
  this.items = 25;
}
