BTM JavaScript Library
About
BTM-JS is a JavaScript library which provides extensions to native objects, utility methods, and pre-defined widgets/UI elements.
BTM-JS is a work-in-progress, and is currently developing at quite a rapid rate. Once the initial feature-set is stable across supported browsers, I will make the Library available for download. In the meantime, you can check out my progress by viewing the BTM-JS API Reference or Examples.
Features
- Compatibility
- Library support: (one of these is required for emulated querySelector support in legacy browsers, and CSS3 querySelector support in MSIE8)
- Supported Browsers:
- Mozilla Firefox 2.0+
- Safari 3+ Safari 2.0 support coming soon
- Opera 9.x Not fully tested yet
- Internet Explorer 6+ May be unstable under MSIE6
- Native Object extensions
- Array extras
- All methods introduced in JavaScript 1.6 for legacy browsers
- Collect the same property from every Array element
- Method to remove duplicate elements
- Date extras
- Template String output
- Multilingual Days of the Week
- Multilingual Months of the Year
- Days in the Month
- Leap-year detection
- Week of the Year
- String extras
- URL & Query String parsing
- Character/Whitespace trimming
- Camel-Case/dashed conversion
- HTML / XML tag removal
- Number extras
- Conversion to padding string
- Function extras
- Class inheritance as demonstrated by Shelby H. Moore III
- Method binding & currying
- Array extras
- Events
- Simplified API for adding, removing and prioritising event listeners
- Support for DOMContentLoaded in legacy browsers
- Custom events
- Manually firing events (any event logged through BTM.Event API)
- Cancelling Event propogation
- JSON - using json2.js from http://www.json.org/
- DOM Manipulation
- Various helper methods for DOM element/attribute reading/writing/manipulation
- Mappings (unobtrusive JavaScript helper)
- Run a function on every element matching a certain selector.
- Forms
- Placeholder Text
- Select Elements
- Dependant Drop Lists
- Adding/Removing Options
- Sorting
- Moving/Copying all/selected Options
- Branded Buttons
- Validation
- Built-in common checks
- Easy to implement custom field checking
- Nested checking (if a==b, c must equal d)
- Tables (Record Lists)
- Dynamic Tables
- Sorting
- Filtering
- (De)Select All
- Click-to-Select on Rows
- Automatic "zebra striping"
- UI Components
- Image Viewer
- CSS styled
- Keyboard control
- Auto-fit scaling of large images
- Title & Description display
- Date Picker
- Tabs
- Support for in-page and AJAX tabs
- Bookmarkable current tab (including AJAX tabs)
- AJAX Tabs
- Pre-Loading
- Basic always/never re-load rules
- Tree View
- Image Viewer
- AJAX
- AJAX Requester
- AJAX Updater - update element with response of AJAX call
