var Gallery={
		ids : new Hash(),
		cont : new Hash(),
		addFoto:function(id, src){
			contpart = this.cont.get(id);
			if(!contpart){
				contpart  = []; 
				this.ids.set(id, 0);
				this.cont.set(id,contpart);
			} 
			contpart.push(src);
		},
		prevFoto:function(id){

			contpart = this.cont.get(id);
			cnt = this.ids.get(id);
			ncnt = Math.max(cnt-1, 0);
			this.ids.set(id, ncnt); 
			this.seleziona(id, ncnt,contpart[ncnt],contpart.length);
			
			if(ncnt == 0){
				return 1;
			}else {
				return 0;
			}	
		},
		getFoto:function(id, ncnt){
			contpart = this.cont.get(id);
			this.ids.set(id, ncnt); 
			this.seleziona(id, ncnt,contpart[ncnt],contpart.length);
		},
		nextFoto:function(id){

			contpart = this.cont.get(id);
			cnt = this.ids.get(id);
			
			ncnt = Math.min(contpart.length-1, cnt+1);
			
			this.ids.set(id, ncnt); 

			this.seleziona(id, ncnt,contpart[ncnt],contpart.length );
			
			if(ncnt == contpart.length-1){
				return 1;
			}else{
				return 0;
			}
		},
		
		seleziona:function(id, key, src, tot){
			$$(".stru_div_"+id+"  .slide a").each(function(collegamento){
				collegamento.removeClassName("sel");
			});
			$("sel_"+id+"_"+key).addClassName("sel");
			el = $('stru_'+id);
			el.setAttribute("longdesc", src.longdesc);
			el.setAttribute("alt",  src.alt);
	    
			oldeffect = new Effect.Opacity(el, { from: 1, to: 0, duration: 0.5 });
	      
	      	var img = new Image();
	  	 	
	        img.onload=function(){
	        	oldeffect.cancel();
	        	el.src = img.src;
	        	
	        	new Effect.Opacity(el, { from: el.getStyle('opacity'), to: 1, duration: 0.5 });
	        	

	        	vis = 5; //deve essere sempre dispari (numero di spazi visualizzati)
	        	
	        	
	        	bordi = ((vis-1)/2); 

	        	dx = Math.min(key+bordi,tot-1) ;
	        	sx1 = Math.max(key-bordi, 0);
	        	sx2 = Math.max(dx-(bordi*2), 0);
	        	sx = Math.min(sx1, sx2);
	     
	    		$$(".stru_div_"+id+"  .slide").each(function(sli){
	    			new Effect.Move(sli, {mode: 'absolute',	duration: 0.3,  x: -(sx*43), y: 0, transition: Effect.Transitions.sinoidal});
	    		});		            				
	        	
	        };
	        img.src = src.src;		
		}
	};
