var SlideContent = Class.create(
{
	slideElements: new Array(),
	isSliding: 0,
	
	initialize: function(handleClassName, slideContainerId, dirBtnObj)
	{
		this.currentLength = 0;
		this.currentIndex = 0;
		if(!$(slideContainerId)) { return false; }
		var self = this;
		var AllElem = $$('.'+handleClassName);
		var Slides = $$('#'+slideContainerId+' li'); //$(slideContainerId).getElementsByTagName('li');
		$(AllElem[0]).addClassName('active');
		
		if($(Slides[0]))
			Slides.each(function(slide)
			{
				self.slideElements.push(slide);
			});
		
		AllElem.each(function(elem)
		{
			
			elem.observe('click', function()
			{
			//	alert(AllElem.indexOf(this));
				$$('.active')[0].removeClassName('active');
				self.slideElem(AllElem.indexOf(this), slideContainerId, Slides[AllElem.indexOf(this)]);
				elem.addClassName('active');
			});
		});

		Event.observe($('slideContainer'), 'click', function()
		{
			if(self.isSliding == 0)
			{
				if((self.currentIndex+1) == AllElem.length)
				{
					$$('.active')[0].removeClassName('active');
					self.slideElem(0, slideContainerId, Slides[0]);
					AllElem[0].addClassName('active');
				}
				else
				{
					$$('.active')[0].removeClassName('active');
					self.slideElem((self.currentIndex+1), slideContainerId, Slides[(self.currentIndex+1)]);
					AllElem[(self.currentIndex)].addClassName('active');
				}
			}
		});

		if(dirBtnObj)
		{
			Event.observe(dirBtnObj.nextBtnId, 'click', function()
			{
				if(self.isSliding == 0)
				{
					if((self.currentIndex+1) == AllElem.length)
					{
						$$('.active')[0].removeClassName('active');
						self.slideElem(0, slideContainerId, Slides[0]);
						AllElem[0].addClassName('active');
					}
					else
					{
						$$('.active')[0].removeClassName('active');
						self.slideElem((self.currentIndex+1), slideContainerId, Slides[(self.currentIndex+1)]);
						AllElem[(self.currentIndex)].addClassName('active');
					}
				}
			});
			
			Event.observe(dirBtnObj.prevBtnId, 'click', function()
			{
				if(self.isSliding == 0)
				{
					if((self.currentIndex-1) == -1)
					{
						$$('.active')[0].removeClassName('active');
						self.slideElem((AllElem.length-1), slideContainerId, Slides[(AllElem.length-1)]);
						AllElem[(AllElem.length-1)].addClassName('active');
					}
					else
					{
						$$('.active')[0].removeClassName('active');
						self.slideElem((self.currentIndex-1), slideContainerId, Slides[(self.currentIndex-1)]);
						AllElem[(self.currentIndex)].addClassName('active');
					}
				}
			});
		}
		

	},
	
	slideElem: function(lengthNr, slideId, contentObj)
	{
		var self = this;
		this.currentIndex = lengthNr;
		var slideElementWidth = $(this.slideElements[lengthNr]).getWidth();

		var slideLengthE = slideElementWidth;//contentObj.offsetWidth;
		var lengthNr = lengthNr * slideElementWidth;//eval(contentObj.offsetWidth);
		var StandardLength = slideElementWidth;//contentObj.offsetWidth;
		var slideNr = lengthNr / StandardLength;

		if(slideNr == this.currentLength) { return false;}
		if(slideNr == (this.currentLength+1))
		{
			var actLength = -(StandardLength);
		}
		else if(slideNr > (this.currentLength+1))
		{
			var actLength = -((slideNr*StandardLength)-(this.currentLength*StandardLength));
		}
		if(slideNr == (this.currentLength-1))
		{
			var actLength = (StandardLength);
		}
		else if(slideNr < (this.currentLength-1))
		{
				var actLength = -eval($(slideId).getStyle('left').replace('px','')) - eval(slideNr*StandardLength);
		}
		this.currentLength = lengthNr/StandardLength;

		new Effect.Move(slideId,
		{
			x: actLength,
			mode: 'relative',
			duration: 0.4,
			transition: Effect.Transitions.sinoidal,
			queue: { position: 'end', scope: 'contentSlider' },
			beforeStart: function()
			{
				self.isSliding = 1;
			},
			afterFinish: function()
			{
				self.isSliding = 0;
			}
		});
		
	}
});
Event.observe(window, 'load', function()
{
	new SlideContent('slidehandle', 'slideContainer',
	{
		nextBtnId : 'nextBtn',
		prevBtnId : 'prevBtn'
	});
});