1 2<!DOCTYPE html> 3<html lang="ko"> 4<head> 5 <meta charset="UTF-8"> 6 <meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=no"> 7 <meta http-equiv="X-UA-Compatible" content="IE=Edge, Chrome=1"> 8 9 <link rel="apple-touch-icon" sizes="57x57" href="/apple-icon-57x57.png"> 10 <link rel="apple-touch-icon" sizes="60x60" href="/apple-icon-60x60.png"> 11 <link rel="apple-touch-icon" sizes="72x72" href="/apple-icon-72x72.png"> 12 <link rel="apple-touch-icon" sizes="76x76" href="/apple-icon-76x76.png"> 13 <link rel="apple-touch-icon" sizes="114x114" href="/apple-icon-114x114.png"> 14 <link rel="apple-touch-icon" sizes="120x120" href="/appleicon-120x120.png"> 15 <link rel="apple-touch-icon" sizes="144x144" href="/appleicon-144x144.png"> 16 <link rel="apple-touch-icon" sizes="152x152" href="/appleicon-152x152.png"> 17 <link rel="apple-touch-icon" sizes="180x180" href="/appleicon-180x180.png"> 18 <link rel="icon" href="/favicon.ico" sizes="any"> 19 <link rel="icon" type="image/png" sizes="192x192" href="/androidicon-192x192.png"> 20 <link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png"> 21 <link rel="icon" type="image/png" sizes="96x96" href="/favicon-96x96.png">
22 <link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png"> 23 <link rel="manifest" href="/manifest.json"> 24 <meta name="msapplication-TileColor" content="#ffffff"> 25 <meta name="msapplication-TileImage" content="/ms-icon-144x144.png"> 26 <meta name="theme-color" content="#ffffff"> 27 28 <link href="/css/fontawesome/css/fontawesome.css" rel="stylesheet" /> 29 <link href="/css/fontawesome/css/regular.css" rel="stylesheet" /> 30 <link rel="stylesheet" type="text/css" href="/css/jquery-ui.css?version=20261001-1"> 31 <link rel="stylesheet" href="/js/swiper/swiper.min.css?version=20261001-1"/> 32 <link rel="stylesheet" href="/js/mCustomScrollbar/jquery.mCustomScrollbar.css?version=20261001-1"/> 33 <link rel="stylesheet" href="/css/tqc.css?version=20261001-1"/> 34
34<script type="text/javascript" src="/js/jquery-1.12.4.min.js?version=20261001-1"></script>
34 35
35<script src="/js/jquery-ui.min.js?version=20261001-1"></script>
35 36
36<script type="text/javascript" src="/js/swiper/swiper.min.js?version=20261001-1"></script>
36 37
37<script type="text/javascript" src="/js/mCustomScrollbar/jquery.mCustomScrollbar.js?version=20261001-1"></script>
37 38 <!--link rel="stylesheet" href="https://maxst.icons8.com/vue-static/landings/line-awesome/line-awesome/1.3.0/css/line-awesome.min.css?version=20261001-1" /--> 39
39<script type="text/javascript" src="/js/common.js?version=20261001-1"></script>
39 40 <title>ë¡íìº í | ì¤í ìº í</title> 41 <meta name="description" content="ë¡íìº íìì ì êµ ì¤í ìº í ì¤ìê° ìì½, ìì¬ì íì¸, 리뷰 íì¸ê¹ì§ í ë²ì ì´ì©íì¸ì."> 42 <meta name="keywords" content="ë¡íìº í, ìº íì¥ ìì½, ìº í ìì½, ìº íì¥ ì¶ì², ìº í íë«í¼"> 43 <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 44 <meta name="viewport" content="width=device-width, initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"> 45 <meta http-equiv="X-UA-Compatible" content="IE=edge"> 46 47 48 <meta name="robots" content="index, follow"> 49 <meta name="NaverBot" content="index, follow"/> 50 <meta name="Yeti" content="index, follow"/> 51 52 53 <meta name="author" content="habb communication Co., Ltd." /> 54 <meta name="apple-mobile-web-app-capable" content="yes"> 55 <meta name="apple-mobile-web-app-status-bar-style" content="black"> 56 <meta property="al:android:url" content="https://play.google.com/store/apps/details?id=com.habb.thankq"> 57 <meta property="al:android:app_name" content="ìº í 1ë± íë«í¼ ë¡íìº í"> 58 <meta property="al:android:package" content="com.habb.thankq"> 59 <meta property="al:web:url" content="https://m.thankqcamping.com/"> 60 <meta property="al:ios:url" content="https://itunes.apple.com/kr/app/id1527733782?mt=8"> 61 <meta property="al:ios:app_store_id" content="1527733782"> 62 <meta property="al:ios:app_name" content="ìº í 1ë± íë«í¼ ë¡íìº í"> 63 64 <meta name="naver-site-verification" content="523728cff4137740c25d193223588981ab353b03" /> 65 66 <link rel="canonical" href="https://m.thankqcamping.com/"> 67 <meta name="twitter:card" content="summary_large_image"> 68 <meta name="twitter:title" content="ìº í 1ë± íë«í¼ ë¡íìº í"> 69 <meta name="twitter:description" content="êµë´ ì¤í ìº í ê¸ë¨í ì¹´ë¼ë° ë± ì´ë²¤í¸ ìº íì¬íìíì ì§ê¸ ë°ë¡ ì¤ìê°ì¼ë¡ ìì½íì¸ì."> 70 <meta name="twitter:image" content="https://m.thankqcamping.com/images/thankq_main.png"> 71 <meta name="twitter:domain" content="https://m.thankqcamping.com/"> 72
72<script type="text/javascript" src="//developers.kakao.com/sdk/js/kakao.min.js"></script>
72 73
73<script type="text/javascript" src="//dapi.kakao.com/v2/maps/sdk.js?appkey=27aa85bb599bbd835014e7a7dd9b7207&libraries=services"></script>
73 74
74<script type="text/javascript" src="/js/lazyload.js?version=20261001-1"></script>
74 75
75<script type="text/javascript" src="/js/jquery.mCustomScrollbar.js"></script>
75 76
76<script type="text/javascript" src="/js/jquery.rwdImageMaps.min.js"></script>
76 77 <!--script type="text/javascript" src="/js/fontawesome/all.min.js"></script--> 78
78<script language="JavaScript"> 79 // HTTPíë¡í ì½ HTTPSë¡ ë³ê²½ 80 81 if (document.location.protocol == 'http:') { 82 if (document.location.href.search("/talk/write") < 0 && document.location.href.search("/used/write") < 0) { 83 document.location.href = document.location.href.replace('http:', 'https:'); 84 } 85 } 86 87 var app_yn = "" 88 var app_os = "" 89 var app_ver = "0" 90 var varUA = navigator.userAgent.toLowerCase(); //userAgent ê° ì»ê¸° 91 var mobileApp = varUA.indexOf("/app/") > -1 ? true : false; 92 if (mobileApp==true && varUA.indexOf('android') > -1) { 93 app_yn = "Y" 94 app_os = "android" 95 app_ver = window.Android.getAppVer() 96 } else if (mobileApp==true && (varUA.indexOf("ios") > -1||varUA.indexOf("iphone") > -1||varUA.indexOf("ipad") > -1||varUA.indexOf("ipod") > -1 )) { 97 app_yn = "Y" 98 app_os = "ios"; 99 if (varUA.indexOf("appver") > -1) { 100 app_ver = varUA.split('appver')[1].substr(0,5).replaceAll('.','') 101 } 102 } 103 /* 104 if (app_yn=="Y" && app_ver!="0" && ("/resv/list.hbb"=="/main.hbb" || "/resv/list.hbb"=="/my/main.hbb")) { 105 $.ajax({ 106 type: "POST", 107 url: "/app/ver_sav.hbb", 108 data:{app_ver:app_ver}, 109 success: onSuccess, 110 error: onError 111 }); 112 function onSuccess(dataobj) {} 113 function onError() {} 114 } 115 */ 116 117 var app_mem = "" 118 function goUrl(url,pop_yn,pop_loc) { 119 //if(url.indexOf('https://m.thankqcamping.com')>-1) url=replace(url,'https://m.thankqcamping.com','') 120 121 var fullUrl = ((url.indexOf('http') > -1) ? '' : $('#site_url').html()) + url; 122 var isInstagramUrl = 123 fullUrl.indexOf('instagram.com') > -1 || 124 fullUrl.indexOf('www.instagram.com') > -1 || 125 fullUrl.indexOf('instagr.am') > -1; 126 127 if(app_yn=='Y') { 128 129 // ì¸ì¤í URLì´ë©´ ë¤ì´í°ë¸ ì± í¸ì¶ 130 if (isInstagramUrl) { 131 if (app_os == "android") { 132 if (typeof Android !== "undefined" && typeof Android.openInstagram === "function") { 133 Android.openInstagram(fullUrl); 134 return; 135 } 136 } else { 137 goIosAp('openInstagram', fullUrl); 138 return; 139 } 140 } 141 142 if(app_ver!="") { 143 //if(parseInt(app_ver) > 18) { 144 if (pop_yn=='N') { 145 location.href = fullUrl; 146 } else { 147 if (app_os == "android" && parseInt(app_ver) < 49) { 148 location.href = ((pop_loc!='') ? pop_loc+'://' : '') + fullUrl; 149 } else { 150 winOpen(fullUrl,1,'íì ì°¨ë¨ê¸°ë¥ì´ ì¤ì ëì´ ììµëë¤.\nì°¨ë¨í´ì í ë¤ì ì´ì©í´ 주ììì¤.'); 151 } 152 } 153 /* 154 if (app_os == "android") { 155 location.href = ((pop_loc!='')?pop_loc+'://':'') + ((url.indexOf('http')>-1)?'':$('#site_url').html()) + url 156 } else { 157 winOpen($('#site_url').html() + url,1,'íì ì°¨ë¨ê¸°ë¥ì´ ì¤ì ëì´ ììµëë¤.\nì°¨ë¨í´ì í ë¤ì ì´ì©í´ 주ììì¤.') 158 } 159 */ 160 //} else { 161 // if(confirm('ì ê· ì´í ì ë°ì´í¸ë¥¼ í´ì£¼ì기 ë°ëëë¤.\nì´ì ë²ì ì¬ì©ì ìë¹ì¤ ì´ì©ì ì¤ë¥ê° ë°ìí ì ììµëë¤.\në§ì½, ì ë°ì´í¸íìë ì´ ë©ìì§ê° ëì¤ì ë¤ë©´ í°ì¤ì > ì í리ì¼ì´ì > ë¡íìº í > ì ì¥ê³µê°ìì ë°ì´í° ë° ìºì를 ìì í ë¤ì ì´ì©í´ ë³´ì기 ë°ëëë¤.')) { 162 // location.href = 'market://details?id=com.habb.thankq' 163 // } else { 164 // if(pop_yn=='Y') { 165 // winOpen($('#site_url').html() + url,1,'íì ì°¨ë¨ê¸°ë¥ì´ ì¤ì ëì´ ììµëë¤.\nì°¨ë¨í´ì í ë¤ì ì´ì©í´ 주ììì¤.') 166 // } else { 167 // location.href = $('#site_url').html() + url 168 // } 169 // } 170 //} 171 } else { 172 location.href = fullUrl; 173 /* 174 if (app_os == "android") { 175 location.href = ((pop_loc!='')?pop_loc+'://':'') + ((url.indexOf('http')>-1)?'':$('#site_url').html()) + url 176 } else { 177 winOpen($('#site_url').html() + url,1,'íì ì°¨ë¨ê¸°ë¥ì´ ì¤ì ëì´ ììµëë¤.\nì°¨ë¨í´ì í ë¤ì ì´ì©í´ 주ììì¤.') 178 } 179 */ 180 } 181 } else { 182 if(pop_yn=='Y') { 183 //if(pop_loc=="pop") { 184 winOpen(url,1,'íì ì°¨ë¨ê¸°ë¥ì´ ì¤ì ëì´ ììµëë¤.\nì°¨ë¨í´ì í ë¤ì ì´ì©í´ 주ììì¤.'); 185 //} else { 186 // location.href = url 187 //} 188 } else { 189 location.href = url; 190 } 191 } 192 } 193 function goShopUrl(url,pop_yn,pop_loc) { 194 if(app_yn=='Y') { 195 if(app_ver!="") { 196 //if(parseInt(app_ver) > 18) { 197 if (app_os == "android" && parseInt(app_ver) < 49) { 198 location.href = ((pop_loc!='')?pop_loc+'://':'') + ((url.indexOf('http')>-1)?'':$('#shop_url').html()) + url 199 } else { 200 winOpen(((url.indexOf('http')>-1)?'':$('#shop_url').html()) + url,1,'íì ì°¨ë¨ê¸°ë¥ì´ ì¤ì ëì´ ììµëë¤.\nì°¨ë¨í´ì í ë¤ì ì´ì©í´ 주ììì¤.') 201 } 202 //} else { 203 // if(confirm('ì ê· ì´í ì ë°ì´í¸ë¥¼ í´ì£¼ì기 ë°ëëë¤.\nì´ì ë²ì ì¬ì©ì ìë¹ì¤ ì´ì©ì ì¤ë¥ê° ë°ìí ì ììµëë¤.\në§ì½, ì ë°ì´í¸íìë ì´ ë©ìì§ê° ëì¤ì ë¤ë©´ í°ì¤ì > ì í리ì¼ì´ì > ë¡íìº í > ì ì¥ê³µê°ìì ë°ì´í° ë° ìºì를 ìì í ë¤ì ì´ì©í´ ë³´ì기 ë°ëëë¤.')) { 204 // location.href = 'market://details?id=com.habb.thankq' 205 // } else { 206 // if(pop_yn=='Y') { 207 // winOpen(((url.indexOf('http')>-1)?'':$('#shop_url').html()) + url,1,'íì ì°¨ë¨ê¸°ë¥ì´ ì¤ì ëì´ ììµëë¤.\nì°¨ë¨í´ì í ë¤ì ì´ì©í´ 주ììì¤.') 208 // } else { 209 // location.href = ((url.indexOf('http')>-1)?'':$('#shop_url').html()) + url 210 // } 211 // } 212 //} 213 } else { 214 if (app_os == "android" && parseInt(app_ver) < 49) { 215 location.href = ((pop_loc!='')?pop_loc+'://':'') + ((url.indexOf('http')>-1)?'':$('#shop_url').html()) + url 216 } else { 217 winOpen($('#shop_url').html() + url,1,'íì ì°¨ë¨ê¸°ë¥ì´ ì¤ì ëì´ ììµëë¤.\nì°¨ë¨í´ì í ë¤ì ì´ì©í´ 주ììì¤.') 218 } 219 } 220 } else { 221 url = ((url.indexOf('http')>-1)?'':$('#shop_url').html()) + url 222 if(pop_yn=='Y') { 223 //if(pop_loc=="pop") { 224 winOpen(url,1,'íì ì°¨ë¨ê¸°ë¥ì´ ì¤ì ëì´ ììµëë¤.\nì°¨ë¨í´ì í ë¤ì ì´ì©í´ 주ììì¤.') 225 //} else { 226 // location.href = url 227 //} 228 } else { 229 location.href = url 230 } 231 } 232 } 233 function goResAppUrl(url,app_yn,app_os) { 234 if (app_yn=="Y") { 235 if (app_os=="android" && parseInt(app_ver) < 49) { 236 location.href = url 237 } else { 238 winOpen(url,1,'íì ì°¨ë¨ê¸°ë¥ì´ ì¤ì ëì´ ììµëë¤.\nì°¨ë¨í´ì í ë¤ì ì´ì©í´ 주ììì¤.') 239 } 240 } else { 241 winOpen(url,1,'íì ì°¨ë¨ê¸°ë¥ì´ ì¤ì ëì´ ììµëë¤.\nì°¨ë¨í´ì í ë¤ì ì´ì©í´ 주ììì¤.') 242 } 243 } 244 function appPopReload(pop_loc) { 245 if(parseInt(app_ver) >= 23 && pop_loc!='') { 246 appPopReloadAp() 247 //window.Android.popReload(pop_loc); 248 } else { 249 appPopReloadAp() 250 } 251 } 252 253 //ì±ë¦¬ë¡ë 254 function appPopReloadAp() { 255 if(app_os=="android") { 256 window.Android.pop_reload(); 257 } else { 258 goIosAp('pop_reload','') 259 } 260 } 261 262 //ìº íì¥ ìì¸ë³´ê¸° 263 function cback(cseq) { 264 goUrl('/resv/view.hbb?cseq='+cseq,'Y','pop') 265 } 266 //ìº íì¥ ìì¸ë³´ê¸° 267 function goCampView(cseq,res_dt) { 268 goUrl('/resv/view.hbb?cseq='+cseq+'&res_dt='+res_dt,'N','pop') 269 } 270 271 //ìº íì¥ ì¤ìê°ìì½ 272 function goRes() { 273 var frm = document.campForm 274 var campseq = frm.cseq.value 275 var res_dt = frm.res_dt.value 276 var res_edt = frm.res_edt.value 277 var region = frm.region.value 278 var site_tp = frm.site_tp.value 279 var tema = frm.tema.value 280 var keyword = frm.keyword.value 281 var disc_yn = frm.disc_yn.value 282 var camp_tp = frm.camp_tp.value 283 var page = frm.page_num.value 284 var reseventseq = frm.reseventseq.value 285 var couponId = frm.couponId.value 286 var ser_res_days = frm.res_days.value 287 288 $.ajax({
289 type: "POST", 290 url: "/resv/axCampResVerUrl.hbb", 291 data:{campseq:campseq}, 292 success: onSuccess, 293 error: onError 294 }); 295 function onSuccess(dataobj) { 296 var url = dataobj+"/thankQRes.hbb?campseq="+campseq+"&res_dt="+res_dt+"&res_edt="+res_edt+"&ser_res_days="+ser_res_days+"&thankq_app="+app_yn+"&thankq_yn=Y&reseventseq="+reseventseq+"&partnseq=&partnmemseq=&site_tp="+site_tp+"&couponId="+couponId; 297 if (app_yn!="Y") url += "&res_path=HM" 298 goResAppUrl(url,app_yn,app_os) 299 } 300 function onError() {} 301 } 302 303 //ìº íì¥ ì¤ìê°ìì½ 304 function goResStep(campseq, campsiteseq, res_dt) { 305 $.ajax({ 306 type: "POST", 307 url: "/resv/axCampResVerUrl.hbb", 308 data:{campseq:campseq}, 309 success: onSuccess, 310 error: onError 311 }); 312 function onSuccess(dataobj) { 313 var url = dataobj+"/thankQRes.hbb?campseq="+campseq+"&campsiteseq="+campsiteseq+"&res_dt="+res_dt+"&thankq_app="+app_yn+"&thankq_yn=Y" 314 if (app_yn!="Y") url += "&res_path=HM" 315 goResAppUrl(url,app_yn,app_os) 316 } 317 function onError() {} 318 } 319 320 //ìº íì¥ ì¤ìê°ìì½ 321 function goResStepDays(campseq, campsiteseq, res_dt, res_edt, res_days) { 322 //ìº íì¥ ì¤ìê°ìì½ 323 var frm = document.form 324 var temporary_yn = frm.temporary_yn.value 325 var wg_pass = frm.wg_pass.value 326 if (frm.betatest_yn.value=='Y') { 327 var rfrm = document.resform 328 $.ajax({ 329 type: "POST", 330 url: "/booking/axCampResUrl.hbb", 331 data:{campseq:campseq,campsiteseq:campsiteseq,res_dt:res_dt,res_edt:res_edt,res_days:res_days}, 332 success: onSuccess, 333 error: onError 334 }); 335 function onSuccess(dataobj) { 336 var url = dataobj.split('?')[0] 337 var res_path = dataobj.split('?')[1] 338 if (res_path=="") res_path = (app_yn=="Y")?"MO":"HM" 339 var enter_path = dataobj.split('?')[2] 340 $('#resform').empty() 341 $('#resform').append("<input type='hidden' name='campseq' value='"+campseq+"'>") 342 $('#resform').append("<input type='hidden' name='campsiteseq' value='"+campsiteseq+"'>") 343 $('#resform').append("<input type='hidden' name='res_dt' value='"+res_dt+"'>") 344 $('#resform').append("<input type='hidden' name='res_edt' value='"+res_edt+"'>") 345 $('#resform').append("<input type='hidden' name='res_days' value='"+res_days+"'>") 346 $('#resform').append("<input type='hidden' name='res_path' value='"+res_path+"'>") 347 $('#resform').append("<input type='hidden' name='enter_path' value='"+enter_path+"'>") 348 $('#resform').append("<input type='hidden' name='temporary_yn' value='"+temporary_yn+"'>") 349 $('#resform').append("<input type='hidden' name='wg_pass' value='"+wg_pass+"'>") 350 //goUrl(url+'?campseq='+campseq+'&campsiteseq='+campsiteseq+'&res_dt='+res_dt+'&res_edt='+res_edt+'&res_days='+res_days+'&res_path='+res_path+'&enter_path='+enter_path+'&temporary_yn='+temporary_yn+'&wg_pass='+wg_pass,'Y','pop3'); 351 document.resform.action = url 352 document.resform.submit() 353 } 354 function onError() {} 355 } else { 356 //ìº íì¥ ì¤ìê°ìì½ 357 var frm = document.form 358 $.ajax({ 359 type: "POST", 360 url: "/resv/axCampResUrl.hbb", 361 data:{campseq:campseq,campsiteseq,res_dt:res_dt,res_edt:res_edt,res_days:res_days}, 362 success: onSuccess, 363 error: onError 364 }); 365 function onSuccess(dataobj) { 366 // var url = dataobj + '&temporary_yn='+temporary_yn 367 // if (app_yn!="Y" && url.indexOf('res_path') < 0) url += "&res_path=HM" 368 // goResAppUrl(url,app_yn,app_os) 369 var url = dataobj.split('?')[0] 370 var res_path = dataobj.split('?')[1] 371 if (res_path=="") res_path = (app_yn=="Y")?"MO":"HM" 372 var enter_path = dataobj.split('?')[2] 373 var access_token = dataobj.split('?')[3] 374 var imseq = "" 375 if (access_token=="") imseq = dataobj.split('?')[4] 376 $('#resform').empty() 377 $('#resform').append("<input type='hidden' name='campseq' value='"+campseq+"'>") 378 $('#resform').append("<input type='hidden' name='campsiteseq' value='"+campsiteseq+"'>") 379 $('#resform').append("<input type='hidden' name='res_dt' value='"+res_dt+"'>") 380 $('#resform').append("<input type='hidden' name='res_edt' value='"+res_edt+"'>") 381 $('#resform').append("<input type='hidden' name='ser_res_days' value='"+res_days+"'>") 382 $('#resform').append("<input type='hidden' name='res_path' value='"+res_path+"'>") 383 $('#resform').append("<input type='hidden' name='enter_path' value='"+enter_path+"'>") 384 $('#resform').append("<input type='hidden' name='temporary_yn' value='"+temporary_yn+"'>") 385 $('#resform').append("<input type='hidden' name='access_token' value='"+access_token+"'>") 386 $('#resform').append("<input type='hidden' name='imseq' value='"+imseq+"'>") 387 $('#resform').append("<input type='hidden' name='thankq_yn' value='Y'>") 388 goUrl(url+'?campseq='+campseq+'&campsiteseq='+campsiteseq+'&res_dt='+res_dt+'&res_edt='+res_edt+'&ser_res_days='+res_days+'&res_path='+res_path+'&enter_path='+enter_path+'&temporary_yn='+temporary_yn+'&access_token='+access_token+'&imseq='+imseq+'&thankq_yn=Y','Y','pop3'); 389 //document.resform.action = url 390 //document.resform.submit() 391 } 392 function onError() {} 393 } 394 } 395 396 //ìº íì¥ ì¤ìê°ìì½ 397 function goResStepDaysNoti(campseq, campsiteseq, res_dt, res_edt, res_days) { 398 //ìº íì¥ ì¤ìê°ìì½ 399 var frm = document.form 400 var temporary_yn = frm.temporary_yn.value 401 if (frm.betatest_yn.value=='Y') { 402 $('#loading').show(); 403 var rfrm = document.resform 404 $.ajax({
405 type: "POST", 406 url: "/booking/axCampResUrl.hbb", 407 success: onSuccess, 408 error: onError 409 }); 410 function onSuccess(dataobj) { 411 var url = dataobj.split('?')[0] 412 var res_path = dataobj.split('?')[1] 413 if (res_path=="") res_path = (app_yn=="Y")?"MO":"HM" 414 var enter_path = dataobj.split('?')[2] 415 $('#resform').empty() 416 $('#resform').append("<input type='hidden' name='campseq' value='"+campseq+"'>") 417 $('#resform').append("<input type='hidden' name='campsiteseq' value='"+campsiteseq+"'>") 418 $('#resform').append("<input type='hidden' name='res_dt' value='"+res_dt+"'>") 419 $('#resform').append("<input type='hidden' name='res_edt' value='"+res_edt+"'>") 420 $('#resform').append("<input type='hidden' name='res_days' value='"+res_days+"'>") 421 $('#resform').append("<input type='hidden' name='res_path' value='"+res_path+"'>") 422 $('#resform').append("<input type='hidden' name='enter_path' value='"+enter_path+"'>") 423 $('#resform').append("<input type='hidden' name='temporary_yn' value='"+temporary_yn+"'>") 424 document.resform.action = url 425 document.resform.submit() 426 } 427 function onError() { $('#loading').hide(); } 428 } else { 429 //ìº íì¥ ì¤ìê°ìì½ 430 var frm = document.form 431 $.ajax({ 432 type: "POST", 433 url: "/resv/axCampResUrl.hbb", 434 data:{campseq:campseq,campsiteseq,res_dt:res_dt,res_edt:res_edt,res_days:res_days}, 435 success: onSuccess, 436 error: onError 437 }); 438 function onSuccess(dataobj) { 439 // var url = dataobj + '&temporary_yn='+temporary_yn 440 // if (app_yn!="Y" && url.indexOf('res_path') < 0) url += "&res_path=HM" 441 // goResAppUrl(url,app_yn,app_os) 442 var url = dataobj.split('?')[0] 443 var res_path = dataobj.split('?')[1] 444 if (res_path=="") res_path = (app_yn=="Y")?"MO":"HM" 445 var enter_path = dataobj.split('?')[2] 446 var access_token = dataobj.split('?')[3] 447 var imseq = "" 448 if (access_token=="") imseq = dataobj.split('?')[4] 449 $('#resform').empty() 450 $('#resform').append("<input type='hidden' name='campseq' value='"+campseq+"'>") 451 $('#resform').append("<input type='hidden' name='campsiteseq' value='"+campsiteseq+"'>") 452 $('#resform').append("<input type='hidden' name='res_dt' value='"+res_dt+"'>") 453 $('#resform').append("<input type='hidden' name='res_edt' value='"+res_edt+"'>") 454 $('#resform').append("<input type='hidden' name='ser_res_days' value='"+res_days+"'>") 455 $('#resform').append("<input type='hidden' name='res_path' value='"+res_path+"'>") 456 $('#resform').append("<input type='hidden' name='enter_path' value='"+enter_path+"'>") 457 $('#resform').append("<input type='hidden' name='temporary_yn' value='"+temporary_yn+"'>") 458 $('#resform').append("<input type='hidden' name='access_token' value='"+access_token+"'>") 459 $('#resform').append("<input type='hidden' name='imseq' value='"+imseq+"'>") 460 $('#resform').append("<input type='hidden' name='thankq_yn' value='Y'>") 461 document.resform.action = url 462 document.resform.submit() 463 } 464 function onError() {} 465 } 466 window.addEventListener('pageshow', function(e) { 467 $('#loading').hide(); 468 }); 469 window.addEventListener('popstate', function() { 470 $('#loading').hide(); 471 }); 472 } 473 474 //ìº íì¥ ìì½ë°ë¡ê°ê¸° 475 function goResDirect(seq,dt,days) { 476 var url = '/resv/view.hbb?cseq='+seq+(dt!=''&&typeof dt!='undefined'?'&res_dt='+dt:'')+(days!=''&&typeof days!='undefined'?'&ser_res_days='+days:'')+(dt
476!=''&&typeof dt!='undefined'?'#booking_dt':'') 477 location.href = url 478 /* 479 $.ajax({ 480 type: "POST", 481 url: "/resv/axCampResVerUrl.hbb", 482 data:{campseq:seq}, 483 success: onSuccess, 484 error: onError 485 }); 486 function onSuccess(dataobj) { 487 var url = dataobj+"/thankQRes.hbb?campseq="+seq+"&thankq_app="+app_yn+"&thankq_yn=Y&partnseq=&partnmemseq="; 488 if (app_yn!="Y") url += "&res_path=HM" 489 goResAppUrl(url,app_yn,app_os) 490 } 491 function onError() {} 492 */ 493 } 494 495 //ìº íì¥ ìì½ë°ë¡ê°ê¸° 496 function goResDirectDt(seq,dt,edt) { 497 var url = '/resv/view.hbb?cseq='+seq+(dt!=''&&typeof dt!='undefined'?'&res_dt='+dt:'')+(edt!=''&&typeof edt!='undefined'?'&res_edt='+edt:'')+(dt!=''&&typeof dt!='undefined'?'#booking_dt':'') 498 location.href = url 499 /* 500 $.ajax({ 501 type: "POST", 502 url: "/resv/axCampResVerUrl.hbb", 503 data:{campseq:seq}, 504 success: onSuccess, 505 error: onError 506 }); 507 function onSuccess(dataobj) { 508 var url = dataobj+"/thankQRes.hbb?campseq="+seq+"&thankq_app="+app_yn+"&thankq_yn=Y&partnseq=&partnmemseq="; 509 if (app_yn!="Y") url += "&res_path=HM" 510 goResAppUrl(url,app_yn,app_os) 511 } 512 function onError() {} 513 */ 514 } 515 516 //ìº íì¥ ìì½ë°ë¡ê°ê¸° 517 function goMemResDirect(seq) { 518 519 alert('íìë¡ê·¸ì¸í ìì½íì¤ ì ììµëë¤.'); 520 521 } 522 523 //ìº íì¥ ìì½ë°ë¡ê°ê¸° 524 function goResEmpty(seq,emptyseq) { 525 $.ajax({ 526 type: "POST", 527 url: "/resv/axCampResVerUrl.hbb", 528 data:{campseq:seq}, 529 success: onSuccess, 530 error: onError 531 }); 532 function onSuccess(dataobj) { 533 var url = dataobj+"/thankQRes.hbb?campseq="+seq+"&emptyseq="+emptyseq+"&thankq_app="+app_yn+"&thankq_yn=Y&partnseq=&partnmemseq="; 534 if (app_yn!="Y") url += "&res_path=HM" 535 goResAppUrl(url,app_yn,app_os) 536 } 537 function onError() {} 538 } 539 540 //ìº íì¥ ì¤ìê°ìì½ 541 function goResStep2(campseq, campsiteseq) { 542 var frm = document.form 543 var res_dt = frm.res_dt.value 544 var region = frm.region.value 545 var site_tp = frm.site_tp.value 546 var tema = frm.tema.value 547 var keyword = frm.keyword.value 548 var disc_yn = frm.disc_yn.value 549 var camp_tp = frm.camp_tp.value 550 var page = frm.page_num.value 551 var reseventseq = frm.reseventseq.value 552 var couponId = frm.couponId.value 553 var res_url = res_dt+"$"+region+"$"+site_tp+"$"+tema+"$"+keyword+"$"+disc_yn+"$"+camp_tp+"$"+page 554 555 $.ajax({ 556 type: "POST", 557 url: "/inc/axCampResVerUrl.hbb", 558 data:{campseq:campseq}, 559 success: onSuccess, 560 error: onError 561 }); 562 function onSuccess(dataobj) { 563 var url = dataobj+"/thankQRes.hbb?campseq="+campseq+"&campsiteseq="+campsiteseq+"&res_dt="+res_dt+"&thankq_app="+app_yn+"&thankq_yn=Y&reseventseq="+reseventseq+"&partnseq=&partnmemseq=&site_tp="+site_tp+"&couponId="+couponId; 564 if (app_yn!="Y") url += "&res_path=HM" 565 goResAppUrl(url,app_yn,app_os) 566 } 567 function onError() {} 568 } 569 570 //ìº íì¥ ì´ë²¤í¸ìì½ 571 function goResEvent(cseq) { 572 var frm = document.form 573 var campseq = cseq 574 var res_dt = frm.res_dt.value 575 var region = frm.region.value 576 var site_tp = frm.site_tp.value 577 var tema = frm.tema.value 578 var keyword = frm.keyword.value 579 var disc_yn = frm.disc_yn.value 580 var camp_tp = frm.camp_tp.value 581 var page = frm.page_num.value 582 var reseventseq = frm.reseventseq.value 583 var res_url = res_dt+"$"+region+"$"+site_tp+"$"+tema+"$"+keyword+"$"+disc_yn+"$"+camp_tp+"$"+page 584 $.ajax({ 585 type: "POST", 586 url: "/inc/axCampResVerUrl.hbb", 587 data:{campseq:campseq}, 588 success: onSuccess, 589 error: onError 590 }); 591 function onSuccess(dataobj) { 592 var url = dataobj+"/thankQRes.hbb?campseq="+campseq+"&res_dt="+res_dt+"&thankq_app="+app_yn+"&thankq_yn=Y&reseventseq="+reseventseq 593 if (app_yn!="Y") url += "&res_path=HM" 594 goResAppUrl(url,app_yn,app_os) 595 } 596 function onError() {} 597 } 598 599 //ìº íì¥ ì¤ìê°ìì½ 600 function goResPop(cseq) { 601 var campseq = cseq 602 var res_dt = document.form.res_dt.value 603 var region = document.form.region.value 604 var site_tp = document.form.site_tp.value 605 var tema = document.form.tema.value 606 var keyword = document.form.keyword.value 607 var disc_yn = document.form.disc_yn.value 608 var camp_tp = document.form.camp_tp.value 609 var page = document.form.page_num.value 610 var res_url = res_dt+"$"+region+"$"+site_tp+"$"+tema+"$"+keyword+"$"+disc_yn+"$"+camp_tp+"$"+page 611 $.ajax({
612 type: "POST", 613 url: "/inc/axCampResVerUrl.hbb", 614 data:{campseq:campseq}, 615 success: onSuccess, 616 error: onError 617 }); 618 function onSuccess(dataobj) { 619 var url = dataobj+"/thankQRes.hbb?campseq="+campseq+"&res_dt="+res_dt+"&thankq_app="+app_yn+"&thankq_yn=Y" 620 if (app_yn!="Y") url += "&res_path=HM" 621 goResAppUrl(url,app_yn,app_os) 622 } 623 function onError() {} 624 } 625 626 //ìº íì¥ ìì½íì¸ 627 function goResView(campseq,reserveseq,status,page,page_k) { 628 var res_url = "myResList$"+status+"$"+page+"$"+page_k 629 $.ajax({ 630 type: "POST", 631 url: "/resv/axCampResVerUrl.hbb", 632 data:{campseq:campseq}, 633 success: onSuccess, 634 error: onError 635 }); 636 function onSuccess(dataobj) { 637 var url = dataobj+"/thankQRes.hbb?campseq="+campseq+"&reserveseq="+reserveseq+"&thankq_app="+app_yn+"&thankq_rurl="+res_url+"&thankq_yn=Y" 638 if (app_yn!="Y") url += "&res_path=HM" 639 goResAppUrl(url,app_yn,app_os) 640 } 641 function onError() {} 642 } 643 //ìº íì¥ ìì½íì¸ 644 function goResCertView(campseq,reserveseq,status,rnd_num) { 645 $.ajax({ 646 type: "POST", 647 url: "/resv/axCampResVerUrl.hbb", 648 data:{campseq:campseq}, 649 success: onSuccess, 650 error: onError 651 }); 652 function onSuccess(dataobj) { 653 var url = dataobj+"/thankQRes.hbb?campseq="+campseq+"&reserveseq="+reserveseq+"&thankq_app="+app_yn+"&rnd_num="+rnd_num+"&thankq_yn=Y" 654 if (app_yn!="Y") url += "&res_path=HM" 655 goResAppUrl(url,app_yn,app_os) 656 } 657 function onError() {} 658 } 659 //ìº íì¥ ì¥ë°ìì½íì¸ 660 function goResLongView(campseq,reslongseq,status,page,page_k) { 661 var res_url = "myResList$"+status+"$"+page+"$"+page_k 662 $.ajax({ 663 type: "POST", 664 url: "/inc/axCampResVerUrl.hbb", 665 data:{campseq:campseq}, 666 success: onSuccess, 667 error: onError 668 }); 669 function onSuccess(dataobj) { 670 var url = dataobj+"/thankQRes.hbb?campseq="+campseq+"&reslongseq="+reslongseq+"&thankq_app="+app_yn+"&thankq_rurl="+res_url+"&thankq_yn=Y" 671 if (app_yn!="Y") url += "&res_path=HM" 672 goResAppUrl(url,app_yn,app_os) 673 } 674 function onError() {} 675 } 676 677 //ì´ë²¤í¸ ì¼í몰 í¸ì¶ 678 function goShopPop(gseq) { 679 location.href= 'https://m.shop.thankqcamping.com/shopMain.hbb?ser_good_id='+gseq 680 681 } 682 683 //íë¨ë©ë´ ê²ì 684 function Bmenu(url) { 685 $("#Lmnu").html('<div class="modal-dialog"><div class="modal-content"><div id="spinner_pop"></div></div></div>'); 686 //$("#spinner_pop").show(); 687 location.href = url 688 } 689 690 //모ë¬ì°½ ë«ê¸° 691 function modalClose() { 692 $(".close").click(); 693 } 694 695 //íí¸ë íìë¡ê·¸ì¸ 696 function partnLoginAp() { 697 var frm = document.loginForm 698 699 if(frm.h_telno.value=="") { 700 alert("í´ëí°ë²í¸ë¥¼ ì ë ¥í´ì£¼ì¸ì.") 701 frm.h_telno.focus() 702 return 703 } else 704 if(frm.pwd.value=="") { 705 alert("ë¹ë°ë²í¸ë¥¼ ì ë ¥í´ì£¼ì¸ì.") 706 frm.pwd.focus() 707 return 708 } else { 709 //frm.ret_url.value = encodeURIComponent(frm.ret_url.value) 710 frm.action = "https://m.thankqcamping.com/join/login_ok.hbb" 711 frm.target = "job" 712 frm.submit(); 713 } 714 } 715 716 //ë°°ëë ¸ì¶ 717 function axBannerViewCount(c) { 718 if ($("#BN"+c)) { 719 if($("#BN"+c).html().indexOf("B") > -1 && $("#Lmnu").attr('class').indexOf('in') < 0) { 720 $.ajax({
721 type: "POST", 722 url: "/inc/axBannerViewCount.hbb", 723 data:{ seq:$("#BN"+c).html().replace("B","") }, 724 success: onSuccess, 725 error: onError 726 }); 727 function onSuccess(dataobj) {} 728 function onError() {} 729 } 730 } 731 } 732 //ëª¨ë¬ íì´ì§ ì´ë 733 function goModalReUrl(url) { 734 goUrl(url,'Y','pop') 735 } 736 737 //먹거리구매 ìì¸íì¸ 738 function goResGoodView(campseq,resgoodseq) { 739 $.ajax({ 740 type: "POST", 741 url: "/inc/axCampResVerUrl.hbb", 742 data:{campseq:campseq}, 743 success: onSuccess, 744 error: onError 745 }); 746 function onSuccess(dataobj) { 747 var url = dataobj+"/thankQRes.hbb?campseq="+campseq+"&resgoodseq="+resgoodseq+"&thankq_app="+app_yn+"&thankq_yn=Y" 748 if (app_yn!="Y") url += "&res_path=HM" 749 goResAppUrl(url,app_yn,app_os) 750 } 751 function onError() {} 752 } 753 754//ë©ì¸ìë 755function mainNoti(id,tit,msg,url) { 756 if(get_cookie("mainNoti_"+id)==null) { 757 setCookie("mainNoti_"+id, "Y", false) 758 txt = "<div class=\"pop_conts\">" 759 txt += " <p class=\"txt1\">"+tit+"</p>" 760 txt += " <p class=\"txt2\">"+msg+"</p>" 761 txt += "</div>" 762 txt += "<span href=\"#\" class=\"sprite btn_layerClose2\" onclick=\"ly_close()\"></span>" 763 txt += "<button type=\"button\" class=\"btn\" onClick=\"ly_close();"+url+"\">ë°ë¡ê°ê¸°</button>" 764 $('#divMainNoti').html(txt); 765 ly_open(); 766 } 767} 768//ì¸ë¶ì¤íì°½ì´ê¸° 769function outOpen(url) { 770 if(app_yn=='Y') { 771 if ((app_os=='android' && parseInt(app_ver) < 51) || (app_os=='ios' && parseInt(app_ver) < 38)) { 772 open(url,'_blank','') 773 } else { 774 if(app_os=='ios') { 775 goIosAp('openBrowser',url) 776 } else { 777 try { 778 location.href = "blank://" + url 779 } catch(e) { 780 open(url,'_blank','') 781 } 782 } 783 } 784 } else { 785 open(url,'','') 786 } 787} 788 789</script>
789 790
790<script src="/js/m_com.js?version=20261001-1"></script>
790 791
791<script src="/js/m_map.js?version=20261001-1"></script>
791 792
792<script src="/js/m_sns.js?version=20261001-1"></script>
792 793
793<script src="/js/join.js?version=20261001-1"></script>
793 794
794<script src="/js/resv.js?version=20261001-1"></script>
794 795
795<script src="/js/talk.js?version=20261001-1"></script>
795 796
796<script src="/js/cs.js?version=20261001-1"></script>
796 797
797<script src="/js/coupon.js?version=20261001-1"></script>
797 798
798<script src="/js/iscroll.js?version=20261001-1"></script>
798 799
799<script src="/js/my.js?version=20261001-1"></script>
799 800
800<script src="/js/trans.js?version=20261001-1"></script>
800 801 802
802<script>
vendor: 343 bytes, lines 802-807
802 803 (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ 804 (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), 805 m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) 806 })(window,document,'script','//www.google-analytics.com/analytics.js','ga'); 807 ga('create', '
807UA-64792179-1
vendor: 42 bytes, lines 807-809
807', 'auto'); 808 ga('send', 'pageview'); 809
809//document.ondragstart = new Function('return false'); // ëëê·¸ ë°©ì§ 810 //document.onselectstart = new Function('return false'); // ì í ë°©ì§ 811 //document.oncontextmenu = new Function('return false'); // ì í ë°©ì§ 812 </script>
812 813 <!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 67 bytes, lines 813-814
813 814 <script async src="https://www.googletagmanager.com/gtag/js?id=
814G-EZH75RFPSZ
vendor: 15 bytes, lines 814-815
814"></script> 815
815<script> 816
vendor: 142 bytes, lines 816-819
816window.dataLayer = window.dataLayer || []; 817 function gtag(){dataLayer.push(arguments);} 818 gtag('js', new Date()); 819 gtag('config', '
819G-EZH75RFPSZ
vendor: 7 bytes, lines 819-820
819'); 820
820</script>
820 821 <!-- Google tag (gtag.js) --> 822
822<script async src="https://www.googletagmanager.com/gtag/js?id=GTM-5WNWZSZ"></script>
822 823
823<script> 824 window.dataLayer = window.dataLayer || []; 825 function gtag(){dataLayer.push(arguments);} 826 gtag('js', new Date()); 827 gtag('config', 'GTM-5WNWZSZ'); 828 </script>
828 829 <!-- ë´ ë§¤ëì --> 830
830<script src="https://cdn-botmanager.stclab.com/agents/client/javascript/botmanager-browser-agent.js" async></script>
830 831
831<script> 832 (function (cfg) { 833 cfg.tenantId = 'TN251104-8C1A44EC'; 834 cfg.domainName = 'thankqcamping.com'; 835 cfg.customId = ''; 836 cfg.serverUrl = 'https://botmanager.stclab.com/api/v1/macro'; 837 })(window['BotManager-config'] || (window['BotManager-config'] = {})); 838 </script>
838 839 <style> 840 body { background: #f9f9f9; } 841 </style> 842</head> 843<div id="loading"><img id="loading-image" src="/images/loading.svg" alt="Loading..." /></div> 844<div id="site_url" style="display:none;">https://m.thankqcamping.com</div> 845<div id="shop_url" style="display:none;">https://m.thankqcamping.com</div> 846<iframe name="job" width="0" height="0" style="display:none;"></iframe> 847<form name="logoutForm" method="post"> 848<input type="hidden" name="reurl" value="https://m.thankqcamping.com/join/logout.hbb"> 849</form> 850<form name="nearbyform" method="post"> 851<input type="hidden" name="mem_lat"> 852<input type="hidden" name="mem_lng"> 853<input type="hidden" name="nearby" value="Y"> 854</form>
855<script> 856document.addEventListener("DOMContentLoaded", function(){ 857 if(app_yn != "Y"){ 858 // ì± ì ë QR ì½ë ì¶ê° 859 const newDiv = document.createElement("div"); 860 newDiv.classList.add("background_content"); 861 862 newDiv.innerHTML = ` 863 <div class="content_group"> 864 <a href="#"> 865 <img src="/images/deep_qr.svg" alt="ë¥ë§í¬ QR" class="img_qr"> 866 <img src="/images/deep_logo.png" alt="LOGO" class="img_logo"> 867 </a> 868 <div class="text_box"> 869 <p>ì±ì ì¤ì¹íë©´<br>ë ë§ì ííì<br>ë°ì ë³¼ ì ìì´ì!</p> 870 <span>ì¹´ë©ë¼ë¡ QRì½ë를 ì¤ìºí´ë³´ì¸ì</span> 871 </div> 872 </div> 873 `; 874 875 const firstChild = document.getElementById("wrap").firstChild; 876 document.getElementById("wrap").insertBefore(newDiv, firstChild); 877 } 878}) 879</script>
879 880<!-- poplayer --> 881<div id="popup_alert" class="modal_wrap wd_auto"> 882 <div class="modal_center"> 883 <div class="md_cont"><p></p></div> 884 <!-- ë²í¼2ê°ì¼ë md_buttonì í´ëì¤ type2 ì¶ê° --> 885 <div class="md_button"> 886 <button class="btn_ok" type="button" onclick="action_popup.close('#popup_alert')">íì¸</button> 887 </div> 888 </div> 889</div> 890<div id="popup_succ_alert" class="modal_wrap wd_auto type2"> 891 <!-- 룰ë ë¹ì²¨ì modal_center bg_fire ì¶ê°--> 892 <div id="succ_modal_center" class="modal_center"> 893 <div class="md_cont"> 894 <p id="succ_alert_tit" class="title fwb"></p> 895 <p id="succ_alert_cont" class="box"> 896 </p> 897 </div> 898 <!-- ë²í¼2ê°ì¼ë md_buttonì í´ëì¤ type2 ì¶ê° --> 899 <div class="md_button"> 900 <button class="btn_succ_ok" type="button" onclick="action_popup.close('#popup_succ_alert')">íì¸</button> 901 </div> 902 </div> 903</div> 904<div id="popup_confirm" class="modal_wrap wd_auto"> 905 <div class="modal_center"> 906 <div class="md_cont"><p></p></div> 907 <!-- ë²í¼2ê°ì¼ë md_buttonì í´ëì¤ type2 ì¶ê° --> 908 <div class="md_button type2"> 909 <button class="btn_cancel rounded" type="button" onclick="action_popup.close('#popup_confirm')">ì·¨ì</button> 910 <button class="btn_confirm_ok rounded" type="button" onclick="action_popup.close('#popup_confirm')">íì¸</button> 911 </div> 912 </div> 913</div> 914<!-- poplayer --> 915<div class="pop_noti_set pop_txt_set modal_wrap" id="pop_ad_notice"> 916 <div class="modal_center"> 917 <div class="pop_noti on"> 918 <p class="tit fwb pt0"></p> 919 <p class="btm_border"></p> 920 </div> 921 <div class="md_button"> 922 <button type="button" class="btn_gray" onClick="action_popup.close('#pop_ad_notice')">íì¸</button> 923 </div> 924 </div> 925 <!-- <div class="modal"></div> --> 926</div> 927<div id="popup_modal" class="modal_wrap wd_auto"> 928 <div class="modal_center"> 929 <div class="md_cont"><p></p></div> 930 <!-- ë²í¼2ê°ì¼ë md_buttonì í´ëì¤ type2 ì¶ê° --> 931 <div class="md_button"> 932 <button class="btn_confirm_ok rounded" type="button" onclick="action_popup.close('#popup_modal')">íì¸</button> 933 </div> 934 </div> 935</div> 936<div class="pop_layer_set" id="pop_toast_noti"> 937 <div class="pop_layer recent_layer incart_layer" style="z-index: 800"> 938 <p class="inmycart" id="toast_txt"></p> 939 </div> 940</div> 941<div class="pop_layer_set" id="pop_floating_noti"> 942 <div class="pop_layer recent_layer incart_layer" style="z-index: 800"> 943 <p class="floating-button" id="floating_txt"></p> 944 </div> 945</div> 946<!-- 기본 ëª¨ë¬ popup --> 947<div class="pop_wp" id="pop_modal"> 948 <div class="pop_layer_set pop_noti_set on"> 949 <div id="modal_detail" class="pop_layer recent_layer dome_layer"></div> 950 <div class="modal" style="display: block"></div> 951 </div> 952</div> 953<!-- //기본 ëª¨ë¬ popup --> 954
955<script> 956function getResList(){ 957 958} 959function clkSerKeyCd(cd) { 960 $("li[id^='LiKeySub']").hide() 961 $("li[id^='LiKeySubALL']").hide() 962 $("li[id^='LiKeySub"+cd+"']").show() 963 $("input:checkbox[id^='chk_ser_sub_key']").prop('checked',false) 964} 965function showSortMent(tp) { 966 $("span[id^='sort_ment_']").hide() 967 $("span[id^='sort_ment_"+tp+"']").show() 968} 969</script>
969 970 971<body ioncontextmenu="if (!window.__cfRLUnblockHandlers) return false; return!1" ondragstart="if (!window.__cfRLUnblockHandlers) return false; return!1" onselectstart="if (!window.__cfRLUnblockHandlers) return false; return!1"> 972<header> 973 <section class="seo-text"> 974 <h1>ì¤í ìº í</h1> 975 </section> 976</header> 977<form name="form" method="post"> 978<input type="hidden" id="res_dt" name="res_dt" value=""> 979<input type="hidden" name="res_edt" value=""> 980<input type="hidden" name="region" value=""> 981<input type="hidden" name="region_all" value=""> 982<input type="hidden" name="sub_region" value=""> 983<input type="hidden" name="disp_site_tp" value=""> 984<input type="hidden" name="tema" value=""> 985<input type="hidden" name="camp_tp" value=""> 986<input type="hidden" name="partnseq" value=""> 987<input type="hidden" name="page_num" value="1"> 988<input type="hidden" name="res_url"> 989<input type="hidden" name="res_back" value=""> 990<input type="hidden" name="tq_push_yn" value=""> 991<input type="hidden" name="tq_loc_yn" value=""> 992<input type="hidden" name="thankq_app" value=""> 993<input type="hidden" name="reseventseq" value=""> 994<input type="hidden" name="login_loc" value=""> 995<input type="hidden" name="couponId" value=""> 996<input type="hidden" name="pre_url" value="list.hbb"> 997<input type="hidden" name="ser_st" value="N"> 998<input type="hidden" name="mem_lat" value=""> 999<input type="hidden" name="mem_lng" value=""> 1000<input type="hidden" name="nearby" value=""> 1001<input type="hidden" name="ser_res_dt" value=""> 1002<input type="hidden" name="ser_res_edt" value=""> 1003<input type="hidden" name="ser_res_days" value=""> 1004<input type="hidden" name="ser_keyword" value=""> 1005<input type="hidden" name="ser_festa_gbn" value=""> 1006<input type="hidden" name="ser_camp_spec_list" value=""> 1007<input type="hidden" name="ser_list_title" value=""> 1008 1009 <div class="wrap pdb0" id="wrap"> 1010 <div class="wrap_in"> 1011 1012 1013 <div class="head"> 1014 <div class="head_in"> 1015 1016 <a href="javascript:popClose('');" class="btn_back">back</a> 1017 1018 <div class="search_div" id="top_search_input"> 1019 <span class="icon_search"></span> 1020 <div class="text_g"><span class="text">ì§ìãë ì§ãì¸ìì¼ë¡ ìì ê²ì</span></div> 1021 <!-- <div class="text_g"><span class="text">ê²ìì´ãmm.dd~mm.dd (në°)ãì±ì¸2/ìì¸1</span></div> --> 1022 </div> 1023 1024 1025 <!-- ë©ì¸ììë§ ë ¸ì¶ --> 1026 1027 <a class="btn_menu" onClick="r_menu('');" style="display:none;">menu</a> 1028
1028<script> 1029 $(document).ready(function(){ 1030 const close = '' 1031 if(!opener && close != 'True') { 1032 $('.btn_menu').show() 1033 } 1034 }); 1035 </script>
1035 1036 1037 1038 <!-- ìº í¡ìì¸ììë§ ë ¸ì¶ --> 1039 1040 </div> 1041 </div><!--// head --> 1042 1043 1044<div class="tot_menu"> 1045 <div class="tot_menu_in mCscroll"> 1046 <div class="log_box"> 1047 1048 <div class="pf_set clear"> 1049 <div class="pic"></div> 1050 <div class="txt_box"> 1051 <p class="tit1"> 1052 <a 1053 href="javascript:location.replace('/join/login.hbb?reurl=%2Fresv%2Flist%2Ehbb%3Fsite%5Ftp%3DBB000');$('.tot_menu .clo').click();">ë¡ê·¸ì¸</a>ì´ 1054 íìí©ëë¤. 1055 </p> 1056 <p class="txt">Welcome to Q</p> 1057 </div> 1058 </div> 1059 <div class="point_box"> 1060 <a href="/join/login.hbb" class="p_div"> 1061 <div class="p_div_list"> 1062 <div class="p_div_list_value">0</div> 1063 <div class="p_div_list_title">Q-Point</div> 1064 </div> 1065 </a> 1066 <!--a href="/join/login.hbb" class="p_div"> 1067 <div class="p_div_list"> 1068 <div class="p_div_list_value">0</div> 1069 <div class="p_div_list_title">ì ì²´ì 립ê¸</div> 1070 </div> 1071 </a--> 1072 <a href="/join/login.hbb" class="p_div"> 1073 <div class="p_div_list"> 1074 <div class="p_div_list_value">0</div> 1075 <div class="p_div_list_title">ì¿ í°</div> 1076 </div> 1077 </a> 1078 <a href="/join/login.hbb" class="p_div"> 1079 <div class="p_div_list"> 1080 <div class="p_div_list_value">0</div> 1081 <div class="p_div_list_title">íì´ë£°ë </div> 1082 </div> 1083 </a> 1084 </div> 1085 1086 <button type="button" class="clo"></button> 1087 </div> 1088 <!-- //log_box --> 1089 1090 <!-- rolling_banner --> 1091 <div class="rolling_banner" onClick="location.href='/roulette/intro.hbb';"> 1092 <p class="event_name">ìë¡ìì§ íì´ë£°ë ì´ë²¤í¸</p> 1093 <div class="rolling_wrap"> 1094 <ul> 1095 <li>방문í기 ìì±íê³ </li> 1096 <li>ì¶ì ì²´í¬íê³ </li> 1097 <li>ìº íì¥ ë°©ë¬¸íê³ </li> 1098 <li>ìí 구매íê³ </li> 1099 </ul> 1100 </div> 1101 <p class="dp_ib"><span class="strong">ë¬´ë£ íì´ë£°ë ì´ì©ê¶</span> ë°ê¸°</p> 1102 </div> 1103 <!-- //rolling_banner --> 1104 <div class="aside"> 1105 <ul class="aside_ul"> 1106 <li class="res"> 1107 <a href="#n">ìì½<span class="arr"></span></a> 1108 <div class="m_div" style="display: none"> 1109 <ul> 1110 <li><a href="/resv/list.hbb?site_tp=BB000">ì¤í ìº í</a></li> 1111 <li><a href="/resv/list.hbb?site_tp=BB001">ê¸ë¨í</a></li> 1112 <li><a href="/resv/list.hbb?site_tp=BB002">ì¹´ë¼ë°</a></li> 1113 <li><a href="/resv/list.hbb?site_tp=BB003">íì </a></li> 1114 <li><a href="/resv/list.hbb?site_tp=BB006&res_dt=20261003&res_edt=20261003">í¼í¬ë</a></li> 1115 </ul> 1116 </div> 1117 </li> 1118 <li class="shop"> 1119 <a href="#n">ì¼í<span class="arr"></span></a> 1120 <div class="m_div" style="display: none"> 1121 <ul> 1122 <li><a href="/shop/index.hbb">ì¼íí</a></li> 1123 <li><a href="/shop/event.hbb">íìí¹ê°</a></li> 1124 <li><a href="/shop/list.hbb?cate=010">ìº íì©í</a></li> 1125 <li><a href="/shop/list.hbb?cate=020">먹거리</a></li> 1126 <li style="display: none;"><a href="/shop/brand_list.hbb">ë¸ëë</a></li> 1127 <li><a href="/shop/review_list.hbb">리뷰존</a></li> 1128 </ul> 1129 </div> 1130 </li> 1131 <li class="plan"> 1132 <a href="#n">기íì <span class="arr"></span></a> 1133 <div class="m_div" style="display: none"> 1134 <ul> 1135 <li><a href="/cs/event.hbb?bbs_gb=AB008">ë©ì¸ê¸°íì </a></li> 1136 <li><a href="/cs/collect.hbb?tp=S">ì¼í기íì </a></li> 1137 </ul> 1138 </div> 1139 </li> 1140 <li class="event"> 1141 <a href="/cs/co_event.hbb?bbs_gb=AB017">ì´ë²¤í¸</a> 1142 </li> 1143 <li class="camt"> 1144 <a href="/talk/list.hbb">ìº í¡</a> 1145 </li> 1146 1147 <li class="camt"> 1148 <a href="javascript:$('.clo').click();goUrl('/join/non/ser_reservation.hbb','N','');">ë¹íììì½ì¡°í</a> 1149 </li> 1150 1151 </ul> 1152 </div> 1153 <!-- //aside --> 1154 1155 <div class="banner_div" id="banner_HD"> 1156 1157 <!--a href="#n"><img src="/images/banner01.png" alt=""></a--> 1158 </div> 1159 1160 <div class="aside type2"> 1161 <ul class="aside_ul"> 1162 <li class="cus on"> 1163 <div class="m_div"> 1164 <ul> 1165 <li><a href="/cs/notice.hbb">ê³µì§ì¬í</a></li> 1166 <li><a href="/cs/faq.hbb">ì주묻ëì§ë¬¸</a></li> 1167 <li><a href="javascript:outOpen('http://about.thankqcamping.com/contact.html');">ì í´ë¬¸ì</a></li> 1168 <li><a href="tel:02-6959-5622" id="com_tel">
1168ìë´ìì°ê²°</a></li> 1169 1170 </ul> 1171 <p><span>ìë´ìê° : </span>íì¼ 9:30~18:00 (ì ì¬ìê° 12:30~13:30)</p> 1172 </div> 1173 </li> 1174 </ul> 1175 </div> 1176 1177 1178 1179 <div class="aside_btns"> 1180 <ul> 1181 1182 <li class="log"> 1183 <a 1184 onClick="javascript:location.replace('/join/login.hbb?reurl=%2Fresv%2Flist%2Ehbb%3Fsite%5Ftp%3DBB000');$('.tot_menu .clo').click();">ë¡ê·¸ì¸</a> 1185 </li> 1186 <li class="my"><a onClick="javascript:location.href='/join/join.hbb';$('.tot_menu .clo').click();">íìê°ì </a></li> 1187 1188 </ul> 1189 </div> 1190 </div> 1191 <!-- //tot_menu_in --> 1192</div> 1193<!-- //tot_menu --> 1194 1195 <div class="container" style="margin-top: 115px;"> 1196 <!--ââââââ 컨í ì¸ ìì ââââââ--> 1197 1198 <div class="sear_result_con con"> 1199 1200<div class="sr_top" id="headFilter"> 1201 1202 <div class="sr_condi"> 1203 <div style="display: flex;"> 1204 <div class="region" id="region_txt" onclick="javascript:goRegionSearch('','','');" style="display:none; margin-left: 24px; border-radius: 19px; background-color: #f7f7f7;height: 38px; padding: 0 15px; letter-spacing: -0.58px; font-size: 12px; color: #1f1f1f; font-weight: 500; line-height: 37px; text-align: center; width: 90px;">ì§ìì í</div> 1205 <div class="date" id="spnResDtInfo" onClick="javascript:openLayer('pop_date_sel')" style="display:none;margin-left: 8px; border-radius: 19px; background-color: #f7f7f7;height: 38px; padding: 0 15px; letter-spacing: -0.58px; font-size: 12px; color: #1f1f1f; font-weight: 500; line-height: 37px; text-align: center;"> 1206 1207 ë ì§ì í 1208 1209 </div> 1210 1211 <div> 1212 <div class="swiper-container sr_condi_swiper"> 1213 <ul class="swiper-wrapper"> 1214 1215 <li class="swiper-slide " > 1216 <button type="button" class="festa_button tag_name " name="ser_festa_gbn" value="DL008">#ê°íêµ° ìë°ì¸ì¼ íì¤í</button> 1217 </li> 1218 1219 <li class="swiper-slide " > 1220 <button type="button" class="festa_button tag_name " name="ser_festa_gbn" value="DL013">#ê°íë§ììº í</button> 1221 </li> 1222 1223 <li class="swiper-slide " > 1224 <button type="button" class="festa_button tag_name " name="ser_festa_gbn" value="DL012">#ìíìë°í ì¸ì¿ í°</button> 1225 </li> 1226 1227 <li class="swiper-slide festa-last" style="display:none;"> 1228 <button type="button" class="festa_button tag_name " name="ser_festa_gbn" value="DL007">#êµë°©ê°ì¡± í ì¸ì¿ í°</button> 1229 </li> 1230 1231 <li class="swiper-slide"> 1232 <button type="button" class="keyword_button tag_name" name="ser_get_coupon_yn" value="Y">ì¦ìí ì¸</button> 1233 </li> 1234 <li class="swiper-slide"> 1235 <button type="button" class="keyword_button tag_name" name="ser_disc_yn" value="Y">í ì¸í¹ê°</button> 1236 </li> 1237 <li class="swiper-slide"> 1238 <button type="button" class="keyword_button tag_name" name="ser_new_yn" value="Y">ì ê·ì ì </button> 1239 </li> 1240 <li class="swiper-slide"> 1241 <button type="button" class="keyword_button tag_name" name="ser_kid" value="Y">ìì´ë¤ ëì´ìì¤ êµ¬ë¹</button> 1242 </li> 1243 <li class="swiper-slide"> 1244 <button type="button" class="keyword_button tag_name" name="ser_camp_spec" value="BP000">ë°ë ¤ë물 ëë°</button> 1245 </li> 1246 <li class="swiper-slide"> 1247 <button type="button" class="keyword_button tag_name" name="ser_camp_spec" value="BO006">ì목ì/í´ì림 주ë³</button> 1248 </li> 1249 <li class="swiper-slide"> 1250 <button type="button" class="keyword_button tag_name" name="ser_long_yn" value="Y">ì¥ë°</button> 1251 </li> 1252 <li class="swiper-slide"> 1253 <button type="button" class="keyword_button tag_name" name="ser_camp_spec" value="BO003">ì ì ìì ëìì¥ ì£¼ë³</button> 1254 </li> 1255 </ul> 1256 </div> 1257 </div> 1258 </div> 1259 1260 </div> 1261 1262 <div class="filter_cont ">
1263 <div class="swiper-container filter_cont_swiper"> 1264 <ul class="swiper-wrapper"> 1265 <li class="swiper-slide"> 1266 <button type="button" class="btn_filter" id="popFilterButton"></button> 1267 </li> 1268 <li class="swiper-slide"> 1269 <div class="filter_name" id="group1_txt" data-value="filter_item1">ìì구ë¶</div> 1270 </li> 1271 <li class="swiper-slide"> 1272 <div class="filter_name" id="group2_txt" data-value="filter_item2">ê²ì구ë¶</div> 1273 </li> 1274 <li class="swiper-slide"> 1275 <div class="filter_name" id="group3_txt" data-value="filter_item3">ììíê²½</div> 1276 </li> 1277 <li class="swiper-slide"> 1278 <div class="filter_name" id="group4_txt" data-value="filter_item4">주ë³íê²½</div> 1279 </li> 1280 1281 <li class="swiper-slide"> 1282 <div class="filter_name" id="group5_txt" data-value="filter_item5">íì¤í기</div> 1283 </li> 1284 1285 </ul> 1286 </div> 1287 </div> 1288 1289</div> 1290 1291<!-- íí°ì ìì´ì½ XX --> 1292<!-- popup(modal) start --> 1293<div class="pop_layer_set" id="filter_pop"> 1294 <!-- íí° ëë ì ë ëì¤ë ì°½ --> 1295 <div class="pop_layer filter_pop"> 1296 <div class="pop_title"> 1297 <p class="tit">íí°</p> 1298 <button type="button" class="clo2" id="popFilterCloseButton"></button> 1299 </div> 1300 <div class="pop_con"> 1301 <div class="filter_top_fixed swiper-container"> 1302 <div class="swiper-wrapper tabs"> 1303 <div id="tab_filter_item1" class="filter_item swiper-slide active" data-target="filter_item1">ììêµ¬ë¶ 1304 </div> 1305 <div id="tab_filter_item2" class="filter_item swiper-slide" data-target="filter_item2">ê²ì구ë¶</div> 1306 <div id="tab_filter_item3" class="filter_item swiper-slide" data-target="filter_item3">ììíê²½</div> 1307 <div id="tab_filter_item4" class="filter_item swiper-slide" data-target="filter_item4">주ë³íê²½</div> 1308 1309 <div id="tab_filter_item5" class="filter_item swiper-slide" data-target="filter_item5">íì¤í기</div> 1310 1311 </div> 1312 </div> 1313 1314 <!-- item_list div ê° item ì íì í´ëì¤ active ì¶ê° --> 1315 <ul class="filter_pop_ul"> 1316 <li id="filter_item1"> 1317 <p class="title">ìì구ë¶</p> 1318 <div class="item_list"> 1319 <button type="button" name="ser_site_tp" value="BB000" id="chk_lodg1">ì¤í ìº í</button> 1320 <button type="button" name="ser_site_tp" value="BB001" id="chk_lodg2">ê¸ë¨í</button> 1321 <button type="button" name="ser_site_tp" value="BB002" id="chk_lodg3">ì¹´ë¼ë°</button> 1322 <button type="button" name="ser_site_tp" value="BB003" id="chk_lodg4">íì </button> 1323 </div> 1324 </li> 1325 1326 <li id="filter_item2"> 1327 <p class="title">ê²ì구ë¶</p> 1328 <!-- <div class="tooltip"> 1329 <p class="tooltip_txt">ì íí ìì½ì ìíì¬ ì ì²´ê° ì¶ê°ë¡ ì ê³µ ë° ìì²íë ì ë³´ì ëë¤.</p> 1330 </div> --> 1331 <div class="item_list"> 1332 <button type="button" name="ser_camp_spec" value="BP000">ë°ë ¤ê²¬ëë°</button> 1333 <button type="button" name="ser_kid" value="Y">í¤ì¦ìº í</button> 1334 <button type="button" name="ser_pg_tp" value="C">ì ì©ì¹´ë</button> 1335 <button type="button" name="ser_pg_tp" value="V">무íµì¥ì ê¸</button> 1336 <button type="button" name="ser_2peopleOnly" value="Y">2ì¸ì ì©</button> 1337 <button type="button" name="ser_camp_spec" value="BP001">í¸ë ì¼ë¬ ì§ì </button> 1338 <button type="button" name="ser_camp_spec" value="BP002">ì¹´ë¼ë° ì§ì </button> 1339 <button type="button" name="ser_camp_spec" value="BP003">ì°¨ë°ìº í</button> 1340 <button type="button" name="ser_q_point" value="Y">Q-Pointì 립</button> 1341 1342 <button type="button" name="ser_disc_yn" value="Y">í ì¸ì¤</button> 1343 <button type="button" name="ser_new_yn" value="Y">ì ê·ì ì </button> 1344 <button type="button" name="ser_long_yn" value="Y">ì¥ë°</button> 1345 <button type="button" name="ser_get_coupon_yn" value="Y">ì ì²´í ì¸ì¿ í°</button> 1346 </div> 1347 </li> 1348 <li id="filter_item3"> 1349 <p class="title">ììíê²½</p> 1350 <div class="item_list"> 1351 <button type="button" name="ser_camp_spec" value="BM000" />ê°ë³íì¥ì¤</button> 1352 <button type="button" name="ser_camp_spec" value="BM001">ê°ë³ì¬ìì¤</button> 1353 <button type="button" name="ser_camp_spec" value="BL004">매ì </button> 1354 <button type="button" name="ser_camp_spec" value="BL003">ìì´íì´</button> 1355 <button type="button" name="ser_camp_spec" value="BM007">ëì´í°</button> 1356 <button type="button" name="ser_camp_spec" value="BM013">ììì¥</button> 1357 <button type="button" name="ser_camp_spec" value="BN000">ì¥ë¹ëì¬</button> 1358 <button type="button" name="ser_camp_spec" value="BM020">ì²´ííë</button> 1359 </div> 1360 </li> 1361 <li id="filter_item4"> 1362 <p class="title">주ë³íê²½</p> 1363 <div class="item_list"> 1364 <button type="button" name="ser_camp_position" value="A">ë°ë¤</button> 1365 <button type="button" name="ser_camp_position" value="B">ì°</button> 1366 <button type="button" name="ser_camp_position" value="C">ê°</button> 1367 <button type="button" name="ser_camp_position" value="D">í¸ì</button> 1368 <button type="button" name="ser_camp_position" value="E">ê³ê³¡</button> 1369 <button type="button" name="ser_camp_position" value="F">ì¬</button> 1370 <button type="button" name="ser_camp_spec" value="BO005">ë±ì°</button> 1371 <button type="button" name="ser_camp_spec" value="BO000">í´ììì¥</button> 1372 <button type="button" name="ser_camp_spec" value="BO002">ììë ì ¸</button> 1373 <button type="button" name="ser_camp_spec" value="BO003">ëì</button> 1374 <button type="button" name="ser_camp_spec" value="BO007">ì¤í¤ì¥</button> 1375 <button type="button" name="ser_camp_spec" value="BO006">ì목ì/í´ì림</button> 1376 </div> 1377 </li> 1378 1379 <li id="filter_item5"> 1380 <p class="title">íì¤í기</p> 1381 <div class="item_list"> 1382 <button type="button" name="ser_key_sub_cd2" value="EA000">ë·° ë§ì§</button> 1383 <button type="button" name="ser_key_sub_cd2" value="EA001">ì¡°ì©í íë§ ë§ì§</button> 1384 <button type="button" name="ser_key_sub_cd2" value="EA002">ì¬ì§ ë§ì§</button> 1385 <button type="button" name="ser_key_sub_cd2" value="EA003">ììí ê·¸ë ë§ì§</button> 1386 <button type="button" name="ser_key_sub_cd2" value="EB000">ë°ë ¤ê²¬ê³¼ í¨ê»</button> 1387 <button type="button" name="ser_key_sub_cd2" value="EB001">ìì´ë¤ê³¼ í¨ê»</button> 1388 <button type="button" name="ser_key_sub_cd2" value="EB002">ì°ì¸ê³¼ í¨ê»</button> 1389 <button type="button" name="ser_key_sub_cd2" value="EB003">ì¹êµ¬ë¤ê³¼ í¨ê»</button> 1390 <button type="button" name="ser_key_sub_cd2" value="EC000">깨ëí ìì¤</button> 1391 <button type="button" name="ser_key_sub_cd2" value="EC001">ëì 리 ìì¤</button> 1392 <button type="button" name="ser_key_sub_cd2" value="EC002">ëì ì¬ì´í¸ ê°ê²©</button> 1393 <button type="button" name="ser_key_sub_cd2" value="EC003">ë¤ìí ëì´ìì¤</button> 1394 <button type="button" name="ser_key_sub_cd2" value="ED000">ì¹ì í ì¬ì¥ë</button> 1395 <button type="button" name="ser_key_sub_cd2" value="ED001">매ëíì</button> 1396 </div> 1397 </li> 1398 1399 </ul> 1400 </div> 1401 <div class="btm search_filter"> 1402 <!-- ì´ê¸°í on ì¼ë¡ ì ì´ --> 1403 <a id="popFilterResetButton" class="btn_refresh">ì´ê¸°í</a> 1404 <button type="button" class="btn_orange" id="searchSubmitButton">íí° ê²ì</button> 1405 </div> 1406 </div> 1407</div> 1408
1409<script> 1410 const headFilterManager = { 1411 init: function(){ 1412 this.swiperKeywordFilter(); 1413 this.swiperBadgeFilter(); 1414 this.isHeadFilterCheck(); 1415 1416 let lastScrollTop = 0; 1417 const headFilter = document.getElementById("headFilter"); 1418 1419 window.addEventListener("scroll", () => { 1420 let scrollTop = window.scrollY || document.documentElement.scrollTop; 1421 1422 if (scrollTop < 170) { 1423 // ìµìë¨ììë íì ë³´ì´ê² ì¤ì 1424 headFilter.style.transform = "translate(-50%)"; 1425 headFilter.style.opacity = "1"; 1426 } else if (scrollTop > lastScrollTop) { 1427 // ìëë¡ ì¤í¬ë¡¤ ì ì¨ê¹ 1428 headFilter.style.transform = "translate(-50%,-100%)"; 1429 headFilter.style.opacity = "0"; 1430 } else { 1431 // ìë¡ ì¤í¬ë¡¤ ì ë ¸ì¶ 1432 headFilter.style.transform = "translate(-50%)"; 1433 headFilter.style.opacity = "1"; 1434 } 1435 1436 lastScrollTop = scrollTop; 1437 }); 1438 }, 1439 swiperKeywordFilter: function(){ 1440 const sr_condi_swiper = new Swiper('.sr_condi_swiper', { 1441 pagination: false, 1442 slidesPerView: 'auto', 1443 paginationClickable: true, 1444 spaceBetween: 8, 1445 freeMode: true, 1446 lazyLoading: true, 1447 observer: true, 1448 observeParents: true, 1449 loop: false 1450 }); 1451 1452 return sr_condi_swiper; 1453 }, 1454 swiperBadgeFilter: function(){ 1455 const filter_cont_swiper = new Swiper('.filter_cont_swiper', { 1456 pagination: false, 1457 slidesPerView: 'auto', 1458 paginationClickable: true, 1459 spaceBetween: 8, 1460 freeMode: true, 1461 lazyLoading: true, 1462 observer: true, 1463 observeParents: true, 1464 loop: false, 1465 }); 1466 1467 return filter_cont_swiper; 1468 }, 1469 // êµ¬ë¶ íí° ë²í¼ active ì ë°ì´í¸ ì´ë²¤í¸ 1470 updateActiveFilters: function() { 1471 const selectedFilters = filterManager._selectedFilters; 1472 1473 // 기존 active í´ëì¤ ì ê±° 1474 document.querySelectorAll(".filter_cont_swiper .swiper-slide").forEach(sli
1474de => { 1475 slide.classList.remove("active"); 1476 }); 1477 1478 // íê·¸ íì¤í ë²í¼ active 1479 if (selectedFilters.ser_festa_gbn != ""){ 1480 const buttonEl = document.querySelector(`.tag_name[value='${selectedFilters.ser_festa_gbn}']`); 1481 if(buttonEl){ 1482 buttonEl.classList.add("active"); 1483 } 1484 } 1485 1486 // íê·¸ í ì¸ ë²í¼ active 1487 if (selectedFilters.ser_disc_yn == "Y"){ 1488 const buttonEl = document.querySelector(`.tag_name[name='ser_disc_yn']`); 1489 buttonEl.classList.add("active"); 1490 } 1491 1492 // íê·¸ ë°ë ¤ë물 ë²í¼ active 1493 if (selectedFilters.ser_camp_spec.some(value => ["BP000"].includes(value))){ 1494 const buttonEl = document.querySelector(`.tag_name[value='${selectedFilters.ser_camp_spec}']`); 1495 buttonEl.classList.add("active"); 1496 } 1497 1498 // íê·¸ ìì´ë¤ ë²í¼ active 1499 if (selectedFilters.ser_kid == "Y"){ 1500 const buttonEl = document.querySelector(`.tag_name[name='ser_kid']`); 1501 buttonEl.classList.add("active"); 1502 } 1503 1504 // íê·¸ ì ì²´í ì¸ ë²í¼ active 1505 if (selectedFilters.ser_get_coupon_yn == "Y"){ 1506 const buttonEl = document.querySelector(`.tag_name[name='ser_get_coupon_yn']`); 1507 buttonEl.classList.add("active"); 1508 } 1509 1510 // ììêµ¬ë¶ ë²í¼ active 1511 if (selectedFilters.ser_site_tp.length > 0) { 1512 document.getElementById("group1_txt")?.closest(".swiper-slide")?.classList.add("active"); 1513 } 1514 1515 // ê²ìêµ¬ë¶ ë²í¼ active 1516 if ( 1517 selectedFilters.ser_camp_spec.some(value => ["BP000", "BP001", "BP002", "BP003"].includes(value)) || 1518 selectedFilters.ser_pg_tp.some(value => ["C", "V"].includes(value)) || 1519 selectedFilters.ser_2peopleOnly === "Y" || selectedFilters.ser_q_point === "Y" || selectedFilters.ser_deposit_yn === "Y" || 1520 selectedFilters.ser_disc_yn === "Y" || selectedFilters.ser_new_yn === "Y" || selectedFilters.ser_long_yn === "Y" || selectedFilters.ser_kid === "Y" || selectedFilters.ser_get_coupon_yn === "Y" 1521 ) { 1522 document.getElementById("group2_txt")?.closest(".swiper-slide")?.classList.add("active"); 1523 } 1524 1525 // ììíê²½ ë²í¼ active 1526 if (selectedFilters.ser_camp_spec.some(value => ["BM000", "BM001", "BL004", "BL003", "BM007", "BM013", "BN000", "BM020"].includes(value))) { 1527 document.getElementById("group3_txt")?.closest(".swiper-slide")?.classList.add("active"); 1528 } 1529 1530 // 주ë³íê²½ ë²í¼ active 1531 if (selectedFilters.ser_camp_position.length > 0 || selectedFilters.ser_camp_spec.some(value => ["BO005", "BO000", "BO002", "BO003", "BO007"].includes(value))) { 1532 document.getElementById("group4_txt")?.closest(".swiper-slide")?.classList.add("active"); 1533 } 1534 1535 // íì¤í기 ë²í¼ active 1536 if (selectedFilters.ser_key_sub_cd2.length > 0) { 1537 document.getElementById("group5_txt")?.closest(".swiper-slide")?.classList.add("active"); 1538 } 1539 }, 1540 // êµ¬ë¶ íí° ë¯¸ë ¸ì¶ ì¬ë¶ ì²´í¬ 1541 isHeadFilterCheck: function() { 1542 if(searchFilterManager._filter.res_date == searchFilterManager._filter.res_end_date || (searchFilterManager._filter.res_date != "" && searchFilterManager._filter.res_end_date == "")){ 1543 document.querySelector('.filter_name[data-value="filter_item1"]').closest(".swiper-slide").style.display = "none"; 1544 document.getElementById("tab_filter_item1").style.display = "none"; 1545 document.getElementById("filter_item1").style.display = "none" 1546 }else{ 1547 document.querySelector('.filter_name[data-value="filter_item1"]').closest(".swiper-slide").style.display = "block"; 1548 document.getElementById("tab_filter_item1").style.display = "block"; 1549 document.getElementById("filter_item1").style.display = "block" 1550 } 1551 } 1552 } 1553 1554 /* ê²ì ê´ë ¨ í¨ì */ 1555 const filterUrlParams = new URLSearchParams(window.location.search); 1556 const filterManager = { 1557 _selectedFilters: { 1558 ser_site_tp: [], 1559 ser_pg_tp: [], 1560 ser_camp_spec: [], 1561 ser_camp_position: [], 1562 ser_key_sub_cd2: [], 1563 ser_kid: "", 1564 ser_2peopleOnly: "", 1565 isPg: "", 1566 ser_q_point: "", 1567 ser_deposit_yn: "", 1568 ser_disc_yn: "", 1569 ser_new_yn: "", 1570 ser_long_yn: "", 1571 ser_key_cd: "", 1572 ser_sort: "", 1573 ser_key_cd: "", 1574 ser_key_sub_cd: "", 1575 ser_keyword: "", 1576 ser_only_able: "", 1577 ser_empty_yn: "", 1578 ser_festa_gbn: "", 1579 ser_get_coupon_yn: "", 1580 page: 0 1581 }, 1582 init: function () { 1583 const popFilterButtonEl = document.getElementById("popFilterButton"); 1584 const popFilterCloseButtonEl = document.getElementById("popFilterCloseButton"); 1585 const popFilterResetButtonEl = document.getElementById("popFilterResetButton"); 1586 const filterNameEl = document.querySelectorAll('.filter_name'); 1587 1588 popFilterButtonEl.addEventListener("click", () => { 1589 this.open() 1590 }); 1591 popFilterCloseButtonEl.addEventListener("click", () => { 1592 this.close() 1593 }); 1594 popFilterResetButtonEl.addEventListener("click", () => { 1595 this.resetFilters() 1596 }); 1597 1598 filterNameEl.forEach(el => { 1599 console.log(el.textContent); 1600 1601 el.addEventListener("click", () => { 1602 this.open(el.dataset.value) 1603 }); 1604 }); 1605 1606 // íí° í목 í´ë¦ ì´ë²¤í¸ ë±ë¡ 1607 document.querySelectorAll(".item_list button").forEach(item => { 1608 item.addEventListener("click", (event) => this.toggleFilter(event)); 1609 }); 1610 1611 //this.sortSelect(); 1612 this.setting(); 1613 this.popFilter(); 1614 }, 1615 // íê·¸ íí° ì´ë²¤í¸ ìì± 1616 createTagClickEvent: function(func){ 1617 // íê·¸ íí° í목 í´ë¦ ì´ë²¤í¸ ë±ë¡ 1618 document.querySelectorAll(".tag_name").forEach(item => { 1619 item.addEventListener("click", (event) => { 1620 this.toggleFilter(event); 1621 func(); 1622 }); 1623 }); 1624 }, 1625 // ì´ê¸° ì¸í í¨ì 1626 setting: function(){ 1627 1628 const siteTpValue = filterUrlParams.get("site_tp") ? filterUrlParams.get("site_tp").split(",").filter(
1628Boolean) : []; 1629 const serPgTpValue = filterUrlParams.get("ser_pg_tp") ? filterUrlParams.get("ser_pg_tp").split(",").filter(Boolean) : []; 1630 const serCampSpecValue = filterUrlParams.get("ser_camp_spec") ? filterUrlParams.get("ser_camp_spec").split(",").filter(Boolean) : []; 1631 const serCampPositionValue = filterUrlParams.get("ser_camp_position") ? filterUrlParams.get("ser_camp_position").split(",").filter(Boolean) : []; 1632 const serKeySubCd2Value = filterUrlParams.get("ser_key_sub_cd2") ? filterUrlParams.get("ser_key_sub_cd2").split(",").filter(Boolean) : []; 1633 1634 filterManager._selectedFilters = { 1635 ser_site_tp: siteTpValue, 1636 ser_pg_tp: serPgTpValue, 1637 ser_camp_spec: serCampSpecValue, 1638 ser_camp_position: serCampPositionValue, 1639 ser_key_sub_cd2: serKeySubCd2Value, 1640 ser_kid: filterUrlParams.get("ser_kid") || "", 1641 ser_2peopleOnly: filterUrlParams.get("ser_2peopleOnly") || "", 1642 isPg: filterUrlParams.get("isPg") || "", 1643 ser_q_point: filterUrlParams.get("ser_q_point") || "", 1644 ser_deposit_yn: filterUrlParams.get("ser_deposit_yn") || "", 1645 ser_disc_yn: filterUrlParams.get("ser_disc_yn") || "", 1646 ser_new_yn: filterUrlParams.get("ser_new_yn") || "", 1647 ser_long_yn: filterUrlParams.get("ser_long_yn") || "", 1648 ser_key_cd: filterUrlParams.get("ser_key_cd") || "", 1649 ser_sort: filterUrlParams.get("ser_sort") || "", 1650 ser_key_cd: filterUrlParams.get("ser_key_cd") || "", 1651 ser_key_sub_cd: filterUrlParams.get("ser_key_sub_cd") || "", 1652 ser_keyword: filterUrlParams.get("ser_keyword") || "", 1653 ser_only_able: filterUrlParams.get("ser_only_able") || "", 1654 ser_empty_yn: filterUrlParams.get("ser_empty_yn") || "", 1655 ser_festa_gbn: filterUrlParams.get("ser_festa_gbn") || "", 1656 ser_get_coupon_yn: filterUrlParams.get("ser_get_coupon_yn") || "", 1657 page: 0 1658 } 1659 1660 // í´ë¹ íí°ê°ì´ ì¡´ì¬íë©´ active í´ëì¤ ì¶ê° 1661 Object.keys(filterManager._selectedFilters).forEach(key => { 1662 const value = filterManager._selectedFilters[key]; 1663 1664 if (Array.isArray(value)) { 1665 value.forEach(val => { 1666 document.querySelectorAll(`.item_list button[name='${key}'][value='${val}']`).forEach(btn => btn.classList.add("active")); 1667 }); 1668 } else if (value === "Y") { 1669 document.querySelectorAll(`.item_list button[name='${key}']`).forEach(btn => btn.classList.add("active")); 1670 } 1671 }); 1672 1673 // íì¤í ê²ì ì sort ê° E ì¸í 1674 if(filterManager._selectedFilters.ser_festa_gbn != ""){ 1675 //filterManager._selectedFilters.ser_sort = "E"; 1676 } 1677 1678 // 리ì¤í¸ ìì ë²í¼ ì´ê¸° ì´ë²¤í¸ 1679 filterManager.sortChangeEvent(); 1680 headFilterManager.updateActiveFilters(); 1681 }, 1682 // íí° íì ì´ê¸° 1683 open: function (filterType) { 1684 const scrollPosition = window.scrollY; 1685 const headInElement = document.querySelector('.head_in'); 1686 const containerElement = document.querySelector('.container'); 1687 const top = scrollPosition - 60; // head ëì´ ê° ì ì¸ 1688 1689 document.body.style.position = 'fixed'; 1690 document.body.style.top = `-${top}px`; 1691 1692 containerElement.style.marginTop = '175px'; 1693 1694 headInElement.style.position = 'fixed'; 1695 headInElement.style.top = `0px`; 1696 headInElement.style.left = '50%'; 1697 headInElement.style.width = '100%'; 1698 headInElement.style.transform = 'translateX(-50%)'; 1699 headInElement.style.maxWidth = '640px'; 1700 1701 if(filterType){ 1702 document.querySelector(`.filter_item[data-target='${filterType}']`)?.click(); 1703 } 1704 1705 openLayer('filter_pop'); 1706 }, 1707 // íí° íì ë«ê¸° 1708 close: function () { 1709 const headInElement = document.querySelector('.head_in'); 1710 const containerElement = document.querySelector('.container'); 1711 const scrollY = document.body.style.top; 1712 1713 containerElement.style.marginTop = '115px'; 1714 1715 document.body.style.position = ''; 1716 document.body.style.top = ''; 1717 headInElement.style.position = 'relative'; 1718 headInElement.style.top = ''; 1719 window.scrollTo(0, parseInt(scrollY || '0') * -1); 1720 1721 closeLayer('filter_pop'); 1722 }, 1723 // íì íí° íì´ì§ ì´ë²¤í¸ 1724 popFilter: function () { 1725 const swiper = this.popFilterSwiper(); 1726 1727 const fixedTop = document.querySelector('.filter_top_fixed'); 1728 let initialTopPosition = fixedTop.offsetTop; // ì´ê¸° ìì¹ íì 1729
1730 const updateFixedTop = () => { 1731 if (window.scrollY >= initialTopPosition) { 1732 fixedTop.classList.add('fixed'); 1733 } else { 1734 fixedTop.classList.remove('fixed'); 1735 } 1736 }; 1737 1738 // í ì¤í¬ë¡¤ ì´ë²¤í¸ ì¤ì 1739 const popupContainer = document.querySelector('.filter_pop_ul'); 1740 let isManualScroll = false; 1741 1742 popupContainer.addEventListener('scroll', () => { 1743 if (isManualScroll) return; // ìë ì¤í¬ë¡¤ ì ì¤í¬ë¡¤ ì´ë²¤í¸ 무ì 1744 updateFixedTop(); 1745 1746 const allTabs = document.querySelectorAll('.filter_item'); 1747 let activeTabFound = false; // íì±íë íì í ë²ë§ ì°¾ìë´ëë¡ íëê·¸ ì¤ì 1748 1749 if (popupContainer.scrollTop === 0) { 1750 allTabs.forEach(tab => tab.classList.remove('active')); 1751 allTabs[0].classList.add('active'); 1752 1753 // 모ë°ì¼ììë Swiperë 첫 ë²ì§¸ íì¼ë¡ ì´ë 1754 if (window.innerWidth <= 640) { 1755 swiper.slideTo(0); 1756 } 1757 return; 1758 } 1759 1760 allTabs.forEach((tab, index) => { 1761 const targetId = tab.getAttribute('data-target'); 1762 const targetElement = document.getElementById(targetId); 1763 1764 if (targetElement && !activeTabFound) { 1765 const rect = targetElement.getBoundingClientRect(); 1766 1767 if (rect.top <= 128 && rect.bottom >= 128) { 1768 // ì¹ì ì´ íë©´ ë´ 128px ììì ë³´ì¼ ë íì±í 1769 tab.classList.add('active'); 1770 activeTabFound = true; // 첫 ë²ì§¸ë¡ ë³´ì´ë ì¹ì ì í´ë¹íë íì activeë¡ ì¤ì 1771 1772 // Swiper를 í´ë¹ í ìì¹ë¡ ì´ë (모ë°ì¼ì¼ ê²½ì°ë§ ì ì©) 1773 if (window.innerWidth <= 640) { // 모ë°ì¼ ì²´í¬ 1774 swiper.slideTo(index); // active íì¼ë¡ swiper ì´ë 1775 } 1776 } else { 1777 tab.classList.remove('active'); 1778 } 1779 } else { 1780 tab.classList.remove('active'); 1781 } 1782 }); 1783 }); 1784 1785 1786 // í í´ë¦ ì ìëì¼ë¡ íì±í ì¤ì 1787 document.querySelectorAll('.filter_item').forEach((tab, index) => { 1788 tab.addEventListener('click', function () { 1789 if (tab.style.display === 'none') return; // display: none ìíì íì 무ì 1790 1791 isManualScroll = true; // ì¤í¬ë¡¤ ì´ë²¤í¸ ì¼ì ì¤ì§ 1792 1793 // 모ë íìì active ì ê±° í íì¬ í´ë¦í íì active ì¶ê° 1794 document.querySelectorAll('.filter_item').forEach(item => item.classList 1795 .remove('active')); 1796 this.classList.add('active'); 1797 1798 // í´ë¹ ì¹ì ì¼ë¡ íì ë´ë¶ ì¤í¬ë¡¤ ì´ë 1799 const targetId = this.getAttribute('data-target'); 1800 const targetElement = document.getElementById(targetId); 1801 const popupContainer = document.querySelector('.filter_pop_ul'); 1802 1803 if (targetElement && popupContainer) { 1804 popupContainer.scrollTo({ 1805 top: targetElement.offsetTop - popupContainer.offsetTop, 1806 behavior: 'smooth' 1807 }); 1808 1809 if (window.innerWidth <= 640) { 1810 swiper.slideTo(index); // Swiper í ì´ë 1811 } 1812 1813 // ì¤í¬ë¡¤ì´ ëë í ë¤ì ì¤í¬ë¡¤ ì´ë²¤í¸ íì±í 1814 setTimeout(() => { 1815 isManualScroll = false; 1816 }, 500); 1817 } 1818 }); 1819 }); 1820 1821 1822 // ì´ê¸° ìì¹ ì ë°ì´í¸ë¥¼ ìí 리ì¬ì´ì¦ ì´ë²¤í¸ ì²ë¦¬ 1823 window.addEventListener('resize', () => { 1824 initialTopPosition = fixedTop.offsetTop;
1825 updateFixedTop(); 1826 }); 1827 1828 updateFixedTop(); 1829 }, 1830 // íí° íì íì´ì§ í 1831 popFilterSwiper: function () { 1832 const swiper = new Swiper('.filter_top_fixed', { 1833 slidesPerView: 'auto', 1834 spaceBetween: 8, 1835 freeMode: true 1836 }); 1837 1838 return swiper; 1839 }, 1840 // ì ë ¬ ê¸°ì¤ íì ì´ë²¤í¸ 1841 sortSelect: function (fun) { 1842 const eventBtnEl = document.getElementById('sortChoiceButton'); 1843 const options = document.querySelectorAll(".opt"); 1844 const parentEl = eventBtnEl.parentNode; 1845 1846 // í´ë¦í ìµì ì í ì¤í¸ë¥¼ ë¼ë²¨ ìì ë£ì 1847 const handleSelect = (item) => { 1848 parentEl.classList.remove("on"); 1849 eventBtnEl.innerHTML = item.textContent; 1850 1851 filterManager._selectedFilters.ser_sort = item.dataset.value; 1852 fun(); 1853 }; 1854 1855 // ìµì í´ë¦ ì í´ë¦í ìµì ì ëê¹ 1856 options.forEach((option) => { 1857 option.addEventListener("click", (event) => { 1858 event.stopPropagation(); // ì´ë²¤í¸ ë²ë¸ë§ ë°©ì§ 1859 handleSelect(option); 1860 }); 1861 }); 1862 1863 // ë¼ë²¨ì í´ë¦ ì ìµì 목ë¡ì´ ì´ë¦¼/ë«í 1864 eventBtnEl.addEventListener("click", (event) => { 1865 event.stopPropagation(); // ì´ë²¤í¸ ë²ë¸ë§ ë°©ì§ 1866 parentEl.classList.toggle("on"); 1867 }); 1868 1869 // **ì´ì¸ ìì í´ë¦ ì ë«ê¸°** 1870 const closeDropdown = (event) => { 1871 if (!parentEl.contains(event.target)) { 1872 parentEl.classList.remove("on"); 1873 } 1874 }; 1875 1876 document.addEventListener("click", closeDropdown); 1877 1878 // **ì¤í¬ë¡¤ ì ë«ê¸°** 1879 document.addEventListener("scroll", () => { 1880 parentEl.classList.remove("on"); 1881 }); 1882 }, 1883 // ì ë ¬ê¸°ì¤ ë³ê²½ 1884 sortChangeEvent: function(){ 1885 // 리ì¤í¸ ìì ë²í¼ ì´ê¸° ì´ë²¤í¸ 1886 const sortChoiceButtonEl = document.getElementById("sortChoiceButton"); 1887 if(sortChoiceButtonEl != null){ 1888 let buttonText; 1889 1890 switch (filterManager._selectedFilters.ser_sort) { 1891 case "R": 1892 buttonText = "ì¶ì²ì"; 1893 break; 1894 case "P": 1895 buttonText = "ì¡°íì"; 1896 break; 1897 case "E": 1898 buttonText = "ë¹ì리ì"; 1899 break; 1900 case "F": 1901 buttonText = "ê°ê²©ì"; 1902 break; 1903 case "S": 1904 buttonText = "í기ë§ìì"; 1905 break; 1906 case "N": 1907 buttonText = "ìµê·¼í기ì"; 1908 break; 1909 default: 1910 buttonText = "ì¶ì²ì"; // ê¸°ë³¸ê° 1911 } 1912 1913 sortChoiceButtonEl.innerHTML = buttonText; 1914 } 1915 }, 1916 // ìì½ê°ë¥ ë°ì´í°ë§ 1917 toggleEmpty: function(){ 1918 const isEmpty = filterManager._selectedFilters.ser_only_able; 1919 const emptyButtonEl = document.getElementById("empty_y"); 1920 1921 if(isEmpty == "on"){ 1922 filterManager._selectedFilters.ser_only_able = ""; 1923 filterManager._selectedFilters.ser_empty_yn = "N"; 1924 }else{ 1925 filterManager._selectedFilters.ser_only_able = "on"; 1926 filterManager._selectedFilters.ser_empty_yn = "Y"; 1927 } 1928 1929 this.updateEmptyState(); 1930 }, 1931 // ìì½ê°ë¥ ë²í¼ ì´ë²¤í¸ 1932 updateEmptyState: function(){ 1933 const emptyButtonEl = document.getElementById("empty_y"); 1934 1935 if (filterManager._selectedFilters.ser_only_able == "on") { 1936 emptyButtonEl.classList.add("active"); 1937 } else { 1938 emptyButtonEl.classList.remove("active"); 1939 } 1940 }, 1941 // íí° í목 í´ë¦ ì íì±í/ë¹íì±í 1942 toggleFilter: function (event) { 1943 const searchPageType = 'LIST'; 1944 const target = event.target; 1945 const name = target.getAttribute("name");
1946 const value = target.getAttribute("value"); 1947 1948 // íì¤í ë²í¼ì¼ ë 1949 if(name == "ser_festa_gbn"){ 1950 1951 //ë§ë§íìº íì¸ ê²½ì° ì ì¤ì¼ì ê¸°ë³¸ê° set 1952 if (value == "DL002") { 1953 searchFilterManager._filter.res_date = "20251001"; 1954 searchFilterManager._filter.res_end_date = "20251002"; 1955 } 1956 1957 document.querySelectorAll(".tag_name.festa_button").forEach(item => item.classList.remove("active")); 1958 1959 if(filterManager._selectedFilters[name] == value){ 1960 document.querySelector(`.tag_name.festa_button[value='${value}']`).classList.remove("active"); 1961 filterManager._selectedFilters[name] = ""; 1962 }else{ 1963 document.querySelector(`.tag_name.festa_button[value='${value}']`).classList.add("active"); 1964 filterManager._selectedFilters[name] = value; 1965 1966 //filterManager._selectedFilters.ser_sort = "E"; 1967 filterManager.sortChangeEvent(); 1968 } 1969 1970 return; 1971 } 1972 1973 // _selectedFilters[name]ì´ ì¡´ì¬íì§ ìì¼ë©´ ê¸°ë³¸ê° ì¤ì 1974 if (this._selectedFilters[name] === undefined) { 1975 this._selectedFilters[name] = []; 1976 } 1977 1978 // ë°°ì´ì¸ ê²½ì° (ex: ser_site_tp, ser_pg_tp ë±) 1979 if (Array.isArray(this._selectedFilters[name])) { 1980 1981 // valueì 콤ë§ê° ìì¼ë©´ ë°°ì´ë¡ ë¶ë¦¬ 1982 const valueList = String(value) 1983 .split(",") 1984 .map(item => item.trim()) 1985 .filter(item => item !== ""); 1986 1987 // valueList ê°ë¤ì´ ì ë¶ ì íëì´ ìì¼ë©´ í´ì , ìëë©´ ì í 1988 const isSelected = valueList.every(item => this._selectedFilters[name].includes(item)); 1989 1990 if (isSelected) { 1991 // ì í í´ì 1992 this._selectedFilters[name] = this._selectedFilters[name].filter(item => !valueList.includes(item)); 1993 1994 // ì본 value ë²í¼ ë¹íì±í ex) value="A,B" 1995 document.querySelectorAll(`.item_list button[name='${name}'][value='${value}']`).forEach(item => item.classList.remove("active")); 1996 document.querySelectorAll(`.tag_name[name='${name}'][value='${value}']`).forEach(item => item.classList.remove("active")); 1997 1998 // ë¶ë¦¬ë value ë²í¼ë¤ë ë¹íì±í ex) value="A", value="B" 1999 valueList.forEach(filterValue => { 2000 document.querySelectorAll(`.item_list button[name='${name}'][value='${filterValue}']`).forEach(item => item.classList.remove("active")); 2001 document.querySelectorAll(`.tag_name[name='${name}'][value='${filterValue}']`).forEach(item => item.classList.remove("active")); 2002 }); 2003 2004 if (searchPageType == "LIST" && name == "ser_site_tp") { 2005 searchFilterManager._filter['site_type'] = searchFilterManager._filter['site_type'].filter(item => !valueList.includes(item)); 2006 searchFilterManager.getSiteType(); 2007 } 2008 2009 } else { 2010 // ì í ì¶ê° - ì¤ë³µ ë°©ì§ 2011 valueList.forEach(filterValue => { 2012 if (!this._selectedFilters[name].includes(filterValue)) { 2013 this._selectedFilters[name].push(filterValue); 2014 } 2015 }); 2016 2017 // ì본 value ë²í¼ íì±í ex) value="A,B" 2018 document.querySelectorAll(`.item_list button[name='${name}'][value='${value}']`).forEach(item => item.classList.add("active")); 2019 document.querySelectorAll(`.tag_name[name='${name}'][value='${value}']`).forEach(item => item.classList.add("active")); 2020 2021 // ë¶ë¦¬ë value ë²í¼ë¤ë íì±í ex) value="A", value="B" 2022 valueList.forEach(filterValue => { 2023 document.querySelectorAll(`.item_list button[name='${name}'][value='${filterValue}']`).forEach(item => item.classList.add("active"));
2024 document.querySelectorAll(`.tag_name[name='${name}'][value='${filterValue}']`).forEach(item => item.classList.add("active")); 2025 }); 2026 2027 if (searchPageType == "LIST" && name == "ser_site_tp") { 2028 valueList.forEach(filterValue => { 2029 if (!searchFilterManager._filter['site_type'].includes(filterValue)) { 2030 searchFilterManager._filter['site_type'].push(filterValue); 2031 } 2032 }); 2033 2034 searchFilterManager.getSiteType(); 2035 } 2036 } 2037 } 2038 // ë°°ì´ì´ ìë ê²½ì° (ex: ser_kid, ser_2peopleOnly ë±) 2039 else { 2040 if(this._selectedFilters[name] == ""){ 2041 this._selectedFilters[name] = value; 2042 }else{ 2043 this._selectedFilters[name] = ""; 2044 } 2045 2046 document.querySelectorAll(`.item_list button[name='${name}']`).forEach(item => item.classList.toggle("active", this._selectedFilters[name] === "Y")); // íí° íì±í ì¬ë¶ ì¤ì 2047 document.querySelectorAll(`.tag_name[name='${name}'][value='${value}']`).forEach(item => item.classList.toggle("active", this._selectedFilters[name] === "Y")); // íê·¸ íì±í ì¬ë¶ ì¤ì 2048 } 2049 2050 headFilterManager.updateActiveFilters(); 2051 }, 2052 // íí° ì ì© (ê²ì ì¤í) 2053 applyFilters: function (dataFatch) { 2054 2055 }, 2056 // íí° ì´ê¸°í 2057 resetFilters: function () { 2058 this._selectedFilters = { 2059 resStartDate: '20261002', 2060 resEndDate: '20261002', 2061 ser_site_tp: [], 2062 ser_pg_tp: [], 2063 ser_camp_spec: [], 2064 ser_camp_position: [], 2065 ser_key_sub_cd2: [], 2066 ser_kid: "N", 2067 ser_2peopleOnly: "N", 2068 isPg: "N", 2069 ser_q_point: "N", 2070 ser_deposit_yn: "N", 2071 ser_disc_yn: "N", 2072 ser_new_yn: "N", 2073 ser_long_yn: "N", 2074 ser_get_coupon_yn: "N", 2075 ser_sort: "R", 2076 ser_key_cd: "", 2077 ser_key_sub_cd: "", 2078 ser_keyword: "", 2079 ser_only_able: "", 2080 ser_empty_yn: "", 2081 ser_festa_gbn: "", 2082 page: 0 2083 }; 2084 2085 searchFilterManager.syncFilters(); 2086 headFilterManager.updateActiveFilters(); 2087 2088 // 모ë íí° í목 ë¹íì±í 2089 document.querySelectorAll(".item_list button").forEach(item => { 2090 item.classList.remove("active"); 2091 }); 2092 }, 2093 2094 }; 2095 2096 document.addEventListener("DOMContentLoaded", function() { 2097 headFilterManager.init(); 2098 filterManager.init(); 2099 }); 2100</script>
2100 2101 2102 <div class="view_filter"> 2103 <!-- sel_ok - ë ì§ ì íëì ëë§ ë ¸ì¶ --> 2104 <div> 2105 <div class="sel_ok" id="empty_y" style="display: none">ìì½ê°ë¥</div> 2106 </div> 2107 <div class="right_div"> 2108 <div class="sel_div"> 2109 <button type="button" id="sortChoiceButton" class="label">ì¶ì²ì</button> 2110 <ul class="opt_ul"> 2111 <li class="opt" data-value="R">ì¶ì²ì</li> 2112 <li class="opt" data-value="P">ì¡°íì</li> 2113 <li class="opt" data-value="E">ë¹ì리ì</li> 2114 <li class="opt" data-value="F">ê°ê²©ì</li> 2115 <li class="opt" data-value="S">í기ë§ìì</li> 2116 <li class="opt" data-value="N">ìµê·¼í기ì</li> 2117 </ul> 2118 </div> 2119 <div class="sel_view main-info-box"> 2120 <img src="../images/thumb.png" alt="리ì¤í¸ë¡ 보기" /> 2121 <div class="balloon-badge bottom right" id="viewInfoBox">íëì 모ì보기</div> 2122 </div> 2123 </div> 2124 </div> 2125 2126 <!-- 목ë¡íì¼ëë§ view_type_info ì¶ê° --> 2127 <div id="DivResvPrList" class="camp_list view_type"></div><!--// camp_list --> 2128 2129 <div id="DivResvList" class="camp_list view_type" style="min-height: 50px;"></div><!--// camp_list --> 2130 <div id="loading_image" style="display:none;width:100%;text-align:center;padding:10px;border:1px;"><img src="/images/loading.svg" alt="Loading..." style="width:25px;"/></div> 2131 2132 </div><!--// sear_result_con --> 2133 <!--ââââââ 컨í ì¸ ë *******************âââââââââ --> 2134 </div> <!--// container --> 2135 2136 2137<style> 2138 .search_marker{ 2139 position: absolute; 2140 top: 50%; 2141 left: 50%; 2142 transform: translate(-50%, -50%); 2143 width: 16px; 2144 height: 16px; 2145 border-radius: 16px; 2146 background: #fff; 2147 z-index: 1; 2148 } 2149 .now_marker{ 2150 position: absolute; 2151 top: 50%; 2152 left: 50%; 2153 transform: translate(-50%, -50%); 2154 width: 16px; 2155 height: 16px; 2156 border-radius: 16px; 2157 background: #fff; 2158 z-index: 1; 2159 } 2160 .now_marker:after{ 2161 content: ""; 2162 display: block; 2163 position: absolute; 2164 top: 50%; 2165 left: 50%; 2166 transform: translate(-50%, -50%); 2167 width: 20px; 2168 height: 20px; 2169 border-radius: 20px; 2170 background: #F27226; 2171 opacity: .5; 2172 z-index: -1; 2173 } 2174 .now_marker:before{ 2175 content: ""; 2176 display: block; 2177 position: absolute; 2178 top: 50%; 2179 left: 50%; 2180 transform: translate(-50%, -50%); 2181 width: 10px; 2182 height: 10px; 2183 border-radius: 10px; 2184 border: 2px solid #fff; 2185 background: #F27226; 2186 } 2187 .ui-state-active, .ui-state-active a:hover { 2188 position:relative; 2189 border-radius: 100rem; 2190 } 2191 .ui-state-active a{ 2192 position: relative; 2193 border-radius: 100rem; 2194 background: #f47206 !important; 2195 } 2196 td.ui-state-active.left:before{ 2197 content: ""; 2198 position: absolute; 2199 top:0; 2200 left: 0; 2201 display: block; 2202 width: 50%; 2203 height: 100%; 2204 transform: translateX(100%); 2205 background: #FFCCAD; 2206 } 2207 td.ui-state-active.right:before{ 2208 content: ""; 2209 position: absolute; 2210 top:0; 2211 right: 0; 2212 display: block; 2213 width: 50%; 2214 height: 100%; 2215 transform: translateX(-100%); 2216 background: #FFCCAD; 2217 } 2218 .ui-state-active-a{ 2219 background: #FFCCAD !important; 2220 } 2221 .stay_btn_swiper .swiper-slide{ width: auto; } 2222 2223</style> 2224 2225<div class="pop_layer_set2" id="search_pop"> 2226 <!-- íí° ëë ì ë ëì¤ë ì°½ --> 2227 <div class="filter_pop"> 2228 <div class="search head"> 2229 <div class="head_in" style="overflow: initial"> 2230 <button type="button" class="btn_close" id="popSearchCloseButton"></button> 2231 <ul class="search_tab"> 2232 <li class="main-info-box active" id="listTab">ììê²ì</li> 2233 <li class="main-info-box" id="mapTab"> 2234 ì§ëê²ì 2235 <div class="balloon-badge bottom center" id="mapInfoBox">ê°ê¹ì´ ìì찾기</div> 2236 </li> 2237 </ul> 2238 </div> 2239 </div> 2240 2241 <div> 2242 <!--ââââââ 컨í ì¸ ìì ââââââ--> 2243 <div class="search_content" id="list-search-content" style="display: none;"> 2244 <div class="search_form_box"> 2245 <div class="search_form_input search"> 2246 <input type="text" id="ser_keyword_" list="sear_list" value="" placeholder="ììëª ì ì ë ¥íì¸ì" style="width: 100%; font-size: 14px; outline: 0; border: 0;" /> 2247 <span class="ico_del" id="deleteKeyword" style="display:none;"></span> 2248 <div id="search_result_info_box" class="search_result_info_box"> 2249 <p class="info">ì ì²´ëª í´ë¦ì, ìì¸íì´ì§ë¡ ì´ëí©ëë¤.</p> 2250 <p class="info">ë¤ë¥¸ ì¡°ê±´ì¼ë¡ ê²ìíë ¤ë©´, í ê²ìí목ì ë°ë¡ í´ë¦íì¸ì.</p> 2251 </div> 2252 <ul id="search_result_box" class="search_result_box"></ul> 2253 </div> 2254 <div class="search_form_input place"> 2255 <span class="placeholder">ì§ìì ì í íì¸ì.</span> 2256 <div class="search_choice_box"> 2257 <div style="display: flex;justify-content: space-between;align-items:center;"> 2258 <h3 class="title">ì§ìì ì íí´ ì£¼ì¸ì.</h3> 2259 <p style="color:#8E8E8E;font-size: 12px;">ìµë 3ê° ì í</p> 2260 </div> 2261 <div class="content"> 2262 <div class="swiper-container place_tab_swiper"> 2263 <ul class="swiper-wrapper"> 2264 <li class="swiper-slide place_button" data-value="" data-region="" data-arr="-1">ì§ìì ì²´</li> 2265 <!--li class="swiper-slide place_button" data-value="ê°ìê¶" data-region="" data-arr="0">ê°ì</li> 2266 <li class="swiper-slide place_button" data-value="ê²½ìê¶" data-region="" data-arr="1">ê²½ì</li> 2267 <li class="swiper-slide place_button" data-value="경기ê¶" data-region="" data-arr="2">경기</li> 2268 <li class="swiper-slide place_button" data-value="ì¶©ì²ê¶" data-region="" data-arr="3">ì¶©ì²</li> 2269 <li class="swiper-slide place_button" data-value="ì ë
2269¼ê¶" data-region="" data-arr="4">ì ë¼</li> 2270 <li class="swiper-slide place_button" data-value="ì 주ê¶" data-region="" data-arr="5">ì 주</li> 2271 <li class="swiper-slide place_button" data-value="ì¸ì²" data-region="" data-arr="6">ì¸ì²</li--> 2272 <li class="swiper-slide place_button" data-value="ê°ì" data-region="" data-arr="0">ê°ì</li><li class="swiper-slide place_button" data-value="경기" data-region="" data-arr="1">경기</li><li class="swiper-slide place_button" data-value="ê²½ë¨" data-region="" data-arr="4">ê²½ë¨</li><li class="swiper-slide place_button" data-value="ê²½ë¶" data-region="" data-arr="5">ê²½ë¶</li><li class="swiper-slide place_button" data-value="ì ë¨" data-region="" data-arr="14">ì ë¨</li><li class="swiper-slide place_button" data-value="ì ë¶" data-region="" data-arr="15">ì ë¶</li><li class="swiper-slide place_button" data-value="ì¶©ë¨" data-region="" data-arr="11">ì¶©ë¨</li><li class="swiper-slide place_button" data-value="ì¶©ë¶" data-region="" data-arr="12">ì¶©ë¶</li><li class="swiper-slide place_button" data-value="ì¸ì²" data-region="" data-arr="2">ì¸ì²</li><li class="swiper-slide place_button" data-value="ì 주" data-region="" data-arr="16">ì 주</li><li class="swiper-slide place_button" data-value="ìì¸" data-region="" data-arr="3">ìì¸</li><li class="swiper-slide place_button" data-value="ëì " data-region="" data-arr="9">ëì </li><li class="swiper-slide place_button" data-value="ì¸ì¢ " data-region="" data-arr="10">ì¸ì¢ </li><li class="swiper-slide place_button" data-value="ë구" data-region="" data-arr="6">ë구</li><li class="swiper-slide place_button" data-value="ë¶ì°" data-region="" data-arr="8">ë¶ì°</li><li class="swiper-slide place_button" data-value="ì¸ì°" data-region="" data-arr="7">ì¸ì°</li> 2273 </ul> 2274 </div> 2275 <div id="place_result_box" class="place_result_box"></div> 2276 <div id="place_choice_box" class="place_choice_box"> 2277 <ul></ul> 2278 </div> 2279 </div> 2280 </div> 2281 </div> 2282 <div class="search_form_input calendar"> 2283 <span class="placeholder">ë ì§ë¥¼ ì íí´ ì£¼ì¸ì.</span> 2284 <div class="search_choice_box"> 2285 <h3 class="title">ë ì§ë¥¼ ì íí´ ì£¼ì¸ì.</h3> 2286 <div class="content"> 2287 <div class="datepicker-list"></div> 2288 <div style="display:flex;align-items:center;justify-content:space-between;margin-top:16px;"> 2289 <button type="button" id="calendarResetButton" style="background: #fff url(../images/re-search.png) 1rem center no-repeat;border: 0;padding: 0 1rem 0 3rem;">ì¼ì ì´ê¸°í</button> 2290 <button type="button" class="twonight" >2ë° ì í</button> 2291 </div> 2292 </div> 2293 </div> 2294 </div> 2295 <div class="search_form_button stay" id="search_site_type_box" > 2296 <div class="swiper-container stay_btn_swiper"> 2297 <ul class="swiper-wrapper"> 2298 <li class="swiper-slide"> 2299 <button type="button" class="stay_button active" id="site_tp_all">ì ì²´</button> 2300 </li> 2301 <li class="swiper-slide"> 2302 <button type="button" class="stay_button" name="site_tp" value="BB000">ì¤í ìº í</button> 2303 </li> 2304 <li class="swiper-slide"> 2305 <button type="button" class="stay_button" name="site_tp" value="BB001">ê¸ë¨í</button> 2306 </li> 2307 <li class="swiper-slide"> 2308 <button type="button" class="stay_button" name="site_tp" value="BB002">ì¹´ë¼ë°</button> 2309 </li> 2310 <li class="swiper-slide"> 2311 <button type="button" class="stay_button" name="site_tp" value="BB003">íì </button> 2312 </li> 2313 </ul> 2314 </div> 2315 </div> 2316 <div class="search_form_input people"> 2317 <span class="placeholder">ì±ì¸0, ìì¸0</span> 2318 <div class="search_choice_box"> 2319 <h3 class="title">ì¸ìì ì íí´ ì£¼ì¸ì.</h3> 2320 <p class="text">ìì¸ì ëí ëì´ê¸°ì¤ ë° ì¶ê°ìê¸ ì ì± ì ì ì²´ë³ë¡ ìì´íë ìì½ì ìë´ì¬íì ë°ëì íì¸íì기 ë°ëëë¤.</p> 2321 <div class="content"> 2322 <div class="people_count"> 2323 <span class="people_count_text">ì±ì¸</span> 2324 <div class="count_box adult"> 2325 <!-- 0ì¼ë - ë²í¼ì í´ëì¤ disabled ì¶ê° --> 2326 <button type="button" class="count_box_decrease disabled"></button> 2327 <span class="count_box_num">0</span> 2328 <button type="button" class="count_box_increase"></button> 2329 </div> 2330 </div> 2331 <div class="people_count"> 2332 <span class="people_count_text">ìì¸</span> 2333 <div class="count_box child"> 2334 <button type="button" class="count_box_decrease disabled"></button> 2335 <span class="count_box_num">0</span> 2336 <button type="button" class="count_box_increase disabled"></button> 2337 </div> 2338 </div> 2339 </div> 2340 </div> 2341 </div> 2342 </div> 2343 2344 <!-- <button type="button" class="find_nearby_btn">ë´ ì£¼ë³ìì ê²ì</button> --> 2345 2346 <!-- ìµê·¼ ê²ì ì¡°ê±´ ë ¸ì¶ íì´ì§ SearchTypePage TYPE: "LIST" | "MAP" | "MAIN" --> 2347 2348 <!-- ìµê·¼ ê²ì ì¡°ê±´ ë ¸ì¶ íì´ì§ END --> 2349 2350 <!-- ê²ì ê´ê³ ìì --> 2351 2352 <div class="recent_searches"> 2353 <div class="title"> 2354 <strong>ì´ë¬ì ë¡í ì¶ì² ìº íì¥</strong> 2355 </div> 2356 <div class="content"> 2357 <div class="swiper-container ad_camp_swiper" style="padding: 0;"> 2358 <ul class="swiper-wrapper" id="adContent"> 2359 2360 <li class="swiper-slide swiper-slide-active"> 2361 <a href="javascript:clkCampPr(2004,3664,'SEARCH');"> 2362 <div class="pic"> 2363 <div class="top_bat" style="position: absolute; padding: 6px; margin: 0; justify-content: end;"> 2364 <p class="bat_ad">AD</p> 2365 </div> 2366 <img src="/file/2021/06/08/thumbM_202106083227.995.jpg"> 2367 </div> 2368 <div class="txt_box"> 2369 <p class="tit">ìì´ë¯¸ìº íì¥</p> 2370 <p class="txt">ê°ì ììêµ°</p> 2371 <div class="price_g"> 2372 2373 <p class="price">60,000ì~</p> 2374 </div> 2375 </div> 2376 </a> 2377 </li> 2378 2379 <li class="swiper-slide swiper-slide-active"> 2380 <a href="javascript:clkCampPr(2067,7330,'SEARCH');"> 2381 <div class="pic"> 2382 <div class="top_bat" style="position: absolute; padding: 6px; margin: 0; justify-content: end;"> 2383 <p class="bat_ad">AD</p> 2384 </div> 2385 <img src="/file/2023/07/22/thumbM_2023072247876.2.jpg"> 2386 </div> 2387 <div class="txt_box"> 2388 <p class="tit">ì²íëë³ë¹ìº íì¥</p> 2389 <p class="txt">ê²½ë¨ íëêµ°</p> 2390 <div class="price_g"> 2391 2392 <p class="price">50,000ì~</p> 2393 </div> 2394 </div> 2395 </a> 2396 </li> 2397 2398 <li class="swiper-slide swiper-slide-active"> 2399 <a href="javascript:clkCampPr(1882,17651,'SEARCH');"> 2400 <div class="pic"> 2401 <div class="top_bat" style="position: absolute; padding: 6px; margin: 0; justify-content: end;"> 2402 <p class="bat_ad">AD</p> 2403 </div> 2404 <img src="https://image.thankqcamping.com/file/2025/08/27/e73bfa88-08b0-4c99-9b65-8503a715337a-m.jpg"> 2405 </div> 2406 <div class="txt_box"> 2407 <p class="tit">ì°ê³¼ ë² ìº íì¥</p> 2408 <p class="txt">
2408ì¶©ë¶ ì§ì²êµ°</p> 2409 <div class="price_g"> 2410 2411 <p class="price">40,000ì~</p> 2412 </div> 2413 </div> 2414 </a> 2415 </li> 2416 2417 <li class="swiper-slide swiper-slide-active"> 2418 <a href="javascript:clkCampPr(2013,15397,'SEARCH');"> 2419 <div class="pic"> 2420 <div class="top_bat" style="position: absolute; padding: 6px; margin: 0; justify-content: end;"> 2421 <p class="bat_ad">AD</p> 2422 </div> 2423 <img src="/file/2024/07/03/thumbM_2024070379848.67.jpg"> 2424 </div> 2425 <div class="txt_box"> 2426 <p class="tit">ë¨ì ëë´ìº íì¥</p> 2427 <p class="txt">ì¶©ë¶ ë¨ìêµ°</p> 2428 <div class="price_g"> 2429 2430 <p class="price">60,000ì~</p> 2431 </div> 2432 </div> 2433 </a> 2434 </li> 2435 2436 <li class="swiper-slide swiper-slide-active"> 2437 <a href="javascript:clkCampPr(2058,1829,'SEARCH');"> 2438 <div class="pic"> 2439 <div class="top_bat" style="position: absolute; padding: 6px; margin: 0; justify-content: end;"> 2440 <p class="bat_ad">AD</p> 2441 </div> 2442 <img src="/file/2026/09/18/thumbM_2026091854835.46.jpg"> 2443 </div> 2444 <div class="txt_box"> 2445 <p class="tit">ë¼ë¼ììº íì¥&íì </p> 2446 <p class="txt">ê°ì í¡ì±êµ°</p> 2447 <div class="price_g"> 2448 2449 <p class="price">50,000ì~</p> 2450 </div> 2451 </div> 2452 </a> 2453 </li> 2454 2455 <li class="swiper-slide swiper-slide-active"> 2456 <a href="javascript:clkCampPr(2032,3822,'SEARCH');"> 2457 <div class="pic"> 2458 <div class="top_bat" style="position: absolute; padding: 6px; margin: 0; justify-content: end;"> 2459 <p class="bat_ad">AD</p> 2460 </div> 2461 <img src="/file/2025/08/20/thumbM_2025082072245.81.jpg"> 2462 </div> 2463 <div class="txt_box"> 2464 <p class="tit">ì ë ¹í¬ë ì¤í¸íì &ìº í(구,ê³ ë¦´ë¼íì )</p> 2465 <p class="txt">경기 ê°íêµ°</p> 2466 <div class="price_g"> 2467 2468 <p class="price">40,000ì~</p> 2469 </div> 2470 </div> 2471 </a> 2472 </li> 2473 2474 </ul> 2475 </div> 2476 </div> 2477 </div> 2478 2479 <!-- ê²ì ê´ê³ ìì END --> 2480 </div> 2481 2482 <div id="map-search-content"> 2483 <div id="map_search_wrap" style="position: relative; width:100%; height: calc(100dvh - 61px - 75px);"> 2484 <div class="search_form_box" style="padding: 16px;position: absolute; top:0; left;0; width: 100%; z-index: 3;"> 2485 <div class="search_form_input calendar"> 2486 <span class="placeholder">ë ì§ë¥¼ ì íí´ ì£¼ì¸ì.</span> 2487 <div class="search_choice_box"> 2488 <h3 class="title">ë ì§ë¥¼ ì íí´ ì£¼ì¸ì.</h3> 2489 <div class="content"> 2490 <div class="datepicker-map"></div> 2491 </div> 2492 </div> 2493 </div> 2494 2495 <div class="search_form_input people"> 2496 <span class="placeholder">ì±ì¸0, ìì¸0</span> 2497 <div class="search_choice_box"> 2498 <h3 class="title">ì¸ìì ì íí´ ì£¼ì¸ì.</h3> 2499 <p class="text">ìì¸ì ëí ëì´ê¸°ì¤ ë° ì¶ê°ìê¸ ì ì± ì ì ì²´ë³ë¡ ìì´íë ìì½ì ìë´ì¬íì ë°ëì íì¸íì기 ë°ëëë¤.</p> 2500 <div class="content"> 2501 <div class="people_count"> 2502 <span class="people_count_text">ì±ì¸</span> 2503 <div class="count_box adult"> 2504 <!-- 0ì¼ë - ë²í¼ì í´ëì¤ disabled ì¶ê° --> 2505 <button type="button" class="count_box_decrease disabled"></button> 2506 <span class="count_box_num">0</span> 2507 <button type="button" class="count_box_increase"></button> 2508 </div> 2509 </div> 2510 <div class="people_count"> 2511 <span class="people_count_text">ìì¸</span> 2512 <div class="count_box child"> 2513 <button type="button" class="count_box_decrease disabled"></button> 2514 <span class="count_box_num">0</span> 2515 <button type="button" class="count_box_increase disabled"></button> 2516 </div> 2517 </div> 2518 </div> 2519 </div> 2520 </div> 2521 </div> 2522 2523 <div class="search_marker"> 2524 <img width="20" src="/images/search/search-place.png" alt="ê²ì ìì¹" /> 2525 </div> 2526 2527 <div id="search_map" style="width:100%;
2527 height: calc(100dvh - 61px);"></div> 2528 2529 <div style="position: absolute; bottom: 25px; right: 1rem;"> 2530 <button type="button" class="find_nearby_btn" id="map_nearby_button">ë´ ì£¼ë³ ê²ì</button> 2531 </div> 2532 </div> 2533 </div> 2534 2535 <!--âââââââââ 컨í ì¸ ë âââââââââ --> 2536 </div> 2537 2538 <div class="btm_foot"> 2539 <div class="btn_set type2"> 2540 <ul> 2541 <li class="btn_wp"> 2542 <button type="button" class="btn_res" id="submitSearch"><span id="btn_res_txt">ê²ì</span></button> 2543 </li> 2544 </ul> 2545 </div> 2546 </div> 2547 2548 </div> 2549</div> 2550 2551<!-- camp Search (ìì ê²ì) --> 2552<div class="pop_layer_set" id="filter_pop"> 2553 <div class="pop_layer filter_pop"> 2554 2555 <div class="pop_title"> 2556 <p class="tit">ììê²ì</p> 2557 <button type="button" class="clo2" id="popFilterCloseButton"></button> 2558 </div> 2559 2560 <div class="pop_con"> 2561 <div class="search_box"> 2562 <div class="sear_set" style="max-width:100%;"> 2563 <input type="text" id="ser_camp_keyword" list="sear_list" value="" placeholder="ììëª ëë ì¶ì² í¤ìëë¡ ê²ìí´ë³´ì¸ì" /> 2564 </div> 2565 </div> 2566 2567 <ul id="search_result_box" class="search_result_box"> 2568 <li> 2569 <div class="title"> 2570 <strong>ê°ì ê³°ë°°ë ¹ìë²ê·¸ë¦°</strong> 2571 </div> 2572 <p>íì , ê°ì ì¸ì êµ°</p> 2573 </li> 2574 <li> 2575 <div class="title"> 2576 <strong>ê°ì ê³°ë°°ë ¹ìë²ê·¸ë¦°</strong> 2577 </div> 2578 <p>íì , ê°ì ì¸ì êµ°</p> 2579 </li> 2580 <li> 2581 <div class="title"> 2582 <strong>ê°ì ê³°ë°°ë ¹ìë²ê·¸ë¦°</strong> 2583 </div> 2584 <p>íì , ê°ì ì¸ì êµ°</p> 2585 </li> 2586 <li> 2587 <div class="title"> 2588 <strong>ê°ì ê³°ë°°ë ¹ìë²ê·¸ë¦°</strong> 2589 </div> 2590 <p>íì , ê°ì ì¸ì êµ°</p> 2591 </li> 2592 </ul> 2593 2594 2595 <div class="recent_searches"> 2596 <div class="title"> 2597 <strong>ìµê·¼ê²ìì´</strong> 2598 <button type="button">ì ì²´ìì </button> 2599 </div> 2600 <div class="content"> 2601 <div class="swiper-container pop_recent_keyword_swiper"> 2602 <ul class="swiper-wrapper"> 2603 <li class="swiper-slide"> 2604 <div class="box"> 2605 <span>í¤ìë 1</span> 2606 <button class="deleted_button" type="button"><img src="/images/tot_clo.png" alt="" /></button> 2607 </div> 2608 </li> 2609 <li class="swiper-slide"> 2610 <div class="box"> 2611 <span>í¤ìë 2</span> 2612 <button class="deleted_button" type="button"><img src="/images/tot_clo.png" alt="" /></button> 2613 </div> 2614 </li> 2615 </ul> 2616 </div> 2617 </div> 2618 </div> 2619 2620 <div class="recent_searches"> 2621 <div class="title"> 2622 <strong>ë¡í ê²ì í¤ìë ì¶ì²</strong> 2623 </div> 2624 <div class="content"> 2625 <div class="swiper-container pop_recent_keyword_swiper"> 2626 <ul class="swiper-wrapper"> 2627 <li class="swiper-slide"> 2628 <div class="box keyword">ìë° ì¸ì¼ íì¤í</div> 2629 </li> 2630 <li class="swiper-slide"> 2631 <div class="box keyword">ëëì´ë íìê°ë ë¬</div> 2632 </li> 2633 <li class="swiper-slide"> 2634 <div class="box keyword">ì ê·ì ì </div> 2635 </li> 2636 </ul> 2637 </div> 2638 </div> 2639 </div> 2640 2641 <div class="recent_searches"> 2642 <div class="title"> 2643 <strong>ì´ì©ê° í기ìì ì°¾ì ê²ì í¤ìë ì¶ì²</strong> 2644 </div> 2645 <div class="content"> 2646 <div class="none_slide_box"> 2647 <div class="box keyword2">ëì´ìì¤ì´ ë§ì ìì´ë¤ê³¼ í¨ê»í기 ì¢ì ìº íì¥</div> 2648 <div class="box keyword2">ì¬ì§ì´ ìëì¤ë ë·°ê° ë©ì§ ìº íì¥</div> 2649 <div class="box keyword2">ì¬ì¥ëì´ ì¹ì íê³ ìì¤ê´ë¦¬ê° ìëì´ìë ìº íì¥</div> 2650 <div class="box keyword2">ì¡°ì©íê³ ë§¤ëíìì´ ìì§ì¼ì§ë ìº íì¥</div> 2651 </div> 2652 </div> 2653 </div> 2654 2655 <div class="recent_searches"> 2656 <div class="title" style="display: block"> 2657 <strong>ì¤ìê° ê¸ìì¹ ê²ì ìì</strong> 2658 <p class="description">ì§ìë³ ì¤ìê° ê²ì ìì를 ë³´ê³ ì¶ì¼ìë©´ <span>ì¬ê¸°</span>를 ëë¬ ì í¸ì§ìì ì íí´ì£¼ì¸ì. (ìµë3ê°ì§ì ë±ë¡ ê°ë¥)</p> 2659 </div> 2660 <div class="content"> 2661 <ul class="rank"> 2662 <li><span class="rank-number">1</span> <span class="company-name">ì ì²´ëª </span></li> 2663 <li><span class="rank-number">2</span> <span class="company-name">ì ì²´ëª </span></li> 2664 <li><span class="rank-number">3</span> <span class="company-name">ì ì²´ëª </span></li> 2665 <li><span class="rank-number">4</span> <span class="company-name">ì ì²´ëª </span></li> 2666 <li><span class="rank-number">5</span> <span class="company-name">ì ì²´ëª </span></li> 2667 <li><span class="rank-number">6</span> <span class="company-name">ì ì²´ëª </span></li> 2668 <li><span class="rank-number">7</span> <span class="company-name">ì ì²´ëª </span></li> 2669 <li><span class="rank-number">8</span> <span class="company-name">ì ì²´ëª </span></li> 2670 <li><span class="rank-number">9</span> <span class="company-name">ì ì²´ëª </span></li> 2671 <li><span class="rank-number">10</span> <span class="company-name">ì ì²´ëª </span></li> 2672 </ul> 2673 </div> 2674 </div> 2675 2676 <div class="btm_foot"> 2677 <div class="btn_set type2"> 2678 <ul> 2679 <li class="btn_wp"> 2680 <button type="button" class="btn_res"><span id="btn_res_txt">ê²ì</span></button> 2681 </li> 2682 </ul> 2683 </div> 2684 </div> 2685 2686 </div> 2687 2688 </div> 2689</div> 2690 2691<!-- script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpClientId=9qnra9njt9"></script -->
2692<script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpKeyId=7pi6a4tp01"></script>
vendor: 2 bytes, line 2692
2692
2693<script> 2694 // SearchTypePage ê°: "MAIN" | "MAP" | "LIST" | "COLLECT" 2695 2696 /* íì ê´ë ¨ í¨ì */ 2697 const popSearchManager = { 2698 scrollPosition: 0, 2699 init: function(){ 2700 const popFilterButtonEl = document.getElementById("top_search_input"); 2701 const popFilterCloseButtonEl = document.getElementById("popSearchCloseButton"); 2702 2703 popFilterButtonEl.addEventListener("click", () => { 2704 this.open(); 2705 tabManager.init(); 2706 2707 this.createInfoBox(); 2708 }); 2709 2710 popFilterCloseButtonEl.addEventListener("click", () => { 2711 this.deleteInfoBox(); 2712 this.close(); 2713 }); 2714 2715 this.pageSet(); 2716 }, 2717 // íì ë³ íì´ì§ ì¸í 2718 pageSet: function(){ 2719 const listType = "LIST"; 2720 2721 if(listType == "COLLECT" || listType == "CAMPCOUPON"){ 2722 // 리ì¤í¸ ê²ì ë²í¼ëª ë³ê²½ 2723 const listTabButtonEl = document.getElementById("listTab") 2724 const searchKeywordInputEl = document.querySelector(".search_form_input.search") 2725 listTabButtonEl.innerText = "íí° ê²ì" 2726 searchKeywordInputEl.style.display = "none" 2727 2728 // ì§ë ê²ì ë²í¼ ë¯¸ë ¸ì¶ 2729 const mapTabButtonEl = document.getElementById("mapTab") 2730 mapTabButtonEl.style.display = "none" 2731 } 2732 }, 2733 // íí° íì ì´ê¸° 2734 open: function (filterType) { 2735 this.scrollPosition = window.scrollY; // íì¬ ì¤í¬ë¡¤ ìì¹ ì ì¥ 2736 document.getElementById("search_pop").classList.add("on"); 2737 document.body.style.overflow = "hidden"; 2738 document.body.style.top = `-${this.scrollPosition}px`; // íì¬ ìì¹ ì ì§ 2739 }, 2740 // íí° íì ë«ê¸° 2741 close: function () { 2742 document.getElementById("search_pop").classList.remove("on"); 2743 document.body.style.overflow = "visible"; 2744 document.body.style.top = ""; // ìë ìíë¡ ë³µêµ¬ 2745 window.scrollTo(0, this.scrollPosition); // ì¤í¬ë¡¤ ìì¹ ë³µì 2746 }, 2747 // íì ì¤í ì ë§íì ë ¸ì¶ 2748 createInfoBox: function(){ 2749 document.getElementById("mapInfoBox").classList.add("active"); 2750 setTimeout(() => { 2751 mapInfoBox.classList.remove("active"); 2752 }, 5000); 2753 }, 2754 // íì ë«ì ì ë§íì ì ê±° 2755 deleteInfoBox: function(){ 2756 document.getElementById("mapInfoBox").classList.remove("active"); 2757 }, 2758 2759 // ê²ì íì´ì§ íì ì´ MAP, LIST, COLLECT ì¼ ë search input placeholder ì ë°ì´í¸ 2760 updateSearchInput: function(){ 2761 const listType = "LIST"; 2762 const popFilterInputEl = document.querySelector(".search_div .text"); 2763 let filterTexts = []; 2764 2765 // ê²ì í¤ìë ì¶ê° 2766 if (searchFilterManager._inputFieldEl.value) { 2767 filterTexts.push(searchFilterManager._inputFieldEl.value); 2768 } 2769 2770 // ì§ì ì ë³´ ì¶ê° 2771 if (searchFilterManager._filter.region || searchFilterManager._filter.sub_region.length > 0) { 2772 let regionText = ""; 2773 if (searchFilterManager._filter.sub_region.length > 0) { 2774 regionText += " " + searchFilterManager._filter.sub_region.join(", ").replace(/ã/g, ", "); // ìë¸ ì§ì ì¬ë¬ ê°ì¼ ê²½ì° ì½¤ë§ë¡ ì°ê²° 2775 }else{ 2776 regionText += searchFilterManager._filter.region; 2777 } 2778 filterTexts.push(regionText); 2779 }else{ 2780 if(listType == "LIST" || listType == "COLLECT" || listType == "CAMPCOUPON"){ 2781 filterTexts.push("ì§ì ì ì²´"); 2782 } 2783 } 2784 2785 // ë ì§ ì¶ê° 2786 const dateStr = searchFilterManager.choiceDateStr(); 2787 if (dateStr) { 2788 filterTexts.push(dateStr); 2789 } 2790 2791 // COLLECT ì¼ë, ììêµ¬ë¶ íì 2792 if (listType == "COLLECT" || listType == "CAMPCOUPON") { 2793 let siteTypeText = ""; 2794 2795 if (searchFilterManager._filter.site_type.length > 0) { 2796 const siteTypeMap = { 2797 "BB000": "ì¤í ìº í", 2798 "BB001": "ê¸ë¨í", 2799 "BB002": "ì¹´ë¼ë°", 2800 "BB003": "íì " 2801 }; 2802 2803 // ì½ë ê°ì íê¸ë¡ ë³í 2804 siteTypeText += " " + searchFilterManager._filter.site_type 2805 .map(code => siteTypeMap[code] || code) // 매íë ê°ì´ ìì¼ë©´ ìë ì½ë ì ì§ 2806 .join(", "); 2807 2808 filterTexts.push(siteTypeText); 2809 } else { 2810 filterTexts.push("ììêµ¬ë¶ ì ì²´"); 2811 } 2812 } 2813 2814 2815 // ì¸ì ì¶ê° 2816 let peopleText = []; 2817 if (searchFilterManager._filter.adultCount > 0) { 2818 peopleText.push(`ì±ì¸ ${searchFilterManager._filter.adultCount}`); 2819 } 2820 if (searchFilterManager._filter.childCount > 0) { 2821 peopleText.push(`ìì¸ ${searchFilterManager._filter.childCount}`); 2822 } 2823 if (peopleText.length > 0) { 2824 filterTexts.push(peopleText.join("/")); 2825 } 2826 2827 popFilterInputEl.innerHTML = filterTexts.join("ã"); 2828 } 2829 2830 } 2831 2832 /* í ê´ë ¨ í¨ì */ 2833 const tabManager = { 2834 init: function(){
2835 const tabs = document.querySelectorAll(".search_tab li"); 2836 const listType = "LIST"; 2837 const listTypeNum = listType == "MAP" ? 1 : 0; 2838 2839 // ì´ê¸°ì ìì ê²ì íì±í 2840 this.setActiveTab(listTypeNum); 2841 2842 // í í´ë¦ ì´ë²¤í¸ 2843 tabs.forEach((tab, index) => { 2844 tab.addEventListener("click", () => tabManager.setActiveTab(index)); 2845 }); 2846 }, 2847 isListActive: function() { 2848 return this.currentTab === 'list'; // 'list' íì´ íì±íëìì¼ë©´ true 2849 }, 2850 setActiveTab: function(index){ 2851 const listType = "LIST"; 2852 const tabs = document.querySelectorAll(".search_tab li"); 2853 const listSearchContent = document.getElementById("list-search-content"); 2854 const mapSearchContent = document.getElementById("map-search-content"); 2855 const mapBoxContent = document.getElementById("map_search_wrap"); 2856 2857 // 모ë íìì active ì ê±° 2858 tabs.forEach(tab => tab.classList.remove("active")); 2859 // í´ë¦í íì active ì¶ê° 2860 tabs[index].classList.add("active"); 2861 2862 if (index === 0) { 2863 // ììê²ì íì±í 2864 listSearchContent.style.display = "block"; 2865 mapSearchContent.style.display = "none"; 2866 2867 this.updateSearchButton(() => searchFilterManager.submitSearch()); 2868 } else { 2869 // ì§ëê²ì íì±í 2870 listSearchContent.style.display = "none"; 2871 mapSearchContent.style.display = "block"; 2872 2873 const width = mapBoxContent.clientWidth; // ê°ë¡ê° 2874 const height = mapBoxContent.clientHeight; // ì¸ë¡ê° 2875 2876 console.log("ê°ë¡:", width, "ì¸ë¡:", height); 2877 2878 if(searchMapManager._MAP == null){ 2879 // ì§ë ê´ë ¨ ì´ë²¤í¸ 2880 searchMapManager.init(); 2881 } 2882 2883 if(listType == "MAP"){ 2884 // ì§ë íì´ì§ì ìë ë©ì¸ ì§ë ê°ì´ë° ì¢í ê°ì ¸ì
2884¤ê¸° 2885 if(typeof _MAP != "undefined"){ 2886 const mainMapCenter = _MAP.getCenter(); 2887 searchMapManager._MAP.setCenter(new naver.maps.LatLng(mainMapCenter._lat, mainMapCenter._lng)); 2888 searchMapManager._MAP.setSize(new naver.maps.Size(width, height)); 2889 } 2890 } else{ 2891 searchMapManager._MAP.setSize(new naver.maps.Size(width, height)); 2892 } 2893 2894 this.updateSearchButton(() => searchFilterManager.submitMapSearch()); 2895 } 2896 }, 2897 updateSearchButton: function(eventHandler){ 2898 const searchButton = document.getElementById("submitSearch"); 2899 2900 // 기존 ì´ë²¤í¸ ì ê±° í ìë¡ì´ ì´ë²¤í¸ ì¶ê° 2901 searchButton.replaceWith(searchButton.cloneNode(true)); 2902 const newSearchButton = document.getElementById("submitSearch"); 2903 2904 newSearchButton.addEventListener("click", eventHandler); 2905 } 2906 } 2907 2908 /* ì¤ìì´í¼ ê´ë ¨ í¨ì */ 2909 const swiperManager = { 2910 init: function(){ 2911 this.listFilter(); 2912 this.popRecentKeyword(); 2913 this.placeTab(); 2914 this.stayBtn(); 2915 this.adCampList(); 2916 }, 2917 // 리ì¤í¸ íì´ì§ íí° ì í êµ¬ë¶ 2918 listFilter: function(){ 2919 const recent_swiper = new Swiper('.recent_swiper', { 2920 pagination: false, 2921 slidesPerView: 'auto', 2922 paginationClickable: true, 2923 spaceBetween: 8, 2924 freeMode: true, 2925 lazyLoading: true, 2926 observer: true, 2927 observeParents: true, 2928 loop: false, 2929 }); 2930 2931 return recent_swiper; 2932 }, 2933 // ìë°êµ¬ë¶ë¶ ì í í 2934 stayBtn: function(){ 2935 const recent_swiper = new Swiper('.stay_btn_swiper', { 2936 pagination: false, 2937 slidesPerView: 'auto', 2938 paginationClickable: true, 2939 spaceBetween: 6, 2940 freeMode: true, 2941 lazyLoading: true, 2942 observer: true, 2943 observeParents: true, 2944 loop: false, 2945 }); 2946 2947 return recent_swiper; 2948 }, 2949 // ì§ì ì í í 2950 placeTab: function(){ 2951 const recent_swiper = new Swiper('.place_tab_swiper', { 2952 pagination: false, 2953 slidesPerView: 'auto', 2954 paginationClickable: true, 2955 spaceBetween: 8, 2956 freeMode: true, 2957 lazyLoading: true, 2958 observer: true, 2959 observeParents: true, 2960 loop: false, 2961 }); 2962 2963 return recent_swiper; 2964 }, 2965 // íì ìµê·¼ ê²ìì´ 2966 popRecentKeyword: function(){ 2967 const recent_swiper = new Swiper('.pop_recent_keyword_swiper', { 2968 pagination: false, 2969 slidesPerView: 'auto', 2970 paginationClickable: true, 2971 spaceBetween: 8, 2972 freeMode: true, 2973 lazyLoading: true, 2974 observer: true, 2975 observeParents: true, 2976 loop: false, 2977 }); 2978 2979 return recent_swiper; 2980 }, 2981 // ê²ì ê´ê³ ìì 2982 adCampList: function(){ 2983 const ad_camp_swiper = new Swiper('.ad_camp_swiper', { 2984 pagination: false, 2985 slidesPerView: 'auto', 2986 paginationClickable: true, 2987 spaceBetween: 8, 2988 freeMode: true, 2989 lazyLoading: true, 2990 observer: true, 2991 observeParents: true, 2992 loop: false, 2993 }); 2994 2995 return ad_camp_swiper; 2996 }, 2997 }; 2998 2999 3000 /* ê²ìì´ ì ë ¥ ê´ë ¨ í¨ì */ 3001 const searchUrlParams = new URLSearchParams(window.location.search); 3002 const searchFilterManager = { 3003 _searchType: "LIST", 3004 _searchFormEl: document.querySelectorAll('.search_form_input'), 3005 _inputFieldEl: document.getElementById("ser_keyword_"), 3006 _placeCategoryButtonEl: document.querySelectorAll(".place_button"), 3007 _filter: { 3008 site_type: searchUrlParams.get("site_tp") ? searchUrlParams.get("site_tp").split(",") : [], 3009 res_date: searchUrlParams.get("res_dt") || "", 3010 res_end_date: searchUrlParams.get("res_edt") || "", 3011 ser_res_date: searchUrlParams.get("res_dt") || "", 3012 ser_res_end_date: searchUrlParams.get("res_edt") || "", 3013 region: searchUrlParams.get("region") || "", 3014 sub_region: searchUrlParams.get("sub_region") ? searchUrlParams.get("sub_region").split(",") : [], 3015 adultCount: searchUrlParams.get("ser_adult_count") || 0, 3016 childCount: searchUrlParams.get("ser_child_count") || 0, 3017 lat: null, 3018 lng: null 3019 }, 3020 init: function(){
3021 // 기존 ë ì§ ì¸í 3022 this.getResDate(); 3023 // 기존 ì¸ì ì¸í 3024 this.getPersonCount(); 3025 // í¤ìë ê²ì ì´ë²¤í¸ 3026 this._inputFieldEl.value = searchUrlParams.get("ser_keyword"); 3027 this._inputFieldEl.addEventListener("keyup", this.getKeywordCampName); 3028 if(this._inputFieldEl.value != ""){ 3029 document.getElementById("deleteKeyword").style.display = "inline"; 3030 } 3031 // 기존 ììêµ¬ë¶ ì¸í 3032 this.getSiteType(); 3033 this.choiceSiteType(); 3034 3035 // íì ì¤í input í ì¤í¸ ì¸í 3036 if(searchFilterManager._searchType == "MAP" || searchFilterManager._searchType == "LIST" || searchFilterManager._searchType == "COLLECT" || searchFilterManager._searchType == "CAMPCOUPON"){ 3037 popSearchManager.updateSearchInput(); 3038 } 3039 3040 if(searchFilterManager._searchType == "LIST" && !(searchFilterManager._filter.ser_res_date == "" && searchFilterManager._filter.ser_res_end_date == "" )){ 3041 const emptyButtonEl = document.getElementById("empty_y"); 3042 emptyButtonEl.style.display = "block"; 3043 } 3044 3045 // ê²ìí기 ë²í¼ ì´ë²¤í¸ 3046 document.getElementById("submitSearch").addEventListener("click", this.submitSearch); 3047 3048 // ê²ì ì¸í ì´ê¸°í ë²í¼ ì´ë²¤í¸ 3049 document.getElementById("deleteKeyword").addEventListener("click", function(){ 3050 document.getElementById("search_result_box").style.display = "none"; 3051 document.getElementById("search_result_info_box").style.display = "none"; 3052 document.getElementById("deleteKeyword").style.display = "none"; 3053 searchFilterManager._inputFieldEl.value = "" 3054 }); 3055 3056 // ë¬ë ¥ ì¼ì ì´ê¸°í ë²í¼ 3057 document.getElementById("calendarResetButton").addEventListener("click", function(){ 3058 searchFilterManager.getResDate(true); 3059 }); 3060 3061 3062 // íí° ì¸í ë²í¼ ì´ë²¤í¸ 3063 this._searchFormEl.forEach(input => { 3064 input.addEventListener('click', function(event) { 3065 document.querySelectorAll('.search_form_input').forEach(el => { 3066 document.getElementById("search_result_box").style.display = "none"; 3067 document.getElementById("search_result_info_box").style.disply = "none"; 3068 el.classList.remove("active"); 3069 }); 3070 3071 this.classList.add("active"); 3072 document.querySelectorAll('.search_choice_box').forEach(box => { 3073 box.style.display = 'none'; 3074 }); 3075 3076 const choiceBox = this.querySelector('.search_choice_box'); 3077 if (choiceBox) { 3078 choiceBox.style.display = 'block'; 3079 } 3080 3081 event.stopPropagation(); 3082 }); 3083 }); 3084 3085 document.addEventListener('click', function() { 3086 document.querySelectorAll('.search_choice_box').forEach(box => { 3087 box.style.display = 'none'; 3088 if(searchFilterManager._filter.res_date != "" && searchFilterManager._filter.res_end_date == ""){ 3089 searchFilterManager._filter.res_end_date = searchFilterManager._filter.res_date; 3090 searchFilterManager.updateDatePlaceholder(); 3091 } 3092 }); 3093 document.querySelectorAll('.search_form_input').forEach(el => { 3094 document.getElementById("search_result_box").style.display = "none"; 3095 document.getElementById("search_result_info_box").style.display = "none"; 3096 el.classList.remove("active"); 3097 }); 3098 }); 3099 3100 this.updateRegionPlaceholder(); 3101 this._placeCategoryButtonEl.forEach((button, index) => { 3102 button.addEventListener('click', function () { 3103 searchFilterManager._placeCategoryButtonEl.forEach(btn => btn.classList.remove("active")); 3104 3105 const region_grp = button.getAttribute('data-value'); 3106 const region = button.getAttribute('data-region'); 3107 const region_arr = button.getAttribute('data-arr'); 3108 const placeChoiceBox = document.getElementById('place_choice_box'); 3109 const placeChoiceUl = placeChoiceBox.querySelector('ul'); 3110 3111 button.classList.add("active"); 3112 searchFilterManager._filter.region = region_grp; 3113 searchFilterManager._filter.sub_region = []; 3114 placeChoiceUl.innerHTML = ''; 3115 searchFilterManager.updateRegionPlaceholder(); 3116 3117 3118 searchFilterManager.getRegionList(region_grp, region, region_arr); 3119 }); 3120 }); 3121 3122 3123 3124 // ë´ ì£¼ë³ìì ê²ì ë²í¼ 3125 document.getElementById("map_nearby_button").addEventListener("click", function(){ 3126 location.href="/search/mapSearch.hbb"; 3127 }) 3128 3129 }, 3130 3131 // ì±í¬ ë§ì¶°ì¼í ë°ì´í° ê´ë¦¬ searchFilterManager.syncFilters(); 3132 syncFilters: function () { 3133 3134 // LIST íì´ì§ ë기í 3135 if (searchFilterManager._searchType == "LIST") { 3136 filterManager._selectedFilters.ser_site_tp = [...searchFilterManager._filter.site_type]; 3137 filterManager._selectedFilters['ser_site_tp'] = [...searchFilterManager._filter.site_type]; 3138 3139 // UI ë°ì 3140 document.querySelectorAll(`.item_list button[name='ser_site_tp']`).forEach(item => { 3141 const value = item.getAttribute('value'); 3142 if (searchFilterManager._filter.site_type.includes(value)) { 3143 item.classList.add("active"); 3144 } else { 3145 item.classList.remove("active"); 3146 } 3147 }); 3148 3149 document.querySelectorAll(`.stay_button[name='site_tp']`).forEach(item => { 3150 const value = item.getAttribute('value'); 3151 if (searchFilterManager._filter.site_type.includes(value)) { 3152 item.classList.add("active"); 3153 } else { 3154 item.classList.remove("active"); 3155 } 3156 }); 3157 3158 headFilterManager.updateActiveFilters(); 3159 } 3160 3161 // site_typeì´ ë¹ì´ ìì¼ë©´ 'ì ì²´' ë²í¼ íì±í, ìëë©´ ë¹íì±í 3162 const allButtonEl = document.getElementById("site_tp_all"); 3163 if (searchFilterManager._filter.site_type.length === 0) { 3164 allButtonEl.classList.add("active"); 3165 } else { 3166 allButtonEl.classList.remove("active"); 3167 } 3168 }, 3169 3170 // í¤ìë ê²ì 3171 getKeywordCampName: function(){
3172 const resultBoxEl = document.getElementById("search_result_box"); 3173 const resultInfoBoxEl = document.getElementById("search_result_info_box"); 3174 3175 if(searchFilterManager._inputFieldEl.value.length > 0) { 3176 document.getElementById("deleteKeyword").style.display = "inline"; 3177 }else{ 3178 document.getElementById("deleteKeyword").style.display = "none"; 3179 } 3180 3181 if(searchFilterManager._inputFieldEl.value.length > 1) { 3182 console.log(searchFilterManager._inputFieldEl.value); 3183 3184 $.ajax({ 3185 type: "POST", 3186 url: "/resv/ax_camp_name.hbb", 3187 data:{ser_camp_name: searchFilterManager._inputFieldEl.value}, 3188 success: onSuccess, 3189 error: onError 3190 }); 3191 3192 function onSuccess(dataobj) { 3193 const result = JSON.parse(dataobj); 3194 const keyword = searchFilterManager._inputFieldEl.value.trim(); 3195 let contents = []; 3196 3197 if (result.length === 0) { 3198 // ê²°ê³¼ê° ìì ë 3199 contents.push( 3200 `<li> 3201 <a href="javascript:;"> 3202 <span class="searchPlace_icon"></span> 3203 <p class="keword_text">ê²ìë ìº íì¥ì´ ììµëë¤.</span></p> 3204 </a> 3205 </li>`); 3206 } else { 3207 // ê²°ê³¼ê° ìì ë 3208 result.forEach((data) => { 3209 const highlightedName = data.campName.replace( 3210 new RegExp(`(${keyword})`, "gi"), 3211 `<span style="color: #F27226; font-weight: bold;">$1</span>` 3212 ); 3213 3214 const el = 3215 `<li> 3216 <a href="javascript:clkViewDirect('${data.campSeq}');"> 3217 <span class="searchPlace_icon"></span> 3218 <p class="keword_text">${highlightedName}</p> 3219 <p class="keword_content">${data.campType}, ${data.shortAddress}</p> 3220 </a> 3221 </li>`; 3222 contents.push(el); 3223 }); 3224 } 3225 3226 document.getElementById('search_result_box').innerHTML = contents.join(""); 3227 } 3228 3229 3230 function onError() {} 3231 3232 resultBoxEl.style.display = 'block'; 3233 resultInfoBoxEl.style.display = 'block'; 3234 } else { 3235 document.getElementById('search_result_box').innerHTML = ""; 3236 resultBoxEl.style.display = 'none'; 3237 resultInfoBoxEl.style.display = 'none'; 3238 } 3239 }, 3240 3241 getRegionList: function(region_grp, region, arr){ 3242 const site_tp = searchFilterManager._filter.site_type ? searchFilterManager._filter.site_type.join(",") : ""; 3243 const listType = "LIST"; 3244 3245 $.ajax({ 3246 type: "POST", 3247 url: "/search/axRegion.hbb", 3248 data: {region_grp: region_grp, region: region, site_tp: site_tp}, 3249 success: onSuccess, 3250 error: onError 3251 }); 3252 3253 function onSuccess(dataobj) { 3254 document.getElementById('place_result_box').innerHTML = dataobj; 3255 3256 if(listType == "COLLECT" || listType == "CAMPCOUPON"){ 3257 document.querySelectorAll('.sub_region .tnum').forEach(el => el.remove()); 3258 } 3259 3260 searchFilterManager.choiceRegion(); 3261 } 3262 3263 function onError() {} 3264 }, 3265 choiceRegion: function() { 3266 const allSubRegionButtonEl = document.getElementById("all_sub_region"); 3267 const subRegionButtonsEl = document.querySelectorAll('.sub_region'); 3268 3269 // íì´ì§ ë¡ë ì ì íë ì§ìë¤ì ëí UI ìí ë기í 3270 this.syncSubRegionUI(); 3271 3272 subRegionButtonsEl.forEach(button => { 3273 button.addEventListener('click', () => { 3274 const value = button.getAttribute('data-sub-region'); 3275 3276 if (this._filter.sub_region.includes(value)) { 3277 // ì íë ì§ììì ì ê±° 3278 this._filter.sub_region = this._filter.sub_region.filter(item => item !== value); 3279 button.classList.remove('active'); 3280 } else { 3281 // ì íë ê°ìê° 3ê° ë¯¸ë§ì¼ ëë§ ì¶ê° 3282 if (this._filter.sub_region.length < 3) { 3283 this._filter.sub_region.push(value); 3284 button.classList.add('active'); 3285 } else { 3286 return; // ì í ê°ì ì í ì´ê³¼ ì ì²ë¦¬ 3287 } 3288 } 3289 3290 // ì§ì ë±ì§ ì ë°ì´í¸ 3291 this.addRegionBadge(); 3292 this.updateRegionPlaceholder(); 3293 }); 3294 }); 3295 3296 // "모ë ì§ì ì í" ë²í¼ ì²ë¦¬ 3297 allSubRegionButtonEl.addEventListener('click', () => { 3298 this._filter.sub_region = []; 3299 subRegionButtonsEl.forEach(button => button.classList.remove('active')); 3300 allSubRegionButtonEl.classList.add('active'); 3301 3302 // ì§ì ë±ì§ ë° íëì´ì¤íë ì ë°ì´í¸ 3303 this.addRegionBadge(); 3304 this.updateRegionPlaceholder(); 3305 }); 3306 }, 3307 // ì§ì UI ìí ë기í 3308 syncSubRegionUI: function() { 3309 const subRegionButtonsEl = document.querySelectorAll('.sub_region');
3310 const allSubRegionButtonEl = document.getElementById("all_sub_region"); 3311 3312 // 기존 ì íë ì§ìë¤ì ëí UI ìí ì ë°ì´í¸ 3313 subRegionButtonsEl.forEach(button => { 3314 const value = button.getAttribute('data-sub-region'); 3315 if (this._filter.sub_region.includes(value)) { 3316 button.classList.add('active'); 3317 } else { 3318 button.classList.remove('active'); 3319 } 3320 }); 3321 3322 // "모ë ì§ì ì í" ë²í¼ ì²ë¦¬ 3323 if (this._filter.sub_region.length === 0) { 3324 allSubRegionButtonEl.classList.add('active'); 3325 } else { 3326 allSubRegionButtonEl.classList.remove('active'); 3327 } 3328 }, 3329 // ì§ì ì í ì ìë ë±ì§ ì¶ê° 3330 addRegionBadge: function () { 3331 const placeChoiceBox = document.getElementById('place_choice_box'); 3332 const placeChoiceUl = placeChoiceBox.querySelector('ul'); 3333 3334 // 기존 ë±ì§ë¤ì´ ì¤ë³µëì§ ìëë¡ ì²ë¦¬ 3335 placeChoiceUl.innerHTML = ''; // 기존 ë±ì§ë¤ ì´ê¸°í 3336 this._filter.sub_region.forEach(sub_region => { 3337 const li = document.createElement('li'); 3338 li.classList.add('badge_button'); 3339 li.setAttribute('data-value', sub_region); 3340 li.innerHTML = ` 3341 ${sub_region} 3342 <button type="button" class="place_choice_delete btn_close" data-value="${sub_region}"> 3343 <img src="/images/tot_clo.png"> 3344 </button> 3345 `; 3346 3347 li.querySelector('.place_choice_delete').addEventListener('click', () => { 3348 this._filter.sub_region = this._filter.sub_region.filter(item => item !== sub_region); 3349 document.querySelector(`.sub_region[data-sub-region="${sub_region}"]`)?.classList.remove('active'); 3350 this.addRegionBadge(); // ë±ì§ ì ë°ì´í¸ 3351 this.updateRegionPlaceholder(); // íëì´ì¤íë ì ë°ì´í¸ 3352 }); 3353 3354 placeChoiceUl.appendChild(li); 3355 }); 3356 }, 3357 // ì§ì ì í ì placeholder ì ë°ì´í¸ 3358 updateRegionPlaceholder: function() { 3359 const regionPlaceholder = document.querySelector('.place .placeholder'); 3360 3361 if (this._filter.region.length > 0) { 3362 if(this._filter.sub_region.length > 0){ 3363 document.getElementById('all_sub_region')?.classList.remove("active"); 3364 regionPlaceholder.innerHTML = this._filter.region + ' ' + (this._filter.sub_region.length > 0 ? this._filter.sub_region.join(', ') : ''); 3365 }else{ 3366 document.getElementById('all_sub_region')?.classList.add("active"); 3367 regionPlaceholder.innerHTML = this._filter.region; 3368 } 3369 } else { 3370 document.getElementById('all_sub_region')?.classList.add("active"); 3371 regionPlaceholder.innerHTML = 'ì§ìì ì í íì¸ì.'; 3372 } 3373 }, 3374 3375 getPersonCount: function() { 3376 // ì±ì¸ ì¹´ì´í¸ ê´ë ¨ ìì 3377 const adultCountEl = document.querySelectorAll(".count_box.adult .count_box_num"); 3378 const adultIncreaseBtn = document.querySelectorAll(".count_box.adult .count_box_increase"); 3379 const adultDecreaseBtn = document.querySelectorAll(".count_box.adult .count_box_decrease"); 3380 3381 // ìì´(ìì¸) ì¹´ì´í¸ ê´ë ¨ ìì 3382 const childCountEl = document.querySelectorAll(".count_box.child .count_box_num"); 3383 const childIncreaseBtn = document.querySelectorAll(".count_box.child .count_box_increase"); 3384 const childDecreaseBtn = document.querySelectorAll(".count_box.child .count_box_decrease"); 3385 3386 // ì´ê¸° ê° ë°ì 3387 adultCountEl.forEach(el => el.textContent = searchFilterManager._filter.adultCount); 3388 childCountEl.forEach(el => el.textContent = searchFilterManager._filter.childCount); 3389 3390 // ì±ì¸ ì¦ê° ë²í¼ í´ë¦ ì´ë²¤í¸ 3391 adultIncreaseBtn.forEach(btn => { 3392 btn.addEventListener("click", function () { 3393 searchFilterManager._filter.adultCount++; 3394 adultCountEl.forEach(el => el.textContent = searchFilterManager._filter.adultCount); 3395 3396 searchFilterManager.updatePersonPlaceholder(); 3397 searchFilterManager.updateButtonState(); 3398 }); 3399 }); 3400 3401 // ì±ì¸ ê°ì ë²í¼ í´ë¦ ì´ë²¤í¸ 3402 adultDecreaseBtn.forEach(btn => { 3403 btn.addEventListener("click", function () { 3404 if (searchFilterManager._filter.adultCount > 1 || (searchFilterManager._filter.adultCount == 1 && searchFilterManager._filter.childCount == 0)) { 3405 searchFilterManager._filter.adultCount--; 3406 adultCountEl.forEach(el => el.textContent = searchFilterManager._filter.adultCount); 3407 3408 searchFilterManager.updatePersonPlaceholder(); 3409 searchFilterManager.updateButtonState(); 3410 } 3411 }); 3412 }); 3413 3414 // ìì´(ìì¸) ì¦ê° ë²í¼ í´ë¦ ì´ë²¤í¸
3415 childIncreaseBtn.forEach(btn => { 3416 btn.addEventListener("click", function () { 3417 if (searchFilterManager._filter.adultCount > 0) { 3418 searchFilterManager._filter.childCount++; 3419 childCountEl.forEach(el => el.textContent = searchFilterManager._filter.childCount); 3420 3421 searchFilterManager.updatePersonPlaceholder(); 3422 searchFilterManager.updateButtonState(); 3423 } 3424 }); 3425 }); 3426 3427 // ìì´(ìì¸) ê°ì ë²í¼ í´ë¦ ì´ë²¤í¸ 3428 childDecreaseBtn.forEach(btn => { 3429 btn.addEventListener("click", function () { 3430 if (searchFilterManager._filter.childCount > 0) { 3431 searchFilterManager._filter.childCount--; 3432 childCountEl.forEach(el => el.textContent = searchFilterManager._filter.childCount); 3433 3434 searchFilterManager.updatePersonPlaceholder(); 3435 searchFilterManager.updateButtonState(); 3436 } 3437 }); 3438 }); 3439 3440 // ì ë°ì´í¸ ìí 3441 this.updateButtonState(); 3442 this.updatePersonPlaceholder(); 3443 }, 3444 // ì¸ì ë²í¼ ìí ì ë°ì´í¸ 3445 updateButtonState: function(){ 3446 const adultDecreaseBtn = document.querySelectorAll(".count_box.adult .count_box_decrease"); 3447 const childDecreaseBtn = document.querySelectorAll(".count_box.child .count_box_decrease"); 3448 const childIncreaseBtn = document.querySelectorAll(".count_box.child .count_box_increase"); 3449 3450 // ì±ì¸ ë²í¼ ìí 3451 if (searchFilterManager._filter.adultCount == 0 || (searchFilterManager._filter.adultCount == 1 && searchFilterManager._filter.childCount > 0)) { 3452 adultDecreaseBtn.forEach(adult => { 3453 adult.classList.add("disabled"); 3454 }) 3455 } else { 3456 adultDecreaseBtn.forEach(adult => { 3457 adult.classList.remove("disabled"); 3458 }) 3459 } 3460 // ìì´ ë²í¼ ìí 3461 if (searchFilterManager._filter.adultCount == 0) { 3462 childIncreaseBtn.forEach(child => { 3463 child.classList.add("disabled"); 3464 }) 3465 } else { 3466 childIncreaseBtn.forEach(child => { 3467 child.classList.remove("disabled"); 3468 }) 3469 } 3470 // ìì´ ë²í¼ ìí 3471 if (searchFilterManager._filter.childCount == 0) { 3472 childDecreaseBtn.forEach(child => { 3473 child.classList.add("disabled"); 3474 }) 3475 } else { 3476 childDecreaseBtn.forEach(child => { 3477 child.classList.remove("disabled"); 3478 }) 3479 } 3480 }, 3481 // ì¸ì ì ì í ì placeholder ì ë°ì´í¸ 3482 updatePersonPlaceholder: function() { 3483 const personPlaceholders = document.querySelectorAll('.people .placeholder'); 3484 const adultCount = this._filter.adultCount; 3485 const childCount = this._filter.childCount; 3486 3487 personPlaceholders.forEach(holder => holder.innerHTML = `ì±ì¸${adultCount}, ìì¸${childCount}`); 3488 }, 3489 3490 getResDate: function(isReset){ 3491 if(isReset || (searchFilterManager._filter.res_date == "" && searchFilterManager._filter.res_end_date == "")){ 3492 const today = new Date(); 3493 const tomorrow = new Date(today); 3494 tomorrow.setDate(today.getDate() + 1); 3495 3496 // ë ì§ í¬ë§· (yyyyMMdd) 3497 const todayStr = today.getFullYear() + ('0' + (today.getMonth() + 1)).slice(-2) + ('0' + today.getDate()).slice(-2); 3498 const tomorrowStr = tomorrow.getFullYear() + ('0' + (tomorrow.getMonth() + 1)).slice(-2) + ('0' + tomorrow.getDate()).slice(-2); 3499 3500 this._filter.res_date = todayStr; 3501 this._filter.res_end_date = tomorrowStr; 3502 3503 // datePicker ê°ë ê°ë³ì ì¼ë¡ ì´ê¸°í 3504 $(".datepicker-list").datepicker("setDate", today); 3505 $(".datepicker-map").datepicker("setDate", today); 3506 } 3507 3508 if(searchFilterManager._filter.res_date == searchFilterManager._filter.res_end_date || (searchFilterManager._filter.res_date != "" && searchFilterManager._filter.res_end_date == "")){ 3509 const siteTypeBoxEl = document.getElementById("search_site_type_box"); 3510 siteTypeBoxEl.style.display = "none"; 3511 } 3512 3513 // ë ì§ë¥¼ placeholderì ë°ì 3514 this.updateDatePlaceholder(); 3515 }, 3516 choiceDateStr: function(){ 3517 const datePlaceholders = document.querySelectorAll('.calendar .placeholder'); 3518 3519 // res_date를 Date ê°ì²´ë¡ ë³í (yyyyMMdd íì) 3520 const startDate = new Date(this._filter.ser_res_date.substring(0, 4), this._filter.ser_res_date.substring(4, 6) - 1, this._filter.ser_res_date.substring(6, 8)); 3521 const serStartDate = new Date(this._filter.res_date.substring(0, 4), this._filter.res_date.substring(4, 6) - 1, this._filter.res_date.substring(6, 8)); 3522 3523 // res_end_dateë ëì¼íê² ì²ë¦¬
3524 const endDate = new Date(this._filter.ser_res_end_date.substring(0, 4), this._filter.ser_res_end_date.substring(4, 6) - 1, this._filter.ser_res_end_date.substring(6, 8)); 3525 const serEndDate = new Date(this._filter.res_end_date.substring(0, 4), this._filter.res_end_date.substring(4, 6) - 1, this._filter.res_end_date.substring(6, 8)); 3526 3527 // ë ì§ íìì´ ì¬ë°ë¥¸ì§ íì¸ 3528 if (isNaN(startDate) || isNaN(endDate)) { 3529 datePlaceholders.forEach(holder => holder.innerHTML = 'ë ì§ë¥¼ ì íí´ ì£¼ì¸ì.'); 3530 return; 3531 } 3532 3533 // ë ì§ë¥¼ 'yyyy.MM.dd' íìì¼ë¡ ë³í (02.02) 3534 //const startFormatted = startDate.getFullYear().toString().slice(-2) + '.' + ('0' + (startDate.getMonth() + 1)).slice(-2) + '.' + ('0' + startDate.getDate()).slice(-2); 3535 //const endFormatted = startDate.getFullYear().toString().slice(-2) + '.' + ('0' + (endDate.getMonth() + 1)).slice(-2) + '.' + ('0' + endDate.getDate()).slice(-2); 3536 const startFormatted = ('0' + (startDate.getMonth() + 1)).slice(-2) + '.' + ('0' + startDate.getDate()).slice(-2); 3537 const endFormatted = ('0' + (endDate.getMonth() + 1)).slice(-2) + '.' + ('0' + endDate.getDate()).slice(-2); 3538 const serStartFormatted = ('0' + (serStartDate.getMonth() + 1)).slice(-2) + '.' + ('0' + serStartDate.getDate()).slice(-2); 3539 const serEndFormatted = ('0' + (serEndDate.getMonth() + 1)).slice(-2) + '.' + ('0' + serEndDate.getDate()).slice(-2); 3540 3541 // ìì¼ ê³ì° (ì§§ì ìì¼ ì´ë¦)
3542 const startDay = startDate.toLocaleString('ko-KR', { weekday: 'short' }); 3543 const endDay = endDate.toLocaleString('ko-KR', { weekday: 'short' }); 3544 const serStartDay = serStartDate.toLocaleString('ko-KR', { weekday: 'short' }); 3545 const serEndDay = serEndDate.toLocaleString('ko-KR', { weekday: 'short' }); 3546 3547 if (this._filter.ser_res_date == "" || this._filter.ser_res_end_date == "") { 3548 datePlaceholders.forEach(holder => holder.innerHTML = `${serStartFormatted} ${serStartDay} - ${serEndFormatted} ${serEndDay}, ${this.calculateNights()}`); 3549 return 'ì¼ì ì í'; 3550 } 3551 3552 if((this._filter.res_date != "" && this._filter.res_end_date == "") || startFormatted == endFormatted){ 3553 return `${startFormatted} ${startDay}, ${this.calculateNights()}(í¼í¬ë)`; 3554 } 3555 3556 return `${startFormatted} ${startDay} - ${endFormatted} ${endDay}, ${this.calculateNights()}`; 3557 }, 3558 // ë ì§ ë³ê²½ ì placeholder ì ë°ì´í¸ 3559 updateDatePlaceholder: function() { 3560 const datePlaceholders = document.querySelectorAll('.calendar .placeholder'); 3561 const dateChoiceInfo = document.querySelector(".twonight"); 3562 3563 // ê²°ê³¼ ì¶ë ¥ (ì: 2025.02.19 목 - 2025.02.20 ê¸, 1ë°) 3564 datePlaceholders.forEach(holder => holder.innerHTML = searchFilterManager.choiceDateStr()); 3565 // ê²°ê³¼ ì¶ë ¥ (ì: ë¹ì¼, 1ë° ì í, 2ë° ì í) 3566 dateChoiceInfo.innerHTML = searchFilterManager.choiceDateStr(); 3567 }, 3568 // ìë°ì¼ì ê³ì° 3569 calculateNights: function() { 3570 // ìì ë ì§ì ì¢ ë£ ë ì§ë¥¼ yyyyMMdd íììì Date ê°ì²´ë¡ ë³í 3571 const startDate = new Date(this._filter.res_date.substring(0, 4), this._filter.res_date.substring(4, 6) - 1, this._filter.res_date.substring(6, 8)); 3572 const endDate = new Date(this._filter.res_end_date.substring(0, 4), this._filter.res_end_date.substring(4, 6) - 1, this._filter.res_end_date.substring(6, 8)); 3573 3574 // ë ì§ê° ì í¨íì§ íì¸ 3575 if (isNaN(startDate) || isNaN(endDate)) { 3576 console.error("Invalid date format"); 3577 return 0; // ë ì§ê° ì í¨íì§ ìì¼ë©´ 0ë° 3578 } 3579 3580 // ë ì§ ì°¨ì´ ê³ì° (ë¨ì: ë°) 3581 const difference = (endDate - startDate) / (1000 * 60 * 60 * 24); 3582 3583 // 0ë° ì´íë¡ ê³ì°ë ê²½ì°ìë ë¹ì¼ë¡ ì²ë¦¬ 3584 return difference <= 0 ? `ë¹ì¼` : `${difference}ë°`; 3585 }, 3586 3587 // ìì êµ¬ë¶ ì¸í 3588 getSiteType: function () { 3589 const allButtonEl = document.getElementById("site_tp_all"); 3590 const value = searchFilterManager._filter['site_type']; 3591 3592 // 모ë ë²í¼ì 'active' í´ëì¤ ì´ê¸°í 3593 document.querySelectorAll(`.stay_button[name='site_tp']`).forEach(btn => btn.classList.remove("active")); 3594 3595 if (Array.isArray(value) && value.length > 0) { 3596 value.forEach(val => { 3597 document.querySelectorAll(`.stay_button[name='site_tp'][value='${val}']`).forEach(btn => btn.classList.add("active")); 3598 }); 3599 allButtonEl.classList.remove("active"); // ê°ë³ ì í ì 'ì ì²´' ë¹íì±í 3600 } else { 3601 allButtonEl.classList.add("active"); // ì무ê²ë ì íëì§ ìì¼ë©´ 'ì ì²´' íì±í 3602 } 3603 }, 3604 // ìì êµ¬ë¶ ë ¸ì¶ ì¬ë¶ 3605 isSiteType: function(){ 3606 const siteTypeBoxEl = document.getElementById("search_site_type_box"); 3607 3608 if(searchFilterManager._filter.res_date == searchFilterManager._filter.res_end_date || (searchFilterManager._filter.res_date != "" && searchFilterManager._filter.res_end_date == "")){ 3609 siteTypeBoxEl.style.display = "none"; 3610 }else{ 3611 siteTypeBoxEl.style.display = "block"; 3612 } 3613 }, 3614 // ìì êµ¬ë¶ ì í 3615 choiceSiteType: function () { 3616 const allButtonEl = document.getElementById("site_tp_all"); 3617 const siteTypeButtonEl = document.querySelectorAll('button[name="site_tp"]'); 3618 3619 // ì ì²´ ë²í¼ í´ë¦ ì´ë²¤í¸ 3620 allButtonEl.addEventListener('click', () => { 3621 // ì ì²´ ì í ì 모ë ê°ë³ ë²í¼ ë¹íì±í & site_type ì´ê¸°í 3622 this._filter.site_type = []; 3623 document.querySelectorAll(`button[name='site_tp']`).forEach(btn => btn.classList.remove('active')); 3624 allButtonEl.classList.add("active"); // ì ì²´ ë²í¼ íì±í 3625 3626 // LIST íì´ì§ íí° ë기í 3627 searchFilterManager.syncFilters(); 3628 }); 3629 3630 // ê°ë³ ë²í¼ í´ë¦ ì´ë²¤í¸ 3631 siteTypeButtonEl.forEach(button => { 3632 button.addEventListener('click', () => { 3633 const value = button.getAttribute('value'); 3634 3635 if (this._filter.site_type.includes(value)) { 3636 // ì íë ê° ì ê±° 3637 this._filter.site_type = this._filter.site_type.filter(item => item !== value); 3638 document.querySelectorAll(`button[name='site_tp'][value='${value}']`).forEach(btn => btn.classList.remove('active')); 3639 } else { 3640 // ì íë ê° ì¶ê°
3641 this._filter.site_type.push(value); 3642 document.querySelectorAll(`button[name='site_tp'][value='${value}']`).forEach(btn => btn.classList.add('active')); 3643 } 3644 3645 // ìì êµ¬ë¶ íí° ì±í¬ ë§ì¶ê¸° 3646 searchFilterManager.syncFilters(); 3647 }); 3648 }); 3649 }, 3650 // ìµê·¼ ê²ì í ì´ë¸ ë±ë¡ 3651 insertRecentSearch: function(){ 3652 let status = "NO"; 3653 3654 const params = { 3655 search_keyword: searchFilterManager._inputFieldEl.value, 3656 site_tp: searchFilterManager._filter.site_type.join(","), 3657 res_date: searchFilterManager._filter.res_date, 3658 res_end_date: searchFilterManager._filter.res_end_date, 3659 region: searchFilterManager._filter.region, 3660 sub_region: searchFilterManager._filter.sub_region.join(","), 3661 adult_count: searchFilterManager._filter.adultCount, 3662 child_count: searchFilterManager._filter.childCount, 3663 }; 3664 3665 $.ajax({
3666 type: "POST", 3667 url: "/search/ax_insert_recent_search.hbb", 3668 data: params, 3669 success: onSuccess, 3670 error: onError 3671 }); 3672 3673 function onSuccess(dataobj) { 3674 status = dataobj; 3675 searchFilterManager.getRecentSearch(); 3676 } 3677 function onError() {} 3678 3679 return status; 3680 }, 3681 //ìµê·¼ê²ì리ì¤í¸ ê°ì ¸ì¤ê¸° 3682 getRecentSearch: function(){ 3683 $.ajax({ 3684 type: "POST", 3685 url: "/search/ax_get_recent_search.hbb", 3686 success: onSuccess, 3687 error: onError 3688 }); 3689 3690 function onSuccess(dataobj){ 3691 const recentContentEl = document.getElementById("recentContent"); 3692 recentContent.innerHTML = dataobj; 3693 3694 document.addEventListener("click", function (event) { 3695 const deleteButton = event.target.closest(".recentDeleteButton"); 3696 const searchButton = event.target.closest(".recentButton"); 3697 3698 // ìµê·¼ê²ìì¡°ê±´ ìì ì´ë²¤í¸ 3699 if (deleteButton) { 3700 event.stopPropagation(); 3701 searchFilterManager.deleteRecentSearch(deleteButton); 3702 return; 3703 } 3704 3705 // ìµê·¼ê²ìì¡°ê±´ ì´ë ì´ë²¤í¸ 3706 if (searchButton) { 3707 searchFilterManager.submitRecentSearch(searchButton); 3708 } 3709 }); 3710 } 3711 3712 function onError(){} 3713 }, 3714 //ìµê·¼ê²ì ê°ë³ ìì 3715 deleteRecentSearch: function(el){ 3716 const campSearchSeq = el.dataset.seq; 3717 3718 $.ajax({
3719 type: "POST", 3720 url: "/search/ax_delete_recent_search.hbb", 3721 data: { delete_type: "ONE", camp_search_seq: campSearchSeq }, 3722 success: function (response) { 3723 const element = document.querySelector(`[data-value="${campSearchSeq}"]`); 3724 if (element) { 3725 element.remove(); 3726 } 3727 }, 3728 error: function () { 3729 3730 } 3731 }); 3732 }, 3733 //ìµê·¼ê²ì ì ì²´ ìì 3734 deleteALLRecentSearch: function(){ 3735 $.ajax({ 3736 type: "POST", 3737 url: "/search/ax_delete_recent_search.hbb", 3738 data: { delete_type: "ALL" }, 3739 success: function (response) { 3740 const element = document.getElementById("recentContent"); 3741 if (element) { 3742 element.innerHTML = `<li class="swiper-slide" style="width: 100%"><div class="box" style="justify-content: center">ì¡°íë ë´ìì´ ììµëë¤.</div></li>`; 3743 } 3744 }, 3745 error: function () { 3746 3747 } 3748 }); 3749 }, 3750 //ìµê·¼ê²ì í´ë¦ ì´ë²¤í¸ 3751 submitRecentSearch: function(el){ 3752 popSearchManager.close(); 3753 3754 if(searchFilterManager._searchType == "LIST"){ 3755 searchFilterManager._filter.site_type = el.dataset.sitetp.split(",") 3756 searchFilterManager._filter.res_date = el.dataset.resdate 3757 searchFilterManager._filter.res_end_date = el.dataset.resenddate 3758 searchFilterManager._filter.ser_res_date = el.dataset.resdate 3759 searchFilterManager._filter.ser_res_end_date = el.dataset.resenddate 3760 searchFilterManager._filter.region = el.dataset.region 3761 searchFilterManager._filter.sub_region = el.dataset.subregion.split(",") 3762 searchFilterManager._filter.adultCount = el.dataset.adultcount 3763 searchFilterManager._filter.childCount = el.dataset.childcount 3764 3765 popSearchManager.updateSearchInput(); 3766 searchFilterManager.updateRegionPlaceholder(); 3767 headFilterManager.isHeadFilterCheck(); 3768 DataListManager.fetchData(true); 3769 3770 return; 3771 } 3772 3773 // URLSearchParams ê°ì²´ ìì± 3774 const searchParams = new URLSearchParams({ 3775 site_tp: el.dataset.sitetp, 3776 res_dt: el.dataset.resdate, 3777 res_edt: el.dataset.resenddate, 3778 region: el.dataset.region, 3779 sub_region: el.dataset.subregion, 3780 ser_adult_count: el.dataset.adultcount, 3781 ser_child_count: el.dataset.childcount, 3782 ser_keyword: "" 3783 }); 3784 3785 window.location.href = `/resv/list.hbb?${searchParams.toString()}`; 3786 }, 3787 //리ì¤í¸ ê²ìí기 3788 submitSearch: function () { 3789 popSearchManager.close(); 3790 3791 if(searchFilterManager._searchType == "COLLECT" || searchFilterManager._searchType == "CAMPCOUPON"){ 3792 searchFilterManager._filter.ser_res_date = searchFilterManager._filter.res_date; 3793 searchFilterManager._filter.ser_res_end_date = searchFilterManager._filter.res_end_date; 3794 3795 popSearchManager.updateSearchInput(); 3796 CollectManager.fetchDatas(true); 3797 return; 3798 } 3799 3800 if(searchFilterManager._searchType == "LIST"){ 3801 const result = searchFilterManager.insertRecentSearch(); 3802 console.log(result); 3803 3804 searchFilterManager._filter.ser_res_date = searchFilterManager._filter.res_date; 3805 searchFilterManager._filter.ser_res_end_date = searchFilterManager._filter.res_end_date; 3806 3807 popSearchManager.updateSearchInput(); 3808 headFilterManager.isHeadFilterCheck(); 3809 DataListManager.fetchData(true); 3810 3811 return; 3812 } 3813 3814 // ìµê·¼ ê²ì ë´ì ë±ë¡ 3815 const result = searchFilterManager.insertRecentSearch(); 3816 console.log(result); 3817 3818 const strSubRegion = searchFilterManager._filter.sub_region.join(",");
3819 const keyword = searchFilterManager._inputFieldEl.value; 3820 3821 // URLSearchParams ê°ì²´ ìì± 3822 const searchParams = new URLSearchParams({ 3823 site_tp: searchFilterManager._filter.site_type, 3824 res_dt: searchFilterManager._filter.res_date, 3825 res_edt: searchFilterManager._filter.res_end_date, 3826 region: searchFilterManager._filter.region, 3827 sub_region: strSubRegion, 3828 ser_adult_count: searchFilterManager._filter.adultCount, 3829 ser_child_count: searchFilterManager._filter.childCount, 3830 ser_keyword: keyword 3831 }); 3832 3833 // filterManager._selectedFiltersê° ì¡´ì¬í ê²½ì° URLì ì¶ê° 3834 const params = (typeof filterManager !== "undefined" && filterManager._selectedFilters) ? filterManager._selectedFilters : {}; 3835 3836 // filterManager._selectedFilters ê°ì´ ìì¼ë©´ ì¶ê° 3837 Object.keys(params).forEach((key) => { 3838 const value = filterManager._selectedFilters[key]; 3839 3840 if (Array.isArray(value) && value.length > 0) { 3841 // ë°°ì´ì´ë©´ ì¼íë¡ êµ¬ë¶ë 문ìì´ë¡ ë³ííì¬ ì¶ê° 3842 searchParams.append(key, value.join(",")); 3843 } else if (value) { 3844 // ê°ì´ ë¹ì´ìì§ ìì¼ë©´ ì¶ê° 3845 searchParams.append(key, value); 3846 } 3847 }); 3848 3849 // ìµì¢ URL ì´ë 3850 window.location.href = `/resv/list.hbb?${searchParams.toString()}`; 3851 }, 3852 //ì§ë ê²ìí기 3853 submitMapSearch: function(){ 3854 popSearchManager.close(); 3855 3856 const markerCoordinate = searchMapManager.getMarkerCoordinate(); 3857 const lat = markerCoordinate.lat(); 3858 const lng = markerCoordinate.lng(); 3859 const zoom = searchMapManager._MAP.getZoom(); 3860 3861 if(searchFilterManager._searchType == "MAP"){ 3862 popSearchManager.updateSearchInput(); 3863 3864 _MAP.setZoom(zoom); 3865 _MAP.setCenter(new naver.maps.LatLng(lat, lng)); 3866 DataManager.fetchData(_MAP, true); 3867 return; 3868 } 3869 3870 const URL= `/search/mapSearch.hbb?zoom=${zoom}&res_dt=${searchFilterManager._filter.res_date}&res_edt=${searchFilterManager._filter.res_end_date}&lat=${lat}&lng=${lng}`; 3871 3872 // URL ì´ë 3873 window.location.href = URL; 3874 } 3875 } 3876 3877 /* ë¬ë ¥ ê´ë ¨ í¨ì */ 3878 const searchCalendarManager = { 3879 init: function(){ 3880 $.datepicker.setDefaults({ 3881 closeText: "ë«ê¸°", 3882 prevText: "ì´ì ë¬", 3883 nextText: "ë¤ìë¬", 3884 currentText: "ì¤ë", 3885 monthNames: ["1ì", "2ì", "3ì", "4ì", "5ì", "6ì","7ì", "8ì", "9ì", "10ì", "11ì", "12ì"], 3886 monthNamesShort: ["1ì", "2ì", "3ì", "4ì", "5ì", "6ì","7ì", "8ì", "9ì", "10ì", "11ì", "12ì"], 3887 dayNames: ["ì¼ìì¼", "ììì¼", "íìì¼", "ììì¼", "목ìì¼", "ê¸ìì¼", "í ìì¼"], 3888 dayNamesShort: ["ì¼", "ì", "í", "ì", "목", "ê¸", "í "], 3889 dayNamesMin: ["ì¼", "ì", "í", "ì", "목", "ê¸", "í "], 3890 weekHeader: "주", 3891 dateFormat: "yymmdd", 3892 firstDay: 0, 3893 isRTL: false, 3894 showMonthAfterYear: true, 3895 yearSuffix: "ë ", 3896 defaultDate: searchFilterManager._filter.ser_res_date 3897 }) 3898 $(".datepicker-list").datepicker({ 3899 minDate: 0, 3900 selectOtherMonths: true, 3901 beforeShowDay: searchCalendarManager.funcBeforeShowDay, 3902 onSelect: function (selected, event) { 3903 var dt = $(this).val(); 3904 searchCalendarManager.selectCalendar(dt); 3905 } 3906 }); 3907 3908 $(".datepicker-map").datepicker({ 3909 minDate: 0, 3910 selectOtherMonths: true, 3911 beforeShowDay: searchCalendarManager.funcBeforeShowDay, 3912 onSelect: function (selected, event) { 3913 var dt = $(this).val(); 3914 searchCalendarManager.selectCalendar(dt); 3915 } 3916 }); 3917 }, 3918 selectCalendar: function(dt){ 3919 if(searchFilterManager._filter.res_end_date=="" && searchFilterManager._filter.res_date <= dt) { 3920 //ìì½ë¶ê°ê²ì 3921 if(searchFilterManager._filter.res_date < dt) { 3922 var s_dt = searchFilterManager._filter.res_date 3923 var s_days = diff_date(searchFilterManager._filter.res_date, dt) 3924 } else { 3925 var s_dt = dt 3926 var s_days = diff_date(dt,searchFilterManager._filter.res_date) 3927 } 3928 3929 if (s_days > 6) { 3930 action_popup.alert("ìµë 6ë°ê¹ì§ ê²ìì´ ê°ë¥í©ëë¤.") 3931 searchFilterManager._filter.res_date = dt 3932 searchFilterManager._filter.res_end_date = "" 3933 searchFilterManager._filter.ser_res_date = dt 3934 searchFilterManager._filter.ser_res_end_date = "" 3935 searchFilterManager._filter.site_type = ['BB006'] 3936 3937 // ìì êµ¬ë¶ íí° ì±í¬ ë§ì¶ê¸° 3938 searchFilterManager.syncFilters(); 3939 3940 return 3941 } 3942 3943 searchFilterManager._filter.res_date = s_dt 3944 searchFilterManager._filter.ser_res_date = s_dt 3945 var ndt = new Date(s_dt.substr(0,4),parseInt(s_dt.substr(4,2))-1,parseInt(s_dt.substr(6,2))); 3946 ndt.setDate(ndt.getDate() + s_days); 3947 searchFilterManager._filter.res_end_date = ndt.getFullYear()+''+filldate(ndt.getMonth()+1)+''+filldate(ndt.getDate()) 3948 searchFilterManager._filter.ser_res_end_date = searchFilterManager._filter.res_end_date 3949 searchFilterManager._filter.res_day = s_days 3950 if(searchFilterManager._filter.ser_res_date == searchFilterManager._filter.ser_res_end_date){ 3951 searchFilterManager._filter.site_type = ['BB006'] 3952 }else{ 3953 searchFilterManager._filter.site_type = [] 3954 } 3955 $(".datepicker-list").datepicker({beforeShowDay: searchCalendarManager.funcBeforeShowDay}); 3956 $(".datepicker-map").datepicker({beforeShowDay: searchCalendarManager.funcBeforeShowDay}); 3957 } else { 3958 searchFilterManager._filter.res_date = dt 3959 searchFilterManager._filter.res_end_date = "" 3960 searchFilterManager._filter.ser_res_date = dt 3961 searchFilterManager._filter.ser_res_end_date = "" 3962 searchFilterManager._filter.site_type = ['BB006'] 3963 } 3964 3965 searchFilterManager.syncFilters(); 3966 searchFilterManager.isSiteType(); 3967 searchFilterManager.updateDatePlaceholder(); 3968 }, 3969 funcBeforeShowDay: function (date) { 3970 var result = null; 3971 var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); 3972 result = [true, ""]; // 기본ê°ì ë¹ ë¬¸ìì´ 3973 3974 var formattedDate = y + '' + filldate(m + 1) + '' + filldate(d); // íì¬ ë ì§ í¬ë§·í 3975 3976 // ì íí ë ì§ê° ë²ì ë´ì ìì ë ui-state-active í´ëì¤ ì¶ê° 3977 if (searchFilterManager._filter.res_date <= formattedDate && searchFilterManager._filter.res_end_date >= formattedDate) { 3978 if(searchFilterManager._filter.res_date == searchFilterManager._filter.res_end_date){ 3979 result = [true, "ui-state-active"]; 3980 }else{ 3981 if(searchFilterManager._filter.res_date == formattedDate){ 3982 result = [true, "ui-state-active left"]; 3983 }else if(searchFilterManager._filter.res_end_date == formattedDate){ 3984 result = [true, "ui-state-active right"]; 3985 }else{ 3986 result = [true, "ui-state-active-a"]; 3987 } 3988 } 3989 3990 } 3991 // ê·¸ ì¸ìë 기본ê°ì¼ë¡ ë¹ ë¬¸ìì´ì ë°í 3992 else { 3993 result = [true, ""]; 3994 } 3995 3996 return result; 3997 }, 3998 } 3999 4000 // ë¤ì´ë² ì§ë ê´ë ¨ 4001 const searchMapManager = { 4002 _LAT: null, 4003 _LNG: null, 4004 _MAP: null, 4005 init: function() { 4006 // ëì²´ ì¢í 4007 this._LAT = 37.82883056; 4008 this._LNG = 127.5117778; 4009 this.createMap(searchMapManager._LAT, searchMapManager._LNG); 4010 4011 if(app_yn=='Y') { 4012 if(app_os=='android'){ 4013 window.Android.getGpsLocation(); 4014 } 4015 if(app_os=='ios'){ 4016 goIosAp('getGpsLocation'); 4017 } 4018 }else{ 4019 if (navigator.geolocation) { 4020 navigator.geolocation.getCurrentPosition(searchMapManager.locationSuccess.bind(this), searchMapManager.locationError.bind(this)); 4021 } else { 4022 this.locationError("ì´ ë¸ë¼ì°ì ë Geolocationì ì§ìíì§ ììµëë¤."); 4023 } 4024 } 4025 4026 }, 4027 locationSuccess: function(position) { 4028 this._LAT = position.coords.latitude; 4029 this._LNG = position.coords.longitude; 4030 searchMapManager.createMap(searchMapManager._LAT, searchMapManager._LNG); 4031 }, 4032 locationError: function(error) { 4033 switch(error.code) { 4034 case error.PERMISSION_DENIED: 4035 console.log("ì¬ì©ìê° ìì¹ ì ë³´ ìì²ì ê±°ë¶íìµëë¤."); 4036 break; 4037 case error.POSITION_UNAVAILABLE: 4038 console.log("ìì¹ ì 보를 ì¬ì©í ì ììµëë¤."); 4039 break; 4040 case error.TIMEOUT: 4041 console.log("ìì¹ ì ë³´ ìì²ì´ ìê° ì´ê³¼ëììµëë¤."); 4042 break; 4043 case error.UNKNOWN_ERROR: 4044 console.log("ì ì ìë ì¤ë¥ê° ë°ìíìµëë¤."); 4045 break; 4046 } 4047 }, 4048 createMap: function(lat, lng) { 4049 const mapOptions = { 4050 center: new naver.maps.LatLng(lat, lng), 4051 zoom: 10 4052 }; 4053 4054 this._MAP = new naver.maps.Map("search_map", mapOptions); 4055 }, 4056 getMarkerCoordinate: function(){ 4057 return this._MAP.getCenter(); 4058 } 4059 }; 4060 4061 // ì± í¨ì 4062 function getLocation(data) { 4063 console.log("===== ì± í¸ì¶ ====="); 4064 // ê²ì ë°ì´í° 4065 const serLat = parseFloat(""); 4066 const serLng = parseFloat(""); 4067 4068 // data를 ','ë¡ ë¶ë¦¬íì¬ ë³ìì ì ì¥ 4069 let [lat, lng] = data.split(',').map(Number); 4070
4071 // ê° ì¤ì 4072 searchMapManager._LAT = lat; 4073 searchMapManager._LNG = lng; 4074 4075 if(searchMapManager._MAP == null){ 4076 searchMapManager.createMap(searchMapManager._LAT, searchMapManager._LNG); 4077 } 4078 4079 if (typeof _LAT !== "undefined" && typeof _LNG !== "undefined") { 4080 _myLat = lat; 4081 _myLng = lng; 4082 4083 _LAT = _myLat; 4084 _LNG = _myLng; 4085 4086 if(_MAP == null){ 4087 if(!isNaN(serLat) || !isNaN(serLng)){ 4088 MapManager.init(serLat, serLng); 4089 return; 4090 } 4091 4092 MapManager.init(_LAT, _LNG); 4093 } 4094 } 4095 } 4096 4097 4098 // ì´ê¸°í ì½ë 4099 $(document).ready(function () { 4100 // íì ê´ë ¨ ì´ë²¤í¸ 4101 popSearchManager.init(); 4102 // í ê´ë ¨ ì´ë²¤í¸ 4103 tabManager.init(); 4104 // ì¤ìì´í¼ ê´ë ¨ ì´ë²¤í¸ 4105 swiperManager.init(); 4106 // ê²ì ê´ë ¨ ì´ë²¤í¸ 4107 searchFilterManager.init(); 4108 // ë¬ë ¥ ê´ë ¨ ì´ë²¤í¸ 4109 searchCalendarManager.init(); 4110 }); 4111</script>
4111 4112 4113 </div><!-- //wrap_in --> 4114 4115 </div> <!--// wrap --> 4116<input type="hidden" name="festa_yn" value="Y"> 4117</form> 4118</body>
4119<script> 4120 const mem_grade = "0"; 4121 const enter_path = ""; 4122</script>
vendor: 2 bytes, line 4122
4122
4123<script src="/js/search_list.js?version=20261001-1"></script>
vendor: 2 bytes, line 4123
4123
4124<script> 4125$(window).scroll(function(){ 4126 if($("#wrap").css("display") != "none") { 4127 sc_top = Math.ceil($(window).scrollTop()) 4128 sc_hei = Math.ceil($(document).height() - $(window).height()) 4129 //$(".head_in").html(sc_hei + "/" + sc_top) 4130 if(sc_hei - 150 < sc_top && !DataListManager._isPending) { 4131 DataListManager.goResSerNext() 4132 } 4133 } 4134}); 4135 4136document.addEventListener("DOMContentLoaded", function() { 4137 // íí° ìì ì ë ¬ ì´ë²¤í¸ 4138 filterManager.sortSelect(() => DataListManager.fetchData(true)); 4139 4140 // ë°ì´í° ì¡°í ì´ë²¤í¸ 4141 DataListManager.init(); 4142 4143 // íê·¸ ê²ìí기 ë²í¼ ì´ë²¤í¸ 4144 filterManager.createTagClickEvent(()=>{ 4145 filterManager._selectedFilters.page = 0; 4146 DataListManager.fetchData(true); 4147 }); 4148 4149 // íí° ê²ìí기 ë²í¼ ì´ë²¤í¸ 4150 filterManager.updateEmptyState(); 4151 document.getElementById("searchSubmitButton").addEventListener('click', function(){ 4152 filterManager.close(); 4153 filterManager._selectedFilters.page = 0; 4154 DataListManager.fetchData(true); 4155 }) 4156 4157 // ìì½ê°ë¥ ë²í¼ ì´ë²¤í¸ 4158 document.getElementById("empty_y").addEventListener('click', function(){ 4159 filterManager._selectedFilters.page = 0; 4160 filterManager.toggleEmpty(); 4161 DataListManager.fetchData(true); 4162 }) 4163 4164 // ë·° íì ë²í¼ ì´ë²¤í¸ 4165 document.addEventListener("click", function (event) { 4166 const selViewBtn = document.querySelector(".sel_view img"); 4167 const galleryView = DataListManager._viewType; 4168 4169 // `.sel_view` ë²í¼ í´ë¦ ì ì¤í 4170 if (event.target.closest(".sel_view")) { 4171 if (galleryView == "PIC") { 4172 DataListManager._viewType = "LIST"; 4173 selViewBtn.src = "../images/thumb-pic.png"; 4174 selViewBtn.alt = "ê°¤ë¬ë¦¬íì¼ë¡ 보기"; 4175 document.getElementById("DivResvList").classList.add("view_type_info"); 4176 document.getElementById("DivResvPrList").classList.add("view_type_info"); 4177 } else { 4178 DataListManager._viewType = "PIC"; 4179 selViewBtn.src = "../images/thumb.png"; 4180 selViewBtn.alt = "리ì¤í¸ë¡ 보기"; 4181 document.getElementById("DivResvList").classList.remove("view_type_info"); 4182 document.getElementById("DivResvPrList").classList.remove("view_type_info"); 4183 } 4184 } 4185 }); 4186 4187 // ì° ë²í¼ 4188 document.getElementById("DivResvList").addEventListener("click", function (event) { 4189 if (event.target.classList.contains("btn_zzim")) { 4190 event.preventDefault(); 4191 event.stopPropagation(); 4192 4193 const memseq = ""; 4194 const $zzimEl = $(event.target); 4195 const campseq = $zzimEl.data("value"); 4196 4197 if(memseq == ""){ 4198 action_popup.alert('ë¡ê·¸ì¸í ì´ì©í´ 주ì¸ì.'); 4199 return; 4200 } 4201 4202 chgFavor($zzimEl,campseq,1) 4203 } 4204 }); 4205 4206 // ì ê¸°ë¥ ìë´ ë§íì 4207 document.getElementById("viewInfoBox").classList.add("active"); 4208 setTimeout(() => { 4209 viewInfoBox.classList.remove("active"); 4210 }, 5000); 4211}); 4212 4213</script>
4213 4214</html>
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.