A html5 canvas based sliding puzzle component