Art of Problem Solving has a free online learning system called Alcumus, which covers topics in Algebra, Counting and Probability, Number Theory, and Geometry. Alcumus allows the user to choose topics to focus on, then gives the student problems in those areas. When the current topic is mastered, it selects a new focus topic. The difficulty level is appropriate for most skill levels for middle schoolers, and is a great resource for reinforcing learning from a textbook. Your progress is shown in a bar on each topic, and your progress in an area of math can be measured by how many topics you have "passed." Alcumus is free, but you need an account on the AoPS website. These problems are very similar to those in contests such as MathCounts, making the system a great and free resource for contest preparation.
They also have a multi-player on-line game that involves rapid computation called "FTW!" ("For the Win"). Also FREE!!
AOPS also has online courses with an instructor, geared towards competition and curricular math at various levels. These involve a fee.