var defilements = new Array;

nereidFadeObjects = new Object();
nereidFadeTimers = new Object(); 

function nereidFade(object, destOp, rate, delta){
//if (!document.all){
//object.style.visibility='hidden';
//return
//}
if (object != "[object]"){ 
setTimeout("nereidFade("+object+","+destOp+","+rate+","+delta+")",0);
return;
}

clearTimeout(nereidFadeTimers[object.sourceIndex]);

diff = destOp-object.filters.alpha.opacity;
direction = 1;
if (object.filters.alpha.opacity > destOp){
direction = -1;
}
delta=Math.min(direction*diff,delta);
object.filters.alpha.opacity+=direction*delta; 

if (object.filters.alpha.opacity != destOp){
nereidFadeObjects[object.sourceIndex]=object;
nereidFadeTimers[object.sourceIndex]=setTimeout("nereidFade(nereidFadeObjects["+object.sourceIndex+"],"+destOp+","+rate+","+delta+")",rate);
}
} 

function redim(w,h,maxw,maxh){
nw=w
nh=h
if((nw/maxw)>(nh/maxh)){
 nw=maxw;
 nh=h/w * nw;
}else{
 nh=maxh;
 nw=w/h * nh;
}
return (new Array(nw,nh));
}

function defilement(width,height,delai){	
 this.stretch=(delai==3001);
 this.i = 0;
 this.width = width;
 this.height = height;
 this.delai = delai;
 n = defilements.length;
 this.n = n;
 this.images = new Array;
 this.stop = false;
 defilements[n] = this;
}

function ajouter_image(src,width,height,defil){
 this.src = src;
 this.width = width;
 this.height = height;
 n = defil.images.length;
 this.n = n;
 defil.images[n] = this;
}

function id_img(ndefil,nimage){
 return ('cacai' + nimage + '' + ndefil);
}

function id_div(ndefil,nimage){
 return ('cacad' + nimage + '' + ndefil);
}

function ecrire(defil){

var str='';

str += '<div id="caca' + defil.n + '" style="z-index: 6000; width: ' + defil.width + 'px; height: ' + defil.height + 'px;">';
str += '<div id="cacad1' + defil.n + '" align="center" style="z-index: 6000; position: absolute; width: ' + defil.width + 'px; height: ' + defil.height + 'px; visibility: visible;">';

str += '</div>';

str += '<div id="cacad2' + defil.n + '" align="center" style="green; z-index: 6000; position: absolute; width: ' + defil.width + 'px; height: ' + defil.height + 'px; visibility: visible;">'

str += '</div>';
str += '</div>';

 defil.i = defil.images.length-1;
 setTimeout("next_image(" + defil.n + ")",1); 
 //alert(str);
 return str;

}

function stop(n){
 defil = defilements[n];	
 defil.stop=true; 
}
   
function alterne(idimg1,idimg2,id1,id2,newi,n){	
  defil = defilements[n];
  if(document.getElementById(idimg1) && !defil.stretch){
    nereidFade(document.getElementById(idimg1), 0, 50, 5);	
  }
  if(document.getElementById(idimg2) && !defil.stretch){
    nereidFade(document.getElementById(idimg2), 100, 50, 5);	
  }					 
  if (document.all && !defil.stretch){
    setTimeout("document.getElementById(id1).style.visibility='hidden';",2000);	   
  }else{
    document.getElementById(id1).style.visibility='hidden';	   
  }
  document.getElementById(id2).style.visibility='visible'; 
  defil.i = newi;
  setTimeout("next_image(" + defil.n + ")",defil.delai);
}


function next_image(n){
 defil = defilements[n];
 if(defil.stop==false){
 i = defil.i;
 newi = i + 1;
 lli = (i % 2) + 1;
 llnewi = ((i+1) % 2) + 1;
 if(newi >= defil.images.length){newi = 0;}
 id1=id_div(n,lli);
 id2=id_div(n,llnewi);
 idimg1=id_img(n,lli);
 idimg2=id_img(n,llnewi);
  margin_left = (defil.width - defil.images[newi].width) / 2;	
  r = '<a href="#" onclick="stop(' + n + ')"><img id="' + idimg2 + '" style="filter:alpha(opacity=0)" src="' + defil.images[newi].src + '" width="' + defil.images[newi].width + '" height="' + defil.images[newi].height + '" onload="alterne(\'' + idimg1 + '\',\'' + idimg2 + '\',\'' + id1 + '\',\'' + id2 + '\',' + newi + ',' + n + ')"></a>';
  if(defil.stretch){ 
   taille=redim(defil.images[newi].width,defil.images[newi].height,defil.width,defil.height);
   	r = '<a href="#" onclick="history.back()"><img id="' + idimg2 + '" src="' + defil.images[newi].src + '" width="' + taille[0] + '" height="' + taille[1] + '" onload="alterne(\'' + idimg1 + '\',\'' + idimg2 + '\',\'' + id1 + '\',\'' + id2 + '\',' + newi + ',' + n + ')"></a>';
  }
  document.getElementById(id2).innerHTML=r;														 
 }
}