PageSourceSearch

https://static.khan.co.kr/js/khan/_date.js

js khan.co.kr collected 2026-10-02 09:49:58 UTC 78,864 bytes, 1,455 lines download raw bytes

1
2/**
3 * @filePath /data/resource/js/khan/_date.js
4 * @author
5 * @note     경향 리스트 JS
6 * @update
7 */
8
9var disabledDays = new Array();
10var date = new Date();
11var year = getParam("year");
12var month = getParam("month");
13var day = getParam("day");
14var default_date = new Date();
15
16if (year == "") year = date.getFullYear();
17if (month == "") month = parseInt(date.getMonth()+1);
18if (document.getElementById('list_date') && document.getElementById('list_date').value != undefined && document.getElementById('list_date').value) {
19    default_date = document.getElementById('list_date').value;
20}
21
22var pageNumber = 1;
23var tab_height_m = 50;
24var tab_height_pc = 100;
25var serial_sort = "";
26var series_code_del = "";
27
28var url = "/SecListData.html";
29// var url = "https://www.khan.co.kr/SecListData.html";
30
31var clareCalendar = {
32    prevText: '이전 달', // New (25)
33    nextText: '다음 달', // New (25)
34	monthNames: ['1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12'], // New (25)
35    monthNamesShort : ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'],
36	dayNames: ['일', '월', '화', '수', '목', '금', '토'], // New (25)
37	dayNamesShort: ['일', '월', '화', '수', '목', '금', '토'], // New (25)
38    dayNamesMin : ['일', '월', '화', '수', '목', '금', '토'],
39    dateFormat : 'yy.mm.dd', //< 형식(20120303)
40    // autoSize : false, //< 오토 리사이즈(body등 상위 태그의 설정에 따른다)
41    // changeMonth : true, //< 월 변경 가능
42    // changeYear : true, //< 년 변경 가능
43    showMonthAfterYear : true, //< 년 뒤에 월 표시
44    yearSuffix: '.', // New (25). 년과 월 사이 . 표시를 위해 (기존 '년')
45    yearRange : '2000:2999', //< 1980년부터 2999년까지
46    minDate : new Date('2000-07-27'),
47    maxDate : date,
48    showOtherMonths : true,
49    selectOtherMonths : true,
50    ignoreReadonly: true,
51	defaultDate: default_date, // New (25)
52    beforeShowDay: function (date) { // New (25)
53        var year = date.getFullYear();
54        var month = date.getMonth() + 1;
55        var day = date.getDate();
56
57        var customClass = 'td_day-'+ year +'-'+ month +'-'+ day;
58
59        // 반환값: [true/false, "추가할 클래스", "툴팁 텍스트"]
60        return [true, customClass, null];
61    },
62    /*beforeShowDay : function(date) { //특정일 선택 막기
63        var m = date.getMonth(), d = date.getDate(), y = date.getFullYear();
64
65        if($.inArray(y + '-' +(m+1) + '-' + d,disabledDays) != -1) {
66            $(".day-"+y + '-' +(m+1) + '-' + d).parent().addClass("ui-state-disabled");
67            console.log($(".day-"+y + '-' +(m+1) + '-' + d).parent().hasClass());
68            //return [false];
69        }
70        return [true];
71    },*/
72    onChangeMonthYear : function(year, month, inst) {
73        disabledDays = getDisabledDate(year, month);
74
75        setTimeout(function() {
76            for (i=0; i<disabledDays.length; i++) {
77                $(".td_day-"+disabledDays[i]).find('.ui-state-default').addClass("ui-state-disabled-color"); // New (25)
78            }
79        }, 10);
80    },
81    onSelect : function(dateText, inst) {
82        var date_arr = dateText.split(".");
83        year = date_arr[0];
84        month = parseInt(date_arr[1]);
85        day = parseInt(date_arr[2]);
86        pageNumber = 1;
87
88        if (page != "index") {
89            // 오늘 날짜일 경우 초기화
90            if (date.getFullYear() +"-"+ (date.getMonth()+1) +"-"+ date.getDate() == year +"-"+ month +"-"+ day) {
91                listData.init();
92            } else {
93                listData.load();
94            }
95        } else {
96            location.href = '/'+ type +'?year='+ year +'&month='+ date_arr[1] +'&day=' + date_arr[2];
97        }
98
99        // New (25)
100        // 선택된 날짜를 표시
101        $("#list_date").val(dateText);
102        $("#selected-date").text(dateText);
103
104        // 달력 숨기기
105        $("#datepicker-container").stop().fadeOut('fast');
106        $(".btn-calendar").removeClass('active');
107    }
108};
109
110var listData = {
111    // 데이터 로딩
112    load : function(pageNum) {
113        if (pageNum == "" || pageNum == undefined) pageNum = pageNumber;
114        if (type == 'newsletter_old') category = $('#listData_only_newsLetter').val();
115        if (type == 'channel') return false;
116        var sec_id = $("#exp_period").val();
117		if (type == 'notice' && $('#is_allowed').length > 0) { 
118			var is_allowed = $('#is_allowed').val(); 
119			var data = { 'syncType' : 'async', 'type' : type, 'year' : year, 'month' : month, 'day' : day, 'category' : category, 'category2' : category2, 'page' : pageNum, 'code' : code, 'serial' : serial, 'search_keyword' : search_keyword, 'sec_id' : sec_id, 'serial_sort' : serial_sort, 'series_code_del' : series_code_del, is_allowed : is_allowed };
120		} else { 
121			var data = { 'syncType' : 'async', 'type' : type, 'year' : year, 'month' : month, 'day' : day, 'category' : category, 'category2' : category2, 'page' : pageNum, 'code' : code, 'serial' : serial, 'search_keyword' : search_keyword, 'sec_id' : sec_id, 'serial_sort' : serial_sort, 'series_code_del' : series_code_del };
122		}
123
124        $.ajax({
125            url : url,
126            type : 'POST',
127            dataType : 'json',
128            data : data,
129            async : false,
130            cache : false,
131            success : function(json) {
132                console.log(json);
133                if (json.result == 'ok') {
134                    // 로드된 날짜가 2000년 7월 27일경우 이전 버튼 비활성화
135                    if (year +"-"+ month +"-"+ day == "2000-7-27") {
136                        $('.dateMove[data-mode="prev"]').addClass("disabled"); // New (25)
137                    } else {
138                        $('.dateMove[data-mode="prev"]').removeClass("disabled"); // New (25)
139                    }
140
141                    // 오늘 날짜일 경우 오른쪽 버튼 비활성화
142                    if ((date.getFullYear() +"-"+ (date.getMonth()+1) +"-"+ date.getDate() == year +"-"+ month +"-"+ day) || day == "") {
143                        $('.dateMove[data-mode="next"]').addClass("disabled"); // New (25)
144                        //if (type == "opinion") $(".today_view").show(); // 오늘 날짜일 경우 사설/칼럼 보이기
145                    } else {
146                        $('.dateMove[data-mode="next"]').removeClass("disabled"); // New (25)
147                        //if (type == "opinion") $(".today_view").hide(); // 오늘 날짜일 경우 사설/칼럼 숨김
148                    }
149
150                    // 2006년 이전 날짜 비활성화
151                    if ("2006-1-1" == year +"-"+ month +"-"+ day) {
152                        $('.dateMove[data-mode="prev"]').addClass("disabled"); // New (25)
153                    }
154
155                    var top_height = 0;
156                    if ($("#recent").length > 0 && type != "series_article" && type != "issue_article" && type != 'recent' && type != 'interative' && type != "theme") {
157                        var offset = $("#recent").offset();
158
159                        if (mode == "pc") {
160                            top_height = offset.top - tab_height_pc;
161                        } else if (mode == "m"){
162                            top_height = offset.top - tab_height_m;
163                        }
164                    }
165
166                    if (pageNum != pageNumber) {
167                        window.scrollTo({top:top_height, left:0});
168                        //$('html, body').animate({scrollTop : top_height}, 200);
169                    }
170
171                    pageNumber = pageNum;
172
173                    listData.addItem_new(json);
174                    limit_cnt = json.limit_cnt;
175
176                    setValue();
177                }
178            },
179            error : function(xhr) {}
180        });
181    },
182    // 데이터 노출 (2025 경향신문 개편)
183    addItem_new : function(json) {
184        var items = json.items;
185        var paging = json.paging;
186        var len = 0;
187        if (items != null) {
188            len = items.length;
189        }
190        var visitCh = (typeof visitChannel !== 'undefined' && visitChannel !== '') ? visitChannel.toLowerCase() : 'pc';
191
192        var html = '';
193
194        // 날짜별 데이터 편집
195        if (type == "issue_article" || type == "theme_article") {
196            var date_array = new Array();
197            var tmp_array = new Array();
198            var next_art_date = '';
199            for (var i = 0; i < len; i++) {
200                var art_date = items[i].article_date;
201                if (i == (len - 1)) {
202                    next_art_date = '';
203                } else {
204                    next_art_date = items[i + 1].article_date;
205                }
206
207                if (art_date == next_art_date) {
208                    tmp_array.push(items[i]);
209                } else if (next_art_date == '') {
210                    tmp_array.push(items[i]);
211                    date_array.push(tmp_array);
212                } else {
213                    tmp_array.push(items[i]);
214                    date_array.push(tmp_array);
215                    tmp_array = new Array();
216                }
217            }
218
219            items = date_array;
220            len = items.length;
221            var prev_art_date = '';
222        }
223
224        for (var i=0; i<len; i++) {
225            var item = items[i];
226            var list_picture_cls = typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y' ? 'video' : '';
227
228            if (type == "cartoon") {
229                html += '<li>';
230                html += '   <article>';
231                if (item.image != undefined && item.image != "") {
232                    html += '   <picture class="'+ list_picture_cls +'">';
233                    html += '       <source media="(max-width:767px)" type="image/webp" srcset="'+ item.image_webp +'" loading="lazy">';
234                    html += '       <source media="(min-width:768px)" type="image/webp" srcset="'+ item.image_webp +'" loading="lazy">';
235                    html += '       <img src="'+ item.image +'" alt="'+ item.alt_title +'" loading="lazy">';
236                    if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
237                        html += '   <span class="ic-video txt">
237영상 컨텐츠</span>';
238                    }
239                    html += '   </picture>';
240                }
241                html += '       <div>';
242                html += '           <p class="issue">'+ item.total_tab +'</p>';
243                html += '           <a href="'+ item.url +'" title="'+ item.alt_title +'">'+ item.proc_title +'</a>';
244                html += '       </div>';
245                html += '   </article>';
246                html += '</li>';
247            } else if (type == "gallery") {
248                html += '<li>';
249                html += '   <article>';
250                html += '       <picture class="photo">';
251                html += '           <source media="(max-width:767px)" type="image/webp" srcset="'+ item.image_webp +'" loading="lazy">';
252                html += '           <source media="(min-width:768px)" type="image/webp" srcset="'+ item.image_webp +'" loading="lazy">';
253                html += '           <img src="'+ item.image +'" alt="'+ item.alt_title +'" loading="lazy">';
254                html += '           <span class="ic-photo">'+ item.img_group_cnt +'장의 사진</span>';
255                html += '       </picture>';
256                html += '       <div>';
257                html += '           <a href="'+ item.url +'" onclick="sendGAAttrEvent(event);" title="'+ item.alt_title +'" target="'+ item.target +'" ep_event_page="' + visitCh + '_section_gallery" ep_event_area="섹션_사진+_화보목록" ep_event_label="'+ item.alt_title +'" ep_event_action="전환_경향신문_화보">'+ item.proc_title +'</a>';
258                html += '       </div>';
259                html += '   </article>';
260                html += '</li>';
261            } else if (type == "video") {
262                html += '<li>';
263                html += '   <article>';
264                html += '        <a href="'+ item.url +'" onclick="readyPlay(this); sendGAAttrEvent(event); return false;" data-vsrc="'+ item.video_src +'" data-vw="'+ item.video_width +'" data-vh="'+ item.video_height +'" title="'+ item.alt_title +'" ep_event_page="' + visitCh + '_section_video" ep_event_area="섹션_영상_기사목록_섬네일" ep_event_label="" ep_event_action="영상 재생">';
265                html += '           <picture class="video">';
266                html += '               <source type="image/webp" srcset="'+ item.image_webp +'" loading="lazy">';
267                html += '               <img src="'+ item.image +'" alt="'+ item.alt_title +'" loading="lazy">';
268                html += '               <span class="ic-video txt">영상 컨텐츠</span>';
269                html += '           </picture>';
270                html += '       </a>';
271                html += '       <div>';
272                html += '           <a href="'+ item.url +'" onclick="sendGAAttrEvent(event);" title="'+ item.alt_title +'" ep_event_page="' + visitCh + '_section_video" ep_event_area="섹션_영상_기사목록_기사" ep_event_label="'+ item.alt_title +'" ep_event_action="전환_경향신문_기사">'+ item.proc_title +'</a>';
273                html += '           <p class="date">'+ item.publish_date +'</p>';
274                html += '       </div>';
275                html += '   </article>';
276                html += '</li>';
277            } else if (type == "video_channel") {
278                html += '<li>';
279                html += '   <article>';
280                html += '        <a href="' + item.url + '" onclick="sendGAAttrEvent(event);" title="' + item.alt_title + '" ep_event_page="' + visitCh + '_section_video" ep_event_area="섹션_영상_영상목록" ep_event_label="' + item.alt_title + '" ep_event_action="전환_경향신문_영상">';
281                html += '           <picture>';
282                html += '               <img src="' + item.image + '" alt="' + item.alt_title + '" loading="lazy">';
283                html += '           </picture>';
284                html += '       </a>';
285                html += '       <div>';
286                html += '           <a href="' + item.url + '" onclick="sendGAAttrEvent(event);" title="' + item.alt_title + '" ep_event_page="' + visitCh + '_section_video" ep_event_area="섹션_영상_영상목록" ep_event_label="' + item.alt_title + '" ep_event_action="전환_경향신문_영상">' + item.art_title + '</a>';
287                html += '           <p class="date">' + item.publish_date + '</p>';
288                html += '       </div>';
289                html += '   </article>';
290                html += '</li>';
291            } else if (type == "interactive") {
292                html += '<li>';
293                html += '    <article>';
294                if (item.image != undefined && item.image != "") {
295                    html += '   <picture class="'+ list_picture_cls +'">';
296                    html += '       <source media="(max-width:767px)" type="image/webp" srcset="'+ item.image_webp +'" loading="lazy">';
297                    html += '       <source media="(min-width:768px)" type="image/webp" srcset="'+ item.image_webp +'" loading="lazy">';
298                    html += '       <img src="'+ item.image +'" alt="'+ item.alt_title +'" loading="lazy">';
299                    if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
300                        html += '   <span class="ic-video txt">
300영상 컨텐츠</span>';
301                    }
302                    html += '   </picture>';
303                }
304                html += '        <div>';
305                html += '            <a href="'+item.url+'" onclick="sendGAAttrEvent(event);" title="'+item.alt_title+'" ep_event_page="' + visitCh + '_section_video" ep_event_area="섹션_인터랙티브_목록" ep_event_label="'+item.alt_title+'" ep_event_action="전환_경향신문_인터랙티브">'+item.proc_title+'</a>';
306                html += '        </div>';
307                html += '    </article>';
308                html += '</li>';
309            } else if (type == "issue_article" || type == "theme_article") {
310                item = date_array[i];
311
312                html += '<li>';
313                for (var j = 0; j < item.length; j++) {
314                    list_picture_cls = typeof item[j].is_videoArticle !== 'undefined' && item[j].is_videoArticle == 'y' ? 'video' : '';
315
316                    if (j == 0) {
317                        var year = item[j].article_date.substr(0, 4);
318                        var month = (item[j].article_date.substr(5, 1) == "0") ? item[j].article_date.substr(6, 1) : item[j].article_date.substr(5, 2);
319                        var day = (item[j].article_date.substr(8, 1) == "0") ? item[j].article_date.substr(9, 1) : item[j].article_date.substr(8, 2);
320
321                        if (prev_art_date.substring(0, 4) == item[j].article_date.substring(0, 4)) {
322                            html += '    <h3 class="">' + month + '월 ' + day + '일</h3>';
323                        } else {
324                            html += '    <h3 class=""><span>' + year + '년</span>' + month + '월 ' + day + '일</h3>';
325                        }
326                        html += '    <ul>';
327                    }
328
329                    if (j > 4) {
330                        html += '        <li style="display: none;">';
331                    } else {
332                        html += '        <li>';
333                    }
334                    html += '            <article>';
335                    if (item[j].image != undefined && item[j].image != "") {
336                        html += '                <picture class="'+ list_picture_cls +'">';
337                        html += '                    <source media="(max-width:767px)" type="image/webp" srcset="'+ item[j].image_webp +'" loading="lazy">';
338                        html += '                    <source media="(min-width:768px)" type="image/webp" srcset="'+ item[j].image_webp +'" loading="lazy">';
339                        html += '                    <img src="'+ item[j].image +'" alt="'+ item.alt_title +'" loading="lazy">';
340                        if (typeof item[j].is_videoArticle !== 'undefined' && item[j].is_videoArticle == 'y') {
341                            html += '                <span class="ic-video txt">영상 컨텐츠</span>';
342                        }
343                        html += '                </picture>';
344                    }
345                    html += '                <div>';
346                    html += '                    <a href="'+ item[j].url +'" title="'+ item[j].alt_title +'">'+ item[j].proc_title +'</a>';
347                    html += '                    <p class="desc">'+ item[j].summary +'</p>';
348                    html += '                    <p class="date">'+ item[j].publish_date +'</p>';
349                    html += '                </div>';
350                    html += '            </article>';
351                    html += '        </li>';
352
353                    if (j == (item.length - 1)) {
354                        if (j > 4) {
355                            html += '        <div class="btn-wrap"><a href="javascript:;" class="btn-all" title="더보기" onclick="moreItem($(this));"><p>더보기</p></a></div>';
356                        }
357                        html += '    </ul>';
358                        html += '</li>';
359                    }
360                }
361                prev_art_date = item[0].article_date;
362            } else if (type == "series" || type == "issue") {
363                var text = "연재";
364
365                // 이벤트 태깅
366                var ga_event_page = visitCh+"_section_series";
367                var ga_event_area = "기획·연재_기사";
368                var ga_event_area_stit = "기획·연재_목록";
369                var ga_event_area_more = "기획·연재_관련기사보기";
370
371                if (type == "issue") {
372                    text = "관련";
373
374                    ga_event_page = visitCh+"_section_issue";
375                    ga_event_area = "이슈_기사";
376                    ga_event_area_stit = "이슈_목록";
377                    ga_event_area_more = "이슈_관련기사보기";
378                }
379
380                html += '<li>';
381                html += '    <article>';
382                html += '        <div>';
383                html += '            <a href="' + item.s_url + '" title="' + item.s_title.replace('"', '').trim() + '">' + item.s_title + '</a>';
384                html += '            <div class="info">';
385                html += '                <p class="number">기사 ' + item.articleCnt + '개</p>';
386                html += '                <p class="date">' + item.publish_date + '</p>';
387                if (type == "series") {
388                    if (item.code_del != undefined && item.code_del == "y") {
389                        html += '        <span>연재 종료</p>';
390                    }
391                }
392                html += '            </div>';
393                html += '        </div>';
394                html += '        <dl>';
395                html += '            <dt>';
396                html += '                <a href="' + item.url + '" title="'+item.alt_title.trim()+'">' + item.proc_title + '</a>';
397                html += '            </dt>';
398                html += '        </dl>';
399                html += '    </article>';
400                html += '</li>';
401            } else if (type == "newsletter_old") {
402                html += '<li class="item">';
403                html += '		<div class="hd_cont">';
404                html += '			<div class="hd">';
405                html += '				<div class="thumb">';
406                html += '					<picture>';
407                html += '						<source type="image/webp" srcSet="'+item.articles[0].image_webp+'" loading="lazy"> ';
408                html += '						<img src="'+item.articles[0].image+'" alt="'+item.articles[0].alt_title+'" loading="lazy"> ';
409                html += '					</picture>';
410                html += '				</div>';
411                html += '				<div class="caption">';
412                html += '					<a class="tit" href="'+item.s_url+'" title="'+item.s_title.replace('"', '')+'" target="_blank">';
413                html += '						<strong class="line_clamp2">'+item.s_title+'</strong> ';
414                html += '					</a>';
415                html += '				</div>';
416                html += '				<button class="subsc btn" id="gudoc_btn_'+item.s_code+'" data-gudoc_name="gudoc_series" data-gudoc_title="'+item.s_title+'" data-code="'+item.s_code+'" onclick="openSubscribe2(this);">';
417                html += '					<span>구독</span> ';
418                html += '				</button>';
419                html += '			</div>';
420                html += '		</div>';
421                html += '		<div class="list_type">';
422                html += '			<ul>';
423                for (var j=0; j<item.articles.length; j++) {
424                    var itm = item.articles[j];
425                    html += '				<li>';
426                    html += '					<a class="link_caption" href="'+itm.murl+'" title="'+itm.alt_title+'" target="_blank">';
427                    html += '						<strong class="line_clamp2">'+itm.proc_title+'</strong>';
428                    html += '					</a>';
429                    html += '				</li>';
430                }
431                html += '			</ul>';
432                html += '		</div>';
433                if (item.articleCnt != undefined && item.articleCnt != "") {
434                    html += '		<div class="more">';
435                    html += '			<a href="'+item.s_url+'" title="전체보기">';
436                    html += '				<span>총 '+item.articleCnt+'건의 전체보기</span>';
437                    html += '			</a>';
438                    html += '		</div>';
439                }
440                html += '</li>';
441            } else if (type == "flat") {
442                var flat_eventPage = visitChannel.toLowerCase() + '_section_flat';
443                var className = '';
444                if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
445                    className = 'class="video"';
446                }
447                var s_title = item.s_title.replaceAll(/[\[\]]/gi, "");
448
449                html += '<li>';
450                html += '    <article>';
451                if (item.image != undefined && item.image != "") {
452                    html += '    <picture '+className+'>';
453                    html += '	     <source type="image/webp" srcset="'+item.image_webp+'" loading="lazy">';
454                    html += '	     <img src="'+item.image+'" alt="'+item.alt_title+'" class="thumb_g" loading="lazy">';
455                    if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
456                        html += '    <span class="ic-video txt">영상 컨텐츠</span>';
457                    }
458                    html += '    </picture>';
459                }
460                html += '        <div class="text-wrap">';
461                html += '            <span></span>';
462                if (s_title != "" && s_title != '플랫') {
463                    html += '         <span>'+s_title+'</span>';
464                }
465                html += '            <p class="title">';
466                html += '                <a href="'+item.url+'" onclick="sendGAAttrEvent(event);" title="'+item.alt_title+'" ep_event_page="' + visitCh + '_section_flat" ep_event_area="flat_contents_전체기사" ep_event_label="'+item.alt_title+'" ep_event_action="전환_경향신문_기사">'+item.proc_title+'</a>';
467                html += '            </p>';
468                html += '            <div class="article-contents">';
469                html += '                <p class="text">'+item.summary+'</p>';
470                html += '                <div class="written-date">';
471                html += '                    <span>'+item.publish_date+'</span>';
472                html += '                </div>';
473                html += '            </div>';
474                html += '        </div>';
475                html += '    </article>';
476                html += '</li>';
477            } else {
478                html += '<li>';
479                html += '   <article>';
480                if (item.image != undefined && item.image != "") {
481                    html += '   <picture class="'+ list_picture_cls +'">';
482                    html += '       <source media="(max-width:767px)" type="image/webp" srcset="'+ item.image_webp +'" loading="lazy">';
483                    html += '       <source media="(min-width:768px)" type="image/webp" srcset="'+ item.image_webp +'" loading="lazy">';
484                    html += '       <img src="'+ item.image +'" alt="'+ item.alt_title +'" loading="lazy">';
485                    if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
486                        html += '   <span class="ic-video txt">
486영상 컨텐츠</span>';
487                    }
488                    html += '   </picture>';
489                }
490                html += '       <div>';
491                html += '           <a href="'+ item.url +'" onclick="sendGAAttrEvent(event);" title="'+ item.alt_title +'" ep_event_page="' + visitCh + '_section_' + type +'" ep_event_area="섹션_' + section_title + '_기사목록" ep_event_label="'+item.alt_title+'" ep_event_action="전환_경향신문_기사">'+ item.proc_title +'</a>';
492                html += '           <p class="desc">'+ item.summary +'</p>';
493                html += '           <p class="date">'+ item.publish_date +'</p>';
494                html += '       </div>';
495                html += '   </article>';
496                html += '</li>';
497            }
498        }
499
500        $('#recentList').html(html);
501
502        if (type == "series" || type == "issue") {
503            $(".contents .swiper-slide a").each(function(index, value) {
504                if ($(this).hasClass("active")) {
505                    $(this).removeClass("active");
506                }
507                if ($(this).data('id') == category) {
508                    $(this).addClass("active");
509                }
510            });
511
512            if (category == '') {
513                $(".contents .swiper-slide a").eq(0).addClass("active");
514            }
515        }
516
517        if (type == "flat") {
518            $('#pagination').html(paging);
519        } else {
520            $('#paging').html(paging);
521        }
522
523        if (len > 0) {
524            $("#no_result").hide();
525        } else {
526            if (type == "flat" || type == "series" || type == "issue") {
527                $("#no_result #search_keyword").text(search_keyword);
528            }
529            $("#no_result").show();
530        }
531    },
532    // 데이터 노출
533    addItem : function(json) {
534        var items = json.items;
535        var paging = json.paging;
536        var len = items.length;
537        var visitCh = (visitChannel.toLowerCase() == 'app') ? 'app' : 'mo'
538
539        var html = '';
540        var date_array = new Array();
541        for (var i=0; i<len; i++) {
542            var item = items[i];
543
544            if (type == "cartoon") {
545                html += '<li class="item">';
546                html += '		<div class="link_thumb">';
547                html += '			<picture>';
548                html += '				<source type="image/webp" srcset="'+item.image_webp+'" loading="lazy">';
549                html += '				<img class="thumb" src="'+item.image+'" alt="'+item.alt_title+'" loading="lazy"> ';
550                html += '			</picture>';
551                if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
552                    html += '		<i class="ico-mov"><span class="screen_out">영상</span></i>';
553                }
554                html += '		</div>';
555                html += '		<a class="tit" href="'+item.murl+'" onclick="sendGAAttrEvent(event);" title="'+item.alt_title.trim()+'" ep_event_page="'+visitCh+'_section_cartoon" ep_event_area="최신기사_기사" ep_event_label="'+item.alt_title.trim()+'">';
556                if (item.total_tab != undefined && item.total_tab != "") {
557                    html += '			<span class="rt_tit">'+item.total_tab+'</span>';
558                }
559                html += '			<span class="day">'+item.hot+item.proc_title+'</span>';
560                html += '			<span class="datetime">'+item.publish_date+'</span>';
561                html += '		</a>';
562                html += '</li>';
563            } else if (type == "gallery") {
564                html += '<li>';
565                html += '		<a class="link_thumb" href="'+item.murl+'" onclick="sendGAAttrEvent(event);" title="'+item.alt_title+'" target="'+item.target+'" ep_event_page="'+visitCh+'_section_gallery" ep_event_area="포토_화보" ep_event_label="'+item.alt_title.trim()+'">';
566                html += '			<picture>';
567                html += '				<source type="image/webp" srcset="'+item.image_webp+'" loading="lazy">';
568                html += '				<img class="thumb_g" src="'+item.image+'" alt="'+item.alt_title+'" loading="lazy">';
569                html += '			</picture>';
570                html += '		</a>';
571                html += '		<div class="caption">';
572                html += '			<a class="tit" href="'+item.murl+'" onclick="sendGAAttrEvent(event);" title="'+item.alt_title+'" ep_event_page="'+visitCh+'_section_gallery" ep_event_area="포토_화보" ep_event_label="'+item.alt_title.trim()+'">';
573                html += '				<strong class="line_clamp">'+item.hot+item.art_title+'</strong>';
574                html += '			</a>';
575                html += '			<span class="datetime">'+item.publish_date+ '</span>';
576                html += '		</div>';
577                html += '</li>';
578            } else if (type == "video") {
579                html += '<li>';
580                if (item.video_src != "" && false) {
581                    html += '		<iframe src="'+item.video_src+'" frameborder="0" allowfullscreen="" data-width="'+item.video_width+'" data-height="'+item.video_height+'"></iframe>';
582                } else {
583                    html += '		<div>';
584                    html += '			<a class="link_thumb" href="'+item.murl+'" onclick="readyPlay(this); sendGAAttrEvent(event); return false;" title="'+item.alt_title+'" data-vsrc="'+item.video_src+'" data-vw="'+item.video_width+'" data-vh="'+item.video_height+'" ep_event_page="mo_section_video" ep_event_area="영상_영상" ep_event_label="'+item.alt_title.trim()+'">';
585                    html += '				<picture>';
586                    html += '					<source type="image/webp" srcset="'+item.image_webp+'?t=1" loading="lazy">';
587                    html += '					<img class="thumb_g" src="'+item.image+'" alt="'+ item.alt_title +'" loading="lazy">';
588                    html += '				</picture>';
589                    html += '			</a>';
590                    html += '		</div>';
591                }
592                html += '		<div class="caption">';
593                html += '			<a class="tit" href="'+item.murl+'" onclick="sendGAAttrEvent(event);" title="'+item.alt_title+'" ep_event_page="'+visitCh+'_section_video" ep_event_area="영상_기사" ep_event_label="'+item.alt_title.trim()+'">';
594                html += '				<strong class="line_clamp">'+item.hot+item.art_title+'</strong>';
595                html += '			</a>';
596                html += '			<span class="datetime">'+item.publish_date+'</span>';
597                html += '		</div>';
598                html += '</li>';
599            } else if (type == "interactive") {
600                html += '<li>';
601                if (item.image != undefined && item.image != "") {
602                    html += '		<div class="link_thumb">';
603                    html += '			<picture>';
604                    html += '				<source type="image/webp" srcset="'+item.image_webp+'" loading="lazy">';
605                    html += '				<img class="thumb_g" src="'+item.image+'" alt="'+item.alt_title+'" loading="lazy">';
606                    html += '			</picture>';
607                    if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
608                        html += '		<i class="ico-mov"><span class="screen_out">영상</span></i>';
609                    }
610                    html += '		</div>';
611                }
612                html += '		<div class="caption">';
613                html += '			<a class="tit" href="'+item.murl+'" onclick="sendGAAttrEvent(event);" title="'+item.alt_title+'" ep_event_page="'+visitCh+'_section_interactive" ep_event_area="인터렉티브_기사" ep_event_label="'+item.alt_title.trim()+'">';
614                html += '				<strong class="line_clamp2">'+item.hot+item.proc_title+'</strong>';
615                html += '			</a>';
616                html += '			<span class="datetime">'+item.publish_date+'</span>';
617                html += '		</div>';
618                html += '</li>';
619            } else if (type == "issue_article" || type == "theme_article") {
620                if ($.inArray(item.article_date, date_array) == -1) {
621                    date_array.push(item.article_date);
622                    if (i > 0) {
623                        html += '</ul>';
624                    }
625                    html += '<h4 class="date_tit">'+item.article_date+'</h4>';
626                    html += '<ul class="list">';
627                }
628                html += '		<li>';
629                html += '			<div class="cont">';
630                html += '				<span class="datetime">'+item.publish_date+'</span>';
631                html += '				<a class="tit" href="'+item.murl+'" title="'+item.alt_title+'" data-event-category="m_section_이슈" data-event-action="이슈 목록_기사" data-event-label="' + item.alt_title.trim() + '">';
632                html += '					<strong class="line_clamp2">'+item.hot+item.proc_title+'</strong>';
633                html += '				</a>';
634                html += '			</div>';
635                if (item.image != undefined && item.image != "") {
636                    html += '		<div class="link_thumb">';
637                    html += '			<picture>';
638                    html += '				<source type="image/webp" srcset="'+item.image_webp+'" loading="lazy">';
639                    html += '				<img class="thumb_g" src="'+item.image+'" alt="'+item.alt_title+'" loading="lazy">';
640                    html += '			</picture>';
641                    if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
642                        html += '		<i class="ico-mov"><span class="screen_out">영상</span></i>';
643                    }
644                    html += '		</div>';
645                }
646                html += '		</li>';
647            } else if (type == "series" || type == "issue") {
648                var text = "연재";
649                var article = item.articles;
650
651                // 이벤트 태깅
652                var ga_event_cate = "m_section_기획·연재";
653                var ga_event_action = "기획·연재 목록_기사";
654                var ga_event_action_stit = "기획·연재 목록_연재명";
655                var ga_event_action_more = "기획·연재 목록_연재기사 더보기";
656
657                var ga_event_page = visitCh+"_section_series";
658                var ga_event_area = "기획·연재_기사";
659                var ga_event_area_stit = "기획·연재_목록";
660                var ga_event_area_more = "기획·연재_관련기사보기";
661
662                if (type == "issue") {
663                    text = "관련";
664                    article = item;
665
666                    ga_event_cate = "m_section_이슈";
667                    ga_event_action = "이슈 목록_기사";
668                    ga_event_action_stit = "이슈 목록_이슈명";
669                    ga_event_action_more = "이슈 목록_이슈기사 더보기";
670
671                    ga_event_page = visitCh+"_section_issue";
672                    ga_event_area = "이슈_기사";
673                    ga_event_area_stit = "이슈_목록";
674                    ga_event_area_more = "이슈_관련기사보기";
675                }
676
677                html += '<li>';
678                html += '		<div class="cont_wrap">';
679                html += '			<div class="cont">';
680                if (item.s_title != undefined && item.s_title != "") {
681                    html += '				<a class="rt_tit" href="'+item.s_url+'" onclick="sendGAAttrEvent(event);" title="'+item.s_title.replace('"', '')+'" ep_event_page="'+ga_event_page+'" ep_event_area="'+ga_event_area_stit+'" ep_event_label="'+item.s_title+'">';
682                    html += '					<strong class="line_clamp">'+item.s_title+'</strong>';
683                    html += '				</a>';
684                }
685                html += '				<a class="tit" href="'+article.murl+'" onclick="sendGAAttrEvent(event);" title="'+article.alt_title+'" ep_event_page="'+ga_event_page+'" ep_event_area="'+ga_event_area+'" ep_event_label="'+article.alt_title.trim()+'">';
686                html += '					<strong class="line_clamp">'+article.proc_title+'</strong>';
687                html += '				</a>';
688                if (item.articleCnt != undefined && item.articleCnt != "") {
689                    html += '				<a class="more" href="'+item.s_url+'" onclick="sendGAAttrEvent(event);" title="'+text+'기사 더보기" ep_event_page="'+ga_event_page+'" ep_event_area="'+ga_event_area_more+'" ep_event_label="'+item.s_title+'">'+item.articleCnt+'건의 '+text+'기사 보기</a>';
690                }
691                html += '			</div>';
692                if (article.image != undefined && article.image != "") {
693                    html += '			<a class="link_thumb" href="'+article.murl+'" onclick="sendGAAttrEvent(event);" title="'+article.alt_title+'" ep_event_page="'+ga_event_page+'" ep_event_area="'+ga_event_area+'" ep_event_label="'+article.alt_title.trim()+'">';
694                    html += '				<picture>';
695                    html += '					<source type="image/webp" srcset="'+article.image_webp+'" loading="lazy">';
696                    html += '					<img class="thumb_g" src="'+article.image+'" alt="'+article.alt_title+'" loading="lazy">';
697                    html += '				</picture>';
698                    if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
699                        html += '			<i class="ico-mov"><span class="screen_out">영상</span></i>';
700                    }
701                    html += '			</a>';
702                }
703                html += '		</div>';
704                html += '</li>';
705            } else if (type == "newsletter_old") {
706                html += '<li class="item">';
707                html += '		<div class="hd_cont">';
708                html += '			<div class="hd">';
709                html += '				<div class="thumb">';
710                html += '					<picture>';
711                html += '						<source type="image/webp" srcSet="'+item.articles[0].image_webp+'" loading="lazy"> ';
712                html += '						<img src="'+item.articles[0].image+'" alt="'+item.articles[0].alt_title+'" loading="lazy"> ';
713                html += '					</picture>';
714                html += '				</div>';
715                html += '				<div class="caption">';
716                html += '					<a class="tit" href="'+item.s_url+'" title="'+item.s_title.replace('"', '')+'" target="_blank">';
717                html += '						<strong class="line_clamp2">'+item.s_title+'</strong> ';
718                html += '					</a>';
719                html += '				</div>';
720                html += '				<button class="subsc btn" id="gudoc_btn_'+item.s_code+'" data-gudoc_name="gudoc_series" data-gudoc_title="'+item.s_title+'" data-code="'+item.s_code+'" onclick="openSubscribe2(this);">';
721                html += '					<span>구독</span> ';
722                html += '				</button>';
723                html += '			</div>';
724                html += '		</div>';
725                html += '		<div class="list_type">';
726                html += '			<ul>';
727                for (var j=0; j<item.articles.length; j++) {
728                    var itm = item.articles[j];
729                    html += '				<li>';
730                    html += '					<a class="link_caption" href="'+itm.murl+'" title="'+itm.alt_title+'" target="_blank">';
731                    html += '						<strong class="line_clamp2">'+itm.proc_title+'</strong>';
732                    html += '					</a>';
733                    html += '				</li>';
734                }
735                html += '			</ul>';
736                html += '		</div>';
737                if (item.articleCnt != undefined && item.articleCnt != "") {
738                    html += '		<div class="more">';
739                    html += '			<a href="'+item.s_url+'" title="전체보기">';
740                    html += '				<span>총 '+item.articleCnt+'건의 전체보기</span>';
741                    html += '			</a>';
742                    html += '		</div>';
743                }
744                html += '</li>';
745            } else {
746                var ga_event_cate = "m_section_" + section_title;
747                var ga_event_action = section_title + " 기사_기사";
748                if (type == "series_article") {
749                    // 이벤트 태깅
750                    ga_event_cate = "m_section_기획·연재";
751                    ga_event_action = "기획·연재 목록_기사";
752                }
753
754                html += '<li>';
755                html += '		<div class="cont">';
756                if ((item.total_tab != "" && type != "series_article") && type != "newsletter_old") {
757                    html += '			<span class="rt_tit">';
758                    html += '				<strong class="line_clamp">'+item.total_tab+'</strong>';
759                    html += '			</span>';
760                }
761                html += '			<a class="tit" href="'+item.murl+'" onclick="sendGAAttrEvent(event);" title="'+item.alt_title+'" target="'+item.target+'" ep_event_page="'+visitCh+'_section_'+type+'" ep_event_area="최신기사_기사" ep_event_label="'+item.alt_title.trim()+'">';
762                html += '				<strong class="line_clamp2">'+item.hot+item.proc_title+'</strong>';
763                html += '			</a>';
764                html += '			<span class="datetime">'+item.publish_date+'</span>';
765                html += '		</div>';
766                if (item.image != undefined && item.image != "") {
767                    html += '	<div class="link_thumb">';
768                    html += '		<picture>';
769                    html += '			<source type="image/webp" srcset="'+item.image_webp+'" loading="lazy">';
770                    html += '			<img class="thumb_g" src="'+item.image+'" alt="'+item.alt_title+'" loading="lazy">';
771                    html += '		</picture>';
772                    if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
773                        html += '	<i class="ico-mov"><span class="screen_out">영상</span></i>';
774                    }
775                    html += '	</div>';
776                }
777                html += '</li>';
778            }
779        }
780
781        if (type == "issue_article" || type == "theme_article") {
782            html += ' </ul>';
783        }
784
785        $('#recentList').html(html);
786
787        // 이벤트 태깅
788        if (type == "series_article") {
789            section_title = "기획·연재";
790        }
791
792        paging = paging.replace(/replace_category/gi, "m_section_" + section_title);
793        paging = paging.replace(/replace_action/gi, section_title + " 기사_페이지 넘버링");
794        $('#paging').html(paging);
795
796        if (len > 0) {
797            $("#no_result").hide();
798        } else {
799            $("#no_result").show();
800        }
801    },
802    // 데이터 노출(PC)
803    addItem_pc : function(json) {
804        var items = json.items;
805        var paging = json.paging;
806        var len = items.length;
807
808        var html = '';
809        var date_array = new Array();
810        var j = 1;
811
812        for (var i=0; i<len; i++) {
813            var item = items[i];
814
815            if (type == "cartoon") {
816                html += '<li>';
817                html += '		<span class="thumb">';
818                html += '			<picture>';
819                html += '				<source type="image/webp" srcset="'+item.image_webp+'" loading="lazy">';
820                html += '				<img src="'+item.image+'" alt="'+item.alt_title+'" loading="lazy">';
821                html += '			</picture>';
822                if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
823                    html += '		<i class="ico-mov"><span class="screen_out">영상</span></i>';
824                }
825                html += '		</span>';
826                html += '		<a class="link_thumb" href="'+item.url+'" onclick="sendGAAttrEvent(event);" title="'+item.alt_title+'" ep_event_page="pc_list_cartoon" ep_event_area="만평_기사" ep_event_label="'+item.total_tab+'_'+item.proc_title+'">';
827                html += '			<p class="tit line_clamp2">';
828                html += '				<span class="s-tit" title="'+item.tab_title+'">'+item.total_tab+'</span>'+item.proc_title;
829                html += '			</p>';
830                html += '		</a>';
831                html += '</li>';
832            } else if (type == "gallery") {
833                html += '<li>';
834                html += '		<a href="'+item.url+'" onclick="sendGAAttrEvent(event);" title="'+item.alt_title+'" target="'+item.target+'" ep_event_page="pc_section_gallery" ep_event_area="포토_화보" ep_event_label="'+item.alt_title.trim()+'">';
835                html += '			<span class="thumb">';
836                html += '				<picture>';
837                html += '					<source type="image/webp" srcset="'+item.image_webp+'" loading="lazy">';
838                html += '					<img src="'+item.image+'" alt="'+item.alt_title+'" loading="lazy">';
839                html += '				</picture>';
840                html += '				<span class="media-icon"><i class="ico-album icon_sm">화보</i></span>';
841                html += '			</span>';
842                html += '			<p class="tit line_clamp2">'+item.art_title+'</p>';
843                html += '		</a>';
844                html += '</li>';
845            } else if (type == "video") {
846                html += '<li>';
847                html += '		<div class="link_player">';
848                html += '			<a href="'+item.url+'" title="'+item.alt_title+'" onclick="readyPlay(this); sendGAAttrEvent(event); return false;" data-vsrc="'+item.video_src+'" data-vw="'+item.video_width+'" data-vh="'+item.video_height+'" ep_event_page="pc_section_video" ep_event_area="영상기사_영상" ep_event_label="'+item.alt_title.trim()+'">';
849                html += '				<span class="thumb">';
850                html += '					<picture>';
851                html += '						<source type="image/webp" srcset="'+item.image_webp+'" loading="lazy">';
852                html += '						<img src="'+item.image+'" alt="'+item.alt_title+'" loading="lazy">';
853                html += '					</picture>';
854                html += '					<i class="ico-mov"><span class="screen_out">영상</span></i>';
855                //html += '					<span class="media-icon"><i class="ico-video icon_sm">영상</i></span>';
856                html += '				</span>';
857                html += '			</a>';
858                html += '		</div>';
859                html += '		<a href="'+item.url+'" title="'+item.alt_title+'">';
860                html += '			<p class="tit line_clamp2">'+item.art_title+'</p>';
861                html += '			<span class="byline">'+item.publish_date+'</span>';
862                html += '		</a>';
863                html += '</li>';
864            } else if (type == "interactive") {
865                html += '<li>';
866                html += '		<span class="thumb">';
867                html += '			<picture>';
868                html += '			    <source type="image/webp" srcset="'+item.image_webp+'" loading="lazy">';
869                html += '			    <img src="'+item.image+'" alt="'+item.alt_title+'" loading="lazy">';
870                html += '			</picture>';
871                if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
872                    html += '		<i class="ico-mov"><span class="screen_out">영상</span></i>';
873                }
874                html += '		</span>';
875                html += '		<a href="'+item.url+'" onclick="sendGAAttrEvent(event);" title="'+item.alt_title+'" ep_event_page="pc_section_interactive" ep_event_area="인터랙티브_기사" ep_event_label="'+item.alt_title.trim()+'">';
876                html += '			<p class="tit line_clamp2">'+item.proc_title+'</p>';
877                html += '		</a>';
878                html += '</li>';
879            } else if (type == "issue_article" || type == "theme_article") {
880                if ($.inArray(item.article_date, date_array) == -1) {
881                    date_array.push(item.article_date);
882                    if (i > 0) {
883                        html += '</ul>';
884                    }
885                    html += '<h4 class="art-date"><span>'+item.article_date+'</span></h4>';
886                    html += '<ul class="df-list timeline">';
887                }
888                html += '		<li>';
889                html += '			<div class="txt">';
890                html += '				<h2 class="tit">';
891                html += '					<a href="'+item.url+'" title="'+item.alt_title+'" data-event-category="pc_section_이슈" data-event-action="이슈 목록_기사" data-event-label="' + item.proc_title.trim() + '">'+item.proc_title+'</a>';
892                html += '				</h2>';
893                html += '				<span class="byline">'+item.publish_date+'</span>';
894                html += '				<span class="lead">';
895                html += '					<a class="line_clamp2" href="'+item.url+'" title="'+item.alt_title+'" data-event-category="pc_section_이슈" data-event-action="이슈 목록_기사" data-event-label="' + item.alt_title.trim() + '">'+item.summary+'</a>';
896                html += '				</span>';
897                html += '			</div>';
898                if (item.image != undefined && item.image != "") {
899                    html += '			<div class="thumb">';
900                    html += '				<picture>';
901                    html += '					<source type="image/webp" srcset="'+item.image_webp+'" loading="lazy">';
902                    html += '					<img src="'+item.image+'" alt="'+item.alt_title+'" loading="lazy">';
903                    html += '				</picture>';
904                    if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
905                        html += '			<i class="ico-mov"><span class="screen_out">영상</span></i>';
906                    }
907                    html += '			</div>';
908                }
909                html += '		</li>';
910            } else if (type == "series_article") {
911                html += '<li>';
912                if (item.image != undefined && item.image != "") {
913                    html += '		<div class="thumb">';
914                    html += '			<a href="'+item.url+'" title="'+item.alt_title+'" data-event-category="pc_section_기획·연재" data-event-action="기획·연재 목록_기사" data-event-label="' + item.alt_title.trim() + '">';
915                    html += '				<picture>';
916                    html += '					<source type="image/webp" srcset="'+item.image_webp+'" loading="lazy">';
917                    html += '					<img src="'+item.image+'" alt="'+item.alt_title+'" loading="lazy">';
918                    html += '				</picture>';
919                    if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
920                        html += '			<i class="ico-mov"><span class="screen_out">영상</span></i>';
921                    }
922                    html += '			</a>';
923                    html += '		</div>';
924                }
925                html += '		<div class="txt">';
926                html += '			<h2 class="tit">';
927                html += '				<a href="'+item.url+'" title="'+item.alt_title+'" data-event-category="pc_section_기획·연재" data-event-action="기획·연재 목록_기사" data-event-label="' + item.alt_title.trim() + '">'+item.proc_title+'</a>';
928                html += '			</h2>';
929                html += '			<span class="byline">'+item.publish_date+'</span>';
930                html += '			<span class="lead line_clamp2">'+item.summary+'</span>';
931                html += '		</div>';
932                html += '</li>';
933            } else if (type == "series" || type == "issue") {
934                var text = "연재";
935                var article = item.articles;
936
937                // 이벤트 태깅
938                var ga_event_cate = "pc_section_기획·연재";
939                var ga_event_action = "기획·연재 목록_기사";
940                var ga_event_action_stit = "기획·연재 목록_연재명";
941                var ga_event_action_more = "기획·연재 목록_연재기사 더보기";
942
943                var ga_event_page = "pc_section_series";
944                var ga_event_area = "기획·연재_기사";
945                var ga_event_area_stit = "기획·연재_목록";
946                var ga_event_area_more = "기획·연재_관련기사보기";
947
948                if (type == "issue") {
949                    text = "관련";
950                    article = item;
951
952                    ga_event_cate = "pc_section_이슈";
953                    ga_event_action = "이슈 목록_기사";
954                    ga_event_action_stit = "이슈 목록_이슈명";
955                    ga_event_action_more = "이슈 목록_이슈기사 더보기";
956
957                    ga_event_page = "pc_section_issue";
958                    ga_event_area = "이슈_기사";
959                    ga_event_area_stit = "이슈_목록";
960                    ga_event_area_more = "이슈_관련기사보기";
961                }
962
963                html += '<li>';
964                if (article.image != undefined && article.image != "") {
965                    html += '		<div class="thumb">';
966                    html += '			<picture>';
967                    html += '				<source type="image/webp" srcset="'+article.image_webp+'" loading="lazy">';
968                    html += '				<img src="'+article.image+'" alt="'+article.alt_title+'" loading="lazy">';
969                    html += '			</picture>';
970                    if (typeof article.is_videoArticle !== 'undefined' && article.is_videoArticle == 'y') {
971                        html += '		<i class="ico-mov"><span class="screen_out">영상</span></i>';
972                    }
973                    html += '		</div>';
974                }
975                html += '		<div class="txt">';
976                if (item.s_title != undefined && item.s_title != '') {
977                    html += '			<div class="s-tit issue">';
978                    html += '				<a href="'+item.s_url+'" onclick="sendGAAttrEvent(event);" title="'+item.s_title.replace('"', '')+'" ep_event_page="'+ga_event_page+'" ep_event_area="'+ga_event_area_stit+'" ep_event_label="'+item.s_title.trim()+'">'+item.s_title+'</a>';
979                    html += '			</div>';
980                }
981                html += '			<h2 class="tit">';
982                html += '				<a href="'+article.url+'" onclick="sendGAAttrEvent(event);" title="'+article.alt_title+'" ep_event_page="'+ga_event_page+'" ep_event_area="'+ga_event_area+'" ep_event_label="'+article.alt_title.trim()+'">'+article.proc_title+'</a>';
983                html += '			</h2>';
984                if (item.articleCnt != undefined && item.articleCnt != '') {
985                    html += '			<span class="more-art">';
986                    html += '				<a href="'+item.s_url+'" onclick="sendGAAttrEvent(event);" title="'+text+'기사 더보기" ep_event_page="'+ga_event_page+'" ep_event_area="'+ga_event_area_more+'" ep_event_label="'+item.s_title.trim()+'">'+item.articleCnt+'건의 '+text+'기사 보기</a>';
987                    html += '			</span>';
988                }
989                html += '		</div>';
990                html += '</li>';
991            } else if (type == 'newsletter_old') {
992                html += '<div class="newsletter-cont-list">';
993                html += '		<div class="thumb-wrap">';
994                html += '			<a href="'+item.s_url+'" class="thumb" title="'+item.s_title.replace('"', '')+'" target="_blank">';
995                html += '				<picture>';
996                html += '					<source type="image/webp" srcSet="'+item.articles[0].image_webp+'" loading="lazy"> ';
997                html += '					<img src="'+item.articles[0].image+'" alt="'+item.articles[0].alt_title+'" loading="lazy"> ';
998                html += '				</picture>';
999                html += '			</a>' ;
1000                html += '			<a href="javascript:void(0);" onClick="openModal(\''+item.s_code+'\', \''+item.s_title+'\');" class="btn-nl" title="구독하기"> ';
1001                html += '				<span>구독</span>';
1002                html += '			</a> ' ;
1003                html += '		</div>';
1004                html += '		<p class="s-tit line_clamp2">';
1005                html += '			<a href="'+item.s_url+'" title="'+item.s_title.replace('"', '')+'" target="_blank">'+item.s_title+'</a>';
1006                html += '		</p>';
1007                html += '		<div class="txt">';
1008                html += '			<ul>';
1009                for (var j=0; j<item.articles.length; j++) {
1010                    var article = item.articles[j];
1011                    html += '				<li class="line_clamp2">';
1012                    html += '					<a href="'+article.url+'" title="'+article.alt_title+'" target="_blank">'+article.proc_title+'</a>';
1013                    html += '				</li>';
1014                }
1015                html += '			</ul>';
1016                html += '			<span class="more-art">';
1017                html += '				<a href="'+item.s_url+'" title="전체보기" target="_blank">총'+item.articleCnt+'건 전체보기</a>';
1018                html += '			</span>';
1019                html += '		</div>';
1020                html += '</div>';
1021            } else if (type == "flat") {
1022                var flat_eventPage = visitChannel.toLowerCase() + '_section_flat';
1023                html += '<li>';
1024                html += '		<a href="'+item.url+'" onclick="sendGAAttrEvent(event);" title="'+item.alt_title+'" target="'+item.target+'" class="link_cont" data-serial_num="'+j+'" ep_event_page="'+flat_eventPage+'" ep_event_area="전체기사_기사" ep_event_label="'+item.alt_title.trim()+'">';
1025                if (item.image != undefined && item.image != "") {
1026                    html += '			<div class="link_thumb">';
1027                    if (item.image_webp != '') {
1028                        html += '				<picture>';
1029                        html += '					<source type="image/webp" srcset="'+item.image_webp+'" loading="lazy">';
1030                        html += '					<img src="'+item.image+'" alt="'+item.alt_title+'" class="thumb_g" loading="lazy">';
1031                        html += '				</picture>';
1032                        if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
1033                            html += '			<i class="ico-mov"><span class="screen_out">영상</span></i>';
1034                        }
1035                    } else {
1036                        html += '				<img src="'+item.image+'" alt="'+item.alt_title+'" class="thumb_g">';
1037                    }
1038                    html += '			</div>';
1039                }
1040                html += '			<div class="cont_thumb">';
1041                if (item.s_title != "" && item.s_title != '플랫') {
1042                    html += '				<em class="sheaf_tit">'+item.s_title+'</em>';
1043                }
1044                html += '				<strong class="tit_thumb line_clamp3">'+item.proc_title+'</strong>';
1045                html += '				<span class="lead">'+item.summary+'</span>';
1046                html += '				<span class="info_area">';
1047                html += '					<span class="byline"><em class="letter">'+item.publish_date+'</em></span>';
1048                html += '				</span>';
1049                html += '			</div>';
1050                html += '		</a>';
1051                html += '</li>';
1052            } else if (type == "notice") {
1053                item.publish_date = String(item.publish_date.substr(0,10));
1054
1055                html += '<tr>';
1056                html += '		<td class="number">'+item.rownum+'</td>';
1057                html += '		<td class="left"><a href="'+item.url+'" title="'+item.alt_title+'">'+item.art_title +'</a></td>';
1058                html += '		<td class="date">'+ item.publish_date +'</td>';
1059                html += '</tr>';
1060            } else {
1061                html += '<li>';
1062                if (item.image != undefined && item.image != "") {
1063                    html += '		<div class="thumb">';
1064                    html += '			<picture>';
1065                    html += '				<source type="image/webp" srcset="'+item.image_webp+'" loading="lazy">';
1066                    html += '				<img src="'+item.image+'" alt="'+item.alt_title+'" loading="lazy">';
1067                    html += '			</picture>';
1068                    if (typeof item.is_videoArticle !== 'undefined' && item.is_videoArticle == 'y') {
1069                        html += '		<i class="ico-mov"><span class="screen_out">영상</span></i>';
1070                    }
1071                    html += '		</div>';
1072                }
1073                html += '		<div class="txt">';
1074                if (item.total_tab != "") {
1075                    html += '			<div class="s-tit">'+item.total_tab+'</div>';
1076                }
1077                html += '			<h2 class="tit"><a href="'+item.url+'" onclick="sendGAAttrEvent(event);" title="'+item.alt_title+'" target="'+item.target+'" ep_event_page="pc_section_'+type+'" ep_event_area="'+section_title+'_기사" ep_event_label="'+item.alt_title.trim()+'">'+item.proc_title+'</a></h2>';
1078                html += '			<span class="byline">'+item.publish_date+'</span>';
1079                html += '			<span class="lead line_clamp2">'+item.summary+'</span>';
1080                html += '		</div>';
1081                html += '</li>';
1082            }
1083
1084            j++;
1085        }
1086
1087        if (type == "issue_article" || type == "theme_article" || type == "flat") {
1088            html += '</ul>';
1089        }
1090
1091        $('#recentList').html(html);
1092
1093
1094        // 이벤트 태깅
1095        if (type == "series_article") {
1096            section_title = "기획·연재";
1097        }
1098
1099        paging = paging.replace(/replace_category/gi, "pc_section_" + section_title);
1100        paging = paging.replace(/replace_action/gi, section_title + " 기사_페이지 넘버링");
1101        $('#paging').html(paging);
1102
1103        if (len > 0) {
1104            $("#no_result").hide();
1105        } else {
1106            $("#no_result").show();
1107        }
1108    },
1109    // 달력 이전 또는 다음
1110    dateMove : function(obj) {
1111        var mode = obj.data("mode");
1112        if ((mode == "prev" && $('.dateMove[data-mode="prev"]').hasClass("disabled")) || (mode == "next" && $('.dateMove[data-mode="next"]').hasClass("disabled"))) { // New (25)
1113            return;
1114        }
1115
1116        if (day == "") day = date.getDate();
1117        if (month < 10) { month = "0" + parseInt(month); }
1118        if (day < 10) { day = "0" + parseInt(day); }
1119
1120        var changeDate = new Date(year+'-'+month+'-'+day);
1121        var moveDate = new Date(changeDate);
1122
1123        if (mode == "prev") {
1124            moveDate.setDate(changeDate.getDate()-1);
1125            year = moveDate.getFullYear();
1126            month = moveDate.getMonth() + 1;
1127            day = moveDate.getDate();
1128        } else if (mode == "next") {
1129            moveDate.setDate(changeDate.getDate()+1);
1130            year = moveDate.getFullYear();
1131            month = moveDate.getMonth() + 1;
1132            day = moveDate.getDate();
1133        }
1134
1135        // 당일일 경우 초기화
1136        if (date.getFullYear() +"-"+ (date.getMonth()+1) +"-"+ date.getDate() == year +"-"+ month +"-"+ day) {
1137            listData.init();
1138        } else {
1139            if (month < 10) { month = "0" + month; }
1140            if (day < 10) { day = "0" + day; }
1141
1142            $("#list_date").val(year + "." + month +  "." + day);
1143            $("#selected-date").text(year + "." + month +  "." + day); // New (25)
1144
1145            month = parseInt(month);
1146            day = parseInt(day);
1147
1148            $('#all').addClass('disabled'); // New (25)
1149            $('#selected-date').removeClass('disabled');  // New (25)
1150
1151            listData.load();
1152        }
1153    },
1154    // 분류 선택
1155    cateChange : function(cate, md) {
1156        pageNumber = 1;
1157        var top_height = 0;
1158
1159        if (md == "category2") {
1160            category2 = cate;
1161            $("select[name='category2']").val(cate);
1162        } else {
1163            category = cate;
1164            $("select[name='category']").val(cate);
1165        }
1166
1167        if (type == 'cartoon' && cate != '') {
1168            $("#recentList").removeClass();
1169            $("#recentList").addClass(cate);
1170        }
1171
1172        listData.load();
1173
1174        if ($("#recent").length > 0) {
1175            var offset = $("#recent").offset();
1176            if (mode == "pc") {
1177                var top_height = offset.top - tab_height_pc;
1178            } else if (mode == "m") {
1179                var top_height = offset.top - tab_height_m;
1180            }
1181        }
1182
1183        if (md != "noscroll") {
1184            window.scrollTo({top:top_height, left:0});
1185        }
1186    },
1187    // 검색
1188    searchKeyword : function(search_id) {
1189        pageNumber = 1;
1190        search_keyword = $('#'+type+'_keyword').val();
1191        $("#no_result #search_keyword").text(search_keyword);
1192        listData.load();
1193    },
1194    // 정렬 (연재,이슈)
1195    serialSort : function(sort_type) {
1196        pageNumber = 1;
1197        serial_sort = sort_type;
1198        listData.load();
1199    },
1200    // 상태값 (연재 - 연재중,연재종료)
1201    seriesCodeDel : function(status) {
1202        pageNumber = 1;
1203        series_code_del = status;
1204        listData.load();
1205    },
1206    // 초기화
1207    init : function(t) {
1208        if (type == "series" || type == "issue") {
1209            search_keyword = "";
1210            $('#'+type+'_keyword').val("");
1211            $("#no_result #search_keyword").text('');
1212
1213            serial_sort = "";
1214
1215            if (type == "series") {
1216                series_code_del = "";
1217                $('input[name="list_option_range"]:first').prop('checked', true);
1218            }
1219        }
1220
1221        pageNumber = 1;
1222
1223        // 카테고리까지 전체 초기화 시
1224        if (t == "all") {
1225            if (type == "local") {
1226                category2 = "";
1227                $("#category2").val("");
1228            } else if (type == "gallery" || type == "series" || type == "issue" || type == "cartoon") {
1229                category = "";
1230                $("#category").val("");
1231            }
1232        }
1233
1234        year = date.getFullYear();
1235        var viewMonth = date.getMonth()+1;
1236        var viewDay = date.getDate();
1237
1238        if (viewMonth < 10) viewMonth = "0"+viewMonth;
1239        if (viewDay < 10) viewDay = "0"+viewDay;
1240
1241        month = parseInt(viewMonth);
1242        day = "";
1243
1244        $('#all').removeClass('disabled'); // New (25)
1245        $('#selected-date').addClass('disabled');  // New (25)
1246
1247        $("#list_date").val(year+"."+viewMonth+"."+viewDay);
1248        $("#selected-date").text(year+"."+viewMonth+"."+viewDay);
1249
1250        // New (25)
1251        if ($('.cate-node-parent').length > 0) {
1252            $.each($('.cate-node-parent'), function() {
1253                $(this).find('.cate-nodes').removeClass("active");
1254                $(this).find('.cate-nodes').eq(0).addClass("active");
1255
1256                if ($(this).find('.btn-select').length > 0) {
1257                    $(this).find('.btn-select').text($(this).find('.cate-nodes').eq(0).text() );
1258                }
1259            });
1260        }
1261
1262        listData.load();
1263    }
1264}
1265
1266if (page != "index" && type != "cartoon") {
1267    if ($("#datepicker-container").length > 0) { // New (25)
1268        $(".btn-calendar, #selected-date").on("click", function() { // New (25)
1269            disabledDays = getDisabledDate(year, month);
1270
1271            $("#datepicker-container").datepicker("setDate", $("#list_date").val() ); // New (25)
1272            $("#datepicker-container").datepicker("refresh");
1273
1274            //console.log(clareCalendar.yearRange);
1275            $("#datepicker-container").datepicker(clareCalendar);
1276
1277            $('#all').addClass('disabled'); // New (25)
1278            $('#selected-date').removeClass('disabled');  // New (25)
1279
1280            // New (25)
1281			if($(".btn-calendar").hasClass('active')){
1282				$(".btn-calendar").removeClass('active');
1283				$("#datepicker-container").stop().fadeOut('fast');
1284			} else {
1285				$(".btn-calendar").addClass('active');
1286				$("#datepicker-container").stop().fadeIn('fast');
1287			}
1288
1289            setTimeout(function() {
1290                for (i=0; i<disabledDays.length; i++) {
1291                    $(".td_day-"+disabledDays[i]).find('.ui-state-default').addClass("ui-state-disabled-color"); // New (25)
1292                }
1293            }, 10);
1294        });
1295    }
1296
1297    // New (25)
1298	// Datepicker 닫기 버튼
1299	$(".datepicker_close").on("click", function () {
1300		$(".btn-calendar").removeClass('active');
1301		$("#datepicker-container").stop().fadeOut('fast');
1302	});
1303};
1304
1305$(document).ready(function(event) {
1306    setValue();
1307
1308    // 뒤로가기로 인한 페이지 접근
1309    if (event.persisted || (window.performance && performance.navigation.type === (performance.navigation.TYPE_BACK_FORWARD || 2))) {
1310        if (sessionStorage.getItem('page') != "" && sessionStorage.getItem('page') != null)  pageNumber = sessionStorage.getItem('page');
1311        if (sessionStorage.getItem('category') != "" && sessionStorage.getItem('category') != null)  category = sessionStorage.getItem('category');
1312        if (sessionStorage.getItem('category2') != "" && sessionStorage.getItem('category2') != null) category2 = sessionStorage.getItem('category2');
1313        if (sessionStorage.getItem('code') != "" && sessionStorage.getItem('code') != null)  code = sessionStorage.getItem('code');
1314        if (sessionStorage.getItem('serial') != "" && sessionStorage.getItem('serial') != null)  serial = sessionStorage.getItem('serial');
1315        if (sessionStorage.getItem('search_keyword') != "" && sessionStorage.getItem('search_keyword') != null)  {
1316            search_keyword = sessionStorage.getItem('search_keyword');
1317            if ($("#issue_keyword").length > 0) {
1318                $("#issue_keyword").val(search_keyword);
1319            } else if ($("#series_keyword").length > 0) {
1320                $("#series_keyword").val(search_keyword);
1321            } else if ($("#flat_keyword").length > 0) {
1322                $("#flat_keyword").val(search_keyword);
1323            }
1324        }
1325
1326        var select_date = sessionStorage.getItem('select_date');
1327        if (select_date != "" && select_date != null) {
1328            select_date = select_date.split("-");
1329            year = select_date[0];
1330            month = select_date[1];
1331            day = select_date[2];
1332        }
1333
1334        if ((sessionStorage.getItem('page') != "" && sessionStorage.getItem('page') != null) || (sessionStorage.getItem('category') != "" && sessionStorage.getItem('category') != null) || (sessionStorage.getItem('category2') != "" && sessionStorage.getItem('category2') != null) || (sessionStorage.getItem('select_date') != "" && sessionStorage.getItem('select_date') != null) || (sessionStorage.getItem('code') != "" && sessionStorage.getItem('code') != null) || (sessionStorage.getItem('serial') != "" && sessionStorage.getItem('serial') != null) || (sessionStorage.getItem('category') != "" && sessionStorage.getItem('search_keyword') != null)) {
1335            listData.load(pageNumber);
1336            sessionStorage.removeItem('page');
1337            sessionStorage.removeItem('category');
1338            sessionStorage.removeItem('category2');
1339            sessionStorage.removeItem('select_date');
1340            sessionStorage.removeItem('code');
1341            sessionStorage.removeItem('serial');
1342            sessionStorage.removeItem('search_keyword');
1343        }
1344    }
1345
1346    $("select[name='category']").on("change", function() {
1347        listData.cateChange($(this).val(), 'noscroll');
1348    });
1349
1350    $("select[name='category2']").on("change", function() {
1351        listData.cateChange($(this).val(), 'category2');
1352    });
1353
1354    $(".dateMove").on("click", function() {
1355        pageNumber = 1;
1356        listData.dateMove($(this));
1357    });
1358
1359    $('#'+type+'_keyword').on('keydown', function(e) {
1360        if (e.keyCode == '13') {
1361            listData.searchKeyword();
1362        }
1363    });
1364
1365    //if (type == "cartoon" && category != "" ) {
1366    //var chg_height = $("#recent").offset().top;
1367    //$('html, body').animate({scrollTop : chg_height}, 100);
1368    //}
1369});
1370
1371
1372// 해당 날짜에 기사가 있을 경우 활성화
1373function getDisabledDate(year, month) {
1374    var findArr = new Array();
1375    var findDay = new Array();
1376
1377    $.ajax({
1378        url : url,
1379        type : 'POST',
1380        dataType : 'json',
1381        data  : { 'syncType' : 'async', 'type' : type, 'section' : 'article_date', 'year' : year, 'month' : month, 'category' : category, 'category2' : category2 },
1382        async : false,
1383        cache : false,
1384        success : function(json) {
1385            if (json.result == 'ok') {
1386                var item = json.items;
1387                //for (j=1; j<item.length; j++) {
1388                for (j=0; j<item.length; j++) {
1389                    findArr.push(item[j].date_val);
1390                }
1391
1392                var preYear = year; var preMonth = month - 1;
1393                if (preMonth == 0) { preMonth = 12; preYear = year-1; }
1394
1395                var nextYear = year; var nextMonth = month + 1;
1396                if (nextMonth >12) { nextMonth = 1; nextYear = year+1; }
1397
1398                // 이전달 1주일 데이터 가져오기
1399                for (var i=21; i<32; i++) {
1400                    var find_date = preYear + "-" + preMonth + "-" + i;
1401                    if (findArr.indexOf(find_date) == -1)  findDay.push(find_date);
1402                }
1403
1404                // 현재 달 데이터 가져오기
1405                for (var i=1; i<32; i++) {
1406                    var find_date = year + "-" + month + "-" + i;
1407                    if (findArr.indexOf(find_date) == -1)  {
1408                        findDay.push(find_date);
1409                    }
1410                }
1411
1412                // 다음달 1주일 데이터도 가져오기
1413                for (var i=1; i<8; i++) {
1414                    var find_date = nextYear + "-" + nextMonth + "-" + i;
1415                    if (findArr.indexOf(find_date) == -1)  findDay.push(find_date);
1416                }
1417            }
1418        },
1419        error: function(xhr) {}
1420    });
1421
1422    return findDay;
1423}
1424
1425// 뒤로가기 위한 데이터 저장
1426function setValue() {
1427    $("#recentList li").click(function() {
1428        sessionStorage.setItem('select_date', year+"-"+month+"-"+day);
1429        sessionStorage.setItem('page', pageNumber);
1430        sessionStorage.setItem('category', category);
1431        sessionStorage.setItem('category2', category2);
1432        sessionStorage.setItem('code', code);
1433        sessionStorage.setItem('serial', serial);
1434        sessionStorage.setItem('search_keyword', search_keyword);
1435    });
1436}
1437
1438function number_format(number) {
1439    var nArr = String(number).split('').join(',').split('');
1440    for (var i=nArr.length-1, j=1; i>=0; i--, j++)  if (j%6 != 0 && j%2 == 0) nArr[i] = '';
1441    return nArr.join('');
1442}
1443
1444function getParam(sname) {
1445    var params = location.search.substr(location.search.indexOf("?") + 1);
1446    var sval = "";
1447    params = params.split("&");
1448
1449    for (var i = 0; i < params.length; i++) {
1450        temp = params[i].split("=");
1451        if ([temp[0]] == sname) { sval = temp[1]; }
1452    }
1453
1454    return sval;
1455}

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.