PageSourceSearch

https://www.goo-net.com/existing_https/common_v2/js/estimate/estimate_cart.js?20260826

js goo-net.com collected 2026-10-01 10:30:33 UTC 13,472 bytes, 429 lines download raw bytes

1// GOO_OPE_PRJ-17826 Start Ì䤤¹ç¤ï¤»Á÷¿®»þ¤ÎCV¥¤¥Ù¥ó¥È¤òÂоݼÖξ¤´¤È¤Ëȯ²Ð¤¹¤ë¡Ê¥«¡¼¥È¤Î¼Öξ=cart¡¢¤¢¤ï¤»¤Æ¸«ÀѤê¤Ç¥Á¥§¥Ã¥¯¤·¤¿¼Öξ=recommend¡Ë
2function sendEstimateCvEvents(eventName, cartClientIds) {
3    var ids = String(cartClientIds || '').split(',');
4    for (var i = 0; i < ids.length; i++) {
5        var cartClientId = ids[i].trim();
6        if (!cartClientId) { continue; }
7        gtag('event', eventName, { 'position': 'form_bottom', 'detail': 'submit', 'link_type': 'button', 'cv_client_id': cartClientId, 'car_source': 'cart' });
8    }
9    var recommendCheckboxes = document.querySelectorAll('.checkbox_recommend_estimate');
10    for (var j = 0; j < recommendCheckboxes.length; j++) {
11        if (!recommendCheckboxes[j].checked) { continue; }
12        // GOO_OPE_PRJ-17994: checkboxes inside .p-recommend-section--favorite are car_source='favorite'
13        var isFavorite = !!recommendCheckboxes[j].closest('.p-recommend-section--favorite');
14        gtag('event', eventName, { 'position': 'form_bottom', 'detail': 'submit', 'link_type': 'button', 'cv_client_id': recommendCheckboxes[j].getAttribute('data-client-id') || '', 'car_source': isFavorite ? 'favorite' : 'recommend' });
15    }
16}
17// GOO_OPE_PRJ-17826 End
18
19/**
20 * ¸½ºß¸«ÀѤâ¤êÃæ¤Î¥µ¥¤¥È¼±ÊÌ»Ò
21 * 
22 */
23var estimate_site_from = $.cookie('from_site_key');
24
25/**
26 * EstimateCart¥¯¥é¥¹
27 * 
28 */
29function EstimateCart()
30{
31    if (this instanceof EstimateCart) {
32        this.CART_COOKIE_PRIFIX     = 'estimate_cart_';
33        this.LOAN_COOKIE_PRIFIX     = '_loan_';
34        this.CART_MAX               = 10;
35        this.COOKIE_SAVE_TIME       = 36000000;  // 10 * 60 * 60 * 1000
36        this.COOKIE_SAVE_PATH       = '/';
37        this.COOKIE_INDEX_STOCK_ID  = 0;
38        this.COOKIE_INDEX_PRE_C     = 1;
39        this.COOKIE_INDEX_SITE_FROM = 2;
40        this.COOKIE_INDEX_BAITAI    = 3;
41        this.COOKIE_INDEX_MSG_FLG   = 4;
42        this.SITE_FROM_GROUP        = {
43//    ex)   "W": "G", ..... GooWORLD¤Î¸«ÀѤâ¤êʪ·ï¤òGoo-net¤ÈƱ°ì¤ÎCookie¤Ë´ÉÍý¤¹¤ë¾ì¹ç
44        };
45        this.SITE_FROM              = _getSiteFrom(this.SITE_FROM_GROUP);
46        this.SPECIFIED_COOKIE_PRIFIX = '_';
47
48        if ( document.getElementById('loan_name') != null && document.getElementById('loan_name').value != '' ) {
49            var loan_name = document.getElementById('loan_name').value;
50            this.COOKIE_NAME            =  loan_name + this.LOAN_COOKIE_PRIFIX + this.SITE_FROM;
51        } else if (document.getElementById('est_specific') != null && document.getElementById('est_specific').value != '' ) {
52            var est_specific = document.getElementById('est_specific').value;
53            this.COOKIE_NAME = est_specific + this.SPECIFIED_COOKIE_PRIFIX + this.SITE_FROM;
54        } else if (document.getElementById('est_epack') != null && document.getElementById('est_epack').value != '') {
55            var est_epack = document.getElementById('est_epack').value;
56            this.COOKIE_NAME = this.CART_COOKIE_PRIFIX + 'E_' + this.SITE_FROM;
57        } else {
58            this.COOKIE_NAME            = this.CART_COOKIE_PRIFIX + this.SITE_FROM;
59        }
60
61    } else {
62        return new EstimateCart();
63    }
64}
65/**
66 * _getSiteFrom
67 * 
68 * @param siteFromGroup
69 * @return siteFrom
70 */
71function _getSiteFrom(siteFromGroup)
72{
73    var siteFrom = estimate_site_from;
74    if (siteFrom == '') {
75        siteFrom = 'G';
76    }
77    for (var key in siteFromGroup) {
78        if (key == siteFrom) {
79            siteFrom = siteFromGroup[key];
80        }
81    }
82
83    return siteFrom;
84}
85/**
86 * _getOldSiteFrom
87 * 
88 * @param siteFrom
89 * @param siteFromGroup
90 * @return oldSiteFrom
91 */
92function _getOldSiteFrom(siteFrom, siteFromGroup)
93{
94    // ËÜÍè¤ÏHTML¤«¤é¼èÆÀ
95    var oldSiteFrom = [siteFrom];
96
97    for (var key in siteFromGroup) {
98        if (siteFromGroup[key] == siteFrom) {
99            var existFlag = false;
100            for (var k in oldSiteFrom) {
101                if (oldSiteFrom[k] == key) {
102                    existFlag = true;
103                    break;
104                }
105            }
106            if (existFlag == false) {
107                oldSiteFrom.push(key);
108            }
109        }
110    }
111
112    return oldSiteFrom;
113}
114/**
115 * _mergeOldCookie
116 * 
117 * @todo ¥ê¥ê¡¼¥¹¸å10»þ´Ö·Ð²á¤·¤¿¤éºï½ü
118 * @param siteFrom
119 * @param siteFromGroup
120 * @param newCookieData
121 * @return object mergeData
122 */
123function _mergeOldCookie(siteFrom, siteFromGroup, newCookieData, newCookieName, newCookieSaveTime, newCookieSavePath)
124{
125    var oldSiteFrom                = _getOldSiteFrom(siteFrom, siteFromGroup);
126    var OLD_CART_COOKIE_PRIFIX     = 'cart_';
127    var OLD_CART_MAX               = 10;
128    var OLD_COOKIE_SAVE_PATH       = '/';
129    var OLD_COOKIE_INDEX_STOCK_ID  = 0;
130    var OLD_COOKIE_INDEX_PRE_C     = 1;
131    var OLD_COOKIE_INDEX_SITE_FROM = 2;
132    var OLD_COOKIE_INDEX_BAITAI    = 3;
133    var OLD_COOKIE_INDEX_MSG_FLG   = 4;
134
135    var mergeData      = {};
136    var oldCookieCount = 0;
137    var mergeCount     = 0;
138
139    for (var i = 1; i <= OLD_CART_MAX; i++) {
140        var strNum        = ('0' + i).slice(-2);
141        var oldCookieName = OLD_CART_COOKIE_PRIFIX + strNum;
142        var data          = $.cookie(oldCookieName);
143        if (data != null) {
144            var isTarget = false;
145
146            data = data.split(",");
147
148            for (var j in oldSiteFrom) {
149                if (oldSiteFrom[j] == data[OLD_COOKIE_INDEX_SITE_FROM]) {
150                    isTarget = true;
151                    break;
152                }
153            }
154
155            if (isTarget
156                && data[OLD_COOKIE_INDEX_STOCK_ID] != null
157                && data[OLD_COOKIE_INDEX_PRE_C] != null
158                && data[OLD_COOKIE_INDEX_SITE_FROM] != null
159            ) {
160                if (data[OLD_COOKIE_INDEX_BAITAI] == null) {
161                    data[OLD_COOKIE_INDEX_BAITAI] = '';
162                }
163                if (data[OLD_COOKIE_INDEX_MSG_FLG] == null) {
164                    data[OLD_COOKIE_INDEX_MSG_FLG] = '';
165                }
166                oldCookieDataStr = '{';
167                oldCookieDataStr += '"' + OLD_COOKIE_INDEX_STOCK_ID + '":"' + data[OLD_COOKIE_INDEX_STOCK_ID] + '",';
168                oldCookieDataStr += '"' + OLD_COOKIE_INDEX_PRE_C + '":"' + data[OLD_COOKIE_INDEX_PRE_C] + '",';
169                oldCookieDataStr += '"' + OLD_COOKIE_INDEX_SITE_FROM + '":"' + data[OLD_COOKIE_INDEX_SITE_FROM] + '",';
170                oldCookieDataStr += '"' + OLD_COOKIE_INDEX_BAITAI + '":"' + data[OLD_COOKIE_INDEX_BAITAI] + '",';
171                oldCookieDataStr += '"' + OLD_COOKIE_INDEX_MSG_FLG + '":"' + data[OLD_COOKIE_INDEX_MSG_FLG] + '"';
172                oldCookieDataStr += '}';
173                oldCookieDataObj = eval('(' + oldCookieDataStr + ')');
174
175                mergeData[oldCookieCount] = oldCookieDataObj;
176                oldCookieCount++;
177
178                // µìCookie¤òºï½ü¤¹¤ë
179                $.cookie(oldCookieName, "", { path: OLD_COOKIE_SAVE_PATH, expires: -1 });
180            }
181        }
182    }
183
184    // ¹¹¿·ÂоݤεìCookie¤¬Â¸ºß¤¹¤ë
185    if (oldCookieCount > 0) {
186        mergeCount = oldCookieCount;
187        $.each(newCookieData, function (i, val) {
188            if (mergeCount >= OLD_CART_MAX) {
189                return false;
190            }
191            var isMerge = true;
192            $.each(mergeData, function (j, val2) {
193                if (val2[OLD_COOKIE_INDEX_STOCK_ID] == val[OLD_COOKIE_INDEX_STOCK_ID]) {
194                    isMerge = false;
195                    return false;
196                }
197            });
198            if (isMerge) {
199                mergeData[mergeCount] = val;
200                mergeCount++;
201            }
202        });
203
204        // Cookie¤ò¹¹¿·
205        //  - ËÜÅö¤ÏEstimateCart.prototype.putData()¤ò»È¤¤¤¿¤¤¤¬¡¢
206        //    ¥¯¥é¥¹¥á¥½¥Ã¥É¤ÎÃæ¤Ç¥¯¥é¥¹¥á¥½¥Ã¥É¤ò¸Æ¤ó¤ÀºÝ¤Îµóư¤¬É԰¤ʤΤǡ¢
207        //    ¾éŤÀ¤¬¤³¤Î¥á¥½¥Ã¥É¤ÎÃæ¤ËCookie¹¹¿·½èÍý¤òÆþ¤ì¤ë¡£
208        var cookieData = mergeData;
209        var date       = new Date();
210        var contain    = '';
211        date.setTime(date.getTime() + newCookieSaveTime);
212
213        for (var keyString in cookieData) {
214            if (cookieData[keyString] == '[object Object]') {
215                contain += '"' + keyString + '":{';
216                for (var keyString2 in cookieData[keyString]) {
217                    contain += '"' + keyString2 + '":"' + cookieData[keyString][keyString2] + '",';
218                }
219                contain = contain.slice(0, -1);
220                contain += '},';
221            } else {
222                contain = '';
223                break;
224            }
225        }
226        if (contain != '') {
227            contain = contain.slice(0, -1);
228            cookieData    = '{' + contain + '}';
229        } else {
230            cookieData    = '';
231        }
232        $.cookie(newCookieName, cookieData, { expires: date, path: newCookieSavePath });
233
234    } else {
235        mergeData = newCookieData;
236    }
237
238    return mergeData;
239}
240/**
241 * getData
242 * 
243 * @return object data
244 */
245EstimateCart.prototype.getData = function getData()
246{
247    var cookieName = this.COOKIE_NAME;
248    var data       = {};
249
250    if ($.cookie(cookieName) != null) {
251        data = eval('(' + $.cookie(cookieName) + ')');
252    }
253
254    // @todo ¥ê¥ê¡¼¥¹¸å10»þ´Ö·Ð²á¤·¤¿¤éºï½ü
255    // µì¥«¡¼¥È¾ðÊó¤ò¿·¥«¡¼¥È¾ðÊ󤨰ܹÔ
256    data = _mergeOldCookie(this.SITE_FROM, this.SITE_FROM_GROUP, data, this.COOKIE_NAME, this.COOKIE_SAVE_TIME, this.COOKIE_SAVE_PATH);
257
258    return data;
259};
260/**
261 * putData
262 * 
263 * @param cookieData
264 * @return void
265 */
266EstimateCart.prototype.putData = function putData(cookieData)
267{
268    var cookieName = this.COOKIE_NAME;
269    var date       = new Date();
270    var contain    = '';
271
272    date.setTime(date.getTime() + this.COOKIE_SAVE_TIME);
273
274    for (var keyString in cookieData) {
275        if (cookieData[keyString] == '[object Object]') {
276            contain += '"' + keyString + '":{';
277            for (var keyString2 in cookieData[keyString]) {
278                contain += '"' + keyString2 + '":"' + cookieData[keyString][keyString2] + '",';
279            }
280            contain = contain.slice(0, -1);
281            contain += '},';
282        } else {
283            contain = '';
284            break;
285        }
286    }
287    if (contain != '') {
288        contain = contain.slice(0, -1);
289        cookieData    = '{' + contain + '}';
290    } else {
291        cookieData    = '{}';
292    }
293    $.cookie(cookieName, cookieData, { expires: date, path: this.COOKIE_SAVE_PATH });
294};
295
296
297/**
298 * deleteEstimateCratOne
299 * 
300 * @param string targetNo  ºï½üÂоݥ«¡¼¥ÈÈÖ¹æ(01,02,03,04¡¦¡¦¡¦)
301 * @return void
302 */
303function deleteEstimateCartOne(targetNo)
304{
305    var EC          = new EstimateCart();
306    var data        = EC.getData();
307    var newData     = {};
308    var skipCount   = 0;
309    var targetIndex = parseInt(targetNo, '10') - 1;
310    var delStockId = data[targetIndex][0];
311
312    $.each(data, function (i, val) {
313        i = parseInt(i, '10');
314        if (i != targetIndex) {
315            newData[i - skipCount] = val;
316        } else {
317            skipCount++;
318        }
319    });
320
321    var AnotherEC = new EstimateCart();
322    if (EC.COOKIE_NAME == "estimate_cart_G") {
323        AnotherEC.COOKIE_NAME = "estimate_cart_E_G";
324    } else if (EC.COOKIE_NAME == "estimate_cart_E_G") {
325        AnotherEC.COOKIE_NAME = "estimate_cart_G";
326    } else {
327        AnotherEC.COOKIE_NAME = null;
328    }
329
330    if (AnotherEC.COOKIE_NAME !== null) {
331        var anotherData = AnotherEC.getData();
332        var newAnotherData = {};
333        var j = 0;
334        $.each(anotherData, function (i, val) {
335            if (val[0] != delStockId) {
336                newAnotherData[j++] = val;
337            }
338        });
339        AnotherEC.putData(newAnotherData);
340    }
341
342    EC.putData(newData);
343
344    // Delete the vehicle's customize information from the local storey
345    if (typeof delStoreCustomize === 'function') {
346        delStoreCustomize(delStockId);
347    }
348}
349
350
351/**
352 * deleteEstimateCartAll
353 * 
354 * @return void
355 */
356function deleteEstimateCartAll()
357{
358    var EC   = new EstimateCart();
359    var data = {};
360
361    EC.putData(data);
362}
363
364
365/**
366 * vanishEstimateCart
367 * 
368 * @return void
369 */
370function vanishEstimateCart()
371{
372    var EC = new EstimateCart();
373
374    $.cookie(EC.COOKIE_NAME, "", { path: EC.COOKIE_SAVE_PATH, expires: -1 });
375}
376
377
378/**
379 * getRecord
380 * 
381 * @param string targetNo  ¼èÆÀÂоݥ«¡¼¥ÈÈÖ¹æ(01,02,03,04¡¦¡¦¡¦)
382 * @return targetRecord
383 */
384function getEstimateCartOne(targetNo)
385{
386    var EC           = new EstimateCart();
387    var data         = EC.getData();
388    var targetRecord = {};
389    var targetIndex  = parseInt(targetNo, '10') - 1;
390    var estCartCount = getEstimateCartCount();
391    if (estCartCount != 0) {
392        if (targetIndex >= 0 && targetIndex < estCartCount) {
393            targetRecord = data[targetIndex];
394        }
395    }
396
397    return targetRecord;
398}
399
400
401/**
402 * getEstimateCartCount
403 * 
404 * @return integer estCartCount
405 */
406function getEstimateCartCount()
407{
408    var EC       = new EstimateCart();
409    var data     = EC.getData();
410    var dataKeys = $.map(data, function(value, key) {
411        return key;
412    });
413    var estCartCount = dataKeys.length;
414
415    return estCartCount;
416}
417
418/**
419 * ¡Ö¼«Ê¬¤Ç¥ª¥×¥·¥ç¥ó¤òÁªÂò¡×ÄɲÃ
420 */
421function inputNewCheckfn() {
422    const inputNewCheck = document.querySelectorAll('#new_cart.cart_estimate_new input[type="checkbox"]');
423    inputNewCheck.forEach(item => {
424        item.parentElement.classList.toggle('active', item.checked);
425        item.addEventListener('change', function () {
426            item.parentElement.classList.toggle('active', item.checked);
427        })
428    })
429}

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.