
var animage = function(elementId,images,delai,actif) {
    this.elementId = elementId;
    this.indexActuel = 0;
    this.images = images;
    this.delai = delai;
    this.imageChargee = new Array();

    this.prechargement = function() {
        for (i= 0; i <= this.images.length -1 ; i++) {
            this.imageChargee[i] = new Image(100,25);
            this.imageChargee[i].src= this.images[i];
        }
    }

    this.imagesChargees = function() {
        for (i= 0; i <= this.images.length -1 ; i++) {
            if (!this.imageChargee[i].complete) {
                return false;
            }
        }
        return true;
    }

    this.imageDepart = function() {
        var self = this;
        if (document.getElementById(this.elementId)) {
            document.getElementById(this.elementId).src = this.images[this.indexActuel];

            document.getElementById(this.elementId).onclick = function() {
                //animage.images[self.imgNo].lanceur();
                self.lanceur();
            }

        } else {
            setTimeout(function() {
                self.imageDepart()
            },50);
        }
    }

    this.changeImage = function() {
        if (document.getElementById(this.elementId) && this.images.length - 1 > 0 && this.imagesChargees()) {
            this.indexActuel = (this.indexActuel + 1) % (this.images.length);
            if (this.images[this.indexActuel] != undefined) {
                document.getElementById(this.elementId).src = this.images[this.indexActuel];
            }
        }
    }

    this.lanceur = function() {
        if (this.actif) {
            this.actif = 0;
            clearTimeout(this.timer);
        } else {
            this.actif = 1;
            var self = this;
            this.timer = setInterval(function() {
                self.changeImage()
                },this.delai);
        }
    }

    this.prechargement();
    this.imageDepart();
    if (actif === undefined || actif) {
        this.lanceur();
    }
}
