PageSourceSearch

https://groomingjok.io/search

html groomingjok.io collected 2026-10-02 01:57:27 UTC 336,839 bytes, 7,955 lines download raw bytes

1<!doctype html>
2<html xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.thymeleaf.org "
3		lang="en"
4>
5<head>
6	
7	<meta charset="utf-8">
8	<meta name="viewport"
9		content="width=device-width,initial-scale=1.0,minimum-scale=1.0,maximum-scale=1.0,user-scalable=no">
10	<meta name="facebook-domain-verification" content="jyntulevb03x6n6qqbdooakvsuhb50" />
11
12	<!-- css -->
13	
14	<!--<link href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css"
15			integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'">
16	<link th:href="@{'/css/common'+ ${__min__} +'.css'(ver=${__pub__})}" rel="preload" as="style" onload="this.onload=null;this.rel='stylesheet'">
17	<noscript>
18	</noscript>-->
19	<!-- <link href="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/css/bootstrap.min.css"
20	      integrity="sha384-GJzZqFGwb1QTTN6wy59ffF1BuGJpLSa9DkKMp0DgiMDm4iYMj70gZWKYbI706tWS" crossorigin="anonymous" rel="stylesheet"> -->
21	<!-- <link th:href="@{'/css/common'+ ${__min__} +'.css'(ver=${__pub__})}" rel="stylesheet"> 퍼블 오면 요청 -->
22	<!-- <link th:href="@{'/css/common.css'(ver=${__pub__})}" rel="stylesheet"> -->
23	<!--
23<script th:src="@{'/lib/common-correct-css'+ ${__min__} +'.js'(ver=${__pub__})}"></script>
23-->
24	<!-- <th:block layout:fragment="ex-css-mypage"></th:block>
25	<th:block layout:fragment="ex-css-member"></th:block> -->
26	<link href="/favicon.ico?ver=200427" rel="icon"/>
27
28	<link rel='stylesheet' href='https://cdn.jsdelivr.net/npm/swiper@11/swiper-bundle.min.css' />
29	<link rel='stylesheet' href='/css/jquery-ui.css'>
30	<link rel="stylesheet" href="/css/style.css?ver=25-06-17-1400">
31
32	<!-- Google Tag Manager -->
33<script>
34    /*<![CDATA[*/
35    /*]]>*/
36</script>
36
37		
38		<!-- head-seo-->
39		<!-- google 대응 -->
40		<meta name="google-site-verification" content="f79wBG6xrqqw7JSSdNJxwMWiILXHMO2ld_d07KEgoxw"/>
41
42		<!-- 네이버 대응 -->
43		<!-- <meta name="naver-site-verification" content="a6178a0bde2144c7ab9f31ca03479b569de830ff"/> 중복으로인한 주석-->
44		<link rel="canonical" href="https://www.groomingjok.io/search"/>
45
46		<!-- bing, 야후 대응 -->
47		<meta name="msvalidate.01" content="568EF949BE5F5DED45F610E0F761F40C" />
48
49		<!-- SEO 대응 -->
50		<title>그루밍족 l 남자 성형 정보앱</title>
51		<meta name="description" content="그루밍족 | 남자 성형 정보앱"/>
52		<meta name="keywords" content="그루밍족 , GroomingJok, 쌍거풀수술, 눈매교정, 성형, 가슴성형, 강남언니, 코성형,  바비톡, 코성형, 외국인 성형, 다국어성형, K뷰티, 케이뷰티, 뷰티, 방학, 한국여행, 휴가, 외모"/>
53		<meta property="og:type" content="website"/>
54		<meta property="og:image" content="https://www.groomingjok.io/img/logo.svg"/>
55		<meta property="og:site_name" content="GroomingJok - 그루밍족 | 남자 성형 정보앱"/>
56		<meta property="og:title" content="그루밍족 l 남자 성형 정보앱"/>
57		<meta property="og:description" content="그루밍족 | 남자 성형 정보앱"/>
58		<meta property="og:url" content="https://www.groomingjok.io/search"/>
59		<!--  -->
60		
61		<!-- tommy 네이버 웹마스터 메타태그 -->
62		<meta name="naver-site-verification" content="a6178a0bde2144c7ab9f31ca03479b569de830ff"/>
63		
64		
64<script async src='https://www.google-analytics.com/analytics.js'></script>
64
65
66		<!-- Global site tag (gtag.js) - Google Analytics -->
vendor: 66 bytes, lines 66-67
66
67		<script async src="https://www.googletagmanager.com/gtag/js?id=
67UA-163489448-1
vendor: 14 bytes, lines 67-68
67"></script>
68		
68<script>
69		  
vendor: 142 bytes, lines 69-73
69window.dataLayer = window.dataLayer || [];
70		  function gtag(){dataLayer.push(arguments);}
71		  gtag('js', new Date());
72		
73		  gtag('config', '
73UA-163489448-1
vendor: 13 bytes, lines 73-75
73');
74		  
75		  
75window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
76		  ga('create', 'UA-163489448-1', 'auto');
77		  ga('send', 'pageview');
78		</script>
78
79		<!-- //End Global site tag (gtag.js) - Google Analytics -->
80		
81		<!-- Global site tag (gtag.js) - Google Ads: 650837381 -->
vendor: 66 bytes, lines 81-82
81
82		<script async src="https://www.googletagmanager.com/gtag/js?id=
82AW-650837381
vendor: 14 bytes, lines 82-83
82"></script>
83		
83<script>
84		  
vendor: 142 bytes, lines 84-88
84window.dataLayer = window.dataLayer || [];
85		  function gtag(){dataLayer.push(arguments);}
86		  gtag('js', new Date());
87		
88		  gtag('config', '
88AW-650837381
vendor: 6 bytes, lines 88-89
88');
89		
89</script>
89
90		
91		<!-- Facebook Pixel Code -->
92		
92<script>
vendor: 434 bytes, lines 92-101
92
93			!function(f,b,e,v,n,t,s)
94			{if(f.fbq)return;n=f.fbq=function(){n.callMethod?
95					n.callMethod.apply(n,arguments):n.queue.push(arguments)};
96				if(!f._fbq)f._fbq=n;n.push=n;n.loaded=!0;n.version='2.0';
97				n.queue=[];t=b.createElement(e);t.async=!0;
98				t.src=v;s=b.getElementsByTagName(e)[0];
99				s.parentNode.insertBefore(t,s)}(window, document,'script',
100					'https://connect.facebook.net/en_US/fbevents.js');
101			fbq('init', '
1011643428045825303
vendor: 35 bytes, lines 101-103
101');
102			fbq('track', 'PageView');
103		
103</script>
103
104		
105		<!-- kakaoPixel -->		
106		
106<script type="text/javascript" charset="UTF-8" src="//t1.daumcdn.net/adfit/static/kp.js"></script>
106
107		
107<script type="text/javascript">
108		      kakaoPixel('5213982040864504465').pageView();
109		</script>
109
110		
111		
112		<noscript><img height="1" width="1" style="display:none"
113					   src="https://www.facebook.com/tr?id=1643428045825303&ev=PageView&noscript=1"
114		/></noscript>
115		<!-- //End Facebook Pixel Code -->
116		
117		<!-- //End head-seo-->
118	
119	<!-- Enliple Common Tracker v3.6 [공용] start -->
120<script type="text/javascript">
121	<!--
122	function mobRf() {
123		var rf = new EN();
124		rf.setData("userid", "beautysocial");
125		rf.setSSL(true);
126		rf.sendRf();
127	}
128	//-->
129</script>
vendor: 1 bytes, line 129
129
130<script src="https://cdn.megadata.co.kr/js/en_script/3.6/enliple_min3.6.js"
131		defer="defer" onload="mobRf()"></script>
131
132<!-- Enliple Common Tracker v3.6 [공용] end -->
133
134<script src="https://cdnjs.cloudflare.com/ajax/libs/Swiper/4.5.0/js/swiper.min.js"></script>
134
135</head>
136
137<body>
138
139	<!-- Google Tag Manager (noscript) -->
140	<!-- End Google Tag Manager (noscript) -->
141
142
143	<style>
144		@-webkit-keyframes intro-open {
145			from { transform:translateY(100%); }
146			100% { transform:translateY(0); }
147		}
148		@keyframes intro-open {
149			from { transform:translateY(100%); }
150			100% { transform:translateY(0); }
151		}
152		@-webkit-keyframes intro-close {
153			from { transform:translateY(0); }
154			100% { transform:translateY(100%); }
155		}
156		@keyframes intro-close {
157			from { transform:translateY(0); }
158			100% { transform:translateY(100%); }
159		}
160	</style>
161    <div id="intro" style="background-color: white;
162			position: fixed;
163			width: 100%;
164			display: none">
165	    <div>
166		    <object type="image/svg+xml" data="/img/logo.svg"></object>
167	    </div>
168        <!--<h1 class="logo text-hide"><img th:data-src="@{/img/logo.png}"
169                                        th:alt="#{common.msg.title.groomingjok}"
170                                        th:text="#{common.msg.title.groomingjok}"
171										class="lazy"
172        >BeautySocial</h1>-->
173    </div>
174	
174<script>
175		/*<![CDATA[*/
176		var intro = (function() {
177			var ns = 'intro';
178			var _pEle = document.querySelector('#intro');
179			var _interface = {};
180            _interface.close = function () {
181                _pEle.style.animation ='intro-close .3s ease both';
182                setTimeout(function () {
183					_pEle.style.display = 'none';
184					_pEle.style.zIndex = '-1';
185                }, 430);
186            };
187            _interface.open = function () {
188                _pEle.style.display = '';
189                _pEle.style.zIndex = '9998';
190                _pEle.style.animation ='intro-open .3s ease both';
191                /*lazyLoading(sel('img', _pEle), true).setImagesSrc(function (imageEl) {
192                    return hasClass(imageEl, 'lazy');
193                });*/
194            };
195			return _interface;
196		})();
197		/*]]>*/
198	</script>
198
199
200
201	<!--overlay-->
202	<div id="overlayWrapper" class="box" style="
203			position: fixed;
204			top: 0; left: 0;
205			width: 100%; height: 100%;
206			background: none; border: none; box-shadow: none;
207			display: none;
208			z-index: -1
209	">
210		<div id="loading" style="
211				position: absolute;
212				top: 0;
213				left: 0;
214				width: 100%;
215				height: 100%;
216				background: rgba(255,255,255,0);
217				border-radius: 3px;
218				cursor: default;
219				z-index: 50;
220				display: none
221		">
222			<div class="loading" id="loadingImg">
223				<div class="txt"></div>
224			</div>
225		</div>
226	</div>
227	<style>
228		.open1 {
229		  animation: open1 6s forwards
230		}
231		@keyframes open1 {
232		  from { background: rgba(255, 255, 255, 0); cursor: default }
233		  50% { background: rgba(255, 255, 255, 0.4); cursor: default }
234		  80% { background: rgba(255, 255, 255, 0.4); cursor: progress }
235		  to  { background: rgba(255, 255, 255, 0.7); cursor: progress }
236		}
237		.close1 {
238		  animation: close1 1s forwards
239		}
240		@keyframes close1 {
241		  from{ background: rgba(255, 255, 255, 0.2); cursor: default }
242		  50% { background: rgba(255, 255, 255, 0) }
243		  to  { background: rgba(255, 255, 255, 0); display: none }
244		}
245		.appear1 {
246		  animation: appear1 3s forwards
247		}
248		@keyframes appear1 {
249		  from { opacity: 0 }
250		  50% { opacity: 0.4 }
251		  to  { opacity: 1 }
252		}
253		.disappear1 {
254		  animation: disappear1 1s forwards
255		}
256		@keyframes disappear1 {
257		  from{ opacity: 0.2 }
258		  50% { opacity: 0 }
259		  to  { opacity: 0 }
260		}
261	</style>
262	
262<script>
263        /*<![CDATA[*/
264		var overlay = (function(){
265			var elOverlayWrapper = document.getElementById('overlayWrapper');
266			var elOverlay = document.getElementById('loading');
267			var elLoadingImg = document.getElementById('loadingImg');
268			var _status = 'off';
269			var init = function() {
270				elOverlayWrapper.style.display = '';
271			};
272            var isOn = function() {
273                return _status == 'on';
274            };
275			var _overlay = {};
276            _overlay.isOn = isOn;
277			_overlay.on = function(){
278			    init();
279				elOverlayWrapper.style.zIndex = 9999;
280				//elOverlay.classList.remove('close1');
281				elOverlay.classList.add('open1');
282				elOverlay.style.display = '';
283				/* elLoadingImg.classList.remove('disappear1');
284				elLoadingImg.classList.add('appear1'); */
285				_status = 'on';
286                // console.log('overlay on');
287			};
288			_overlay.off = function(){
289                if (!isOn()) {
290                    // console.log('overlay off block');
291                    return false;
292                }
293                //elOverlay.classList.add('close1');
294				elOverlay.classList.remove('open1');
295				window.setTimeout(function () {
296					elOverlayWrapper.style.zIndex = -1;
297					elOverlay.style.display = 'none';
298				}, 300);
299				elLoadingImg.classList.add('disappear1');
300				elLoadingImg.classList.remove('appear1');
301				_status = 'off';
302                // console.log('overlay off');
303			};
304			return _overlay;
305		})();
306        /*]]>*/
307	</script>
307
308	<!--//overlay-->
309
310
311	<!--placeholder-->
312	<div id="placeholderWrapper" style="display: none">
313		<div class="media placeholder-content" data-ele-name="placeholder">
314			<div class="profile placeholder-content-item">
315				<span class="img"></span>
316			</div>
317			<div class="media-body" data-ele-name="items">
318				<div class="tit placeholder-content-item" data-column-name="item" style="display: none"></div>
319				<div class="sub-tit placeholder-content-item" data-column-name="item" style="display: none"></div>
320				<div class="lst-site placeholder-content-item" data-column-name="item" style="display: none"></div>
321			</div>
322		</div>
323		<ul data-ele-name="itemWrapper" style="display: none">
324			<li></li>
325		</ul>
326	</div>
327	
327<script src="/js/inc/placeholder.min.js?ver=0.1.05"></script>
327
328	<!--//placeholder-->
329
330
331<!--
331<script src="https://code.jquery.com/jquery-3.4.1.min.js" integrity="sha256-CSXorXvZcTkaix6Yvo6HppcZGetbYMGWSFlBw8HfCJo=" crossorigin="anonymous"></script>
331-->
332<!-- 
332<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.4.1/jquery.min.js"></script>
332 -->
333<script src="https://cdnjs.cloudflare.com/ajax/libs/popper.js/1.14.6/umd/popper.min.js" integrity="sha384-wHAiFfRlMFy6i5SRaxvfOCifBUQy1xHdJ/yoi7FRNXMRBu5WHdZYu1hA6ZOblgut" crossorigin="anonymous"></script>
333
334<!-- 
334<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
334 -->
335
336<script src="/js/jquery.min.js"></script>
vendor: 2 bytes, line 336
336
337<script src="/js/jquery-ui.js"></script>
337
338<!-- 
338<script src='/js/swiper-bundle.js'></script>
338 -->
339<script src='https://files.pleasehelp.co.kr/data.server/static/cdn/swiper-bundle.min.js'></script>
339
340<!-- 
340<script src='https://unpkg.com/swiper/swiper-bundle.min.js'></script>
340 -->
341<script src="/js/jquery.slideToUnlock.js"></script>
vendor: 2 bytes, line 341
341
342<script src="/js/hammer.min.js"></script>
vendor: 2 bytes, line 342
342
343<script src="/js/scripts.js?ver=25-04-09-1000"></script>
343
344<!-- 
344<script th:src="@{/lib/locales.min.js}"></script>
344 -->
345<!--
345<script th:src="@{/lib/moment.min.js}"></script>
345-->
346<!--
346<script th:src="@{/lib/moment-with-locales.min.js}"></script>
346-->
347<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.24.0/moment.min.js" integrity="sha256-4iQZ6BVL4qNKlQ27TExEhBN1HFPvAvAMbFavKKosSWQ=" crossorigin="anonymous"></script>
347
348
349
350
351
352<!-- 
352<script th:src="@{'/lib/rsea'+ ${__min__} +'.js'(ver=200126)}"></script>
352 -->
353<script src="/lib/rsea.js?ver=202505261504001"></script>
353
354
355
356<script src="/lib/polyfill.min.js?ver=0.1.31"></script>
vendor: 2 bytes, line 356
356
357<script
358>
359/*<![CDATA[*/
360var _btsSet = Object.assign({
361	  cookieName: ''
362	, defaultLanguage: "ko"
363	, supportLanguage: {"ko":null,"ja":null,"en":null,"zh":null}
364	, cacheDay: 1
365	, toastTime: 1500 //ms
366	, mainSwiperLoop: false
367	, mainSwiperDelay: 3000 //ms
368	// , area: 'AIGSTN'
369    , area:  ''
370	, rankingNotice: 4
371	, _all: 'ALL'
372	, _end: ''
373	, isDev: false
374	, platformType: 'G'
375	, genderCode: 'M'
376	, inputPlatformType: 'G'
377}, {"mainSwiperDelay":3000,"cacheDay":1,"toastTime":2200,"rankingNotice":"30"});
378/*]]>*/
379</script>
vendor: 2 bytes, line 379
379
380<script src="/lib/global_util.min.js?ver=0.4.85"></script>
vendor: 2 bytes, line 380
380
381<script src="/lib/dom_util.min.js?ver=0.5.12"></script>
vendor: 2 bytes, line 381
381
382<script src="/lib/string_util.min.js?ver=0.1.27"></script>
vendor: 2 bytes, line 382
382
383<script src="/lib/date_util.min.js?ver=0.4.78"></script>
vendor: 2 bytes, line 383
383
384<script src="/lib/validate_util.min.js?ver=0.2.11"></script>
vendor: 2 bytes, line 384
384
385<script src="/lib/cookie_util.min.js?ver=0.4.42"></script>
vendor: 2 bytes, line 385
385
386<script src="/lib/i18n_util.min.js?ver=0.1.32"></script>
vendor: 2 bytes, line 386
386
387<script src="/lib/consts.min.js?ver=0.9.00"></script>
vendor: 2 bytes, line 387
387
388<script
389>
390	/*<![CDATA[*/
391var __userNo = -1;
392var __userNickname = null;
393var locale = "en"; // FIXME locale -> getLanguage() 로 대체
394var language = "en";
395var countryCd = "";
396var isEn = function() {
397    return language == 'en';
398};
399var isKo = function() {
400    return language == 'ko';
401};
402var getLanguage = function() {
403	return language;
404};
405var isForeignLang = function() {
406    return !isKo();
407};
408"en"
409var __bts = {
410	mode: "prod",
411	defaults: {
412		pageZeroStart: 0,
413		pageStart: 1,
414		pageStart_append: 1,
415		pageStart_dropdown: 1,
416        pageStart_search: 1,
417		pageSize: 10,
418		pageSize_dropdown: 20,
419		pageSize_txPurposes: 60,
420		pageSize_txNames: 350,
421        pageSize_hospitals: 9999,
422        pageSize_doctors: 9999,
423		pageSize_searchResult: 6,
424        pageSize_subList: 20,
425		statusCd: 'A',
426		orderKey: 'id',
427		orderDirection: 'desc',
428		tagArea: 'ALL',
429		rankingType: '',
430		rankingTxPartCd: '',
431		_end: ''
432	},
433	consts: {
434		yn: {
435			y: "Y",
436			n: "N",
437			_end: ''
438		},
439		surgicalType: {
440			y: "surgical",
441			n: "nonsurgical"
442		},
443		productType: {
444			skin: "skin",
445			hair: "hair",
446			hue: "hue",
447			teeth: "teeth",
448			body: "body"
449		},
450		boardType: {
451			face: "face",
452			cos: "cos",
453			hl: "hl",
454			ur: "ur",
455			sc: "sc",
456			lv: "lv",
457			car: "car",
458			sprot: "sport",
459			game: "game",
460			skin: "skin",
461			heal: "heal",
462			fash: "fash",
463			chat: "chat",
464			ques: "ques",
465			anon: "anon",
466			best: 'best',
467			etc: "etc"
468		},
469		epReviewType: {
470			doctor: 'd',
471			hospital: 'p'
472		},
473		rankingType: {
474			hospital: "chkProv",
475			doctor: "chkDoctor"
476		},
477		serviceType: {
478			empty: "PS0EMPTY"
479		},
480		sns: {
481			kakaotalk: "kakaotalk",
482			kakao: "kakao",
483			line: "line",
484			facebook: "facebook",
485			skype: "skype",
486			viber: "viber",
487			wechat: "wechat",
488			weibo: "weibo",
489			whatsapp: "whatsapp",
490			google: "google",
491			email: "email",
492			insta: "insta",
493			twitter: "twitter"
494		},
495		android: {
496			key: {
497				id: "hid",
498				name: "hname",
499				like: "like"
500			},
501			yn: {
502				y: "yes",
503				n: "no"
504			}
505		},
506		userAgent: {
507			androidWebView: "androidWebView",
508			iosWebView: "iosWebView"
509        },
510        fileKey: {"cpr_02":"cpr_02","cpr_01":"cpr_01","review_after":"review_after","profile":"profile","prov_req":"prov_req","review_before":"review_before","comment":"comment","prov_bizr":"prov_bizr","prov_main":"prov_main","prov":"prov"},
511        likeCd: {
512            all: "ALL",
513            hospital: "PRV001",
514            doctor: "DOC001",
515            treatment: "TX0001",
516            event: "EV0001",
517            review: "RV0001"
518        },
519        review: {
520            status: {
521                waiting: "S_I",
522                approval: "S_F",
523                impossible: "S_R",
524                waitingReapproval: "S_RI",
525            },
526		    costType: {
527                one: "TC1CST",
528                total: "TCTCST",
529                unknown: "TCUNKN",
530		    },
531            params: {
532                translated: "translated"
533            }
534		},
535		order: {
536			ordrDefault: 'id',
537            direction: {
538                asc: 'asc',
539                desc: 'desc'
540            },
541			id: 'id',
542			popular: 'popular',
543			rate: 'rate',
544			comment: 'comment'
545		},
546		contryCd: {
547			ko: '+82'
548		},
549		swiperConfig:{
550			slidesPerView: 'auto'
551		},
552		txPartType: {
553			txPartCd : 'txPartCd',
554			txPartCdWh : 'txPartCdWh',
555		},
556		cookie: {
557			returnUrl : '___beautycorn_rtn',
558			cookieNameLoginId : '_BTC_ACNT'
559		}
560	},
561	main: {
562		event: 'event',
563		store: 'store',
564		hospital: 'hospital',
565		doctor: 'doctor',
566		treatment: 'treatment',
567		treatmentMain: 'treatmentMain',
568		review: 'review',
569        user: 'user',
570		_end: ''
571	},
572	scheme: {
573		protocol: {
574			ios: '', //TODO
575			android: '' //TODO
576		}
577	},
578	url: {
579		aapi: "\/api",
580		sapi: "https:\/\/sapi.beautysocial.io\/api",
581		rapi: "https:\/\/rapi.beautysocial.io\/rapi",
582		schema: "https",
583		cdn: "files.beautysocial.io\/data.dev",
584		repository: "",
585		googleApi_embedUrl: "https:\/\/www.google.com\/maps\/embed\/v1\/place?key=AIzaSyCDjUzy6HIRfmTb0jSIbRNB3tzlsG4JcdQ",
586		app: {
587			google: '',
588			apple: ''
589		},
590		_end: ''
591	},
592	path: {
593		index: "\/",
594		login: "\/login",
595		logout: "\/logout",
596        faq: "\/faq",
597        notice: "\/notice",
598        privacy: "\/privacy",
599        terms: "\/terms",
600		search: "\/search",
601		searchResult: "\/search\/result",
602		treatment: "\/treatment",
603		treatmentMain: "\/treatmentMain",
604		hospital: "\/hospital",
605		doctor: "\/doctor",
606		event: "\/event",
607        review: "\/review",
608        reviewReg: "\/review\/reg",
609       	employeeReview: "\/employeeReview",
610       	employeeReviewDetail: "\/employeeReview\/detail",
611        employeeReviewDReg: "\/employeeReview\/dreg",
612        employeeReviewPReg: "\/employeeReview\/preg",
613        employeeReviewDEdit: "\/employeeReview\/dedit",
614        employeeReviewPEdit: "\/employeeReview\/pedit",
615        complainReview: "\/complainReview",
616       	complainReviewDetail: "\/complainReview\/detail",
617        complainReviewDReg: "\/complainReview\/dreg",
618        complainReviewPReg: "\/complainReview\/preg",
619        complainReviewDEdit: "\/complainReview\/dedit",
620        complainReviewPEdit: "\/complainReview\/pedit",
621        reviewEdit: "\/review\/edit",
622        store: "\/store",
623        storeDetail: "\/store\/detail",
624        shoppingBasket: "\/store\/shoppingBasket",
625        storeOrdersheet: "\/store\/storeOrdersheet",
626        board: "\/board",
627		estimate: "\/estimate",
628        estimateIntro: "\/estimate\/intro",
629        estimateApplication: "\/estimate\/application",
630		myPageSetting: "\/mypage\/setting",
631		myPageEstimate: "\/mypage\/estimate",
632		treatmentDetail: "\/treatment\/detail",
633		treatmentMainDetail: "\/treatmentMain\/detail",
634		hospitalDetail: "\/hospital\/detail",
635		doctorDetail: "\/doctor\/detail",
636		eventDetail: "\/event\/detail",
637        reviewDetail: "\/review\/detail",
638        userDetail: "\/user\/detail",
639		eventRecentlyList: "\/event\/eventRecentlyList",
640		boadDetail: "\/board\/detail",
641		videoDetail: "\/video\/detail",
642		_end: ''
643	},
644	statusCode: {
645		ok: 200,
646		location: 302,
647		sysErr: 1001
648	},
649	messageKeys: null,
650    code: {
651        'err.cd.common.invalid.token': "1002",
652        'err.cd.common.expired.token': "1003",
653    },
654	message: [
655        [ 'exception', "An error has occured while processing. Please contact the administrator."],
656		[ 'invalidToken', "\uC720\uD6A8\uD558\uC9C0 \uC54A\uC740 \uD1A0\uD070\uC785\uB2C8\uB2E4."],
657		[ 'expiredToken', "\uB9CC\uB8CC\uB41C \uD1A0\uD070\uC785\uB2C8\uB2E4."],
658		[ 'invalidAccess', "This is an incorrect approach."],
659		[ 'requireSearchOptions', "Enter keyword"],
660		[ 'mypage.withdrawal.msg.please.select.a.reason', "Please select a reason."],
661		[ 'join.msg.you.can.select.up.to.3.body.areas', "You can select up to 3 body areas."],
662		[ 'join.msg.please.select.at.least.1.body.area', "Please select at least 1 body area."],
663		[ 'mypage.withdrawal.msg.please.describe.your.reason.for.leaving', "Please describe your reason for leaving"],
664		[ 'common.msg.sub.filter.search.tx.part.clinics', "Search clinics by treatments"],
665		[ 'common.msg.sub.filter.search.tx.part.doctors', "Search doctors by treatments"],
666		[ 'common.msg.sub.filter.search.tx.part.reviews', "Select a treatment"],
667		[ 'end', '' ]
668	],
669	text: {
670		  noData: "No data"
671		, loading: 'loading...'
672		, noti_lastPage: "Last Page"
673		, noti_selectTxFirst: "Please select treatment area or goal first."
674		, title_main: "GroomingJok"
675		, title_reviews: "Reviews"
676		, title_reviewWrite: "Write a review"
677        , title_reviewEdit: "Edit review"
678		, title_searchMain: "Search"
679		, title_searchTreatment: "Search Treatments"
680		, title_searchEvent: "Promotions"
681		, title_searchStore: '스킨케어'
682		, title_evaluation: "Rate"
683		, title_searchHospital: "Search Clinics"
684		, title_searchDoctor: "Search Doctors"
685		, title_searchReview: "Reviews"
686		, title_mypage: "My Page"
687		, title_ranking: "Weekly Ranking"
688		, title_notification: "Notification"
689		, title_offersRedeemed: "Promotions I booked"
690		//, title_counselList: /*"Appointment Request List"*/'상담 신청 리스트'
691		, title_counselHistory: "Appointment requests"
692		//, title_applyList: /*"Request List"*/'상담 리스트'
693		, title_report: "Report"
694		, title_myReview: "My Reviews"
695		, title_myLikeEvent: "Promotions I liked"
696        , title_myLikeReview: "Reviews I liked"
697		, title_likeList: "List of Liked Contents"
698		, title_faq: "FAQ"
699		, title_signUp: "Sign up"
700		, title_userWithdrawal: "Delete Account"
701		, title_notice: "Updates"
702		, title_policy: "Privacy Policy"
703		, title_terms: "Terms of Service"
704		, title_config: "Settings"
705		, title_reqComplete: "Succeesfully Submitted!"
706		, title_estimate_msg_quote_request: "Request Price Quote"
707		, unit_year: ""
708		, unit_currency: "$"
709		, unit_currency_kr: "\u20A9"
710		, unit_currency_us: "$"
711		, unit_currency_jp: "\u5186"
712		, unit_currency_cn: "\u5143"
713		, unit_currency_kr_char: "KRW"
714		, unit_currency_us_char: "USD"
715		, unit_currency_jp_char: "JPY"
716		, unit_currency_cn_char: "CNY"
717        , unit_currency_kr_manWon: "\uB9CC\uC6D0"
718		, unit_currency_estimate: "$"
719		, word_surgicalTypeA: "All"
720		, word_surgicalTypeY: "Surgical"
721		, word_surgicalTypeN: "Non-surgical"
722		, word_surgicalTypeP: "Non-surgical"
723		, word_productTypeSkin: '기초'
724		, word_productTypeHair: '헤어'
725		, word_productTypeHue: '치료'
726		, word_productTypeTeeth: '보호'
727		, word_productTypeBody: '바디'
728		, word_boardTypeFace: '얼평'
729		, word_boardTypeCos: '성형'
730		, word_boardTypeHl: '탈모'
731		, word_boardTypeUr: '비뇨'
732		, word_boardTypeSc: '성고민'
733		, word_boardTypeLv: '연애・성고민'
734		, word_boardTypeCar: '자동차'
735		, word_boardTypeSport: '스포츠'
736		, word_boardTypeGame: '게임'
737		, word_boardTypeSkin: '피부'
738		, word_boardTypeHeal: '헬스'
739		, word_boardTypeFash: '패션'
740		, word_boardTypeChat: '잡담'
741		, word_boardTypeEtc: '자유'
742		, word_boardTypeQues: '질문'
743		, word_boardTypeAnon: '익명'
744		, word_boardTypeBest: '베스트'
745		, word_categoryNonSurgical: "Non-surgical"
746		, word_categorySurgical: "Surgical"
747		, word_mainHospital: "Clinics"
748		, word_mainDoctor: "Doctors"
749		, word_before: "Before"
750		, word_after: "After"
751		, sub_txPart: "Treatment Area"
752		, sub_txPurpose: "Treatment Goal"
753		, sub_txName: "Treatment Method"
754		, word_night: "After hours"
755		, word_holiday: "Off"
756		, word_appointment: "Appointment"
757		, word_more: "More"
758		, word_folding: "Fold"
759		, word_like: "Like"
760		, word_likeCancel: "Cancel like"
761		, word_all: "All"
762		, list_categoryAll: "All"
763		, review_msg_waiting_for_release: "Waiting for release"
764		, review_msg_cannot_write: "Cannot write"
765		, review_msg_waiting_for_re_confirmation: "Waiting for re-confirmation"
766		, common_msg_delete_confirm: "Confirm to cancel"
767		, common_msg_do_you_want_to_delete: "Do you want to cancel?"
768		, review_msg_do_you_want_to_delete: "Do you want to cancel?"
769		, common_msg_you_can_select_up_to_maximum: "You can select up to {0} body areas."
770        , common_msg_see_translation: "See translation"
771        , common_msg_see_original: "See original"
772		, _end: ''
773    },
774	url_img: {
775        EYES: "\/img\/icon-bk-eyes.png",
776		FACE: "\/img\/icon-bk-face.png",
777		FOREHEAD: "\/img\/icon-bk-forehead.png",
778		HAIR: "\/img\/icon-bk-hair.png",
779		LIPS: "\/img\/icon-bk-lips.png",
780		NOSE: "\/img\/icon-bk-nose.png",
781		TEETH: "\/img\/icon-bk-teeth.png",
782		BREASTS: "\/img\/icon-bk-breasts.png",
783		EARS: "\/img\/icon-bk-ears.png",
784		CHIN_JAW: "\/img\/icon-bk-chin.png",
785		NECK: "\/img\/icon-bk-neck.png",
786		BODY: "\/img\/icon-bk-body.png",
787		GENITALS: "\/img\/icon-bk-genitals.png",
788		
789		SKIN: "\/img\/icon-tm-skin.png",
790		FIBOLI: "\/img\/icon-tm-fillers.png",
791		FACYAN: "\/img\/icon-tm-jaw.png",
792		FATTRAN: "\/img\/icon-tm-fat.png",
793		LIPOSUCTION: "\/img\/icon-tm-liposuction.png",
794		FOREHAIR: "\/img\/icon-tm-hair.png",
795		
796		_ALL: "\/img\/icon-bk-all.png",
797		_end: ''
798	},
799	set: _btsSet
800};
801    /*]]>*/
802</script>
vendor: 2 bytes, line 802
802
803<script src="/lib/model.min.js?ver=20-01-29-1553"></script>
803
804<!-- 
804<script th:src="@{'/lib/app'+ ${__min__} +'.js'(ver=21-07-30-0916)}"></script>
804 -->
805<script src="/lib/app.js?ver=25-05-07-0940"></script>
vendor: 2 bytes, line 805
805
806<script>
807	/*<![CDATA[*/
808	//FIXME 쿠키 기반 로그인 체크
809	btsInit().run();
810	/*]]>*/
811</script>
811
812<!-- 
812<script th:src="@{'/lib/common-custom'+ ${__min__} +'.js'(ver=25-04-08-1020)}"></script>
812 -->
813<script src="/lib/common-custom.js?ver=25-04-09-1000"></script>
vendor: 2 bytes, line 813
813
814<script src="/lib/kevin.min.js?ver=20-01-07-1654"></script>
vendor: 2 bytes, line 814
814
815<script src="/lib/steve.min.js?ver=21-01-28-1250"></script>
vendor: 2 bytes, line 815
815
816<script src="/lib/naver-analytics.min.js?ver=20-05-26-1700"></script>
816
817
818
819<!-- alert -->
820<div id="alert" class="modal alert" style="display: none;">
821	<div class="modal-inner">
822		<a href="#" class="ico close modalClose" data-ele-name="btnCloseAlert">닫기</a>
823		<div class="modal-header">
824			<div class="modal-title" data-column-name="title">알림</div>
825		</div>
826		<div class="modal-body">
827			<div data-ele-name="wrapperMessageList">
828				<p class="desc" data-column-name="message">
829					loading...
830				</p>
831			</div>
832			<div  data-ele-name="wrapperTemplateItem" style="display: none">
833				<p class="desc" data-column-name="message">loading...</p>
834			</div>
835		</div>
836		<div class="modal-footer">
837			<a href="javascript:void(0)" class="btn positive modalClose" data-column-name="btnOk">확인</a>
838		</div>
839	</div>
840	<div class="modal-dim" id="alertDim"></div>
841</div>
842
843<!-- <div id="alert" class="md-alert modal fade" tabindex="-1" role="dialog" style="display: none;">
844	<div class="modal-dialog modal-dialog-centered" role="document">
845		<div class="modal-content">
846			<div class="modal-header">
847				<h5 class="modal-title" data-column-name="title">loading...</h5>
848				<button type="button" class="close" aria-label="Close" data-ele-name="btnCloseAlert">
849					<i class="icon-hd-close"></i>
850				</button>
851			</div>
852			<div class="modal-body">
853				<div class="alert-body">
854					<div class="alert-cnt" data-ele-name="wrapperMessageList">
855						<p data-column-name="message">loading...</p>
856					</div>
857					<div class="alert-cnt" data-ele-name="wrapperTemplateItem" style="display: none">
858						<p data-column-name="message">loading...</p>
859					</div>
860				</div>
861			</div>
862		</div>
863	</div>
864</div> -->
865<script>
866	/*<![CDATA[*/
867	var alertModal = (function(){
868		
869		var ns = 'alertModal';
870		
871		var _alertModal = {
872			$el: {
873				p: null,
874				title: null,
875				close: null,
876				wrapperMessageList: null,
877				wrapperTemplateItem: null
878			},
879			alertCloseCallback: function() {
880				bts.isDebug() && console.log(ns + '.alertCloseCallback :: close');
881			}
882		};
883
884		_alertModal.alertInit = function() {
885			
886			_alertModal.$el.p = $('#alert');
887			_alertModal.$el.dim = $('#alertDim');
888			_alertModal.$el.title = _alertModal.$el.p.find('[data-column-name="title"]');
889			_alertModal.$el.close = _alertModal.$el.p.find('[data-ele-name="btnCloseAlert"]');
890			_alertModal.$el.wrapperMessageList = _alertModal.$el.p.find('[data-ele-name="wrapperMessageList"]');
891			_alertModal.$el.wrapperTemplateItem = _alertModal.$el.p.find('[data-ele-name="wrapperTemplateItem"]');
892			
893			var _close = function() {
894				// _alertModal.$el.p[0].style.zIndex = 0; //FIXME
895				_alertModal.$el.p.css("z-index", "0"); //FIXME
896				_alertModal.$el.p.hide();
897				_alertModal.$el.p.removeClass('on');
898				_alertModal.$el.dim.removeClass('on');
899				if (isFunction(_alertModal.alertCloseCallback)) {
900					
901					_alertModal.alertCloseCallback();
902				}
903			};
904			_alertModal.$el.close[0].onclick = function(e) {
905				
906				// _alertModal.$el.p.modal('hide');
907				_close();
908			}
909
910			_alertModal.$el.p.on('hidden.bs.modal' , function() {
911				_close();
912			});
913
914			_alertModal.$el.dim.on('click', function(e){
915				e.preventDefault();
916
917				_alertModal.$el.p.css("z-index", "0"); //FIXME
918				_alertModal.$el.p.hide();
919				_alertModal.$el.p.removeClass('on');
920				_alertModal.$el.dim.removeClass('on');
921			});
922		};
923		_alertModal.alertInit();
924
925		_alertModal.alertClear = function() {
926			
927			_alertModal.alertCloseCallback = function() {
928				bts.isDebug() && console.log(ns + '.alertCloseCallback :: close');
929			};
930			
931			_alertModal.$el.title[0].innerHTML = '';
932			
933			_alertModal.$el.wrapperMessageList[0].innerHTML = '';
934		};
935		_alertModal.alert = function(v, closeCallback, title) {
936			//alert(v);
937			
938			_alertModal.alertClear();
939			
940			if (isFunction(closeCallback)) {
941				
942				_alertModal.alertCloseCallback = closeCallback;
943			}
944			
945			if (title) {
946				_alertModal.$el.title[0].innerHTML = title;
947			} else {
948				_alertModal.$el.close.hide();
949			}
950			
951			var _el = null;
952			var _messages;
953			if (typeof v == 'string') {
954				_messages = v ? v.normalize().split('\n') : [''];
955                resolveEles(_messages, function(_v, i){
956                    if (_el != null) {
957                        _alertModal.$el.wrapperMessageList.append('<br>');
958                    }
959                    _el = _alertModal.$el.wrapperTemplateItem.children()[0].cloneNode();
960                    _el.innerHTML = _v || _alertModal.$el.wrapperTemplateItem.children()[0].innerHTML;
961                    _alertModal.$el.wrapperMessageList.append(_el);
962                });
963			} else if (isEle(v)) {
964                _alertModal.$el.wrapperMessageList.append(v);
965            } else if (isEles(v)) {
966                _messages = v;
967                resolveEles(_messages, function(_v, i){
968                    if (_el != null) {
969                        _alertModal.$el.wrapperMessageList.append('<br>');
970                    }
971                    _el = _v;
972                    _alertModal.$el.wrapperMessageList.append(_el);
973                });
974            } else {
975                _messages = [v];
976                resolveEles(_messages, function(_v, i){
977                    if (_el != null) {
978                        _alertModal.$el.wrapperMessageList.append('<br>');
979                    }
980                    _el = _alertModal.$el.wrapperTemplateItem.children()[0].cloneNode();
981                    _el.innerHTML = _v || _alertModal.$el.wrapperTemplateItem.children()[0].innerHTML;
982                    _alertModal.$el.wrapperMessageList.append(_el);
983                });
984			}
985
986			
987			// _alertModal.$el.p.modal();
988			// _alertModal.$el.p[0].style.zIndex = 1052; //FIXME
989			_alertModal.$el.p.css("z-index", "999"); //FIXME
990			_alertModal.$el.p.show();
991			_alertModal.$el.p.addClass('on');
992			_alertModal.$el.dim.addClass('on');
993			
994			ModalUtils.adjustPosition();
995			
996			return false;
997		};
998		return {
999			open: function(v, closeCallback, title) {
1000				return _alertModal.alert(v, closeCallback, title);
1001			}
1002		}
1003	})();
1004	/*]]>*/
1005</script>
1005
1006
1007
1008<!-- confirm -->
1009<div id="confirm" class="modal alert" style="display: none;">
1010	<div class="modal-inner">
1011		<a href="#" class="ico close modalClose" data-ele-name="btnCloseAlert">닫기</a>
1012		<div class="modal-header">
1013			<div class="modal-title" data-column-name="title">알림</div>
1014		</div>
1015		<div class="modal-body">
1016			<div data-ele-name="wrapperMessageList">
1017				<p class="desc" data-column-name="message">
1018					loading...
1019				</p>
1020			</div>
1021			<div  data-ele-name="wrapperTemplateItem" style="display: none">
1022				<p class="desc" data-column-name="message">loading...</p>
1023			</div>			
1024		</div>
1025		<div class="modal-footer">
1026			<a href="javascript:void(0)" class="btn natural" data-column-name="btnCancel">Cancel</a>
1027			<a href="javascript:void(0)" class="btn positive modalClose" data-column-name="btnOk">Confirm</a>
1028		</div>
1029	</div>
1030	<div class="modal-dim" id="confirmDim" onclick="(function(){$(this).hide(); $(this).removeClass('on');})(this)"></div>
1031</div>
1032
1033<!-- <div id="confirm" class="md-alert modal fade" tabindex="-1" role="dialog" style="display: none;">
1034	<div class="modal-dialog modal-dialog-centered" role="document">
1035		<div class="modal-content">
1036			<div class="modal-header">
1037				<h5 class="modal-title" data-column-name="title">loading...</h5>
1038				<button type="button" class="close" aria-label="Close" data-ele-name="btnCloseAlert">
1039					<i class="icon-hd-close"></i>
1040				</button>
1041			</div>
1042			<div class="modal-body">
1043				<div class="alert-body">
1044					<div class="alert-cnt" data-ele-name="wrapperMessageList">
1045						<p data-column-name="message">loading...</p>
1046					</div>
1047					<div class="alert-cnt" data-ele-name="wrapperTemplateItem" style="display: none">
1048						<p data-column-name="message">loading...</p>
1049					</div>
1050				</div>
1051			</div>
1052			<div class="modal-footer wide">
1053				<div class="col-6"><button type="button" class="btn btn-lg btn-block btn-light" data-column-name="btnCancel">Cancel</button></div>
1054				<div class="col-6"><button type="button" class="btn btn-lg btn-block btn-secondary" data-column-name="btnOk">Confirm</button></div>
1055			</div>
1056		</div>
1057	</div>
1058</div> -->
1059<script>
1060	/*<![CDATA[*/
1061	var confirmModal = (function(){
1062
1063		var ns = 'confirmModal';
1064
1065		var _confirmModal = {
1066			$el: {
1067				p: null,
1068                $p: null,
1069				title: null,
1070				btnOk: null,
1071				btnCancel: null,
1072				close: null,
1073				wrapperMessageList: null,
1074				wrapperTemplateItem: null
1075			},
1076			confirmCallback: function() {
1077				bts.isDebug() && console.log(ns + '.confirmCallback :: confirm');
1078			},
1079			cancelCallback: function() {
1080				bts.isDebug() && console.log(ns + '.cancelCallback :: cancel');
1081			}
1082		};
1083
1084		_confirmModal.alertInit = function() {
1085
1086            _confirmModal.$el.p = sel('#confirm');
1087			_confirmModal.$el.$p = $('#confirm');
1088            _confirmModal.$el.$dim = $('#confirmDim', _confirmModal.$el.p);
1089			_confirmModal.$el.title = _confirmModal.$el.$p.find('[data-column-name="title"]');
1090			_confirmModal.$el.btnOk = _confirmModal.$el.$p.find('[data-column-name="btnOk"]');
1091			_confirmModal.$el.btnCancel = _confirmModal.$el.$p.find('[data-column-name="btnCancel"]');
1092			_confirmModal.$el.close = _confirmModal.$el.$p.find('[data-ele-name="btnCloseAlert"]');
1093			_confirmModal.$el.wrapperMessageList = _confirmModal.$el.$p.find('[data-ele-name="wrapperMessageList"]');
1094			_confirmModal.$el.wrapperTemplateItem = _confirmModal.$el.$p.find('[data-ele-name="wrapperTemplateItem"]');
1095
1096			var _close = function() {
1097				// _confirmModal.$el.$p[0].style.zIndex = 0; //FIXME
1098				_confirmModal.$el.$p.css("z-index", "0"); //FIXME
1099				_confirmModal.$el.$p.hide();
1100				_confirmModal.$el.$p.removeClass('on');
1101				_confirmModal.$el.$dim.removeClass('on');
1102
1103			};
1104			var _confirm = function() {
1105				// _confirmModal.$el.$p[0].style.zIndex = 0; //FIXME
1106				_close();
1107				if (isFunction(_confirmModal.confirmCallback)) {
1108					_confirmModal.confirmCallback();
1109				}
1110			};
1111			_confirmModal.$el.close[0].onclick = function(e) {
1112				// _confirmModal.$el.$p.modal('hide');
1113				_close();
1114                if (isFunction(_confirmModal.cancelCallback)) {
1115                    _confirmModal.cancelCallback();
1116                }
1117			};
1118
1119			_confirmModal.$el.$p.on('hidden.bs.modal' , function() {
1120				_close();
1121			});
1122			_confirmModal.$el.btnCancel[0].onclick = function(e) {
1123				// _confirmModal.$el.$p.modal('hide');
1124				_close();
1125                if (isFunction(_confirmModal.cancelCallback)) {
1126                    _confirmModal.cancelCallback();
1127                }
1128			};
1129			_confirmModal.$el.btnOk[0].onclick = function(e) {
1130
1131				// _confirmModal.$el.$p.modal('hide');
1132				_close();
1133				_confirm();
1134			};
1135		};
1136		_confirmModal.alertInit();
1137
1138		_confirmModal.alertClear = function() {
1139
1140			_confirmModal.confirmCallback = function() {
1141				bts.isDebug() && console.log(ns + '.confirmCallback :: confirm');
1142			};
1143			_confirmModal.cancelCallback = function() {
1144				bts.isDebug() && console.log(ns + '.cancelCallback :: cancel');
1145			};
1146
1147			_confirmModal.$el.title[0].innerHTML = 'Confirm';
1148			_confirmModal.$el.btnOk[0].innerHTML = 'Confirm';
1149			_confirmModal.$el.btnCancel[0].innerHTML = 'Cancel';
1150
1151			_confirmModal.$el.wrapperMessageList[0].innerHTML = '';
1152		};
1153		_confirmModal.alert = function(v, confirmCallback, cancelCallback, title, confirmBtnText, cancelBtnText) {
1154			// alert(v);
1155
1156			_confirmModal.alertClear();
1157
1158			if (isFunction(confirmCallback)) {
1159
1160				_confirmModal.confirmCallback = confirmCallback;
1161			}
1162			if (isFunction(cancelCallback)) {
1163
1164				_confirmModal.cancelCallback = cancelCallback;
1165			}
1166
1167			if (title) {
1168				_confirmModal.$el.title[0].innerHTML = title;
1169			}
1170			if (confirmBtnText) {
1171				_confirmModal.$el.btnOk[0].innerHTML = confirmBtnText;
1172			}
1173			if (cancelBtnText) {
1174				_confirmModal.$el.btnCancel[0].innerHTML = cancelBtnText;
1175			}
1176
1177			var _el = null;
1178            var _messages;
1179            if (typeof v == 'string') {
1180                var _messages = v ? v.normalize().split('\n') : [''];
1181                resolveEles(_messages, function(_v, i){
1182                    if (_el != null) {
1183                        _confirmModal.$el.wrapperMessageList.append('<br>');
1184                    }
1185                    _el = _confirmModal.$el.wrapperTemplateItem.children()[0].cloneNode();
1186                    _el.innerHTML = _v || _confirmModal.$el.wrapperTemplateItem.children()[0].innerHTML;
1187                    //$(_el).find('[data-column-name="message"]')[0].innerHTML = _v;
1188                    _confirmModal.$el.wrapperMessageList.append(_el);
1189                });
1190            } else if (isEle(v)) {
1191                _confirmModal.$el.wrapperMessageList.append(v);
1192            } else if (isEles(v)) {
1193                _messages = v;
1194                resolveEles(_messages, function(_v, i){
1195                    if (_el != null) {
1196                        _confirmModal.$el.wrapperMessageList.append('<br>');
1197                    }
1198                    _el = _v;
1199                    _confirmModal.$el.wrapperMessageList.append(_el);
1200                });
1201            } else {
1202                _messages = [v];
1203                resolveEles(_messages, function(_v, i){
1204                    if (_el != null) {
1205                        _confirmModal.$el.wrapperMessageList.append('<br>');
1206                    }
1207                    _el = _confirmModal.$el.wrapperTemplateItem.children()[0].cloneNode();
1208                    _el.innerHTML = _v || _confirmModal.$el.wrapperTemplateItem.children()[0].innerHTML;
1209                    //$(_el).find('[data-column-name="message"]')[0].innerHTML = _v;
1210                    _confirmModal.$el.wrapperMessageList.append(_el);
1211                });
1212            }
1213
1214			// _confirmModal.$el.$p.modal();
1215			// _confirmModal.$el.$p[0].style.zIndex = 1052; //FIXME
1216			_confirmModal.$el.$p.css("z-index", "999"); //FIXME
1217			_confirmModal.$el.$p.show();
1218			_confirmModal.$el.$p.addClass('on');
1219			_confirmModal.$el.$dim.addClass('on');
1220
1221			ModalUtils.adjustPosition();
1222			
1223			return false;
1224		};
1225		return {
1226			open: function(v, confirmCallback, cancelCallback, title, confirmBtnText, cancelBtnText) {
1227				return _confirmModal.alert(v, confirmCallback, cancelCallback, title, confirmBtnText, cancelBtnText);
1228			}
1229		}
1230	})();
1231	/*]]>*/
1232</script>
1232
1233
1234
1235
1236
1237
1238
1239<!-- toast -->
1240
1241<!--
1242padding-right: 15px;
1243	display: block;
1244	z-index: 1050;
1245	width: 70%;
1246	height: 60px;
1247	top: 80%;
1248	left: 15%;
1249	overflow: hidden;
1250	max-height: 24px; top: 84%;
1251	max-height: 48px; top: 84%;
1252	max-height: 72px; top: 81%;
1253	max-height: 92px; top: 78%;
1254-->
1255
1256
1257<div id="toast" class="modal toast bottom" style="display: none;">
1258	<div class="modal-inner">
1259		<div class="modal-header" style="display: none;">
1260			<h5 class="modal-title text-center" data-column-name="title">loading...</h5>
1261		</div>
1262
1263		<div class="modal-body">
1264			<div data-ele-name="wrapperMessageList">
1265			</div>
1266			<div data-ele-name="wrapperTemplateItem" style="display: none">
1267				<p data-column-name="message">내용 기획서 참조 부탁드립니다</p>
1268			</div>
1269		</div>
1270	</div>
1271</div>
1272
1273<!-- <div id="toast" class="md-toast modal fade" tabindex="-1" role="dialog" style="display: none;">
1274	<div class="modal-dialog modal-dialog-centered" role="document">
1275		<div class="modal-content">
1276			<div class="modal-header" style="
1277				display: none;
1278			">
1279				<h5 class="modal-title text-center" data-column-name="title">loading...</h5>
1280			</div>
1281			<div class="modal-body">
1282				토스트 내용
1283				<div class="alert-body">
1284					<div class="alert-cnt" data-ele-name="wrapperMessageList">
1285					</div>
1286					<div class="alert-cnt" data-ele-name="wrapperTemplateItem" style="display: none">
1287						<p data-column-name="message">loading...</p>
1288					</div>
1289				</div>
1290			</div>
1291		</div>
1292	</div>
1293</div> -->
1294<!-- alert based -->
1295<!-- <div id="toast" class="md-toast modal fade" tabindex="-1" role="dialog"> -->
1296<!--	 <div class="modal-dialog modal-dialog-centered" role="document"> -->
1297<!--		 <div class="modal-content"> -->
1298<!--			 <div class="modal-header"> -->
1299<!--				 <h5 class="modal-title text-center" data-column-name="title">loading...</h5> -->
1300<!--			 </div> -->
1301<!--			 <div class="modal-body"> -->
1302<!-- 				토스트 내용 -->
1303<!-- 				<div class="alert-body"> -->
1304<!-- 					<div class="alert-cnt" data-ele-name="wrapperMessageList"> -->
1305<!-- 						<p data-column-name="message">loading...</p> -->
1306<!-- 					</div> -->
1307<!-- 					<div class="alert-cnt" data-ele-name="wrapperTemplateItem" style="display: none"> -->
1308<!-- 						<p data-column-name="message">loading...</p> -->
1309<!-- 					</div> -->
1310<!-- 				</div> -->
1311<!--			 </div> -->
1312<!--		 </div> -->
1313<!--	 </div> -->
1314<!-- </div> -->
1315<script>
1316	/*<![CDATA[*/
1317	var toastModal = (function(){
1318		
1319		var ns = 'toastModal';
1320		
1321		var _positionTypes = {
1322			top: 'top',
1323			middle: 'middle',
1324			bottom: 'bottom'
1325		};
1326		
1327		var DEFAULT_POSITION = _positionTypes.bottom;
1328		
1329		var _toastModal = {
1330			$el: {
1331				p: null,
1332				title: null,
1333				wrapperMessageList: null,
1334				wrapperTemplateItem: null
1335			},
1336			set: {
1337				time: bts.set.toastTime,
1338				position: DEFAULT_POSITION
1339			}
1340		};
1341
1342		_toastModal.toastInit = function() {
1343			
1344			_toastModal.$el.p = $('#toast');
1345			_toastModal.$el.title = _toastModal.$el.p.find('[data-column-name="title"]');
1346			_toastModal.$el.wrapperMessageList = _toastModal.$el.p.find('[data-ele-name="wrapperMessageList"]');
1347			_toastModal.$el.wrapperTemplateItem = _toastModal.$el.p.find('[data-ele-name="wrapperTemplateItem"]');
1348			
1349			//_toastModal.$el.p.on('show.bs.modal', _callback);
1350			//_toastModal.$el.p.off('hidden.bs.modal');
1351		};
1352		_toastModal.toastInit();
1353
1354		_toastModal.toastClear = function() {
1355			_toastModal.$el.title[0].innerHTML = 'Toast';
1356			
1357			_toastModal.$el.wrapperMessageList[0].innerHTML = '';
1358			
1359			_toastModal.set.position = DEFAULT_POSITION;
1360			_toastModal.set.time = bts.set.toastTime;
1361		};
1362		_toastModal.toast = function(v, closeCallback, title) {
1363			//alert(v);
1364			
1365			if (title) {
1366				_toastModal.$el.title[0].innerHTML = title;
1367			}
1368			
1369			var _el = null;
1370			var _messages = v ? v.split('\n') : [''];
1371			
1372			_messages.forEach(function(_v, i){
1373				
1374				if (_el == null) {
1375					
1376				} else {
1377					
1378					_toastModal.$el.wrapperMessageList.append('<br>');
1379				}
1380				_el = _toastModal.$el.wrapperTemplateItem.children()[0].cloneNode();
1381				_el.innerHTML = _v || _toastModal.$el.wrapperTemplateItem.children()[0].innerHTML;
1382				_toastModal.$el.wrapperMessageList.append(_el);
1383			});
1384			
1385			// [s] via common.js .on('click','[data-toggle=toast]', ...)
1386			var target = _toastModal.$el.p;
1387			target[0].style.zIndex = 999999; //FIXME
1388			target.show();
1389			target.addClass('on');
1390			var time = _toastModal.set.time;
1391			// 포지션 기능 블락
1392			/*var position = _toastModal.set.position;
1393			switch (position) {
1394				case _positionTypes.top:
1395					target[0].style.top = '5%';
1396					target[0].style.bottom = 'unset';
1397					break;
1398				case _positionTypes.middle:
1399					target[0].style.top = '50%';
1400					target[0].style.bottom = 'unset';
1401					break;
1402				case _positionTypes.bottom:
1403					target[0].style.top = 'unset';
1404					target[0].style.bottom = '42px';
1405					break;
1406				default: break;
1407			}*/
1408			//target[0].style.zIndex = 1051; //modal over;
1409			if (isFunction(closeCallback)) {
1410				target.off().on('hidden.bs.modal', closeCallback);
1411			}
1412// 			target.modal({
1413// 			  backdrop: false
1414// // 				, show: false
1415// // 				, keyboard: true
1416// 			});
1417			setTimeout(function(){
1418				target.removeClass('on');
1419				target[0].style.zIndex = 11; //FIXME
1420			},time);
1421
1422			setTimeout(function(){
1423				target.hide();
1424				$('html').removeClass('overflow');
1425			}, time + 300);
1426			// setTimeout(function(){
1427			// 	target.modal('hide');
1428			// },time);
1429			// [e] via common.js .on('click','[data-toggle=toast]', ...)
1430			
1431			
1432			return false;
1433		};
1434		return {
1435			open: function(v, position, time, closeCallback, title) {
1436				// console.log(">>>toast = ", v, )
1437				_toastModal.toastClear();
1438				
1439				if (isNotEmpty(time)) {
1440					_toastModal.set.time = time || 0;
1441				}
1442				if (isNotEmpty(position)) {
1443					switch (position) {
1444						case _positionTypes.top: break;
1445						case _positionTypes.middle: break;
1446						case _positionTypes.bottom: break;
1447						default :
1448							bts.isDebug() && console.log(ns + '.open :: Invalid position(' + position + '). Choose one --> ' + _positionTypes.join(', '));
1449							position = defaultPosition;
1450							break;
1451					}
1452					_toastModal.set.position = position;
1453				}
1454				return _toastModal.toast(v, closeCallback, title);
1455			},
1456			positionTypes: _positionTypes
1457		}
1458	})();
1459    /*]]>*/
1460</script>
1460
1461
1462
1463<!-- alert2 -->
1464<div id="myModal" class="modal alert" data-backdrop="static" style="display: none;">
1465	<div class="modal-inner">
1466		<a href="#" class="ico close modalClose" data-ele-name="btnCloseAlert">닫기</a>
1467		<div class="modal-header" data-ele-name="header">
1468			<div class="modal-title" data-column-name="title">알림</div>
1469		</div>
1470		<div class="modal-body" data-ele-name="body">
1471			<div class="estimate-txtbox">
1472				<p class="txt1"><span>Successfully Submitted!</span></p>
1473				<p class="txt2"><span>You’ll be contacted by up to<br />3 clinics with a price quote</span></p>
1474				<p class="txt3"><span>You can review your request on My Page.</span></p>
1475			</div>
1476		</div>
1477		<div class="modal-footer">
1478			<a href="javascript:void(0)" class="btn positive modalClose" data-column-name="btnOk"><span>OK</span></a>
1479		</div>
1480	</div>
1481	<div class="modal-dim" id="myModalDim" onclick="(function(){$(this).hide(); $(this).removeClass('on');})(this)"></div>
1482</div>
1483
1484<!-- <div id="myModal" class="modal-base modal fade show min-type" tabindex="-1" role="dialog" data-backdrop="static" style="display: none;">
1485	<div class="modal-dialog modal-dialog-scrollable modal-dialog-centered" role="document">
1486		<div class="modal-content">
1487			<div class="modal-header" data-ele-name="header" style="position: relative; display: none">
1488				<h5 class="modal-title" data-column-name="title">loading...</h5>
1489				<button type="button" class="close" aria-label="Close" data-ele-name="btnCloseAlert">
1490					<i class="icon-hd-close"></i>
1491				</button>
1492			</div>
1493			<div class="modal-body" data-ele-name="body">
1494				<div class="estimate-txtbox">
1495					<p class="txt1"><span th:text="#{estimate.msg.succeesfully.submitted}">상담신청서가 제출되었습니다.</span></p>
1496					<p class="txt2"><span th:utext="#{estimate.msg.reviewing.your.request}">회원님의 신청서를 검토한 병원에서<br />연락드릴 예정입니다.</span></p>
1497					<p class="txt3"><span th:text="#{estimate.msg.requeston.page}">제출하신 상담신청서는 마이페이지에서 확인 가능합니다.</span></p>
1498				</div>
1499			</div>
1500			<div class="modal-footer">
1501				<button type="button" class="btn btn-lg btn-block btn-secondary" data-column-name="btnOk"><span th:text="#{estimate.msg.ok}">확인</span></button>
1502			</div>
1503		</div>
1504	</div>
1505</div> -->
1506<script>
1507    /*<![CDATA[*/
1508    var alertModal2 = (function(){
1509
1510        var ns = 'alertModal2';
1511
1512        var _alertModal = {
1513            el: {
1514                p: null,
1515                $p: null,
1516                title: null,
1517                btnOk: null,
1518                close: null,
1519                header: null,
1520                body: null,
1521                wrapperTemplateItem: null
1522            },
1523            confirmCallback: function() {
1524                bts.isDebug() && console.log(ns + '.confirmCallback :: confirm');
1525            }
1526        };
1527
1528        _alertModal.alertInit = function() {
1529
1530            _alertModal.el.p = sel('#myModal');
1531			_alertModal.el.$dim = $('#myModalDim', '#myModal');
1532            _alertModal.el.$p = $(_alertModal.el.p);
1533            _alertModal.el.title = _alertModal.el.$p.find('[data-column-name="title"]');
1534            _alertModal.el.btnOk = _alertModal.el.$p.find('[data-column-name="btnOk"]');
1535            _alertModal.el.close = _alertModal.el.$p.find('[data-ele-name="btnCloseAlert"]');
1536            _alertModal.el.header = _alertModal.el.$p.find('[data-ele-name="header"]');
1537            _alertModal.el.body = _alertModal.el.$p.find('[data-ele-name="body"]');
1538
1539            var _close = function() {
1540                // _alertModal.el.$p[0].style.zIndex = 0; //FIXME
1541				_alertModal.el.$p.css("z-index", "0"); //FIXME
1542				_alertModal.el.$p.hide();
1543				_alertModal.el.$p.removeClass('on');
1544				_alertModal.el.$dim.removeClass('on');
1545            };
1546            var _confirm = function() {
1547                _alertModal.el.$p[0].style.zIndex = 0; //FIXME
1548                if (isFunction(_alertModal.confirmCallback)) {
1549                    _alertModal.confirmCallback();
1550                }
1551            };
1552            _alertModal.el.close[0].onclick = function(e) {
1553                _alertModal.el.$p.modal('hide');
1554                _close();
1555            };
1556
1557            _alertModal.el.$p.on('hidden.bs.modal' , function() {
1558                _close();
1559            });
1560            _alertModal.el.btnOk[0].onclick = function(e) {
1561                _alertModal.el.$p.modal('hide');
1562                _confirm();
1563            };
1564        };
1565        _alertModal.alertInit();
1566
1567        _alertModal.alertClear = function() {
1568
1569            _alertModal.confirmCallback = function() {
1570                bts.isDebug() && console.log(ns + '.confirmCallback :: confirm');
1571            };
1572
1573            hideEles(_alertModal.el.header[0]);
1574            _alertModal.el.title[0].innerHTML = 'Info';
1575            _alertModal.el.btnOk[0].innerHTML = 'Ok';
1576
1577            _alertModal.el.body[0].innerHTML = '';
1578        };
1579        _alertModal.alert = function(v, confirmCallback, confirmBtnText, title) {
1580
1581            _alertModal.alertClear();
1582
1583            if (isFunction(confirmCallback)) {
1584
1585                _alertModal.confirmCallback = confirmCallback;
1586            }
1587
1588            if (title) {
1589                showEles(_alertModal.el.header[0]);
1590                _alertModal.el.title[0].innerHTML = title;
1591            }
1592            if (confirmBtnText) {
1593                _alertModal.el.btnOk[0].innerHTML = confirmBtnText;
1594            }
1595
1596            _alertModal.el.body[0].innerHTML = v || '';
1597
1598            // _alertModal.el.$p.modal();
1599            // _alertModal.el.$p[0].style.zIndex = 1052; //FIXME
1600			_alertModal.el.$p.css("z-index", "999"); //FIXME
1601			_alertModal.el.$p.show();
1602			_alertModal.el.$p.addClass('on');
1603			_alertModal.el.$dim.addClass('on');
1604			
1605			ModalUtils.adjustPosition();
1606			
1607            return false;
1608        };
1609        return {
1610            open: function(v, confirmCallback, confirmBtnText, title) {
1611                return _alertModal.alert(v, confirmCallback, confirmBtnText, title);
1612            }
1613        }
1614    })();
1615    /*]]>*/
1616</script>
1616
1617
1618<script>
1619    /*<![CDATA[*/
1620    var testConfirmModal = function() {
1621        confirmModal.open($('<div>').html(
1622            '<img src = "https://files.beautycorn.ai/data.dev2/banner_pc/b1f46d585b844266a7e515be1fac3424.png" />')[0]
1623            , function(){ bts.alert('자세히 보기'); }
1624            , function(){ bts.alert('오늘은 보지 않기'); }
1625            , '프로모션','자세히 보기','오늘은 보지 않기');
1626    };
1627    var testAlertModal = function() {
1628        alertModal.open($('<div>').html(
1629            '<img src = "https://files.beautycorn.ai/data.dev2/banner_pc/b1f46d585b844266a7e515be1fac3424.png" />')[0]
1630            , function(){ bts.alert('자세히 보기'); }, '프로모션');
1631    };
1632    var testAlertModal2 = function() {
1633        alertModal2.open('<div class="estimate-txtbox">\n' +
1634				'            <p class="txt1"><span th:text="#{estimate.msg.succeesfully.submitted}">상담신청서가 제출되었습니다.</span></p>\n' +
1635				'            <p class="txt2"><span th:utext="#{estimate.msg.reviewing.your.request}">회원님의 신청서를 검토한 병원에서<br />연락드릴 예정입니다.</span></p>\n' +
1636				'            <p class="txt3"><span th:text="#{estimate.msg.requeston.page}">제출하신 상담신청서는 마이페이지에서 확인 가능합니다.</span></p>\n' +
1637				'        </div>'
1638            , function(){ console.log('alertModal2 eee'); }, 'OKKK', 'Info eee');
1639    };
1640    /*]]>*/
1641</script>
1641
1642
1643
1644    <!-- 로그인 -->
1645
1646    <div id="mdLogin" class="modal page" style="display: none;">
1647        <div class="modal-inner">
1648            <header class="header">
1649                <div class="center">
1650                    <h1>로그인</h1>
1651                </div>
1652                <div class="right">
1653                    <ul class="util">
1654                    <li><a href="#" class="ico close modalClose">닫기</a></li>
1655                    </ul>
1656                </div>
1657            </header>
1658
1659            <div class="modal-body">
1660                <div class="container center-layout">
1661                    <div class="emoji center">
1662                        <img src="/img/logo-symbol.svg" alt="" style="max-width: 80px;">
1663                    </div>
1664                    <h2>Welcome!</h2>
1665
1666                    <div class="form">
1667                        <a href="/login/apple" class="login-btn" data-sns_type="apple" style="display:none;">
1668                            <img src="/img/login-apple.png" alt="">
1669                        </a>
1670                        <a href="/login/kakaotalk" class="login-btn">
1671                            <img src="/img/login-kakao.png" alt="">
1672                        </a>
1673                        <a href="/login/google" class="login-btn">
1674                            <img src="/img/login-google.png" alt="">
1675                        </a>
1676                        <a href="/emailJoin" class="login-btn">
1677                            <img src="/img/login-email.png" alt="">
1678                        </a>
1679
1680                        <div class="aleady">
1681                            <span>Already a member?</span>
1682                            <a href="/emailLogin" class="text-btn">Log in with email</a>
1683                        </div>
1684                    </div>
1685                </div>
1686            </div>
1687        </div>
1688
1689        
1689<script>
1690            /*<![CDATA[*/
1691            if(bts.isIOS()){
1692		    	showEles(sel('[data-sns_type="apple"]'));
1693		    	// hideEles(sel('[data-sns_type="line"]'));
1694		    };
1695            var loginPopModal = (function() {
1696            
1697                var ns = 'loginPopModal';
1698            
1699                var _pEle = sel('#mdLogin');
1700                var _$pEle = $(_pEle);
1701            
1702                var on = function() {
1703                    // _$pEle.modal({
1704                    //     show: true,
1705                    //     keyboard: true
1706                    // });
1707                    _$pEle.css("z-index", "999999"); //FIXME
1708                    _$pEle.show();
1709                    _$pEle.addClass('on');
1710                };
1711
1712                // var close = function() {
1713                //     _$pEle.removeClass('on');
1714                //     _$pEle.css("z-index", "11")
1715                //     _$pEle.hide();
1716                //     $('html').removeClass('overflow');
1717                // };
1718                
1719                var init = function(no) {
1720                    on();
1721                    var fbEventName = "login";
1722                    var fbParams = {method: "groomingjok"};
1723                    logEvent(fbEventName, fbParams);
1724                };
1725            
1726                return {
1727                    init: init
1728                    , on: on
1729                };
1730            })();
1731            /*]]>*/
1732        </script>
1732
1733    </div>
1734    
1735    <!-- <div id="mdLogin" class="modal fade" tabindex="-1" role="dialog" style="display: none;">
1736        <div class="modal-dialog modal-dialog-scrollable modal-dialog-centered" role="document">
1737            <div class="modal-content">
1738                <div class="modal-header">
1739                    <button type="button" class="close" data-dismiss="modal" aria-label="Close">
1740                        <i class="icon-hd-close"></i>
1741                    </button>
1742                </div>
1743                <div class="modal-body">
1744                    <div class="center-block">
1745                        <h2 th:text="#{login.main.txt.welcome}">환영합니다.</h2>
1746                    </div>
1747                    <ul class="social-login">
1748                    	<li class="col" data-sns_type="apple" style="display:none;">
1749                            <a th:href="@{/login/apple}" class="mdlogin-apple">
1750                                <div class="sr-only">애플 계정으로 로그인</div>
1751                            </a>
1752                        </li>                        
1753                        <li class="col" style="display:none;">
1754                            <a th:href="@{/login/facebook}" class="mdlogin-facebook">
1755                                <div th:text="#{login.main.txt.login.by.facebook}" class="sr-only">페이스북으로 로그인</div>
1756                            </a>
1757                        </li>
1758                        <li class="col">
1759                            <a th:href="@{/login/kakaotalk}" class="mdlogin-kakao">
1760                                <div th:text="#{login.main.txt.login.by.kakaotalk}" class="sr-only">카카오톡으로 로그인</div>
1761                            </a>
1762                        </li>
1763                        <li class="col" data-sns_type="line" style="display:none;">
1764                            <a th:href="@{/login/line}" class="mdlogin-line">
1765                                <div th:text="#{login.main.txt.login.by.line}" class="sr-only">라인으로 로그인</div>
1766                            </a>
1767                        </li>
1768                        <li class="col">
1769                            <a th:href="@{/login/google}" class="mdlogin-google">
1770                                <div th:text="#{login.main.txt.login.by.google}" class="sr-only">구글로 로그인</div>
1771                            </a>
1772                        </li>
1773                    </ul>
1774                    <div class="center-block" th:text="#{login.main.txt.or}">또는</div>
1775                    <div class="buttons-group">
1776                        <a th:href="@{/emailJoin}" th:text="#{login.main.txt.join.email}" class="btn btn-block btn-outline-muted">이메일로 회원가입</a>
1777                    </div>
1778                    <div class="d-flex justify-content-between align-items-center">
1779                        <span th:text="#{login.main.txt.already.member}">이미 회원이신가요?</span>
1780                        <a th:href="@{/emailLogin}" th:text="#{login.main.txt.login.by.email}">이메일로 로그인</a>
1781                    </div>
1782                </div>
1783            </div>
1784        </div>
1785
1786    </div> -->
1787    <!-- //로그인 -->
1788
1789
1790	<div class="modal sheet center bg targetCloseProtect autoHieght" data-ele-name="selectSingleModal">
1791		<div class="modal-inner">
1792			<span class="sheet-bar"><!-- X없는 팝업 공통으로 추가 --></span>
1793			<div class="modal-body">
1794				<div class="selectbox single">
1795					<div>
1796						<ul data-ele-name="selectSingleUl">
1797						</ul>
1798					</div>
1799				</div>
1800			</div>
1801		</div>
1802		<div class="modal-dim closeInner" data-ele-name="selectSingleModalDim"></div>
1803	</div>
1804<script>
1805	/*<![CDATA[*/
1806	var selectSingleModal = (function(){
1807		
1808		var _$p = $('[data-ele-name="selectSingleModal"]');
1809		var _selectSingleModal = {
1810			$el: {
1811				modalDiv: $('[data-ele-name="selectSingleModal"]'),
1812				modalDim: $('[data-ele-name="selectSingleModalDim"]',_$p),
1813				swiperSelect: []
1814			},
1815			set: {
1816				time: 300
1817			},
1818			callback: null,
1819			selectObj: null
1820		};
1821
1822		var init = function(selectObj, callback, _selInx) {
1823			if(!_selInx) {
1824				_selInx = 0;
1825			}
1826			btnEvent();
1827			_selectSingleModal.callback = callback;
1828			_selectSingleModal.selectObj = selectObj;
1829
1830			//select box 초기화
1831			$('.selectbox.single').empty();
1832			if(selectObj != null && selectObj.length > 0){
1833				var _html = '';
1834				for(var index in selectObj){
1835					_html += '<div id="select_'+index+'">';
1836					_html += '<ul>';
1837					for(var subIdx in selectObj[index]){
1838						_html += `<li class="swiper-slide ${_selInx == subIdx ? 'active' : ''}" data-v="${selectObj[index][subIdx].val}" data-t="${selectObj[index][subIdx].text}">`;
1839						if(selectObj[index][subIdx].val == 'report'){
1840							_html += '<span data-v="'+ selectObj[index][subIdx].val +'" data-t="'+ selectObj[index][subIdx].text +'"><a href="javascript:void(0)"><em class="red">' + selectObj[index][subIdx].text + '</em></a></span>';
1841						}else{
1842							_html += '<span data-v="'+ selectObj[index][subIdx].val +'" data-t="'+ selectObj[index][subIdx].text +'"><a href="javascript:void(0)">' + selectObj[index][subIdx].text + '</a></span>';
1843						}
1844						_html += '</li>';
1845					}
1846					_html += '</ul>';
1847					_html += '</div>';
1848					$('.selectbox.single').html(_html);
1849				}
1850			}
1851			// sts.hideAppNavi();
1852			_selectSingleModal.$el.modalDiv.show();
1853			_selectSingleModal.$el.modalDim.show();
1854			_selectSingleModal.$el.modalDiv.addClass('on');
1855			setTimeout(function() {
1856				_selectSingleModal.$el.modalDim.addClass('on');
1857		    }, _selectSingleModal.set.time);
1858			_selectSingleModal.$el.modalDiv.css('zIndex', 3001);
1859
1860			$('.swiper-slide', _$p).off().on('click',function() {
1861				var rtnVal = [];
1862				var selectText = $(this).data('t');
1863					rtnVal.push($(this).data('v'));
1864				_selectSingleModal.callback(rtnVal);
1865				_selectSingleModal.$el.modalDim.removeClass('on');
1866				_selectSingleModal.$el.modalDiv.removeClass('on');
1867				_selectSingleModal.$el.modalDiv.hide();
1868				_selectSingleModal.$el.modalDim.hide();
1869				_selectSingleModal.$el.modalDiv.css('zIndex', 0);
1870				// if(sts.getShowNaviCnt() > 0 && selectText != '신고') {
1871				// 	sts.showAppNavi();
1872				// }
1873			});
1874		};
1875
1876		var btnEvent = function () {
1877			$('[data-ele-name="selectSingleModalDim"]', _$p).off().on('click',function() {
1878				_selectSingleModal.$el.modalDim.removeClass('on');
1879				_selectSingleModal.$el.modalDiv.removeClass('on');
1880				_selectSingleModal.$el.modalDiv.hide();
1881				_selectSingleModal.$el.modalDim.hide();
1882				_selectSingleModal.$el.modalDiv.css('zIndex', 0);
1883				// if(sts.getShowNaviCnt() > 0) {
1884				// 	sts.showAppNavi();
1885				// }
1886			});
1887		} 
1888
1889		var _interface = new List();
1890		_interface.init = init;
1891		return _interface;
1892	})();
1893	/*]]>*/
1894</script>
1894
1895
1896
1897
1898<div id="wrap">
1899	<!-- S : header -->
1900	
1901	<!-- S :: header -->
1902    <header class="header type-serach" id="hd" data-ele-name="layerHeaderWrapper">
1903        <div class="left">
1904            <ul class="util">
1905                <li>
1906                    <a 
1907                        href="javascript:void(0)" 
1908                        class="ico back" 
1909                        data-toggle="layer-clse" 
1910                        data-ele-name="modalBack">Back</a></li>
1911            </ul>
1912            <form class="frm-srch" id="frmSrch" action="/search/result">
1913                <div class="serachline">
1914                    <input 
1915                        type="search" 
1916                        class="evt-ico" 
1917                        placeholder="Enter keyword" 
1918                        name="q" 
1919                        value="">
1920                    <span type="reset" class="ico remove" data-ele-name="btnRemoveSearchKeyword" style="display: none; margin-right: 15px;"></span>
1921                    <input type="hidden" name="searchTxPart" value="">
1922                    <input type="hidden" name="searchArea" value="">
1923                </div>
1924            </form>        
1925        </div>
1926        <div class="right" data-ele-name="headerRight">
1927            <ul class="util">
1928                <li>
1929                    <a href="/" class="ico home" data-ele-name="btnHome">Home</a>
1930                </li>
1931            </ul>
1932        </div>
1933
1934		
1934<script>
1935            /*<![CDATA[*/
1936            var layerHeader = (function() {
1937                var _pEle;
1938                var _el = {};
1939
1940                var onRight = function () {
1941                    showEles(_el.headerRight);
1942                };
1943                var offRight = function () {
1944                    hideEles(_el.headerRight);
1945                };
1946                var initEl = function(pEle) {
1947                    _pEle = isEle(pEle) ? sel('[data-ele-name="layerHeaderWrapper"]', pEle)
1948                        : sel('[data-ele-name="layerHeaderWrapper"]');
1949                    _el = {
1950                        p: _pEle,
1951                        modalBack: sel('[data-ele-name="modalBack"]', _pEle),
1952                        headerRight: sel('[data-ele-name="headerRight"]', _pEle),
1953                        btnHome: sel('[data-ele-name="btnHome"]', _pEle),
1954                        _end: ''
1955                    };
1956                    hideEles(_el.btnHome);
1957                    offRight();
1958                };
1959                var initEvent = function(cfg) {
1960                    if (isFunction(cfg.back)) {
1961                        showEles(_el.modalBack);
1962                        _el.modalBack.onclick = function(e) {
1963                            DomUtil.goBack();
1964                            cfg.back(e);
1965                        };
1966                    }
1967                };
1968
1969                var _interface = {};
1970                _interface.getEl = function () {
1971                    return _pEle;
1972                };
1973                _interface.init = function (cfg, pEle) {
1974                    initEl(pEle);
1975                    showEles(_el.btnHome);
1976                    if (isEmptyObj(cfg)) {
1977                        bts.isDebug() && console.log(ns + '.init :: no "cfg". >>\n', cfg, '\n<<');
1978                    } else {
1979                        initEvent(cfg);
1980                    }
1981                    onRight();
1982                };
1983                return _interface;
1984            })();
1985            /*]]>*/
1986		</script>
1986
1987    </header>
1988  
1989	<!-- <header id="hd" data-ele-name="layerHeaderWrapper">
1990		<div class="hd-lt">
1991			<a class="icon-hd-back" data-toggle="layer-clse" data-ele-name="modalBack" th:text="#{common.msg.back}">뒤로 가기</a>
1992		</div>
1993		<form class="frm-srch" id="frmSrch" th:action="${pathSearchResult}">
1994			<input type="search" class="input-srch" th:placeholder="#{gnb.msg.input.title.keyword}" name="q" th:value="${searchKeyword}">
1995			<input type="hidden" name="searchTxPart" th:value="${searchTxPart}">
1996			<input type="hidden" name="searchArea" th:value="${searchArea}">
1997			<button type="reset" class="icon-srch-clear" data-ele-name="btnRemoveSearchKeyword"></button>
1998		</form>
1999		<div class="hd-rt" data-ele-name="headerRight" style="display: none">
2000			<a class="icon-hd-home" data-ele-name="btnHome" style="display: none" th:href="${pathIndex}" th:text="#{common.msg.home}">홈</a>
2001		</div>
2002	</header> -->
2003	<!-- E :: header -->
2004
2005	<!-- E : header -->
2006	
2007	
2008	<div class="lst-wrap" data-ele-name="templateWrapperListItems" style="display: none">
2009		<ul class="lst-default lst-treatment" data-ele-name="templateWrapperEmptyItem" style="display: none">
2010			<li>
2011				<a class="media" href="javascript:void(0)" data-column-name="wrapperLink">
2012					<div class="media-body">
2013						<h4 class="tit"><span data-column-name="title">loading...</span></h4>
2014						<div class="price">Not yet translated</div>
2015					</div>
2016				</a>
2017			</li>
2018		</ul>
2019
2020		<ul data-ele-name="templateWrapperTreatment" style="display: none">
2021			<li>
2022				<a href="javascript:void(0)" data-column-name="wrapperLink" class="item">
2023					<div class="info">
2024						<div class="rep">
2025							<div data-column-name="title">눈매 교정</div>
2026							<span class="badge" data-column-name="surgicalType">비수술</span>
2027						</div>
2028						<div class="desc"><b data-column-name="price">110만원~300만원</b></div>
2029					</div>
2030					<div class="likeView" data-column-name="likeCnt">0</div>
2031					<span class="ico arrow" data-column-name="likeCnt">상세</span>
2032				</a>
2033			</li>
2034		</ul>
2035
2036		<!-- <ul class="lst-default lst-treatment" data-ele-name="templateWrapperTreatment" style="display: none">
2037			<li>
2038				<a class="media" th:href="|javascript:void(0)|" data-column-name="wrapperLink">
2039					<div class="media-body">
2040						<span class="surgery-mark text-secondary" data-column-name="surgicalType">loading...</span>
2041						<h4 class="tit"><span data-column-name="title">loading...</span></h4>
2042						<div class="price">
2043							<strong data-column-name="price">loading...</strong>
2044						</div>
2045						<dl class="dl-meta">
2046							<dt><i class="icon-like" th:text="#{common.msg.like}">좋아요</i></dt>
2047							<dd data-column-name="likeCnt">loading...</dd>
2048						</dl>
2049					</div>
2050				</a>
2051			</li>
2052		</ul> -->
2053
2054		<ul data-ele-name="templateWrapperTreatmentMain" style="display: none">
2055			<li class="swiper-slide">
2056				<a href="javascript:void(0)" class="item" data-column-name="wrapperLink">
2057					<img 
2058						data-column-name="image"
2059						src="https://files.beautysocial.io/data.dev/txcollect/a115f5216f9c4446a7cdfc98dbee7551.png" 
2060						alt="">
2061				</a>
2062			</li>
2063        </ul>
2064		<!-- <ul class="lst-default lst-maintreatment" data-ele-name="templateWrapperTreatmentMain" style="display: none">
2065	        <li>
2066	            <a class="media" th:href="|javascript:void(0)|" data-column-name="wrapperLink">
2067	                <img data-column-name="image" src="" alt="" class="img-fluid" />
2068	            </a>
2069	        </li>
2070        </ul> -->
2071
2072		<ul data-ele-name="templateWrapperDoctor2" style="display: none">
2073			<li class="swiper-slide">
2074				<a href="javascript:void(0)" class="infobox-item" data-column-name="wrapperLink">
2075					<div class="inner">
2076						<ul class="cta-plus">
2077							<li class="doctor">
2078								<div class="item">
2079									<div
2080										data-column-name="image" 
2081										class="img">
2082										<div class="talk-info">
2083											<div class="desc">
2084												<div class="score" data-column-name="evalPoint">4.9</div>
2085											</div>
2086										</div>
2087									</div>
2088								</div>
2089							</li>
2090						</ul>
2091						<div class="info">
2092							<div class="tit" data-column-name="title">엔젤미의원</div>
2093							</div>
2094						<span class="ico arrow">더 보기</span>
2095					</div>
2096				</a>
2097			</li>
2098		</ul>
2099
2100		<ul data-ele-name="templateWrapperDoctor" style="display: none">
2101			<li>
2102				<a href="javascript:void(0)" class="item" data-column-name="wrapperLink">
2103					<div class="thumbnail profile">
2104						<img 
2105							data-column-name="image"
2106							src="https://files.beautysocial.io/data.dev/doctor/7c94fc68af084459ab7c652bf2bff0bd.jpg" alt="">
2107						<img 
2108							data-column-name="image2"
2109							class="shadow" src="https://files.beautysocial.io/data.dev/doctor/7c94fc68af084459ab7c652bf2bff0bd.jpg"
2110							alt="">
2111					</div>
2112					<div class="info">
2113						<div class="rep">
2114							<div data-column-name="title">백승만 원장</div>
2115						</div>
2116						<div class="side">
2117							<div class="name" data-column-name="major">마취과 전문의</div>
2118							<div class="desc" data-column-name="hospitalNm">엔젤미의원</div>
2119							<div class="score" data-column-name="evalPoint">5.0</div>
2120						</div>
2121						<ul class="list-cte" data-ele-name="txPart">
2122						</ul>
2123					</div>
2124					<span class="ico arrow">상세</span>
2125				</a>
2126			</li>
2127		</ul>
2128
2129		<!-- <ul class="lst-default lst-people" data-ele-name="templateWrapperDoctor" style="display: none">
2130			<li>
2131				<a class="media" th:href="|javascript:void(0)|" data-column-name="wrapperLink">
2132					<div class="rank_wrap" data-ele-name="rank" style="display: none">
2133						<p class="rank" data-column-name="rank">loading...</p>
2134						<p class="ranking_num" data-column-name="rankChangeWrapper">
2135							<i class="icon-rank"></i><span data-column-name="rankChange" style="display: none">loading...</span>
2136						</p>
2137					</div>
2138					<div class="profile">
2139						<i class="img" data-column-name="image" th:style="|background-image: url('@{/img/profile-doctor.png}');|"></i>
2140					</div>
2141					<div class="media-body">
2142						<span class="surgery-mark" data-column-name="major">loading...</span>
2143						<h4 class="tit"><span data-column-name="title">loading...</span></h4>
2144						<div class="sub-tit" data-column-name="hospitalNm">loading...</div>
2145						<ul class="lst-site" data-ele-name="txPart">
2146							<li>loading...</li>
2147						</ul>
2148						<div class="individual-star">
2149                            <div class="star-wrap">
2150                                <i class="icon-star"></i>
2151                                <i class="icon-star"></i>
2152                                <i class="icon-star"></i>
2153                                <i class="icon-star"></i>
2154                                <i class="icon-star"></i>
2155                                <span class="star" style="width: 0" data-column-name="starWidth">
2156                                    <i class="icon-star active"></i>
2157                                    <i class="icon-star active"></i>
2158                                    <i class="icon-star active"></i>
2159                                    <i class="icon-star active"></i>
2160                                    <i class="icon-star active"></i>
2161                                </span>
2162                            </div>
2163                        </div>
2164                        <span class="score-val" data-column-name="evalPoint">
2165                            loading...
2166                        </span>
2167					</div>
2168				</a>
2169			</li>
2170		</ul> -->
2171
2172		<ul data-ele-name="templateWrapperHospital" style="display: none">
2173			<li>
2174                <a href="javascript:void(0)" class="item" data-column-name="wrapperLink">
2175					<div class="rank_wrap" data-ele-name="rank" style="display: none">
2176						<p class="rank" data-column-name="rank">loading...</p>
2177						<p class="ranking_num" data-column-name="rankChangeWrapper">
2178							<i class="icon-rank"></i><span data-column-name="rankChange" style="display: none">loading...</span>
2179						</p>
2180					</div>
2181					<div class="thumbnail profile">
2182						<img
2183							data-column-name="image" 
2184							src="https://files.beautysocial.io/data.dev/prov/873fb7538ea34acea91678f4be740174.png"
2185							alt="">
2186						<img 
2187							data-column-name="image2"
2188							class="shadow" 
2189							src="https://files.beautysocial.io/data.dev/prov/873fb7538ea34acea91678f4be740174.png"
2190							alt="">
2191					
2192					</div>
2193					<div class="info">
2194						<div class="rep">
2195							<div data-column-name="title">엠레드XY</div>
2196						</div>
2197						<div class="side">
2198							<!-- <div class="desc">서울특별시 강남역</div> -->
2199							<!-- <span data-ele-name="locationInfo"> -->
2200								<div class="desc" data-column-name="address">loading...</div> 
2201								<em class="loacation" data-column-name="areaNm" style="display: none">loading...</em>
2202							<!-- </span> -->
2203							<div class="score" data-column-name="evalPoint">5.0</div>
2204						</div>
2205						<ul class="list-cte" data-ele-name="txPart">
2206						</ul>
2207					</div>
2208                  	<span class="ico arrow">상세</span>
2209                </a>
2210              </li>
2211		</ul>
2212
2213		<!-- <ul class="lst-default lst-hospital" data-ele-name="templateWrapperHospital" style="display: none">
2214			<li>
2215				<a class="media" th:href="|javascript:void(0)|" data-column-name="wrapperLink">
2216					<div class="rank_wrap" data-ele-name="rank" style="display: none">
2217						<p class="rank" data-column-name="rank">loading...</p>
2218						<p class="ranking_num" data-column-name="rankChangeWrapper">
2219							<i class="icon-rank"></i><span data-column-name="rankChange" style="display: none">loading...</span>
2220						</p>
2221					</div>
2222					<div class="profile">
2223						<i class="img" data-column-name="image" th:style="|background-image: url('@{/img/profile-hospital.png}');|"></i>
2224					</div>
2225					<div class="media-body" style="
2226							word-break: break-word
2227					">
2228						<h4 class="tit" data-column-name="title">loading...</h4>
2229						<div class="sub-tit" data-ele-name="locationInfo"><span data-column-name="address">loading...</span> <span data-column-name="areaNm" style="display: none">loading...</span></div>
2230						<ul class="lst-site" data-ele-name="txPart">
2231							<li>loading...</li>
2232						</ul>
2233						<div class="individual-star">
2234                            <div class="star-wrap">
2235                                <i class="icon-star"></i>
2236                                <i class="icon-star"></i>
2237                                <i class="icon-star"></i>
2238                                <i class="icon-star"></i>
2239                                <i class="icon-star"></i>
2240                                <span class="star" style="width: 0" data-column-name="starWidth">
2241                                    <i class="icon-star active"></i>
2242                                    <i class="icon-star active"></i>
2243                                    <i class="icon-star active"></i>
2244                                    <i class="icon-star active"></i>
2245                                    <i class="icon-star active"></i>
2246                                </span>
2247                            </div>
2248                        </div>
2249                        <span class="score-val" data-column-name="evalPoint">
2250                            loading...
2251                        </span>
2252					</div>
2253				</a>
2254			</li>
2255		</ul> -->
2256		
2257		<ul class="lst-default lst-hospital" data-ele-name="templateCommonRankingSelected" style="display: none">
2258			<li class="ranking_info">
2259	            <a href="javascript:void(0)" data-column-name="rankingSelected">
2260	                <span>How is GroomingJok Ranking selected?</span> <i class="xi-angle-right"></i>
2261	            </a>
2262        	</li>
2263        </ul>
2264
2265		<ul data-ele-name="templateWrapperEvent" style="display: none">
2266			<li>
2267				<a href="javascript:void(0)" class="item" data-column-name="wrapperLink">
2268					<div class="thumbnail">
2269						<img data-column-name="image" src="https://files.beautysocial.io/data.dev/event_detail/30d73c58bc854ff2985e7e6de29b31e4.jpg" alt="">
2270						<!-- 이벤트 썸네일 이미지를 가져오는데 디자인을 위해 shadow에도 한번 더 가져와주세요 -->
2271						<img data-column-name="image2" class="shadow" src="https://files.beautysocial.io/data.dev/event_detail/30d73c58bc854ff2985e7e6de29b31e4.jpg"
2272							alt="">
2273					</div>
2274					<div class="info">
2275						<div class="tit" data-column-name="title">젠틀맥스프로플러스 제모 1회 특가!</div>
2276						<div class="desc" data-column-name="subTitle">
2277							윤곽주사로 얼굴형을 갸름하고 V라인을 찾고 또 찾고 찾아보자
2278						</div>
2279						<div class="side">
2280							<div class="name" data-column-name="name">엔젤미의원</div>
2281							<div class="score" data-column-name="evalPoint">5.0</div>
2282							<em class="loacation" data-column-name="address">강남역</em>
2283						</div>
2284						<div class="rep">
2285							<span class="sale" data-column-name="discountedPercentage">46%</span>
2286							<div data-column-name="discountedPrice">6.9만원</div>
2287							<span class="before" data-column-name="price">12.9만원</span>
2288						</div>
2289					</div>
2290				</a>
2291			</li>
2292
2293			<!-- <li>
2294	            <a class="media" th:href="|javascript:void(0)|" data-column-name="wrapperLink">
2295	                <div class="profile rect">
2296	                    <i class="img" data-column-name="image" th:style="|background-image: url(@{/img/profile-hospital.png});|"></i>
2297	                </div>
2298	                <div class="media-body">
2299	                    <h4 class="tit" data-column-name="title">loading...</h4>
2300	                    <div class="sub-tit" data-column-name="subTitle">loading...</div>
2301	                    <div class="naming-tag"><bs data-column-name="name">loading...</bs><span class="station" data-column-name="address">loading...</span></div>
2302	                    <div class="star-box">
2303	                        <div class="individual-star">
2304	                            <div class="star-wrap">
2305	                                <i class="icon-star"></i>
2306	                                <i class="icon-star"></i>
2307	                                <i class="icon-star"></i>
2308	                                <i class="icon-star"></i>
2309	                                <i class="icon-star"></i>
2310	                                <span class="star" style="width: 0" data-column-name="starWidthMain">
2311	                                    <i class="icon-star active"></i>
2312	                                    <i class="icon-star active"></i>
2313	                                    <i class="icon-star active"></i>
2314	                                    <i class="icon-star active"></i>
2315	                                    <i class="icon-star active"></i>
2316	                                </span>
2317	                            </div>
2318	                        </div>
2319	                        <span class="score-val" data-column-name="evalPoint">
2320	                           loading...
2321	                        </span>
2322	                    </div>
2323	
2324	                    <strong class="text-secondary" data-column-name="discountedPercentageStrong"><span data-column-name="discountedPercentage">0%</span></strong>
2325	                    <strong class="text-dark"><span data-column-name="discountedPrice">loading...</span><s class="price" data-column-name="price">loading...</s></strong>
2326	                </div>
2327	            </a>
2328	        </li> -->
2329		</ul>
2330		
2331		<ul class="lst-common mt17" data-ele-name="templateWrapperEvent2" style="display: none">
2332			<li class="hot-event">
2333	            <a class="media" href="javascript:void(0)" data-column-name="wrapperLink">
2334	                <div class="profile rect">
2335	                    <i class="img" data-column-name="image" style="background-image: url(/img/profile-hospital.png);"></i>
2336	                </div>
2337	                <div class="media-body">
2338	                    <h4 class="tit" data-column-name="title">loading...</h4>
2339	                    <div class="sub-tit" data-column-name="subTitle">loading...</div>
2340	                    <div class="naming-tag"><bs data-column-name="name">loading...</bs><span class="station" data-column-name="address">loading...</span></div>
2341	                    <div class="star-box">
2342	                        <div class="individual-star">
2343	                            <div class="star-wrap">
2344	                                <i class="icon-star"></i>
2345	                                <i class="icon-star"></i>
2346	                                <i class="icon-star"></i>
2347	                                <i class="icon-star"></i>
2348	                                <i class="icon-star"></i>
2349	                                <span class="star" style="width: 0" data-column-name="starWidthMain">
2350	                                    <i class="icon-star active"></i>
2351	                                    <i class="icon-star active"></i>
2352	                                    <i class="icon-star active"></i>
2353	                                    <i class="icon-star active"></i>
2354	                                    <i class="icon-star active"></i>
2355	                                </span>
2356	                            </div>
2357	                        </div>
2358	                        <span class="score-val" data-column-name="evalPoint">
2359	                           loading...
2360	                        </span>
2361	                    </div>
2362	
2363	                    <strong class="text-secondary" data-column-name="discountedPercentageStrong"><span data-column-name="discountedPercentage">0%</span></strong>
2364	                    <strong class="text-dark"><span data-column-name="discountedPrice">loading...</span><s class="price" data-column-name="price">loading...</s></strong>
2365	                </div>
2366	            </a>
2367	        </li>
2368		</ul>
2369		
2370		<ul class="lst-common mt17" data-ele-name="templateWrapperEventModel" style="display: none">
2371			<li>
2372				<a href="javascript:void(0)" class="item" data-column-name="wrapperLink">
2373					<div class="thumbnail">
2374						<img data-column-name="image" src="" alt="">
2375					</div>
2376					<div class="info">
2377						<div class="tit" data-column-name="title">젠틀맥스프로플러스 제모 1회 특가!</div>
2378						<div class="desc" data-column-name="subTitle">
2379							윤곽주사로 얼굴형을 갸름하고 V라인을 찾고 또 찾고 찾아보자
2380						</div>
2381						<div class="side">
2382							<div class="name" data-column-name="name">엔젤미의원</div>
2383							<div class="score" data-column-name="evalPoint">5.0</div>
2384							<em class="loacation" data-column-name="address">강남역</em>
2385						</div>
2386						<!-- <div class="rep">
2387							<span class="sale" data-column-name="discountedPercentage">46%</span>
2388							<div data-column-name="discountedPrice">6.9만원</div>
2389							<span class="before" data-column-name="price">12.9만원</span>
2390						</div> -->
2391					</div>
2392				</a>
2393			</li>
2394			
2395			
2396			<!-- <li class="no-price">
2397	            <a class="media" th:href="|javascript:void(0)|" data-column-name="wrapperLink">
2398	                <div class="profile rect">
2399	                    <i class="img" data-column-name="image" th:style="|background-image: url(@{/img/profile-hospital.png});|"></i>
2400	                </div>
2401	                <div class="media-body">
2402	                    <h4 class="tit" data-column-name="title">loading...</h4>
2403	                    <div class="sub-tit" data-column-name="subTitle">loading...</div>
2404	                    <div class="naming-tag"><bs data-column-name="name">loading...</bs><span class="station" data-column-name="address">loading...</span></div>
2405	                    <div class="star-box">
2406	                        <div class="individual-star">
2407	                            <div class="star-wrap">
2408	                                <i class="icon-star"></i>
2409	                                <i class="icon-star"></i>
2410	                                <i class="icon-star"></i>
2411	                                <i class="icon-star"></i>
2412	                                <i class="icon-star"></i>
2413	                                <span class="star" style="width: 0" data-column-name="starWidthMain">
2414	                                    <i class="icon-star active"></i>
2415	                                    <i class="icon-star active"></i>
2416	                                    <i class="icon-star active"></i>
2417	                                    <i class="icon-star active"></i>
2418	                                    <i class="icon-star active"></i>
2419	                                </span>
2420	                            </div>
2421	                        </div>
2422	                        <span class="score-val" data-column-name="evalPoint">
2423	                           loading...
2424	                        </span>
2425	                    </div>
2426	                </div>
2427	            </a>
2428	        </li> -->
2429		</ul>
2430		
2431		<ul class="lst-default" data-ele-name="templateWrapperSkinCare" style="display: none">
2432			<li data-ele-name="templateWrapperSkinCareLi">
2433	            <a href="javascript:void(0)" data-column-name="wrapperLink1" class="ico-cart">담기</a>
2434	            <a href="javascript:void(0)" data-column-name="wrapperLink2" class="media">
2435	                <div class="profile rect">
2436	                    <i class="img" data-column-name="image" style="background-image: url(/img/profile-hospital.png);"></i>
2437	                </div>
2438	                <div class="media-body">
2439	                    <h4 class="tit text-truncate" data-column-name="productName">loading...</h4>
2440	                    <div class="sub-tit" data-column-name="brandName">loading...</div>
2441	                    <!-- <div class="naming-tag">
2441&nbsp;</div> -->
2442	                    <div class="star-box">
2443	                        <div class="individual-star">
2444	                            <div class="star-wrap">
2445	                                <i class="icon-star"></i>
2446	                                <i class="icon-star"></i>
2447	                                <i class="icon-star"></i>
2448	                                <i class="icon-star"></i>
2449	                                <i class="icon-star"></i>
2450	                                <span class="star" style="width: 0" data-column-name="starWidthMain">
2451	                                    <i class="icon-star active"></i>
2452	                                    <i class="icon-star active"></i>
2453	                                    <i class="icon-star active"></i>
2454	                                    <i class="icon-star active"></i>
2455	                                    <i class="icon-star active"></i>
2456	                                </span>
2457	                            </div>
2458	                        </div>
2459	                        <span class="score-val">
2460                                <bs data-column-name="evalPoint">loading...</bs>
2461                            </span>
2462	                        <!-- <dl class="dl-meta">
2463	                            <dd><em data-column-name="evalPoint">loading...</em>(<bs data-column-name="evalCnt">loading...</bs>)</dd>
2464	                        </dl> -->
2465	                    </div>
2466	                    <div>
2467	                        <strong class="text-secondary" data-column-name="discountedPercentage">loading...&#37;</strong>
2468	                        <strong class="text-dark"><span data-column-name="discountedPrice"></span>
2469	                            <s class="price" data-column-name="price">loading...</s>
2470	                        </strong>
2471	                    </div>
2472	
2473	                </div>
2474	            </a>
2475	        </li>
2476		</ul>
2477
2478		<ul data-ele-name="templateWrapperEvaluation" style="display: none">
2479			<li data-ele-name="templateWrapperEvaluationLiUser">
2480                <a href="javascript:void(0)" class="item">
2481					<div class="grid-div">
2482						<div class="left">
2483							<div class="profile">
2484								<div 
2485									data-column-name="profileImg"
2486									class="img"
2487									style="background-image: url(https://files.beautysocial.io/data.dev/profile/e44150e70e864eaca0b469db02b18003.png);">
2488								</div>
2489								<div class="name" data-column-name="name">Forest</div>
2490								<div class="date" data-column-name="date">2024.11.19</div>
2491							</div>
2492						</div>
2493						<div class="right">
2494							<div class="score" data-column-name="point">0.0</div>
2495						</div>
2496					</div>
2497					<p class="desc normal" data-column-name="content">
2498					</p>
2499				</a>
2500			</li>
2501			<li class="admin" data-ele-name="templateWrapperEvaluationLiProv">
2502				<div class="comment-item" data-ele-name="templateWrapperEvaluationProv" style="display: none">
2503					<div class="comment-head">
2504						<div class="profile-id">
2505							Clinic administrator
2506							<span class="date" data-column-name="provDate">loading...</span>
2507						</div>
2508					</div>
2509					<div class="comment-body-admin">
2510						<p data-column-name="provContent">
2511						loading...
2512						</p>
2513					</div>
2514				</div>
2515			</li>
2516		</ul>
2517		
2518		<!-- <ul class="lst-default lst-evaluation" data-ele-name="templateWrapperEvaluation" style="display: none">
2519			<li data-ele-name="templateWrapperEvaluationLiUser">
2520				<div class="comment-item">
2521					<div class="comment-head">
2522						<div class="left">
2523							<div class="profile">
2524								<i class="img" data-column-name="profileImg" style="background-image:url('/img/profile.png');"></i>
2525							</div>
2526							<span class="profile-id" data-column-name="name">loading...</span>
2527								<div class="individual-star">
2528									<div class="star_wrap">
2529	                                     <i data-column-name="star1" class="icon-star"></i>
2530	                                     <i data-column-name="star2" class="icon-star"></i>
2531	                                     <i data-column-name="star3" class="icon-star"></i>
2532	                                     <i data-column-name="star4" class="icon-star"></i>
2533	                                     <i data-column-name="star5" class="icon-star"></i>
2534	                                </div>
2535                                </div>
2536                                <span class="score-val">
2537                                	<span data-column-name="point">loading...</span>
2538                                </span>
2539						</div>
2540						<div class="right">
2541							<span class="date" data-column-name="date">loading...</span>
2542						</div>
2543						<div class="txt d-flex justify-content-between" style="display: none">
2544                        	<a th:href="|javascript:void(0)|" data-ele-name="reportModal" class="text-link text-muted" style="display: none">신고하기</a>
2545                        </div>
2546                   </div>
2547						<div class="comment-body" data-column-name="content">
2548							loading...
2549						</div>
2550				</div>
2551			</li>
2552			<li class="admin" data-ele-name="templateWrapperEvaluationLiProv">
2553				<div class="comment-item" data-ele-name="templateWrapperEvaluationProv" style="display: none">
2554					<div class="comment-head">
2555						<div class="profile-id">
2556							<th:block th:text="#{evaluation.msg.clinic.administrator}">병원 관리자</th:block>
2557							<span class="date" data-column-name="provDate">loading...</span>
2558						</div>
2559					</div>
2560					<div class="comment-body-admin">
2561						<p data-column-name="provContent">
2562						loading...
2563						</p>
2564					</div>
2565				</div>
2566			</li>
2567		</ul> -->
2568
2569
2570		<ul data-ele-name="templateWrapperTwoEvaluation" style="display: none;">
2571			<li class="swiper-slide" data-ele-name="templateWrapperTwoEvaluationUser" style="max-height: 158px;">
2572				<a href="javascript:void(0)" class="item" data-column-name="templateCommentItem">
2573					<div class="grid-div">
2574						<div class="left">
2575							<div class="profile">
2576								<div 
2577									data-column-name="profileImg"
2578									class="img"
2579									style="background-image: url(https://files.beautysocial.io/data.dev/profile/e44150e70e864eaca0b469db02b18003.png);">
2580								</div>
2581								<div class="name" data-column-name="name">Forest</div>
2582								<div class="date" data-column-name="date">2024.11.19</div>
2583							</div>
2584						</div>
2585						<div class="right">
2586							<div class="score" data-column-name="point">5.0</div>
2587						</div>
2588					</div>
2589					<!-- <div class="swiper slideReviewAttach">
2590						<ul class="swiper-wrapper">
2591						<li class="swiper-slide">
2592							<div class="picture"
2593							style="background-image: url(https://files.beautysocial.io/data.dev/board/a72c9399fe884a36a5392c85661d290e.jpeg);">
2594							</div>
2595						</li>
2596						<li class="swiper-slide">
2597							<div class="picture"
2598							style="background-image: url(https://files.beautysocial.io/data.dev/board/99a4ba9105fa432aacb8b5f62886b74e.jpeg);">
2599							</div>
2600						</li>
2601						</ul>
2602						<div class="swiper-pagination"></div>
2603					</div> -->
2604					<p class="desc" data-column-name="content">
2605						얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부광채 광채피부얼굴 전체 제모, 크라이오 진정관부광채 광채피부얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부피부피부피부
2606					</p>
2607				</a>
2608			</li>
2609			<!-- <li data-ele-name="templateWrapperTwoEvaluationUser">
2610				<div class="item" data-column-name="templateCommentItem">
2611					<div class="comment-head grid-div">
2612						<div class="left">
2613							<div class="profile">
2614								<div 
2615									class="img"
2616									data-column-name="profileImg" 
2617									style="background-image: url(https://files.beautysocial.io/data.dev/profile/e44150e70e864eaca0b469db02b18003.png);">
2618								</div>
2619								<div class="name" data-column-name="name"></div>
2620								<div class="score" data-column-name="point">5.0</div>
2621								<div class="date" data-column-name="date"></div>
2622							</div>
2623						</div>
2624					</div>
2625					<div class="comment-body">
2626						<p class="desc" data-column-name="content">
2627						얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부광채 광채피부얼굴 전체 제모, 크라이오 진정관부광채 광채피부얼굴 전체
2628						제모, 크라이오 진정관리, 파스틀 톤 피부피부피부피부
2629						</p>
2630					</div>
2631				</div>
2632			</li> -->
2633			<li class="admin" data-ele-name="templateWrapperTwoEvaluationProv"> <!--병원 관리자-->
2634				<div class="item">
2635					<div class="comment-head">
2636						<span class="profile-id">Clinic administrator <span class="date" data-column-name="date">loading...</span></span>
2637					</div>
2638					<div class="comment-body">
2639						<p data-column-name="content">
2640							loading...
2641						</p>
2642					</div>
2643				</div>
2644			</li>
2645		</ul>
2646
2647		<!-- <ul class="lst-comments" data-ele-name="templateWrapperTwoEvaluation" style="display: none">
2648			<li data-ele-name="templateWrapperTwoEvaluationUser">
2649				<div class="comment-item">
2650					<div class="comment-head">
2651						<div class="left">
2652							<div class="profile">
2653								<i class="img" data-column-name="profileImg" style="background-image:url('/img/profile.png');"></i>
2654							</div>
2655								<span class="profile-id"><bs data-column-name="name">loading...</bs></span>
2656							<div class="individual-star">
2657                                <div class="star_wrap">
2658                                     <i data-column-name="star1" class="icon-star"></i>
2659                                     <i data-column-name="star2" class="icon-star"></i>
2660                                     <i data-column-name="star3" class="icon-star"></i>
2661                                     <i data-column-name="star4" class="icon-star"></i>
2662                                     <i data-column-name="star5" class="icon-star"></i>
2663                                 </div>
2664                             </div>
2665                             <span class="score-val">
2666                                <span data-column-name="point">loading...</span>
2667                             </span>
2668                        </div>
2669                        <div class="right">
2670                        	<span class="date" data-column-name="date">2019.11.21</span>
2671                        </div>
2672                    </div>
2673					<div class="comment-body">
2674						<div class="comment-body-inner" data-column-name="comment-body-inner">
2675							<p data-column-name="content" class="textover">
2676								loading...
2677							</p>
2678							<a th:href="|javascript:void(0)|" class="textover-more" data-column-name="textover-more">...<th:block th:text="#{common.msg.more}">더보기</th:block></a>
2679						</div>
2680					</div>
2681				</div>
2682			</li>
2683			<li class="admin" data-ele-name="templateWrapperTwoEvaluationProv">
2684				<div class="comment-item">
2685					<div class="comment-head">
2686						<span class="profile-id"><th:block th:text="#{evaluation.msg.clinic.administrator}">병원 관리자</th:block> <span class="date" data-column-name="date">loading...</span></span>
2687					</div>
2688					<div class="comment-body-admin">
2689						<p data-column-name="content">
2690							loading...
2691						</p>
2692					</div>
2693				</div>
2694			</li>
2695		</ul> -->
2696
2697		<ul data-ele-name="templateWrapperTwoEvaluationEvent" style="display: none">
2698			<li class="swiper-slide" data-ele-name="templateWrapperTwoEvaluationUserEvent" style="max-height: 158px;">
2699				<a href="javascript:void(0)" class="item" data-column-name="templateCommentItem">
2700					<div class="grid-div">
2701						<div class="left">
2702							<div class="profile">
2703								<div 
2704									data-column-name="profileImg"
2705									class="img"
2706									style="background-image: url(https://files.beautysocial.io/data.dev/profile/e44150e70e864eaca0b469db02b18003.png);">
2707								</div>
2708								<div class="name" data-column-name="name">Forest</div>
2709								<div class="date" data-column-name="date">2024.11.19</div>
2710							</div>
2711						</div>
2712						<div class="right">
2713							<div class="score" data-column-name="point">5.0</div>
2714						</div>
2715					</div>
2716					<p class="desc" data-column-name="content">
2717						얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부광채 광채피부얼굴 전체 제모, 크라이오 진정관부광채 광채피부얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부피부피부피부
2718					</p>
2719				</a>
2720			</li>
2721			<li class="swiper-slide" data-ele-name="templateWrapperTwoEvaluationProvEvent" style="max-height: 158px;"> <!--병원 관리자-->
2722				<a href="javascript:void(0)" class="item">
2723					<div class="grid-div">
2724						<div class="left">
2725							<div class="profile">
2726								<div
2727									data-column-name="profileImg"
2728									class="img"
2729									style="display: none; background-image: url(https://files.beautysocial.io/data.dev/profile/e44150e70e864eaca0b469db02b18003.png);">
2730								</div>
2731								<div class="name" data-column-name="name">병원 관리자</div>
2732								<div class="date" data-column-name="date">2024.11.19</div>
2733							</div>
2734						</div>
2735						<div class="right">
2736							<div class="score" data-column-name="point" style="display: none;">5.0</div>
2737						</div>
2738					</div>
2739					<p class="desc" data-column-name="content">
2740						얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부광채 광채피부얼굴 전체 제모, 크라이오 진정관부광채 광채피부얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부피부피부피부
2741					</p>
2742				</a>
2743
2744				<!-- <div class="item">
2745					<div class="comment-head">
2746						<span class="profile-id"><th:block th:text="#{evaluation.msg.clinic.administrator}">병원 관리자</th:block> <span class="date" data-column-name="date">loading...</span></span>
2747					</div>
2748					<div class="comment-body">
2749						<p data-column-name="content">
2750							loading...
2751						</p>
2752					</div>
2753				</div> -->
2754			</li>
2755		</ul>
2756		
2757		<!-- <ul class="lst-comments" data-ele-name="templateWrapperTwoEvaluationEvent" style="display: none">
2758			<li data-ele-name="templateWrapperTwoEvaluationUserEvent">
2759				<div class="comment-item">
2760					<div class="comment-head">
2761						<div class="left">
2762							<div class="profile">
2763								<i class="img" data-column-name="profileImg" style="background-image:url('/img/profile.png');"></i>
2764							</div>
2765								<span class="profile-id"><bs data-column-name="name">loading...</bs></span>
2766							<div class="individual-star">
2767                                <div class="star_wrap">
2768                                     <i data-column-name="star1" class="icon-star"></i>
2769                                     <i data-column-name="star2" class="icon-star"></i>
2770                                     <i data-column-name="star3" class="icon-star"></i>
2771                                     <i data-column-name="star4" class="icon-star"></i>
2772                                     <i data-column-name="star5" class="icon-star"></i>
2773                                 </div>
2774                             </div>
2775                             <span class="score-val">
2776                                <span data-column-name="point">loading...</span>
2777                             </span>
2778						</div>		
2779                        <div class="right">
2780                        	<span class="date" data-column-name="date">2019.11.21</span>
2781                        </div>
2782                    </div>
2783					<div class="comment-body">
2784						<div class="comment-body-inner" data-column-name="comment-body-inner">
2785							<p data-column-name="content" class="textover">
2786								loading...
2787							</p>
2788							<a th:href="|javascript:void(0)|" class="textover-more" data-column-name="textover-more">...<th:block th:text="#{common.msg.more}">더보기</th:block></a>
2789						</div>
2790					</div>
2791				</div>
2792			</li>
2793			<li class="admin" data-ele-name="templateWrapperTwoEvaluationProvEvent">
2794				<div class="comment-item">
2795					<div class="comment-head">
2796						<span class="profile-id"><th:block th:text="#{evaluation.msg.clinic.administrator}">병원 관리자</th:block> <span class="date" data-column-name="date">loading...</span></span>
2797					</div>
2798					<div class="comment-body-admin">
2799						<p data-column-name="content">
2800							loading...
2801						</p>
2802					</div>
2803				</div>
2804			</li>
2805		</ul> -->
2806		
2807		<ul data-ele-name="templateWrapperReview" style="display: none">
2808			<li>
2809				<a href="javascript:void(0)" data-data_type="link" data-data_key="nickName" data-column-name="userWrapperLink" class="item">
2810					<div class="grid-div">
2811						<div class="left">
2812							<div class="profile">
2813								<div class="img"
2814									style="background-image: url(https://files.beautysocial.io/data.dev/profile/e44150e70e864eaca0b469db02b18003.png);"
2815									data-column-name="profileImage"
2816								>
2817								</div>
2818								<div class="name" data-data_type="text" data-data_key="nickName">Forest</div>
2819								<div class="date" data-data_type="datetime" data-data_key="regDate">2024.11.19</div>
2820							</div>
2821						</div>
2822						<div class="right" data-column-name="wrapperSatisfaction">
2823							<div class="score" data-data_type="text" data-data_key="txLevel">5.0</div>
2824						</div>
2825					</div>
2826					<div class="swiper slideBoardAttach list-attchfile">
2827						<ul class="swiper-wrapper" data-ele-name="imgList">
2828						</ul>
2829						<div class="swiper-pagination"></div>
2830					</div>
2831					<ul class="swiper-wrapper" data-column-name="templateImg" style="display: none">
2832						<li class="swiper-slide" data-ele-name="selectLink">
2833							<div data-column-name="image"
2834								class="picture"
2835								style="background-image: url(https://files.beautysocial.io/data.dev/board/a72c9399fe884a36a5392c85661d290e.jpeg);">
2836								<span class="status-label" data-column-name="imgBadge">후</span>
2837								<span class="plus" data-column-name="plus" style="display: none"></span>
2838							</div>
2839						</li>
2840					</ul>
2841
2842					<div class="desc-group">
2843						<p class="desc good" data-data_type="text" data-data_key="goodPoint" data-column-name="goodPoint">
2844							얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부광채 광채피부얼굴 전체 제모, 크라이오 진정관부광채 광채피부얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부피부피부피부
2845						</p>
2846						<p class="desc sad" data-data_type="text" data-data_key="weakPoint" data-column-name="weakPoint">
2847							얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부광채 광채피부얼굴 전체 제모, 크라이오 진정관부광채 광채피부얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부피부피부피부
2848						</p>
2849					</div>
2850					<div class="use-service" data-ele-name="txNmTemplateWrapper" style="display: none">
2851						<span></span>
2852					</div>
2853					<div class="use-service" data-ele-name="txInfos" style="display: none;">
2854						<span class="cte" data-ele-name="txPart">치아</span>
2855					</div>
2856					
2857					<div class="command" style="margin-top: 0px;">
2858						<ul>
2859							<li>
2860								<span href="javascript:void(0)" class="ico like min" data-column-name="likeCnt"><span class="value" data-data_type="text" data-data_key="likeCnt" >0</span></span>
2861							</li>
2862							<li data-column-name="commentWrapperLink">
2863								<span href="javascript:void(0)" class="ico cmt min" data-column-name="commentCnt"><span class="value" data-data_type="text" data-data_key="commentCnt" >0</span></span>
2864							</li>
2865							<li>
2866								<span href="javascript:void(0)" class="ico view min" data-column-name="viewCnt"><span class="value" data-data_type="text" data-data_key="viewCnt" >0</span></span>
2867							</li>
2868						</ul>
2869					</div>
2870					<button type="button" class="btn btn-sm btn-outline-primary btn-translate" data-ele-name="btnTranslate">See translation</button>				
2871				</a>
2872			
2873			</li>
2874			<!-- <li class="touch-item review">
2875				<a th:href="|javascript:void(0)|" data-data_type="link" data-data_key="nickName" data-column-name="userWrapperLink">
2876					<div class="media media-horize">
2877						<div class="profile">
2878							<i class="img" data-column-name="profileImage" th:style="|background-image: url(@{/img/profile.png});|"></i>
2879						</div>
2880						<h4 class="tit"><bs data-data_type="text" data-data_key="nickName">loading...</bs
2881							><br><span class="date" data-data_type="datetime" data-data_key="regDate">loading...</span></h4>
2882						<div class="meta review-meta" data-column-name="wrapperSatisfaction">
2883							<dt><i class="icon-star active" th:text="#{common.msg.customer.satisfaction}">만족도</i></dt>
2884							<dd class="text-dark" data-data_type="text" data-data_key="txLevel">loading...</dd>
2885							<dd>/ 5</dd>
2886						</div>
2887					</div>
2888					
2889					<ul data-ele-name="txNmTemplateWrapper" style="display: none">
2890						<li></li>
2891					</ul>
2892					<dl class="proscons">
2893						<dt></dt>
2894						<dd class="text-truncate" data-data_type="text" data-data_key="goodPoint" data-column-name="goodPoint">loading...</dd>
2895						<dt></dt>
2896						<dd class="text-truncate" data-data_type="text" data-data_key="weakPoint" data-column-name="weakPoint">loading...</dd>
2897					</dl>
2898					<ul class="lst-site" data-ele-name="txInfos" style="display: none">
2899						<li class="tit" data-ele-name="txPart">loading...</li>
2900					</ul>
2901					
2902					<div class="side-ctl-btn" data-ele-name="itemFooterWrapper">
2903						<dl>
2904							<dt><img src="/img/ico-likes.png" th:alt="#{common.msg.like}"></dt>
2905							<dd data-data_type="text" data-data_key="likeCnt" data-column-name="likeCnt">0</dd>
2906						</dl>
2907						<dl data-data_type="link" data-column-name="commentWrapperLink">
2908							<dt><img src="/img/ico-comments.png" th:alt="#{common.msg.comment}"></dt>
2909							<dd data-data_type="text" data-data_key="commentCnt" data-column-name="commentCnt">0</dd>
2910						</dl>
2911						<dl class="lookup">
2912                            <dt><img src="/img/ico-view.png" alt="조회수"></dt>
2913                            <dd data-data_type="text" data-data_key="viewCnt" data-column-name="viewCnt">0</dd>
2914                        </dl>
2915					</div>
2916				</a>
2917				<button type="button" class="btn btn-sm btn-outline-primary btn-translate" data-ele-name="btnTranslate" th:text="#{common.msg.see.translation}">번역보기</button>
2918				<ul class="lst-tmb overflow-auto type-board imgPosition" data-ele-name="imgList" style="display: none">
2919				</ul>
2920				<ul class="lst-tmb overflow-auto type-board imgPosition" data-column-name="templateImg" style="display: none">
2921					<li>
2922						<figure class="badge" data-column-name="imgBadge">전/후</figure>
2923						<a th:href="|javascript:void(0)|" data-ele-name="selectLink"
2924							><img class="img-fluid" th:src="@{/img/profile.png}" alt="" data-column-name="image"
2925							><span class="plus" data-column-name="plus" style="display: none"></span>
2926						</a>
2927					</li>
2928				</ul>
2929			</li> -->
2930		</ul>
2931		
2932		<!-- 그루밍TV 시작-->
2933		<ul data-ele-name="templateWrapperVideo" style="display: none">
2934			<li>
2935				<a href="javascript:void(0)" data-column-name="wrapperLink" class="item">
2936					<div class="thumbnail full">
2937						<img 
2938							data-column-name="videoImage"
2939							src="https://files.beautysocial.io/data.dev/banner_mobile/823529ed4aed492ab36cc52cfa0a8d44.png"
2940							alt="">
2941						<img
2942							data-column-name="videoImage2"
2943							class="shadow"
2944							src="https://files.beautysocial.io/data.dev/banner_mobile/823529ed4aed492ab36cc52cfa0a8d44.png"
2945							alt="">
2946					</div>
2947					<div class="info">
2948						<div class="tit" data-column-name="videoTitle">성형 후 모델제의 받은 썰</div>
2949						<div class="desc" data-column-name="videoTitle">조회수 <span data-column-name="videoViewCount">loading...</span>회 · <span data-column-name="videoRegDate">2일 전</span></div>
2950					</div>
2951				</a>
2952			</li>
2953		</ul>
2954		
2955		<!-- <ul class="lst-default lst-maintreatment banner-view" data-ele-name="templateWrapperVideo" style="display: none">
2956			<li>
2957                <a class="media" th:href="|javascript:void(0)|" data-column-name="wrapperLink">
2958                    <img src="/img/treatment_thumb01_ko.png" alt="" class="img-fluid" data-column-name="videoImage" />
2959                </a>
2960                <div class="media-body video-info">
2961                    <h4 class="tit" data-column-name="videoTitle">loading...</h4>
2962                    <div class="sub-tit">조회수 <bs data-column-name="videoViewCount">loading...</bs>회 · <bs data-column-name="videoRegDate">2일 전</bs></div>
2963                </div>
2964            </li>
2965		</ul> -->
2966		<!-- 그루밍TV 끝 -->
2967		
2968		<!-- 직원리뷰 -->
2969		<ul class="lst-default lst-review" data-ele-name="templateWrapperEpReview" style="display: none">
2970			<li class="touch-item not-file">
2971	            <a href="javascript:void(0)" data-column-name="wrapperEpReviewLink">
2972	                <div class="media media-horize">
2973	                    <div class="profile">
2974	                        <i class="img" data-column-name="profileImage" style="background-image: url(/img/anonymous-writer.png);" ></i>
2975	                    </div>
2976	                    <h4 class="tit"><bs data-column-name="epNickName">loading...</bs><br>
2977	                    <span class="date" data-data_type="datetime" data-data_key="regDate" style="display: none">loading...</span>
2978	                    </h4>
2979	                    <div class="meta review-meta" style="display: none">
2980                            <dt><i class="icon-star active">만족도</i></dt>
2981                            <dd class="text-dark" data-column-name="pDoctorLevel">loading...</dd>
2982                            <dd>/ 5</dd>
2983                        </div>
2984	                </div>
2985	                <p class="board-desc employee"><span class="hot" style="display: none" data-column-name="hotIcon">BEST</span> <bs data-column-name="epTitle">loading...</bs></p>
2986	                <dl class="proscons">
2987	                    <dt class="like"></dt>
2988	                    <dd class="text-truncate" data-data_type="text" data-data_key="goodPoint" data-column-name="goodPoint">loading...</dd>
2989	                    <dt class="bad"></dt>
2990	                    <dd class="text-truncate" data-data_type="text" data-data_key="weakPoint" data-column-name="weakPoint">loading...</dd>
2991	                    <!-- <dt></dt>
2992	                    <dd class="text-truncate" data-data_type="text" data-data_key="wishingPoint" data-column-name="wishingPoint">loading...</dd> -->
2993	                </dl>
2994	
2995	
2996	                <div class="side-ctl-btn">
2997	                    <dl>
2998	                        <dt><img src="/img/ico-likes.png" alt="#{common.msg.like}"></dt>
2999	                        <dd data-data_type="text" data-data_key="likeCnt" data-column-name="likeCnt">0</dd>
3000	                    </dl>
3001	                    <dl>
3002	                        <dt><img src="/img/ico-comments.png" alt="#{common.msg.comment}"></dt>
3003							<dd data-data_type="text" data-data_key="commentCnt" data-column-name="commentCnt">0</dd>
3004	                    </dl>
3005	                    <dl class="lookup">
3006                            <dt><img src="/img/ico-view.png" alt="조회수"></dt>
3007                            <dd data-data_type="text" data-data_key="viewCnt" data-column-name="viewCnt">0</dd>
3008                        </dl>
3009	                </div>
3010	            </a>
3011	        </li>
3012		</ul>
3013		<!-- 직원리뷰 -->
3014		
3015		<!-- 빡침주의 리스트 -->
3016		<ul class="lst-default lst-review" data-ele-name="templateWrapperComplainReview" style="display: none">
3017            <li class="touch-item not-file">
3018                <a href="javascript:void(0)" data-column-name="wrapperComplainReviewLink">
3019                    <div class="media media-horize">
3020                        <div class="profile">
3021	                        <i class="img" data-column-name="profileImage" style="background-image: url(/img/anonymous-writer.png);" ></i>
3022	                    </div>
3023                        <h4 class="tit"><bs data-column-name="complainNickName">loading...</bs><br>
3024	                    <span class="date" data-data_type="datetime" data-data_key="regDate">loading...</span>
3025                    </div>
3026                    <!-- <p class="board-desc employee" data-column-name="complainTitle"></p> -->
3027                    <p class="board-desc employee"><span class="hot" style="display: none" data-column-name="hotIcon">BEST</span> <bs data-column-name="complainTitle">loading...</bs></p>
3028                    <dl class="proscons">
3029                        <dt class="angry"></dt>
3030                        <dd class="text-truncate" data-data_key="complainPoint" data-column-name="complainPoint">loading...</dd>
3031                        <dt class="normal"></dt>
3032                        <dd class="text-truncate" data-data_key="goodPoint" data-column-name="goodPoint">loading...</dd>
3033                    </dl>
3034                    <div class="side-ctl-btn">
3035	                    <dl>
3036	                        <dt><img src="/img/ico-likes.png" alt="#{common.msg.like}"></dt>
3037	                        <dd data-data_type="text" data-data_key="likeCnt" data-column-name="likeCnt">0</dd>
3038	                    </dl>
3039	                    <dl>
3040	                        <dt><img src="/img/ico-comments.png" alt="#{common.msg.comment}"></dt>
3041							<dd data-data_type="text" data-data_key="commentCnt" data-column-name="
3041commentCnt">0</dd>
3042	                    </dl>
3043	                    <dl class="lookup">
3044                            <dt><img src="/img/ico-view.png" alt="조회수"></dt>
3045                            <dd data-data_type="text" data-data_key="viewCnt" data-column-name="viewCnt">0</dd>
3046                        </dl>
3047	                </div>
3048                </a>
3049            </li>
3050        </ul>
3051		<!-- 빡침주의 리스트  끝-->
3052		
3053		<!-- /게시판 -->
3054		<ul data-ele-name="templateWrapperBoard" style="display: none">
3055			<li data-column-name="touchItem">
3056			  	<a href="javascript:void(0)" class="item" data-column-name="wrapperLink">
3057					<div class="grid-div">
3058						<div class="left">
3059							<div class="profile">
3060							<div class="img" data-column-name="profileImage"
3061								style="background-image: url(https://files.beautysocial.io/data.dev/profile/e44150e70e864eaca0b469db02b18003.png);">
3062							</div>
3063							<div class="name" data-data_type="text" data-data_key="nickName">Forest</div>
3064							<div class="date" data-data_type="datetime" data-data_key="regDate">2024.11.19</div>
3065							</div>
3066						</div>
3067						<!-- <div class="right">
3068							<div class="score">5.0</div>
3069						</div> -->
3070					</div>
3071					<div class="swiper slideBoardAttach list-attchfile" data-column-name="templateImgDiv">
3072						<ul class="swiper-wrapper" data-column-name="templateImg">
3073						</ul>
3074						<ul data-ele-name="templateWrapperBoardImg" style="display: none">
3075							<li class="swiper-slide" data-ele-name="selectLink">
3076								<div class="picture" data-column-name="image"
3077									style="background-image: url(https://files.beautysocial.io/data.dev/board/a72c9399fe884a36a5392c85661d290e.jpeg);">
3078									<!-- <span class="status-label">후</span> -->
3079								</div>
3080							</li>
3081						</ul>				  
3082					<div class="swiper-pagination"></div>
3083					</div>
3084					<p class="desc best" data-column-name="boardContents">
3085					얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부광채 광채피부얼굴 전체 제모, 크라이오 진정관부광채 광채피부얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부피부피부피부
3086					</p>
3087					<div class="command" style="margin-top: 0px;">
3088						<ul>
3089							<li>
3090								<span href="javascript:void(0)" class="ico like min" data-data_type="text" data-data_key="likeCnt" data-column-name="likeCnt"><span class="value">0</span></span>
3091							</li>
3092							<li>
3093								<span href="javascript:void(0)" class="ico cmt min" data-data_type="text" data-data_key="commentCnt" data-column-name="commentCnt"><span class="value">0</span></span>
3094							</li>
3095							<li>
3096								<span href="javascript:void(0)" class="ico view min" data-data_type="text" data-data_key="viewCnt" data-column-name="viewCnt"><span class="value">0</span></span>
3097							</li>
3098						</dl>
3099					</div>			
3100				</a>
3101			</li>
3102		</ul>
3103
3104		<!-- <ul class="lst-default lst-review" data-ele-name="templateWrapperBoard" style="display: none">
3105			<li class="touch-item" data-column-name="touchItem" >
3106	            <a th:href="|javascript:void(0)|" data-column-name="wrapperLink">
3107	                <div class="media media-horize">
3108	                    <div class="profile">
3109	                        <i class="img" data-column-name="profileImage" th:style="|background-image: url(@{/img/profile.png});|" ></i>
3110	                    </div>
3111	                    <h4 class="tit">
3112							<span data-data_type="text" data-data_key="nickName">loading...</span>
3113							<br>
3114							<span class="date" data-data_type="datetime" data-data_key="regDate">loading...</span>
3115						</h4>
3116	                </div>
3117	                <p class="board-desc" data-column-name="boardContentsP">
3118	                	<span class="hot" style="display: none" data-column-name="boardHotIcon">BEST</span>
3119						<bs data-column-name="boardContents">
3120							loading...
3121						</bs>
3122					</p>
3123	                <div class="side-ctl-btn">
3124	                    <dl>
3125	                        <dt><img src="/img/ico-likes.png" alt="#{common.msg.like}"></dt>
3126	                        <dd data-data_type="text" data-data_key="likeCnt" data-column-name="likeCnt">0</dd>
3127	                    </dl>
3128	                    <dl>
3129							<dt><img src="/img/ico-comments.png" alt="#{common.msg.comment}"></dt>
3130							<dd data-data_type="text" data-data_key="commentCnt" data-column-name="
3130commentCnt">0</dd>
3131						</dl>
3132						<dl class="lookup">
3133                            <dt><img src="/img/ico-view.png" alt="조회수"></dt>
3134                            <dd data-data_type="text" data-data_key="viewCnt" data-column-name="viewCnt">0</dd>
3135                        </dl>
3136	                </div>
3137	            </a>
3138	            <ul class="lst-tmb overflow-auto type-board" data-column-name="templateImg"  >
3139				</ul>
3140				<ul data-ele-name="templateWrapperBoardImg" style="display: none">
3141					<li>
3142						<a th:href="|javascript:void(0)|" data-ele-name="selectLink"><img class="img-fluid" th:src="@{/img/profile.png}" alt="" data-column-name="image"></a>
3143					</li>
3144				</ul>
3145	
3146	           
3147	        </li>
3148		</ul> -->
3149		<!-- 게시판/ -->
3150		<!-- / 게시판 댓글 -->
3151		<ul data-ele-name="templateWrapperBoardComment" style="display: none;">
3152			<li data-column-name="templatcomment">
3153				<div class="item" data-column-name="templateCommentItem">
3154					<div class="comment-head grid-div">
3155						<div class="left">
3156							<div class="profile">
3157								<div class="img" data-column-name="profileImage" 
3158								style="background-image: url(https://files.beautysocial.io/data.dev/profile/e44150e70e864eaca0b469db02b18003.png);">
3159								</div>
3160								<div class="name" data-data_key="nickName">Forest</div>
3161								<a href="javascript:void(0)" class="board-siren-img" style="width: 20px; opacity: 0.6; position: relative; bottom: 2px;" data-ele-name="btnBoardViewSiren"><img src="/img/icon-hd-siren.png" alt=""></a>
3162								<div class="date" data-data_type="datetime" data-data_key="regDate">2024.11.19</div>
3163							</div>
3164						</div>
3165						<div class="right">
3166							<a class="ico more"  style="cursor: pointer;" data-ele-name="btnMore">더 보기</a>
3167						</div>
3168					</div>
3169					<div class="comment-body">
3170						<p class="desc" data-column-name="commentContents">
3171						얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부광채 광채피부얼굴 전체 제모, 크라이오 진정관부광채 광채피부얼굴 전체
3172						제모, 크라이오 진정관리, 파스틀 톤 피부피부피부피부
3173						</p>
3174						<div class="command" data-column-name="commentCrud" style="cursor: pointer;">
3175							<a href="javascript:void(0)" class="ico cmt">
3176								<span class="value">답글쓰기</span>
3177							</a>
3178						</div>
3179					</div>
3180				</div>
3181			</li>
3182		</ul>
3183
3184        <!-- <ul class="lst-comments" data-ele-name="templateWrapperBoardComment" >
3185             <li data-column-name="templatcomment">
3186                <div class="comment-item" data-column-name="templateCommentItem">
3187                    <div class="comment-head">
3188                        <div class="left">
3189                            <div class="profile">
3190                                <i class="img" data-column-name="profileImage" th:style="|background-image: url(@{/img/profile.png});|"></i>
3191                            </div>
3192                            <span class="profile-id">
3193								<bs data-data_type="text" data-data_key="nickName">jack99880</bs>
3194								<a th:href="|javascript:void(0)|" class="board-siren-img"><img src="/img/icon-hd-siren.png" alt=""></a>
3195								<span class="date" data-data_type="datetime" data-data_key="regDate" >2019.11.21</span>
3196							</span>
3197                        </div>
3198
3199                        <div class="right">
3200                            <a th:href="|javascript:void(0)|" data-ele-name="deleteCommentModal" class="ico-more" style="display: none"><img src="/img/ico-more.png" alt="삭제"></a>
3201                            <a th:href="|javascript:void(0)|" data-ele-name="reportModal" class="text-link text-muted">신고하기</a>
3202                        </div>
3203                    </div>
3204                    <div class="comment-body" >
3205	                    <p data-column-name="commentContents">
3206	                      loading...
3207	                    </p>
3208                        <a th:href="|javascript:void(0)|" class="comment-crud" data-column-name="commentCrud" style="display: none">댓글쓰기</a>
3209                    </div>
3210                </div>
3211               
3212            </li>
3213        </ul> -->
3214		<!-- 게시판 댓글  / -->
3215		
3216		<!-- / 직원리뷰 댓글 -->
3217        <ul class="lst-comments" data-ele-name="templateWrapperEpReviewComment" >
3218             <li data-column-name="templatcomment">
3219                <div class="comment-item" data-column-name="templateCommentItem">
3220                <!-- <div class="comment-item reply"> 대댓글-->
3221                    <div class="comment-head">
3222                        <div class="left">
3223                            <div class="profile">
3224                                <i class="img" data-column-name="profileImage" style="background-image: url(/img/profile.png);"></i>
3225                            </div>
3226                            <span class="profile-id"><bs data-data_type="text" data-data_key="nickName">jack99880</bs><span class="date" data-data_type="datetime" data-data_key="regDate" >2019.11.21</span></span>
3227                        </div>
3228                        <div class="right">
3229                            <a href="javascript:void(0)" data-ele-name="reportModal" class="text-link text-muted">신고하기</a>
3230                            <a href="javascript:void(0)" data-ele-name="deleteCommentModal" class="ico-more" style="display: none"><img src="/img/ico-more.png" alt="삭제"></a>
3231                        </div>
3232                    </div>
3233                    <div class="comment-body" >
3234	                    <p data-column-name="commentContents">
3235	                      loading...
3236	                    </p>
3237                        <a href="javascript:void(0)" class="comment-crud" data-column-name="commentCrud" style="display: none">댓글쓰기</a>
3238                    </div>
3239                </div>
3240            </li>
3241        </ul>
3242		<!-- 게시판 댓글  / -->
3243		
3244		
3245		<!-- /  마이페이지 게시판 리스트 -->
3246		<ul data-ele-name="templateWrapperMyBoard" style="display: none">
3247			<li data-column-name="touchItem">
3248				<a href="javascript:void(0)" class="item" data-column-name="wrapperLink">
3249					<div class="grid-div">
3250						<div class="left">
3251							<div class="profile">
3252								<div class="img" data-column-name="profileImage"
3253									style="display: none; background-image: url(https://files.beautysocial.io/data.dev/profile/e44150e70e864eaca0b469db02b18003.png);"
3254									>
3255								</div>
3256								<div style="display: none;" class="name" data-data_type="text" data-data_key="nickName">Forest</div>
3257								<div class="date" data-data_type="datetime" data-data_key="regDate">2024.11.19</div>
3258							</div>
3259						</div>
3260						<div class="right">
3261							<span href="javascript:void(0)" class="red" data-column-name="deleteBt" style="display: none;">삭제</span>
3262						</div>
3263					</div>
3264
3265					<div class="swiper slideBoardAttach list-attchfile" data-column-name="templateImgDiv">
3266						<ul class="swiper-wrapper" data-column-name="templateImg">
3267						</ul>
3268						<ul data-ele-name="templateWrapperBoardImg" style="display: none">
3269							<li class="swiper-slide" data-ele-name="selectLink">
3270								<div class="picture" data-column-name="image"
3271									style="background-image: url();">
3272								</div>
3273							</li>
3274						</ul>				  
3275					<div class="swiper-pagination"></div>
3276					</div>
3277
3278					<p class="desc" data-column-name="boardContents">
3279					얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부광채 광채피부얼굴 전체 제모, 크라이오 진정관부광채 광채피부얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부피부피부피부
3280					</p>
3281
3282					<div class="command" style="margin-top: 0px;">
3283						<ul>
3284							<li>
3285								<span href="javascript:void(0)" class="ico like min" data-data_type="text" data-data_key="likeCnt" data-column-name="likeCnt"><span class="value">0</span></span>
3286							</li>
3287							<li>
3288								<span href="javascript:void(0)" class="ico cmt min" data-data_type="text" data-data_key="commentCnt" data-column-name="commentCnt"><span class="value">0</span></span>
3289							</li>
3290							<li>
3291								<span href="javascript:void(0)" class="ico view min" data-data_type="text" data-data_key="viewCnt" data-column-name="viewCnt" style="display: none;"><span class="value">0</span></span>
3292							</li>
3293						</dl>
3294					</div>
3295				</a>
3296				<span href="javascript:void(0)" data-column-name="wrapperLinkSecond" class="comment-crud" style="display: none;">원문보기</span>
3297		  	</li>
3298	    </ul>
3299
3300		<!-- <ul class="lst-default lst-review" data-ele-name="templateWrapperMyBoard" style="display: none">
3301			<li>
3302	            <div class="hd-meta d-flex justify-content-between align-items-center">
3303	                <dl class="meta">
3304	                    <dt class="date" data-data_type="datetime" data-data_key="regDate" >loading...</dt>
3305	                </dl>
3306	                <div class="side">
3307	                    <a th:href="|javascript:void(0)|" class="btn btn-sm btn-outline-muted rounded" data-column-name="deleteBt">삭제</a>
3308	                </div>
3309	            </div>
3310	            <a th:href="|javascript:void(0)|" data-column-name="wrapperLink">
3311	                <p class="board-desc" data-column-name="boardContents">
3312	                      loading...
3313	                </p>
3314	            </a>
3315	             <ul class="lst-tmb overflow-auto type-board" data-column-name="templateImg">
3316                </ul>
3317                
3318                <ul data-ele-name="templateWrapperBoardImg" style="display: none">
3319                	<li>
3320                        <a th:href="|javascript:void(0)|" data-ele-name="selectLink"><img class="img-fluid" th:src="@{/img/profile.png}" alt="" data-column-name="image"></a>
3321                    </li>
3322                </ul>
3323	            <div class="side-ctl-btn" data-ele-name="itemFooterWrapper" >
3324                    <dl>
3325                        <dt><img src="/img/ico-likes.png" alt="#{common.msg.like}"></dt>
3326                        <dd data-data_type="text" data-data_key="likeCnt" data-column-name="likeCnt">0</dd>
3327                    </dl>
3328                    <dl>
3329                        <dt><img src="/img/ico-comments.png" alt="#{common.msg.comment}"></dt>
3330                        <dd data-data_type="text" data-data_key="commentCnt" data-column-name="
3330commentCnt">0</dd>
3331                    </dl>
3332                </div>
3333                <a th:href="|javascript:void(0)|" data-column-name="wrapperLinkSecond" class="comment-crud">원문보기</a>
3334	        </li>
3335	    </ul> -->
3336
3337		<!--  마이페이지 게시판 리스트 / -->
3338		
3339		<!-- /  마이페이지 댓글 리스트 -->
3340		<ul data-ele-name="templateWrapperMyComment" style="display: none;">
3341			<li data-column-name="templatcomment">
3342				<a href="javascript:void(0)" class="item" data-column-name="wrapperLink">
3343					<div class="item" data-column-name="templateCommentItem">
3344						<div class="comment-head grid-div">
3345							<div class="left">
3346								<div class="profile">
3347									<div class="date" data-data_type="datetime" data-data_key="regDate">2024.11.19</div>
3348								</div>
3349							</div>
3350							<div class="right">
3351								<span href="javascript:void(0)" class="" style="display: none;" data-column-name="deleteBt">삭제</span>
3352							</div>
3353						</div>
3354						<div class="comment-body">
3355							<p class="desc" data-column-name="boardContents">
3356							얼굴 전체 제모, 크라이오 진정관리, 파스틀 톤 피부광채 광채피부얼굴 전체 제모, 크라이오 진정관부광채 광채피부얼굴 전체
3357							제모, 크라이오 진정관리, 파스틀 톤 피부피부피부피부
3358							</p>
3359						</div>
3360					</div>
3361				</a>
3362				<span href="javascript:void(0)" data-column-name="wrapperLinkSecond" class="comment-crud" style="display: none;">원문보기</span>
3363			</li>
3364		</ul>
3365
3366		<!-- <ul class="lst-default lst-review" data-ele-name="templateWrapperMyComment" style="display: none">
3367			<li>
3368	            <div class="hd-meta d-flex justify-content-between align-items-center">
3369	                <dl class="meta">
3370	                    <dt class="date" data-data_type="datetime" data-data_key="regDate" >loading...</dt>
3371	                </dl>
3372	                <div class="side">
3373	                    <a th:href="|javascript:void(0)|" class="btn btn-sm btn-outline-muted rounded" data-column-name="deleteBt">삭제</a>
3374	                </div>
3375	            </div>
3376	            <div class="comment-item">
3377	
3378	                <div class="comment-body">
3379	                    <p class="board-desc" data-column-name="boardContents">
3380	                      loading...
3381	                	</p>
3382	                    <a th:href="|javascript:void(0)|" data-column-name="wrapperLink" class="comment-crud">원문보기</a>
3383	                </div>
3384	            </div>
3385	        </li>
3386        </ul> -->
3387
3388		<!-- 마이페이지 댓글 리스트  /-->
3389		
3390		
3391		
3392		<ul class="lst-site" data-ele-name="templateWrapperEllipsis" style="display: none">
3393			<!-- <li data-ele-name="ellipsis"><i class="icon-dots"></i></li> -->
3394			<li data-ele-name="ellipsis" class="more"><i class="icon-dots"></i></li>
3395		<!-- 최대 5개 이후 dots icon 표시 -->
3396		</ul>
3397	</div>
3398	
3398<script>
3399	/*<![CDATA[*/
3400    var listItems = (function() {var ListItems = function() {
3401        var _this = this;
3402        _this.ns = 'listItems';
3403
3404        var _p = sel('[data-ele-name="templateWrapperListItems"]');
3405        var _ele = {
3406            p: _p,
3407            templateWrapperEllipsis: sel('[data-ele-name="templateWrapperEllipsis"]', _p)
3408        };
3409        var DELIM_ARR = ',';
3410        
3411        var SET = {
3412            //ELLIPSIS_SITE_CNT: 5
3413        	ELLIPSIS_SITE_CNT: 3 //시술 부위 노출 5->3
3414        };
3415        var _isEllipsis = function(idx) {
3416            return SET.ELLIPSIS_SITE_CNT < idx + 2;
3417        };
3418        var _getFilteredSiteList = function (txList, txParts) {
3419            return txParts.reduce(function(res, item){
3420                var temp;
3421                var _item;
3422                for (var i = 0, len = txList.length; i < len; i++) {
3423                    _item = txList[i];
3424                    if (_item.txPartCd == item.txPartCd) {
3425                        temp = item;
3426                        break;
3427                    }
3428                }
3429                if (temp) {
3430                    res.push(temp);
3431                }
3432                return res;
3433            }, []);
3434        };
3435        var _getNewVerFilteredSiteList = function (txList, txParts) {
3436        	return txParts.reduce(function(res, item){
3437        		var temp;
3438                var _item;
3439                for (var i = 0, len = txList.length; i < len; i++) {
3440                    _item = txList[i];
3441                    if (_item == item.txPartCd) {
3442                        temp = item;
3443                        break;
3444                    }
3445                }
3446                if (temp) {
3447                    res.push(temp);
3448                }
3449                return res;
3450        	}, []);
3451        };
3452        var _renderTxPartList = function(dataList, dataListEle) {
3453            var addedEllipsis = false;
3454            dataListEle.innerHTML			= '';
3455            for (var i = 0, len = dataList.length; i < len; i++) {
3456                var item = dataList[i];
3457                var _li = document.createElement('li');
3458                _li.innerHTML = item.partNm;
3459                _li.dataset.txPartCd = item.txPartCd;
3460                //_li.classList.add('active');
3461                dataListEle.appendChild(_li);
3462
3463				if (_isEllipsis(i)) {
3464					if (!addedEllipsis) {
3465					    if (i == len - 1) {
3466					        continue;
3467					    }
3468						var ellipsisEle = cloneEle(_ele.templateWrapperEllipsis, 0);
3469						ellipsisEle.onclick = function (event) {
3470							event.preventDefault();
3471							hideEles(ellipsisEle);
3472							showEles(selAll('[data-ellipsis="Y"]', dataListEle));
3473						};
3474						dataListEle.appendChild(ellipsisEle);
3475						addedEllipsis = true;
3476					} else {
3477						_li.dataset.ellipsis = "Y";
3478						_li.style.display = 'none';
3479					}
3480					// break;
3481				}
3482            }
3483        };
3484        var _getsAreaInfo = DomUtil.LazyExecuteFactory(bts.getsTagAreaInfo, bts.readyTagAreaInfos);
3485
3486        _this.renderRowEmpty = function(_data, dataListEle) {
3487            var _el = cloneEle(sel('[data-ele-name=templateWrapperEmptyItem]', _ele.p));
3488            sel('[data-column-name="title"]', _el).innerHTML			= (_data.data && _data.data.name) ? _data.data.name : bts.text.noData;
3489
3490            dataListEle.append(_el);
3491        };
3492        _this.renderTwoRowEvaluation = function(_data, dataListEle, callbackItemClick, callback) {
3493			// console.log(">>>_data = ", _data);
3494        	var evalContent = "";
3495        	var _elU = cloneEleP(sel('[data-ele-name="templateWrapperTwoEvaluationUser"]', _ele.p));
3496        	var _elP = cloneEleP(sel('[data-ele-name="templateWrapperTwoEvaluationProv"]', _ele.p));
3497
3498        	sel('[data-column-name="name"]', _elU).innerHTML = _data.nickName;
3499        	sel('[data-column-name="point"]', _elU).innerHTML = parseFloat(_data.evaluationLevel).toFixed(1);
3500        	//sel('[data-column-name="date"]', _elU).innerHTML = new Date(_data.regDate).format("yy.MM.dd");
3501        	sel('[data-column-name="date"]', _elU).innerHTML = _data.regDate;
3502        	
3503        	//더보기 시작
3504        	if(_data.content.length > 50){
3505        		$(sel('[data-column-name="textover-more"]', _elU)).show();
3506        	}else{
3507        		$(sel('[data-column-name="textover-more"]', _elU)).hide();
3508        		$(sel('[data-column-name="content"]', _elU)).attr('class', '');
3509        	};
3510        	
3511        	// sel('[data-column-name="comment-body-inner"]', _elU).onclick = function(event) {
3512        	// 	if($(sel('[data-column-name="content"]', _elU)).hasClass('textover') == true){
3513        	// 		$(sel('[data-column-name="content"]', _elU)).attr('class', '');
3514        	// 		$(sel('[data-column-name="textover-more"]', _elU)).attr('class', 'textover-more fold');
3515        	// 		$(sel('[data-column-name="textover-more"]', _elU)).html(/*"Fold"*/);
3516        	// 	}else{
3517        	// 		$(sel('[data-column-name="content"]', _elU)).attr('class', 'textover');
3518        	// 		$(sel('[data-column-name="textover-more"]', _elU)).attr('class', 'textover-more');
3519        	// 		$(sel('[data-column-name="textover-more"]', _elU)).html('...'+/*"More"*/);
3520        	// 	}
3521        	// };
3522        	//더보기 끝
3523        	
3524        	if(_data.evaluationType == "D"){
3525        		evalContent = "[" + _data.name + " 원장] " + _data.content
3526        	}else{
3527        		evalContent = _data.content;
3528        	}
3529        	sel('[data-column-name="content"]', _elU).innerHTML = evalContent;
3530        	//sel('[data-column-name="content"]', _elU).innerHTML = _data.content;
3531        	
3532        	if (_data.fileKey && _data.fileNm) {
3533        		var _imageEle = sel('[data-column-name="profileImg"]', _elU);
3534        		var _url = bts.url.getCdnImg(_data.fileKey, _data.fileNm);
3535        		
3536        		// if (_this.isLazyTarget(dataListEle)) {
3537                //     _imageEle.dataset.backgroundImage	= 'url(' + _url + ')';
3538                //     _imageEle.classList.add('lazy');
3539                // } else {
3540                //     _imageEle.style.backgroundImage	= 'url(' + _url + ')';
3541                // }
3542				_imageEle.style.backgroundImage	= 'url(' + _url + ')';
3543        	};
3544        	
3545        	// for(i=1; i<= _data.evaluationLevel; i++){
3546        	// 	sel('[data-column-name="star'+i+'"]', _elU).classList.add('active');
3547        	// }
3548        	
3549        	//isFunction(callback) && callback(_elU) && callback(_elP);
3550            dataListEle.appendChild(_elU);
3551            
3552            // if (typeof _data.pid != "undefined") {
3553        	// 	sel('[data-column-name="date"]', _elP).innerHTML = _data.pregDate;
3554        	// 	sel('[data-column-name="content"]', _elP).innerHTML = _data.pcontent;
3555        	// 	dataListEle.appendChild(_elP);
3556        	// }
3557        };
3558        _this.renderTwoRowEvaluationEvent = function(_data, dataListEle, callbackItemClick, callback) {
3559			//console.log(">>>_data = ", _data);
3560        	var _elU = cloneEleP(sel('[data-ele-name="templateWrapperTwoEvaluationUserEvent"]', _ele.p));
3561        	var _elP = cloneEleP(sel('[data-ele-name="templateWrapperTwoEvaluationProvEvent"]', _ele.p));
3562
3563        	sel('[data-column-name="name"]', _elU).innerHTML = _data.nickName;
3564        	sel('[data-column-name="point"]', _elU).innerHTML = parseFloat(_data.evaluationLevel).toFixed(1);
3565        	//sel('[data-column-name="date"]', _elU).innerHTML = new Date(_data.regDate).format("yy.MM.dd");
3566        	//sel('[data-column-name="date"]', _elU).innerHTML = new Date(_data.regDate).format("yyyy.MM.dd");	
3567        	sel('[data-column-name="date"]', _elU).innerHTML = _data.regDate;
3568        	sel('[data-column-name="content"]', _elU).innerHTML = _data.content;
3569        	
3570        	//더보기 시작
3571        	if(_data.content.length > 50){
3572        		$(sel('[data-column-name="textover-more"]', _elU)).show();
3573        	}else{
3574        		$(sel('[data-column-name="textover-more"]', _elU)).hide();
3575        		$(sel('[data-column-name="content"]', _elU)).attr('class', '');
3576        	};
3577        	
3578        	// sel('[data-column-name="comment-body-inner"]', _elU).onclick = function(event) {
3579        	// 	if($(sel('[data-column-name="content"]', _elU)).hasClass('textover') == true){
3580        	// 		$(sel('[data-column-name="content"]', _elU)).attr('class', '');
3581        	// 		$(sel('[data-column-name="textover-more"]', _elU)).attr('class', 'textover-more fold');
3582        	// 		$(sel('[data-column-name="textover-more"]', _elU)).html(/*"Fold"*/);
3583        	// 	}else{
3584        	// 		$(sel('[data-column-name="content"]', _elU)).attr('class', 'textover');
3585        	// 		$(sel('[data-column-name="textover-more"]', _elU)).attr('class', 'textover-more');
3586        	// 		$(sel('[data-column-name="textover-more"]', _elU)).html('...'+/*"More"*/);
3587        	// 	}
3588        	// };
3589        	//더보기 끝
3590        	
3591        	if (_data.fileKey && _data.fileNm) {
3592        		var _imageEle = sel('[data-column-name="profileImg"]', _elU);
3593        		var _url = bts.url.getCdnImg(_data.fileKey, _data.fileNm);
3594        		
3595        		if (_this.isLazyTarget(dataListEle)) {
3596                    _imageEle.dataset.backgroundImage	= 'url(' + _url + ')';
3597                    _imageEle.classList.add('lazy');
3598                } else {
3599                    _imageEle.style.backgroundImage	= 'url(' + _url + ')';
3600                }
3601        	};
3602        	
3603        	// for(i=1; i<= _data.evaluationLevel; i++){
3604        	// 	sel('[data-column-name="star'+i+'"]', _elU).classList.add('active');
3605        	// }
3606        	
3607        	//isFunction(callback) && callback(_elU) && callback(_elP);
3608            dataListEle.appendChild(_elU);
3609            
3610            if (typeof _data.pid != "undefined") {
3611        		sel('[data-column-name="date"]', _elP).innerHTML = _data.pregDate;
3612        		sel('[data-column-name="content"]', _elP).innerHTML = _data.pcontent;
3613        		dataListEle.appendChild(_elP);
3614        	}
3615        };
3616        _this.renderRowEvaluation = function(_data, dataListEle, callbackItemClick, callback) {
3617        	var evalContent = "";
3618        	var _el = cloneEleP(sel('[data-ele-name="templateWrapperEvaluationLiUser"]', _ele.p));
3619        	var _elP = cloneEleP(sel('[data-ele-name="templateWrapperEvaluationLiProv"]', _ele.p));
3620        	sel('[data-column-name="name"]', _el).innerHTML = _data.nickName;
3621
3622        	// for(i=1; i<= _data.evaluationLevel; i++){
3623        	// 	sel('[data-column-name="star'+i+'"]', _el).classList.add('active');
3624        	// }
3625        	sel('[data-column-name="point"]', _el).innerHTML = parseFloat(_data.evaluationLevel).toFixed(1);
3626        	//sel('[data-column-name="date"]', _el).innerHTML = new Date(_data.regDate).format("yy.MM.dd");
3627        	//sel('[data-column-name="date"]', _el).innerHTML = new Date(_data.regDate).format("yyyy.MM.dd");
3628        	sel('[data-column-name="date"]', _el).innerHTML = _data.regDate;
3629        	if(_data.evaluationType == "D"){
3630        		evalContent = "[" + _data.name + " 원장] " + _data.content
3631        	}else{
3632        		evalContent = _data.content;
3633        	}
3634        	//sel('[data-column-name="content"]', _el).innerHTML = _data.content;
3635        	sel('[data-column-name="content"]', _el).innerHTML = evalContent;
3636        	
3637        	if (_data.fileKey && _data.fileNm) {
3638        		var _imageEle = sel('[data-column-name="profileImg"]', _el);
3639        		var _url = bts.url.getCdnImg(_data.fileKey, _data.fileNm);
3640        		
3641        		if (_this.isLazyTarget(dataListEle)) {
3642                    //_imageEle.dataset.backgroundImage	= 'url(' + _url + ')';
3643                    _imageEle.style.backgroundImage	= 'url(' + _url + ')';
3644                    _imageEle.classList.add('lazy');
3645                } else {
3646                    _imageEle.style.backgroundImage	= 'url(' + _url + ')';
3647                }
3648        	};
3649        	
3650        	// var _reportModal = sel('[data-ele-name="reportModal"]', _el);
3651        	// _reportModal.onclick = function (event) {
3652        	// 	event.preventDefault();
3653        	// 	if(!bts.requiredLoginModal()) {
3654        	// 	    return false;
3655        	// 	}
3656        	// 	reportModal.init(_data.id);
3657            // }
3658            // if(__userNo == _data.userNo){
3659            // 	hideEles(_reportModal);
3660            // }
3661            console.log(_el);
3662            dataListEle.appendChild(_el);
3663            
3664        	if (typeof _data.pid != "undefined") {
3665        		sel('[data-column-name="provDate"]', _elP).innerHTML = _data.pregDate;
3666        		sel('[data-column-name="provContent"]', _elP).innerHTML = _data.pcontent;
3667        		showEles(sel('[data-ele-name="templateWrapperEvaluationProv"]', _elP));
3668        		dataListEle.appendChild(_elP);
3669        	}
3670        };
3671        
3672        _this.renderRowStore = function(_data, dataListEle, callbackItemClick, callback) {
3673        	var _el = cloneEle(sel('[data-ele-name="templateWrapperSkinCare"]', _ele.p));
3674        	var _wrapperLink1Ele = sel('[data-column-name="wrapperLink1"]'		, _el);
3675        	var _wrapperLink2Ele = sel('[data-column-name="wrapperLink2"]'		, _el);
3676        	var fileNmArry = _data.pfileNm.split(',');
3677        	var discountedPercentage = Math.floor((_data.price - _data.discountPrice)/_data.price * 100);
3678        	
3679        	sel('[data-column-name="brandName"]', _el).innerHTML = _data.brandName;
3680        	sel('[data-column-name="productName"]', _el).innerHTML = _data.productName;
3681        	sel('[data-column-name="price"]', _el).innerHTML = numberToLocale(_data.price); //bts.i18n.decorateCurrencyUnitVer2(StringUtil.numberWithCommas(_data.price),bts.text.unit_currency, locale);
3682        	sel('[data-column-name="discountedPrice"]', _el).innerHTML = numberToLocale(_data.discountPrice); //bts.i18n.decorateCurrencyUnitVer2(StringUtil.numberWithCommas(_data.discountPrice), bts.text.unit_currency, locale);
3683        	sel('[data-column-name="discountedPercentage"]', _el).innerHTML = discountedPercentage + "&#37";
3684        	
3685        	if (0.01 < discountedPercentage) {
3686				showEles(sel('[data-column-name="discountedPercentage"]', _el));
3687				showEles(sel('[data-column-name="price"]', _el));
3688			} else {
3689				hideEles(sel('[data-column-name="discountedPercentage"]', _el));
3690				hideEles(sel('[data-column-name="price"]', _el));
3691			}
3692        	
3693        	_wrapperLink1Ele.onclick = function(event) {
3694        		//console.log(_data.mno);
3695        		if(!bts.requiredLoginModal()) {
3696        		    return false;
3697        		}
3698        		if(_data.optionYn == 'N'){
3699        			scriptAddToCart(_data.mno);	
3700        		}else{
3701        			bts.toast("옵션이 있는 상품입니다. 상세 페이지를 확인하세요.");
3702        		}
3703        	};
3704        	
3705        	_wrapperLink2Ele.href = bts.seo.parseDetailPath(bts.path.storeDetail, _data.mno, _data.productName);
3706        	
3707        	if (_data.pfileKey && fileNmArry[0]) {
3708                var _imageEle = sel('[data-column-name="image"]', _el);
3709                var _url = bts.url.getCdnImg(_data.pfileKey, fileNmArry[0]);
3710                // 이미지 지연 로딩
3711                if (_this.isLazyTarget(dataListEle)) {
3712                    _imageEle.dataset.backgroundImage	= 'url(' + _url + ')';
3713                    _imageEle.classList.add('lazy');
3714                } else {
3715                    _imageEle.style.backgroundImage	= 'url(' + _url + ')';
3716                }
3717            }
3718        	
3719        	if(_data.evalInfo){
3720				var evalArr = _data.evalInfo.split(",");
3721            	sel('[data-column-name="evalPoint"]', _el).innerHTML = parseFloat(evalArr[0]).toFixed(1);
3722
3723            	var _startWidth = (parseFloat(evalArr[0]) / 5) * 100;
3724				sel('[data-column-name="starWidthMain"]', _el).style.width=_startWidth+"%";
3725				//sel('[data-column-name="evalCnt"]', _el).innerHTML = evalArr[1];
3726			}else{
3727				sel('[data-column-name="evalPoint"]', _el).innerHTML = "0.0";
3728				//sel('[data-column-name="evalCnt"]', _el).innerHTML = 0;
3729			}
3730        	
3731        	//console.log(_data);
3732        	
3733        	dataListEle.appendChild(_el);
3734        };
3735        
3736        _this.renderRowEvent = function(_data, dataListEle, callbackItemClick, callback) {
3737			// console.log(">>>_data = ", _data);
3738			// console.log(">>>dataListEle = ", dataListEle);
3739        	var _el = "";
3740        	if(_data.title == "남자 눈매교정 69" || 
3741				_data.title == "#id남자코성형💘149만" || 
3742				_data.title == "아이웰 남자눈 종합선물세트" || 
3743				_data.title == "프리미어 남자눈매교정"){
3744        		// _el = cloneEle(sel('[data-ele-name="templateWrapperEvent2"]', _ele.p));
3745        		_el = cloneEle(sel('[data-ele-name="templateWrapperEvent"]', _ele.p));
3746        	}else{
3747        		_el = cloneEle(sel('[data-ele-name="templateWrapperEvent"]', _ele.p));
3748        	}
3749            var _wrapperLinkEle = sel('[data-column-name="wrapperLink"]'		, _el);
3750            var _name = _data.name || '';
3751            var _title = _data.title || '';
3752            if (_data.fileKey && _data.fileNm) {
3753                var _imageEle = sel('[data-column-name="image"]', _el);
3754                var _imageEle2 = sel('[data-column-name="image2"]', _el);
3755                var _url = bts.url.getCdnImg(_data.fileKey, _data.fileNm);
3756
3757                // 이미지 지연 로딩
3758                // if (_this.isLazyTarget(dataListEle)) {
3759                //     _imageEle.dataset.backgroundImage	= 'url(' + _url + ')';
3760                //     _imageEle.classList.add('lazy');
3761                // } else {
3762                //     _imageEle.style.backgroundImage	= 'url(' + _url + ')';
3763                // }
3764				_imageEle.src	= _url;
3765				_imageEle2.src	= _url;
3766            }
3767            sel('[data-column-name="name"]'	, _el).innerHTML		= _name;
3768            //var _addr = bts.getShortAddr(_data.addr || '');
3769            var _addr = _data.station;
3770            var _addrEl = sel('[data-column-name="address"]', _el);
3771            _addrEl.innerHTML = _addr;
3772            if (isEn()) {
3773                hideEles(_addrEl);
3774            } else {
3775                showEles(_addrEl);
3776            }
3777            
3778            if(_data.evalInfo){
3779				var evalArr = _data.evalInfo.split(",");
3780            	sel('[data-column-name="evalPoint"]', _el).innerHTML = parseFloat(evalArr[0]).toFixed(1);
3781
3782            	// var _startWidth = (parseFloat(evalArr[0]) / 5) * 100;
3783				// sel('[data-column-name="starWidthMain"]', _el).style.width=_startWidth+"%";
3784			}else{
3785				sel('[data-column-name="evalPoint"]', _el).innerHTML = "0.0";
3786			}
3787            sel('[data-column-name="title"]', _el).innerHTML = _title;
3788            sel('[data-column-name="subTitle"]', _el).innerHTML = _data.stitle || '';
3789            sel('[data-column-name="price"]', _el).innerHTML = numberToLocale(_data.price) || '';
3790            var discountedPercentage = Math.floor((_data.price - _data.dprice)/_data.price * 100);
3791            var _discountedPercentageEl = sel('[data-column-name="discountedPercentage"]', _el);
3792			//_discountedPercentageEl.innerHTML =  discountedPercentage ? discountedPercentage + "&#37;" : '';
3793			/* if (0.01 < discountedPercentage) {
3794				showEles(_discountedPercentageEl);
3795			} else {
3796				hideEles(_discountedPercentageEl);
3797			} */
3798			_discountedPercentageEl.innerHTML = discountedPercentage + "&#37";
3799			if(discountedPercentage == 0){
3800				hideEles(_discountedPercentageEl);
3801				hideEles(sel('[data-column-name="price"]', _el));
3802				// sel('[data-column-name="discountedPercentageStrong"]', _el).remove();
3803			}else{
3804				showEles(_discountedPercentageEl);
3805			}
3806            sel('[data-column-name="discountedPrice"]', _el).innerHTML = numberToLocale(_data.dprice);
3807            
3808            if(_data.eventType == "M"){
3809            	hideEles(sel('[data-column-name="discountedPrice"]', _el));
3810            }
3811            
3812            _wrapperLinkEle.dataset.bedtId = _data.bedtId;
3813            _wrapperLinkEle.dataset.title = _title;
3814            _wrapperLinkEle.href = bts.seo.parseDetailPath(bts.path.eventDetail, _data.bedtId, _title);
3815            _wrapperLinkEle.onclick = function(event) {
3816                console.log('row click');
3817                var __this = this;
3818                callbackItemClick(event, __this);
3819            };
3820            isFunction(callback) && callback(_el);
3821            dataListEle.appendChild(_el);
3822        };
3823
3824        _this.renderRowEventModel = function(_data, dataListEle, callbackItemClick, callback) {
3825        	var _el = cloneEle(sel('[data-ele-name="templateWrapperEventModel"]', _ele.p));
3826            var _wrapperLinkEle = sel('[data-column-name="wrapperLink"]'		, _el);
3827            var _name = _data.name || '';
3828            var _title = _data.title || '';
3829            if (_data.fileKey && _data.fileNm) {
3830                var _imageEle = sel('[data-column-name="image"]', _el);
3831                var _url = bts.url.getCdnImg(_data.fileKey, _data.fileNm);
3832
3833                // 이미지 지연 로딩
3834                // if (_this.isLazyTarget(dataListEle)) {
3835                //     _imageEle.dataset.backgroundImage	= 'url(' + _url + ')';
3836                //     _imageEle.classList.add('lazy');
3837                // } else {
3838                //     _imageEle.style.backgroundImage	= 'url(' + _url + ')';
3839                // }
3840				_imageEle.src	= _url;
3841            }
3842            
3843            try{
3844            	if(_data.title.indexOf("남자 코성형 리얼모델모집") >= 0 ){
3845                	_el.classList.add('hot-event');
3846                };	
3847            }catch(e){
3848            };
3849            
3850            sel('[data-column-name="name"]'	, _el).innerHTML		= _name;
3851            //var _addr = bts.getShortAddr(_data.addr || '');
3852            var _addr = _data.station;
3853            var _addrEl = sel('[data-column-name="address"]', _el);
3854            _addrEl.innerHTML = _addr;
3855            if (isEn()) {
3856                hideEles(_addrEl);
3857            } else {
3858                showEles(_addrEl);
3859            }
3860            
3861            if(_data.evalInfo){
3862				var evalArr = _data.evalInfo.split(",");
3863            	sel('[data-column-name="evalPoint"]', _el).innerHTML = parseFloat(evalArr[0]).toFixed(1);
3864
3865            	var _startWidth = (parseFloat(evalArr[0]) / 5) * 100;
3866				// sel('[data-column-name="starWidthMain"]', _el).style.width=_startWidth+"%";
3867			}else{
3868				sel('[data-column-name="evalPoint"]', _el).innerHTML = "0.0";
3869			}
3870            sel('[data-column-name="title"]', _el).innerHTML = _title;
3871            sel('[data-column-name="subTitle"]', _el).innerHTML = _data.stitle || '';
3872            _wrapperLinkEle.dataset.bedtId = _data.bedtId;
3873            _wrapperLinkEle.dataset.title = _title;
3874            _wrapperLinkEle.href = bts.seo.parseDetailPath(bts.path.eventDetail, _data.bedtId, _title);
3875            _wrapperLinkEle.onclick = function(event) {
3876                console.log('row click');
3877                var __this = this;
3878                callbackItemClick(event, __this);
3879            };
3880            isFunction(callback) && callback(_el);
3881            dataListEle.appendChild(_el);
3882        };
3883        
3884        _this.renderRowTreatment = function(_data, dataListEle, callbackItemClick) {
3885
3886            // shield
3887            //if (_data.data == null || $rsea.isEmpty(_data.data.intro)) {
3888            //}
3889            if (_data.data == null) {
3890
3891                bts.isDebug() && console.log(_this.ns + '.renderRowTreatment :: Skip this data. Cause, no data. lang:', locale, 'no: ', _data.no);
3892                _this.renderRowEmpty(_data, dataListEle);
3893                return false;
3894            }
3895
3896            // render row [s]
3897            var _el = cloneEle(sel('[data-ele-name="templateWrapperTreatment"]'	, _ele.p), 0);
3898            var _priceEle = sel('[data-column-name="price"]'					, _el);
3899            var _wrapperLinkEle = sel('[data-column-name="wrapperLink"]'		, _el);
3900
3901            var _surgicalTypeNm = (_data.surgicalType == bts.consts.surgicalType.y ? bts.text.word_surgicalTypeY : bts.text.word_surgicalTypeN);
3902
3903            var _priceStr = '';
3904            if ((_data.data.costMin == null || _data.data.costMin == 0) && (_data.data.costMax == null || _data.data.costMax == 0)) {
3905
3906                hideEles(_priceEle);
3907            } else {
3908
3909                showEles(_priceEle);
3910                _priceStr = bts.i18n.decorateMultipleCurrencyUnitValue(StringUtil.numberWithCommas(_data.data.costMin), StringUtil.numberWithCommas(_data.data.costMax), bts.text.unit_currency, locale);
3911            }
3912
3913            sel('[data-column-name="title"]'			, _el).innerHTML	= _data.data.name || '';
3914            _priceEle											.innerHTML	= _priceStr;
3915            sel('[data-column-name="surgicalType"]'		, _el).innerHTML	= _surgicalTypeNm;
3916            //	sel('[data-column-name="reviewCnt"]'	, _el).innerHTML	= _data.reviewCnt;
3917            //	sel('[data-column-name="satisfaction"]'	, _el).innerHTML	= _data.
3918            sel('[data-column-name="likeCnt"]'			, _el).innerHTML	= `<span class="value">${_data.likeCnt}</span>`;
3919            _wrapperLinkEle.dataset.no = _data.no;
3920            _wrapperLinkEle.dataset.name = _data.data.name;
3921            _wrapperLinkEle.href = bts.seo.parseDetailPath(bts.path.treatmentDetail, _data.no, _data.data.name);
3922            _wrapperLinkEle.onclick = function(event) {
3923                console.log('row click');
3924                var __this = this;
3925                callbackItemClick(event, __this);
3926            };
3927
3928            dataListEle.appendChild(_el);
3929            // render row [e]
3930        };
3931        _this.renderRowTreatmentMain = function(_data, dataListEle, callbackItemClick) {
3932            if (_data.id == null) {
3933
3934                bts.isDebug() && console.log(_this.ns + '.renderRowTreatment :: Skip this data. Cause, no data. lang:', locale, 'no: ', _data.no);
3935                _this.renderRowEmpty(_data, dataListEle);
3936                return false;
3937            }
3938
3939            // render row [s]
3940            var _el = cloneEle(sel('[data-ele-name="templateWrapperTreatmentMain"]'	, _ele.p), 0);
3941            
3942            var _wrapperLinkEle = sel('[data-column-name="wrapperLink"]'		, _el);
3943            if (_data.fileNm && _data.fileKey) {
3944            	var _imageEle = sel('[data-column-name="image"]', _el);
3945                var _url = bts.url.getCdnImg(_data.fileKey, _data.fileNm);
3946             	// 이미지 지연 로딩
3947                if (_this.isLazyTarget(dataListEle)) {
3948                    _imageEle.src	= _url;
3949                    _imageEle.classList.add('lazy');
3950                } else {
3951                    _imageEle.src	= _url;
3952                }
3953            }
3954            //sel('[data-column-name="image"]'			, _el).innerHTML	= bts.url.getCdnImg(_data.fileKey, _data.fileNm);
3955            _wrapperLinkEle.dataset.id = _data.id;
3956            /* _wrapperLinkEle.href = bts.seo.parseDetailPath(bts.path.treatmentMainDetail, _data.id, '');
3957            _wrapperLinkEle.onclick = function(event) {
3958                console.log('row click');
3959                var __this = this;
3960                callbackItemClick(event, __this);
3961            }; */
3962
3963            _wrapperLinkEle.href = "javascript:void(0)";
3964            _wrapperLinkEle.onclick = function(event) {
3965              event.preventDefault();
3966              bts.setListData(bts.dataKeys.selTxParts, [_data.txPartCd]);
3967              location.href = bts.path.treatment;
3968            };
3969
3970            dataListEle.appendChild(_el);
3971            // render row [e]
3972        };
3973        _this.renderAddRank = function(_data, _el) {
3974            var _changeOrder = Number(_data.changeOrder);
3975            var _rankChangeClassNm;
3976            if (_changeOrder == 0) {
3977                _rankChangeClassNm = '';
3978            } else if (0 < _changeOrder) {
3979                _rankChangeClassNm = 'up';
3980            } else if (0 > _changeOrder) {
3981                _rankChangeClassNm = 'down';
3982            } else {
3983                _rankChangeClassNm = '';
3984            }
3985            var wrapperRankEle = sel('[data-ele-name="rank"]', _el);
3986	        sel('[data-column-name="rank"]', wrapperRankEle).innerHTML = _data.rankOrder;
3987            addClass(sel('[data-column-name="rankChangeWrapper"]', wrapperRankEle), _rankChangeClassNm);
3988            var _rankChangeEl = sel('[data-column-name="rankChange"]', wrapperRankEle);
3989			if (_changeOrder == 0) {
3990				_rankChangeEl.innerHTML = '';
3991				hideEles(_rankChangeEl);
3992			} else {
3993				_rankChangeEl.innerHTML = _changeOrder;
3994				showEles(_rankChangeEl);
3995			}
3996	        showEles(wrapperRankEle);
3997        };
3998        
3999		_this.renderRowDoctor2 = function(_data, dataListEle, callbackItemClick) {
4000			 //console.log(">>>_data = ", _data);
4001            // shield
4002            if (_data.data == null) {
4003
4004                bts.isDebug() && console.log(_this.ns + '.renderRowDoctor :: Skip this data. Cause, no data. lang:', locale, 'no: ', _data.no);
4005                _this.renderRowEmpty(_data, dataListEle);
4006                return false;
4007            }
4008
4009            // render row [s]
4010            var _el = cloneEle(sel('[data-ele-name="templateWrapperDoctor2"]'	, _ele.p), 0);
4011            var _wrapperLinkEle = sel('[data-column-name="wrapperLink"]'		, _el);
4012            var _name = _data.data.name || '';
4013            // if (_data.rank) {
4014            //     _this.renderAddRank(_data.rank, _el);
4015            //     _data = _data.data;
4016            //     _name = _data.data.name || '';
4017            // }
4018
4019            if(_data.evalInfo){
4020            	var evalArr = _data.evalInfo.split(",");
4021            	sel('[data-column-name="evalPoint"]', _el).innerHTML = parseFloat(evalArr[0]).toFixed(1);
4022            	//sel('[data-column-name="evalCnt"]', _el).innerHTML = evalArr[1];
4023            	// var _startWidth = (parseFloat(evalArr[0]) / 5) * 100;
4024				// sel('[data-column-name="starWidth"]', _el).style.width=_startWidth+"%";
4025            }else{
4026            	sel('[data-column-name="evalPoint"]', _el).innerHTML = "0.0";
4027            	//sel('[data-column-name="evalCnt"]', _el).innerHTML = "0";
4028            }
4029            
4030            if (_data.profile && _data.profile.fileKey && _data.profile.fileNm) {
4031                var _imageEle = sel('[data-column-name="image"]', _el);
4032                var _url = bts.url.getCdnImg(_data.profile.fileKey, _data.profile.fileNm);
4033
4034                _imageEle.style.backgroundImage	= 'url(' + _url + ')';
4035            }
4036            var nameCall = "Dr.";
4037            // switch(locale) {
4038			// 	case "ko" : sel('[data-column-name="title"]'		, _el).innerHTML		= _name + " " + nameCall; break;
4039			// 	case "en" : sel('[data-column-name="title"]'		, _el).innerHTML		= nameCall + " " + _name; break;
4040			// 	default : sel('[data-column-name="title"]'		, _el).innerHTML		= _name;
4041			// }
4042            sel('[data-column-name="title"]'		, _el).innerHTML		= _name;
4043            // sel('[data-column-name="major"]'		, _el).innerHTML		= _data.majorName || '';
4044            /* if(_data.majorName == null){
4045            	hideEles(sel('[data-column-name="br"]'		, _el));
4046            } */
4047            // sel('[data-column-name="hospitalNm"]'	, _el).innerHTML		= (_data.prov && _data.prov.data) ? _data.prov.data.name : '';
4048            // bts.lazy.getsTxPart.run(function(txParts) {
4049			// 	_renderTxPartList(_getFilteredSiteList(_data.tx, txParts), sel('[data-ele-name="txPart"]', _el));
4050            // });
4051//			sel('[data-column-name="reviewCnt"]'	, _el).innerHTML		= _data.reviewCnt;
4052//			sel('[data-column-name="satisfaction"]'	, _el).innerHTML		= _data.
4053//            sel('[data-column-name="likeCnt"]'		, _el).innerHTML		= _data.likeCnt;
4054            _wrapperLinkEle.dataset.no = _data.no;
4055            _wrapperLinkEle.dataset.name = _name;
4056            _wrapperLinkEle.href = bts.seo.parseDetailPath(bts.path.doctorDetail, _data.no, _name);
4057            _wrapperLinkEle.onclick = function(event) {
4058                console.log('row click');
4059                var __this = this;
4060                callbackItemClick(event, __this);
4061            };
4062
4063            dataListEle.appendChild(_el);
4064            // render row [e]
4065        };
4066
4067        _this.renderRowDoctor = function(_data, dataListEle, callbackItemClick) {
4068			// console.log(">>>_data = ", _data);
4069            // shield
4070            if (_data.data == null) {
4071
4072                bts.isDebug() && console.log(_this.ns + '.renderRowDoctor :: Skip this data. Cause, no data. lang:', locale, 'no: ', _data.no);
4073                _this.renderRowEmpty(_data, dataListEle);
4074                return false;
4075            }
4076
4077            // render row [s]
4078            var _el = cloneEle(sel('[data-ele-name="templateWrapperDoctor"]'	, _ele.p), 0);
4079            var _wrapperLinkEle = sel('[data-column-name="wrapperLink"]'		, _el);
4080            var _name = _data.data.name || '';
4081            // if (_data.rank) {
4082            //     _this.renderAddRank(_data.rank, _el);
4083            //     _data = _data.data;
4084            //     _name = _data.data.name || '';
4085            // }
4086
4087            if(_data.evalInfo){
4088            	var evalArr = _data.evalInfo.split(",");
4089            	sel('[data-column-name="evalPoint"]', _el).innerHTML = parseFloat(evalArr[0]).toFixed(1);
4090            	//sel('[data-column-name="evalCnt"]', _el).innerHTML = evalArr[1];
4091            	// var _startWidth = (parseFloat(evalArr[0]) / 5) * 100;
4092				// sel('[data-column-name="starWidth"]', _el).style.width=_startWidth+"%";
4093            }else{
4094            	sel('[data-column-name="evalPoint"]', _el).innerHTML = "0.0";
4095            	//sel('[data-column-name="evalCnt"]', _el).innerHTML = "0";
4096            }
4097            
4098            if (_data.profile && _data.profile.fileKey && _data.profile.fileNm) {
4099
4100                var _imageEle = sel('[data-column-name="image"]', _el);
4101                var _imageEle2 = sel('[data-column-name="image2"]', _el);
4102                var _url = bts.url.getCdnImg(_data.profile.fileKey, _data.profile.fileNm);
4103
4104                // 이미지 지연 로딩
4105                // if (_this.isLazyTarget(dataListEle)) {
4106
4107                //     _imageEle.dataset.backgroundImage	= 'url(' + _url + ')';
4108                //     _imageEle.classList.add('lazy');
4109                // } else {
4110
4111                //     _imageEle.style.backgroundImage	= 'url(' + _url + ')';
4112                // }
4113                // _imageEle.style.backgroundImage	= 'url(' + _url + ')';
4114                _imageEle.src	= _url;
4115                _imageEle2.src	= _url;
4116            }
4117            var nameCall = "Dr.";
4118            // switch(locale) {
4119			// 	case "ko" : sel('[data-column-name="title"]'		, _el).innerHTML		= _name + " " + nameCall; break;
4120			// 	case "en" : sel('[data-column-name="title"]'		, _el).innerHTML		= nameCall + " " + _name; break;
4121			// 	default : sel('[data-column-name="title"]'		, _el).innerHTML		= _name;
4122			// }
4123            sel('[data-column-name="title"]'		, _el).innerHTML		= _name;
4124            sel('[data-column-name="major"]'		, _el).innerHTML		= _data.majorName || '';
4125            /* if(_data.majorName == null){
4126            	hideEles(sel('[data-column-name="br"]'		, _el));
4127            } */
4128            sel('[data-column-name="hospitalNm"]'	, _el).innerHTML		= (_data.prov && _data.prov.data) ? _data.prov.data.name : '';
4129            bts.lazy.getsTxPart.run(function(txParts) {
4130				_renderTxPartList(_getFilteredSiteList(_data.tx, txParts), sel('[data-ele-name="txPart"]', _el));
4131            });
4132//			sel('[data-column-name="reviewCnt"]'	, _el).innerHTML		= _data.reviewCnt;
4133//			sel('[data-column-name="satisfaction"]'	, _el).innerHTML		= _data.
4134//            sel('[data-column-name="likeCnt"]'		, _el).innerHTML		= _data.likeCnt;
4135            _wrapperLinkEle.dataset.no = _data.no;
4136            _wrapperLinkEle.dataset.name = _name;
4137            _wrapperLinkEle.href = bts.seo.parseDetailPath(bts.path.doctorDetail, _data.no, _name);
4138            _wrapperLinkEle.onclick = function(event) {
4139                console.log('row click');
4140                var __this = this;
4141                callbackItemClick(event, __this);
4142            };
4143
4144            dataListEle.appendChild(_el);
4145            // render row [e]
4146        };
4147        _this.isLazyTarget = function(pEle) {
4148            var isLazy = false;
4149            if (typeof paginator == "undefined") {
4150
4151            } else {
4152                if (pEle.children.length < (paginator.getPageSize() / 2 + 1)) {
4153
4154                } else {
4155
4156                    isLazy = true;
4157                }
4158            }
4159            return isLazy;
4160        };
4161        
4162        _this.renderCommonRankingSelected = function(_data, dataListEle, callbackItemClick, callback) {
4163            var _el = cloneEle(sel('[data-ele-name="templateCommonRankingSelected"]'	, _ele.p), 0);
4164            var _wrapperLinkEle = sel('[data-column-name="rankingSelected"]'		, _el);
4165            _wrapperLinkEle.onclick = function(event) {
4166                bts.isDebug() && console.log(_this.ns + '.renderRowCommonRankingSelected :: row click');
4167                var __this = this;
4168                callbackItemClick(event, __this);
4169            };
4170            dataListEle.appendChild(_el);
4171            isFunction(callback) && callback(_el);
4172        };
4173        
4174        _this.renderRowHospital = function(_data, dataListEle, callbackItemClick, callback) {
4175            // shield
4176            //if (_data.data == null || $rsea.isEmpty(_data.data.addr)) {
4177            //}
4178            if (_data.data == null) {
4179
4180                bts.isDebug() && console.log(_this.ns + '.renderRowDoctor :: Skip this data. Cause, no data. lang:', locale, 'no: ', _data.no);
4181                _this.renderRowEmpty(_data, dataListEle);
4182                return false;
4183            }
4184            var _addr = bts.getShortAddr(_data.data.addr || '');
4185
4186            // render row [s]
4187            var _el = cloneEle(sel('[data-ele-name="templateWrapperHospital"]'	, _ele.p), 0);
4188            var _wrapperLinkEle = sel('[data-column-name="wrapperLink"]'		, _el);
4189            var _name = _data.data.name || '';
4190            if (_data.rank) {
4191                _this.renderAddRank(_data.rank, _el);
4192                _data = _data.data;
4193                _name = _data.data.name || '';
4194            }
4195			console.log(_data);
4196            if(_data.evalInfo){
4197            	var evalArr = _data.evalInfo.split(",");
4198            	sel('[data-column-name="evalPoint"]', _el).innerHTML = parseFloat(evalArr[0]).toFixed(1);
4199            	//sel('[data-column-name="evalCnt"]', _el).innerHTML = evalArr[1];
4200            	var _startWidth = (parseFloat(evalArr[0]) / 5) * 100;
4201				// sel('[data-column-name="starWidth"]', _el).style.width=_startWidth+"%";
4202            }else{
4203            	sel('[data-column-name="evalPoint"]', _el).innerHTML = "0.0";
4204            	//sel('[data-column-name="evalCnt"]', _el).innerHTML = "0";
4205            }
4206            
4207            if (_data.profile && _data.profile.fileKey && _data.profile.fileNm) {
4208
4209                var _imageEle = sel('[data-column-name="image"]', _el);
4210                var _imageEle2 = sel('[data-column-name="image2"]', _el);
4211                var _url = bts.url.getCdnImg(_data.profile.fileKey, _data.profile.fileNm);
4212
4213                // 이미지 지연 로딩
4214                // if (_this.isLazyTarget(dataListEle)) {
4215
4216                //     _imageEle.dataset.backgroundImage	= 'url(' + _url + ')';
4217                //     _imageEle.classList.add('lazy');
4218                // } else {
4219
4220                //     _imageEle.style.backgroundImage	= 'url(' + _url + ')';
4221                // }
4222                _imageEle.src	= _url;
4223                _imageEle2.src	= _url;
4224            }
4225            sel('[data-column-name="title"]'	, _el).innerHTML		= _name;
4226	        //var _locationInfoEle = sel('[data-ele-name="locationInfo"]'	, _el);
4227            var _addrEle = sel('[data-column-name="address"]'			, _el);
4228	        var _areaNmEle = sel('[data-column-name="areaNm"]'			, _el);
4229            _addrEle.innerHTML		= _addr;
4230
4231            _getsAreaInfo.run(function() {
4232				var _areaNm = bts.getAreaNm(_data.areaCd, '');
4233				_areaNmEle.innerHTML = _areaNm;
4234				if (isEmpty(_areaNm)) {
4235					hideEles(_areaNmEle);
4236				} else {
4237					showEles(_areaNmEle);
4238				}
4239				/* if (isEmpty(_addr)) {
4240					if (isEmpty(_areaNm)) {
4241						hideEles(_locationInfoEle);
4242					} else {
4243						_locationInfoEle.insertBefore(_areaNmEle, _addrEle);
4244					}
4245				} */
4246            }); 
4247            
4248            if (isEmpty(_addr)) {
4249                hideEles(_addrEle);
4250            } else {
4251                showEles(_addrEle);
4252            }
4253            bts.lazy.getsTxPart.run(function(txParts) {
4254            	try{
4255            		let arr = _data.tx[0].txPartCd.split(',')
4256                	let setArr = new Set(arr);
4257                	_renderTxPartList(_getNewVerFilteredSiteList(Array.from(setArr), txParts), sel('[data-ele-name="txPart"]', _el));
4258            	}catch(e){
4259            		hideEles(sel('[data-ele-name="txPart"]', _el));
4260            	}
4261                //_renderTxPartList(_getFilteredSiteList(_data.tx, txParts), sel('[data-ele-name="txPart"]', _el));
4262            });
4263//			sel('[data-column-name="reviewCnt"]'	, _el).innerHTML	= _data.reviewCnt;
4264//			sel('[data-column-name="satisfaction"]'	, _el).innerHTML	= _data.
4265//          sel('[data-column-name="likeCnt"]'		, _el).innerHTML	= _data.likeCnt;
4266            _wrapperLinkEle.dataset.no = _data.no;
4267            _wrapperLinkEle.dataset.name = _name;
4268            _wrapperLinkEle.href = bts.seo.parseDetailPath(bts.path.hospitalDetail, _data.no, _name);
4269            _wrapperLinkEle.onclick = function(event) {
4270                console.log('row click');
4271                var __this = this;
4272                callbackItemClick(event, __this);
4273            };
4274
4275            dataListEle.appendChild(_el);
4276	        isFunction(callback) && callback(_el);
4277            // dataListEle.prepend(_el);
4278            // render row [e]
4279        };
4280        var setImages = (function () {
4281			var _el = cloneEle(sel('[data-ele-name="templateWrapperReview"]', _ele.p));
4282            var VIEW_PLUS = '+';
4283            var VIEW_IMG_LENGTH = 3;
4284            var _templateImg = sel('[data-column-name="templateImg"]', _el);
4285            var _renderedImgCnt = 0;
4286            var _imgListEl;
4287            var setImages = function (imgNamesStr, fileKey, imgBadge) {
4288                if (!(imgNamesStr && isNotEmptyList(imgNamesStr.split(',')))) {
4289                    bts.isDebug() && console.log(_this.ns + '.setImages :: skip');
4290                    return false;
4291                }
4292                imgNamesStr.split(',').forEach(function (imgName, idx) {
4293
4294                    var _url = bts.url.getCdnImg(fileKey, imgName);
4295					// console.log(">>>_url = ", _url);
4296
4297                    var _imgLi = cloneEle(_templateImg);
4298                    var _imgBadgeEle = sel('[data-column-name="imgBadge"]', _imgLi);
4299                    var _selectLinkEle = sel('[data-ele-name="selectLink"]', _imgLi);
4300                    var _imageEle = sel('[data-column-name="image"]', _imgLi);
4301                    _imgBadgeEle.innerHTML = imgBadge;
4302                    // _selectLinkEle.href = _url;
4303                    // _selectLinkEle.dataset.index = _renderedImgCnt;
4304                    /*if (_this.isLazyTarget(dataListEle)) {
4305						// 이미지 지연 로딩
4306						_imageEle.dataset.backgroundImage	= 'url(' + _url + ')';
4307						_imageEle.classList.add('lazy');
4308					} else {
4309						_imageEle.style.backgroundImage = 'url(' + _url + ')';
4310					}*/
4311                    _imageEle.style.backgroundImage = "url(" + _url + ")";
4312                    _imageEle.alt = imgBadge + (_renderedImgCnt + 1);
4313
4314                    // _renderedImgCnt++;
4315                    // if (VIEW_IMG_LENGTH + 1 == _renderedImgCnt) {
4316                    //     var _plusEl = sel('[data-column-name="plus"]', _imgLi);
4317                    //     _plusEl.innerHTML = VIEW_PLUS + _renderedImgCnt - VIEW_IMG_LENGTH;
4318                    //     showEles(_plusEl);
4319                    // } else if (VIEW_IMG_LENGTH + 1 < _renderedImgCnt) {
4320                    //     hideEles(_imgLi);
4321                    //     var _plusEl = sel('[data-column-name="plus"]', _imgLi);
4322                    //     _plusEl.innerHTML = VIEW_PLUS + _renderedImgCnt - VIEW_IMG_LENGTH;
4323                    // } else {
4324                    //     //console.log(_this.ns + '.setImages :: skip ', _renderedImgCnt);
4325                    // }
4326                    _imgListEl.appendChild(_imgLi);
4327                });
4328            };
4329            var setAllImages = function (
4330            		  beforeFileNmArr,
4331            		  beforeFileKey,
4332            		  beforeBadge,
4333            		  afterFileNmArr,
4334            		  afterFileKey,
4335            		  afterBadge
4336       		) {
4337       		  var maxLen = Math.max(
4338       		    Array.isArray(beforeFileNmArr) ? beforeFileNmArr.length : 0,
4339       		    Array.isArray(afterFileNmArr) ? afterFileNmArr.length : 0
4340       		  );
4341
4342       		  for (var i = 0; i < maxLen; i++) {
4343       		    if (beforeFileNmArr && beforeFileNmArr[i]) {
4344       		      var beforeUrl = bts.url.getCdnImg(beforeFileKey, beforeFileNmArr[i]);
4345       		      var beforeLi = cloneEle(_templateImg);
4346       		      var beforeBadgeEl = sel('[data-column-name="imgBadge"]', beforeLi);
4347       		      var beforeImageEl = sel('[data-column-name="image"]', beforeLi);
4348       		      beforeBadgeEl.innerHTML = beforeBadge;
4349       		      beforeImageEl.style.backgroundImage = "url(" + beforeUrl + ")";
4350       		      beforeImageEl.alt = beforeBadge + (_renderedImgCnt + 1);
4351       		      _imgListEl.appendChild(beforeLi);
4352       		      _renderedImgCnt++;
4353       		    }
4354
4355       		    if (afterFileNmArr && afterFileNmArr[i]) {
4356       		      var afterUrl = bts.url.getCdnImg(afterFileKey, afterFileNmArr[i]);
4357       		      var afterLi = cloneEle(_templateImg);
4358       		      var afterBadgeEl = sel('[data-column-name="imgBadge"]', afterLi);
4359       		      var afterImageEl = sel('[data-column-name="image"]', afterLi);
4360       		      afterBadgeEl.innerHTML = afterBadge;
4361       		      afterImageEl.style.backgroundImage = "url(" + afterUrl + ")";
4362       		      afterImageEl.alt = afterBadge + (_renderedImgCnt + 1);
4363       		      _imgListEl.appendChild(afterLi);
4364       		      _renderedImgCnt++;
4365       		    }
4366       		  }
4367       		};
4368            return {
4369                init: function(imgListEl) {
4370                    _renderedImgCnt = 0;
4371                    _imgListEl = imgListEl;
4372                },
4373                run: function(fileNmArr, fileKey, badge) {
4374                    if (!_imgListEl) {
4375                        bts.err(_this.ns + '.setImages :: setImages.run :: You must "setImages.init" first');
4376                    }
4377                    setImages(fileNmArr, fileKey, badge);
4378                }, 
4379                all: function(beforeFileNmArr, beforeFileKey, beforeBadge, afterFileNmArr, afterFileKey, afterBadge) {
4380                    if (!_imgListEl) {
4381                        bts.err(_this.ns + '.setImages :: setImages.run :: You must "setImages.init" first');
4382                    }
4383                    setAllImages(beforeFileNmArr.split(','), beforeFileKey.split(','), beforeBadge.split(','), afterFileNmArr.split(','), afterFileKey.split(','), afterBadge.split(','));
4384                },
4385                done: function () {
4386                    return 0 < _renderedImgCnt;
4387                }
4388            };
4389        })();
4390        var renderTxInfos = function (txPartCds, _txNos, wrapperEl) {
4391			bts.lazy.getsTxPart.run(function(txParts) { bts.lazy.getsTxName.run(function(txNames) {
4392				var _txInfosEl = sel('[data-ele-name="txInfos"]', wrapperEl);
4393				var _txNmTemplateWrapperEl = sel('[data-ele-name="txNmTemplateWrapper"]', wrapperEl);
4394				txPartCds.forEach(function (txPartCd, i) {
4395					var txInfosEl = showEles(cloneEleP(_txInfosEl));
4396                    wrapperEl.insertBefore(txInfosEl, _txInfosEl);
4397					_renderTxNames(txParts, txNames, txPartCd, _txNos, txInfosEl, _txNmTemplateWrapperEl);
4398				})
4399			}); });
4400        };
4401        var _renderTxNames = function (txParts, txNames, txPartCd, _txNos, _txInfosEl, txNmTemplateEl) {
4402            var siteList = _getFilteredSiteList([{txPartCd: txPartCd}], txParts);
4403            if (isEmptyList(siteList) || siteList[0] == null || isEmpty(siteList[0].partNm) || isEmpty(siteList[0].txPartCd)) {
4404                bts.isDebug() && console.log(_this.ns + ' :: _renderTxNames :: Invalid txPart data', siteList);
4405                return false;
4406            }
4407            var item = siteList[0];
4408            var _li = sel('[data-ele-name="txPart"]', _txInfosEl);
4409            _li.innerHTML = item.partNm;
4410            _li.dataset.txPartCd = item.txPartCd;
4411            /*_txNames.forEach(function(txNm) {
4412				var _li = cloneEle(txNmTemplateEl);
4413				_li.innerHTML = txNm;
4414				_txInfosEl.appendChild(_li);
4415			});*/
4416            _txNos.forEach(function(txNo) {
4417                var _li = cloneEle(txNmTemplateEl);
4418                txNames.forEach(function(txNameItem) {
4419                    if (txNameItem && txNameItem.listPartCd && txNameItem.no && txNameItem.data && txNameItem.data.name) {
4420						if (txNameItem.listPartCd.includes(txPartCd) && txNameItem.no == txNo) {
4421							bts.isDebug() && console.log(_this.ns + ' :: _renderTxNames :: ', txPartCd, txNameItem.listPartCd.includes(txPartCd), txNameItem.no);
4422							_li.innerHTML = txNameItem.data.name;
4423							_txInfosEl.appendChild(_li);
4424						}
4425                    }
4426                });
4427            });
4428        };
4429        _this.renderTxInfos = renderTxInfos;
4430        _this.renderRowReview = function(_data, dataListEle, callbackItemClick, callback, params) {
4431            // shield
4432            if (_data == null) {
4433                bts.isDebug() && console.log(_this.ns + '.renderRowReview :: Skip this data. Cause, no data. lang:', locale, 'no: ', _data.no);
4434                _this.renderRowEmpty(_data, dataListEle);
4435                return false;
4436            }
4437            
4438            var callbackUserClick = (isObj(params) && isFunction(params.user)) ? params.user : null;
4439            var callbackCommentClick = (isObj(params) && isFunction(params.comment)) ? params.comment : null;
4440            var callbackTranslateClick = (isObj(params) && isFunction(params.translate)) ? params.translate : function(event, _this, rowEl, callback) {
4441                bts.svc.translate([_this.dataset.goodPoint, _this.dataset.weakPoint], _this.dataset.fr, _this.dataset.to, function (res) {
4442                    bts.isDebug() && console.log(_this.ns + '.renderListMain :: translate click :: succ', res);
4443                    var data = res.body.data;
4444                    data.forEach(function (item) {
4445                        if (item.fr == _this.dataset.goodPoint) sel('[data-column-name="goodPoint"]', rowEl).innerHTML = item.to;
4446                        if (item.fr == _this.dataset.weakPoint) sel('[data-column-name="weakPoint"]', rowEl).innerHTML = item.to;
4447                    });
4448                    //sel('[data-column-name="wrapperLink"]', rowEl).href = sel('[data-column-name="wrapperLink"]', rowEl).href + '?' + bts.consts.review.params.translated + '=' + bts.consts.yn.y;
4449                    isFunction(callback) && callback();
4450                }, function (e) {
4451                    bts.isDebug() && console.log(_this.ns + '.renderListMain :: translate click :: err', e);
4452                }, bts.main.review, _data.no);
4453            };
4454
4455            var _txNos = isNotEmpty(_data.txNos) ? _data.txNos.split(DELIM_ARR) : [];
4456            var _txNames = isNotEmpty(_data.txNm) ? _data.txNm.split(DELIM_ARR) : [];
4457            var _title = bts.seo.getReviewTitle(_txNames);
4458
4459            // render row [s]
4460            var _el = cloneEle(sel('[data-ele-name="templateWrapperReview"]', _ele.p));
4461            setViewData(_el, _data, bts.isDebug());
4462			/* if(_data.likeCnt > 0){
4463    			sel('[data-column-name="likeCnt"]', _el).classList.add('on'); 
4464    		} */
4465            var _userWrapperLinkEle = sel('[data-column-name="userWrapperLink"]', _el);
4466            // setVal(_userWrapperLinkEle, bts.path.userDetail + '/' + _data.nickName); //FIXME 유저 프로필 나오면 수정
4467            setVal(_userWrapperLinkEle, bts.seo.parseDetailPath(bts.path.reviewDetail, _data.no, _title));
4468            _userWrapperLinkEle.onclick = function (event) {
4469                bts.isDebug() && console.log(_this.ns + '.renderRowReview :: user click');
4470                var btn = this;
4471                isFunction(callbackUserClick) && callbackUserClick(event, btn);
4472            };
4473            
4474            
4475			if (_data.profile) {
4476                var _imageEle = sel('[data-column-name="profileImage"]', _el);
4477                var _url = bts.url.getCdnImg(_data.profile.profileFileKey, _data.profile.profileFileNm);
4478                // 이미지 지연 로딩
4479                // if (_this.isLazyTarget(dataListEle)) {
4480
4481                //     _imageEle.dataset.backgroundImage	= 'url(' + _url + ')';
4482                //     _imageEle.classList.add('lazy');
4483                // } else {
4484
4485                //     _imageEle.style.backgroundImage = 'url(' + _url + ')';
4486                // }
4487                _imageEle.style.backgroundImage = 'url(' + _url + ')';
4488            }
4489			
4490			
4491            //var _wrapperLinkEle = sel('[data-column-name="wrapperLink"]', _el);
4492            setVal(_userWrapperLinkEle, bts.seo.parseDetailPath(bts.path.reviewDetail, _data.no, _title));
4493            _userWrapperLinkEle.dataset.no = _data.no;
4494            _userWrapperLinkEle.dataset.title = _title;
4495            _userWrapperLinkEle.onclick = function(event) {
4496                bts.isDebug() && console.log(_this.ns + '.renderRowReview :: row click');
4497                var __this = this;
4498                isFunction(callbackItemClick) && callbackItemClick(event, __this);
4499            };
4500            // sel('[data-column-name="title"]'		, _el).innerHTML	= _data.name || '';
4501            var txPartCds = isNotEmpty(_data.txPartCd) ? _data.txPartCd.split(DELIM_ARR) : [];
4502            isNotEmptyList(txPartCds) && renderTxInfos(txPartCds, _txNos, _userWrapperLinkEle);
4503			
4504			var _btnTranslateEl = sel('[data-ele-name="btnTranslate"]', _el);
4505			if (_data.langType == getLanguage()) {
4506				hideEles(_btnTranslateEl);
4507			} else {
4508                if (isEmpty(_btnTranslateEl.dataset.translated) || _btnTranslateEl.dataset.translated == bts.consts.yn.n) {
4509                    _btnTranslateEl.dataset.translated = bts.consts.yn.n;
4510                    _btnTranslateEl.dataset.fr = _data.langType;
4511                    _btnTranslateEl.dataset.to = getLanguage();
4512                    _btnTranslateEl.innerHTML = bts.text.common_msg_see_translation;
4513                } else {
4514                    _btnTranslateEl.dataset.translated = bts.consts.yn.y;
4515                    _btnTranslateEl.dataset.fr = getLanguage();
4516                    _btnTranslateEl.dataset.to = _data.langType;
4517                    _btnTranslateEl.innerHTML = bts.text.common_msg_see_original;
4518                }
4519				_btnTranslateEl.dataset.no = _data.no;
4520				_btnTranslateEl.dataset.langType = _data.langType;
4521				_btnTranslateEl.dataset.goodPoint = isEmpty(_data.goodPoint) ? '' : _data.goodPoint.trim();
4522				_btnTranslateEl.dataset.weakPoint = isEmpty(_data.weakPoint) ? '' : _data.weakPoint.trim();
4523				_btnTranslateEl.onclick = function (event) {
4524					bts.isDebug() && console.log(_this.ns + '.renderRowReview :: row click :: translate');
4525					var __this = this;
4526					isFunction(callbackTranslateClick) && callbackTranslateClick(event, __this, _el, function () {
4527                        if (isEmpty(__this.dataset.translated) || __this.dataset.translated == bts.consts.yn.n) {
4528                            __this.dataset.translated = bts.consts.yn.y;
4529                            __this.dataset.fr = getLanguage();
4530                            __this.dataset.to = __this.dataset.langType;
4531                            __this.innerHTML = bts.text.common_msg_see_original;
4532                        } else {
4533                            __this.dataset.translated = bts.consts.yn.n;
4534                            __this.dataset.fr = __this.dataset.langType;
4535                            __this.dataset.to = getLanguage();
4536                            __this.innerHTML = bts.text.common_msg_see_translation;
4537                        }
4538                    });
4539				};
4540			}
4541			
4542			var _imgListEl = sel('[data-ele-name="imgList"]', _el);
4543			
4544            /* setImages.run(_data.afterFileNmArry, _data.afterFileKey, bts.text.word_after);
4545            setImages.run(_data.beforeFileNmArry, _data.beforeFileKe
4545y, bts.text.word_before); */
4546            try{
4547            	setImages.init(_imgListEl);
4548            
4549            	try{
4550                	setImages.all(_data.beforeFileNmArry, _data.beforeFileKey, bts.text.word_before, _data.afterFileNmArry, _data.afterFileKey, bts.text.word_after);
4551                }catch(e){
4552                	setImages.run(_data.afterFileNmArry, _data.afterFileKey, bts.text.word_after);
4553                    setImages.run(_data.beforeFileNmArry, _data.beforeFileKey, bts.text.word_before);
4554                }
4555                if (setImages.done()) {
4556                    showEles(_imgListEl);
4557                }
4558            }catch(e){
4559            	
4560            }
4561            
4562            
4563			const slideBoardAttach = new Swiper('.slideBoardAttach', {
4564				slidesPerView: 2,
4565				pagination: {
4566					el: '.swiper-pagination',
4567					type: 'custom',
4568					renderCustom: function (swiper, current, total) {
4569					return `
4570						<div class="num">
4571							<span class="status">${current}</span>
4572							<span class="page">/ ${total}</span>
4573						</div>
4574					`;
4575					},
4576					clickable: true,
4577				},
4578			});
4579
4580
4581            // var _commentWrapperLinkEle = sel('[data-column-name="commentWrapperLink"]', _el);
4582            // setVal(_commentWrapperLinkEle, bts.seo.parseDetailPath(bts.path.reviewDetail, _data.no, _title, 'review-comment'));
4583            // _commentWrapperLinkEle.dataset.no = _data.no;
4584            // _commentWrapperLinkEle.dataset.title = _title;
4585            // _commentWrapperLinkEle.onclick = function(event) {
4586            //     bts.isDebug() && console.log(_this.ns + '.renderRowReview :: row click');
4587            //     var __this = this;
4588            //     isFunction(callbackCommentClick) && callbackCommentClick(event, __this);
4589            // };
4590			
4591            //나중에 위랑 같이 녹인다 빨리하는걸 원하셔서 이렇게 처리
4592            if(_data.hoursAgo >= 24){
4593        		sel('[data-data_key="regDate"]', _userWrapperLinkEle).innerHTML = new Date(_data.regDate).format("yyyy.MM.dd");	
4594        	}else if(_data.hoursAgo > 0){
4595        		sel('[data-data_key="regDate"]', _userWrapperLinkEle).innerHTML = _data.hoursAgo + "시간 전";
4596        	}else{
4597        		if(_data.minutesAgo == 0){
4598        			sel('[data-data_key="regDate"]', _userWrapperLinkEle).innerHTML = "방금 전";
4599        		}else{
4600        			sel('[data-data_key="regDate"]', _userWrapperLinkEle).innerHTML = _data.minutesAgo + "분 전";	
4601        		}
4602        	}
4603            
4604	         // 뱃지 텍스트 가져오기
4605	         /* var _imgSbWrapperEle = sel('[data-ele-name="selectLink"]', _el);
4606	         _imgSbWrapperEle.onclick = function (event) {
4607	        	 console.log(sel('[data-column-name="image"]',_imgSbWrapperEle).alt.substring(0,1));
4608	        	 var badgeText = sel('[data-column-name="image"]',_imgSbWrapperEle).alt.substring(0,1);
4609	                setTimeout(function() {
4610	                    $('.pswp__scroll-wrap .pswp__img').each(function(){
4611	                        $(this).after('<span class="photo-badge">'+ badgeText +'</span>');
4612	                  });
4613	              }, 100);
4614	         }; */
4615
4616            isFunction(callback) && callback(_el);
4617            dataListEle.appendChild(_el);
4618            // render row [e]
4619        };
4620        
4621        /* 그루밍TV */
4622        _this.renderRowVideo = function(_data, dataListEle, callbackItemClick, callback) {
4623        	var _el = cloneEle(sel('[data-ele-name="templateWrapperVideo"]', _ele.p));
4624        	var _wrapperLinkEle = sel('[data-column-name="wrapperLink"]',        _el);
4625        	
4626        	_wrapperLinkEle.href = bts.seo.parseDetailPath(bts.path.videoDetail, _data.no, "");
4627        	
4628        	var _url = bts.url.getCdnImg(_data.mfileKey, _data.mfileNm);
4629    		sel('[data-column-name="videoImage"]',_el).src = _url;
4630    		sel('[data-column-name="videoTitle"]',_el).innerHTML = _data.title;
4631    		sel('[data-column-name="videoViewCount"]',_el).innerHTML = StringUtil.numberWithCommas(_data.hit);
4632    		
4633    		if(_data.hoursAgo >= 24){
4634        		sel('[data-column-name="videoRegDate"]', _el).innerHTML = new Date(_data.regDate).format("yyyy.MM.dd");	
4635        	}else if(_data.hoursAgo > 0){
4636        		sel('[data-column-name="videoRegDate"]', _el).innerHTML = _data.hoursAgo + "시간 전";
4637        	}else{
4638        		if(_data.minutesAgo == 0){
4639        			sel('[data-column-name="videoRegDate"]', _el).innerHTML = "방금 전";
4640        		}else{
4641        			sel('[data-column-name="videoRegDate"]', _el).innerHTML = _data.minutesAgo + "분 전";	
4642        		}
4643        	}
4644    		//sel('[data-column-name="videoOpenDate"]',_el).innerHTML = new Date(_data.openStart).format("MM.dd") + " ~ " + new Date(_data.openEnd).format("MM.dd");
4645    		
4646        	dataListEle.appendChild(_el);
4647            isFunction(callback) && callback(_el);
4648        };
4649        
4650        /* 직원리뷰 */
4651        _this.renderRowEpReview = function(_data, dataListEle, callbackItemClick, callback) {
4652        	//console.log(_data);
4653        	var _el = cloneEle(sel('[data-ele-name="templateWrapperEpReview"]', _ele.p));
4654        	var _wrapperLinkEle = sel('[data-column-name="wrapperEpReviewLink"]'		, _el);
4655        	
4656        	_wrapperLinkEle.href = bts.seo.parseDetailPath(bts.path.employeeReviewDetail, _data.no, "");
4657    		_wrapperLinkEle.onclick = function(event) {
4658                console.log('row click');
4659                var __this = this;
4660                callbackItemClick(event, __this);
4661            };
4662        	
4663            if(_data.epReviewType == "P"){
4664            	sel('[data-column-name="epNickName"]', _wrapperLinkEle).innerHTML = "‘"+_data.provName+"’" + "에서 근무한 직원";
4665            	if(_data.provLevel){
4666            		sel('[data-column-name="pDoctorLevel"]', _wrapperLinkEle).innerHTML = _data.provLevel;	
4667            	}
4668            }else{
4669            	if(_data.provName){
4670            		sel('[data-column-name="epNickName"]', _wrapperLinkEle).innerHTML = "‘"+_data.doctorName + " 원장’과 일한 직원" 
4670+ " (" + _data.provName +")";	
4671            	}else{
4672            		sel('[data-column-name="epNickName"]', _wrapperLinkEle).innerHTML = "‘"+_data.doctorName + " 원장’과 일한 직원";	
4673            	}
4674            	if(_data.doctorLevel){
4675            		sel('[data-column-name="pDoctorLevel"]', _wrapperLinkEle).innerHTML = _data.doctorLevel;	
4676            	}
4677            }
4678            
4679            	
4680        	if(_data.hoursAgo >= 24){
4681        		sel('[data-data_type="datetime"]', _wrapperLinkEle).innerHTML = new Date(_data.regDate).format("yy.MM.dd");	
4682        	}else if(_data.hoursAgo > 0){
4683        		sel('[data-data_type="datetime"]', _wrapperLinkEle).innerHTML = _data.hoursAgo + "시간 전";
4684        	}else{
4685        		if(_data.minutesAgo == 0){
4686        			sel('[data-data_type="datetime"]', _wrapperLinkEle).innerHTML = "방금 전";
4687        		}else{
4688        			sel('[data-data_type="datetime"]', _wrapperLinkEle).innerHTML = _data.minutesAgo + "분 전";	
4689        		}
4690        	}
4691
4692        	/* if(_data.bestOrderNo > 0){
4693        		showEles(sel('[data-column-name="hotIcon"]', _el));
4694        	}else{
4695        		if(bts.getData(bts.dataKeys.currEpReviewType) == "best"){
4696        			showEles(sel('[data-column-name="hotIcon"]', _el));
4697        		}else{
4698        			hideEles(sel('[data-column-name="hotIcon"]', _el));	
4699        		}
4700        	} */
4701        	
4702        	sel('[data-column-name="epTitle"]', _el).innerHTML	= _data.title;
4703        	sel('[data-column-name="goodPoint"]', _el).innerHTML	= _data.goodPoint;
4704        	sel('[data-column-name="weakPoint"]', _el).innerHTML	= _data.weakPoint;
4705        	/* sel('[data-column-name="wishingPoint"]', _el).innerHTML	= _data.wishingPoint; */
4706        	
4707        	sel('[data-column-name="likeCnt"]', _el).innerHTML	= `<span class="value">${_data.likeCnt}</span>`;
4708        	sel('[data-column-name="commentCnt"]', _el).innerHTML	= `<span class="value">${_data.commentCnt}</span>`;
4709        	sel('[data-column-name="viewCnt"]', _el).innerHTML	= `<span class="value">${_data.viewCnt}</span>`;
4710        	
4711        	dataListEle.appendChild(_el);
4712            isFunction(callback) && callback(_el);
4713        };
4714        /* 직원리뷰 */
4715        
4716        /* 빡침주의 */
4717        _this.renderRowComplainReview = function(_data, dataListEle, callbackItemClick, callback) {
4718        	var _el = cloneEle(sel('[data-ele-name="templateWrapperComplainReview"]', _ele.p));
4719        	var _wrapperLinkEle = sel('[data-column-name="wrapperComplainReviewLink"]'		, _el);
4720        	
4721        	_wrapperLinkEle.href = bts.seo.parseDetailPath(bts.path.complainReviewDetail, _data.no, "");
4722    		_wrapperLinkEle.onclick = function(event) {
4723                console.log('row click');
4724                var __this = this;
4725                callbackItemClick(event, __this);
4726            };
4727  
4728            if(_data.complainReviewType == "P"){
4729            	sel('[data-column-name="complainNickName"]', _wrapperLinkEle).innerHTML = "‘"+_data.provName+"’" + " 고객";
4730            }else{
4731            	if(_data.provName){
4732            		sel('[data-column-name="complainNickName"]', _wrapperLinkEle).innerHTML = "‘"+_data.doctorName + " 원장’ 고객" + " (" + _data.provName +")";	
4733            	}else{
4734            		sel('[data-column-name="complainNickName"]', _wrapperLinkEle).innerHTML = "‘"+_data.doctorName + " 원장’ 고객";	
4735            	}
4736            }
4737            	
4738        	if(_data.hoursAgo >= 24){
4739        		sel('[data-data_type="datetime"]', _wrapperLinkEle).innerHTML = new Date(_data.regDate).format("yy.MM.dd");	
4740        	}else if(_data.hoursAgo > 0){
4741        		sel('[data-data_type="datetime"]', _wrapperLinkEle).innerHTML = _data.hoursAgo + "시간 전";
4742        	}else{
4743        		if(_data.minutesAgo == 0){
4744        			sel('[data-data_type="datetime"]', _wrapperLinkEle).innerHTML = "방금 전";
4745        		}else{
4746        			sel('[data-data_type="datetime"]', _wrapperLinkEle).innerHTML = _data.minutesAgo + "분 전";	
4747        		}
4748        	}
4749
4750        	/* if(_data.bestOrderNo > 0){
4751        		showEles(sel('[data-column-name="hotIcon"]', _el));
4752        	}else{
4753        		if(bts.getData(bts.dataKeys.currComplainReviewType) == "best"){
4754        			showEles(sel('[data-column-name="hotIcon"]', _el));
4755        		}else{
4756        			hideEles(sel('[data-column-name="hotIcon"]', _el));	
4757        		}
4758        	} */
4759        	
4760        	sel('[data-column-name="complainTitle"]', _el).innerHTML	= _data.title;
4761        	sel('[data-column-name="complainPoint"]', _el).innerHTML	= _data.complainPoint;
4762        	sel('[data-column-name="goodPoint"]', _el).innerHTML	= _data.goodPoint;
4763        	/* sel('[data-column-name="wishingPoint"]', _el).innerHTML	= _data.wishingPoint; */
4764        	
4765        	sel('[data-column-name="likeCnt"]', _el).innerHTML	= `<span class="value">${_data.likeCnt}</span>`;
4766        	sel('[data-column-name="commentCnt"]', _el).innerHTML	= `<span class="value">${_data.commentCnt}</span>`;
4767        	sel('[data-column-name="viewCnt"]', _el).innerHTML	= `<span class="value">${_data.viewCnt}</span>`;
4768        	
4769        	dataListEle.appendChild(_el);
4770            isFunction(callback) && callback(_el);
4771        };
4772        /* 빡침주의 */
4773        
4774        /* /게시판 */
4775        _this.renderRowBoard = function(_data, dataListEle, callbackItemClick, callback) {
4776        	var _el = cloneEle(sel('[data-ele-name="templateWrapperBoard"]', _ele.p));
4777        	var _wrapperLinkEle = sel('[data-column-name="wrapperLink"]'		, _el);
4778        	var _touchItem = _wrapperLinkEle.parentNode;
4779        	
4780        	/* _wrapperLinkEle.onclick = function(event) {
4781                bts.isDebug() && console.log(_this.ns + '.renderRowBoard :: row click');
4782                var __this = this;
4783                isFunction(callbackCommentClick) && callbackCommentClick(event, __this);
4784            }; */
4785        	
4786        	
4787        	if(_data.hoursAgo >= 24){
4788        		sel('[data-data_type="datetime"]', _wrapperLinkEle).innerHTML = new Date(_data.regDate).format("yyyy.MM.dd");	
4789        	}else if(_data.hoursAgo > 0){
4790        		sel('[data-data_type="datetime"]', _wrapperLinkEle).innerHTML = _data.hoursAgo + "시간 전";
4791        	}else{
4792        		if(_data.minutesAgo == 0){
4793        			sel('[data-data_type="datetime"]', _wrapperLinkEle).innerHTML = "방금 전";
4794        		}else{
4795        			sel('[data-data_type="datetime"]', _wrapperLinkEle).innerHTML = _data.minutesAgo + "분 전";	
4796        		}
4797        	}
4798        	
4799        	if(_data.bbhsOrderNo > 0){
4800        		// showEles(sel('[data-column-name="boardHotIcon"]', _wrapperLinkEle));
4801        		$('[data-column-name="boardContents"]', _wrapperLinkEle).addClass('best');
4802        	}else{
4803        		if(bts.getData(bts.dataKeys.currBoardType) == "best"){
4804        			$('[data-column-name="boardContents"]', _wrapperLinkEle).addClass('best');
4805        		}else{
4806        			$('[data-column-name="boardContents"]', _wrapperLinkEle).removeClass('best');
4807        		}
4808        	}
4809        	
4810    		/* if(_data.likeCnt > 0){
4811    			sel('[data-column-name="likeCnt"]', _el).classList.add('on'); 
4812    		} */
4813        	sel('[data-column-name="likeCnt"]', _el).innerHTML	= `<span class="value">${_data.likeCnt}</span>`;
4814        	sel('[data-column-name="commentCnt"]', _el).innerHTML	= `<span class="value">${_data.commentCnt}</span>`;
4815        	sel('[data-column-name="viewCnt"]', _el).innerHTML	= `<span class="value">${_data.viewCnt}</span>`;
4816        	
4817        	sel('[data-column-name="boardContents"]', _wrapperLinkEle).innerHTML = _data.title ;
4818        	
4819        	var _imageEle = sel('[data-column-name="profileImage"]' , _wrapperLinkEle);
4820        	if(_data.boardTypeCd == "anon"){
4821        		sel('[data-data_key="nickName"]' , _wrapperLinkEle).innerHTML = "글쓴이";
4822        		// 이미지 지연 로딩
4823                // if (_this.isLazyTarget(dataListEle)) {
4824                //     _imageEle.dataset.backgroundImage	= 'url(/img/anonymous-writer.png)';
4825                //     _imageEle.classList.add('lazy');
4826                // } else {
4827                //     _imageEle.style.backgroundImage	= 'url(/img/anonymous-writer.png)';
4828                // }
4829                _imageEle.style.backgroundImage	= 'url(/img/anonymous-writer.png)';
4830        	}else{
4831        		sel('[data-data_key="nickName"]' , _wrapperLinkEle).innerHTML = _data.nickName;
4832	        	//if (_data.profileImgKey && _data.profileFileNm) {
4833	        	if (_data.profileFileNm) {
4834	                //var _imageEle = sel('[data-column-name="profileImage"]' , _wrapperLinkEle);
4835	                var _url = bts.url.getCdnImg('profile', _data.profileFileNm);
4836					
4837	                // 이미지 지연 로딩
4838	                // if (_this.isLazyTarget(dataListEle)) {
4839	                //     _imageEle.dataset.backgroundImage	= 'url(' + _url + ')';
4840	                //     _imageEle.classList.add('lazy');
4841	                // } else {
4842	                //     _imageEle.style.backgroundImage	= 'url(' + _url + ')';
4843	                // }
4844					_imageEle.style.backgroundImage	= 'url(' + _url + ')';
4845	            } 
4846        	}
4847        	
4848        	if (typeof _data.fileNmArry != "undefined") {
4849        		var pFileNmArry = _data.fileNmArry.split(',');
4850        		for(i=0; i<pFileNmArry.length; i++){
4851        			var _url = bts.url.getCdnImg('board', pFileNmArry[i]);
4852            		var _elImgLi = cloneEle(sel('[data-ele-name="templateWrapperBoardImg"]', _el));
4853            		sel('[data-column-name="image"]',_elImgLi).style.backgroundImage = 'url(' + _url + ')';
4854					sel('[data-column-name="image"]',_elImgLi).style.backgroundSize = "cover";
4855					sel('[data-column-name="image"]',_elImgLi).style.backgroundPosition = "center";
4856            		sel('[data-column-name="templateImg"]', _el).appendChild(_elImgLi);
4857            	}
4858        		// if(pFileNmArry.length == 5){
4859        		// 	sel('[data-column-name="templateImg"]', _el).style.width = "100%";
4860        		// }
4861        	}else{
4862        		// _touchItem.classList.add('not-file');
4863				$('[data-column-name="templateImgDiv"]', _el).hide();
4864        	}
4865        	if(_data.boardTypeCd == "anon"){
4866        		_wrapperLinkEle.onclick = function(event) {
4867                    console.log('row click');
4868                    sts.loginUrlHref(bts.seo.parseDetailPath(bts.path.boadDetail, _data.no, ""));
4869                };
4870        	}else{
4871        		_wrapperLinkEle.href = bts.seo.parseDetailPath(bts.path.boadDetail, _data.no, "");
4872        		_wrapperLinkEle.onclick = function(event) {
4873                    console.log('row click');
4874                    var __this = this;
4875                    callbackItemClick(event, __this);
4876                };
4877        	}
4878
4879        	//_wrapperLinkEle.href = bts.seo.parseDetailPath(bts.path.boadDetail, _data.no, "");
4880        	//_wrapperLinkEle.onclick = function(event) {
4881                //console.log('row click');
4882                //sts.loginUrlHref(bts.seo.parseDetailPath(bts.path.boadDetail, _data.no, ""));
4883                //var __this = this;
4884                //callbackItemClick(event, __this);
4885            //};
4886        	dataListEle.appendChild(_el);
4887            isFunction(callback) && callback(_el);
4888        };
4889        /* 게시판 /*/
4890        
4891         /* 게시판 댓글/*/
4892        _this.renderRowBoardComment = function(_data, dataListEle, callbackItemClick, callback) {
4893        	var _el = cloneEle(sel('[data-ele-name="templateWrapperBoardComment"]', _ele.p));
4894        	var _templatcomment = sel('[data-column-name="templatcomment"]'		, _el);
4895
4896        	if(_data.parentNo){
4897        		sel('[data-column-name="templateCommentItem"]', _el).classList.add('reply');
4898        	}
4899        	//if(!_data.parentNo){
4900        		showEles(sel('[data-column-name="commentCrud"]',_el));
4901        	//} 
4902        	var _imageEle = sel('[data-column-name="profileImage"]' , _el);
4903        	if(_data.boardTypeCd == "anon"){
4904        		sel('[data-data_key="nickName"]'		, _el).innerHTML = "익명";
4905        		
4906        		// if (_this.isLazyTarget(dataListEle)) {
4907                //     _imageEle.dataset.backgroundImage	= 'url(/img/anonymous-commenter.png)';
4908                //     _imageEle.classList.add('lazy');
4909                // } else {
4910                //     _imageEle.style.backgroundImage	= 'url(/img/anonymous-commenter.png)';
4911                // }
4912				_imageEle.style.backgroundImage	= 'url(/img/anonymous-commenter.png)';
4913        	}else{
4914        		sel('[data-data_key="nickName"]'		, _el).innerHTML = _data.nickName;
4915        		//if (_data.profileImgKey && _data.profileFileNm) {
4916        		if (_data.profileFileNm) {                    
4917                    var _url = bts.url.getCdnImg('profile', _data.profileFileNm);
4918    				
4919                    // 이미지 지연 로딩
4920                    // if (_this.isLazyTarget(dataListEle)) {
4921                    //     _imageEle.dataset.backgroundImage	= 'url(' + _url + ')';
4922                    //     _imageEle.classList.add('lazy');
4923                    // } else {
4924                    //     _imageEle.style.backgroundImage	= 'url(' + _url + ')';
4925                    // }
4926                    _imageEle.style.backgroundImage	= 'url(' + _url + ')';
4927                }
4928        	} 
4929        	
4930        	if(_data.hoursAgo >= 24){
4931        		sel('[data-data_type="datetime"]', _el).innerHTML = _data.regDate;
4932        	}else if(_data.hoursAgo > 0){
4933        		sel('[data-data_type="datetime"]', _el).innerHTML = _data.hoursAgo + "시간 전";
4934        	}else{
4935        		if(_data.minutesAgo == 0){
4936        			sel('[data-data_type="datetime"]', _el).innerHTML = "방금 전";
4937        		}else{
4938        			sel('[data-data_type="datetime"]', _el).innerHTML = _data.minutesAgo + "분 전";
4939        		}
4940        		
4941        	}
4942        	
4943			$('[data-ele-name="btnMore"]', _el).off().on('click', function(e) {
4944				e.preventDefault();
4945				var selectObj = [];
4946				if(__userNo == _data.userNo){
4947					selectObj = [
4948						[
4949							{'text':'삭제', 'val':'delete'},
4950						]
4951					]				
4952				} else {
4953					selectObj = [
4954						[
4955							{'text':'신고하기', 'val':'report'},
4956						]
4957					]				
4958				}
4959				selectSingleModal.init(
4960					selectObj
4961					,function(selectVal){
4962						if(selectVal[0] == 'delete'){
4963							if(!bts.requiredLoginModal()) {
4964								return false;
4965							}
4966							deleteBoardCommentModal.init(_data.boardCommentNo);
4967						}else if(selectVal[0] == 'report'){
4968							if(!bts.requiredLoginModal()) {
4969								return false;
4970							}
4971							reportModal.init(_data.boardCommentNo);
4972						}
4973					}
4974				);
4975			});
4976        	
4977			// 신고하기 하단팝업
4978			$('.board-siren-img', _el).off().on('click',function(e){
4979				e.preventDefault();
4980				// console.log(">>>>board-siren-img........");
4981				// $('.impleSlidingBtmMd').addClass('on');
4982				// $('body').append('<div class="modal-backdrop fade show"></div>');
4983				var selectObj = [];
4984				selectObj = [
4985					[
4986						{'text':'리뷰 신고', 'val':'report'},
4987						{'text':'회원 차단', 'val':'memberBlock'},
4988					]
4989				];
4990				selectSingleModal.init(
4991					selectObj
4992					,function(selectVal){
4993						if(selectVal[0] == 'report'){
4994							reportUserModal.init(_data.boardCommentNo);
4995						}else if(selectVal[0] == 'memberBlock'){
4996							bts.toast("차단되었습니다.");
4997						}
4998					}
4999				);
5000			});
5001
5002			sel('[data-data_type="datetime"]', _el).innerHTML = _data.regDate;
5003
5004        	// var _deleteCommentModal = sel('[data-ele-name="deleteCommentModal"]', _el);
5005        	// _deleteCommentModal.onclick = function (event) {
5006        	// 	event.preventDefault();
5007        		
5008        	// 	if(!bts.requiredLoginModal()) {
5009        	// 	    return false;
5010        	// 	}
5011        	// 	deleteBoardCommentModal.init(_data.boardCommentNo);
5012            // };
5013        	// var _reportModal = sel('[data-ele-name="reportModal"]', _el);
5014        	// _reportModal.onclick = function (event) {
5015        	// 	event.preventDefault();
5016        		
5017        	// 	if(!bts.requiredLoginModal()) {
5018        	// 	    return false;
5019        	// 	}
5020        	// 	reportModal.init(_data.boardCommentNo);
5021            // };
5022            // if(__userNo == _data.userNo){
5023            // 	showEles(_deleteCommentModal);
5024            // 	hideEles(_reportModal);
5025            // }else{
5026            // 	hideEles(_deleteCommentModal);
5027            // 	showEles(_reportModal);
5028            // }
5029        	
5030        	$('[data-column-name="commentCrud"]', _el).off().on('click', function(event) {
5031        		if(!bts.requiredLoginModal()) {
5032					bts.setData(bts.dataKeys.cachedModalYn, bts.consts.yn.y); //[개선] 비회원 시 견적/이벤트신청/리뷰 작성 플로우
5033					return false;
5034				}
5035        		$('[data-column-name="commentContentsText"]').text("");
5036        		$("#parentNo").val(_data.no);
5037        		$("#parentName").val(_data.nickName);
5038        		$("#tagUserNo").val(_data.userNo);
5039
5040        		if(_data.boardTypeCd == "anon"){
5041        			$('[data-column-name="commentContentsText"]').val("@익명 ");
5042        		}else{
5043        			$('[data-column-name="commentContentsText"]').val("@"+$("#parentName").val()+" ");
5044        		}
5045        		var len = $('[data-column-name="commentContentsText"]').val().length;
5046        		$('[data-column-name="commentContentsText"]').focus();
5047        		$('[data-column-name="commentContentsText"]')[0].setSelectionRange(len, len);
5048
5049        	});
5050
5051        	sel('[data-column-name="commentContents"]', _el).innerHTML = _data.contents;
5052        	dataListEle.appendChild(_el);
5053            isFunction(callback) && callback(_el);
5054        };
5055        /* 게시판 댓글/*/
5056        
5057        
5058        /* 직원리뷰 댓글/*/
5059        _this.renderRowEpReviewComment = function(_data, dataListEle, callbackItemClick, callback) {
5060        	var _el = cloneEle(sel('[data-ele-name="templateWrapperEpReviewComment"]', _ele.p));
5061        	var _templatcomment = sel('[data-column-name="templatcomment"]'		, _el);
5062        	if(_data.parentNo){
5063        		sel('[data-column-name="templateCommentItem"]', _el).classList.add('reply');
5064        	}
5065        	//if(!_data.parentNo){
5066        		showEles(sel('[data-column-name="commentCrud"]',_el));
5067        	//} 
5068        	var _imageEle = sel('[data-column-name="profileImage"]' , _el);
5069        	//if(_data.boardTypeCd == "anon"){
5070        		sel('[data-data_key="nickName"]'		, _el).innerHTML = "익명";
5071        		
5072        		if (_this.isLazyTarget(dataListEle)) {
5073                    _imageEle.dataset.backgroundImage	= 'url(/img/anonymous-commenter.png)';
5074                    _imageEle.classList.add('lazy');
5075                } else {
5076                    _imageEle.style.backgroundImage	= 'url(/img/anonymous-commenter.png)';
5077                }
5078        	/* }else{
5079        		sel('[data-data_key="nickName"]'		, _el).innerHTML = _data.nickName;
5080        		if (_data.profileImgKey && _data.profileFileNm) {
5081                    
5082                    var _url = bts.url.getCdnImg('profile', _data.profileFileNm);
5083    				
5084                    // 이미지 지연 로딩
5085                    if (_this.isLazyTarget(dataListEle)) {
5086                        _imageEle.dataset.backgroundImage	= 'url(' + _url + ')';
5087                        _imageEle.classList.add('lazy');
5088                    } else {
5089                        _imageEle.style.backgroundImage	= 'url(' + _url + ')';
5090                    }
5091                }
5092        	} */ 
5093        	
5094        	if(_data.hoursAgo >= 24){
5095        		sel('[data-data_type="datetime"]', _el).innerHTML = new Date(_data.regDate).format("yy.MM.dd");
5096        	}else if(_data.hoursAgo > 0){
5097        		sel('[data-data_type="datetime"]', _el).innerHTML = _data.hoursAgo + "시간 전";
5098        	}else{
5099        		if(_data.minutesAgo == 0){
5100        			sel('[data-data_type="datetime"]', _el).innerHTML = "방금 전";
5101        		}else{
5102        			sel('[data-data_type="datetime"]', _el).innerHTML = _data.minutesAgo + "분 전";
5103        		}
5104        		
5105        	}
5106        	//console.log(_data);
5107        	//sel('[data-data_type="datetime"]', _el).innerHTML = _data.regDate;
5108        	var _deleteCommentModal = sel('[data-ele-name="deleteCommentModal"]', _el);
5109        	_deleteCommentModal.onclick = function (event) {
5110        		event.preventDefault();
5111        		
5112        		if(!bts.requiredLoginModal()) {
5113        		    return false;
5114        		}
5115        		deleteEpReviewModal.init(_data.no);
5116            };
5117            
5118        	var _reportModal = sel('[data-ele-name="reportModal"]', _el);
5119        	_reportModal.onclick = function (event) {
5120        		event.preventDefault();
5121        		
5122        		if(!bts.requiredLoginModal()) {
5123        		    return false;
5124        		}
5125        		reportModal.init(_data.no);
5126            };
5127            if(__userNo == _data.userNo){
5128            	showEles(_deleteCommentModal);
5129            	hideEles(_reportModal);
5130            }else{
5131            	hideEles(_deleteCommentModal);
5132            	showEles(_reportModal);
5133            }
5134        	
5135        	sel('[data-column-name="commentCrud"]', _el).onclick = function(event) {
5136        		if(!bts.requiredLoginModal()) {
5137					bts.setData(bts.dataKeys.cachedModalYn, bts.consts.yn.y); //[개선] 비회원 시 견적/이벤트신청/리뷰 작성 플로우
5138					return false;
5139				}
5140        		$('[data-column-name="commentContentsText"]').text("");
5141        		$("#parentNo").val(_data.no);
5142        		$("#parentName").val(_data.nickName);
5143        		$("#tagUserNo").val(_data.userNo);
5144        		
5145        		//if(_data.boardTypeCd == "anon"){
5146        			$('[data-column-name="commentContentsText"]').val("@익명 ");
5147        		/* }else{
5148        			$('[data-column-name="commentContentsText"]').val("@"+$("#parentName").val()+" ");
5149        		} */
5150        		var len = $('[data-column-name="commentContentsText"]').val().length;
5151        		$('[data-column-name="commentContentsText"]').focus();
5152        		$('[data-column-name="commentContentsText"]')[0].setSelectionRange(len, len);
5153
5154        	}; 
5155        	sel('[data-column-name="commentContents"]', _el).innerHTML = _data.contents;
5156        	dataListEle.appendChild(_el);
5157            isFunction(callback) && callback(_el);
5158        };
5159        /* 직원리뷰 댓글/*/
5160        
5161        /* 빡침주의 댓글/*/
5162        _this.renderRowComplainReviewComment = function(_data, dataListEle, callbackItemClick, callback) {
5163        	console.log(_data);
5164        	var _el = cloneEle(sel('[data-ele-name="templateWrapperEpReviewComment"]', _ele.p));
5165        	var _reportModal = sel('[data-ele-name="reportModal"]', _el);
5166        	var _templatcomment = sel('[data-column-name="templatcomment"]'		, _el);
5167        	var _imageEle = sel('[data-column-name="profileImage"]' , _el);
5168        	
5169        	if(_data.parentNo){
5170        		sel('[data-column-name="templateCommentItem"]', _el).classList.add('reply');
5171        	}
5172        	if(_data.complainReviewType != "M"){
5173        		showEles(sel('[data-column-name="commentCrud"]',_el));
5174        		sel('[data-data_key="nickName"]'		, _el).innerHTML = "익명";
5175        		
5176        		if (_this.isLazyTarget(dataListEle)) {
5177                    _imageEle.dataset.backgroundImage	= 'url(/img/anonymous-commenter.png)';
5178                    _imageEle.classList.add('lazy');
5179                } else {
5180                    _imageEle.style.backgroundImage	= 'url(/img/anonymous-commenter.png)';
5181                }
5182        	}else{
5183        		_el.classList.add('admin');
5184        		sel('[data-data_key="nickName"]'		, _el).innerHTML = "병원담당자";
5185        		hideEles(_reportModal);
5186        		
5187        		if (_data.profileImgKey && _data.profileFileNm) {
5188        			var _url = bts.url.getCdnImg(_data.profileImgKey, _data.profileFileNm);
5189        			
5190        			if (_this.isLazyTarget(dataListEle)) {
5191                        _imageEle.dataset.backgroundImage	= 'url(' + _url + ')';
5192                        _imageEle.classList.add('lazy');
5193                    } else {
5194                        _imageEle.style.backgroundImage	= 'url(' + _url + ')';
5195                    }
5196        		};
5197        	}
5198        	
5199       		
5200       		
5201        	
5202        	if(_data.hoursAgo >= 24){
5203        		//sel('[data-data_type="datetime"]', _el).innerHTML = _data.regDate;	
5204        		sel('[data-data_type="datetime"]', _el).innerHTML = new Date(_data.regDate).format("yy.MM.dd");	
5205        	}else if(_data.hoursAgo > 0){
5206        		sel('[data-data_type="datetime"]', _el).innerHTML = _data.hoursAgo + "hour ago"; //시간 전
5207        	}else{
5208        		if(_data.minutesAgo == 0){
5209        			sel('[data-data_type="datetime"]', _el).innerHTML = "a few seconds ago"; //방금 전
5210        		}else{
5211        			sel('[data-data_type="datetime"]', _el).innerHTML = _data.minutesAgo + "minute ago"; //분 전
5212        		}
5213        		
5214        	}
5215
5216        	var _deleteCommentModal = sel('[data-ele-name="deleteCommentModal"]', _el);
5217        	_deleteCommentModal.onclick = function (event) {
5218        		event.preventDefault();
5219        		
5220        		if(!bts.requiredLoginModal()) {
5221        		    return false;
5222        		}
5223        		deleteCpReviewModal.init(_data.no);
5224            };
5225            
5226        	var _reportModal = sel('[data-ele-name="reportModal"]', _el);
5227        	_reportModal.onclick = function (event) {
5228        		event.preventDefault();
5229        		
5230        		if(!bts.requiredLoginModal()) {
5231        		    return false;
5232        		}
5233        		reportModal.init(_data.no);
5234            };
5235            if(__userNo == _data.userNo){
5236            	showEles(_deleteCommentModal);
5237            	hideEles(_reportModal);
5238            }else{
5239            	hideEles(_deleteCommentModal);
5240            	showEles(_reportModal);
5241            }
5242        	
5243        	/* _reportModal.onclick = function (event) {
5244        		event.preventDefault();
5245        		
5246        		if(!bts.requiredLoginModal()) {
5247        		    return false;
5248        		}
5249        		reportModal.init(_data.no);
5250            };
5251            if(__userNo == _data.userNo){
5252            	hideEles(_reportModal);
5253            } */
5254        	
5255        	sel('[data-column-name="commentCrud"]', _el).onclick = function(event) {
5256        		if(!bts.requiredLoginModal()) {
5257					bts.setData(bts.dataKeys.cachedModalYn, bts.consts.yn.y); //[개선] 비회원 시 견적/이벤트신청/리뷰 작성 플로우
5258					return false;
5259				}
5260        		$('[data-column-name="commentContentsText"]').text("");
5261        		$("#parentNo").val(_data.no);
5262        		$("#parentName").val(_data.nickName);
5263        		$("#tagUserNo").val(_data.userNo);
5264        		
5265        		//if(_data.boardTypeCd == "anon"){
5266        			$('[data-column-name="commentContentsText"]').val("@익명 ");
5267        		/* }else{
5268        			$('[data-column-name="commentContentsText"]').val("@"+$("#parentName").val()+" ");
5269        		} */
5270        		var len = $('[data-column-name="commentContentsText"]').val().length;
5271        		$('[data-column-name="commentContentsText"]').focus();
5272        		$('[data-column-name="commentContentsText"]')[0].setSelectionRange(len, len);
5273
5274        	}; 
5275        	sel('[data-column-name="commentContents"]', _el).innerHTML = _data.contents;
5276        	dataListEle.appendChild(_el);
5277            isFunction(callback) && callback(_el);
5278        };
5279        /* 빡침주의 댓글/*/
5280        
5281        /* /마이 페이지 게시판 */
5282        _this.renderRowMyBoard = function(_data, dataListEle, callbackItemClick, callback) {
5283        	var _el = cloneEle(sel('[data-ele-name="templateWrapperMyBoard"]', _ele.p));
5284        	var _wrapperLinkEle = sel('[data-column-name="wrapperLink"]'		, _el);
5285        	var _wrapperLinkSecondEle = sel('[data-column-name="wrapperLinkSecond"]', _el);
5286        	
5287        	_wrapperLinkEle.onclick = function(event) {
5288                bts.isDebug() && console.log(_this.ns + '.renderRowBoard :: row click');
5289                var __this = this;
5290                // isFunction(callbackCommentClick) && callbackCommentClick(event, __this);
5291            };
5292            _wrapperLinkSecondEle.onclick = function(event) {
5293                bts.isDebug() && console.log(_this.ns + '.renderRowBoard :: row click');
5294                var __this = this;
5295                isFunction(callbackCommentClick) && callbackCommentClick(event, __this);
5296            };
5297            _wrapperLinkEle.href = bts.seo.parseDetailPath(bts.path.boadDetail, _data.no, "");
5298            _wrapperLinkSecondEle.href = bts.seo.parseDetailPath(bts.path.boadDetail, _data.no, "");
5299            sel('[data-data_type="datetime"]', _el).innerHTML = new Date(_data.regDate).format("yyyy.MM.dd");
5300            sel('[data-column-name="likeCnt"]', _el).innerHTML	= `<span class="value">${_data.likeCnt}</span>`;
5301        	sel('[data-column-name="commentCnt"]', _el).innerHTML	= `<span class="value">${_data.commentCnt}</span>`;
5302        	sel('[data-column-name="boardContents"]', _el).innerHTML = _data.title;
5303            if (typeof _data.fileNmArry != "undefined") {
5304        		var pFileNmArry = _data.fileNmArry.split(',');
5305        		for(i=0; i<pFileNmArry.length; i++){
5306        			var _url = bts.url.getCdnImg('board', pFileNmArry[i]);
5307            		var _elImgLi = cloneEle(sel('[data-ele-name="templateWrapperBoardImg"]', _el));
5308            		sel('[data-column-name="image"]',_elImgLi).style.backgroundImage = "url(" + _url + ")";
5309            		sel('[data-column-name="templateImg"]', _el).appendChild(_elImgLi);
5310            	}
5311        	}
5312            sel('[data-column-name="deleteBt"]', _el).onclick = function(event) {
5313            	bts.confirm("게시글을 삭제하시겠습니까?", function() {
5314					reqBoardDelete(_data.no, function () {
5315						location.reload();
5316                    }); 
5317                }, function() {
5318                }, "알림", "삭제", "취소");
5319            }
5320        	
5321        	dataListEle.appendChild(_el);
5322            isFunction(callback) && callback(_el);
5323        };
5324        /* 마이 페이지  게시판 /*/
5325        
5326        
5327        
5328        /* /마이 페이지 댓글 */
5329        _this.renderRowMyComment = function(_data, dataListEle, callbackItemClick, callback) {
5330        	var _el = cloneEle(sel('[data-ele-name="templateWrapperMyComment"]', _ele.p));
5331        	var _wrapperLinkEle = sel('[data-column-name="wrapperLink"]'		, _el);
5332
5333        	_wrapperLinkEle.onclick = function(event) {
5334                bts.isDebug() && console.log(_this.ns + '.renderRowBoard :: row click');
5335                var __this = this;
5336                // isFunction(callbackCommentClick) && callbackCommentClick(event, __this);
5337            };
5338           
5339            _wrapperLinkEle.href = bts.seo.parseDetailPath(bts.path.boadDetail, _data.boardNo, "");
5340            sel('[data-data_type="datetime"]', _el).innerHTML = new Date(_data.regDate).format("yyyy.MM.dd");
5341            sel('[data-column-name="boardContents"]', _el).innerHTML =_data.contents;
5342            sel('[data-column-name="deleteBt"]', _el).onclick = function(event) {
5343            	bts.confirm(bts.text.common_msg_do_you_want_to_delete, function() {
5344            		reqBoardCommentDelete(_data.boardCommentNo, function () {
5345						location.reload();
5346                    });  
5347                }, function() {
5348                }, "알림", "삭제", "취소");
5349            }
5350        	
5351        	dataListEle.appendChild(_el);
5352            isFunction(callback) && callback(_el);
5353        };
5354        /* 마이 페이지  댓글 /*/
5355        
5356      	var reqBoardDelete = function (boardNo, returnFnc, errorFnc) {
5357		    var params = {boardNo: boardNo};
5358			ajax({
5359				url: bts.url.getRapi() + "/board/delete",
5360				type: 'post',
5361				data: params,
5362				alertManual: true,
5363				success: function(res){
5364					var body = res.body;
5365					returnFnc(res);
5366				}, error: function(e) {
5367
5368					isFunction(errorFnc) && errorFnc(e);
5369					bts.err(ns + '.svc.reqReview :: ', e);
5370				}
5371			});
5372        };
5373        var reqBoardCommentDelete = function (boardCommentNo, returnFnc, errorFnc) {
5374		    var params = {boardCommentNo: boardCommentNo};
5375			ajax({
5376				url: bts.url.getRapi() + "/board/comment/delete",
5377				type: 'post',
5378				data: params,
5379				alertManual: true,
5380				success: function(res){
5381					var body = res.body;
5382					returnFnc(res);
5383				}, error: function(e) {
5384
5385					isFunction(errorFnc) && errorFnc(e);
5386					bts.err(ns + '.svc.reqReview :: ', e);
5387				}
5388			});
5389        };
5390        
5391        
5392        return _this;
5393    }; return new ListItems;})();
5394	/*]]>*/
5395	</script>
5395
5396
5397	
5398<div data-ele-name="templateWrapperDetailItems" style="display: none">
5399	<div data-ele-name="templateWrapperMoreToggleBtn">
5400		<!--<a href="#" data-toggle="folding">
5401			<span th:data-text-folding="#{common.msg.folding}" th:data-text-more="#{common.msg.more}"
5402					data-column-name="foldState"
5403					th:text="#{common.msg.more}">
5404			</span> <i class="xi-angle-down"></i>
5405		</a>-->
5406		<a href="#" data-toggle="folding" data-line="2">
5407			<p class="box-shadow"></p><span data-text-folding="Fold" data-text-more="More"
5408					data-column-name="foldState">More</span>
5409		</a>
5410	</div>
5411</div>
5412<script>
5413	/*<![CDATA[*/
5414	var detailItems = (function() {
5415		
5416		var ns = 'detailItems';
5417
5418		var _pEle = sel('[data-ele-name="templateWrapperDetailItems"]');
5419		var _di = {
5420			el: {
5421				 p: _pEle
5422				,moreToggleBtn: sel('[data-ele-name="templateWrapperMoreToggleBtn"]', _pEle)
5423				,_end: null
5424			}
5425		};
5426		
5427		var init = function() {
5428		};
5429		init();
5430		_di.getMoreToggleBtn = function(line) {
5431			var btn = cloneEle(_di.el.moreToggleBtn);
5432			btn.dataset.line = line;
5433			return btn;
5434		};
5435		return _di;
5436	})();
5437	/*]]>*/
5438</script>
5438
5439
5440	
5441	<!-- S : contents -->
5442	<div id="contents" style="display: none">
5443	<input type="hidden" name="main_pg" value=""/>
5444	<input type="hidden" name="main_limit" value=""/>
5445	<input type="hidden" name="main_ordrBy" value=""/>
5446
5447    <div class="container search-main" data-ele-name="searchOptionsWrapper">
5448        <section class="main-menu">
5449            <div class="recent" data-ele-name="searchOptionsWrapperKeyword" style="display: none">
5450                <div class="data-null" data-ele-name="searchOptionRecentSearchKeywordEmptyList" style="display: none">
5451                    <div class="grid-div">
5452                        <div class="left">
5453                            <p>No Data</p>
5454                        </div>
5455                    </div>
5456                </div>
5457                <div class="app-inner">
5458                    <div class="labelline grid-div">
5459                        <div class="left">
5460                            <label class="search-label">Recently entered keywords</label>
5461                        </div>
5462                        <div class="right">
5463                            <a href="#" 
5464                                class="text-btn negative"
5465                                data-ele-name="btnRemoveRecentKeywords">Delete All</a>
5466                        </div>
5467                    </div>
5468                </div>
5469                <div class="list-selected global" data-ele-name="searchOptionRecentSearchKeywordList" style="display: none">
5470                    <span>강남역 <a href="#" class="ico delete">삭제</a></span>
5471                </div>
5472            </div>
5473            <div class="form-group" data-ele-name="searchOptionsWrapperRecommendKeyword" style="display: none">
5474                <div class="control-label">Recommended keywords</div>
5475                <div class="data-null" data-ele-name="searchOptionRecommendKeywordEmptyList" style="display: none">
5476                    <div class="grid-div">
5477                        <div class="left">
5478                            <p>No Data</p>
5479                        </div>
5480                    </div>
5481                </div>
5482                <ul class="form-row buttons-group type2" data-ele-name="searchOptionRecommendKeywordList" style="display: none">
5483                </ul>
5484            </div>
5485
5486            <!-- 시술 부위 선택  -->
5487            <div class="slideCategory slide-x-auto swiper" data-ele-name="searchOptionsWrapperTxPart" style="display: none">
5488                <div class="control-label" style="display: none;">Select body areas</div>
5489                <div class="data-null" data-ele-name="searchOptionTxPartEmptyList" style="display: none">
5490                    <div class="grid-div">
5491                        <div class="left">
5492                            <p>No Data</p>
5493                        </div>
5494                    </div>
5495                </div>
5496                <ul class="swiper-wrapper" data-ele-name="searchOptionTxPartList">
5497                    <li class="swiper-slide cte-item">
5498                    </li>
5499                </ul>
5500            </div>
5501        </section>
5502
5503        <div class="data-null" data-ele-name="searchOptionAreaEmptyList" style="display: none">
5504            <div class="grid-div">
5505                <div class="left">
5506                    <p>No Data</p>
5507                </div>
5508            </div>
5509        </div>
5510        <div class="select-region" data-ele-name="searchOptionsWrapperArea" style="display: none">
5511            <div class="select-region-inner">
5512                <div class="station">
5513                    <ul style="display:none" data-ele-name="searchOptionAreaList">
5514                    </ul>
5515                </div>
5516            </div>
5517        </div>
5518
5519        <!-- 템블릿 -->
5520        <div class="form-group" data-ele-name="templateWrapperList" style="display: none">
5521            <!-- 최근 검색어 -->
5522            <div class="list-selected global" style="display:none" data-ele-name="wrapperTemplateItem4">
5523                <span>
5524                    <em data-column-name="searchOptionItemNm">강남역</em> 
5525                    <a href="javascript:void(0)" class="ico delete" data-column-name="searchOptionItemDelete">삭제</a>
5526                </span>
5527            </div>
5528            <!--  -->
5529			<ul class="form-row buttons-group type2" style="display:none" data-ele-name="wrapperTemplateItem">
5530				<li>
5531                    <span class="label-wrp">
5532                        <a href="javascript:void(0)" class="label" data-column-name="searchOptionItemNm">loading...</a>
5533                        <button type="button" class="label-del" data-column-name="searchOptionItemDelete"><span class="sr-only">삭제</span><i class="xi-close"></i></button>
5534                    </span>
5535				</li>
5536			</ul>
5537            <!-- 지역  -->
5538			<ul style="display:none" data-ele-name="wrapperTemplateItem2">
5539				<li>
5540                    <label class="checkbox min">
5541                        <input type="checkbox" data-column-name="btnToggleItem">
5542                            <span data-column-name="searchOptionItemNm">loading...</span>
5543                        </span>
5544                    </label>
5545				</li>
5546			</ul>
5547            <!-- 시술  -->
5548			<ul style="display:none" data-ele-name="wrapperTemplateItem3">
5549				<li class="swiper-slide cte-item">
5550                    <a href="javascript:void(0)" class="item" data-column-name="btnToggleItem">
5551                        <div class="img">
5552                            <img class="categoryImg" data-column-name="categoryImg" src="/img/cte-eyes.png" alt="">
5553                            <input type="checkbox" class="sr-only" style="display: none;">
5554                        </div>
5555                        <span class="tit" data-column-name="searchOptionItemNm">눈</span>
5556                    </a>
5557                </li>
5558			</ul>
5559		</div>
5560
5561    </div>
5562
5563    <div class="container search-main result" data-ele-name="searchResultsWrapper" style="display: none">
5564        <div class="recent" data-ele-name="searchResultsSelTxPartsWrapperDiv" style="display: none">
5565            <div class="list-selected global" data-ele-name="searchResultsSelTxPartsWrapper">
5566            </div>
5567        </div>
5568        <div class="recent" data-ele-name="searchResultsSelAreasWrapperDiv" style="display: none">
5569            <div class="list-selected global" data-ele-name="searchResultsSelAreasWrapper">
5570            </div>
5571        </div>
5572        <div data-ele-name="wrapperTemplateItemTags" style="display: none">
5573            <span>
5574                    <em data-column-name="name">강남역</em> 
5575                    <a href="javascript:void(0)" class="ico delete" data-ele-name="btnDel" style="display: none;">삭제</a>
5576            </span>
5577		</div>
5578		
5579        <!-- 이벤트 -->
5580        <section class="app-section" data-feature="event">
5581            <div class="app-inner">
5582                <div class="grid-div">
5583                    <div class="left">
5584                        <label class="search-label">
5585                            <span>Promotion</span> 
5586                            <b><em class="red" data-column-name="totalCountEvent" style="display: none;">2</em></b>
5587                        </label>
5588                    </div>
5589                    <div class="right">
5590                        <a 
5591                            href="/event" 
5592                            class="text-btn negative" 
5593                            data-ele-name="btnSearchMoreEvent">More</a>
5594                    </div>
5595                </div>        
5596                <div class="list-default">
5597                    <div class="data-null" data-ele-name="emptyListEvent" style="display: none">
5598                        <div class="grid-div">
5599                            <div class="left">
5600                                <p>No Data</p>
5601                            </div>
5602                        </div>
5603                    </div>
5604                    <div class="data-null" data-ele-name="noSearchListEvent" style="display: none">
5605                        <div class="grid-div">
5606                            <div class="left">
5607                                <p>No Data</p>
5608                            </div>
5609                        </div>
5610                    </div>
5611                    <ul data-ele-name="dataListEvent" style="display: none">
5612                    </ul>
5613                </div>
5614            </div>
5615		</section>
5616
5617        <!-- 성형 후기 -->
5618        <section class="app-section div" data-feature="review">
5619            <div class="app-inner">
5620                <div class="grid-div">
5621                    <div class="left">
5622                        <label class="search-label">
5623                            <span>Reviews</span> 
5624                            <b><em class="red" data-column-name="totalCountReview">2</em></b>
5625                        </label>
5626                    </div>
5627                    <div class="right">
5628                        <a 
5629                            href="/review"
5630                            class="text-btn negative" 
5631                            data-ele-name="btnSearchMoreReview">More</a>
5632                    </div>
5633                </div>        
5634                <div class="list-board">
5635                    <div class="data-null" data-ele-name="emptyListReview" style="display: none">
5636                        <div class="grid-div">
5637                            <div class="left">
5638                                <p>No Data</p>
5639                            </div>
5640                        </div>
5641                    </div>
5642                    <div class="data-null" data-ele-name="noSearchListReview" style="display: none">
5643                        <div class="grid-div">
5644                            <div class="left">
5645                                <p>No Data</p>
5646                            </div>
5647                        </div>
5648                    </div>
5649                    <ul data-ele-name="dataListReview" style="display: none">
5650                    </ul>
5651                </div>
5652            </div>
5653		</section>
5654
5655        <!-- 게시판 -->
5656        <section class="app-section div">
5657            <div class="app-inner">
5658                <div class="grid-div">
5659                    <div class="left">
5660                        <label class="search-label">
5661                            <span >게시판</span> 
5662                            <b><em class="red" data-column-name="totalCountBoard">2</em></b>
5663                        </label>
5664                    </div>
5665                    <div class="right">
5666                        <a 
5667                            href="/board"
5668                            class="text-btn negative" 
5669                            data-ele-name="btnSearchMoreBoard">More</a>
5670                    </div>
5671                </div>        
5672                <div class="list-board">
5673                    <div class="data-null" data-ele-name="emptyListBoard" style="display: none">
5674                        <div class="grid-div">
5675                            <div class="left">
5676                                <p>No Data</p>
5677                            </div>
5678                        </div>
5679                    </div>
5680                    <div class="data-null" data-ele-name="noSearchListBoard" style="display: none">
5681                        <div class="grid-div">
5682                            <div class="left">
5683                                <p>No Data</p>
5684                            </div>
5685                        </div>
5686                    </div>
5687                    <ul data-ele-name="dataListBoard" style="display: none">
5688                    </ul>
5689                </div>
5690            </div>
5691		</section>
5692
5693		<!-- 빡침리뷰 - 미사용 -->
5694		<section class="sect" style="display: none">
5695			<div class="sect-title">
5696				<span>빡침리뷰</span><span>s</span>
5697				&nbsp;<span data-column-name="totalCountComplainReview">loading...</span>
5698				<a href="/complainReview" class="more" data-ele-name="btnSearchMoreComplainReview"><span>More</span> <i class="xi-angle-right"></i></a>
5699			</div>
5700			<ul class="lst-default lst-review" data-ele-name="emptyListComplainReview">
5701				<li class="no-data">
5702					No Data
5703				</li>
5704			</ul>
5705			<ul class="lst-default lst-review" data-ele-name="noSearchListComplainReview" style="display: none">
5706				<li class="no-data">
5707					No Search Results
5708				</li>
5709			</ul>
5710			<ul class="lst-default lst-review" data-ele-name="dataListComplainReview" style="display: none">
5711			</ul>
5712		</section>
5713		
5714        <!-- 직원리뷰 - 미사용 -->
5715		<section class="sect" style="display: none">
5716			<div class="sect-title">
5717				<span>직원리뷰</span><span>s</span>
5718				&nbsp;<span data-column-name="totalCountEpReview">loading...</span>
5719				<a href="/employeeReview" class="more" data-ele-name="btnSearchMoreEpReview"><span>More</span> <i class="xi-angle-right"></i></a>
5720			</div>
5721			<ul class="lst-default lst-review" data-ele-name="emptyListEpReview">
5722				<li class="no-data">
5723					No Data
5724				</li>
5725			</ul>
5726			<ul class="lst-default lst-review" data-ele-name="noSearchListEpReview" style="display: none">
5727				<li class="no-data">
5728					No Search Results
5729				</li>
5730			</ul>
5731			<ul class="lst-default lst-review" data-ele-name="dataListEpReview" style="display: none">
5732			</ul>
5733		</section>
5734		
5735        <!-- 시술방법 -->
5736        <section class="app-section div">
5737            <div class="app-inner">
5738                <div class="grid-div">
5739                    <div class="left">
5740                        <label class="search-label">
5741                            <span>Treatment</span> 
5742                            <b><em class="red" data-column-name="totalCountTxName">2</em></b>
5743                        </label>
5744                    </div>
5745                    <div class="right">
5746                        <a 
5747                            href="/treatment"
5748                            class="text-btn negative" 
5749                            data-ele-name="btnSearchMoreTxName">More</a>
5750                    </div>
5751                </div>        
5752                <div class="list-default gap24 border">
5753                    <div class="data-null" data-ele-name="emptyListTxName" style="display: none">
5754                        <div class="grid-div">
5755                            <div class="left">
5756                                <p>No Data</p>
5757                            </div>
5758                        </div>
5759                    </div>
5760                    <div class="data-null" data-ele-name="noSearchListTxName" style="display: none">
5761                        <div class="grid-div">
5762                            <div class="left">
5763                                <p>No Data</p>
5764                            </div>
5765                        </div>
5766                    </div>
5767                    <ul data-ele-name="dataListTxName" style="display: none">
5768                    </ul>
5769                </div>
5770            </div>
5771		</section>
5772		
5773        <!-- 의사 -->
5774        <section class="app-section div">
5775            <div class="app-inner">
5776                <div class="grid-div">
5777                    <div class="left">
5778                        <label class="search-label">
5779                            <span>Doctor</span> 
5780                            <b><em class="red" data-column-name="totalCountDoctor">2</em></b>
5781                        </label>
5782                    </div>
5783                    <div class="right">
5784                        <a 
5785                            href="/doctor"
5786                            class="text-btn negative" 
5787                            data-ele-name="btnSearchMoreDoctor">More</a>
5788                    </div>
5789                </div>        
5790                <div class="list-default border">
5791                    <div class="data-null" data-ele-name="emptyListDoctor" style="display: none">
5792                        <div class="grid-div">
5793                            <div class="left">
5794                                <p>No Data</p>
5795                            </div>
5796                        </div>
5797                    </div>
5798                    <div class="data-null" data-ele-name="noSearchListDoctor" style="display: none">
5799                        <div class="grid-div">
5800                            <div class="left">
5801                                <p>No Data</p>
5802                            </div>
5803                        </div>
5804                    </div>
5805                    <ul data-ele-name="dataListDoctor" style="display: none">
5806                    </ul>
5807                </div>
5808            </div>
5809		</section>
5810
5811        <!-- 병원 -->
5812        <section class="app-section div">
5813            <div class="app-inner">
5814                <div class="grid-div">
5815                    <div class="left">
5816                        <label class="search-label">
5817                            <span>Clinic</span> 
5818                            <b><em class="red" data-column-name="totalCountHospital">2</em></b>
5819                        </label>
5820                    </div>
5821                    <div class="right">
5822                        <a 
5823                            href="/hospital"
5824                            class="text-btn negative" 
5825                            data-ele-name="btnSearchMoreHospital">More</a>
5826                    </div>
5827                </div>        
5828                <div class="list-default border">
5829                    <div class="data-null" data-ele-name="emptyListHospital" style="display: none">
5830                        <div class="grid-div">
5831                            <div class="left">
5832                                <p>No Data</p>
5833                            </div>
5834                        </div>
5835                    </div>
5836                    <div class="data-null" data-ele-name="noSearchListHospital" style="display: none">
5837                        <div class="grid-div">
5838                            <div class="left">
5839                                <p>No Data</p>
5840                            </div>
5841                        </div>
5842                    </div>
5843                    <ul data-ele-name="dataListHospital" style="display: none">
5844                    </ul>
5845                </div>
5846            </div>
5847		</section>
5848		
5849	</div>
5850
5851</div>
5852	<!-- E : contents -->
5853	
5854	<!-- <footer th:include="~{mobile/$inc/footer-no-nav :: item}" th:remove="tag"></footer> -->
5855</div>
5856<!-- //wrap -->
5857<!-- 하단 고정 버튼-->
5858
5859
5860
5861
5862<!-- image viewer -->
5863<div id="pswp" class="pswp" tabindex="-1" role="dialog" aria-hidden="true" style="display: none;">
5864	<div class="pswp__bg"></div>
5865	<div class="pswp__scroll-wrap">
5866		<div class="pswp__container">
5867			<div class="pswp__item"></div>
5868			<div class="pswp__item"></div>
5869			<div class="pswp__item"></div>
5870		</div>
5871		<div class="pswp__ui pswp__ui--hidden">
5872			<div class="pswp__top-bar">
5873				<div class="pswp__counter"></div>
5874				<button class="pswp__button pswp__button--close" title="Close (Esc)"></button>
5875				<button class="pswp__button pswp__button--zoom" title="Zoom"></button>
5876				<div class="pswp__preloader">
5877					<div class="pswp__preloader__icn">
5878					  <div class="pswp__preloader__cut">
5879						<div class="pswp__preloader__donut"></div>
5880					  </div>
5881					</div>
5882				</div>
5883			</div>
5884			<button class="pswp__button pswp__button--arrow--left" title="Previous">
5885			</button>
5886			<button class="pswp__button pswp__button--arrow--right" title="Next">
5887			</button>
5888		</div>
5889	</div>
5890</div>
5891<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.3/photoswipe.min.js"></script>
vendor: 2 bytes, line 5891
5891
5892<script src="https://cdnjs.cloudflare.com/ajax/libs/photoswipe/4.1.3/photoswipe-ui-default.min.js"></script>
5892
5893
5894
5895<!-- image viewer -->
5896<div class="attchfile-images-preview-modal">
5897	<!-- 이 모달은 이마크업 하나만 사용합니다 -->
5898	<a href="#" class="preview-close" style="display: block;">닫기</a>
5899	<a href="#" class="ico download" style="display: none;">더보기</a>
5900	<div class="inner">
5901		<div class="modal-swiper-container">
5902		<div class="swiper-wrapper">
5903			<!-- swiperPreviewImagesLoad 스크립트에 의해 이미지가 복사됩니다. -->
5904		</div>
5905		<!-- Swiper 페이지네이션 -->
5906		<div class="swiper-pagination" onClick="(function(){$('.preview-close').trigger('click');})();"></div>
5907		</div>
5908	</div>
5909</div>
5910
5911<!-- <div th:include="~{mobile/$inc/app_download :: item}" th:remove="tag"></div> -->
5912
5913
5914
5915
5916
5917
5918
5919<!-- 
5919<script th:src="@{/js/datepicker.min.js}"></script>
5919 -->
5920<script src="https://cdnjs.cloudflare.com/ajax/libs/select2/4.0.7/js/select2.min.js"></script>
vendor: 2 bytes, line 5920
5920
5921<script src="/js/common.min.js?ver=25-06-17-2226-ex"></script>
vendor: 2 bytes, line 5921
5921
5922<script src="https://stackpath.bootstrapcdn.com/bootstrap/4.2.1/js/bootstrap.min.js" integrity="sha384-B0UglyR+jN6CkvvICOB2joaf5I4l3gm9GU6Hc1og6Ls7i6U/mkkaduKaBhlAXv9k" crossorigin="anonymous"></script>
5922
5923
5924<script>
5925    /*<![CDATA[*/
5926    /**
5927	 * requried mobile/$inc/script
5928	 * requried mobile/$inc/footer
5929	 */
5930	var feToggle = (function () {
5931		var ns = 'FeatureToggle';
5932		var featureCds = {
5933			  event: 'event'
5934			, counsel: 'counsel'
5935            , review: 'review'
5936		};
5937		var features = [
5938			  ['event', true, [bts.path.event, bts.path.eventDetail, bts.path.eventRecentlyList]]
5939			, ['counsel', true, [bts.path.estimate, bts.path.myPageEstimate]]
5940            , ['review', true, [bts.path.review, bts.path.reviewDetail, bts.path.reviewReg, bts.path.reviewEdit]]
5941		];
5942		var showList = function(featureCd, parentElement, lsSelector) {
5943			if (!parentElement){
5944				return;
5945			}
5946			if (!lsSelector) lsSelector = 'li';
5947			var els = selAll(lsSelector, parentElement);
5948			resolveEles(els, function(el) {
5949				el.style.width = '';
5950			});
5951		};
5952		var hideList = function(featureCd, parentElement, lsSelector) {
5953			if (!parentElement){
5954				return;
5955			}
5956			if (!lsSelector) lsSelector = 'li';
5957			var els = selAll(lsSelector, parentElement);
5958			var hideCnt = 0;
5959			resolveEles(els, function(el) {
5960				if (el.dataset.feature == featureCd) {
5961					hideCnt++;
5962				}
5963			});
5964			var elsLength = els.length - hideCnt;
5965			var itemWidth = (100 / elsLength);
5966			resolveEles(els, function(el) {
5967				el.style.width = itemWidth + '%';
5968			});
5969		};
5970        var showTab = function(featureCd, parentElement, lsSelector) {
5971            if (!parentElement){
5972                return;
5973            }
5974            if (!lsSelector) lsSelector = 'li';
5975            var els = selAll(lsSelector, parentElement);
5976            resolveEles(els, function(el) {
5977                if (el.dataset.feature == featureCd) {
5978                    showEles(el);
5979                }
5980            });
5981        };
5982        var hideTab = function(featureCd, parentElement, lsSelector) {
5983            if (!parentElement){
5984                return;
5985            }
5986            if (!lsSelector) lsSelector = 'li';
5987            var els = selAll(lsSelector, parentElement);
5988            resolveEles(els, function(el) {
5989                if (el.dataset.feature == featureCd) {
5990                    hideEles(el);
5991                }
5992            });
5993        };
5994		var hide = function(data) {
5995		};
5996		var resolve = function(data) {
5997			var isOn = data[1];
5998			var featureCd = data[0];
5999			var blockUrls = data[2];
6000			if (!isOn) {
6001				isNotEmptyList(blockUrls) && blockUrls.forEach(function (url) {
6002					if (0 < location.href.indexOf(url)) {
6003						console.log(ns + '.resolve :: go to err.');
6004						location.href = '/error-404';
6005						return false;
6006					}
6007				});
6008			}
6009			switch (featureCd) {
6010				case featureCds.event:
6011					var targetEls = selAll('[data-feature="event"]');
6012					if (isOn) {
6013						showEles(targetEls);
6014						showList(featureCd, sel('#ft [data-ele-name="gnbTabs"]'));
6015						showTab(featureCd, sel('[data-ele-name="tabs"]'));
6016					} else {
6017						hideEles(targetEls);
6018						hideList(featureCd, sel('#ft [data-ele-name="gnbTabs"]'));
6019						hideTab(featureCd, sel('[data-ele-name="tabs"]'));
6020					}
6021					break;
6022				case featureCds.counsel:
6023					var targetEls = selAll('[data-feature="counsel"]');
6024					if (isOn) {
6025						showEles(targetEls);
6026					} else {
6027						hideEles(targetEls);
6028					}
6029					break;
6030                case featureCds.review:
6031                    var targetEls = selAll('[data-feature="' + featureCd + '"]');
6032                    if (isOn) {
6033                        showEles(targetEls);
6034                        showList(featureCd, sel('#ft [data-ele-name="gnbTabs"]'));
6035                        showTab(featureCd, sel('[data-ele-name="tabs"]'));
6036                    } else {
6037                        hideEles(targetEls);
6038                        hideList(featureCd, sel('#ft [data-ele-name="gnbTabs"]'));
6039                        hideTab(featureCd, sel('[data-ele-name="tabs"]'));
6040                    }
6041                    break;
6042                default:
6043                    var targetEls = selAll('[data-feature="' + featureCd + '"]');
6044                    if (isOn) {
6045                        showEles(targetEls);
6046                    } else {
6047                        hideEles(targetEls);
6048                    }
6049                    break;
6050			}
6051		};
6052		var resolveGlobal = function() {
6053			var targetEls = selAll('[data-off="Y"]');
6054			if (targetEls) {
6055				hideEles(targetEls);
6056			}
6057		};
6058		var run = function() {
6059			features.forEach(function (feature) {
6060				resolve(feature);
6061			});
6062			resolveGlobal();
6063		};
6064		var _fe = {};
6065		_fe.run = run;
6066		_fe.features = featureCds;
6067		_fe.isOn = function(featureCd) {
6068			var res = true;
6069			features.forEach(function (feature) {
6070				var _featureCd = feature[0];
6071				var _isOn = feature[1];
6072				if (_featureCd == featureCd) {
6073					res = _isOn;
6074				}
6075			});
6076			return res;
6077		};
6078		_fe.toggle = function(featureCd) {
6079			features.forEach(function (feature) {
6080				var _featureCd = feature[0];
6081				var _isOn = feature[1];
6082				if (_featureCd == featureCd) {
6083					feature[1] = !_isOn;
6084				}
6085			});
6086			run();
6087		};
6088		return _fe;
6089	})();
6090	bts.isProd() && feToggle.run();
6091	
6092	//IOS 출시 위한
6093	/* if(bts.isIOS() || bts.isMacOS()){
6094		if(sel('[data-temp_id="divice"]')){
6095			hideEles(sel('[data-temp_id="divice"]'));	
6096		}
6097	} */
6098    /*]]>*/
6099</script>
6099
6100
6101<script>
6102    /*<![CDATA[*/
6103
6104    var isSearch = "Y";
6105    var _isSearchResult = null;
6106
6107    var MainList = {};
6108    MainList.resolveMsg = function(msg, data) {
6109
6110        switch(msg){
6111            case 'pgInit':
6112                bts.isDebug() && console.log('resolveMsg: ', msg, ', data: ', data);
6113                break;
6114            case 'render':
6115                bts.isDebug() && console.log('resolveMsg: ', msg, ', data: ', data);
6116                break;
6117            case 'rerender':
6118                bts.isDebug() && console.log('resolveMsg: ', msg, ', data: ', data);
6119                break;
6120            default: console.log('resolveMsg: invalid msg: ', msg, ', data: ', data);
6121        }
6122    };
6123	var searchMain = (function (_isSearch, _isSearchResult) {var SearchMain = function () {
6124        var isSearch = function() {
6125            return (_isSearch == bts.consts.yn.y) && !isSearchResult();
6126        };
6127        var isSearchResult = function() {
6128            return _isSearchResult || location.pathname == bts.path.searchResult;
6129        };
6130	    var _this = this;
6131        var ns = 'search.main';
6132
6133        // inner var. =================================
6134
6135        var _pEle = getMain();
6136        var _$parentEl = $(_pEle);
6137        var frm = document.forms.frmSrch;
6138        var _fm = {
6139            el: {
6140                /* 검색창 */
6141                searchKeyword: frm.q,
6142                searchTxPart: frm.searchTxPart,
6143                searchArea: frm.searchArea,
6144                btnRemoveSearchKeyword: sel('[data-ele-name="btnRemoveSearchKeyword"]', frm),
6145                btnApply: sel('[data-ele-name="btnApplySearchOption"]', frm),
6146				
6147                p: _pEle,
6148                wrapperKeyword: sel('[data-ele-name="searchOptionsWrapperKeyword"]', _pEle),
6149                wrapperTemplateItem: sel('[data-ele-name="wrapperTemplateItem"]', _pEle),
6150                wrapperOptions: sel('[data-ele-name="searchOptionsWrapper"]', _pEle),
6151                wrapperResults: sel('[data-ele-name="searchResultsWrapper"]', _pEle),
6152                wrapperResultsSelTxPartsDiv: sel('[data-ele-name="searchResultsSelTxPartsWrapperDiv"]', _pEle),
6153                wrapperResultsSelTxParts: sel('[data-ele-name="searchResultsSelTxPartsWrapper"]', _pEle),
6154                wrapperResultsSelAreasDiv: sel('[data-ele-name="searchResultsSelAreasWrapperDiv"]', _pEle),
6155                wrapperResultsSelAreas: sel('[data-ele-name="searchResultsSelAreasWrapper"]', _pEle),
6156                wrapperRecommendKeyword: sel('[data-ele-name="searchOptionsWrapperRecommendKeyword"]', _pEle),
6157                wrapperTxPart: sel('[data-ele-name="searchOptionsWrapperTxPart"]', _pEle),
6158                wrapperArea: sel('[data-ele-name="searchOptionsWrapperArea"]', _pEle),
6159                wrapperTemplateItem2: sel('[data-ele-name="wrapperTemplateItem2"]', _pEle),
6160                wrapperTemplateItem3: sel('[data-ele-name="wrapperTemplateItem3"]', _pEle),
6161                wrapperTemplateItem4: sel('[data-ele-name="wrapperTemplateItem4"]', _pEle),
6162                wrapperTemplateItemTags: sel('[data-ele-name="wrapperTemplateItemTags"]', _pEle),
6163                btnRemoveRecentKeywords: sel('[data-ele-name="btnRemoveRecentKeywords"]', _pEle),
6164
6165                /* 검색 결과 */
6166                totalCountTxName: sel('[data-column-name="totalCountTxName"]', _pEle),
6167                totalCountReview: sel('[data-column-name="totalCountReview"]', _pEle),
6168                totalCountHospital: sel('[data-column-name="totalCountHospital"]', _pEle),
6169                totalCountBoard: sel('[data-column-name="totalCountBoard"]', _pEle),
6170                totalCountEpReview: sel('[data-column-name="totalCountEpReview"]', _pEle),
6171                totalCountComplainReview: sel('[data-column-name="totalCountComplainReview"]', _pEle),
6172                totalCountDoctor: sel('[data-column-name="totalCountDoctor"]', _pEle),
6173                totalCountEvent: sel('[data-column-name="totalCountEvent"]', _pEle),
6174                btnSearchMoreTxName: sel('[ data-ele-name="btnSearchMoreTxName"]', _pEle),
6175                btnSearchMoreReview: sel('[ data-ele-name="btnSearchMoreReview"]', _pEle),
6176                btnSearchMoreHospital: sel('[ data-ele-name="btnSearchMoreHospital"]', _pEle),
6177                btnSearchMoreBoard: sel('[ data-ele-name="btnSearchMoreBoard"]', _pEle),
6178                btnSearchMoreEpReview: sel('[ data-ele-name="btnSearchMoreEpReview"]', _pEle),
6179                btnSearchMoreComplainReview: sel('[ data-ele-name="btnSearchMoreComplainReview"]', _pEle),
6180                btnSearchMoreDoctor: sel('[ data-ele-name="btnSearchMoreDoctor"]', _pEle),
6181                btnSearchMoreEvent: sel('[ data-ele-name="btnSearchMoreEvent"]', _pEle),
6182                dataListTxName: sel('[data-ele-name="dataListTxName"]', _pEle),
6183                dataListReview: sel('[data-ele-name="dataListReview"]', _pEle),
6184                dataListHospital: sel('[data-ele-name="dataListHospital"]', _pEle),
6185                dataListBoard: sel('[data-ele-name="dataListBoard"]', _pEle),
6186                dataListEpReview: sel('[data-ele-name="dataListEpReview"]', _pEle),
6187                dataListComplainReview: sel('[data-ele-name="dataListComplainReview"]', _pEle),
6188                dataListDoctor: sel('[data-ele-name="dataListDoctor"]', _pEle),
6189                dataListEvent: sel('[data-ele-name="dataListEvent"]', _pEle),
6190                emptyListTxName: sel('[data-ele-name="emptyListTxName"]', _pEle),
6191                emptyListReview: sel('[data-ele-name="emptyListReview"]', _pEle),
6192                emptyListHospital: sel('[data-ele-name="emptyListHospital"]', _pEle),
6193                emptyListBoard: sel('[data-ele-name="emptyListBoard"]', _pEle),
6194                emptyListEpReview: sel('[data-ele-name="emptyListEpReview"]', _pEle),
6195                emptyListComplainReview: sel('[data-ele-name="emptyListComplainReview"]', _pEle),
6196                emptyListDoctor: sel('[data-ele-name="emptyListDoctor"]', _pEle),
6197                emptyListEvent: sel('[data-ele-name="emptyListEvent"]', _pEle),
6198                noSearchListTxName: sel('[data-ele-name="noSearchListTxName"]', _pEle),
6199                noSearchListReview: sel('[data-ele-name="noSearchListReview"]', _pEle),
6200                noSearchListHospital: sel('[data-ele-name="noSearchListHospital"]', _pEle),
6201                noSearchListBoard: sel('[data-ele-name="noSearchListBoard"]', _pEle),
6202                noSearchListEpReview: sel('[data-ele-name="noSearchListEpReview"]', _pEle),
6203                noSearchListComplainReview: sel('[data-ele-name="noSearchListComplainReview"]', _pEle),
6204                noSearchListDoctor: sel('[data-ele-name="noSearchListDoctor"]', _pEle),
6205                noSearchListEvent: sel('[data-ele-name="noSearchListEvent"]', _pEle),
6206            },
6207            $el: {
6208                p: _$parentEl,
6209            },
6210            frm: frm,
6211            data: {
6212                recentSearchKeywords: [],
6213                recommendKeywords: [],
6214                selTxParts: [],
6215                selAreas: [],
6216                totalCount: {
6217                    resultTxName: 0,
6218                    resultReview: 0,
6219                    resultDoctor: 0,
6220                    resultHospital: 0,
6221                    resultEvent: 0,
6222                    resultBoard: 0,
6223                    resultEpReview: 0,
6224                    resultComplainReview: 0
6225                },
6226                isChangeTxParts: false,
6227                isChangeAreas: false
6228            },
6229            actionType: {
6230                hospital: 1,
6231                doctor: 2
6232            },
6233            view: {
6234                selectedActionType: 0,
6235            },
6236            limit: bts.defaults.pageSize_searchResult,
6237            callback: function() {}
6238        };
6239
6240        // inner function =================================
6241
6242        var _txPartInputName = "txPart";
6243        /**
6244         * 시술 부위 선택
6245         */
6246        var selectSite = function(parentElement, selectedEl) {
6247            // console.log(">>>[selectSite] parentElement = ", parentElement, ", selectedEl = ", selectedEl);
6248
6249            $(parentElement).find('input[name="' + _txPartInputName + '"]').each(function(idx, _ele){
6250                _ele.checked = false;
6251            });
6252            selectedEl && (selectedEl.checked = true);
6253        };
6254        var _areaInputName = "area";
6255        /**
6256         * 시술 부위 선택
6257         */
6258        var selectArea = function(parentElement, selectedEl) {
6259
6260            $(parentElement).find('input[name="' + _areaInputName + '"]').each(function(idx, _ele){
6261                _ele.checked = false;
6262            });
6263            selectedEl && (selectedEl.checked = true);
6264        };
6265
6266
6267        var _validateSearchParams = function(keyword) {
6268            if (isEmptyList(_fm.data.selTxParts)
6269					&& isEmptyList(_fm.data.selAreas)
6270					&& isEmpty(keyword)) {
6271                if (isSearchResult()) {
6272                    bts.isDebug() && console.log(ns + '._validateSearchParams :: redirect to search');
6273                    window.location.href = bts.path.search;
6274                    return false;
6275                }
6276
6277                bts.isDebug() && console.log(ns + '.validateSearchParams :: empty searchParams');
6278                bts.toast(bts.getMessage(bts.messageKeys.requireSearchOptions));
6279                return false;
6280            } else {
6281                if (isNotEmpty(keyword) && isEmpty(DomUtil.escapeXss(keyword))) {
6282                    bts.isDebug() && console.log(ns + '.validateSearchParams :: invali
6282d params. \'q\' ==> "%s"', keyword);
6283                    bts.alert(bts.getMessage(bts.messageKeys.invalidAccess));
6284                    return false;
6285                }
6286                return true;
6287            }
6288        };
6289
6290        var _renderSearchKeywordList = function() {
6291
6292            bts.getsRecentSearchKeyword(function(dataList){
6293
6294
6295                if (dataList) {
6296
6297                    if (dataList.length <= 0) {
6298
6299                        _fm.renderRecentSearchKeywordEmptyList();
6300                        return;
6301                    }
6302                } else {
6303
6304                    _fm.renderRecentSearchKeywordEmptyList();
6305                    return;
6306                }
6307
6308                _fm.el.wrapperKeyword.style.display = '';
6309
6310                //render [s]
6311                var emptyListEle = sel('[data-ele-name=searchOptionRecentSearchKeywordEmptyList]', _fm.el.p);
6312                emptyListEle.style.display = 'none';
6313
6314                var dataListEle = sel('[data-ele-name=searchOptionRecentSearchKeywordList]', _fm.el.p);
6315                dataListEle.innerHTML = '';
6316                dataListEle.style.display = '';
6317
6318                dataList.reverse(); //최신순 렌더링
6319                for (var i = 0, length = dataList.length; i < length; i ++) {
6320
6321                    var _data = dataList[i];
6322
6323                    _fm.renderRowRecentKeyword(_data, dataListEle);
6324                }
6325                //render [e]
6326            });
6327        };
6328        _fm.renderSearchOptionList = function(callback) {
6329            var _renderingTarget = {
6330                searchKeyword: true,
6331                recommendKeyword: false,
6332                txPart: true,
6333                area: true
6334            };
6335
6336            bts.isDebug() && console.log(ns + '.renderSearchOptionList >> ', _renderingTarget.searchKeyword, _renderingTarget.recommendKeyword, _renderingTarget.txPart, _renderingTarget.area);
6337
6338            _fm.el.wrapperKeyword.style.display = 'none';
6339            _fm.el.wrapperRecommendKeyword.style.display = 'none';
6340            _fm.el.wrapperTxPart.style.display = 'none';
6341            _fm.el.wrapperArea.style.display = 'none';
6342
6343            if (_renderingTarget.searchKeyword) {
6344                _renderSearchKeywordList();
6345            }
6346            if (_renderingTarget.recommendKeyword) { 
6347                return;
6348                bts.getsRecommendKeyword(function(dataList){
6349                    _fm.el.wrapperRecommendKeyword.style.display = '';
6350                    if (dataList) {
6351
6352                        if (dataList.length <= 0) {
6353
6354                            _fm.renderRecommendKeywordEmptyList();
6355                            return;
6356                        }
6357                    } else {
6358
6359                        _fm.renderRecommendKeywordEmptyList();
6360                        return;
6361                    }
6362
6363                //render [s]
6364                var emptyListEle = sel('[data-ele-name=searchOptionRecommendKeywordEmptyList]', _fm.el.p);
6365                emptyListEle.style.display = 'none';
6366
6367                var dataListEle = sel('[data-ele-name=searchOptionRecommendKeywordList]', _fm.el.p);
6368                dataListEle.innerHTML = '';
6369                dataListEle.style.display = '';
6370
6371                for (var i = 0, length = dataList.length; i < length; i ++) {
6372
6373                    var _data = dataList[i];
6374
6375                    _fm.renderRowRecommendKeyword(_data, dataListEle);
6376                }
6377                //render [e]
6378            }); }
6379            if (_renderingTarget.txPart) { bts.getsTxPart(function(dataList){
6380
6381                _fm.el.wrapperTxPart.style.display = '';
6382
6383                if (isEmptyList(dataList)) {
6384
6385                    _fm.renderTxPartEmptyList();
6386                    return;
6387                }
6388
6389                //render [s]
6390                var emptyListEle = sel('[data-ele-name=searchOptionTxPartEmptyList]', _fm.el.p);
6391                emptyListEle.style.display = 'none';
6392
6393                var dataListEle = sel('[data-ele-name=searchOptionTxPartList]', _fm.el.p);
6394                dataListEle.innerHTML = '';
6395                dataListEle.style.display = '';
6396
6397                for (var i = 0, length = dataList.length; i < length; i ++) {
6398
6399                    var _data = dataList[i];
6400
6401                    _fm.renderRowTxPart(_data, dataListEle);
6402                }
6403                const slideCategory = new Swiper('.slideCategory', {
6404                    slidesPerView: 'auto',
6405                    spaceBetween: 0,
6406                    pagination: false,
6407                });
6408
6409                //render [e]
6410            }); }
6411            if (_renderingTarget.area) { bts.getsTagAreaInfo(function(dataList){
6412
6413                _fm.el.wrapperArea.style.display = '';
6414
6415                if (isEmptyList(dataList)) {
6416
6417                    _fm.renderAreaEmptyList();
6418                    return;
6419                }
6420
6421                //render [s]
6422                var emptyListEle = sel('[data-ele-name=searchOptionAreaEmptyList]', _fm.el.p);
6423                emptyListEle.style.display = 'none';
6424
6425                var dataListEle = sel('[data-ele-name=searchOptionAreaList]', _fm.el.p);
6426                dataListEle.innerHTML = '';
6427                dataListEle.style.display = '';
6428
6429                for (var i = 0, length = dataList.length; i < length; i ++) {
6430
6431                    var _data = dataList[i];
6432
6433                    _fm.renderRowArea(_data, dataListEle);
6434                }
6435                //render [e]
6436            }); }
6437
6438            callback();
6439        };
6440
6441        _fm.renderRowRecentKeyword = function(_data, _$p){
6442
6443            var _el = cloneEle(_fm.el.wrapperTemplateItem4);
6444            if (isEmpty(_data)) {
6445                bts.isDebug() && console.log(ns + '.renderRowRecentKeyword :: skip');
6446                return;
6447            }
6448
6449            sel('[data-column-name="searchOptionItemNm"]', _el)			.innerHTML = _data || 'no Name';
6450            sel('[data-column-name="searchOptionItemNm"]', _el)			.dataset.keyword = _data || '';
6451            sel('[data-column-name="searchOptionItemNm"]', _el)			.onclick = function(e){
6452
6453                var _btn = this;
6454                //bts.isDebug() && console.log(ns + '.renderRowRecentKeyword', _btn, _btn.checked);
6455                var _selTags = _fm.data.recentSearchKeywords;
6456                var _currKeyword = _btn.dataset.keyword;
6457                if (_selTags.includes(_currKeyword)) {
6458
6459                } else {
6460
6461                    _currKeyword = DomUtil.escapeXss(_currKeyword);
6462                    _selTags = addSetItem(_selTags, _currKeyword);
6463                }
6464                _fm.data.recentSearchKeywords = _selTags;
6465
6466                // FIXME 다중 선택시 수정할 포인트
6467                _fm.el.searchKeyword.value = _currKeyword;
6468                _fm.el.searchTxPart.value = '';
6469                _fm.el.searchArea.value = '';
6470
6471                // history 처리 [s]
6472                if (_validateSearchParams(_currKeyword)) {
6473
6474                } else {
6475
6476                    return false;
6477                }
6478
6479                _fm.frm.submit();
6480                //var _queryStrings = _currKeyword ? '?' + $.param({q: _currKeyword}) : '';
6481                //location.href = bts.path.searchResult + _queryStrings;
6482                // history 처리 [e]
6483            };
6484
6485            sel('[data-column-name="searchOptionItemDelete"]', _el)		.dataset.keyword = _data || '';
6486            sel('[data-column-name="searchOptionItemDelete"]', _el)		.onclick = function(_){
6487
6488                var _btn = this;
6489                var _selTags = _fm.data.recentSearchKeywords;
6490                var _currKeyword = _btn.dataset.keyword;
6491                if (_selTags.includes(_currKeyword)) {
6492
6493                    _selTags = deleteSetItem(_selTags, _currKeyword);
6494                }
6495                bts.isDebug() && console.log(ns + '.renderRowRecentKeyword :: delete item', _btn.dataset.keyword, _selTags.includes(_currKeyword));
6496                _fm.data.recentSearchKeywords = _selTags;
6497                bts.setListData(bts.dataKeys.recentSearchKeywords, _fm.data.recentSearchKeywords);
6498                _renderSearchKeywordList();
6499            };
6500
6501            _$p.append(_el);
6502        };
6503        _fm.renderRowRecommendKeyword = function(_data, _$p){
6504
6505            var _el = cloneEle(_fm.el.wrapperTemplateItem2);
6506
6507            // TODO v2
6508            bts.getsRecommendKeyword(function(dataList) {
6509                var _isChecked = dataList.includes(_data.tagCd);
6510                sel('[data-column-name="btnToggleItem"]',  _el)				.checked = _isChecked;
6511                sel('[data-column-name="btnToggleItem"]',  _el)				.dataset.tagCd = _data.tagCd;
6512                sel('[data-column-name="btnToggleItem"]',  _el)				.name = "recmKeyword";
6513                sel('[data-column-name="btnToggleItem"]',  _el)				.onclick = function(_){
6514
6515                    var _btn = this;
6516                    //bts.isDebug() && console.log(ns + '.renderRowRecommendKeyword', _btn, _btn.checked);
6517                    var _selTags = _fm.data.recommendKeywords;
6518                    var _currTagCd = _btn.dataset.tagCd;
6519                    if (_btn.checked) {
6520
6521                        _selTags = addSetItem(_selTags, _currTagCd);
6522                    } else {
6523
6524                        _selTags = deleteSetItem(_selTags, _currTagCd); //현재 선택된 아이템을 해제
6525                    }
6526                    _fm.data.recommendKeywords = _selTags;
6527                };
6528                sel('[data-column-name="searchOptionItemNm"]',  _el)		.innerHTML = _data.name || 'no Name';
6529
6530                _$p.append(_el);
6531            });
6532        };
6533        _fm.renderRowTxPart = function(_data, _$p){
6534            // console.log(">>>>>>>>_data = ", _data);
6535
6536            var _el = cloneEle(_fm.el.wrapperTemplateItem3);
6537
6538            // 검색 수정 : 기존 필터 무시하고 새로 시작.
6539
6540            sel('[data-column-name="categoryImg"]', _el).src = getCategoryImg(_data.txPartCd, "txPartCd");
6541            //var _isChecked = bts.getsSelectedTxPart().includes(_data.txPartCd);
6542            var _isChecked = false;
6543            // sel('[data-column-name="btnToggleItem"]',  _el)				.checked = _isChecked;
6544            sel('[data-column-name="btnToggleItem"]',  _el)				.checked = true;
6545            sel('[data-column-name="btnToggleItem"]',  _el)				.dataset.txPartCd = _data.txPartCd;
6546            sel('[data-column-name="btnToggleItem"]',  _el)				.name = _txPartInputName;
6547            sel('[data-column-name="btnToggleItem"]',  _el)				.onclick = function(_){
6548                console.log(">>>btnToggleItem click... _fm.data.selTxParts = ", _fm.data.selTxParts);
6549
6550                var _btn = this;
6551                //bts.isDebug() && console.log(ns + '.renderRowTxPart', _btn, _btn.checked);
6552                var _selTags = _fm.data.selTxParts;
6553                var _currTxPartCd = _btn.dataset.txPartCd;
6554                if (_btn.checked) {
6555
6556                    _selTags = addSetItem([], _currTxPartCd);
6557                    if (bts.getListData(bts.dataKeys.selTxParts).includes(_currTxPartCd)) {
6558
6559                    } else {
6560                        _fm.data.isChangeTxParts = true;
6561                    }
6562
6563                    _fm.el.searchTxPart.value = _currTxPartCd;
6564                    selectSite(_$p, _btn);
6565                } else {
6566
6567                    _selTags = deleteSetItem(_selTags, _currTxPartCd); //현재 선택된 아이템을 해제
6568                    _fm.data.isChangeTxParts = true;
6569                }
6570                _fm.data.selTxParts = _selTags;
6571
6572                // FIXME 다중 선택시 수정할 포인트
6573                //_fm.el.searchKeyword.value = '';
6574                _fm.el.searchArea.value = '';
6575
6576                // history 처리 [s]
6577                var _searchKeyword = _fm.el.searchKeyword.value;
6578                if (_validateSearchParams(_searchKeyword)) {
6579
6580                } else {
6581
6582                    return false;
6583                }
6584
6585                //_fm.submitSearch(function() {});
6586                _fm.frm.submit();
6587                //var _queryStrings = _searchKeyword ? '?' + $.param({q: _searchKeyword}) : '';
6588                //location.href = bts.path.searchResult + _queryStrings;
6589                // history 처리 [e]
6590            };
6591            sel('[data-column-name="searchOptionItemNm"]',  _el)			.innerHTML = _data.partNm || 'no Name';
6592
6593            _$p.append(_el);
6594        };
6595        _fm.renderRowArea = function(_data, _$p){
6596
6597            var _el = cloneEle(_fm.el.wrapperTemplateItem2);
6598
6599            // 검색 수정 : 기존 필터 무시하고 새로 시작.
6600            var _isChecked = false;
6601            sel('[data-column-name="btnToggleItem"]',  _el)				.checked = _isChecked;
6602            sel('[data-column-name="btnToggleItem"]',  _el)				.dataset.areaCd = _data.tagCd;
6603            sel('[data-column-name="btnToggleItem"]',  _el)				.name = _areaInputName;
6604            sel('[data-column-name="btnToggleItem"]',  _el)				.onclick = function(_){
6605
6606                var _btn = this;
6607                //bts.isDebug() && console.log(ns + '.renderRowArea', _btn, _btn.checked);
6608                var _selTags = _fm.data.selAreas;
6609                var _currAreaCd = _btn.dataset.areaCd;
6610                if (_btn.checked) {
6611
6612                    _selTags = addSetItem([], _currAreaCd);
6613                    if (bts.getListData(bts.dataKeys.selTagAreaInfos).includes(_currAreaCd)) {
6614
6615                    } else {
6616                        _fm.data.isChangeAreas = true;
6617                    }
6618
6619                    _fm.el.searchArea.value = _currAreaCd;
6620                    selectArea(_$p, _btn);
6621                } else {
6622
6623                    _selTags = deleteSetItem(_selTags, _currAreaCd); //현재 선택된 아이템을 해제
6624                    _fm.data.isChangeAreas = true;
6625                }
6626                _fm.data.selAreas = _selTags;
6627
6628                // FIXME 다중 선택시 수정할 포인트
6629                //_fm.el.searchKeyword.value = '';
6630                _fm.el.searchTxPart.value = '';
6631
6632                // history 처리 [s]
6633                var _searchKeyword = _fm.el.searchKeyword.value;
6634                if (_validateSearchParams(_searchKeyword)) {
6635
6636                } else {
6637
6638                    return false;
6639                }
6640
6641                //_fm.submitSearch(function() {});
6642                _fm.frm.submit();
6643                //var _queryStrings = _searchKeyword ? '?' + $.param({q: _searchKeyword}) : '';
6644                //location.href = bts.path.searchResult + _queryStrings;
6645                // history 처리 [e]
6646            };
6647            sel('[data-column-name="searchOptionItemNm"]',  _el)							.innerHTML = _data.name || 'no Name';
6648
6649            _$p.append(_el);
6650        };
6651        _fm.renderRecentSearchKeywordEmptyList = function(){
6652
6653            hideEles(_fm.el.wrapperKeyword);
6654            var searchOptionRecentSearchKeywordListEl = sel('[data-ele-name=searchOptionRecentSearchKeywordList]', _fm.el.p);
6655            showEles(sel('[data-ele-name=searchOptionRecentSearchKeywordEmptyList]', _fm.el.p));
6656            hideEles(searchOptionRecentSearchKeywordListEl);
6657            searchOptionRecentSearchKeywordListEl.innerHTML = '';
6658        };
6659        _fm.renderRecommendKeywordEmptyList = function(){
6660
6661            sel('[data-ele-name=searchOptionRecommendKeywordEmptyList]', _fm.el.p).style.display = '';
6662            sel('[data-ele-name=searchOptionRecommendKeywordList]', _fm.el.p).style.display = 'none';
6663            sel('[data-ele-name=searchOptionRecommendKeywordList]', _fm.el.p).innerHTML = '';
6664        };
6665        _fm.renderTxPartEmptyList = function(){
6666
6667            sel('[data-ele-name=searchOptionTxPartEmptyList]', _fm.el.p).style.display = '';
6668            sel('[data-ele-name=searchOptionTxPartList]', _fm.el.p).style.display = 'none';
6669            sel('[data-ele-name=searchOptionTxPartList]', _fm.el.p).innerHTML = '';
6670        };
6671        _fm.renderAreaEmptyList = function(){
6672
6673            sel('[data-ele-name=searchOptionAreaEmptyList]', _fm.el.p).style.display = '';
6674            sel('[data-ele-name=searchOptionAreaList]', _fm.el.p).style.display = 'none';
6675            sel('[data-ele-name=searchOptionAreaList]', _fm.el.p).innerHTML = '';
6676        };
6677        _fm._renderAllEmptyList = function(){
6678
6679            _fm.renderRecentSearchKeywordEmptyList();
6680            _fm.renderRecommendKeywordEmptyList();
6681            _fm.renderTxPartEmptyList();
6682            _fm.renderAreaEmptyList();
6683        };
6684        _fm.initSearchOptions = function(){
6685            bts.setListData(bts.dataKeys.recentSearchKeywords, []);
6686            bts.setListData(bts.dataKeys.recommendKeywords, []);
6687            bts.setListData(bts.dataKeys.selTxParts, []);
6688            bts.setListData(bts.dataKeys.selTagAreaInfos, []);
6689        };
6690        _fm.initData = function(){
6691
6692            _fm.data = {
6693                recentSearchKeywords: bts.getListData(bts.dataKeys.recentSearchKeywords),
6694                recommendKeywords: bts.getListData(bts.dataKeys.recommendKeywords),
6695                selTxParts: bts.getListData(bts.dataKeys.selTxParts),
6696                selAreas: bts.getListData(bts.dataKeys.selTagAreaInfos),
6697                totalCount: {
6698                    resultTxName: 0,
6699                    resultReview: 0,
6700                    resultDoctor: 0,
6701                    resultHospital: 0,
6702                    resultBoard: 0,
6703                    resultEpReview: 0,
6704                    resultComplainReview: 0
6705                },
6706                isChangeTxParts: false,
6707                isChangeAreas: false
6708            };
6709        };
6710        _fm.submitSearch = function(callback) {
6711
6712            var _searchKeyword = _fm.el.searchKeyword.value;
6713
6714            if (isNotEmpty(_searchKeyword)) {
6715
6716                _searchKeyword = DomUtil.escapeXss(_searchKeyword);
6717                _fm.data.recentSearchKeywords = addSetItem(_fm.data.recentSearchKeywords, _searchKeyword);
6718                bts.setListData(bts.dataKeys.recentSearchKeywords, _fm.data.recentSearchKeywords);
6719            }
6720
6721            // overlay.on();
6722            _fm.renderSearchResultList(function(){
6723                bts.isDebug() && console.log(ns + '.submitSearch >>  현재 선택된 값으로 rerendering 및 result render');
6724                // overlay.off();
6725                if (isFunction(callback)) {
6726                    callback();
6727                }
6728                _fm.focusInput();
6729            });
6730        };
6731        var applySearch = function(e) {
6732
6733            _fm.el.searchTxPart.value = '';
6734            _fm.el.searchArea.value = '';
6735
6736            var _searchKeyword = _fm.el.searchKeyword.value;
6737            if (_validateSearchParams(_searchKeyword)) {
6738
6739            } else {
6740
6741                return false;
6742            }
6743
6744            // history 처리
6745            _fm.frm.submit();
6746            /*
6747			_fm.submitSearch(function() {
6748				
6749				//var _queryStrings = _searchKeyword ? '?' + $.param({q: _searchKeyword}) : '';
6750				//DomUtil.addHistory(bts.path.searchResult + _queryStrings);
6751			});
6752			*/
6753        };
6754        _fm._onSearchOptions = function(){
6755            _fm.el.wrapperOptions.style.display = '';
6756        };
6757        _fm._offSearchOptions = function(){
6758            _fm.el.wrapperOptions.style.display = 'none';
6759        };
6760        _fm._onSearchResults = function(){
6761            _fm.el.wrapperResults.style.display = '';
6762        };
6763        _fm._offSearchResults = function(){
6764            _fm.el.wrapperResults.style.display = 'none';
6765        };
6766
6767        // ====================================================================
6768        // ====  search result
6769        // ====================================================================
6770
6771
6772        var _renderTotalCount = function (cnt, _el, _elMore) {
6773            if (cnt) {
6774
6775            } else {
6776                cnt = 0;
6777            }
6778
6779            if(cnt != 0){
6780                _el.innerHTML = StringUtil.numberWithCommas(cnt);
6781            }else{
6782                _el.innerHTML = cnt;
6783            }
6784            _elMore.style.display = (cnt <= _fm.limit ? 'none' : '');
6785        };
6786        _fm.renderTxNameEmptyList = function(){
6787            _renderTotalCount(0, _fm.el.totalCountTxName, _fm.el.btnSearchMoreTxName);
6788            _fm.el.emptyListTxName.style.display = '';
6789            _fm.el.noSearchListTxName.style.display = 'none';
6790            _fm.el.dataListTxName.style.display = 'none';
6791            _fm.el.dataListTxName.innerHTML = '';
6792        };
6793        _fm.renderReviewEmptyList = function(){
6794            _renderTotalCount(0, _fm.el.totalCountReview, _fm.el.btnSearchMoreReview);
6795            _fm.el.emptyListReview.style.display = '';
6796            _fm.el.noSearchListReview.style.display = 'none';
6797            _fm.el.dataListReview.style.display = 'none';
6798            _fm.el.dataListReview.innerHTML = '';
6799        };
6800        _fm.renderDoctorEmptyList = function(){
6801            _renderTotalCount(0, _fm.el.totalCountDoctor, _fm.el.btnSearchMoreDoctor);
6802            _fm.el.emptyListDoctor.style.display = '';
6803            _fm.el.noSearchListDoctor.style.display = 'none';
6804            _fm.el.dataListDoctor.style.display = 'none';
6805            _fm.el.dataListDoctor.innerHTML = '';
6806        };
6807        _fm.renderHospitalEmptyList = function(){
6808            _renderTotalCount(0, _fm.el.totalCountHospital, _fm.el.btnSearchMoreHospital);
6809            _fm.el.emptyListHospital.style.display = '';
6810            _fm.el.noSearchListHospital.style.display = 'none';
6811            _fm.el.dataListHospital.style.display = 'none';
6812            _fm.el.dataListHospital.innerHTML = '';
6813        };
6814        _fm.renderBoardEmptyList = function(){
6815            _renderTotalCount(0, _fm.el.totalCountBoard, _fm.el.btnSearchMoreBoard);
6816            _fm.el.emptyListBoard.style.display = '';
6817            _fm.el.noSearchListBoard.style.display = 'none';
6818            _fm.el.dataListBoard.style.display = 'none';
6819            _fm.el.dataListBoard.innerHTML = '';
6820        };
6821        _fm.renderEpReviewEmptyList = function(){
6822            _renderTotalCount(0, _fm.el.totalCountEpReview, _fm.el.btnSearchMoreEpReview);
6823            _fm.el.emptyListEpReview.style.display = '';
6824            _fm.el.noSearchListEpReview.style.display = 'none';
6825            _fm.el.dataListEpReview.style.display = 'none';
6826            _fm.el.dataListEpReview.innerHTML = '';
6827        };
6828        _fm.renderComplainReviewEmptyList = function(){
6829            _renderTotalCount(0, _fm.el.totalCountComplainReview, _fm.el.btnSearchMoreComplainReview);
6830            _fm.el.emptyListComplainReview.style.display = '';
6831            _fm.el.noSearchListComplainReview.style.display = 'none';
6832            _fm.el.dataListComplainReview.style.display = 'none';
6833            _fm.el.dataListComplainReview.innerHTML = '';
6834        };
6835        _fm.renderEventEmptyList = function(){
6836            _renderTotalCount(0, _fm.el.totalCountEvent, _fm.el.btnSearchMoreEvent);
6837            _fm.el.emptyListEvent.style.display = '';
6838            _fm.el.noSearchListEvent.style.display = 'none';
6839            _fm.el.dataListEvent.style.display = 'none';
6840            _fm.el.dataListEvent.innerHTML = '';
6841        };
6842        _fm.renderTxNameNoSearchList = function(){
6843            _fm.el.emptyListTxName.style.display = 'none';
6844            _fm.el.noSearchListTxName.style.display = '';
6845            _fm.el.dataListTxName.style.display = 'none';
6846            _fm.el.dataListTxName.innerHTML = '';
6847        };
6848        _fm.renderReviewNoSearchList = function(){
6849            _fm.el.emptyListReview.style.display = 'none';
6850            _fm.el.noSearchListReview.style.display = '';
6851            _fm.el.dataListReview.style.display = 'none';
6852            _fm.el.dataListReview.innerHTML = '';
6853        };
6854        _fm.renderDoctorNoSearchList = function(){
6855            _fm.el.emptyListDoctor.style.display = 'none';
6856            _fm.el.noSearchListDoctor.style.display = '';
6857            _fm.el.dataListDoctor.style.display = 'none';
6858            _fm.el.dataListDoctor.innerHTML = '';
6859        };
6860        _fm.renderHospitalNoSearchList = function(){
6861            _fm.el.emptyListHospital.style.display = 'none';
6862            _fm.el.noSearchListHospital.style.display = '';
6863            _fm.el.dataListHospital.style.display = 'none';
6864            _fm.el.dataListHospital.innerHTML = '';
6865        };
6866        _fm.renderBoardNoSearchList = function(){
6867            _fm.el.emptyListBoard.style.display = 'none';
6868            _fm.el.noSearchListBoard.style.display = '';
6869            _fm.el.dataListBoard.style.display = 'none';
6870            _fm.el.dataListBoard.innerHTML = '';
6871        };
6872        _fm.renderEpReviewNoSearchList = function(){
6873            _fm.el.emptyListEpReview.style.display = 'none';
6874            _fm.el.noSearchListEpReview.style.display = '';
6875            _fm.el.dataListEpReview.style.display = 'none';
6876            _fm.el.dataListEpReview.innerHTML = '';
6877        };
6878        _fm.renderComplainReviewNoSearchList = function(){
6879            _fm.el.emptyListComplainReview.style.display = 'none';
6880            _fm.el.noSearchListComplainReview.style.display = '';
6881            _fm.el.dataListComplainReview.style.display = 'none';
6882            _fm.el.dataListComplainReview.innerHTML = '';
6883        };
6884        _fm.renderEventNoSearchList = function(){
6885            _fm.el.emptyListEvent.style.display = 'none';
6886            _fm.el.noSearchListEvent.style.display = '';
6887            _fm.el.dataListEvent.style.display = 'none';
6888            _fm.el.dataListEvent.innerHTML = '';
6889        };
6890        _fm.renderTxNameDataList = function(){
6891            _fm.el.emptyListTxName.style.display = 'none';
6892            _fm.el.noSearchListTxName.style.display = 'none';
6893            _fm.el.dataListTxName.style.display = '';
6894            _fm.el.dataListTxName.innerHTML = '';
6895            return _fm.el.dataListTxName;
6896        };
6897        _fm.renderReviewDataList = function(){
6898            _fm.el.emptyListReview.style.display = 'none';
6899            _fm.el.noSearchListReview.style.display = 'none';
6900            _fm.el.dataListReview.style.display = '';
6901            _fm.el.dataListReview.innerHTML = '';
6902            return _fm.el.dataListReview;
6903        };
6904        _fm.renderDoctorDataList = function(){
6905            _fm.el.emptyListDoctor.style.display = 'none';
6906            _fm.el.noSearchListDoctor.style.display = 'none';
6907            _fm.el.dataListDoctor.style.display = '';
6908            _fm.el.dataListDoctor.innerHTML = '';
6909            return _fm.el.dataListDoctor;
6910        };
6911        _fm.renderHospitalDataList = function(){
6912            _fm.el.emptyListHospital.style.display = 'none';
6913            _fm.el.noSearchListHospital.style.display = 'none';
6914            _fm.el.dataListHospital.style.display = '';
6915            _fm.el.dataListHospital.innerHTML = '';
6916            return _fm.el.dataListHospital;
6917        };
6918        _fm.renderBoardDataList = function(){
6919            _fm.el.emptyListBoard.style.display = 'none';
6920            _fm.el.noSearchListBoard.style.display = 'none';
6921            _fm.el.dataListBoard.style.display = '';
6922            _fm.el.dataListBoard.innerHTML = '';
6923            return _fm.el.dataListBoard;
6924        };
6925        _fm.renderEpReviewDataList = function(){
6926            _fm.el.emptyListEpReview.style.display = 'none';
6927            _fm.el.noSearchListEpReview.style.display = 'none';
6928            _fm.el.dataListEpReview.style.display = '';
6929            _fm.el.dataListEpReview.innerHTML = '';
6930            return _fm.el.dataListEpReview;
6931        };
6932        _fm.renderComplainReviewDataList = function(){
6933            _fm.el.emptyListComplainReview.style.display = 'none';
6934            _fm.el.noSearchListComplainReview.style.display = 'none';
6935            _fm.el.dataListComplainReview.style.display = '';
6936            _fm.el.dataListComplainReview.innerHTML = '';
6937            return _fm.el.dataListComplainReview;
6938        };
6939        _fm.renderEventDataList = function(){
6940            _fm.el.emptyListEvent.style.display = 'none';
6941            _fm.el.noSearchListEvent.style.display = 'none';
6942            _fm.el.dataListEvent.style.display = '';
6943            _fm.el.dataListEvent.innerHTML = '';
6944            return _fm.el.dataListEvent;
6945        };
6946
6947        var _getSearchOptions = function() {
6948
6949            var keyword = _fm.el.searchKeyword.value;
6950            var txParts = _fm.data.selTxParts;
6951            var areas = _fm.data.selAreas;
6952
6953            var _selTxParts = isEmptyList(txParts) ?  '' : txParts.join(',');
6954            var _selAreas = isEmptyList(areas) ?  '' : areas.join(',');
6955
6956            var _order = bts.defaults.orderKey;
6957            var _direction  = bts.defaults.orderDirection;
6958
6959            var res = {
6960                opts1: _selTxParts,
6961                filter: {
6962                    areaInfos: _selAreas
6963                },
6964                o: _order,
6965                s: _direction
6966            };
6967
6968            if (isEmpty(keyword)) {
6969
6970            } else {
6971
6972                res.q = keyword;
6973            }
6974            return res;
6975        };
6976
6977        var _setSearchOptions = function() {
6978
6979            var keyword = _fm.el.searchKeyword.value;
6980            var _currSearchKeyword = keyword ? keyword : '';
6981            bts.setData(bts.dataKeys.currSearchKeyword, _currSearchKeyword);
6982            bts.setViaSearchPage();
6983
6984            bts.setListData(bts.dataKeys.selTxParts, _fm.data.selTxParts);
6985            bts.setListData(bts.dataKeys.selTxPurposes, []);
6986            bts.setListData(bts.dataKeys.selTxNames, []);
6987
6988            bts.setListData(bts.dataKeys.selTagAreaInfos, _fm.data.selAreas);
6989        };
6990
6991        _fm.renderSearchResultList = function(callback) {
6992
6993            _fm.renderTxNameEmptyList();
6994            _fm.renderReviewEmptyList();
6995            _fm.renderEventEmptyList();
6996            _fm.renderDoctorEmptyList();
6997            _fm.renderHospitalEmptyList();
6998            _fm.renderBoardEmptyList();
6999            _fm.renderEpReviewEmptyList();
7000            _fm.renderComplainReviewEmptyList();
7001
7002            _fm._offSearchOptions();
7003            _fm._onSearchResults();
7004
7005            _fm.el.wrapperKeyword.style.display = '';
7006
7007            var _hasSelArea = false;
7008
7009            //render tags [s]
7010            _fm.el.wrapperResultsSelTxParts.innerHTML = '';
7011            if (isEmptyList(_fm.data.selTxParts)) {
7012
7013                _fm.el.wrapperResultsSelTxPartsDiv.style.display = 'none';
7014            } else {
7015
7016                _fm.el.wrapperResultsSelTxPartsDiv.style.display = '';
7017                for (var i = 0, length = _fm.data.selTxParts.length; i < length; i ++) {
7018
7019                    var _data = _fm.data.selTxParts[i];
7020
7021                    var _el = cloneEle(_fm.el.wrapperTemplateItemTags);
7022
7023                    if (isEmpty(_data)) {
7024                        bts.isDebug() && console.log(ns + '.renderSearchResultList :: render tags :: skip', i);
7025                        continue;
7026                    }
7027
7028
7029                    sel('[data-column-name="name"]', _el)	.innerHTML = bts.getTxPartNm(_data);
7030                    sel('[data-ele-name="btnDel"]', _el)	.dataset.txPartCd = _data || '';
7031                    sel('[data-ele-name="btnDel"]', _el)	.onclick = function(_){
7032
7033                        if (isEmpty(this.dataset.txPartCd)) {
7034                        } else {
7035
7036                            _fm.data.selTxParts = deleteSetItem(_fm.data.selTxParts, this.dataset.txPartCd);
7037                        }
7038                        if (isEmptyList(_fm.data.selTxParts)) {
7039
7040                            _fm.el.searchTxPart.value = '';
7041                        } else {
7042
7043                            _fm.el.searchTxPart.value = _fm.data.selTxParts[0];
7044                        }
7045                        var _queryStrings = _fm.el.searchKeyword.value ? '?' + $.param({q: _fm.el.searchKeyword.value}) : '';
7046                        window.location.href = bts.path.search + _queryStrings;
7047                        return false;
7048                    };
7049
7050                    _fm.el.wrapperResultsSelTxParts.appendChild(_el);
7051                }
7052            }
7053            _fm.el.wrapperResultsSelAreas.innerHTML = '';
7054            if (isEmptyList(_fm.data.selAreas)) {
7055
7056                _fm.el.wrapperResultsSelAreasDiv.style.display = 'none';
7057            } else {
7058
7059                _hasSelArea = true;
7060
7061                _fm.el.wrapperResultsSelAreasDiv.style.display = '';
7062                for (var i = 0, length = _fm.data.selAreas.length; i < length; i ++) {
7063
7064                    var _data = _fm.data.selAreas[i];
7065
7066                    var _el = cloneEle(_fm.el.wrapperTemplateItemTags);
7067
7068                    if (isEmpty(_data)) {
7069                        bts.isDebug() && console.log(ns + '.renderSearchResultList :: render tags :: skip', i);
7070                        continue;
7071                    }
7072
7073
7074                    sel('[data-column-name="name"]', _el)	.innerHTML = bts.getAreaNm(_data);
7075                    sel('[data-ele-name="btnDel"]', _el)	.dataset.areaCd = _data || '';
7076                    sel('[data-ele-name="btnDel"]', _el)	.onclick = function(_){
7077
7078                        if (isEmpty(this.dataset.areaCd)) {
7079                        } else {
7080
7081                            _fm.data.selAreas = deleteSetItem(_fm.data.selAreas, this.dataset.areaCd);
7082                        }
7083                        if (isEmptyList(_fm.data.selAreas)) {
7084
7085                            _fm.el.searchArea.value = '';
7086                        } else {
7087
7088                            _fm.el.searchArea.value = _fm.data.selAreas[0];
7089                        }
7090                        var _queryStrings = _fm.el.searchKeyword.value ? '?' + $.param({q: _fm.el.searchKeyword.value}) : '';
7091                        window.location.href = bts.path.search + _queryStrings;
7092                        return false;
7093                    };
7094
7095                    _fm.el.wrapperResultsSelAreas.appendChild(_el);
7096                }
7097            }
7098            //render tags [e]
7099
7100            _fm.el.btnSearchMoreTxName		.onclick = function(e){
7101                _setSearchOptions();
7102            };
7103            _fm.el.btnSearchMoreReview		.onclick = function(e){
7104                _setSearchOptions();
7105            };
7106            _fm.el.btnSearchMoreDoctor		.onclick = function(e){
7107                _setSearchOptions();
7108            };
7109            _fm.el.btnSearchMoreHospital	.onclick = function(e){
7110                _setSearchOptions();
7111            };
7112           
7113            _fm.el.btnSearchMoreEvent		.onclick = function(e){
7114                _setSearchOptions();
7115            };
7116            _fm.el.btnSearchMoreBoard	.onclick = function(e){
7117                _setSearchOptions();
7118            };
7119            _fm.el.btnSearchMoreEpReview.onclick = function(e){
7120                _setSearchOptions();
7121            };
7122            _fm.el.btnSearchMoreComplainReview.onclick = function(e){
7123                _setSearchOptions();
7124            };
7125            var searchOptions = _getSearchOptions();
7126
7127            var _renderReview = function() {
7128                // overlay.on();
7129                // if (!feToggle.isOn(feToggle.features.review)) {
7130                //     return;
7131                // }
7132                bts.svc.getCountReview(searchOptions, function(res){
7133
7134                    if (res.body == undefined || res.body.count == undefined) {
7135
7136                        _fm.data.totalCount.resultReview = 0;
7137                        _renderTotalCount(0, _fm.el.totalCountReview, _fm.el.btnSearchMoreReview);
7138                        return;
7139                    }
7140
7141                    if(res.body.count <= 0) {
7142
7143                        _fm.data.totalCount.resultReview = 0;
7144                        _renderTotalCount(0, _fm.el.totalCountReview, _fm.el.btnSearchMoreReview);
7145                        return;
7146                    }
7147                    _fm.data.totalCount.resultReview = res.body.count;
7148                    _renderTotalCount(res.body.count, _fm.el.totalCountReview, _fm.el.btnSearchMoreReview);
7149                }, false, false);
7150                bts.svc.getsReview(bts.defaults.pageStart_search, _fm.limit, searchOptions, function(res){
7151                    var dataList = res.body.data.datas;
7152                    if (dataList) {
7153
7154                        if (dataList.length == undefined || dataList.length <= 0) {
7155
7156                            _fm.renderReviewNoSearchList();
7157                            return;
7158                        }
7159                    } else {
7160
7161                        _fm.renderReviewNoSearchList();
7162                        return;
7163                    }
7164
7165                    //render [s]
7166                    var dataListEle = _fm.renderReviewDataList();
7167
7168                    for (var i = 0, length = dataList.length; i < length; i ++) {
7169
7170                        var _data = dataList[i];
7171                        if (listItems) {
7172
7173                        } else {
7174                            bts.err('listItems module not found.');
7175                        }
7176                        listItems.renderRowReview(_data, dataListEle, function(e, _this){
7177                            sendEvent(_this, e);
7178                            /*e.preventDefault();
7179							var _no = _this.dataset.no;
7180							var _name = _this.dataset.name;
7181							bts.setData(bts.dataKeys.currReviewNo, _no);
7182							
7183							window.location.href = bts.seo.parseDetailPath(bts.path.treatmentDetail, _no, _name);*/
7184                        });
7185                    }
7186                    //render [e]
7187                }, false, false);
7188            };
7189
7190            var _renderTx = function() {
7191                // overlay.on();
7192                if (_hasSelArea) {
7193
7194                    _fm.data.totalCount.resultTxName = 0;
7195                    _renderTotalCount(0, _fm.el.totalCountTxName, _fm.el.btnSearchMoreTxName);
7196
7197                    _fm.renderTxNameNoSearchList();
7198                }
7199                !_hasSelArea && bts.svc.getCountTreatment(searchOptions, function(res){
7200
7201                    if (res.body == undefined || res.body.count == undefined) {
7202
7203                        _fm.data.totalCount.resultTxName = 0;
7204                        _renderTotalCount(0, _fm.el.totalCountTxName, _fm.el.btnSearchMoreTxName);
7205                        return;
7206                    }
7207
7208                    if(res.body.count <= 0) {
7209
7210                        _fm.data.totalCount.resultTxName = 0;
7211                        _renderTotalCount(0, _fm.el.totalCountTxName, _fm.el.btnSearchMoreTxName);
7212                        return;
7213                    }
7214                    _fm.data.totalCount.resultTxName = res.body.count;
7215                    _renderTotalCount(res.body.count, _fm.el.totalCountTxName, _fm.el.btnSearchMoreTxName);
7216                }, false, false);
7217                !_hasSelArea && bts.svc.getsTreatment(Object.assign({
7218                        limit: _fm.limit
7219                    }, searchOptions),
7220                    function(res){
7221                        var dataList = res.body.data.datas;
7222                        if (dataList) {
7223
7224                            if (dataList.length == undefined || dataList.length <= 0) {
7225
7226                                _fm.renderTxNameNoSearchList();
7227                                return;
7228                            }
7229                        } else {
7230
7231                            _fm.renderTxNameNoSearchList();
7232                            return;
7233                        }
7234
7235                        //render [s]
7236                        var dataListEle = _fm.renderTxNameDataList();
7237
7238                        for (var i = 0, length = dataList.length; i < length; i ++) {
7239
7240                            var _data = dataList[i];
7241                            if (listItems) {
7242
7243                            } else {
7244                                bts.err('listItems module not found.');
7245                            }
7246                            listItems.renderRowTreatment(_data, dataListEle, function(e, _this){
7247                                sendEvent(_this, e);
7248                                /*e.preventDefault();
7249								var _no = _this.dataset.no;
7250								var _name = _this.dataset.name;
7251								bts.setData(bts.dataKeys.currTreatmentNo, _no);
7252								
7253								window.location.href = bts.seo.parseDetailPath(bts.path.treatmentDetail, _no, _name);*/
7254                            });
7255                        }
7256                        //render [e]
7257                    }, false, false);
7258            };
7259
7260            var _renderDoctor = function(){
7261                bts.svc.getCountDoctor(searchOptions, function(res){
7262
7263                    if (res.body == undefined || res.body.count == undefined) {
7264
7265                        _fm.data.totalCount.resultDoctor = 0;
7266                        _renderTotalCount(0, _fm.el.totalCountDoctor, _fm.el.btnSearchMoreDoctor);
7267                        return;
7268                    }
7269
7270                    if(res.body.count <= 0) {
7271
7272                        _fm.data.totalCount.resultDoctor = 0;
7273                        _renderTotalCount(0, _fm.el.totalCountDoctor, _fm.el.btnSearchMoreDoctor);
7274                        return;
7275                    }
7276
7277                    _fm.data.totalCount.resultDoctor = res.body.count;
7278                    _renderTotalCount(res.body.count, _fm.el.totalCountDoctor, _fm.el.btnSearchMoreDoctor);
7279                }, false, false);
7280                bts.svc.getsDoctor(Object.assign({
7281                        limit: _fm.limit
7282                    }, searchOptions),
7283                    function(res){
7284                        var dataList = res.body.data.datas;
7285                        if (dataList) {
7286
7287                            if (dataList.length == undefined || dataList.length <= 0) {
7288
7289                                _fm.renderDoctorNoSearchList();
7290                                return;
7291                            }
7292                        } else {
7293
7294                            _fm.renderDoctorNoSearchList();
7295                            return;
7296                        }
7297
7298                        //render [s]
7299                        var dataListEle = _fm.renderDoctorDataList();
7300
7301                        for (var i = 0, length = dataList.length; i < length; i ++) {
7302
7303                            var _data = dataList[i];
7304                            if (listItems) {
7305
7306                            } else {
7307                                bts.err('listItems module not found.');
7308                            }
7309                            listItems.renderRowDoctor(_data, dataListEle, function(e, _this){
7310                                sendEvent(_this, e);
7311                                /*e.preventDefault();
7312								var _no = _this.dataset.no;
7313								var _name = _this.dataset.name;
7314								bts.setData(bts.dataKeys.currDoctorNo, _no);
7315		
7316								window.location.href = bts.seo.parseDetailPath(bts.path.doctorDetail, _no, _name);*/
7317                            });
7318                        }
7319                        //render [e]
7320                    }, false, false);
7321            };
7322
7323            var _renderHospital = function(){
7324                bts.svc.getCountHospital(searchOptions, function(res){
7325
7326                    if (res.body == undefined || res.body.count == undefined) {
7327
7328                        _fm.data.totalCount.resultHospital = 0;
7329                        _renderTotalCount(0, _fm.el.totalCountHospital, _fm.el.btnSearchMoreHospital);
7330                        return;
7331                    }
7332
7333                    if(res.body.count <= 0) {
7334
7335                        _fm.data.totalCount.resultHospital = 0;
7336                        _renderTotalCount(0, _fm.el.totalCountHospital, _fm.el.btnSearchMoreHospital);
7337                        return;
7338                    }
7339
7340                    _fm.data.totalCount.resultHospital = res.body.count;
7341                    _renderTotalCount(res.body.count, _fm.el.totalCountHospital, _fm.el.btnSearchMoreHospital);
7342                }, false, false);
7343                bts.svc.getsHospital(Object.assign({
7344                        limit: _fm.limit
7345                    }, searchOptions),
7346                    function(res){
7347                        var dataList = res.body.data.datas;
7348                        if (dataList) {
7349
7350                            if (dataList.length == undefined || dataList.length <= 0) {
7351
7352                                _fm.renderHospitalNoSearchList();
7353                                callback();
7354                                return;
7355                            }
7356                        } else {
7357
7358                            _fm.renderHospitalNoSearchList();
7359                            callback();
7360                            return;
7361                        }
7362
7363                        //render [s]
7364                        var dataListEle = _fm.renderHospitalDataList();
7365
7366                        for (var i = 0, length = dataList.length; i < length; i ++) {
7367
7368                            var _data = dataList[i];
7369                            if (listItems) {
7370
7371                            } else {
7372                                bts.err('listItems module not found.');
7373                            }
7374                            listItems.renderRowHospital(_data, dataListEle, function(e, _this){
7375                                sendEvent(_this, e);
7376                                /*e.preventDefault();
7377								var _no = _this.dataset.no;
7378								var _name = _this.dataset.name;
7379								bts.setData(bts.dataKeys.currHospitalNo, _no);
7380								
7381								window.location.href = bts.seo.parseDetailPath(bts.path.hospitalDetail, _no, _name);*/
7382                            });
7383                        }
7384                        callback();
7385                        //render [e]
7386                    }, false, false);
7387            };
7388            
7389            
7390            
7391            
7392            var _renderBoard = function(){
7393                bts.svc.getCountBoard(Object.assign({
7394                		limit: _fm.limit,
7395                		genderCode: bts.set.genderCode,
7396                		callType : "M"
7397            		}, searchOptions), function(res){
7398                    if (res.body == undefined || res.body.count == undefined) {
7399
7400                        _fm.data.totalCount.resultBoard = 0;
7401                        _renderTotalCount(0, _fm.el.totalCountBoard, _fm.el.btnSearchMoreBoard);
7402                        return;
7403                    }
7404
7405                    if(res.body.count <= 0) {
7406
7407                        _fm.data.totalCount.resultBoard = 0;
7408                        _renderTotalCount(0, _fm.el.totalCountBoard, _fm.el.btnSearchMoreBoard);
7409                        return;
7410                    }
7411
7412                    _fm.data.totalCount.resultBoard = res.body.count;
7413                    _renderTotalCount(res.body.count, _fm.el.totalCountBoard, _fm.el.btnSearchMoreBoard);
7414                }, false, false);
7415                bts.svc.getsBoard(Object.assign({
7416                        limit: _fm.limit,
7417                        genderCode: bts.set.genderCode,
7418                        callType : "M"
7419                    }, searchOptions),
7420                    function(res){
7421                        console.log(">>>res = ", res);
7422                        var dataList = res.body.data.datas;
7423                        if (dataList) {
7424
7425                            if (dataList.length == undefined || dataList.length <= 0) {
7426
7427                                _fm.renderBoardNoSearchList();
7428                                callback();
7429                                return;
7430                            }
7431                        } else {
7432
7433                            _fm.renderBoardNoSearchList();
7434                            callback();
7435                            return;
7436                        }
7437
7438                        //render [s]
7439                        var dataListEle = _fm.renderBoardDataList();
7440
7441                        for (var i = 0, length = dataList.length; i < length; i ++) {
7442
7443                            var _data = dataList[i];
7444                            if (listItems) {
7445
7446                            } else {
7447                                bts.err('listItems module not found.');
7448                            }
7449                            listItems.renderRowBoard(_data, dataListEle, function(e, _this){
7450                                sendEvent(_this, e);
7451                                /*e.preventDefault();
7452								var _no = _this.dataset.no;
7453								var _name = _this.dataset.name;
7454								bts.setData(bts.dataKeys.currHospitalNo, _no);
7455								
7456								window.location.href = bts.seo.parseDetailPath(bts.path.hospitalDetail, _no, _name);*/
7457                            });
7458                        }
7459                        $('[data-column-name="boardContents"]').each(function() {
7460                			if($(this).height() > 43){
7461                				//console.log($(this).parents("p"));
7462                				$(this).parents("p").css("display","-webkit-box");
7463                				$(this).parents("p").css("overflow","hidden");
7464                				$(this).parents("p").css("vertical-align","top");
7465                				$(this).parents("p").css("text-overflow","ellipsis");
7466                
7466				$(this).parents("p").css("word-break","break-all");
7467                				$(this).parents("p").css("-webkit-box-orient","vertical");
7468                				$(this).parents("p").css("-webkit-line-clamp","2");
7469                				$(this).parents("p").css("height","43px");
7470                				$(this).parents("p").next().show();
7471                			}
7472                		});
7473                        callback();
7474                        //render [e]
7475                    }, false, false);
7476            };
7477            
7478            
7479            
7480            
7481            var _renderEpReview = function(){
7482                bts.svc.getCountEpReview(Object.assign({
7483                		limit: _fm.limit,
7484                		platformType: bts.set.platformType
7485            		}, searchOptions), function(res){
7486                    if (res.body == undefined || res.body.count == undefined) {
7487
7488                        _fm.data.totalCount.resultEpReview = 0;
7489                        _renderTotalCount(0, _fm.el.totalCountEpReview, _fm.el.btnSearchMoreEpReview);
7490                        return;
7491                    }
7492
7493                    if(res.body.count <= 0) {
7494
7495                        _fm.data.totalCount.resultEpReview = 0;
7496                        _renderTotalCount(0, _fm.el.totalCountEpReview, _fm.el.btnSearchMoreEpReview);
7497                        return;
7498                    }
7499
7500                    _fm.data.totalCount.resultEpReview = res.body.count;
7501                    _renderTotalCount(res.body.count, _fm.el.totalCountEpReview, _fm.el.btnSearchMoreEpReview);
7502                }, false, false);
7503                bts.svc.getsEpReview(Object.assign({
7504                        limit: _fm.limit,
7505                        platformType: bts.set.platformType
7506                    }, searchOptions),
7507                    function(res){
7508                        var dataList = res.body.data.datas;
7509                        if (dataList) {
7510
7511                            if (dataList.length == undefined || dataList.length <= 0) {
7512
7513                                _fm.renderEpReviewNoSearchList();
7514                                callback();
7515                                return;
7516                            }
7517                        } else {
7518
7519                            _fm.renderEpReviewNoSearchList();
7520                            callback();
7521                            return;
7522                        }
7523
7524                        //render [s]
7525                        var dataListEle = _fm.renderEpReviewDataList();
7526
7527                        for (var i = 0, length = dataList.length; i < length; i ++) {
7528
7529                            var _data = dataList[i];
7530                            if (listItems) {
7531
7532                            } else {
7533                                bts.err('listItems module not found.');
7534                            }
7535                            listItems.renderRowEpReview(_data, dataListEle, function(e, _this){
7536                                sendEvent(_this, e);
7537                                /*e.preventDefault();
7538								var _no = _this.dataset.no;
7539								var _name = _this.dataset.name;
7540								bts.setData(bts.dataKeys.currHospitalNo, _no);
7541								
7542								window.location.href = bts.seo.parseDetailPath(bts.path.hospitalDetail, _no, _name);*/
7543                            });
7544                        }
7545                        callback();
7546                        //render [e]
7547                    }, false, false);
7548            };
7549            
7550            var _renderComplainReview = function(){
7551                bts.svc.getCountComplainReview(Object.assign({
7552                		limit: _fm.limit,
7553                		platformType: bts.set.platformType
7554            		}, searchOptions), function(res){
7555                    if (res.body == undefined || res.body.count == undefined) {
7556
7557                        _fm.data.totalCount.resultComplainReview = 0;
7558                        _renderTotalCount(0, _fm.el.totalCountComplainReview, _fm.el.btnSearchMoreComplainReview);
7559                        return;
7560                    }
7561
7562                    if(res.body.count <= 0) {
7563
7564                        _fm.data.totalCount.resultComplainReview = 0;
7565                        _renderTotalCount(0, _fm.el.totalCountComplainReview, _fm.el.btnSearchMoreComplainReview);
7566                        return;
7567                    }
7568
7569                    _fm.data.totalCount.resultComplainReview = res.body.count;
7570                    _renderTotalCount(res.body.count, _fm.el.totalCountComplainReview, _fm.el.btnSearchMoreComplainReview);
7571                }, false, false);
7572                bts.svc.getsComplainReview(Object.assign({
7573                        limit: _fm.limit,
7574                        platformType: bts.set.platformType
7575                    }, searchOptions),
7576                    function(res){
7577                        var dataList = res.body.data.datas;
7578                        if (dataList) {
7579
7580                            if (dataList.length == undefined || dataList.length <= 0) {
7581
7582                                _fm.renderComplainReviewNoSearchList();
7583                                callback();
7584                                return;
7585                            }
7586                        } else {
7587
7588                            _fm.renderComplainReviewNoSearchList();
7589                            callback();
7590                            return;
7591                        }
7592                        var dataListEle = _fm.renderComplainReviewD
7592ataList();
7593
7594                        for (var i = 0, length = dataList.length; i < length; i ++) {
7595
7596                            var _data = dataList[i];
7597                            if (listItems) {
7598
7599                            } else {
7600                                bts.err('listItems module not found.');
7601                            }
7602                            listItems.renderRowComplainReview(_data, dataListEle, function(e, _this){
7603                                sendEvent(_this, e);
7604                            });
7605                        }
7606                        callback();
7607                    }, false, false);
7608            };
7609            
7610
7611            var _renderEvent = function(){
7612                // if (!feToggle.isOn(feToggle.features.event)) {
7613                //     return;
7614                // }
7615                bts.svc.getCountEvent(searchOptions, function(res){
7616                    if (res.body == undefined || res.body.count == undefined) {
7617
7618                        _fm.data.totalCount.resultEvent = 0;
7619                        _renderTotalCount(0, _fm.el.totalCountEvent, _fm.el.btnSearchMoreEvent);
7620                        return;
7621                    }
7622
7623                    if(res.body.count <= 0) {
7624
7625                        _fm.data.totalCount.resultEvent = 0;
7626                        _renderTotalCount(0, _fm.el.totalCountEvent, _fm.el.btnSearchMoreEvent);
7627                        return;
7628                    }
7629                    _fm.data.totalCount.resultEvent = res.body.count;
7630                    _renderTotalCount(res.body.count, _fm.el.totalCountEvent, _fm.el.btnSearchMoreEvent);
7631                }, false, false);
7632                bts.svc.getsEvent(Object.assign({
7633                        limit: _fm.limit
7634                    }, searchOptions),
7635                    function(res){
7636                        var dataList = res.body.data.datas;
7637                        if (dataList) {
7638
7639                            if (dataList.length == undefined || dataList.length <= 0) {
7640
7641                                _fm.renderEventNoSearchList();
7642                                callback();
7643                                return;
7644                            }
7645                        } else {
7646
7647                            _fm.renderEventNoSearchList();
7648                            callback();
7649                            return;
7650                        }
7651
7652                        //render [s]
7653                        var dataListEle = _fm.renderEventDataList();
7654
7655                        for (var i = 0, length = dataList.length; i < length; i ++) {
7656
7657                            var _data = dataList[i];
7658                            if (listItems) {
7659
7660                            } else {
7661                                bts.err('listItems module not found.');
7662                            }
7663                            listItems.renderRowEvent(_data, dataListEle, function(e, _this){
7664                                sendEvent(_this, event);
7665                            });
7666                        }
7667                        callback();
7668                        //render [e]
7669                    }, false, false);
7670                //event end
7671            };
7672
7673            _renderTx();
7674            window.requestAnimationFrame(function() {
7675                _renderReview();
7676                window.requestAnimationFrame(function() {
7677                    _renderEvent();
7678                    window.requestAnimationFrame(function() {
7679                        _renderDoctor();
7680                        window.requestAnimationFrame(function() {
7681                            _renderHospital();
7682                            window.requestAnimationFrame(function() {
7683                                _renderBoard();
7684                                window.requestAnimationFrame(function() {
7685                                	_renderEpReview();
7686                                	window.requestAnimationFrame(function() {
7687                                    	_renderComplainReview();
7688                                    });
7689                                });
7690                            });
7691                        });
7692                    });
7693                });
7694            });
7695        };
7696        var initModal = function(){
7697
7698            _fm.initData();
7699            _fm.view = {
7700                selectedActionType: 0
7701            };
7702            _fm.limit = bts.defaults.pageSize_searchResult;
7703            _fm.callback = function() {};
7704
7705            _fm._onSearchOptions();
7706            _fm._offSearchResults();
7707            _fm._renderAllEmptyList();
7708
7709            _fm.renderTxNameEmptyList();
7710            _fm.renderReviewEmptyList();
7711            _fm.renderEventEmptyList();
7712            _fm.renderDoctorEmptyList();
7713            _fm.renderHospitalEmptyList();
7714
7715            _fm.frm.onsubmit = function(e) {
7716                e.preventDefault();
7717
7718                var _searchKeyword = _fm.el.searchKeyword.value;
7719                if (_validateSearchParams(_searchKeyword)) {
7720
7721                } else {
7722
7723                    return false;
7724                }
7725
7726                _fm.frm.submit();
7727// 				_fm.submitSearch(function() {
7728
7729// 					// history 처리
7730// 					bts.isDebug() && console.log(ns + 'form submit :: after callback');
7731// 					/*
7732// 					var _queryStrings = _fm.el.searchKeyword.value ? '?' + $.param({q: _fm.el.searchKeyword.value}) : '';
7733// 					DomUtil.addHistory(bts.path.searchResult + _queryStrings);
7734// 					*/
7735// 				});
7736            };
7737
7738            layerHeader.init({
7739                back: function () {
7740                    _fm._close();
7741                }
7742            });
7743            /*_fm.el.btnRemoveSearchKeyword.onclick = function() {
7744				_fm.el.searchKeyword.value = '';
7745				_fm.el.searchKeyword.focus();
7746			};*/
7747            frm.addEventListener('reset',  function(e) {
7748                window.requestAnimationFrame(function(){
7749                    _fm.el.searchKeyword.value = '';
7750                    _fm.el.searchKeyword.focus();
7751                });
7752            });
7753            _fm.el.btnRemoveRecentKeywords.onclick = function() {
7754                bts.setListData(bts.dataKeys.recentSearchKeywords, []);
7755                _renderSearchKeywordList();
7756            };
7757            _fm.frm.addEventListener('submit', function(e) {
7758                e.preventDefault();
7759                applySearch();
7760            });
7761            /*_fm.el.btnApply.onclick = function() {
7762				applySearch();
7763			};*/
7764        };
7765
7766        _fm._close = function() {
7767            offMain();
7768            initModal();
7769        };
7770        var _open = function(callback, actionType) {
7771
7772            initModal();
7773            if (isFunction(callback)) {
7774
7775                _fm.callback = callback;
7776            }
7777            _fm.focusInput();
7778
7779            switch(actionType) {
7780                case _fm.actionType.hospital:
7781                case _fm.actionType.doctor:
7782                    _fm.view.selectedActionType = actionType;
7783                    break;
7784                default:
7785                    bts.err(ns + '.open invalid actionType', actionType);
7786                    break;
7787            }
7788
7789            /*_fm.$el.p.modal({
7790				  backdrop: false
7791				, show: true
7792				, keyboard: true
7793			});*/
7794
7795            if (isSearchResult()) {
7796
7797                // 검색 결과 표시 할 때 기존 필터 제거 | 190723
7798                bts.setListData(bts.dataKeys.selTxParts, []);
7799                bts.setListData(bts.dataKeys.selTxPurposes, []);
7800                bts.setListData(bts.dataKeys.selTxNames, []);
7801
7802                bts.setListData(bts.dataKeys.selTagAreaInfos, []);
7803
7804                bts.setListData(bts.dataKeys.selTagHospitalInfos, []);
7805                bts.setListData(bts.dataKeys.selTagDoctorInfos, []);
7806                bts.setListData(bts.dataKeys.selTagAvailableLanguages, []);
7807
7808                _fm.data.selTxParts = [];
7809                _fm.data.selAreas = [];
7810
7811                var _searchTxPart = _fm.el.searchTxPart.value;
7812                if (isNotEmpty(_searchTxPart)) {
7813
7814                    _fm.data.selTxParts = addSetItem([], _searchTxPart);
7815                }
7816                var _searchArea = _fm.el.searchArea.value;
7817                if (isNotEmpty(_searchArea)) {
7818
7819                    _fm.data.selAreas = addSetItem([], _searchArea);
7820                }
7821                var _searchKeyword = _fm.el.searchKeyword.value;
7822                if (_validateSearchParams(_searchKeyword)) {
7823
7824                } else {
7825
7826                    return false;
7827                }
7828                _fm.el.btnRemoveSearchKeyword.style.display = '';
7829
7830                _fm.submitSearch();
7831                return false;
7832            }
7833            if (isEmpty(_fm.el.searchKeyword.value)) {
7834
7835                _fm.el.btnRemoveSearchKeyword.style.display = 'none';
7836            } else {
7837
7838                _fm.el.btnRemoveSearchKeyword.style.display = '';
7839            }
7840
7841            _fm.renderSearchOptionList(function(){
7842
7843                bts.isDebug() && console.log(ns + '.open > renderSearchOption callback :: search Init.');
7844
7845                if (isFunction(_fm.callback)) {
7846
7847                    _fm.callback();
7848                }
7849                overlay.off();
7850                setTimeout(function(){
7851
7852                    bts.isDebug() && console.log(ns + '.open >
7852 renderSearchOption callback :: focus.', _fm);
7853                    _fm.focusInput();
7854                }, 510);
7855            });
7856        };
7857        _fm.open = function(callback, actionType) {
7858            bts.isDebug() && console.log(ns + '.open :: on');
7859            overlay.on();
7860            bts.getsTxAll(function () {
7861                bts.getsTagAll(function () {
7862                    overlay.off();
7863                    onMain();
7864                    _open(callback, actionType);
7865                });
7866            });
7867        };
7868        _fm.focusInput = function() {
7869
7870            /*if (bts.isMacOS() || bts.isIOS()) {
7871				
7872				_fm.el.searchKeyword.focus();
7873			} else {
7874			
7875			}*/
7876            //_fm.el.searchKeyword.focus({preventScroll: false});
7877            _fm.el.searchKeyword.focus();
7878        };
7879
7880
7881        var init = function() {
7882            _fm.$el.p.on('hide.bs.modal', function (e) {
7883
7884                _fm._close();
7885            });
7886        };
7887        init();
7888        // ** ext function ** =============================
7889
7890        _this.close = function() {
7891
7892            /* if (_fm.el.p.style.display == 'none') {
7893				
7894			} else {
7895				
7896				_fm.$el.p.modal('hide');
7897			} */
7898            _fm._close();
7899        };
7900        _this.open = function(callback, actionType) {
7901
7902            if (actionType) {
7903
7904            } else {
7905
7906                actionType = _fm.actionType.hospital;
7907            }
7908
7909            _fm.open(callback, actionType);
7910        };
7911        _this.actionType = _fm.actionType;
7912		_this.renderModalEmptyList = function() {
7913
7914            _fm._renderAllEmptyList();
7915        };
7916        _this.focusInput = function() {
7917
7918            _fm.focusInput();
7919        };
7920        _this.isSearchResult = function() {
7921
7922            return isSearchResult();
7923        };
7924        _this.init = function () {
7925
7926            if(isSearch()) {
7927                bts.isDebug() && console.log('Init search page.');
7928                offMain();
7929                window.requestAnimationFrame(function(){
7930                    _this.open(function(){
7931                    });
7932                });
7933            } else if(isSearchResult()) {
7934                bts.isDebug() && console.log('Init search result page.');
7935                offMain();
7936                window.requestAnimationFrame(function(){
7937                    _this.open(function(){
7938                    });
7939                });
7940            } else {
7941                bts.isDebug() && console.log('search page error.');
7942            }
7943        };
7944	    return _this;
7945	}; return new SearchMain;})(isSearch, _isSearchResult);
7946    window.requestAnimationFrame(function(){
7947        searchMain.init();
7948    });
7949	/*]]>*/
7950</script>
7950
7951<!-- <th:block th:include="~{mobile/$inc/app_download :: item}" th:remove="tag"></div> -->
7952
7953<!-- 
7953<script th:include="~{$inc/naver-analytics :: item}" th:remove="tag"></script>
7953 -->
7954</body>
7955</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.