(function($){	
	$.fn.roll = function(options) {
			
		var defaults = 
		{
			speed:1000,
			easing:"linear",
			rolloverClass:"rollover",
			rolloutClass:"rollout"
		}
		settings = $.extend({}, defaults, options);		 	
		this.each(function() 
			{
				var $this = $(this);	
				$this.prepend('<div class="' + settings.rolloverClass + '"></div>');
				$this.prepend('<div class="' + settings.rolloutClass + '"></div>');
			
				var $rollout = $this.find("." + settings.rolloutClass);
				var $rollover = $this.find("." + settings.rolloverClass);
		
				$rollout.css("opacity","1");
				$rollover.css("opacity","0");
		
				$this.hover(
					function(e) 
					{
						//mouseover
						var hiderollout = function() { $rollout.css("opacity","0"); }
						$rollover.stop().animate({"opacity": "1"}, settings.speed, settings.easing, hiderollout);  
					}, 
					function() 
					{
						// mouseout
						$rollout.css("opacity","1"); 
						$rollover.stop().animate({"opacity": "0"}, settings.speed, settings.easing);  
					}
				);
		
			});
	  // returns the jQuery object to allow for chainability.
	  return this;
	}
})(jQuery);
