 var busy_callers = new Hash();
 var busy_cpt = 0;
 
var Busy = Class.create({
  	start: function(str) {
  	  	if(busy_cpt == 0)
  	  	{
			$$('body').each(function(e) { e.addClassName('wait_cursor') });
			$$('a').each(function(e) { e.addClassName('wait_cursor') });
			$$('li').each(function(e) { e.addClassName('wait_cursor') });
		}	
  		if(busy_callers.get(str) == undefined)
  		{
  			busy_callers.set(str, true);
  			busy_cpt++;  
  		}
  	},
  	stop: function(str) {
  		if(busy_callers.get(str) != undefined)
  		{
  			busy_callers.unset(str);
  			busy_cpt--;  
  		}
  		if(busy_cpt == 0)
  		{
			$$('body').each(function(e) { e.removeClassName('wait_cursor') });
			$$('a').each(function(e) { e.removeClassName('wait_cursor') });
			$$('li').each(function(e) { e.removeClassName('wait_cursor') });
  		}
  	}
});

Ajax.Responders.register({
  onCreate: function() {
  	var b = new Busy();
    if(Ajax.activeRequestCount>0)
      b.start("ajax");
  },
  onComplete: function() {
    var b = new Busy();
    if(Ajax.activeRequestCount==0)
		b.stop("ajax");
  }
});

