


var sliderIntervalMillis  = 7000;  //millisecondi tra una foto e l'altra
//frazione di sliderIntervalMillis per il fade in (range TEORICO 0 - 1) 
//N.B.= E' bene fare in modo che la somma dei 2 tempi di fading 1) NON superi sliderIntervalMillis 2)Sia usabile e lasci il tempo all'utente di vedere la slide,restando, ad esempio SOTTO la metà del tempo totale.

var sliderIntervalFadeInFraction = 0.25;  
//frazione di sliderIntervalMillis per il fade out (range TEORICO 0 - 1)
//N.B.= E' bene fare in modo che la somma dei 2 tempi di fading 1) NON superi sliderIntervalMillis 2)Sia usabile e lasci il tempo all'utente di vedere la slide,restando, ad esempio SOTTO la metà del tempo totale.
var sliderIntervalFadeOutFraction = 0.25; 


$(document).ready(function(){
  var currentPosition = 0;
  var slideWidth = 480;
  var slides = $('.slide');
  var numberOfSlides = slides.length;
  
  var isMouseOverControls = false;

  // Remove scrollbar in JS
  $('#slidesContainer').css('overflow', 'hidden');

  // Wrap all .slides with #slideInner div
  slides
    .wrapAll('<div id="slideInner"></div>')
    // Float left to display horizontally, readjust .slides width
	.css({
      'float' : 'left',
      'width' : slideWidth
    });

  // Set #slideInner width equal to total width of all slides
  $('#slideInner').css('width', slideWidth * numberOfSlides);

  // Insert controls in the DOM
  $('#slideshow')
    .prepend('<span class="control" id="leftControl">Clicking moves left</span>')
    .append('<span class="control" id="rightControl">Clicking moves right</span>');

  // Hide left arrow control on first load
  manageControls(currentPosition);
  
  var mySlideTimer =null;
  
  $(".control").mouseover(function(e)
    {
    //$(this).addClass("over");
	isMouseOverControls = true;
    });

	$(".control").mouseout(function(e)
    {
    //$(this).removeClass("over");
	isMouseOverControls = false;
    });

  // Create event listeners for .controls clicks
  $('.control')
    .bind('click', function(){
    // Determine new position
	currentPosition = ($(this).attr('id')=='rightControl') ? getImageIndex(+1) : getImageIndex(-1);
    if (isMouseOverControls){
		clearInterval(mySlideTimer);
	}
	// Hide / show controls
    manageControls(currentPosition);
	
	//controlla il fading
	//$('#slideInner').fadeTo((sliderIntervalFadeInFraction * sliderIntervalMillis),0.01, function() {
	//	$('#slideInner').css('marginLeft',  slideWidth*(-currentPosition));
	//	$('#slideInner').fadeTo((sliderIntervalFadeInFraction * sliderIntervalMillis),0.99);
	//});
	
	
	//controlla lo spostamento orizzontale (????)
	
	if (currentPosition == 0) {
		$('#slideInner').css('marginLeft', 0);
	}else
    {
	// Move slideInner using margin-left
    $('#slideInner').animate({
      'marginLeft' : slideWidth*(-currentPosition),
	  'opacity': 1, 
	  'top' : '-10px'
    },1000);
	}
	

  });

  
  
  
  function autoRotateSlide(){
	$('#rightControl').click();
  }
  mySlideTimer = setInterval (autoRotateSlide,sliderIntervalMillis);
  
  var imgCounter = 0;
  
function getImageIndex (direction){

var index = currentPosition;
var howManyImages = numberOfSlides;

if (direction == 0){ 
	return index;
}

if (direction > 0){
	imgCounter++;
}else{
	imgCounter--;
}

index = (Math.abs (imgCounter) % howManyImages);

if (index == 0) { //fine del giro
	return index;
}
if (imgCounter > 0) { //il modulo va già bene cosi'
	return index; 
}

if (imgCounter < 0) { //il modulo va complementato
	return  (howManyImages - index); 
}

return index; //should never execute...



}//End getImageIndex 
  
  // manageControls: Hides and Shows controls depending on currentPosition
  function manageControls(position){
    // Hide left arrow if position is first slide
/*	if(position==0){ 
		//$('#leftControl').hide() 
	} else{ 
		$('#leftControl').show() 
	}*/
	$('#leftControl').show() 
	// Hide right arrow if position is last slide
   /* if(position==numberOfSlides-1){ 
		//$('#rightControl').hide() 
	} else{ 
		$('#rightControl').show() 
		}*/
	$('#rightControl').show() 	
  }

  
});

