1var ecblib = ecblib || {}; 2ecblib.staffstart = ecblib.staffstart || {}; 3 4(function() { 5 'use strict'; 6 const _staffstart = ecblib.staffstart; 7 const maxCount = 120; 8 9 _staffstart.util = { 10 ajaxGet: function(url, params, successFunc, errorFunc) { 11 12 try { 13 if(params['ajax_stop']) { return; } 14 Object.keys(params).forEach(function(i) { if(!params[i]) delete params[i]}); 15 16 params.merchant_id = params.merchant_id || ecblib.staffstart.api.merchantId; 17 18 const xhr = new XMLHttpRequest(); 19 20 let queryStringArray = []; 21 let count = 0; 22 let offset = 0; 23 let id_name = ''; 24 let id_arr = []; 25 Object.keys(params).forEach( 26 function(i) { 27 if(params[i] === false || params[i] === 0 || params[i]) { 28 if(i == ecblib.staffstart.master.user.size.id){ 29 queryStringArray.push(encodeURI('user_attributes[][slug]=' + ecblib.staffstart.master.user.size.id + '&user_attributes[][value]=' + params[i])); 30 }else if(i == ecblib.staffstart.master.user.feature.id){ 31 queryStringArray.push(encodeURI('user_attributes[][slug]=' + ecblib.staffstart.master.user.feature.id + '&user_attributes[][value]=' + params[i])); 32 }else if(i == ecblib.staffstart.master.user.qualification_1.id){ 33 queryStringArray.push(encodeURI('user_attributes[][slug]=' + ecblib.staffstart.master.user.qualification_1.id + '&user_attributes[][value]=' + params[i])); 34 }else if(i == ecblib.staffstart.master.user.qualification_2.id){ 35 queryStringArray.push(encodeURI('user_attributes[][slug]=' + ecblib.staffstart.master.user.qualification_2.id + '&user_attributes[][value]=' + params[i])); 36 }else if(i == 'count'){ 37 count = params[i]; 38 queryStringArray.push(i + '=' + encodeURI(params[i])); 39 }else if(i == 'offset'){ 40 offset = params[i]; 41 queryStringArray.push(i + '=' + encodeURI(params[i])); 42 }else if(i == 'base_product_code'){ 43 if(params[i].endsWith('_S')){ 44 queryStringArray.push(i + '=' + encodeURI(params[i]) + ',' + encodeURI(params[i].replace('_S', ''))); 45 }else{ 46 queryStringArray.push(i + '=' + encodeURI(params[i]) + ',' + encodeURI(params[i] + '_S')); 47 } 48 }else if(i == 'product_code_array'){ 49 var arr = params[i].split(','); 50 var product_code_str = '' 51 arr.forEach((code) => product_code_str += ',' + encodeURI(code)); 52 queryStringArray.push('product_code=' + product_code_str.slice(1)); 53 }else if(i == 'cid_array'){ 54 id_name = 'cid'; 55 id_arr = params[i].map(item => item.cid); 56 }else if(i == 'article_id_array'){ 57 id_name = 'article_id'; 58 id_arr = params[i].map(item => item.article_id); 59 }else if(i == 'user_id_array'){ 60 id_name = 'user_id'; 61 id_arr = params[i].map(item => item.user_id); 62 }else{ 63 queryStringArray.push(i + '=' + encodeURI(params[i])); 64 } 65 } 66 } 67 ); 68 69 var result = { item: [], total: 0 }; 70 execXhr(xhr, url, queryStringArray, successFunc, errorFunc, count, offset, result, id_name, id_arr); 71 72 } catch (err) { 73 if(errorFunc) { 74 errorFunc(err.message); 75 } 76 if(ecblib.staffstart.api.debug) { 77 console.error('ãã¼ã¿å徿ã«ã¨ã©ã¼ãçºçãã¾ãããï¼' + err.message); 78 console.error(err); 79 } 80 } 81 82 function execXhr(xhr, url, queryStringArray, successFunc, errorFunc, count, offset, result, id_name, id_arr) { 83 let id_arr_rest = []; 84 queryStringArray = queryStringArray.filter(function(i) { return i.indexOf('count=') != 0 && i.indexOf('offset=') != 0; }); 85 queryStringArray.push('count=' + ((count > maxCount) ? maxCount : count)); 86 queryStringArray.push('offset=' + offset); 87 88 if(id_name && id_arr){ 89 queryStringArray = queryStringArray.filter(query => query.indexOf(id_name + '=') != 0); 90 if(id_arr.length > 50){ 91 id_arr_rest = id_arr.slice(50);
92 id_arr = id_arr.slice(0, 50); 93 } 94 queryStringArray.push(id_name + '=' + id_arr.join(',')); 95 } 96 97 xhr.open("GET", url + (queryStringArray.length > 0 ? '?' + queryStringArray.join('&') : ''), true); 98 xhr.onreadystatechange = function () { 99 if (xhr.readyState === 4) { 100 if(xhr.status === 200) { 101 const parsed = JSON.parse(xhr.responseText); 102 103 if(parsed.code == -1) { 104 if(errorFunc) { 105 errorFunc(parsed.message); 106 } 107 108 if(ecblib.staffstart.api.debug) { 109 console.error('ãã¼ã¿å徿ã«ã¨ã©ã¼ãçºçãã¾ãããï¼' + parsed.message); 110 } 111 } else { 112 result.item = result.item.concat(parsed.item); 113 if (count > maxCount) { 114 execXhr(xhr, url, queryStringArray, successFunc, errorFunc, (count - maxCount), (offset + maxCount), result); 115 }else if(id_arr_rest.length > 0){ 116 execXhr(xhr, url, queryStringArray, successFunc, errorFunc, count, offset, result, id_name, id_arr_rest); 117 }else { 118 if (successFunc) { 119 result.total = parsed.total; 120 successFunc(result); 121 } 122 } 123 } 124 125 } else { 126 if(errorFunc) { 127 errorFunc('status=' + xhr.status); 128 } 129 if(ecblib.staffstart.api.debug) { 130 console.error('ãã¼ã¿å徿ã«ã¨ã©ã¼ãçºçãã¾ããã\nã¨ã©ã¼ã³ã¼ãï¼' + xhr.status); 131 } 132 } 133 } 134 }; 135 136 xhr.send(); 137 } 138 }, 139 formatDate: function(date) { 140 if(!date) return ''; 141 142 date = new Date(date.replace(/\-/g, "/")); 143 144 const year = date.getFullYear();
145 const month = date.getMonth() + 1; 146 const day = date.getDate(); 147 148 let format = 'yyyy-mm-dd'; 149 150 format = format.replace(/yyyy/, year); 151 format = format.replace(/mm/, month); 152 format = format.replace(/dd/, day); 153 154 return format; 155 }, 156 arrayFind: function(_array, _func) { 157 var val; 158 const isChecked = _array.some(function(i){ 159 if(_func(i)) { 160 val = i; 161 return true; 162 } 163 }); 164 return val; 165 }, 166 arrayFindUrl: function(_array, _func) { 167 var val; 168 const isChecked = _array.some(function(i){ 169 if(_func(i)) { 170 val = i; 171 return true; 172 } 173 }); 174 return val ? val.url : ecblib.staffstart.uri.sorryImg; 175 }, 176 queryParams: function() { 177 const ret = {}; 178 let queryString = window.location.search; 179 if(queryString){ 180 queryString = queryString.substring(1); 181 queryString.split('&').forEach(function(i) { 182 const pair = i.split('='); 183 const key = decodeURIComponent(pair[0]); 184 const val = decodeURIComponent(pair[1]); 185 ret[key] = val; 186 }); 187 } 188 return ret; 189 }, 190 initGloalVariables: function(_mobile) { 191 if (_mobile) { 192 ecblib.staffstart.uri.home = ecblib.staffstart._uri_setting.homeSP; 193 ecblib.staffstart.uri.coordinateList = ecblib.staffstart._uri_setting.coordinateListSP; 194 ecblib.staffstart.uri.coordinateDetail = ecblib.staffstart._uri_setting.coordinateDetailSP; 195 ecblib.staffstart.uri.staffList = ecblib.staffstart._uri_setting.staffListSP; 196 ecblib.staffstart.uri.staffDetail = ecblib.staffstart._uri_setting.staffDetailSP; 197 ecblib.staffstart.uri.shopList = ecblib.staffstart._uri_setting.shopListSP; 198 ecblib.staffstart.uri.shopDetail = ecblib.staffstart._uri_setting.shopDetailSP; 199 ecblib.staffstart.uri.articleList = ecblib.staffstart._uri_setting.articleListSP; 200 ecblib.staffstart.uri.articleDetail = ecblib.staffstart._uri_setting.articleDetailSP; 201 ecblib.staffstart.uri.staffreviewList = ecblib.staffstart._uri_setting.staffreviewListSP; 202 ecblib.staffstart.uri.staffreviewDetail = ecblib.staffstart._uri_setting.staffreviewDetailSP; 203 } 204 205 }, 206 yearsoldToAge: function(_yearsold) { 207 if (!_yearsold) return ''; 208 const yearsold = Number(_yearsold);
209 if (yearsold == NaN) return ''; 210 const ages = ecblib.staffstart.master.ages.items; 211 for(var i = 0; i < ages.length; i++) { 212 if(ages[i].age.min && ages[i].age.min > yearsold) continue; 213 if(ages[i].age.max && ages[i].age.max < yearsold) continue; 214 return ages[i].name; 215 } 216 return ''; 217 }, 218 pushHistoryPageIndex: function(pageindexKey, searchCondition) { 219 const url = new URL(location.href); 220 const pageindex = searchCondition[pageindexKey]; 221 const sortType = searchCondition['sort']; 222 223 if (pageindex) url.searchParams.set(pageindexKey, pageindex); 224 if (sortType) url.searchParams.set('sort', sortType); 225 history.pushState(null, null, url.toString()); 226 }, 227 setCanonical: function() { 228 const params = this.queryParams(); 229 const ss_pageindex = Object.keys(params).filter(function(i) { return i.indexOf('ss_pageindex') == 0; }); 230 if (ss_pageindex.length === 0) return; 231 232 const head = document.head; 233 const canonical = head.querySelector('link[rel="canonical"]'); 234 235 const url = new URL(location.href); 236 ss_pageindex.forEach(function(i) { url.searchParams.delete(i); }); 237 238 if (!canonical) { 239 head.insertAdjacentHTML('afterBegin', '<link rel="canonical" href="' + url.toString() + '">'); 240 } 241 }, 242 StaffStart_RegistBookmark: async function(e, bookmarkid) { 243 let originalText; 244 let loadStart = function(elem) { 245 originalText = jQuery(elem).html(); 246 jQuery(elem).html('<i class="js-animation-bookmark-in-progress fa fa-spinner fa-pulse fa-fw"></i><span class="sr-only">ãå¾ ã¡ãã ãã...</span></a>'); 247 return elem; 248 }; 249 let loadEnd = async function(elem, iserror, msg) { 250 if (!iserror) { 251 await eclib.ui.showToolTip(jQuery(".js-animation-bookmark-in-progress"), { tooltip : msg, diptimeSec : 2 }); 252 await new Promise(function(resolve){ setTimeout(function() { 253 return resolve(); 254 }, 2400)}); 255 jQuery(elem).html(originalText); 256 return; 257 } else { 258 await jQuery(elem).html(originalText); 259 } 260 }; 261 if (!jQuery(e).length) { 262 return false; 263 } 264 let type = jQuery(e).attr("data-type"); 265 let code = jQuery(e).attr("data-code"); 266 let o = loadStart(e); 267 try { 268 const regResult = await jQuery.ajax({ 269 async: false, 270 type: "POST", 271 url: EC_WWW_ROOT + "/shop/customer/ss_registbookmarkajax.aspx", 272 data: { 273 "type": type, 274 "code": code, 275 "crsirefo_hidden": jQuery("[name='crsirefo_hidden']").val(), 276 "bookmarkid": bookmarkid, 277 }, 278 cache: false, 279 ifModified: false, 280 dataType: "json", 281 }); 282 await new Promise(function(resolve){ setTimeout(function() { 283 return resolve(); 284 }, 400)}); 285 await loadEnd(o, false, regResult.message); 286 return regResult; 287 } catch (error) { 288 await loadEnd(o, true); 289 alert("ã»ãã·ã§ã³ã®æå¹æéãããã¾ããã\n" + "èª ã«æãå ¥ãã¾ããå度ããããã¼ã¸ããã®ã¢ã¯ã»ã¹ããé¡ããããã¾ãã\n\n" + "â»å½ãµã¤ãã§ã¯ã客æ§ã®æ å ±ä¿è·ã®ãããä¸å®æéçµéå¾ã«æ¥ç¶æ å ±ãè§£é¤ããã¦ããã ãã¦ããã¾ãã"); 290 return { "result": false }; 291 } 292 }, 293 StaffStart_GetBookmark: async function(type, code) { 294 if (!code) { return 0; } 295 try { 296 const result = await jQuery.ajax({ 297 async: true, 298 type: "POST", 299 url: EC_WWW_ROOT + "/shop/customer/ss_getbookmarkajax.aspx", 300 data: { 301 "type": type, 302 "code": code, 303 "crsirefo_hidden": jQuery("[name='crsirefo_hidden']").val(), 304 }, 305 cache: false, 306 dataType: "json" 307 }); 308 if(result) { 309 return Number(result); 310 } else { 311 return 0; 312 } 313 } catch (error) { 314 return 0; 315 } 316 }, 317 StaffStart_DeleteBookmark: async function(e){
318 let type = jQuery(e).attr("data-type"); 319 let code = jQuery(e).attr("data-code"); 320 let bookmarkid = jQuery(e).attr("data-bookmarkid"); 321 try { 322 const regResult = await jQuery.ajax({ 323 async: false, 324 type: "POST", 325 url: EC_WWW_ROOT + "/shop/customer/ss_registbookmarkajax.aspx", 326 data: { 327 "type": type, 328 "code": code, 329 "crsirefo_hidden": jQuery("#crsirefo_hidden").val(), 330 "bookmarkid": bookmarkid, 331 }, 332 cache: false, 333 ifModified: false, 334 dataType: "json", 335 }); 336 return regResult; 337 } catch (error) { 338 alert("ã»ãã·ã§ã³ã®æå¹æéãããã¾ããã\n" + "èª ã«æãå ¥ãã¾ããå度ããããã¼ã¸ããã®ã¢ã¯ã»ã¹ããé¡ããããã¾ãã\n\n" + "â»å½ãµã¤ãã§ã¯ã客æ§ã®æ å ±ä¿è·ã®ãããä¸å®æéçµéå¾ã«æ¥ç¶æ å ±ãè§£é¤ããã¦ããã ãã¦ããã¾ãã"); 339 return { "result": false }; 340 } 341 } 342 }; 343})(); 344
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.