Bobs-Bits.com - where stupidity meets reality

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
  • 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
  • AJAX
    • AJAX Requester
    • AJAX Updater - update element with response of AJAX call