Worked around a Tcl'ism, where if you lappend the empty string, you actually get a list with one element, which is the emptry string. I ran into this with a :multiple variable, when passed an empty string, which is normally taken to mean 'no value'
Made the redirect for registration redirect to the current subsite's register page. Also added ad_get_login_url and ad_get_logout_url procs to let you get the URL for login/logout, which direct the user to the current subsite's pages, and, optionally, can preseve the current page, including query variables/form.
Suppress form errors when the form is refreshing, as opposed to submitting. We don't want the form to be filled with annoying errors when the user didn't even pretend to be done filling out the form.
Make ad_pvt_home and acs_community_member_url return the URL of those pages in the current subsite, so that the subsite's master template is used, instead of the site-wide master template
Made the form bomb when there's a validation error in a hidden element, because these errors are very hard to find, and cause the form to just go back in the face of the user over and over again. Better to bomb and make it explicit.
1. Folder chunk doesn't belong here, nor (hopefully) is it referenced2. Took advantage of the new resources directory, we now have perm check free files3. Changed the master template to use the real logo when the user's not logged in because of #2
Try again ... screwed up last time ... now we have our small graphics filesin the new resources directory, which isn't permission-checked by the requestprocessor.