A robust and easy to use state machine implementation with Javascript.