// ********************************************************************************
// Questa libreria permette di scegliere un oggetto IMG della pagina
// HTML e di farne ruotare le immagini con una sfumatura ogni X secondi
// ********************************************************************************

// *****************************
// Aggiugne un'immagine slide all'oggetto
// IMG con id passato a parametro
// 
// id: identificatore dell'immagine che ha le slide
// src: percorso dell'immagine da usare come slide
// *****************************
function AddSlide(id, src)
{
  // Recupero l'immagine dal DOM e procedo solo se la trovo
  var img = document.getElementById(id);
  if (img)
  {
    // Se serve creo un array di slide nell'immagine
    if (!img.SlideArray)
    {
      img.SlideArray = new Array();
    }
    // Se serve creo un array di frasi nell'immagine
    if (!img.PhraseArray)
    {
      img.PhraseArray = new Array();
    }
    //
    img.SlideArray.push(src);
    img.PhraseArray.push("Non specificata....");
  }
}

// *****************************
// Aggiugne una frase ad una slide all'oggetto
// IMG con id passato a parametro
// 
// id: identificatore dell'IMG che contiene le slide
// number: numero della slide a cui associare la frase
// phrase: frase da associare alla slide
// *****************************
function AddPhrase(id, phrase, number)
{
  // Recupero l'immagine dal DOM e procedo solo se la trovo
  var img = document.getElementById(id);
  if (img)
  {
    if (!number)
      number = img.PhraseArray.length-1;
    img.PhraseArray[number] = phrase;
  }
}

// ******************************
// Passa alla prossima slide dell'oggetto IMG 
// precedentemente configurato con la AddSlide
// 
// id: identificatore dell'immagine che ha le slide
// idx: eventuale indicatore della slide da mostrare
// ******************************
function NextSlide(id, idx)
{
  // Recupero l'immagine dal DOM e procedo solo se la trovo
  var img = document.getElementById(id);
  if (img)
  {
    // Recupero lo span per la frase
    var phrase = document.getElementById(id + "Phrase")
    //
    // Se serve aggiungo l'indice di posizione delle slide
    if (idx)
      img.SlideIdx = idx;
    //
    if (!img.SlideIdx)
      img.SlideIdx = Math.ceil(Math.random() * img.SlideArray.length);
    //
    if (GetOpacity(img) > 10)
    {
      img.timer = setTimeout("NextSlide('"+id+"', "+idx+");", 100);
      //
      if (GetOpacity(img) == 100)
      {
        Fade(id, 0, 7);
        return;
      }
    }
    //
    if (GetOpacity(img) < 10)
    {
      // Metto la prossima slide nell'immagine
      img.SlideIdx = img.SlideIdx + 1;
      if (img.SlideIdx >= img.SlideArray.length)
        img.SlideIdx = 0;
      if (idx && idx >= img.SlideArray.length && idx > 0)
        img.SlideIdx = idx;
      //
      img.src = img.SlideArray[img.SlideIdx];
      //
      // Se non è definito un intervallo di tempo cambio immagine ogni 5 secodni
      if (!img.Period)
        img.Period= 5000;
      //
      // Imposto il timer per il prossimo cambio d'immagine
      img.timer = setTimeout("NextSlide('"+id+"');", img.Period);
      //
      setTimeout("Fade('" + id + "', 100, 7)", 100);
      phrase.innerHTML = img.PhraseArray[img.SlideIdx];
    }
  }
}

// ******************************
// Imposta il periodo in ms tra una slide e l'altra
// 
// id: identificatore dell'immagine che ha le slide
// ms: millisecondi per dopo i quali si passa alla prossima slide
// ******************************
function SetPeriod(id, ms)
{
  // Recupero l'immagine dal DOM e procedo solo se la trovo
  var img = document.getElementById(id);
  if (img)
  {
    img.Period = ms;
  }
}
