There are a number of options.
First, you can use the Prototype JavaScript Library. It provides some basic functionality for events and dispatchers as well as some Object Oriented like features. It also encapsulates the XMLHttpRequest issue into a nice object that is cross browser supported.
Prototype is the basis for numerous other libraries including Ruby-On-Rails client side and script.alicio.us.
If you are using ASP.NET you can use the Atlas library. It's client side have an object model that includes an object that wraps the XMLHttpRequest object in a cross browser manner.