1/* 2 * File : js.js 3 * Author : YONG 4 * 5 * ìµì¢ ìì ì¼ : 25/00/00 6 * 7 * SUMMARY: 8 * consult.js 9 */ 10 11// ======================= 12// ì íë²í¸ ì í¨ì± ê²ì¬ ì í¸ 13// ======================= 14const PhoneValidator = { 15 validPrefixes: { 16 mobile: ['010', '011', '016', '017', '018', '019'], 17 area2: ['02'], 18 area3: ['031', '032', '033', '041', '042', '043', '051', '052', '053', '054', '055', '061', '062', '063', '064'] 19 }, 20 21 getPrefix(phoneNum) { 22 return phoneNum.startsWith('02') ? phoneNum.slice(0, 2) : phoneNum.slice(0, 3); 23 }, 24 25 isValid(phoneNum) { 26 const prefix = this.getPrefix(phoneNum); 27 const len = phoneNum.length; 28 29 if (this.validPrefixes.mobile.includes(prefix)) { 30 return len === 11; 31 } 32 33 if (this.validPrefixes.area2.includes(prefix)) { 34 return len === 9 || len === 10; 35 } 36 37 if (this.validPrefixes.area3.includes(prefix)) { 38 return len === 10 || len === 11; 39 } 40 41 return false; 42 }, 43 44 filterInput($input) { 45 $input.on('input', function () { 46 this.value = this.value.replace(/[^0-9]/g, ''); 47 }); 48 } 49}; 50 51const InputFilter = { 52 // ì«ìë§ íì© (ex. ëì´ ì ë ¥, ì«ì íë ë±) 53 allowOnlyNumbers($input) { 54 $input.on('input', function () { 55 this.value = this.value.replace(/[^0-9]/g, ''); 56 }); 57 }, 58 59 // í¹ì문ì ì ê±° (ex. 문ìë´ì© textarea) 60 removeSpecialChars($input) { 61 $input.on('input', function () { 62 this.value = this.value.replace(/[<>"'&/]/g, ''); 63 }); 64 } 65}; 66 67// ======================= 68// ì íë²í¸ ì ë ¥ íí°ë§ ì ì© 69// ======================= 70$(document).ready(function () { 71 72 // ì íë²í¸ íí° 73 PhoneValidator.filterInput($('#consultantPhone')); 74 75 // ì«ìë§ ì ë ¥ íë ìì (ëì´ íë ë±) 76 InputFilter.allowOnlyNumbers($('#age')); 77 78 // 문ìì¬í í¹ì문ì ì ê±° 79 InputFilter.removeSpecialChars($('#consultTxt')); 80 81}); 82 83// ======================= 84// ìë´ì ì² í¨ì 85// ======================= 86var isRunning = false; // ì°íë°©ì§ 87 88function OnSubmit(el) { 89 if (isRunning == true) { 90 alert("ì²ë¦¬ì¤ì ëë¤. ì ìí ë¤ì ìëí´ì£¼ì¸ì"); 91 return; 92 } 93 94 var siteName = $('body').data('sitename') || ""; 95 var siteLink = $('body').data('sitelink') || ""; 96 97 // ìí íì ì ë ì²ë¦¬ (ë¼ëì¤ ë²í¼ 기ì¤, ìì íê² ì²ë¦¬) 98 var csType = ""; 99 var $csEl = $('.cs__list li.active'); 100 101 if ($csEl.length > 0) { 102 csType = $csEl.data('value').trim(); 103 } 104 105 var type = ""; 106 var $typeEl = $('#csType input:radio[name="type"]:checked'); 107 if ($typeEl.length > 0) { 108 type = $typeEl.val().trim(); 109 } 110 111 var gender = ""; 112 var $genderEl = $('#csGender input:radio[name="gender"]:checked'); 113 if ($genderEl.length > 0) { 114 gender = $genderEl.val().trim(); 115 } 116 117 var insuType = ""; 118 var $selectEl = $('#insuSelect'); 119 120 if ($selectEl.length > 0) { 121 insuType = $selectEl.val().trim(); 122 } 123 124 var userNm = $('#consultantNm').val(); 125 var phoneNum = $('#consultantPhone').val(); 126 var weekNum = $('#age').val(); 127 var memo = $('#consultTxt').val(); 128 129 130 if (userNm == "") { 131 alert("ì´ë¦ì ì ë ¥í´ì£¼ì¸ì!"); 132 return; 133 } 134 135 if (!PhoneValidator.isValid(phoneNum)) { 136 alert("ì íë²í¸ë¥¼ íì¸í´ì£¼ì¸ì."); 137 return; 138 } 139 140 if (weekNum == "") { 141 alert("ìë ìì¼ì ì ë ¥í´ì£¼ì¸ì ^^"); 142 return; 143 } 144 145 if (memo == "") { 146 memo = `[${siteName}]${csType ? `[${csType}]` : ""}${insuType ? `[${insuType}]` : ""}${type ? `[${type}]` : ""}${gender ? `[${gender}]` : ""}[ìë´ë¬¸ì][${siteLink}]`; 147 } else { 148 memo = `[${siteName}]${csType ? `[${csType}]` : ""}${insuType ? `[${insuType}]` : ""}${type ? `[${type}]` : ""}${gender ? `[${gender}]` : ""}${memo}[${siteLink}]`; 149 } 150 151 if (!$('#checkBox').is(":checked")) { 152 alert('ê°ì¸ì ë³´ ìì§íì© ëì를 ì²´í¬í´ 주ì¸ì'); 153 return; 154 } 155 156 $('#CONSULTANT_NM').val(userNm); // ìë´ì ì²ì
157 $('#CONSULTANT_PHONE').val(fn_hypenPhone(phoneNum)); // ì°ë½ì² 158 $('#INSURANT_AGE').val(weekNum); // ìì 주ì/ëì´ 159 $('#CONSULTANT_TXT').val(memo); // ìë´ë´ì© 160 161 if ($('#CONSULTANT_URL').val() == undefined || $('#CONSULTANT_URL').val() == null || $('#CONSULTANT_URL').val() == "") { 162 $('#CONSULTANT_URL').val(document.referrer); 163 } 164 165 // ======================= 166 // hp & time 167 // ======================= 168 const honeypot = document.querySelector('#consultFrm input[name^="hp_"]'); 169 const lastSubmit = localStorage.getItem('lastSubmit') || 0; 170 const now = Date.now(); 171 172 if (honeypot && honeypot.value.trim() !== '') { 173 alert("ì±ê³µì ì¼ë¡ 문ìì ì²íììµëë¤"); 174 return; 175 } 176 177 if (now - lastSubmit < 5000) { 178 alert("ì ì í ë¤ì ìëí´ ì£¼ì¸ì."); 179 return; 180 } 181 182 183 giMirrorConsultToGcp(); 184 185 $.ajax({ 186 type: "POST", 187 async: true, 188 url: "https://yebox.kr/globalinsu/consultSite/consult/send.do", 189 dataType: "json", 190 data: $('#consultFrm').serialize(), 191 beforeSend: function () { 192 $.blockUI(); 193 isRunning = true; 194 }, 195 success: function (result) { 196 $.unblockUI(); 197 if (result.success) { 198 $('#REF_SEQ').val(result.item.lastSeq); 199 $.getScript('https://yebox.kr/js/ref/ref.js'); 200 201 //ë¤ì´ë² cpc ë¡ê·¸ë¶ì 241016 202 if (!wcs_add) var wcs_add = {}; 203 wcs_add["wa"] = "s_dccb388cd17"; 204 var _nasa = {}; 205 if (window.wcs) { 206 _nasa["cnv"] = wcs.cnv("4", "1"); 207 wcs_do(_nasa); 208 } 209 210 alert('ì±ê³µì ì¼ë¡ 문ìì ì²íììµëë¤.'); 211 localStorage.setItem('lastSubmit', now); // time 212 location.reload(); 213 } else { 214 console.log("ì¤í¨"); 215 } 216 }, 217 error: function () { 218 $.unblockUI(); 219 alert("ì¤ë¥ê° ë°ìíììµëë¤.\nê´ë¦¬ììê² ë¬¸ìíì¬ ì£¼ì¸ì."); 220 }, 221 complete: function () { 222 $.unblockUI(); 223 isRunning = false; 224 $('.cs').find('input').val(""); 225 } 226 }); 227} 228 229function gfn_onlyNumber(obj, maxNum) { 230 $(obj).keyup(function () { 231 $(this).val($(this).val().replace(/[^0-9]/g, "")); 232 }); 233 var thisValue = $(obj).val(); 234 if (thisValue.length > maxNum) { 235 $(obj).val(thisValue.substr(0, maxNum)); 236 } 237} 238function fn_hypenPhone(str) { 239 str = str.replace(/[^0-9]/g, ''); 240 var tmp = ''; 241 if (str.substr(0, 2) == '02') { 242 if (str.length < 4) { 243 } else if (str.length < 6) { 244 tmp += str.substr(0, 2); 245 tmp += '-'; 246 tmp += str.substr(2); 247 } else if (str.length < 10) { 248 tmp += str.substr(0, 2); 249 tmp += '-'; 250 tmp += str.substr(2, 3); 251 tmp += '-'; 252 tmp += str.substr(5, 4); 253 } else { 254 tmp += str.substr(0, 2); 255 tmp += '-'; 256 tmp += str.substr(2, 4); 257 tmp += '-'; 258 tmp += str.substr(6, 4); 259 } 260 } else { 261 if (str.length < 4) { 262 } else if (str.length < 7) { 263 tmp += str.substr(0, 3); 264 tmp += '-'; 265 tmp += str.substr(3); 266 } else if (str.length < 11) { 267 tmp += str.substr(0, 3); 268 tmp += '-'; 269 tmp += str.substr(3, 3); 270 tmp += '-'; 271 tmp += str.substr(6); 272 } else { 273 tmp += str.substr(0, 3); 274 tmp += '-'; 275 tmp += str.substr(3, 4); 276 tmp += '-'; 277 tmp += str.substr(7); 278 } 279 } 280 // ì ì²´ê¸¸ì´ 13ì ì´ê³¼íë©´ ìì 281 if (tmp.length > 13) { 282 tmp = tmp.substr(0, 13); 283 } 284 return tmp; 285} 286 287// input ì ê·ì 288function characterCheck(obj) { 289 // íì©íê³ ì¶ì í¹ì문ìê° ìë¤ë©´ ì¬ê¸°ì ìì íë©´ ë¨ 290 var regExp = /[ \{\}\[\]\/?.,;:|\)*~`!^\-_+â¼<>@\#$%&\'\"\\\(\=0-9]/gi; 291 292 if (regExp.test(obj.value)) { 293 294 // alert("í¹ì문ìë ì ë ¥íì¤ ì ììµëë¤."); 295 obj.value = obj.value.substring(0, obj.value.length - 1); // ì ë ¥í í¹ì문ì íì리 ì§ì 296 297 } 298} 299 300// Queue GCloud independently; the legacy yebox request runs asynchronously. 301function giMirrorConsultToGcp() { 302 var endpoint = "https://gi-collector-receiver-632764787203.asia-northeast3.run.app/globalinsu/consultSite/consult/send.do"; 303 var body = $('#consultFrm').serialize(); 304 try { 305 if (navigator.sendBeacon) { 306 var payload = new Blob([body], { type: 'application/x-www-form-urlencoded' }); 307 if (navigator.sendBeacon(endpoint, payload)) return; 308 } 309 if (window.fetch) { 310 fetch(endpoint, { method: 'POST', body: body, keepalive: true, 311 headers: { 'Content-Type': 'application/x-www-form-urlencoded' } 312 }).catch(function () {}); 313 } 314 } catch (e) { 315 // Keep the legacy form flow intact if the GCloud send cannot be queued. 316 } 317}
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.