
/**
 * @File: cblink.js
 * @Authors: A. RUIZ
 * @Date: 07/08/08
 * @Email: adrien.ruiz083@hotmail.fr
 *
 * @Modified:
 *      @@Authors:
 *      @@Date:
 *      @@Email:
 */

var CBlink = Class.create ();
CBlink.prototype = {

    id: null, // Id de l'element.
    i: null, // Intervalle en secondes.
    e: null, // Etat Appear/Hide.
    s: null, // Started.
    p: null, // PeriodicalExecuter.
    
    initialize: function (id, interv) {
        if (arguments.length < 2)
            throw ('Classe CBlink: Parametre(s) manquant(s)!');
        if (!$(id)) throw ('Classe CBlink: Element introuvable!');
        if (!Type.isNumber (interv) || interv < 0)
            throw ('Classe CBlink: Le second parametre'
                + ' doit etre un nombre positif!');
        this.id = id;
        this.i = interv;
        this.e = true;
        this.s = false;
        this.p = null;
    }, // initialize ();
    
    start: function () {
        if (this.s) return;
        this.s = true;
        var o = this;
        this.p = new PeriodicalExecuter (function (p) {
            if (o.e) {
                Element.setStyle ($(o.id), {visibility: 'hidden'});
                o.e = false;
            } else {
                Element.setStyle ($(o.id), {visibility: 'visible'});
                o.e = true;
            }
        }, this.i);
    }, // start ();
    
    stop: function () {
        if (!this.s) return;
        this.s = false;
        this.p.stop ();
        this.p = null;
    }, // stop ();
    
    _kk : function () {} // end.
    
}; // blink ();

