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