 # It is quite concievable that some components will require direct access to the infrastructure framework, especially
 # those that are wrappers around third party libraries or plugins; however many simple components may need no more than
 # the abstract layer and gain the valuable benefit of not caring about the infrastructure framework.
+#
+# Changes to this library should be coordinated with the jQuery version.
 define ["_", "./utils", "prototype"], (_, utils) ->
 
   # Save a local reference to Prototype.$ ... see notes about some challenges using Prototype, jQuery,

# limitations under the License.


# ## t5/core/dom
#
# This is the abstraction layer that allows the majority of components to operate without caring whether the
# underlying infrastructure framework is Prototype, jQuery, or something else.  This implementation is specific
# to Prototype, but Tapestry can be adapted to any infrastreucture framework by re-implementing this module.
#
# The abstraction layer has a number of disadvantages:
#

    # Returns a wrapped version of the document.body element. Because all Tapestry JavaScript occurs
    # inside a block at the end of the document, inside the `<body`> element, it is assumed that
    # it is always safe to get the body.
    body: -> (wrapElement document.body)