
/*==============================================================================
 * Ce fichier contient la definition de l'objet responsable de l'affiche de contenu pour informer l'utilisateur qu'une operation est en cours. A chaque appel de show() elle affiche la div et incremente son compteur. A chaque appel de hide() elle decremente son compteur; si celui-ci vaut 0 elle cache la div. Cela signifie que si une requete AJAX n'arrive pas a terminer la div va rester indefiniment car rien n'est prevu par cet objet pour recuperer de cette situation. Les handler responsables des requete AJAX doivent s'assurer que celles-ci terminent correctement ou son arretes au bout d'un certain temps.
*/

IAD_PageController.StaticSplashHandler = Class.create(
{
    initialize: function(divId)
    {
        var _div = getElt(divId);
        var _window = new Window({className: "alphacube", title: "", width:50, height:50, destroyOnClose: false, recenterAuto:false});
        var _view;
        var _listeners = [];
        //var _view = _window;
        var _view = _div;
        if(_div)
        {
            _window.getContent().update(_div.innerHTML);
            //_window.getContent().update(_div);
        }
        this.getDiv = function ()
        {
            return _div;
        }
        this.addListener = function(l)
        {
            //alert("StaticSplashHandler, elt.id=");
            _listeners.push(l);
            return this;
        }


        var _counter = 0;

        this.show = function()
        {
            //_window.showCenter();
            //_window.setLocation(100, 150);
            if(_counter == 0)
            {
                _listeners.each(function(l){l.requestsStart();});
            }
            _view.show();
            _counter ++;
        }
        this.hide = function()
        {
            if(--_counter<=0)
            {
                _counter = 0;
                _view.hide();
                _listeners.each(function(l){l.requestsEnd();});
            }
        }
    }
}
);



