/* mav.js v2.0.6 / 2019-11-14 | by yuya harata */ 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; }); } /* ========================================== * Cookieの設定 * Cookie名, Cookieの値, Cookieの有効日数 ========================================== */ MAVJS.setCookie = function(c_name, value, expiredays) { var path = location.pathname; var paths = new Array(); paths = path.split("/"); if (paths[paths.length - 1] != "") { paths[paths.length - 1] = ""; path = paths.join("/"); } var extime = new Date().getTime(); var cltime = new Date(extime + (60 * 60 * 24 * 1000 * expiredays)); var exdate = cltime.toUTCString(); var s = ""; s += c_name + "=" + escape(value); s += "; path=" + path; if (expiredays) { s += "; expires=" + exdate + "; "; } else { s += "; "; } document.cookie = s; } /* ========================================== * Cookieの取得 * Cookie名, Cookieの値, Cookieの有効日数 ========================================== */ MAVJS.getCookie = function(c_name) { var st = ""; var ed = ""; if (document.cookie.length > 0) { st = document.cookie.indexOf(c_name + "="); if (st != -1) { st = st + c_name.length + 1; ed = document.cookie.indexOf(";", st); if (ed == -1) ed = document.cookie.length; return unescape(document.cookie.substring(st, ed)); } } return ""; } /* ========================================== * ユーザーエージェント ========================================== */ MAVJS.addUserAgent = function() { window.UA = {}; var $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('edg') > -1), Chrome: (ua.indexOf('chrome') > -1) && (ua.indexOf('edg') == -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() { var 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() { var thisHTML = $(this).html(); if ( thisHTML.match(/<\/a>/g) ) { return; } $(this).html(thisHTML.replace(/((http|https):\/\/[\w?=&.\/-;#~%-]+(?![\w\s?&.\/;#~%"=-]*>))/g, '$1')); }); } /* ======================================== 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(''); } /* ========================================== * スムーススクロール ========================================== */ MAVJS.smoothScroll = function(offsetY, time, easing, scrollLink) { if (typeof offsetY === "undefined") { var offsetY = -50; } if (typeof time === "undefined") { var time = 1000; } if (typeof easing === "undefined") { var easing = "easeInOutQuint"; } if (typeof scrollLink === "undefined") { var scrollLink = 'a[href^="#"],a[href^="index.php#"]'; } var scrollLink = $(scrollLink), 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 = ""; } var title = encodeURIComponent(decodeURIComponent( document.title )).replace(/&/g, "%26").replace(/#/g,"%23"), hashtag = encodeURI(decodeURI( hashtag )).replace(/#/g,""), url = location.href.split("#"), $shareTwitter = $('.js-share--twitter'), $shareFacebook = $('.js-share--facebook'), $shareLine = $('.js-share--line'), twitterHref = 'https://twitter.com/intent/tweet?text=' + title + '%0D%0A' + '&url=' + url[0] + '&hashtags=' + hashtag + '&related=' + related, facebookHref = 'http://www.facebook.com/sharer.php?u=' + url[0], lineHref = 'https://social-plugins.line.me/lineit/share?url=' + url[0] + '&text=' + title; function newShareWindow() { var 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('