
var EventManager = new function()
{
	this.CLICK = "click";
	this.CHANGE = "change";
	this.SUBMIT = "submit";
	this.MOUSEWHEEL = "mousewheel";
	this.MOUSEOVER = "mouseover";
	this.MOUSEOUT = "mouseout";
	this.KEYPRESS = "keypress";
  this.RESIZE = "resize" ;

	var ON = "on";
	var LOAD = "load";
	var UNLOAD = "unload";
	var FF_WHEEL = "DOMMouseScroll";

	function add(element, eventName, handler)
	{
		function _ev(ev)
		{
			var theEvent = ev || window.event;
			theEvent.targetElement = theEvent.target || theEvent.srcElement;
			theEvent.attachedElement = element;

			var eventResult = handler(theEvent);

			if(ev.preventDefault && (eventResult === false))
			{
				ev.preventDefault();
				ev.stopPropagation();
			}

			return eventResult;
		}

		if (element.attachEvent)
		{
			element.attachEvent(ON + eventName, _ev);
		}
		else
		{
			element.addEventListener(eventName, _ev, false);
		}
	}
	this.add = add;

	function remove(element, eventName, handler)
	{
		if (element.detachEvent)
		{
			element.detachEvent(ON + eventName, handler);
		}
		else
		{
			element.removeEventListener(eventName, handler, false);
		}
	}
	this.remove = remove;

	function addOnload(handler)
	{
		add(window, LOAD, handler);
	}
	this.addOnload = addOnload;

	function addOnunload(handler)
	{
		add(window, UNLOAD, handler);
	}
	this.addOnunload = addOnunload;
}

