1/*********************************************/ 2// RecommendList object 3/*********************************************/ 4var InternalTarget = InternalTarget || {}; 5 6InternalTarget = (function(){ 7 'use strict'; 8 9 var INTERNAL_TARGET_API_HOST, 10 INTERNAL_TARGET_ORIGIN_API_URL = "/usedcar/modules/pr_frame_bukken_list.php", 11 TARGET_STID, 12 DISPLAY_BUKKEN_CD, 13 CSUUID, 14 PARAM; 15 var $bukkenRecom; 16 var INTERNAL_TARGET_JURYO_API_HOST; 17 var INTERNAL_TARGET_JURYO_API_KEY; 18 19 var init = function(page,target){ 20 $bukkenRecom = $(target); 21 if(page == "TOP" || page == "DTLMIDDLE" || page == "DTLBOTTOM" || (page == "FAV" && ($(".comparison").length) || $(".carList").length)){ 22 // TOPãç©ä»¶è©³ç´°ããæ°ã«å ¥ãï¼è¡¨ç¤ºä»¶æ°ããï¼ã®å ´åinviewActionã§APIèªã¿è¾¼ã¿å¦çãå®è¡ 23 cmn.inViewAction($bukkenRecom, true, function(){ 24 _getApiData(page); 25 }); 26 }else{ 27 // ãæ°ã«å ¥ãï¼è¡¨ç¤ºä»¶æ°0ä»¶ï¼ãç©ä»¶è©³ç´°(æ²è¼è½ã¡)ãç©ä»¶ä¸è¦§ã®å ´åã¯inViewActionãæã¾ããç´æ¥APIèªã¿è¾¼ã¿å¦çãå®è¡ 28 _getApiData(page); 29 } 30 }; 31 32 //åºæ¬å¦ç 33 var _getApiData = async function(page){ 34 35 var datas = { 36 'api1' : {}, 37 'api2' : {} 38 }; 39 40 // koruli_APIã¨å¾é課éCLAPIãèªã¿è¾¼ã
41 await Promise.allSettled([ _getAPI1(page), _getAPI2(page)]) 42 .then(results => { 43 results.forEach((result) => { 44 if (result.status === 'fulfilled') { 45 datas[result.value.id] = {json:result.value, 'status' : 'success'}; 46 } else { 47 datas[result.reason.id] = {reason:result.reason, 'status' : 'error'}; 48 } 49 }); 50 }); 51 52 // 䏿¦ã対象è¦ç´ ã空 53 $bukkenRecom.html(""); 54 55 // koruli_APIã®åå¾JSONããPRæ 使å¦ç 56 if (datas['api1'].status == 'success') { 57 await _setRecommendData(datas['api1'].json.data, page, $bukkenRecom, 1); 58 } 59 60 // koruli_APIã®åå¾JSONããPRæ 使å¦çãã¦ä½æåºæ¥ãªãã£ãããå¾é課éCLAPIã®åå¾JSONããPRæ 使å¦ç 61 if ($bukkenRecom.html() == "" && datas['api2'].status == 'success') { 62 await _setRecommendData(datas['api2'].json.data.recommends, page, $bukkenRecom, 2); 63 } 64 65 // PRæ ä½æåºæ¥ãªãã£ããè¦ç´ ãåé¤ 66 if ($bukkenRecom.html() == "") { 67 $bukkenRecom.remove(); 68 } 69 } 70 71 // koruli_APIéä¿¡ 72 var _getAPI1 = function(page) { 73 return new Promise((resolve, reject) => { 74 _getDtlApiData1(page) 75 .done((data) => { 76 resolve({ 77 id:'api1', 78 status:'success', 79 data:data 80 }); 81 }) 82 .fail((jqXHR, textStatus, errorThrown) => { 83 reject({ 84 id:'api1', 85 status:'error', 86 reason:textStatus 87 }); 88 }); 89 }); 90 }; 91 92 //å¾é課éCL-APIéä¿¡ 93 var _getAPI2 = function(page) { 94 return new Promise((resolve, reject) => { 95 _getDtlApiData2(page) 96 .done((data) => { 97 resolve({ 98 id:'api2', 99 status:'success', 100 data:data 101 }); 102 }) 103 .fail((jqXHR, textStatus, errorThrown) => { 104 reject({ 105 id:'api2', 106 status:'error', 107 reason:textStatus 108 }); 109 }); 110 }); 111 }; 112 113 // PRæ HTMLã使ãã 114 var _setRecommendData = async function(ApiData, page, $bukkenRecom, mode){ 115 // ç©ä»¶CDãå«ãJSONãå é¨APIã«æ¸¡ãã¦PRæ HTMLãåå¾ãã 116 await _getOriginApiData(ApiData, page) 117 .done(function(data){ 118 if(!data){ 119 // éä¿¡ã¯æåãããPRæ HTMLã空 120 return; 121 } 122 123 // æåããã対象è¦ç´ ã®PRæ HTMLãæµãè¾¼ã 124 $bukkenRecom.html(data); 125 126 // ç»åé¢é£ã®èª¿æ´ 127 var images = document.querySelectorAll('img[data-tgr]'); 128 var noPhoto = '/CSphoto/cat/nophoto_M.png'; 129 for(var i = 0; i < images.length; i++) { 130 var dataurl = images[i].getAttribute('data-tgr'); 131 var selectorName = ".js-tgtlazy" + (i + 1); 132 133 function imgChk(selectorName, dataurl, image){ 134 var tgtimage = new Image(); 135 tgtimage.onload = function(){ 136 setTimeout( function() { 137 $(selectorName).hide() 138 setTimeout( function() { 139 $(selectorName).attr('src', dataurl); 140 setTimeout( function(){ 141 $(selectorName).fadeIn(); 142 },0); 143 },0); 144 } ,500); 145 146 } 147 tgtimage.onerror = function(){ 148 setTimeout(function(){ 149 $(selectorName).hide() 150 setTimeout( function() { 151 $(selectorName).attr('src', image); 152 setTimeout( function(){ 153 $(selectorName).fadeIn(); 154 },0); 155 },0); 156 } ,500); 157 } 158 tgtimage.src = dataurl; 159 } 160 imgChk(selectorName, dataurl, noPhoto); 161 } 162 163 if (mode == 1) { 164 // koruli_APIç±æ¥ã®é·ç§»ã§ããã°ç©ä»¶ã®ãªã³ã¯ã«APIããåå¾ããredirect_urlãè¨å® 165 var redirect_url_id = _setRedirectUrlId(page); 166 var track_cd = []; 167 $.each(ApiData, function(index,val){ 168 var target_id = document.getElementById(redirect_url_id + val.feeds[0].track_cd); 169 if(target_id){ 170 target_id.href = "https:" + val.feeds[0].redirect_url; 171 track_cd.push(val.feeds[0].track_cd); 172 } 173 }); 174 } 175 176 PrBukken.addImpressionLogEvent($bukkenRecom, page, track_cd, mode); 177 PrBukken.addClickLogEvent($bukkenRecom, page, mode); 178 }) 179 .fail(function(data){ 180 // é信失æã§ããã°å¯¾è±¡è¦ç´ ã®HTMLã空ã«ãã 181 $bukkenRecom.html(""); 182 }); 183 } 184 185 var setInternalTargetApiHost = function(host){ 186 INTERNAL_TARGET_API_HOST = host; 187 }; 188 189 var setInternalTargetJuryoApiHost = function(host){ 190 INTERNAL_TARGET_JURYO_API_HOST = host; 191 }; 192 193 var setInternalTargetJuryoApiKey = function(key){ 194 INTERNAL_TARGET_JURYO_API_KEY = key; 195 }; 196
197 var setTargetStid = function(stid){ 198 TARGET_STID = stid; 199 }; 200 201 var setDispBukkenCd = function(bukken_cd){ 202 DISPLAY_BUKKEN_CD = bukken_cd; 203 }; 204 205 var setApiId = function(csuuid){ 206 CSUUID = csuuid; 207 }; 208 209 var setApiParam = function(param){ 210 PARAM = param; 211 }; 212 213 // koruli_API 214 var _getDtlApiData1 = function(page) { 215 var url_string = _setApiUrlString(page); 216 var url = ''; 217 let dataType = ''; 218 if(page == "SEARCH"){ 219 url = INTERNAL_TARGET_API_HOST + "json?f=1.media_client." + url_string + "&ex=" + CSUUID + PARAM; 220 dataType = "json"; 221 }else{ 222 url = INTERNAL_TARGET_API_HOST + "json?f=1.media_client." + url_string + "&ex=" + CSUUID; 223 dataType = "json"; 224 } 225 226 const setting = { 227 timeout: 10000, 228 url:url, 229 type: 'GET', 230 dataType:dataType 231 }; 232 233 return $.ajax(setting); 234 }; 235 236 // å¾é課éCLAPI 237 var _getDtlApiData2 = function(page) { 238 const url = INTERNAL_TARGET_JURYO_API_HOST; 239 let set_data = {'key' : CSUUID}; 240 241 const setting = { 242 url: url, 243 type: 'POST', 244 dataType:'json', 245 timeout: 10000, 246 data: JSON.stringify(set_data), 247 headers: { 248 'Content-Type': 'application/json', 249 'x-api-key':INTERNAL_TARGET_JURYO_API_KEY 250 } 251 }; 252 253 return $.ajax(setting); 254 }; 255 256 /** 257 * APIããåãåã£ãç©ä»¶CDãå«ãJSONãå é¨APIã«æ¸¡ãã¦PRæ HTMLãåå¾ãã 258 * 259 * @param array data 260 * @param string page 261 * @returns 262 */ 263 var _getOriginApiData = function(data, page){ 264 265 var bknCdList = []; 266 267 $.each(data, function(index, val){ 268 if (val.feeds != undefined) { 269 bknCdList.push(val.feeds[0].track_cd); 270 } else { 271 bknCdList.push(val); 272 } 273 }); 274 275 var addParams = { 276 BKKN:bknCdList.join('*'), 277 STID:TARGET_STID, 278 PAGE:page, 279 DISP_BKKN:DISPLAY_BUKKEN_CD 280 }; 281 282 var url = INTERNAL_TARGET_ORIGIN_API_URL + "?" + $.param(addParams), 283 headers = {}, dataType = "html"; 284 285 return _orgAjax(url, dataType); 286 }; 287 288 var _orgAjax = function(url, dataType){ 289 return $.ajax({ 290 timeout: 10000, 291 url: url, 292 dataType: dataType, 293 }); 294 }; 295 296 var _setApiUrlString = function(page){ 297 var url_string_page = ""; 298 var url_string_m = ""; 299 var url_string = ""; 300 301 if(page == "SEARCH"){ 302 url_string_page = "bukken_list_pc"; 303 }else if(page == "TOP"){ 304 url_string_page = "top_pc"; 305 }else if(page == "FAV"){ 306 url_string_page = "favorite_pc"; 307 }else if(page == "DTLSOLD"){ 308 url_string_page = "soldout_pc"; 309 }else{ 310 url_string_page = "bukken_detail_middle_pc"; 311 } 312 313 if(url_string_page == "bukken_list_pc" || url_string_page == "top_pc" || url_string_page == "favorite_pc" || url_string_page == "bukken_detail_middle_pc" || url_string_page == "soldout_pc"){ 314 url_string_m = "&m=5"; 315 } 316 317 url_string = url_string_page + url_string_m; 318 319 return url_string; 320 }; 321 322 var _setRedirectUrlId = function(page){ 323 var redirect_url_id = ""; 324 325 if(page == "SEARCH"){ 326 redirect_url_id = "recommend_search_url_"; 327 }else if(page == "TOP"){ 328 redirect_url_id = "recommend_top_url_"; 329 }else if(page == "FAV"){ 330 redirect_url_id = "recommend_fav_url_"; 331 }else if(page == "DTLSOLD"){ 332 redirect_url_id = "recommend_sold_url_"; 333 }else if(page == "DTLMIDDLE"){ 334 redirect_url_id = "recommend_middle_url_"; 335 }else{ 336 redirect_url_id = "recommend_bottom_url_"; 337 } 338 339 340 return redirect_url_id; 341 }; 342 343 return {init, setInternalTargetApiHost, setInternalTargetJuryoApiHost, setInternalTargetJuryoApiKey, setTargetStid, setDispBukkenCd, setApiId, setApiParam}; 344 345}()); 346 347var PrBukken= PrBukken || {}; 348PrBukken = (function(){ 349 'use strict'; 350 351 // ç©ä»¶æ å ±ãã¿ãããããå ´åã®ãã°ã¤ãã³ã 352 var addClickLogEvent = function($target, page, mode){ 353 var logValue = _getClickLogValue(page); // tgt_[page]_pr_clk 354 logValue = mode == 1 ? logValue : 'juryo_' + logValue; 355 $target.on('click', '.js-bukkenLink', function(){ 356 var track_cd = $(this).attr("id").split("_"); 357 let eventName = logValue + "_" + track_cd[3]; 358 reqCustomLink("None", "", eventName); // click tgt_[page]_pr_clk 359 }); 360 }; 361 362 // ç©ä»¶æ å ±ã表示ãããå ´åã®ãã°ã¤ãã³ã 363 var addImpressionLogEvent = function($target, page, track_cd, mode){ 364 var logFrameValue = _getPrFrameLogValue(page) // tgt_[page]_imp 365 var logValue = _getImpressionLogValue(page); // tgt_[page]_pr_imp 366 if(!logValue) return; 367 368 logValue = mode == 1 ? logValue : 'juryo_' + logValue; 369 370 // ãæ°ã«å ¥ãç»é¢ï¼è¡¨ç¤ºä»¶æ°0ï¼ã¾ãã¯ç©ä»¶è©³ç´°(SOLDOUT)ã§ããã° 371 if((_isFavorite(page) && (!$(".comparison").length && !$(".carList").length)) || _isDtlSold(page)){ 372 // å³ãã°ã¤ãã³ãçºç 373 reqCustomLink("None", "", logFrameValue); // disp tgt_[page]_imp
374 reqCustomLink("None", "", logValue); // disp tgt_[page]_pr_imp 375 return; // ããã§ã¡ã½ããã¯çµäº 376 } 377 // ãã以å¤ã§ããã°inViewã¤ãã³ãããªã¬ã§ãã°ã¤ãã³ãçºç 378 cmn.inViewAction($target, true, function(){ 379 reqCustomLink("None", "", logValue); // inview_disp tgt_[page]_pr_imp 380 }); 381 }; 382 383 // ç©ä»¶æ å ±ãã¿ãããããå ´å 384 var _getClickLogValue = function(page){ 385 if(_isSearch(page)) return "tgt_list_pr_clk"; 386 if(_isTop(page)) return "tgt_top_pr_clk"; 387 if(_isFavorite(page)) return "tgt_fav_pr_clk"; 388 if(_isDtlMiddle(page)) return "tgt_dem_pr_clk"; 389 if(_isDtlBottom(page)) return "tgt_dem_pr_clk"; 390 if(_isDtlSold(page)) return "tgt_sdo_pr_clk"; 391 return false; 392 }; 393 394 // PRæ ã表示ãããå ´å 395 var _getImpressionLogValue = function(page){ 396 if(_isSearch(page)) return "tgt_list_pr_imp"; 397 if(_isTop(page)) return "tgt_top_pr_imp"; 398 if(_isFavorite(page)) return "tgt_fav_pr_imp"; 399 if(_isDtlMiddle(page)) return "tgt_dem_pr_imp"; 400 if(_isDtlBottom(page)) return "tgt_dem_pr_imp"; 401 if(_isDtlSold(page)) return "tgt_sdo_pr_imp"; 402 return false; 403 }; 404 // PRæ ä½ç½®ã表示ãããå ´å 405 var _getPrFrameLogValue = function(page){ 406 if(_isTop(page)) return "tgt_top_imp"; 407 if(_isFavorite(page)) return "tgt_fav_imp"; 408 if(_isDtlMiddle(page)) return "tgt_dem_imp"; 409 if(_isDtlBottom(page)) return "tgt_dem_imp"; 410 if(_isDtlSold(page)) return "tgt_sdo_imp"; 411 return false; 412 }; 413 414 var _isSearch = function(page){ 415 return page == "SEARCH"; 416 }; 417 418 var _isTop = function(page){ 419 return page == "TOP"; 420 }; 421 422 var _isFavorite = function(page){ 423 return page == "FAV"; 424 }; 425 426 var _isDtlMiddle = function(page){ 427 return page == "DTLMIDDLE"; 428 }; 429 430 var _isDtlBottom = function(page){ 431 return page == "DTLBOTTOM"; 432 }; 433 434 var _isDtlSold = function(page){ 435 return page == "DTLSOLD"; 436 }; 437 438 return {addClickLogEvent, addImpressionLogEvent}; 439 440}()); 441
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.