jQuery.fn.carrusel = function(opciones) {
	var predeterminados = { imagenes: [], retraso: 5000, actual: 0, velocidad: 'slow', id: 0 };
	var ops = jQuery.extend(predeterminados, opciones);

	var backBuffer = $('#backBuffer' + ops.id);
	if(backBuffer.length == 0) {
		backBuffer = $('body').append($('<img src="' + ops.imagenes[++ops.actual] + '" id="backBuffer' + ops.id + '" style="display:none" />'));
	}

	var lista = $(this);
	setTimeout(function() {
		var imagen = lista.find('img');
		imagen.fadeOut(ops.velocidad, function() {
			var backBuffer = $('#backBuffer' + ops.id);
			$(this).replaceWith(backBuffer).remove();
			backBuffer.fadeIn(ops.velocidad).removeAttr('id');

			ops.actual = ++ops.actual % ops.imagenes.length;
			$('body').append($('<img src="' + ops.imagenes[ops.actual] + '" id="backBuffer' + ops.id + '" style="display:none" />'));

			lista.carrusel(jQuery.extend(ops));
		});
	}, ops.retraso)
}