/*
 *                    )  , ,         )      ,            
 *  ____   _  _/__/_ /       _      /_        __   _  __ 
 *  / / (_(_(_(__(__/ )_(_/_/_)_   /(__(_(_(__/_)_(/_/ (_
 *                       /                   /           
 *                    (_/                  _/            
 *  
 *  jQuery Fader v1.0
 *  http://www.matthijskuiper.nl
 *  
 *  Copyright (c) 2012 Matthijs Kuiper
 *  Dual licensed under the MIT or GPL Version 2 licenses.
 *
*/

;(function($)
{
	$.fn.fader = function(options)
	{
		return this.each(function()
		{
			function init()
			{
				$slides = $fader.find('.slide');
				count = $slides.length;
				if (!count) return;
				
				index = $slides.index($slides.filter('.active').eq(0));
				if (index < 0)
				{
					index = 0;
					$slides.eq(0).addClass('active');
				}
				
				$slides.not(':eq('+index+')').removeClass('active').hide();
				
				if (o.autopause)
				{
					$fader.mouseenter(function()
					{
						pause = true;
						clearInterval(timer);
					})
					.mouseleave(function()
					{
						if (pause)
						{
							pause = false;
							timer = setInterval(function() { slide() }, o.interval);
						}
					});
				}
				pause = false;
				timer = setInterval(function() { slide() }, o.interval);
			}
			
			function slide()
			{
				$slides.eq(index).fadeOut(o.speed);
				index++;
				if (index >= count) index = 0;
				$slides.eq(index).fadeIn(o.speed);
			}
			
			var o = $.extend({}, $.fn.fader.defaults, options),
				$fader = $(this),
				$slides,
				count,
				index,
				timer,
				pause;
			
			// Initialize
			init();
		});
	};
	
	// Default options
	$.fn.fader.defaults =
	{
		selector:	'.slide',
		speed:		1000,
		interval:	8000,
		autopause:	true
	};
	
})(jQuery);

