/**
* @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, "&", "&");
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;
}