var processing = false;

function init() {
	Ext.QuickTips.init();
	Ext.form.Field.prototype.msgTarget = 'under';
	
	var registerForm = new Ext.FormPanel({
		renderTo: Ext.DomQuery.selectNode('#register_form'),
		labelWidth: 125,
		labelAlign: 'right',
		frame: false,
		border: false,
		monitorValid: true,
		defaults: {
			width: 250
		},
		defaultType: 'textfield',
		items: [{
				fieldLabel: 'Full Name',
				name: 'name',
				allowBlank: false
			},{
				fieldLabel: 'Email Address',
				name: 'email',
				id: 'register_email',
				vtype: 'email',
				allowBlank: false
			},{
				fieldLabel: 'Username',
				name: 'nickname',
				id: 'register_nickname',
				vtype: 'alphanum',
				minLength: 3,
				maxLength: 25,
				allowBlank: false
			},{
				fieldLabel: 'Password',
				name: 'password',
				id: 'register_password',
				inputType: 'password',
				minLength: 6,
				allowBlank: false
			},{
				fieldLabel: 'Confirm Password',
				name: 'password_confirmation',
				id: 'register_password_confirmation',
				inputType: 'password',
				minLength: 6,
				vtype: 'confirmpassword',
				initialPassField: 'register_password',
				allowBlank: false
			},{
				name: 'method',
				value: 'createUser',
				xtype: 'hidden'
			}
		],
		buttonAlign: 'left',
		buttons: [{
			text: 'Create Account',
			formBind: true,
			handler: function() {
				if (processing == false) {
					processing = true;
					Ext.get('register_nickname').dom.value = Ext.get('register_nickname').dom.value.toLowerCase();
					Ext.get('register_email').dom.value = Ext.get('register_email').dom.value.toLowerCase();
					registerForm.form.submit({
						url: '/ajax',
						method: 'post',
						success: function(form, action) {
							processing = false;
							pageTracker._trackPageview('/dynamic/register/user');
							var expires = new Date();
							expires.setDate(expires.getDate()+3650);
							Ext.util.Cookies.set('ShareUT', action.result.data.token, expires, '/', '.sharethis.com');
							document.location.href = '/account/import';
						},
						failure: function(form, action) {
							processing = false;
							var message = !Ext.isEmpty(action.result.errorMessage) ? action.result.errorMessage : 'An unknown error was encountered.';
							Ext.MessageBox.alert('Error', message);
						}
					});
				}
			}
		}],
		keys: {
			key: Ext.EventObject.ENTER,
			fn: function() { Ext.DomQuery.selectNode('#register_form button:first').click(); }
		}
	});
	
	Ext.DomQuery.selectNode('#register_form input:first').focus();	
}