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

        $('#vacationInsertModal #modalAvailableDays').on('input', function() {
            // 입력된 키가 숫자가 아닌 경우 입력을 막음
            this.value = this.value.replace(/\D/g, '');
        });
	},
	/* 데이터 선택 */
	setSelect:function(selectNumber) {
		let checkedData = dataList[selectNumber];
		if(dataList==null||checkedData==undefined){
			return ;
		}
		
		if( vacationInsertModal.callback )  {
			vacationInsertModal.callback(checkedData);
		}
		vacationInsertModal.close();
	},
	//저장
	save:function(state) {
		let vacationName  = $("#vacationInsertModal #modalVacationName").val();
		let hourType      = $("#vacationInsertModal #modalHourType").val();
		// let startTime     = $("#vacationInsertModal #insertVacationStartTime").val();
		// let endTime       = $("#vacationInsertModal #insertVacationEndTime").val();
		let hour          = $("#vacationInsertModal #modalHour").val();
		let availableDays = $("#vacationInsertModal #modalAvailableDays").val();
		let etc           = $("#vacationInsertModal #modalEtc").val();
		
		if(true != fn_emptyCheck(vacationName)){
			modalEvent.warning("등록", "연차유형명 정보가 없습니다.");	
			return;
		}
		else{
			if(true != fn_lengthCheck(vacationName, 255)) {
				modalEvent.warning("등록", "연차유형명 정보는 255자를 넘을 수 없습니다.");	
				return;
			}
		}
		
		if(true != fn_emptyCheck(hourType)){
			modalEvent.warning("등록", "시간유형 정보가 없습니다.");	
			return;
		}
		else{
			if('A'==hourType){
				
			}
			else{
				// if(true != fn_emptyCheck(startTime)){
				// 	modalEvent.warning("등록", "시작시간 정보가 없습니다.");
				// 	return;
				// }
				// if(true != fn_emptyCheck(endTime)){
				// 	modalEvent.warning("등록", "종료시간 정보가 없습니다.");
				// 	return;
				// }
				if(true != fn_emptyCheck(hour)){
					modalEvent.warning("등록", "시간 정보가 없습니다.");
					return;
				}
			}
		}
		
		modalEvent.info("등록", "연차설정 정보를 등록하시겠습니까?", function(){
			let formData = new FormData();
			formData.append("menuClass", menuClass);
			formData.append("vacationName", vacationName);
			formData.append("hourType", hourType);
			// formData.append("startTime", startTime);
			// formData.append("endTime", endTime);
			formData.append("hour", hour);
			formData.append("availableDays", availableDays);
			formData.append("etc", etc);
	
			$.ajax({
				url: encodeURI('/webvacation/insertVacation.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( vacationInsertModal.callback )  {
								vacationInsertModal.callback();
							}
							vacationInsertModal.close();
						});
					}
					else{
						modalEvent.danger("등록 오류", data.msgDesc);
					}
				},
				error : function(xhr, status, error) {
					modalEvent.danger("등록 오류", "등록 중 오류가 발생하였습니다. 잠시후 다시시도하십시오.");
				},
				beforeSend:function(){
					
				},
				complete:function(){
					
				}
			});
		});
	},
	/*
	 * 팝업
	 * callback : 콜백함수, reqParam: 팝업파라미터
	 */
	popup:function(callback, reqParam) {
		// 초기화 후 열기
		vacationInsertModal.init();
		
		//콜백함수 지정.
		vacationInsertModal.callback = callback;
		vacationInsertModal.reqParam = reqParam;
		vacationInsertModal.dataList = null;

		// fn_setTimeValue("insertVacationStartTime", "00:00");
		// fn_setTimeValue("insertVacationEndTime", "00:00");

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

		setTimeout(function(){
			$('#vacationInsertModal').remove();
		},500);
	},
	HtmlTemplate : `
	<div id="vacationInsertModal" class="modal create_vacation_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>
							<input type="text" id="modalVacationName" placeholder="연차유형명" maxlength="255">
						</div>
						
						<div class="select_list_box">
							<label>시간</label>

							<div class="select_time_list_box">
								<div class="select_list">
									<div class="select_box dropdown">
										<button type="button" class="label" data-toggle="dropdown" aria-haspopup="true" aria-expanded="false">전일</button>
										<input type="hidden" id="modalHourType" value="A">
										
										<ul class="select_option_list dropdown-menu" id="selModalHourType">
											<li id="li_A" class="option_list_item hide_item" onclick="javascript:fn_insertModal_clickSelectHourValue(this);">전일</li>
											<li id="li_H" class="option_list_item show_item" onclick="javascript:fn_insertModal_clickSelectHourValue(this);">시간 입력</li>
										</ul>
									</div>
								</div>

								<div class="time_box hide_time_box" style="display:none;">
									<input type="text" id="modalHour" placeholder="00" maxlength="11">
									<span>시간</span>
								</div>
							</div>
						</div>
						
						<div class="input_box">
							<label>연속 가능 일수</label>

							<div class="time_box">
								<input type="text" id="modalAvailableDays" placeholder="00" maxlength="2">
								<span>일</span>
							</div>
						</div>

						<div class="textarea_box">
							<label>메모</label>
							<textarea id="modalEtc" placeholder="메모를 입력해주세요."></textarea>
						</div>
					</div>
				</div>

				<div class="modal-footer">
					<div class="btn_box">
						<button type="button" class="cancel_btn btnCancle">취소</button>
						<button type="button" class="registration_bth btnSave">등록</button>
					</div>
				</div>
			</div>
		</div>
	</div>
    `
};

/****************************************************************************
* 시간 select box 선택 값 셋팅
****************************************************************************/
function fn_insertModal_clickSelectHourValue(target){
	let selectIdArr = $(target).prop("id").split('_');
	let selectId    = selectIdArr[1];
	let selectName  = $(target).text();
	
	$(target).parent().siblings("button").text(selectName);
	$(target).parent().siblings("input").val(selectId);
	
	if('H' == selectId){
		$("#vacationInsertModal .hide_time_box").show();
	}
	else{
		$("#vacationInsertModal .hide_time_box").hide();
	}
}