﻿DIY._eventsFactory = {
    register : function(obj, type, func) {                       
        if(obj.addEventListener) {
            obj.addEventListener(type, func, false);
            return true;
        }
        else if(obj.attachEvent){
            if(!obj._listeners) obj._listeners = new Array();
            if(!obj._listeners[type]) obj._listeners[type] = new Array();
            var workaroundFunc = function() {
                func.apply(obj, new Array());
            }
            obj._listeners[type][func] = workaroundFunc;
            obj.attachEvent('on' + type, workaroundFunc);
        }
    },
    unregister : function(obj, type, func) {        
        if(obj.removeEventListener) {
            obj.removeEventListener(type, func, false);
        }
        else if(obj.detachEvent){            
            if(obj._listeners && obj._listeners[type] && obj._listeners[type][func]) {
                obj.detachEvent('on' + type, obj._listeners[type][func]);
            }
        }
    },
    fix : function(event) {        
		if (!event) event = window.event

		if (event.target) {
			if (event.target.nodeType == 3) event.target = event.target.parentNode
		} else if (event.srcElement) {
			event.target = event.srcElement
		}
		return event
	}
}


