PageSourceSearch

https://www.vilabo.jp/shop/js/futureshop2.js

js vilabo.jp collected 2026-10-08 12:26:11 UTC 7,707 bytes, 320 lines download raw bytes

1var submit=true;
2var _fsSubmitInputElem;
3
4function canSubmit(){
5  if(submit){
6    try {
7      var target = event.target;
8
9      if (target.hasAttribute('name')) {
10        _fsSubmitInputElem = document.createElement('input');
11        _fsSubmitInputElem.type = "hidden";
12        _fsSubmitInputElem.name = target.name;
13        _fsSubmitInputElem.value = (new Date()).getTime();
14
15        target.parentElement.appendChild(_fsSubmitInputElem);
16      }
17    } catch (e) {
18    }
19
20    submit=false;
21    setTimeout('recover()',1000);
22    return true;
23  } else {
24    return false;
25  }
26}
27function orderDecide(){
28  if(submit){
29    document.getElementById('FS2_OrderDecideButton_container').style.display="none";
30    document.getElementById('FS2_OrderProcessingComment_container').style.display="block";
31    submit=false;
32    setTimeout('recover()',30000);
33    return true;
34  } else {
35    return false;
36  }
37}
38
39function recover(button){
40  try {
41    if (_fsSubmitInputElem) {
42      _fsSubmitInputElem.parentElement.removeChild(_fsSubmitInputElem);
43    }
44  } catch (e) {
45  }
46
47  submit=true;
48}
49
50function countUp(obj){
51  if(obj==null)
52    return false;
53
54  if(obj.value == null || obj.value =='' || isNaN(obj.value)){
55    obj.value=1;
56    return false;
57  }
58
59  value=parseInt(obj.value)+1;
60  if(value<=0)
61    value = 1;
62
63  obj.value=value;
64  
65  return false;
66}
67
68function countDown(obj){
69  if(obj==null)
70    return false;
71
72  if(obj.value==null || obj.value =='' || isNaN(obj.value)){
73    obj.value=1;
74    return false;
75  }
76
77  value=parseInt(obj.value)-1;
78  if(value<=0)
79    value = 1;
80
81  obj.value=value;
82  
83  return false;
84}
85
86function fsConvertCharacter(value){
87  var valueArray = value.split(",");
88  var mailaddress="",afterChar="";
89  for(i=0;i<valueArray.length;i++){
90      afterChar=eval(valueArray[i]) + 1;
91      mailaddress +=String.fromCharCode(afterChar);
92  }
93  return mailaddress;
94}
95
96
97//----- write cookie -----
98function fs_write_cookie (key, value, expires, path) {
99    var str = key + "=" + escape(value) + ";";
100    if (expires) {
101        str += "expires=" + expires.toGMTString() + ";";
102    }
103    if (path) {
104        str += "path=" + path + ";";
105    }
106    document.cookie = str;
107}
108
109//----- has cookie -----
110function fs_has_cookie (key) {
111  var cookies = document.cookie + ";";
112  var a_cookies = cookies.split(";");
113  for (var i=0; i<a_cookies.length; i++) {
114    var cookieSet = a_cookies[i];
115    cookieSet = cookieSet.replace(/(^\s+)|(\s+$)/g, "");
116    var a_cookie = cookieSet.split("=");
117    if (a_cookie.length >= 2) {
118      if (key == a_cookie[0]) {
119        return true;
120      }
121    }
122  }
123  return false;
124}
125
126//----- delete cookie -----
127function fs_delete_cookie (key, path) {
128    var str = key + "=;";
129    var expires = new Date();
130    expires.setHours(expires.getHours() - 1);
131    str += "expires=" + expires.toGMTString() + ";";
132    if (path) {
133        str += "path=" + path + ";";
134    }
135    document.cookie = str;
136}
137
138function fs_get_cookie (key) {
139  var a_cookies = document.cookie.split(";");
140  for (var i=0; i<a_cookies.length; i++) {
141    var cookieSet = a_cookies[i];
142    cookieSet = cookieSet.replace(/(^\s+)|(\s+$)/g, "");
143    var a_cookie = cookieSet.split("=");
144    if (a_cookie.length >= 2) {
145      if (key == a_cookie[0]) {
146        return a_cookie[1];
147      }
148    }
149  }
150  return null;
151}
152
153var FS_FORCE_PC_COOKIE = "fs_force_pc_view";
154
155function fs_force_pc_delete () {
156  fs_write_cookie (FS_FORCE_PC_COOKIE, "false", 0, fs_get_shoproot_uri());
157  location.reload(true);
158}
159
160function fs_get_shoproot_uri () {
161    var root = "";
162    var uri = location.pathname;
163    
164    var idx1 = uri.indexOf("/");
165    var idx2 = uri.indexOf("/", idx1+1);
166    var idx3 = uri.indexOf("/", idx2+1);
167    if (idx3 > -1) {
168        root = uri.substring(0, idx3+1);
169    } else {
170        root = uri;
171    }
172    return root;
173}
174
175function checkCheckBoxSelected(name){
176  var array=document.getElementsByName(name);
177  if(array==null){return false;}
178  for (i = 0; i < array.length; i++) {if(array[i].checked){return true;}}
179  return false;
180}
181
182function CMATag(
183  shopKey,
184  memberId,
185  pageKind,
186  categoryUrl,
187  productUrl,
188  isMemberRegistered,
189  acceptNo
190) {
191  document.addEventListener('DOMContentLoaded', function() {
192    createCMATag(
193      shopKey,
194      memberId,
195      pageKind,
196      categoryUrl,
197      productUrl,
198      isMemberRegistered,
199      acceptNo
200    );
201  });
202}
203
204function createCMATag(
205  shopKey,
206  memberId,
207  pageKind,
208  categoryUrl,
209  productUrl,
210  isMemberRegistered,
211  acceptNo
212) {
213  if (createCMATag.alwaysSend === false) {
214    return;
215  }
216
217  var PAGE_KIND_LIST = [
218    'top',
219    'category',
220    'product',
221    'cart',
222    'checkout',
223    'complete',
224  ];
225  var SKIP_PAGE_KIND_LIST = ['cart', 'checkout', 'complete'];
226  var CMA_SESSION_URL_KEY = 'fs_cma';
227  var FS_CMA_COOKIE = '__fs_c_s';
228  var visitedUrlList = [];
229  var url = '';
230  var errorCounter = 0;
231
232  window.CMAdataLayer = window.CMAdataLayer || [];
233  if (isMemberRegistered === false && PAGE_KIND_LIST.indexOf(pageKind) === -1)
234    return;
235
236  if (memberId !== '') {
237    window.CMAdataLayer.push({ fs_member_id: memberId });
238  }
239  if (pageKind !== '') {
240    window.CMAdataLayer.push({ fs_page_kind: pageKind });
241  }
242  if (categoryUrl !== '') {
243    window.CMAdataLayer.push({ fs_category_url: categoryUrl });
244  }
245  if (productUrl !== '') {
246    window.CMAdataLayer.push({ fs_product_url: productUrl });
247  }
248  window.CMAdataLayer.push({ fs_is_member_registered: isMemberRegistered });
249  if (acceptNo !== '') {
250    window.CMAdataLayer.push({ fs_accept_no: acceptNo });
251  }
252
253  if (
254    SKIP_PAGE_KIND_LIST.indexOf(pageKind) > -1 ||
255    createCMATag.alwaysSend === true
256  ) {
257    loadCmaScript();
258  } else {
259    trackCmaData();
260  }
261
262  function trackCmaData() {
263    var cmaTrackingData =
264      window.localStorage.getItem(CMA_SESSION_URL_KEY + '_' + shopKey) || '[]';
265    try {
266      visitedUrlList = JSON.parse(cmaTrackingData);
267    } catch (e) {
268      throw new Error('Failed to JSON.parse from string:' + cmaTrackingData);
269      return;
270    }
271    if (fs_get_cookie(FS_CMA_COOKIE + '_' + shopKey) === null) {
272      visitedUrlList = [];
273    }
274    var expiredTime = new Date();
275    expiredTime.setMinutes(expiredTime.getMinutes() + 30);
276    fs_write_cookie(FS_CMA_COOKIE + '_' + shopKey, '1', expiredTime, false);
277    url = location.pathname;
278    if (visitedUrlList.indexOf(url) > -1) {
279      createCMATag.alwaysSend = false;
280      return;
281    }
282    createCMATag.alwaysSend = true;
283    cacheVisitedUrl();
284  }
285
286  function cacheVisitedUrl() {
287    try {
288      var _visitedUrlList = JSON.parse(JSON.stringify(visitedUrlList));
289      _visitedUrlList.push(url);
290      window.localStorage.setItem(
291        CMA_SESSION_URL_KEY + '_' + shopKey,
292        JSON.stringify(_visitedUrlList)
293      );
294      loadCmaScript(shopKey);
295    } catch (e) {
296      errorCounter++;
297      if (errorCounter < 10) {
298        visitedUrlList.shift();
299        cacheVisitedUrl(visitedUrlList, url, shopKey, errorCounter);
300      } else {
301        loadCmaScript(shopKey);
302      }
303    }
304  }
305
306  function loadCmaScript() {
307    if (shopKey !== '') {
308      var scriptUrl = '/fs/tm.js?shopkey=' + shopKey + '&' + Date.now();
309      var script = document.createElement('script');
310      script.src = scriptUrl;
311      document.body.appendChild(script);
312    }
313  }
314}
315
316createCMATag.alwaysSend = null;
317
318if (typeof module !== 'undefined') {
319  module.exports = { createCMATag: createCMATag };
320}

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.