// remove event listeneer
	public static void RemoveEventListener (string eventName, EventCallbackFunc func)
	{
		if (mEventPool.ContainsKey (eventName) == false) {
			return;
		}
		
		ArrayList callbacksArray = mEventPool[eventName] as ArrayList;
		if (callbacksArray.Contains(func)) {
			callbacksArray.Remove (func);
		}
	}
	// add event listener
	public static void AddEventListener (string eventName, EventCallbackFunc func)
	{
		if (mEventPool.ContainsKey (eventName) == false) {
			ArrayList callbackArray = new ArrayList ();
			mEventPool.Add (eventName, callbackArray);
			callbackArray.Add (func);
			
			return;
		} 
		
		ArrayList callbacksArray = mEventPool[eventName] as ArrayList;
		if (!callbacksArray.Contains(func)) {
			callbacksArray.Add (func);
		}
	}