var BoxImmagini = function(conf) {
  var elenco = [];
  var numeroImmagini = conf.images.length;
  var delta = 1;
  var cala = 100;
  var aumenta = 0;
  var posizione = 0;
  
  function fineLoad() {
    numeroImmagini--;
    if (numeroImmagini <= 0) {
      startAnimazione();
    }
  }
  
  function setOpacity(img, valore) {
    img.style.opacity = valore/100;
    img.style.filter = 'alpha(opacity=' + valore + ')';
      
  }
  
  function startAnimazione() {
    cont.className = 'box-immagini box-immagini-show';
    setOpacity(elenco[0], 100);        
    setTimeout(avviaScambio, 1000);
  }

  function avviaScambio() {
    cala = 100;
    aumenta = 0;    
    scambio(posizione, (posizione + 1) % elenco.length);
  }
  
  function scambio(a, b) {
    cala -= delta;
    aumenta += delta;
      
    setOpacity(elenco[a], cala);
    setOpacity(elenco[b], aumenta);    

    if (cala > 0) {
      setTimeout(function() {scambio(a, b);}, conf.timeScambio);
    }
    else {
      posizione = (posizione + 1) % elenco.length;
      setTimeout(avviaScambio, conf.attesa);
    }
  }  
  
  var cont = document.getElementById(conf.id);
  for (var i = 0; i < conf.images.length; i++) {
    var img = {};
    img = document.createElement('img');
    setOpacity(img, 0);
    cont.appendChild(img);
    elenco.push(img);
    img.onload = fineLoad;
    img.src = conf.images[i];
  }
}
