/home/ivoiecob/email.hirewise-va.com/modules/StandardResetPassword/js/manager.js
'use strict';


module.exports = function (oAppData) {
	var
		_ = require('underscore'),

		TextUtils = require('%PathToCoreWebclientModule%/js/utils/Text.js'),

		App = require('%PathToCoreWebclientModule%/js/App.js'),
		
		Settings = require('modules/%ModuleName%/js/Settings.js'),
		
		bAnonymousUser = App.getUserRole() === Enums.UserRole.Anonymous
	;
	
	Settings.init(oAppData);
	
	if (!App.isPublic() && bAnonymousUser)
	{
		var fAddControllersToLoginScreen = function () {
			App.subscribeEvent('AnonymousUserForm::PopulateBeforeButtonsControllers', _.bind(function (oParams) {
				if (_.isFunction(oParams.RegisterBeforeButtonsController) && (oParams.ModuleName === 'StandardLoginFormWebclient' || oParams.ModuleName === 'MailLoginFormWebclient'))
				{
					oParams.RegisterBeforeButtonsController(require('modules/%ModuleName%/js/views/ForgotPasswordController.js'));
				}
			}, this));
		};
		
		if (App.isMobile())
		{
			return {
				start: function (ModulesManager)
				{
					fAddControllersToLoginScreen();
				},
				getScreens: function () {
					var
						oScreens = {},
						oLoginScreenView = require('modules/%ModuleName%/js/views/ResetPasswordFormView.js')
					;
					if (oLoginScreenView)
					{
						oLoginScreenView.ViewTemplate = '%ModuleName%_ResetPasswordMobileFormView';
						oScreens[Settings.HashModuleName] = function () {
							return oLoginScreenView;
						};
					}
					return oScreens;
				}
			};
		}
		else
		{
			return {
				start: function (ModulesManager)
				{
					fAddControllersToLoginScreen();
				},
				getScreens: function () {
					var oScreens = {};
					oScreens[Settings.HashModuleName] = function () {
						return require('modules/%ModuleName%/js/views/ResetPasswordFormView.js');
					};
					return oScreens;
				}
			};
		}
	}
	else if (App.isUserNormalOrTenant() && !App.isMobile())
	{
		return {
			start: function (ModulesManager) {
				if (ModulesManager.isModuleEnabled('SecuritySettingsWebclient'))
				{
					ModulesManager.run(
						'SecuritySettingsWebclient',
						'registerSecuritySettingsSection', 
						[
							function () {
								var oResetPasswordSettingsFormView = require('modules/%ModuleName%/js/views/ResetPasswordSettingsFormView.js');
								oResetPasswordSettingsFormView.ViewTemplate = '%ModuleName%_ResetPasswordSettingsSectionFormView';
								return oResetPasswordSettingsFormView;
							},
							'%ModuleName%'
						]
					);
				}
				else
				{
					ModulesManager.run('SettingsWebclient', 'registerSettingsTab', [
						function () { return require('modules/%ModuleName%/js/views/ResetPasswordSettingsFormView.js'); },
						Settings.HashModuleName, 
						TextUtils.i18n('%MODULENAME%/LABEL_SETTINGS_TAB')
					]);
				}
			}
		};
	}

	return null;
};