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=20260901-1"> 31 <link rel="stylesheet" href="/js/swiper/swiper.min.css?version=20260901-1"/> 32 <link rel="stylesheet" href="/js/mCustomScrollbar/jquery.mCustomScrollbar.css?version=20260901-1"/> 33 <link rel="stylesheet" href="/css/tqc.css?version=20260901-1"/> 34
34<script type="text/javascript" src="/js/jquery-1.12.4.min.js?version=20260914-1"></script>
34 35
35<script src="/js/jquery-ui.min.js?version=20260914-1"></script>
35 36
36<script type="text/javascript" src="/js/swiper/swiper.min.js?version=20260914-1"></script>
36 37
37<script type="text/javascript" src="/js/mCustomScrollbar/jquery.mCustomScrollbar.js?version=20260914-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=20260901-1" /--> 39
39<script type="text/javascript" src="/js/common.js?version=20260914-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=20260914-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=20260914-1"></script>
790 791
791<script src="/js/m_map.js?version=20260914-1"></script>
791 792
792<script src="/js/m_sns.js?version=20260914-1"></script>
792 793
793<script src="/js/join.js?version=20260914-1"></script>
793 794
794<script src="/js/resv.js?version=20260914-1"></script>
794 795
795<script src="/js/talk.js?version=20260914-1"></script>
795 796
796<script src="/js/cs.js?version=20260914-1"></script>
796 797
797<script src="/js/coupon.js?version=20260914-1"></script>
797 798
798<script src="/js/iscroll.js?version=20260914-1"></script>
798 799
799<script src="/js/my.js?version=20260914-1"></script>
799 800
800<script src="/js/trans.js?version=20260914-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=20260926&res_edt=20260926">í¼í¬ë</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="DL012">#ìíìë°í ì¸ì¿ í°</button> 1217 </li> 1218 1219 <li class="swiper-slide " > 1220 <button type="button" class="festa_button tag_name " name="ser_festa_gbn" value="DL001">#ì¶©ë¶ìë°ì¿ í°</button> 1221 </li> 1222 1223 <li class="swiper-slide " > 1224 <button type="button" class="festa_button tag_name " name="ser_festa_gbn" value="DL010">#ì¶ììë°í ì¸ì¿ í°</button> 1225 </li> 1226 1227 <li class="swiper-slide " > 1228 <button type="button" class="festa_button tag_name " name="ser_festa_gbn" value="DL011">#ê¸ë°¤ìº í</button> 1229 </li> 1230 1231 <li class="swiper-slide festa-last" style="display:none;"> 1232 <button type="button" class="festa_button tag_name " name="ser_festa_gbn" value="DL007">#êµë°©ê°ì¡± í ì¸ì¿ í°</button> 1233 </li> 1234 1235 <li class="swiper-slide"> 1236 <button type="button" class="keyword_button tag_name" name="ser_get_coupon_yn" value="Y">ì¦ìí ì¸</button> 1237 </li> 1238 <li class="swiper-slide"> 1239 <button type="button" class="keyword_button tag_name" name="ser_disc_yn" value="Y">í ì¸í¹ê°</button> 1240 </li> 1241 <li class="swiper-slide"> 1242 <button type="button" class="keyword_button tag_name" name="ser_camp_spec" value="BM013">물ëì´ì¥ 구ë¹</button> 1243 </li> 1244 <li class="swiper-slide"> 1245 <button type="button" class="keyword_button tag_name" name="ser_kid" value="Y">ìì´ë¤ ëì´ìì¤ êµ¬ë¹</button> 1246 </li> 1247 <li class="swiper-slide"> 1248 <button type="button" class="keyword_button tag_name" name="ser_camp_spec" value="BP000">ë°ë ¤ë물 ëë°</button> 1249 </li> 1250 <li class="swiper-slide"> 1251 <button type="button" class="keyword_button tag_name" name="ser_camp_position" value="C,D,E">ì°¨ê°ì´ ê³ê³¡ãê° ì£¼ë³</button> 1252 </li> 1253 <li class="swiper-slide"> 1254 <button type="button" class="keyword_button tag_name" name="ser_camp_position" value="A">ììí ë°ë¤ 주ë³</button> 1255 </li> 1256 <li class="swiper-slide"> 1257 <button type="button" class="keyword_button tag_name" name="ser_camp_spec" value="BO003">ì ì ìì ëìì¥ ì£¼ë³</button> 1258 </li> 1259 </ul> 1260 </div> 1261 </div> 1262 </div> 1263 1264 </div> 1265 1266 <div class="filter_cont ">
1267 <div class="swiper-container filter_cont_swiper"> 1268 <ul class="swiper-wrapper"> 1269 <li class="swiper-slide"> 1270 <button type="button" class="btn_filter" id="popFilterButton"></button> 1271 </li> 1272 <li class="swiper-slide"> 1273 <div class="filter_name" id="group1_txt" data-value="filter_item1">ìì구ë¶</div> 1274 </li> 1275 <li class="swiper-slide"> 1276 <div class="filter_name" id="group2_txt" data-value="filter_item2">ê²ì구ë¶</div> 1277 </li> 1278 <li class="swiper-slide"> 1279 <div class="filter_name" id="group3_txt" data-value="filter_item3">ììíê²½</div> 1280 </li> 1281 <li class="swiper-slide"> 1282 <div class="filter_name" id="group4_txt" data-value="filter_item4">주ë³íê²½</div> 1283 </li> 1284 1285 <li class="swiper-slide"> 1286 <div class="filter_name" id="group5_txt" data-value="filter_item5">íì¤í기</div> 1287 </li> 1288 1289 </ul> 1290 </div> 1291 </div> 1292 1293</div> 1294 1295<!-- íí°ì ìì´ì½ XX --> 1296<!-- popup(modal) start --> 1297<div class="pop_layer_set" id="filter_pop"> 1298 <!-- íí° ëë ì ë ëì¤ë ì°½ --> 1299 <div class="pop_layer filter_pop"> 1300 <div class="pop_title"> 1301 <p class="tit">íí°</p> 1302 <button type="button" class="clo2" id="popFilterCloseButton"></button> 1303 </div> 1304 <div class="pop_con"> 1305 <div class="filter_top_fixed swiper-container"> 1306 <div class="swiper-wrapper tabs"> 1307 <div id="tab_filter_item1" class="filter_item swiper-slide active" data-target="filter_item1">ììêµ¬ë¶ 1308 </div> 1309 <div id="tab_filter_item2" class="filter_item swiper-slide" data-target="filter_item2">ê²ì구ë¶</div> 1310 <div id="tab_filter_item3" class="filter_item swiper-slide" data-target="filter_item3">ììíê²½</div> 1311 <div id="tab_filter_item4" class="filter_item swiper-slide" data-target="filter_item4">주ë³íê²½</div> 1312 1313 <div id="tab_filter_item5" class="filter_item swiper-slide" data-target="filter_item5">íì¤í기</div> 1314 1315 </div> 1316 </div> 1317 1318 <!-- item_list div ê° item ì íì í´ëì¤ active ì¶ê° --> 1319 <ul class="filter_pop_ul"> 1320 <li id="filter_item1"> 1321 <p class="title">ìì구ë¶</p> 1322 <div class="item_list"> 1323 <button type="button" name="ser_site_tp" value="BB000" id="chk_lodg1">ì¤í ìº í</button> 1324 <button type="button" name="ser_site_tp" value="BB001" id="chk_lodg2">ê¸ë¨í</button> 1325 <button type="button" name="ser_site_tp" value="BB002" id="chk_lodg3">ì¹´ë¼ë°</button> 1326 <button type="button" name="ser_site_tp" value="BB003" id="chk_lodg4">íì </button> 1327 </div> 1328 </li> 1329 1330 <li id="filter_item2"> 1331 <p class="title">ê²ì구ë¶</p> 1332 <!-- <div class="tooltip"> 1333 <p class="tooltip_txt">ì íí ìì½ì ìíì¬ ì ì²´ê° ì¶ê°ë¡ ì ê³µ ë° ìì²íë ì ë³´ì ëë¤.</p> 1334 </div> --> 1335 <div class="item_list"> 1336 <button type="button" name="ser_camp_spec" value="BP000">ë°ë ¤ê²¬ëë°</button> 1337 <button type="button" name="ser_kid" value="Y">í¤ì¦ìº í</button> 1338 <button type="button" name="ser_pg_tp" value="C">ì ì©ì¹´ë</button> 1339 <button type="button" name="ser_pg_tp" value="V">무íµì¥ì ê¸</button> 1340 <button type="button" name="ser_2peopleOnly" value="Y">2ì¸ì ì©</button> 1341 <button type="button" name="ser_camp_spec" value="BP001">í¸ë ì¼ë¬ ì§ì </button> 1342 <button type="button" name="ser_camp_spec" value="BP002">ì¹´ë¼ë° ì§ì </button> 1343 <button type="button" name="ser_camp_spec" value="BP003">ì°¨ë°ìº í</button> 1344 <button type="button" name="ser_q_point" value="Y">Q-Pointì 립</button> 1345 1346 <button type="button" name="ser_disc_yn" value="Y">í ì¸ì¤</button> 1347 <button type="button" name="ser_new_yn" value="Y">ì ê·ì ì </button> 1348 <button type="button" name="ser_long_yn" value="Y">ì¥ë°</button> 1349 <button type="button" name="ser_get_coupon_yn" value="Y">ì ì²´í ì¸ì¿ í°</button> 1350 </div> 1351 </li> 1352 <li id="filter_item3"> 1353 <p class="title">ììíê²½</p> 1354 <div class="item_list"> 1355 <button type="button" name="ser_camp_spec" value="BM000" />ê°ë³íì¥ì¤</button> 1356 <button type="button" name="ser_camp_spec" value="BM001">ê°ë³ì¬ìì¤</button> 1357 <button type="button" name="ser_camp_spec" value="BL004">매ì </button> 1358 <button type="button" name="ser_camp_spec" value="BL003">ìì´íì´</button> 1359 <button type="button" name="ser_camp_spec" value="BM007">ëì´í°</button> 1360 <button type="button" name="ser_camp_spec" value="BM013">ììì¥</button> 1361 <button type="button" name="ser_camp_spec" value="BN000">ì¥ë¹ëì¬</button> 1362 <button type="button" name="ser_camp_spec" value="BM020">ì²´ííë</button> 1363 </div> 1364 </li> 1365 <li id="filter_item4"> 1366 <p class="title">주ë³íê²½</p> 1367 <div class="item_list"> 1368 <button type="button" name="ser_camp_position" value="A">ë°ë¤</button> 1369 <button type="button" name="ser_camp_position" value="B">ì°</button> 1370 <button type="button" name="ser_camp_position" value="C">ê°</button> 1371 <button type="button" name="ser_camp_position" value="D">í¸ì</button> 1372 <button type="button" name="ser_camp_position" value="E">ê³ê³¡</button> 1373 <button type="button" name="ser_camp_position" value="F">ì¬</button> 1374 <button type="button" name="ser_camp_spec" value="BO005">ë±ì°</button> 1375 <button type="button" name="ser_camp_spec" value="BO000">í´ììì¥</button> 1376 <button type="button" name="ser_camp_spec" value="BO002">ììë ì ¸</button> 1377 <button type="button" name="ser_camp_spec" value="BO003">ëì</button> 1378 <button type="button" name="ser_camp_spec" value="BO007">ì¤í¤ì¥</button> 1379 <button type="button" name="ser_camp_spec" value="BO006">ì목ì/í´ì림</button> 1380 </div> 1381 </li> 1382 1383 <li id="filter_item5"> 1384 <p class="title">íì¤í기</p> 1385 <div class="item_list"> 1386 <button type="button" name="ser_key_sub_cd2" value="EA000">ë·° ë§ì§</button> 1387 <button type="button" name="ser_key_sub_cd2" value="EA001">ì¡°ì©í íë§ ë§ì§</button> 1388 <button type="button" name="ser_key_sub_cd2" value="EA002">ì¬ì§ ë§ì§</button> 1389 <button type="button" name="ser_key_sub_cd2" value="EA003">ììí ê·¸ë ë§ì§</button> 1390 <button type="button" name="ser_key_sub_cd2" value="EB000">ë°ë ¤ê²¬ê³¼ í¨ê»</button> 1391 <button type="button" name="ser_key_sub_cd2" value="EB001">ìì´ë¤ê³¼ í¨ê»</button> 1392 <button type="button" name="ser_key_sub_cd2" value="EB002">ì°ì¸ê³¼ í¨ê»</button> 1393 <button type="button" name="ser_key_sub_cd2" value="EB003">ì¹êµ¬ë¤ê³¼ í¨ê»</button> 1394 <button type="button" name="ser_key_sub_cd2" value="EC000">깨ëí ìì¤</button> 1395 <button type="button" name="ser_key_sub_cd2" value="EC001">ëì 리 ìì¤</button> 1396 <button type="button" name="ser_key_sub_cd2" value="EC002">ëì ì¬ì´í¸ ê°ê²©</button> 1397 <button type="button" name="ser_key_sub_cd2" value="EC003">ë¤ìí ëì´ìì¤</button> 1398 <button type="button" name="ser_key_sub_cd2" value="ED000">ì¹ì í ì¬ì¥ë</button> 1399 <button type="button" name="ser_key_sub_cd2" value="ED001">매ëíì</button> 1400 </div> 1401 </li> 1402 1403 </ul> 1404 </div> 1405 <div class="btm search_filter"> 1406 <!-- ì´ê¸°í on ì¼ë¡ ì ì´ --> 1407 <a id="popFilterResetButton" class="btn_refresh">ì´ê¸°í</a> 1408 <button type="button" class="btn_orange" id="searchSubmitButton">íí° ê²ì</button> 1409 </div> 1410 </div> 1411</div> 1412
1413<script> 1414 const headFilterManager = { 1415 init: function(){ 1416 this.swiperKeywordFilter(); 1417 this.swiperBadgeFilter(); 1418 this.isHeadFilterCheck(); 1419 1420 let lastScrollTop = 0; 1421 const headFilter = document.getElementById("headFilter"); 1422 1423 window.addEventListener("scroll", () => { 1424 let scrollTop = window.scrollY || document.documentElement.scrollTop; 1425 1426 if (scrollTop < 170) { 1427 // ìµìë¨ììë íì ë³´ì´ê² ì¤ì 1428 headFilter.style.transform = "translate(-50%)"; 1429 headFilter.style.opacity = "1"; 1430 } else if (scrollTop > lastScrollTop) { 1431 // ìëë¡ ì¤í¬ë¡¤ ì ì¨ê¹ 1432 headFilter.style.transform = "translate(-50%,-100%)"; 1433 headFilter.style.opacity = "0"; 1434 } else { 1435 // ìë¡ ì¤í¬ë¡¤ ì ë ¸ì¶ 1436 headFilter.style.transform = "translate(-50%)"; 1437 headFilter.style.opacity = "1"; 1438 } 1439 1440 lastScrollTop = scrollTop; 1441 }); 1442 }, 1443 swiperKeywordFilter: function(){ 1444 const sr_condi_swiper = new Swiper('.sr_condi_swiper', { 1445 pagination: false, 1446 slidesPerView: 'auto', 1447 paginationClickable: true, 1448 spaceBetween: 8, 1449 freeMode: true, 1450 lazyLoading: true, 1451 observer: true, 1452 observeParents: true, 1453 loop: false 1454 }); 1455 1456 return sr_condi_swiper; 1457 }, 1458 swiperBadgeFilter: function(){ 1459 const filter_cont_swiper = new Swiper('.filter_cont_swiper', { 1460 pagination: false, 1461 slidesPerView: 'auto', 1462 paginationClickable: true, 1463 spaceBetween: 8, 1464 freeMode: true, 1465 lazyLoading: true, 1466 observer: true, 1467 observeParents: true, 1468 loop: false, 1469 }); 1470 1471 return filter_cont_swiper; 1472 }, 1473 // êµ¬ë¶ íí° ë²í¼ active ì ë°ì´í¸ ì´ë²¤í¸ 1474 updateActiveFilters: function() { 1475 const selectedFilters = filterManager._selectedFilters; 1476 1477 // 기존 active í´ëì¤ ì ê±° 1478 document.querySelectorAll(".filter_cont_swiper .swiper-slide").forEach(sli
1478de => { 1479 slide.classList.remove("active"); 1480 }); 1481 1482 // íê·¸ íì¤í ë²í¼ active 1483 if (selectedFilters.ser_festa_gbn != ""){ 1484 const buttonEl = document.querySelector(`.tag_name[value='${selectedFilters.ser_festa_gbn}']`); 1485 if(buttonEl){ 1486 buttonEl.classList.add("active"); 1487 } 1488 } 1489 1490 // íê·¸ í ì¸ ë²í¼ active 1491 if (selectedFilters.ser_disc_yn == "Y"){ 1492 const buttonEl = document.querySelector(`.tag_name[name='ser_disc_yn']`); 1493 buttonEl.classList.add("active"); 1494 } 1495 1496 // íê·¸ ë°ë ¤ë물 ë²í¼ active 1497 if (selectedFilters.ser_camp_spec.some(value => ["BP000"].includes(value))){ 1498 const buttonEl = document.querySelector(`.tag_name[value='${selectedFilters.ser_camp_spec}']`); 1499 buttonEl.classList.add("active"); 1500 } 1501 1502 // íê·¸ ìì´ë¤ ë²í¼ active 1503 if (selectedFilters.ser_kid == "Y"){ 1504 const buttonEl = document.querySelector(`.tag_name[name='ser_kid']`); 1505 buttonEl.classList.add("active"); 1506 } 1507 1508 // íê·¸ ì ì²´í ì¸ ë²í¼ active 1509 if (selectedFilters.ser_get_coupon_yn == "Y"){ 1510 const buttonEl = document.querySelector(`.tag_name[name='ser_get_coupon_yn']`); 1511 buttonEl.classList.add("active"); 1512 } 1513 1514 // ììêµ¬ë¶ ë²í¼ active 1515 if (selectedFilters.ser_site_tp.length > 0) { 1516 document.getElementById("group1_txt")?.closest(".swiper-slide")?.classList.add("active"); 1517 } 1518 1519 // ê²ìêµ¬ë¶ ë²í¼ active 1520 if ( 1521 selectedFilters.ser_camp_spec.some(value => ["BP000", "BP001", "BP002", "BP003"].includes(value)) || 1522 selectedFilters.ser_pg_tp.some(value => ["C", "V"].includes(value)) || 1523 selectedFilters.ser_2peopleOnly === "Y" || selectedFilters.ser_q_point === "Y" || selectedFilters.ser_deposit_yn === "Y" || 1524 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" 1525 ) { 1526 document.getElementById("group2_txt")?.closest(".swiper-slide")?.classList.add("active"); 1527 } 1528 1529 // ììíê²½ ë²í¼ active 1530 if (selectedFilters.ser_camp_spec.some(value => ["BM000", "BM001", "BL004", "BL003", "BM007", "BM013", "BN000", "BM020"].includes(value))) { 1531 document.getElementById("group3_txt")?.closest(".swiper-slide")?.classList.add("active"); 1532 } 1533 1534 // 주ë³íê²½ ë²í¼ active 1535 if (selectedFilters.ser_camp_position.length > 0 || selectedFilters.ser_camp_spec.some(value => ["BO005", "BO000", "BO002", "BO003", "BO007"].includes(value))) { 1536 document.getElementById("group4_txt")?.closest(".swiper-slide")?.classList.add("active"); 1537 } 1538 1539 // íì¤í기 ë²í¼ active 1540 if (selectedFilters.ser_key_sub_cd2.length > 0) { 1541 document.getElementById("group5_txt")?.closest(".swiper-slide")?.classList.add("active"); 1542 } 1543 }, 1544 // êµ¬ë¶ íí° ë¯¸ë ¸ì¶ ì¬ë¶ ì²´í¬ 1545 isHeadFilterCheck: function() { 1546 if(searchFilterManager._filter.res_date == searchFilterManager._filter.res_end_date || (searchFilterManager._filter.res_date != "" && searchFilterManager._filter.res_end_date == "")){ 1547 document.querySelector('.filter_name[data-value="filter_item1"]').closest(".swiper-slide").style.display = "none"; 1548 document.getElementById("tab_filter_item1").style.display = "none"; 1549 document.getElementById("filter_item1").style.display = "none" 1550 }else{ 1551 document.querySelector('.filter_name[data-value="filter_item1"]').closest(".swiper-slide").style.display = "block"; 1552 document.getElementById("tab_filter_item1").style.display = "block"; 1553 document.getElementById("filter_item1").style.display = "block" 1554 } 1555 } 1556 } 1557 1558 /* ê²ì ê´ë ¨ í¨ì */ 1559 const filterUrlParams = new URLSearchParams(window.location.search); 1560 const filterManager = { 1561 _selectedFilters: { 1562 ser_site_tp: [], 1563 ser_pg_tp: [], 1564 ser_camp_spec: [], 1565 ser_camp_position: [], 1566 ser_key_sub_cd2: [], 1567 ser_kid: "", 1568 ser_2peopleOnly: "", 1569 isPg: "", 1570 ser_q_point: "", 1571 ser_deposit_yn: "", 1572 ser_disc_yn: "", 1573 ser_new_yn: "", 1574 ser_long_yn: "", 1575 ser_key_cd: "", 1576 ser_sort: "", 1577 ser_key_cd: "", 1578 ser_key_sub_cd: "", 1579 ser_keyword: "", 1580 ser_only_able: "", 1581 ser_empty_yn: "", 1582 ser_festa_gbn: "", 1583 ser_get_coupon_yn: "", 1584 page: 0 1585 }, 1586 init: function () { 1587 const popFilterButtonEl = document.getElementById("popFilterButton"); 1588 const popFilterCloseButtonEl = document.getElementById("popFilterCloseButton"); 1589 const popFilterResetButtonEl = document.getElementById("popFilterResetButton"); 1590 const filterNameEl = document.querySelectorAll('.filter_name'); 1591 1592 popFilterButtonEl.addEventListener("click", () => { 1593 this.open() 1594 }); 1595 popFilterCloseButtonEl.addEventListener("click", () => { 1596 this.close() 1597 }); 1598 popFilterResetButtonEl.addEventListener("click", () => { 1599 this.resetFilters() 1600 }); 1601 1602 filterNameEl.forEach(el => { 1603 console.log(el.textContent); 1604 1605 el.addEventListener("click", () => { 1606 this.open(el.dataset.value) 1607 }); 1608 }); 1609 1610 // íí° í목 í´ë¦ ì´ë²¤í¸ ë±ë¡ 1611 document.querySelectorAll(".item_list button").forEach(item => { 1612 item.addEventListener("click", (event) => this.toggleFilter(event)); 1613 }); 1614 1615 //this.sortSelect(); 1616 this.setting(); 1617 this.popFilter(); 1618 }, 1619 // íê·¸ íí° ì´ë²¤í¸ ìì± 1620 createTagClickEvent: function(func){ 1621 // íê·¸ íí° í목 í´ë¦ ì´ë²¤í¸ ë±ë¡ 1622 document.querySelectorAll(".tag_name").forEach(item => { 1623 item.addEventListener("click", (event) => { 1624 this.toggleFilter(event); 1625 func(); 1626 }); 1627 }); 1628 }, 1629 // ì´ê¸° ì¸í í¨ì 1630 setting: function(){ 1631 1632 const siteTpValue = filterUrlParams.get("site_tp") ? filterUrlParams.get("site_tp").split(",").filter(
1632Boolean) : []; 1633 const serPgTpValue = filterUrlParams.get("ser_pg_tp") ? filterUrlParams.get("ser_pg_tp").split(",").filter(Boolean) : []; 1634 const serCampSpecValue = filterUrlParams.get("ser_camp_spec") ? filterUrlParams.get("ser_camp_spec").split(",").filter(Boolean) : []; 1635 const serCampPositionValue = filterUrlParams.get("ser_camp_position") ? filterUrlParams.get("ser_camp_position").split(",").filter(Boolean) : []; 1636 const serKeySubCd2Value = filterUrlParams.get("ser_key_sub_cd2") ? filterUrlParams.get("ser_key_sub_cd2").split(",").filter(Boolean) : []; 1637 1638 filterManager._selectedFilters = { 1639 ser_site_tp: siteTpValue, 1640 ser_pg_tp: serPgTpValue, 1641 ser_camp_spec: serCampSpecValue, 1642 ser_camp_position: serCampPositionValue, 1643 ser_key_sub_cd2: serKeySubCd2Value, 1644 ser_kid: filterUrlParams.get("ser_kid") || "", 1645 ser_2peopleOnly: filterUrlParams.get("ser_2peopleOnly") || "", 1646 isPg: filterUrlParams.get("isPg") || "", 1647 ser_q_point: filterUrlParams.get("ser_q_point") || "", 1648 ser_deposit_yn: filterUrlParams.get("ser_deposit_yn") || "", 1649 ser_disc_yn: filterUrlParams.get("ser_disc_yn") || "", 1650 ser_new_yn: filterUrlParams.get("ser_new_yn") || "", 1651 ser_long_yn: filterUrlParams.get("ser_long_yn") || "", 1652 ser_key_cd: filterUrlParams.get("ser_key_cd") || "", 1653 ser_sort: filterUrlParams.get("ser_sort") || "", 1654 ser_key_cd: filterUrlParams.get("ser_key_cd") || "", 1655 ser_key_sub_cd: filterUrlParams.get("ser_key_sub_cd") || "", 1656 ser_keyword: filterUrlParams.get("ser_keyword") || "", 1657 ser_only_able: filterUrlParams.get("ser_only_able") || "", 1658 ser_empty_yn: filterUrlParams.get("ser_empty_yn") || "", 1659 ser_festa_gbn: filterUrlParams.get("ser_festa_gbn") || "", 1660 ser_get_coupon_yn: filterUrlParams.get("ser_get_coupon_yn") || "", 1661 page: 0 1662 } 1663 1664 // í´ë¹ íí°ê°ì´ ì¡´ì¬íë©´ active í´ëì¤ ì¶ê° 1665 Object.keys(filterManager._selectedFilters).forEach(key => { 1666 const value = filterManager._selectedFilters[key]; 1667 1668 if (Array.isArray(value)) { 1669 value.forEach(val => { 1670 document.querySelectorAll(`.item_list button[name='${key}'][value='${val}']`).forEach(btn => btn.classList.add("active")); 1671 }); 1672 } else if (value === "Y") { 1673 document.querySelectorAll(`.item_list button[name='${key}']`).forEach(btn => btn.classList.add("active")); 1674 } 1675 }); 1676 1677 // íì¤í ê²ì ì sort ê° E ì¸í 1678 if(filterManager._selectedFilters.ser_festa_gbn != ""){ 1679 //filterManager._selectedFilters.ser_sort = "E"; 1680 } 1681 1682 // 리ì¤í¸ ìì ë²í¼ ì´ê¸° ì´ë²¤í¸ 1683 filterManager.sortChangeEvent(); 1684 headFilterManager.updateActiveFilters(); 1685 }, 1686 // íí° íì ì´ê¸° 1687 open: function (filterType) { 1688 const scrollPosition = window.scrollY; 1689 const headInElement = document.querySelector('.head_in'); 1690 const containerElement = document.querySelector('.container'); 1691 const top = scrollPosition - 60; // head ëì´ ê° ì ì¸ 1692 1693 document.body.style.position = 'fixed'; 1694 document.body.style.top = `-${top}px`; 1695 1696 containerElement.style.marginTop = '175px'; 1697 1698 headInElement.style.position = 'fixed'; 1699 headInElement.style.top = `0px`; 1700 headInElement.style.left = '50%'; 1701 headInElement.style.width = '100%'; 1702 headInElement.style.transform = 'translateX(-50%)'; 1703 headInElement.style.maxWidth = '640px'; 1704 1705 if(filterType){ 1706 document.querySelector(`.filter_item[data-target='${filterType}']`)?.click(); 1707 } 1708 1709 openLayer('filter_pop'); 1710 }, 1711 // íí° íì ë«ê¸° 1712 close: function () { 1713 const headInElement = document.querySelector('.head_in'); 1714 const containerElement = document.querySelector('.container'); 1715 const scrollY = document.body.style.top; 1716 1717 containerElement.style.marginTop = '115px'; 1718 1719 document.body.style.position = ''; 1720 document.body.style.top = ''; 1721 headInElement.style.position = 'relative'; 1722 headInElement.style.top = ''; 1723 window.scrollTo(0, parseInt(scrollY || '0') * -1); 1724 1725 closeLayer('filter_pop'); 1726 }, 1727 // íì íí° íì´ì§ ì´ë²¤í¸ 1728 popFilter: function () { 1729 const swiper = this.popFilterSwiper(); 1730 1731 const fixedTop = document.querySelector('.filter_top_fixed'); 1732 let initialTopPosition = fixedTop.offsetTop; // ì´ê¸° ìì¹ íì 1733
1734 const updateFixedTop = () => { 1735 if (window.scrollY >= initialTopPosition) { 1736 fixedTop.classList.add('fixed'); 1737 } else { 1738 fixedTop.classList.remove('fixed'); 1739 } 1740 }; 1741 1742 // í ì¤í¬ë¡¤ ì´ë²¤í¸ ì¤ì 1743 const popupContainer = document.querySelector('.filter_pop_ul'); 1744 let isManualScroll = false; 1745 1746 popupContainer.addEventListener('scroll', () => { 1747 if (isManualScroll) return; // ìë ì¤í¬ë¡¤ ì ì¤í¬ë¡¤ ì´ë²¤í¸ 무ì 1748 updateFixedTop(); 1749 1750 const allTabs = document.querySelectorAll('.filter_item'); 1751 let activeTabFound = false; // íì±íë íì í ë²ë§ ì°¾ìë´ëë¡ íëê·¸ ì¤ì 1752 1753 if (popupContainer.scrollTop === 0) { 1754 allTabs.forEach(tab => tab.classList.remove('active')); 1755 allTabs[0].classList.add('active'); 1756 1757 // 모ë°ì¼ììë Swiperë 첫 ë²ì§¸ íì¼ë¡ ì´ë 1758 if (window.innerWidth <= 640) { 1759 swiper.slideTo(0); 1760 } 1761 return; 1762 } 1763 1764 allTabs.forEach((tab, index) => { 1765 const targetId = tab.getAttribute('data-target'); 1766 const targetElement = document.getElementById(targetId); 1767 1768 if (targetElement && !activeTabFound) { 1769 const rect = targetElement.getBoundingClientRect(); 1770 1771 if (rect.top <= 128 && rect.bottom >= 128) { 1772 // ì¹ì ì´ íë©´ ë´ 128px ììì ë³´ì¼ ë íì±í 1773 tab.classList.add('active'); 1774 activeTabFound = true; // 첫 ë²ì§¸ë¡ ë³´ì´ë ì¹ì ì í´ë¹íë íì activeë¡ ì¤ì 1775 1776 // Swiper를 í´ë¹ í ìì¹ë¡ ì´ë (모ë°ì¼ì¼ ê²½ì°ë§ ì ì©) 1777 if (window.innerWidth <= 640) { // 모ë°ì¼ ì²´í¬ 1778 swiper.slideTo(index); // active íì¼ë¡ swiper ì´ë 1779 } 1780 } else { 1781 tab.classList.remove('active'); 1782 } 1783 } else { 1784 tab.classList.remove('active'); 1785 } 1786 }); 1787 }); 1788 1789 1790 // í í´ë¦ ì ìëì¼ë¡ íì±í ì¤ì 1791 document.querySelectorAll('.filter_item').forEach((tab, index) => { 1792 tab.addEventListener('click', function () { 1793 if (tab.style.display === 'none') return; // display: none ìíì íì 무ì 1794 1795 isManualScroll = true; // ì¤í¬ë¡¤ ì´ë²¤í¸ ì¼ì ì¤ì§ 1796 1797 // 모ë íìì active ì ê±° í íì¬ í´ë¦í íì active ì¶ê° 1798 document.querySelectorAll('.filter_item').forEach(item => item.classList 1799 .remove('active')); 1800 this.classList.add('active'); 1801 1802 // í´ë¹ ì¹ì ì¼ë¡ íì ë´ë¶ ì¤í¬ë¡¤ ì´ë 1803 const targetId = this.getAttribute('data-target'); 1804 const targetElement = document.getElementById(targetId); 1805 const popupContainer = document.querySelector('.filter_pop_ul'); 1806 1807 if (targetElement && popupContainer) { 1808 popupContainer.scrollTo({ 1809 top: targetElement.offsetTop - popupContainer.offsetTop, 1810 behavior: 'smooth' 1811 }); 1812 1813 if (window.innerWidth <= 640) { 1814 swiper.slideTo(index); // Swiper í ì´ë 1815 } 1816 1817 // ì¤í¬ë¡¤ì´ ëë í ë¤ì ì¤í¬ë¡¤ ì´ë²¤í¸ íì±í 1818 setTimeout(() => { 1819 isManualScroll = false; 1820 }, 500); 1821 } 1822 }); 1823 }); 1824 1825 1826 // ì´ê¸° ìì¹ ì ë°ì´í¸ë¥¼ ìí 리ì¬ì´ì¦ ì´ë²¤í¸ ì²ë¦¬ 1827 window.addEventListener('resize', () => { 1828 initialTopPosition = fixedTop.offsetTop;
1829 updateFixedTop(); 1830 }); 1831 1832 updateFixedTop(); 1833 }, 1834 // íí° íì íì´ì§ í 1835 popFilterSwiper: function () { 1836 const swiper = new Swiper('.filter_top_fixed', { 1837 slidesPerView: 'auto', 1838 spaceBetween: 8, 1839 freeMode: true 1840 }); 1841 1842 return swiper; 1843 }, 1844 // ì ë ¬ ê¸°ì¤ íì ì´ë²¤í¸ 1845 sortSelect: function (fun) { 1846 const eventBtnEl = document.getElementById('sortChoiceButton'); 1847 const options = document.querySelectorAll(".opt"); 1848 const parentEl = eventBtnEl.parentNode; 1849 1850 // í´ë¦í ìµì ì í ì¤í¸ë¥¼ ë¼ë²¨ ìì ë£ì 1851 const handleSelect = (item) => { 1852 parentEl.classList.remove("on"); 1853 eventBtnEl.innerHTML = item.textContent; 1854 1855 filterManager._selectedFilters.ser_sort = item.dataset.value; 1856 fun(); 1857 }; 1858 1859 // ìµì í´ë¦ ì í´ë¦í ìµì ì ëê¹ 1860 options.forEach((option) => { 1861 option.addEventListener("click", (event) => { 1862 event.stopPropagation(); // ì´ë²¤í¸ ë²ë¸ë§ ë°©ì§ 1863 handleSelect(option); 1864 }); 1865 }); 1866 1867 // ë¼ë²¨ì í´ë¦ ì ìµì 목ë¡ì´ ì´ë¦¼/ë«í 1868 eventBtnEl.addEventListener("click", (event) => { 1869 event.stopPropagation(); // ì´ë²¤í¸ ë²ë¸ë§ ë°©ì§ 1870 parentEl.classList.toggle("on"); 1871 }); 1872 1873 // **ì´ì¸ ìì í´ë¦ ì ë«ê¸°** 1874 const closeDropdown = (event) => { 1875 if (!parentEl.contains(event.target)) { 1876 parentEl.classList.remove("on"); 1877 } 1878 }; 1879 1880 document.addEventListener("click", closeDropdown); 1881 1882 // **ì¤í¬ë¡¤ ì ë«ê¸°** 1883 document.addEventListener("scroll", () => { 1884 parentEl.classList.remove("on"); 1885 }); 1886 }, 1887 // ì ë ¬ê¸°ì¤ ë³ê²½ 1888 sortChangeEvent: function(){ 1889 // 리ì¤í¸ ìì ë²í¼ ì´ê¸° ì´ë²¤í¸ 1890 const sortChoiceButtonEl = document.getElementById("sortChoiceButton"); 1891 if(sortChoiceButtonEl != null){ 1892 let buttonText; 1893 1894 switch (filterManager._selectedFilters.ser_sort) { 1895 case "R": 1896 buttonText = "ì¶ì²ì"; 1897 break; 1898 case "P": 1899 buttonText = "ì¡°íì"; 1900 break; 1901 case "E": 1902 buttonText = "ë¹ì리ì"; 1903 break; 1904 case "F": 1905 buttonText = "ê°ê²©ì"; 1906 break; 1907 case "S": 1908 buttonText = "í기ë§ìì"; 1909 break; 1910 case "N": 1911 buttonText = "ìµê·¼í기ì"; 1912 break; 1913 default: 1914 buttonText = "ì¶ì²ì"; // ê¸°ë³¸ê° 1915 } 1916 1917 sortChoiceButtonEl.innerHTML = buttonText; 1918 } 1919 }, 1920 // ìì½ê°ë¥ ë°ì´í°ë§ 1921 toggleEmpty: function(){ 1922 const isEmpty = filterManager._selectedFilters.ser_only_able; 1923 const emptyButtonEl = document.getElementById("empty_y"); 1924 1925 if(isEmpty == "on"){ 1926 filterManager._selectedFilters.ser_only_able = ""; 1927 filterManager._selectedFilters.ser_empty_yn = "N"; 1928 }else{ 1929 filterManager._selectedFilters.ser_only_able = "on"; 1930 filterManager._selectedFilters.ser_empty_yn = "Y"; 1931 } 1932 1933 this.updateEmptyState(); 1934 }, 1935 // ìì½ê°ë¥ ë²í¼ ì´ë²¤í¸ 1936 updateEmptyState: function(){ 1937 const emptyButtonEl = document.getElementById("empty_y"); 1938 1939 if (filterManager._selectedFilters.ser_only_able == "on") { 1940 emptyButtonEl.classList.add("active"); 1941 } else { 1942 emptyButtonEl.classList.remove("active"); 1943 } 1944 }, 1945 // íí° í목 í´ë¦ ì íì±í/ë¹íì±í 1946 toggleFilter: function (event) { 1947 const searchPageType = 'LIST'; 1948 const target = event.target; 1949 const name = target.getAttribute("name");
1950 const value = target.getAttribute("value"); 1951 1952 // íì¤í ë²í¼ì¼ ë 1953 if(name == "ser_festa_gbn"){ 1954 1955 //ë§ë§íìº íì¸ ê²½ì° ì ì¤ì¼ì ê¸°ë³¸ê° set 1956 if (value == "DL002") { 1957 searchFilterManager._filter.res_date = "20251001"; 1958 searchFilterManager._filter.res_end_date = "20251002"; 1959 } 1960 1961 document.querySelectorAll(".tag_name.festa_button").forEach(item => item.classList.remove("active")); 1962 1963 if(filterManager._selectedFilters[name] == value){ 1964 document.querySelector(`.tag_name.festa_button[value='${value}']`).classList.remove("active"); 1965 filterManager._selectedFilters[name] = ""; 1966 }else{ 1967 document.querySelector(`.tag_name.festa_button[value='${value}']`).classList.add("active"); 1968 filterManager._selectedFilters[name] = value; 1969 1970 //filterManager._selectedFilters.ser_sort = "E"; 1971 filterManager.sortChangeEvent(); 1972 } 1973 1974 return; 1975 } 1976 1977 // _selectedFilters[name]ì´ ì¡´ì¬íì§ ìì¼ë©´ ê¸°ë³¸ê° ì¤ì 1978 if (this._selectedFilters[name] === undefined) { 1979 this._selectedFilters[name] = []; 1980 } 1981 1982 // ë°°ì´ì¸ ê²½ì° (ex: ser_site_tp, ser_pg_tp ë±) 1983 if (Array.isArray(this._selectedFilters[name])) { 1984 1985 // valueì 콤ë§ê° ìì¼ë©´ ë°°ì´ë¡ ë¶ë¦¬ 1986 const valueList = String(value) 1987 .split(",") 1988 .map(item => item.trim()) 1989 .filter(item => item !== ""); 1990 1991 // valueList ê°ë¤ì´ ì ë¶ ì íëì´ ìì¼ë©´ í´ì , ìëë©´ ì í 1992 const isSelected = valueList.every(item => this._selectedFilters[name].includes(item)); 1993 1994 if (isSelected) { 1995 // ì í í´ì 1996 this._selectedFilters[name] = this._selectedFilters[name].filter(item => !valueList.includes(item)); 1997 1998 // ì본 value ë²í¼ ë¹íì±í ex) value="A,B" 1999 document.querySelectorAll(`.item_list button[name='${name}'][value='${value}']`).forEach(item => item.classList.remove("active")); 2000 document.querySelectorAll(`.tag_name[name='${name}'][value='${value}']`).forEach(item => item.classList.remove("active")); 2001 2002 // ë¶ë¦¬ë value ë²í¼ë¤ë ë¹íì±í ex) value="A", value="B" 2003 valueList.forEach(filterValue => { 2004 document.querySelectorAll(`.item_list button[name='${name}'][value='${filterValue}']`).forEach(item => item.classList.remove("active")); 2005 document.querySelectorAll(`.tag_name[name='${name}'][value='${filterValue}']`).forEach(item => item.classList.remove("active")); 2006 }); 2007 2008 if (searchPageType == "LIST" && name == "ser_site_tp") { 2009 searchFilterManager._filter['site_type'] = searchFilterManager._filter['site_type'].filter(item => !valueList.includes(item)); 2010 searchFilterManager.getSiteType(); 2011 } 2012 2013 } else { 2014 // ì í ì¶ê° - ì¤ë³µ ë°©ì§ 2015 valueList.forEach(filterValue => { 2016 if (!this._selectedFilters[name].includes(filterValue)) { 2017 this._selectedFilters[name].push(filterValue); 2018 } 2019 }); 2020 2021 // ì본 value ë²í¼ íì±í ex) value="A,B" 2022 document.querySelectorAll(`.item_list button[name='${name}'][value='${value}']`).forEach(item => item.classList.add("active")); 2023 document.querySelectorAll(`.tag_name[name='${name}'][value='${value}']`).forEach(item => item.classList.add("active")); 2024 2025 // ë¶ë¦¬ë value ë²í¼ë¤ë íì±í ex) value="A", value="B" 2026 valueList.forEach(filterValue => { 2027 document.querySelectorAll(`.item_list button[name='${name}'][value='${filterValue}']`).forEach(item => item.classList.add("active"));
2028 document.querySelectorAll(`.tag_name[name='${name}'][value='${filterValue}']`).forEach(item => item.classList.add("active")); 2029 }); 2030 2031 if (searchPageType == "LIST" && name == "ser_site_tp") { 2032 valueList.forEach(filterValue => { 2033 if (!searchFilterManager._filter['site_type'].includes(filterValue)) { 2034 searchFilterManager._filter['site_type'].push(filterValue); 2035 } 2036 }); 2037 2038 searchFilterManager.getSiteType(); 2039 } 2040 } 2041 } 2042 // ë°°ì´ì´ ìë ê²½ì° (ex: ser_kid, ser_2peopleOnly ë±) 2043 else { 2044 if(this._selectedFilters[name] == ""){ 2045 this._selectedFilters[name] = value; 2046 }else{ 2047 this._selectedFilters[name] = ""; 2048 } 2049 2050 document.querySelectorAll(`.item_list button[name='${name}']`).forEach(item => item.classList.toggle("active", this._selectedFilters[name] === "Y")); // íí° íì±í ì¬ë¶ ì¤ì 2051 document.querySelectorAll(`.tag_name[name='${name}'][value='${value}']`).forEach(item => item.classList.toggle("active", this._selectedFilters[name] === "Y")); // íê·¸ íì±í ì¬ë¶ ì¤ì 2052 } 2053 2054 headFilterManager.updateActiveFilters(); 2055 }, 2056 // íí° ì ì© (ê²ì ì¤í) 2057 applyFilters: function (dataFatch) { 2058 2059 }, 2060 // íí° ì´ê¸°í 2061 resetFilters: function () { 2062 this._selectedFilters = { 2063 resStartDate: '20260924', 2064 resEndDate: '20260924', 2065 ser_site_tp: [], 2066 ser_pg_tp: [], 2067 ser_camp_spec: [], 2068 ser_camp_position: [], 2069 ser_key_sub_cd2: [], 2070 ser_kid: "N", 2071 ser_2peopleOnly: "N", 2072 isPg: "N", 2073 ser_q_point: "N", 2074 ser_deposit_yn: "N", 2075 ser_disc_yn: "N", 2076 ser_new_yn: "N", 2077 ser_long_yn: "N", 2078 ser_get_coupon_yn: "N", 2079 ser_sort: "R", 2080 ser_key_cd: "", 2081 ser_key_sub_cd: "", 2082 ser_keyword: "", 2083 ser_only_able: "", 2084 ser_empty_yn: "", 2085 ser_festa_gbn: "", 2086 page: 0 2087 }; 2088 2089 searchFilterManager.syncFilters(); 2090 headFilterManager.updateActiveFilters(); 2091 2092 // 모ë íí° í목 ë¹íì±í 2093 document.querySelectorAll(".item_list button").forEach(item => { 2094 item.classList.remove("active"); 2095 }); 2096 }, 2097 2098 }; 2099 2100 document.addEventListener("DOMContentLoaded", function() { 2101 headFilterManager.init(); 2102 filterManager.init(); 2103 }); 2104</script>
2104 2105 2106 <div class="view_filter"> 2107 <!-- sel_ok - ë ì§ ì íëì ëë§ ë ¸ì¶ --> 2108 <div> 2109 <div class="sel_ok" id="empty_y" style="display: none">ìì½ê°ë¥</div> 2110 </div> 2111 <div class="right_div"> 2112 <div class="sel_div"> 2113 <button type="button" id="sortChoiceButton" class="label">ì¶ì²ì</button> 2114 <ul class="opt_ul"> 2115 <li class="opt" data-value="R">ì¶ì²ì</li> 2116 <li class="opt" data-value="P">ì¡°íì</li> 2117 <li class="opt" data-value="E">ë¹ì리ì</li> 2118 <li class="opt" data-value="F">ê°ê²©ì</li> 2119 <li class="opt" data-value="S">í기ë§ìì</li> 2120 <li class="opt" data-value="N">ìµê·¼í기ì</li> 2121 </ul> 2122 </div> 2123 <div class="sel_view main-info-box"> 2124 <img src="../images/thumb.png" alt="리ì¤í¸ë¡ 보기" /> 2125 <div class="balloon-badge bottom right" id="viewInfoBox">íëì 모ì보기</div> 2126 </div> 2127 </div> 2128 </div> 2129 2130 <!-- 목ë¡íì¼ëë§ view_type_info ì¶ê° --> 2131 <div id="DivResvPrList" class="camp_list view_type"></div><!--// camp_list --> 2132 2133 <div id="DivResvList" class="camp_list view_type" style="min-height: 50px;"></div><!--// camp_list --> 2134 <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> 2135 2136 </div><!--// sear_result_con --> 2137 <!--ââââââ 컨í ì¸ ë *******************âââââââââ --> 2138 </div> <!--// container --> 2139 2140 2141<style> 2142 .search_marker{ 2143 position: absolute; 2144 top: 50%; 2145 left: 50%; 2146 transform: translate(-50%, -50%); 2147 width: 16px; 2148 height: 16px; 2149 border-radius: 16px; 2150 background: #fff; 2151 z-index: 1; 2152 } 2153 .now_marker{ 2154 position: absolute; 2155 top: 50%; 2156 left: 50%; 2157 transform: translate(-50%, -50%); 2158 width: 16px; 2159 height: 16px; 2160 border-radius: 16px; 2161 background: #fff; 2162 z-index: 1; 2163 } 2164 .now_marker:after{ 2165 content: ""; 2166 display: block; 2167 position: absolute; 2168 top: 50%; 2169 left: 50%; 2170 transform: translate(-50%, -50%); 2171 width: 20px; 2172 height: 20px; 2173 border-radius: 20px; 2174 background: #F27226; 2175 opacity: .5; 2176 z-index: -1; 2177 } 2178 .now_marker:before{ 2179 content: ""; 2180 display: block; 2181 position: absolute; 2182 top: 50%; 2183 left: 50%; 2184 transform: translate(-50%, -50%); 2185 width: 10px; 2186 height: 10px; 2187 border-radius: 10px; 2188 border: 2px solid #fff; 2189 background: #F27226; 2190 } 2191 .ui-state-active, .ui-state-active a:hover { 2192 position:relative; 2193 border-radius: 100rem; 2194 } 2195 .ui-state-active a{ 2196 position: relative; 2197 border-radius: 100rem; 2198 background: #f47206 !important; 2199 } 2200 td.ui-state-active.left:before{ 2201 content: ""; 2202 position: absolute; 2203 top:0; 2204 left: 0; 2205 display: block; 2206 width: 50%; 2207 height: 100%; 2208 transform: translateX(100%); 2209 background: #FFCCAD; 2210 } 2211 td.ui-state-active.right:before{ 2212 content: ""; 2213 position: absolute; 2214 top:0; 2215 right: 0; 2216 display: block; 2217 width: 50%; 2218 height: 100%; 2219 transform: translateX(-100%); 2220 background: #FFCCAD; 2221 } 2222 .ui-state-active-a{ 2223 background: #FFCCAD !important; 2224 } 2225 .stay_btn_swiper .swiper-slide{ width: auto; } 2226 2227</style> 2228 2229<div class="pop_layer_set2" id="search_pop"> 2230 <!-- íí° ëë ì ë ëì¤ë ì°½ --> 2231 <div class="filter_pop"> 2232 <div class="search head"> 2233 <div class="head_in" style="overflow: initial"> 2234 <button type="button" class="btn_close" id="popSearchCloseButton"></button> 2235 <ul class="search_tab"> 2236 <li class="main-info-box active" id="listTab">ììê²ì</li> 2237 <li class="main-info-box" id="mapTab"> 2238 ì§ëê²ì 2239 <div class="balloon-badge bottom center" id="mapInfoBox">ê°ê¹ì´ ìì찾기</div> 2240 </li> 2241 </ul> 2242 </div> 2243 </div> 2244 2245 <div> 2246 <!--ââââââ 컨í ì¸ ìì ââââââ--> 2247 <div class="search_content" id="list-search-content" style="display: none;"> 2248 <div class="search_form_box"> 2249 <div class="search_form_input search"> 2250 <input type="text" id="ser_keyword_" list="sear_list" value="" placeholder="ììëª ì ì ë ¥íì¸ì" style="width: 100%; font-size: 14px; outline: 0; border: 0;" /> 2251 <span class="ico_del" id="deleteKeyword" style="display:none;"></span> 2252 <div id="search_result_info_box" class="search_result_info_box"> 2253 <p class="info">ì ì²´ëª í´ë¦ì, ìì¸íì´ì§ë¡ ì´ëí©ëë¤.</p> 2254 <p class="info">ë¤ë¥¸ ì¡°ê±´ì¼ë¡ ê²ìíë ¤ë©´, í ê²ìí목ì ë°ë¡ í´ë¦íì¸ì.</p> 2255 </div> 2256 <ul id="search_result_box" class="search_result_box"></ul> 2257 </div> 2258 <div class="search_form_input place"> 2259 <span class="placeholder">ì§ìì ì í íì¸ì.</span> 2260 <div class="search_choice_box"> 2261 <div style="display: flex;justify-content: space-between;align-items:center;"> 2262 <h3 class="title">ì§ìì ì íí´ ì£¼ì¸ì.</h3> 2263 <p style="color:#8E8E8E;font-size: 12px;">ìµë 3ê° ì í</p> 2264 </div> 2265 <div class="content"> 2266 <div class="swiper-container place_tab_swiper"> 2267 <ul class="swiper-wrapper"> 2268 <li class="swiper-slide place_button" data-value="" data-region="" data-arr="-1">ì§ìì ì²´</li> 2269 <!--li class="swiper-slide place_button" data-value="ê°ìê¶" data-region="" data-arr="0">ê°ì</li> 2270 <li class="swiper-slide place_button" data-value="ê²½ìê¶" data-region="" data-arr="1">ê²½ì</li> 2271 <li class="swiper-slide place_button" data-value="경기ê¶" data-region="" data-arr="2">경기</li> 2272 <li class="swiper-slide place_button" data-value="ì¶©ì²ê¶" data-region="" data-arr="3">ì¶©ì²</li> 2273 <li class="swiper-slide place_button" data-value="ì ë
2273¼ê¶" data-region="" data-arr="4">ì ë¼</li> 2274 <li class="swiper-slide place_button" data-value="ì 주ê¶" data-region="" data-arr="5">ì 주</li> 2275 <li class="swiper-slide place_button" data-value="ì¸ì²" data-region="" data-arr="6">ì¸ì²</li--> 2276 <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> 2277 </ul> 2278 </div> 2279 <div id="place_result_box" class="place_result_box"></div> 2280 <div id="place_choice_box" class="place_choice_box"> 2281 <ul></ul> 2282 </div> 2283 </div> 2284 </div> 2285 </div> 2286 <div class="search_form_input calendar"> 2287 <span class="placeholder">ë ì§ë¥¼ ì íí´ ì£¼ì¸ì.</span> 2288 <div class="search_choice_box"> 2289 <h3 class="title">ë ì§ë¥¼ ì íí´ ì£¼ì¸ì.</h3> 2290 <div class="content"> 2291 <div class="datepicker-list"></div> 2292 <div style="display:flex;align-items:center;justify-content:space-between;margin-top:16px;"> 2293 <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> 2294 <button type="button" class="twonight" >2ë° ì í</button> 2295 </div> 2296 </div> 2297 </div> 2298 </div> 2299 <div class="search_form_button stay" id="search_site_type_box" > 2300 <div class="swiper-container stay_btn_swiper"> 2301 <ul class="swiper-wrapper"> 2302 <li class="swiper-slide"> 2303 <button type="button" class="stay_button active" id="site_tp_all">ì ì²´</button> 2304 </li> 2305 <li class="swiper-slide"> 2306 <button type="button" class="stay_button" name="site_tp" value="BB000">ì¤í ìº í</button> 2307 </li> 2308 <li class="swiper-slide"> 2309 <button type="button" class="stay_button" name="site_tp" value="BB001">ê¸ë¨í</button> 2310 </li> 2311 <li class="swiper-slide"> 2312 <button type="button" class="stay_button" name="site_tp" value="BB002">ì¹´ë¼ë°</button> 2313 </li> 2314 <li class="swiper-slide"> 2315 <button type="button" class="stay_button" name="site_tp" value="BB003">íì </button> 2316 </li> 2317 </ul> 2318 </div> 2319 </div> 2320 <div class="search_form_input people"> 2321 <span class="placeholder">ì±ì¸0, ìì¸0</span> 2322 <div class="search_choice_box"> 2323 <h3 class="title">ì¸ìì ì íí´ ì£¼ì¸ì.</h3> 2324 <p class="text">ìì¸ì ëí ëì´ê¸°ì¤ ë° ì¶ê°ìê¸ ì ì± ì ì ì²´ë³ë¡ ìì´íë ìì½ì ìë´ì¬íì ë°ëì íì¸íì기 ë°ëëë¤.</p> 2325 <div class="content"> 2326 <div class="people_count"> 2327 <span class="people_count_text">ì±ì¸</span> 2328 <div class="count_box adult"> 2329 <!-- 0ì¼ë - ë²í¼ì í´ëì¤ disabled ì¶ê° --> 2330 <button type="button" class="count_box_decrease disabled"></button> 2331 <span class="count_box_num">0</span> 2332 <button type="button" class="count_box_increase"></button> 2333 </div> 2334 </div> 2335 <div class="people_count"> 2336 <span class="people_count_text">ìì¸</span> 2337 <div class="count_box child"> 2338 <button type="button" class="count_box_decrease disabled"></button> 2339 <span class="count_box_num">0</span> 2340 <button type="button" class="count_box_increase disabled"></button> 2341 </div> 2342 </div> 2343 </div> 2344 </div> 2345 </div> 2346 </div> 2347 2348 <!-- <button type="button" class="find_nearby_btn">ë´ ì£¼ë³ìì ê²ì</button> --> 2349 2350 <!-- ìµê·¼ ê²ì ì¡°ê±´ ë ¸ì¶ íì´ì§ SearchTypePage TYPE: "LIST" | "MAP" | "MAIN" --> 2351 2352 <!-- ìµê·¼ ê²ì ì¡°ê±´ ë ¸ì¶ íì´ì§ END --> 2353 2354 <!-- ê²ì ê´ê³ ìì --> 2355 2356 <div class="recent_searches"> 2357 <div class="title"> 2358 <strong>ì´ë¬ì ë¡í ì¶ì² ìº íì¥</strong> 2359 </div> 2360 <div class="content"> 2361 <div class="swiper-container ad_camp_swiper" style="padding: 0;"> 2362 <ul class="swiper-wrapper" id="adContent"> 2363 2364 <li class="swiper-slide swiper-slide-active"> 2365 <a href="javascript:clkCampPr(1882,17651,'SEARCH');"> 2366 <div class="pic"> 2367 <div class="top_bat" style="position: absolute; padding: 6px; margin: 0; justify-content: end;"> 2368 <p class="bat_ad">AD</p> 2369 </div> 2370 <img src="https://image.thankqcamping.com/file/2025/08/27/e73bfa88-08b0-4c99-9b65-8503a715337a-m.jpg"> 2371 </div> 2372 <div class="txt_box"> 2373 <p class="tit">ì°ê³¼ ë² ìº íì¥</p> 2374 <p class="txt">
2374ì¶©ë¶ ì§ì²êµ°</p> 2375 <div class="price_g"> 2376 2377 <p class="price">40,000ì~</p> 2378 </div> 2379 </div> 2380 </a> 2381 </li> 2382 2383 <li class="swiper-slide swiper-slide-active"> 2384 <a href="javascript:clkCampPr(2032,3822,'SEARCH');"> 2385 <div class="pic"> 2386 <div class="top_bat" style="position: absolute; padding: 6px; margin: 0; justify-content: end;"> 2387 <p class="bat_ad">AD</p> 2388 </div> 2389 <img src="/file/2025/08/20/thumbM_2025082072245.81.jpg"> 2390 </div> 2391 <div class="txt_box"> 2392 <p class="tit">ì ë ¹í¬ë ì¤í¸íì &ìº í(구,ê³ ë¦´ë¼íì )</p> 2393 <p class="txt">경기 ê°íêµ°</p> 2394 <div class="price_g"> 2395 2396 <p class="price">40,000ì~</p> 2397 </div> 2398 </div> 2399 </a> 2400 </li> 2401 2402 <li class="swiper-slide swiper-slide-active"> 2403 <a href="javascript:clkCampPr(2061,13572,'SEARCH');"> 2404 <div class="pic"> 2405 <div class="top_bat" style="position: absolute; padding: 6px; margin: 0; justify-content: end;"> 2406 <p class="bat_ad">AD</p> 2407 </div> 2408 <img src="/file/2025/03/21/thumbM_2025032148463.93.jpg"> 2409 </div> 2410 <div class="txt_box"> 2411 <p class="tit">ê°íë·°ìº íì¥</p> 2412 <p class="txt">경기 ê°íêµ°</p> 2413 <div class="price_g"> 2414 2415 <p class="price">50,000ì~</p> 2416 </div> 2417 </div> 2418 </a> 2419 </li> 2420 2421 <li class="swiper-slide swiper-slide-active"> 2422 <a href="javascript:clkCampPr(2064,20388,'SEARCH');"> 2423 <div class="pic"> 2424 <div class="top_bat" style="position: absolute; padding: 6px; margin: 0; justify-content: end;"> 2425 <p class="bat_ad">AD</p> 2426 </div> 2427 <img src="/file/2026/08/11/thumbM_2026081152331.27.jpg"> 2428 </div> 2429 <div class="txt_box"> 2430 <p class="tit">ìº íì¬ëª¨</p> 2431 <p class="txt">경기 ê°íêµ°</p> 2432 <div class="price_g"> 2433 2434 <p class="price">70,000ì~</p> 2435 </div> 2436 </div> 2437 </a> 2438 </li> 2439 2440 <li class="swiper-slide swiper-slide-active"> 2441 <a href="javascript:clkCampPr(1955,15410,'SEARCH');"> 2442 <div class="pic"> 2443 <div class="top_bat" style="position: absolute; padding: 6px; margin: 0; justify-content: end;"> 2444 <p class="bat_ad">AD</p> 2445 </div> 2446 <img src="/file/2026/06/08/thumbM_2026060852862.18.jpg"> 2447 </div> 2448 <div class="txt_box"> 2449 <p class="tit">ì모ë¡ìº ííí¬</p> 2450 <p class="txt">경기 ìíêµ°</p> 2451 <div class="price_g"> 2452 2453 <p class="price">65,000ì~</p> 2454 </div> 2455 </div> 2456 </a> 2457 </li> 2458 2459 <li class="swiper-slide swiper-slide-active"> 2460 <a href="javascript:clkCampPr(1819,17605,'SEARCH');"> 2461 <div class="pic"> 2462 <div class="top_bat" style="position: absolute; padding: 6px; margin: 0; justify-content: end;"> 2463 <p class="bat_ad">AD</p> 2464 </div> 2465 <img src="/file/2026/06/27/thumbM_2026062769212.89.jpg"> 2466 </div> 2467 <div class="txt_box"> 2468 <p class="tit">ì§ìêµì ìº íì¥</p> 2469 <p class="txt">ì ë¶ ì§ìêµ°</p> 2470 <div class="price_g"> 2471 2472 <p class="price">51,000ì~</p> 2473 </div> 2474 </div> 2475 </a> 2476 </li> 2477 2478 </ul> 2479 </div> 2480 </div> 2481 </div> 2482 2483 <!-- ê²ì ê´ê³ ìì END --> 2484 </div> 2485 2486 <div id="map-search-content"> 2487 <div id="map_search_wrap" style="position: relative; width:100%; height: calc(100dvh - 61px - 75px);"> 2488 <div class="search_form_box" style="padding: 16px;position: absolute; top:0; left;0; width: 100%; z-index: 3;"> 2489 <div class="search_form_input calendar"> 2490 <span class="placeholder">ë ì§ë¥¼ ì íí´ ì£¼ì¸ì.</span> 2491 <div class="search_choice_box"> 2492 <h3 class="title">ë ì§ë¥¼ ì íí´ ì£¼ì¸ì.</h3> 2493 <div class="content"> 2494 <div class="datepicker-map"></div> 2495 </div> 2496 </div> 2497 </div> 2498 2499 <div class="search_form_input people"> 2500 <span class="placeholder">ì±ì¸0, ìì¸0</span> 2501 <div class="search_choice_box"> 2502 <h3 class="title">ì¸ìì ì íí´ ì£¼ì¸ì.</h3> 2503 <p class="text">ìì¸ì ëí ëì´ê¸°ì¤ ë° ì¶ê°ìê¸ ì ì± ì ì ì²´ë³ë¡ ìì´íë ìì½ì ìë´ì¬íì ë°ëì íì¸íì기 ë°ëëë¤.</p> 2504 <div class="content"> 2505 <div class="people_count"> 2506 <span class="people_count_text">ì±ì¸</span> 2507 <div class="count_box adult"> 2508 <!-- 0ì¼ë - ë²í¼ì í´ëì¤ disabled ì¶ê° --> 2509 <button type="button" class="count_box_decrease disabled"></button> 2510 <span class="count_box_num">0</span> 2511 <button type="button" class="count_box_increase"></button> 2512 </div> 2513 </div> 2514 <div class="people_count"> 2515 <span class="people_count_text">ìì¸</span> 2516 <div class="count_box child"> 2517 <button type="button" class="count_box_decrease disabled"></button> 2518 <span class="count_box_num">0</span> 2519 <button type="button" class="count_box_increase disabled"></button> 2520 </div> 2521 </div> 2522 </div> 2523 </div> 2524 </div> 2525 </div> 2526 2527 <div class="search_marker"> 2528 <img width="20" src="/images/search/search-place.png" alt="ê²ì ìì¹" /> 2529 </div> 2530 2531 <div id="search_map" style="width:100%;
2531 height: calc(100dvh - 61px);"></div> 2532 2533 <div style="position: absolute; bottom: 25px; right: 1rem;"> 2534 <button type="button" class="find_nearby_btn" id="map_nearby_button">ë´ ì£¼ë³ ê²ì</button> 2535 </div> 2536 </div> 2537 </div> 2538 2539 <!--âââââââââ 컨í ì¸ ë âââââââââ --> 2540 </div> 2541 2542 <div class="btm_foot"> 2543 <div class="btn_set type2"> 2544 <ul> 2545 <li class="btn_wp"> 2546 <button type="button" class="btn_res" id="submitSearch"><span id="btn_res_txt">ê²ì</span></button> 2547 </li> 2548 </ul> 2549 </div> 2550 </div> 2551 2552 </div> 2553</div> 2554 2555<!-- camp Search (ìì ê²ì) --> 2556<div class="pop_layer_set" id="filter_pop"> 2557 <div class="pop_layer filter_pop"> 2558 2559 <div class="pop_title"> 2560 <p class="tit">ììê²ì</p> 2561 <button type="button" class="clo2" id="popFilterCloseButton"></button> 2562 </div> 2563 2564 <div class="pop_con"> 2565 <div class="search_box"> 2566 <div class="sear_set" style="max-width:100%;"> 2567 <input type="text" id="ser_camp_keyword" list="sear_list" value="" placeholder="ììëª ëë ì¶ì² í¤ìëë¡ ê²ìí´ë³´ì¸ì" /> 2568 </div> 2569 </div> 2570 2571 <ul id="search_result_box" class="search_result_box"> 2572 <li> 2573 <div class="title"> 2574 <strong>ê°ì ê³°ë°°ë ¹ìë²ê·¸ë¦°</strong> 2575 </div> 2576 <p>íì , ê°ì ì¸ì êµ°</p> 2577 </li> 2578 <li> 2579 <div class="title"> 2580 <strong>ê°ì ê³°ë°°ë ¹ìë²ê·¸ë¦°</strong> 2581 </div> 2582 <p>íì , ê°ì ì¸ì êµ°</p> 2583 </li> 2584 <li> 2585 <div class="title"> 2586 <strong>ê°ì ê³°ë°°ë ¹ìë²ê·¸ë¦°</strong> 2587 </div> 2588 <p>íì , ê°ì ì¸ì êµ°</p> 2589 </li> 2590 <li> 2591 <div class="title"> 2592 <strong>ê°ì ê³°ë°°ë ¹ìë²ê·¸ë¦°</strong> 2593 </div> 2594 <p>íì , ê°ì ì¸ì êµ°</p> 2595 </li> 2596 </ul> 2597 2598 2599 <div class="recent_searches"> 2600 <div class="title"> 2601 <strong>ìµê·¼ê²ìì´</strong> 2602 <button type="button">ì ì²´ìì </button> 2603 </div> 2604 <div class="content"> 2605 <div class="swiper-container pop_recent_keyword_swiper"> 2606 <ul class="swiper-wrapper"> 2607 <li class="swiper-slide"> 2608 <div class="box"> 2609 <span>í¤ìë 1</span> 2610 <button class="deleted_button" type="button"><img src="/images/tot_clo.png" alt="" /></button> 2611 </div> 2612 </li> 2613 <li class="swiper-slide"> 2614 <div class="box"> 2615 <span>í¤ìë 2</span> 2616 <button class="deleted_button" type="button"><img src="/images/tot_clo.png" alt="" /></button> 2617 </div> 2618 </li> 2619 </ul> 2620 </div> 2621 </div> 2622 </div> 2623 2624 <div class="recent_searches"> 2625 <div class="title"> 2626 <strong>ë¡í ê²ì í¤ìë ì¶ì²</strong> 2627 </div> 2628 <div class="content"> 2629 <div class="swiper-container pop_recent_keyword_swiper"> 2630 <ul class="swiper-wrapper"> 2631 <li class="swiper-slide"> 2632 <div class="box keyword">ìë° ì¸ì¼ íì¤í</div> 2633 </li> 2634 <li class="swiper-slide"> 2635 <div class="box keyword">ëëì´ë íìê°ë ë¬</div> 2636 </li> 2637 <li class="swiper-slide"> 2638 <div class="box keyword">ì ê·ì ì </div> 2639 </li> 2640 </ul> 2641 </div> 2642 </div> 2643 </div> 2644 2645 <div class="recent_searches"> 2646 <div class="title"> 2647 <strong>ì´ì©ê° í기ìì ì°¾ì ê²ì í¤ìë ì¶ì²</strong> 2648 </div> 2649 <div class="content"> 2650 <div class="none_slide_box"> 2651 <div class="box keyword2">ëì´ìì¤ì´ ë§ì ìì´ë¤ê³¼ í¨ê»í기 ì¢ì ìº íì¥</div> 2652 <div class="box keyword2">ì¬ì§ì´ ìëì¤ë ë·°ê° ë©ì§ ìº íì¥</div> 2653 <div class="box keyword2">ì¬ì¥ëì´ ì¹ì íê³ ìì¤ê´ë¦¬ê° ìëì´ìë ìº íì¥</div> 2654 <div class="box keyword2">ì¡°ì©íê³ ë§¤ëíìì´ ìì§ì¼ì§ë ìº íì¥</div> 2655 </div> 2656 </div> 2657 </div> 2658 2659 <div class="recent_searches"> 2660 <div class="title" style="display: block"> 2661 <strong>ì¤ìê° ê¸ìì¹ ê²ì ìì</strong> 2662 <p class="description">ì§ìë³ ì¤ìê° ê²ì ìì를 ë³´ê³ ì¶ì¼ìë©´ <span>ì¬ê¸°</span>를 ëë¬ ì í¸ì§ìì ì íí´ì£¼ì¸ì. (ìµë3ê°ì§ì ë±ë¡ ê°ë¥)</p> 2663 </div> 2664 <div class="content"> 2665 <ul class="rank"> 2666 <li><span class="rank-number">1</span> <span class="company-name">ì ì²´ëª </span></li> 2667 <li><span class="rank-number">2</span> <span class="company-name">ì ì²´ëª </span></li> 2668 <li><span class="rank-number">3</span> <span class="company-name">ì ì²´ëª </span></li> 2669 <li><span class="rank-number">4</span> <span class="company-name">ì ì²´ëª </span></li> 2670 <li><span class="rank-number">5</span> <span class="company-name">ì ì²´ëª </span></li> 2671 <li><span class="rank-number">6</span> <span class="company-name">ì ì²´ëª </span></li> 2672 <li><span class="rank-number">7</span> <span class="company-name">ì ì²´ëª </span></li> 2673 <li><span class="rank-number">8</span> <span class="company-name">ì ì²´ëª </span></li> 2674 <li><span class="rank-number">9</span> <span class="company-name">ì ì²´ëª </span></li> 2675 <li><span class="rank-number">10</span> <span class="company-name">ì ì²´ëª </span></li> 2676 </ul> 2677 </div> 2678 </div> 2679 2680 <div class="btm_foot"> 2681 <div class="btn_set type2"> 2682 <ul> 2683 <li class="btn_wp"> 2684 <button type="button" class="btn_res"><span id="btn_res_txt">ê²ì</span></button> 2685 </li> 2686 </ul> 2687 </div> 2688 </div> 2689 2690 </div> 2691 2692 </div> 2693</div> 2694 2695<!-- script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpClientId=9qnra9njt9"></script -->
2696<script type="text/javascript" src="https://oapi.map.naver.com/openapi/v3/maps.js?ncpKeyId=7pi6a4tp01"></script>
2696
2697<script> 2698 // SearchTypePage ê°: "MAIN" | "MAP" | "LIST" | "COLLECT" 2699 2700 /* íì ê´ë ¨ í¨ì */ 2701 const popSearchManager = { 2702 scrollPosition: 0, 2703 init: function(){ 2704 const popFilterButtonEl = document.getElementById("top_search_input"); 2705 const popFilterCloseButtonEl = document.getElementById("popSearchCloseButton"); 2706 2707 popFilterButtonEl.addEventListener("click", () => { 2708 this.open(); 2709 tabManager.init(); 2710 2711 this.createInfoBox(); 2712 }); 2713 2714 popFilterCloseButtonEl.addEventListener("click", () => { 2715 this.deleteInfoBox(); 2716 this.close(); 2717 }); 2718 2719 this.pageSet(); 2720 }, 2721 // íì ë³ íì´ì§ ì¸í 2722 pageSet: function(){ 2723 const listType = "LIST"; 2724 2725 if(listType == "COLLECT" || listType == "CAMPCOUPON"){ 2726 // 리ì¤í¸ ê²ì ë²í¼ëª ë³ê²½ 2727 const listTabButtonEl = document.getElementById("listTab") 2728 const searchKeywordInputEl = document.querySelector(".search_form_input.search") 2729 listTabButtonEl.innerText = "íí° ê²ì" 2730 searchKeywordInputEl.style.display = "none" 2731 2732 // ì§ë ê²ì ë²í¼ ë¯¸ë ¸ì¶ 2733 const mapTabButtonEl = document.getElementById("mapTab") 2734 mapTabButtonEl.style.display = "none" 2735 } 2736 }, 2737 // íí° íì ì´ê¸° 2738 open: function (filterType) { 2739 this.scrollPosition = window.scrollY; // íì¬ ì¤í¬ë¡¤ ìì¹ ì ì¥ 2740 document.getElementById("search_pop").classList.add("on"); 2741 document.body.style.overflow = "hidden"; 2742 document.body.style.top = `-${this.scrollPosition}px`; // íì¬ ìì¹ ì ì§ 2743 }, 2744 // íí° íì ë«ê¸° 2745 close: function () { 2746 document.getElementById("search_pop").classList.remove("on"); 2747 document.body.style.overflow = "visible"; 2748 document.body.style.top = ""; // ìë ìíë¡ ë³µêµ¬ 2749 window.scrollTo(0, this.scrollPosition); // ì¤í¬ë¡¤ ìì¹ ë³µì 2750 }, 2751 // íì ì¤í ì ë§íì ë ¸ì¶ 2752 createInfoBox: function(){ 2753 document.getElementById("mapInfoBox").classList.add("active"); 2754 setTimeout(() => { 2755 mapInfoBox.classList.remove("active"); 2756 }, 5000); 2757 }, 2758 // íì ë«ì ì ë§íì ì ê±° 2759 deleteInfoBox: function(){ 2760 document.getElementById("mapInfoBox").classList.remove("active"); 2761 }, 2762 2763 // ê²ì íì´ì§ íì ì´ MAP, LIST, COLLECT ì¼ ë search input placeholder ì ë°ì´í¸ 2764 updateSearchInput: function(){ 2765 const listType = "LIST"; 2766 const popFilterInputEl = document.querySelector(".search_div .text"); 2767 let filterTexts = []; 2768 2769 // ê²ì í¤ìë ì¶ê° 2770 if (searchFilterManager._inputFieldEl.value) { 2771 filterTexts.push(searchFilterManager._inputFieldEl.value); 2772 } 2773 2774 // ì§ì ì ë³´ ì¶ê° 2775 if (searchFilterManager._filter.region || searchFilterManager._filter.sub_region.length > 0) { 2776 let regionText = ""; 2777 if (searchFilterManager._filter.sub_region.length > 0) { 2778 regionText += " " + searchFilterManager._filter.sub_region.join(", ").replace(/ã/g, ", "); // ìë¸ ì§ì ì¬ë¬ ê°ì¼ ê²½ì° ì½¤ë§ë¡ ì°ê²° 2779 }else{ 2780 regionText += searchFilterManager._filter.region; 2781 } 2782 filterTexts.push(regionText); 2783 }else{ 2784 if(listType == "LIST" || listType == "COLLECT" || listType == "CAMPCOUPON"){ 2785 filterTexts.push("ì§ì ì ì²´"); 2786 } 2787 } 2788 2789 // ë ì§ ì¶ê° 2790 const dateStr = searchFilterManager.choiceDateStr(); 2791 if (dateStr) { 2792 filterTexts.push(dateStr); 2793 } 2794 2795 // COLLECT ì¼ë, ììêµ¬ë¶ íì 2796 if (listType == "COLLECT" || listType == "CAMPCOUPON") { 2797 let siteTypeText = ""; 2798 2799 if (searchFilterManager._filter.site_type.length > 0) { 2800 const siteTypeMap = { 2801 "BB000": "ì¤í ìº í", 2802 "BB001": "ê¸ë¨í", 2803 "BB002": "ì¹´ë¼ë°", 2804 "BB003": "íì " 2805 }; 2806 2807 // ì½ë ê°ì íê¸ë¡ ë³í 2808 siteTypeText += " " + searchFilterManager._filter.site_type 2809 .map(code => siteTypeMap[code] || code) // 매íë ê°ì´ ìì¼ë©´ ìë ì½ë ì ì§ 2810 .join(", "); 2811 2812 filterTexts.push(siteTypeText); 2813 } else { 2814 filterTexts.push("ììêµ¬ë¶ ì ì²´"); 2815 } 2816 } 2817 2818 2819 // ì¸ì ì¶ê° 2820 let peopleText = []; 2821 if (searchFilterManager._filter.adultCount > 0) { 2822 peopleText.push(`ì±ì¸ ${searchFilterManager._filter.adultCount}`); 2823 } 2824 if (searchFilterManager._filter.childCount > 0) { 2825 peopleText.push(`ìì¸ ${searchFilterManager._filter.childCount}`); 2826 } 2827 if (peopleText.length > 0) { 2828 filterTexts.push(peopleText.join("/")); 2829 } 2830 2831 popFilterInputEl.innerHTML = filterTexts.join("ã"); 2832 } 2833 2834 } 2835 2836 /* í ê´ë ¨ í¨ì */ 2837 const tabManager = { 2838 init: function(){
2839 const tabs = document.querySelectorAll(".search_tab li"); 2840 const listType = "LIST"; 2841 const listTypeNum = listType == "MAP" ? 1 : 0; 2842 2843 // ì´ê¸°ì ìì ê²ì íì±í 2844 this.setActiveTab(listTypeNum); 2845 2846 // í í´ë¦ ì´ë²¤í¸ 2847 tabs.forEach((tab, index) => { 2848 tab.addEventListener("click", () => tabManager.setActiveTab(index)); 2849 }); 2850 }, 2851 isListActive: function() { 2852 return this.currentTab === 'list'; // 'list' íì´ íì±íëìì¼ë©´ true 2853 }, 2854 setActiveTab: function(index){ 2855 const listType = "LIST"; 2856 const tabs = document.querySelectorAll(".search_tab li"); 2857 const listSearchContent = document.getElementById("list-search-content"); 2858 const mapSearchContent = document.getElementById("map-search-content"); 2859 const mapBoxContent = document.getElementById("map_search_wrap"); 2860 2861 // 모ë íìì active ì ê±° 2862 tabs.forEach(tab => tab.classList.remove("active")); 2863 // í´ë¦í íì active ì¶ê° 2864 tabs[index].classList.add("active"); 2865 2866 if (index === 0) { 2867 // ììê²ì íì±í 2868 listSearchContent.style.display = "block"; 2869 mapSearchContent.style.display = "none"; 2870 2871 this.updateSearchButton(() => searchFilterManager.submitSearch()); 2872 } else { 2873 // ì§ëê²ì íì±í 2874 listSearchContent.style.display = "none"; 2875 mapSearchContent.style.display = "block"; 2876 2877 const width = mapBoxContent.clientWidth; // ê°ë¡ê° 2878 const height = mapBoxContent.clientHeight; // ì¸ë¡ê° 2879 2880 console.log("ê°ë¡:", width, "ì¸ë¡:", height); 2881 2882 if(searchMapManager._MAP == null){ 2883 // ì§ë ê´ë ¨ ì´ë²¤í¸ 2884 searchMapManager.init(); 2885 } 2886 2887 if(listType == "MAP"){ 2888 // ì§ë íì´ì§ì ìë ë©ì¸ ì§ë ê°ì´ë° ì¢í ê°ì ¸ì
2888¤ê¸° 2889 if(typeof _MAP != "undefined"){ 2890 const mainMapCenter = _MAP.getCenter(); 2891 searchMapManager._MAP.setCenter(new naver.maps.LatLng(mainMapCenter._lat, mainMapCenter._lng)); 2892 searchMapManager._MAP.setSize(new naver.maps.Size(width, height)); 2893 } 2894 } else{ 2895 searchMapManager._MAP.setSize(new naver.maps.Size(width, height)); 2896 } 2897 2898 this.updateSearchButton(() => searchFilterManager.submitMapSearch()); 2899 } 2900 }, 2901 updateSearchButton: function(eventHandler){ 2902 const searchButton = document.getElementById("submitSearch"); 2903 2904 // 기존 ì´ë²¤í¸ ì ê±° í ìë¡ì´ ì´ë²¤í¸ ì¶ê° 2905 searchButton.replaceWith(searchButton.cloneNode(true)); 2906 const newSearchButton = document.getElementById("submitSearch"); 2907 2908 newSearchButton.addEventListener("click", eventHandler); 2909 } 2910 } 2911 2912 /* ì¤ìì´í¼ ê´ë ¨ í¨ì */ 2913 const swiperManager = { 2914 init: function(){ 2915 this.listFilter(); 2916 this.popRecentKeyword(); 2917 this.placeTab(); 2918 this.stayBtn(); 2919 this.adCampList(); 2920 }, 2921 // 리ì¤í¸ íì´ì§ íí° ì í êµ¬ë¶ 2922 listFilter: function(){ 2923 const recent_swiper = new Swiper('.recent_swiper', { 2924 pagination: false, 2925 slidesPerView: 'auto', 2926 paginationClickable: true, 2927 spaceBetween: 8, 2928 freeMode: true, 2929 lazyLoading: true, 2930 observer: true, 2931 observeParents: true, 2932 loop: false, 2933 }); 2934 2935 return recent_swiper; 2936 }, 2937 // ìë°êµ¬ë¶ë¶ ì í í 2938 stayBtn: function(){ 2939 const recent_swiper = new Swiper('.stay_btn_swiper', { 2940 pagination: false, 2941 slidesPerView: 'auto', 2942 paginationClickable: true, 2943 spaceBetween: 6, 2944 freeMode: true, 2945 lazyLoading: true, 2946 observer: true, 2947 observeParents: true, 2948 loop: false, 2949 }); 2950 2951 return recent_swiper; 2952 }, 2953 // ì§ì ì í í 2954 placeTab: function(){ 2955 const recent_swiper = new Swiper('.place_tab_swiper', { 2956 pagination: false, 2957 slidesPerView: 'auto', 2958 paginationClickable: true, 2959 spaceBetween: 8, 2960 freeMode: true, 2961 lazyLoading: true, 2962 observer: true, 2963 observeParents: true, 2964 loop: false, 2965 }); 2966 2967 return recent_swiper; 2968 }, 2969 // íì ìµê·¼ ê²ìì´ 2970 popRecentKeyword: function(){ 2971 const recent_swiper = new Swiper('.pop_recent_keyword_swiper', { 2972 pagination: false, 2973 slidesPerView: 'auto', 2974 paginationClickable: true, 2975 spaceBetween: 8, 2976 freeMode: true, 2977 lazyLoading: true, 2978 observer: true, 2979 observeParents: true, 2980 loop: false, 2981 }); 2982 2983 return recent_swiper; 2984 }, 2985 // ê²ì ê´ê³ ìì 2986 adCampList: function(){ 2987 const ad_camp_swiper = new Swiper('.ad_camp_swiper', { 2988 pagination: false, 2989 slidesPerView: 'auto', 2990 paginationClickable: true, 2991 spaceBetween: 8, 2992 freeMode: true, 2993 lazyLoading: true, 2994 observer: true, 2995 observeParents: true, 2996 loop: false, 2997 }); 2998 2999 return ad_camp_swiper; 3000 }, 3001 }; 3002 3003 3004 /* ê²ìì´ ì ë ¥ ê´ë ¨ í¨ì */ 3005 const searchUrlParams = new URLSearchParams(window.location.search); 3006 const searchFilterManager = { 3007 _searchType: "LIST", 3008 _searchFormEl: document.querySelectorAll('.search_form_input'), 3009 _inputFieldEl: document.getElementById("ser_keyword_"), 3010 _placeCategoryButtonEl: document.querySelectorAll(".place_button"), 3011 _filter: { 3012 site_type: searchUrlParams.get("site_tp") ? searchUrlParams.get("site_tp").split(",") : [], 3013 res_date: searchUrlParams.get("res_dt") || "", 3014 res_end_date: searchUrlParams.get("res_edt") || "", 3015 ser_res_date: searchUrlParams.get("res_dt") || "", 3016 ser_res_end_date: searchUrlParams.get("res_edt") || "", 3017 region: searchUrlParams.get("region") || "", 3018 sub_region: searchUrlParams.get("sub_region") ? searchUrlParams.get("sub_region").split(",") : [], 3019 adultCount: searchUrlParams.get("ser_adult_count") || 0, 3020 childCount: searchUrlParams.get("ser_child_count") || 0, 3021 lat: null, 3022 lng: null 3023 }, 3024 init: function(){
3025 // 기존 ë ì§ ì¸í 3026 this.getResDate(); 3027 // 기존 ì¸ì ì¸í 3028 this.getPersonCount(); 3029 // í¤ìë ê²ì ì´ë²¤í¸ 3030 this._inputFieldEl.value = searchUrlParams.get("ser_keyword"); 3031 this._inputFieldEl.addEventListener("keyup", this.getKeywordCampName); 3032 if(this._inputFieldEl.value != ""){ 3033 document.getElementById("deleteKeyword").style.display = "inline"; 3034 } 3035 // 기존 ììêµ¬ë¶ ì¸í 3036 this.getSiteType(); 3037 this.choiceSiteType(); 3038 3039 // íì ì¤í input í ì¤í¸ ì¸í 3040 if(searchFilterManager._searchType == "MAP" || searchFilterManager._searchType == "LIST" || searchFilterManager._searchType == "COLLECT" || searchFilterManager._searchType == "CAMPCOUPON"){ 3041 popSearchManager.updateSearchInput(); 3042 } 3043 3044 if(searchFilterManager._searchType == "LIST" && !(searchFilterManager._filter.ser_res_date == "" && searchFilterManager._filter.ser_res_end_date == "" )){ 3045 const emptyButtonEl = document.getElementById("empty_y"); 3046 emptyButtonEl.style.display = "block"; 3047 } 3048 3049 // ê²ìí기 ë²í¼ ì´ë²¤í¸ 3050 document.getElementById("submitSearch").addEventListener("click", this.submitSearch); 3051 3052 // ê²ì ì¸í ì´ê¸°í ë²í¼ ì´ë²¤í¸ 3053 document.getElementById("deleteKeyword").addEventListener("click", function(){ 3054 document.getElementById("search_result_box").style.display = "none"; 3055 document.getElementById("search_result_info_box").style.display = "none"; 3056 document.getElementById("deleteKeyword").style.display = "none"; 3057 searchFilterManager._inputFieldEl.value = "" 3058 }); 3059 3060 // ë¬ë ¥ ì¼ì ì´ê¸°í ë²í¼ 3061 document.getElementById("calendarResetButton").addEventListener("click", function(){ 3062 searchFilterManager.getResDate(true); 3063 }); 3064 3065 3066 // íí° ì¸í ë²í¼ ì´ë²¤í¸ 3067 this._searchFormEl.forEach(input => { 3068 input.addEventListener('click', function(event) { 3069 document.querySelectorAll('.search_form_input').forEach(el => { 3070 document.getElementById("search_result_box").style.display = "none"; 3071 document.getElementById("search_result_info_box").style.disply = "none"; 3072 el.classList.remove("active"); 3073 }); 3074 3075 this.classList.add("active"); 3076 document.querySelectorAll('.search_choice_box').forEach(box => { 3077 box.style.display = 'none'; 3078 }); 3079 3080 const choiceBox = this.querySelector('.search_choice_box'); 3081 if (choiceBox) { 3082 choiceBox.style.display = 'block'; 3083 } 3084 3085 event.stopPropagation(); 3086 }); 3087 }); 3088 3089 document.addEventListener('click', function() { 3090 document.querySelectorAll('.search_choice_box').forEach(box => { 3091 box.style.display = 'none'; 3092 if(searchFilterManager._filter.res_date != "" && searchFilterManager._filter.res_end_date == ""){ 3093 searchFilterManager._filter.res_end_date = searchFilterManager._filter.res_date; 3094 searchFilterManager.updateDatePlaceholder(); 3095 } 3096 }); 3097 document.querySelectorAll('.search_form_input').forEach(el => { 3098 document.getElementById("search_result_box").style.display = "none"; 3099 document.getElementById("search_result_info_box").style.display = "none"; 3100 el.classList.remove("active"); 3101 }); 3102 }); 3103 3104 this.updateRegionPlaceholder(); 3105 this._placeCategoryButtonEl.forEach((button, index) => { 3106 button.addEventListener('click', function () { 3107 searchFilterManager._placeCategoryButtonEl.forEach(btn => btn.classList.remove("active")); 3108 3109 const region_grp = button.getAttribute('data-value'); 3110 const region = button.getAttribute('data-region'); 3111 const region_arr = button.getAttribute('data-arr'); 3112 const placeChoiceBox = document.getElementById('place_choice_box'); 3113 const placeChoiceUl = placeChoiceBox.querySelector('ul'); 3114 3115 button.classList.add("active"); 3116 searchFilterManager._filter.region = region_grp; 3117 searchFilterManager._filter.sub_region = []; 3118 placeChoiceUl.innerHTML = ''; 3119 searchFilterManager.updateRegionPlaceholder(); 3120 3121 3122 searchFilterManager.getRegionList(region_grp, region, region_arr); 3123 }); 3124 }); 3125 3126 3127 3128 // ë´ ì£¼ë³ìì ê²ì ë²í¼ 3129 document.getElementById("map_nearby_button").addEventListener("click", function(){ 3130 location.href="/search/mapSearch.hbb"; 3131 }) 3132 3133 }, 3134 3135 // ì±í¬ ë§ì¶°ì¼í ë°ì´í° ê´ë¦¬ searchFilterManager.syncFilters(); 3136 syncFilters: function () { 3137 3138 // LIST íì´ì§ ë기í 3139 if (searchFilterManager._searchType == "LIST") { 3140 filterManager._selectedFilters.ser_site_tp = [...searchFilterManager._filter.site_type]; 3141 filterManager._selectedFilters['ser_site_tp'] = [...searchFilterManager._filter.site_type]; 3142 3143 // UI ë°ì 3144 document.querySelectorAll(`.item_list button[name='ser_site_tp']`).forEach(item => { 3145 const value = item.getAttribute('value'); 3146 if (searchFilterManager._filter.site_type.includes(value)) { 3147 item.classList.add("active"); 3148 } else { 3149 item.classList.remove("active"); 3150 } 3151 }); 3152 3153 document.querySelectorAll(`.stay_button[name='site_tp']`).forEach(item => { 3154 const value = item.getAttribute('value'); 3155 if (searchFilterManager._filter.site_type.includes(value)) { 3156 item.classList.add("active"); 3157 } else { 3158 item.classList.remove("active"); 3159 } 3160 }); 3161 3162 headFilterManager.updateActiveFilters(); 3163 } 3164 3165 // site_typeì´ ë¹ì´ ìì¼ë©´ 'ì ì²´' ë²í¼ íì±í, ìëë©´ ë¹íì±í 3166 const allButtonEl = document.getElementById("site_tp_all"); 3167 if (searchFilterManager._filter.site_type.length === 0) { 3168 allButtonEl.classList.add("active"); 3169 } else { 3170 allButtonEl.classList.remove("active"); 3171 } 3172 }, 3173 3174 // í¤ìë ê²ì 3175 getKeywordCampName: function(){
3176 const resultBoxEl = document.getElementById("search_result_box"); 3177 const resultInfoBoxEl = document.getElementById("search_result_info_box"); 3178 3179 if(searchFilterManager._inputFieldEl.value.length > 0) { 3180 document.getElementById("deleteKeyword").style.display = "inline"; 3181 }else{ 3182 document.getElementById("deleteKeyword").style.display = "none"; 3183 } 3184 3185 if(searchFilterManager._inputFieldEl.value.length > 1) { 3186 console.log(searchFilterManager._inputFieldEl.value); 3187 3188 $.ajax({ 3189 type: "POST", 3190 url: "/resv/ax_camp_name.hbb", 3191 data:{ser_camp_name: searchFilterManager._inputFieldEl.value}, 3192 success: onSuccess, 3193 error: onError 3194 }); 3195 3196 function onSuccess(dataobj) { 3197 const result = JSON.parse(dataobj); 3198 const keyword = searchFilterManager._inputFieldEl.value.trim(); 3199 let contents = []; 3200 3201 if (result.length === 0) { 3202 // ê²°ê³¼ê° ìì ë 3203 contents.push( 3204 `<li> 3205 <a href="javascript:;"> 3206 <span class="searchPlace_icon"></span> 3207 <p class="keword_text">ê²ìë ìº íì¥ì´ ììµëë¤.</span></p> 3208 </a> 3209 </li>`); 3210 } else { 3211 // ê²°ê³¼ê° ìì ë 3212 result.forEach((data) => { 3213 const highlightedName = data.campName.replace( 3214 new RegExp(`(${keyword})`, "gi"), 3215 `<span style="color: #F27226; font-weight: bold;">$1</span>` 3216 ); 3217 3218 const el = 3219 `<li> 3220 <a href="javascript:clkViewDirect('${data.campSeq}');"> 3221 <span class="searchPlace_icon"></span> 3222 <p class="keword_text">${highlightedName}</p> 3223 <p class="keword_content">${data.campType}, ${data.shortAddress}</p> 3224 </a> 3225 </li>`; 3226 contents.push(el); 3227 }); 3228 } 3229 3230 document.getElementById('search_result_box').innerHTML = contents.join(""); 3231 } 3232 3233 3234 function onError() {} 3235 3236 resultBoxEl.style.display = 'block'; 3237 resultInfoBoxEl.style.display = 'block'; 3238 } else { 3239 document.getElementById('search_result_box').innerHTML = ""; 3240 resultBoxEl.style.display = 'none'; 3241 resultInfoBoxEl.style.display = 'none'; 3242 } 3243 }, 3244 3245 getRegionList: function(region_grp, region, arr){ 3246 const site_tp = searchFilterManager._filter.site_type ? searchFilterManager._filter.site_type.join(",") : ""; 3247 const listType = "LIST"; 3248 3249 $.ajax({ 3250 type: "POST", 3251 url: "/search/axRegion.hbb", 3252 data: {region_grp: region_grp, region: region, site_tp: site_tp}, 3253 success: onSuccess, 3254 error: onError 3255 }); 3256 3257 function onSuccess(dataobj) { 3258 document.getElementById('place_result_box').innerHTML = dataobj; 3259 3260 if(listType == "COLLECT" || listType == "CAMPCOUPON"){ 3261 document.querySelectorAll('.sub_region .tnum').forEach(el => el.remove()); 3262 } 3263 3264 searchFilterManager.choiceRegion(); 3265 } 3266 3267 function onError() {} 3268 }, 3269 choiceRegion: function() { 3270 const allSubRegionButtonEl = document.getElementById("all_sub_region"); 3271 const subRegionButtonsEl = document.querySelectorAll('.sub_region'); 3272 3273 // íì´ì§ ë¡ë ì ì íë ì§ìë¤ì ëí UI ìí ë기í 3274 this.syncSubRegionUI(); 3275 3276 subRegionButtonsEl.forEach(button => { 3277 button.addEventListener('click', () => { 3278 const value = button.getAttribute('data-sub-region'); 3279 3280 if (this._filter.sub_region.includes(value)) { 3281 // ì íë ì§ììì ì ê±° 3282 this._filter.sub_region = this._filter.sub_region.filter(item => item !== value); 3283 button.classList.remove('active'); 3284 } else { 3285 // ì íë ê°ìê° 3ê° ë¯¸ë§ì¼ ëë§ ì¶ê° 3286 if (this._filter.sub_region.length < 3) { 3287 this._filter.sub_region.push(value); 3288 button.classList.add('active'); 3289 } else { 3290 return; // ì í ê°ì ì í ì´ê³¼ ì ì²ë¦¬ 3291 } 3292 } 3293 3294 // ì§ì ë±ì§ ì ë°ì´í¸ 3295 this.addRegionBadge(); 3296 this.updateRegionPlaceholder(); 3297 }); 3298 }); 3299 3300 // "모ë ì§ì ì í" ë²í¼ ì²ë¦¬ 3301 allSubRegionButtonEl.addEventListener('click', () => { 3302 this._filter.sub_region = []; 3303 subRegionButtonsEl.forEach(button => button.classList.remove('active')); 3304 allSubRegionButtonEl.classList.add('active'); 3305 3306 // ì§ì ë±ì§ ë° íëì´ì¤íë ì ë°ì´í¸ 3307 this.addRegionBadge(); 3308 this.updateRegionPlaceholder(); 3309 }); 3310 }, 3311 // ì§ì UI ìí ë기í 3312 syncSubRegionUI: function() { 3313 const subRegionButtonsEl = document.querySelectorAll('.sub_region');
3314 const allSubRegionButtonEl = document.getElementById("all_sub_region"); 3315 3316 // 기존 ì íë ì§ìë¤ì ëí UI ìí ì ë°ì´í¸ 3317 subRegionButtonsEl.forEach(button => { 3318 const value = button.getAttribute('data-sub-region'); 3319 if (this._filter.sub_region.includes(value)) { 3320 button.classList.add('active'); 3321 } else { 3322 button.classList.remove('active'); 3323 } 3324 }); 3325 3326 // "모ë ì§ì ì í" ë²í¼ ì²ë¦¬ 3327 if (this._filter.sub_region.length === 0) { 3328 allSubRegionButtonEl.classList.add('active'); 3329 } else { 3330 allSubRegionButtonEl.classList.remove('active'); 3331 } 3332 }, 3333 // ì§ì ì í ì ìë ë±ì§ ì¶ê° 3334 addRegionBadge: function () { 3335 const placeChoiceBox = document.getElementById('place_choice_box'); 3336 const placeChoiceUl = placeChoiceBox.querySelector('ul'); 3337 3338 // 기존 ë±ì§ë¤ì´ ì¤ë³µëì§ ìëë¡ ì²ë¦¬ 3339 placeChoiceUl.innerHTML = ''; // 기존 ë±ì§ë¤ ì´ê¸°í 3340 this._filter.sub_region.forEach(sub_region => { 3341 const li = document.createElement('li'); 3342 li.classList.add('badge_button'); 3343 li.setAttribute('data-value', sub_region); 3344 li.innerHTML = ` 3345 ${sub_region} 3346 <button type="button" class="place_choice_delete btn_close" data-value="${sub_region}"> 3347 <img src="/images/tot_clo.png"> 3348 </button> 3349 `; 3350 3351 li.querySelector('.place_choice_delete').addEventListener('click', () => { 3352 this._filter.sub_region = this._filter.sub_region.filter(item => item !== sub_region); 3353 document.querySelector(`.sub_region[data-sub-region="${sub_region}"]`)?.classList.remove('active'); 3354 this.addRegionBadge(); // ë±ì§ ì ë°ì´í¸ 3355 this.updateRegionPlaceholder(); // íëì´ì¤íë ì ë°ì´í¸ 3356 }); 3357 3358 placeChoiceUl.appendChild(li); 3359 }); 3360 }, 3361 // ì§ì ì í ì placeholder ì ë°ì´í¸ 3362 updateRegionPlaceholder: function() { 3363 const regionPlaceholder = document.querySelector('.place .placeholder'); 3364 3365 if (this._filter.region.length > 0) { 3366 if(this._filter.sub_region.length > 0){ 3367 document.getElementById('all_sub_region')?.classList.remove("active"); 3368 regionPlaceholder.innerHTML = this._filter.region + ' ' + (this._filter.sub_region.length > 0 ? this._filter.sub_region.join(', ') : ''); 3369 }else{ 3370 document.getElementById('all_sub_region')?.classList.add("active"); 3371 regionPlaceholder.innerHTML = this._filter.region; 3372 } 3373 } else { 3374 document.getElementById('all_sub_region')?.classList.add("active"); 3375 regionPlaceholder.innerHTML = 'ì§ìì ì í íì¸ì.'; 3376 } 3377 }, 3378 3379 getPersonCount: function() { 3380 // ì±ì¸ ì¹´ì´í¸ ê´ë ¨ ìì 3381 const adultCountEl = document.querySelectorAll(".count_box.adult .count_box_num"); 3382 const adultIncreaseBtn = document.querySelectorAll(".count_box.adult .count_box_increase"); 3383 const adultDecreaseBtn = document.querySelectorAll(".count_box.adult .count_box_decrease"); 3384 3385 // ìì´(ìì¸) ì¹´ì´í¸ ê´ë ¨ ìì 3386 const childCountEl = document.querySelectorAll(".count_box.child .count_box_num"); 3387 const childIncreaseBtn = document.querySelectorAll(".count_box.child .count_box_increase"); 3388 const childDecreaseBtn = document.querySelectorAll(".count_box.child .count_box_decrease"); 3389 3390 // ì´ê¸° ê° ë°ì 3391 adultCountEl.forEach(el => el.textContent = searchFilterManager._filter.adultCount); 3392 childCountEl.forEach(el => el.textContent = searchFilterManager._filter.childCount); 3393 3394 // ì±ì¸ ì¦ê° ë²í¼ í´ë¦ ì´ë²¤í¸ 3395 adultIncreaseBtn.forEach(btn => { 3396 btn.addEventListener("click", function () { 3397 searchFilterManager._filter.adultCount++; 3398 adultCountEl.forEach(el => el.textContent = searchFilterManager._filter.adultCount); 3399 3400 searchFilterManager.updatePersonPlaceholder(); 3401 searchFilterManager.updateButtonState(); 3402 }); 3403 }); 3404 3405 // ì±ì¸ ê°ì ë²í¼ í´ë¦ ì´ë²¤í¸ 3406 adultDecreaseBtn.forEach(btn => { 3407 btn.addEventListener("click", function () { 3408 if (searchFilterManager._filter.adultCount > 1 || (searchFilterManager._filter.adultCount == 1 && searchFilterManager._filter.childCount == 0)) { 3409 searchFilterManager._filter.adultCount--; 3410 adultCountEl.forEach(el => el.textContent = searchFilterManager._filter.adultCount); 3411 3412 searchFilterManager.updatePersonPlaceholder(); 3413 searchFilterManager.updateButtonState(); 3414 } 3415 }); 3416 }); 3417 3418 // ìì´(ìì¸) ì¦ê° ë²í¼ í´ë¦ ì´ë²¤í¸
3419 childIncreaseBtn.forEach(btn => { 3420 btn.addEventListener("click", function () { 3421 if (searchFilterManager._filter.adultCount > 0) { 3422 searchFilterManager._filter.childCount++; 3423 childCountEl.forEach(el => el.textContent = searchFilterManager._filter.childCount); 3424 3425 searchFilterManager.updatePersonPlaceholder(); 3426 searchFilterManager.updateButtonState(); 3427 } 3428 }); 3429 }); 3430 3431 // ìì´(ìì¸) ê°ì ë²í¼ í´ë¦ ì´ë²¤í¸ 3432 childDecreaseBtn.forEach(btn => { 3433 btn.addEventListener("click", function () { 3434 if (searchFilterManager._filter.childCount > 0) { 3435 searchFilterManager._filter.childCount--; 3436 childCountEl.forEach(el => el.textContent = searchFilterManager._filter.childCount); 3437 3438 searchFilterManager.updatePersonPlaceholder(); 3439 searchFilterManager.updateButtonState(); 3440 } 3441 }); 3442 }); 3443 3444 // ì ë°ì´í¸ ìí 3445 this.updateButtonState(); 3446 this.updatePersonPlaceholder(); 3447 }, 3448 // ì¸ì ë²í¼ ìí ì ë°ì´í¸ 3449 updateButtonState: function(){ 3450 const adultDecreaseBtn = document.querySelectorAll(".count_box.adult .count_box_decrease"); 3451 const childDecreaseBtn = document.querySelectorAll(".count_box.child .count_box_decrease"); 3452 const childIncreaseBtn = document.querySelectorAll(".count_box.child .count_box_increase"); 3453 3454 // ì±ì¸ ë²í¼ ìí 3455 if (searchFilterManager._filter.adultCount == 0 || (searchFilterManager._filter.adultCount == 1 && searchFilterManager._filter.childCount > 0)) { 3456 adultDecreaseBtn.forEach(adult => { 3457 adult.classList.add("disabled"); 3458 }) 3459 } else { 3460 adultDecreaseBtn.forEach(adult => { 3461 adult.classList.remove("disabled"); 3462 }) 3463 } 3464 // ìì´ ë²í¼ ìí 3465 if (searchFilterManager._filter.adultCount == 0) { 3466 childIncreaseBtn.forEach(child => { 3467 child.classList.add("disabled"); 3468 }) 3469 } else { 3470 childIncreaseBtn.forEach(child => { 3471 child.classList.remove("disabled"); 3472 }) 3473 } 3474 // ìì´ ë²í¼ ìí 3475 if (searchFilterManager._filter.childCount == 0) { 3476 childDecreaseBtn.forEach(child => { 3477 child.classList.add("disabled"); 3478 }) 3479 } else { 3480 childDecreaseBtn.forEach(child => { 3481 child.classList.remove("disabled"); 3482 }) 3483 } 3484 }, 3485 // ì¸ì ì ì í ì placeholder ì ë°ì´í¸ 3486 updatePersonPlaceholder: function() { 3487 const personPlaceholders = document.querySelectorAll('.people .placeholder'); 3488 const adultCount = this._filter.adultCount; 3489 const childCount = this._filter.childCount; 3490 3491 personPlaceholders.forEach(holder => holder.innerHTML = `ì±ì¸${adultCount}, ìì¸${childCount}`); 3492 }, 3493 3494 getResDate: function(isReset){ 3495 if(isReset || (searchFilterManager._filter.res_date == "" && searchFilterManager._filter.res_end_date == "")){ 3496 const today = new Date(); 3497 const tomorrow = new Date(today); 3498 tomorrow.setDate(today.getDate() + 1); 3499 3500 // ë ì§ í¬ë§· (yyyyMMdd) 3501 const todayStr = today.getFullYear() + ('0' + (today.getMonth() + 1)).slice(-2) + ('0' + today.getDate()).slice(-2); 3502 const tomorrowStr = tomorrow.getFullYear() + ('0' + (tomorrow.getMonth() + 1)).slice(-2) + ('0' + tomorrow.getDate()).slice(-2); 3503 3504 this._filter.res_date = todayStr; 3505 this._filter.res_end_date = tomorrowStr; 3506 3507 // datePicker ê°ë ê°ë³ì ì¼ë¡ ì´ê¸°í 3508 $(".datepicker-list").datepicker("setDate", today); 3509 $(".datepicker-map").datepicker("setDate", today); 3510 } 3511 3512 if(searchFilterManager._filter.res_date == searchFilterManager._filter.res_end_date || (searchFilterManager._filter.res_date != "" && searchFilterManager._filter.res_end_date == "")){ 3513 const siteTypeBoxEl = document.getElementById("search_site_type_box"); 3514 siteTypeBoxEl.style.display = "none"; 3515 } 3516 3517 // ë ì§ë¥¼ placeholderì ë°ì 3518 this.updateDatePlaceholder(); 3519 }, 3520 choiceDateStr: function(){ 3521 const datePlaceholders = document.querySelectorAll('.calendar .placeholder'); 3522 3523 // res_date를 Date ê°ì²´ë¡ ë³í (yyyyMMdd íì) 3524 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)); 3525 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)); 3526 3527 // res_end_dateë ëì¼íê² ì²ë¦¬
3528 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)); 3529 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)); 3530 3531 // ë ì§ íìì´ ì¬ë°ë¥¸ì§ íì¸ 3532 if (isNaN(startDate) || isNaN(endDate)) { 3533 datePlaceholders.forEach(holder => holder.innerHTML = 'ë ì§ë¥¼ ì íí´ ì£¼ì¸ì.'); 3534 return; 3535 } 3536 3537 // ë ì§ë¥¼ 'yyyy.MM.dd' íìì¼ë¡ ë³í (02.02) 3538 //const startFormatted = startDate.getFullYear().toString().slice(-2) + '.' + ('0' + (startDate.getMonth() + 1)).slice(-2) + '.' + ('0' + startDate.getDate()).slice(-2); 3539 //const endFormatted = startDate.getFullYear().toString().slice(-2) + '.' + ('0' + (endDate.getMonth() + 1)).slice(-2) + '.' + ('0' + endDate.getDate()).slice(-2); 3540 const startFormatted = ('0' + (startDate.getMonth() + 1)).slice(-2) + '.' + ('0' + startDate.getDate()).slice(-2); 3541 const endFormatted = ('0' + (endDate.getMonth() + 1)).slice(-2) + '.' + ('0' + endDate.getDate()).slice(-2); 3542 const serStartFormatted = ('0' + (serStartDate.getMonth() + 1)).slice(-2) + '.' + ('0' + serStartDate.getDate()).slice(-2); 3543 const serEndFormatted = ('0' + (serEndDate.getMonth() + 1)).slice(-2) + '.' + ('0' + serEndDate.getDate()).slice(-2); 3544 3545 // ìì¼ ê³ì° (ì§§ì ìì¼ ì´ë¦)
3546 const startDay = startDate.toLocaleString('ko-KR', { weekday: 'short' }); 3547 const endDay = endDate.toLocaleString('ko-KR', { weekday: 'short' }); 3548 const serStartDay = serStartDate.toLocaleString('ko-KR', { weekday: 'short' }); 3549 const serEndDay = serEndDate.toLocaleString('ko-KR', { weekday: 'short' }); 3550 3551 if (this._filter.ser_res_date == "" || this._filter.ser_res_end_date == "") { 3552 datePlaceholders.forEach(holder => holder.innerHTML = `${serStartFormatted} ${serStartDay} - ${serEndFormatted} ${serEndDay}, ${this.calculateNights()}`); 3553 return 'ì¼ì ì í'; 3554 } 3555 3556 if((this._filter.res_date != "" && this._filter.res_end_date == "") || startFormatted == endFormatted){ 3557 return `${startFormatted} ${startDay}, ${this.calculateNights()}(í¼í¬ë)`; 3558 } 3559 3560 return `${startFormatted} ${startDay} - ${endFormatted} ${endDay}, ${this.calculateNights()}`; 3561 }, 3562 // ë ì§ ë³ê²½ ì placeholder ì ë°ì´í¸ 3563 updateDatePlaceholder: function() { 3564 const datePlaceholders = document.querySelectorAll('.calendar .placeholder'); 3565 const dateChoiceInfo = document.querySelector(".twonight"); 3566 3567 // ê²°ê³¼ ì¶ë ¥ (ì: 2025.02.19 목 - 2025.02.20 ê¸, 1ë°) 3568 datePlaceholders.forEach(holder => holder.innerHTML = searchFilterManager.choiceDateStr()); 3569 // ê²°ê³¼ ì¶ë ¥ (ì: ë¹ì¼, 1ë° ì í, 2ë° ì í) 3570 dateChoiceInfo.innerHTML = searchFilterManager.choiceDateStr(); 3571 }, 3572 // ìë°ì¼ì ê³ì° 3573 calculateNights: function() { 3574 // ìì ë ì§ì ì¢ ë£ ë ì§ë¥¼ yyyyMMdd íììì Date ê°ì²´ë¡ ë³í 3575 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)); 3576 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)); 3577 3578 // ë ì§ê° ì í¨íì§ íì¸ 3579 if (isNaN(startDate) || isNaN(endDate)) { 3580 console.error("Invalid date format"); 3581 return 0; // ë ì§ê° ì í¨íì§ ìì¼ë©´ 0ë° 3582 } 3583 3584 // ë ì§ ì°¨ì´ ê³ì° (ë¨ì: ë°) 3585 const difference = (endDate - startDate) / (1000 * 60 * 60 * 24); 3586 3587 // 0ë° ì´íë¡ ê³ì°ë ê²½ì°ìë ë¹ì¼ë¡ ì²ë¦¬ 3588 return difference <= 0 ? `ë¹ì¼` : `${difference}ë°`; 3589 }, 3590 3591 // ìì êµ¬ë¶ ì¸í 3592 getSiteType: function () { 3593 const allButtonEl = document.getElementById("site_tp_all"); 3594 const value = searchFilterManager._filter['site_type']; 3595 3596 // 모ë ë²í¼ì 'active' í´ëì¤ ì´ê¸°í 3597 document.querySelectorAll(`.stay_button[name='site_tp']`).forEach(btn => btn.classList.remove("active")); 3598 3599 if (Array.isArray(value) && value.length > 0) { 3600 value.forEach(val => { 3601 document.querySelectorAll(`.stay_button[name='site_tp'][value='${val}']`).forEach(btn => btn.classList.add("active")); 3602 }); 3603 allButtonEl.classList.remove("active"); // ê°ë³ ì í ì 'ì ì²´' ë¹íì±í 3604 } else { 3605 allButtonEl.classList.add("active"); // ì무ê²ë ì íëì§ ìì¼ë©´ 'ì ì²´' íì±í 3606 } 3607 }, 3608 // ìì êµ¬ë¶ ë ¸ì¶ ì¬ë¶ 3609 isSiteType: function(){ 3610 const siteTypeBoxEl = document.getElementById("search_site_type_box"); 3611 3612 if(searchFilterManager._filter.res_date == searchFilterManager._filter.res_end_date || (searchFilterManager._filter.res_date != "" && searchFilterManager._filter.res_end_date == "")){ 3613 siteTypeBoxEl.style.display = "none"; 3614 }else{ 3615 siteTypeBoxEl.style.display = "block"; 3616 } 3617 }, 3618 // ìì êµ¬ë¶ ì í 3619 choiceSiteType: function () { 3620 const allButtonEl = document.getElementById("site_tp_all"); 3621 const siteTypeButtonEl = document.querySelectorAll('button[name="site_tp"]'); 3622 3623 // ì ì²´ ë²í¼ í´ë¦ ì´ë²¤í¸ 3624 allButtonEl.addEventListener('click', () => { 3625 // ì ì²´ ì í ì 모ë ê°ë³ ë²í¼ ë¹íì±í & site_type ì´ê¸°í 3626 this._filter.site_type = []; 3627 document.querySelectorAll(`button[name='site_tp']`).forEach(btn => btn.classList.remove('active')); 3628 allButtonEl.classList.add("active"); // ì ì²´ ë²í¼ íì±í 3629 3630 // LIST íì´ì§ íí° ë기í 3631 searchFilterManager.syncFilters(); 3632 }); 3633 3634 // ê°ë³ ë²í¼ í´ë¦ ì´ë²¤í¸ 3635 siteTypeButtonEl.forEach(button => { 3636 button.addEventListener('click', () => { 3637 const value = button.getAttribute('value'); 3638 3639 if (this._filter.site_type.includes(value)) { 3640 // ì íë ê° ì ê±° 3641 this._filter.site_type = this._filter.site_type.filter(item => item !== value); 3642 document.querySelectorAll(`button[name='site_tp'][value='${value}']`).forEach(btn => btn.classList.remove('active')); 3643 } else { 3644 // ì íë ê° ì¶ê°
3645 this._filter.site_type.push(value); 3646 document.querySelectorAll(`button[name='site_tp'][value='${value}']`).forEach(btn => btn.classList.add('active')); 3647 } 3648 3649 // ìì êµ¬ë¶ íí° ì±í¬ ë§ì¶ê¸° 3650 searchFilterManager.syncFilters(); 3651 }); 3652 }); 3653 }, 3654 // ìµê·¼ ê²ì í ì´ë¸ ë±ë¡ 3655 insertRecentSearch: function(){ 3656 let status = "NO"; 3657 3658 const params = { 3659 search_keyword: searchFilterManager._inputFieldEl.value, 3660 site_tp: searchFilterManager._filter.site_type.join(","), 3661 res_date: searchFilterManager._filter.res_date, 3662 res_end_date: searchFilterManager._filter.res_end_date, 3663 region: searchFilterManager._filter.region, 3664 sub_region: searchFilterManager._filter.sub_region.join(","), 3665 adult_count: searchFilterManager._filter.adultCount, 3666 child_count: searchFilterManager._filter.childCount, 3667 }; 3668 3669 $.ajax({
3670 type: "POST", 3671 url: "/search/ax_insert_recent_search.hbb", 3672 data: params, 3673 success: onSuccess, 3674 error: onError 3675 }); 3676 3677 function onSuccess(dataobj) { 3678 status = dataobj; 3679 searchFilterManager.getRecentSearch(); 3680 } 3681 function onError() {} 3682 3683 return status; 3684 }, 3685 //ìµê·¼ê²ì리ì¤í¸ ê°ì ¸ì¤ê¸° 3686 getRecentSearch: function(){ 3687 $.ajax({ 3688 type: "POST", 3689 url: "/search/ax_get_recent_search.hbb", 3690 success: onSuccess, 3691 error: onError 3692 }); 3693 3694 function onSuccess(dataobj){ 3695 const recentContentEl = document.getElementById("recentContent"); 3696 recentContent.innerHTML = dataobj; 3697 3698 document.addEventListener("click", function (event) { 3699 const deleteButton = event.target.closest(".recentDeleteButton"); 3700 const searchButton = event.target.closest(".recentButton"); 3701 3702 // ìµê·¼ê²ìì¡°ê±´ ìì ì´ë²¤í¸ 3703 if (deleteButton) { 3704 event.stopPropagation(); 3705 searchFilterManager.deleteRecentSearch(deleteButton); 3706 return; 3707 } 3708 3709 // ìµê·¼ê²ìì¡°ê±´ ì´ë ì´ë²¤í¸ 3710 if (searchButton) { 3711 searchFilterManager.submitRecentSearch(searchButton); 3712 } 3713 }); 3714 } 3715 3716 function onError(){} 3717 }, 3718 //ìµê·¼ê²ì ê°ë³ ìì 3719 deleteRecentSearch: function(el){ 3720 const campSearchSeq = el.dataset.seq; 3721 3722 $.ajax({
3723 type: "POST", 3724 url: "/search/ax_delete_recent_search.hbb", 3725 data: { delete_type: "ONE", camp_search_seq: campSearchSeq }, 3726 success: function (response) { 3727 const element = document.querySelector(`[data-value="${campSearchSeq}"]`); 3728 if (element) { 3729 element.remove(); 3730 } 3731 }, 3732 error: function () { 3733 3734 } 3735 }); 3736 }, 3737 //ìµê·¼ê²ì ì ì²´ ìì 3738 deleteALLRecentSearch: function(){ 3739 $.ajax({ 3740 type: "POST", 3741 url: "/search/ax_delete_recent_search.hbb", 3742 data: { delete_type: "ALL" }, 3743 success: function (response) { 3744 const element = document.getElementById("recentContent"); 3745 if (element) { 3746 element.innerHTML = `<li class="swiper-slide" style="width: 100%"><div class="box" style="justify-content: center">ì¡°íë ë´ìì´ ììµëë¤.</div></li>`; 3747 } 3748 }, 3749 error: function () { 3750 3751 } 3752 }); 3753 }, 3754 //ìµê·¼ê²ì í´ë¦ ì´ë²¤í¸ 3755 submitRecentSearch: function(el){ 3756 popSearchManager.close(); 3757 3758 if(searchFilterManager._searchType == "LIST"){ 3759 searchFilterManager._filter.site_type = el.dataset.sitetp.split(",") 3760 searchFilterManager._filter.res_date = el.dataset.resdate 3761 searchFilterManager._filter.res_end_date = el.dataset.resenddate 3762 searchFilterManager._filter.ser_res_date = el.dataset.resdate 3763 searchFilterManager._filter.ser_res_end_date = el.dataset.resenddate 3764 searchFilterManager._filter.region = el.dataset.region 3765 searchFilterManager._filter.sub_region = el.dataset.subregion.split(",") 3766 searchFilterManager._filter.adultCount = el.dataset.adultcount 3767 searchFilterManager._filter.childCount = el.dataset.childcount 3768 3769 popSearchManager.updateSearchInput(); 3770 searchFilterManager.updateRegionPlaceholder(); 3771 headFilterManager.isHeadFilterCheck(); 3772 DataListManager.fetchData(true); 3773 3774 return; 3775 } 3776 3777 // URLSearchParams ê°ì²´ ìì± 3778 const searchParams = new URLSearchParams({ 3779 site_tp: el.dataset.sitetp, 3780 res_dt: el.dataset.resdate, 3781 res_edt: el.dataset.resenddate, 3782 region: el.dataset.region, 3783 sub_region: el.dataset.subregion, 3784 ser_adult_count: el.dataset.adultcount, 3785 ser_child_count: el.dataset.childcount, 3786 ser_keyword: "" 3787 }); 3788 3789 window.location.href = `/resv/list.hbb?${searchParams.toString()}`; 3790 }, 3791 //리ì¤í¸ ê²ìí기 3792 submitSearch: function () { 3793 popSearchManager.close(); 3794 3795 if(searchFilterManager._searchType == "COLLECT" || searchFilterManager._searchType == "CAMPCOUPON"){ 3796 searchFilterManager._filter.ser_res_date = searchFilterManager._filter.res_date; 3797 searchFilterManager._filter.ser_res_end_date = searchFilterManager._filter.res_end_date; 3798 3799 popSearchManager.updateSearchInput(); 3800 CollectManager.fetchDatas(true); 3801 return; 3802 } 3803 3804 if(searchFilterManager._searchType == "LIST"){ 3805 const result = searchFilterManager.insertRecentSearch(); 3806 console.log(result); 3807 3808 searchFilterManager._filter.ser_res_date = searchFilterManager._filter.res_date; 3809 searchFilterManager._filter.ser_res_end_date = searchFilterManager._filter.res_end_date; 3810 3811 popSearchManager.updateSearchInput(); 3812 headFilterManager.isHeadFilterCheck(); 3813 DataListManager.fetchData(true); 3814 3815 return; 3816 } 3817 3818 // ìµê·¼ ê²ì ë´ì ë±ë¡ 3819 const result = searchFilterManager.insertRecentSearch(); 3820 console.log(result); 3821 3822 const strSubRegion = searchFilterManager._filter.sub_region.join(",");
3823 const keyword = searchFilterManager._inputFieldEl.value; 3824 3825 // URLSearchParams ê°ì²´ ìì± 3826 const searchParams = new URLSearchParams({ 3827 site_tp: searchFilterManager._filter.site_type, 3828 res_dt: searchFilterManager._filter.res_date, 3829 res_edt: searchFilterManager._filter.res_end_date, 3830 region: searchFilterManager._filter.region, 3831 sub_region: strSubRegion, 3832 ser_adult_count: searchFilterManager._filter.adultCount, 3833 ser_child_count: searchFilterManager._filter.childCount, 3834 ser_keyword: keyword 3835 }); 3836 3837 // filterManager._selectedFiltersê° ì¡´ì¬í ê²½ì° URLì ì¶ê° 3838 const params = (typeof filterManager !== "undefined" && filterManager._selectedFilters) ? filterManager._selectedFilters : {}; 3839 3840 // filterManager._selectedFilters ê°ì´ ìì¼ë©´ ì¶ê° 3841 Object.keys(params).forEach((key) => { 3842 const value = filterManager._selectedFilters[key]; 3843 3844 if (Array.isArray(value) && value.length > 0) { 3845 // ë°°ì´ì´ë©´ ì¼íë¡ êµ¬ë¶ë 문ìì´ë¡ ë³ííì¬ ì¶ê° 3846 searchParams.append(key, value.join(",")); 3847 } else if (value) { 3848 // ê°ì´ ë¹ì´ìì§ ìì¼ë©´ ì¶ê° 3849 searchParams.append(key, value); 3850 } 3851 }); 3852 3853 // ìµì¢ URL ì´ë 3854 window.location.href = `/resv/list.hbb?${searchParams.toString()}`; 3855 }, 3856 //ì§ë ê²ìí기 3857 submitMapSearch: function(){ 3858 popSearchManager.close(); 3859 3860 const markerCoordinate = searchMapManager.getMarkerCoordinate(); 3861 const lat = markerCoordinate.lat(); 3862 const lng = markerCoordinate.lng(); 3863 const zoom = searchMapManager._MAP.getZoom(); 3864 3865 if(searchFilterManager._searchType == "MAP"){ 3866 popSearchManager.updateSearchInput(); 3867 3868 _MAP.setZoom(zoom); 3869 _MAP.setCenter(new naver.maps.LatLng(lat, lng)); 3870 DataManager.fetchData(_MAP, true); 3871 return; 3872 } 3873 3874 const URL= `/search/mapSearch.hbb?zoom=${zoom}&res_dt=${searchFilterManager._filter.res_date}&res_edt=${searchFilterManager._filter.res_end_date}&lat=${lat}&lng=${lng}`; 3875 3876 // URL ì´ë 3877 window.location.href = URL; 3878 } 3879 } 3880 3881 /* ë¬ë ¥ ê´ë ¨ í¨ì */ 3882 const searchCalendarManager = { 3883 init: function(){ 3884 $.datepicker.setDefaults({ 3885 closeText: "ë«ê¸°", 3886 prevText: "ì´ì ë¬", 3887 nextText: "ë¤ìë¬", 3888 currentText: "ì¤ë", 3889 monthNames: ["1ì", "2ì", "3ì", "4ì", "5ì", "6ì","7ì", "8ì", "9ì", "10ì", "11ì", "12ì"], 3890 monthNamesShort: ["1ì", "2ì", "3ì", "4ì", "5ì", "6ì","7ì", "8ì", "9ì", "10ì", "11ì", "12ì"], 3891 dayNames: ["ì¼ìì¼", "ììì¼", "íìì¼", "ììì¼", "목ìì¼", "ê¸ìì¼", "í ìì¼"], 3892 dayNamesShort: ["ì¼", "ì", "í", "ì", "목", "ê¸", "í "], 3893 dayNamesMin: ["ì¼", "ì", "í", "ì", "목", "ê¸", "í "], 3894 weekHeader: "주", 3895 dateFormat: "yymmdd", 3896 firstDay: 0, 3897 isRTL: false, 3898 showMonthAfterYear: true, 3899 yearSuffix: "ë ", 3900 defaultDate: searchFilterManager._filter.ser_res_date 3901 }) 3902 $(".datepicker-list").datepicker({ 3903 minDate: 0, 3904 selectOtherMonths: true, 3905 beforeShowDay: searchCalendarManager.funcBeforeShowDay, 3906 onSelect: function (selected, event) { 3907 var dt = $(this).val(); 3908 searchCalendarManager.selectCalendar(dt); 3909 } 3910 }); 3911 3912 $(".datepicker-map").datepicker({ 3913 minDate: 0, 3914 selectOtherMonths: true, 3915 beforeShowDay: searchCalendarManager.funcBeforeShowDay, 3916 onSelect: function (selected, event) { 3917 var dt = $(this).val(); 3918 searchCalendarManager.selectCalendar(dt); 3919 } 3920 }); 3921 }, 3922 selectCalendar: function(dt){ 3923 if(searchFilterManager._filter.res_end_date=="" && searchFilterManager._filter.res_date <= dt) { 3924 //ìì½ë¶ê°ê²ì 3925 if(searchFilterManager._filter.res_date < dt) { 3926 var s_dt = searchFilterManager._filter.res_date 3927 var s_days = diff_date(searchFilterManager._filter.res_date, dt) 3928 } else { 3929 var s_dt = dt 3930 var s_days = diff_date(dt,searchFilterManager._filter.res_date) 3931 } 3932 3933 if (s_days > 6) { 3934 action_popup.alert("ìµë 6ë°ê¹ì§ ê²ìì´ ê°ë¥í©ëë¤.") 3935 searchFilterManager._filter.res_date = dt 3936 searchFilterManager._filter.res_end_date = "" 3937 searchFilterManager._filter.ser_res_date = dt 3938 searchFilterManager._filter.ser_res_end_date = "" 3939 searchFilterManager._filter.site_type = ['BB006'] 3940 3941 // ìì êµ¬ë¶ íí° ì±í¬ ë§ì¶ê¸° 3942 searchFilterManager.syncFilters(); 3943 3944 return 3945 } 3946 3947 searchFilterManager._filter.res_date = s_dt 3948 searchFilterManager._filter.ser_res_date = s_dt 3949 var ndt = new Date(s_dt.substr(0,4),parseInt(s_dt.substr(4,2))-1,parseInt(s_dt.substr(6,2))); 3950 ndt.setDate(ndt.getDate() + s_days); 3951 searchFilterManager._filter.res_end_date = ndt.getFullYear()+''+filldate(ndt.getMonth()+1)+''+filldate(ndt.getDate()) 3952 searchFilterManager._filter.ser_res_end_date = searchFilterManager._filter.res_end_date 3953 searchFilterManager._filter.res_day = s_days 3954 if(searchFilterManager._filter.ser_res_date == searchFilterManager._filter.ser_res_end_date){ 3955 searchFilterManager._filter.site_type = ['BB006'] 3956 }else{ 3957 searchFilterManager._filter.site_type = [] 3958 } 3959 $(".datepicker-list").datepicker({beforeShowDay: searchCalendarManager.funcBeforeShowDay}); 3960 $(".datepicker-map").datepicker({beforeShowDay: searchCalendarManager.funcBeforeShowDay}); 3961 } else { 3962 searchFilterManager._filter.res_date = dt 3963 searchFilterManager._filter.res_end_date = "" 3964 searchFilterManager._filter.ser_res_date = dt 3965 searchFilterManager._filter.ser_res_end_date = "" 3966 searchFilterManager._filter.site_type = ['BB006'] 3967 } 3968 3969 searchFilterManager.syncFilters(); 3970 searchFilterManager.isSiteType(); 3971 searchFilterManager.updateDatePlaceholder(); 3972 }, 3973 funcBeforeShowDay: function (date) { 3974 var result = null; 3975 var m = date.getMonth(), d = date.getDate(), y = date.getFullYear(); 3976 result = [true, ""]; // 기본ê°ì ë¹ ë¬¸ìì´ 3977 3978 var formattedDate = y + '' + filldate(m + 1) + '' + filldate(d); // íì¬ ë ì§ í¬ë§·í 3979 3980 // ì íí ë ì§ê° ë²ì ë´ì ìì ë ui-state-active í´ëì¤ ì¶ê° 3981 if (searchFilterManager._filter.res_date <= formattedDate && searchFilterManager._filter.res_end_date >= formattedDate) { 3982 if(searchFilterManager._filter.res_date == searchFilterManager._filter.res_end_date){ 3983 result = [true, "ui-state-active"]; 3984 }else{ 3985 if(searchFilterManager._filter.res_date == formattedDate){ 3986 result = [true, "ui-state-active left"]; 3987 }else if(searchFilterManager._filter.res_end_date == formattedDate){ 3988 result = [true, "ui-state-active right"]; 3989 }else{ 3990 result = [true, "ui-state-active-a"]; 3991 } 3992 } 3993 3994 } 3995 // ê·¸ ì¸ìë 기본ê°ì¼ë¡ ë¹ ë¬¸ìì´ì ë°í 3996 else { 3997 result = [true, ""]; 3998 } 3999 4000 return result; 4001 }, 4002 } 4003 4004 // ë¤ì´ë² ì§ë ê´ë ¨ 4005 const searchMapManager = { 4006 _LAT: null, 4007 _LNG: null, 4008 _MAP: null, 4009 init: function() { 4010 // ëì²´ ì¢í 4011 this._LAT = 37.82883056; 4012 this._LNG = 127.5117778; 4013 this.createMap(searchMapManager._LAT, searchMapManager._LNG); 4014 4015 if(app_yn=='Y') { 4016 if(app_os=='android'){ 4017 window.Android.getGpsLocation(); 4018 } 4019 if(app_os=='ios'){ 4020 goIosAp('getGpsLocation'); 4021 } 4022 }else{ 4023 if (navigator.geolocation) { 4024 navigator.geolocation.getCurrentPosition(searchMapManager.locationSuccess.bind(this), searchMapManager.locationError.bind(this)); 4025 } else { 4026 this.locationError("ì´ ë¸ë¼ì°ì ë Geolocationì ì§ìíì§ ììµëë¤."); 4027 } 4028 } 4029 4030 }, 4031 locationSuccess: function(position) { 4032 this._LAT = position.coords.latitude; 4033 this._LNG = position.coords.longitude; 4034 searchMapManager.createMap(searchMapManager._LAT, searchMapManager._LNG); 4035 }, 4036 locationError: function(error) { 4037 switch(error.code) { 4038 case error.PERMISSION_DENIED: 4039 console.log("ì¬ì©ìê° ìì¹ ì ë³´ ìì²ì ê±°ë¶íìµëë¤."); 4040 break; 4041 case error.POSITION_UNAVAILABLE: 4042 console.log("ìì¹ ì 보를 ì¬ì©í ì ììµëë¤."); 4043 break; 4044 case error.TIMEOUT: 4045 console.log("ìì¹ ì ë³´ ìì²ì´ ìê° ì´ê³¼ëììµëë¤."); 4046 break; 4047 case error.UNKNOWN_ERROR: 4048 console.log("ì ì ìë ì¤ë¥ê° ë°ìíìµëë¤."); 4049 break; 4050 } 4051 }, 4052 createMap: function(lat, lng) { 4053 const mapOptions = { 4054 center: new naver.maps.LatLng(lat, lng), 4055 zoom: 10 4056 }; 4057 4058 this._MAP = new naver.maps.Map("search_map", mapOptions); 4059 }, 4060 getMarkerCoordinate: function(){ 4061 return this._MAP.getCenter(); 4062 } 4063 }; 4064 4065 // ì± í¨ì 4066 function getLocation(data) { 4067 console.log("===== ì± í¸ì¶ ====="); 4068 // ê²ì ë°ì´í° 4069 const serLat = parseFloat(""); 4070 const serLng = parseFloat(""); 4071 4072 // data를 ','ë¡ ë¶ë¦¬íì¬ ë³ìì ì ì¥ 4073 let [lat, lng] = data.split(',').map(Number); 4074
4075 // ê° ì¤ì 4076 searchMapManager._LAT = lat; 4077 searchMapManager._LNG = lng; 4078 4079 if(searchMapManager._MAP == null){ 4080 searchMapManager.createMap(searchMapManager._LAT, searchMapManager._LNG); 4081 } 4082 4083 if (typeof _LAT !== "undefined" && typeof _LNG !== "undefined") { 4084 _myLat = lat; 4085 _myLng = lng; 4086 4087 _LAT = _myLat; 4088 _LNG = _myLng; 4089 4090 if(_MAP == null){ 4091 if(!isNaN(serLat) || !isNaN(serLng)){ 4092 MapManager.init(serLat, serLng); 4093 return; 4094 } 4095 4096 MapManager.init(_LAT, _LNG); 4097 } 4098 } 4099 } 4100 4101 4102 // ì´ê¸°í ì½ë 4103 $(document).ready(function () { 4104 // íì ê´ë ¨ ì´ë²¤í¸ 4105 popSearchManager.init(); 4106 // í ê´ë ¨ ì´ë²¤í¸ 4107 tabManager.init(); 4108 // ì¤ìì´í¼ ê´ë ¨ ì´ë²¤í¸ 4109 swiperManager.init(); 4110 // ê²ì ê´ë ¨ ì´ë²¤í¸ 4111 searchFilterManager.init(); 4112 // ë¬ë ¥ ê´ë ¨ ì´ë²¤í¸ 4113 searchCalendarManager.init(); 4114 }); 4115</script>
4115 4116 4117 </div><!-- //wrap_in --> 4118 4119 </div> <!--// wrap --> 4120<input type="hidden" name="festa_yn" value="Y"> 4121</form> 4122</body>
4123<script> 4124 const mem_grade = "0"; 4125 const enter_path = ""; 4126</script>
4126
4127<script src="/js/search_list.js?version=20260914-1"></script>
4127
4128<script> 4129$(window).scroll(function(){ 4130 if($("#wrap").css("display") != "none") { 4131 sc_top = Math.ceil($(window).scrollTop()) 4132 sc_hei = Math.ceil($(document).height() - $(window).height()) 4133 //$(".head_in").html(sc_hei + "/" + sc_top) 4134 if(sc_hei - 150 < sc_top && !DataListManager._isPending) { 4135 DataListManager.goResSerNext() 4136 } 4137 } 4138}); 4139 4140document.addEventListener("DOMContentLoaded", function() { 4141 // íí° ìì ì ë ¬ ì´ë²¤í¸ 4142 filterManager.sortSelect(() => DataListManager.fetchData(true)); 4143 4144 // ë°ì´í° ì¡°í ì´ë²¤í¸ 4145 DataListManager.init(); 4146 4147 // íê·¸ ê²ìí기 ë²í¼ ì´ë²¤í¸ 4148 filterManager.createTagClickEvent(()=>{ 4149 filterManager._selectedFilters.page = 0; 4150 DataListManager.fetchData(true); 4151 }); 4152 4153 // íí° ê²ìí기 ë²í¼ ì´ë²¤í¸ 4154 filterManager.updateEmptyState(); 4155 document.getElementById("searchSubmitButton").addEventListener('click', function(){ 4156 filterManager.close(); 4157 filterManager._selectedFilters.page = 0; 4158 DataListManager.fetchData(true); 4159 }) 4160 4161 // ìì½ê°ë¥ ë²í¼ ì´ë²¤í¸ 4162 document.getElementById("empty_y").addEventListener('click', function(){ 4163 filterManager._selectedFilters.page = 0; 4164 filterManager.toggleEmpty(); 4165 DataListManager.fetchData(true); 4166 }) 4167 4168 // ë·° íì ë²í¼ ì´ë²¤í¸ 4169 document.addEventListener("click", function (event) { 4170 const selViewBtn = document.querySelector(".sel_view img"); 4171 const galleryView = DataListManager._viewType; 4172 4173 // `.sel_view` ë²í¼ í´ë¦ ì ì¤í 4174 if (event.target.closest(".sel_view")) { 4175 if (galleryView == "PIC") { 4176 DataListManager._viewType = "LIST"; 4177 selViewBtn.src = "../images/thumb-pic.png"; 4178 selViewBtn.alt = "ê°¤ë¬ë¦¬íì¼ë¡ 보기"; 4179 document.getElementById("DivResvList").classList.add("view_type_info"); 4180 document.getElementById("DivResvPrList").classList.add("view_type_info"); 4181 } else { 4182 DataListManager._viewType = "PIC"; 4183 selViewBtn.src = "../images/thumb.png"; 4184 selViewBtn.alt = "리ì¤í¸ë¡ 보기"; 4185 document.getElementById("DivResvList").classList.remove("view_type_info"); 4186 document.getElementById("DivResvPrList").classList.remove("view_type_info"); 4187 } 4188 } 4189 }); 4190 4191 // ì° ë²í¼ 4192 document.getElementById("DivResvList").addEventListener("click", function (event) { 4193 if (event.target.classList.contains("btn_zzim")) { 4194 event.preventDefault(); 4195 event.stopPropagation(); 4196 4197 const memseq = ""; 4198 const $zzimEl = $(event.target); 4199 const campseq = $zzimEl.data("value"); 4200 4201 if(memseq == ""){ 4202 action_popup.alert('ë¡ê·¸ì¸í ì´ì©í´ 주ì¸ì.'); 4203 return; 4204 } 4205 4206 chgFavor($zzimEl,campseq,1) 4207 } 4208 }); 4209 4210 // ì ê¸°ë¥ ìë´ ë§íì 4211 document.getElementById("viewInfoBox").classList.add("active"); 4212 setTimeout(() => { 4213 viewInfoBox.classList.remove("active"); 4214 }, 5000); 4215}); 4216 4217</script>
4217 4218</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.