<!--  Liens image redirigés. Michel Deboom 05/2005 modifié 06/01/07  
// testé sur ie5, ie6, ie7, Firefox 1.5.0.9, Netscape 7,Opéra 9.02
( function() { //fonction éxécutable tout de suite
if(document.createElement){ // exclut les navigateurs incompatibles

// les variables :

/* Choix de la position de la fausse fenêtre 
 0 - en haut et à gauche
 1 - centrée  
*/
var centre=1 ;

var D=document; // simplification car très utilisé
var ver = navigator.appVersion.substr(17,6) 
var ie=navigator.appVersion.substr(17,4)=="MSIE"?1:0
var ie5_6 = ver=="MSIE 5" || ver=="MSIE 6"?1:0
var db //quirk IE 
,sx // scroll horizontal 
,sy // scroll vertical 
,dx // distance entre px et le haut de l'élément déplacé
,dy // distance entre py etla gauche de l'élément déplacé 
,fx // largeur fenêtre 
,fy // hauteur fenêtre 
,px // curseur x
,py // curseur y
,tch // code de la touche actionnée
,drag // 0 : arrêt déplacement; 1 : déplacement;
,lock // empêche le scroll de la page sur déplacement vertical au clavier
,init // initialisation au premier lien image activé(click ou clavier)

// Ajout d'une action sur un événement
var addEvent = function(obj, type, fonction){
if (obj.addEventListener){	// code standard DOM
    obj.addEventListener(type, fonction, false);return true;}
else if (obj.attachEvent){ 	// code propriétaire MSIE
    var r = obj.attachEvent("on"+type, fonction); return r;}
}

// Arrête la poursuite de l'évènement
var	stopAction = function(e){
if(ie){e.cancelBubble = true; e.returnValue = false;}
else{e.stopPropagation(); e.preventDefault();}
return false;
}

//  cache les éléments select pour IE5 & IE6
var voirSelect = function(v){ 
var elem=document.getElementsByTagName('select');
if(ie5_6){for(i=0;i<elem.length;i++)elem[i].style.visibility=v;} 
} 

// Création des éléments de la fausse fenêtre
// Conteneur :
var gdim=D.createElement("div");gdim.setAttribute("id", "pop") ;
// Entête :
var lx=D.createElement("div");gdim.appendChild(lx);
lx.appendChild(D.createTextNode(""));lx.setAttribute("id", "tet");
// Pour fermer :
var avs=D.createElement("div");lx.appendChild(avs);
avs.setAttribute("id", "croix");
avs.title="Fermer";avs.appendChild(D.createTextNode("")); 
// l'image :
var im1=D.createElement("img");gdim.appendChild(im1);

var grandeImage = function(e){ 
if(!init){ // necessite que l'élément "body" éxiste 
	db=!D.documentElement.clientWidth?D.body:D.documentElement  
	D.body.appendChild(gdim);init=1
	}
// détournement du lien image
var lien = ie?e.srcElement:e.target;
if(lien.tagName=="IMG"|!lien.tagName){lien=lien.parentNode;}// vignette ou noeud #text 
if(lien.getAttribute('href')) { // liens seulement
	var addr = lien.getAttribute('href') ; 
	if( addr&&addr.search(/.jpg$|.jpeg$|.png$|.gif$/i)!=-1){
		voirSelect('hidden');
		//charge l'image dans le cache du navigateur. 
		im=new Image();im.src=addr;
		// renvoi le titre 
		lx.firstChild.data=im1.alt=lien.title;
		//infos sur la fenêtre du navigateur
		fx=ie?db.clientWidth:innerWidth-20 //l fenêtre 
		fy=ie?db.clientHeight:innerHeight  //h fenêtre 
		sx=ie?db.scrollLeft:pageXOffset; //scroll h 
		sy=ie?db.scrollTop:pageYOffset; //scroll v 
		if(im1.alt==''){avs.style.display="none"}
		else {avs.style.display=""}
		// Image réduite à 0
		with(im1){width=height=0;title='Cliquez pour fermer';src=""}; 
		//montre la fausse fenêtre 
		gdim.style.display="block"
 		actif=setTimeout('controleChargement()',300) 
		//désactive l'action normale du lien HTML 
	  stopAction(e);
		}
	}
}

// controle le chargement de l'image 
controleChargement = function(){
//On récupère la position des barres de défilement pour replacer la fenêtre.
sx=ie?db.scrollLeft:pageXOffset; //scroll h 
sy=ie?db.scrollTop:pageYOffset; //scroll v 
// l'image est dimentionnée 
with(im1){src=im.src;width=im.width;height=im.height;}; 
if(centre){ // centre la fausse fenêtre
	gdim.style.left=fx/2-gdim.offsetWidth/2+sx+'px'; 
	gdim.style.top=fy/2-gdim.offsetHeight/2+sy+'px';
	}
else { // cale la fausse fenêtre dans le coin haut gauche
	gdim.style.left=sx+'px'; 
	gdim.style.top=sy+'px';
	}
if(im.complete){clearTimeout(actif)}
else actif=setTimeout('controleChargement()',50) 
} 

// Liens vers images détournées
addEvent(D,"click",grandeImage)

//cliquer sur la croix pour fermer
addEvent(avs,"click",
	function(){gdim.style.display='none';voirSelect('visible');})

//cliquer sur l'image pour fermer
addEvent(im1,"click",
	function(){gdim.style.display='none';voirSelect('visible');})

// fonctions de drag&drop sur la barre de titre
addEvent(lx,"mousedown",function(e){
	dx=px-gdim.offsetLeft;dy=py-gdim.offsetTop;drag=1;stopAction(e);
  })
addEvent(lx,"mouseup",function(){drag=0})
addEvent(D,"mousemove",function(e){ 
	px=!ie?e.pageX:event.clientX+sx; //curseur x 
	py=!ie?e.pageY:event.clientY+sy; //curseur y 
	if(drag){
		with(gdim.style){;left=px-dx+"px";top=py-dy+"px"};
		stopAction(e);
		} 
	}) 

// déplacer l'image au clavier 
addEvent(D,"keydown",function(e){
	tch=!ie?e.which:e.keyCode;
	// avec les flèches
	if(tch==40||tch==98){ // vers le bas
		gdim.style.top=gdim.offsetTop+50+'px';//lock=1;
		//stopAction(e);
		}
	if(tch==38||tch==104){ // vers le haut
		gdim.style.top=gdim.offsetTop-50+'px';//lock=1;
		//stopAction(e);
		}
	if(tch==37||tch==100){ // vers la gauche
		gdim.style.left=gdim.offsetLeft-50+'px'}
	if(tch==39||tch==102){ // vers la droite
		gdim.style.left=gdim.offsetLeft+50+'px'}
	if(tch==27){// cacher l'image avec la touche "Echap"
		gdim.style.display='none';voirSelect('visible');}
}) 

//Empèche le scroll de la page sur déplacement au clavier
addEvent(D,"keypress",function(e){
	if(lock){lock=0;stopAction(e);}
	}) 
}
} ) ();
//--> 
