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