document.onclick = documentClicked;
var ie6 = document.all && !window.opera && !window.XMLHttpRequest; //IE6 stuff}

function documentClicked(e){
	var obj = document.all ? event.srcElement : e.target;
	//image preview
	if(obj.parentNode && obj.parentNode.rel && obj.parentNode.rel.indexOf('p5lbox') != -1){
		p5lightbox(obj.parentNode);
		return false;
	}
	//image preview
	if(obj.rel && obj.rel.indexOf('p5lbox') != -1){
		p5lightbox(obj);
		return false;
	}
}
var currentImg;
function p5lightbox(obj){
	
	if(!obj)
		return false;
		
	var url = obj.href;
	var descr = false;
	obj.title ? descr = obj.title : null;
	
	if(document.getElementById('p5-outer')){
		var imgcontainer = document.getElementById('p5-imgcontainer');
		var img = imgcontainer.getElementsByTagName('IMG')[0];
		if(imgdesc = document.getElementById('p5-imgdesc')){
			var addheight = imgdesc.offsetHeight;
			imgdesc.style.visibility = 'hidden';
		}
		imgcontainer.style.height = imgcontainer.offsetHeight - 10 + 'px';
		imgcontainer.removeChild(img);
		var noclose = true;
	}
	
	
	if(!noclose){
		//opaco
		var opaco = document.createElement('DIV');
		opaco.className = 'p5-back';
		opaco.id = 'p5-opaco';
		opaco.style.MozOpacity = '.75';
		opaco.style.opacity = '.75';
		if(ie6){
			opaco.style.filter = 'alpha(opacity=75)';
			opaco.style.position = 'absolute'; 
			opaco.style.height = document.body.offsetHeight > document.documentElement.clientHeight ? document.body.offsetHeight + 'px' : document.documentElement.scrollTop + document.documentElement.clientHeight + 'px';
		}
		
		//outer
		var outer = document.createElement('DIV');
		outer.className = 'p5-back';
		outer.id = 'p5-outer';
		if(ie6){
			opaco.style.position = 'absolute'; 
			opaco.style.height = document.body.offsetHeight > document.documentElement.clientHeight ? document.body.offsetHeight + 'px' : document.documentElement.scrollTop + document.documentElement.clientHeight + 'px';			
		}
		
		//img container
		var top = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;	
		var imgcontainer = document.createElement('DIV');
		imgcontainer.id = 'p5-imgcontainer';
	
		//close
		var imgclose = document.createElement('DIV');
		imgclose.id = 'p5-close';
		imgclose.title = imgclose.alt = "close";
		imgclose.onclick = function(){
			document.body.removeChild(document.getElementById('p5-opaco'));
			document.body.removeChild(document.getElementById('p5-outer'));
		}
		imgcontainer.appendChild(imgclose);
	
	}
	
	//immagine
	var img = new Image();
	var time=new Date();
	img.src = url+'?'+time;
	img.onload = new function(){
		setTimeout('p5position()',1000);
	}
	imgcontainer.appendChild(img);
	
	//descrizione
	if(descr){
		if(imgdesc)
			imgcontainer.removeChild(imgdesc);

		var imgdesc = document.createElement('DIV');
		imgdesc.id = 'p5-imgdesc';
		imgdesc.innerHTML = descr;
		imgcontainer.appendChild(imgdesc);

	}

	//controllo se è un array o no
	if(obj.rel.indexOf('[') != -1){
		var arrImgs = new Array();
		var x = 0;
		var els = document.getElementsByTagName('A');
		for(var i=0;i<els.length;i++){
			curel = els[i];
			if(curel.rel == obj.rel){
				arrImgs[x] = curel;
				curel == obj ? currentImg = x : null;
				x++;
			}
		}
	
		if(arrImgs.length > 1){
			if(!noclose){
				var nav = document.createElement('DIV');
				nav.id = 'p5-nav';
			
				var prev = document.createElement('DIV');
				prev.id = 'p5-prev';
				prev.className = 'p5-move';
			}else{
				var nav = document.getElementById('p5-nav');
				var prev = document.getElementById('p5-prev');
			}
			
			if(currentImg > 0){
				prev.onclick = function () { p5lightbox(arrImgs[currentImg-1]);};
				setOpacity(prev,100);
			}else{
				setOpacity(prev,50);
				prev.style.cursor = 'default';
			}
			if(!noclose)
				nav.appendChild(prev);
			
			if(!noclose){
				var navcont = document.createElement('DIV');
				navcont.id = 'p5-navcont';
				navcont.innerHTML = currentImg+1+'/'+arrImgs.length;
				nav.appendChild(navcont);
			}else{
				navcont = document.getElementById('p5-navcont').innerHTML = currentImg+1+'/'+arrImgs.length;				
			}
			
			if(!noclose){
				var next = document.createElement('DIV');
				next.id = 'p5-next';
				next.className = 'p5-move';
			}else{
				var next = document.getElementById('p5-next');
			}
			
			if(currentImg+1 < arrImgs.length){
				next.onclick = function () { p5lightbox(arrImgs[currentImg+1]);};
				setOpacity(next,100);
			}else{
				setOpacity(next,50);
				next.style.cursor = 'default';
			}
			if(!noclose){
				nav.appendChild(next);
				imgcontainer.insertBefore(nav,imgclose);
			}
		}
	}


	if(!noclose){
		outer.appendChild(imgcontainer);
		document.body.appendChild(opaco);
		document.body.appendChild(outer);
	}
}
function p5position(){
		var container = document.getElementById('p5-imgcontainer');
		var image = container.getElementsByTagName('IMG')[0];
		if(!image.complete){
			setTimeout('p5position()',500);
			return false;
		}
		
		container.style.width = image.width + 'px';
		container.style.height = 'auto';
		
				//img container
		var top = document.documentElement.scrollTop ? document.documentElement.scrollTop : document.body.scrollTop;	
		container.style.marginTop = - Math.floor(container.offsetHeight / 2) + top + 'px';
		container.style.marginLeft = - Math.floor(container.offsetWidth / 2) + 'px';

		if(container.offsetTop < 0){
			container.style.marginTop = '0px';
			container.style.marginTop = -container.offsetTop + 20 + 'px';
		}
		
		document.getElementById('p5-close').style.display = 'block';
		if(document.getElementById('p5-nav'))
			document.getElementById('p5-nav').style.display = 'block';
		image.style.visibility = 'visible';
		if(el = document.getElementById('p5-imgdesc')){
			el.style.display = 'block';
			el.style.visibility = 'visible';
		}
		
		fadeIn('p5-imgcontainer',0);
}

function fadeIn(objId,opacity) {
	if (document.getElementById) {
		 obj = document.getElementById(objId);
		if (opacity <= 100) {
			setOpacity(obj, opacity);
			opacity += 5;
			window.setTimeout("fadeIn('"+objId+"',"+opacity+")", 30);
		}
	}
}

function setOpacity(obj, opacity) {
	opacity = (opacity == 100)?99.999:opacity;
	if(ie6)
	obj.style.filter = "alpha(opacity:"+opacity+")";// IE/Win
	obj.style.KHTMLOpacity = opacity/100;// Safari<1.2, Konqueror
	obj.style.MozOpacity = opacity/100;// Older Mozilla and Firefox
	obj.style.opacity = opacity/100;// Safari 1.2, newer Firefox and Mozilla, CSS3
}

