Added #full to templates
Broken the logic out to more discreent functions
Can now pass custom timeouts to changeImage()