var MAVJS = MAVJS || {}; /* ========================================== * ランダム数å—ç”Ÿæˆ ========================================== */ MAVJS.getRandomInt = function(min,max){ return Math.floor( Math.random() * (max + 1 - min) ) + min; } /* ========================================== * keyを指定ã—ã¦ç‰¹å®šã®valueã‚’æŒã¤ã‚ªãƒ–ジェクトをå–å¾— ========================================== */ MAVJS.getObjByKeyValue = function(array, key, value){ var result = $.grep(array, function (e) { return e[key] == value; }); return result; } /* ========================================== * オブジェクトé…列ソート * array : Array [{},{},{}...] * key : string * order : string "asc"(default) or "desc" ========================================== */ MAVJS.sortObjArray = function(array, key, order) { var reverse = 1; if(order && order.toLowerCase() == "desc") reverse = -1; array.sort(function(a, b) { if(a[key] < b[key]) return -1 * reverse; else if(a[key] == b[key]) return 0; else return 1 * reverse; }); } /* ========================================== * ユーザーエージェント ========================================== */ MAVJS.addUserAgent = function(){ window.UA = {}; const $body = $("body"), ua = navigator.userAgent.toLowerCase(); UA.os = (function(){ return { Windows: (ua.indexOf("win") != -1), Mac: ((ua.indexOf('mac') > -1) && (ua.indexOf('os') > -1)) && !((ua.indexOf('iphone') > -1) || (ua.indexOf('ipad') > -1) || (ua.indexOf('windows') > -1)), iOS: (ua.indexOf('iphone') > 0) || (ua.indexOf('ipad') > 0), Android: (ua.indexOf('android') > 0) && (ua.indexOf('mobile') > 0) } })(); UA.browser = (function(){ return { IE: (ua.indexOf('msie') > -1) && (ua.indexOf('opera') == -1) || (ua.indexOf('trident/7') > -1), Edge: (ua.indexOf('edge') > -1), Chrome: (ua.indexOf('chrome') > -1) && (ua.indexOf('edge') == -1), Firefox: (ua.indexOf('firefox') > -1), Safari: (ua.indexOf('safari') > -1) && (ua.indexOf('chrome') == -1), Opera: (ua.indexOf('opera') > -1) } })(); UA.device = (function(){ return { Tablet:(ua.indexOf("windows") != -1 && ua.indexOf("touch") != -1 && ua.indexOf("tablet pc") == -1) || ua.indexOf("ipad") != -1 || (ua.indexOf("android") != -1 && ua.indexOf("mobile") == -1) || (ua.indexOf("firefox") != -1 && ua.indexOf("tablet") != -1) || ua.indexOf("kindle") != -1 || ua.indexOf("silk") != -1 || ua.indexOf("playbook") != -1, Mobile:(ua.indexOf("windows") != -1 && ua.indexOf("phone") != -1) || ua.indexOf("iphone") != -1 || ua.indexOf("ipod") != -1 || (ua.indexOf("android") != -1 && ua.indexOf("mobile") != -1) || (ua.indexOf("firefox") != -1 && ua.indexOf("mobile") != -1) || ua.indexOf("blackberry") != -1 } })(); UA.device.PC = (function(){ var pc; if ( UA.device.Tablet || UA.device.Mobile ) { var pc = false; } else { var pc = true; } return pc; })(); if ( UA.browser.Opera ) { $body.attr("data-browser", "Opera"); } else if ( UA.browser.IE ) { $body.attr("data-browser", "IE"); } else if ( UA.browser.Chrome ) { $body.attr("data-browser", "Chrome"); } else if ( UA.browser.Safari ) { $body.attr("data-browser", "Safari"); } else if ( UA.browser.Edge ) { $body.attr("data-browser", "Edge"); } else if ( UA.browser.Firefox ) { $body.attr("data-browser", "Firefox"); } if ( UA.device.Mobile ) { $body.attr("data-device","Mobile"); } else if( UA.device.Tablet ) { $body.attr("data-device","Tablet"); } else { $body.attr("data-device","PC"); } if ( UA.os.iOS ) { $body.attr("data-os",'iOS'); } else if ( UA.os.Android ) { $body.attr("data-os",'Android'); } else if ( UA.os.Windows ) { $body.attr("data-os",'Windows'); } else if ( UA.os.Mac ) { $body.attr("data-os",'Mac'); } } /* ========================================== * åŒä¸€ãƒ‰ãƒ¡ã‚¤ãƒ³ã‹ã‚‰ã®ãƒªãƒ³ã‚¯åˆ¤å®š ========================================== */ MAVJS.checkReferer = function (){ const ref = document.referrer, domain = location.hostname, referer = ref != "" && ref != "http://" + domain && ref != "http://" + domain + "/" && ref != "http://" + domain + "/index.html" && ref != "https://" + domain && ref != "https://" + domain + "/" && ref != "https://" + domain + "/index.html" && (ref.indexOf("http://" + domain) === 0 || ref.indexOf("https://" + domain) === 0); return referer; } /* ========================================== * URL自動aタグ化 ========================================== */ MAVJS.createAnchorTag = function(target){ $(target).each(function(){ $('a', this).each(function() { if( $(this).text().trim() == $(this).attr('href') ) { $(this).contents().unwrap(); } }); $(this).html($(this).html().replace(/((http|https|ftp):\/\/[\w?=&.\/-;#~%-]+(?![\w\s?&.\/;#~%"=-]*>))/g, '<a href="$1" target="_blank" rel="noopener noreferrer">$1</a>')); }); } /* ======================================== aã‚¿ã‚° relè¿½åŠ ========================================= */ MAVJS.addRelNoopener = function(){ $('a[target="_blank"]').each(function(i, e) { if(!$(this).is('[rel]')) { $(this).attr('rel', 'noopener noreferrer'); } }); } /* ========================================== * 相対リンクã®index.html削除 ========================================== */ MAVJS.removeIndexHtml = function (){ $('a:not([href^="http"])').each(function(i) { var href = $(this).attr('href'); if (typeof href !== 'undefined' && href !== false) { if (href.indexOf('index.html') >= 0) { $(this).attr('href', href.replace('index.html', '')); } } }); } /* ========================================== * カスタムマーカーリスト ========================================== */ MAVJS.customMarkerList = function(){ $(".c-customMarkerList").each(function(){ var marker = $(this).attr("data-listMarker"); $(this).children().attr("data-listMarker",marker); }); $("body").append('<style>.c-customMarkerList>li::before { content: attr(data-listmarker); } <style>'); } /* ========================================== * スムーススクãƒãƒ¼ãƒ« ========================================== */ MAVJS.smoothScroll = function (offsetY, time, easing){ if (typeof offsetY === "undefined"){ const offsetY = -50; } if (typeof time === "undefined"){ const time = 1000; } if (typeof easing === "undefined"){ const easing = "easeInOutQuint"; } const scrollLink = $('a[href^="#"],a[href^="index.php#"]'), scrollToTop = $('.js-scrollToTop'); scrollLink.on("click",function() { var target = $(this.hash); if (!target.length) return; var targetY = target.offset().top + offsetY; $('html,body').animate({ scrollTop: targetY }, time, easing); window.history.pushState(null, null, this.hash); return false; }); scrollToTop.on("click",function(){ $('html,body').animate({ scrollTop: 0 }, time, easing); return false; }) } /* ========================================== * ソーシャルシェア ========================================== */ MAVJS.socialShare = function(hashtag, related){ if (typeof hashtag === "undefined"){ var hashtag = ""; } if (typeof related === "undefined"){ var related = ""; } const title = document.title.replace(/&/g,"%26"), url = location.href.split("#"), $shareTwitter = $('.js-share--twitter'), $shareFacebook = $('.js-share--facebook'), $shareLine = $('.js-share--line'), twitterHref = (encodeURI(decodeURI('https://twitter.com/intent/tweet?text=' + title + '%0D%0A' + '&url=' + url[0] + '&hashtags=' + hashtag + '&related=' + related))), facebookHref = (encodeURI(decodeURI('http://www.facebook.com/sharer.php?u='+ url[0]))), lineHref = (encodeURI(decodeURI('https://social-plugins.line.me/lineit/share?url=' + url[0] + '&text=' + title))); function newShareWindow(){ const w = 550, h = 500, x = (screen.width - w) / 2, y = (screen.height - h) / 2; window.open(this.href,null, 'screenX='+x+',screenY='+y+',left='+x+',top='+y+',width='+w+',height='+h); return false; } $shareTwitter.attr('href',twitterHref); $shareFacebook.attr('href',facebookHref); $shareLine.attr('href',lineHref); $shareTwitter.on('click',newShareWindow); $shareFacebook.on('click',newShareWindow); $shareLine.on('click',newShareWindow); } /* ========================================== * Prev / Next ========================================== */ MAVJS.replaceTextNextPrev = function(prevText,nextText){ $('.nb_pre_text').text(prevText); $('.nb_nex_text').text(nextText); } /* ========================================== * ページãƒãƒ¼ã‚·ãƒ§ãƒ³ テã‚スト整形 ========================================== */ MAVJS.replaceTextPagenation = function(){ $(".nb_navi").each(function(){ var _this = $(this); var _thisPage = _this.children(".page"); _thisPage.html(_thisPage.html().replace(/ |<|>/g, '')); _this.find(".PageNom2,.page_lang2").remove(); _this.find(".page_lang_number").eq(0).children(".page_lang_number_text").remove(); _this.find(".PageNom1,.page_lang1").appendTo(_thisPage); _this.find(".nom").before("ï¼"); }); } /* ========================================== * Type_1~3 ========================================== */ MAVJS.addClassImgType = function(){ $('.img_t').parent().addClass('type_1_t'); $('.img_r').parent().addClass('type_1_r'); $('.img_u').parent().addClass('type_1_u'); $('.img_l').parent().addClass('type_1_l'); $('.read_c').parent().removeClass('type_1_t').removeClass('type_1_r').removeClass('type_1_u').removeClass('type_1_l').addClass('type_2'); $('.img_l_tp3').parent().addClass('type_3_l'); $('.img_r_tp3').parent().addClass('type_3_r'); } /* ========================================== * Type_4 ========================================== */ MAVJS.replaceType4 = function(){ var table = $(".tp4"), atlInner = table.parent(); // block $(atlInner).addClass('type_4'); $(atlInner).prepend('<ul class="type4List" />'); $(atlInner).find('img').wrap('<div class="type4List__img"/>'); for (var i = 0; i < atlInner.length; i++) { var column = $(atlInner[i]).find('td').eq(0).attr('class'); $(atlInner[i]).children('.type4List').addClass('type4List--' + column); } // table for (var i = 0; i < table.length; i++) { //list var list = $(table[i]).prevAll('.type4List'), img = $(table[i]).find(".type4List__img"), cap = $(table[i]).find(".cap"); // line for (var j = 0; j < img.length; j++) { list.append('<li class="type4List__item"/>'); var listItem = list.children('.type4List__item'); $(listItem).eq(-1).append(img.eq(j)).append(cap.eq(j)); var anchor = $(table[i]).find("td").eq(j).find("a"); if( anchor.length > 0 ){ var href = anchor.attr("href"), target = anchor.attr("target"); $(listItem).eq(-1).wrapInner('<a href="' + href + '" target="' + target + '" class="nonmover" rel="noopener noreferrer" />'); } } } $(table).remove(); } /* ========================================== * リストã®NEWマークを親ã«è¿½åŠ ========================================== */ MAVJS.addNewMark = function(target){ var $target = $(target); $target.each(function(){ var _this = $(this); if( _this.find(".new_ic").length > 0 ){ _this.addClass("is-new"); } }); } /* ========================================== * リストï¼ãƒªãƒ³ã‚¯å…¨ä½“化 ========================================== */ MAVJS.anchorParentClickable = function(target){ var $target = $(target); $target.each(function() { var _this = $(this); if (_this.find("a").length == 0) { _this.addClass("is-noLink"); } }); $target.on("click", function() { var $anchor = $(this).find("a"); if ($anchor.attr("target") === "_blank") { window.open($anchor.attr("href"), '_blank'); } else if ($anchor.length > 0) { window.location = $anchor.attr("href"); } return false; }); } /* ========================================== * カレント ========================================== */ MAVJS.listUnitAddCrt = function( unitID, usePrevNext, loopPrevNext, prevBtnClass, nextBtnClass, titleSrcElement, titleSrcType ){ if (typeof usePrevNext === "undefined"){ var usePrevNext = false; } if (typeof loopPrevNext === "undefined"){ var loopPrevNext = false; } if (typeof prevBtnClass === "undefined"){ var prevBtnClass = ".naviArrow__prev"; } if (typeof nextBtnClass === "undefined"){ var nextBtnClass = ".naviArrow__next"; } if (typeof titleSrcElement === "undefined"){ var titleSrcElement = ".title a"; } if (typeof titleSrcType === "undefined"){ var titleSrcType = "text"; } var $contArray = $(unitID).find('.nwu_box, [summary="List_Type01"]>tbody>tr'); var contArrayLength = $contArray.length; var crtUrl = document.URL.split('/'); var crtUrlSplit = crtUrl[crtUrl.length - 2] + "/" + crtUrl[crtUrl.length - 1].replace("index.html",""); // カレントãƒã‚§ãƒƒã‚¯ function checkCrtNumber() { for (let i = 0; i < contArrayLength; i++) { var listUrl = $contArray.eq(i).find('a').attr('href').split('/'); var listUrlSplit = listUrl[listUrl.length - 2] + "/" + listUrl[listUrl.length - 1].replace("index.html",""); if (listUrlSplit === crtUrlSplit) { return i; } } return ; } var crtNumber = checkCrtNumber(); function prevNextLink() { const $prevBtn = $(prevBtnClass); const $nextBtn = $(nextBtnClass); var nextNumber = crtNumber + 1; var prevNumber = crtNumber - 1; var position = ""; if (crtNumber === 0) { var prevNumber = $contArray.length - 1; if(!loopPrevNext){ $prevBtn.addClass("is-disable"); } } else if (crtNumber + 1 === $contArray.length) { var nextNumber = 0; if(!loopPrevNext){ $nextBtn.addClass("is-disable"); } } var prevUrl = $contArray.eq(prevNumber).find("a").attr("href"); var nextUrl = $contArray.eq(nextNumber).find("a").attr("href"); switch( titleSrcType ) { case "text": var prevTitle = $contArray.eq(prevNumber).find(titleSrcElement).text(); var nextTitle = $contArray.eq(nextNumber).find(titleSrcElement).text(); break; case "html": var prevTitle = $contArray.eq(prevNumber).find(titleSrcElement).html(); var nextTitle = $contArray.eq(nextNumber).find(titleSrcElement).html(); break; case "alt": var prevTitle = $contArray.eq(prevNumber).find(titleSrcElement).attr("alt"); var nextTitle = $contArray.eq(nextNumber).find(titleSrcElement).attr("alt"); break; default: var prevTitle = ""; var nextTitle = ""; break; } $prevBtn.find("a").attr({href: prevUrl, title: prevTitle}); $nextBtn.find("a").attr({href: nextUrl, title: nextTitle}); }; $contArray.eq(crtNumber).addClass('is-crt'); if (usePrevNext) { prevNextLink(); } } /* ======================================== slider '#js-screen' '.c-no0 .img_link' 4000 ========================================= */ MAVJS.slideImg = function(target,slideImg,time){ var $imgLink = $(slideImg); var pos = 0; var length = $imgLink.length; var timer = null; if (time === undefined) { var time = 4000; //0ã«ã™ã‚‹ã¨è‡ªå‹•é€ã‚Šåœæ¢ } function setNext() { if(time > 0) { if(timer) { clearTimeout(timer); } timer = setTimeout(function() { timer = null; pos++; if(pos >= length) { pos = 0; } $imgLink.eq(pos).trigger('click'); setNext(); }, time); } } $imgLink.each(function(index,element) { $(target).append('<img src="'+$(this).attr('href')+'" class="prev_img" id="prev_img'+index+'" />'); $(this).attr('id', 'gallery_link'+(index+1)); if(index > 0) { $('#prev_img'+index).css({'opacity': 0, 'position':'absolute'}); $(this).addClass('gallery_link gallery_link_off'); } else { $('#prev_img'+index).css({'position':'absolute'}); $(this).addClass('gallery_link gallery_link_on'); } $(this).on('click', function() { $('.gallery_link').not(this).removeClass('gallery_link_on').addClass('gallery_link_off'); $(this).removeClass('gallery_link_off').addClass('gallery_link_on'); for(var i=0; i<length; i++) { if(i===index) { $('#prev_img'+i).stop().animate({'opacity': 1}, 500); } else { $('#prev_img'+i).stop().animate({'opacity': 0}, 500); } } pos = index; setNext(); return false; }); }); setNext(); } /* ========================================== * è¡¨ç¤ºé ˜åŸŸã«å…¥ã£ãŸã‚‰ã‚¯ãƒ©ã‚¹è¿½åŠ ========================================== */ MAVJS.addClassWhenVisible = function(target, className, offset, remove){ var scrollTop = $(window).scrollTop(), scrollBtm = scrollTop + $(window).height(); $(window).on('load scroll resize', function() { $(target).each(function(){ var _this = $(this), targetTop = _this.offset().top, targetBtm = targetTop + _this.height(); if (scrollBtm > targetTop + offset && scrollTop < targetBtm) { _this.addClass(className); } else { if ( remove ) { _this.removeClass(className); } } }); }); } /* ========================================== * å³ã‚¯ãƒªãƒƒã‚¯ç¦æ¢ ========================================== */ MAVJS.noRightClick = function(target){ $(target).on('contextmenu',function(e){ return false; }); } /* ========================================== * ã‚³ãƒ”ãƒ¼ç¦æ¢ ========================================== */ MAVJS.noCopy = function(target){ $(target).on('copy',function(e){ return false; }); } /* ========================================== * ãƒ‰ãƒ©ãƒƒã‚°ç¦æ¢ ========================================== */ MAVJS.noDrag = function(target){ $(target).on('mousedown mouseup',function(e){ return false; }); }