﻿
// ------------- PRE-LOADING

var PLQueue = new Array();
var nbFinished = 0;
var nbToPreload = 0;
var nbPreloading = 0;
var currentPreload = 0;

function ImagePL(source)
{
  var idx = PLQueue.length;
  this.idx = idx;
  this.finished = false;
  this.theimage = new Image();
  this.theimage.onload = function() { setTimeout("setPLFinished(" + idx + ");", 1); };
  this.theimage.onerror = function() { setTimeout("setPLFinished(" + idx + ");", 1); };
  this.source = source;
}

function setPLFinished(idx)
{
  nbFinished++;
  PLQueue[idx].finished = true;
  PLQueue[idx].theimage = null;
  
  nbPreloading--;
}

function WaitPreloadingEnded()
{
  docenter();
  
  if (nbFinished < nbToPreload)
  {
    var sp = getElement(document, 'spanLoading');
    sp.innerHTML = Math.round((nbFinished * 100) / nbToPreload) + ' %';

    var i;
    for (i = 1; i <= 3; i++)
    {    
      sp = getElement(document, 'progressbar' + i);
      sp.style.width = Math.round((nbFinished * 200) / nbToPreload) + 'px';
    }

    ContinuePreload();
    setTimeout("WaitPreloadingEnded();", 1);
    
    return;
  }
  PLQueue = null;
  self.location = 'Default.aspx';
}

function ContinuePreload()
{
  var tm = 1;
  for( i = currentPreload; i < PLQueue.length; i++)
  {
    if (nbPreloading >= 50)
      break;
      
    //setTimeout("PLQueue[" + i + "].theimage.src = PLQueue[" + i + "].source;", 250 + (((i+1) * 3000) / PLQueue.length));
    setTimeout("PLQueue[" + i + "].theimage.src = PLQueue[" + i + "].source;", tm);
    tm++;
    nbPreloading++;
    currentPreload++;    
  }
}

function docenter()
{
  var height = 0;
  
  //  on récupère au mieux la taille de la fenêtre
  if (window.innerHeight) 
    height = window.innerHeight - 18;
  else if (document.documentElement && document.documentElement.clientHeight) 
    height = document.documentElement.clientHeight;
  else if (document.body && document.body.clientHeight) 
    height = document.body.clientHeight;

  var cp = getElement(document, 'marginTopPreload');
  cp.style.height = ((height - 250) / 2) + 'px';
}

function doPreLoad()
{
  var i;

  docenter();

  nbFinished = 0;
  nbToPreload = filestopreload.length;

  //getElement(document, 'winBody').style.backgroundImage = "url('Images/Fonds/fdECRAN2.jpg')";
  
  for( i = 0; i < filestopreload.length; i++)
    PLQueue.push(new ImagePL(filestopreload[i]));

  filestopreload = null;

  ContinuePreload();
  WaitPreloadingEnded();
}


