/** * init.js * @use : news.joins.com (Pc) 에서만 사용한다. */ (function(window, document, $) { // Defind Area Variable. var layout = window.layout, nowDate = new Date(), pageType = utils.config('pageType'), articleType = utils.config('articleType'), imagePath = utils.config('imagePath'); // datepicker configuration. if($.datepicker !== undefined) { $.datepicker.regional["ko"] = { closeText: '닫기', prevText: '이전달', nextText: '다음달', currentText: '오늘', monthNames: ['01', '02', '03', '04', '05', '06', '07', '08', '09', '10', '11', '12'], monthNamesShort: ['1월', '2월', '3월', '4월', '5월', '6월', '7월', '8월', '9월', '10월', '11월', '12월'], dayNames: ['일', '월', '화', '수', '목', '금', '토'], dayNamesShort: ['일', '월', '화', '수', '목', '금', '토'], dayNamesMin: ['일', '월', '화', '수', '목', '금', '토'], weekHeader: 'Wk', dateFormat: 'yy.mm.dd', firstDay: 0, isRTL: false, showMonthAfterYear: true, yearSuffix: ".", showAnim: 'drop', buttonImageOnly: true }; $.datepicker.setDefaults($.datepicker.regional['ko']); } // global init // header(navigation), footer, right, get font cookie, config. (function init() { $('#content > div > ul.stock').remove(); var fontSize = utils.getCookie(COOKIE_NAMES.fontSize) || '4', openWide = utils.getCookie(COOKIE_NAMES.wide), windowSize = utils.windowSize(); layout.render(); if (pageType == PAGE_TYPE.article) { initFontSize(fontSize); } // 와이드 오픈용 resize Handler. // 높이를 제외하고 width 만 체크한다. // IE8 에서 높이값이 고정되지 않는 버그 있음.(css). $(window).resize(function () { var _windowSize = utils.windowSize(); // IE 7, 8 에서 body 사이즈 변경될 때, window.resize 이벤트가 발생함. // 내부 변수에 처음 size 를 cache 하여 추가 조건 작성. if (windowSize.width != _windowSize.width) { windowSize = utils.windowSize(); utils.removeCookie(COOKIE_NAMES.wide, COOKIE_CONDITION.path, COOKIE_CONDITION.domain); if (_windowSize.width > 1390) { layout.wide.open(); } else { layout.wide.close(); } } }); $('.count .mg').each(function () { var $count = $(this), count = $count.text() || ''; count = utils.getDisplayCount(count); $count.text(count); }); // pc : Mobile 보기 전환 $(document.body).on('click', '#showMobileWeb', function () { utils.setIgnoreUserAgent(); utils.redirectUrl(); return false; }); // pc : 기사내 용어사전 접고 펼치기 $('.ab_term_hd', $("div#article_body")).on('click', function () { var $wrap = $(this).closest('.ab_term'); if ($wrap.hasClass('ab_term_off')) { $wrap.addClass('ab_term_on').removeClass('ab_term_off'); } else { $wrap.addClass('ab_term_off').removeClass('ab_term_on'); } }); // 이미지 inline 사이즈 제거 $('.html_photo_left img, .photo_center img').width('').height(''); })(); function initFontSize(fontSize) { if(location.href.toLowerCase().indexOf('providednews') > -1) { return; } var $changefont = $('#changefont'); $(DOM_SELECTOR.articleBody).removeClass('fs1 fs2 fs3 fs4 fs5').addClass('fs' + fontSize); $('#changefont').changeFontSize().show(); } utils.shareCountCallback = function(target) { // 서비스별 카운트 처리. var TARGET_SELECTORS = { news: '#article_share_total_count', issue: '#issue_keyword_share_count' }, targetSelector = TARGET_SELECTORS[target], $totalCountArea = $(targetSelector), totalCount = 0; if(!targetSelector) { return; } if($totalCountArea.length == 0) { return; } totalCount = $totalCountArea.text() || 0; totalCount = parseInt(totalCount, 10); $totalCountArea.text(totalCount + 1); }; // MVC Ajax : 클릭된 버튼 타겟. var $moreBtn = null; utils.setMoreBtn = function($btn) { $moreBtn = $btn; }; // MVC Ajax : mvcAjaxSuccess utils.mvcAjaxSuccess = function() { var articleType = utils.config('articleType'); var menuKey = utils.menu.getPageMenuKey(); setTimeout(function() { $('#loading').hide(); }, 3000); if(articleType = ARTICLE_TYPE.live) { if($.fn.articleComponent) { $('#live_content').articleComponent(); if (menuKey.toLowerCase().indexOf('election2017') !== -1) { $('.ab_photo').attr("style", "width:580px;"); } } } if($moreBtn == null || !$moreBtn.length) { return false; } var data = $moreBtn.data(); if(data.totalCount <= data.currentPage * data.pageSize) { $moreBtn.hide(); } if($moreBtn && $moreBtn.length == 1) { $moreBtn.data('active', 'true'); $moreBtn.removeClass('disable'); } utils.mvcAjaxCallbackQueue.callback($moreBtn); }; function trackingLogAd(types) { var adsnMaps = { 'Home': '7528', 'Section': '7529', 'Article': '7531', 'Cover': '7540', 'Live': '7539', 'Piki': '7541', 'Money': '7542', 'Culture': '7543', 'Sports': '7544', 'JPlus': '7545', 'Travel': '7546', 'Week': '7547', 'Politics': '8169', 'Sunday': '9393', 'MagazineM': '9101', 'MagazineMArticle': '9102' }, iframeUrls = 'http://dgate.opap.co.kr/imp/?ssn=566&adsn={ADSN}&cresn=5362'; if ($.isArray(types)) { types.forEach(function (v, i, a) { var urls = iframeUrls.replace('{ADSN}', adsnMaps[v]); utils.createIFrame({ id: 'tracking_ad_' + v, url: urls }); }); } else { var urls = iframeUrls.replace('{ADSN}', adsnMaps[types]); utils.createIFrame({ id: 'tracking_ad_' + types, url: urls }); } } //document.ready $(function ($) { var menuKey = utils.menu.getPageMenuKey(); if (menuKey.toLowerCase().indexOf('sunday') !== -1) { trackingLogAd('Sunday'); } if (pageType === PAGE_TYPE.article) { utils.articleLogForSection && utils.articleLogForSection(); if (menuKey.toLowerCase().indexOf('sunday') !== -1) { trackingLogAd('Article'); } else if (menuKey.indexOf('Money') !== -1) { trackingLogAd('Money'); $('#leftbanner2').loadAd({ type: 'left_915' }); } else if (menuKey.indexOf('JPlus') !== -1) { trackingLogAd('JPlus'); } else if (menuKey.indexOf('Culture') !== -1) { trackingLogAd('Culture'); } else if (menuKey.indexOf('Sports') !== -1 || menuKey.toLowerCase().indexOf('rio2016') !== -1) { trackingLogAd('Sports'); } else if (menuKey.indexOf('Travel') !== -1) { trackingLogAd('Week'); } else if (menuKey.indexOf('Politics') !== -1) { trackingLogAd('Politics'); } else if (menuKey.indexOf('MagazineM') !== -1) { trackingLogAd('MagazineMArticle'); } if (utils.config('articleType') === ARTICLE_TYPE.cover) { trackingLogAd('Cover'); } else if (utils.config('articleType') === ARTICLE_TYPE.live) { trackingLogAd('Live'); } else if (utils.config('articleType') === ARTICLE_TYPE.piki) { trackingLogAd('Piki'); } else { trackingLogAd('Article'); } } var bannerFoot = '
'; if (pageType == PAGE_TYPE.index) { // 메인 광고 시 제외 if (typeof(isAdExNo) == "undefined" || (typeof(isAdExNo) != "undefined" && isAdExNo.indexOf("589") < 0)) { $('#shapepopup').loadAd({ type: 'shapepopup_589', onload: function ($widget) { $widget.append(bannerFoot); if ($widget.find('iframe').contents().find('body').height() == 0) { $widget.hide(); } } }); } $('#promotionBanner_0').loadAd({ type: 'home_ci_820' }); $('#promotionBanner_1').loadAd({ type: 'home_ci_821' }); trackingLogAd(pageType); } if (pageType == PAGE_TYPE.index) { // 메인 광고 시 제외 if (typeof (isAdExNo) == "undefined" || (typeof (isAdExNo) != "undefined" && isAdExNo.indexOf("592") < 0)) { $('#leftbanner').loadAd({ type: 'left_592' }).show().append(bannerFoot); } } else { $('#leftbanner').loadAd({ type: 'left_593' }).show().append(bannerFoot); } if(pageType == PAGE_TYPE.index || pageType === PAGE_TYPE.list || pageType === PAGE_TYPE.unique || pageType === PAGE_TYPE.search) { $('#eventBanner').loadAd({ type: 'home_ci_806' }); } if (pageType == PAGE_TYPE.section) { if (menuKey.split(',').length > 1 && menuKey.indexOf('JPlus') !== -1) { trackingLogAd('JPlus'); } else { if (menuKey.toLowerCase().indexOf('sunday') !== -1) { trackingLogAd('Section'); } else if (menuKey.indexOf('Money') !== -1) { trackingLogAd(['Section', 'Money']); $('#leftbanner2').loadAd({ type: 'left_915' }); } else if (menuKey.indexOf('Culture') !== -1) { trackingLogAd(['Section', 'Culture']); } else if (menuKey.indexOf('Sports') !== -1) { trackingLogAd(['Section', 'Sports']); } else if (menuKey.indexOf('Travel') !== -1) { trackingLogAd(['Section', 'Travel']); } else if (menuKey.indexOf('Politics') !== -1) { trackingLogAd(['Section', 'Politics']); } else if (menuKey.indexOf('MagazineM') !== -1) { trackingLogAd(['Section', 'MagazineM']); } else { trackingLogAd('Section'); } } //정치 광고 type 동적으로 수정 if (utils.menu.getPageMenuKey().toLowerCase().indexOf('politics') !== -1) { $('div[data-widget-service="display_680"]').attr('data-widget-service', 'display_1056'); } } if (pageType === PAGE_TYPE.list) { if (menuKey.toLowerCase().indexOf('sunday') !== -1) { trackingLogAd('Section'); } else if (menuKey.indexOf('Money') !== -1) { trackingLogAd(['Section', 'Money']); $('#leftbanner2').loadAd({ type: 'left_915' }); } else if (menuKey.indexOf('Culture') !== -1) { trackingLogAd(['Section', 'Culture']); } else if (menuKey.indexOf('Sports') !== -1 || menuKey.toLowerCase().indexOf('rio2016') !== -1) { trackingLogAd(['Section', 'Sports']); } else if (menuKey.indexOf('Travel') !== -1) { trackingLogAd(['Section', 'Week']); } else if (menuKey.indexOf('Politics') !== -1) { trackingLogAd(['Section', 'Politics']); } else if (menuKey.indexOf('MagazineM') !== -1) { trackingLogAd(['Section', 'MagazineM']); } else { trackingLogAd('Section'); } } // 부동산 섹션 좌측 120*600 광고 적용 if (utils.menu.getPageMenuKey().toLowerCase().indexOf('realestate') !== -1 && (utils.config('pageType') === 'List')) { $('#wrap').prepend(''); $('#leftbanner').loadAd({ type: 'left_593' }); $('#leftbanner_realestate').loadAd({ type: 'left_915' }); } if (pageType === PAGE_TYPE.unique) { var adPage = ['Opinion', 'Cartoon', 'Issue', 'Time7', 'MyNews', 'Jebo', 'BrandNews', 'CustomerCenter', 'Section', 'Star', 'Pic', 'UsaDiscover', 'SatiricalCartoon']; if (menuKey.indexOf('SatiricalCartoon') !== -1) { trackingLogAd('Section'); } if (menuKey.toLowerCase().indexOf('sunday') !== -1) { trackingLogAd('Section'); } else if (menuKey.indexOf('Money') !== -1) { $('#leftbanner2').loadAd({ type: 'left_915' }); } else { adPage.forEach(function (v, i, a) { if (menuKey.indexOf(v) !== -1) { if (v === 'UsaDiscover') { trackingLogAd(['Section', 'Week']); } else { trackingLogAd('Section'); } } }); } //반퇴시대 광고 type 동적으로 수정 if (utils.menu.getPageMenuKey().toLowerCase().indexOf('retirement') !== -1) { $('div[data-widget-service="display_680"]').attr('data-widget-service', 'display_1035'); } } // init Article Reporter //$('.journalist_area').find('.profile a').reporterCard(); //리포터 레이어 뜨지 않고 리포터 페이지로 이동 if (pageType == PAGE_TYPE.article) { //tag(키워드)에 의한 분기 if (utils.getMetaValue("news_kyewords").indexOf('e글중심') !== -1) { //nothing } //week& 광고 type 동적으로 수정 else if(utils.menu.getPageMenuKey().toLowerCase().indexOf('travel') !== -1) { $('div[data-widget-service="da_300"]').attr('data-widget-service', 'display_748'); $('#criteo_network').replaceWith(''); $('#display_749').loadAd({type: 'display_749'}); // 부동산 섹션 좌측 120*600 광고 적용 } else if (utils.menu.getPageMenuKey().toLowerCase().indexOf('realestate') !== -1) { $('#leftbanner').after(''); $('#leftbanner_realestate').loadAd({ type: 'left_915' }); //선데이 광고 type 동적으로 수정 } else if (utils.menu.getPageMenuKey().toLowerCase().indexOf('sunday') !== -1) { $('div[data-widget-service="da_300"]').attr('data-widget-service', 'display_800'); } else if (utils.menu.getPageMenuKey().toLowerCase().indexOf('politics') !== -1) { $('div[data-widget-service="da_300"]').attr('data-widget-service', 'display_1056'); } initArticle(); if(utils.config('articleType') !== ARTICLE_TYPE.cover) { $('#leftbanner').loadAd({type: 'left_593'}).show().append(bannerFoot); $('#shapepopup').loadAd({ type: 'shapepopup_590', onload: function($widget) { $widget.append(bannerFoot); if($widget.find('iframe').contents().find('body').height() == 0) { $widget.hide(); } } }); $('#articeltopbanner').loadAd({type: 'shoppingbox_496'}).show().append(bannerFoot); $('#articleBottomLeft').loadAd({type: 'bottom_513'}).show(); $('#articleBottomRight').loadAd({ type: 'bottom_514' }).show(); } } // MVC Ajax : 버튼 이벤트 선 처리. $(document.body).on('click', 'a.btnMore', function() { //utils.log('## btnMore click'); var $btn = $(this), data = $btn.data(), url = $btn.attr('href').split('?'), pathname = url[0], param = url[1], href = '', paramData = $.fn.deparam(param); if(data.active == 'false') { return false; } paramData.page = parseInt(data.currentPage, 10) + 1; $btn.data({ 'currentPage': paramData.page }); if(data.url) { href = decodeURIComponent(data.url).replace('{page}', paramData.page); } else { href = pathname + '?' + $.param(paramData); } //utils.log(''); $btn.attr({'href': href}).addClass('disable'); utils.setMoreBtn($btn); }); // set paging_date $('.paging_date').setPagingDate(); // set Search Form (s) // set Search Form (e) // set Tooltip $('a.btnTooltip').on('mouseenter', function() { var targetId = $(this).data('target'), $target = $('#' + targetId); if(!targetId) { return false; } $target.show(); return false; }).on('mouseleave', function() { var targetId = $(this).data('target'), $target = $('#' + targetId); if(!targetId) { return false; } $target.hide(); return false; }); $("a.tab_button").on('click', function() { var $ul = $(this).closest('ul'); $ul.children('li').attr('class', ''); var $li = $(this).parent(); $li.attr('class', 'on'); }); $('.share_wrap').sharePlate(); if ($('#sub').length > 0) { $('#sub').widget(); } $('#btnFollow').on('click', function() { var $btn = $(this), isFollow = $btn.data('isFollow') == true || $btn.data('isFollow') == 'True' ? true : false; targetFollow($btn, $btn.data('id'), $btn.data('type'), isFollow); }); $('.back_top > a').on('click', function() { $(window).scrollTop(0); return false; }); $('#head').sticky({ top: (articleType == ARTICLE_TYPE.cover ? 460 : 136), cls: 'fake_sticky', callback: function($head) { var $btn = $('.back_top > a'); if($head.hasClass('fake_sticky')) { $btn.show(); } else { $btn.hide(); } } }); $('#doc').find('div.ad').on('click', '.ft button', function() { $(this).closest('.ad').hide(); return false; }); //윈도우 로드 완료 후 페렐렉스 스크롤 실행되도록 수정 /*var WindowLoad = window.onload; window.onload = function (e) { if (typeof (WindowLoad) == "function") { WindowLoad(); } // Set Parallax Scroll // Cover Article 을 제외한 전체 페이지에 적용. if (utils.config('applicationType') == APPLICATION_TYPE.pc && articleType != ARTICLE_TYPE.cover && location.host.indexOf(utils.config('cmsHost')) == -1) { //utils.log('$$$$$ Set Parallax Scroll'); $.parallaxScrolling && $.parallaxScrolling(); } }*/ $(window).load(function () { // Set Parallax Scroll // Cover Article 을 제외한 전체 페이지에 적용. if (utils.config('applicationType') == APPLICATION_TYPE.pc && articleType != ARTICLE_TYPE.cover && location.host.indexOf(utils.config('cmsHost')) == -1) { //utils.log('$$$$$ Set Parallax Scroll'); $.parallaxScrolling && $.parallaxScrolling(); } }); function initArticle() { var totalId = utils.getTotalId(); var commentTotalId = $('#comment_total_id').val() || ''; var $articleBody = $('#article_body'); var sourceCode = utils.getArticleSourceCode(); var articleTitle = utils.getArticleTitle(); var isLoginContents = utils.getIsLoginContents(); // 클립보드 복사 이벤트 처리. if ((sourceCode == '1') || (sourceCode == '3') || (sourceCode == 'd5')) { if (document.addEventListener) { document.addEventListener("copy", fnCopyTextAdd, false); } else if (document.attachEvent) { document.attachEvent("oncopy", fnCopyTextAdd); } } function fnCopyTextAdd() { var getSelection = window.getSelection ? window.getSelection() : document.selection; var getRange = getSelection.getRangeAt ? getSelection.getRangeAt(0) : getSelection.createRange(); if (!getSelection.rangeCount) return null var addText = "[출처: 중앙일보] " + articleTitle; var addHtml = "