function Event_Engine() {
};

Event_Engine.prototype = {

	add:function(obj, event, action) {
		if (obj.addEventListener)
			obj.addEventListener(event, action, false);
		else if (obj.attachEvent) {
			obj["e"+event+action] = action;
			obj[event+action] = function() { obj["e"+event+action]( window.event ); }
			obj.attachEvent("on"+event, obj[event+action]);
		}
	},

	remove:function(obj, event, action) {
		if (obj.removeEventListener)
			obj.removeEventListener(event, action, false);
		else if (obj.detachEvent) {
//			obj.detachEvent("on"+event, obj[event+action]);
//			obj[event+action] = null;
//			obj["e"+event+action] = null;
		} else if (obj.releaseEvents)
			obj.releaseEvents(obj, event);
	},

	disable:function(event) {
		if (!event)
			event = window.event;
		if (event.preventDefault) {
			event.preventDefault();
			event.preventDefault = false;
		}
		if (event.stopPropagation) {
			event.stopPropagation();
			event.stopPropagation = false;
		}
		event.returnValue = false;
	}

};
