function pub() {
    this.show_time = 10;
    this.width = 1015;
    this.height = 206;
    this.images_list = new Array();
    this.actual_image = -1;
    this.elapsed_seconds = 20;
    this.loop_started = false;
    this.mouse_over = false;

    // Déclaration de la fonction à appeler lors du chargement de l'image
    this.image_loaded = function(image) {
        

        if(!this.images_list.in_array(image.id)) {
            this.images_list[this.images_list.length] = image.id;
            document.getElementById("pub-select").innerHTML += "<div onmouseover=\"javascript:pub.mouseover()\" id=\"" + image.id + "-boule\" class=\"boule_non_selected\" onclick=\"pub.select_pub('" + (this.images_list.length - 1) + "')\"></div>";
        }
        
        if(this.loop_started == false) {
            this.loop_started = true;
            this.image_rotate();
        }
    }

    this.select_pub = function(pub_id) {
        // On place la pub demandée au dessus
        this.actual_image = pub_id;
        document.getElementById(this.images_list[this.actual_image]).style.zIndex = "101";
        document.getElementById(this.images_list[this.actual_image]).style.display = "block";
        document.getElementById(this.images_list[this.actual_image] + "-boule").className = "boule_selected";
        // On redescend toutes les autres en dessous
        for(i = 0; i < this.images_list.length; i++) {
            if(i != this.actual_image) {
                document.getElementById(this.images_list[i]).style.zIndex = "100";
                document.getElementById(this.images_list[i] + "-boule").className = "boule_non_selected";
            }
        }
    }

    document.getElementById("pub-section").innerHTML = "<div id=\"pub-select\"></div>";
    
    // On crée toutes les images
    for(var i=0; i<arguments.length; i++) {        
        document.getElementById("pub-section").innerHTML += "<a href=\"" + arguments[i][1] +  "\"><img class=\"bandeau-pub\" id=\"pub-id-" + i + "\" onmouseover=\"javascript:pub.mouseover()\" onmouseout=\"javascript:pub.mouseout()\" onload=\"pub.image_loaded(this)\" width=\"" + this.width + " height=\"" + this.height + "\" src=\"" + arguments[i][0] + "\" /></a>";
    }

    // Fonction permettant de reseter le timer (notamment lorsque la souris se trouve au dessus de l'image
    this.mouseover = function() {
        this.mouse_over = true;
    }

    this.mouseout = function() {        
        this.mouse_over = false;
    }

    // Création de la fonction qui ser lancée chaque seconde pour le traitement de la pub
    this.image_rotate = function() {        
        this.elapsed_seconds++;
        if(this.images_list.length > 0 && this.actual_image == -1) {
            // Si il y a des images dans le tableau

            document.getElementById(this.images_list[0]).style.display = "block";
            document.getElementById(this.images_list[0]).style.zIndex = "101";
            document.getElementById(this.images_list[0] + "-boule").className = "boule_selected";
            this.elapsed_seconds = 0;
            this.actual_image = 0;
            document.getElementById("pub-section").style.height = (this.height + 9) + 'px';
        }
        else if(this.images_list.length > 1) {
            // La première image avait déjà été chargée
            
            if(this.elapsed_seconds > this.show_time && this.images_list.length > 1 && !this.mouse_over) {
                // On sélectionne l'image suivante

                this.actual_image++;
                if(this.actual_image > this.images_list.length - 1) this.actual_image = 0;
                this.select_pub(this.actual_image);
                // On remet le compteur temps à 0
                this.elapsed_seconds = 0;

            }
        }
        setTimeout("pub.image_rotate()", 1000);
    }
}


Array.prototype.in_array = function(p_val) {
    l = this.length;
    
    for(var i = 0; i < l; i++) {
        if(this[i] == p_val) {
            rowid = i;
            return true;
        }
    }
    return false;
}
