##parameters=add=''
from Products.CMFCore.utils import getToolByName
from Products.Plinn.utils import translate
from ZTUtils import make_query as mq
_ = lambda msg : translate(msg, context)
ptool = getToolByName(script, 'portal_properties')
atool = getToolByName(script, 'portal_actions')
validate_email = ptool.getProperty('validate_email')
options = {}
options['validate_email'] = validate_email

req = context.REQUEST
resp = req.RESPONSE
form = req.form
fg = lambda name : form.get(name,'').strip()


if add and \
	context.validatePassword(**form) and \
	context.customer_add_control(**form) and \
	context.validatePrivateAccess(**form) :
	came_from = fg('came_from')
	if came_from :
		return context.setRedirect(	atool, 'user/logged_in'
								  , came_from = came_from
								  , __ac_name=fg('member_id')
								  , __ac_password=fg('password'))
		#return resp.redirect('%s?%s' % ( came_from, mq(__ac_name=fg('member_id'), __ac_password=fg('password'), noajax='1')) )
	else:
		options['member_id'] = fg('member_id')
		options['password'] = fg('password')
		options['form_action'] = target = atool.getActionInfo('user/logged_in')['url']
		return context.confirm_join_template(**options)

continuationFields = [
	  'given_name'
	, 'name'
	, 'member_email'
	, 'member_id'
	, 'password'
	, 'confirm'
	, 'collection_id'
	, 'collection_password'
	, 'collection_password_confirm'
	, 'billing_address'
	, 'billing_city'
	, 'billing_zipcode'
	, 'country'
	, 'phone']


for name in continuationFields :
	options[name] = fg(name)

# TODO try to be more clever...
if not options['country']:
	options['country'] = 'FR'
options['came_from'] = fg('came_from')
return context.customer_join_template(**options)
