// Offering a Custom Alias suport - More info: http://docs.jquery.com/Plugins/Authoring#Custom_Alias


function _initialize() {
	var jQueryMatchedObj = this; 
	start(this,jQueryMatchedObj); // This, in this context, refer to object (link) which the user have clicked
	return false; // Avoid the browser following the link
}		

function start(objClicked,jQueryMatchedObj) {
	$('embed, object, select').css({ 'visibility' : 'hidden' });
	set_interface();
}
		
		
		
/**
 * Create the jQuery lightBox plugin interface
 *
 * The HTML markup will be like that:
	<div id="jquery-overlay"></div>			
 *
 */
		 
		 
function set_interface() {

	$('body').append('<div id="jquery-overlay"></div>');	
	
	// Get page sizes
	var arrPageSizes = getPageSize();
	
	// Style overlay and show it
	$('#jquery-overlay').css({
		backgroundColor:	'#000',
		opacity:			0.6,
		width:				arrPageSizes[0],
		height:				arrPageSizes[1]
	}).fadeIn();
	
	// Get page scroll
	var arrPageScroll = getPageScroll();
	
	
	// Assigning click events in elements to close overlay
	$('#jquery-overlay, #chiudi-box').click(function() {
		finish();									
	});
	
	// If window was resized, calculate the new overlay dimensions
	$(window).resize(function() {
		// Get page sizes
		var arrPageSizes = getPageSize();
		// Style overlay and show it
		$('#jquery-overlay').css({
			width:		arrPageSizes[0],
			height:		arrPageSizes[1]
		});
		// Get page scroll
		var arrPageScroll = getPageScroll();
		// Calculate top and left offset for the jquery-lightbox div object and show it
		$('#jquery-lightbox').css({
			top:	arrPageScroll[1] + (arrPageSizes[3] / 10),
			left:	arrPageScroll[0]
		});
	});
	
	$('#hidden-box').fadeIn(200);
	
}


function finish() {
	$('#jquery-overlay').fadeOut(function() { $('#jquery-overlay').remove(); });
	$('#hidden-box').fadeOut(50);
	$('embed, object, select').css({ 'visibility' : 'visible' });
}
		

// la funzione restituisce in un array
// la larghezza e l'altezza della pagina reale(scroll compreso) e la larghezza e l'altezza della finestra visibile

function getPageSize() {
	
	var xScroll, yScroll;	
	
	// ---> RICAVO LE DIMENSIONI DELLA PAGINA <--- //
	
	// window.innerHeight : altezza della finestra visibile
	// window.innerWidth  : larghezza della finestra visibile
	
	// window.scrollMaxY  : dimensioni massime dello scroll verticale
	// window.scrollMaxX  : dimensioni massime dello scroll orizzontale
	
	// document.body.offsetHeight : altezza di default del browser
	// document.body.offsetWidth  : larghezza di default del browser
	
	// se esiste l'altezza della finestra e lo scroll verticale(quindi esiste anche la barra x lo scorrimento) 
	// xScroll è la somma dello scroll orizzontale e della larghezza della finestra
	// yScroll è la somma dello scroll verticale e dell'altezza della finestra
	
	if (window.innerHeight && window.scrollMaxY) {
		
		xScroll = window.innerWidth + window.scrollMaxX;
		yScroll = window.innerHeight + window.scrollMaxY;
		
	} else if (document.body.scrollHeight > document.body.offsetHeight){
	
		xScroll = document.body.scrollWidth;
		yScroll = document.body.scrollHeight;
		
		
	} else {
		xScroll = document.body.offsetWidth;
		yScroll = document.body.offsetHeight;
	}

	
	var windowWidth, windowHeight;
	
	// ---> RICAVO LE DIMENSIONI DELLA FINESTRA <--- //	
	
	// self.innerHeight : altezza di default della finestra
	// self.innerWidth  : larghezza di default della finestra
	// (dimensioni non valide per Explorer 6) 
	
	// document.documentElement.clientWidth  : larghezza di default della finestra
	// document.documentElement.clientHeight : altezza di default della finestra
	// (dimensioni valide per Explorer 6) 
	
	if (self.innerHeight) {	
	
		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;
	}	
	
	//per le pagine con l'altezza totale minore dell'altezza della finestra del browser
	if(yScroll < windowHeight){
		pageHeight = windowHeight;
	} else { 
		pageHeight = yScroll;
	}
	
	//per le pagine con larghezza totale minore della larghezza della finestra del browser
	if(xScroll < windowWidth){	
		pageWidth = xScroll;		
	} else {
		pageWidth = windowWidth;
	}
	
	//creo l'array e lo ritorno
	arrayPageSize = new Array(pageWidth,pageHeight,windowWidth,windowHeight);
	return arrayPageSize;
};
		
// questa funzione restituisce un array con la posizione x,y dello scroll

function getPageScroll() {
	
	var xScroll, yScroll;
	
	// ---> RICAVO LE COORDINATE x ED y DEGLI SCROLL <--- //	
	
	// self.pageYOffset : indica la coordinata y di dove si trova la barra dello scroll verticale
	// self.pageXOffset : indica la coordinata x di dove si trova la barra dello scroll orizzontale
	// (non valido per explorer 6)
	
	// document.documentElement.scrollTop  : indica la coordinata y di dove si trova la barra dello scroll verticale
	// document.documentElement.scrollLeft : indica la coordinata x di dove si trova la barra dello scroll orizzontale
	// (valido per explorer 6)
	
	if (self.pageYOffset) {
		
		yScroll = self.pageYOffset;
		xScroll = self.pageXOffset;
		
	} else if (document.documentElement && document.documentElement.scrollTop) {
		
		yScroll = document.documentElement.scrollTop;
		xScroll = document.documentElement.scrollLeft;
		
	} else if (document.body) {
		
		yScroll = document.body.scrollTop;
		xScroll = document.body.scrollLeft;	
		
	}
	
	arrayPageScroll = new Array(xScroll,yScroll);
	
	return arrayPageScroll;
}
// JavaScript Document
