(function(window) {
	var objCache={"professor":{},"company":{},"platform":{}};
	var objHCache={"professor":{},"company":{},"platform":{}};//队列(processing)

	var objCacheHandler={
		"professor":function(id){
			jQuery.ajax({
				url:"/ajax/professor/baseInfo/"+id,
				type:"GET",
				success:function(res){
					var ha = objHCache.professor[id];//jilu
					delete objHCache.professor[id];
					
					if(res.success){
						objCache.professor[id]=res.data;
						for(var i = 0 ;i < ha.length;++i){
							ha[i](true,res.data);
						}
					}else{
						for(var i = 0 ;i < ha.length;++i){
							ha[i](false);
						}
					}
				},
				error:function(dfd){
					ha[i](false);
				}
			})
		},
		"company":function(id){
			jQuery.ajax({
				url:"/ajax/org/"+id,
				type:"GET",
				success:function(res){
					var ha = objHCache.company[id];//jilu
					delete objHCache.company[id];
					
					if(res.success){
						objCache.company[id]=res.data;
					for(var i = 0 ;i < ha.length;++i){
							ha[i](true,res.data);
						}
					}else{
						for(var i = 0 ;i < ha.length;++i){
							ha[i](false);
						}
					}
				},
				error:function(dfd){
					ha[i](false);
				}
			});
		},
		"platform":function (id) {
            jQuery.ajax({
                url:"/ajax/platform/info",
				data:{id:id},
                type:"GET",
                success:function(res){
                    var ha = objHCache.platform[id];//jilu
                    delete objHCache.platform[id];

                    if(res.success){
                        objCache.platform[id]=res.data;
                        for(var i = 0 ;i < ha.length;++i){
                            ha[i](true,res.data);
                        }
                    }else{
                        for(var i = 0 ;i < ha.length;++i){
                            ha[i](false);
                        }
                    }
                },
                error:function(dfd){
                    ha[i](false);
                }
            });
        }
	};
	
	var cacheModel={
		getProfessor:function(id,cb){
			var val =objCache.professor[id]
			if(val){
				cb(true,val);
			}else{
				if(objHCache.professor[id]){
					objHCache.professor[id].push(cb);		
				}else{
					objHCache.professor[id]=[];
					objHCache.professor[id].push(cb);	
					objCacheHandler.professor(id);
				}
			}
		},
		getCompany:function(id,cb){
			var val =objCache.company[id]
			if(val){
				cb(true,val);
			}else{
				if(objHCache.company[id]){
					objHCache.company[id].push(cb);		
				}else{
					objHCache.company[id]=[];
					objHCache.company[id].push(cb);	
					objCacheHandler.company(id);
				}
			}
		},
		getPlatform:function(id,cb){
			var val =objCache.platform[id]
			if(val){
				cb(true,val);
			}else{
				if(objHCache.platform[id]){
					objHCache.platform[id].push(cb);
				}else{
					objHCache.platform[id]=[];
					objHCache.platform[id].push(cb);
					objCacheHandler.platform(id);
				}
			}
		}
	};
	window.cacheModel = cacheModel;
})(window)