
/* ##############################################################
	설  명 : [Modal]직원 비밀번호 수정 팝업
	작성일 : 2023. 01. 19.
	작성자 : NTsoft
	수정일 	        수정자 	 수정내용
	-------         -------- ---------------------------
	2023. 01. 19.	NTsoft 	 최초 생성
*/
let memberPasswordModal = {
	callback : null,
	reqParam : null,
	dataList : null,
	/* 모달 초기화 작업 */
	init : function () {
		$('#memberPasswordModal').remove();
		$('body').append( this.HtmlTemplate);
		//그리드 이벤트
		this.setEvent();
	},
	/* 그리드 이벤트 설정 */
	setEvent:function() {
		$('#memberPasswordModal .btnCancle').on("click", function(){
			memberPasswordModal.close();
		});
		
		$('#memberPasswordModal .btnSave').on("click", function(){
			memberPasswordModal.save("I");
		});
	},
	/* 데이터 선택 */
	setSelect:function(selectNumber) {
		let checkedData = dataList[selectNumber];
		if(dataList==null||checkedData==undefined){
			return ;
		}
		
		if( memberPasswordModal.callback )  {
			memberPasswordModal.callback(checkedData);
		}
		memberPasswordModal.close();
	},
	//저장
	save:function(state) {
		let muMemberId = memberPasswordModal.reqParam.muMemberId;
		
		let password            = $("#memberPasswordModal #modalPassword").val();
		let newPassword         = $("#memberPasswordModal #modalNewPassword").val();
		let newPasswordConfirm  = $("#memberPasswordModal #modalNewPasswordConfirm").val();
		
		let reg_password = /^(?=.*[a-zA-Z])(?=.*\d)/;

		if(true != fn_emptyCheck(muMemberId)){
			modalEvent.warning("수정", "직원 정보가 없습니다.");	
			return;
		}
		
		if(true != fn_emptyCheck(password)) {
			modalEvent.warning("수정", "기존 비밀번호를 입력하세요");
			return;
		}
		
		if(true != fn_emptyCheck(newPassword)) {
			modalEvent.warning("수정", "새 비밀번호를 입력하세요.");
			return;
		}
		else if(!reg_password.test(newPassword)){
			modalEvent.warning("수정", "비밀번호는 숫자,영문 조합으로 입력해야합니다.");
			return;
		}
		else{
			if(true != fn_lengthCheck(newPassword, 100)) {
				modalEvent.warning("수정", "비밀번호 정보는 100자를 넘을 수 없습니다.");
				return;
			}
		}

		if(true != fn_emptyCheck(newPasswordConfirm)) {
			modalEvent.warning("수정", "새 비밀번호 확인을 입력하세요.");
			return;
		}
		else if(!reg_password.test(newPasswordConfirm)){
			modalEvent.warning("수정", "비밀번호 확인은 숫자,영문 조합으로 입력해야합니다.");
			return;
		}
		else{
			if(true != fn_lengthCheck(newPasswordConfirm, 100)) {
				modalEvent.warning("수정", "비밀번호 확인 정보는 100자를 넘을 수 없습니다.");
				return;
			}
		}
		
		modalEvent.info("수정", "비밀번호를 수정하시겠습니까?", function(){
			let formData = new FormData();
			formData.append("menuClass", menuClass);
			formData.append("muMemberId", muMemberId);
			formData.append("password", password);
			formData.append("newPassword", newPassword);
			formData.append("newPasswordConfirm", newPasswordConfirm);
	
			$.ajax({
				url: encodeURI('/webmember/updateMemberPassword.do'),
				data: formData,
				dataType: "json",
				processData: false,
				contentType: false,
				type: 'POST',
				async: true,
				success: function(data){
					if('0'==data.msgCode){
						modalEvent.success("수정 성공", data.msgDesc, function(){
							if( memberPasswordModal.callback )  {
								memberPasswordModal.callback();
							}
							memberPasswordModal.close();
						});
					}
					else{
						modalEvent.danger("수정 오류", data.msgDesc);
					}
				},
				error : function(xhr, status, error) {
					modalEvent.danger("수정 오류", "수정 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
				},
				beforeSend:function(){
					
				},
				complete:function(){
					
				}
			});
		});
	},
	/*
	 * 팝업
	 * callback : 콜백함수, reqParam: 팝업파라미터
	 */
	popup:function(callback, reqParam) {
		// 초기화 후 열기
		memberPasswordModal.init();
		
		//콜백함수 지정.
		memberPasswordModal.callback = callback;
		memberPasswordModal.reqParam = reqParam;
		memberPasswordModal.dataList = null;
		
		setTimeout(function(){
			$('#memberPasswordModal').modal('show')
		}, 200);
	},
	/*
	 * 팝업 닫기
	 */
	close:function() {
		$('#memberPasswordModal').modal('hide');

		setTimeout(function(){
			$('#memberPasswordModal').remove();
		},500);
	},
	HtmlTemplate : `
	<div id="memberPasswordModal" class="modal password_modal fade" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="">
		<div class="modal-dialog">
			<div class="modal-content">
				<div class="modal-header">
					<p class="title">비밀번호 재설정</p>
				</div>

				<div class="modal-body">
					<div class="form_box">
						<div class="input_box">
							<label>비밀번호</label>
							<!-- <a href="#">비밀번호 자동생성</a>  -->
						</div>

						<div class="input_box">
							<input type="password" id="modalPassword" placeholder="기존 비밀번호" maxlength="255">
							<p class="comment">기존 비밀번호를 입력해 주세요.</p>
						</div>

						<div class="input_box">
							<input type="password" id="modalNewPassword" placeholder="새 비밀번호" maxlength="255">
							<input type="password" id="modalNewPasswordConfirm" placeholder="새 비밀번호 확인" style="margin-left:10px;" maxlength="255">
							<p class="comment">새로운 비밀번호를 입력해 주세요.</p>
						</div>
					</div>
				</div>

				<div class="modal-footer">
					<div class="btn_box">
						<button type="button" class="cancel_btn btnCancle">취소</button>
						<button type="button" class="reset_btn btnSave">재설정</button>
					</div>
				</div>
			</div>
		</div>
	</div>
    `
};