<!--  Liens image redirigés. Michel Deboom 05/2005 modifié 13/05/07  
// testé sur ie5, ie6, ie7, Firefox 1.5.0.9, Netscape 7,Opéra 9.02
( function() { 
if(document.createElement){ // exclut les navigateurs incompatibles
var d=document,w=window,init

// Ajout d'une action sur un événement
addEvent = function (obj, type, fn )
{
	if (obj.addEventListener)
		obj.addEventListener( type, fn, false );
	else if (obj.attachEvent)
	{
		obj["e"+type+fn] = fn;
		obj[type+fn] = function() { obj["e"+type+fn]( window.event ); }
		obj.attachEvent( "on"+type, obj[type+fn] );
	}
}
/*var addEvent = function (obj,evType,fn){
	if(obj.addEventListener){obj.addEventListener(evType,fn,false)} 
	else if(obj.attachEvent)obj.attachEvent("on"+evType,fn) 
	} */

// Arrête la poursuite de l'évènement
var stopEvent = function(e){
e=e||w.event
if(e.preventDefault){e.preventDefault();e.stopPropagation();}	// code standard DOM
else if(e.cancelBubble==false){e.cancelBubble=true; e.returnValue=false;}	// ie
return false; // pour les autres
}

//  cache les éléments select pour IE5 & IE6
var voirSelect = function(v){ 
var elem=document.getElementsByTagName('select'),
ie=navigator.appVersion.substr(17,4)=="MSIE"?1:0,
ver = navigator.appVersion.substr(17,6); 
if(ver=="MSIE 5" || ver=="MSIE 6"){//ie5 ou ie6/win
	for(i=0;i<elem.length;i++)elem[i].style.visibility=v;} 
} 

createEl = function(n) {
	var a, i = 0, e = d.createElementNS ? d.createElementNS("http://www.w3.org/1999/xhtml", n) : d.createElement(n);
	while ((a = arguments[++i])) {
		if (typeof a === "string") {e.appendChild(d.createTextNode(a))}
		else if (a.nodeName) {e.appendChild(a);}
		else {for (var p in a) {e[p] = a[p];}
		}
	}
	return e;
},

// remplace un element complet par un autre et conserve l'ancien
remplaceEl = function(obj,nouveau,ancien) {
if(ancien.parentNode==obj){
	obj.insertBefore(nouveau,ancien)
	d.appendChild(ancien)
	}
},

// element de remplacement
dia2=d.createTextNode("Patientez ... "),

// construction des éléments:
fenJs=createEl("div",
	//fausse fenêtre
	gdim=createEl("div", {"id": "pop"} ,
		// l'image :
		im1 = createEl("img", {"title": "fermer"} ),
		// titre, description :
		lx = createEl("div", {"id": "titre"}," " ),
		// conteneur des commandes pour galerie:
		avs = createEl("div", {"id": "croix"},
			// conteneur des commandes image
			cdi = createEl("span", {"id": "cdeIM"},
				// precedent
				pre=createEl("a", {"id":"prec", "href":"précédent"}," < ", createEl("span","P"),"rec "),
				// diaporama
				dia=createEl("a", {"id":"diapo", "href":"diaporama"}," ", createEl("span","D"),"iaporama "),
				// suivant
				sui=createEl("a", {"id": "suivant", "href": "suivant"}," ", createEl("span","S"),"uiv >")
			)// fin cdi
		),// fin avs
	// fermer
	crx=createEl("div",{"id": "fermer"}, createEl("a",{"href":"fermer"}, createEl("span","F"),"ermer X ")),
	// conteneur du message status image
	sta = createEl("div", {"id": "statIM"}," " )
	),// fin gdim
	// arrière plan
	arp=createEl("a",{"id":"arplan","href":"fermer.","title":"Fermer"})
),// fin fenJs

lienImage = function(e){ 
// détournement du lien image
if(!init){d.body.appendChild(fenJs);init=1}
if(fenJs.style.display=='block'){fermer(e);}// fermer avec la touche "Entrée"
else{
	e=e||w.event
	lien=e.target?e.target:e.srcElement;
	if(lien.tagName=="IMG"|!lien.tagName){lien=lien.parentNode;}// vignette ou noeud #text 
	// lien vers une image d'extention .jpg, .jpeg, .png ou .gif 
	if(lien.href&&lien.href.search(/.jpg$|.jpeg$|.png$|.gif$/i)!=-1){
		voirSelect('hidden');
		//charge l'image dans le cache du navigateur. 
		im=new Image();im.src=lien.href;im1.width=im1.height=0;
		lx.firstChild.data="chargement en cours ..."
		//montre la fausse fenêtre 
		fenJs.style.display="block"
		gal=lien.parentNode.parentNode.parentNode.parentNode;
		if(gal&&gal.tagName=="DL"&&gal.className=="galerie"){
			liensGal=gal.getElementsByTagName('a')
			for(var i=0;i<liensGal.length;i++){if(lien == liensGal[i])courLien=i}
			avs.style.display='block';sta.style.display='block';
			}
		else {avs.style.display='none';sta.style.display='none';gal=0;}
		actif=setInterval(function(){controleChargement()},1) 
		//désactive l'action normale du lien HTML 
	  stopEvent(e);
		}
	}
}

// redéfini les éléments affichés et repositionne image et ar-plan 
var recadre = function(){
	if(gal){ // galerie d'images
		pre.style.display=courLien<1?'none':''; // précédent
		sui.style.display=courLien>liensGal.length-2?'none':'';// suivant
		sta.firstChild.data="Image "+(courLien+1)+" de "+liensGal.length;
		}
	// ie6 ou ie7/win suivant doctype
	var db=!d.documentElement.clientWidth?d.body:d.documentElement,  
	// infos sur la fenêtre du navigateur
	sx=w.pageXOffset?w.pageXOffset:db.scrollLeft,		// scroll h 
	sy=w.pageYOffset?w.pageYOffset:db.scrollTop, 		// scroll v 
	fx=w.innerWidth?w.innerWidth:db.clientWidth, 		// l fenêtre 
	fy=w.innerHeight?w.innerHeight:db.clientHeight,	// h fenêtre 
	// centre l'image dans la fenêtre sans la tronquer
	gdimx=gdim.offsetWidth>fx?sx:fx/2-gdim.offsetWidth/2+sx,
	gdimy=gdim.offsetHeight>fy?sy:fy/2-gdim.offsetHeight/2+sy;
	with(gdim.style){left=gdimx+'px'; top=gdimy+'px';}
	// dimentionne l'arrière plan à la page
	with(arp.style){width=db.scrollWidth+'px';height=db.scrollHeight+'px'}
}	

// controle le chargement de l'image 
var controleChargement = function(){
// l'image est montrée 
if(im.complete){
	voirSelect('hidden');
	with(im1){src=im.src;width=im.width;height=im.height;}; 
	// renvoi le titre 
	lx.firstChild.data=!gal?lien.firstChild.alt:liensGal[courLien].firstChild.alt;
	lx.style.display=(lx.firstChild.data=="undefined")?"none":"block";
	clearInterval(actif)
	recadre()
	}
} 

// cacher image et ar-plan, rétablir les selects
var fermer = function(e){
	fenJs.style.display='none';
	pre.style.display='';
	sui.style.display='';
	remplaceEl(cdi,dia,dia2)
	voirSelect('visible');
	clearInterval(actif);
	stopEvent(e);
	}

// précédent ou suivant
var chgImg = function(){
	clearInterval(actif);
	remplaceEl(cdi,dia,dia2)
	courLien=courLien<0?0:courLien>liensGal.length-1?liensGal.length-1:courLien
	//charge l'image dans le cache du navigateur. 
	im=new Image();im.src=liensGal[courLien].href;;
	lx.firstChild.data="chargement en cours ..."
	actif=setInterval(function(){controleChargement()},1) 
	}

var diaporama=function(){
remplaceEl(cdi,dia2,dia)
if(im.complete){
	clearInterval(actif);
	// renvoi le titre 
	lx.firstChild.data=liensGal[courLien].firstChild.alt;
	with(im1){src=im.src;width=im.width;height=im.height;};
	var prevu=courLien+1>liensGal.length-1?0:courLien+1; // incrément
	im=new Image();im.src=liensGal[prevu].href;recadre() 
	actif=setInterval(function(){courLien=prevu;diaporama()},4000);
}
else {
	actif=setInterval(function(){diaporama()},1) }
}

// recentrer au "resize" de la fenêtre
addEvent(window,"resize",recadre)
// Liens vers images détournées
addEvent(d,"click",lienImage)

					// commandes pour galerie
//cliquer sur precedent 
addEvent(pre,"click",function(e){courLien--;chgImg();stopEvent(e)})
//cliquer sur diaporama 
addEvent(dia,"click",function(e){diaporama();stopEvent(e);})
//cliquer sur suivant 
addEvent(sui,"click",function(e){courLien++;chgImg();stopEvent(e)})

//cliquer sur arp pour fermer
addEvent(arp,"mousedown",fermer)
//cliquer sur l'image pour fermer
addEvent(im1,"mousedown",fermer)
//cliquer sur "Fermer X" pour fermer
addEvent(crx,"click",fermer)

// actions au clavier 
addEvent(d,"keydown",function(e){
	var e=e||w.event,
	tch=e.which?e.which:e.keyCode;
	if(tch==80){courLien--;chgImg(e)}// précédent
	if(tch==83){courLien++;chgImg(e);}// suivant
	if(tch==68){diaporama();}// diaporama
	if(tch==27||tch==70){fermer(e);}// fermer avec la touche "Echap" ou "F"
	}) 

}
} ) ();
//--> 

