BreezingForms is an excellent component well worth the download/purchase. The component is very flexible in terms of functionality. If the function is not there, you are able to add via the admin interface.
Customer support is awesome. Markus responded as soon as I sent in an issue and exchanged messages with me until my problems were resolved.