private function build_contribution_fieldset($form)
 {
     if ($this->is_contributor_member()) {
         $fieldset = new FormFieldsetHTML('contribution', LangLoader::get_message('contribution', 'user-common'));
         $fieldset->set_description(MessageHelper::display($this->lang['download.form.contribution.explain'] . ' ' . LangLoader::get_message('contribution.explain', 'user-common'), MessageHelper::WARNING)->render());
         $form->add_fieldset($fieldset);
         $fieldset->add_field(new FormFieldRichTextEditor('contribution_description', LangLoader::get_message('contribution.description', 'user-common'), '', array('description' => LangLoader::get_message('contribution.description.explain', 'user-common'))));
     }
 }
    private function build_form()
    {
        $form = new HTMLForm(__CLASS__);
        $severities = $this->config->get_severities();
        $fieldset = new FormFieldsetHTML('config', LangLoader::get_message('configuration', 'admin-common'));
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldNumberEditor('items_per_page', LangLoader::get_message('config.items_number_per_page', 'admin-common'), (int) $this->config->get_items_per_page(), array('min' => 1, 'max' => 50, 'required' => true), array(new FormFieldConstraintIntegerRange(1, 50))));
        $fieldset->add_field(new FormFieldColorPicker('fixed_bug_color', $this->lang['config.fixed_bug_color_label'], $this->config->get_fixed_bug_color(), array(), array(new FormFieldConstraintRegex('`^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$`i'))));
        $fieldset->add_field(new FormFieldColorPicker('rejected_bug_color', $this->lang['config.rejected_bug_color_label'], $this->config->get_rejected_bug_color(), array(), array(new FormFieldConstraintRegex('`^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$`i'))));
        $fieldset->add_field(new FormFieldCheckbox('roadmap_enabled', $this->lang['config.enable_roadmap'], $this->config->is_roadmap_enabled(), array('description' => $this->lang['explain.roadmap'])));
        $fieldset = new FormFieldsetHTML('progress_bar', $this->lang['config.progress_bar']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('progress_bar_displayed', $this->lang['config.enable_progress_bar'], $this->config->is_progress_bar_displayed(), array('events' => array('click' => '
				if (HTMLForms.getField("progress_bar_displayed").getValue()) {
					HTMLForms.getField("' . Bug::NEW_BUG . '").enable();
					HTMLForms.getField("' . Bug::PENDING . '").enable();
					HTMLForms.getField("' . Bug::ASSIGNED . '").enable();
					HTMLForms.getField("' . Bug::IN_PROGRESS . '").enable();
					HTMLForms.getField("' . Bug::REJECTED . '").enable();
					HTMLForms.getField("' . Bug::REOPEN . '").enable();
					HTMLForms.getField("' . Bug::FIXED . '").enable();
				} else {
					HTMLForms.getField("' . Bug::NEW_BUG . '").disable();
					HTMLForms.getField("' . Bug::PENDING . '").disable();
					HTMLForms.getField("' . Bug::ASSIGNED . '").disable();
					HTMLForms.getField("' . Bug::IN_PROGRESS . '").disable();
					HTMLForms.getField("' . Bug::REJECTED . '").disable();
					HTMLForms.getField("' . Bug::REOPEN . '").disable();
					HTMLForms.getField("' . Bug::FIXED . '").disable();
				}'))));
        foreach ($this->config->get_status_list() as $key => $value) {
            $fieldset->add_field(new FormFieldNumberEditor($key, $this->lang['config.status.' . $key], $value, array('min' => 0, 'max' => 100, 'step' => 10, 'required' => true, 'hidden' => !$this->config->is_progress_bar_displayed()), array(new FormFieldConstraintIntegerRange(0, 100))));
        }
        $fieldset = new FormFieldsetHTML('admin_alerts', $this->lang['config.admin_alerts']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('admin_alerts_enabled', $this->lang['config.enable_admin_alerts'], $this->config->are_admin_alerts_enabled(), array('events' => array('click' => '
				if (HTMLForms.getField("admin_alerts_enabled").getValue()) {
					HTMLForms.getField("admin_alerts_fix_action").enable();
					HTMLForms.getField("admin_alerts_levels").enable();
				} else {
					HTMLForms.getField("admin_alerts_fix_action").disable();
					HTMLForms.getField("admin_alerts_levels").disable();
				}'))));
        $fieldset->add_field(new FormFieldMultipleCheckbox('admin_alerts_levels', $this->lang['config.admin_alerts_levels'], $this->config->get_admin_alerts_levels(), $this->build_admin_alerts_levels($severities), array('hidden' => !$this->config->are_admin_alerts_enabled())));
        $fieldset->add_field(new FormFieldSimpleSelectChoice('admin_alerts_fix_action', $this->lang['config.admin_alerts_fix_action'], $this->config->get_admin_alerts_fix_action(), array(new FormFieldSelectChoiceOption($this->lang['labels.alert_fix'], BugtrackerConfig::FIX), new FormFieldSelectChoiceOption($this->lang['labels.alert_delete'], BugtrackerConfig::DELETE)), array('hidden' => !$this->config->are_admin_alerts_enabled())));
        $fieldset = new FormFieldsetHTML('stats', $this->lang['titles.stats']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('stats_enabled', $this->lang['config.enable_stats'], $this->config->are_stats_enabled(), array('events' => array('click' => '
				if (HTMLForms.getField("stats_enabled").getValue()) {
					HTMLForms.getField("stats_top_posters_enabled").enable();
					HTMLForms.getField("stats_top_posters_number").enable();
				} else {
					HTMLForms.getField("stats_top_posters_enabled").disable();
					HTMLForms.getField("stats_top_posters_number").disable();
				}'))));
        $fieldset->add_field(new FormFieldCheckbox('stats_top_posters_enabled', $this->lang['config.enable_stats_top_posters'], $this->config->are_stats_top_posters_enabled(), array('hidden' => !$this->config->are_stats_enabled(), 'events' => array('click' => '
				if (HTMLForms.getField("stats_top_posters_enabled").getValue()) {
					HTMLForms.getField("stats_top_posters_number").enable();
				} else {
					HTMLForms.getField("stats_top_posters_number").disable();
				}'))));
        $fieldset->add_field(new FormFieldNumberEditor('stats_top_posters_number', $this->lang['config.stats_top_posters_number'], (int) $this->config->get_stats_top_posters_number(), array('min' => 1, 'required' => true, 'hidden' => !$this->config->are_stats_top_posters_enabled()), array(new FormFieldConstraintRegex('`^[0-9]+$`i'))));
        $fieldset = new FormFieldsetHTML('pm', $this->lang['config.pm']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('pm_enabled', $this->lang['config.enable_pm'], $this->config->are_pm_enabled() ? FormFieldCheckbox::CHECKED : FormFieldCheckbox::UNCHECKED, array('events' => array('click' => '
				if (HTMLForms.getField("pm_enabled").getValue()) {
					HTMLForms.getField("pm_edit_enabled").enable();
					HTMLForms.getField("pm_delete_enabled").enable();
					HTMLForms.getField("pm_comment_enabled").enable();
					HTMLForms.getField("pm_in_progress_enabled").enable();
					HTMLForms.getField("pm_pending_enabled").enable();
					HTMLForms.getField("pm_assign_enabled").enable();
					HTMLForms.getField("pm_fix_enabled").enable();
					HTMLForms.getField("pm_reject_enabled").enable();
					HTMLForms.getField("pm_reopen_enabled").enable();
				} else {
					HTMLForms.getField("pm_edit_enabled").disable();
					HTMLForms.getField("pm_delete_enabled").disable();
					HTMLForms.getField("pm_comment_enabled").disable();
					HTMLForms.getField("pm_in_progress_enabled").disable();
					HTMLForms.getField("pm_pending_enabled").disable();
					HTMLForms.getField("pm_assign_enabled").disable();
					HTMLForms.getField("pm_fix_enabled").disable();
					HTMLForms.getField("pm_reject_enabled").disable();
					HTMLForms.getField("pm_reopen_enabled").disable();
				}'))));
        $fieldset->add_field(new FormFieldCheckbox('pm_edit_enabled', $this->lang['config.enable_pm.edit'], $this->config->are_pm_edit_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_delete_enabled', $this->lang['config.enable_pm.delete'], $this->config->are_pm_delete_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_comment_enabled', $this->lang['config.enable_pm.comment'], $this->config->are_pm_comment_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_in_progress_enabled', $this->lang['config.enable_pm.in_progress'], $this->config->are_pm_in_progress_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_pending_enabled', $this->lang['config.enable_pm.pending'], $this->config->are_pm_pending_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_assign_enabled', $this->lang['config.enable_pm.assign'], $this->config->are_pm_assign_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_fix_enabled', $this->lang['config.enable_pm.fix'], $this->config->are_pm_fix_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_reject_enabled', $this->lang['config.enable_pm.reject'], $this->config->are_pm_reject_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset->add_field(new FormFieldCheckbox('pm_reopen_enabled', $this->lang['config.enable_pm.reopen'], $this->config->are_pm_reopen_enabled(), array('hidden' => !$this->config->are_pm_enabled())));
        $fieldset = new FormFieldsetHTML('contents-value', $this->lang['titles.contents_value_title']);
        $fieldset->set_description($this->lang['explain.contents_value']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldRichTextEditor('contents_value', $this->lang['titles.contents_value'], $this->config->get_contents_value(), array('rows' => 8, 'cols' => 47)));
        $fieldset = new FormFieldsetHTML('types-fieldset', $this->lang['titles.types']);
        $fieldset->set_description($this->lang['explain.type'] . '<br /><br />' . $this->lang['explain.remarks']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('type_mandatory', $this->lang['labels.type_mandatory'], $this->config->is_type_mandatory()));
        $fieldset->add_field(new FormFieldCheckbox('display_type_column', $this->lang['config.display_type_column'], $this->config->is_type_column_displayed()));
        $fieldset->add_field(new FormFieldHTML('types_table', $this->build_types_table()->render()));
        $fieldset = new FormFieldsetHTML('categories-fieldset', $this->lang['titles.categories']);
        $fieldset->set_description($this->lang['explain.category'] . '<br /><br />' . $this->lang['explain.remarks']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('category_mandatory', $this->lang['labels.category_mandatory'], $this->config->is_category_mandatory()));
        $fieldset->add_field(new FormFieldCheckbox('display_category_column', $this->lang['config.display_category_column'], $this->config->is_category_column_displayed()));
        $fieldset->add_field(new FormFieldHTML('categories_table', $this->build_categories_table()->render()));
        $fieldset = new FormFieldsetHTML('severities-fieldset', $this->lang['titles.severities']);
        $fieldset->set_description($this->lang['explain.severity'] . '<br /><br />' . $this->lang['explain.remarks']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('severity_mandatory', $this->lang['labels.severity_mandatory'], $this->config->is_severity_mandatory()));
        $fieldset->add_field(new FormFieldHTML('severities_table', $this->build_severities_table()->render()));
        $fieldset = new FormFieldsetHTML('priorities-fieldset', $this->lang['titles.priorities']);
        $fieldset->set_description($this->lang['explain.priority'] . '<br /><br />' . $this->lang['explain.remarks']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('priority_mandatory', $this->lang['labels.priority_mandatory'], $this->config->is_priority_mandatory()));
        $fieldset->add_field(new FormFieldCheckbox('display_priority_column', $this->lang['config.display_priority_column'], $this->config->is_priority_column_displayed()));
        $fieldset->add_field(new FormFieldHTML('priorities_table', $this->build_priorities_table()->render()));
        $fieldset = new FormFieldsetHTML('versions-fieldset', $this->lang['titles.versions']);
        $fieldset->set_description($this->lang['explain.version'] . '<br /><br />' . $this->lang['explain.remarks']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('detected_in_version_mandatory', $this->lang['labels.detected_in_mandatory'], $this->config->is_detected_in_version_mandatory()));
        $fieldset->add_field(new FormFieldCheckbox('display_detected_in_column', $this->lang['config.display_detected_in_column'], $this->config->is_detected_in_column_displayed()));
        $fieldset->add_field(new FormFieldHTML('versions_table', $this->build_versions_table()->render()));
        $this->submit_button = new FormButtonDefaultSubmit();
        $form->add_button($this->submit_button);
        $form->add_button(new FormButtonReset());
        $this->form = $form;
    }
    private function build_form()
    {
        $form = new HTMLForm(__CLASS__);
        $fieldset = new FormFieldsetHTML('delete_category', $this->get_title());
        $fieldset->set_description($this->get_description());
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('delete_category_and_content', $this->lang['delete.category_and_content'], FormFieldCheckbox::UNCHECKED, array('events' => array('click' => '
		if (HTMLForms.getField("delete_category_and_content").getValue()) {
			HTMLForms.getField("move_in_other_cat").disable();
		} else { 
			HTMLForms.getField("move_in_other_cat").enable();
		}'))));
        $options = new SearchCategoryChildrensOptions();
        $options->add_category_in_excluded_categories($this->get_category()->get_id());
        $fieldset->add_field($this->get_categories_manager()->get_select_categories_form_field('move_in_other_cat', $this->lang['delete.move_in_other_cat'], $this->get_category()->get_id_parent(), $options));
        $this->submit_button = new FormButtonDefaultSubmit();
        $form->add_button($this->submit_button);
        $form->add_button(new FormButtonReset());
        $this->form = $form;
    }
 private function build_form()
 {
     $form = new HTMLForm(__CLASS__);
     $fieldset = new FormFieldsetHTML('delete_' . $this->parameter, $this->lang['config.delete_parameter.' . $this->parameter]);
     $fieldset->set_description($this->lang['config.delete_parameter.description.' . $this->parameter]);
     $form->add_fieldset($fieldset);
     $fieldset->add_field(new FormFieldCheckbox('delete_parameter_and_content', $this->lang['config.delete_parameter.parameter_and_content.' . $this->parameter], FormFieldCheckbox::UNCHECKED));
     $fieldset->add_field(new FormFieldSimpleSelectChoice('move_into_another', $this->lang['config.delete_parameter.move_into_another'], '', $this->get_move_into_another_options()));
     $this->submit_button = new FormButtonDefaultSubmit();
     $form->add_button($this->submit_button);
     $form->add_button(new FormButtonReset());
     $this->form = $form;
 }
    private function build_form()
    {
        $form = new HTMLForm(__CLASS__);
        $fieldset = new FormFieldsetHTML('members_config', $this->lang['members.config-members']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('members_activation', $this->lang['members.config.registration-activation'], $this->user_account_config->is_registration_enabled(), array('events' => array('change' => '
				if (HTMLForms.getField("members_activation").getValue()) {
					HTMLForms.getField("type_activation_members").enable();
					if (HTMLForms.getField("type_activation_members").getValue() != ' . UserAccountsConfig::ADMINISTRATOR_USER_ACCOUNTS_VALIDATION . ') {
						HTMLForms.getField("unactivated_accounts_timeout").enable();
					}
				} else { 
					HTMLForms.getField("type_activation_members").disable();
					HTMLForms.getField("unactivated_accounts_timeout").disable();
				}'))));
        $fieldset->add_field(new FormFieldSimpleSelectChoice('type_activation_members', $this->lang['members.config.type-activation'], (string) $this->user_account_config->get_member_accounts_validation_method(), array(new FormFieldSelectChoiceOption($this->lang['members.config.type-activation.auto'], UserAccountsConfig::AUTOMATIC_USER_ACCOUNTS_VALIDATION), new FormFieldSelectChoiceOption($this->lang['members.config.type-activation.mail'], UserAccountsConfig::MAIL_USER_ACCOUNTS_VALIDATION), new FormFieldSelectChoiceOption($this->lang['members.config.type-activation.admin'], UserAccountsConfig::ADMINISTRATOR_USER_ACCOUNTS_VALIDATION)), array('hidden' => !$this->user_account_config->is_registration_enabled(), 'events' => array('change' => '
				if (HTMLForms.getField("type_activation_members").getValue() != ' . UserAccountsConfig::ADMINISTRATOR_USER_ACCOUNTS_VALIDATION . ') {
					HTMLForms.getField("unactivated_accounts_timeout").enable();
				} else { 
					HTMLForms.getField("unactivated_accounts_timeout").disable();
				}'))));
        $fieldset->add_field(new FormFieldNumberEditor('unactivated_accounts_timeout', $this->lang['members.config.unactivated-accounts-timeout'], (int) $this->user_account_config->get_unactivated_accounts_timeout(), array('min' => 1, 'max' => 365, 'description' => $this->lang['members.config.unactivated-accounts-timeout-explain'], 'hidden' => !$this->user_account_config->is_registration_enabled() || $this->user_account_config->get_member_accounts_validation_method() == UserAccountsConfig::ADMINISTRATOR_USER_ACCOUNTS_VALIDATION), array(new FormFieldConstraintRegex('`^[0-9]+$`i'))));
        $fieldset = new FormFieldsetHTML('security_config', $this->lang['members.config-security']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldNumberEditor('internal_password_min_length', $this->lang['security.config.internal-password-min-length'], $this->security_config->get_internal_password_min_length(), array('min' => 6, 'max' => 30), array(new FormFieldConstraintRegex('`^[0-9]+$`i'), new FormFieldConstraintIntegerRange(6, 30))));
        $fieldset->add_field(new FormFieldSimpleSelectChoice('internal_password_strength', $this->lang['security.config.internal-password-strength'], $this->security_config->get_internal_password_strength(), array(new FormFieldSelectChoiceOption($this->lang['security.config.internal-password-strength.weak'], SecurityConfig::PASSWORD_STRENGTH_WEAK), new FormFieldSelectChoiceOption($this->lang['security.config.internal-password-strength.medium'], SecurityConfig::PASSWORD_STRENGTH_MEDIUM), new FormFieldSelectChoiceOption($this->lang['security.config.internal-password-strength.strong'], SecurityConfig::PASSWORD_STRENGTH_STRONG))));
        $fieldset->add_field(new FormFieldCheckbox('login_and_email_forbidden_in_password', $this->lang['security.config.login-and-email-forbidden-in-password'], $this->security_config->are_login_and_email_forbidden_in_password()));
        $fieldset = new FormFieldsetHTML('authentication_config', $this->lang['members.config-authentication']);
        $form->add_fieldset($fieldset);
        if ($this->server_configuration->has_curl_library()) {
            $fieldset->add_field(new FormFieldCheckbox('fb_auth_enabled', $this->lang['authentication.config.fb-auth-enabled'], $this->authentication_config->is_fb_auth_enabled(), array('description' => $this->lang['authentication.config.fb-auth-enabled-explain'], 'events' => array('click' => '
					if (HTMLForms.getField("fb_auth_enabled").getValue()) { 
						HTMLForms.getField("fb_app_id").enable(); 
						HTMLForms.getField("fb_app_key").enable(); 
					} else { 
						HTMLForms.getField("fb_app_id").disable(); 
						HTMLForms.getField("fb_app_key").disable(); 
					}'))));
            $fieldset->add_field(new FormFieldTextEditor('fb_app_id', $this->lang['authentication.config.fb-app-id'], $this->authentication_config->get_fb_app_id(), array('required' => true, 'hidden' => !$this->authentication_config->is_fb_auth_enabled())));
            $fieldset->add_field(new FormFieldPasswordEditor('fb_app_key', $this->lang['authentication.config.fb-app-key'], $this->authentication_config->get_fb_app_key(), array('required' => true, 'hidden' => !$this->authentication_config->is_fb_auth_enabled())));
            $fieldset->add_field(new FormFieldCheckbox('google_auth_enabled', $this->lang['authentication.config.google-auth-enabled'], $this->authentication_config->is_google_auth_enabled(), array('description' => $this->lang['authentication.config.google-auth-enabled-explain'], 'events' => array('click' => '
					if (HTMLForms.getField("google_auth_enabled").getValue()) { 
						HTMLForms.getField("google_client_id").enable(); 
						HTMLForms.getField("google_client_secret").enable(); 
					} else { 
						HTMLForms.getField("google_client_id").disable(); 
						HTMLForms.getField("google_client_secret").disable(); 
					}'))));
            $fieldset->add_field(new FormFieldTextEditor('google_client_id', $this->lang['authentication.config.google-client-id'], $this->authentication_config->get_google_client_id(), array('required' => true, 'hidden' => !$this->authentication_config->is_google_auth_enabled())));
            $fieldset->add_field(new FormFieldPasswordEditor('google_client_secret', $this->lang['authentication.config.google-client-secret'], $this->authentication_config->get_google_client_secret(), array('required' => true, 'hidden' => !$this->authentication_config->is_google_auth_enabled())));
        } else {
            $fieldset->add_field(new FormFieldFree('', '', MessageHelper::display($this->lang['authentication.config.curl_extension_disabled'], MessageHelper::WARNING)->render()));
        }
        $fieldset = new FormFieldsetHTML('avatar_management', $this->lang['members.config.avatars-management']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldCheckbox('upload_avatar_server', $this->lang['members.config.upload-avatar-server-authorization'], $this->user_account_config->is_avatar_upload_enabled()));
        $fieldset->add_field(new FormFieldCheckbox('activation_resize_avatar', $this->lang['members.config.activation-resize-avatar'], $this->user_account_config->is_avatar_auto_resizing_enabled(), array('description' => $this->lang['members.activation-resize-avatar-explain'])));
        $fieldset->add_field(new FormFieldNumberEditor('maximal_width_avatar', $this->lang['members.config.maximal-width-avatar'], $this->user_account_config->get_max_avatar_width(), array('description' => $this->lang['members.config.maximal-width-avatar-explain']), array(new FormFieldConstraintRegex('`^[0-9]+$`i'))));
        $fieldset->add_field(new FormFieldNumberEditor('maximal_height_avatar', $this->lang['members.config.maximal-height-avatar'], $this->user_account_config->get_max_avatar_height(), array('description' => $this->lang['members.config.maximal-height-avatar-explain']), array(new FormFieldConstraintRegex('`^[0-9]+$`i'))));
        $fieldset->add_field(new FormFieldNumberEditor('maximal_weight_avatar', $this->lang['members.config.maximal-weight-avatar'], $this->user_account_config->get_max_avatar_weight(), array('description' => $this->lang['members.config.maximal-weight-avatar-explain']), array(new FormFieldConstraintRegex('`^[0-9]+$`i'))));
        $fieldset->add_field(new FormFieldCheckbox('default_avatar_activation', $this->lang['members.config.default-avatar-activation'], $this->user_account_config->is_default_avatar_enabled(), array('description' => $this->lang['members.config.default-avatar-activation-explain'])));
        $default_avatar_link = $this->user_account_config->get_default_avatar_name();
        $fieldset->add_field(new FormFieldTextEditor('default_avatar_link', $this->lang['members.config.default-avatar-link'], $default_avatar_link, array('description' => $this->lang['members.default-avatar-link-explain'], 'events' => array('change' => 'jQuery("#img_avatar").attr("src", "' . TPL_PATH_TO_ROOT . '/templates/' . AppContext::get_current_user()->get_theme() . '/images/" + HTMLForms.getField("default_avatar_link").getValue())'))));
        $fieldset->add_field(new FormFieldFree('preview', LangLoader::get_message('preview', 'main'), '<img id="img_avatar" src="' . Url::to_rel('/templates/' . AppContext::get_current_user()->get_theme() . '/images/' . $default_avatar_link) . '" alt="' . LangLoader::get_message('preview', 'main') . '" title="' . LangLoader::get_message('preview', 'main') . '" />'));
        $fieldset = new FormFieldsetHTML('authorization', $this->lang['members.config.authorization']);
        $form->add_fieldset($fieldset);
        $auth_settings = new AuthorizationsSettings(array(new ActionAuthorization($this->lang['members.config.authorization-read-member-profile'], UserAccountsConfig::AUTH_READ_MEMBERS_BIT)));
        $auth_settings->build_from_auth_array($this->user_account_config->get_auth_read_members());
        $auth_setter = new FormFieldAuthorizationsSetter('authorizations', $auth_settings);
        $fieldset->add_field($auth_setter);
        $fieldset = new FormFieldsetHTML('welcome_message', $this->lang['members.config.welcome-message']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldRichTextEditor('welcome_message_contents', $this->lang['members.config.welcome-message-content'], $this->user_account_config->get_welcome_message(), array('rows' => 8, 'cols' => 47)));
        $fieldset = new FormFieldsetHTML('members_rules', $this->lang['members.rules']);
        $fieldset->set_description($this->lang['members.rules.registration-agreement-description']);
        $form->add_fieldset($fieldset);
        $fieldset->add_field(new FormFieldRichTextEditor('registration_agreement', $this->lang['members.rules.registration-agreement'], UserAccountsConfig::load()->get_registration_agreement(), array('rows' => 8, 'cols' => 47)));
        $this->submit_button = new FormButtonDefaultSubmit();
        $form->add_button($this->submit_button);
        $form->add_button(new FormButtonReset());
        $this->form = $form;
    }