// http://brainerror.net/scripts/javascript/blendtrans/

//var Pic            = new Array();
var slideShowSpeed = 2500;
var CurrentPic;
var Loader;
var SmoothResize;
var DivID;
var PictureID;
var LegendeID;
var ScaleXFactor;
var ScaleYFactor;
var timer = null;

function StartSlideShow(DIV_ID,IMG_ID,LEGENDE_ID,Mode)
 {
  CurrentPic   = 0;
  DivID        = DIV_ID;
  PictureID    = IMG_ID;
  LegendeID    = LEGENDE_ID;
  SmoothResize = Mode;

  document.getElementById(PictureID).style.display = "none";
  changeOpac(0, PictureID);

  Loader     = new Image();
  Loader.src = Pic[CurrentPic][0];
  clearTimeout(timer);
  timer = setTimeout("CheckLoadingStatus(0)", 200);
 }

function CheckLoadingStatus(Mode)
 {
  var pic = document.getElementById(PictureID);
  var leg = document.getElementById(LegendeID);
  if ( Loader.complete == true )
   {
    //document.getElementById(LegendeID).style.backgroundImage = "url('Ressources/JS-1/Graphix/Puce.gif')";
    //document.getElementById(LegendeID).style.backgroundPosition = "2px 4px";

    if ( Mode == 0 )
     {
      pic.src = Pic[CurrentPic][0];
      pic.style.display = "inLine";
      pic.parentNode.href = Pic[CurrentPic][2];
      leg.innerHTML = Pic[CurrentPic][1];
      leg.style.display = "inLine";


      pic.width    = Loader.width;
      pic.height   = Loader.height;

      currentOpac(PictureID, 100, 300);
     }
    else
     {
      currentOpac(PictureID, 0, 300);
     }
   }
  else {
     clearTimeout(timer);
     timer = setTimeout("CheckLoadingStatus("+Mode+")", 200);
  }
 }

function NextPic()
 {
  CurrentPic = CurrentPic + 1;
  if ( CurrentPic >= Pic.length )
   CurrentPic = 0;

  Loader     = new Image();
  Loader.src = Pic[CurrentPic][0];

  //document.getElementById(LegendeID).style.backgroundImage = "url('Ressources/JS-1/Graphix/Load.gif')";
  //document.getElementById(LegendeID).style.backgroundPosition = "0px 0px";

  clearTimeout(timer);
  timer = setTimeout("CheckLoadingStatus(1)", 200);
 }

function ShowNext()
 {
  var pic = document.getElementById(PictureID);
  var leg = document.getElementById(LegendeID);
  if ( pic.width != Loader.width && SmoothResize == 1 )
   {
    StretchImage();
    return(0);
   }
  else if ( pic.width != Loader.width && SmoothResize == 0 )
   {
    pic.width    = Loader.width;
    pic.height   = Loader.height;
   }
  pic.src = Pic[CurrentPic][0];
  pic.parentNode.href = Pic[CurrentPic][2]
  leg.innerHTML = Pic[CurrentPic][1];

  currentOpac(PictureID, 100, 300);
 }

function StretchImage()
 {
  ScaleXFactor = (document.getElementById(PictureID).width - Loader.width) / 10;
  ScaleYFactor = (document.getElementById(PictureID).height - Loader.height) / 10;

  clearTimeout(timer);
  timer = setTimeout("ResizeFactor()",20);
 }

function ResizeFactor()
 {
  if ( document.getElementById(PictureID).width == Loader.width )
   {
    document.getElementById(PictureID).width = Loader.width;
    clearTimeout(timer);
    ShowNext();
    return(0);
   }

  Width  = document.getElementById(PictureID).width - ScaleXFactor;
  Height = document.getElementById(PictureID).height - ScaleYFactor;

  document.getElementById(PictureID).width    = Width;
  document.getElementById(PictureID).height   = Height;
  if (document.getElementById(PictureID).width>Loader.width) 
  {
    document.getElementById(PictureID).width=Loader.width;
    document.getElementById(PictureID).height=Loader.height;
  }
  clearTimeout(timer);
  timer = setTimeout("ResizeFactor()",20);
 }

function opacity(id, opacStart, opacEnd, millisec)
 {
  var speed = Math.round(millisec / 100);
  var timer = 0;

  if(opacStart > opacEnd)
   {
    for(i = opacStart; i >= opacEnd; i--)
     {
      setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
      timer++;
     }
     clearTimeout(timer);
     timer = setTimeout("ShowNext()",(timer * speed));
   }
  else if(opacStart < opacEnd)
   {
    for(i = opacStart; i <= opacEnd; i++)
     {
      setTimeout("changeOpac(" + i + ",'" + id + "')",(timer * speed));
      timer++;
     }
     clearTimeout(timer);
     timer = setTimeout("NextPic()",slideShowSpeed);
   }
 }

function changeOpac(opacity, id)
 {
  var object = document.getElementById(id).style;
  object.opacity = (opacity / 100);
  object.MozOpacity = (opacity / 100);
  object.KhtmlOpacity = (opacity / 100);
  object.filter = "alpha(opacity=" + opacity + ")";

  var object = document.getElementById(LegendeID).style;
  object.opacity = (opacity / 100);
  object.MozOpacity = (opacity / 100);
  object.KhtmlOpacity = (opacity / 100);
  object.filter = "alpha(opacity=" + opacity + ")";
 }

function currentOpac(id, opacEnd, millisec)
 {
  var currentOpac = 100;

  if(document.getElementById(id).style.opacity < 100)
   currentOpac = document.getElementById(id).style.opacity * 100;

  opacity(id, currentOpac, opacEnd, millisec)
 }

