function getPageScroll()
{
	var yScroll;
	
	if(self.pageYOffset)
	{
		yScroll = self.pageYOffset;
	}
	else if(document.documentElement && document.documentElement.scrollTop)
	{
		yScroll = document.documentElement.scrollTop;
	}
	else if(document.body)
	{
		yScroll = document.body.scrollTop;
	}
	
	arrayPageScroll = new Array('', yScroll) 

	return arrayPageScroll;
}

function getPageSize()
{
	var xScroll, yScroll;
	
	if(window.innerHeight && window.scrollMaxY)
	{	
		xScroll = document.body.scrollWidth;
		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;

	if(self.innerHeight)
	{
		windowWidth = self.innerWidth;
		windowHeight = self.innerHeight;
	}
	else if(document.documentElement && document.documentElement.clientHeight)
	{
		windowWidth = document.documentElement.clientWidth;
		windowHeight = document.documentElement.clientHeight;
	}
	else if(document.body)
	{
		windowWidth = document.body.clientWidth;
		windowHeight = document.body.clientHeight;
	}

	if(yScroll < windowHeight)
	{
		pageHeight = windowHeight;
	}
	else
	{ 
		pageHeight = yScroll;
	}

	if(xScroll < windowWidth)
	{	
		pageWidth = windowWidth;
	}
	else
	{
		pageWidth = xScroll;
	}

	arrayPageSize = new Array(pageWidth, pageHeight, windowWidth, windowHeight)

	return arrayPageSize;
}

function showLightbox(objLink)
{
	var objOverlay = document.getElementById('ombre');
	var objLightbox = document.getElementById('zoom');
	var objImage = document.getElementById('image');

	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	objOverlay.style.height = (arrayPageSize[1] + 'px');
	objOverlay.style.display = 'block';

	imgPreload = new Image();

	imgPreload.onload=function()
	{
		objImage.src = objLink.href;

		var lightboxTop = arrayPageScroll[1] + ((arrayPageSize[3] - 35 - imgPreload.height) / 2);
		var lightboxLeft = ((arrayPageSize[0] - 20 - imgPreload.width) / 2);
		
		objLightbox.style.top = (lightboxTop < 0) ? "0px" : lightboxTop + "px";
		objLightbox.style.left = (lightboxLeft < 0) ? "0px" : lightboxLeft + "px";

		selects = document.getElementsByTagName("select");

        for (i = 0; i != selects.length; i++)
		{
			selects[i].style.visibility = "hidden";
        }
	
		objLightbox.style.display = 'block';

		arrayPageSize = getPageSize();

		objOverlay.style.height = (arrayPageSize[1] + 'px');

		return false;
	}

	imgPreload.src = objLink.href;
}

function hideLightbox()
{
	objOverlay = document.getElementById('ombre');
	objLightbox = document.getElementById('zoom');

	objOverlay.style.display = 'none';
	objLightbox.style.display = 'none';

	selects = document.getElementsByTagName("select");

    for (i = 0; i != selects.length; i++)
	{
		selects[i].style.visibility = "visible";
	}
}

function initLightbox()
{
	
	if(!document.getElementsByTagName)
	{
		return;
	}

	var anchors = document.getElementsByTagName("a");

	for (var i=0; i<anchors.length; i++)
	{
		var anchor = anchors[i];

		if(anchor.getAttribute("href") && (anchor.getAttribute("rel") == "zoom"))
		{
			anchor.onclick = function ()
			{
				showLightbox(this); return false;
			}
		}
	}
	
	var objBody = document.getElementsByTagName("body").item(0);
	
	var objOverlay = document.createElement("div");
	objOverlay.setAttribute('id', 'ombre');
	objOverlay.onclick = function () {hideLightbox(); return false;}
	objOverlay.style.display = 'none';
	objOverlay.style.position = 'fixed';
	objOverlay.style.top = '0';
	objOverlay.style.left = '0';
	objOverlay.style.zIndex = '2';
 	objOverlay.style.width = '100%';
	objBody.insertBefore(objOverlay, objBody.firstChild);
	
	var arrayPageSize = getPageSize();
	var arrayPageScroll = getPageScroll();

	var objLightbox = document.createElement("div");
	objLightbox.setAttribute('id', 'zoom');
	objLightbox.style.display = 'none';
	objLightbox.style.position = 'absolute';
	objLightbox.style.zIndex = '3';	
	objBody.insertBefore(objLightbox, objOverlay.nextSibling);
	
	var objLink = document.createElement("a");
	objLink.setAttribute('href', '#');
	objLink.setAttribute('title', 'Cliquez pour fermer');
	objLink.onclick = function () {hideLightbox(); return false;}
	objLightbox.appendChild(objLink);

	var objImage = document.createElement("img");
	objImage.setAttribute('id', 'image');
	objImage.setAttribute('alt', '125 ans de la soci&eacute;t&eacute; de musique');
	objImage.setAttribute('title', '125 ans de la soci&eacute;t&eacute; de musique');
	objLink.appendChild(objImage);
}

function addLoadEvent(func)
{	
	var oldonload = window.onload;

	if(typeof window.onload != 'function')
	{
    	window.onload = func;
	}
	else
	{
		window.onload = function()
		{
			oldonload();
			func();
		}
	}

}

addLoadEvent(initLightbox);