Use 8 char tabstops with 2 shift width.
Added seat information to confirmation email. Issue #14734.

Using the CiviCRM token and tokenValues hooks, I created two new tokens
event.seats-text and event.seats-html which has seat information to go into
the email (text and html) respectively. I had to modifiy the core CiviCRM
code a little bit because the seat section requires participant information
and that information isn't passwed into the token* hooks and also it's not
avaiable before postProcess and the confirmation emails get sent before the
postProcess hooks get called.

I'm also starting to think that instead of doing the mini-template thing that
I did, that maybe I'll just put the seat_info information and do the template
in the template editor inside the civicrm GUI.
Removed token stuff.
Seat information for confirmation emails. Issue #14734

We just needed to get the seatInfo variable in the right hook in order for it
to be available to the email templates. This also required a modification to
CiviCRM core to get participantIDs available in the email template.

Also moved the javascript around so we can have it in it's own file making it
easier to edit.
Refactored hooks a bit.

I'm going to add some more hooks and I don't like having a separate if/else
for each hook, so I changed things to use my standard method of appending the
form name to the hook method name and looking for a function that implements
that.
Removed debugging.
Database changes for subscriptions.
Got rid of unused templates.

I got rid of the code that used these templates in
commit:497c457e9c6d9a646a96925e7e2c1ec4e830d970.
Added "Allowed Subscriptions" selector.

Only the GUI part is done. It doesn't do anything yet.
Fix problem with insertBefore duplication. Issue #14735.

insertBefore is supposed to remove the element it is inserting from the DOM
and insert it into its new place, but it doesn't seem to be working that way,
so I added some code to delete the table I was using to hold the section I'm
inserting. Without this, the form fields in my section were getting sent
twice with different values.
Implemented the allowed subscriptien select. Issue #14735.

Implemented the "Allowed Subscription" field. I wanted to do this in the
postProcess hook for the ManageEvent form, but for some weird reason that
hook isn't getting called when an event gets created for the first time. So I
put my code for this in the post hook for when events get saved or updated
like Jim did for his other fields. I think it would probably be better to
figure out why that hook isn't getting called by CiviCRM, but I thought that
might take awhile and I don't want to spend the time right now.
Make Giant Rabbit the maintainer. Issue #14735.

We're probably going to be the ones who need to answer questions, so it's
probably better if we're down as the maintainer.
Implemented the price fields part of subscriptions. Issue #14735.
All the way through registration for subscription. Issue #14735.

Got all the way through registration for subscription, but bypassed quite a
few issues. If you enter an email for a Flex Pass, it bypasses all the
payment checks. Also, it isn't checking the values input for the ticket
fields. It really should just ignore what comes from the web and force it to
the subscription numbers.

Fixed up some of the javascript issues with the total fee, but it doesn't
survive reloads and probably not back either.
Better error handling. Issue #14735.

Check whether or not there are any associated price fields earlier so
that we can show that error even if the person has no flex pass.Z
Handle event without service fee. Issue #14735.

I put in some code to handle the service fee case, but that was using
a hard coded ID and I'm using a different price set on the test site, so
I made that code conditional for now.
Implemented subscription max uses. Issue #14735.

Added a "Subscription Max Uses" field to events and now you can only use your
subscription that number of times.
Merge branch 'master' of git.giantrabbit.com:bay-area-childrens-theatre/civicrm-box-office

Also added a message about flex pass usage.

Conflicts:
	CRM/BoxOffice/Page/SubscriptionLookup.php
Reorganized lookup class. Issue #14735.

The lookup function was too large, so split it into several functions.
Added security for subscription usage. Issue #14735.

Pass along the subscription_participant_id that we originally looked up and
used it to decide whether a subscription is being used as well as to check
the input right before we save the subscription information.