/*
 * References:
 * addEventListener 
 * http://developer.mozilla.org/en/docs/DOM:element.addEventListener
 * 
 * Event Interface
 * http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-Event
 */
var EventObject = new Object();

/*
 * attachEvent
 * Attach eventHandler to handle obj's event with event's name equal to 
 * eventName
 * 
 * obj				the object to attach the element to
 * eventName		the name of the event (example: 'click')
 * eventHandler		name of function or reference to function 
 * 					(i.e,. function (x) { ... ;})
 */
EventObject.attachEvent = function(obj, eventName, eventHandler) 
{
	var evtNameNoOn;
	
	if (eventName.toUpperCase().startsWith('ON'))
		evtNameNoOn = eventName.substring(2);
	else 
		evtNameNoOn = eventName;
	
	if (obj.addEventListener) {
		/* DOM Level 2 method of attaching events */	
		obj.addEventListener(evtNameNoOn, eventHandler, false); 
	} else if (obj.attachEvent) {
		/* IE method - at least for versions that do not support DOM Level 2 */
		obj.attachEvent('on' + evtNameNoOn, eventHandler);
	}	
};

/*
 * stopEvent
 * Helper function for stopping the handling of an event while being processed
 * with an event handler
 * 
 * evt	object that implements Event interface
 */
EventObject.stopEvent = function(evt)
{
	if (evt.preventDefault)
		evt.preventDefault();		/* DOM Level 2 method */
	else
		evt.returnValue = false;	/* IE versions that do not support DOM Level 2 */
}

