/************************************ zoomMedia *******************************/
var NET = (navigator.userAgent.indexOf("Netscape")>-1) ? 1 : 0;
var FF = (navigator.userAgent.indexOf("Firefox")>-1) ? 1 : 0;
var SF = (navigator.userAgent.indexOf("Safari")>-1) ? 1 : 0;
var IE6 = (navigator.userAgent.indexOf("MSIE 6")>-1) ? 1 : 0;
var IE7 = (navigator.userAgent.indexOf("MSIE 7")>-1) ? 1 : 0;
var diapoHeight = '';
var zoomTimeout = 10000; // Timeout permettant d'arreter le script de zoom si le fichier n'existe pas ou si il met trop de temps à charger;
var zoomTime = 0;
var fadeTime = 0;
var maxVignette = 7; // Nombre de vignettes visibles à la fois dans le diapo
var pageCourante = 1;
var tDiapo;
var navZoomDiapoSize = 600;
var isOpenedZoom = false;

//addslashes
//str = str.replace(/\\("|'|\\)/g, "$1");
//addslashesstripslashes
//str = str.replace(/("|'|\\)/g, "\\$1");

function getWindowHeight() {
	var windowHeight=0;
	if (typeof(window.innerHeight)=='number') {
		windowHeight=window.innerHeight;
	}
	else {
		if (document.documentElement && document.documentElement.clientHeight) {
			windowHeight = document.documentElement.clientHeight;
		}
		else {
			if (document.body&&document.body.clientHeight) {
				windowHeight=document.body.clientHeight;
			}
		}
	}
	return windowHeight;
}

function getWindowWidth() {
	var windowWidth=0;
	if (typeof(window.innerWidth)=='number') {
		windowWidth=window.innerWidth;
	}
	else {
		if (document.documentElement && document.documentElement.clientWidth) {
			windowWidth = document.documentElement.clientWidth;
		}
		else {
			if (document.body&&document.body.clientWidth) {
				windowWidth=document.body.clientWidth;
			}
		}
	}
	return windowWidth;
}

function zoom(fichier) {
	zoomMedia(fichier);
	return false;
}

function changerSource(src, legende){
	document.getElementById('imgZoom2').src = src;
	document.getElementById('zoomLegende').innerHTML = legende;
	document.getElementById('divZoomContenu').style.visibility = "hidden";
	document.getElementById('divZoomMessage').innerHTML = "<br /><br /><strong>Chargement de l'image en cours ...</strong>";
	_resize();
	setTimeout("_preload()", 100);
}

function fadeIn(){

	document.getElementById('divZoomContenu').style.opacity = fadeTime/100;
	document.getElementById('divZoomContenu').style.filter = 'alpha(opacity='+fadeTime+')';
	document.getElementById('divZoomContenu').style.display = 'block';
	document.getElementById('divZoomContenu').style.visibility = 'visible';
	fadeTime+=20;
	if (fadeTime<101) setTimeout("fadeIn()", 100);
	else {
		fadeTime=0;
		_resize();
	}
}

function fadeOut(){
	document.getElementById('divZoomContenu').style.opacity = fadeTime/100;
	fadeTime-=20;
	if (fadeTime>-1) setTimeout("fadeOut()", 100);
	else fadeTime=0;
}

function diapoSuivant() {
		pageCourante++;
		var max=0;

		precedent = '<a href="#" onclick="diapoPrecedent()">&lt;&lt;</a>';
		if (pageCourante * maxVignette >= tDiapo.length)	suivant = '';
		else suivant = '<a href="#" onclick="diapoSuivant()">&gt;&gt;</a>';

		html='<div id="divAction">'+precedent+'&nbsp;<a href="#" onclick="cacherMontrerDiapo()"><img src="js/cacher-montrer.jpg" border="0" /></a>&nbsp;'+suivant+'</div><div id="intraDiapo">';
		if (tDiapo.length>maxVignette*pageCourante) max = maxVignette*pageCourante;
		else max = tDiapo.length;
		debut = (pageCourante * maxVignette) - maxVignette;
		for(var i=debut; i<max; i++) {
			html+= '<div class="divVignetteDiapo"><img class="vignetteDiapo" src="'+tDiapo[i][1]+'" onclick="changerSource(\'' + tDiapo[i][0] + '\',\'' + tDiapo[i][2].replace(/("|'|\\)/g, "\\$1") + '\')" /></div>';
		}
		html+='</div>';
		document.getElementById('divZoomDiapo').innerHTML=html;
}

function diapoPrecedent(fichier) {
		pageCourante--;
		var max=0;

		if (pageCourante<2) precedent = '';
		else precedent = '<a href="#" onclick="diapoPrecedent()">&lt;&lt;</a>';
		suivant = '<a href="#" onclick="diapoSuivant()">&gt;&gt;</a>';

		html='<div id="divAction">'+precedent+'&nbsp;<a href="#" onclick="cacherMontrerDiapo()"><img src="js/cacher-montrer.jpg" border="0" /></a>&nbsp;'+suivant+'</div><div id="intraDiapo">';
		if (tDiapo.length>maxVignette*pageCourante) max = maxVignette*pageCourante;
		else max = tDiapo.length;
		debut = (pageCourante * maxVignette) - maxVignette;
		for(var i=debut; i<max; i++) {
			html+= '<div class="divVignetteDiapo"><img class="vignetteDiapo" src="'+tDiapo[i][1]+'" onclick="changerSource(\'' + tDiapo[i][0] + '\',\'' + tDiapo[i][2].replace(/("|'|\\)/g, "\\$1") + '\')" /></div>';
		}
		html+='</div>';
		document.getElementById('divZoomDiapo').innerHTML=html;
}

function afficherBoutonFermer() {
	if (!document.getElementById('fermerZoom')) {
		nodeFermer = document.createElement("a");
		nodeFermer.id = "fermerZoom";
		nodeFermer.href = '#';
		nodeFermer.onclick = 'window.close()';
		nodeFermer.innerHTML = 'Fermer';
		nodeFermer.style.position = 'absolute';
		nodeFermer.style.top = '10px';
		nodeFermer.style.left = '10px';
		nodeFermer.zIndex = "15";
		document.getElementById('divZoomContenu').appendChild(nodeFermer);
	}
}

function cacherBoutonFermer() {
	if (document.getElementById('fermerZoom')) {
		document.getElementById('divZoomContenu').removeChild(document.getElementById('fermerZoom'));
	}
}

function cacherMontrerDiapo() {
	if (document.getElementById('intraDiapo').style.display == 'none') {
		document.getElementById('intraDiapo').style.display = 'block';
	}else {
		document.getElementById('intraDiapo').style.display = 'none';
	}
}

function cacherWindowedElements() {
	var elts = document.getElementsByTagName("embed");
	for (var i=0; i<elts.length; i++) {
		elts[i].style.display = 'none';
	}
	elts = document.getElementsByTagName("object");
	for (var i=0; i<elts.length; i++) {
		elts[i].style.display = 'none';
	}
	if(IE6) {
		elts = document.getElementsByTagName("input");
		for (var i=0; i<elts.length; i++) {
			elts[i].style.display = 'none';
		}
		elts = document.getElementsByTagName("select");
		for (var i=0; i<elts.length; i++) {
			elts[i].style.display = 'none';
		}
	}
}

function montrerWindowedElements() {
	var elts = document.getElementsByTagName("embed");
	for (var i=0; i<elts.length; i++) {
		elts[i].style.display = 'block';
	}
	elts = document.getElementsByTagName("object");
	for (var i=0; i<elts.length; i++) {
		elts[i].style.display = 'block';
	}
	if(IE6) {
		elts = document.getElementsByTagName("input");
		for (var i=0; i<elts.length; i++) {
			elts[i].style.display = 'block';
		}
		elts = document.getElementsByTagName("select");
		for (var i=0; i<elts.length; i++) {
			elts[i].style.display = 'block';
		}
	}
}

function zoomMedia(fichier) {
	pageCourante = 1;
	cacherWindowedElements();

	var nodeZoom = document.createElement("div");
	nodeZoom.id = "divZoom";
	var nodeZoomContenu = document.createElement("div");
	nodeZoomContenu.id = "divZoomContenu";
	var nodeZoomMessage = document.createElement("div");
	nodeZoomMessage.id = "divZoomMessage";
	nodeZoomMessage.innerHTML = "<br /><br /><strong>Chargement de l'image en cours ...</strong>";
	var nodeZoomDiapo = document.createElement("div");
	nodeZoomDiapo.id = "divZoomDiapo";

	nodeZoom.style.display = "block";
	nodeZoomMessage.style.display = "block";
	nodeZoomContenu.style.visibility = "hidden";
	nodeZoomContenu.style.display = "none";
	nodeZoomDiapo.style.display = "none";

	if (typeof(fichier) == 'object') {
		nodeZoomDiapo.style.display = "block";
		tDiapo = fichier;
		var html='';
		var max=0;

		if (pageCourante * maxVignette >= tDiapo.length)	suivant = '';
		else suivant = '<a href="#" onclick="diapoSuivant()">&gt;&gt;</a>';

		html+='<div id="divAction">&nbsp;<a href="#" onclick="cacherMontrerDiapo()"><img src="js/cacher-montrer.jpg" border="0" /></a>&nbsp;'+suivant+'</div><div id="intraDiapo">';
		if (fichier.length>maxVignette) max = maxVignette;
		else max = fichier.length;
		for(var i=0; i<max; i++) {
			html+= '<div class="divVignetteDiapo"><img class="vignetteDiapo" src="'+fichier[i][1]+'" onclick="changerSource(\'' + fichier[i][0] + '\',\'' + fichier[i][2].replace(/("|'|\\)/g, "\\$1") + '\')" /></div>';
		}
		html+='</div>';
		nodeZoomDiapo.innerHTML=html;
	}

	if (IE6) {
		nodeZoom.style.position = "absolute";
		nodeZoomContenu.style.position = "absolute";
		nodeZoomDiapo.style.position = "absolute";
	}
	nodeZoomMessage.style.position='fixed';
	nodeZoomMessage.style.top='100px';
	nodeZoomDiapo.style.position='fixed';
	nodeZoomDiapo.style.bottom='0px';
	nodeZoomMessage.style.left=(getWindowWidth()/2-100)+"px";
	nodeZoomDiapo.style.left=(getWindowWidth()/2-navZoomDiapoSize/2)+"px";
	if (typeof(fichier) == 'object') {
		nodeZoomContenu.innerHTML = '<img onclick="hideZoom();return false;" id="imgZoom2" src="'+fichier[0][0]+'" alt="Fermer le zoom" border="0"/><br /><br /><span id="zoomLegende">'+fichier[0][2]+'</span>';
	}
	else {
		nodeZoomContenu.innerHTML = '<img onclick="hideZoom();return false;" id="imgZoom2" src="'+fichier+'" alt="Fermer le zoom" border="0"/>';
	}

	if (!nodeZoom.style.pixelTop) nodeZoom.style.top = "0px";
	else nodeZoom.style.pixelTop = 0;

	nodeZoom.style.width = "100%";
	nodeZoom.style.height = "100%";
	nodeZoom.style.margin = "0px 0px 0px 0px";
	nodeZoom.style.padding = "10px 0px 0px 0px";
	if (!nodeZoomContenu.style.pixelTop) nodeZoomContenu.style.top = "0px";
	else nodeZoomContenu.style.pixelTop = 0;

	document.body.appendChild(nodeZoomMessage);
	document.body.appendChild(nodeZoom);
	document.body.appendChild(nodeZoomContenu);
	document.body.appendChild(nodeZoomDiapo);
	if (IE6) {
		nodeZoomMessage.style.position='absolute';
		nodeZoomMessage.style.top = document.documentElement.scrollTop;
		nodeZoomDiapo.style.position='absolute';
	}
	_resize();
	setTimeout("_preload()", 100);
}

function _preload() {
	if (!document.getElementById('imgZoom2').complete && zoomTime<=zoomTimeout){
		zoomTime+=200;
		setTimeout("_preload()", 200);
	} else {
		zoomTime = 0;
		isOpenedZoom = true;
		_resize();
		document.getElementById('divZoomMessage').innerHTML = "";
		setTimeout("fadeIn()", 100);
	}
}

function hideZoom() {
	document.getElementById('divZoomContenu').innerHTML = "";
	document.body.removeChild(document.getElementById('divZoom'));
	document.body.removeChild(document.getElementById('divZoomContenu'));
	document.body.removeChild(document.getElementById('divZoomDiapo'));
	document.body.removeChild(document.getElementById('divZoomMessage'));
	montrerWindowedElements();
	zoomTime = 0;
	fadeTime = 0;
	isOpenedZoom = false;
}

function _resize() {
	//if (isOpenedZoom) {
		document.getElementById('divZoomContenu').style.overflow = 'visible';
		var w = document.getElementById('imgZoom2').width;
		var h = document.getElementById('imgZoom2').height;
		var m = Math.floor(getWindowWidth()/2 - w/2);
		if (m<0) m="0px";
		else m+="px";
		document.getElementById('divZoomContenu').style.marginLeft = m;
		var m2 = Math.floor(getWindowHeight()/2 - h/2);
		if (m2<0) m2="0px";
		else m2+="px";
		document.getElementById('divZoomContenu').style.marginTop= m2;
		// Si l'image dépasse la taille de la page on affiche les scrolls supplémentaires
		if (w > getWindowWidth()) {
			document.getElementById('divZoomContenu').style.overflow = 'scroll';
			document.getElementById('divZoomContenu').style.width = (getWindowWidth()-15)+"px";
		}
		if (h > getWindowHeight()) {
			document.getElementById('divZoomContenu').style.overflow = 'scroll';
			document.getElementById('divZoomContenu').style.height = (getWindowHeight()-30)+"px";
		}
		document.getElementById('divZoomDiapo').style.left=(getWindowWidth()/2-navZoomDiapoSize/2)+"px";
		if (IE6) IE6_resize(h, w);
	//}
}

function IE6_resize(h, w) {
	document.getElementById('divZoom').style.width = getWindowWidth()+document.documentElement.scrollLeft + "px";
	document.getElementById('divZoom').style.height = getWindowHeight()+"px";
	document.getElementById('divZoom').style.top = document.documentElement.scrollTop;
	m = Math.floor(getWindowHeight()/2 - h/2)+document.documentElement.scrollTop;
	if (m<0) m = "0px";
	else m+= "px";

	m2 = Math.floor(getWindowWidth()/2 - w/2)+document.documentElement.scrollLeft;
	if (m2<0) m2 = "0px";
	else m2+= "px";
	document.getElementById('divZoomContenu').style.marginTop = m
	document.getElementById('divZoomContenu').style.marginLeft= m2;
	document.getElementById('divZoomDiapo').style.bottom = '0px';
}

window.onresize = _resize;
if (IE6) window.onscroll = _resize;