var currentSlide = 0;
var slideWidth = 529;
var isSliding = false;
var slideDuration = 500;
var slidePause = 6000;
var sliderHasLooped = false;
var slideCount = 0;
var sliderTimeout = 0;
var lastSlide = 0;

function generateSlider() {
	jQuery('#sale').css('position', 'relative');
	jQuery('#sale').css('overflow', 'hidden');
	jQuery('#sale').css('width', '529px');
	jQuery('#sale').css('height', '248px');
	jQuery('#sale div.adSlide').css('position', 'absolute');
		
	jQuery('#sale ul a').each(function(index) {
		$(this).click(function(){
			clearTimeout(sliderTimeout);
			sliderHasLooped = true;
			gotoSlide(index);
			return false;
		});
	});
	
	slideCount = jQuery('#sale div.adSlide').length;
	sliderTimeout = setTimeout(nextSlide, slidePause);
}

function nextSlide() {
	if (isSliding) return;
	
	var nextSlide = currentSlide + 1;
	if (nextSlide >= slideCount) {
		nextSlide = 0;
	}
	
	gotoSlide(nextSlide);
}

function gotoSlide(nextSlide) {
	if (isSliding || nextSlide == currentSlide) return;
	isSliding = true;
	
	if (currentSlide == nextSlide+1) {
		jQuery('#sale div.adSlide:eq(' + currentSlide + ')').css('left', 0);
		jQuery('#sale div.adSlide:eq(' + currentSlide + ')').animate({left:slideWidth}, slideDuration, nextSlide_complete);
		jQuery('#sale div.adSlide:eq(' + nextSlide + ')').css('left', -slideWidth);
		jQuery('#sale div.adSlide:eq(' + nextSlide + ')').css('display', 'block');
		jQuery('#sale div.adSlide:eq(' + nextSlide + ')').animate({left:0}, slideDuration);
	} else {
		jQuery('#sale div.adSlide:eq(' + currentSlide + ')').css('left', 0);
		jQuery('#sale div.adSlide:eq(' + currentSlide + ')').animate({left:-slideWidth}, slideDuration, nextSlide_complete);
		jQuery('#sale div.adSlide:eq(' + nextSlide + ')').css('left', slideWidth);
		jQuery('#sale div.adSlide:eq(' + nextSlide + ')').css('display', 'block');
		jQuery('#sale div.adSlide:eq(' + nextSlide + ')').animate({left:0}, slideDuration);
	}
	
	jQuery('#sale ul a').removeClass('active');
	jQuery('#sale ul a:eq('+nextSlide+')').addClass('active');
	
	lastSlide = currentSlide;
	currentSlide = nextSlide;
}

function nextSlide_complete() {
	isSliding = false;
	
	jQuery('#sale div.adSlide:eq(' + currentSlide + ')').css('left', 0);
	jQuery('#sale div.adSlide:eq(' + lastSlide + ')').css('display', 'none');
	
	if (currentSlide >= slideCount) {
		currentSlide = 0;
		sliderHasLooped = true;
	}	
		
	if (!sliderHasLooped) {
		sliderTimeout = setTimeout(nextSlide, slidePause);
	}
}

$(document).ready(generateSlider);
