

$(document).observe('dom:loaded',function(){
    
        var box = $('box-loading');
        if(!box){
            box = new Element('div',{id:'box-loading'});
            load = new Element('div',{id:'loading'});
            
            box.insert(load);
            $(document.body).insert({'top':box});
            
        }
        window.__Objeto__ = {};
        window.__Objeto__.update = function(evt){

                  var load = $('loading');
                  var height =  document.viewport.getScrollOffsets()[1]+$(document).viewport.getHeight();
                  var width = $(document).viewport.getWidth()+document.viewport.getScrollOffsets()[0];
                  load.setStyle({  'width':width+'px',
                                   'height':height+'px',
                                   'padding-top':height / 2
                               });
            };


        box.setStyle({'position':'relative','float':'left','zIndex':'999999'});
        $('loading').hide();
        
        
        Ajax.Responders.register({
             'count':0,
            'onComplete':function(){
                
                this.count = Math.max(--this.count,0);
                if(!this.count){
                    $('loading').hide();
                    this.timer = 0;
                    Event.stopObserving(window,'scroll',window.__Objeto__.update);
                }

            },
            
            'onCreate':function(){                
                var load = $('loading');                
                  if(!this.count){                      
                      Event.observe(window,'scroll',window.__Objeto__.update);
                      var height =  document.viewport.getScrollOffsets()[1]+$(document).viewport.getHeight();
                      var width = $(document).viewport.getWidth()+document.viewport.getScrollOffsets()[0];
                      load.setStyle({  'width':width+'px',
                                       'height':height+'px',
                                       'backgroundColor':'#666',
                                       'position':'absolute',
                                       'top':'0',
                                       'left':'0',
                                       'bottom':'0',
                                       'right':'0',
                                       'zIndex':'65535',
                                       'padding-top':height / 2,
                                       'backgroundImage':"url(#{BASE_URL}/images/ajax-loader.gif)".interpolate({BASE_URL:BASE_URL}),
                                       'backgroundRepeat':'no-repeat',
                                       'backgroundPosition':'center center'
                                   });
                                   load.setOpacity(0.5);

                    this.count++;                    
                    load.show();
                    var box = $('box-loading');
                    $(box).show();
                  }
                  
            }
           
        });

})
