/* var hidden, state, visibilityChange, _this = this; var no = document.location.pathname.split('/').pop(); if (document.hidden != null) { hidden = "hidden"; visibilityChange = "visibilitychange"; state = "visibilityState"; } else if (document.mozHidden != null) { hidden = "mozHidden"; visibilityChange = "mozvisibilitychange"; state = "mozVisibilityState"; } else if (document.msHidden != null) { hidden = "msHidden"; visibilityChange = "msvisibilitychange"; state = "msVisibilityState"; } else if (document.webkitHidden != null) { hidden = "webkitHidden"; visibilityChange = "webkitvisibilitychange"; state = "webkitVisibilityState"; } this.d = new Date(); this.new_d = new Date(); setInterval(chkFocus, 1000); var isSend = true; function chkFocus() { if (document.hasFocus() === false) { _this.new_d = new Date(); var time_spent = Math.round((_this.new_d - _this.d) / 1000); if(isSend) $.post("./"+ no +"/spent", "spent="+time_spent); isSend = false; // _this.d = new Date(); } else { if(!isSend) _this.d = new Date(); isSend = true; } } document.addEventListener(visibilityChange, (function(e) { if (document[state] === 'visible') { _this.d = new Date(); } else if (document[hidden]) { _this.new_d = new Date(); var time_spent = Math.round((_this.new_d - _this.d) / 1000); $.post("./"+ no +"/spent", "spent="+time_spent); } }), false); window.onbeforeunload = function() { if(!no.match(/[0-9]+/)) return; _this.new_d = new Date(); var time_spent = Math.round((_this.new_d - _this.d) / 1000); $.post("./"+ no +"/spent", "spent="+time_spent); }; */ //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(); }); //개인정보 자세히보기 $('.btn-agreement').bind('click', 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 [type="tel"]').bind('keyup', function(e) { this.value = this.value.replace(/[^0-9]+/, ''); }); }); function SubmitClass(frm, required) { var no = document.location.pathname.split('/').pop(); this.frm = frm; this.required = required; this.getType = function(name) { var tagName = $('[name="'+name+'"]', this.frm).prop('tagName').toLowerCase(); if(tagName == 'input') return $('[name="'+name+'"]', this.frm).attr('type'); else return tagName; } this.valid = function(name, desc) { 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 'text' : case 'textarea' : if(!$('[name="'+ name +'"]', this.frm).val()) { alert(desc +' 항목을 입력해주세요.'); $('[name="'+ name +'"]', this.frm).focus(); 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; } switch(name) { case 'name' : 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('올바른 연락처를 입력해주세요.'); $('[name="phone"]', this.frm).focus(); return false; } else if($('[name="phone"]').data('isauth') != 'undefined' && $('[name="phone"]').data('isauth') == false) { alert('휴대폰 인증을 진행해주세요.'); return false; } break; } return true; } this.submit = function() { $.ajax({ type: "POST", url: "./"+ no +"/proc", data: "ajax=true&"+$(frm).serialize(), 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(response.result) { if(response.data) url += '/'+response.data; location.href = url; } else { if(response.data == 'thanks') { location.href = url; return; } $('input[type="submit"], input[type="image"]').prop('disabled', false); alert(response.msg); } } }); } }