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 total_amount_excluding_tax = 0; var total_consumption_tax = 0; var total_amount_of_money = 0; var total_measurement = 0; var amount_err = false; var change_size = (id,value) =>{ let size_id = ""; let size_value = document.getElementById("size_select_"+id).value; let type_value = document.getElementById("type_select_"+id).value; let tree_species_value = document.getElementById("tree_species_select_"+id).value; let other_value = document.getElementById("other_select_"+id).value; let other2_value = document.getElementById("other2_select_"+id).value; for ( var r_key in customer_product_list) { var rowMap = customer_product_list[r_key]; if(rowMap['id']==id){ for ( var rs_key in rowMap['size_map']) { var size_rowMap = rowMap['size_map'][rs_key]; if(size_rowMap['size_note']==size_value &&size_rowMap['type_note']==type_value &&size_rowMap['tree_species']==tree_species_value &&size_rowMap['other_note']==other_value &&size_rowMap['other_note2']==other2_value){ size_id = size_rowMap['id']; } } } } $.ajax({ type : "PUT", url : "./ra/update_size/", data : { finger_print : finger_print, cpid : id, size_id : size_id, token:document.getElementById("token").value }, dataType : "json", cache : false, success : function(data) { fastFunc(); }, error : function(XMLHttpRequest, textStatus, errorThrown) { document.getElementById("msg_id").innerHTML = "エラーが発生しました。サイズの切り替えに失敗しました。"; } }); } var change_quantity = (id,value) =>{ $.ajax({ type : "PUT", url : "./ra/update_quantity/", data : { finger_print : finger_print, cpid : id, quantity : value, token:document.getElementById("token").value }, dataType : "json", cache : false, success : function(data) { fastFunc(); }, error : function(XMLHttpRequest, textStatus, errorThrown) { document.getElementById("msg_id").innerHTML = "エラーが発生しました。サイズの切り替えに失敗しました。"; } }); } var customer_product_show = () =>{ var row_element = document.getElementById("row_id"); var total_element = document.getElementById("total_id"); row_element.innerHTML = ""; total_element.innerHTML = ""; var total_delivery_fee = 0; var total_measurement = 0; for ( var r_key in customer_product_list) { var rowMap = customer_product_list[r_key]; var productdisply_element = document.createElement('div'); productdisply_element.setAttribute('class', 'productdisply'); var productttle_element = document.createElement('div'); productttle_element.setAttribute('class', 'productttle'); productttle_element.innerHTML = rowMap['product_name']; productdisply_element.appendChild(productttle_element); if(rowMap['img_real_path_map'].length == 1){ var img_element = document.createElement('img'); img_element.setAttribute('class', 'img-fluid'); img_element.setAttribute('src', base_url+rowMap['img_real_path']); img_element.setAttribute('alt', ''); if(rowMap['img_real_path']==""){ }else{ productdisply_element.appendChild(img_element); } }else if(rowMap['img_real_path_map'].length > 1){ var carousel_div_element = document.createElement('div'); carousel_div_element.setAttribute('class', 'carousel slide'); carousel_div_element.setAttribute('id', 'carouselControls'+rowMap['id']); carousel_div_element.setAttribute('data-ride', 'carousel'); carousel_div_element.setAttribute('data-interval', false); var carousel_inner_div_element = document.createElement('div'); carousel_inner_div_element.setAttribute('class', 'carousel-inner'); for ( var irp_key in rowMap['img_real_path_map']) { let irp_map = rowMap['img_real_path_map'][irp_key]; var carousel_item_div_element = document.createElement('div'); if(irp_key==0){ carousel_item_div_element.setAttribute('class', 'carousel-item active'); }else{ carousel_item_div_element.setAttribute('class', 'carousel-item'); } var carousel_item_img_element = document.createElement('img'); carousel_item_img_element.setAttribute('class', 'img-fluid'); carousel_item_img_element.setAttribute('src', base_url+irp_map['real_path']); carousel_item_div_element.appendChild(carousel_item_img_element); carousel_inner_div_element.appendChild(carousel_item_div_element); } carousel_div_element.appendChild(carousel_inner_div_element); var carousel_control_prev_a_element = document.createElement('a'); carousel_control_prev_a_element.setAttribute('class', 'carousel-control-prev bg-light '); carousel_control_prev_a_element.setAttribute('href', '#carouselControls'+rowMap['id']); carousel_control_prev_a_element.setAttribute('role', 'button'); carousel_control_prev_a_element.setAttribute('data-slide', 'prev'); var carousel_control_prev_icon_span_element = document.createElement('span'); carousel_control_prev_icon_span_element.setAttribute('class', 'carousel-control-prev-icon'); carousel_control_prev_icon_span_element.setAttribute('aria-hidden', 'true'); carousel_control_prev_a_element.appendChild(carousel_control_prev_icon_span_element); var sr_only_prev_icon_span_element = document.createElement('span'); sr_only_prev_icon_span_element.setAttribute('class', 'sr-only'); sr_only_prev_icon_span_element.innerHTML = "Previous"; carousel_control_prev_a_element.appendChild(sr_only_prev_icon_span_element); carousel_div_element.appendChild(carousel_control_prev_a_element); var carousel_control_next_a_element = document.createElement('a'); carousel_control_next_a_element.setAttribute('class', 'carousel-control-next bg-light '); carousel_control_next_a_element.setAttribute('href', '#carouselControls'+rowMap['id']); carousel_control_next_a_element.setAttribute('role', 'button'); carousel_control_next_a_element.setAttribute('data-slide', 'next'); var carousel_control_next_icon_span_element = document.createElement('span'); carousel_control_next_icon_span_element.setAttribute('class', 'carousel-control-next-icon'); carousel_control_next_icon_span_element.setAttribute('aria-hidden', 'true'); carousel_control_next_a_element.appendChild(carousel_control_next_icon_span_element); var sr_only_next_icon_span_element = document.createElement('span'); sr_only_next_icon_span_element.setAttribute('class', 'sr-only'); sr_only_next_icon_span_element.innerHTML = "Next"; carousel_control_next_a_element.appendChild(sr_only_next_icon_span_element); carousel_div_element.appendChild(carousel_control_next_a_element); productdisply_element.appendChild(carousel_div_element); } let size_set = new Set([]); let type_set = new Set([]); let tree_species_set = new Set([]); let other_set = new Set([]); let other2_set = new Set([]); let size_select = ""; let type_select = ""; let tree_species_select = ""; let other_select = ""; let other2_select = ""; let amount_select = ""; for ( var rs_key in rowMap['size_map']) { var size_rowMap = rowMap['size_map'][rs_key]; if(size_rowMap['id']==rowMap['size']){ size_select = size_rowMap['size_note']; type_select = size_rowMap['type_note']; tree_species_select = size_rowMap['tree_species']; other_select = size_rowMap['other_note']; other2_select = size_rowMap['other_note2']; amount_select = size_rowMap['amount']; } size_set.add(size_rowMap['size_note']); type_set.add(size_rowMap['type_note']); tree_species_set.add(size_rowMap['tree_species']); other_set.add(size_rowMap['other_note']); other2_set.add(size_rowMap['other_note2']); } //var option_val = size_rowMap["size_note"]+' '+size_rowMap["type_note"]+' '+size_rowMap["tree_species"]+' '+size_rowMap["other_note"]+' '+size_rowMap["other_note2"]; if(!(size_set.size==1&&size_set.has(""))){ var p_element = document.createElement('p'); p_element.setAttribute('class', 'qty'); var span_element = document.createElement('span'); span_element.innerHTML = "サイズ"; p_element.appendChild(span_element); var size_select_element = document.createElement('select'); size_select_element.setAttribute('id', 'size_select_'+rowMap['id']); size_select_element.setAttribute('onchange', 'change_size('+rowMap['id']+',this.value);'); size_set.forEach(function (size_select_item) { var size_select_option = document.createElement('option'); var option_val = size_select_item; size_select_option.setAttribute('value', option_val); if(option_val==size_select){size_select_option.setAttribute('selected', 'selected');} size_select_option.innerHTML = option_val; size_select_element.appendChild(size_select_option); }); p_element.appendChild(size_select_element); productdisply_element.appendChild(p_element); }else{ var size_select_element = document.createElement('input'); size_select_element.setAttribute('id', 'size_select_'+rowMap['id']); size_select_element.setAttribute('type', 'hidden'); size_select_element.setAttribute('value', ""); productdisply_element.appendChild(size_select_element); } if(!(type_set.size==1&&type_set.has(""))){ var p_element = document.createElement('p'); p_element.setAttribute('class', 'qty'); var span_element = document.createElement('span'); span_element.innerHTML = "種類"; p_element.appendChild(span_element); var type_select_element = document.createElement('select'); type_select_element.setAttribute('id', 'type_select_'+rowMap['id']); type_select_element.setAttribute('onchange', 'change_size('+rowMap['id']+',this.value);'); type_set.forEach(function (type_select_item) { var type_select_option = document.createElement('option'); var option_val = type_select_item; type_select_option.setAttribute('value', option_val); if(option_val==type_select){type_select_option.setAttribute('selected', 'selected');} type_select_option.innerHTML = option_val; type_select_element.appendChild(type_select_option); }); p_element.appendChild(type_select_element); productdisply_element.appendChild(p_element); }else{ var type_select_element = document.createElement('input'); type_select_element.setAttribute('id', 'type_select_'+rowMap['id']); type_select_element.setAttribute('type', 'hidden'); type_select_element.setAttribute('value', ""); productdisply_element.appendChild(type_select_element); } if(!(tree_species_set.size==1&&tree_species_set.has(""))){ var p_element = document.createElement('p'); p_element.setAttribute('class', 'qty'); var span_element = document.createElement('span'); span_element.innerHTML = "樹種"; p_element.appendChild(span_element); var tree_species_select_element = document.createElement('select'); tree_species_select_element.setAttribute('id', 'tree_species_select_'+rowMap['id']); tree_species_select_element.setAttribute('onchange', 'change_size('+rowMap['id']+',this.value);'); tree_species_set.forEach(function (tree_species_select_item) { var tree_species_select_option = document.createElement('option'); var option_val = tree_species_select_item; tree_species_select_option.setAttribute('value', option_val); if(option_val==tree_species_select){tree_species_select_option.setAttribute('selected', 'selected');} tree_species_select_option.innerHTML = option_val; tree_species_select_element.appendChild(tree_species_select_option); }); p_element.appendChild(tree_species_select_element); productdisply_element.appendChild(p_element); }else{ var tree_species_select_element = document.createElement('input'); tree_species_select_element.setAttribute('id', 'tree_species_select_'+rowMap['id']); tree_species_select_element.setAttribute('type', 'hidden'); tree_species_select_element.setAttribute('value', ""); productdisply_element.appendChild(tree_species_select_element); } if(!(other_set.size==1&&other_set.has(""))){ var p_element = document.createElement('p'); p_element.setAttribute('class', 'qty'); var span_element = document.createElement('span'); span_element.innerHTML = "その他1"; p_element.appendChild(span_element); var other_select_element = document.createElement('select'); other_select_element.setAttribute('id', 'other_select_'+rowMap['id']); other_select_element.setAttribute('onchange', 'change_size('+rowMap['id']+',this.value);'); other_set.forEach(function (other_select_item) { var other_select_option = document.createElement('option'); var option_val = other_select_item; other_select_option.setAttribute('value', option_val); if(option_val==other_select){other_select_option.setAttribute('selected', 'selected');} other_select_option.innerHTML = option_val; other_select_element.appendChild(other_select_option); }); p_element.appendChild(other_select_element); productdisply_element.appendChild(p_element); }else{ var other_select_element = document.createElement('input'); other_select_element.setAttribute('id', 'other_select_'+rowMap['id']); other_select_element.setAttribute('type', 'hidden'); other_select_element.setAttribute('value', ""); productdisply_element.appendChild(other_select_element); } if(!(other2_set.size==1&&other2_set.has(""))){ var p_element = document.createElement('p'); p_element.setAttribute('class', 'qty'); var span_element = document.createElement('span'); span_element.innerHTML = "その他2"; p_element.appendChild(span_element); var other2_select_element = document.createElement('select'); other2_select_element.setAttribute('id', 'other2_select_'+rowMap['id']); other2_select_element.setAttribute('onchange', 'change_size('+rowMap['id']+',this.value);'); other2_set.forEach(function (other2_select_item) { var other2_select_option = document.createElement('option'); var option_val = other2_select_item; other2_select_option.setAttribute('value', option_val); if(option_val==other2_select){other2_select_option.setAttribute('selected', 'selected');} other2_select_option.innerHTML = option_val; other2_select_element.appendChild(other2_select_option); }); p_element.appendChild(other2_select_element); productdisply_element.appendChild(p_element); }else{ var other2_select_element = document.createElement('input'); other2_select_element.setAttribute('id', 'other2_select_'+rowMap['id']); other2_select_element.setAttribute('type', 'hidden'); other2_select_element.setAttribute('value', ""); productdisply_element.appendChild(other2_select_element); } if(rowMap["campaign_flag"]=="discount"){ p_element = document.createElement('p'); p_element.setAttribute('class', 'qty'); span_element = document.createElement('span'); span_element.setAttribute('class', "text-danger"); span_element.innerHTML = rowMap["campaign_wording"]; p_element.appendChild(span_element); productdisply_element.appendChild(p_element); } if(rowMap["shipping_flag"]=="free"){ p_element = document.createElement('p'); p_element.setAttribute('class', 'qty'); span_element = document.createElement('span'); span_element.setAttribute('class', "text-danger"); span_element.innerHTML = "配送料無料!"; p_element.appendChild(span_element); productdisply_element.appendChild(p_element); } p_element = document.createElement('p'); p_element.setAttribute('class', 'qty'); var span_element = document.createElement('span'); span_element.innerHTML = "単価:¥"+separate(amount_select); p_element.appendChild(span_element); productdisply_element.appendChild(p_element); if(rowMap["campaign_flag"]=="discount"){ p_element = document.createElement('p'); p_element.setAttribute('class', 'qty'); span_element = document.createElement('span'); span_element.setAttribute('class', "text-danger"); span_element.innerHTML = "▲¥"+rowMap["campaign_discount_money"]; p_element.appendChild(span_element); productdisply_element.appendChild(p_element); } p_element = document.createElement('p'); p_element.setAttribute('class', 'qty'); var span_element = document.createElement('span'); span_element.innerHTML = "数量を選択"; p_element.appendChild(span_element); var qtystyle_element = document.createElement('select'); qtystyle_element.setAttribute('class', 'qtystyle'); qtystyle_element.setAttribute('onchange', 'change_quantity('+rowMap['id']+',this.value);'); qtystyle_element.setAttribute('id', 'select_quantity_'+rowMap['id']); for(var i = 0;i<10;i++){ var option_element = document.createElement('option'); option_element.setAttribute('value',i); if(rowMap['quantity']==i){ option_element.setAttribute('selected', 'selected'); } option_element.innerHTML = i; qtystyle_element.appendChild(option_element); } p_element.appendChild(qtystyle_element); productdisply_element.appendChild(p_element); //カート削除 var reject_button_element = document.createElement('button'); reject_button_element.setAttribute('class', 'btn btn-sm mt-2'); reject_button_element.setAttribute('type', 'button'); reject_button_element.setAttribute('onclick', "location.href = './ec_reject_element.php?target_ele="+rowMap['id']+"'"); reject_button_element.innerHTML = "この商品をリストから外す"; productdisply_element.appendChild(reject_button_element); p_element = document.createElement('p'); p_element.setAttribute('class', 'productprice'); qtystyle_element.setAttribute('id', 'productprice_'+rowMap['id']); /* if(rowMap['amount_of_money']>=0){ p_element.innerHTML = "¥"+separate(rowMap['amount_of_money'])+"(税込)"; }else{ p_element.innerHTML = "¥"+separate(rowMap['amount_of_money'])+""; } */ productdisply_element.appendChild(p_element); row_element.appendChild(productdisply_element); } /* */ var totalprice_element = document.createElement('div'); totalprice_element.setAttribute('class', 'totalprice'); var tableprice_element = document.createElement('table'); tableprice_element.setAttribute('class', 'tableprice'); var tbody_element = document.createElement('tbody'); if(total_campaign_discount_money == 0){ var tr_element = document.createElement('tr'); var left_td_element = document.createElement('td'); left_td_element.setAttribute('class', 'text-left'); left_td_element.innerHTML = "商品の合計金額"; tr_element.appendChild(left_td_element); var right_td_element = document.createElement('td'); right_td_element.setAttribute('class', 'text-right'); right_td_element.innerHTML = "¥"+separate(total_amount_excluding_tax); tr_element.appendChild(right_td_element); tbody_element.appendChild(tr_element); }else{ var tr_element = document.createElement('tr'); var left_td_element = document.createElement('td'); left_td_element.setAttribute('class', 'text-left'); left_td_element.innerHTML = "商品の合計金額"; tr_element.appendChild(left_td_element); var right_td_element = document.createElement('td'); right_td_element.setAttribute('class', 'text-right'); right_td_element.innerHTML = "¥"+separate(total_amount_excluding_tax + total_campaign_discount_money); tr_element.appendChild(right_td_element); tbody_element.appendChild(tr_element); var tr_element = document.createElement('tr'); var left_td_element = document.createElement('td'); left_td_element.setAttribute('class', 'text-left text-danger'); left_td_element.innerHTML = "その他"; tr_element.appendChild(left_td_element); var right_td_element = document.createElement('td'); right_td_element.setAttribute('class', 'text-right text-danger'); right_td_element.innerHTML = "▲¥"+separate(total_campaign_discount_money); tr_element.appendChild(right_td_element); tbody_element.appendChild(tr_element); } var tr_element = document.createElement('tr'); var left_td_element = document.createElement('td'); left_td_element.setAttribute('class', 'text-left'); left_td_element.innerHTML = "配送料"; tr_element.appendChild(left_td_element); var right_td_element = document.createElement('td'); right_td_element.setAttribute('class', 'text-right'); right_td_element.innerHTML = "¥"+separate(total_measurement_amount_excluding_tax); tr_element.appendChild(right_td_element); tbody_element.appendChild(tr_element); tr_element = document.createElement('tr'); var left_td_element = document.createElement('td'); left_td_element.setAttribute('class', 'text-left'); left_td_element.innerHTML = "消費税"; tr_element.appendChild(left_td_element); var right_td_element = document.createElement('td'); right_td_element.setAttribute('class', 'text-right'); right_td_element.innerHTML = "¥"+separate(total_consumption_tax); tr_element.appendChild(right_td_element); tbody_element.appendChild(tr_element); tr_element = document.createElement('tr'); var left_td_element = document.createElement('td'); left_td_element.setAttribute('class', 'text-left'); left_td_element.innerHTML = "ご請求額"; tr_element.appendChild(left_td_element); var right_td_element = document.createElement('td'); right_td_element.setAttribute('class', 'text-right text-danger'); right_td_element.innerHTML = "¥"+separate(total_amount_of_money); tr_element.appendChild(right_td_element); tbody_element.appendChild(tr_element); tbody_element.appendChild(tr_element); tableprice_element.appendChild(tbody_element); totalprice_element.appendChild(tableprice_element); if(total_amount_of_money == 0){ }else{ var button_element = document.createElement('button'); button_element.setAttribute('class', 'btn btn-lg btncontinue'); button_element.setAttribute('type', 'button'); button_element.setAttribute('onclick', "location.href = './cp_addressee_input.php'"); button_element.innerHTML = "ご購入手続き"; totalprice_element.appendChild(button_element); } total_element.appendChild(totalprice_element); } var customer_product_add = () =>{ $.ajax({ type : "POST", url : "./ra/add_customer_product_element_e/", data : { e_element_id : e_element_id, finger_print:finger_print }, dataType : "json", cache : false, success : function(data) { callbackFunction(data); }, error : function(XMLHttpRequest, textStatus, errorThrown) { //alert(XMLHttpRequest.status); //alert(errorThrown.message); } }); } 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_size/", 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_size/", 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 customer_product_history_list = false; var customer_product_list = false; var element_map = {}; var total_amount_of_money = 0; var total_amount_excluding_tax = 0; var total_consumption_tax = 0; var total_measurement_amount_excluding_tax = 0; var total_campaign_discount_money = 0; var settlement_step = ""; var fastFunc = function (){ //一通り取得系 //var class_id = document.getElementById("test_id").innerHTML = document.cookie +"
" +finger_print; //アクセス歴 getTerminal((data) => { terminal_map = data["data"]; total_amount_of_money = data["total_amount_of_money"]; total_amount_excluding_tax = data["total_amount_excluding_tax"]; total_consumption_tax = data["total_consumption_tax"]; total_measurement_amount_excluding_tax = data["total_measurement_amount_excluding_tax"]; total_campaign_discount_money = data["total_campaign_discount_money"]; access_history = true; customer_product_list = terminal_map["customer_product"]; for ( var r_key in terminal_map["customer_product"]) { customer_product=true; break; } customer_product_history_list = terminal_map["customer_product"]; for ( var r_key in terminal_map["customer_product_history"]) { customer_product_history=true; break; } action_selection(); }) } var action_selection = function(){ if(customer_product||customer_product_history){ setTerminal(function(){}); customer_product_show(); }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);