Introducing BM.js and BMJSBridge.
BM.js contains a prototype function called BM. Along with other functions in the scope, BM is capable of performing various tasks.
The script creates and returns a BM object, then BMJSBridge stores it in _object.
When requested, BMJSBridge calls the given method after checking availability of the object.
Currently calling ObjC methods or blocks from JS is not implemented.
Much more robust isPlaying.
Added cookie-related functions and variables: getCookies, setCookies, timeSinceNow, validKeys.
Added BM.prototype._ajax function.