google.charts.load('current', {'packages':['table']}); var system_cookie="viviendo_fingerprint" var finger_print = ""; var cookie_day = 3; var finger_print_components = []; var base_url = "https://www.interior-classica.com/viviendo"; var show_estimate_list = []; var customer_product_add = (callbackFunction) =>{ $.ajax({ type : "POST", url : "./ra/add_customer_product_element_e/", data : { e_element_id : e_element_id, finger_print:finger_print, token:document.getElementById("token").value }, dataType : "json", cache : false, success : function(data) { callbackFunction(data); }, error : function(XMLHttpRequest, textStatus, errorThrown) { //alert(XMLHttpRequest.status); //alert(errorThrown.message); } }); } var getElement = (callbackFunction)=>{ $.ajax({ type : "GET", url : "./ra/get_element_e/", data : { e_element_id : e_element_id }, dataType : "json", cache : false, success : function(data) { callbackFunction(data); } }); } var setTerminal = (callbackFunction)=>{ setCookie(system_cookie,finger_print,cookie_day); $.ajax({ type : "POST", url : "./ra/set_terminal/", data : { finger_print : finger_print, os:os, terminal_type:terminal_type, browser:userAgent, token:document.getElementById("token").value }, dataType : "json", cache : false, success : function(data) { callbackFunction(data); }, error : function(XMLHttpRequest, textStatus, errorThrown) { document.getElementById("msg_id").innerHTML = "エラーが発生しました。商品の追加に失敗しました。"; } }); } var getTerminal = (callbackFunction)=>{ if(getCookie(system_cookie)==null){ $.ajax({ type : "GET", url : "./ra/get_terminal/", data : { finger_print : finger_print }, dataType : "json", cache : false, success : function(data) { callbackFunction(data); }, error : function(XMLHttpRequest, textStatus, errorThrown) { //alert(XMLHttpRequest.status); //alert(errorThrown.message); } }); }else{ $.ajax({ type : "GET", url : "./ra/get_terminal/", data : { finger_print : getCookie(system_cookie) }, dataType : "json", cache : false, success : function(data) { callbackFunction(data); }, error:function(data) { }, }); } } var access_history = false; var element_mode = false; var terminal_map = {}; var customer_product_history = false; var customer_product = false; var element_map = {}; var settlement_step = ""; var fastFunc = function (){ //一通り取得系 //var class_id = document.getElementById("test_id").innerHTML = document.cookie +"
" +finger_print; //アクセス歴 getTerminal((data) => { for ( var r_key in data["data"]) { var rowMap = data["data"][r_key]; terminal_map = rowMap; access_history = true; for ( var r_key in terminal_map["customer_product"]) { customer_product=true; break; } for ( var r_key in terminal_map["customer_product_history"]) { customer_product_history=true; break; } break; } //elementIDの正当性チェック if(validity_of_id){ getElement((data =>{ if(data["data"]==null){ element_mode = false; }else{ element_map = data["data"]; settlement_step = element_map['settlement_step']; element_mode = true; } action_selection(); })) }else{ action_selection(); } }) } var action_selection = function(){ if(validity_of_id){ if(element_mode){ setTerminal(function(){}); customer_product_add(function(){ location.href='./cart_list.php'; }); }else{ if(customer_product||customer_product_history){ setTerminal(function(){}); location.href='./cart_list.php'; }else{ //location.href='https://www.interior-classica.com'; } } }else{ //クラシカにリダイレクト //location.href='https://www.interior-classica.com'; } } //端末取得 var os=""; var terminal_type=""; var userAgent = ""; if (window.requestIdleCallback) { requestIdleCallback(function () { Fingerprint2.get(function (components) { finger_print = Fingerprint2.x64hash128(components.map(function (pair) { return pair.value }).join(), 31); finger_print_components = components; console.log(components) // an array of components: {key: ..., // value: ...} for ( var r_key in components) { var rowMap = components[r_key]; if(rowMap['key']=="platform"){ os = rowMap['value']; } if(rowMap['key']=="userAgent"){ userAgent = rowMap['value']; } } if(userAgent.indexOf('iPhone') > 0 || userAgent.indexOf('iPod') > 0 || userAgent.indexOf('Android') > 0 && userAgent.indexOf('Mobile') > 0){ terminal_type = 'sp'; }else if(userAgent.indexOf('iPad') > 0 || userAgent.indexOf('Android') > 0){ terminal_type = 'tab'; }else{ terminal_type = 'other'; } fastFunc(); }) }) } else { setTimeout(function () { Fingerprint2.get(function (components) { finger_print = Fingerprint2.x64hash128(components.map(function (pair) { return pair.value }).join(), 31); finger_print_components = components; console.log(components) // an array of components: {key: ..., // value: ...} for ( var r_key in components) { var rowMap = components[r_key]; if(rowMap['key']=="platform"){ os = rowMap['value']; } if(rowMap['key']=="userAgent"){ userAgent = rowMap['value']; } } fastFunc(); }) }, 500) } var getCookie = function( name ){ var result = null; var cookieName = name + '='; var allcookies = document.cookie; var position = allcookies.indexOf( cookieName ); if( position != -1 ) { var startIndex = position + cookieName.length; var endIndex = allcookies.indexOf( ';', startIndex ); if( endIndex == -1 ){ endIndex = allcookies.length; } result = decodeURIComponent( allcookies.substring( startIndex, endIndex ) ); } return result; } var setCookie = function(name,value,day){ var expire = new Date(); expire.setTime( expire.getTime() + 1000 * 3600 * 24 *day); document.cookie = name+'=' + encodeURIComponent( value )+';expires=' + expire.toUTCString(); } function isInteger(x) { return Math.round(x) === x; } function separate(num){ // 文字列にする num = String(num); var len = num.length; // 再帰的に呼び出すよ if(len > 3){ // 前半を引数に再帰呼び出し + 後半3桁 return separate(num.substring(0,len-3))+','+num.substring(len-3); } else { return num; } } function swap(a,x,y){ a[x]=[a[y],a[y]=a[x]][0]; return a; } //読み込み終わったら実行 //google.charts.setOnLoadCallback(fastFunc);