/** * @constructor * @description ITSONE API * @author soonhyeong * @version 0.0.1 * @date 19. 01. 22 * @copyright 2015 Licensed under the MIT license. */ // 자바처럼 쓰기 위해 작성 String.format = function() { var s = arguments[0]; for (var i = 0; i < arguments.length - 1; i++) { var reg = new RegExp("\\{" + i + "\\}", "gm"); s = s.replace(reg, arguments[i + 1]); } return s; }; /* * 이용약관 동의 * 회원정보 변경 체크 * 제외 화면 리스 * */ var exceptionViewList = [ "agree.do" , "agree2.do" , "memModify.do" , "member.do" , "login.do" , "join05.do" ]; // replace All function replaceAll(str, searchStr, replaceStr) { return str.split(searchStr).join(replaceStr); } // 특수문자 변환 function convertSpecialCharacters(content) { var returnValue = content; returnValue = replaceAll(returnValue, "'", "'"); returnValue = replaceAll(returnValue, "&amp;", "&"); returnValue = replaceAll(returnValue, "&", "&"); returnValue = replaceAll(returnValue, "<", "<"); returnValue = replaceAll(returnValue, ">", ">"); returnValue = replaceAll(returnValue, """, "\""); return returnValue; } // 서버 통신 function mAjax(sUrl, sParams, fnSuccess) { var fnError = function(jqXHR, textStatus, errorThrown) { progressStop(); //alert("서버와의 통신에 오류가 있습니다. 잠시 후 다시 시도하여 주세요 -1"); }; if (fnSuccess != null) { setTimeout(function() { $.ajax({ "async" : true , "type" : "GET" , "url" : sUrl , "data" : encodeURI(sParams) , "cache" : false , "success" : fnSuccess , "error" : fnError , "dataType" : "json" , "contentType" : "application/json; charset=utf-8" }); }, 200); } } function mAjax2(sUrl, sParams, fnSuccess) { var fnError = function(jqXHR, textStatus, errorThrown) { progressStop(); //alert("서버와의 통신에 오류가 있습니다. 잠시 후 다시 시도하여 주세요 -2"); }; if (fnSuccess != null) { setTimeout(function() { $.ajax({ "async" : true , "type" : "POST" , "url" : sUrl , "data" : sParams , "cache" : false , "success" : function(data) { var obj = JSON.parse(data) fnSuccess(obj); } , "error" : fnError }); }, 200); } } function mPostAjax(sUrl, formData, fnSuccess) { var fnError = function(jqXHR, textStatus, errorThrown) { progressStop(); alert("서버와의 통신에 오류가 있습니다. 잠시 후 다시 시도하여 주세요 -3"); }; if (fnSuccess != null) { setTimeout(function() { $.ajax({ type : 'post', url : sUrl, data : formData, processData : false, contentType : false, success : function(data) { fnSuccess(JSON.parse(data)); }, error : fnError }); }, 200); } } //서버 통신 function mAjax3(sUrl, params, method, proYn, fnSuccess) { if(proYn) { progressStart(); } var fnError = function(jqXHR, textStatus, errorThrown) { progressStop(); alert("서버와의 통신에 오류가 있습니다. 잠시 후 다시 시도하여 주세요 -4"); if(method == "POST") { var sParams = ""; var i = 0; for(var key in params) { if(i == 0) { sParams += String.format("{0}={1}", key, params[key]); } else { sParams += String.format("&{0}={1}", key, params[key]); } i++; } } }; if(method == "GET") { var sParams = ""; var i = 0; for(var key in params) { if(i == 0) { sParams += String.format("{0}={1}", key, params[key]); } else { sParams += String.format("&{0}={1}", key, params[key]); } i++; } setTimeout(function() { $.ajax({ "async" : true , "type" : "GET" , "url" : sUrl , "data" : encodeURI(sParams) , "cache" : false , "success" : function(data) { progressStop(); fnSuccess(data); } , "error" : fnError , "dataType" : "json" , "contentType" : "application/json; charset=utf-8" }); }, 300); } else if(method == "POST") { setTimeout(function() { $.ajax({ "async" : true , "type" : "POST" , "url" : sUrl , "data" : params , "cache" : false , "success" : function(data) { progressStop(); var obj = JSON.parse(data); fnSuccess(obj); } , "error" : fnError }); }, 300); } } function mFileAjax(sUrl, formData, fnSuccess) { var fnError = function(jqXHR, textStatus, errorThrown) { progressStop(); alert("서버와의 통신에 오류가 있습니다. 잠시 후 다시 시도하여 주세요 -5"); }; if (fnSuccess != null) { $.ajax({ type : 'post', url : sUrl, data : formData, processData : false, contentType : false, success : function(data) { fnSuccess(JSON.parse(data)); }, error : fnError }); } } function numberWithCommas(n) { if(n == null || n == "") { return "0"; } else { return n.toString().replace(/\B(?=(\d{3})+(?!\d))/g, ","); } } /* * 캘린더 생성 * */ function getCalendar(year, month) { var returnObj = []; var lastDay = new Date(year, Number(month), 0).dd(); for(day=1; day<=lastDay; day++) { var tmpObj; var d = new Date(year, Number(month) - 1, day); tmpObj = { "date" : d.yyyymmdd(), "day" : d.dd(), "week" : d.weeknum() + 1 } returnObj.push(tmpObj); } return returnObj; } /* 날짜 포맷 * ex) new Date().yyyymmdd() * */ function getDateFormat(sDate) { return new Date(sDate.substring(0, 4) + "-" + sDate.substring(4, 6) + "-" + sDate.substring(6, 8)) } function addDate(sDate, value) { var day = Number(sDate.substring(6, 8)) + value; return new Date(sDate.substring(0, 4), Number(sDate.substring(4, 6)) - 1, day); } function addMonth(sDate, value) { var month = Number(sDate.substring(4, 6)) + (value - 1); return new Date(sDate.substring(0, 4), month, 1); } function addMonth2(sDate, value) { var month = Number(sDate.substring(4, 6)) + (value - 1); return new Date(sDate.substring(0, 4), month, Number(sDate.substring(6, 8))); } Date.prototype.yyyymmddhhmm = function() { var mm = this.getMonth() + 1; var dd = this.getDate(); var hh = this.getHours(); var mi = this.getMinutes(); return [this.getFullYear(), (mm>9 ? '' : '0') + mm, (dd>9 ? '' : '0') + dd, (hh>9 ? '' : '0') + hh, (mi>9 ? '' : '0') + mi].join(''); }; Date.prototype.yyyymmdd = function() { var mm = this.getMonth() + 1; var dd = this.getDate(); return [this.getFullYear(), (mm>9 ? '' : '0') + mm, (dd>9 ? '' : '0') + dd].join(''); }; Date.prototype.yyyymm = function() { var mm = this.getMonth() + 1; return [this.getFullYear(), (mm>9 ? '' : '0') + mm].join(''); }; Date.prototype.yyyy = function() { return this.getFullYear(); }; Date.prototype.mm = function() { var mm = this.getMonth() + 1; return (mm>9 ? '' : '0') + mm; }; Date.prototype.dd = function() { var dd = this.getDate(); return (dd>9 ? '' : '0') + dd; }; Date.prototype.week = function() { var week = ['일', '월', '화', '수', '목', '금', '토']; var dayOfWeek = week[this.getDay()]; return dayOfWeek; }; Date.prototype.hh = function() { var hh = this.getHours(); return (hh>9 ? '' : '0') + hh; }; Date.prototype.weeknum = function() { return this.getDay(); }; /* 폰 번호 포멧 */ function phoneNumberFormat(phone, div) { return phone.substring(0, 3) + div + phone.substring(3, 7) + div + phone.substring(7, 11); } /* 프로그래스 모달 */ function progressStart() { $.preloader.start({ modal: true, src : "../../images/sprites.png" }); } function progressStart2() { $.preloader.start({ modal: true, src : "../images/sprites.png" }); } function progressStart3(src) { $.preloader.start({ modal: true, src : src }); } function progressStop() { if ($.preloader != null) { $.preloader.stop(); } } var setCookie = function(name, value, day) { var exdate = new Date(); exdate.setDate(exdate.getDate() + day); var cookie_value = escape(value) + '; expires=' + exdate.toUTCString() + ";path=/"; document.cookie = name + '=' + cookie_value; }; var getCookie = function(name) { var x, y; var val = document.cookie.split(';'); for (var i = 0; i < val.length; i++) { x = val[i].substr(0, val[i].indexOf('=')); y = val[i].substr(val[i].indexOf('=') + 1); x = x.replace(/^\s+|\s+$/g, ''); if (x == name) { return unescape(y); } } }; function delCookie(name) { document.cookie = name + '=; expires=Thu, 01 Jan 1999 00:00:10 GMT;path=/'; } /** * 파일명에서 확장자명 추출 * @param filename 파일명 * @returns _fileExt 확장자명 */ function getExtensionOfFilename(filename) { var _fileLen = filename.length; /** * lastIndexOf('.') * 뒤에서부터 '.'의 위치를 찾기위한 함수 * 검색 문자의 위치를 반환한다. * 파일 이름에 '.'이 포함되는 경우가 있기 때문에 lastIndexOf() 사용 */ var _lastDot = filename.lastIndexOf('.'); // 확장자 명만 추출한 후 소문자로 변경 var _fileExt = filename.substring(_lastDot + 1, _fileLen).toLowerCase(); return _fileExt; } function initCompanyComboBox(selector, coDiv, callback, allYn) { //console.log(coDiv); var data = globals.coDiv.coList; var value = globals.coDiv.coName; var superDiv = ""; //console.log(data); $(selector).empty(); if(allYn != null && allYn == "Y") { $(selector).append(""); } if(msId == "" || superIdYn == "") { for(i=0; i" + value[data[i]] + ""); } } else { for(i=0; i" + value[data[i]] + ""); } } } if(allYn != null && allYn == "Y") { $(selector).val(""); } else { $(selector).val(coDiv); if (superIdYn == 'Y') $(selector).val(superDiv); } if(callback != null) { callback($(selector).val()); $(selector).on("change", function() { callback($(selector).val()); }); } // unsetCompanyForComboBox(selector); } function initCompanyComboBox2(selector, coDiv, callback) { var data = globals.coDiv.coList; var value = globals.coDiv.coName; $(selector).empty(); $(selector).append(""); for(i=0; i" + value[data[i]] + ""); } } $(selector).val(coDiv); if(callback != null) { callback($(selector).val()); $(selector).on("change", function() { callback($(selector).val()); }); } } function initCompanyComboBox3(selector, coDiv, callback) { var data = globals.coDiv.coList; var value = globals.coDiv.coName; var superDiv = ""; $(selector).empty(); $(selector).append(""); if(msId == "" || superIdYn == "") { for(i=0; i" + value[data[i]] + ""); } } } else { for(i=0; i" + value[data[i]] + ""); } } } } $(selector).val(coDiv); if (superIdYn == 'Y') $(selector).val(superDiv); if(callback != null) { callback($(selector).val()); $(selector).on("change", function() { callback($(selector).val()); }); } } function unsetCompanyForComboBox(selector){ var date = new Date(); var date2 = addMonth(date.yyyymmdd(), 1); var coDiv = "04"; var sUrl = "/clubd/reservation/getCalendar.do"; var sParams1, sParams2 = ""; var data1; sParams1 += String.format("&coDiv={0}", coDiv); sParams1 += String.format("&selYM={0}", date.yyyy() + date.mm()); sParams2 += String.format("&coDiv={0}", coDiv); sParams2 += String.format("&selYM={0}", date2.yyyy() + date2.mm()); mAjax(sUrl, sParams1, function(data1) { if(data1.resultCode == "0000") { mAjax(sUrl, sParams2, function(data2) { if(data2.resultCode == "0000") { var flag = false; data1.rows.forEach(function(item){ if(item.BK_TEAM >= 1){ //console.log("Day "+ item.DAYNUM); flag = true; } }); data2.rows.forEach(function(item){ if(item.BK_TEAM >= 1){ //console.log("Day "+ item.DAYNUM); flag = true; } }); if(!flag){ $(selector + " option:last").remove(); } } }); } }); } function getUserAgent(){ var varUA = navigator.userAgent.toLowerCase(); var ua; if (varUA.indexOf("android") > -1) { ua = "Android"; } else if (varUA.indexOf("iphone") > -1 || varUA.indexOf("ipad") > -1 || varUA.indexOf("ipod") > -1 || varUA.indexOf("iPhone") > -1 || varUA.indexOf("iPad") > -1 || varUA.indexOf("Apple") > -1) { ua = "iPhone"; } else { ua = "etc"; } return ua; } function isMobileBrowser() { var userAgent = navigator.userAgent.toLowerCase(); // 1. Android WebView 구분 (wv 포함 여부) if (userAgent.includes('wv') || userAgent.includes('version/')) { return false; // Android WebView로 간주 } // 2. iOS WebView 구분 (Safari 명시가 없는 경우) if (userAgent.includes('iphone') || userAgent.includes('ipad')) { if (!userAgent.includes('safari')) { return false; // iOS WebView로 간주 } } // 3. 나머지는 모바일 브라우저로 간주 return true; } function mobilecheck() { var check = false; var isTablet = /(ipad|tablet|(android(?!.*mobile))|(windows(?!.*phone)(.*touch))|kindle|playbook|silk|(puffin(?!.*(IP|AP|WP))))/.test(navigator.userAgent.toLowerCase()); if(isTablet){ if(navigator.userAgent.toLowerCase().indexOf("windows") > 0){ check = false; }else{ check = true; } } (function(a){ if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera); return check; }; function getLoginUrl(coDiv) { var loginUrl = ""; if(coDiv == "01") { loginUrl = "/boeun/member/login.do"; } else if(coDiv == "02") { loginUrl = "/songnisan/member/login.do"; } else if(coDiv == "03") { loginUrl = "/geumgang/member/login.do"; } else if(coDiv == "05") { loginUrl = "/geochang/member/login.do"; } else if(coDiv == "06") { loginUrl = "/theplayers/member/login.do"; } return loginUrl; } //오늘 날짜 반환 function getToDay(separator){ var today = new Date(); var year = today.getFullYear(); // 년도 var month = today.getMonth() + 1; // 월 var date = today.getDate(); // 날짜 var day = today.getDay(); // 요일 var realMonth; if (month < 10) { realMonth = "0" + month; } else { realMonth = month; } var realDate; if (date < 10) { realDate = "0" + date; } else { realDate = date; } return year + separator + realMonth + separator + realDate; } //내일 날짜 반환 function getToTomorrow(separator){ var today = new Date(); var year = today.getFullYear(); // 년도 var month = today.getMonth() + 1; // 월 var date = today.getDate() + 1; // 날짜 var day = today.getDay(); // 요일 var realMonth; if (month < 10) { realMonth = "0" + month; } else { realMonth = month; } var realDate; if (date < 10) { realDate = "0" + date; } else { realDate = date; } return year + separator + realMonth + separator + realDate; } //날짜 문자열로 반환 function getStringDt(date, separator){ var strtYear = date.getFullYear(); // 년도 var strtMonth = date.getMonth() + 1; // 월 var strtDate = date.getDate(); // 날짜 var realMonth; if (strtMonth < 10) { realMonth = "0" + strtMonth; } else { realMonth = strtMonth; } var realDate; if (strtDate < 10) { realDate = "0" + strtDate; } else { realDate = strtDate; } return strtYear + separator + realMonth + separator + realDate; } //날짜 문자열로 반환 //separator 가 B 이면 년월일로 return function getStringDt2(date, separator){ // 파라미터 : 20230117 var year = date.substr(0, 4); var month = date.substr(4, 2); var day = date.substr(6); var returnDate = ""; if (separator == "B") { returnDate = year + "년 " + month + "월 " + day + "일"; } else { returnDate = year + separator + month + separator + day; } return returnDate; }