PageSourceSearch

https://www.storexppen.es/newxp/static2024/js/index/common.js?ver=20260814

js storexppen.es collected 2026-09-26 03:16:36 UTC 38,112 bytes, 1,131 lines download raw bytes

1// JavaScript Document
2var windowWidth = $(window).width(), mobileVerifyTime = parseInt("60");
3/*js语言包*/
4function L() {
5    var userArguments = Array.prototype.slice.call(arguments);//强行转换成数组 
6    var tempArr = new Array();//临时数组
7    tempArr = userArguments;//
8    var first = tempArr[0];//拿到第一个参数
9    tempArr.shift(); //删除第一个参数
10    var tempstr = Language[first];
11    if (Language && tempstr) {
12        if (tempArr.length > 0) {
13            for (var x in tempArr) {
14                tempstr = tempstr.replace('%s', tempArr[x]);//替换掉特殊函数
15            }
16        }
17    }
18    return tempstr;
19}
20function is_mobile_request() {
21    var is_mobile = false;
22    if (/AppleWebKit.*Mobile/i.test(navigator.userAgent) || (/MIDP|SymbianOS|NOKIA|SAMSUNG|LG|NEC|TCL|Alcatel|BIRD|DBTEL|Dopod|PHILIPS|HAIER|LENOVO|MOT-|Nokia|SonyEricsson|SIE-|Amoi|ZTE/.test(navigator.userAgent))) {
23        if (/Android|webOS|iPhone|iPod|BlackBerry/i.test(navigator.userAgent)) {
24            is_mobile = true;
25        } else {
26            is_mobile = false;
27        }
28
29    }
30    return is_mobile;
31}
32//制保留2位小数,如:2,会在2后面补上00.即2.00 
33function toDecimal2(x) {
34    var f = parseFloat(x);
35    if (isNaN(f)) {
36        return false;
37    }
38    var f = Math.round(x * 100) / 100;
39    var s = f.toString();
40    var rs = s.indexOf('.');
41    if (rs < 0) {
42        rs = s.length;
43        s += '.';
44    }
45    while (s.length <= rs + 2) {
46        s += '0';
47    }
48    return s;
49}
50
51
52// 用作 sort 排序用
53function sortNumber(a, b) {
54    return a - b;
55}
56
57/**
58 *    加入购物车的动画效果
59 *    @param obj $(this) 对象
60 *    @param string    商品的缩略图路径
61 */
62function cartFly($this, thumbImg, goodsNum) {
63    var $cartObject = $("#cart_icon");
64    var offset = $cartObject.offset();
65    var flyer = $('<img class="u-flyer" src="' + thumbImg + '">');
66    flyer.fly({
67        start: {
68            left: $this.offset().left + 20,
69            top: $this.offset().top - $(document).scrollTop()
70        },
71        end: {
72            left: offset.left + 80,
73            top: offset.top - $(document).scrollTop(),
74            width: 0,
75            height: 0
76        },
77        onEnd: function () {
78            // $this.css("cursor", "default").unbind('click');
79            $cartObject.find("span").html( goodsNum);
80            $cartObject.parent("li").addClass("open").find(".cart_menu").find("dl").hide();
81            $cartObject.parent("li").find("dl").hide();
82            $("#msg").show().animate({width: '270px'}, 200).fadeOut(2000, '', function () {
83                $cartObject.parent("li").removeClass("open").find("dl").show();
84            });
85            this.destory();
86        }
87    });
88}
89
90/**
91 * +------------------------------------------------------------------------------------
92 * 加入购物车方法
93 * +------------------------------------------------------------------------------------
94 *
95 * @param type $this  购物车对象
96 * @param type cartParam   购物车参数
97
98 */
99function addCart($this, cartParam) {
100    //获取组合的商品
101    if($('.bundle_goods_id').length>0){
102        var bundle_info = "";
103        $('.bundle_goods_id').each(function (e){
104            bundle_info += $(this).val()+":::";
105        })
106        cartParam.bundleInfo = bundle_info;
107        //加入这个组合商品的标识,即 相同组合是一个独立的SKU,不同组合需要分开
108        var cleartext = cartParam.goods_id + '_' + cartParam.bundleInfo;
109        cartParam.bundleUniqueId = btoa(cleartext);
110    }
111
112    // console.log('asdasda');return ;
113    var index = layer.load(1);
114    $.ajax({
115        type: "POST",
116        url: _ROOT_ + 'Cart/ajaxAddCart',
117        dataType: 'json',
118        data: cartParam,
119        success: function (data) {
120            layer.close(index);
121            if (data.code == 1) {
122                add_google_gtag_event('add_to_cart',cartParam);
123                add_facebook_conversion('addcart',cartParam);
124                add_yahoo_conversion('addcart',cartParam);
125                add_facebook_mkq_conversion('addcart',cartParam);
126                add_google_step_conversion(1);
127                if (cartParam.dataAction == 0) { //添加购物车
128                    window.location.href = _ROOT_ + "Cart/index"
129                } else if (cartParam.dataAction == 1) { //直接购买,跳转到购物车
130                    if(uid == 0){
131                        layer.close(index);
132                        // layer.confirm(Language['PLEASE_LOGIN_FIRST'],{btn:[Language['LOGIN_ACCOUNT'],Language['DO_NOT_LOGIN']],title:Language['LOGIN_ACCOUNT']},function (){
133                        //     openLogin("/Order/add");
134                        // },function (){
135                        //     window.location.href = _ROOT_ + "Order/add";
136                        // })
137                        window.location.href = _ROOT_ + "Order/add";
138                    }else {
139                        window.location.href = _ROOT_ + "Order/add";
140                    }
141                }
142            } else {
143                    if(data.msg){
144                        layer.alert(data.msg, {'icon': 2, title: L('PROMPT_MESSAGE'), btn: [L('DETERMINE')]})
145                    }else {
146                        addCart($this, cartParam)
147                    }
148            }
149        }
150    });
151}
152
153    function pay_now(cartParam,payment_info){
154        if($('.bundle_goods_id').length>0){
155            var bundle_info = "";
156            $('.bundle_goods_id').each(function (e){
157                bundle_info += $(this).val()+":::";
158            })
159            cartParam.bundleInfo = bundle_info;
160            var cleartext = cartParam.goods_id + '_' + cartParam.bundleInfo;
161            cartParam.bundleUniqueId = btoa(cleartext);
162        }
163        var auto_active_code ='';
164        if($('.dct-copy').length > 0){
165             auto_active_code = $('.dct-copy').prev().text().split(':')[1]
166        }
167        $.ajax({
168            type: "POST",
169            url: _ROOT_ + 'Cart/ajaxAddCart',
170            dataType: 'json',
171            data: cartParam,
172            success: function (data) {
173                if (data.code == 1) {
174                    add_google_conversion('addcart');
175                    add_facebook_conversion('addcart',cartParam);
176                    add_yahoo_conversion('addcart',cartParam);
177                    add_facebook_mkq_conversion('addcart',cartParam);
178                    payment_info = encodeURI(payment_info);
179                    if(auto_active_code){
180                        var url_temp = _ROOT_+"order/place_order?param="+window.btoa(payment_info)+"&promoCode="+auto_active_code;
181
182                    }else{
183                        var url_temp = _ROOT_+"order/place_order?param="+window.btoa(payment_info);
184
185                    }
186                    if($("#pc-input")?.val()){
187                        url_temp += '&promoCode='+$("#pc-input").val();
188                    }
189                    window.location.href = url_temp
190                } else {
191                    layer.alert(data.msg, {'icon': 2, title: L('PROMPT_MESSAGE'), btn: [L('DETERMINE')]})
192                }
193            }
194        });
195    }
196/*<!-- Event snippet for Add to Cart (Ads) conversion page -->*/
197function add_google_conversion(type){
198    if(typeof gtag !== 'undefined')
199    {
200        if(type=='addcart'){
201            gtag('event', 'conversion', {'send_to': _AW_ADDCART_CONVERSION});
202        }
203        if(type=='register'){
204            gtag('event', 'conversion', {'send_to': _AW_REG_CONVERSION});
205        }
206    }
207}
208
209function add_google_step_conversion(step){
210    if(typeof ga !== 'undefined' && _LANG_ == 'it')
211    {
212        ga('require', 'ec');
213
214        ga('ec:setAction', 'checkout', {          // Transaction details are provided in an actionFieldObject.
215                'step':step,
216                'affiliation': 'xp-pen', // Affiliation (string).s
217            });
218
219        ga('send', 'pageview');     // Send transaction data with initial pageview.
220
221    }
222}
223
224function add_facebook_conversion(type,data){
225    if(typeof fbq !== 'undefined')
226    {
227        if(type=='addcart'){
228              fbq('track', 'AddToCart',
229                {
230                  content_ids:data.goodsId,
231                  content_type:"product",
232                  contents: [{'id': data.goodsId, 'quantity': data.goodsNum}]
233                }
234              );
235        }
236    }
237}
238
239function add_yahoo_conversion(type,data){
240    if(typeof dotp !== 'undefined')
241    {
242        if(type=='addcart') {
243            dotq.push(
244                {
245                    'projectId': '10000',
246                    'properties': {
247                        'pixelId': '10092007',
248                        'qstrings': {
249                            'et': 'custom',
250                            'ea': 'AddToCart',
251                            'product_id': data.goodsId
252                        }
253                    }
254                } );
255        }
256    }
257
258}
259
260function add_facebook_mkq_conversion(type,data){
261    if(typeof mkq !== 'undefined')
262    {
263        if(type=='addcart'){
264            mkq('track', 'AddToCart',
265                {
266                    content_ids:data.goodsId,
267                    content_type:"product",
268                    contents: [{'id': data.goodsId, 'quantity': data.goodsNum}]
269                }
270            );
271        }
272    }
273}
274
275function add_google_gtag_event(type,data){
276    console.log('type',type);
277    console.log('data',data);
278    if(typeof gtag !== 'undefined'){
279        switch (type){
280            case 'select_item':
281                gtag('event', 'select_content', {
282                    "content_type": "product",
283                    "items": data,
284                });
285                break;
286            case 'view_item':
287                gtag('event', 'view_item', {
288                    "content_type": "product",
289                    "items": data,
290                });
291                break;
292            case 'add_to_cart':
293
294                var goods_event_data = getSelectedGoodsSpecData(data);
295                console.log('add_to_cart',goods_event_data);
296                gtag('event', 'add_to_cart', {
297                    "items": goods_event_data,
298                });
299                break;
300            case 'purchase':
301                // in successed page noneed add
302                break;
303            case 'view_promotion':
304                $('.promotion_banner').click(function (){
305
306                })
307                break;
308            case 'view_cart':
309            case 'remove_from_cart':
310            case 'select_promotion':
311            case 'view_item_list':
312            case 'add_shipping_info':
313            case 'checkout_progress':
314            case 'begin_checkout':
315            case 'add_payment_info':
316                gtag('event', type, {
317                    "items": data,
318                });
319                break;
320            default:
321                var [event_name, pay_code] = type.split("@");
322                if(event_name == 'add_payment'){
323                    gtag('event', type, {
324                        "items": data,
325                    });
326                }
327                break;
328        }
329
330
331    }
332}
333
334function sendGaAddPaymentInfo(pay_code,data){
335    try {
336        //new add view cart
337        var event_param = [];
338        event_param['payment_type'] = pay_code;
339        let total_amount = 0;
340
341        data.forEach(function (i,v){
342            total_amount += parseFloat(v.price);
343        })
344        event_param['value'] = total_amount;
345        event_param['currency'] = order_currency;
346        event_param['items'] = data;
347        add_google_gtag_event('add_payment_info',event_param);
348    }catch (err){
349        console.log('err',err);
350    }
351
352}
353
354
355function getSelectedGoodsSpecData(data){
356    try {
357        var ga_event = [];
358        let price = $("#add_cart_button").attr('data-goods-price');
359        let goods_id = $("#add_cart_button").attr('data-goods-id');
360        let item_name = $('.goods-info-inner>.bq_h2_new').html();
361        let quantity = $("#goods_num").val();
362
363        if(typeof data.bundleInfo !== 'undefined'){
364            //has bundle_goods
365            $(".essential-list>.checkedBtn:checked").each(function (e,v){
366                var temp_id = $(v).attr('id');
367                var temp_name = $(v).siblings('.essential-label').find('.essential-product-name').html().match(/(.+?)\s?<br>/)?.[1];
368                var temp_price = $(v).siblings('.bundle_sku_list').children('.bundle_goods_id').attr('data-bundle-goods-price').match(/\d+(\.\d+)?/g)?.[0];
369                temp = {
370                    'value':temp_price,
371                    'item_id':temp_id,
372                    'item_name':temp_name,
373                    'quantity':quantity,
374                    'price':temp_price,
375                };
376                ga_event.push(temp)
377            })
378        }
379
380        var temp = {
381            'value':price,
382            'item_id':goods_id,
383            'item_name':item_name,
384            'quantity':quantity,
385            'price':price,
386        }
387        ga_event.push(temp)
388        return ga_event;
389    }catch (err){
390        console.log('err',err)
391    }
392
393}
394
395function sendAjaxViewCartData(){
396    try {
397        //new add view cart
398        var cart_event_param = [];
399        $('.nav_cart_list > li').each(function (e,v){
400            if(!$(v).is(":empty")){
401                let price = $(v).children('.nav_cart_text').children('.nav_cart_text_price').children('.cart_pri_span1').html().match(/\d+(\.\d+)?[^<]?/g)[0];
402                let goods_name = $(v).children('.nav_cart_text').children('.nav_cart_text_title').children('a').html();
403                let quantity = $(v).children('.nav_cart_text').children('.nav_cart_text_price').children('.cart_pri_span1').children('.nav_price_num').html();
404                if(typeof quantity == 'undefined'){
405                    quantity = $(v).children('.nav_cart_text').children('.nav_cart_text_price').children('.nav_price_num').html();
406                }
407                let currency = $(v).children('.nav_cart_text').children('.nav_cart_text_title').attr('data-currency');
408                var temp = {
409                    'value':price,
410                    'item_name':goods_name,
411                    'quantity':quantity,
412                    'price':price,
413                    'currency':currency
414                }
415                cart_event_param.push(temp)
416            }
417
418        })
419        if(cart_event_param.length>0){
420            add_google_gtag_event('view_cart',cart_event_param);
421        }
422    }catch (err){
423        console.log('err',err);
424    }
425
426}
427
428
429function sendViewCartData(){
430    try {
431        //new add view cart
432        var cart_event_param = [];
433        $('.form_content_tr').each(function (e,v){
434            if(!$(v).is(":empty")){
435                let price = $(v).children('.product_name').children('.shop').children('.product_price').children('.shop_price').html().match(/\d+(\.\d+)?[^<]?/g)[0];
436                let goods_name = $(v).children('.product_name').children('.shop').children('.text-single').html();
437                let quantity = $(v).children('.product_number').children('.goods_num_text').children('.text_box').val();
438                let currency = $(v).children('.product_name').attr('data-currency');
439                var temp = {
440                    'value':price,
441                    'item_name':goods_name,
442                    'quantity':quantity,
443                    'price':price,
444                    'currency':currency
445                }
446                cart_event_param.push(temp)
447            }
448
449        })
450        if(cart_event_param.length>0){
451            add_google_gtag_event('view_cart',cart_event_param);
452        }
453    }catch (err){
454        console.log('err',err);
455    }
456
457}
458
459function sendDelCartItemData(item){
460    try{
461        var cart_event_param = [];
462        let price = item.find('.shop_price').html().match(/\d+(\.\d+)?[^<]?/g)[0];
463        let goods_name = item.find('.text-single').html();
464        let quantity = item.find('.text_box').val();
465        let currency = item.find('.product_name').attr('data-currency');
466        if(typeof currency === 'undefined'){
467            currency = item.parents('.product_name').attr('data-currency');
468        }
469
470        var temp = {
471            'value':price,
472            'item_name':goods_name,
473            'quantity':quantity,
474            'price':price,
475            'currency':currency
476        }
477        cart_event_param.push(temp)
478        if(cart_event_param.length>0){
479            add_google_gtag_event('remove_from_cart',cart_event_param);
480        }
481    }catch (err){
482
483    }
484
485}
486
487function returnGaOrderGoodsEvents(){
488    var items = [];
489    if(typeof orderGoodsListData !== 'undefined' && orderGoodsListData.length>0){
490        orderGoodsListData.forEach(function (v){
491            let temp = {
492                "currency":v.currency,
493                "item_price":v.goodsInfo.price,
494                "item_id":v.goods_id,
495                "item_name":v.goodsInfo.goods_name,
496                "item_quantity":v.goods_num,
497            };
498            items.push(temp);
499        })
500    }
501    return items;
502}
503
504function sendGaBeginCheckout(){
505    try {
506        var event_param = [];
507        $(".goods-info-content").each(function (e,v) {
508            if(typeof $(v).attr('data-mobile-goods-div') === 'undefined' ){
509                let temp = {
510                    "currency":$(v).attr('data-currency'),
511                    "item_price":$(v).find('.order-price-list').attr('data-item-price'),
512                    "item_id":$(v).attr('data-goods-id'),
513                    "item_name":$(v).find('.padding8>a').attr('title'),
514                    "item_quantity":$(v).find('.quantity-form ').html().match(/\d+(\.\d+)?[^<]?/g)[0],
515                };
516                event_param.push(temp);
517            }
518        })
519        if(event_param.length>0){
520            add_google_gtag_event('begin_checkout',event_param);
521        }
522    }catch (err){
523        console.log('err',err)
524    }
525
526}
527function getGaGoodsInfo(){
528    var event_param = [];
529    $(".goods-info-content").each(function (e,v) {
530        let temp = {
531            "currency":$(v).attr('data-currency'),
532            "item_price":$(v).find('.order-price-list').attr('data-item-price'),
533            "item_id":$(v).attr('data-goods-id'),
534            "item_name":$(v).find('.padding8>a').attr('title'),
535            "item_quantity":$(v).find('.quantity-form ').html().match(/\d+(\.\d+)?[^<]?/g)[0],
536        };
537        event_param.push(temp);
538    })
539    return event_param;
540}
541
542function sendGaAddShippingInfo(){
543    try {
544        var event_param = [];
545        var shipping_info = JSON.parse($("#show_shipping_list").find(".active").find('.shipping_method').val());
546        var goods_item = getGaGoodsInfo();
547        event_param = {
548            "currency":$("#show_shipping_list").attr('data-currency'),
549            "shipping_price":$("#show_shipping_list").find(".active").find('.iuyny_1').children('.bq_5').html()?.match(/\d+(\.\d+)?[^<]?/g)?.[0]||"0",
550            "shipping_tier":shipping_info.shipping_name,
551            "goods_items":goods_item
552        };
553        add_google_gtag_event('add_shipping_info',event_param);
554    }catch (err){
555        console.log('err',err)
556    }
557}
558
559/*
560* 点击收藏商品
561* @param intval goods_id 	商品ID
562*/
563function collect_goods(goods_id) {
564    $.ajax({
565        type: "POST",
566        dataType: "json",
567        url: _ROOT_ + "Goods/collect_goods",//+tab,
568        data: {"goods_id": goods_id},
569        success: function (data) {
570            if (data.code == -1) {
571                login_box(data.msg);
572            } else if (data.code == 1) {
573                layer.msg(data.msg, {icon: 1});
574            } else {
575                layer.msg(data.msg, {icon: 2});
576            }
577        }
578    });
579}
580
581
582//用户登录弹出框
583function login_box(tip=L("PLEASE_LOGIN_FIRST")) {
584    // 移动端跳转不使用弹窗登录
585    if (navigator.userAgent.match(/mobile/i)) {
586        window.location.href = $('#openUser').find('a').attr('href');
587        return false;
588    }
589    if (uid == 0) {
590        $.ajax({
591            type: 'POST',
592            url: _SSO_DOMAIN_ + '/login/is_login?lang='+_LANG_,
593            xhrFields: {withCredentials: true},
594            crossDomain: true,
595            async: true,
596            dataType: 'json',
597            success:function(data) {
598                if (data.code == 1) {
599                    
600                    //登录
601                    $.post("/sso.login/index", data.data, function(ret) {
602                        if (ret.code == 1) {
603                            location.reload(); //刷新当前页面
604                        }
605                    })
606                }
607                if (data.code == 0) {
608                    layer.open({
609                        title: '',
610                        type: 2,
611                        closeBtn: 0, //关闭右上角关闭按钮
612                        // scrollbar: false, // 父页面 滚动条 禁止
613                        area: ['460px', '700px'],
614                        fix: true, //固定
615                        shadeClose: true, //点击弹层外区域关闭
616                        content: [$('#nav_accounts').find('a').attr('href')+'&iframeLogin=1', 'no'],
617                        success:function(){
618                            window.addEventListener ('message', function(event) {
619                                // 登录成功
620                                if (event.data == 'login_success') {
621                                    layer.closeAll(); //关闭当前弹窗
622                                    location.reload(); //刷新当前页面
623                                }
624                                // 登录失败
625                                if (event.data == 'login_error') {
626                                    layer.closeAll(); //关闭当前弹窗
627                                }
628                            })
629                        }
630                    })
631                }
632            }
633        })
634    } else {
635        layer.alert(tip, {icon: 2, title: L('PROMPT_MESSAGE'), btn: ['OK']});
636    }
637}
638
639/**
640 * 打开登录窗口
641 */
642function openLogin(jumpUrl) {
643    var jumpUrl = jumpUrl !== undefined ? jumpUrl: window.location.href;
644    var url = '/login/index_pop';
645    layer.open({
646        type: 2,
647        shadeClose: true, //开启遮罩关闭
648        title: false,
649        area: ['400px'],
650        fixed: true,
651        scrollbar: false,
652        content: url + "?ver=" + Math.random() + "&jumpUrl=" + jumpUrl,
653        success: function (layerObject, index) {
654            var sso_login =  layer.getChildFrame('#sso_login', index);
655            if(sso_login){
656                window.parent.location = sso_login.val();
657            }else {
658                layer.style(index, {
659                    height: '500px',
660                    top: '18%'
661                });
662                layer.iframeAuto(index);
663            }
664        }
665    });
666}
667
668function getStrLength(str) {
669    var len = str.length;
670    var reLen = 0;
671    for (var i = 0; i < len; i++) {
672        if (str.charCodeAt(i) >= 0 || str.charCodeAt(i) <= 128) {
673            // 全角    
674            reLen += 1;
675        } else {
676            reLen += 2;
677        }
678    }
679    return reLen;
680}
681
682//计算字符数(200个字内,用于回复框)
683function count_str(value, total_count) {
684    var len = getStrLength(value);
685    var count = total_count - len;
686    if (count < 0) {
687        count = -count;
688        return L('HAS_MORE_THAN', '<span class="red">' + count + '</span>');//'已经超过<span class="red">'+count+'</span>字';
689    } else {
690        if (len < 5) {
691            count = 5 - len;
692            return L('LEAST_WORDS', '<span>' + count + '</span>');//'最少15字,还需要输入<span>'+count+'</span>字';
693        } else {
694            count = total_count - len;
695            return L('ENTER_THE_WORD', '<span>' + count + '</span>');//'还可以输入<span>'+count+'</span>字';
696        }
697    }
698}
699
700/*
701	*检查邮箱格式是否正确
702*/
703function valiate_email(email) {
704    if ($.trim(email).length != 0) {
705        reg =  /^[A-Za-z0-9]+([A-Za-z0-9._+-])*@[a-z0-9_-]+(\.[a-zA-Z0-9_-]+)+$/i;
706        if (!reg.test(email)) {
707            return false;
708        }
709    }
710    return true;
711}
712
713/*
714	*检查电话号是是否正确
715*/
716function validate_phone_number(str) {
717    if ($.trim(str).length != 0) {
718        // reg = /^1[3-9]\d{9}$/;
719        reg = /^[0-9]*$/;
720        if (!reg.test(str)) {
721            return false;
722        }
723    }
724    return true;
725}
726
727//查询邮编的正则
728function validate_zipcode(str) {
729    if ($.trim(str).length != 0) {
730        reg = /^[0-9a-zA-Z- ]+$/;
731        if (!reg.test(str)) {
732            return false;
733        }
734    }
735    return true;
736}
737
738/**
739 * [closeIframe 关闭父级iframe]
740 */
741function closeIframe() {
742    var index = parent.layer.getFrameIndex(window.name); //获取窗口索引
743    parent.layer.close(index);
744}
745
746/**
747 * 给选中的瞄点进行高亮
748 * @param catid
749 */
750function selectNavPosition(catid) {
751    $(".nav_miaodian").find("li").each(function(index, element) {
752        if($(element).attr("data-jump")==catid){
753            $(element).addClass("ul_active");
754        }else{
755            $(element).removeClass("ul_active");
756        }
757    });
758}
759
760//定位中间的瞄点
761function positionNav(catid) {
762    var top = $(".scrollspy-example div[id='" + catid + "']").offset().top;
763    $('html, body').animate({scrollTop: top-parseInt($(window).height()/5)}, 500);
764    selectNavPosition(catid);
765    return false;
766}
767
768//保存优惠券
769function saveCoupon(couponId, couponType, goodsId) {
770    if (parseInt(uid) == 0) {
771        login_box(L('PLEASE_LOGIN_FIRST'));
772        return false;
773    }
774    var param = {"couponId": couponId, "couponType": couponType, "goodsId": goodsId};
775    var index = layer.load(1);
776    $.ajax({
777        type: "POST",
778        url: _ROOT_ + 'Coupon/ajax_clip_coupons',
779        dataType: 'json',
780        data: param,
781        success: function (data) {
782            layer.close(index);
783            if (data.code == -1) {
784                login_box(data.msg);
785            } else if (data.code == 1) {
786                layer.msg(data.msg, {icon: 1});
787            } else {
788                layer.alert(data.msg, {'icon': 2, title: L('PROMPT_MESSAGE'), btn: [L('DETERMINE')]})
789            }
790        }
791    });
792}
793
794
795//打开优惠券的详细
796function openCouponDetail(couponId, couponType, goodsId) {
797    layer.open({
798        type: 2,
799        title: "Coupon Details",
800        closeBtn: 1,
801        skin: 'layui-layer-rim',
802        anim: 0,
803        shade: [0.5,"#333"],
804        area: ['560px', "500px"],
805        content: _ROOT_ + 'Coupon/detail?couponId=' + couponId + "&couponType=" + couponType + "&goodsId=" + goodsId,
806    });
807}
808
809//页面加载内容
810$(function () {
811    $(document).off('click.bs.dropdown.data-api');
812    //自动展开
813
814
815
816    //点击缩略图显示大图
817    $(document).on("click", ".content_images .slide_box", function () {
818        var content_images = $(this).parents(".content_images");
819        if ($(this).hasClass("current")) {
820            content_images.find(".images_box").hide("fast");
821            content_images.find(".slide_box").removeClass("current");
822        } else {
823            $(this).addClass("current").siblings().removeClass("current");
824            content_images.find(".images_box").show("fast").find("img").attr("src", $(this).attr("data-src"));
825        }
826    });
827
828    //点击大图隐藏大图
829    $(document).on("click", ".content_images .images_box", function () {
830        var content_images = $(this).parents(".content_images");
831        $(this).hide("fast");
832        content_images.find(".slide_box").removeClass("current");
833    });
834
835    //快捷添加购物车
836    $(".add_cart_box_jie").click(function () {
837        var $this = $(this);
838        var thumbImg = $this.attr("data-thumb"), goodsId = $this.attr("data-goods-id"),
839            dataAction = $this.attr("data-action");
840        var goodsNum = parseInt($("#goods_num").val());
841        goodsNum = !isNaN(goodsNum) ? goodsNum : 1;
842        var  extraInfo = get_select_extraService();
843
844        var cartParam = {
845            goodsId: goodsId,
846            goodsNum: goodsNum,
847            thumbImg: thumbImg,
848            skuId: get_select_sku_id(),
849            extraId: extraInfo['extra_id'],
850            dataAction: dataAction,
851            distributionType: 0,
852            distributionTime: ''
853        };
854        addCart($this, cartParam);
855    });
856
857    //领取优惠券
858    $(document).on("click", ".clip_coupon", function () {
859        var $this = $(this);
860        var couponType = $this.attr("data-couponType"), couponId = $this.attr("data-couponId"),
861            goodsId = $this.attr("data-goodsId");
862        saveCoupon(couponId, couponType, goodsId);
863    });
864
865    //弹出优惠券信息
866    $(document).on("click", ".cart_coupon_open", function () {
867        var data_tumb = $(this).attr("data-tumb"), data_condition = $(this).attr("data-condition"),
868            data_save = $(this).attr("data-save");
869        var html = '<div class="coupon_open_boxs">\
870				<div class="img"><img src="' + data_tumb + '" border="0" width="60"></div>\
871				<div class="coupon_open_info">\
872					 <h3>' + data_save + '</h3>\
873					<div class="user_condition">' + data_condition + ' </div>\
874					<a href="#">Terms and Conditions </a>\
875					<span class="Checkout">(Discount at Checkout)</span>\
876				</div>\
877			</div>';
878        layer.tips(html, $(this), {
879            tips: [3, '#F5F5F5'],
880            time: 0,
881            area: ['380px', 'auto'],
882            closeBtn: 1
883        });
884    })
885
886    //会员中心左侧的折叠
887    $('.userMenu .menuTitle').click(function () {
888        var $ul = $(this).parents(".span").find('ul');
889        if ($ul.is(":hidden")) {
890            $ul.show();
891        } else {
892            $ul.hide();
893        }
894    });
895    var scroll_width = $(window).width();
896    $(window).resize(function () {
897        scroll_width = $(window).width();
898    })
899    var start_height = $(document).scrollTop();
900    var navigation_height = $('#navbar_header_height').outerHeight();
901    /* js代码 */
902    $(window).on('scroll', function () {
903        // 判断显示还是隐藏按钮
904        if ($(this).scrollTop() >= $(this).height()/3) {
905            $('#backTop').fadeIn('slow');
906        } else {
907            $('#backTop').fadeOut('slow');
908        }
909        //导航栏的显示隐藏
910
911        var end_height = $(this).scrollTop();
912        if(end_height > start_height && scroll_width > 992) {
913            // $('.store_nav_top_box').hide()
914            // $('.store_nav_bottom').addClass('fix_top')
915            // if(scroll_width < 800){
916            //     $('.mao_2').css('top',50)
917            // }else {
918            //     $('.mao_2').css('top',0)
919            // }
920        }else if(end_height == 0){
921            // $('.store_nav_top_box').show()
922            // $('.store_nav_bottom').removeClass('fix_top')
923            // if(scroll_width < 992 && scroll_width > 480){
924            //     $('.mao_2').css('top',75)
925            // }else if(scroll_width <= 480) {
926            //     $('.mao_2').css('top',56)
927            // }else {
928            //     $('.mao_2').css('top',150)
929            // }
930        }
931        // start_height = $(this).scrollTop();
932    });
933    var scrollTopTimer = null;
934    $('#backTop').click(function () {
935        // clearInterval(scrollTopTimer);
936        // scrollTopTimer = setInterval(function () {
937        //     var top = document.body.scrollTop || document.documentElement.scrollTop;
938        //     var speed = top / 4;
939        //     if (document.body.scrollTop != 0) {
940        //         document.body.scrollTop -= speed;
941        //     } else {
942        //         document.documentElement.scrollTop -= speed;
943        //     }
944        //     if (top <= 0) {
945        //         clearInterval(scrollTopTimer);
946        //     }
947        // }, 30);
948        $('html,body').animate({scrollTop:0},500)
949    });
950
951})
952
953// user个人中心遮罩层/侧边导航控制  My_order_control
954$(function() {
955    $(".My_order_control").click(function() {
956        $(".My_order_options").slideToggle();//侧边导航显示/隐藏
957        $(".yy_store_Mask").toggle(); //遮罩层显示/隐藏切换
958        $(document.body).toggleClass("html-body-overflow"); //滚动条禁用/开启切换
959    })
960})
961function scr992() {
962    if(document.body){
963        let clientWidth = document.body.clientWidth;//获取窗口宽度
964        if (clientWidth > 975) {
965            $(".yy_store_Mask").hide(); //遮罩层隐藏
966            $(".My_order_options").show(); //侧边导航显示
967        } else {
968            $(".My_order_options").hide(); //侧边导航隐藏
969        }
970    }
971}
972scr992();
973$(window).resize(function() {
974    scr992();
975});
976// My_order_control end
977
978/**
979 * 检查密码框是否正确
980 **/
981
982function validate_password(str) {
983    if ($.trim(str).length != 0) {
984        reg = /^(?=.*[A-Za-z~`!@#$%^&*()_+.=,-[\]<>/'":;|\\{}])(?=.*\d)[A-Za-z\d~`!@#$%^&*()_+.=,-[\]<>/'":;|\\{}]{6,18}$/;
985        if (!reg.test(str)) {
986            return false;
987        }
988    }
989    return true;
990}
991
992function pageSearch(key,list_class) {
993    let cards = document.querySelectorAll('.'+list_class)
994    let search_query = $('#'+key).val();
995    for (var i = 0; i < cards.length; i++) {
996        if(cards[i].textContent.toLowerCase()
997            .includes(search_query.toLowerCase())) {
998            $(cards[i]).show();
999        } else {
1000            $(cards[i]).hide();
1001        }
1002    }
1003}
1004$(function () {
1005    var s_title = $(".currency-select-box .select_box span");
1006    var s_select = $(".currency-select-box .select_box li");
1007    s_title.click(function (e) {
1008
1009      
1010        if($(this).hasClass('span_aa')){
1011            $(this).removeClass("span_aa");
1012
1013            $(this).next("ul").hide();
1014        }else{
1015            $(this).addClass("span_aa");
1016
1017            $(this).next("ul").show();
1018        }
1019
1020        e.stopPropagation();
1021
1022    });
1023
1024    s_select.click(function () {
1025
1026        var s_text = $(this).html();
1027
1028        var s_title_2 = $(this).parent('ul').prev("span");
1029
1030        $(".currency-select-box .select_box span").html(s_text).removeClass("span_aa");
1031
1032        $(this).parent('ul').hide();
1033
1034    });
1035
1036    $(document).click(function () {
1037
1038        s_title.removeClass("span_aa");
1039
1040        $(".currency-select-box .select_box ul").hide();
1041
1042    });
1043});
1044function reddit_checkout(data) {
1045    try {
1046        let reddit_data = {
1047            customEventName: 'InitiateCheckout',
1048            itemCount: data.itemCount,
1049            value: data.value,
1050            currency: data.currency,
1051            conversionId: 'CHECKOUT_'+new Date().getTime(),
1052        }
1053        let products = [];
1054        data.items.forEach(function (i, v) {
1055            let product = {
1056                id: i.item_spu_id,
1057                name: i.item_spu_name,
1058            }
1059            products.push(product);
1060        })
1061        reddit_data.products = products;
1062        add_reddit_ads( 'InitiateCheckout', reddit_data);
1063    } catch (e) {
1064        console.log('reddit error', e.message);
1065    }
1066}
1067function reddit_add_cart(data) {
1068    try {
1069        let reddit_data = {
1070            itemCount: data.itemCount,
1071            value: data.value,
1072            currency: data.currency,
1073            conversionId : 'ADD_CART_'+new Date().getTime(),
1074        }
1075        let products = [];
1076        data.items.forEach(function (i, v) {
1077            let product = {
1078                id: i.item_spu_id,
1079                name: i.item_spu_name,
1080            }
1081            products.push(product);
1082        })
1083        reddit_data.products = products;
1084        add_reddit_ads( 'AddToCart', reddit_data);
1085    } catch (e) {
1086        console.log('reddit error', e.message);
1087    }
1088}
1089function reddit_add_payment_info(data) {
1090    try {
1091        let reddit_data = {
1092            customEventName: 'AddPaymentInfo',
1093            itemCount: data.itemCount,
1094            value: data.value,
1095            currency: data.currency,
1096            conversionId: data.conversionId,
1097        }
1098        let products = [];
1099        data.items.forEach(function (v, i) {
1100            products.push({
1101                id: v.goodsInfo.id,
1102                name: v.goodsInfo.goods_name,
1103            });
1104        })
1105        reddit_data.products = products;
1106        add_reddit_ads('AddPaymentInfo', reddit_data);
1107    }catch (err) {
1108        console.log('err', err.message);
1109    }
1110}
1111function add_reddit_ads(type,data){
1112    try{
1113        console.log('reddit',type,data);
1114        if (typeof _LANG_ == 'undefined' || _LANG_ !== 'en') return;
1115        if (typeof rdt === 'undefined') return;
1116        switch (type){
1117            case 'AddToCart':
1118            case 'Purchase':
1119                rdt('track', type, data);
1120                break;
1121            case 'AddPaymentInfo':
1122            case 'InitiateCheckout':
1123                rdt('track', 'Custom', data);
1124                break;
1125            default:
1126                break;
1127        }
1128    }catch (e){
1129        console.log('reddit error',e.message);
1130    }
1131}

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.