int EventDispatcherBinder::hasEventListener(lua_State* L)
{
	StackChecker checker(L, "EventDispatcherBinder::hasEventListener", 1);

	Binder binder(L);
	EventDispatcher* eventDispatcher = static_cast<EventDispatcher*>(binder.getInstance("EventDispatcher"));

	luaL_checktype(L, 2, LUA_TSTRING);

    if (eventDispatcher->data(&key_map) == NULL)
	{
		lua_pushboolean(L, 0);
	}
	else
	{
        EventBinderMap& map = *static_cast<EventBinderMap*>(eventDispatcher->data(&key_map));
		
		const char* event = lua_tostring(L, 2);
		int eventid = StringId::instance().id(event);
		
		const std::vector<CppLuaBridge*>& bridges = map[eventid]; 
		
		lua_pushboolean(L, bridges.empty() ? 0 : 1);
	}

	return 1;
}