/*******************************************************************/ //인쇄 호출 function goPrint() { pagePrintPreview(); } //대륙선택에 따른 국가 가져오기 var countryHtmlId = ""; function setCountryList(val, id){ countryHtmlId = id; sendAjax( "/common/countryListAjax.json", "areaCd=" + val, onSetCountryList ); } function onSetCountryList(data){ if(data.resultCode == "200"){ if(data.data.continentList.length > 0){ var strHtml = ""; strHtml +=""; for(var i =0; i"+data.data.continentList[i].name+""; } $("#" + countryHtmlId).html(strHtml); countryHtmlId == ""; } }else{ alert("국가 조회에 실패 하였습니다."); countryHtmlId == ""; } } // 디자인 관련 함수 Start function bluring() { if(event.srcElement.tagName=="A"||event.srcElement.tagName=="IMG") document.body.focus(); } document.onfocusin = bluring; function flashObj(src, w, h, id, val) { var http; if ( this.location.toString().indexOf("http://") == 0 ) http = "http"; else http = "https"; var html = ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ''; html += ' '; html += ''; document.write(html); } // 디자인 관련 함수 End /*******************************************************************/ /*******************************************************************/ // 입력 관련 함수 start var DELIMITER = ",,,"; var START_YEAR = "2010"; // trim function trim(val) { return jQuery.trim( val ); } // 필수 입력 체크 function checkInput(id, title) { var obj = $("#" + id.replace(".", "\\.")); // 아이디가 없을때 name으로 검색 if(obj.length == 0) { obj = $("input[name=" + id + "]"); } obj.val( trim(obj.val()) ); if ( obj.val().length == 0 ) { alert( title + " 입력해 주세요."); obj.focus(); return false; } return true; } function checkInputWithMsg(id, msg) { var obj = $("#" + id.replace(".", "\\.")); // 아이디가 없을때 name으로 검색 if(obj.length == 0) { obj = $("input[name=" + id + "]"); } obj.val( trim(obj.val()) ); if ( obj.val().length == 0 ) { alert( msg ); obj.focus(); return false; } return true; } //min, max 값 체크 function checkInputMinMax(id, min, max, title) { var obj = $("#" + id.replace(".", "\\.")); obj.val( trim(obj.val()) ); if ( parseInt(obj.val()) < parseInt(min) ) { alert( title + min + "값 보다 크게 입력해 주세요."); obj.focus(); return false; } if ( parseInt(obj.val()) > parseInt(max) ) { alert( title + max + "값 보다 작게 입력해 주세요."); obj.focus(); return false; } return true; } //minlen, maxlen 값 체크 function checkInputMinMaxLen(id, minlen, maxlen, title) { var obj = $("#" + id.replace(".", "\\.")); obj.val( trim(obj.val()) ); if ( obj.val().length < parseInt(minlen) ) { alert( title + " " + minlen + "자 이상 입력해 주세요."); obj.focus(); return false; } if ( obj.val().length > parseInt(maxlen) ) { alert( title + " " + maxlen + "자 이하로 입력해 주세요."); obj.focus(); return false; } return true; } // 필수 입력 체크 선택 function checkRadioCheck(id, title) { var obj = $("#" + id.replace(".", "\\.")); // 아이디가 없을때 name으로 검색 if(obj.length == 0) { obj = $("[name=" + id + "]"); } if ( $("input[name=" + id + "]:checked").val() == null || $("input[name=" + id + "]:checked").val() == "undefined" ) { alert( title + " 선택해 주세요."); obj.focus(); return false; } return true; } //필수 입력 체크 function checkSelectCheck(id, title) { var obj = $("#" + id.replace(".", "\\.")); // 아이디가 없을때 name으로 검색 if(obj.length == 0) { obj = $("[name=" + id + "]"); } if (obj.val() == "") { alert( title + " 선택해 주세요."); obj.focus(); return false; } return true; } // 길이 체크 function checkMinLength(id, len, title) { var obj = $("#" + id.replace(".", "\\.")); obj.val( trim(obj.val()) ); if ( obj.val().length < len ) { alert(title + " " + len + "글자 이상 입력해 주세요."); obj.focus(); return false; } return true; } // 길이 체크 function checkMaxLength(id, len, title) { var obj = $("#" + id.replace(".", "\\.")); obj.val( trim(obj.val()) ); if ( obj.val().length > len ) { alert(title + " " + len + "글자까지 입력 가능합니다."); obj.focus(); return false; } return true; } // id 체크 function checkID(id) { var obj = $("#" + id.replace(".", "\\.")); var re = /^[A-Za-z0-9]{4,15}$/; if ( checkInput(id, "ID를") ) { if ( re.test( obj.val() ) ) { return true; } else { alert("ID는 영어/숫자 4~15 문자 이내에서 입력해 주세요."); obj.focus(); return false; } } else return false; } // 비밀번호 체크 function checkPassword(password) { var obj = $("#" + password.replace(".", "\\.")); var re = /^.*(?=.{6,12})(?=.*[0-9])(?=.*[A-Za-z]).*$/; if ( checkInput(password, "비밀번호를") ) { if ( re.test( obj.val() ) ) { return true; } else { alert("비밀번호는 영문/숫자를 혼합하여 6~12 문자 이내에서 입력해 주세요."); obj.focus(); return false; } } else return false; } // email 주소 체크 function checkEmail(id, requireFlag) { var obj = $("#" + id.replace(".", "\\.")); var re = /^[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*@[0-9a-zA-Z]([-_\.]?[0-9a-zA-Z])*\.[a-zA-Z]{2,3}$/i; obj.val( trim( obj.val() ) ); if ( requireFlag == null ) requireFlag = true; if ( requireFlag ) { if ( !checkInput (id, "이메일 주소를") ) return false; } if ( obj.val() == "" ) { return true; } else if ( re.test( obj.val() ) ) { return true; } else { alert("이메일 주소가 형식에 맞지 않습니다."); obj.focus(); return false; } } // 법인등록번호 체크 function checkComRegNum(obj_1, obj_2, obj_3) { obj_1 = $("#" + obj_1.replace(".", "\\.")); obj_2 = $("#" + obj_2.replace(".", "\\.")); obj_3 = $("#" + obj_3.replace(".", "\\.")); var re = /^\d{6}$/; obj_1.val( trim(obj_1.val()) ); obj_2.val( trim(obj_2.val()) ); if ( !re.test(obj_1.val()) ) { alert( "법인등록번호를 확인해 주세요."); obj_1.focus(); return false; } re = /^\d{7}$/; if ( !re.test(obj_2.val()) ) { alert( "법인등록번호를 확인해 주세요."); obj_2.focus(); return false; } obj_3.val( obj_1.val() + "-" + obj_2.val() ); return true; } // 사업자등록번호 체크 function checkComBizNum(obj_1, obj_2, obj_3, obj_4) { obj_1 = $("#" + obj_1.replace(".", "\\.")); obj_2 = $("#" + obj_2.replace(".", "\\.")); obj_3 = $("#" + obj_3.replace(".", "\\.")); obj_4 = $("#" + obj_4.replace(".", "\\.")); var re = /^\d{3}$/; obj_1.val( trim(obj_1.val()) ); obj_2.val( trim(obj_2.val()) ); obj_3.val( trim(obj_3.val()) ); if ( !re.test(obj_1.val()) ) { alert( "사업자등록번호를 확인해 주세요."); obj_1.focus(); return false; } re = /^\d{2}$/; if ( !re.test(obj_2.val()) ) { alert( "사업자등록번호를 확인해 주세요."); obj_2.focus(); return false; } re = /^\d{5}$/; if ( !re.test(obj_3.val()) ) { alert( "사업자등록번호를 확인해 주세요."); obj_3.focus(); return false; } obj_4.val( obj_1.val() + "-" + obj_2.val() + "-" + obj_3.val() ); return true; } //전화번호 체크 function checkPhone(id, flag) { var obj = $("#" + id.replace(".", "\\.")); var re; if ( flag == 1) re = /^\d{3,4}$/; else re = /^\d{4}$/; if ( re.test(obj.val()) ) return true; else return false; } function checkNum(num) { num = num.replace(/\,/g, ''); var re = /^[+-]?\d*$/; return re.test(num); } // 숫자만 입력가능하게 셋팅 jQuery.fn.ForceNumericOnly = function(commaFlag) { if (commaFlag == null) commaFlag = true; return this.each(function() { $(this).keydown(function (e) { // Allow: backspace, delete, tab, escape, enter and . if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 190, 45]) !== -1 || // Allow: Ctrl+A, Command+A (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) || // Allow: home, end, left, right, down, up (e.keyCode >= 35 && e.keyCode <= 40)) { // let it happen, don't do anything return; } // Ensure that it is a number and stop the keypress if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) { e.preventDefault(); } var charValue = e.key , valid = /^[0-9]+$/.test(charValue); var charStr = String.fromCharCode(charValue); if (charStr != "-") { return; } // if (!valid) { // e.preventDefault(); // } }); if (commaFlag) { $(this).focusout(function() { $(this).val($(this).val().replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,")); }); $(this).focusin(function() { $(this).val($(this).val().replace(/\,/g, '')); }); } }) }; // 전화번호, 우편번호 jQuery.fn.ForcePhoneOnly = function() { return this.each(function() { $(this).keydown(function (e) { // Allow: backspace, delete, tab, escape, enter, dash, plus, dash, plus if ($.inArray(e.keyCode, [46, 8, 9, 27, 13, 110, 189, 187, 109, 107]) !== -1 || // Allow: Ctrl+A, Command+A (e.keyCode === 65 && (e.ctrlKey === true || e.metaKey === true)) || // Allow: home, end, left, right, down, up (e.keyCode >= 35 && e.keyCode <= 40)) { // let it happen, don't do anything return; } // Ensure that it is a number and stop the keypress if ((e.shiftKey || (e.keyCode < 48 || e.keyCode > 57)) && (e.keyCode < 96 || e.keyCode > 105)) { e.preventDefault(); } var charValue = e.key var valid = /[^0-9+\-]/gi.test(charValue); if (valid) { e.preventDefault(); } }); }) }; // 날짜 유효성 체크 function checkDate(start, end, nullck, msg) { var strStart = start.replace(/-/gi, "/"); var strEnd = end.replace(/-/gi, "/"); startDt = new Date(strStart); endDt = new Date(strEnd); // console.log(start + " : " + end); if (nullck == null) { nullck = true; } if (nullck) { if(isNaN(startDt) || isNaN(endDt)) { if (!!msg) { alert(msg+"날짜를 확인하세요."); } else { alert("날짜를 확인하세요."); } return false; } } if (startDt.getTime() > endDt.getTime()) { if (!!msg) { alert(msg+"날짜를 확인하세요."); } else { alert("날짜를 확인하세요."); } return false; } else { return true; } } // 날짜 기간 function setDatediff(start, end, rtMonth, rtDay) { // 기간 가져오기 var ret = getDateDiff($("#"+start).val(), $("#"+end).val()); // 기간 체크 // 숫자가 있으면 true 값 리턴함.. 왜징.. if(!isNaN($("#"+start).val()) || !isNaN($("#"+end).val())) { return false; } if (ret < 0) { alert("종료일이 시작일보다 작습니다."); $("#"+end).val(""); $("#"+rtMonth).val(0); $("#"+rtDay).val(0); return false; } var day = getDifMonths($("#"+start).val(), $("#"+end).val()); // 개월 $("#"+rtMonth).val(Math.floor(day)); // 일 if (parseFloat(day).toFixed(0) > parseFloat(0)) { $("#"+rtDay).val(Math.round(day*30%30)); } else { $("#"+rtDay).val(Math.round(day*30)); } } function getDateDiff(start, end) { var startAr = start.split("-"); var endAr = end.split("-"); var year = Number(endAr[0]) - Number(startAr[0]); var month = Number(endAr[1]) - Number(startAr[1]); var day = Number(endAr[2]) - Number(startAr[2]); var ret = year*12 + month + (day<0?-1:0); return ret; } //입력 관련 함수 end /*******************************************************************/ /*******************************************************************/ //쿠키관련 함수 start function setCookie(name, value, expires) { var today = new Date(); today.setDate(today.getDate() + expires); document.cookie = name + '=' + escape(value) + '; path=/; expires=' + today.toGMTString() + ';' } function getCookie(name) { var cName = name + "="; var x = 0; while ( x <= document.cookie.length ) { var y = (x+cName.length); if ( document.cookie.substring( x, y ) == cName ) { if ( (endOfCookie=document.cookie.indexOf( ";", y )) == -1 ) endOfCookie = document.cookie.length; return unescape( document.cookie.substring( y, endOfCookie ) ); } x = document.cookie.indexOf( " ", x ) + 1; if ( x == 0 ) break; } return ""; } //쿠키관련 함수 end /*******************************************************************/ /*******************************************************************/ // iframe size 관련 함수 start // get document hegit function getDocHeight(doc) { var docHt = 0, sh, oh; if (doc.height) { docHt = doc.height; } else if (doc.body) { if (doc.body.scrollHeight) docHt = sh = doc.body.scrollHeight; if (doc.body.offsetHeight) docHt = oh = doc.body.offsetHeight; if (sh && oh) docHt = Math.max(sh, oh); } return docHt; } function setResize(id) { var iframeWin = window.frames[id]; var iframeEl = window.document.getElementById ? window.document.getElementById(id): document.all? document.all[id]: null; if ( iframeEl && iframeWin ) { var docHt = getDocHeight(iframeWin.document); if (docHt != iframeEl.style.height) iframeEl.style.height = docHt + 'px'; } else { // firefox var docHt = window.document.getElementById(id).contentDocument.height; window.document.getElementById(id).style.height = docHt + 'px'; } } //iframe size 관련 함수 start /*******************************************************************/ /****************************************************************************/ //기타 공용 함수 start function sendAjax(url, data, callback) { $.ajax({ type: "POST", url: url, data: data, dataType: "json", success: function(data, status) { try { if (status == "success") callback(data); else callback(); } catch (e) {} }, error: function(request, status, error) { try { callback(); } catch (e) {} } }); } function commDownload (module) { this.location.href = "/common/CommFileDown.ksif?module=" + module; } function filedownload (module) { this.location.href = "/common/pdfFileDownload.ksif?module=" + module; } function downloadAttach (no, tableName, contentNo) { this.location.href = "/common/FileDown.do?no=" + no + "&tblNm=" + tableName + "&bbsNo=" + contentNo; } // 첨부파일 전체삭제 function allDelAttach(id, module, moduleId) { sendAjax( "/common/allDelAttach.json", "no=" + no + "&tblNm=" + tableName + "&bbsNo=" + contentNo, onDelAttach ); } function delAttach(no, tableName, contentNo) { if ( !confirm("첨부파일을 삭제하시겠습니까?") ) return; sendAjax( "/common/ajax_attach_del.do", "no=" + no + "&tblNm=" + tableName + "&bbsNo=" + contentNo, onDelAttach ); } function onDelAttach(data) { if ( data == null ) alert( "첨부파일 삭제중 에러가 발생 하였습니다!" ); else if ( data.result != "success" ) alert( "첨부파일 삭제중 에러가 발생 하였습니다! " + data.result ); else { alert( "첨부파일을 삭제하였습니다!" ); this.location.reload(); } } function delRow(no) { $("#fileRow_" + no).remove(); } /** * 공백제거 * @return */ String.prototype.trim = function() { return this.replace(/^\s+|\s+$/g, ""); }; /** * 문자열 변환 * @param str1 * @param str2 * @return */ String.prototype.replaceAll = function(str1, str2) { var tmp = ""; if (str1 != "" && str1.length > str2.length) tmp = str1.split(str1).join(str2); return tmp; }; // 숫자에 ,를 찍어준다 function setComma(val) { if ( val == null ) return ""; else if ( isNaN(val) ) return val; val = String(val); return val.replace(/(\d)(?=(\d\d\d)+(?!\d))/g, "$1,"); } // 콤마풀기 function unComma(val) { if ( val == null ) return ""; val = String(val); return Number(val.replace(/,/gi,"")); } // 기호풀기 function unHyphen(val) { if ( val == null ) return ""; val = String(val); return val.replace(/-/gi,""); } /** * 년도 option 추가 * @param obj * @param year * @param sYear * @param eYear * @return */ function addOptionYear ( obj, year, sYear, eYear ) { if ( eYear == null ) eYear = ( new Date().format("yyyy") ); for ( var i = sYear; i <= eYear; i++ ) { var idx = obj.length; obj.options[idx] = new Option( i, i ); if ( i == year ) obj.options[idx].selected = true; } } /** * 월 option 추가 * @param obj * @param month * @return */ function addOptionMonth( obj, month ) { month = parseInt( month ); for ( var i = 1; i <= 12; i++ ) { var idx = obj.length; var idx = obj.length; obj.options[idx] = new Option( i, (i < 10) ? "0" + i : i ); if ( i == month ) obj.options[idx].selected = true; } } /** * 첨부파일 확장자 체크 */ function blockUploadExt(cnt) { var fileName; for ( var i = 0; i <= cnt; i++ ) { if ( i == 0 ) fileName = $("#upload").val(); else fileName = $("#upload_" + i).val(); if ( fileName != null && fileName.length > 0 ) { fileName = fileName.toLowerCase(); if (fileName.length > 0 && /.*\.(exe|jsp)$/.test(fileName)) { alert("exe, jsp 파일은 첨부할 수 없습니다."); return true; } } } return false; } //해당 분기의 처음 날짜 function getFirstDayQuarter( dt ) { var yy = parseInt(dt.substr(0, 4), 10); var mm = parseInt(dt.substr(5, 2), 10); if ( mm <= 3) return yy + "." + "01.01"; else if ( mm <= 6 ) return yy + "." + "04.01"; else if ( mm <= 9 ) return yy + "." + "07.01"; else return yy + "." + "10.01"; } //기타 공용 함수 end /****************************************************************************/ function goPopup(url, width, height) { if(width == undefined) { width = 1200; } if(height == undefined){ height = 800; } var option = "resizable=yes, scrollbars=yes, location=yes, status=yes, left=0, top=0, width=" + width + ",height=" + height; window.open(url, "_blank", option); } //이전, 다음 단계이동 function moveStep(action, url, applicationId, schoolId) { // 단계이동 if (action == 'complete') { this.location.href = url + "?applicationId=" + applicationId + "&schoolId=" + schoolId; // 저장하고 단계이동 } else { document.frm.action = url; document.frm.submit(); } } function number_format( number, decimals, dec_point, thousands_sep ) { if(typeof number == "string") number = number.replace(/,/g, ""); var n = !isNaN(number) ? number * 1.0 : 0.00; decimals = isNaN(decimals = Math.abs(decimals)) ? 0 : decimals; var decSeparator = decSeparator == undefined ? "." : dec_point; var thouSeparator = thouSeparator == undefined ? "," : thousands_sep; var sign = n < 0 ? "-" : ""; var i = parseInt(n = Math.abs(+n || 0).toFixed(decimals)) + ""; var j = (j = i.length) > 3 ? j % 3 : 0; return setComma( sign + (j ? i.substr(0, j) + thouSeparator : "") + i.substr(j).replace(/(\d{3})(?=\d)/g, "$1" + thouSeparator) + (decimals ? decSeparator + Math.abs(n - i).toFixed(decimals).slice(2) : "") ); } function number_format1( number, decimals, dec_point, thousands_sep ) { if(typeof number == "string") number = number.replace(/,/g, ""); var n = !isNaN(number) ? number * 1.0 : 0.00; decimals = isNaN(decimals = Math.abs(decimals)) ? 0 : decimals; var decSeparator = decSeparator == undefined ? "." : dec_point; var thouSeparator = thouSeparator == undefined ? "," : thousands_sep; var sign = n < 0 ? "-" : ""; var i = parseInt(n = Math.abs(+n || 0).toFixed(decimals)) + ""; // var j = (j = i.length) > 3 ? j % 3 : 0; return setComma( sign + i + (decimals ? decSeparator + Math.abs(n - i).toFixed(decimals).slice(2) : "") ); } function GetFormValue(f, n) { var f = document.forms[f]; if(!f || !f[n]) return false; switch(f[n].type) { case 'text': case 'file': case 'password': case 'hidden': return f[n].value; break; case 'textarea': return f[n].text; break; case 'checkbox': if(f[n].checked == true) return f[n].value; break; case 'select-one': for(var i=0; i 31 && (event.keyCode != 46 &&(event.keyCode < 48 || event.keyCode > 57))) event.returnValue = false; } // 숫자필드 최대 입력값 체크 function checkNumLen(id) { var obj = $("#" + id.replace(".", "\\.")); // 아이디가 없을때 name으로 검색 if(obj.length == 0) { obj = $("input[name=" + id + "]"); } obj.val( trim(obj.val()) ); var maxLen = obj.attr("max"); if ( parseInt(obj.val()) > parseInt(maxLen) ) { alert(obj.attr("hname")+"의 최대 입력값을 초과하였습니다. 다시 입력해 주세요."); obj.focus(); return false; } return true; } /***************************************************************************/ // 보기모드 function setReadOnly() { $("input, textarea").attr("readonly", "readonly").css("background", "#F4F4F4"); $("select").attr("disabled", "disabled").css("background", "#F4F4F4"); $(".cal").attr("disabled", "disabled").css("background", "#F4F4F4"); // 버튼 숨기기 $("input:submit").hide(); $("input:button").hide(); $("section button").not(".btn-print").not(".btn-refresh").hide(); $("#autoSaveBtn").hide(); // a태그 숨기기 $("section a").attr("style","background:#fff"); // 학당접수 버튼용 $("section a").attr("style","width:0px !important"); // 학당접수 버튼용 $("section a").hide(); // 파일삭제 $("input:file").bind('click', false); // 파일찾기 } // 보기모드 function setReadOnlyText() { $("input, textarea").attr("readonly", "readonly").css("background", "#F4F4F4"); $("select").attr("disabled", "disabled").css("background", "#F4F4F4"); $(".cal").attr("disabled", "disabled").css("background", "#F4F4F4"); } //탭버튼 $(function () { $(".bms-tabbtn-area1 button").click(function () { $(".bms-tabbtn-area1 button").removeClass("on"); $(this).addClass("on"); }); }); // 권한변경 function goChgAuth(){ location.href="/chgAuth/chgAuth.ksif?memberType=" + $("#memberType").val(); } // 메일 수 조회 function getMailCount() { $.ajax({ type: "GET", dataType: "json", url: "/mail/newMailCount.json", success: onMailCount }); } function onMailCount(result) { var mainCnt = result.data.newMailCount; alert(mainCnt) $("#newMaiLCnt").val(mainCnt); } function setDateFormat(date, type) { var val = ""; if (type == "" || type == undefined) { val = new String(date); val = val.substring(0, 4) + "-" + val.substring(4, 6) + "-" + val.substring(6, 8) } else { val = new Date(date); var year = val.getFullYear(); var month = new String(val.getMonth()+1); var day = new String(val.getDate()); var hour = new String(val.getHours()); var min = new String(val.getMinutes()); // 한자리수일 경우 0을 채워준다. if (month.length == 1) { month = "0" + month; } if (day.length == 1) { day = "0" + day; } val = year + "-" + month + "-" + day + " " + hour + ":" + min; } return val; } // 파일 확장자에 따른 썸네일 이미지 영역 설정 function getFileType(ext) { var fileType =""; var fileName = ext.toLowerCase(); if (fileName.length > 0 && /.*\.(jpg|jpeg|gif|png|bm])$/.test(fileName)) { fileType = "photo"; } else { fileType = "file"; } return fileType; } /** * @ author : [insom*nia] (blue1769@naver.com) * Homepage(BloG): http://som2day.com/ * @ date : 2010-01-06 * @ descript : JavaScripts Date Functions */ function isLeapYear(year) { // parameter가 숫자가 아니면 false if (isNaN(year)) return false; else { var nYear = eval(year); // 4로 나누어지고 100으로 나누어지지 않으며 400으로는 나눠지면 true(윤년) if (nYear % 4 == 0 && nYear % 100 != 0 || nYear % 400 == 0) return true; else return false; } } // start, end format: yyyymmdd function getDifMonths(start, end) { var startAr = start.split("-"); var endAr = end.split("-"); var startYear = startAr[0]; var endYear = endAr[0]; var startMonth = startAr[1] - 1; var endMonth = endAr[1] - 1; var startDay = startAr[2]; var endDay = endAr[2]; // 연도 차이가 나는 경우 if (eval(startYear) < eval(endYear)) { // 종료일 월이 시작일 월보다 수치로 빠른 경우 if (eval(startMonth) > eval(endMonth)) { var newEnd = startYear + "-12-31"; var newStart = endYear + "-01-01"; var addMonths = (eval(endYear) - eval(startYear) - 1) * 12; if (addMonths < 0) {addMonths = 0;} return (eval(getDifMonths(start, newEnd)) + eval(getDifMonths(newStart, end)) + eval(addMonths)).toFixed(2); // 종료일 월이 시작일 월보다 수치로 같거나 늦은 경우 } else { var formMonth = eval(startMonth) + 1; if (eval(formMonth) < 10) formMonth = "0" + formMonth; var newStart = endYear + "-" + formMonth + "-" + startDay; var addMonths = (eval(endYear) - eval(startYear)) * 12; return (eval(addMonths) + eval(getDifMonths(newStart, end))).toFixed(2); } } else { // 월별 일수차 (30일 기준 차이 일수) var difDaysOnMonth = new Array(1, -2, 1, 0, 1, 0, 1, 1, 0, 1, 0, 1); var difDaysTotal = getDifDays(start, end); for (i = startMonth; i < endMonth; i++) { if (i == 1 && isLeapYear(startYear)) difDaysTotal -= (difDaysOnMonth[i] + 1); else difDaysTotal -= difDaysOnMonth[i]; } // because view this function // window.alert("- run getDifMonths()\n- " + start + " ~ " + end + " => " + (difDaysTotal / 30).toFixed(2)); return (difDaysTotal / 30).toFixed(2); } } // start, end format: yyyymmdd function getDifDays(start, end) { var dateStart = new Date(start); var dateEnd = new Date(end); var difDays = (dateEnd.getTime() - dateStart.getTime()) / (24 * 60 * 60 * 1000); // because view this function // window.alert("- run getDifDays()\n- " + start + " ~ " + end + " => " + Math.ceil(difDays)); return Math.ceil(difDays); } // JS 페이징 function drawPage(totalRecordCount, pageNo, rowLimit, pageLimit){ var totPage = 0; // var totalGroup = 0; var nowGroup = 0; var linkEndPage = 0; var nextEndpage = 0; var nextStartpage = 0; // 페이지 수 var tot_temp = Math.floor(totalRecordCount%rowLimit); if (tot_temp>0) { totPage=Math.floor(totalRecordCount/rowLimit) + 1; } else { totPage=totalRecordCount/rowLimit; } // var tg_temp = totPage%pageLimit; // if (tg_temp>0) { // totalGroup=Math.floor(totPage/pageLimit) + 1; // } // else { // totalGroup=Math.floor(totPage/pageLimit); // } var ng_temp = pageNo%pageLimit; if (ng_temp>0) { nowGroup=Math.floor(pageNo/pageLimit) + 1; } else { nowGroup=Math.floor(pageNo/pageLimit); } var linkStartPage = (nowGroup - 1) * pageLimit + 1; var linkEndPage = linkStartPage + pageLimit - 1; if (linkEndPage > totPage) { linkEndPage = totPage; } if (linkEndPage < linkStartPage) { linkEndPage = linkStartPage; } var prevStartpage=linkStartPage-pageLimit; var tmp_nextEndpage=linkEndPage+pageLimit; if (tmp_nextEndpage>totPage ) { nextEndpage=totPage; } else { nextEndpage=linkEndPage+pageLimit; } $("#pagingDiv").empty(); if (totalRecordCount > 0 && pageNo != 1) $("#pagingDiv").append(' \"처음\"'); else $("#pagingDiv").append(' \"처음\"'); if (nowGroup > 1) $("#pagingDiv").append(' \"이전\"'); else { if (totPage > 10) $("#pagingDiv").append(' \"이전\"'); } for (var i=linkStartPage; i<=linkEndPage; i++) { if (i==pageNo) $("#pagingDiv").append(' '+i+''); else $("#pagingDiv").append(' '+i+''); } nextStartpage=linkEndPage+1; if (linkEndPage < totPage) $("#pagingDiv").append(' '); else { if (totPage > 10) $("#pagingDiv").append(' '); } if (totalRecordCount > 0 && pageNo != totPage) $("#pagingDiv").append(' \"마지막\"'); else $("#pagingDiv").append(' \"마지막\"'); } function chkDatePeriod(start, end) { if (end == null || end == "" || end == "undefined") { return false; } var ret = getDateDiff($("#"+start).val(), $("#"+end).val()); if (ret < 0) { alert("종료일이 시작일 보다 작습니다."); $("#"+end).val(""); return false; } } function goTotalSearch(val, searchType, searchYear){ if(val.length < 2){ alert("검색어는 2글자 이상 입력해 주세요."); return; } $("#totalSearchPageIndex").val( "1" ); $("#totalSearchKeyword").val(val); $("#totalSearchType").val(searchType); $("#totalSearchYear").val(searchYear); document.totSearchForm.action = "/search/totalSearchList.do"; document.totSearchForm.submit(); } function initInputDataType() { $('input').each(function(index){ if( typeof($(this).attr('data-type')) !== 'undefined' && $(this).attr('data-type').length > 0 ) { if( $(this).attr('data-type').toLowerCase() === 'acnt' ) { var strDate = $(this).val().replace(/,/g, ""); $(this).val(strDate.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); $(this).on('keyup', function(event){ $(this).val($(this).val().replace(/[^0-9]/g, '')); var val = $(this).val().replace(/,/g, ""); $(this).val(val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); return; }); } else if( $(this).attr('data-type').toLowerCase() === 'num' ) { $(this).css("ime-mode", "disabled"); //$(this).number(false); $(this).numeric(); //숫자만 입력가능 } else if( $(this).attr('data-type').toLowerCase() === 'alpha' ) { $(this).css("ime-mode", "disabled"); $(this).alpha(); // 영문만 허용 } else if( $(this).attr('data-type').toLowerCase() === 'alphanum' ) { $(this).css("ime-mode", "disabled"); $(this).alphanum(); // $(this).alphanum({ allow: '%' }); // '%' 입력가능 // 숫자와 영문만 허용 } else if( $(this).attr('data-type').toLowerCase() === 'mcnt' ) { $(this).css("ime-mode", "disabled"); var strDate = $(this).val().replace(/,/g, ""); $(this).val(strDate.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); $(this).on('keyup', function(event){ $(this).val($(this).val().replace(/[\ㄱ-ㅎ ㅏ-ㅣ 가-힣]/g, '')); var val = $(this).val().replace(/,/g, ""); $(this).val(val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); return; }); } else if( $(this).attr('data-type').toLowerCase() === 'pcnt' ) { $(this).css("ime-mode", "disabled"); var strDate = $(this).val().replace(/,/g, ""); $(this).val(strDate.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); $(this).on('keyup', function(event){ $(this).val($(this).val().replace(/[\ㄱ-ㅎ ㅏ-ㅣ 가-힣]/g, '')); var val = $(this).val().replace(/,/g, ""); $(this).val(val.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ",")); return; }); } else if ($(this).attr('data-type').toLowerCase() === 'decimal2') { $(this).on('keypress', function(evt){ var charCode = (evt.which) ? evt.which : evt.keyCode; // Textbox value var _value = event.srcElement.value; if (evt.keyCode < 48 || evt.keyCode > 57) { if (evt.keyCode != 46) { //숫자와 . 만 입력가능하도록함 $(this).val(_value.replace(/[\ㄱ-ㅎ ㅏ-ㅣ 가-힣]/g, '')); return false; } } // 소수점(.)이 두번 이상 나오지 못하게 var _pattern0 = /^\d*[.]\d*$/; // 현재 value값에 소수점(.) 이 있으면 . 입력불가 if (_pattern0.test(_value)) { if (charCode == 46) { return false; } } // ㅊ var _pattern1 = /^\d{3}$/; // 현재 value값이 2자리 숫자이면 . 만 입력가능 // {숫자}의 값을 변경하면 자리수를 조정할 수 있다. if (_pattern1.test(_value)) { if (charCode != 46) { return false; } } // 소수점 둘째자리까지만 입력가능 var _pattern2 = /^\d*[.]\d{2}$/; // 현재 value값이 소수점 둘째짜리 숫자이면 더이상 입력 불가 // {숫자}의 값을 변경하면 자리수를 조정할 수 있다. if (_pattern2.test(_value)) { return false; } return true; }); $(this).on('keyup', function(evt){ $(this).val($(this).val().replace(/[\ㄱ-ㅎ ㅏ-ㅣ 가-힣]/g, '')); return true; }); } else if ($(this).attr('data-type').toLowerCase() === 'decimal5') { $(this).on('keypress', function(evt){ var charCode = (evt.which) ? evt.which : evt.keyCode; // Textbox value var _value = event.srcElement.value; if (evt.keyCode < 48 || evt.keyCode > 57) { if (evt.keyCode != 46) { //숫자와 . 만 입력가능하도록함 $(this).val(_value.replace(/[\ㄱ-ㅎ ㅏ-ㅣ 가-힣]/g, '')); return false; } } // 소수점(.)이 두번 이상 나오지 못하게 var _pattern0 = /^\d*[.]\d*$/; // 현재 value값에 소수점(.) 이 있으면 . 입력불가 if (_pattern0.test(_value)) { if (charCode == 46) { return false; } } // ㅊ var _pattern1 = /^\d{10}$/; // 현재 value값이 10자리 숫자이면 . 만 입력가능 // {숫자}의 값을 변경하면 자리수를 조정할 수 있다. if (_pattern1.test(_value)) { if (charCode != 46) { return false; } } // 소수점 다섯째자리까지만 입력가능 var _pattern2 = /^\d*[.]\d{10}$/; // 현재 value값이 소수점 10자리 숫자이면 더이상 입력 불가 // {숫자}의 값을 변경하면 자리수를 조정할 수 있다. if (_pattern2.test(_value)) { return false; } return true; }); $(this).on('keyup', function(evt){ $(this).val($(this).val().replace(/[\ㄱ-ㅎ ㅏ-ㅣ 가-힣]/g, '')); return true; }); } else if ($(this).attr('data-type').toLowerCase() === 'decimal10') { $(this).on('keypress', function(evt){ var charCode = (evt.which) ? evt.which : evt.keyCode; // Textbox value var _value = event.srcElement.value; if (evt.keyCode < 48 || evt.keyCode > 57) { if (evt.keyCode != 46) { //숫자와 . 만 입력가능하도록함 $(this).val(_value.replace(/[\ㄱ-ㅎ ㅏ-ㅣ 가-힣]/g, '')); return false; } } // 소수점(.)이 두번 이상 나오지 못하게 var _pattern0 = /^\d*[.]\d*$/; // 현재 value값에 소수점(.) 이 있으면 . 입력불가 if (_pattern0.test(_value)) { if (charCode == 46) { return false; } } // 두자리 이하의 숫자만 입력가능 var _pattern1 = /^\d{10}$/; // 현재 value값이 1자리 숫자이면 . 만 입력가능 // {숫자}의 값을 변경하면 자리수를 조정할 수 있다. if (_pattern1.test(_value)) { if (charCode != 46) { return false; } } // 소수점 첫째자리까지만 입력가능 var _pattern2 = /^\d*[.]\d{1}$/; // 현재 value값이 소수점 첫째짜리 숫자이면 더이상 입력 불가 // {숫자}의 값을 변경하면 자리수를 조정할 수 있다. if (_pattern2.test(_value)) { return false; } return true; }); $(this).on('keyup', function(evt){ $(this).val($(this).val().replace(/[\ㄱ-ㅎ ㅏ-ㅣ 가-힣]/g, '')); return true; }); } else if ($(this).attr('data-type').toLowerCase() === 'decimal20') { $(this).on('keypress', function(evt){ var charCode = (evt.which) ? evt.which : evt.keyCode; // Textbox value var _value = event.srcElement.value; if (evt.keyCode < 48 || evt.keyCode > 57) { if (evt.keyCode != 46) { //숫자와 . 만 입력가능하도록함 $(this).val(_value.replace(/[\ㄱ-ㅎ ㅏ-ㅣ 가-힣]/g, '')); return false; } } // 소수점(.)이 두번 이상 나오지 못하게 var _pattern0 = /^\d*[.]\d*$/; // 현재 value값에 소수점(.) 이 있으면 . 입력불가 if (_pattern0.test(_value)) { if (charCode == 46) { return false; } } // 두자리 이하의 숫자만 입력가능 var _pattern1 = /^\d{20}$/; // 현재 value값이 20자리 숫자이면 . 만 입력가능 // {숫자}의 값을 변경하면 자리수를 조정할 수 있다. if (_pattern1.test(_value)) { if (charCode != 46) { return false; } } // 소수점 첫째자리까지만 입력가능 var _pattern2 = /^\d*[.]\d{5}$/; // 현재 value값이 소수점 첫째짜리 숫자이면 더이상 입력 불가 // {숫자}의 값을 변경하면 자리수를 조정할 수 있다. if (_pattern2.test(_value)) { return false; } return true; }); $(this).on('keyup', function(evt){ $(this).val($(this).val().replace(/[\ㄱ-ㅎ ㅏ-ㅣ 가-힣]/g, '')); return true; }); } else if ($(this).attr('data-type').toLowerCase() === 'char') { $(".char").on('keyup', function(event){ var regexp1 = /[0-9]|[ \[\]{}()<>?|`~!★@#$%^&*\-_+=,.;:\"'\\]/g; var v1 = $(this).val(); if (regexp1.test(v1)) { $(this).val(v1.replace(regexp1, '')); } }); } else if ($(this).attr('data-type').toLowerCase() === 'char_num') { $(".char_num").on('keyup', function(event){ var regexp = /[~!@\#$%^&*\()\-=+_★']/gi; var v = $(this).val(); if (regexp.test(v)) { $(this).val(v.replace(regexp, '')); } }); } else if ($(this).attr('data-type').toLowerCase() === 'cmpny_nm') { $(".cmpny_nm").on('keyup', function(event){ var regexp = /[~!@\#$%^&*\-=+_★']/gi; var v = $(this).val(); if (regexp.test(v)) { $(this).val(v.replace(regexp, '')); } }); } else if ($(this).attr('data-type').toLowerCase() === 'eng_char') { $(".eng_char").on('keyup', function(event){ if (!(event.keyCode >=37 && event.keyCode<=40)) { var inputVal = $(this).val(); $(this).val(inputVal.replace(/[^a-z]/gi,'')); } }); } else if ($(this).attr('data-type').toLowerCase() === 'decimal1') { $(this).on('keypress', function(evt){ var charCode = (evt.which) ? evt.which : evt.keyCode; // Textbox value var _value = event.srcElement.value; if (evt.keyCode < 48 || evt.keyCode > 57) { if (evt.keyCode != 46) { //숫자와 . 만 입력가능하도록함 $(this).val(_value.replace(/[\ㄱ-ㅎ ㅏ-ㅣ 가-힣]/g, '')); return false; } } // 소수점(.)이 두번 이상 나오지 못하게 var _pattern0 = /^\d*[.]\d*$/; // 현재 value값에 소수점(.) 이 있으면 . 입력불가 if (_pattern0.test(_value)) { if (charCode == 46) { return false; } } // 두자리 이하의 숫자만 입력가능 var _pattern1 = /^\d{3}$/; // 현재 value값이 1자리 숫자이면 . 만 입력가능 // {숫자}의 값을 변경하면 자리수를 조정할 수 있다. if (_pattern1.test(_value)) { if (charCode != 46) { return false; } } // 소수점 첫째자리까지만 입력가능 var _pattern2 = /^\d*[.]\d{1}$/; // 현재 value값이 소수점 첫째짜리 숫자이면 더이상 입력 불가 // {숫자}의 값을 변경하면 자리수를 조정할 수 있다. if (_pattern2.test(_value)) { return false; } return true; }); $(this).on('keyup', function(evt){ $(this).val($(this).val().replace(/[\ㄱ-ㅎ ㅏ-ㅣ 가-힣]/g, '')); return true; }); } } }); } //글자수 체크 function chkWord(obj, maxByte) { var strValue = obj.value; var strLength = strValue.length; var totalByte = 0; var length = 0; var oneChar = ""; var str2 = ""; for (var i = 0; i 4) { totalByte += 2; } else { totalByte++; } // 입력한 문자 길이보다 넘치면 잘라내기 위해 저장 if (totalByte <= maxByte) { length = i + 1; } } // 글자수 화면에 출력 $("#textLengthCheck").html("(" + totalByte + "/ 60 Byte)"); // 넘어가는 글자는 자르기 if (totalByte > maxByte) { alert("입력 할 수 있는 최대 길이는 " + maxByte + " Byte 입니다."); str2 = strValue.substr(0, length); obj.value = str2; chkWord(obj, 4000); } } //평가하기 function goEvaluate() { if ($("input:radio[name$=evlGrd]:checked").length == 0) { alert("만족도를 선택해주세요."); return false; } var param = $(document.frm).serialize(); sendAjax( "/cmmn/ajaxMenuStfdgEvl.do", param, function(data) { if (data.result == "success") { alert("평가가 등록되었습니다."); window.location.reload(); } else { alert("오류발생. 다시 시도해주세요."); } }); } /* ******************************************************************************** * 전화번호 숫자만 입력가능하게 세팅 * *******************************************************************************/ function onlyNumberCheck(this_s) { var temp_value = this_s.value.toString(); temp_value = temp_value.replace(/[^0-9]/g,''); this_s.value = temp_value; }