Joomla Extensions can provide specialized functionality, Joomla is highly extensible and there are thousands extension solutions to choose from
(most for free under the GPL license.
I would recommend building on an open source platform like Joomla 2.5 and using and modifying the extensions to your needs.
This will cut cost and delivery time.
Here are just some solutions that can meet your requests and are cost effective:
Several of your requests are available as extensions and don't require any custom coding, just configuration and integration to your site.