code: function (ctx, obj, type, callback) {
          if (arguments.length === 3) {
              callback = type;
              type = obj;
              obj = window.document;
          }
  
          //retrieve anonymous function
          var id = ctx[0] || "",
              afn = this._events[id + obj + type + callback];
  
          if (afn) {
              if (obj.detachEvent) {
                  obj.detachEvent('on' + type, afn);
              } else obj.removeEventListener(type, afn, false);
              delete this._events[id + obj + type + callback];
          }
      }
docs: @
  #Crafty.removeEvent
  @category Events, Misc
  @sign public this Crafty.removeEvent(Object ctx, HTMLElement obj, String event, Function callback)
  @param ctx - Context of the callback or the value of `this`
  @param obj - Element the event is on
  @param event - Name of the event
  @param callback - Method executed when triggered
  
  Removes events attached by `Crafty.addEvent()`. All parameters must
  be the same that were used to attach the event including a reference
  to the callback method.
  
  @see Crafty.addEvent