/*
Slider by Redd, con controllo di fine corsa.

Il contenitore serve per avere posizione relativa e overflow hidden, il contenuto posizione assoluta.

howmuch è il numero di pixel di cui slidare, 
time è quanto tempo ci impiega a slidare,
slidable è il nome dell'elemento da slidare
pagetoload è la pagina da caricare alla fine dello slide
*/

var posiz;
var speed;
var littlecontainer;
pag=1;
var pagmax;
pagmin=1;

/*Slida a sinistra la galleria*/
function prox(howmuch,time,slidabile,pagetoload) {
	 littlecontainer= slidabile;
	 speed=time;
	 /* Calcolo quanto è largo l'elemento da spostare rispetto al contenitore */
	 pagmax=document.getElementById(littlecontainer).offsetWidth /howmuch;
	 
	 if (pag < pagmax)
	 {
	   posiz= document.getElementById(littlecontainer).offsetLeft;
	   var larghezzatuttefoto= document.getElementById(littlecontainer).offsetWidth;
	   /* Calcolo se la galleria in questo momento è gia' a fine corsa*/
	   var spostato= larghezzatuttefoto - (-posiz+howmuch);	
	   
	   /* Se non lo è*/
	   if (spostato > 0)
	   {
		   /* Mostro la freccia che slida verso destra*/
		   $("freccia-sinistra").show();
		   /* Aumento il valore della pagina*/
		   pag++;
		   var frame = 0;
		   for(fade =howmuch; fade > 0; fade--)
		   { 
		     xx= setTimeout("slideLeft()", (speed*frame));
		     frame++;
	       } 
       } 
	   /* Se sono gia alla pagina massima nascondo la freccia che slida verso sinistra*/
	   if (pag == pagmax) {  $("freccia-destra").hide(); } 
	 }
} 
 
 
/*Slida a sinistra e si segna di essere scattato di una posizione a sinistra*/
function slideLeft() {
	 posiz= (posiz) -1;
	 document.getElementById(littlecontainer).style.left = (posiz)+"px";  
} 
 
  
/*Slida a destra la galleria*/
function prev(howmuch,time,slidabile) {
	/*Se la pagina in cui sono non è la prima*/
	 if ( pag > pagmin) 
	 {
	   littlecontainer= slidabile;
	   speed=time;
	   var posiz= document.getElementById(littlecontainer).offsetLeft;
	   if (posiz < 0)
	   {
		 $("freccia-destra").show();   
	     pag--;
         var frame = 0;
	     for(fade = howmuch; fade > 0; fade--)
		 { 
			 xx= setTimeout("slideRight()", (speed*frame));
			 frame++;
		 }
       }
	   /*Se sono gia alla pagina minima nascondo la freccia che slida verso destra*/
	   if (pag == pagmin) {  $("freccia-sinistra").hide(); }   
	 }	
}
  
  
/*Slida a destra e si segna di essere scattato di una posizione a sinistra*/
function slideRight() {
	 posiz= (posiz) +1;
	 document.getElementById(littlecontainer).style.left = (posiz)+"px";  
} 


/*Script slida menu e poi carica pagina con scriptaculous funzionante, serve una variabile esterna in cui memorizzare la pagina da caricare perche afterfinish di script non funzia se richiama una funzione direttamente*/
var pagetoloadforscriptafterfinish;

/*slide e carica pagina, con afterFinish*/
function slidemenu(whatslide,howmuchslide,time,wheresubmenu,submenuname,pagetoload){
	pagetoloadforscriptafterfinish=pagetoload;
	document.getElementById(wheresubmenu).innerHTML=document.getElementById(submenuname).innerHTML;
	new Effect.Move(whatslide, { x: howmuchslide, duration: time, afterFinish:subsub });  // after finish non funzia se chiama una funzione con parametri!	
}


/*Funzione esterna richiamata per poter caricare la pagina dopo lo slide del menu*/
var subsub = function(){
	window.location.href=pagetoloadforscriptafterfinish;
} 


/*Visualizza nascondi campo (per privacy o simili)*/
function interruttore(idSelettore, idBersaglio) {
	if (document.getElementById(idSelettore).checked) {
		classe(idBersaglio, 'privacyOpen');
		} 
	else {
		classe(idBersaglio, 'privacyClosed');
	    }
}


/*Imposta la classe di un elemento*/  
function classe(id, nomeClasse) {
	var element = document.getElementById(id);  
	element.className = nomeClasse;
}
 
 
/*Visualizza overlayer*/
function visualizza(oggetto) {
	var element = document.getElementById(oggetto);
	element.style.display='block';
}
 
 
/*Nasconde overlayer*/
function nascondi(oggetto) {
	var element = document.getElementById(oggetto);
	element.style.display='none';
}