function fixDivBlocco  (blocco){
		var d = $(blocco);
		
		if (d) {
			if(!d.top || d.top!=document.viewport.getScrollOffsets().top){
				d.top = document.viewport.getScrollOffsets().top;
				//fixCentraVertBlocco(blocco);
				d.setStyle({
					//top: document.viewport.getScrollOffsets().top+'px',
					height: (document.viewport.getScrollOffsets().top+document.viewport.getDimensions().height) +"px",
					width: (document.viewport.getScrollOffsets().left+document.viewport.getDimensions().width) +"px"
				});
			}
			//d.top = window.scrollY;
			setTimeout ('fixDivBlocco("'+blocco+'")',30);
		}
		
		/*
		alert(d.getHeight());
		alert( Element.extend(document.body).getHeight() );
		alert( document.viewport.getDimensions().height );
		alert( document.viewport.getHeight() );
		alert( document.scrollHeight );
		*/
	}
	
	function fixBloccoSempreCentrato(blocco){
		var d = $(blocco);
		if (d) {
			//fixDimensioniImmagine();
			if( !d.__top || d.__top!=document.viewport.getScrollOffsets().top){
				d.__top = document.viewport.getScrollOffsets().top;
				fixCentraVertBlocco(blocco);
			}
			if( !d.__left || d.__left!=document.viewport.getScrollOffsets().left){
				d.__left = document.viewport.getScrollOffsets().left;
				fixCentraOrizBlocco(blocco);
			}
			setTimeout ('fixBloccoSempreCentrato("'+blocco+'")',50);
		}
	}
	
	function fixCentraOrizBlocco(blocco){
		var d = $(blocco);
		if (d) {
			var l = d.getWidth ();
			var l2 = document.viewport.getWidth();
			d.setStyle({ left : (  (l2/2)-(l/2))+'px'  });
		}
	}
	
	function fixCentraVertBlocco(blocco){
		var d = $(blocco);
		if (d) {
			var l = d.getHeight ();
			var l2 = document.viewport.getDimensions().height;
			var newTop= document.viewport.getScrollOffsets().top + (l2/2)-(l/2);
			/*
			Effect.Move( d, {
				x: 0,
				y: newTop,
				mode: 'absolute'
			});
			*/
			//new Effect.Move(d, { x: d.viewportOffset().left, y: newTop, mode: 'absolute' });
			d.setStyle({ top : newTop+'px'  });
			
		}
	}
	
	function fixDimensioniImmagine(){
		var i = $('__immagine_popup');
		if( i.getHeight() > document.viewport.getDimensions().height*0.9){
			var k= (document.viewport.getDimensions().height*0.9) / (i.getHeight());
			i.setStyle({ height : (document.viewport.getDimensions().height*0.9)+'px', width: ((i.getWidth()*k)/1)+"px" });
			
		}
	}
	
	function pushImageInPopup(obj){
		$('divBloccoFoto').hide();
		var i = $('__immagine_popup');
		//alert(i.getWidth());
		//i.setStyle({ width : (i.getWidth()/2)+'px' });
		fixCentraOrizBlocco('__immagine_popup');
		fixCentraVertBlocco('__immagine_popup');
		i.setStyle({ visibility: 'visible' });
		//fixBloccoSempreVertCentrato('__immagine_popup');
		fixBloccoSempreCentrato('__immagine_popup');
	}
	
	function popImageOfPopup(obj){
		$('__immagine_popup').remove();
		fixCentraOrizBlocco('divBloccoFoto');
		fixCentraVertBlocco('divBloccoFoto');
		$('divBloccoFoto').show();
		Effect.Shrink('divBloccoFoto',{
			duration: 0.2,
			afterFinish: function(){
				$('divBloccoFoto').remove();
				$('divBlocco').remove();
			}
		});
	}
	
	function popupImages (obj) {
		//document.body.scroll="no";
		// pre carico la immagine
		var i = new Element('img',{
			id: '__immagine_popup',
			src: obj+'?'+new Date().getTime(),
			'class': 'js_style_foto_img',
			visibility: 'hidden'
		});
		i.observe('click', function(evt){
			popImageOfPopup(evt.element());
		});
		Element.insert (document.body, {top:i});
		i.observe ('load', function(evt){
			popupImagesLoaded(evt.element());					
		});
		//popupImagesUntilLoaded(i.id)
	}
	
	function popupImagesUntilLoaded(img){
		if ($(img))	{
			var i = $(img);
			if(	i.getWidth()>80 && i.getHeight()>80){
				alert('OK '+i.getWidth()+'x'+i.getHeight());
				popupImagesLoaded(i);
				
			}else{
				alert('occorre aspettare');
				setTimeout ('popupImagesUntilLoaded('+img+');',200);	
			}
		}
	}
	
	function popupImagesLoaded(img) {
		var i = img;
		var obj = i.src;
		fixDimensioniImmagine();
		// 
		var divBlocco = new Element('div', {
			'class':'js_style',
			id: 'divBlocco'
			}
		);
		// popImageOfPopup
		divBlocco.observe('click', function(evt){
			if($('__immagine_popup')){
				popImageOfPopup( $('__immagine_popup') );
			}									
		});
		Element.insert (document.body, {top:divBlocco});
		divBlocco.setOpacity (0.8);
		fixDivBlocco('divBlocco');
		var divBloccoFoto = new Element('div', {
			'class':'js_style_foto',
			id: 'divBloccoFoto'
			}
		);
		divBloccoFoto.setStyle({
			width: i.getWidth()+"px",
			height: i.getHeight()+"px"
		});
		divBloccoFoto.hide();
		Element.insert (document.body, {top:divBloccoFoto});
		//divBloccoFoto.absolutize();
		fixCentraOrizBlocco('divBloccoFoto');
		fixCentraVertBlocco('divBloccoFoto');
		Effect.Grow('divBloccoFoto',{ 
			duration: 0.2,
			afterFinish: function(){
				pushImageInPopup(obj);
			}
		});
		//fixDivBlocco('divBloccoFoto');
		//var b = Element.extend(document.body);
		//b.scroll = 'no';
		//window.scrollbars = false;
		//document.body.scroll="no";
		//document.body.setAttribute("scroll","no");
	}