Introduce page to practice registration on.
Start work on fetching sample registration data.

Flesh out skeleton of Ajax call to Google spreadsheet.
Implement team and player selection.

Individual payments will be applied directly towards any number of
registered player/guests.  This form allows payers to select which
players/guests they would like to pay for.
TODO: Add an option to add another team.
Move team and player selection to named functions.

Now we can repeatedly call the "generate form elements" functions with
every click of a button.
This also means that the initial generation of the first team/player
select boxes is left up to jQuery.
TODO: Add loading GIF.
Add reg form submit button.

Submit button now has a submit handler that serializes the form values.
Fix label bug in 'add team' button.
Modify player select box when adding new team.

Now the player select box shows a loading message once the new team has been chosen.  It also clears out the options when a new team is chosen on an old fieldset.
First go at summary table generation.
Move name rendering functionality into separate function.

It is used in the form select generation as well as the summary display, so DRY.
Fix bugs in summary generation.
Add total to summary table.
Move registration script to reg page.

Evade issue of not having jQuery ready from Modernizr by skipping
Modernizr loading jQuery on the reg page.
Move registration scripts down to bottom of reg page itself.
Translate Google Spreadsheet AJAX calls into JSON instead of CSV.
Edit summary table.

Hard code only the <table> element and fill it via JS.
Add custom PayPal button.

Use PayPal's button generation script to insert button at given point in page.
Boilerplate PayPal IPN handler.

Courtesy https://github.com/paypal/ipn-code-samples/blob/master/IPN_PHP.txt
Roll in tools for writing to Google Spreadsheets.

Zend Gdata is the commercial tool for logging in and interfacing with Google Drive stuffs.
Google_Spreadsheet.php is a helper class by Dimas Begunoff (Github: farinspace) hosted here: https://github.com/farinspace/google-spreadsheet.
Do not track files with credentials in them.
Roll in new IPN handlers and script.

Courtesy Quixotix on Github: https://github.com/Quixotix/PHP-PayPal-IPN.
Roll in custom Google Spreadsheet API.

Courtesy Ben Simon on Github: https://gist.github.com/benjisimon/7116174.
As committed here, the functions have received some editing by me.  Namely, sgs_walk has been extended to allow for specific spreadsheet queries to be run (so we don't get back every row, every time), and also the ability to pass arguments to the callback function.
Configuration for using SGS.php.