/* 시스템 js파일 * * 시스템 필요한 함수 여기에 생성해서 쓰세요 * * */ $(document).ready(function() { }); /*우편번호 검색*/ function fn_postCode(schBtn, test) { var curX = window.screenLeft; var curWidth = document.body.clientWidth; var nLeft = curX + (curWidth / 2) - (500 / 2); var nTop = (window.screen.height / 2) - (500 / 2); //IE 에서 closet 지원이 되지않아 추가 if (!Element.prototype.matches) { Element.prototype.matches = Element.prototype.msMatchesSelector || Element.prototype.webkitMatchesSelector; } if (!Element.prototype.closest) { Element.prototype.closest = function(s) { var el = this; do { if (el.matches(s)) return el; el = el.parentElement || el.parentNode; } while (el !== null && el.nodeType === 1); return null; }; } var domArea = ""; if (schBtn) { domArea = schBtn.closest("tr"); // 주소검색 n개일때 해당 tr 참조 } else { domArea = document; } /*input에 텍스트 입력하고 함수 호출할 경우 입력한 텍스트 팝업창에 전달*/ var popupPostCode = domArea.querySelector('.adr_input').value; var popupAddr = domArea.querySelector('.searchResultAddr').value; var popupInput = ''; if (popupAddr != '') { popupInput = popupAddr; } else if (popupPostCode != '') { popupInput = popupPostCode; } new daum.Postcode({ oncomplete: function(data) { // 팝업에서 검색결과 항목을 클릭했을때 실행할 코드를 작성하는 부분. // 각 주소의 노출 규칙에 따라 주소를 조합한다. // 내려오는 변수가 값이 없는 경우엔 공백('')값을 가지므로, 이를 참고하여 분기 한다. var addr = ''; // 주소 변수 var extraAddr = ' '; // 참고항목 변수 //사용자가 선택한 주소 타입에 따라 해당 주소 값을 가져온다. if (data.userSelectedType === 'R') { // 사용자가 도로명 주소를 선택했을 경우 addr = data.roadAddress; } else { // 사용자가 지번 주소를 선택했을 경우(J) addr = data.jibunAddress; } // 사용자가 선택한 주소가 도로명 타입일때 참고항목을 조합한다. if (data.userSelectedType === 'R') { // 법정동명이 있을 경우 추가한다. (법정리는 제외) // 법정동의 경우 마지막 문자가 "동/로/가"로 끝난다. if (data.bname !== '' && /[동|로|가]$/g.test(data.bname)) { /* extraAddr += data.bname; */ addr += data.bname; } // 건물명이 있고, 공동주택일 경우 추가한다. if (data.buildingName !== '' && data.apartment === 'Y') { addr += (addr !== '' ? ', ' + data.buildingName : data.buildingName); } } // 우편번호와 주소 정보를 해당 필드에 넣는다. 첫번째 class가 adr_input, searchResultAddr에 값을 넣는다 /*domArea.getElementsByClassName("adr_input").value = data.zonecode;*/ domArea.querySelector('.adr_input').value = data.zonecode; /*domArea.getElementsByClassName("searchResultAddr").value = addr;*/ domArea.querySelector('.searchResultAddr').value = addr; // 커서를 상세주소 필드로 이동한다. // domArea.getElementsByClassName("usrInsertAddr").focus(); $('#sigunguCode').val(data.sigunguCode); } }).open({ //미리 입력된 값을 팝업창에 전달 q: popupInput, //팝업의 키값입력으로 다중 팝업 방지 popupKey: 'kccAdressPopup1', //팝업 이름 지정 popupTitle: '주소검색', left: nLeft, top: nTop }); } // 이메일 도메인 선택 박스 function emailSelect(obj) { var selectUrl = $(obj).find(":selected").val(); if (!selectUrl) { selectUrl = ""; } // 선택 박스 이전 첫번째 text박스 var email2Obj = $(obj).prevAll().filter("[type='text']:first"); if (email2Obj) { email2Obj.val(selectUrl); } } //수령지 주소 복사 function addrCp(obj) { var $tdAddr = $(obj).closest("td"); var $tdAddrReal = $("#" + $tdAddr[0].id + "Real"); var $realPost = $tdAddrReal.find(".adr_input"); var $realAddr = $tdAddrReal.find(".searchResultAddr"); var $realAddrDtl = $tdAddrReal.find(".usrInsertAddr"); if ($(obj).prop("checked")) { var $post = $tdAddr.find(".adr_input"); var $addr = $tdAddr.find(".searchResultAddr"); var $addrDtl = $tdAddr.find(".usrInsertAddr"); $realPost.val($post.val()); $realAddr.val($addr.val()); $realAddrDtl.val($addrDtl.val()); } else { $realPost.val(""); $realAddr.val(""); $realAddrDtl.val(""); } } // 개인/법인 분류 선택 function usrTySelect(obj) { if (!obj) return; var usrTy = $("#" + obj.id + ":checked").val(); if (!usrTy) { var ustTy01 = $("[name='rpplUsrTy']:eq(0)"); ustTy01.prop("checked", true); usrTy = ustTy01.val(); } $(obj).closest("table").find("tr[usrTy]").hide().prop("disabled", false); $(obj).closest("table").find("tr[usrTy='" + usrTy + "']").show().prop("disabled", true); //$("tr[usrTy]").hide().prop("disabled", false); //$("tr[usrTy='"+usrTy+"']").show().prop("disabled", true); } // 법인번호 유효성 자동 맞춤 function onKeyUpBizId(jObj) { if (!jObj) return; jObj.on("keyup", function() { $(this).val(BusinessId($(this).val().replace(/[^-\.0-9]/g, ""))); }); } //법인번호 포맷 function BusinessId(str) { str = str.replace(/[^0-9]/g, ''); var tmp = ''; if (str.length < 6) { return str; } else { tmp += str.substr(0, 6); tmp += '-'; tmp += str.substr(6); return tmp; } return str; } //개인사업자 유효성 자동 맞춤 function onKeyUpBizNo(jObj) { if (!jObj) return; jObj.on("keyup", function() { $(this).val(BusinessNo($(this).val().replace(/[^-\.0-9]/g, ""))); }); } //사업자번호 포맷 function BusinessNo(str) { str = str.replace(/[^0-9]/g, ''); var tmp = ''; if (str.length < 4) { return str; } else if (str.length < 7) { tmp += str.substr(0, 3); tmp += '-'; tmp += str.substr(3); return tmp; } else { tmp += str.substr(0, 3); tmp += '-'; tmp += str.substr(3, 2); tmp += '-'; tmp += str.substr(5); return tmp; } return str; } /* * layer 팝업 열기 * 페이지마다 modal과, 영역을 넣어야하는 번거러움과 * selector를 바꿔줘야하는 단첨이 있어 보완하여 기능 추가 * */ function commonPopLayeropen(url, popupwidth, popupheight, paramObj, maskYn, target) { if (target == undefined || target == '') { target = 'layerPop'; } var maskId = target + "_mask"; if ($("#" + target).length == 0) { var ele = $("
").addClass("tooltip-wrap").css({ "display": "none" }).attr("id", target); $("body:first").prepend(ele); } $('#' + target).load( url , paramObj , function(res, status, xhr) { if (status == "success") { var parentDiv = $("#" + target); var innerTarget = $("#" + target).find(".popup_wrap").css({ "width": popupwidth + 'px' }); var innerPopCont = $("#" + target).find(".popup_cont").css({ "height": popupheight + 'px!important', "max-height": "none" }); if (popupwidth > screen.width) { popupwidth = screen.width; } if (popupheight > screen.height) { popupheight = screen.height; } var top = 0; var left = 0; if (isNaN(parseInt(popupwidth))) { top = ($(window).height() - 600) / 2; left = ($(window).width() - 800) / 2; } else { top = ($(window).height() - popupheight) / 2; left = ($(window).width() - popupwidth) / 2; } if (top < 0) top = 0; if (left < 0) left = 0; innerTarget.css({ "left": left, "top": top }); if (maskYn == "Y") { parentDiv.after($("
").addClass("mask").attr("id", maskId)).next(".mask").show(); } parentDiv.show(); innerTarget.show().focus(); parentDiv.find(".tooltip-close").off().click(function(e) { $("#" + target).remove(); $("#" + maskId).remove(); }); } }); } /* * layer 팝업 닫기 * */ function commonPopLayerClose() { $("[data-focus=list_popup_close]").trigger("click"); } function commonPopWindowopenForm(surl, popupwidth, popupheight, name, frm) { if (popupwidth > screen.width) popupwidth = screen.width; if (popupheight > screen.height) popupheight = screen.height; var top = 0; var left = 0; if (isNaN(parseInt(popupwidth))) { top = (screen.availHeight - 600) / 2; left = (screen.availWidth - 800) / 2; } else { top = (screen.availHeight - popupheight) / 2; left = (screen.availWidth - popupwidth) / 2; } if (top < 0) top = 0; if (left < 0) left = 0; var option = "dependent=yes,fullscreen=no,toolbar=no,location=no,directories=no,status=no,menubar=no,scrollbars=no,resizable=no,left=" + left + ",top=" + top + ",width=" + popupwidth + ",height=" + popupheight; if (name == null || name == "") { name = "Popup"; } window.open("", name, option); frm.attr('target', name); frm.attr('action', surl); frm.method = "post"; frm.submit(); // 초기화.. frm.attr('target', '_self'); } //휴대폰 번호에 대쉬(-) 추가해주기 function addDash(str) { return str.replace(/(^01[016789]{1}|070)([0-9]{3}|[0-9]{4})([0-9]{4})$/, "$1-$2-$3").replace("--", "-"); } //null 체크 function isEmpty(value) { if (value == "" || value == null || value == undefined || (value != null && typeof value == "object" && !Object.keys(value).length)) { return true } else { return false } } function isNotEmpty(value) { return !isEmpty(value); } function isEmptyObj(name) { return isEmpty($('#' + name).val()); } function isNotEmptyObj(name) { return isNotEmpty($('#' + name).val()); } function onlyNumber(thisObj) { thisObj.value = thisObj.value.replace(/[^0-9]/gi, ""); } function onlyAlphabetNumber(thisObj) { thisObj.value = thisObj.value.replace(/[^0-9a-zA-Z\._]/gi, ""); } function getChkLen(name) { return $("input:checkbox[name=" + name + "]:checked").length; } //hh:mm 체크 function isDatetime(d) { var re = /^(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9])$/; return re.test(d); } //hh:mm:ss 체크 function isDatetimeSec(d) { var re = /^(0[0-9]|1[0-9]|2[0-3]):([0-5][0-9]):([0-5][0-9])$/; return re.test(d); } function setFormat (opt, obj) { var formatText = ''; var num = $(obj).val(); switch (opt) { case 'time': formatText = num.replace(/(\d{2})(\d{2})/, '$1:$2'); break; case 'day': formatText = num.replace(/(\d{4})(\d{2})(\d{2})/, '$1-$2-$3'); break; } $(obj).val(formatText); } // 교육신청서 리포트 화면 function fn_adjstReq_preview(adrSeq) { window.open("/web/kccadr/adjst/report/adjstReqReportAjax.do?adrSeq="+adrSeq); } //텍스트 문자열 길이만 반환 function conByteLeng(content){ var totalByte = 0; //한글과 영문을 구분하여 바이트수 계산 for(var i=0; i< content.length; i++){ var currentByte = content.charCodeAt(i); if(currentByte > 128){ totalByte += 2; }else{ totalByte++; } } return totalByte; } function emptyObject(param){ return Object.keys(param).length === 0; }