This is part of a number of very good simulations that are part of the University of Colorado's Physics Education Technology Project. There are currently more than 50 simulations, allof which are downloadable.
http://phet.colorado.edu/web-pages/index.html