var RemoteGetDataPack = Class.create({
	initialize : function (TsObj,TxObj,GtUrl,ParamArray,Fn,FinshFn) {
	//初始化参数
		this.RSaveData  = new Object();
		//保存数据
		this.TipsObj    = $(TsObj);
		//显示提示的对象
		this.DisObj     = $(TxObj);
		//显示内容的对象
		this.url        = GtUrl;
		//处理的地址
		this.ParamAry   = ParamArray;
		//参数集
		this.templateFn = Fn;
		//模板处理函数
		this.FinshFn    = FinshFn;
		//装载完成后的处理函数
	},clearData:function(arg,page){
		//清除缓存数据
		var D = this.RSaveData;
		if(arg && page){
			//清除某个分页下面的某页数据
			D['Data_' + arg + '_' + page] = '';
		}else if(arg){
			//清除某个分页下面的数据
			for(var k in D){
				var d = k.toString().split('_');
				if(d[1]){
					if(d[1].toString().trim() == arg.toString().trim())
					{
						D[k] = '';
					}
				}
			}
		}else{
			//清除所有的分页数据
			for(var k in D){
				D[k] = '';
			}
		}
	},show_HS:function(a,b){
		//显示隐藏提示及内容
		var me = this;
		me.TipsObj.style.display  = a;
		me.DisObj.style.display   = b;
	},getPage:function(arg,page){
		//获取数据
		var me = this;
		if(typeof me.RSaveData['Data_' + arg + '_' + page] == 'object'){
			me.Display(me.RSaveData['Data_' + arg + '_' + page]);
		}else{
			me.show_HS('','none');
			var url = me.url + me.ParamAry[arg] + '&arg=' + arg + '&page=' + page + '&v=' + RandNumChar(18);
			new Ajax.Request(url, {
				method: 'get',
				onSuccess: function(transport) {
					var data = transport.responseJSON;
					me.RSaveData['Data_' + arg + '_' + page] = data;
					me.Display(data);
				},
				onFailure:function(){
					me.Display("Load data error");
				}
			});	
		}
	},createFy:function(arg,total,cpg){
			var s    = '';
			total     = parseInt(total);
			cpg       = parseInt(cpg);
			s         = s + cpg + '/' + total + '&nbsp;';
			
			if(cpg > 1 ){
				s = s + '<a href="javascript:fy.getPage(' + arg + ','+ (cpg-1) + ')" style="text-decoration:underline">Prev</a>&nbsp;|&nbsp;';
			}else{
				s = s + 'Prev&nbsp;|&nbsp;';
			}
			
			if(cpg<total){
				s = s + '<a href="javascript:fy.getPage(' + arg + ','+ (cpg+1) + ')" style="text-decoration:underline">Next</a>&nbsp;|&nbsp;';
			}else{
				s = s + 'Next&nbsp;|&nbsp;';
			}
			
			if(cpg>1){
				s = s + '<a href="javascript:fy.getPage(' + arg + ',1)" style="text-decoration:underline">First</a>&nbsp;|&nbsp;';
			}else{
				s = s + 'First&nbsp;|&nbsp;';
			}
			
			if(total>1 && total>cpg){
				s = s + '<a href="javascript:fy.getPage(' + arg + ','+ total + ')" style="text-decoration:underline">Last</a>&nbsp;';
			}else{
				s = s + 'Last&nbsp;';
			}
			
			s = s + '|&nbsp;Go to page <select onchange="fy.getPage(' + arg + ',this.value)">';
			
			for(var j=1; j<=total; j++){
				if(j==cpg)	s = s + '<option value="' + j + '" selected>' + j + '</option>';
				else 	s = s + '<option value="' + j + '">' + j + '</option>';
			}
			s = s + '</select>';
			return s;
	},Display:function(Data){
		//显示信息
		var me = this;
		if(typeof Data=='object'){
			if(Data.TotalPage !=0)
			{
				var fStr = me.createFy(Data.arg,Data.TotalPage,Data.CurPage);
				me.DisObj.innerHTML = me.templateFn(Data.Data,fStr,me.DisObj,Data);
				fStr = '';
				if(typeof me.FinshFn == 'function'){
					//如果有加载完成需要处理的函数就回调 参数
					me.FinshFn(Data.arg);
				}
			}else{
				me.DisObj.innerHTML = Data.Data;
			}
		}else{
			me.DisObj.innerHTML = Data;
		}
		me.show_HS('none','');
	}
});