Files
event/common.js
T
2025-03-05 14:10:06 +09:00

252 lines
15 KiB
JavaScript

//IE closest 패치
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 (Element.prototype.matches.call(el, s)) return el;
el = el.parentElement || el.parentNode;
} while (el !== null && el.nodeType === 1);
return null;
};
}
$(document).ready(function () {
//back버튼
$(".btn_back").bind("click", function (e) {
e.preventDefault();
history.back();
});
//개인정보 자세히보기
$('#wrap').on("click", ".btn-agreement", function (e) {
e.preventDefault();
e.stopPropagation();
$(".agreement").slideToggle();
});
$(".agreement").bind("click", function (e) {
e.stopPropagation();
});
$("#wrap").bind("click", function (e) {
e.stopPropagation();
if ($(".agreement").is(":visible")) $(".agreement").slideUp();
});
// tel은 PC에서도 숫자만 입력
$('form').on("keyup", '[type="tel"]', function (e) {
this.value = this.value.replace(/[^0-9]+/, "");
});
//굿닥 랜딩 체크 후 푸터 변경
let goodocInput = document.querySelector('input[name="event_id"]');
let imgTag = document.querySelector('img[src*="footer.jpg"]');
if (goodocInput !== null && imgTag) {
imgTag.src = "//static.hotblood.co.kr/event/gooddoc/footer.jpg";
}
});
function SubmitClass(frm, required, options) {
this.options = {
language: "ko", //언어설정
abuse: false, //비속어 설정
valid: true, //유효성체크 설정
chkDigit: false, //010체크 설정
};
var abuse_words = ["개새끼", "개쌔끼", "개때끼", "개세끼", "개색끼", "개색히", "개쉑히", "개쉑", "개새꺄", "개쌔꺄", "개때꺄", "개색꺄", "개새", "개쉐", "십새", "십쉐", "씹새꺄", "씹쌔꺄", "씹때꺄", "씹색꺄", "씹새", "씹쉐", "병신새끼", "좆나게", "좃나게", "존나게", "젖나게", "젓나게", "전나게", "졸라게", "절라게", "좆나", "좃나", "존나", "젖나", "젓나", "전나", "졸라", "절라", "좆만한", "좃만한", "존만한", "젖만한", "젓만한", "좆마난", "좃마난", "존마난", "젖마난", "젓마난", "좆같은", "좃같은", "젖같은", "젓같은", "좆가튼", "좃가튼,", "젖가튼", "젓가튼", "조까튼", "저까튼", "좆빠지게", "좃빠지게", "젖빠지게", "젓빠지게", "조빠지게", "저빠지게", "좆밥", "좃밥", "좁밥", "젖밥", "젓밥", "접밥", "조빱", "저빱", "좆까", "좃까", "젖까", "젓까", "조까", "저까", "좆도", "좃도", "젖도", "조또", "씨댕", "씨뎅", "씹탱", "씹창", "씨발", "씨벌", "씨불", "씨이발", "씨이벌", "씨이불", "씹팔", "씹펄", "씹풀", "씹빡", "띠발", "띠벌", "띠불", "띠방", "띠바", "띠붕", "띠밸", "띠팔", "띠펄", "시벌", "시팔", "시이발", "시이벌", "시이불", "시이바", "시이붕", "시이부", "시이밸", "시이팔", "시이펄", "시이풀", "시이빡", "쒸발", "쒸벌", "쒸불", "쒸방", "쒸바", "쒸빡", "쒸이발", "쒸이벌", "쒸이불", "쒸이방", "쒸이바", "쉬발", "쉬벌", "쉬불", "쉬방", "쉬바", "쉬붕", "쉬부", "쉬밸", "쉬팔", "쉬풀", "쉬빡", "쓰발", "쓰벌", "쓰불", "쓰방", "쓰바", "쓰붕", "쓰부", "쓰밸", "쓰팔", "쓰펄", "쓰풀", "쓰빡", "쓰이발", "쓰이벌", "쓰이불", "까대", "까댄", "니미럴", "니미랄", "니미롤", "니미룰", "니미를", "제기럴", "제기랄", "제기롤", "제기룰", "니기미", "닝기미", "니주가리", "니미", "쌍년", "썅년", "쌍넌", "썅넌", "쌍뇬", "썅뇬", "개년", "개넌", "개뇬", "쌍놈", "썅놈", "쌍넘", "썅넘", "개놈", "개넘", "썅", "지랄", "지럴", "지롤", "쥐랄", "쥐럴", "쥐롤", "병신", "븅신", "빙신", "등신", "벼엉신", "빙시", "미친놈", "미친넘", "미췬놈", "미췬넘", "미친년", "미친뇬", "미친넌", "미췬년", "미췬뇬", "미췬넌", "개자식", "싸가지", "싹아지", "염병", "옘병", "니애미", "니에미", "c팔", "개같은년", "c8", "개같은놈", "씝할", "새끠", "세끠", "쉐끼", "새뤼", "쉐끼", "쇄끼", "쉐끼", "쇅끼", "씨키", "세키", "ㅅ ㅐ끼", "ㅅ ㅐㄲ ㅣ", "ㅅ ㅐ ㄲ ㅣ", "", "시발", "싀발", "스발", "스벌", "쉬이발", "쓰으방", "쉬빨", "쉬팍", "스벌", "씁알", "씝알", "씹알", "씝탱", "뵹신", "붕신", "븅싄", "뵹싄", "병싄", "존니", "죶나", "죨라", "죶니", "죤니", "죤나", "죶마난", "죶같은", "죶가튼", "죶빠지게", "즤랄", "질알", "미친", "애자", "ㅇㅐ자", "ㅇㅐㅈㅏ", "니엠", "엠창", "믜친", "뮈친", "ㅁl친", "섹히", "색기", "색히", "병쉰", "뱅신", "뱅싄", "뱅쉰", "븽신", "병쉰", "애쟈", "또라이", "떠라이", "ㅆl팔", "ㅆl발", "ㄴ ㅣㅁ ㅣ", "ㄴlㅁl", "늬미", "니믜", "쓰팍", "씌팔", "씌발", "싀팔", "ㅆ1팔", "ㅆ1발", "씹8", "샹년", "상년", "씹년", "씹뇬", "챵녀", "챵년", "창뇬", "챵뇬", "잡뇬", "잡년", "계같은뇬", "개같은뇬", "개섹", "죳나", "니앰", "앰창", "애미", "씹땡", "씹넘", "씝년", "ㄱH뇬", "샹놈", "샹늠", "개색", "개자슥", "게세끼", "씨입년", "씨입뇬", "씌벌", "싀방", "싀봉", "씌방", "ㅆI발", "ㅅ1발", "ㅆl발", "ㅆi발", "ㄴ1ㅇH미", "쥐랄", "ㅈl랄", "뷩신", "뱅신", "세꺄", "미칀", "호로자슥애", "젠장", "제길", "젱장", "우라질", "제긜", "젝일", "바부", "듕신", "새키", "씨벨", "시벵", "시펄", "씹쌔", "등쉬", "늬귀미", "조낸", "씨밝", "개세", "개샛끼", "개쉬끼", "개세끼", "개쓰렉기", "쉬키", "색갸", "세캬", "식키", "시키", "새캬", "듕시나", "똘아이", "똘추", "ㅁ1친", "ㅁ1친년", "뮈췬", "뮈친년", "미췐", "미췐년", "미튄", "및친", "벵신", "병시나", "병시", "찐따", "뷩시", "새뀌", "색귀", "셥새", "쉽년", "쉽새", "시바라", "쉽팔", "시밝", "시벨", "십샹", "ㅆ│발", "쒸뱅", "씌파", "씌빨", "씌밸", "씌바", "쒸박", "씨뱅", "c발", "g랄", "zl랄", "凸,미워", "뉘미", "뉘귀미", "^^ㅣ발", "ㄱ ㅐ", "ㅅ ㅐㄲ ㅣ", "ㅅ ㅐㄱㄱㅣ", "ㅅ ㅐ끼", "ㄱH", "ㅅ ㅔㄲ ㅣ", "ㅅHㄲI", "ㅅH끼", "ㅅ ㅔㄲ", "ㅅ1팔", "ㅆ ㅣ불", "ㅆㅂ", "ㅅㅂ", "씹발", "개`", "개쇄", "씨`발", "색끼", "섀캬", "샹뇬", "쇄키", "싯팔", "개씹", "섀끼", "쌔기", "ㅁ ㅣ친", "ㅁl친", "망할", "씨박", "씨벵", "씨빨", "씨파", "씨브랄", "씨팍", "씹빨", "씹세", "씹쌍", "ㅈ1랄", "ㅆ ㅣ발", "ㅆ ㅣ방", "ㅆ ㅣ팔", "ㅆ ㅣ벌", "ㅆ!발", "ㅆㅣ발", "쒸벨", "등쉰", "똘츄", "ㄴ ㅣ미", "ㄴ ㅣㄱ ㅣ", "ㄴ1ㄱ1", "ㄴ1ㅁ1", "ㄴ1미", "ㄴ1 ㅇ ㅐ", "ㄴ1 애", "니M창", "니OH미", "뷩신", "뷩쉰", "븅쉰", "빙쉰", "시팍", "시빨", "시파", "시밸", "쉽뇬", "개련", "ㅆ1밸", "ㅆ1벨", "호구", "씌벨", "애좌", "씻팔", "ㅆ1바", "개샛히애", "색휘", "싯끼", "섹키", "쓉년", "쓉창", "호로자식애", "씌뱅", "씨팰", "씌댕", "씌뎅", "씹쒜", "엠병", "앰병", "후레자식애", "후레자슥애", "호로년", "후레년", "씹빠", "뻑큐", "빠큐", "ㅃr큐", "개섀끼", "개샹련", "니뮈럴", "늬기미", "앰창", "엠창", "쓰박", "씨부랄", "씹샹", "연병", "시밟", "뒤져", "짜져", "꺼져", "잡놈", "뒤질래", "디질래", "아갈", "닥쳐", "허접", "흐접", "찌질이", "낙태아", "다방년", "호모", "엿먹어", "개자지", "개보지", "애비자지", "애미보지", "자지", "잠지", "보지", "섹스", "공알", "좆", "좇", "좃", "젖", "빨통", "딸딸이", "딸따리", "빠구리", "빠굴이", "빠굴", "빠순이", "빠수니", "사까시", "불알", "부랄", "번섹", "번쌕", "번쎅", "떡치기", "후장", "섹스", "색스", "쎅스", "쌕스", "쉑스", "섹쓰", "색쓰", "쎅쓰", "쌕쓰", "쉑쓰", "창녀", "창년", "갈보", "개싑창", "죷", "죳", "좆나", "좇나", "존나", "죤나", "욧나", "쟈지", "죠또", "죵나", "자쥣", "죠빠", "쫓까", "죡쳐", "보쥐", "쟘쥐", "꼬추", "꼬츄", "강간", "걸레년", "곧휴", "쟘지", "ㅈ ㅏㅈ ㅣ", "ㅈ ㅏ지", "자쥐", "잠쥐", "쟘쥐", "유두", "유방", "차앙년", "창ㄴ ㅕ", "창뇬", "촹년", "촹뇬", "폰섹", "ㅃㅏ구리", "ㅃr굴", "고츄", "붕알", "폰색", "죠까", "sex", "fuck", "fuk", "porno", "dildo", "pussy", "shit", "bitch", "anal", "fetish", "gay", "lesbien", "bastard", "cunt", "damn", "asshole", "귀두", "뽕알"];
if (typeof options == "undefined") options = this.options;
else {
for (var i in this.options)
if (typeof options[i] == "undefined") options[i] = this.options[i];
}
if (typeof required != undefined || typeof required != null)
this.required = required;
var no = document.location.pathname.split("/").pop();
this.frm = frm;
this.getType = function (name) {
try {
var tagName = $('[name="' + name + '"]', this.frm).prop("tagName").toLowerCase();
if (tagName == "input")
return $('[name="' + name + '"]', this.frm).attr("type");
else return tagName;
} catch (e) {
console.error('필수값으로 설정한 "' +name + '"은(는) 존재하지 않는 필드 입니다.');
return false;
}
};
this.valid = function (name, desc) {
if (options.valid === false) return true; //valid option 을 사용하지 않을 경우 무조건 통과
switch (this.getType(name)) {
case "radio":
case "checkbox":
if (!$('[name="' + name + '"]:checked', this.frm).val()) {
alert(desc + " 항목을 선택해주세요.");
$('[name="' + name + '"]', this.frm)[0].closest("div").scrollIntoView({behavior: "smooth", block: "start"});
$('[name="' + name + '"]:eq(0)', this.frm).focus();
return false;
}
break;
case "hidden":
case "text":
case "textarea":
if (!$('[name="' + name + '"]', this.frm).val()) {
alert(desc + " 항목을 입력해주세요.");
$('[name="' + name + '"]', this.frm).focus();
return false;
}
break;
case "file":
if (!$('[name="' + name + '"]', this.frm).val()) {
alert(desc + " 항목은 필수입니다.");
$('[name="' + name + '"]', this.frm).trigger("click");
return false;
}
break;
case "select":
if (!$('[name="' + name + '"] option:selected', this.frm).val()) {
alert(desc + " 항목을 입력해주세요.");
$('[name="' + name + '"]', this.frm).focus();
return false;
}
break;
case "tel":
if (!$('[name="' + name + '"]', this.frm).val()) {
alert(desc + " 항목을 입력해주세요.");
$('[name="' + name + '"]', this.frm).focus();
return false;
} else if (!$('[name="' + name + '"]', this.frm).val().match(/[\d]+/)) {
alert(desc + " 항목은 숫자만 입력할 수 있습니다.");
$('[name="' + name + '"]', this.frm).focus();
return false;
}
break;
case false:
return false;
break;
}
switch (name) {
case "name":
if (options.language == "ko" && options.abuse == true) {
//한국어 모드이고, abuse 기능이 켜져있을 때
$('[name="name"]', this.frm).val($('[name="name"]', this.frm).val().replace(/\s/g, "")); //띄어쓰기 없애기
if (
!Hangul.isHangulAll($('[name="name"]', this.frm).val())
) {
//완성형 한글 체크
alert("올바른 이름을 입력해주세요. : 101");
$('[name="name"]', this.frm).val("").focus();
return false;
} else if ($('[name="name"]', this.frm).val().length >= 5) {
alert("올바른 이름을 입력해주세요. : 102");
$('[name="name"]', this.frm).focus();
return false;
} else if ($.inArray($('[name="name"]', this.frm).val(),abuse_words) >= 0) {
alert("올바른 이름을 입력해주세요. : 103");
$('[name="name"]', this.frm).val("").focus();
return false;
}
}
if ($('[name="name"]', this.frm).val().length < 2) {
alert("올바른 이름을 입력해주세요.");
$('[name="name"]', this.frm).focus();
return false;
}
break;
case "age":
if ($('[name="age"]', this.frm).val().length < 1) {
alert("올바른 나이를 입력해주세요.");
$('[name="age"]', this.frm).focus();
return false;
} else if (
$('[name="age"]', this.frm).val() &&
$('[name="age"]', this.frm).data("min") &&
$('[name="age"]', this.frm).data("min") >
$('[name="age"]', this.frm).val()
) {
alert($('[name="age"]', this.frm).data("min") +"세 이하는 신청할 수 없습니다.");
$('[name="age"]', this.frm).focus();
return false;
} else if (
$('[name="age"]', this.frm).val() &&
$('[name="age"]', this.frm).data("max") &&
$('[name="age"]', this.frm).data("max") <
$('[name="age"]', this.frm).val()
) {
alert($('[name="age"]', this.frm).data("max") +"세 이상은 신청할 수 없습니다.");
$('[name="age"]', this.frm).focus();
return false;
}
break;
case "phone":
if ($('[name="phone"]', this.frm).val().length < 11) {
alert("올바른 연락처를 입력해주세요. : 101");
$('[name="phone"]', this.frm).focus();
return false;
} else if (
$('[name="phone"]').data("isauth") != "undefined" &&
$('[name="phone"]').data("isauth") == false
) {
alert("휴대폰 인증을 진행해주세요.");
return false;
}
if (options.chkDigit == true) {
var regPhone = /^010[2-9]{1}[0-9]{3}[0-9]{4}$/;
if (regPhone.test($('[name="phone"]', this.frm).val()) === false) {
alert("올바른 연락처를 입력해주세요. : 102");
$('[name="phone"]', this.frm).focus();
return false;
}
}
break;
}
return true;
};
this.submit = function (thanks, delay) {
if (typeof thanks == "undefined") thanks = true;
if (typeof delay == "undefined") delay = 0;
var t = [];
t = JSON.parse(localStorage.getItem("4119639092e62c55ea8be348e4d9260d")) || [];
if (t.length >= 10) {
t = [];
localStorage.setItem("4119639092e62c55ea8be348e4d9260d", JSON.stringify(t));
}
$.ajax({
type: "POST",
url: "./" + no + "/proc",
data: "ajax=true&" + $(frm).serialize() + '&local='+t,
dataType: "json",
cache: false,
success: function (response) {
if (!location.href.match(/^(local\.)?event\.hotblood\.co\.kr/))
var url = "./" + no + "/thanks";
else var url = "../" + no + "/thanks";
if (!thanks){
if (response.result) {
localStorage.setItem("eid", response.data);
return;
}
}
if (response.result) {
t.push(response.data);
localStorage.setItem("4119639092e62c55ea8be348e4d9260d", JSON.stringify(t));
if (response.data) url += "/" + response.data;
setTimeout(function() {
location.href = url;
}, delay);
} else {
if (response.data == "thanks") {
setTimeout(function() {
location.href = url;
}, delay);
return;
}
$('input[type="submit"], input[type="image"]').prop(
"disabled",
false
);
alert(response.msg);
}
},
});
};
}