docs: function (ctx, obj, type, callback) {
          if (arguments.length === 3) {
              callback = type;
              type = obj;
              obj = window.document;
          }
  
          //save anonymous function to be able to remove
          var afn = function (e) { 
                  var e = e || window.event; 
  
                  if (typeof callback === 'function') {
                      callback.call(ctx, e);
                  }
              },
              id = ctx[0] || "";
  
          if (!this._events[id + obj + type + callback]) this._events[id + obj + type + callback] = afn;
          else return;
  
          if (obj.attachEvent) { //IE
              obj.attachEvent('on' + type, afn);
          } else { //Everyone else
              obj.addEventListener(type, afn, false);
          }
      }