var default_data = { tracking_code:null, access_data:{ page_category_list:[] }, line_user_id:null }; window.score_data = merge(default_data, window.score_data); window.score_data.common_function = { call_score: function(type, func) { window.score_data = window.score_data || {}; if (!window.score_data.tracking_lock) { window.score_data.tracking_lock = type; if (document.readyState !== "loading") { setTimeout(func); } else { var complete_event = function() { document.removeEventListener("DOMContentLoaded", complete_event); window.removeEventListener("load", complete_event); func(); }; document.addEventListener("DOMContentLoaded", complete_event); window.addEventListener("load", complete_event); } return; } setTimeout(function(){ window.score_data.common_function.call_score(type, func); }, 50); }, release_lock: function(){ window.score_data.tracking_lock = null; }, set_tracking_code: function(tracking_code){ window.score_data.tracking_code = tracking_code; }, enableScriptTag: function(element) { var script_list = element.getElementsByTagName("script"); for (i = 0; i < script_list.length; i++) { var new_script_tag = document.createElement('script'); new_script_tag.textContent = script_list[i].textContent; document.body.appendChild(new_script_tag); } } }; function get_cookie_array() { var cookie_array = new Array(); if(document.cookie != ""){ var tmp = document.cookie.split(";"); for(var i = 0; i < tmp.length; i++){ var data = tmp[i].split("="); if (data[0].trim() != "u_code") { continue; } cookie_array[data[0]] = decodeURIComponent(data[1]); } } return cookie_array; } function get_cookie_by_key(key) { var cookie_array = get_cookie_array(); return cookie_array[key]; } function set_cookie(key, value, path, expire) { if(!path){ path = "/"; } if(!expire){ expire = 60*60*24*365; } document.cookie = key + "=" + encodeURIComponent(value) + "; path=" + path + "; SameSite=None; Secure; max-age=" + expire; } function get_tracking_code() { var tracking_code = get_cookie_by_key("u_code"); if(tracking_code){ return tracking_code; } return window.score_data.set_tracking_code; } function set_tracking_code(tracking_code) { set_cookie("u_code", tracking_code); var tracking_code_in_cookie = get_cookie_by_key("u_code"); if(!tracking_code_in_cookie){ window.score_data.set_tracking_code = tracking_code; } } function merge() { var args = Array.prototype.slice.call(arguments); var len = args.length; var ret = {}; var itm; for (var i = 0; i < len ; i++) { var arg = args[i]; for (itm in arg) { if (arg.hasOwnProperty(itm)) { ret[itm] = arg[itm]; } } } return ret; } (function(){ var id = null; var referer = document.referrer; var page_title = document.title; function send_data(callback, is_keep) { var xhr = new XMLHttpRequest(); xhr.open("POST", "https://score.teikokushoin.co.jp/tracking/", true); xhr.onload = function (e) { if (xhr.readyState === 4) { if (xhr.status == 200 || xhr.status == 304) { var result = JSON.parse(xhr.responseText); if (result.success) { set_tracking_code(result.u_code); if (!is_keep) { window.score_data.common_function.release_lock(); } id = result.id; if (callback) { callback(); } } // Todo リトライ処理とか? } else { console.error(xhr.statusText); } } }; xhr.withCredentials = true; xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); var param = []; param.push("url=" + encodeURIComponent(location.href)); if (id) { param.push("id=" + id); } if (referer) { param.push("referer=" + encodeURIComponent(referer)); } var tracking_code = get_tracking_code(); if (tracking_code) { param.push("u_code=" + tracking_code); } if (page_title) { param.push("page_title=" + page_title); } // ページカテゴリ var page_category_list = window.score_data.access_data.page_category_list; if (page_category_list) { for (var i in page_category_list) { param.push("page_category_list[]=" + encodeURIComponent(page_category_list[i])); } } // LINE ユーザ ID if (0) { var line_user_id = window.score_data.line_user_id; if (line_user_id) { param.push("line_user_id=" + line_user_id); } } xhr.send(param.join("&").replace(/%20/g, '+')); } function re_send_data() { send_data(function(){ setTimeout(re_send_data, 5000); }, true); } window.score_data.common_function.call_score("tracking", function(){ send_data(function(){ setTimeout(re_send_data, 5000); }); document.addEventListener("click", function(e){ var target = e.target; if (target.getAttribute("data-score-download")) { e.preventDefault(); e.stopPropagation(); var href = target.getAttribute("href"); var tab_target = target.getAttribute("target"); var w; if (tab_target == "_blank") { var w = window.open('', '_blank'); } var xhr = new XMLHttpRequest(); xhr.open("POST", "https://score.teikokushoin.co.jp/download/save_download_log", true); xhr.onload = function (e) { if (xhr.readyState === 4) { if (tab_target == "_blank") { w.location.href = href; } else { location.href = href; } } }; xhr.withCredentials = true; xhr.setRequestHeader("content-type", "application/x-www-form-urlencoded;charset=UTF-8"); var param = []; var tracking_code = get_tracking_code(); if (tracking_code) { param.push("u_code=" + tracking_code); } var url = target.getAttribute("href"); if (url) { param.push("url=" + url); } param.push("page_type=3"); xhr.send(param.join("&").replace(/%20/g, '+')); return false; } }); }); })();