/* mav.js v2.0.1 / 2019-06-06 | by yharata © maverica corporation. */ 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('