/**
 * @author tech_wu
 * @version ver 1.0
 */
Wushao={
	ajaxCache : true,
	globalHandlers : {},
	globalParam :{},
	/**
	 * @param {Object} act
	 * @param {Object} pars
	 * @param {Object} fun
	 * @param {Object} handlers
	 * @param {Object} param
	 */
	initialize : function(act,pars,fun,handlers, param){
		Ajax.Responders.unregister(this.globalHandlers);
		this.globalParam = {
			onFailure:this.onFailure,
			onException:this.onException
		};
		var d = new Date().getTime();
		if(!this.ajaxCache)
			pars = "date=" + d + "&" + pars;
		handlers = handlers || null;
		this.globalHandlers = handlers != null ? handlers : {};
		Object.extend(this.globalHandlers,handlers||{});
		Ajax.Responders.register(this.globalHandlers);	
		Object.extend(this.globalParam,{method : act}||{});
		Object.extend(this.globalParam,{evalScripts:true}||{});
		Object.extend(this.globalParam,{parameters : pars}||{});
		Object.extend(this.globalParam,{onSuccess : fun}||{});
		Object.extend(this.globalParam,param||{});
		
	},
	/**
	 * @param {Object} url
	 * @param {Object} act
	 * @param {Object} pars
	 * @param {Object} fun
	 * @param {Object} tagName
	 * @param {Object} handlers
	 * @param {Object} param
	 */
	Updater : function(url,act,pars,fun,tagName,handlers, param){
		this.initialize(act,pars,fun,handlers, param);	
		new Ajax.Updater(tagName, url, this.globalParam);
	},
	/**
	 * @param {Object} url
	 * @param {Object} act
	 * @param {Object} pars
	 * @param {Object} fun
	 * @param {Object} handlers
	 * @param {Object} param
	 */
	Request : function(url,act,pars,fun,handlers, param){
		this.initialize(act,pars,fun,handlers, param);
		new Ajax.Request(url, this.globalParam);
	},
	FormRequest : function(form,fun,handlers, param){
		this.initialize(null,null,fun,handlers, param);
		$(form).request(this.globalParam);
	},
	PeriodicalUpdater : function(url,act,pars,fun,tagName,handlers, param, frequency, decay){
		this.initialize(act,pars,fun,handlers, param);	
		Object.extend(this.globalParam,{frequency : frequency}||{});
		Object.extend(this.globalParam,{decay : decay}||{});
		new Ajax.PeriodicalUpdater(tagName, url, this.globalParam);
	},
	onFailure : function(response){
		var ret=response.status;
		if(ret == 404){
			alert("Request Page Not Found!");
		}
		else if(ret == 500){
			alert("System Error.Please Wait...");
		}
	},
	onException : function(response,e){
		alert("Error Message [" + response.url + "]:\n\n" + e.description);
	}
};

