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, '$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('