var JTCRMUserManagement=function(){var c="frmCreateUser",r="fmrSetUserPassword",d="frmEditUsersOptions",w="txtEmail",C="Email Address",f="txtFullName",n="Full Name",m="chkTaskUser",b="txtCardMember",u="chkIsInactive",o="cboRoles",g="txtPassword",p="txtConfirmPassword",t="cboAnyOrUserPermissions",h="chkIsLocked",F={ptAdministrator:1,ptSelectedRole:2},R=[{id:F.ptAdministrator,displayValue:"Administrator"},{id:F.ptSelectedRole,displayValue:"Selected Role"}];function S(){return e=(e=getObj(c)[t])[e.selectedIndex].value,parseInt(e,10)===F.ptAdministrator;var e}function U(e){e=e[o];return e[e.selectedIndex].value}function D(){var e=getObj(c),a=mjtElemData(e,"userId"),i=S(),l=U(e),r=!e[h].disabled&&!e[h].checked;jsrsExecuteWithErrorP("Admin2_UpdateUser2",rsCallbackHandleStandardJSONResponseWithHideAndRefresh,"Updating user",{userId:a,fullName:trim(e[f].value),isTaskUser:e[m].checked?1:0,cardMember:trim(e[b].value),isInactive:e[u].checked?1:0,unlockUser:r?1:0,isAdmin:i?1:0,role:i?null:l})}function T(e){var a=e.cdBuilder,i=e.isAdmin,l=e.roleId,e=e.arrRoles.map(function(e){return{cboValue:e.roleId||"",rawContent:e.roleName||"",isSelectedOption:e.roleId===l}}),r=i?F.ptAdministrator:F.ptSelectedRole,s=R.map(function(e){return{cboValue:e.id,rawContent:e.displayValue,isSelectedOption:e.id===r}});a.addSectionHeaderRow({rawTitle:"Permissions",additionalCellClasses:"width35em"}),e.splice(0,0,{cboValue:""}),a.addDropdown({fieldName:t,arrAvailableOptions:s,fieldClasses:"marginRightLarge width10em",onClickChangeJS:"JTCRMUserManagement.PROTECTED.onRoleSelectChanged()",strPostFieldHTML:cdBuildDropdown({fieldName:o,arrAvailableOptions:e,fieldClasses:i?"hideElement":""})})}function i(){var e=getObj(c),e=e?e[o]:null;e&&(S()?e.classList.add("hideElement"):e.classList.remove("hideElement"))}function a(e){var a=e.userInfo,e=e.arrRoles,i=a.userId,l=a.email,r=a.cardMember,s=a.isAdmin,o=a.roleId,t=g_jtcrmIsAdmin?cdBuildFAFontIconButton({fontId:FontIconId_Enum.fiiLock,doubleQuoteEncodedOnClickJS:"JTCRMUserManagement.PROTECTED.promptSetUserPassword()",doubleQuoteEncodedTitle:"Set User Password"}):"",d=jtcrmHasAccess(JTCRMSecuredObject_Enum.soUserSettings,AccessRight_Enum.mjtARDelete),d=new ClientDialogBuilder({formId:c,formTitle:"Edit User",focusFieldName:f,focusFieldOnMobile:1,okButtonDisplayText:cdBuildMnemonicLabelHTML({rawLabel:"Save",mnemonicChar:"s",mnemonicActionJS:"JTCRMUserManagement.PROTECTED.submitUpdateUser()"}),fnSubmit:D,arrExtraHeaderButtons:[d?DialogHeaderDeleteButton.buildDialogHeaderDeleteButton({remoteScriptingFunctionName:"Admin2_DeleteUser2",deletePayload:{userId:i},rawButtonTitle:"Delete User",rawConfirmationMessageText:'Are you sure you want to delete "'+l+'"?',displayNameOfObjectToDelete:"User"}):null,d?'':null,t,ClientDialogModule.buildChangeLogHeaderButton({changeLogUrl:pageUserEventLog+i})]}),t={formElemData:{userId:i}};d.addFlexibleFieldRow({rawLabel:C,rawValue:l||""}),d.addTextFieldRow(f,{rawLabel:n,mnemonicChar:"n",additionalLabelCellClasses:"clsNarrowField",fieldValue:a.fullName||"",maxLength:80,autofocus:1}),d.addTextFieldRow(b,{rawLabel:"Card Member",mnemonicChar:"m",fieldValue:r||"",maxLength:80,autofocus:1}),d.addCheckboxRow_deprecated(m,{rawLabel:"Task User",mnemonicChar:"t",checked:a.isTaskUser}),d.addCheckboxRow_deprecated(u,{rawLabel:"Inactive",mnemonicChar:"i",checked:a.isInactive}),d.addCheckboxRow_deprecated(h,{rawLabel:"Locked",checked:a.isLocked,disabled:!a.isLocked}),T({cdBuilder:d,isAdmin:s,roleId:o,arrRoles:e}),d.showClientDialog(t)}function P(e){ClientDialogModule.showDialogWithConsequence({formTitle:"Error Setting Password",simpleRowContentHtml:e,subdialogDismisalFocusFieldName:g})}function l(){var e,a,i,l,r=getObj(c),s=new FormValidator,o=r[w],t=o.value,d={},n=r[b].value,m=S(),u=U(r);s.ValidateTextField({textFieldElem:o,fieldDisplayName:C,isRequiredField:1})&&(o=(o={emailAddress:t}).emailAddress,(o=/^(([^<>()[\]\\.,;:\s@"]+(\.[^<>()[\]\\.,;:\s@"]+)*)|(".+"))@((\[[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\])|(([a-zA-Z\-0-9]+\.)+[a-zA-Z]{2,}))$/.test(o))||ClientDialogModule.showDialogWithConsequence({formTitle:"Invalid Email",simpleRowContentHtml:"Invalid email address.",subdialogDismisalFocusFieldName:w}),o)&&(o=(s={form:r,resultValueHolder:d}).form,s=s.resultValueHolder,a=o[w],l=(i=o[g]).value,o=o[p].value,(s.password=l)!==o?showInfoDialog("Passwords don't match!","Mismatched Passwords",1,p):e=validateClientSidePasswordVals(a,i,P),e)&&jsrsExecuteWithErrorP("Admin2_CreateUser2",rsCallbackHandleStandardJSONResponseWithHideAndRefresh,"Creating User",{emailAddress:t,password:d.password,fullName:trim(r[f].value),cardMemberName:n,isAdmin:m?1:0,roleId:m?"":u})}function e(e){var e=e.arrRoles,a=new ClientDialogBuilder({formId:c,formTitle:"Create User",focusFieldName:w,focusFieldOnMobile:1,okButtonDisplayText:cdBuildMnemonicLabelHTML({rawLabel:"Save",mnemonicChar:"s",mnemonicActionJS:"JTCRMUserManagement.PROTECTED.submitCreateUser()"}),fnSubmit:l});a.addTextFieldRow(w,{rawLabel:C,mnemonicChar:"e",maxLength:200,additionalLabelCellClasses:"clsNarrowField",autofocus:1,isEmail:1}),a.addTextFieldRow(f,{rawLabel:n,mnemonicChar:"n",maxLength:80,autofocus:1}),a.addTextFieldRow(g,{rawLabel:"Password",mnemonicChar:"p",maxLength:80,isPasswordField:1}),a.addTextFieldRow(p,{rawLabel:"Confirm Password",mnemonicChar:"c",maxLength:80,isPasswordField:1}),a.addTextFieldRow(b,{rawLabel:"Card Member",mnemonicChar:"m",maxLength:80}),T({cdBuilder:a,arrRoles:e}),a.showClientDialog()&&i()}function s(e){var a,i=e.userNameField,l=e.newPasswordField,r=l.id,s=r?"":l.name,o=function(e){ClientDialogModule.showDialogWithConsequence({formTitle:"Error Validating New Password",simpleRowContentHtml:'