var Slider = Class.create({
	initialize: function($container, $duration, $timer)
	{
		me = this;
		me.container = $container;
		me.duration = $duration;
		me.timer = $timer;
		if (me.timer > 0)
		{
			me.autoSlide();
		}
		me.images = $$('#' + me.container + ' a');
		me.button = true;
		me.position = 0;
		me.positioningImages();
	},
	positioningImages: function()
	{
		$(me.container).setStyle({
			position: 'relative'
		});

		for (i = 0; i < me.images.length; i++)
		{
			me.images[i].setStyle({
				position: 'absolute',
				top: '0px',
				left: i * $(me.container).getWidth() + 'px'
			});
		}
	},
	disableButton: function()
	{
		me.button = false;
		toButton = setTimeout(me.enableButton, 500);
	},
	enableButton: function()
	{
		me.button = true;
	},
	slideToPrevious: function()
	{
		if (me.timer > 0)
		{
			clearTimeout(toAutoSlide);
			me.autoSlide();
		}
		if (me.button)
		{
			me.disableButton();
			me.position--;
			if (me.position < 0)
			{
				me.position = me.images.length - 1;
				new Effect.Move(me.container, { x: -$(me.container).getWidth() * (me.images.length - 1), y: 0, transition: Effect.Transitions.sinoidal, duration: me.duration });
			}
			else
			{
				new Effect.Move(me.container, { x: $(me.container).getWidth(), y: 0, transition: Effect.Transitions.sinoidal, duration: me.duration });
			}
			return false;
		}
	},
	slideToNext: function()
	{
		if (me.timer > 0)
		{
			clearTimeout(toAutoSlide);
			me.autoSlide();
		}
		if (me.button)
		{
			me.disableButton();
			me.position++;
			if (me.position > me.images.length - 1)
			{
				me.position = 0;
				new Effect.Move(me.container, { x: $(me.container).getWidth() * (me.images.length - 1), y: 0, transition: Effect.Transitions.sinoidal, duration: me.duration });
			}
			else
			{
				new Effect.Move(me.container, { x: -$(me.container).getWidth(), y: 0, transition: Effect.Transitions.sinoidal, duration: me.duration });
			}
			return false;
		}
	},
	autoSlide: function()
	{
		toAutoSlide = setTimeout(me.slideToNext, me.timer);
	}
});

