function AsyncLoadManager(){
  var p=0;
  this.setCallback=function(callback){
    this.callback=callback;
  }
  this.loadingBegin=function(c){
    c=(c==null)?1:c;
    p+=c;
  }  
  this.loadingEnd=function(c){
    c=(c==null)?1:c;
    p-=c;
    if(p==0&&this.callback!=null){
      this.callback();
      this.callback=null;
    }
  }
  this.isLoading=function(){
    return(p==0)?false:true;
  }
}