
/* ##############################################################
	설  명 : [Modal]공지사항 상세/수정 팝업
	작성일 : 2023. 01. 19.
	작성자 : NTsoft
	수정일 	        수정자 	 수정내용
	-------         -------- ---------------------------
	2023. 01. 19.	NTsoft 	 최초 생성
*/
let updatePasswordModal = {
    callback : null,
    reqParam : null,
    dataList : null,
    /* 모달 초기화 작업 */
    init : function () {
        $('#updatePasswordModal').remove();
        $('body').append( this.HtmlTemplate);
        //그리드 이벤트
        this.setEvent();
    },
    /* 그리드 이벤트 설정 */
    setEvent:function() {
        $('#updatePasswordModal .btnCancle').on("click", function(){
            updatePasswordModal.close();
        });

        $('#updatePasswordModal .btnSave').on("click", function(){
            updatePasswordModal.save("I");
        });

        $("#updatePasswordModal #modalOpenDate").datetimepicker({
            allowInputToggle: true,
            format: 'YYYY-MM-DD',
            defaultDate: moment()
        });
    },
    /* 데이터 선택 */
    setSelect:function(selectNumber) {
        let checkedData = dataList[selectNumber];
        if(dataList==null||checkedData==undefined){
            return ;
        }

        if( updatePasswordModal.callback )  {
            updatePasswordModal.callback(checkedData);
        }
        updatePasswordModal.close();
    },
    //저장
    save:function(state) {
        let currentPassword =  $("#updatePasswordModal #currentPassword").val();
        let newPassword      = $("#updatePasswordModal #newPassword").val();
        let confirmNewPassword    = $("#updatePasswordModal #confirmNewPassword").val();

        let reg_password = /^(?=.*[a-zA-Z])((?=.*\d)(?=.*\W)).{8,20}$/;

        if(true != fn_emptyCheck(currentPassword)) {
            modalEvent.warning("수정", "기존 비밀번호를 입력하세요");
            return;
        }

        if(true != fn_emptyCheck(newPassword)) {
            modalEvent.warning("수정", "새 비밀번호를 입력하세요");
            return;
        }
        else if(!reg_password.test(newPassword)){
            modalEvent.warning("수정", "비밀번호는 숫자,영문,특수문자 조합 최소 8자리 최대 20자리로 입력해야합니다");
            return;
        }
        else{
            if(true != fn_lengthCheck(newPassword, 100)) {
                modalEvent.warning("수정", "비밀번호 정보는 100자를 넘을 수 없습니다.");
                return;
            }
        }

        if(true != fn_emptyCheck(confirmNewPassword)) {
            modalEvent.warning("수정", "새 비밀번호 확인을 입력하세요");
            return;
        }
        else if(!reg_password.test(confirmNewPassword)){
            modalEvent.warning("수정", "비밀번호 확인은 숫자,영문,특수문자 조합 최소 8자리 최대 20자리로 입력해야합니다");
            return;
        }
        else{
            if(true != fn_lengthCheck(confirmNewPassword, 100)) {
                modalEvent.warning("수정", "비밀번호 확인 정보는 100자를 넘을 수 없습니다.");
                return;
            }
        }

        modalEvent.info("수정", "비밀번호를 수정하시겠습니까?", function(){
            let formData = new FormData();
            formData.append("currentPassword", currentPassword);
            formData.append("newPassword", newPassword);
            formData.append("confirmNewPassword", confirmNewPassword);

            $.ajax({
                url: encodeURI('/mobileuser/updatePassword.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( updatePasswordModal.callback )  {
                                updatePasswordModal.callback();
                            }
                            updatePasswordModal.close();
                        });
                    }
                    else{
                        modalEvent.danger("수정 오류", data.msgDesc);
                    }
                },
                error : function(xhr, status, error) {
                    modalEvent.danger("수정 오류", "수정 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
                },
                beforeSend:function(){

                },
                complete:function(){

                }
            });
        });
    },
    /*
     * 팝업
     * callback : 콜백함수, reqParam: 팝업파라미터
     */
    popup:function(callback, reqParam) {
        // 초기화 후 열기
        updatePasswordModal.init();

        //콜백함수 지정.
        updatePasswordModal.callback = callback;
        updatePasswordModal.reqParam = reqParam;
        updatePasswordModal.dataList = null;

        setTimeout(function(){
            $('#updatePasswordModal').modal('show')
        }, 200);

    },
    /*
     * 팝업 닫기
     */
    close:function() {
        $('#updatePasswordModal').modal('hide');

		setTimeout(function(){
			$('#updatePasswordModal').remove();
		},500);
    },
    HtmlTemplate : `
		<div class="modal password_modal fade" id="updatePasswordModal" tabindex="-1" aria-labelledby="exampleModalLabel" aria-hidden="">
			<div class="modal-dialog">
				<div class="modal-content">
					<div class="modal-header">
						<p class="label">비밀번호 변경</p>
					</div>    
		
					<div class="modal-body">
						<ul>
                            <li class="label">기존 비밀번호</li>
                            <li><input id="currentPassword" type="password" placeholder="기존 비밀번호를 입력해주세요."></li>
                            <li class="label">새로운 비밀번호</li>
                            <li><input id="newPassword" type="password" placeholder="변경할 비밀번호를 입력해주세요."></li>
                            <li><input id="confirmNewPassword" type="password" placeholder="비밀번호 재확인"></li>
                        </ul>
					</div>

					<div class="modal-footer">
						<div class="btn_box">
							<button class="close_btn btnCancle">닫기</button>
							<button class="save_btn btnSave">저장</button>
						</div>
					</div>
				</div>
			</div>
		</div>
    `
};