var current_slide   = -1;
var total_slides    = 4;
var aux_goto_pos    = 0;
var aux_inicial_pos = 0;
var aux_easing_time = 0;
var aux_current_pos = 0;
var moving = false;
 
var largura_divs = 127;
var tempo_easing = 1;
var tempo_refresh = 30;
 
var auto_animate = window.setInterval("update_slide()", 10000);
 
function update_slide() {
	var new_slide = (current_slide + 1) % total_slides;
	move_to_slide(new_slide, true);
}

function next_slide() {
	if(current_slide < (total_slides - 1)) {
		move_to_slide(current_slide + 1, false);
	}
}

function prev_slide() {
	if(current_slide > 0) {
		move_to_slide(current_slide - 1, false);
	}
}

 
function move_slide_position() {
	// Obter posição para o slide...
	var t = aux_easing_time;
	var b = aux_inicial_pos;
	var c = aux_goto_pos - aux_inicial_pos;
	var d = tempo_easing;
	
	// Easing algorithm
	t = t/d;
	var ts=(t)*t;
	var tc=ts*t;
	// var new_pos = b+c*(-2*tc + 3*ts);
	var new_pos =b+c*(-4*tc*ts + 15*ts*ts + -20*tc + 10*ts);
	
	// Andamos mesmo...
	var content_div = document.getElementById('slseccoes_content');
	content_div.style.left = ''+new_pos+'px';
	aux_current_pos = new_pos;
		
	aux_easing_time += tempo_refresh;
	if(aux_easing_time < d)
		window.setTimeout('move_slide_position()', tempo_refresh);
	else {
		//alert('Stoped at '+new_pos)	;	
		content_div.style.left = ''+aux_goto_pos+'px';
		moving = false;
		tempo_easing = 1500;
	}
}
 
function move_to_slide(slide, no_clear) {

	if(slide < 0) {
		slide = total_slides;
	}
	if(slide >= total_slides) {
		slide = 0;
	}

	// Se já cá estamos ou estamos a tratar disso, ignorar o click!
	if(slide == current_slide) {
		return;
	}
	
	if(no_clear != true)
		clearInterval(auto_animate);

	// Mover para o slide pretendido...
	aux_inicial_pos = (current_slide == -1 ? 0 : -1 * largura_divs * current_slide);
	aux_current_pos = aux_inicial_pos;
	aux_goto_pos    = (-1 * largura_divs * slide) - 1;
	aux_easing_time = 0;
	//alert("Moving from slide" + current_slide + " to slide " + slide);
	current_slide = slide;
	moving = true;
	//alert('Start moving from '+aux_inicial_pos+' to '+aux_goto_pos);
	move_slide_position();
}
