Buggy, but on the right track.
I think your if statement that determines whether the level is over after the last ball has been fired is a little off. Maybe base it on the state of the ball's vertical movement over time rather than whether there has been a bounce. I see a lot of flash games solve this with a simple timer after the first collision; 3 seconds or so.
Another bug I noticed, but much harder to recreate, was if your last ball started an explosive chain reaction, the explosions would continue over through the reset if you clicked through quickly enough.
Don't give up! The music and art were well done and there's really nothing wrong with the core game itself. Hope this helps!