var SLIDETIMER = 2;
var SLIDESPEED =2;
var SCROLLTIMER = 2;
var SCROLLSPEED = 2;
var STARTINGOPACITY = 30;


//MR  non  modificare valore BlankDiv! Non è costante per settare programma! Deve essere = 1
var BlankDiv = 1;
// handles section to section scrolling of the content //
function slideContent(id,prefix,timer) {
  var div = document.getElementById(id);
  var slider = div.parentNode;
  var parSlideSpeed = SLIDESPEED;
  clearInterval(slider.timer);
  slider.section = parseInt(id.replace(/\D/g,''));
  slider.target = div.offsetTop;
    // elimina vuoti //
 //if (div.innerHTML=="") {div.style.display='none';} ;
 // MR se trovo un contenuto vuoto 
  if (div.innerHTML=="") 
  {
  autoScroll(slider.id,prefix,timer);
  BlankDiv = BlankDiv + 1;
  }
  else
  {
  slider.style.top = slider.style.top || '0px';
  slider.current = slider.style.top.replace('px','');
  slider.direction = (Math.abs(slider.current) > slider.target) ? 1 : -1;
  //MR  FISSATA DIREZIONE VERSO IL BASSO
  //slider.direction = -1;
  slider.style.opacity = STARTINGOPACITY * .02;
  slider.style.filter = 'alpha(opacity=' + STARTINGOPACITY + ')';
  slider.timer = setInterval( function() { slideAnimate(slider,prefix,timer,parSlideSpeed) }, SLIDETIMER);
}
	
}

function slideAnimate(slider,prefix,timer,parSlideSpeed) {
  var curr = Math.abs(slider.current);
  var tar = Math.abs(slider.target);
  var dir = slider.direction;
  var offset = slider.offsetHeight;
	//alert( 'tar:' + tar + '|curr' + curr + '|dir:' + dir + '|offset:' + offset);

	// fissa il top dello SLIDER al target e termina la ripetizione della function slideAnimate
	// MR per farlo a rotazione senza riavvolgimento stravolgo la logica del JAVASCRIPT , questo perchè non voglio il riavvolgimento
	if (dir == -1) // condizione NORMALE , non sono ancora al "capolinea"
	{
		if(tar - curr <= parSlideSpeed ) 
			{
			
		    slider.style.top = (slider.target * -1) + 'px';
			slider.style.opacity = 1;
			slider.style.filter = 'alpha(opacity=100)';
		    clearInterval(slider.timer);
			if(slider.autoscroll) 
				{
					setTimeout( function() { autoScroll(slider.id,prefix,timer) }, timer * 2200);
				}
			} 
		else 
		{
		var pos =  slider.current - parSlideSpeed;
	    slider.current = pos;
	    slider.style.top = pos + 'px';
		}
	}
	else //capolinea
	{

		if(curr - tar<= parSlideSpeed ) 
			{//alert('1' + eval(curr - tar) );
			
		    slider.style.top = (slider.target * -1) + 'px';
			slider.style.opacity = 1;
			slider.style.filter = 'alpha(opacity=100)';
		    clearInterval(slider.timer);
			if(slider.autoscroll) 
				{
					setTimeout( function() { autoScroll(slider.id,prefix,timer) }, timer * 2200);
				}
			} 
		else 
			{//alert('2');
			var pos;
			if (offset - curr <= parSlideSpeed )
				{pos = 20 ;
				slider.current = pos;
				//MR aggiunto il '-'  in modo tale da partire a visualizzare il DIV padre piu' in alto  del primo DIV figlio
				slider.style.top = '-' + pos + 'px';}
			else
				{pos =  slider.current - parSlideSpeed;
				slider.current = pos;
				slider.style.top = pos + 'px';
				}
		    
			}
	
	}
	/*
	//SOLUZIONE INTERMEDIA
	if((tar - curr <= parSlideSpeed && dir == -1) 
		{
		
	    slider.style.top = (slider.target * -1) + 'px';
		slider.style.opacity = 1;
		slider.style.filter = 'alpha(opacity=100)';
	    clearInterval(slider.timer);
		if(slider.autoscroll) 
			{
				setTimeout( function() { autoScroll(slider.id,prefix,timer) }, timer * 2200);
			}
		} 
	else if (offset - curr <= parSlideSpeed && dir == 1)
		{
		slider.style.top = (slider.target * -1) + 'px';
		slider.style.opacity = 1;
		slider.style.filter = 'alpha(opacity=100)';
	    clearInterval(slider.timer);
		if(slider.autoscroll) 
			{
				setTimeout( function() { autoScroll(slider.id,prefix,timer) }, timer * 2200);
			}
		}
	else 
		{
		
		var pos =  slider.current - parSlideSpeed;
	    slider.current = pos;
	    slider.style.top = pos + 'px';
		}
		*/
	/* CON Questa porzione di codice si ottiene il RIAVVOLGIMENTO
		if((tar - curr <= SLIDESPEED && dir == -1) || (curr - tar <= SLIDESPEED && dir == 1)) 
		{
		alert("1");
	    slider.style.top = (slider.target * -1) + 'px';
		slider.style.opacity = 1;
		slider.style.filter = 'alpha(opacity=100)';
	    clearInterval(slider.timer);
		if(slider.autoscroll) 
			{
				setTimeout( function() { autoScroll(slider.id,prefix,timer) }, timer * 2200);
			}
		} 
	else 
		{
		alert("2");
		var pos = (dir == 1) ? parseInt(slider.current) + SLIDESPEED : slider.current - SLIDESPEED;
	    slider.current = pos;
	    slider.style.top = pos + 'px';
		}*/
  
}

// handles manual scrolling of the content //
function scrollContent(id,dir) {
  var div = document.getElementById(id);
  clearInterval(div.timer);
  var sections = div.getElementsByTagName('div');
  var length = sections.length;
  var limit;
  if(dir == -1) {
    limit = 0;
  } else {
    if(length > 1) {
      limit = sections[length-1].offsetTop;
    } else {
      limit = sections[length-1].offsetHeight - div.parentNode.offsetHeight + 20;
    }
  }
  div.style.opacity = STARTINGOPACITY * .01;
  div.style.filter = 'alpha(opacity=' + STARTINGOPACITY + ')';
  div.timer = setInterval( function() { scrollAnimate(div,dir,limit) }, SCROLLTIMER);

}

function scrollAnimate(div,dir,limit) {
  div.style.top = div.style.top || '0px';
  var top = div.style.top.replace('px','');
  if(dir == 1) {
	if(limit - Math.abs(top) <= SCROLLSPEED) {
	  cancelScroll(div.id);
	  div.style.top = '-' + limit + 'px';
	} else {
	  div.style.top = top - SCROLLSPEED + 'px';
	}
  } else {
	if(Math.abs(top) - limit <= SCROLLSPEED) {
	  cancelScroll(div.id);
	  div.style.top = limit + 'px';
	} else {
	  div.style.top = parseInt(top) + SCROLLSPEED + 'px';
	}
  }
}

// cancel the scrolling on mouseout //
function cancelScroll(id) {
  var div = document.getElementById(id);
  div.style.opacity = 1;
  div.style.filter = 'alpha(opacity=100)';
  clearTimeout(div.timer);
}

// initiate auto scrolling //
function autoScroll(id,prefix,timer,restart) {
	
  var div = document.getElementById(id);
  
  div.autoscroll = (!div.autoscroll && !restart) ? false : true;
  if(div.autoscroll) 
  {
    var sections = div.getElementsByTagName('div');
    var length = sections.length;
    
	// FORSE CANCELLARE QUESTE 2 righe SOTTO
	// controlliamo non si tratti di un DIV vuoto 
	//var nxtDiv = (div.section && div.section < length) ? prefix + '-' + eval(div.section + 1): prefix + '-1'

	div.section = (div.section && div.section < length) ? div.section + 1 : 1;
	
	/*if ( nxtDiv.innerHTML=="") 
	{ div.s}
	else if (div.section && div.section < length)
	{div.section = div.section + 1}
	else
	{div.section = 1;}
*/	
//alert(div.section);
	
    slideContent(prefix + '-' + div.section,prefix,timer);
	
  }
}

// cancel automatic scrolling //
function cancelAutoScroll(id) {
  var div = document.getElementById(id);
  div.autoscroll = false;
}