##parameters=
from Products.Plinn.utils import makeValidId
form = context.REQUEST.form

for k in form.keys() :
	item = form[k]
	if hasattr(item, 'keys') and item.has_key('type') :
		typeDic = item.copy()
		typeDic['type'] = k
		break

if typeDic.has_key('id') :
	title = typeDic['id']
	newid = makeValidId(context, title)

	context.invokeFactory( typeDic['type'], newid, title=title)
	newOb = getattr(context, newid)
	ti = newOb.getTypeInfo()
	immediate_view = ti.immediate_view

	if immediate_view.find('/') > 0 :
		newOb.setStatus('True', 'Object created.')
		return newOb.setRedirect(newOb, immediate_view, syncFragments = ['Breadcrumbs', 'rightCell'], **form)
	else :
		from ZTUtils import make_query
		ob_url = newOb.absolute_url()
		query = make_query(portal_status_message = 'Object created.', ajax = form.get('ajax'), syncFragments = ['Breadcrumbs', 'rightCell'])
		url = "%s/%s?%s" % (ob_url, immediate_view, query)
		response = context.REQUEST.RESPONSE
		return response.redirect(url)
		
elif typeDic.has_key('create_form') :
	from Products.CMFCore.utils import getToolByName
	ttool = getToolByName(context, 'portal_types')
	typeName = typeDic['type']
	ti = getattr(ttool, typeName)
	ai = ti.getActionInfo('object/create', object=context)
	url = ai['url']

	from ZTUtils import make_query
	query = make_query(ajax=form.get('ajax'))
	url = '%s?%s' % (url, query)
	response = context.REQUEST.RESPONSE
	return response.redirect(url)
