Add events methods and support state change in all browsers