/* 
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

var SlideShow =
{
    widgets : null,

    init : function()
    {
        SlideShow.widgets = new Array();
        var shows = Core.getElementsByClass("slideshow");
        for (var i = 0; i < shows.length; i++) {
            // Trasforma la stringa json in un oggetto javascript
            var args = jsonParse(shows[i].getAttribute("args"));
            // Aggiunge un riferimento all'elemento img
            args.img = shows[i].getElementsByTagName("img")[0];
            // Aggiunge un riferimento all'elemento a
            args.a = shows[i].getElementsByTagName("a")[0];
            // Crea un parametro fn che conterrà la funzione slideshow
            args.fn = null;
            // Aggiunge args all'array widgets
            SlideShow.widgets[shows[i].id] = args;
            // Lancia lo slideshow subito se l'argomento onload vale true
            if (args.onload == true)
                SlideShow.start(shows[i].id);            
        }        
        
    },

    preload : function(objId)
    {
        var args = SlideShow.widgets[objId];
        var images = new Array();
        var slides = args.slides;

        for (var j = 0; j<slides.length; j++) {
            var i = new Image();
            i.src = slides[j].src;
            images.push(i);
        }
        SlideShow.widgets[objId].images = images;
    },

    start : function(objId)
    {
        SlideShow.preload(objId);
        // Estrazione dell'oggetto slideshow
        var args = SlideShow.widgets[objId];
        // Estrazione del componente img
        var img = SlideShow.widgets[objId].img;
        // Estrazione del componente href
        var a = SlideShow.widgets[objId].a;
        // Impostazione del contatore di immagini
        var count = 0;
        // Impostazione della prima immagine e del primo collegamento
        
        //img.setAttribute("src", args.images[count].src);
        img.setAttribute("src", args.images[count].src);
        a.setAttribute("href", args.slides[count].target);
        // Incremento del contatore
        count++;
        // Estrazione della variabile intervallo
        var interval = 4000;
        // Prosecuzione della galleria di immagini
        SlideShow.widgets[objId].fn = setInterval(function() {
            if (count >= args.slides.length ) count = 0;           
            img.setAttribute("src", args.slides[count].src);
            a.setAttribute("href", args.slides[count].target);
            count++;
        }, interval);
           
    },

    stop : function(objId)
    {
        clearTimeout(SlideShow.widgets[objId].fn);
    },

    switchImage : function(img, src)
    {
        img.setAttribute("src", src);
    }




};

Core.start(SlideShow)



