<p><b>OxJS</b> (pronounced oh-ex-jay-ess) is a new JavaScript library. It was originially developed as part of <ahref="pan.do/ra">pan.do/ra</a>, and is currently awaiting its first proper release. While it still has bugs, holes, design errors and lots of cruft, some parts of it may already be useful for a more general audience.</p>
<p>The core of <b>OxJS</b> is <code>Ox.js</code>, a general-purpose utility library (think underscore.js, but quite different). It provides <ahref="#">lots</a><ahref="#">of</a><ahref="#">tools</a><ahref="#">for</a><ahref="#">dealing</a><ahref="#">with</a><ahref="#doc/Ox.formatDate">dates</a>, <ahref="#doc/Ox.asinh">has</a><ahref="#doc/Ox.deg">all</a><ahref="#doc/Ox.log">the</a><ahref="#doc/Ox.mod">missing</a><ahref="#doc/Ox.rad">Math</a><ahref="#doc/Ox.sinh">functions</a> (<ahref="#">plus</a><ahref="#">some</a><ahref="#">for</a><ahref="#">geographic</a><ahref="#">coordinates</a>), methods like <ahref="#doc/Ox.range">range</a> or <ahref="#doc/Ox.sub">sub</a> for those who like Python (and even <ahref="#doc/Ox.forEach">some</a><ahref="#doc/Ox.loop">options</a> for those who never want to write a <code>for</code> loop again), can <ahref="#doc/Ox.tokenize">tokenize</a> and <ahref="#doc/Ox.minify">minify</a> JavaScript, comes with its own <ahref="#doc/Ox.doc">documentation format</a>, including <ahref="#doc/Ox.test">inline tests</a>, and can do about <ahref="#readme/23_cool_things_you_can_do_with_oxjs">23 other cool things</a>.</p>
<p>Then there are modules, most notably <code>Ox.UI</code>, a user interface library for HTML5-compliant browsers (think YUI, but again rather different). <code>Ox.UI</code> has tons of widgets: <ahref="#">all</a><ahref="#">the</a><ahref="#">form</a><ahref="#">elements</a><ahref="#">you</a><ahref="#">ever</a><ahref="#">wanted</a>, resizable <ahref="#doc/Ox.SplitPanel">panels</a> and <ahref="#doc/Ox.Dialog">dialogs</a>, <ahref="#doc/Ox.MainMenu">menus</a> that actually work, <ahref="#doc/Ox.IconList">lists</a> and <ahref="#doc/Ox.TextList">tables</a> that can hold a million items, <ahref="#doc/Ox.Map">maps</a> and <ahref="#doc/Ox.Calendar">calendars</a> done right, and a great <ahref="#doc/Ox.VideoPlayer">video player</a>. All these widgets are designed to that you can focus on your application and argue less with the DOM. And if you need to, <ahref="#doc/Ox.Element">each of them</a> provides, by virtue of <ahref="#">parasitical inheritance</a>, the exact same API as a <ahref="#Ox.JQueryElement">jQuery DOM object</a>. But <code>Ox.UI</code> also provides a framework to bring these elements together, including <ahref="#">custom</a><ahref="#">events</a>, <ahref="#">keyboard</a><ahref="#">focus</a>, remote <ahref="#">API</a> discovery and client-side <ahref="#">URL</a> handling. It is ideal for real applications with back-ends that speak JSON and don't serve any HTML beyond <code><body></body></code>.</p>
<p>Among the other modules, <code>Ox.Unicode</code> helps with sorting, <code>Ox.Image</code> can do steganography, and <code>Ox.Geo</code> is great if you're dealing with geographical data (or want to use a really nice set of flag icons).</p>
<p>Finally, there is a small but growing number of <ahref="#">articles</a> and <ahref="#">tutorials</a>, and extensive <ahref="#">documentation</a> (which, needless to say, may still be incomplete, and sometimes even incorrect). If you want to get involved, file bugs, submit patches or give any other kind of feedback, please head over to the <ahref="#development">development</a> section.</p>