/* 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('