jQuery.fn.eachDelay = function(callback, speed){
	return jQuery.eachDelay( this, callback, speed)
}
jQuery.extend({
	eachDelay: function(object,callback, speed){ 
		var name, i = -1, length = object.length, $div = $('<div>'), id;
		if (length === undefined) { //not an array process as object
			var arr = [], x = -1;
			for (name in object) arr[++x] = name; 
			id = window.setInterval(function(){
			 if( ++i === arr.length || callback.call(object[ arr[i] ], arr[i], object[ arr[i] ]) === false) 
			 	 clearInterval(id);
			}, speed);	
		}
		else { //array-compatible element ie. [], jQuery Object
			id = window.setInterval(function(){ 
				if (++i === object.length || callback.call(object[i], i, object[i]) === false) 
					clearInterval(id);
			}, speed);
		}
		return object;
	}
});

(function ($) {
  $.fn.osbornomics = function(options){
    options = options || {}
    var output = $(this)
    var defaults = {
                      limit: 50,
		      timeout: 3000 
    }
    var settings = $.extend(defaults, options)

    function format_twat(twat) {
      formatted  = ''
      formatted += '<div class="osbornomics">'
      formatted +=   '<div class="osbornomics-tweet">'
      formatted +=   '<a href="'+twat.url+'">'
      formatted +=     '<div class="osbornomics-content">'+twat.content+'</div>'
      formatted +=   '</a>'
      formatted +=   '<div class="osbornomics-handle">@'+twat.trackback_author_nick+'</div>'
      formatted +=   '</div>'
      formatted += '</div>'
      return formatted
    }

    var parse_request = function(data){
      var sets_of_two = new Array();
      if(data.response.list.length > 0) {
	$.each( data.response.list, function(i,twat){
          	if(i%2==0) {
			sets_of_two[i] = new Array();
			sets_of_two[i][0]=format_twat(twat);
			sets_of_two[i][1]='';
		}
		else {
			sets_of_two[i-1][1]=format_twat(twat);
		}
		
	});
	$('#osbornomics').fadeOut(100,function() { output.append(sets_of_two[0][0]+sets_of_two[0][1]); $('#osbornomics').slideDown();} ); // show first one straight away
	
	$.eachDelay(sets_of_two, function(i,twat){
       		if(i%2==0 && i>0) {
 			$('#osbornomics').empty(); 
			$('#osbornomics').fadeOut(100,function() { output.append(twat[0]+twat[1]); $('#osbornomics').slideDown(); } );
		}
       	     }, defaults.timeout);
        }
    }
    
    $.ajax({
      url:'http://otter.topsy.com/search.js',
      data:
        {
	  q: '#osbornomics',
          perpage: defaults.limit,
	  window: 'm'
        },
      success:parse_request,
      dataType:'jsonp'}
    );

    return this
  }
})(jQuery);

