An html5 sliding puzzle component