Wrapper class for the integration of new events into the YUI event
infrastructure.  Don't instantiate this object directly, use
Y.Event.define(type, config).  See that method for details.
Properties that MAY or SHOULD be specified in the configuration are noted
below and in the description of Y.Event.define.
_deleteSubsub
                    
                Alternate _delete() method for the CustomEvent object
created to manage SyntheticEvent subscriptions.
sub
                        Subscription
                    
                    
                    the subscription to clean up
_detachargs
                    
                Removes the subscription(s) from the internal subscription dispatch
mechanism.  See SyntheticEvent._deleteSub.
args
                        Array
                    
                    
                    The arguments passed to
                 node.detach(...)
_initConstruction logic for the event.
_onargs
                    
                delegate
                    
                Sets up the boilerplate for detaching the event and facilitating the execution of subscriber callbacks.
the detach handle for this subscription
_subscribenode
                    
                method
                    
                args
                    
                extra
                    
                filter
                    
                Creates a new Notifier object for use by this event's
on(...) or delegate(...) implementation
and register the custom event proxy in the DOM system for cleanup.
node
                        Node
                    
                    
                    the Node hosting the event
method
                        String
                    
                    
                    "on" or "delegate"
args
                        Array
                    
                    
                    the subscription arguments passed to either
             Y.on(...) or Y.delegate(...)
             after running through processArgs(args) to
             normalize the argument signature
extra
                        Any
                    
                    
                    Extra data parsed from
             processArgs(args)
filter
                        String | Function
                    
                    
                    the selector string or function
             filter passed to Y.delegate(...) (not
             present when called from Y.on(...))
applyArgExtrasextra
                    
                sub
                    
                Implementers MAY provide this method definition.
Implement this function if you want extra data extracted during
processArgs to be propagated to subscriptions on a per-node basis.
That is to say, if you call Y.on('xyz', fn, xtra, 'div')
the data returned from processArgs will be shared
across the subscription objects for all the divs.  If you want each
subscription to receive unique information, do that processing
here.
The default implementation adds the data extracted by processArgs
to the subscription object as sub._extra.
extra
                        Any
                    
                    
                    Any extra data extracted from processArgs
sub
                        Subscription
                    
                    
                    the individual subscription
delegatenode
                    
                sub
                    
                notifier
                    
                filter
                    
                Implementers SHOULD provide this method definition.
Implementation logic for subscriptions done via
node.delegate(type, fn, filter) or
Y.delegate(type, fn, container, filter).  Like with
on() above, this function should monitor the environment
for the event being fired, and trigger subscription execution by
calling notifier.fire(e).
This function receives a fourth argument, which is the filter
used to identify which Node's are of interest to the subscription.
The filter will be either a boolean function that accepts a target
Node for each hierarchy level as the event bubbles, or a selector
string.  To translate selector strings into filter functions, use
Y.delegate.compileFilter(filter).
node
                        Node
                    
                    
                    the node the subscription is being applied to
sub
                        Subscription
                    
                    
                    the object to track this subscription
notifier
                        SyntheticEvent.Notifier
                    
                    
                    call notifier.fire(..) to trigger the execution of the subscribers
filter
                        String | Function
                    
                    
                    Selector string or function that accepts an event object and returns null, a Node, or an array of Nodes matching the criteria for processing.
detachnode
                    
                sub
                    
                notifier
                    
                Implementers SHOULD provide this method definition.
Implementation logic for detaching subscriptions done via
node.on(type, fn).  This function should clean up any
subscriptions made in the on() phase.
node
                        Node
                    
                    
                    the node the subscription was applied to
sub
                        Subscription
                    
                    
                    the object tracking this subscription
notifier
                        SyntheticEvent.Notifier
                    
                    
                    the Notifier used to trigger the execution of the subscribers
detachDelegatenode
                    
                sub
                    
                notifier
                    
                filter
                    
                Implementers SHOULD provide this method definition.
Implementation logic for detaching subscriptions done via
node.delegate(type, fn, filter) or
Y.delegate(type, fn, container, filter).  This function
should clean up any subscriptions made in the
delegate() phase.
node
                        Node
                    
                    
                    the node the subscription was applied to
sub
                        Subscription
                    
                    
                    the object tracking this subscription
notifier
                        SyntheticEvent.Notifier
                    
                    
                    the Notifier used to trigger the execution of the subscribers
filter
                        String | Function
                    
                    
                    Selector string or function that accepts an event object and returns null, a Node, or an array of Nodes matching the criteria for processing.
getRegistrynode
                    
                type
                    
                create
                    
                Returns the array of subscription handles for a node for the given event type. Passing true as the third argument will create a registry entry in the event system's DOM map to host the array if one doesn't yet exist.
getSubsnode
                    
                args
                    
                filter
                    
                first
                    
                Returns the detach handles of subscriptions on a node that satisfy a
search/filter function.  By default, the filter used is the
subMatch method.
node
                        Node
                    
                    
                    the node hosting the event
args
                        Array
                    
                    
                    the array of original subscription args passed
             to Y.on(...) (before
             processArgs
filter
                        Function
                    
                    
                    function used to identify a subscription for inclusion in the returned array
first
                        Boolean
                    
                    
                    stop after the first match (used to check for duplicate subscriptions)
detach handles for the matching subscriptions
onnode
                    
                sub
                    
                notifier
                    
                Implementers SHOULD provide this method definition.
Implementation logic for subscriptions done via node.on(type,
fn) or Y.on(type, fn, target).  This
function should set up the monitor(s) that will eventually fire the
event.  Typically this involves subscribing to at least one DOM
event.  It is recommended to store detach handles from any DOM
subscriptions to make for easy cleanup in the detach
method.  Typically these handles are added to the sub
object.  Also for SyntheticEvents that leverage a single DOM
subscription under the hood, it is recommended to pass the DOM event
object to notifier.fire(e).  (The event name on the
object will be updated).
node
                        Node
                    
                    
                    the node the subscription is being applied to
sub
                        Subscription
                    
                    
                    the object to track this subscription
notifier
                        SyntheticEvent.Notifier
                    
                    
                    call notifier.fire(..) to trigger the execution of the subscribers
processArgsargs
                    
                delegate
                    
                Implementers MAY provide this method definition.
Implement this function if the event supports a different
subscription signature.  This function is used by both
on() and delegate().  The second parameter
indicates that the event is being subscribed via
delegate().
Implementations must remove extra arguments from the args list
before returning.  The required args for on()
subscriptions are
[type, callback, target, context, argN...]
The required args for delegate()
subscriptions are
[type, callback, target, filter, context, argN...]
The return value from this function will be stored on the subscription in the '_extra' property for reference elsewhere.
subMatchsub
                    
                args
                    
                Implementers MAY override this to define what constitutes a
"same" subscription.  Override implementations should
consider the lack of a comparator as a match, so calling
getSubs() with no arguments will return all subs.
Compares a set of subscription arguments against a Subscription
object to determine if they match.  The default implementation
compares the callback function against the second argument passed to
Y.on(...) or node.detach(...) etc.
sub
                        Subscription
                    
                    
                    the existing subscription
args
                        Array
                    
                    
                    the calling arguments passed to
                 Y.on(...) etc.
true if the sub can be described by the args present
preventDupsImplementers MAY override this property.
Whether to prevent multiple subscriptions to this event that are
classified as being the same.  By default, this means the subscribed
callback is the same function.  See the subMatch
method.  Setting this to true will impact performance for high volume
events.
Default: false