A Javascript Finite State Machine