// 即時実行
(function($) {
'use strict';
// js の global な設定
// html中で事前に設定されていた場合はその内容を優先する
var mel_settings = window.mel_settings || {};
var mel_youtube_settings = window.mel_youtube_settings || {};
var mel_cms_settings = window.mel_cms_settings || {};
var helper = {
getmediamode: function() {
return window.innerwidth < 981 ? 'small' : 'large';
},
getpath: function(uri) {
// uri から pathname 相当を取得
// a 要素を生成して pathname を取得することで確実な処理を期待
var path = $('')
.attr('href', uri)
.prop('pathname');
if (path.match(/^[^\/]/)) path = '/' + path;
return path;
},
getcurrentpath: function() {
// meta[property="og:url"] から現在のパスを取得, og:url が無ければ location.pathname を使う
return (
helper.getpath($('meta[property="og:url"]').attr('content')) ||
location.pathname
);
}
};
window.mel_settings = $.extend(
{
current_path: helper.getcurrentpath(),
// header, footer's external file path
footer_container_path:
'/gws_template_responsive/assets_gws_template_responsive/default/include/_footer.html',
// header
header_path: '/gws_template_responsive/assets_gws_template_responsive/include/me02_header.html',
// footer
footer_main_path:
'/gws_template_responsive/assets_gws_template_responsive/include/me02_footer.html',
footer_atw_path:
'/gws_template_responsive/assets_gws_template_responsive/include/_footer_atw.html',
footer_sns_path:
'/gws_template_responsive/assets_gws_template_responsive/include/_footer_sns.html',
local_nav_path: '',
helper: helper
},
mel_settings
);
// livesite
var $root = $('#ls-canvas');
if ($root.length) {
var $header = $('[data-js-gs18-header]').parents('.ls-row');
var $footer = $('[data-js-gs18-footer]').parents('.ls-row');
var $main = $('');
$main.append($root.children());
$root.append($main);
$root.prepend($header);
$root.append($footer);
}
// set modal
if (mel_cms_settings.user_country === 'us') {
$('body').setmodal({
contentpath: '/gws_template_responsive/assets_gws_template_responsive/include/_modal_us-transition/index.html'
});
} else if (
window.mel_settings.country === 'th' &&
window.mel_settings.dialogcontentpath
) {
$('body').setmodalth({
contentpath: window.mel_settings.dialogcontentpath
});
} else {
$('[data-js-gs18-modal]').setmodal();
}
// construction of header
$('[data-js-gs18-header]').includeheader({
path: window.mel_settings.header_path,
// is-current の自動付与を止めたい場合は enablesetcurrent: false を設定
// enablesetcurrent: false,
enableflyout: false,
noajax: $('[data-js-gs18-header]').data('js-gs18-header') === 'noajax',
callback: function($header) {
// reading marsflag does not work unless it creates a header.
var $marsflagscript = $('').attr({
src: '//c.marsflag.com/mf/mfx/1.0/js/mfx-sbox.js',
charset: 'utf-8'
});
$('body').append($marsflagscript);
// note: if additional processing is required after header display, pass function to callback
// console.log("some callbacks", $header)
}
});
// local navigation の構築
$('[data-js-gs18-local-nav]').includelocalnav({
path: window.mel_settings.local_nav_path,
local_nav_json_path: window.mel_settings.local_nav_json_path,
callback: function($localnav) {
// note: localnav 表示後に追加の処理が必要な場合は callback に関数を渡す
// console.log("some callbacks", $localnav)
}
});
// static local navigation の高さ調整
$('[data-js-gs18-static-local-nav]').tidystaticlocalnav();
// construction of footer
$('[data-js-gs18-footer]').includefooter({
path: window.mel_settings.footer_container_path,
mainpath: window.mel_settings.footer_main_path,
atwpath: window.mel_settings.footer_atw_path,
snspath: window.mel_settings.footer_sns_path,
noajax: $('[data-js-gs18-footer]').data('js-gs18-footer') === 'noajax',
callback: function($footer) {
// note: if additional processing is necessary after footer display, pass the function to callback
// console.log("some callbacks", $footer)
var includeparts = function($target, path, callback) {
// eslint-disable-next-line no-redeclare
var callback = callback || function() {};
path &&
$.ajax({
url: path
}).done(function(data) {
$target.after(data);
$target.remove();
callback();
});
};
// include main
includeparts(
$('[data-js-gs18-footer-main]'),
window.mel_settings.footer_main_path
);
includeparts(
$('[data-js-gs18-footer-logo]'),
window.mel_settings.footer_logo_path
);
// include atw
includeparts(
$('[data-js-gs18-footer-atw]'),
window.mel_settings.footer_atw_path
);
// include sns
includeparts(
$('[data-js-gs18-footer-sns]'),
window.mel_settings.footer_sns_path,
function() {
// callbacks here
//footer wechat
$('[data-js-gs18-footer-wechat]').on('click', function(e) {
e.preventdefault();
$(this)
.find('[data-js-gs18-footer-wechat-target]')
.slidetoggle();
$(this).blur();
});
}
);
}
});
// note: locations regions
$('[data-js-gs18-location=locations]').includeregions({
type: 'locations',
callback: function($createdregions) {
// note: [data-js-gs18-location] がページに1つだけの前提
$('[data-js-gs18-location]').append($createdregions);
}
});
// note: atw regions
$('[data-js-gs18-location=atw]').includeregions({
type: 'atw',
callback: function($createdregions) {
// note: [data-js-gs18-location] がページに1つだけの前提
$('[data-js-gs18-location]').append($createdregions);
}
});
// set learn more tile
$('[data-js-gs18-learn-more-tile]').setlearnmoretile();
// set learn more news
$('[data-js-gs18-learn-more-news]').setlearnmorenews();
// set related links
$('[data-js-gs18-related-slide]').setrelatedlinks();
$('[data-js-gs18-youtube]').jsyoutube({
youtube_settings: window.mel_youtube_settings
});
// set custom accorion ui
var accordionselectors = [
{
body: '[data-js-gs18-accordion]',
trigger: '[data-js-gs18-accordion-trigger]',
content: '[data-js-gs18-accordion-content]'
},
{
body: '[data-js-accordion]',
trigger: '[data-js-accordion-trigger]',
content: '[data-js-accordion-content]'
}
];
$(accordionselectors).each(function(index, selectors) {
$(selectors.body).setcustomaccordion({
selectors: selectors
});
});
// set local smooth scroll
$('main').setlocalsmoothscroll();
// domcontentloaded
$(function() {
'use strict';
//rss feed 表示
$('[data-js-gs18-feeds]').getfeeds();
//ページtopスクロール
$('[data-js-gs18-gotop]').on('click', function(e) {
e.preventdefault();
$(this).gotopscroll();
});
//pulldown link
$('[data-js-gs18-pulldown-link]').pulldownlink();
//micromacro panel
$('[data-js-gs18-micro-macro]').micromacro();
//history slider
$('[data-js-history-slide]').slick({
dots: true,
arrows: false,
infinite: false,
custompaging: function(slick, i) {
// dotsに年代を表示
// data-history-dotsから値を取得
var historyyear = slick.$slides.eq(i).data('history-dots');
return '' + historyyear + '';
}
});
//responsive table
$('[data-js-gs18-responsive-table]').setresponsivetable();
//facebook page plugin リサイズ
$('[data-js-facebook]').jsfacebookresize();
//キャプションの横幅をイメージの横幅に揃える
$('[data-js-gs18-adjust-caption-width]').adjustcaptionwidth();
// set vi changer - top page vi
// note: 不要になっているかもしれない。
$('[data-js-gs18-top-slide]').setvichanger({
selectors: {
mainviewarea: '[data-js-gs18-top-slide-body]',
mainwrapper: '[data-js-gs18-top-slide-main]',
naviwrapper: '[data-js-gs18-top-slide-nav]',
prevbtn: '[data-js-gs18-top-slide-prev]',
nextbtn: '[data-js-gs18-top-slide-next]',
pausebtn: '[data-js-gs18-top-slide-pause]'
},
pauseactiveclassname: 'is-active',
auto: 5000
});
// set vi changer - news page vi
$('[data-js-gs18-news-slide]').setvichanger({
selectors: {
mainviewarea: '[data-js-gs18-news-slide-body]',
mainwrapper: '[data-js-gs18-news-slide-main]',
naviwrapper: '[data-js-gs18-news-slide-nav]',
prevbtn: '[data-js-gs18-news-slide-prev]',
nextbtn: '[data-js-gs18-news-slide-next]',
imgcol: '[data-js-gs18-news-slide-imgcol]'
},
auto: null,
issetimageheight: true
});
// set vi changer - heme page heroimage vi
$('[data-js-gs18-hero-image-slide-start]');
var $heroimageslide = $('[data-js-gs18-hero-image-slide]');
var heroimagestartindex = $heroimageslide.attr(
'data-js-gs18-hero-image-slide-start'
);
heroimagestartindex = parseint(heroimagestartindex);
heroimagestartindex = isnan(heroimagestartindex)
? 0
: heroimagestartindex - 1;
$heroimageslide.setvichanger({
selectors: {
mainviewarea: '[data-js-gs18-hero-image-slide-body]',
mainwrapper: '[data-js-gs18-hero-image-slide-main]',
naviwrapper: '[data-js-gs18-hero-image-slide-nav]',
pausebtn: '[data-js-gs18-hero-image-slide-pause]'
},
naviactiveclassname: 'is-active',
startindex: heroimagestartindex,
auto: 5000
});
});
})(window.jquery3 || jquery);