function showPrs(waiting) {
	try {
		if (typeof (window.top.showProgress) == "function") {
			window.top.showProgress(waiting);
		}
	}
	catch (err) {
	}
}
function hidePrs() {
	try {
		if (typeof (window.top.hideProgress) == "function") {
			window.top.hideProgress();
		}
	}
	catch (err) {
	}
}
function toMap(map){
	if (map) {
		for (var p in this){
			map[p]=this[p]
		}
	}
}
function tw() {
	var w=window;
	try{w=w.parent||w}catch(e){};
	return w
}
function handle(msg, ex) {
	hidePrs();
	if (ex){
		var c=ex.javaClassName;
		if (c){
			if("com.htoou.exception.AuthenticationException"==c) {
				alert("\u60a8\u5c1a\u672a\u767b\u5f55\u6216\u767b\u5f55\u8d85\u65f6,\u8bf7\u91cd\u65b0\u767b\u5f55!")
				tw().document.location.href="/"
			}else{
				if ("com.htoou.exception.AuthorizationException"==c){
					alert("\u60a8\u6ca1\u6709\u6743\u9650\u8bbf\u95ee\u8be5\u8d44\u6e90!");
					tw().location="/"
				}else{
					alert(msg)
				}
			}
			return
		}
	} else {
		alert(msg);//alert(ex.javaClassName);
	}
}
/********************************** Command Class Define  ********************************/
function Command(cmd,fn,p) {
	var T=this;
	T._vs={};
	T._fs={};
	T._bf=fn; 
	T._fw=null;
	T._ef=null;
	T.setParameter=function (k,v){
		if(v!=null) T._vs[k]=v
	};
	T.setParameters=function (v){
	    var i=(typeof(v)=='string')?0:((new String(v).indexOf(" Object")!=-1)?1:2);
	    if(i==0){
		  T._fs[v]=v;
		}else if(i==1){
		  for(var k in v){
		    T.setParameter(k,v[k]);
		  }
		}
	};
	T.setArray=function (k,v){
		if(!T._ar) T._ar={};
		T._ar[k]=v
	};	
	T.setForword=function(o,b){
		var w=b||window;
		if (typeof w=="object"){
			T._fw=(typeof o== "string"?(function(d){
				w.location.href=o
			}):o)
		}
	};
	T.setCallback=function(f){
		T._bf=f
	};
	T.setError=function(f){
		T._ef=f
	};
	T.execute=function(f,waiting){
		showPrs(waiting);
		DWREngine.setErrorHandler(handle);
		DWREngine._execute(DWREngine._defaultPath,'DWRAction','execute',T.s(),T._ar,false,T.b)
	};
	T.e=function(a){
		if(a){
			if(T._ef) return T._ef(a);
			for(var p in a)	alert(a[p]||"");
			return 0
		}
		return 1
	};
	T.b=function(o){
		hidePrs();
		if (T.e(o._errors)){
		     var f=T._bf;
			if(f){
				(typeof f == "function")?f(o):f.callback.call(f, o)
			} 
			if(T._fw) T._fw(o)
		}
	};
	T.s=function(){
		var r={};
		for (var p in T._vs){
			var v=T._vs[p];
			if (DWRUtil._isHTMLElement(v)){
				r[p]=DWRUtil.getValue(v)
			}else{
				if(typeof v=="object"&&!util.isArray(v))
					toMap.call(v, r);
				else
					r[p]=v
			}
		}
		for(var p in T._fs){
			toMap.call(util.$f(p),r);
		}			
		r.command=cmd;
		return r
	};
	T.r=function(){
		var n=null;
		T._vs=n;
		T._fs=n;
		T._ar=n;
		T._bf=n;
		T._fw=n;
		T._ef=n
	};
	util.$AEV(window,"unload",util.$b(T,T.r))
}