View the commented demo source here
Made by Murphy. (@MrMoerphy)