/*//////////////////////////////////////
© 2009 Teemu Alapoikela, TVP Networks Oy
//////////////////////////////////////*/
dojo.require("dojo._base.fx");

function fadeImages(duration, delay) {
  
  //luodaan taulukko urleja varten
  var imgUrls = new Array(
  );
  var triggered = false;
  
  dojo.xhrGet({
    //haetaan urlit tulostava php
    url: "/images/fadeimgs/imgs.php",
    load: function(data) {
      //otetaan data talteen
      var imgStr = data;
      //poistetaan viimeinen pilkku
      var newImgStr = imgStr.substring(0, imgStr.length -1);
      //viedään urlit taulukkoon
      imgUrls = newImgStr.split(",");
      imgUrls.reverse();
      
      //taulukon viimeinen indeksi
      lastIndex = imgUrls.length -1;
      //sliden tämänhetkinen sijainti. aloitetaan viimeisestä indeksistä.
      currentNum = lastIndex;
      
      //haetaan containeri kuville. tämä div pitää asettaa itse sinne, minne haluaa kuvien tulevan. muuten ei toimi lol.
      var fadeImgContainer = dojo.byId("fadeimgs");
      //asetetaan oletustaustakuva ja offset. asetetaan kuvien position asettumaan tähän diviin.
      dojo.style(fadeImgContainer, {position: "relative"});
      
      //luodaan kuvaelementit hakemaamme containeriin ja asetetaan niille tarvittavat arvot.
      dojo.forEach(imgUrls, function(e){
        var img = new Image();
        img.src = "" + e + "";
        fadeImgContainer.appendChild(img);
        dojo.addClass(img, "fadeimg");
        dojo.style(img, {position: "absolute", left: "0px", top: "0px",
                               visibility: "hidden" });
      }); 
      
      //haetaan kaikki kuvat dom-elementteinä taulukkoon
      thisNodeList = dojo.query(".fadeimg");
      //laitetaan homma käyntiin
      fadeItem(currentNum);
    },
    //jos tapahtui virhe, katso konsolia
    error: function(err) {
      console.log("errordata: ", err, "imgurls: ", imgUrls);
    }
  });
  
  function fadeItem(num) {
    //jos ei ole vielä viimeinen kuva
       if(triggered == false){
          dojo.query(".fadeimg").style("visibility", "visible" );
          triggered = true;    
          }
          
      
    if (currentNum > 0) {
      dojo.fadeOut({
        node: thisNodeList[num],
        duration: duration,
        delay: delay,
        onEnd: function() {
          currentNum--;
          fadeItem(currentNum);
        }
      }).play();
    }
    //jos oli viimeinen kuva
    else {
      dojo.fadeIn({
        node: thisNodeList[lastIndex],
        duration: duration,
        delay: delay,
        onEnd: function() {
          //resetoidaan sijainti
          currentNum = lastIndex;
          dojo.forEach(thisNodeList, function(e) {
            //ei tehdä päällimmäiselle kuvalle
            if (e != thisNodeList[lastIndex]) {
              //asetetaan kaikki kuvat taas "näkyviin"
              dojo.style(e, "opacity","1");
            }
          });
          //loopataan
          fadeItem(currentNum);
        }
      }).play();
    }
  }
}