(function($) {
	$.fn.extend({
		randomlogos: function(options) {
			var defaults = { 
				number: 5,
				interval: 5000,  
				speed: 100
			};  
			var options = $.extend(defaults, options);  
		
			return this.each(function() {
				var element = $(this);
				element.addClass('showing');
				var list = element.children('li');
				//element.children('li').addClass('hidden').each(function() {
				list.addClass('hidden').each(function() {
					var item = $(this);
					item.height(item.children('img:eq(0)').height()).width(item.children('img:eq(0)').width()).show().children('img').hide();
				}).hide();
				var n = list.length > options.number ? options.number : list.length;
				for(var i=n; i>0; i--) {
					var index = Math.round(Math.random()*n)
					if(index >= element.children('li.hidden').length) {
						index = 0;
					}
					var item = element.children('li.hidden:eq('+index+')').detach();
					item.show().addClass('ready').removeClass('hidden');
					element.append(item);
				}
				
				setInterval(function() {
					element.toggleClass('removing');
				}, options.interval);
				
				setInterval(function() {
					if(element.hasClass('showing')) {
						var item= element.children('li.ready:eq(0)');
						if(item.length == 0) {
							element.removeClass('showing');
						}
						item.removeClass('ready').addClass('done').children('img').fadeIn(options.speed);
					} else if(element.hasClass('removing')){
						var item = element.children('li.done:eq(0)');
						if(item.length == 0) {
							element.removeClass('removing').addClass('showing').children('li').addClass('hidden').hide();
							//var n = list.length > options.number ? options.number : list.length;
							for(var i=n; i>0; i--) {
								var index = Math.round(Math.random()*n)
								if(index >= element.children('li.hidden').length) {
									index = 0;
								}
								var item = element.children('li.hidden:eq('+index+')').detach();
								item.show().addClass('ready').removeClass('hidden');
								element.append(item);
							}
						}
						item.removeClass('done').addClass('ready').children('img').fadeOut(options.speed);
					}
				}, options.speed);
						
			});
		}
	});
})(jQuery);
