You'll also need time.js. Download and include it before calendar-logic.js.
calendar-logic.js is a callback based calendar back-end. It does not perform any rendering or DOM manipulation.
It is inspired by the delegate pattern from Cocoa, Apples UI framweork.
It was abstracted from the code of figureoutwhen.com, a good example of a site that use a calendar where a run-of-the-mill date picker doesn't suffice.
Since calendar-logic.js doesn't interact with the DOM, cross browser compatibility is easily achieved without using frameworks.
The test suite has been successfully executed in IE6, IE8, Opera 10, Firefox 3.6, Mobile Safari and Chromium 5.