// jQuery VSS (Veeery Simple Slider)
// 2011@Copyright(c) Tobiasz Palka (aka AmBeam)

	// There are some settings, that changes slider behavior
	
	var actualSlide		= 1;			// first slide
	var enabled 			= true;  	// turn on slider
	var speed				= 700;   	// slider speed
	var fadein				= true;		// select slide fadein effect
	var fadein_speed  	= 700;		// select slide fadein duration
	var delay				= 100;		// select slide fadein delay
	var style				= 'swing'; 	// slide flip style
	var clickable			= false;		// when turned on, you can flip slider manually
	var auto					= true;		// auto slide flip
	var autodelay			= 4400;		// when auto is on, this is the time between slide flips
	var continous			= true;		// when turned on, the last slide and first slide are in next positions
	var shortjump			= false;		// still not working..
	var shownumbers		= true;		// displays the numbers
	
	
	// Please keep these unchanged..
	
	var slideCount;
	var slider;
	var slideWidth;
	var temp = actualSlide;
	var added = false;
	var liAdded = '';
	var dirbt = '';
	
	
	var tofade = '';
	var tm;
	var jump = true;
	var sliderArray = new Array();


function autoFlip()
{
  	clearTimeout(tm);
  	if (auto)
  	{
	   if (jump)
	   {
			enabled = true;
		   actualSlide++;
			slideFlip();
		}
		tm = setTimeout(autoFlip, autodelay);
   }
}

function prepare()
{
	for (i = 1; i <= slideCount; i++)
	{
		var actitem = slider.find('li.slide-item:nth-child('+i+')');
		actitem.addClass('item_' + i);
	}
	
	if (continous)
	{
		slider.find('ul.effectSlider').css('width', (slideWidth * (slideCount + 1)) + 'px');
		var clone = slider.find('.item_1').clone(true);
		clone.addClass('clone_slide');
		clone.addClass('item_' + (slideCount + 1));
		clone.removeClass('item_1');
		slider.find('ul.effectSlider').append(clone);
	}
	
	var fnd = slider.find('#slideNumbers');
	if (fnd.length && shownumbers)
	{
		var style;
		var numbers = '<ul class="sl-number-items" style="list-style:none;">';
		for (i = 1; i <= slideCount; i++)
		{
			style = 'display:inline; margin-right:5px;';
			var addstyle = '';
			if (i == actualSlide)
				 addstyle = ' sl-number-checked';
			numbers += '<li style="' + style + '"><a id="sl-button_' + i + '" href="#" class="sl-number-clickable' + addstyle + '">' + i + '</a></li>';
		}
		slider.find('#slideNumbers').html(numbers);
	}
}

function slideFlip()
{ 	
 	if (actualSlide < 1) actualSlide = slideCount;
  	else if (actualSlide > slideCount) actualSlide = 1;
	
  	if (!enabled) return false;
	
  	var direction = temp - actualSlide;
  	var steps = Math.abs(direction);
	
	
  	enabled = false;
  	direction = (direction > 0) ? 'left' : 'right';
	
	// Jezeli 'continous' to zmien domyslny kierunek na 'right'..
	if (continous)
	{
		direction = 'right';
		// ..chyba ze jest wcisniety przycisk w lewo.
		if (dirbt == 'left') direction = dirbt;
	}
	
	if (shortjump)
	{
		if ((actualSlide == 1 && direction == 'right') || (actualSlide == slideCount && direction == 'left'))
			steps = 1;
	}
	
 	if (direction == 'right')
  	{
		var move = slideWidth * steps;
		var dir = '-';
		if (shortjump && actualSlide == slideCount && temp == 1)
		{
			var content = slider.find('li.slide-item:last-child').html();
			var addElement = '<li class="item_' + (slideCount + 1) + ' temporary slide-item" style="display:inline; margin-right:5px">' + content + '</li>';
			slider.find('ul.effectSlider').append(addElement);
			slider.find('ul.effectSlider').css('width', ((slideCount + 1) * slideWidth) + 'px');
			liAdded = 'right';
			move = slideWidth;
			dir = '+';
		}
		
		if (!continous)
		{
			slider.find('ul.effectSlider').animate({
							'left' : dir + '=' + (move),
						}, speed, style, function()
						{
						  if (!fadein) enabled = true;
						});
		}
		else
		{
			slider.find('ul.effectSlider').animate({
							'left' : '-=' + (slideWidth),
						}, speed, style, function()
						{
						  	if (!fadein) enabled = true;
							if ((actualSlide + 1)== slideCount) 
							{
								slider.find('ul.effectSlider').css('left', 0);
							}
						});
		}
		
		if (liAdded)
		{
			slider.find('ul.effectSlider').css({left : 0});
			slider.find('li.temporary').remove();
			slider.find('ul.effectSlider').css('width', (slideWidth * slideCount) + 'px');
			liAdded = '';
		}
	}
  
   if (direction == 'left')
   {
		var move = slideWidth * steps;
		var dir = '+';
		if (shortjump && actualSlide == 1 && temp == slideCount)
		{
			var content = slider.find('li.slide-item:first-child').html();
			var addElement = '<li class="item_0 temporary slide-item" style="display:inline; margin-right:5px">' + content + '</li>';
			slider.find('ul.effectSlider').prepend(addElement);
			slider.find('ul.effectSlider').css('width', ((slideCount + 1) * slideWidth) + 'px');
			liAdded = 'left';
			move = slideWidth;
			dir = '-';
		}
		slider.find('ul.effectSlider').animate({
						'left' : dir + '=' + (move),
					}, speed, style, function()
					{
					  if (!fadein) enabled = true;
					});
		if (liAdded)
		{
			slider.find('ul.effectSlider').css('left', '0');
			slider.find('li.temporary').remove();
			slider.find('ul.effectSlider').css('width', (slideWidth * slideCount) + 'px');
			liAdded = '';
		}
   }
   
   if (fadein)
   {
	   if (slider.find('.slide-item').hasClass('item_'+ actualSlide))
	   {
			if (continous && (actualSlide + 1) == slideCount)
				 tofade = slider.find('.item_' + (slideCount + 1));
			else tofade = slider.find('.item_'+ actualSlide);
			enabled = false;
			tofade.animate({'opacity' : '0.0'}, 1, 'linear', function(){$(this).delay(delay).animate({'opacity' : '+=1'}, fadein_speed, 'linear', function(){enabled = true; });});
	   }
  	}
  
  	refreshNumbers();
  	temp = actualSlide;
}
	
function refreshNumbers()
{
   var fnd = slider.find('#slideNumbers');
   if (fnd.length)
   {
	   fnd.find('.sl-number-checked').removeClass('sl-number-checked');
	   fnd.find('#sl-button_' + actualSlide).addClass('sl-number-checked');
   }
}

$('#movieBoxSlider').ready(function()
{
	slideCount = $('li.slide-item').length;
	slider = $(this);
	slideWidth = parseInt(slider.find('ul.effectSlider').css('width'));
	slider.find('ul.effectSlider').css('width', (slideWidth * slideCount) + 'px');
	
	if (!added)
	{
		prepare();
		added = true;
	}
	
	slider.find('li.slide-item').live('mouseenter', function()
	{
		jump = false;
	});
	
	slider.find('li.slide-item').live('mouseleave', function()
	{
		jump = true;
	});
	
	if (clickable)
	{
		slider.find('li.slide-item').live('click', function()
		{
			if (auto) auto = false;
			else
			{
				auto = true;
				autoFlip();
			}
		});
	}
	
	$('.sl-number-clickable').live('click', function()
	{
		if (!enabled) return false;
		if (clickable) jump = false;
		else auto = false;
		actualSlide = parseInt($(this).html());
		slideFlip();
		return false;
	});
	
	$('#nextSlide').live('click', function()
	{
		if (!enabled) return false;
		if (clickable) jump = false;
		else auto = false;
		actualSlide++;
		dirbt = 'right';
		slideFlip();
		return false;
	});
	
	$('#prevSlide').live('click', function()
	{
		if (!enabled) return false;
		if (clickable) jump = false;
		else auto = false;
		actualSlide--;
		dirbt = 'left';
		slideFlip();
		return false;
	});
	
	tm = setTimeout(autoFlip, autodelay);
});


