(function($){

	$.fn.rotator = function(user_options)
	{
		var options = {delay: 6000, duration: 1000};
		$.extend(options, user_options);

		$(this).each(function(index, element){

			var rotator = $(this);
			var contents = rotator.children('.item');
			var nav_items = null;

			$(this).data('total', contents.length)
			$(this).data('current', 0);
			$(this).data('active', 1);
			$(this).data('int_id', 0);

			// Manipulacions CSS previes

			$(this).css({position: 'relative'});

			// Manipulacions dels continguts

			contents.each(function(index, el){
				$(el).css({position: 'absolute', top: '0'});
				if(index == 0)$(el).show();
				else $(el).hide();
			});

			// Crear navegacio

			$(this).append('<div class="nav_wrapper"><ul class="navigation"></ul></div>');

			for(i = 0; i < contents.length; i++)
			{
				var item = $('<li><a href="#"><span>' + (i + 1) + '</span></a></li>');
				item.find('a').data('index', i);
				if(i == 0) item.addClass('current');
				$(this).find('.navigation').append(item);
			};

			nav_items = rotator.find('.navigation li');

			$(this).delegate('.navigation a', 'click', function(){
				var current = rotator.data('current');
				$(this).data('active', 0);
				next = $(this).data('index');
				if(current == 1 || current == 4)
				{
					$('.divlink1banner' + (current+1)).fadeOut(options.duration);
					$('.divlink2banner' + (current+1)).fadeOut(options.duration);
				}
				$(contents[current]).fadeOut();
				$(nav_items[current]).removeClass('current');
				current = next;
				if(current == 1 || current == 4)
				{
					$('.divlink1banner' + (current+1)).fadeIn(options.duration);
					$('.divlink2banner' + (current+1)).fadeIn(options.duration);
				}
				$(contents[current]).fadeIn();
				$(nav_items[current]).addClass('current');
				rotator.data('current', current);
			});

			$(this).mouseenter(function(){
				rotator.data('active', 0);
			});

			$(this).mouseleave(function(){
				rotator.data('active', 1);
			});
			
			// Iniciar la rotacio

			$(this).data('int_id', setInterval(function(){
				if(rotator.data('active'))
				{
					var current = rotator.data('current');
					if(current == 1)
					{
						$('.divlink1banner' + (current+1)).fadeOut(options.duration);
						$('.divlink2banner' + (current+1)).fadeOut(options.duration);
					}
					$(contents[current]).fadeOut(options.duration, function()
					{
	   					$(nav_items[current]).removeClass('current');
	   					current++;
	   					if(current >= rotator.data('total')) current = 0;
						if(current == 1)
						{
							$('.divlink1banner' + (current+1)).fadeIn(options.duration);
							$('.divlink2banner' + (current+1)).fadeIn(options.duration);
						}
						$(contents[current]).fadeIn(options.duration);
						$(nav_items[current]).addClass('current');
						rotator.data('current', current);
	  				});
				}

			}, options.delay));
		});
	}

})(jQuery);
