var rSlider =
{
	container: false,
	interval: false,
	previous: 0,
	current: 0,
	count: 0,
	init: function( opt )
	{
		return this.each(function()
		{
			rSlider.container 	= $(this);
			rSlider.count 		= $(this).find('.slides .slide').length;

			rSlider.container.find('.slidebuttons a').bind('click', rSlider.move);
			rSlider.container.find('.slidenav a').bind('click', rSlider.goTo);

			rSlider.container.bind('mouseenter', rSlider.pauseCycle);
			rSlider.container.bind('mouseleave', rSlider.startCycle);

			rSlider.startCycle();
		});
	},
	startCycle: function()
	{
		rSlider.interval = setInterval(rSlider.doCycle, 5000);
	},
	pauseCycle: function()
	{
		clearInterval( rSlider.interval );
	},
	doCycle: function()
	{
		rSlider.previous = rSlider.current;

		if (rSlider.current >= rSlider.count-1)
			rSlider.current = 0;
		else
			rSlider.current = rSlider.current+1;

		rSlider.moveTo( rSlider.current, rSlider.previous );
	},
	move: function()
	{
		rSlider.previous = rSlider.current;

		if ($(this).hasClass('left'))
		{
		    if (rSlider.current <= 0)
				rSlider.current = rSlider.count-1;
			else
				rSlider.current = rSlider.current-1;
		}
		else
		{
			if (rSlider.current >= rSlider.count-1)
				rSlider.current = 0;
			else
				rSlider.current = rSlider.current+1;
		}

		rSlider.moveTo( rSlider.current, rSlider.previous );
	},
	goTo: function()
	{
		rSlider.previous = rSlider.current;
		rSlider.current = parseInt($(this).attr("rel"));
		rSlider.moveTo( rSlider.current, rSlider.previous );
	},
	moveTo: function(num, prev)
	{
		rSlider.container.find('.slidenav a#slidenav_'+prev).removeClass('active');
		//rSlider.container.find('.slides #slide_'+prev).hide('slide', {direction: num > prev ? 'left' : 'right'}, 750);
		rSlider.container.find('.slides #slide_'+prev).fadeOut();

		rSlider.container.find('.slidenav a#slidenav_'+num).addClass('active');
		//rSlider.container.find('.slides #slide_'+num).show('slide', {direction: num < prev ? 'left' : 'right'}, 750);
		rSlider.container.find('.slides #slide_'+num).fadeIn();
	}
};

$.fn.RocketSlider = function(method)
{
	if ( rSlider[method] )
	{
		return rSlider[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
	}
	else if ( typeof method === 'object' || ! method )
	{
		return rSlider.init.apply( this, arguments );
	}
	else
	{
		$.error( 'Method ' +  method + ' does not exist on jQuery.RocketSlider' );
	}
};

$(function()
{
	if ($('#slider .slide').length > 1)
	{
		$('#slider').RocketSlider();
	}
});
