HistoryManager is an unobtrusive MooTools plugin to allow history handling for multiple modules.
Features:
Allow users to bookmark your ajaxified application in the current state
Forward/Backward history browsing for your Accordion and every other
Save states of One-Page-Applications over sessions
Change easily default options and customize the behaviour with Events
Modules can be everything from classes to closures. The modules register callbacks to allow the communication between the HistoryManager and the modules. The callbacks are fired when the history changes (from back/forward navigation or entering the site with a given location hash) or when a module confirms an internal state change.
The script checks periodically for a change in the location hash, so the user can also change the hash by hand. For IE an hidden iframe (with blank.html as src, which must exist!) is injected into the document body. For safari an hidden form is injected.