I'm looking for a web-based convention management script for a recurring convention.

Preferred language: PHP/mySQL - but I'm willing to look at others.

If it looks like we need to get this custom built, well, where do we start? And what sort of price would we expect?

These are the requirements:
- Payment/ticket purchase system
- User can pay online OR reserve tickets and pay at the event
- Regular users able to submit events/workshops (for approval by admin)
- Multiple events on same day
- A "timetable view" of the convention
- Printable timetable
- Printable badges
- Securely store user information
- Room booking
- Merchandise purchases
- Optional min and max seat limits
- Special discount or "cap": i.e. book 9 event, the 10th is free OR pay cap fee = get unlimited tickets
- Configurable session block sizes (by default, session blocks need to be 3.5 hours, but we may want to change it in future)
- Recurring workshops, and workshops that span multiple session "blocks"

These are the "nice to have"s:
- Certificates/awards for events.
- Customizable ratings (eg. beginner, intermediate, advanced)
- Different user ranks? Users can opt to be a volunteer for a particular day/workshop.
- A theme-able "front end site" to display events, rules, etc.
OR
- The registration system and "front end site" are one in the same, and works like a shopping cart site.
OR
- Export the workshop descriptions to XML/text/whatever so I can easily import it into a CMS "front end site", such as WordPress or Drupal.