// variables
var all_slides   = 0;
var slides       = 0;
var currentSlide = 1;

// init
function initSlideshow () {
	// calculate and apply width for slider div	
	all_slides   = jQuery.makeArray($("#slider .slide"));
	slides       = all_slides.length;
	$("#slider").css("width", slides * 700);
	
	// bind click listener to arrows
	$("#button_left").bind("click", function(e){
		slideRight();
		showHideArrows();
		resetTimer();
	});
	$("#button_right").bind("click", function(e){
		slideLeft();
		showHideArrows();
		resetTimer();
	});
	
	// hover
	$("#button_left").bind("mouseenter", function(e){
		$(this).find('span').fadeIn("fast");
	});
	$("#button_left").bind("mouseleave", function(e){
		$(this).find('span').fadeOut("fast");
	});
	$("#button_right").bind("mouseenter", function(e){
		$(this).find('span').fadeIn("fast");
	});
	$("#button_right").bind("mouseleave", function(e){
		$(this).find('span').fadeOut("fast");
	});
}

// slide right
function slideRight() {
	$("#slider").animate({
			"left" : "+=700px"
		},
		"slow",
		"easeInOutCirc"
	);
	currentSlide--;
}

// slide left
function slideLeft() {
	$("#slider").animate({
			"left" : "-=700px"
		},
		"slow",
		"easeInOutCirc"
	);
	currentSlide++;
}

// rewind
function rewind() {
	var beginning = (currentSlide - 1) * 700;
	$("#slider").animate({
			"left" : "+=" + beginning + "px"
		},
		"slow",
		"easeInOutCirc"
	);
	currentSlide = 1;
}

// show/hide arrows
function showHideArrows() {
	if (currentSlide == 1) {
		$("#button_left").fadeOut();
		$("#button_right:hidden").fadeIn();
	} 
	else if (currentSlide == slides) {
		$("#button_right").fadeOut();
		$("#button_left:hidden").fadeIn();
	}
	else {
		$("#button_left:hidden").fadeIn();
		$("#button_right:hidden").fadeIn();
	}
}

// reset timer
function resetTimer() {
	timer.stop();
	// timer.reset(8000);
}

// init timer
function initTimer() {
	$.timer(8000, function (timer) {
		if (currentSlide == slides) {
			rewind();
			showHideArrows();
		} else {
			slideLeft();
			showHideArrows();
		}
	});
}


$(document).ready(function(){
	// init
	initSlideshow();
	showHideArrows();
	initTimer();
});