(function(jQuery) {
jQuery.fn.fadeInSequence = function(fadeInTime, timeBetween)
{
	//Default Values
	timeBetween = typeof(timeBetween) == 'undefined' ? 0 : timeBetween;
	 fadeInTime = typeof(fadeInTime) == 'undefined' ? 500 : fadeInTime;

	//The amount of remaining time until the animation is complete.
	//Initially set to the value of the entire animation duration.
	var remainingTime = jQuery(this).size() * (fadeInTime+timeBetween);

	var i=0; //Counter
	return jQuery(this).each(function()
	{
		//Para que no haga cosas raras con los clear
		if ( !jQuery(this).hasClass("clear") ){
			if ( !jQuery(this).hasClass("oculto") ){
				//Wait until previous element has finished fading and timeBetween has elapsed
				jQuery(this).delay(i++*(fadeInTime+timeBetween));
		
				//Decrement remainingTime
				remainingTime -= (fadeInTime+timeBetween);
		
				if(jQuery(this).css('display') == 'none')
				{
					jQuery(this).fadeIn(fadeInTime);
				}
				else //If hidden by other means such as opacity: 0
				{
					jQuery(this).animate({'opacity' : 1}, fadeInTime);
				}
		
				//Delay until the animation is over to fill up the queue.
				jQuery(this).delay(remainingTime+timeBetween);
			}
		}
		else{
			jQuery(this).show();
		}

	});	

};

})(jQuery);
