// -----------------------------------------------------------------------------------
//
//	Lightbox v2.03.3
//	by Lokesh Dhakar - http://www.huddletogether.com
//	5/21/06
//
//	For more information on this script, visit:
//	http://huddletogether.com/projects/lightbox2/
//
//	Licensed under the Creative Commons Attribution 2.5 License - http://creativecommons.org/licenses/by/2.5/
//	
//	Credit also due to those who have helped, inspired, and made their code available to the public.
//	Including: Scott Upton(uptonic.com), Peter-Paul Koch(quirksmode.com), Thomas Fuchs(mir.aculo.us), and others.
//
//
// -----------------------------------------------------------------------------------
/*

	Table of Contents
	-----------------
	Configuration
	Global Variables

	Extending Built-in Objects	
	- Object.extend(Element)
	- Array.prototype.removeDuplicates()
	- Array.prototype.empty()

	Lightbox Class Declaration
	- initialize()
	- updateImageList()
	- start()
	- changeImage()
	- resizeImageContainer()
	- showImage()
	- updateDetails()
	- updateNav()
	- enableKeyboardNav()
	- disableKeyboardNav()
	- keyboardAction()
	- preloadNeighborImages()
	- end()
	
	Miscellaneous Functions
	- getPageScroll()
	- getPageSize()
	- getKey()
	- listenKey()
	- showSelectBoxes()
	- hideSelectBoxes()
	- showFlash()
	- hideFlash()
	- pause()
	- initLightbox()
	
	Function Calls
	- addLoadEvent(initLightbox)
	
*/
// -----------------------------------------------------------------------------------

//
//	Configuration   
//
var lbOptions = {
	fileLoadingImage: "/img/loading.gif",
//	fileLogoFotogallery: "/res/img/loghi/logo_Fotogallery.png",		
//	fileVoidThumbnail: "/images/thumb_0.png",
	
	galleryContentTypeId: 'Media', // used for voting (galleria)
	fotoContentTypeId: 'Foto', // used for voting (foto)
	
	animate: true,			// toggles resizing animations
	overlayOpacity: 0.7,	// controls transparency of shadow overlay
	resizeSpeed: 7,		// controls the speed of the image resizing animations (1=slowest and 10=fastest)
	borderSize: 10,		//if you adjust the padding in the CSS, you will need to update this variable
	
	minImageWidth: 400,
	peProgressbarLbox: 0,
	peProgressvalLbox: 0,
	slideshowInterval: 4, // in seconds
	
	timer: 0 //per lightbox player
};

if (lbOptions.animate) {
	lbOptions.overlayDuration = 0.2;	// shadow fade in/out duration
	if (lbOptions.resizeSpeed > 10) { 
		lbOptions.resizeSpeed = 10;
	}
	if (lbOptions.resizeSpeed < 1) { 
		lbOptions.resizeSpeed = 1;
	}
	lbOptions.resizeDuration = (11 - lbOptions.resizeSpeed) * 0.15;
} else { 
	lbOptions.overlayDuration = 0;
	lbOptions.resizeDuration = 0;
}

// -----------------------------------------------------------------------------------

//
//	Additional methods for Element added by SU, Couloir
//	- further additions by Lokesh Dhakar (huddletogether.com)
//
Object.extend(Element, {
	getWidth: function(element) {
	   	element = $(element);
	   	return element.offsetWidth; 
	},
	setWidth: function(element,w) {
	   	element = $(element);
    	element.style.width = w +"px";
	},
	setHeight: function(element,h) {
   		element = $(element);
    	element.style.height = h +"px";
	},
	setTop: function(element,t) {
	   	element = $(element);
    	element.style.top = t +"px";
	},
	setLeft: function(element,l) {
	   	element = $(element);
    	element.style.left = l +"px";
	},
	setSrc: function(element,src) {
    	element = $(element);
    	element.src = src; 
	},
	setHref: function(element,href) {
    	element = $(element);
    	element.href = href; 
	},
	setInnerHTML: function(element,content) {
		element = $(element);
		element.innerHTML = content;
	},
	makeVisible: function(element) {
		element = $(element);
		element.style.visibility = '';		
	},
	makeHidden: function(element) {
		element = $(element);
		element.style.visibility = 'hidden';		
	}
});

// -----------------------------------------------------------------------------------

//
//	Extending built-in Array object
//	- array.removeDuplicates()
//	- array.empty()
//
Array.prototype.removeDuplicates = function () {
    for(i = 0; i < this.length; i++){
        for(j = this.length-1; j>i; j--){        
            if(this[i][0] == this[j][0]){
                this.splice(j,1);
            }
        }
    }
}

// -----------------------------------------------------------------------------------

Array.prototype.empty = function () {
	for(i = 0; i <= this.length; i++){
		this.shift();
	}
}

// -----------------------------------------------------------------------------------

//
//	Lightbox Class Declaration
//	- initialize()
//	- start()
//	- changeImage()
//	- resizeImageContainer()
//	- showImage()
//	- updateDetails()
//	- updateNav()
//	- enableKeyboardNav()
//	- disableKeyboardNav()
//	- keyboardNavAction()
//	- preloadNeighborImages()
//	- end()
//
//	Structuring of code inspired by Scott Upton (http://www.uptonic.com/)
//
var Lightbox = Class.create();

Lightbox.prototype = {

	initialize: function (lbOptions, flag) {
		this.lbOptions = lbOptions;
		this.flag = flag;
		this.slideshow = null;
		this.handlerStart = null;
		this.handlerStop = null;
		forcePreLinkDisplay=false;
		forceNextLinkDisplay=false;
		/////// OVERLAY div
		var objOverlay = document.createElement("div");
		objOverlay.setAttribute('id','overlay');
		objOverlay.style.display = 'none';

		var objBody = document.getElementsByTagName("body").item(0);
		objBody.appendChild(objOverlay);
		Event.observe('overlay', 'click', this.end.bind(this));
		
		hideSelectBoxes();
		hideFlash();

		////// LIGHTBOX div
		var objLightbox = document.createElement("div");
		objLightbox.setAttribute('id','lightbox');
		//objLightbox.style.display = 'none'; // problems when getting page height
		objLightbox.style.visibility = 'hidden';
		objBody.appendChild(objLightbox);
		Event.observe('lightbox', 'click', function(e) {	// close Lightbox if user clicks shadow overlay
			if (!e) var e = window.event;
			var clickObj = Event.element(e).id;
			if ( clickObj == 'lightbox') {
				this.end();
			}
		}.bindAsEventListener(this));
		
		

		/* costanti */
		this.VIDEO = 1;
		/* modifica 2008 04 01 - AGGIORNAMENTO PER playList.doPlayList()*/
		this.VIDEO_ADV = 2;
		this.VIDEO_FLASH = 3;
		/* fine modifica 2008 04 01 - AGGIORNAMENTO PER playList.doPlayList()*/
		
		var htmlString ='';
		
		
		htmlString += '<div class="box_LightContainer" id="LightContainer">';
	//	htmlString += '<div class="close"><a href="javascript:void(0);" id="pg_btn_Chiudi" class="lbAction" rel="deactivate">&nbsp;</a></div>';
		htmlString += '<div class="box_LightContent">';
		htmlString += '<!-- width = 410px - [image width] - 10 px	-->';
		htmlString += '<div class="fLeft" style="width: 215px;">';
		htmlString += '<h2 id="imageTitle1">Leaderboard</h2>';
		htmlString += '<!--	PARAGRAPH	-->';
		htmlString += '<div class="txt_Paragraph txtBox_cms" id="caption">';
		htmlString += '<p> </p>';
		htmlString += '	</div>';
		htmlString += '	<!--	end PARAGRAPH	-->';
		htmlString += '	</div>';
		if(flag == 0){
			htmlString += '<!--	IMAGE	-->';
			htmlString += '<div class="fRight" id="divImgSize" style="width: 185px;">';	
			htmlString += '<div class="imgBox">';
			htmlString += '<img id="img_main" alt="" src="/res_ext/img_185x261.jpg"/>';
			htmlString += '</div>';
			htmlString += '<div class="clear">&nbsp;</div>';
			htmlString += '</div>';
			htmlString += '<!--	end IMAGE	-->';
		} else if(flag == 1){
			htmlString += '<!--	VIDEO	-->';
			htmlString += '<div id="divImgSize" class="fRight" style="width: 185px;">';
			htmlString += '<div class="box_VideoContainer">';
			htmlString += '	<div id="box_Flash_03" class="box_Flash" style="width: 320px;">';
			htmlString += '		<script language="javascript">';
			htmlString += '		</script>';
			htmlString += '		<embed width="320" height="240" align="middle" type="application/x-shockwave-flash" salign="" flashvars="xml=http://stage.digitalia.it/Prodotto/24/24.xml" allowscriptaccess="sameDomain" allowfullscreen="true" menu="false" name="OggettoVideo_test" bgcolor="#ffffff" devicefont="false" wmode="transparent" scale="showall" loop="true" play="true" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="/res/swf/OggettoVideo_test.swf"/>';
			htmlString += '		<noscript> <object align="middle" id="schedaprodotto" height="240" width="320" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"><param value="sameDomain" name="allowScriptAccess"><param value="true" name="allowFullScreen"><param value="/res/swf/OggettoVideo_test.swf" name="movie"><param value="high" name="quality"><param value="#000000" name="bgcolor"><param value="xml=24.xml" name="flashVars"> <embed pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowFullScreen="true" allowScriptAccess="sameDomain" FlashVars="xml=24.xml" align="middle" name="OggettoVideo_test" height="240" width="320" bgcolor="#ffffff" quality="high" src="/res/swf/OggettoVideo_test.swf"></embed> </object></noscript>';
			htmlString += '	</div>';
			htmlString += '</div>';
			htmlString += '</div>';
			htmlString += '<!--	end VIDEO	-->';
		}	
		htmlString += '<div class="clear">&nbsp;</div>';
		htmlString += '</div>';	
		
		htmlString += '<div class="box_LightInfo" id="imageTitle2">';
		htmlString += '<div id="imageTitleBottom">LeaderBoard </div>';
		htmlString += '<div id="closeDiv" class="close"><a href="javascript:void(0);" id="pg_btn_Chiudi" class="lbAction" rel="deactivate"></a></div>';
		htmlString += '</div>';
		
		htmlString += '<div class="clear">&nbsp;</div>';	
		htmlString += '<div  id="prevLink" class="nav_Prev">Prev</div>';
		htmlString += '<div  id="nextLink" class="nav_Next">Next</div>';
		htmlString += '<div  id="prevActive" class="nav_Prev_Active" ></div>';
		htmlString += '<div  id="nextActive" class="nav_Next_Active" ></div>';
		
		
	
		htmlString += '</div>';
	
		htmlString += '<!--	end LIGHTBOX	-->';
		
		
		
		new Insertion.Top('lightbox', htmlString);

		

		if ((this.flag == 0) || (this.flag == 1)) {
			
			$('prevLink').style.display = 'none';
			$('nextLink').style.display = 'none';
			
			
			
			Event.observe('prevLink', 'mouseover', function() {
				forcePreLinkDisplay=true;	
$('prevLink').style.display = 'block';				
			}.bind(this));
			Event.observe('prevLink', 'mouseout', function() {
				forcePreLinkDisplay=false;
				//this.changeImage(2); return false;
			}.bind(this));		

			Event.observe('nextLink', 'mouseover', function() {
				forceNextLinkDisplay=true;
				$('nextLink').style.display = 'block';
			}.bind(this));
			Event.observe('nextLink', 'mouseout', function() {
				forceNextLinkDisplay=false;
				//this.changeImage(2); return false;
			}.bind(this));					
			
			
			Event.observe('prevActive', 'mouseover', function() {
					$('prevLink').style.display = 'block';
			
			}.bind(this));
			Event.observe('prevActive', 'mouseout', function() {
				if ( !forcePreLinkDisplay)
					{//new Effect.Fade('prevLink', { duration: 3.3 });
					$('prevLink').style.display = 'none';}
				//this.changeImage(2); return false;
			}.bind(this));		

			Event.observe('nextActive', 'mouseover', function() {
				$('nextLink').style.display = 'block';
					
			}.bind(this));
			Event.observe('nextActive', 'mouseout', function() {
				if ( !forcePreLinkDisplay)
					{$('nextLink').style.display = 'none';}
				//this.changeImage(2); return false;
			}.bind(this));					
			
			
			Event.observe('prevLink', 'click', function() {
				this.changeImage(this.activeImage - 1); return false;
				
				
			}.bind(this));
			Event.observe('nextLink', 'click', function() {
				this.changeImage(this.activeImage + 1); return false;
				
				
				//this.changeImage(2); return false;
			}.bind(this));			
			
			Event.observe('closeDiv', 'click', function(e) {	// close Lightbox if user clicks close button
			if (!e) var e = window.event;
			var clickObj = Event.element(e).id;
			if ( clickObj == 'closeDiv') {
				this.end();
			}
		}.bindAsEventListener(this));
			
	//		Event.observe('firstLink', 'click', function() {
	//			this.changeImage(0); return false;
	//		}.bind(this));

			//Event.observe('StartSlideshow', 'click', this.startSlideshow.bind(this));
//			this.handlerStart = this.startSlideshow.bind(this);
//			Event.observe('StartSlideshow', 'click', this.handlerStart);

			// rimuovo uno stylesheet che non mi serve.
			
			//alert('1');
			/*Event.observe('img_main', 'load', function() {
				// quando l'immagine si carica, estraggo le dimensioni e faccio il resize dei box di conseguenza.
				imgHeight=Element.getDimensions( 'img_main' ).height;
				imgWidth=Element.getDimensions( 'img_main' ).width;
			//	alert(imgHeight);
			//	alert(imgWidth);
				Element.setWidth('divImgSize', imgWidth);
				
				Element.setWidth('LightContainer', 280 + imgWidth);	
			
			//	Element.setWidth('video_image', 520);
				
				
			
				
				return false;
				
			}.bind(this));*/
			
		} // flag monitor
	//	Element.observe('pg_btn_Chiudi', 'click', this.end.bind(this));
		
	/*	var objBanner = $('bannerLB');
		$('spot').appendChild(objBanner);
		objBanner.show();*/

		// showing overlay lightbox div		
		this.arrayPageSize = getPageSize();
		this.arrayPageScroll = getPageScroll();
		var lightboxTop = this.arrayPageScroll[1] + (this.arrayPageSize[3] / 10);
		var lightboxLeft = this.arrayPageScroll[0];

		Element.setTop('lightbox', lightboxTop);
		Element.setLeft('lightbox', lightboxLeft);

		// stretch overlay to fill page and fade in
		this.resizeOverlay();
		
		new Effect.Appear('overlay', { duration: this.lbOptions.overlayDuration, 
			from: 0.0, to: this.lbOptions.overlayOpacity,
			afterFinish: function () {
//				Element.makeVisible('HeaderContainer');
			}.bind(this) 
		});

		
		/* serve per evitare uno strano effetto in IE che rendeva bianca la parte relativa ai comandi della parte principlae della pagina*/
		if ($('VideoCommandBox')) $('VideoCommandBox').style.display = "none";

		Element.makeVisible('lightbox');
	},
	
	start: function (pgOptions) {
		this.pgOptions = pgOptions;
		/*if (this.flag == 0){
		// immagini
			Event.observe('lastLink', 'click', function() {
				this.changeImage(this.pgOptions.images.length - 1); return false;
			}.bind(this));
		}*/
	
		this.changeImage(this.pgOptions.startFromIndex);
	},
	
	//
	//	changeImage()
	//	Hide most elements and preload image in preparation for resizing image container.
	//
	changeImage: function (imageNum) {	
	//alert('change image = ' + imageNum );
		if (!this.pgOptions) {
			return;
		}
		if (imageNum < 0 ) {
			imageNum = this.pgOptions.images.length - 1;
		}
		
		if ( imageNum >= this.pgOptions.images.length) {
			imageNum = 0;
		}
		this.activeImage = imageNum;
		
	//	$('bannerLB').src = '/spot_include.html';
		//window.alert("ricarico");
		currImage=this.pgOptions.images[this.activeImage];
		var htmlString1 ='';
		if(currImage.isImage == 1){
			
			htmlString1 += '<!--	IMAGE	-->';
			htmlString1 += '<div class="imgBox">';
			htmlString1 += '<img id="img_main" alt="" src=""/>';
			htmlString1 += '</div>';
			htmlString1 += '<div class="clear">&nbsp;</div>';
			htmlString1 += '<!--	end IMAGE	-->';
				
			Element.setInnerHTML('divImgSize',htmlString1);
			this.imgPreloader = new Image();
			// once image is preloaded, resize image container
			this.imgPreloader.onload = function () {
				
				Element.setSrc('img_main', currImage.src);
				Element.setInnerHTML('caption', currImage.caption);
				Element.setInnerHTML('imageTitle1', currImage.title);
				Element.setInnerHTML('imageTitleBottom', currImage.title);
				//window.alert("src=" + this.pgOptions.images[this.activeImage].src);
				imgHeight=this.imgPreloader.height;
				imgWidth=this.imgPreloader.width;
				// alert(imgHeight);
				// alert(imgWidth);
				Element.setWidth('divImgSize', imgWidth);
				Element.setWidth('LightContainer', 280 + imgWidth);
				//this.resizeImageContainer(800, 800);			
				this.imgPreloader.onload = function() {};	//	clear onLoad, IE behaves irratically with animated gifs otherwise 
			}.bind(this);
			
			//alert('carico l immagine=' + this.pgOptions.images[this.activeImage].src);
			this.imgPreloader.src = this.pgOptions.images[this.activeImage].src;
			
		} else {
				
			htmlString1 += '<!--	VIDEO	-->';
			htmlString1 += '	<div id="box_Flash_03" class="box_Flash" style="width: 320px;">';
			htmlString1 += '		<script language="javascript">';
			htmlString1 += '		</script>';
			htmlString1 += '		<embed width="320" height="240" align="middle" type="application/x-shockwave-flash" salign="" flashvars="xml=' +  currImage.src +'" allowscriptaccess="sameDomain" allowfullscreen="true" menu="false" name="OggettoVideo_test" bgcolor="#ffffff" devicefont="false" wmode="transparent" scale="showall" loop="true" play="true" pluginspage="http://www.macromedia.com/go/getflashplayer" quality="high" src="/res/swf/OggettoVideo_test.swf"/>';
			htmlString1 += '		<noscript> <object align="middle" id="schedaprodotto" height="240" width="320" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=7,0,0,0" classid="clsid:d27cdb6e-ae6d-11cf-96b8-444553540000"><param value="sameDomain" name="allowScriptAccess"><param value="true" name="allowFullScreen"><param value="/res/swf/OggettoVideo_test.swf" name="movie"><param value="high" name="quality"><param value="#000000" name="bgcolor"><param value="xml=24.xml" name="flashVars"> <embed pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" allowFullScreen="true" allowScriptAccess="sameDomain" FlashVars="xml=24.xml" align="middle" name="OggettoVideo_test" height="240" width="320" bgcolor="#ffffff" quality="high" src="/res/swf/OggettoVideo_test.swf"></embed> </object></noscript>';
			htmlString1 += '</div>';
			htmlString1 += '<!--	end VIDEO	-->';
			Element.setInnerHTML('divImgSize',htmlString1);
				
			//Element.setSrc('img_main', currImage.src);
				
			Element.setInnerHTML('caption', currImage.caption);
			Element.setInnerHTML('imageTitle1', currImage.title);
			Element.setInnerHTML('imageTitleBottom', currImage.title);
			Element.setWidth('divImgSize', 380);
			Element.setWidth('LightContainer', 280 + 380);	
			
		}

	},
	

	changeImageRelative: function (delta) {
		var imageIndex = this.activeImage + delta;
		if (imageIndex >= 0 && imageIndex < this.pgOptions.images.length) {
			this.changeImage(imageIndex);
		}
	},
	

	

	startSlideshow: function () {
		Event.stopObserving('StartSlideshow', 'click', this.handlerStart);

		$('StartSlideshow').hide();
		$('StopSlideshow').show();
		this.handlerStop = this.stopSlideshow.bind(this);
		Event.observe('StopSlideshow', 'click', this.handlerStop);

		this.slideshow = new PeriodicalExecuter(this.advanceSlideshow.bind(this), this.lbOptions.slideshowInterval);
	},
	
	stopSlideshow: function () {
		if (!this.pgOptions) {
			return;
		}
		if (this.pgOptions.images.length <= 1) {
			return;
		}
		
	
		Event.stopObserving('StopSlideshow', 'click', this.handlerStop);
		$('StopSlideshow').hide();
		$('StartSlideshow').show();
		
		this.handlerStart = this.startSlideshow.bind(this);
		Event.observe('StartSlideshow', 'click', this.handlerStart);
		
		if (this.slideshow != null) {
			this.slideshow.stop();
			this.slideshow = null;
		}
		
	},
	
	advanceSlideshow: function () {
		if (!this.pgOptions) {
			return;
		}
		if (this.activeImage == this.pgOptions.images.length - 1) {
			this.changeImage(0);
		} else {
			this.changeImageRelative(1);
		}
	},
	


	//
	//	resizeImageContainer()
	//
	resizeImageContainer: function(imgWidth, imgHeight) {
	//alert('resizo');
		this.showImage();
	},
	
	//
	//	showImage()
	//	Display image and begin preloading neighbors.
	//
	showImage: function(){
		this.updateDetails();
		if (this.flag == 0)
			this.preloadNeighborImages();
	},

	//
	//	updateDetails()
	//	Display caption, image number, and bottom nav.
	//
	updateDetails: function() {
		/*var currImage = this.pgOptions.images[this.activeImage];
		var paginationString = '';
		var modulo = (this.pgOptions.images.length < 11 ? this.pgOptions.images.length : 11); // numero massimo di indici mostrato
		var resto = 0;
			
		Element.setInnerHTML('titolo_contenuto', currImage.title);
		Element.setInnerHTML('descrizione_contenuto', currImage.caption);*/
		//window.alert("titolo " + currImage.title + " caption " + currImage.caption + " src=" + currImage.src);
		/*if (this.flag == 0){*/
			// codice necessario per le lightbox immagini
			//Element.setInnerHTML('count_img', "Immagine " + (currImage.index + 1) + ' / ' + this.pgOptions.images.length);
			
			// devo determinare il range di inizio e di fine della paginazione circolare
			/*resto = currImage.index % modulo;
			if (currImage.index != 0){
				switch (resto) {
					default: 
						rangeMin = currImage.index - Math.floor(modulo / 2) ;
					break;
				}
			} else {
				rangeMin = 0;
				rangeMax = modulo;
			}
		
			rangeMax = rangeMin + modulo - 1;*/

			//valori sui bordi
			/*if (rangeMax >= this.pgOptions.images.length) {

				rangeMax = this.pgOptions.images.length -1;
				rangeMin = this.pgOptions.images.length - modulo;
			}
			if (rangeMin < 0){
				rangeMin = 0;
				rangeMax = modulo -1;

			}*/
			
			/* set the pagination */
		/*	Element.setInnerHTML('image_pagination', '');
			for (var i = rangeMin; i <= rangeMax; i++){
				var tag = 'img' + i;
				paginationString ='\n<li id="' + tag + '"><a href="javascript:void(0)" ';
				if (i == currImage.index){
					paginationString +='class="selected"';
				}
				paginationString +='>' + (i + 1);
				paginationString +='</a></li>';
				
				
				new Insertion.Bottom('image_pagination', paginationString);
				
				Event.observe(tag, 'click', this.changeImage.bind(this, i));
			}
		} else {*/
			//codice necessario per il video
			/* modifica 2008 04 01 - AGGIORNAMENTO PER playList.doPlayList()*/
			/*if (this.flag == 1){ //VIDEO
			writePlayerLbox(currImage.src);
			}else{
				if (this.flag == 2 || this.flag == 3){ //VIDEO_ADV or VIDEO_FLASH
					playList.lightboxInitialize();
					playList.lightboxDoPlayList(); //call playlist to load next element
				}
			}*/
			/* fine modifica 2008 04 01 - AGGIORNAMENTO PER playList.doPlayList()*/
		//}
	},
	

	
	resizeOverlay: function () {
		if ($('lightbox') == null) {
			return; // lightbox elm has already been removed, photogallery ended
		}
		
		var arrayPageSize = getPageSize();
		
		var newWidth = arrayPageSize[0];
		var newHeight = arrayPageSize[1];
		
/*		var headerDivElm = $('HeaderContainer');
		var headerWidth = $('HeaderContainer').scrollWidth;
		if (headerWidth > newWidth) {
			newWidth = headerWidth; 
		}*/

		var lightboxDivElm = $('lightbox');
		var lightboxHeight = lightboxDivElm.offsetTop + lightboxDivElm.scrollHeight;
		if (lightboxHeight > newHeight) {
			newHeight = lightboxHeight;
		}
		
		Element.setWidth('overlay', newWidth);
		Element.setHeight('overlay', newHeight);
	},

	//
	//	updateNav()
	//	Display appropriate previous and next hover navigation.
	//
	updateNav: function() {
		if ($('hoverNav') == null) {
			// photogallery already ended
			return;
		}
		
		Element.show('hoverNav');				

		// if not first image in set, display prev image button
		if (this.activeImage > 0) {
			$('prevLink').setStyle({ visibility: '' });
		}

		// if not last image in set, display next image button
		if (this.activeImage < (this.pgOptions.images.length - 1)) {
			Element.show('nextLink');
			$('nextLink').setStyle({ visibility: '' });
		}
		
		this.enableKeyboardNav();
	},

	//
	//	enableKeyboardNav()
	//
	enableKeyboardNav: function() {
		document.onkeydown = this.keyboardAction.bindAsEventListener(this); 
	},

	//
	//	disableKeyboardNav()
	//
	disableKeyboardNav: function() {
		document.onkeydown = '';
	},

	//
	//	keyboardAction()
	//
	keyboardAction: function(e) {
		if (e == null) { // ie
			keycode = event.keyCode;
			escapeKey = 27;
		} else { // mozilla
			keycode = e.keyCode;
			escapeKey = e.DOM_VK_ESCAPE;
		}

		key = String.fromCharCode(keycode).toLowerCase();
		
		if (key == 'x' || key == 'o' || key == 'c' || keycode == escapeKey) {	
			// close lightbox
			this.end();
		} else if (key == 'p' || keycode == 37) {
			// display previous image
			if (this.activeImage > 0) {
				this.disableKeyboardNav();
				this.changeImage(this.activeImage - 1);
			}
		} else if (key == 's' || keycode == 39) {
			// display next image
			if (this.activeImage < (this.pgOptions.images.length - 1)) {
				this.disableKeyboardNav();
				this.changeImage(this.activeImage + 1);
			}
		}
		
		// prevent page from moving left or right
		if (keycode == 37 || keycode == 39) {
			return false;
		}
	},

	//
	//	preloadNeighborImages()
	//	Preload previous and next images.
	//
	preloadNeighborImages: function() {

		if (this.activeImage < (this.pgOptions.images.length - 1)) {
			var preloadNextImage = new Image();
			preloadNextImage.src = this.pgOptions.images[this.activeImage + 1].src;
		}
		if (this.activeImage > 0) {
			var preloadPrevImage = new Image();
			preloadPrevImage.src = this.pgOptions.images[this.activeImage - 1].src;
		}	
	},

	//
	//	end()
	//
	end: function() {
		this.disableKeyboardNav();
	//	this.stopSlideshow();
		new Effect.Fade('overlay', { duration: this.lbOptions.overlayDuration });
		
		// nel caso di lightbox video, cancello l'intervallo
		if (this.flag == 1){
		
			// salvo la posizione corrente del filmato per riportarla in pagina.
		/*	$('WMPlayer').controls.currentPosition = $('WMPlayerLbox').controls.currentPosition;
			progressbar.setValue(progressbarlbox.value);*/
			// se l'utente non ha fermato il video e la posizione corrente e' diversa da 0 (per gestire correttamente i video
			// non indicizzati), allora faccio ripartire il playback in pagina
		/*	if ($('WMPlayerLbox').playState != 1 && ($('WMPlayer').playState != 1) )
				$('WMPlayer').controls.play();*/
			// fine modifica posizione
		/*	if ($('WMPlayerLbox') != null && $('WMPlayerLbox').controls != null)
				$('WMPlayerLbox').controls.stop();*/
			
			
				
			//window.clearInterval(this.lbOptions.timer);
			this.lbOptions.peProgressbarLbox.timer = null;
			this.lbOptions.peProgressvalLbox.timer = null;
		}
		// riporto il banner in pagina
		
		/*$('bannerLB').hide();
		var objLightbox = $('lightbox');
		objLightbox.up().insertBefore($('bannerLB'), objLightbox);*/
		if (this.flag == 1 && $('WMPlayerLbox') != null)
			$('WMPlayerLbox').remove();
		$('lightbox').remove();
		$('overlay').remove();
		
		
		showSelectBoxes();
		showFlash();
		/*// nuova gestione per l'autoplay con preview: devo controllare che il preview sia visibile
		// e in tal caso non mostrare la parte video.
		if (this.flag == 1 && $('WMPlayer') != null && $('Preview')!= null){
			if ($('Preview').getStyle('display') == 'block')
				$('WMPlayer').setStyle({visibility: 'hidden'});
		}*/
		// Modifica 2008 01 23 - Nel caso di preview ancora visibile, dobbiamo eliminarla e lasciare visibile il video
		/* modifica 2008 04 01 - AGGIORNAMENTO PER playList.doPlayList()*/
		if ((this.flag == 1 || this.flag == 2) && $('WMPlayer') != null && $('Preview')!= null) {
			/* fine modifica 2008 04 01 - AGGIORNAMENTO PER playList.doPlayList()*/
			//alert('$(WMPlayer).playState ' + $('WMPlayer').playState);
			//alert('updateWMPlayer ' + updateWMPlayer);
			if (updateWMPlayer){
			$('Preview').remove();
			$('WMPlayer').setStyle({visibility: 'visible'});
			}else{
				if ($('Preview').getStyle('display') == 'block')
					$('WMPlayer').setStyle({visibility: 'hidden'});
			}
		}
		pgLoader.reset();
		
		 //$('MediaFlashPlayer').doFlashPlayList();
		
		/* modifica 2008 04 01 - AGGIORNAMENTO PER playList.doPlayList()*/
		if (this.flag == 2 || this.flag == 3){ playList.lightboxReset();} //VIDEO_ADV 
		/* fine modifica 2008 04 01 - AGGIORNAMENTO PER playList.doPlayList()*/
	}
}

// -----------------------------------------------------------------------------------

//
// getPageScroll()
// Returns array with x,y page scroll values.
// Core code from - quirksmode.com
//
function getPageScroll() {

	var xScroll, yScroll;

	if (self.pageYOffset) {
		yScroll = self.pageYOffset;
		xScroll = self.pageXOffset;
	} else if (document.documentElement && document.documentElement.scrollTop){	 // Explorer 6 Strict
		yScroll = document.documentElement.scrollTop;
		xScroll = document.documentElement.scrollLeft;
	} else if (document.body) {// all other Explorers
		yScroll = document.body.scrollTop;
		xScroll = document.body.scrollLeft;	
	}

	arrayPageScroll = new Array(xScroll,yScroll) 
	return arrayPageScroll;
}

// -----------------------------------------------------------------------------------

//
// getPageSize()
// Returns array with page width, height and window width, height
// Core code from - quirksmode.com
// Edit for Firefox by pHaez
//
function getPageSize() {
	
	var xScroll, yScroll;
	
	if (window.innerHeight && window.scrollMaxY) {	
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
	} else if (document.body.scrollHeight > document.body.offsetHeight){ // all but Explorer Mac
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
	} else { // Explorer Mac...would also work in Explorer 6 Strict, Mozilla and Safari
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}
	
	var windowWidth, windowHeight;
	
//	console.log(self.innerWidth);
//	console.log(self.innerHeight);
//	console.log(document.documentElement.clientWidth);
//	console.log(document.documentElement.clientHeight);

	if (self.innerHeight) {	// all except Explorer
		if (document.documentElement.clientWidth) {
			windowWidth = document.documentElement.clientWidth; 
		} else {
			windowWidth = self.innerWidth;
		}
		windowHeight = self.innerHeight;
	} else if (document.documentElement && document.documentElement.clientHeight) { // Explorer 6 Strict Mode
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	} else if (document.body) { // other Explorers
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}	
	
	// for small pages with total height less then height of the viewport
	if (yScroll < windowHeight) {
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}
	
//	console.log("xScroll " + xScroll)
//	console.log("yScroll " + yScroll)
//	console.log("windowWidth " + windowWidth)
//	console.log("windowHeight " + windowHeight)

	// for small pages with total width less then width of the viewport
	if (xScroll < windowWidth) {
		pageWidth = windowWidth;
	} else {
		pageWidth = xScroll;		
	}
//	console.log("pageWidth " + pageWidth)
//	console.log("pageHeight " + pageHeight)

	var arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight) 
	
	//alert(pageWidth + " " + pageHeight + " " + windowWidth + " " + windowHeight + " " + document.body.clientHeight + " " + xScroll + " " + yScroll);
	return arrayPageSize;
}

// -----------------------------------------------------------------------------------

//
// getKey(key)
// Gets keycode. 
//
function getKey(e) {
	if (e == null) { // ie
		keycode = event.keyCode;
	} else { // mozilla
		keycode = e.which;
	}
	key = String.fromCharCode(keycode).toLowerCase();
}

// -----------------------------------------------------------------------------------

//
// listenKey()
//
function listenKey () {	
	document.onkeypress = getKey; 
}
	
// ---------------------------------------------------

function showSelectBoxes() {
	var selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "visible";
	}
}

// ---------------------------------------------------

function hideSelectBoxes() {
	var selects = document.getElementsByTagName("select");
	for (i = 0; i != selects.length; i++) {
		selects[i].style.visibility = "hidden";
	}
}

// ---------------------------------------------------
function showFlash() {
	var flashObjects = document.getElementsByTagName("object");
	for (i = 0; i < flashObjects.length; i++) {
		if ($(flashObjects[i]).up('#bannerQLbox') != undefined) continue;
		//if ($(flashObjects[i]) == $('MediaFlashPlayer')) $('hostMediaPlayer').style.visibility = "visible";
		//else flashObjects[i].style.visibility = "visible";
		
		if ($(flashObjects[i]) != $('MediaFlashPlayer')) flashObjects[i].style.visibility = "visible";
		
		//if ($(flashObjects[i]) == $('MediaFlashPlayer')) $('hostMediaPlayer').show();
		//else flashObjects[i].style.visibility = "visible";
	}

	var flashEmbeds = document.getElementsByTagName("embed");
	for (i = 0; i < flashEmbeds.length; i++) {
		if ($(flashEmbeds[i]).up('#bannerQLbox') != undefined) continue;
		//if ($(flashEmbeds[i]) == $('MediaFlashPlayer')) $('hostMediaPlayer').style.visibility = "visible";
		//else flashEmbeds[i].style.visibility = "visible";
		
		if ($(flashEmbeds[i]) != $('MediaFlashPlayer')) flashEmbeds[i].style.visibility = "visible";
		
		//if ($(flashEmbeds[i]) == $('MediaFlashPlayer')) $('hostMediaPlayer').show();
		//else flashEmbeds[i].style.visibility = "visible";
	}
	
	$$('.banner').each(function (banner) {
		banner.style.visibility = "visible";
	});
}

// ---------------------------------------------------

function hideFlash() {
	var flashObjects = document.getElementsByTagName("object");
	for (i = 0; i < flashObjects.length; i++) {
		if ($(flashObjects[i]).up('#bannerQLbox') != undefined) continue;
		//if ($(flashObjects[i]) == $('MediaFlashPlayer')) $('hostMediaPlayer').style.visibility = "hidden";
		//else flashObjects[i].style.visibility = "hidden";
		
		if ($(flashObjects[i]) != $('MediaFlashPlayer')) flashObjects[i].style.visibility = "hidden";
		
		//if ($(flashObjects[i]) == $('MediaFlashPlayer')) $('hostMediaPlayer').hide();
		//else flashObjects[i].style.visibility = "hidden";
	}
	
	var flashEmbeds = document.getElementsByTagName("embed");
	for (i = 0; i < flashEmbeds.length; i++) {
		if ($(flashEmbeds[i]).up('#bannerQLbox') != undefined) continue;
		//if ($(flashEmbeds[i]) == $('MediaFlashPlayer')) $('hostMediaPlayer').style.visibility = "hidden";
		//else flashEmbeds[i].style.visibility = "hidden";
		
		if ($(flashEmbeds[i]) != $('MediaFlashPlayer')) flashEmbeds[i].style.visibility = "hidden";
		
		//if ($(flashEmbeds[i]) == $('MediaFlashPlayer')) $('hostMediaPlayer').hide();
		//else flashEmbeds[i].style.visibility = "hidden";

	}
	$$('.banner').each(function (banner) {
		banner.style.visibility = "hidden";
	});
}

//**** funzioni per il player ****/

function writePlayerLbox(src) {
	/* modifica 2008 01 21 - spostato questo snippet nella funzione che richiama la lightbox, cosi' il player si ferma prima 
		di cominciare il caricamento della lightbox
	if($('WMPlayer').controls !=null){
		if($('WMPlayer').controls.isAvailable('Pause'))
			$('WMPlayer').controls.pause();
		else $('WMPlayer').controls.stop();
		//$('WMPlayer').controls.stop();
		//window.clearInterval(intervalID);
	} */

  var width = 520;
  var height = 426;


  var autosize = "false";
  var cmenu = "false";
  
 if (window.ActiveXObject && navigator.userAgent.indexOf('Windows') != -1){
		clsid = "6BF52A52-394A-11D3-B153-00C04F79FAA6";
		api = 7;
  } else {
		clsid = "22D6F312-B0F6-11D0-94AB-0080C74C7E95";
		api = 6;
  } 

  // clsid = "6BF52A52-394A-11D3-B153-00C04F79FAA6";
  // clsid = "22D6F312-B0F6-11D0-94AB-0080C74C7E95";
  // api = 7;

		// var playerobject = '<OBJECT id="WMPlayerLbox" WIDTH="'+width+'" HEIGHT="'+height+'" '; 
		var playerobject = '';
		if (window.ActiveXObject && navigator.userAgent.indexOf('MSIE') != -1)
			playerobject +='<OBJECT id="WMPlayerLbox" WIDTH="'+width+'" HEIGHT="'+height+'" CLASSID="CLSID:' + clsid + '" TYPE="application/x-mplayer2"> '; 
		else 
			playerobject += '<object id="WMPlayerLbox" type="application/x-ms-wmp" data="'+ src +'" WIDTH="'+ width +'" HEIGHT="'+ height + '"> ';
	  playerobject += '<PARAM NAME="autoStart" VALUE="True">';
	  playerobject += '<PARAM NAME="enableContextMenu" VALUE="' + cmenu + '">';
	  playerobject += '<PARAM NAME="TransparentAtStart" VALUE="true">';
	 // playerobject += '<PARAM NAME="AutoSize" VALUE="' + autosize + '">';
	  playerobject += '<PARAM NAME="stretchToFit" VALUE="true">';
	  playerobject += '<PARAM NAME="maintainAspectRatio" VALUE="false">';
		playerobject += '<PARAM NAME="uiMode" VALUE="none">';  
		playerobject += '<PARAM NAME="ShowControls" VALUE="false">';
	  playerobject += '<PARAM NAME="ShowStatusBar" VALUE="false">';
	  playerobject += '<PARAM NAME="invokeURLs" VALUE="false">';
  
	  if (api == 7)
	    playerobject += '<PARAM NAME="URL" VALUE="' + src + '">';
	  else
	    playerobject += '<PARAM NAME="FileName" VALUE="'+src+'">';
		playerobject += '</object>';
		
		var htmlString = '';

		htmlString += "<div id=\"PlayerBoxLbox\">";
		htmlString += "<form>";
		htmlString += "	<div id=\"VideoLbox\" >";
		htmlString += playerobject;
		htmlString += "	</div>";
		htmlString +="	<input type=\"hidden\" id=\"volumelbox\" value=\"50\" />";
		htmlString +="	<input type=\"hidden\" id=\"slide_progress_bar_lbox\" value=\"0\" />";
		htmlString +="	<div id=\"VideoCommandBoxLbox\">";
		htmlString +="		<div id=\"VideoCommand1\">";
		htmlString +="			<ul style=\"float:left;\">";
		htmlString +="				<li><img id=\"cmdPlayLbox\" onclick=\"playlbox()\" src=\"/img/shim.gif\" title=\"Play\" width=\"30\" height=\"25\" border=\"0\" vspace=\"0\" hspace=\"0\" /></li>";
		htmlString +="				<li><img id=\"cmdPauseLbox\" onclick=\"pauselbox()\" src=\"/img/shim.gif\" title=\"Pause\" width=\"35\" height=\"25\" border=\"0\" vspace=\"0\" hspace=\"0\" /></li>";
		htmlString +="				<li id=\"playercontrolslbox\">	<div id=\"progress_barlbox\"><img id=\"progressbarlbox\" src=\"/img/ico_timePivot.png\" alt=\"\"></div></li>";
		htmlString +="				<li id=\"position_valueslbox\">0:00/0:00</li>";
		htmlString +="			</ul>";
		htmlString +="			<ul style=\"float:right\">";
		htmlString +="				<li><img id=\"ico_volumelbox\" d=\"ico_volumelbox\" onclick=\"\" src=\"/img/ico_audio.png\" title=\"Volume\" width=\"12\" height=\"11\" border=\"0\" vspace=\"0\" hspace=\"0\" /></li>";
		htmlString +="				<li id=\"slider_targetlbox\"></li>";
		htmlString +="				<li class=\"plusb\"><img id=\"cmdPlusLbox\" onclick=\"stoplbox()\" src=\"/img/shim.gif\" title=\"Stop\" /></li>";
		htmlString +="			</ul>";
		htmlString +="		</div>";
		htmlString +="	</div>";
		htmlString +="</form>";
		htmlString +="</div>";
		
		
		new Insertion.Bottom('videopl',htmlString);
		
		
		
		form_widget_amount_slider('slider_targetlbox',	$('volumelbox'),41,0,100,"aFunctionlbox()");

		if ($('playercontrolslbox')) {			
			progressbarlbox = new Control.Slider('progressbarlbox','progress_barlbox');
			progressbarlbox.setValue(0);
			//2008 01 21 - se la variabile startfromindex e' diversa da 0, cominciamo il playback dalla posizione in cui 
			// era arrivato il filmato quando abbiamo lanciato la lightbox
			progressbarlbox.setValue(progressbar.value);
			/* modifica 2008 04 01 - AGGIORNAMENTO PER playList.doPlayList()*/
			if ($('WMPlayerLbox') != null && $('WMPlayer') != null){
			$('WMPlayerLbox').controls.currentPosition = $('WMPlayer').controls.currentPosition;
			/* fine modifica 2008 04 01 - AGGIORNAMENTO PER playList.doPlayList()*/
			}
			
			// fine modifica
			$('progress_barlbox').onclick = function() {
				setPositionLbox(progressbarlbox.value);
			}

			if (this.lbOptions.peProgressbarLbox) this.lbOptions.peProgressbarLbox.stop();
			this.lbOptions.peProgressbarLbox = new PeriodicalExecuter(updateProgressbarLbox,1);
		}
			
	
	// Nuova gestione dell'evento update valori di progressione 2007-12-10
	this.peProgressvalLbox = new PeriodicalExecuter(this.updateProgressValuesLbox,1);
}

function stoplbox(){     
	//alert('$(WMPlayerLbox).playState ' + $('WMPlayerLbox').playState);	
	pgLoader.mediaStopped = true;
	$('WMPlayerLbox').controls.stop();      
	//alert('$(WMPlayerLbox).playState ' + $('WMPlayerLbox').playState);
	//alert('stoplbox mediaStopped ' + pgLoader.mediaStopped);
}

function pauselbox(){     
	if($('WMPlayerLbox').controls.isAvailable('Pause')){
		// non tutti i media type permettono la pausa; se non e' disponibile uso lo stop.
		$('WMPlayerLbox').controls.pause();
	} else $('WMPlayerLbox').controls.stop();
}

function playlbox(){                  
	pgLoader.mediaStopped = false;
	$('WMPlayerLbox').controls.play();      
	//alert('playlbox mediaStopped ' + pgLoader.mediaStopped);	
}

function aFunctionlbox(){ 
	 $('WMPlayerLbox').settings.volume = parseInt($('volumelbox').value) ;  
}



function updateProgressbarLbox() {
	if ($('WMPlayerLbox') != null) {
		if ($('WMPlayerLbox').playState == 3) {

			var newpos = $('WMPlayerLbox').controls.currentPosition / $('WMPlayerLbox').currentMedia.duration;
		//window.alert("newpos: " + newpos);
			if (!progressbarlbox.dragging && !progressbarlbox.active) progressbarlbox.setValue(newpos);
			if (progressbarlbox.disabled) progressbarlbox.setEnabled();
		} else {
			if (!progressbarlbox.disabled) progressbarlbox.setDisabled();
			
			/* modifica 2008 04 01 - AGGIORNAMENTO PER playList.doPlayList()*/
			//alert('updateProgressbarLbox mediaStopped ' + pgLoader.mediaStopped);
			//alert('updateProgressbarLbox playState ' + $('WMPlayerLbox').playState);
			if (pgLoader.flag == 2){ //VIDEO_ADV 
				if ($('WMPlayerLbox').playState == 1 && !pgLoader.mediaStopped){ //1 Stopped Playback of the current media item is stopped. 					
					playList.lightboxDoPlayList(); //call playlist to load next element
				}else{
					if ($('WMPlayerLbox').playState == 8){	//8 MediaEnded Media item has completed playback.  	
						playList.lightboxDoPlayList(); //call playlist to load next element					
					}
				}	
			}
			/* fine modifica 2008 04 01 - AGGIORNAMENTO PER playList.doPlayList()*/
		}
	}
}

function updateProgressValuesLbox(){
		if ($('WMPlayerLbox') != null && $('WMPlayerLbox').controls != null) {
			if ($('WMPlayerLbox').controls.currentPositionString != '')
				$('position_valueslbox').update($('WMPlayerLbox').controls.currentPositionString + " / " + $('WMPlayerLbox').currentMedia.durationString);
			else if ($('position_values')) $('position_values').update("00.00 / " + $('WMPlayerLbox').currentMedia.durationString);
		} else peProgressvalLbox.timer = null;
	}

function setPositionLbox(value) {
	var duration = $('WMPlayerLbox').currentMedia.duration;
	if ((duration == null) || (duration == 0)) xvalue = 1
		else xvalue = value * duration;
		$('WMPlayerLbox').controls.currentPosition = xvalue;
		
	}
    

function SetFullScreenLbox() {
  document.getElementById("WMPlayerLbox").fullScreen = 'true';
}

function ExitFullScreenLbox() {
  $('WMPlayerLbox').fullScreen = 'false';
}

// Class PhotoGalleryLoader
var PhotoGalleryLoader = Class.create();
PhotoGalleryLoader.prototype = {
	initialize: function () {
		this.loading = true;
		this.lightbox = null;
		this.url = null;
		this.startFromIndex = 0;
		this.flag = 0;
		/* modifica 2008 04 01 - AGGIORNAMENTO PER playList.doPlayList()*/
		this.mediaStopped = false;
		/* fine modifica 2008 04 01 - AGGIORNAMENTO PER playList.doPlayList()*/
	},
	
	onWindowLoad: function () {
		this.loading = false;
		var params = document.location.href.toQueryParams();

		if (params.pg_url && params.start_from) {
			this.launch(params.pg_url, parseInt(params.start_from));
		} else if (this.url != null) {
			this.launch(this.url, this.startFromIndex);
		}
	},

	launch: function (flag, url, startFromIndex) {
		if (this.lightbox) {
			return;
		}
		this.url = url;
		this.flag = flag;
		this.startFromIndex = startFromIndex == undefined ? 0 : startFromIndex;

		if (this.loading) {
			return;
		}

		this.lightbox = new Lightbox(lbOptions, flag);
		new Ajax.Request(url, {
			onSuccess: this.launch_onSuccess.bind(this),
			onFailure: this.launch_onFailure.bind(this)
		});
	},
	
	launch_onSuccess: function (transport) {

		eval(transport.responseText); // defines pgOptions		
		pgOptions.startFromIndex = this.startFromIndex;
		pgOptions.url = this.url;

		this.lightbox.start(pgOptions);
		this.lightbox.changeImage(startFromIndex);
		
	},

	launch_onFailure: function (transport) {
		alert("Impossibile caricare la lightbox\nAssicurarsi che l'indirizzo sia corretto");
		this.lightbox.end();
		this.reset();
	},
	
	reset: function () {
		this.lightbox = null;
	}
};

var pgLoader = new PhotoGalleryLoader();
Event.observe(window, 'load', pgLoader.onWindowLoad.bind(pgLoader));