PageSourceSearch

https://hachihachi.com.vn/v2/Sources/assets/js/bundle/main.js?v=660

js hachihachi.com.vn collected 2026-10-07 13:07:17 UTC 2,456,994 bytes, 39,833 lines download raw bytes

1var lib3p_pars = {
2    //param trao doi
3    hostname: '',
4    apiid: '',
5    apiapp: '',
6    apihistory: '',
7    cookieDomain: '',
8    showLogSystem: false,
9    showLogComponent: false,
10    language: 'vi-VN',
11    timeOrderCalculate: 60000,
12    //thoi gian chay ko dong bo
13    timeAsync: 100,
14
15    //url
16    redirect: '/',
17    urlLogin: '',
18    urlRegister: '',
19    urlCart: '',
20    urlTracking: '',
21    urlCartDelivery: '',
22    urlCartPayment: '',
23    urlRegisterSuccess: '',
24
25    api: {
26        public: {
27            connecttoken: '',
28            getuserinfo: '',
29            getactivecode: '',
30            All_GetBanners: '',
31            Home_GetProductPromotion: '',
32            Home_GetCategoryNew: '',
33            Home_GetProductNew: '',
34            Home_GetBrand: '',
35        },
36        auth: {
37            getuserinfo: '',
38            changepassword: '',
39        },
40    },
41
42    //param xu ly
43    KeyView: '',
44    KeyCaptcha: '',
45    scrollType: null,
46    scrollLast: 0,
47    scrollHeader: null,
48    scrollBody: null,
49    MobileClick: null,
50    ClipboardData: null,
51
52    khtt: {
53        ID: 0,
54        CardNo: '',
55        Cellphone: '',
56        FullName: '',
57        Cellphone: '',
58        StatusID: 0,
59        OrderBy: '',
60
61        CallBackOK: null,
62        CallBackCancel: null,
63        Success: false,
64        TypeKTTT: -1,
65    },
66    password: {
67        UserName: '',
68        PasswordOld: '',
69    },
70
71    otp: {
72        CallBackOK: null,
73        CallBackCancel: null,
74        Success: false,
75        Password: '',
76        PhoneNumber: '',
77        Timer: -1
78    },
79
80    runningCart: false,
81    home_category: [],
82    viewed: [],
83    viewedID: -1,
84    orderID: -1,
85    orderNo: '',
86    islockDiaglog: false,
87    reviews: {
88        Code: -1,
89        ProductName: '',
90        ImageSetting: '',
91        UnitPrice: 0,
92        IsHachi24h: false,
93
94        Rating: 0,
95        ListImage: [],
96    },
97    auth: {
98        isLogin: false,
99        access_token: '',
100        refresh_token: '',
101
102        fullName: '',
103        phoneNumber: '',
104        email: '',
105        memberID: '',
106        userName: '',
107    },
108    cart: {
109        timeOrderCalculateNext: null,
110        lastUser: '',
111        lastDate: null,
112        CouponDeleteID: 0,
113
114        Code: null,
115        OrderNo: '',
116        OrderBy: '',
117        OrderPhone: '',
118        OrderEmail: '',
119        OrderDate: null,
120        OrderTime: null,
121        StepDate: null,
122        EstDelivery: null,
123        TotalAmount: 0,
124        MembershipID: '',
125        PolicyMembership: 0,
126        DiscountMembership: 0,
127        CouponPaid: 0,
128        ShippingFee: 0,
129        ShippingDiscount: 0,
130        Payment: 0,
131        Remark: '',
132        RemarkClient: '',
133        StaffID: 0,
134        //1:dang nhap, 2:giao hang, 3:kiem tra,thanh toan
135        StatusID: 0,
136
137        TotalItemQuantity: 0,
138        TotalItemQuantityChoose: 0,
139        IsVAT: false,
140        VATCode: '',
141        VATCompany: '',
142        VATAddress: '',
143        VATEmail: '',
144        HasCoupon: false,
145        IsStock: false,
146        IsAppliedHachi24: false,
147        IsHachi24: false,
148        IsOnlyHachi24h: false,
149
150        DeliveryID: 0,
151        ReceivedBy: '',
152        Cellphone: '',
153        Province: 0,
154        District: 0,
155        Ward: 0,
156        Address: '',
157        FullAddress: '',
158
159        BankID: 0,
160        PaymentID: 0,
161        PaymentMethod: '',
162
163        CartDetails: [],
164        CartCoupon: [],
165        ListCoupon: [],
166        CartNoti: [],
167        CartCombo: [],
168        TypeOfTransportation: [],
169    },
170    productLike: '',
171    productDeleteID: 0,
172    deliveryID: 0,
173    location: null,
174    listDelivery: [],
175    listPayment: [],
176    listSuggestCombo: [],
177    idSuggestCombo: -1,
178    couponChange: false,
179    itemTemp: null,
180};
181window.lib3p_pars = lib3p_pars;
182
183
184var lib3p_helper = {
185    product: {
186        activeType: function (lstType, index, cls = "active") {
187            if (lstType && lstType.length > 0) {
188                lstType.removeClass(cls);
189                lstType.eq(index).addClass(cls);
190            }
191        },
192        activeOwlCarousel: function (owlCarousel, index = 0, action = "to.owl.carousel") {
193            owlCarousel.trigger(action, index);
194        },
195        productName: function(val) {
196            var ret = '';
197            if(lib3p_helper.utility.hasValueString(val) && val.length > 64) {
198                ret = val.substr(0, 64) + '...';
199            }
200            else {
201                ret = val;
202            }
203            return ret;
204        },
205        parseWithGTM: function(item, gtm, device, group, classchange) {   
206            if(lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
207                if(item.Alias.indexOf('?') > 0) {
208                    item.Alias = item.Alias + '&' + window.pars3p.seo.Query;
209                }
210                else {
211                    item.Alias = item.Alias + '?' + window.pars3p.seo.Query;
212                }                
213            }                    
214            if(device == 'mobile' && lib3p_helper.utility.hasValueString(item.ImageMobile)) {
215                item.ImageThumb = item.ImageMobile;
216            }
217            var result = '';
218            var pbase = item.PriceBase > 0 ? item.PriceBase : 0;
219            result += lib3p_helper.utility.hasValueString(classchange) ? '<div class="product-item ' + classchange + '">' : '<div class="product-item">';
220            if(item.IsHachi24h == true) {
221                result += '<div class="img"><a class="' + gtm + '" data-device="' + device + '" data-group="' + group + '" href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a><div class="imgbackground"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/hachi3h-text.svg" alt="..." loading="lazy" /></div></div>';
222            }
223            else if(item.IsNCC1 == true) {
224                result += '<div class="img"><a class="' + gtm + '" data-device="' + device + '" data-group="' + group + '" href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a><div class="imgbackgroundncc2"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/hachincc2-text.svg" alt="..." loading="lazy" /></div></div>';
225            }
226            else {
227                result += '<div class="img"><a class="' + gtm + '" data-device="' + device + '" data-group="' + group + '" href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a></div>';
228            }            
229            result += '<div class="name s13 cl-gregray800 medium500"><a class="' + gtm + '" data-device="' + device + '" data-group="' + group + '" href="' + item.Alias + '">' + lib3p_helper.product.productName(item.ProductName) + '</a></div>';
230            if(item.Price != item.PriceBase || item.IsBestPrice == true) {
231                var percent = 100 - Math.round(item.Price / item.PriceBase * 100);
232                if(item.IsBestPrice == true) {
233                    percent = 100 - Math.round(item.BestPrice / item.PriceBase * 100);
234                }                
235                result += '<div class="price-sub"><span class="sale s12 cl-gregray550 regular400">' + lib3p_helper.utility.formatMoney(item.PriceBase) + 'đ</span>&nbsp;<span class="sale-percent b-red500 s12 cl-white regular400">-' + percent + '%</span></div>';
236            }            
237            else {
238                result += '<div class="price-sub">&nbsp;</div>';
239            }
240            result += '<div class="price">'
241            if(item.Price != item.PriceBase || item.IsBestPrice == true) {
242                result += '<a data-device="' + device + '" data-group="' + group + '" class="' + gtm + ' s18 cl-red400 sibold600" href="' + item.Alias + '">' + lib3p_helper.utility.formatMoney(item.IsBestPrice == true ? item.BestPrice : item.Price) + 'đ</
242a>';
243            }
244            else {
245                result += '<a data-device="' + device + '" data-group="' + group + '" class="' + gtm + ' s18 cl-dakgreen800 sibold600" href="' + item.Alias + '">' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a>';
246            }
247            var Quantity = item.QuantityWithOrder >= 0 ? item.QuantityWithOrder : -1;
248            if(item.IsApproved == true && item.Quantity > 0 && item.QuantityWithOrder > 0 ) {
249                result += '<button type="button" aria-label="hachihachi" class="cart" data-code="' + item.Code + '" data-quantity="' + Quantity + '" data-name="' + item.ProductName + '" data-img="' + item.ImageThumb + '" data-price="' + item.Price + '" data-pricebase="' + pbase + '" data-hachi24="' + item.IsHachi24h + '" data-barcode="' + item.Barcode + '" onclick="lib3p.header.onProductAddCart_Click(this)"><img data-device="' + device + '" data-group="' + group + '" class="' + gtm + '" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon_cart.svg" alt="hachihachi" loading="lazy" /></button>';
250            }
251            result += '</div>';
252
253            result += '<div class="product-tag">';
254            if(item.IsGiftProduct == true) {
255                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_product.3.svg" alt="hachihachi" loading="lazy" />';
256            }
257            else if(item.IsGiftGroup == true) {
258                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_group.3.svg" alt="hachihachi" loading="lazy" />';
259            }
260            else if(item.IsBestSeller == true) {
261                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_ban_chay.3.svg" alt="hachihachi" loading="lazy" />';
262            }
263            else if(item.IsBestPrice == true) {
264                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gia_tot.3.svg" alt="hachihachi" loading="lazy" />';
265            }
266            else if(item.IsNew == true) {
267                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_new.3.svg" alt="hachihachi" loading="lazy" />';
268            }
269            else if(item.Is29K == true) {
270
271            }
272            result += '</div>';
273            
274            result += '</div>';
275            return result;
276        },
277        parseWithAction: function(item, act, classchange) {          
278            if(lib3p_helper.utility.hasValueString(item.ImageSmall)) {
279                item.ImageThumb = item.ImageSmall;
280            }
281            var result = '';
282            var pbase = item.PriceBase > 0 ? item.PriceBase : 0;
283            result += lib3p_helper.utility.hasValueString(classchange) ? '<div class="product-item ' + classchange + '">' : '<div class="product-item">';
284            if(item.IsHachi24h == true) {
285                result += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a><div class="imgbackground"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/hachi3h-text.svg" alt="..." loading="lazy" /></div></div>';
286            }
287            else if(item.IsNCC1 == true) {
288                result += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a><div class="imgbackgroundncc2"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/hachincc2-text.svg" alt="..." loading="lazy" /></div></div>';
289            }
290            else {
291                result += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a></div>';
292            }            
293            result += '<div class="name s13 cl-gregray800 medium500"><a href="' + item.Alias + '">' + lib3p_helper.product.productName(item.ProductName) + '</a></div>';
294            if(item.Price != item.PriceBase) {
295                var percent = 100 - Math.round(item.Price / item.PriceBase * 100);
296                result += '<div class="price-sub"><span class="sale s12 cl-gregray550 regular400">' + lib3p_helper.utility.formatMoney(item.PriceBase) + 'đ</span>&nbsp;<span class="sale-percent b-red500 s12 cl-white regular400">-' + percent + '%</span></div>';
297            }            
298            else {
299                result += '<div class="price-sub">&nbsp;</div>';
300            }
301            result += '<div class="price">'
302            if(item.Price != item.PriceBase) {
303                result += '<a class="s18 cl-red400 sibold600" href="' + item.Alias + '">
303' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a>';
304            }
305            else {
306                result += '<a class="s18 cl-dakgreen800 sibold600" href="' + item.Alias + '">' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a>';
307            }
308            var Quantity = item.QuantityWithOrder >= 0 ? item.QuantityWithOrder : -1;
309            if(item.IsApproved == true && item.Quantity > 0 && item.QuantityWithOrder > 0 ) {
310                var strAct = lib3p_helper.utility.hasValueString(act) ? act : 'lib3p.header.onProductAddCart_Click(this)';
311                result += '<button type="button" aria-label="hachihachi" class="cart" data-code="' + item.Code + '" data-quantity="' + Quantity + '" data-name="' + item.ProductName + '" data-img="' + item.ImageThumb + '" data-price="' + item.Price + '" data-pricebase="' + pbase + '" data-hachi24="' + item.IsHachi24h + '" data-barcode="' + item.Barcode + '" onclick="' + strAct + '"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon_cart.svg" alt="hachihachi" loading="lazy" /></button>';
312            }
313            result += '</div>';
314
315            result += '<div class="product-tag">';
316            if(item.IsGiftProduct == true) {
317                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_product.3.svg" alt="hachihachi" loading="lazy" />';
318            }
319            else if(item.IsGiftGroup == true) {
320                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_group.3.svg" alt="hachihachi" loading="lazy" />';
321            }
322            else if(item.IsBestSeller == true) {
323                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_ban_chay.3.svg" alt="hachihachi" loading="lazy" />';
324            }
325            else if(item.IsBestPrice == true) {
326                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gia_tot.3.svg" alt="hachihachi" loading="lazy" />';
327            }
328            else if(item.IsNew == true) {
329                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_new.3.svg" alt="hachihachi" loading="lazy" />';
330            }
331            else if(item.Is29K == true) {
332
333            }
334            result += '</div>';
335            
336            result += '</div>';
337            return result;
338        },
339        parseHTML: function(item, classchange) {   
340            if(lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
341                if(item.Alias.indexOf('?') > 0) {
342                    item.Alias = item.Alias + '&' + window.pars3p.seo.Query;
343                }
344                else {
345                    item.Alias = item.Alias + '?' + window.pars3p.seo.Query;
346                }                
347            }                    
348            var result = '';
349            var pbase = item.PriceBase > 0 ? item.PriceBase : 0;
350            result += lib3p_helper.utility.hasValueString(classchange) ? '<div class="product-item ' + classchange + '">' : '<div class="product-item">';
351            if(item.IsHachi24h == true) {
352                result += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a><div class="imgbackground"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/hachi3h-text.svg" alt="..." loading="lazy" /></div></div>';
353            }
354            else if(item.IsNCC1 == true) {
355                result += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a><div class="imgbackgroundncc2"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/hachincc2-text.svg" alt="..." loading="lazy" /></div></div>';
356            }
357            else {
358                result += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a></div>';
359            }            
360            result += '<div class="name s13 cl-gregray800 medium500"><a href="' + item.Alias + '">' + lib3p_helper.product.productName(item.ProductName) + '</a></div>';
361            if(item.Price != item.PriceBase) {
362                var percent = 100 - Math.round(item.Price / item.PriceBase * 100);
363                result += '<div class="price-sub"><span class="sale s12 cl-gregray550 regular400">' + lib3p_helper.utility.formatMoney(item.PriceBase) + 'đ</span>&nbsp;<span class="sale-percent b-red500 s12 cl-white regular400">-' + percent + '%</span></div>';
364            }            
365            else {
366                result += '<div class="price-sub">&nbsp;</div>';
367            }
368            result += '<div class="price">'
369            if(item.Price != item.PriceBase) {
370                result += '<a class="s18 cl-red400 sibold600" href="' + item.Alias + '">
370' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a>';
371            }
372            else {
373                result += '<a class="s18 cl-dakgreen800 sibold600" href="' + item.Alias + '">' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a>';
374            }
375            var Quantity = item.Quantity >= 0 ? item.Quantity : -1;
376            result += '<a class="cart" data-code="' + item.Code + '" data-quantity="' + Quantity + '" data-name="' + item.ProductName + '" data-img="' + item.ImageThumb + '" data-price="' + item.Price + '" data-pricebase="' + pbase + '" data-hachi24="' + item.IsHachi24h + '" data-barcode="' + item.Barcode + '" onclick="lib3p.header.onProductAddCart_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon_cart.svg" alt="hachihachi" loading="lazy" /></a>';
377            result += '</div>';
378
379            result += '<div class="product-tag">';
380            if(item.IsGiftProduct == true) {
381                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_product.3.svg" alt="hachihachi" loading="lazy" />';
382            }
383            else if(item.IsGiftGroup == true) {
384                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_group.3.svg" alt="hachihachi" loading="lazy" />';
385            }
386            else if(item.IsBestSeller == true) {
387                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_ban_chay.3.svg" alt="hachihachi" loading="lazy" />';
388            }
389            else if(item.IsBestPrice == true) {
390                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gia_tot.3.svg" alt="hachihachi" loading="lazy" />';
391            }
392            else if(item.IsNew == true) {
393                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_new.3.svg" alt="hachihachi" loading="lazy" />';
394            }
395            else if(item.Is29K == true) {
396
397            }
398            result += '</div>';
399            
400            result += '</div>';
401            return result;
402        },
403        parseHTML2: function(item) {
404            if(lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
405                if(item.Alias.indexOf('?') > 0) {
406                    item.Alias = item.Alias + '&' + window.pars3p.seo.Query;
407                }
408                else {
409                    item.Alias = item.Alias + '?' + window.pars3p.seo.Query;
410                }                
411            }  
412
413            var result = '';
414            var pbase = item.PriceBase > 0 ? item.PriceBase : 0;
415            result += '<div class="product-item b-white">';
416            result += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a></div>';
417            result += '<div class="info">';
418            
419            result += '<div class="name s14 cl-gregray900 medium500"><a href="' + item.Alias + '">' + lib3p_helper.product.productName(item.ProductName) + '</div>';            
420            result += '<div class="price">'
421            if(item.Price != item.PriceBase) {
422                result += '<a class="s15 cl-red400 sibold600" href="' + item.Alias + '">' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a><span class="sale s13 cl-gregray550 regular400">' + lib3p_helper.utility.formatMoney(item.PriceBase) + 'đ</span>';
423            }
424            else {
425                result += '<a class="s15 cl-dakgreen800 sibold600" href="' + item.Alias + '">' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a>';
426            }
427            //result += '<a class="cart" data-code="' + item.Code + '" data-name="' + item.ProductName + '" data-img="' + item.ImageThumb + '" data-price="' + item.Price + '" data-hachi24="' + item.IsHachi24h + '" data-barcode="' + item.Barcode + '" onclick="lib3p.header.onProductAddCart_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon_cart.svg" /></a>';
428            result += '</div>';
429            result += '<div class="action"><a class="cart b-dakgreen650 s13 cl-white sibold600" data-code="' + item.Code + '" data-name="' + item.ProductName + '" data-img="' + item.ImageThumb + '" data-price="' + item.Price + '" data-pricebase="' + pbase + '" data-hachi24="' + item.IsHachi24h + '" data-barcode="' + item.Barcode + '" onclick="lib3p.header.onProductMuaNgay_Click(this)">Mua ngay</a></div>';            
430            result += '</div>';
431            result += '<div class="del">
431<a onclick="lib3p.pageUserLike.onProduct_LikeDelete(this,' + item.Code + ')"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/close.svg" /></a></div>';
432            
433            result += '<div class="product-tag">';
434            if(item.IsGiftProduct == true) {
435                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_product.3.svg" alt="hachihachi" loading="lazy" />';
436            }
437            else if(item.IsGiftGroup == true) {
438                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_group.3.svg" alt="hachihachi" loading="lazy" />';
439            }
440            else if(item.IsBestSeller == true) {
441                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_ban_chay.3.svg" alt="hachihachi" loading="lazy" />';
442            }
443            else if(item.IsBestPrice == true) {
444                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gia_tot.3.svg" alt="hachihachi" loading="lazy" />';
445            }
446            else if(item.IsNew == true) {
447                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_new.3.svg" alt="hachihachi" loading="lazy" />';
448            }
449            else if(item.Is29K == true) {
450
451            }
452            result += '</div>';
453
454            result += '</div>';
455            return result;
456        },
457        parseHTML3: function(item, classchange, htmlBottom) {
458            var result = '';
459            var pbase = item.PriceBase > 0 ? item.PriceBase : 0;
460            result += lib3p_helper.utility.hasValueString(classchange) ? '<div class="product-item ' + classchange + '">' : '<div class="product-item">';
461            if(item.IsHachi24h == true) {
462                result += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a><div class="imgbackground"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/hachi3h-text.svg" alt="..." loading="lazy" /></div></div>';
463            }
464            else if(item.IsNCC1 == true) {
465                result += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a><div class="imgbackgroundncc2"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/hachincc2-text.svg" alt="..." loading="lazy" /></div></div>';
466            }
467            else {
468                result += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a></div>';
469            }            
470            result += '<div class="name s13 cl-gregray800 medium500"><a href="' + item.Alias + '">' + lib3p_helper.product.productName(item.ProductName) + '</a></div>';
471            if(item.Price != item.PriceBase) {
472                var percent = 100 - Math.round(item.Price / item.PriceBase * 100);
473                result += '<div class="price-sub"><span class="sale s12 cl-gregray550 regular400">' + lib3p_helper.utility.formatMoney(item.PriceBase) + 'đ</span>&nbsp;<span class="sale-percent b-red500 s12 cl-white regular400">-' + percent + '%</span></div>';
474            }            
475            else {
476                result += '<div class="price-sub">&nbsp;</div>';
477            }
478            result += '<div class="price">';
479            if(item.Price != item.PriceBase) {
480                result += '<a class="s18 cl-red400 sibold600" href="' + item.Alias + '">' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a>';
481            }
482            else {
483                result += '<a class="s18 cl-dakgreen800 sibold600" href="' + item.Alias + '">' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a>';
484            }     
485            result += '</div>';
486
487            if(lib3p_helper.utility.hasValueString(htmlBottom)) {
488                result += htmlBottom;
489            }
490
491            result += '<div class="product-tag">';
492            if(item.IsGiftProduct == true) {
493                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_product.3.svg" alt="hachihachi" loading="lazy" />';
494            }
495            else if(item.IsGiftGroup == true) {
496                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_group.3.svg" alt="hachihachi" loading="lazy" />';
497            }
498            else if(item.IsBestSeller == true) {
499                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_ban_chay.3.svg" alt="hachihachi" loading="lazy" />';
500            }
501            else if(item.IsBestPrice == true) {
502                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gia_tot.3.svg" alt="hachihachi" loading="lazy" />';
503            }
504            else if(item.IsNew == true) {
505                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_new.3.svg" alt="hachihachi" loading="lazy" />';
506            }
507            else if(item.Is29K == true) {
508
509            }
510            result += '</div>';
511            
512            result += '</div>';
513            return result;
514        },
515        parseHTML4: function(item, Is29K = false) {
516            if(lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
517                if(item.Alias.indexOf('?') > 0) {
518                    item.Alias = item.Alias + '&' + window.pars3p.seo.Query;
519                }
520                else {
521                    item.Alias = item.Alias + '?' + window.pars3p.seo.Query;
522                }                
523            }  
524
525            var result = '';
526            var pbase = item.PriceBase > 0 ? item.PriceBase : 0;
527            result += '<div class="product-item b-white">';
528            result += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a></div>';
529            result += '<div class="name">';
530            result += '<a class="txt s13 cl-gregray800 medium500" href="' + item.Alias + '">' + lib3p_helper.product.productName(item.ProductName) + '</a>';
531            result += '<a class="cart" data-code="' + item.Code + '" data-name="' + item.ProductName + '" data-img="' + item.ImageThumb + '" data-price="' + item.Price + '" data-pricebase="' + pbase + '" data-hachi24="' + item.IsHachi24h + '" data-barcode="' + item.Barcode + '" onclick="lib3p.header.onProductAddCart_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon_cart.svg" alt="hachihachi" loading="lazy" /></a>';
532            result += '</div>';
533
534            result += '<div class="product-tag">';
535            if(item.IsGiftProduct == true) {
536                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_product.3.svg" alt="hachihachi" loading="lazy" />';
537            }
538            else if(item.IsGiftGroup == true) {
539                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_group.3.svg" alt="hachihachi" loading="lazy" />';
540            }
541            else if(item.IsBestSeller == true) {
542                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_ban_chay.3.svg" alt="hachihachi" loading="lazy" />';
543            }
544            else if(item.IsBestPrice == true) {
545                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gia_tot.3.svg" alt="hachihachi" loading="lazy" />';
546            }
547            else if(item.IsNew == true) {
548                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_new.3.svg" alt="hachihachi" loading="lazy" />';
549            }
550            else if(item.Is29K == true) {
551
552            }
553            result += '</div>';
554
555            result += '</div>';
556            return result;
557        },
558        parseHTML5: function(item) {
559            if(lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
560                if(item.Alias.indexOf('?') > 0) {
561                    item.Alias = item.Alias + '&' + window.pars3p.seo.Query;
562                }
563                else {
564                    item.Alias = item.Alias + '?' + window.pars3p.seo.Query;
565                }                
566            }  
567
568            var result = '';
569            var pbase = item.PriceBase > 0 ? item.PriceBase : 0;
570            result += '<div class="product-item">';
571            result += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a></div>';
572            
573            result += '<div class="info">';
574            result += '<div class="name s13 cl-gregray800 medium500"><a href="' + item.Alias + '">' + lib3p_helper.product.productName(item.ProductName) + '</a></div>';
575            
576            result += '<div class="price-outline">';
577            result += '<div>';
578            if(item.Price != item.PriceBase) {
579                var percent = 100 - Math.round(item.Price / item.PriceBase * 100);
580                result += '<div class="price-sub"><span class="sale s12 cl-gregray550 regular400">' + lib3p_helper.utility.formatMoney(item.PriceBase) + 'đ</span>&nbsp;<span class="sale-percent b-red500 s12 cl-white regular400">-' + percent + '%</span></div>';
581            }            
582            else {
583                result += '<div class="price-sub">&nbsp;</div>';
584            }
585            result += '<div class="price">'
586            if(item.Price != item.PriceBase) {
587                result += '<a class="s18 cl-red400 sibold600" href="' + item.Alias + '">
587' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a>';
588            }
589            else {
590                result += '<a class="s18 cl-dakgreen800 sibold600" href="' + item.Alias + '">' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a>';
591            }            
592            result += '</div>';
593            result += '</div>';
594            result += '<a class="cart" data-code="' + item.Code + '" data-name="' + item.ProductName + '" data-img="' + item.ImageThumb + '" data-price="' + item.Price + '" data-pricebase="' + pbase + '" data-hachi24="' + item.IsHachi24h + '" data-barcode="' + item.Barcode + '" onclick="lib3p.header.onProductAddCart_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon_cart.svg" alt="hachihachi" loading="lazy" /></a>';
595            result += '</div>';
596
597            result += '</div>';            
598            
599            result += '<div class="product-tag">';
600            if(item.IsGiftProduct == true) {
601                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_product.3.svg" alt="hachihachi" loading="lazy" />';
602            }
603            else if(item.IsGiftGroup == true) {
604                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_group.3.svg" alt="hachihachi" loading="lazy" />';
605            }
606            else if(item.IsBestSeller == true) {
607                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_ban_chay.3.svg" alt="hachihachi" loading="lazy" />';
608            }
609            else if(item.IsBestPrice == true) {
610                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gia_tot.3.svg" alt="hachihachi" loading="lazy" />';
611            }
612            else if(item.IsNew == true) {
613                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_new.3.svg" alt="hachihachi" loading="lazy" />';
614            }
615            else if(item.Is29K == true) {
616
617            }
618            result += '</div>';
619
620            result += '</div>';
621            return result;
622        },
623        parseHTML6: function(item, hideaddcart) {
624            if(lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
625                if(item.Alias.indexOf('?') > 0) {
626                    item.Alias = item.Alias + '&' + window.pars3p.seo.Query;
627                }
628                else {
629                    item.Alias = item.Alias + '?' + window.pars3p.seo.Query;
630                }                
631            }  
632            
633            var result = '';
634            var pbase = item.PriceBase > 0 ? item.PriceBase : 0;
635            result += '<div class="product-blog sl-gregray100"><div class="product-item">';
636            result += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageThumb  + '" alt="' + item.ProductName + '" loading="lazy" /></a></div>';
637            result += '<div class="info">';
638            
639            result += '<div class="name s15 cl-gregray900 medium500"><a href="' + item.Alias + '">' + item.ProductName + '</div>';            
640            result += '<div class="price">'
641            if(item.Price != item.PriceBase) {
642                result += '<a class="s16 cl-red400 sibold600" href="' + item.Alias + '">' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a><span class="sale s13 cl-gregray550 regular400">' + lib3p_helper.utility.formatMoney(item.PriceBase) + 'đ</span>';
643            }
644            else {
645                result += '<a class="s16 cl-dakgreen800 sibold600" href="' + item.Alias + '">' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a>';
646            }
647            result += '</div>';
648            if(hideaddcart != true && item.IsApproved == true && item.Quantity > 0 && item.QuantityWithOrder > 0 ) {
649                result += '<div class="action"><a class="cart" data-code="' + item.Code + '" data-name="' + item.ProductName + '" data-img="' + item.ImageThumb + '" data-price="' + item.Price + '" data-pricebase="' + pbase + '" data-hachi24="' + item.IsHachi24h + '" data-barcode="' + item.Barcode + '" onclick="lib3p.header.onProductMuaNgay_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon_cart.svg" alt="hachihachi" loading="lazy" /></a></div>';
650            }
651            result += '</div>';
652            
653            result += '<div class="product-tag">';
654            if(item.IsGiftProduct == true) {
655                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_product.3.svg" alt="hachihachi" loading="lazy" />';
656            }
657            else if(item.IsGiftGroup == true) {
658                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_group.3.svg" alt="hachihachi" loading="lazy" />';
659            }
660            else if(item.IsBestSeller == true) {
661                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_ban_chay.3.svg" alt="hachihachi" loading="lazy" />';
662            }
663            else if(item.IsBestPrice == true) {
664                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gia_tot.3.svg" alt="hachihachi" loading="lazy" />';
665            }
666            else if(item.IsNew == true) {
667                result += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_new.3.svg" alt="hachihachi" loading="lazy" />';
668            }
669            else if(item.Is29K == true) {
670
671            }
672            result += '</div>';
673            
674            result += '</div></div>';
675            return result;
676        },
677
678    },
679    cart: {
680        copyCart: function(target) {
681            window.pars3p.cart.Code = target.Cart.Code;
682            window.pars3p.cart.OrderNo = target.Cart.OrderNo;
683            window.pars3p.cart.OrderBy = target.Cart.OrderBy;
684            window.pars3p.cart.OrderPhone = target.Cart.OrderPhone;
685            window.pars3p.cart.OrderEmail = target.Cart.OrderEmail;
686            window.pars3p.cart.OrderDate = target.Cart.OrderDate;
687            window.pars3p.cart.Step = target.Cart.Step;
688            window.pars3p.cart.StepDate = target.Cart.StepDate;
689            window.pars3p.cart.ChooseTime = target.Cart.ChooseTime;
690            window.pars3p.cart.EstDelivery = target.Cart.EstDelivery;
691            window.pars3p.cart.TotalAmount = target.Cart.TotalAmount;
692            window.pars3p.cart.MembershipID = target.Cart.MembershipID;
693            window.pars3p.cart.PolicyMembership = target.Cart.PolicyMembership;
694            window.pars3p.cart.DiscountMembership = target.Cart.DiscountMembership;
695            window.pars3p.cart.CouponPaid = target.Cart.CouponPaid;
696            window.pars3p.cart.CouponOrder = target.Cart.CouponOrder;
697            window.pars3p.cart.ShipmentID = target.Cart.ShipmentID;
698            window.pars3p.cart.ShippingFee = target.Cart.ShippingFee;
699            window.pars3p.cart.ShippingDiscount = target.Cart.ShippingDiscount;
700            window.pars3p.cart.Payment = target.Cart.Payment;
701            window.pars3p.cart.Remark = target.Cart.Remark;
702            window.pars3p.cart.StaffID = target.Cart.StaffID;
703            window.pars3p.cart.StatusID = target.Cart.StatusID;
704            window.pars3p.cart.IsVAT = target.Cart.IsVAT;
705            window.pars3p.cart.VATType = target.Cart.VATType;
706            window.pars3p.cart.VATCode = target.Cart.VATCode;
707            window.pars3p.cart.VATDVQHNS = target.Cart.VATDVQHNS;
708            window.pars3p.cart.VATIdentityNo = target.Cart.VATIdentityNo;
709            window.pars3p.cart.VATPassportNo = target.Cart.VATPassportNo;
710            window.pars3p.cart.VATBuyerName = target.Cart.VATBuyerName;
711            window.pars3p.cart.VATCompany = target.Cart.VATCompany;
712            window.pars3p.cart.VATAddress = target.Cart.VATAddress;
713            window.pars3p.cart.VATEmail = target.Cart.VATEmail;
714            window.pars3p.cart.VATPhone = target.Cart.VATPhone;
715            window.pars3p.cart.VATContactName = target.Cart.VATContactName;
716            window.pars3p.cart.VATUnion = target.Cart.VATUnion;
717            window.pars3p.cart.HasCoupon = target.Cart.HasCoupon;
718            window.pars3p.cart.IsStock = target.Cart.IsStock;
719            window.pars3p.cart.IsAppliedHachi24 = target.Cart.IsAppliedHachi24;
720            window.pars3p.cart.IsHachi24 = target.Cart.IsHachi24;                 
721            window.pars3p.cart.IsOnlyHachi24h = target.Cart.IsOnlyHachi24h;
722            window.pars3p.cart.IsGift = target.Cart.IsGift;    
723            window.pars3p.cart.IsGiftReceived = target.Cart.IsGiftReceived;
724            window.pars3p.cart.GiftBeforeTime = target.Cart.GiftBeforeTime;
725            window.pars3p.cart.BankID = target.Cart.BankID;
726            window.pars3p.cart.PaymentID = target.Cart.PaymentID;
727            window.pars3p.cart.PaymentMethod = target.Cart.PaymentMethod;
728            window.pars3p.cart.TotalItemQuantity = target.TotalItemQuantity;
729            window.pars3p.cart.Weight = target.Cart.Weight;
730            window.pars3p.cart.WeightTransfer = target.Cart.WeightTransfer;
731            window.pars3p.cart.CBM = target.Cart.CBM;        
732            window.pars3p.cart.MaxEstimate24h = target.Cart.MaxEstimate24h;
733            window.pars3p.cart.MaxEstimateNormal = target.Cart.MaxEstimateNormal;
734            window.pars3p.cart.FailCoupon = target.Cart.FailCoupon;
735            window.pars3p.cart.FailHachi24 = target.Cart.FailHachi24;
736            window.pars3p.cart.TransportName = target.Cart.TransportName;
737            window.pars3p.cart.RemarkClient = target.Cart.RemarkClient;
738            window.pars3p.cart.ListGift = target.Cart.ListGift;
739            window.pars3p.cart.DeliveryID = target.Cart.DeliveryID;
740            window.pars3p.cart.ReceivedBy = target.Cart.ReceivedBy;
741            window.pars3p.cart.Cellphone = target.Cart.Cellphone;
742            window.pars3p.cart.Province = target.Cart.Province;
743            window.pars3p.cart.District = target.Cart.District;
744            window.pars3p.cart.Ward = target.Cart.Ward;
745            window.pars3p.cart.Address = target.Cart.Address;
746            window.pars3p.cart.FullAddress = target.Cart.FullAddress;                         
747            if(lib3p_helper.utility.hasListValue(target.CartDetails)) {
748                window.pars3p.cart.CartDetails = target.CartDetails;
749            }
750            if(lib3p_helper.utility.hasListValue(target.CartCoupon)) {
751                window.pars3p.cart.CartCoupon = target.CartCoupon;
752            }
753            if(lib3p_helper.utility.hasListValue(target.ListCoupon)) {
754                window.pars3p.cart.ListCoupon = target.ListCoupon;
755            }
756            if(lib3p_helper.utility.hasListValue(target.CartNoti)) {
757                window.pars3p.cart.CartNoti = target.CartNoti;
758            }
759            if(lib3p_helper.utility.hasListValue(target.CartCombo)) {
760                window.pars3p.cart.CartCombo = target.CartCombo;
761            }
762            if(lib3p_helper.utility.hasListValue(target.TypeOfTransportation)) {
763                window.pars3p.cart.TypeOfTransportation = target.TypeOfTransportation;
764            }
765            window.pars3p.cart.OrderDate = lib3p_helper.utility.dateGet(window.pars3p.cart.OrderDate);
766            window.pars3p.cart.StepDate = lib3p_helper.utility.dateGet(window.pars3p.cart.StepDate);
767            window.pars3p.cart.EstDelivery = lib3p_helper.utility.dateGet(window.pars3p.cart.EstDelivery);
768            window.pars3p.cart.ChooseTime = lib3p_helper.utility.dateGet(window.pars3p.cart.ChooseTime);
769        },
770        getCartInfo: function() {
771            return {
772                Code: window.pars3p.cart.Code,
773                OrderNo: window.pars3p.cart.OrderNo,
774                OrderBy: window.pars3p.cart.OrderBy,
775                OrderPhone: window.pars3p.cart.OrderPhone,
776                OTPInput: window.pars3p.cart.OrderPhoneOTP,
777                OrderEmail: window.pars3p.cart.OrderEmail,
778                OrderDate: window.pars3p.cart.OrderDate,
779                Step: window.pars3p.cart.Step,
780                StepDate: window.pars3p.cart.StepDate,
781                ChooseTime: window.pars3p.cart.ChooseTime,
782                EstDelivery: window.pars3p.cart.EstDelivery,
783                TotalAmount: window.pars3p.cart.TotalAmount,
784                MembershipID: window.pars3p.cart.MembershipID,
785                PolicyMembership: window.pars3p.cart.PolicyMembership,
786                DiscountMembership: window.pars3p.cart.DiscountMembership,
787                CouponPaid: window.pars3p.cart.CouponPaid,
788                CouponOrder: window.pars3p.cart.CouponOrder,
789                ShipmentID: window.pars3p.cart.ShipmentID,
790                ShippingFee: window.pars3p.cart.ShippingFee,
791                ShippingDiscount: window.pars3p.cart.ShippingDiscount,
792                Payment: window.pars3p.cart.Payment,
793                Remark: window.pars3p.cart.Remark,
794                StaffID: window.pars3p.cart.StaffID,
795                StatusID: window.pars3p.cart.StatusID,
796                IsVAT: window.pars3p.cart.IsVAT,
797                VATType: window.pars3p.cart.VATType,
798                VATCode: window.pars3p.cart.VATCode,
799                VATDVQHNS: window.pars3p.cart.VATDVQHNS,
800                VATIdentityNo: window.pars3p.cart.VATIdentityNo,
801                VATPassportNo: window.pars3p.cart.VATPassportNo,
802                VATBuyerName: window.pars3p.cart.VATBuyerName,
803                VATCompany: window.pars3p.cart.VATCompany,
804                VATAddress: window.pars3p.cart.VATAddress,
805                VATEmail: window.pars3p.cart.VATEmail,
806                VATPhone: window.pars3p.cart.VATPhone,
807                VATContactName: window.pars3p.cart.VATContactName,
808                VATUnion: window.pars3p.cart.VATUnion,
809                HasCoupon: window.pars3p.cart.HasCoupon,
810                IsStock: window.pars3p.cart.IsStock,
811                IsAppliedHachi24: window.pars3p.cart.IsAppliedHachi24,
812                IsHachi24: window.pars3p.cart.IsHachi24,                  
813                IsOnlyHachi24h: window.pars3p.cart.IsOnlyHachi24h,    
814                IsGift: window.pars3p.cart.IsGift,
815                IsGiftReceived: window.pars3p.cart.IsGiftReceived,
816                GiftBeforeTime: window.pars3p.cart.GiftBeforeTime,
817                BankID: window.pars3p.cart.BankID,
818                PaymentID: window.pars3p.cart.PaymentID,
819                PaymentMethod: window.pars3p.cart.PaymentMethod,
820                TotalItemQuantity: window.pars3p.cart.TotalItemQuantity,
821                Weight: window.pars3p.cart.Weight,
822                WeightTransfer: window.pars3p.cart.WeightTransfer,
823                CBM: window.pars3p.cart.CBM,
824                MaxEstimate24h: window.pars3p.cart.MaxEstimate24h,
825                MaxEstimateNormal: window.pars3p.cart.MaxEstimateNormal,
826                FailCoupon: window.pars3p.cart.FailCoupon,
827                FailHachi24: window.pars3p.cart.FailHachi24,                
828                RemarkClient: window.pars3p.cart.RemarkClient,
829
830                DeliveryID: window.pars3p.cart.DeliveryID,
831                ReceivedBy: window.pars3p.cart.ReceivedBy,
832                Cellphone: window.pars3p.cart.Cellphone,
833                Province: window.pars3p.cart.Province,
834                District: window.pars3p.cart.District,
835                Ward: window.pars3p.cart.Ward,
836                Address: window.pars3p.cart.Address,
837                FullAddress: window.pars3p.cart.FullAddress,
838            };
839        },
840        dupCart: function(target, isinfo) {
841            var ret = {
842                Code: target.Code,
843                OrderNo: target.OrderNo,
844                OrderBy: target.OrderBy,
845                OrderPhone: target.OrderPhone,
846                OrderPhoneOTP: target.OrderPhoneOTP,
847                OrderEmail: target.OrderEmail,
848                OrderDate: target.OrderDate,
849                Step: target.Step,
850                StepDate: target.StepDate,
851                ChooseTime: target.ChooseTime,
852                EstDelivery: target.EstDelivery,
853                TotalAmount: target.TotalAmount,
854                MembershipID: target.MembershipID,
855                PolicyMembership: target.PolicyMembership,
856                DiscountMembership: target.DiscountMembership,
857                CouponPaid: target.CouponPaid,
858                CouponOrder: target.CouponOrder,
859                ShipmentID: target.ShipmentID,
860                ShippingFee: target.ShippingFee,
861                ShippingDiscount: target.ShippingDiscount,
862                Payment: target.Payment,
863                Remark: target.Remark,
864                StaffID: target.StaffID,
865                StatusID: target.StatusID,
866                IsVAT: target.IsVAT,
867                VATType: target.VATType,
868                VATCode: target.VATCode,
869                VATDVQHNS: target.VATDVQHNS,
870                VATIdentityNo: target.VATIdentityNo,
871                VATPassportNo: target.VATPassportNo,
872                VATBuyerName: target.VATBuyerName,
873                VATCompany: target.VATCompany,
874                VATAddress: target.VATAddress,
875                VATEmail: target.VATEmail,
876                VATPhone: target.VATPhone,
877                VATContactName: target.VATContactName,
878                VATUnion: target.VATUnion,
879                HasCoupon: target.HasCoupon,
880                IsStock: target.IsStock,
881                IsAppliedHachi24: target.IsAppliedHachi24,
882                IsHachi24: target.IsHachi24,                  
883                IsOnlyHachi24h: target.IsOnlyHachi24h,    
884                IsGift: target.IsGift,
885                IsGiftReceived: target.IsGiftReceived,
886                GiftBeforeTime: target.GiftBeforeTime,
887                BankID: target.BankID,
888                PaymentID: target.PaymentID,
889                PaymentMethod: target.PaymentMethod,
890                TotalItemQuantity: target.TotalItemQuantity,
891                Weight: target.Weight,
892                WeightTransfer: target.WeightTransfer,
893                CBM: target.CBM,
894                MaxEstimate24h: target.MaxEstimate24h,
895                MaxEstimateNormal: target.MaxEstimateNormal,
896                FailCoupon: target.FailCoupon,
897                FailHachi24: target.FailHachi24,                
898                RemarkClient: target.RemarkClient,
899
900                DeliveryID: target.DeliveryID,
901                ReceivedBy: target.ReceivedBy,
902                Cellphone: target.Cellphone,
903                Province: target.Province,
904                District: target.District,
905                Ward: target.Ward,
906                Address: target.Address,
907                FullAddress: target.FullAddress,
908                CartDetails: [],
909                CartCoupon: [],
910                ListCoupon: [],
911                CartNoti: [],
912                CartCombo: [],
913                ListGift: []
914            };
915            ret.OrderDate = lib3p_helper.utility.dateGet(ret.OrderDate);
916            ret.StepDate = lib3p_helper.utility.dateGet(ret.StepDate);
917            ret.EstDelivery = lib3p_helper.utility.dateGet(ret.EstDelivery);
918            ret.ChooseTime = lib3p_helper.utility.dateGet(ret.ChooseTime);
919            if(isinfo != true) {
920                if(lib3p_helper.utility.hasListValue(target.CartDetails)) {
921                    ret.CartDetails = target.CartDetails;
922                }
923                if(lib3p_helper.utility.hasListValue(target.CartCoupon)) {
924                    ret.CartCoupon = target.CartCoupon;
925                }
926                if(lib3p_helper.utility.hasListValue(target.List
926Coupon)) {
927                    ret.ListCoupon = target.ListCoupon;
928                }
929                if(lib3p_helper.utility.hasListValue(target.CartNoti)) {
930                    ret.CartNoti = target.CartNoti;
931                }
932                if(lib3p_helper.utility.hasListValue(target.CartCombo)) {
933                    ret.CartCombo = target.CartCombo;
934                }
935                if(lib3p_helper.utility.hasListValue(target.ListGift)) {
936                    ret.ListGift = target.ListGift;
937                }
938                if(lib3p_helper.utility.hasListValue(target.TypeOfTransportation)) {
939                    ret.TypeOfTransportation = target.TypeOfTransportation;
940                }
941            }
942            return ret;
943        }
944    },
945    utility: {
946        uuidv4: function() {
947            return 'xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx'
948            .replace(/[xy]/g, function (c) {
949                const r = Math.random() * 16 | 0, 
950                    v = c == 'x' ? r : (r & 0x3 | 0x8);
951                return v.toString(16);
952            });
953        },
954        hasListValue: function (value) {
955            return !(value === undefined || value === null || value.length == 0);
956        },
957        hasValue: function (value) {
958            return !(value === undefined || value === null);
959        },
960        hasValueString: function (value) {
961            return !(value === undefined || value === null || value === '');
962        },
963        formatMoney: function(num, lang) {
964            if(!lib3p_helper.utility.hasValueString(lang)) {
965                lang = window.pars3p.language;
966            }
967            return (new Intl.NumberFormat(lang).format(Math.trunc(num)));
968            //return (new Intl.NumberFormat('en-US').format(Math.trunc(num)));
969        },
970        formatDateDDMMYYYY: function(dt) {
971            if(lib3p_helper.utility.hasValue(dt) && dt.getMonth) {
972                var day = dt.getDate();
973                if(day < 10) {
974                    day = "0" + day;
975                }
976                var month = dt.getMonth() + 1;
977                if(month < 10) {
978                    month = "0" + month;
979                }
980                return day + '/' + month + '/' + dt.getFullYear();                
981            }
982            return '';
983        },
984        formatDateDDMMYYYYHHmm: function(dt) {
985            if(lib3p_helper.utility.hasValue(dt) && dt.getMonth) {
986                var day = dt.getDate();
987                if(day < 10) {
988                    day = "0" + day;
989                }
990                var month = dt.getMonth() + 1;
991                if(month < 10) {
992                    month = "0" + month;
993                }
994                var h = dt.getHours();
995                if(h < 10) {
996                    h = "0" + h;
997                }
998                var m = dt.getMinutes();
999                if(m < 10) {
1000                    m = "0" + m;
1001                }
1002                if(dt.getHours() > 0) {
1003                    return day + '/' + month + '/' + dt.getFullYear() + ' ' + h + ':' + m; 
1004                }
1005                else {
1006                    return day + '/' + month + '/' + dt.getFullYear(); 
1007                }
1008            }
1009            return '';
1010        },
1011        dateGet: function(dt) {
1012            if(!(dt === undefined || dt === null || dt === '')) {
1013                return new Date(dt);
1014            }
1015            else {
1016                return null;
1017            }
1018        },
1019        dateDaysInMonth: function(dt) {
1020            if(pdt != undefined && pdt != null && pdt.getFullYear) {
1021                var year = dt.getFullYear();
1022                var month = dt.getMonth();
1023                var isLeapYear = (((year % 4 === 0) && (year % 100 !== 0)) || (year % 400 === 0));
1024                var daysInMonth = [31, (isLeapYear ? 29 : 28), 31, 30, 31, 30, 31, 31, 30, 31, 30, 31][month];
1025                return daysInMonth;
1026            }
1027            return null;
1028        },
1029        dateAddYear: function (pdt, num) {    
1030            if(pdt != undefined && pdt != null && pdt.getFullYear) {
1031                var y = pdt.getFullYear();
1032                y += num;
1033                if(y > 1900) {
1034                    var dt = new Date(y, pdt.getMonth(), pdt.getDate());
1035                    return dt;
1036                }
1037            }
1038            return null;
1039        },
1040        dateAddMonth: function(pdt, num) {    
1041            if(pdt != undefined && pdt != null && pdt.getTime) {
1042                var dt = new Date(pdt.getTime());
1043                var n = dt.getDate();
1044                dt.setDate(1);
1045                var month = dt.getMonth() + num;
1046                if(month > 11) {
1047                    var y = 1;
1048                    dt = lib3p_helper.utility.dateAddYear(dt, y);
1049                    month -= 11;
1050                }
1051                dt.setMonth(month);
1052                dt.setDate(Math.min(n, lib3p_helper.utility.dateDaysInMonth(dt)));
1053                return dt;
1054            }
1055            return null;
1056        },
1057        dateAddDay: function(dt, num) {
1058            if(dt != undefined && dt != null && dt.getTime) {
1059                return new Date(dt.getTime() + (num * 24 * 60 * 60000));
1060            }
1061            return null;
1062        },
1063        dateAddHour: function(dt, num) {
1064            if(dt != undefined && dt != null && dt.getTime) {
1065                return new Date(dt.getTime() + (num * 60 * 60000));
1066            }
1067            return null;
1068        },
1069        dateAddMinute: function(dt, num) {
1070            if(dt != undefined && dt != null && dt.getTime) {
1071                return new Date(dt.getTime() + (num * 60000));
1072            }
1073            return null;
1074        },
1075        dateCopyTime: function(dtNgay, dtTime) {
1076            if(dtNgay != undefined && dtNgay != null && dtTime != undefined && dtTime != null) {
1077                var dt = new Date(dtNgay.getFullYear(), dtNgay.getMonth(), dtNgay.getDate(), dtTime.getHours(), dtTime.getMinutes(), dtTime.getSeconds());
1078                return dt;
1079            }
1080            return null;
1081        },
1082        dateIsValid: function(day, month, year) {
1083            const date = new Date(year, month - 1, day);
1084            return (date.getFullYear() === year && date.getMonth() === month - 1 && date.getDate() === day);
1085        },
1086        replaceAll: function (str, searchValue, replaceValue) {
1087            if (lib3p_helper.utility.hasValueString(str)) {
1088                if (str.indexOf(searchValue) > -1) {
1089                    return str.split(searchValue).join(replaceValue);
1090                }
1091            }
1092            return str;
1093        },
1094        stringFormat: function(str, p1, p2, p3) {
1095            if(this.hasValueString(str)) {
1096                if(this.hasValue(p1)) {
1097                    str = str.replace("{0}", p1);
1098                }
1099                if(this.hasValue(p2)) {
1100                    str = str.replace("{1}", p2);
1101                }
1102                if(this.hasValue(p3)) {
1103                    str = str.replace("{2}", p3);
1104                }
1105            }
1106            return str;
1107        },
1108        stringFormatMore: function (str, params) {
1109            /// <summary>
1110            /// Format
1111            /// </summary>
1112            /// <param name="str" type="string">str input. Example: a{0}, t{0}e{1}</param>
1113            /// <param name="params" type="object">List params. Example: param1, param2</param>
1114    
1115            var result = '';
1116            if (!arguments.length || arguments.length == 1)
1117                return str;
1118            var args = arguments;
1119            result = str;
1120            for(var index = 0; index < args.length; index++) {
1121                if (index > 0) {
1122                    result = result.replace(RegExp('\\{' + (index - 1) + '\\}', 'gi'), args[index]);
1123                }
1124            }
1125            /* for (arg in args) {
1126                var index = parseInt(arg);
1127                if (index > 0) {
1128                    index -= 1;
1129                    result = result.replace(RegExp('\\{' + index + '\\}', 'gi'), args[arg]);
1130                }
1131            } */
1132            return result;
1133        },
1134        isEmail: function(str) {
1135            if (lib3p_helper.utility.hasValueString(str)) {
1136                //return /^[a-z0-9][a-z0-9-_\.]+@([a-z]|[a-z0-9]?[a-z0-9-]+[a-z0-9])\.[a-z0-9]{2,10}(?:\.[a-z]{2,10})?$/.test(str);
1137                return /[a-z0-9!#$%&'*+/=?^_`{|}~-]+(?:\.[a-z0-9!#$%&'*+/=?^_`{|}~-]+)*@(?:[a-z0-9](?:[a-z0-9-]*[a-z0-9])?\.)+[a-z0-9](?:[a-z0-9-]*[a-z0-9])?/.test(str);
1138            }
1139            return false;
1140        },
1141        isNumberInteger: function(str) {
1142            if (lib3p_helper.utility.hasValueString(str)) {
1143                //return /[0-9]+/.test(str);
1144                return /^\d+\.?\d*$/.test(str);
1145            }
1146            return false;
1147        },
1148        removeUnicode: function(str) 
1149		{  
1150            str = str.replace(/à|á|ạ|ả|ã|â|ầ|ấ|ậ|ẩ|ẫ|ă|ằ|ắ|ặ|ẳ|ẵ/g,"a");  
1151            str = str.replace(/è|é|ẹ|ẻ|ẽ|ê|ề|ế|ệ|ể|ễ/g,"e");  
1152            str = str.replace(/ì|í|ị|ỉ|ĩ/g,"i");  
1153            str = str.replace(/ò|ó|ọ|ỏ|õ|ô|ồ|ố|ộ|ổ|ỗ|ơ|ờ|ớ|ợ|ở|ỡ/g,"o");  
1154            str = str.replace(/ù|ú|ụ|ủ|ũ|ư|ừ|ứ|ự|ử|ữ/g,"u");  
1155            str = str.replace(/ỳ|ý|ỵ|ỷ|ỹ/g,"y");  
1156            str = str.replace(/đ/g,"d");
1157
1158            str = str.replace(/À|Á|Ạ|Ả|Ã|Â|Ầ|Ấ|Ậ|Ẩ|Ẫ|Ă|Ằ|Ắ|Ặ|Ẳ|Ẵ/g,"A");  
1159            str = str.replace(/È|É|Ẹ|Ẻ|Ẽ|Ê|Ề|Ế|Ệ|Ể|Ễ/g,"E");  
1160            str = str.replace(/Ì|Í|Ị|Ỉ|Ĩ/g,"I");  
1161            str = str.replace(/Ò|Ó|Ọ|Ỏ|Õ|Ô|Ồ|Ố|Ộ|Ổ|Ỗ|Ơ|Ờ|Ớ|Ợ|Ở|Ỡ/g,"O");  
1162            str = str.replace(/Ù|Ú|Ụ|Ủ|Ũ|Ư|Ừ|Ứ|Ự|Ử|Ữ/g,"U");  
1163            str = str.replace(/Ỳ|Ý|Ỵ|Ỷ|Ỹ/g,"Y");  
1164            str = str.replace(/Đ/g,"D");
1165
1166            ////xoa ky tu dat biet
1167            //str= str.replace(/!|@|%|\^|\*|\(|\)|\+|\=|\<|\>|\?|\/|,|\.|\:|\;|\'| |\"|\&|\#|\[|\]|~|$|_/g,c);             
1168            //str= str.replace(`/${c}+${c}/g`,c);
1169            //str= str.replace(`/^${c}+|${c}+$/g`,"");  
1170		 
1171            return str;  
1172		},
1173        path(link1, link2, link3) {
1174            if(lib3p_helper.utility.hasValueString(link1)) {
1175                var rtn = link1;
1176                if(lib3p_helper.utility.hasValueString(link2)) {
1177                    if(link1.slice(-1) != '/') {
1178                        if(link2.startsWith('/')) {
1179                            rtn = link1 + link2;
1180                        }
1181                        else {
1182                            rtn = link1 + '/' + link2;
1183                        }
1184                    }
1185                    else {
1186                        if(link2.startsWith('/')) {
1187                            rtn = link1 + link2.substring(1);
1188                        }
1189                        else {
1190                            rtn = link1 + link2;
1191                        }
1192                    }
1193                    if(lib3p_helper.utility.hasValueString(link3)) {
1194                        if(rtn.slice(-1) != '/') {
1195                            if(link3.startsWith('/')) {
1196                                rtn = rtn + link3;
1197                            }
1198                            else {
1199                                rtn = rtn + '/' + link3;
1200                            }
1201                        }
1202                        else {
1203                            if(link3.startsWith('/')) {
1204                                rtn = rtn + link3.substring(1);
1205                            }
1206                            else {
1207                                rtn = rtn + link3;
1208                            }
1209                        }
1210                        return rtn;
1211                    }
1212                    else
1213                        return rtn;
1214                }
1215                else 
1216                    return link1; 
1217            }
1218            else
1219                return "";
1220        },
1221        cache: {
1222            check: function() {
1223                var flag = false;
1224                if(localStorage && localStorage.getItem) {
1225                    flag = true;
1226                }
1227                else if(sessionStorage && sessionStorage.getItem) {
1228                    flag = true;
1229                }
1230                return flag;
1231            },
1232            get: function(key) {
1233                if(localStorage && localStorage.getItem) {
1234                    var val = localStorage.getItem(key);
1235                    if(val != undefined && val != null && val != '') {
1236                        val = JSON.parse(val);
1237                    }
1238                    return val;
1239                }
1240                else if(sessionStorage && sessionStorage.getItem) {
1241                    var val = sessionStorage.getItem(key);
1242                    if(val != undefined && val != null && val != '') {
1243                        val = JSON.parse(val);
1244                    }
1245                    return val;
1246                }
1247                return null;
1248            },
1249            set: function(key, value) {
1250                if(localStorage && localStorage.setItem) {
1251                    var val = '';
1252                    if(value != undefined && value != null) {
1253                        val = JSON.stringify(value);
1254                    }
1255                    localStorage.setItem(key, val);
1256                }
1257                else if(sessionStorage && sessionStorage.setItem) {
1258                    var val = '';
1259                    if(value != undefined && value != null) {
1260                        val = JSON.stringify(value);
1261                    }
1262                    sessionStorage.setItem(key, value);
1263                }
1264            },
1265            remove: function(key) {
1266                if(localStorage && localStorage.removeItem) {
1267                    localStorage.removeItem(key);
1268                }
1269                else if(sessionStorage && sessionStorage.removeItem) {
1270                    sessionStorage.removeItem(key);
1271                }
1272            },
1273            clear: function() {
1274                if(localStorage && localStorage.clear) {
1275                    localStorage.clear();
1276                }
1277                else if(sessionStorage && sessionStorage.clear) {
1278                    sessionStorage.clear();
1279                }
1280            }
1281        },
1282        cookie: {
1283            get: function(cname) {
1284                var name = cname + "=";
1285                var ca = document.cookie.split(';');
1286                for(var i = 0; i < ca.length; i++) {
1287                    var c = ca[i];
1288                    while (c.charAt(0) == ' ') {
1289                        c = c.substring(1);
1290                    }
1291                    if (c.indexOf(name) == 0) {
1292                        return c.substring(name.length, c.length);
1293                    }
1294                }
1295                return "";
1296            },
1297            set: function(cname, cvalue, exdays) {
1298                var d = new Date();
1299                d.setTime(d.getTime() + (exdays * 24 * 60 * 60 * 1000));
1300                document.cookie = cname + "=" + cvalue + ";" + "expires=" + d.toUTCString() + ";path=/";
1301            }
1302        }
1303    }
1304}
1305window.lib3p_helper = lib3p_helper;
1306
1307///
1308///--------------
1309///
1310
1311jQuery(document).on('visibilitychange', function() {
1312    if (document.visibilityState === 'visible') {
1313        //console.log("Browser tab is active and visible.");        
1314        if(lib3p_helper.utility.hasValue(window.pars3p) && lib3p_helper.utility.hasValue(window.pars3p.cart_temp) && lib3p_helper.utility.hasListValue(window.pars3p.cart_temp.CartDetails) && window.pars3p.cart_temp.Code > 0 && window.pars3p.cart_temp.IsGift == true && lib3p_helper.utility.hasValue(window.pars3p.cart_temp.GiftBeforeTime) && window.pars3p.cart_temp.GiftTime > 0) {
1315            window.pars3p.cart_temp.GiftTime = (new Date(window.pars3p.cart_temp.GiftBeforeTime)).getTime() - (new Date()).getTime();
1316            if(window.pars3p.cart_temp.GiftTime < 0) {
1317                window.pars3p.cart_temp.GiftTime = 0;
1318                document.body.ins
1319            }
1320        }        
1321    } else {
1322        //console.log("Browser tab is hidden or backgrounded.");        
1323    }
1324});
1325var lib3p = {
1326    common_Search: function () {
1327        return null;
1328    },
1329    //#region common
1330    myzoom: {
1331        log: function (msg) {
1332            //console.log(msg);
1333            //jQuery('.popup-image-zoom .modal-content .console').append('<div>' + msg + '</div>');
1334        },
1335        defaults: {
1336            zoom: 0.10,
1337            maxZoom: false,
1338            initialZoom: 1,
1339            initialX: 0.5,
1340            initialY: 0.5,
1341        },
1342        data: {
1343            img: null,
1344            width: null,
1345            height: null,
1346            bgWidth: null,
1347            bgHeight: null,
1348            imgWidth: null,
1349            imgHeight: null,
1350            bgPosX: null,
1351            bgPosY: null,
1352            previousEvent: null,
1353            previousEventLast: null
1354        },
1355        init: function (img, options) {
1356            var that = this;
1357            that.log('myzoom init');
1358
1359            if (!img || !img.nodeName || img.nodeName !== 'IMG') { return; }
1360
1361            var settings = {};
1362            var previousEvent;
1363            var transparentSpaceFiller;
1364
1365            options = options || {};
1366            Object.keys(that.defaults).forEach(function (key) {
1367                settings[key] = options[key] !== undefined ? options[key] : that.defaults[key];
1368            });
1369            that.data.settings = settings;
1370            that.data.img = img;
1371
1372            var size = lib3p.common_getSizeBrowser();
1373            //size.height -= 210;
1374            size.height -= 110;
1375            that.data.width = size.width;
1376            that.data.height = size.height;
1377            that.data.bgWidth = that.data.width;
1378            that.data.bgHeight = that.data.height;
1379            that.data.bgPosX = -(that.data.bgWidth - that.data.width) * that.data.settings.initialX;
1380            that.data.bgPosY = -(that.data.bgHeight - that.data.height) * that.data.settings.initialY;
1381
1382            img.style.width = that.data.width + 'px';
1383            img.style.height = that.data.height + 'px';
1384            img.style.backgroundRepeat = 'no-repeat';
1385            img.style.backgroundImage = 'url("' + that.data.img.src + '")';
1386            transparentSpaceFiller = 'data:image/svg+xml;base64,' + window.btoa('<svg xmlns="http://www.w3.org/2000/svg" width="' + size.width + '" height="' + size.height + '"></svg>');
1387            img.src = transparentSpaceFiller;
1388
1389            img.style.backgroundSize = that.data.bgWidth + 'px ' + that.data.bgHeight + 'px';
1390            img.style.backgroundPosition = that.data.bgPosX + 'px ' + that.data.bgPosY + 'px';
1391
1392            img.addEventListener('touchstart', that.onDraggableMobile);
1393
1394            /* if("ontouchstart" in window){
1395                img.addEventListener('wheel', that.onWheel);
1396                img.addEventListener('touchstart', that.onDraggableMobile);
1397            }
1398            else {
1399                img.addEventListener('wheel', that.onWheel);
1400                img.addEventListener('mousedown', that.onDraggable);
1401            } */
1402            //img.addEventListener('wheelzoom.reset', that.reset);
1403            //img.addEventListener('wheel', that.onWheel);
1404            //img.addEventListener('mousedown', that.onDraggable);
1405            //img.addEventListener('touchstart', that.onDraggable);
1406        },
1407        openPopup: function (img) {
1408            var that = lib3p.myzoom;
1409            that.log('myzoom openPopup');
1410
1411            that.data.img.style.backgroundImage = 'url("' + img.src + '")';
1412            that.data.img.style.backgroundSize = img.naturalWidth + 'px ' + img.naturalHeight + 'px';
1413            that.data.imgWidth = img.naturalWidth;
1414            that.data.imgHeight = img.naturalHeight;
1415            if (that.data.imgWidth < that.data.width) {
1416                var sub = that.data.width - that.data.imgWidth;
1417                that.data.imgWidth = that.data.width;
1418                that.data.imgHeight += sub;
1419            }
1420            if (that.data.imgHeight < that.data.height) {
1421                var sub = that.data.height - that.data.imgHeight;
1422                that.data.imgHeight = that.data.height;
1423                that.data.imgWidth += sub;
1424            }
1425            that.data.bgWidth = that.data.imgWidth;
1426            that.data.bgHeight = that.data.imgHeight;
1427
1428            that.reset();
1429        },
1430        setSrcToBackground: function () {
1431            var that = this;
1432            that.log('myzoom setSrcToBackground');
1433
1434            that.data.img.style.backgroundRepeat = 'no-repeat';
1435            that.data.img.style.backgroundImage = 'url("' + that.data.img.src + '")';
1436            transparentSpaceFiller = 'data:image/svg+xml;base64,' + window.btoa('<svg xmlns="http://www.w3.org/2000/svg" width="' + that.data.img.naturalWidth + '" height="' + that.data.img.naturalHeight + '"></svg>');
1437            that.data.img.src = transparentSpaceFiller;
1438        },
1439        changeImage: function (str) {
1440            var that = lib3p.myzoom;
1441            that.log('myzoom changeImage');
1442
1443            that.data.img.style.backgroundImage = 'url("' + str + '")';
1444        },
1445        updateBgStyle: function () {
1446            var that = lib3p.myzoom;
1447            that.log('myzoom updateBgStyle');
1448
1449            if (that.data.bgPosX > 0) {
1450                that.data.bgPosX = 0;
1451            } else if (that.data.bgPosX < that.data.width - that.data.bgWidth) {
1452                that.data.bgPosX = that.data.width - that.data.bgWidth;
1453            }
1454
1455            if (that.data.bgPosY > 0) {
1456                that.data.bgPosY = 0;
1457            }
1458            else if (that.data.bgPosY < that.data.height - that.data.bgHeight) {
1459                that.data.bgPosY = that.data.height - that.data.bgHeight;
1460            }
1461
1462            that.data.img.style.backgroundSize = that.data.bgWidth + 'px ' + that.data.bgHeight + 'px';
1463            that.data.img.style.backgroundPosition = that.data.bgPosX + 'px ' + that.data.bgPosY + 'px';
1464        },
1465        reset: function () {
1466            var that = lib3p.myzoom;
1467
1468            //that.data.bgWidth = that.data.imgWidth;
1469            //that.data.bgHeight = that.data.imgHeight;
1470            var w = 0;
1471            var h = 0;
1472            if (that.data.width > that.data.height) {
1473                w = that.data.width;
1474                h = that.data.imgHeight - (that.data.imgWidth - w);
1475            }
1476            else {
1477                h = that.data.height;
1478                w = that.data.imgWidth - (that.data.imgHeight - h);
1479            }
1480            that.data.bgWidth = w;
1481            that.data.bgHeight = h;
1482            that.data.bgPosX = that.data.bgPosY = 0;
1483            that.updateBgStyle();
1484        },
1485        onWheel: function (e) {
1486            var that = lib3p.myzoom;
1487            that.log('onWheel');
1488
1489            var deltaY = 0;
1490            var img = that.data.img;
1491
1492            e.preventDefault();
1493
1494            if (e.deltaY) { // FireFox 17+ (IE9+, Chrome 31+?)
1495                deltaY = e.deltaY;
1496            } else if (e.wheelDelta) {
1497                deltaY = -e.wheelDelta;
1498            }
1499
1500            // As far as I know, there is no good cross-browser way to get the cursor position relative to the event target.
1501            // We have to calculate the target element's position relative to the document, and subtrack that from the
1502            // cursor's position relative to the document.
1503            var rect = img.getBoundingClientRect();
1504            var offsetX = e.pageX - rect.left - window.pageXOffset;
1505            var offsetY = e.pageY - rect.top - window.pageYOffset;
1506
1507            // Record the offset between the bg edge and cursor:
1508            var bgCursorX = offsetX - that.data.bgPosX;
1509            var bgCursorY = offsetY - that.data.bgPosY;
1510
1511            // Use the previous offset to get the percent offset between the bg edge and cursor:
1512            var bgRatioX = bgCursorX / that.data.bgWidth;
1513            var bgRatioY = bgCursorY / that.data.bgHeight;
1514
1515            // Update the bg size:
1516            if (deltaY < 0) {
1517                that.data.bgWidth += that.data.bgWidth * that.data.settings.zoom;
1518                that.data.bgHeight += that.data.bgHeight * that.data.settings.zoom;
1519            } else {
1520                that.data.bgWidth -= that.data.bgWidth * that.data.settings.zoom;
1521                that.data.bgHeight -= that.data.bgHeight * that.data.settings.zoom;
1522            }
1523
1524            if (that.data.settings.maxZoom) {
1525                that.data.bgWidth = Math.min(that.data.width * that.data.settings.maxZoom, that.data.bgWidth);
1526                that.data.bgHeight = Math.min(that.data.height * that.data.settings.maxZoom, that.data.bgHeight);
1527            }
1528
1529            // Take the percent offset and apply it to the new size:
1530            that.data.bgPosX = offsetX - (that.data.bgWidth * bgRatioX);
1531            that.data.bgPosY = offsetY - (that.data.bgHeight * bgRatioY);
1532
1533            // Prevent zooming out beyond the starting size
1534            if (that.data.bgWidth <= that.data.width || that.data.bgHeight <= that.data.height) {
1535                that.reset();
1536            } else {
1537                that.updateBgStyle();
1538            }
1539        },
1540        onDrag: function (e) {
1541            var that = lib3p.myzoom;
1542            that.log('onDrag');
1543
1544            e.preventDefault();
1545
1546            if (lib3p_helper.utility.hasValue(that.data.previousEvent)) {
1547                that.data.bgPosX += (e.pageX - that.data.previousEvent.pageX);
1548                that.data.bgPosY += (e.pageY - that.data.previousEvent.pageY);
1549                that.updateBgStyle();
1550            }
1551            that.data.previousEvent = e;
1552        },
1553        onDragMobile: function (e) {
1554            var that = lib3p.myzoom;
1555            that.log('onDragMobile');
1556            //that.log(JSON.stringify(e.touches));
1557            //that.log(e.touches[0].screenX + ' : ' + e.touches[0].screenY);
1558            //that.log(e.touches[0].clientX + ' : ' + e.touches[0].clientY);
1559            e.preventDefault();
1560
1561            if (lib3p_helper.utility.hasListValue(e.touches)) {
1562                if (e.touches.length == 1) {
1563                    var data = { pageX: e.touches[0].screenX, pageY: e.touches[0].screenY };
1564                    if (lib3p_helper.utility.hasValue(that.data.previousEvent)) {
1565                        that.data.bgPosX += (data.pageX - that.data.previousEvent.pageX);
1566                        that.data.bgPosY += (data.pageY - that.data.previousEvent.pageY);
1567                        that.updateBgStyle();
1568                    }
1569                    that.data.previousEvent = data;
1570                }
1571                else if (e.touches.length > 1) {
1572                    var data = [
1573                        { pageX: e.touches[0].screenX, pageY: e.touches[0].screenY },
1574                        { pageX: e.touches[1].screenX, pageY: e.touches[1].screenY }
1575                    ];
1576                    that.data.previousEventLast = data;
1577                }
1578            }
1579        },
1580        onDraggable: function (e) {
1581            var that = lib3p.myzoom;
1582            that.log('onDraggable');
1583
1584            e.preventDefault();
1585            that.data.previousEvent = e;
1586            that.data.img.addEventListener('mousemove', that.onDrag);
1587            that.data.img.addEventListener('mouseup', that.onRemoveDrag);
1588        },
1589        onDraggableMobile: function (e) {
1590            var that = lib3p.myzoom;
1591            //that.log('onDraggableMobile');
1592            //that.log(JSON.stringify(e.touches));
1593            //that.log(e.touches[0].screenX + ' : ' + e.touches[0].screenY);
1594
1595            e.preventDefault();
1596
1597            if (lib3p_helper.utility.hasListValue(e.touches)) {
1598                if (e.touches.length == 1) {
1599                    that.data.previousEvent = { pageX: e.touches[0].screenX, pageY: e.touches[0].screenY };
1600                }
1601                else if (e.touches.length > 1) {
1602                    that.data.previousEvent = [
1603                        { pageX: e.touches[0].screenX, pageY: e.touches[0].screenY },
1604                        { pageX: e.touches[1].screenX, pageY: e.touches[1].screenY }
1605                    ];
1606                }
1607            }
1608
1609            that.data.img.addEventListener('touchmove', that.onDragMobile);
1610            that.data.img.addEventListener('touchend', that.onRemoveDragMobile);
1611        },
1612        onRemoveDrag: function () {
1613            var that = lib3p.myzoom;
1614
1615            that.data.img.removeEventListener('mouseup', that.onRemoveDrag);
1616            that.data.img.removeEventListener('mousemove', that.onDrag);
1617        },
1618        onRemoveDragMobile: function (e) {
1619            var that = lib3p.myzoom;
1620
1621            e.preventDefault();
1622
1623            that.data.img.removeEventListener('touchmove', that.onDragMobile);
1624            that.data.img.removeEventListener('touchend', that.onRemoveDragMobile);
1625
1626            if (lib3p_helper.utility.hasValue(that.data.previousEvent) && lib3p_helper.utility.hasValue(that.data.previousEventLast)) {
1627                var dist1 = Math.hypot(that.data.previousEvent[0].pageX - that.data.previousEvent[1].pageX, that.data.previousEvent[0].pageY - that.data.previousEvent[1].pageY);
1628                var dist2 = Math.hypot(that.data.previousEventLast[0].pageX - that.data.previousEventLast[1].pageX, that.data.previousEventLast[0].pageY - that.data.previousEventLast[1].pageY);
1629                that.log(dist1 + ' : ' + dist2);
1630
1631                var maxX = 0;
1632                var maxY = 0;
1633                if (that.data.previousEventLast[0].pageX > that.data.previousEvent[0].pageX) {
1634                    var temp = that.data.previousEventLast[0].pageX - that.data.previousEvent[0].pageX;
1635                    if (temp > maxX) {
1636                        maxX = temp;
1637                    }
1638                }
1639                if (that.data.previousEventLast[1].pageX > that.data.previousEvent[1].pageX) {
1640                    var temp = that.data.previousEventLast[1].pageX - that.data.previousEvent[1].pageX;
1641                    if (temp > maxX) {
1642                        maxX = temp;
1643                    }
1644                }
1645                if (that.data.previousEventLast[0].pageY > that.data.previousEvent[0].pageY) {
1646                    var temp = that.data.previousEventLast[0].pageY - that.data.previousEvent[0].pageY;
1647                    if (temp > maxY) {
1648                        maxY = temp;
1649                    }
1650                }
1651                if (that.data.previousEventLast[1].pageY > that.data.previousEvent[1].pageY) {
1652                    var temp = that.data.previousEventLast[1].pageY - that.data.previousEvent[1].pageY;
1653                    if (temp > maxY) {
1654                        maxY = temp;
1655                    }
1656                }
1657                var offsetX = maxX;
1658                var offsetY = maxY;
1659
1660                var bgCursorX = offsetX - that.data.bgPosX;
1661                var bgCursorY = offsetY - that.data.bgPosY;
1662                var bgRatioX = bgCursorX / that.data.bgWidth;
1663                var bgRatioY = bgCursorY / that.data.bgHeight;
1664
1665                if (dist1 < dist2) {
1666                    var add = 1;
1667                    if (dist2 - dist1 > 50) {
1668                        add = 2;
1669                    }
1670                    if (dist2 - dist1 > 100) {
1671                        add = 3;
1672                    }
1673                    if (that.data.imgWidth * 1.5 > that.data.bgWidth && that.data.imgHeight * 1.5 > that.data.bgHeight) {
1674                        that.data.bgWidth += that.data.bgWidth * that.data.settings.zoom * add;
1675                        that.data.bgHeight += that.data.bgHeight * that.data.settings.zoom * add;
1676                    }
1677                } else {
1678                    var add = 1;
1679                    if (dist1 - dist2 > 50) {
1680                        add = 2;
1681                    }
1682                    if (dist1 - dist2 > 100) {
1683                        add = 3;
1684                    }
1685
1686                    that.data.bgWidth -= that.data.bgWidth * that.data.settings.zoom * add;
1687                    that.data.bgHeight -= that.data.bgHeight * that.data.settings.zoom * add;
1688                }
1689                if (that.data.settings.maxZoom) {
1690                    that.data.bgWidth = Math.min(that.data.width * that.data.settings.maxZoom, that.data.bgWidth);
1691                    that.data.bgHeight = Math.min(that.data.height * that.data.settings.maxZoom, that.data.bgHeight);
1692                }
1693                that.data.bgPosX = offsetX - (that.data.bgWidth * bgRatioX);
1694                that.data.bgPosY = offsetY - (that.data.bgHeight * bgRatioY);
1695                if (that.data.bgWidth <= that.data.width || that.data.bgHeight <= that.data.height) {
1696                    that.reset();
1697                } else {
1698                    that.updateBgStyle();
1699                }
1700            }
1701        }
1702    },
1703    common_logSystem: function (object) {
1704        if (window.pars3p.showLogSystem == true) {
1705            console.log(object);
1706        }
1707    },
1708    logInfo: function(object) {
1709        var dt = new Date();
1710        var m = dt.getMinutes();
1711        var s = dt.getSeconds();
1712        var ms = dt.getMilliseconds();
1713        jQuery('.popup-develop .txt').append('<div>' + m + ':' + s + ':' + ms + '</div>');
1714        jQuery('.popup-develop .txt').append('<div>' + object + '</div>');
1715    },
1716    log: function (object) {
1717        console.log(object);
1718    },
1719    common_appHeight: function () {
1720        var winInnerHeight = window.innerHeight;
1721        if (winInnerHeight != undefined && winInnerHeight != null) {
1722            document.documentElement.style.setProperty('--app-height', winInnerHeight + 'px');
1723        }
1724    },
1725    common_GetWidthBrowser: function () {
1726        var myWidth;
1727
1728        if (typeof (window.innerWidth) === 'number') {
1729            //Non-IE 
1730            myWidth = window.innerWidth;
1731        } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
1732            //IE 6+ in 'standards compliant mode' 
1733            myWidth = document.documentElement.clientWidth;
1734        } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
1735            //IE 4 compatible 
1736            myWidth = document.body.clientWidth;
1737        }
1738        return myWidth;
1739    },
1740    common_getSizeBrowser: function () {
1741        var myWidth = 0, myHeight = 0;
1742        if (typeof (window.innerWidth) == 'number') {
1743            //Non-IE
1744            myWidth = window.innerWidth;
1745            myHeight = window.innerHeight;
1746        } else if (document.documentElement && (document.documentElement.clientWidth || document.documentElement.clientHeight)) {
1747            //IE 6+ in 'standards compliant mode'
1748            myWidth = document.documentElement.clientWidth;
1749            myHeight = document.documentElement.clientHeight;
1750        } else if (document.body && (document.body.clientWidth || document.body.clientHeight)) {
1751            //IE 4 compatible
1752            myWidth = document.body.clientWidth;
1753            myHeight = document.body.clientHeight;
1754        }
1755        return { width: myWidth, height: myHeight };
1756    },
1757    common_IsIE: function () {
1758        var ua = window.navigator.userAgent;
1759
1760        var msie = ua.indexOf('MSIE ');
1761        if (msie > 0) {
1762            return true;
1763        }
1764
1765        var trident = ua.indexOf('Trident/');
1766        if (trident > 0) {
1767            return true;
1768        }
1769
1770        var edge = ua.indexOf('Edge/');
1771        if (edge > 0) {
1772            return true;
1773        }
1774
1775        return false;
1776    },
1777    common_Browser: function () {
1778        var uagent = navigator.userAgent.toLowerCase(), match = '';
1779        var result = { Browser: '', IsMobile: false, IsTablet: false, innerWidth: -1, innerHeight: -1, Version: '' };
1780        if (/webkit/.test(uagent) && /chrome/.test(uagent) && !/edge/.test(uagent)) {
1781            result.Browser = 'chrome';
1782        }
1783        else if (/mozilla/.test(uagent) && /firefox/.test(uagent)) {
1784            result.Browser = 'firefox';
1785        }
1786        else if (/msie/.test(uagent) || /trident/.test(uagent) || /edge/.test(uagent)) {
1787            result.Browser = 'msie';
1788        }
1789        else if (/safari/.test(uagent) && /applewebkit/.test(uagent) && !/chrome/.test(uagent)) {
1790            result.Browser = 'safari';
1791        }
1792        else if (/mozilla/.test(uagent) && /applewebkit/.test(uagent) && /chrome/.test(uagent) && /safari/.test(uagent) && /opr/.test(uagent)) {
1793            result.Browser = 'opr';
1794        }
1795        if (result.Browser != undefined && result.Browser != null && result.Browser != '') {
1796            match = uagent.match(new RegExp("(" + (result.Browser === "msie" ? "msie|edge" : result.Browser) + ")( |\/)([0-9]+)"));
1797            if (match) {
1798                result.Version = match[3];
1799            } else {
1800                match = uagent.match(new RegExp("rv:([0-9]+)"));
1801                result.Version = match ? match[1] : "";
1802            }
1803        }
1804        if (result.Browser == 'opr') {
1805            result.Browser = 'opera';
1806        }
1807
1808        var check = false;
1809        (function (a) { if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|
1809sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true; })(navigator.userAgent || navigator.vendor || window.opera);
1810        result.IsMobile = check;
1811        if (result.IsMobile != true) {
1812            (function (a) { if (/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a) || /1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0, 4))) check = true; })(navigator.userAgent || navigator.vendor || window.opera);
1813            result.IsTablet = check;
1814        }
1815
1816        result.innerWidth = window.innerWidth;
1817        result.innerHeight = window.innerHeight;
1818
1819        if (result.innerWidth < 700) {
1820            result.IsMobile = true;
1821        }
1822
1823        return result;
1824    },
1825    detectBrowser: function () {
1826        var uagent = navigator.userAgent.toLowerCase(), match = '';
1827        _browser = {};
1828        _browser.chrome = /webkit/.test(uagent) && /chrome/.test(uagent) && !/edge/.test(uagent);
1829        _browser.firefox = /mozilla/.test(uagent) && /firefox/.test(uagent);
1830        _browser.msie = /msie/.test(uagent) || /trident/.test(uagent) || /edge/.test(uagent);
1831        _browser.safari = /safari/.test(uagent) && /applewebkit/.test(uagent) && !/chrome/.test(uagent);
1832        _browser.opr = /mozilla/.test(uagent) && /applewebkit/.test(uagent) && /chrome/.test(uagent) && /safari/.test(uagent) && /opr/.test(uagent);
1833
1834        _browser.version = '';
1835
1836        for (x in _browser) {
1837            if (_browser[x]) {
1838                match = uagent.match(new RegExp("(" + (x === "msie" ? "msie|edge" : x) + ")( |\/)([0-9]+)"));
1839                if (match) {
1840                    _browser.version = match[3];
1841                } else {
1842                    match = uagent.match(new RegExp("rv:([0-9]+)"));
1843                    _browser.version = match ? match[1] : "";
1844                }
1845                break;
1846            }
1847        }
1848        _browser.opera = _browser.opr;
1849        return _browser;
1850
1851        /* mobileCheck
1852        let check = false;
1853        (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check = true;})(navigator.userAgent||navigator.vendor||window.opera);
1854        return check; */
1855        /* mobileAndTabletCheck 
1856        let check = false;
1857        (function(a){if(/(android|bb\d+|meego).+mobile|avantgo|bada\/|blackberry|blazer|compal|elaine|fennec|hiptop|iemobile|ip(hone|od)|iris|kindle|lge |maemo|midp|mmp|mobile.+firefox|netfront|opera m(ob|in)i|palm( os)?|phone|p(ixi|re)\/|plucker|pocket|psp|series(4|6)0|symbian|treo|up\.(browser|link)|vodafone|wap|windows ce|xda|xiino|android|ipad|playbook|silk/i.test(a)||/1207|6310|6590|3gso|4thp|50[1-6]i|770s|802s|a wa|abac|ac(er|oo|s\-)|ai(ko|rn)|al(av|ca|co)|amoi|an(ex|ny|yw)|aptu|ar(ch|go)|as(te|us)|attw|au(di|\-m|r |s )|avan|be(ck|ll|nq)|bi(lb|rd)|bl(ac|az)|br(e|v)w|bumb|bw\-(n|u)|c55\/|capi|ccwa|cdm\-|cell|chtm|cldc|cmd\-|co(mp|nd)|craw|da(it|ll|ng)|dbte|dc\-s|devi|dica|dmob|do(c|p)o|ds(12|\-d)|el(49|ai)|em(l2|ul)|er(ic|k0)|esl8|ez([4-7]0|os|wa|ze)|fetc|fly(\-|_)|g1 u|g560|gene|gf\-5|g\-mo|go(\.w|od)|gr(ad|un)|haie|hcit|hd\-(m|p|t)|hei\-|hi(pt|ta)|hp( i|ip)|hs\-c|ht(c(\-| |_|a|g|p|s|t)|tp)|hu(aw|tc)|i\-(20|go|ma)|i230|iac( |\-|\/)|ibro|idea|ig01|ikom|im1k|inno|ipaq|iris|ja(t|v)a|jbro|jemu|jigs|kddi|keji|kgt( |\/)|klon|kpt |kwc\-|kyo(c|k)|le(no|xi)|lg( g|\/(k|l|u)|50|54|\-[a-w])|libw|lynx|m1\-w|m3ga|m50\/|ma(te|ui|xo)|mc(01|21|ca)|m\-cr|me(rc|ri)|mi(o8|oa|ts)|mmef|mo(01|02|bi|de|do|t(\-| |o|v)|zz)|mt(50|p1|v )|mwbp|mywa|n10[0-2]|n20[2-3]|n30(0|2)|n50(0|2|5)|n7(0(0|1)|10)|ne((c|m)\-|on|tf|wf|wg|wt)|nok(6|i)|nzph|o2im|op(ti|wv)|oran|owg1|p800|pan(a|d|t)|pdxg|pg(13|\-([1-8]|c))|phil|pire|pl(ay|uc)|pn\-2|po(ck|rt|se)|prox|psio|pt\-g|qa\-a|qc(07|12|21|32|60|\-[2-7]|i\-)|qtek|r380|r600|raks|rim9|ro(ve|zo)|s55\/|sa(ge|ma|mm|ms|ny|va)|sc(01|h\-|oo|p\-)|sdk\/|se(c(\-|0|1)|47|mc|nd|ri)|sgh\-|shar|sie(\-|m)|sk\-0|sl(45|id)|sm(al|ar|b3|it|t5)|so(ft|ny)|sp(01|h\-|v\-|v )|sy(01|mb)|t2(18|50)|t6(00|10|18)|ta(gt|lk)|tcl\-|tdg\-|tel(i|m)|tim\-|t\-mo|to(pl|sh)|ts(70|m\-|m3|m5)|tx\-9|up(\.b|g1|si)|utst|v400|v750|veri|vi(rg|te)|vk(40|5[0-3]|\-v)|vm40|voda|vulc|vx(52|53|60|61|70|80|81|83|85|98)|w3c(\-| )|webc|whit|wi(g |nc|nw)|wmlb|wonu|x700|yas\-|your|zeto|zte\-/i.test(a.substr(0,4))) check 
1857= true;})(navigator.userAgent||navigator.vendor||window.opera);
1858        return check; */
1859        /* detectMob
1860        return ( ( window.innerWidth <= 800 ) && ( window.innerHeight <= 600 ) ); */
1861    },
1862
1863    common_FixNoScroll: function () {
1864        var windowW = jQuery(window).width();
1865        jQuery('#page-body, .header-content-3p, #page-body .mobile-version').css("width", windowW + 'px');
1866    },
1867    common_FixReturnScroll: function () {
1868        jQuery('#page-body, .header-content-3p,#page-body .mobile-version').attr('style', '');
1869    },
1870    common_Money: function (num, lang) {
1871        if (!lib3p_helper.utility.hasValueString(lang)) {
1872            lang = window.pars3p.language;
1873        }
1874        return (new Intl.NumberFormat(lang).format(Math.trunc(num)));
1875    },
1876    common_Post: function (data, complete, error) {
1877        this.common_PostURL('/Sources/_6/hachi_actAJAX.aspx', data, complete, error);
1878    },
1879    common_PostURL: function (url, data, complete, error) {
1880        jQuery.ajax({
1881            type: 'POST',
1882            url: url,
1883            dataType: 'json',
1884            contentType: 'application/json; charset=utf-8',
1885            beforeSend: function (jqXHR, settings) {
1886                jqXHR.setRequestHeader('Formurl', 'Bearer');
1887                jqXHR.setRequestHeader('Language', window.pars3p.language);
1888            },
1889            data: JSON.stringify(data),
1890            crossDomain: true,
1891            success: complete,
1892            error: error,
1893            async: false
1894        });
1895    },
1896    common_AuthPostURL: function (url, data, complete, error) {
1897        jQuery.ajax({
1898            type: 'POST',
1899            url: url,
1900            dataType: 'json',
1901            contentType: 'application/json; charset=utf-8',
1902            beforeSend: function (jqXHR, settings) {
1903                jqXHR.setRequestHeader('Authorization', 'Bearer ' + window.pars3p.auth.access_token);
1904                jqXHR.setRequestHeader('Language', window.pars3p.language);
1905            },
1906            data: JSON.stringify(data),
1907            crossDomain: true,
1908            success: complete,
1909            error: function (err) {
1910                if (err.status == 401 && lib3p_helper.utility.hasValueString(window.pars3p.auth.refresh_token)) {
1911                    lib3p.common_PostURL(window.pars3p.api.public.Header_RefreshToken, { access:window.pars3p.auth.access_token, refresh:window.pars3p.auth.refresh_token }, function (res) {                        
1912                        if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValueString(res.access_token)) {
1913                            window.pars3p.auth.access_token = res.access_token;
1914                            window.pars3p.auth.refresh_token = res.refresh_token;
1915                            window.pars3p.auth.isLogin = true;
1916
1917                            lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
1918                            lib3p.common_AuthPostURL(url, data, complete, error);
1919                        }
1920                        else {
1921                            lib3p.common_TokenFail();
1922                            error(err);
1923                        }
1924                    }, function (err2) {
1925                        lib3p.common_TokenFail();
1926                        error(err2);
1927                    });
1928                }
1929                else if (error) {
1930                    error(err);
1931                }
1932            },
1933            async: false
1934        });
1935    },
1936    /* common_AuthPostURL_old: function (url, data, complete, error) {
1937        jQuery.ajax({
1938            type: 'POST',
1939            url: url,
1940            dataType: 'json',
1941            contentType: 'application/json; charset=utf-8',
1942            beforeSend: function (jqXHR, settings) {
1943                jqXHR.setRequestHeader('Authorization', 'Bearer ' + window.pars3p.auth.access_token);
1944                jqXHR.setRequestHeader('Language', window.pars3p.language);
1945            },
1946            data: JSON.stringify(data),
1947            crossDomain: true,
1948            success: complete,
1949            error: function (err) {
1950                if (err.status == 401 && lib3p_helper.utility.hasValueString(window.pars3p.auth.refresh_token)) {
1951                    var req = new FormData();
1952                    req.append('client_id', 'user');
1953                    req.append('client_secret', 'jssecret');
1954                    req.append('scope', 'userapi offline_access');
1955                    req.append('grant_type', 'refresh_token');
1956                    req.append('refresh_token', window.pars3p.auth.refresh_token);
1957                    lib3p.common_PostDataURL(window.pars3p.api.public.connecttoken, req, function (res) {
1958                        if (res && res.access_token) {
1959                            window.pars3p.auth.access_token = res.access_token;
1960                            window.pars3p.auth.refresh_token = res.refresh_token;
1961                            window.pars3p.auth.isLogin = true;
1962
1963                            lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
1964                            lib3p.common_AuthPostURL(url, data, complete, error);
1965                        }
1966                        else {
1967                            lib3p.common_TokenFail();
1968                            error(err);
1969                        }
1970                    }, function (err2) {
1971                        lib3p.common_TokenFail();
1972                        error(err2);
1973                    });
1974                }
1975                else if (error) {
1976                    error(err);
1977                }
1978            },
1979            async: false
1980        });
1981    }, */
1982    common_PostDataURL: function (url, data, complete, error) {
1983        jQuery.ajax({
1984            type: 'POST',
1985            url: url,
1986            enctype: 'multipart/form-data',
1987            beforeSend: function (jqXHR, settings) {
1988                jqXHR.setRequestHeader('Formurl', 'Bearer');
1989                jqXHR.setRequestHeader('Language', window.pars3p.language);
1990            },
1991            data: data,
1992            processData: false,
1993            contentType: false,
1994            cache: false,
1995            timeout: 600000,
1996            crossDomain: true,
1997            success: complete,
1998            error: error,
1999            async: false
2000        });
2001    },
2002    common_PostFormURL: function (url, data, complete, error) {
2003        jQuery.ajax({
2004            type: 'POST',
2005            url: url,
2006            dataType: 'json',
2007            contentType: 'application/x-www-form-urlencoded',
2008            beforeSend: function (jqXHR, settings) {
2009                jqXHR.setRequestHeader('Formurl', 'Bearer');
2010                jqXHR.setRequestHeader('Language', window.pars3p.language);
2011            },
2012            data: JSON.stringify(data),
2013            crossDomain: true,
2014            success: complete,
2015            error: error,
2016            async: false
2017        });
2018    },
2019    common_GetURL: function (url, complete, error) {
2020        jQuery.ajax({
2021            type: 'GET',
2022            url: url,
2023            dataType: 'json',
2024            beforeSend: function (jqXHR, settings) {
2025                jqXHR.setRequestHeader('Formurl', 'Bearer');
2026                jqXHR.setRequestHeader('Language', window.pars3p.language);
2027            },
2028            crossDomain: true,
2029            success: complete,
2030            error: error,
2031            async: false
2032        });
2033    },
2034    common_AuthGetURL: function (url, complete, error) {
2035        jQuery.ajax({
2036            type: 'GET',
2037            url: url,
2038            dataType: 'json',
2039            contentType: 'application/json; charset=utf-8',
2040            beforeSend: function (jqXHR, settings) {
2041                jqXHR.setRequestHeader('Authorization', 'Bearer ' + window.pars3p.auth.access_token);
2042                jqXHR.setRequestHeader('Language', window.pars3p.language);
2043            },
2044            crossDomain: true,
2045            success: complete,
2046            error: function (err) {
2047                if (err.status == 401 && lib3p_helper.utility.hasValueString(window.pars3p.auth.refresh_token)) {
2048                    lib3p.common_PostURL(window.pars3p.api.public.Header_RefreshToken, { access:window.pars3p.auth.access_token, refresh:window.pars3p.auth.refresh_token }, function (res) {                        
2049                        if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValueString(res.access_token)) {
2050                            window.pars3p.auth.access_token = res.access_token;
2051                            window.pars3p.auth.refresh_token = res.refresh_token;
2052                            window.pars3p.auth.isLogin = true;
2053
2054                            lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
2055                            lib3p.common_AuthGetURL(url, complete, error);
2056                        }
2057                        else {
2058                            lib3p.common_TokenFail();
2059                            error(err);
2060                        }
2061                    }, function (err2) {
2062                        lib3p.common_TokenFail();
2063                        error(err2);
2064                    });
2065                }
2066                else if (error) {
2067                    error(err);
2068                }
2069            },
2070            async: false
2071        });
2072    },
2073    /* common_AuthGetURL: function (url, complete, error) {
2074        jQuery.ajax({
2075            type: 'GET',
2076            url: url,
2077            dataType: 'json',
2078            contentType: 'application/json; charset=utf-8',
2079            beforeSend: function (jqXHR, settings) {
2080                jqXHR.setRequestHeader('Authorization', 'Bearer ' + window.pars3p.auth.access_token);
2081                jqXHR.setRequestHeader('Language', window.pars3p.language);
2082            },
2083            crossDomain: true,
2084            success: complete,
2085            error: function (err) {
2086                if (err.status == 401 && lib3p_helper.utility.hasValueString(window.pars3p.auth.refresh_token)) {
2087                    var req = new FormData();
2088                    req.append('client_id', 'user');
2089                    req.append('client_secret', 'jssecret');
2090                    req.append('scope', 'userapi offline_access');
2091                    req.append('grant_type', 'refresh_token');
2092                    req.append('refresh_token', window.pars3p.auth.refresh_token);
2093                    lib3p.common_PostDataURL(window.pars3p.api.public.connecttoken, req, function (res) {
2094                        if (res && res.access_token) {
2095                            window.pars3p.auth.access_token = res.access_token;
2096                            window.pars3p.auth.refresh_token = res.refresh_token;
2097                            window.pars3p.auth.isLogin = true;
2098
2099                            lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
2100                            lib3p.common_AuthGetURL(url, complete, error);
2101                        }
2102                        else {
2103                            lib3p.common_TokenFail();
2104                            error(err);
2105                        }
2106                    }, function (err2) {
2107                        lib3p.common_TokenFail();
2108                        error(err2);
2109                    });
2110                }
2111                else if (error) {
2112                    error(err);
2113                }
2114            },
2115            async: false
2116        });
2117    }, */
2118    common_TokenFail: function () {
2119        window.pars3p.auth.access_token = '';
2120        window.pars3p.auth.refresh_token = '';
2121        window.pars3p.auth.isLogin = true;
2122        lib3p.common_tokenSet(window.pars3p.auth);
2123    },
2124    common_JQueryDateTime: function (str) {
2125        if (str != undefined && str != null && str != '') {
2126            var data = new Date(str + '');
2127            return data;
2128        }
2129        return null;
2130    },
2131    common_StringFormat: function (str, params) {
2132        /// <summary>
2133        /// Format
2134        /// </summary>
2135        /// <param name="str" type="string">str input. Example: a{0}, t{0}e{1}</param>
2136        /// <param name="params" type="object">List params. Example: param1, param2</param>
2137
2138        var result = '';
2139        if (!arguments.length || arguments.length == 1)
2140            return str;
2141        var args = arguments;
2142        result = str;
2143        for (arg in args) {
2144            var index = parseInt(arg);
2145            if (index > 0) {
2146                index -= 1;
2147                result = result.replace(RegExp('\\{' + index + '\\}', 'gi'), args[arg]);
2148            }
2149        }
2150        return result;
2151    },
2152    toSlug(str) {
2153        // Chuyển hết sang chữ thường
2154        str = str.toLowerCase();
2155
2156        // xóa dấu
2157        str = str
2158            .normalize('NFD') // chuyển chuỗi sang unicode tổ hợp
2159            .replace(/[\u0300-\u036f]/g, ''); // xóa các ký tự dấu sau khi tách tổ hợp
2160
2161        // Thay ký tự đĐ
2162        str = str.replace(/[đĐ]/g, 'd');
2163
2164        // Xóa ký tự đặc biệt
2165        str = str.replace(/([^0-9a-z-\s])/g, '');
2166
2167        // Xóa khoảng trắng thay bằng ký tự -
2168        // str = str.replace(/(\s+)/g, '-');
2169
2170        // Xóa ký tự - liên tiếp
2171        str = str.replace(/-+/g, '-');
2172
2173        // xóa phần dư - ở đầu & cuối
2174        str = str.replace(/^-+|-+$/g, '');
2175
2176        // return
2177        return str;
2178    },
2179    common_LoadingShow: function () {
2180        jQuery('.page-header-loading').removeClass('hide');
2181    },
2182    common_LoadingHide: function () {
2183        if (!jQuery('.page-header-loading').hasClass('hide')) {
2184            jQuery('.page-header-loading').addClass('hide');
2185        }
2186    },
2187    common_DateAddDay: function (pDate, pVal) {
2188        return hasValue(pDate) && hasValue(pDate.getTime) ?
2189            new Date(pDate.getTime() + pVal * 24 * 60 * 60000) : pDate;
2190    },
2191    common_DateAddHour: function (pDate, pVal) {
2192        return hasValue(pDate) && hasValue(pDate.getTime) ?
2193            new Date(pDate.getTime() + pVal * 60 * 60000) : pDate;
2194    },
2195    common_DateAddMinute: function (pDate, pVal) {
2196        return hasValue(pDate) && hasValue(pDate.getTime) ?
2197            new Date(pDate.getTime() + pVal * 60000) : pDate;
2198    },
2199    common_DateAddSecond: function (pDate, pVal) {
2200        return hasValue(pDate) && hasValue(pDate.getTime) ?
2201            new Date(pDate.getTime() + pVal * 1000) : pDate;
2202    },
2203    common_DateFromJson: function (pValue) {
2204        if (hasValue(pValue)) {
2205            var pValue = pValue.toString();
2206            if (pValue.lastIndexOf('/Date') > 0) {
2207                var dateISO = /\d{4}-\d{2}-\d{2}T\d{2}:\d{2}:\d{2}(?:[.,]\d+)?Z/i;
2208                var dateNet = /\/Date\((\d+)(?:-\d+)?\)\//i;
2209
2210                // Replacer RegExp
2211                var replaceISO = /"(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2})(?:[.,](\d+))?Z"/i;
2212                var replaceNet = /"\\\/Date\((\d+)(?:-\d+)?\)\\\/"/i;
2213                if (typeof (pValue) === "string") {
2214                    if (dateISO.test(pValue)) {
2215                        return new Date(pValue);
2216                    }
2217                    if (dateNet.test(pValue)) {
2218                        return new Date(parseInt(dateNet.exec(pValue)[1], 10));
2219                    }
2220                }
2221            } else {
2222                pValue = new Date(pValue);
2223            }
2224            return pValue;
2225        }
2226    },
2227    common_NumberWithCommas(x) {
2228
2229        return new Intl.NumberFormat().format(x)
2230        //return x //.toString().replace(/\B(?<!\.\d*)(?=(\d{3})+(?!\d))/g, ".");
2231    },
2232    common_ToggleClass(e, parnent, cls) {
2233        jQuery(e).closest(parnent).toggleClass(cls);
2234    },
2235    common_tokenGet() {
2236        return lib3p_helper.utility.cache.get("tk_v2");
2237    },
2238    common_tokenSet(val) {
2239        //JSON.stringify(val)
2240        return lib3p_helper.utility.cache.set("tk_v2", val);
2241    },
2242    common_tokenDel() {
2243        return lib3p_helper.utility.cache.remove("tk_v2");
2244    },
2245    common_urllastGet() {
2246        return lib3p_helper.utility.cache.get("lu_v2");
2247    },
2248    common_urllastSet(val) {
2249        return lib3p_helper.utility.cache.set("lu_v2", val);
2250    },
2251    common_popupGet() {
2252        return lib3p_helper.utility.cache.get("pop");
2253    },
2254    common_popupSet(val) {
2255        return lib3p_helper.utility.cache.set("pop", val);
2256    },
2257    common_optTypeGet() {
2258        return lib3p_helper.utility.cache.get("opttype");
2259    },
2260    common_optTypeSet(val) {
2261        return lib3p_helper.utility.cache.set("opttype", val);
2262    },
2263    common_cartGet() {
2264        return new Promise(function (resolve, reject) {
2265            if (window.pars3p.TrackingOrder == true) {
2266                lib3p.common_GetURL(window.pars3p.api.public.Tracking_DataGet + '?clientkey=' + window.pars3p.id, function (res) {
2267                    if (lib3p_helper.utility.hasValue(res) && res != "") {
2268                        if (!lib3p_helper.utility.hasValue(res.Code) && !lib3p_helper.utility.hasValue(res.PaymentID)) {
2269                            res = JSON.parse(res);
2270                        }
2271                        res.lastDate = lib3p_helper.utility.dateGet(res.lastDate);
2272                    }
2273                    else {
2274                        res = null;
2275                    }
2276                    resolve(res);
2277                }, function (err) {
2278                    reject(err);
2279                });
2280            }
2281            else {
2282                try {
2283                    resolve(lib3p_helper.utility.cache.get("cart_v2"));
2284                }
2285                catch (e) {
2286                    reject(e);
2287                }
2288            }
2289        });
2290    },
2291    common_cartSet(val) {
2292        return new Promise(function (resolve, reject) {
2293            setTimeout(function () {
2294                if (window.pars3p.TrackingOrder == true) {
2295                    var total = lib3p_helper.utility.hasValue(val) && val.TotalItemQuantity > 0 ? val.TotalItemQuantity : 0;
2296                    lib3p.common_PostURL(window.pars3p.api.public.Tracking_DataUpdate, { ClientKey: window.pars3p.id, Data: JSON.stringify(val), OrderQuantity: total }, function (res) {
2297                        resolve(res);
2298                    }, function (err) {
2299                        reject(err);
2300                    });
2301                }
2302                else {
2303                    try {
2304                        lib3p_helper.utility.cache.set("cart_v2", val);
2305                        resolve(true);
2306                    }
2307                    catch (e) {
2308                        reject(e);
2309                    }
2310                }
2311                lib3p.logInfo('common_cartSet');
2312            }, 1);            
2313        });
2314    },
2315    common_viewGet() {
2316        return lib3p_helper.utility.cookie.get("_view_");
2317    },
2318    common_viewSet(val) {
2319        return lib3p_helper.utility.cookie.set("_view_", val, 90);
2320    },
2321    common_cookieConfigGet() {
2322        return lib3p_helper.utility.cookie.get("_cookie_config_");
2323    },
2324    common_cookieConfigSet(val) {
2325        return lib3p_helper.utility.cookie.set("_cookie_config_", val, 300);
2326    },
2327    common_loginSet(val) {
2328        return lib3p_helper.utility.cookie.set("login", val, 90);
2329    },
2330    common_idGet() {
2331        return lib3p_helper.utility.cookie.get("id");
2332    },
2333    common_idGet2() {
2334        return lib3p_helper.utility.cache.get("id");
2335    },
2336    common_idSet(val) {
2337        lib3p_helper.utility.cookie.set("id", val, 30);
2338    },
2339    common_idSet2(val) {
2340        lib3p_helper.utility.cache.set("id", val);
2341    },
2342    /* common_trackGet() {
2343        return lib3p_helper.utility.cache.get("track");
2344    },
2345    common_trackSet(val) {
2346        return lib3p_helper.utility.cache.set("track", val);
2347    },
2348    common_trackInsert() {
2349        if (window.pars3p.TrackingUser == true) {
2350            lib3p.common_trackSet(window.pars3p.idTrack);
2351        }
2352    },
2353    common_browserGet() {
2354        return lib3p_helper.utility.cache.get("browser");
2355    },
2356    common_browserSet(val) {
2357        return lib3p_helper.utility.cache.set("browser", val);
2358    }, */
2359    //#endregion
2360
2361    //#region init
2362    loadparams: function () {
2363        if (window.pars3p.loaddata != true) {
2364            var data = document["myparam"]();
2365            window.pars3p.TrackingOrder = data.TrackingOrder == 'true' || data.TrackingOrder == 'True';
2366            window.pars3p.TrackingUser = data.TrackingUser == 'true' || data.TrackingUser == 'True';
2367            window.pars3p.TrackingUserStartHour = 3;
2368            window.pars3p.CheckOutClientSecond = 30;
2369            if (lib3p_helper.utility.hasValueString(data.TrackingUserStartHour)) {
2370                window.pars3p.TrackingUserStartHour = parseInt(data.TrackingUserStartHour);
2371                if (!(window.pars3p.TrackingUserStartHour > 0)) {
2372                    window.pars3p.TrackingUserStartHour = 3;
2373                }
2374            }
2375            if (lib3p_helper.utility.hasValueString(data.CheckOutClientSecond)) {
2376                window.pars3p.CheckOutClientSecond = parseInt(data.CheckOutClientSecond);
2377                if (!(window.pars3p.CheckOutClientSecond > 0)) {
2378                    window.pars3p.CheckOutClientSecond = 30;
2379                }
2380            }
2381            var obj = lib3p.common_optTypeGet();
2382            if (lib3p_helper.utility.hasValue(obj) && obj.SendType >= 0 && obj.SendTypeTime > 0) {
2383                window.pars3p.otp.SendType = obj.SendType;
2384                window.pars3p.otp.SendTypeTime = obj.SendTypeTime;
2385                if ((new Date()).getTime() > obj.SendTypeTime) {
2386                    window.pars3p.otp.SendType = -1;
2387                    window.pars3p.otp.SendTypeTime = -1;
2388                }
2389            }
2390            if (lib3p_helper.utility.hasValueString(data.BrowserID)) {
2391                window.pars3p.BrowserID = data.BrowserID;
2392            }
2393            if (lib3p_helper.utility.hasValueString(data.ConnectID)) {
2394                window.pars3p.ConnectID = data.ConnectID;
2395            }
2396            window.pars3p.hostresouce = data.hostresouce;
2397            window.pars3p.cookieDomain = data.cookieDomain;
2398            window.pars3p.showLogSystem = data.showLogSystem;
2399            window.pars3p.showLogComponent = data.showLogComponent;
2400            window.pars3p.apiid = data.apiid;
2401            window.pars3p.apiapp = data.apiapp;
2402            //window.pars3p.apiapp_port = data.apiapp_port;
2403            window.pars3p.apiapp_port = data.apiapp;
2404            window.pars3p.apitrack = data.apitrack;
2405            //window.pars3p.apitrack_port = data.apitrack_port;
2406            window.pars3p.apitrack_port = data.apitrack;
2407            window.pars3p.apihistory = data.apihistory;
2408            if (data.timeOrderCalculate > 0) {
2409                window.pars3p.timeOrderCalculate = data.timeOrderCalculate;
2410            }
2411            if (lib3p_helper.utility.hasValueString(data.CartChooseTime)) {
2412                window.pars3p.cartChooseTime = parseInt(data.CartChooseTime);
2413            }
2414            window.pars3p.cartWaitTime = 15;
2415            if (lib3p_helper.utility.hasValueString(data.CartWaitTime)) {
2416                window.pars3p.cartWaitTime = parseInt(data.CartWaitTime);
2417            }
2418
2419            window.pars3p.api.auth.Header_GetInfo = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Header_GetInfo');
2420            window.pars3p.api.auth.Profile_Update = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Profile_Update');
2421            window.pars3p.api.public.Header_GetByPhone = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Header_GetByPhone');
2422            window.pars3p.api.public.Header_Login = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Header_Login');
2423            window.pars3p.api.public.Header_RefreshToken = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Header_RefreshToken');
2424            window.pars3p.api.auth.User_ChangePass = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/User_ChangePass');
2425            window.pars3p.api.auth.User_ChangePassByActive = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/User_ChangePassByActive');
2426            //window.pars3p.api.public.Header_CreateIdentity = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Header_CreateIdentity');
2427
2428            //window.pars3p.api.auth.GetCard = lib3p_helper.utility.path(window.pars3p.apihistory, 'api/card/GetCard');
2429            //window.pars3p.api.auth.UpdateCard = lib3p_helper.utility.path(window.pars3p.apihistory, 'api/card/UpdateCard');
2430            //window.pars3p.api.public.GetCardByPhone = lib3p_helper.utility.path(window.pars3p.apihistory, 'api/card/GetCardByPhone');
2431            //window.pars3p.api.public.UpdateCardName = lib3p_helper.utility.path(window.pars3p.apihistory, 'api/card/UpdateCardName');
2432            //window.pars3p.api.public.GetCardByStaff = lib3p_helper.utility.path(window.pars3p.apihistory, 'api/card/GetCardByStaff');
2433            
2434            //window.pars3p.api.auth.getuserinfo = lib3p_helper.utility.path(window.pars3p.apiid, 'identity/getuserinfo');
2435            //window.pars3p.api.public.connecttoken = lib3p_helper.utility.path(window.pars3p.apiid, 'connect/token');
2436            window.pars3p.api.public.getactivecode = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/All_GetActiveCode');
2437            //window.pars3p.api.auth.changepassword = lib3p_helper.utility.path(window.pars3p.apiid, 'identity/changepassword');
2438            //window.pars3p.api.public.checkuser = lib3p_helper.utility.path(window.pars3p.apiid, 'identity/CheckUser');
2439            //window.pars3p.api.public.registeruser = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/User_Register');
2440            window.pars3p.api.public.User_Register2 = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/UserRegister2');
2441            window.pars3p.api.public.UserRegisterKHTT = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/UserRegisterKHTT');
2442            window.pars3p.api.public.userchangepass = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/User_ChangePass');
2443
2444            window.pars3p.api.public.LoginSMS_Check = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/LoginSMS_Check');
2445            window.pars3p.api.public.LoginSMS_OPTNew = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/LoginSMS_OPTNew');
2446            window.pars3p.api.public.LoginSMS_Reload = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/LoginSMS_Reload');
2447            //window.pars3p.api.public.Tracking_DataUpdate = lib3p_helper.utility.path(window.pars3p.apitrack_port, 'api/public/Tracking_DataUpdate');
2448            //window.pars3p.api.public.Tracking_DataGet = lib3p_helper.utility.path(window.pars3p.apitrack, 'api/public/Tracking_DataGet');
2449            //window.pars3p.api.public.Tracking_UserInsert = lib3p_helper.utility.path(window.pars3p.apitrack, 'api/public/Tracking_UserInsert');
2450            //window.pars3p.api.public.Tracking_UserStep = lib3p_helper.utility.path(window.pars3p.apitrack, 'api/public/Tracking_UserStep');
2451            window.pars3p.api.public.Tracking_DataUpdate = lib3p_helper.utility.path(window.pars3p.apiapp_port, 'api/public/Tracking_DataUpdate');
2452            window.pars3p.api.public.Tracking_DataGet = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Tracking_DataGet');
2453
2454            window.pars3p.api.auth.CartThanks_GiftGet = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/CartThanks_GiftGet');
2455            window.pars3p.api.auth.CartThanks_GiftUpdate = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/CartThanks_GiftUpdate');
2456            window.pars3p.api.public.CartThanks_GiftGet = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/CartThanks_GiftGet');
2457            window.pars3p.api.public.CartThanks_GiftUpdate = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/CartThanks_GiftUpdate');
2458            window.pars3p.api.public.Home_GetBanner = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Home_GetBanner');
2459            window.pars3p.api.public.All_GetBanner = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/All_GetBanner');
2460            window.pars3p.api.public.Home_GetProductPromotion = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Home_GetProductPromotion');
2461            window.pars3p.api.public.Home_GetCategoryNew = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Home_GetCategoryNew');
2462            window.pars3p.api.public.Home_GetProductNew = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Home_GetProductNew');
2463            window.pars3p.api.public.Home_GetBrand = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Home_GetBrand');
2464            window.pars3p.api.public.All_GetProductByID = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/All_GetProductByID');
2465            window.pars3p.api.public.All_GetProductRawByID = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/All_GetProductRawByID');
2466            window.pars3p.api.auth.ProductDetail_GetID = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/ProductDetail_GetID');
2467            window.pars3p.api.public.GetListProductByBlogCategory = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/product/GetListProductByBlogCategory');
2468
2469            window.pars3p.api.public.Blog_GetByID = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Blog_GetByID');
2470            window.pars3p.api.public.Home_GetBlog = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Home_GetBlog');
2471            window.pars3p.api.public.Home_GetTinTuc = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Home_GetTinTuc');
2472            window.pars3p.api.public.Detail_SPQuanTam = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Detail_SPQuanTam');
2473            window.pars3p.api.public.Cart_ProductTotal = lib3p_helper.utility.path(window.pars3p.apiapp_port, 'api/public/Cart_ProductTotal');
2474            window.pars3p.api.auth.All_GetCart = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/All_GetCart');
2475            window.pars3p.api.auth.All_GetTotalQuantity = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/All_GetTotalQuantity');
2476            window.pars3p.api.auth.Payment_GetPayments = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Payment_GetPayments');
2477            window.pars3p.api.public.CartThanks_GetOrder = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/CartThanks_GetOrder');
2478            window.pars3p.api.auth.Cart_ProductQuantity = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Cart_ProductQuantity');
2479            window.pars3p.api.public.Cart_ProductQuantity = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Cart_ProductQuantity');
2480            window.pars3p.api.auth.Cart_ProductDelete = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Cart_ProductDelete');
2481            window.pars3p.api.auth.Cart_ProductChoose = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Cart_ProductChoose');
2482            window.pars3p.api.auth.Cart_ProductTotal = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Cart_ProductTotal');
2483            window.pars3p.api.auth.Cart_ProductAdd = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Cart_ProductAdd');
2484            window.pars3p.api.auth.Cart_AddShipping = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Cart_AddShipping');
2485            window.pars3p.api.auth.Cart_CheckEmpty = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Cart_CheckEmpty');
2486            window.pars3p.api.auth.Payment_GetCart = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Payment_GetCart');
2487            window.pars3p.api.auth.Delivery_GetAll = lib3p_helper.utility.path(window.pars3p.apiapp_port, 'api/auth/Delivery_GetAll');
2488            window.pars3p.api.auth.Delivery_Delete = lib3p_helper.utility.path(window.pars3p.apiapp_port, 'api/auth/Delivery_Delete');
2489            window.pars3p.api.auth.Delivery_Add = lib3p_helper.utility.path(window.pars3p.apiapp_port, 'api/auth/Delivery_Add');
2490            window.pars3p.api.auth.Delivery_Edit = lib3p_helper.utility.path(window.pars3p.apiapp_port, 'api/auth/Delivery_Edit');
2491            window.pars3p.api.public.Delivery_GetLocation = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Delivery_GetLocation');
2492            window.pars3p.api.auth.Delivery_Order = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Delivery_Order');
2493            window.pars3p.api.auth.Payment_ProductTotal = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Payment_ProductTotal');
2494            window.pars3p.api.auth.Payment_UpdateTranport = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Payment_UpdateTranport');
2495            window.pars3p.api.auth.Payment_UpdatePayment = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Payment_UpdatePayment');
2496            window.pars3p.api.public.Payment_CheckQuantity = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Payment_CheckQuantity');
2497            window.pars3p.api.auth.Payment_CheckQuantity = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Payment_CheckQuantity');
2498            window.pars3p.api.auth.Payment_Complete = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Payment_Complete');
2499            window.pars3p.api.auth.Payment_Timeout = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Payment_Timeout');
2500            window.pars3p.api.public.Cart_SuggestCombo = lib3p_helper.utility.path(window.pars3p.apiapp_port, 'api/public/Cart_SuggestCombo');
2501            window.pars3p.api.auth.Cart_ChangeCombo = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Cart_ChangeCombo');
2502            window.pars3p.api.public.Cart_CouponTotal = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Cart_CouponTotal');
2503            window.pars3p.api.auth.Cart_CouponTotal = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Cart_CouponTotal');
2504            window.pars3p.api.auth.Cart_CouponDelete = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Cart_CouponDelete');
2505            window.pars3p.api.auth.Cart_CouponAdd = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Cart_CouponAdd');
2506            window.pars3p.api.auth.Cart_CouponAddList = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Cart_CouponAddList');
2507            window.pars3p.api.auth.Cart_GenRam = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Cart_GenRam');
2508            window.pars3p.api.public.Cart_CouponAdd = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Cart_CouponAdd');
2509            window.pars3p.api.public.Contact_Send = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Contact_Send');
2510            window.pars3p.api.public.Hamper_Send = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Hamper_Send');
2511            window.pars3p.api.public.All_Captcha = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/All_Captcha');
2512            
2513            window.pars3p.api.auth.All_MergeCart = lib3p_helper.utility.path(window.pars3p.apiapp_port, 'api/auth/All_MergeCart');
2514            window.pars3p.api.auth.User_DSProductLikeHeader = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/User_DSProductLikeHeader');
2515            window.pars3p.api.auth.User_ProductLikeChange = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/User_ProductLikeChange');
2516            window.pars3p.api.auth.User_DSProductBuy = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/User_DSProductBuy');
2517            window.pars3p.api.auth.User_DSProductLike = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/User_DSProductLike');
2518            window.pars3p.api.auth.User_ProductLikeDelete = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/User_ProductLikeDelete');
2519            window.pars3p.api.public.Product_SuggestCombo = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Product_SuggestCombo');
2520            window.pars3p.api.public.Product_SuggestCoupon = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Product_SuggestCoupon');
2521            window.pars3p.api.public.Header_Search = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Header_SearchV2');
2522            
2523            window.pars3p.api.public.Home_GetProductGroupByID = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Home_GetProductGroupByID');
2524            window.pars3p.api.public.Home_GetFlashSale = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Home_GetFlashSale');
2525            window.pars3p.api.public.ChuDe_KhuyenMai = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/ChuDe_KhuyenMai');
2526            window.pars3p.api.public.ChuDe_Kind = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/ChuDe_Kind');
2527            window.pars3p.api.public.ChuDe_KindProduct = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/ChuDe_KindProduct');
2528            window.pars3p.api.public.ChuDe_ProductByType = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/ChuDe_ProductByType');
2529            window.pars3p.api.public.ChuDe_BannerMuaNhieu = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/ChuDe_BannerMuaNhieu');
2530            window.pars3p.api.public.Giftset_GetList = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Giftset_GetList');
2531            window.pars3p.api.auth.OrderHistory_BuyCheck = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/OrderHistory_BuyCheck');
2532            window.pars3p.api.auth.OrderHistory_Buy = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/OrderHistory_Buy');
2533            window.pars3p.api.auth.OrderHistory_Repay = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/OrderHistory_Repay');
2534            window.pars3p.api.auth.OrderHistory_Delete = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/OrderHistory_Delete');
2535            window.pars3p.api.auth.OrderHistory_Details = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/OrderHistory_Details');
2536            window.pars3p.api.public.All_TotalChip = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/All_TotalChip');
2537            window.pars3p.api.public.All_GetMAConfig = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/All_GetMAConfig');
2538            window.pars3p.api.public.Tracking_Order = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Tracking_Order');
2539            window.pars3p.api.public.Tracking_OrderV2 = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Tracking_OrderV2');
2540            window.pars3p.api.auth.Tracking_Order = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Tracking_Order');
2541            window.pars3p.api.auth.Tracking_OrderV2 = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Tracking_OrderV2');
2542            window.pars3p.api.public.Tracking_OrderLast = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Tracking_OrderLast');
2543            window.pars3p.api.auth.Tracking_OrderLast = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Tracking_OrderLast');
2544            window.pars3p.api.public.Tracking_OrderGift = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Tracking_OrderGift');
2545            window.pars3p.api.public.Tracking_OrderRepayCheck = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Tracking_OrderRepayCheck');
2546            window.pars3p.api.public.Tracking_OrderRepayGet = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Tracking_OrderRepayGet');
2547            window.pars3p.api.auth.Tracking_OrderGift = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Tracking_OrderGift');
2548            window.pars3p.api.auth.Tracking_OrderRepayCheck = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Tracking_OrderRepayCheck');
2549            window.pars3p.api.auth.Tracking_OrderRepayGet = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Tracking_OrderRepayGet');
2550            window.pars3p.api.auth.UserCard_Get = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/UserCard_Get');
2551            window.pars3p.api.auth.UserCard_PointByYear = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/UserCard_PointByYear');
2552            window.pars3p.api.auth.UserCard_Transaction = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/UserCard_Transaction');
2553            window.pars3p.api.auth.UserCoupon_ListActive = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/UserCoupon_ListActive');
2554            window.pars3p.api.auth.UserCoupon_ListUsed = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/UserCoupon_ListUsed');
2555            window.pars3p.api.auth.UserCoupon_ListExpired = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/UserCoupon_ListExpired');
2556            window.pars3p.api.auth.OrderHistory_ListOrders = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/OrderHistory_ListOrders');
2557            window.pars3p.api.auth.Cart_CheckComplete = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Cart_CheckComplete');
2558            window.pars3p.api.public.Payment_GetPayments = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Payment_GetPayments');
2559            window.pars3p.api.public.Payment_ProductTotal = lib3p
2559_helper.utility.path(window.pars3p.apiapp_port, 'api/public/Payment_ProductTotal');
2560            window.pars3p.api.public.Payment_Complete = lib3p_helper.utility.path(window.pars3p.apiapp_port, 'api/public/Payment_Complete');
2561            window.pars3p.api.public.All_CheckCaptcha = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/All_CheckCaptcha');
2562            window.pars3p.api.public.HeaderSMS_Reload = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/HeaderSMS_Reload');
2563            window.pars3p.api.public.HeaderSMS_Check = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/HeaderSMS_Check');
2564            window.pars3p.api.public.HeaderSMS_Test = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/HeaderSMS_Test');
2565            window.pars3p.api.public.Header_GiftCheck = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Header_GiftCheck');
2566            window.pars3p.api.auth.Header_GiftCheck = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/Header_GiftCheck');
2567            window.pars3p.api.public.Event_SanPhamHot = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Event_SanPhamHot');
2568            window.pars3p.api.public.Event_DanhSachSanPhamSort = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Event_DanhSachSanPhamSort');
2569            window.pars3p.api.public.Event_SanPhamThuongHieu = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Event_SanPhamThuongHieu');
2570            window.pars3p.api.public.Event_SanPhamKhuyenMai = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Event_SanPhamKhuyenMai');
2571            window.pars3p.api.public.Event_SanPhamKhuyenMaiMobile = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Event_SanPhamKhuyenMaiMobile');
2572            window.pars3p.api.public.Event_SanPhamCombo = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Event_SanPhamCombo');
2573            window.pars3p.api.public.Event_Kind = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Event_Kind');
2574            window.pars3p.api.public.Event_SanPhamByKind = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Event_SanPhamByKind');
2575            window.pars3p.api.public.Event_SanPhamByKindMobile = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/Event_SanPhamByKindMobile');
2576
2577            window.pars3p.api.auth.PageKHTT_Send = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/PageKHTT_Send');
2578            window.pars3p.api.auth.PageKHTT_SendOther = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/auth/PageKHTT_SendOther');
2579            window.pars3p.api.public.PageKHTT_Update = lib3p_helper.utility.path(window.pars3p.apiapp, 'api/public/PageKHTT_Update');
2580
2581            window.pars3p.urlLogin = data.urlLogin;
2582            window.pars3p.urlRegister = data.urlRegister;
2583            window.pars3p.urlCart = data.urlCart;
2584            window.pars3p.urlTracking = data.urlTracking;
2585            window.pars3p.urlCartDelivery = data.urlCartDelivery;
2586            window.pars3p.urlCartPayment = data.urlCartPayment;
2587            window.pars3p.urlRegisterSuccess = data.urlRegisterSuccess;
2588            window.pars3p.urlUserLike = data.urlUserLike;
2589
2590            var strToken = lib3p.common_tokenGet();
2591            if (lib3p_helper.utility.hasValueString(strToken)) {
2592                if (lib3p_helper.utility.hasValue(strToken.access_token)) {
2593                    window.pars3p.auth = strToken;
2594                }
2595                else {
2596                    window.pars3p.auth = JSON.parse(strToken);
2597                }
2598                if (!lib3p_helper.utility.hasValue(window.pars3p.auth)) {
2599                    window.pars3p.auth = {
2600                        isLogin: false,
2601                        access_token: '',
2602                        refresh_token: '',
2603                        fullName: '',
2604                        phoneNumber: '',
2605                    };
2606                }
2607            }
2608
2609            window.pars3p.loaddata = true;
2610        }
2611    },
2612    init: function () {
2613        lib3p.logInfo('init');
2614        var ListBanner = [];
2615        if (Header_LoadBanner && lib3p_helper.utility.hasValue(Header_LoadBanner)) {
2616            ListBanner = Header_LoadBanner();
2617            ListBanner.forEach(function (c) {
2618                c.ImageName = '';
2619                if (lib3p_helper.utility.hasValueString(c.Image)) {
2620                    var strs = c.Image.split('/');
2621                    c.ImageName = strs[strs.length - 1];
2622                }
2623            });
2624        }
2625        var pop = lib3p.common_popupGet();
2626        if (lib3p_helper.utility.hasValue(pop)) {
2627            pop = parseInt(pop);
2628        }
2629        else {
2630            pop = -1;
2631        }
2632        window.pars3p = {
2633            keydowndate: null,
2634            keydowndata: {},
2635            id: '',
2636            BrowserID: '',
2637            ConnectID: '',
2638            browser: '',
2639            //param trao doi
2640            hostname: '',
2641            hostresouce: '',
2642            apiid: '',
2643            apiapp: '',
2644            apihistory: '',
2645            cookieDomain: '',
2646            showLogSystem: false,
2647            showLogComponent: false,
2648            language: 'vi-VN',
2649            timeOrderCalculate: 60000,
2650            //thoi gian chay ko dong bo
2651            timeAsync: 100,
2652            homepopup: pop,
2653            page_type: 'category',
2654
2655            //url
2656            redirect: '/',
2657            urlLogin: '',
2658            urlRegister: '',
2659            urlCart: '',
2660            urlTracking: '',
2661            urlCartDelivery: '',
2662            urlCartPayment: '',
2663            urlRegisterSuccess: '',
2664
2665            api: {
2666                public: {},
2667                auth: {},
2668            },
2669
2670            //param xu ly
2671            KeyView: '',
2672            KeyCaptcha: '',
2673            scrollType: null,
2674            scrollLast: 0,
2675            scrollHeader: null,
2676            scrollBody: null,
2677            MobileClick: null,
2678            ClipboardData: null,
2679
2680            khtt: {
2681                ID: 0,
2682                CardNo: '',
2683                Cellphone: '',
2684                FullName: '',
2685                StatusID: 0,
2686                OrderBy: '',
2687
2688                CallBackOK: null,
2689                CallBackCancel: null,
2690                CallBackOTP: null,
2691                Success: false,
2692                TypeKTTT: -1,
2693            },
2694            dangkykhtt: {
2695                ID: -1,
2696                Code: -1,
2697                StoreID: -1,
2698                URL: '',
2699                TransactionNo: '',
2700                Ngay: -1,
2701                Thang: -1,
2702                Nam: -1,
2703                Province: -1,
2704                District: -1,
2705                HistoryCardID: -1,
2706                Cellphone: '',
2707                CardNo: '',
2708                IsChangePass: false
2709            },
2710            password: {
2711                UserName: '',
2712                PasswordOld: '',
2713            },
2714
2715            otp: {
2716                CallBackOK: null,
2717                CallBackCancel: null,
2718                Success: false,
2719                Password: '',
2720                PhoneNumber: '',
2721                TypeOTP: -1,
2722                SendType: -1,
2723                SendTypeTime: -1,
2724                Timer: -1
2725            },
2726            seo: {
2727                IsLoading: false,
2728                Query: ''
2729            },
2730
2731            runningCart: false,
2732            home_category: [],
2733            viewed: [],
2734            viewedID: -1,
2735            orderID: -1,
2736            listdetailID: [],
2737            tempID: -1,
2738            tempData: [],
2739            tempError: '',
2740            cartWaitTime: -1,
2741            cartWaitTimeRun: -1,
2742            orderNo: '',
2743            islockDiaglog: false,
2744            reviews: {
2745                Code: -1,
2746                ProductName: '',
2747                ImageSetting: '',
2748                UnitPrice: 0,
2749                IsHachi24h: false,
2750
2751                Rating: 0,
2752                ListImage: [],
2753            },
2754            auth: {
2755                isLogin: false,
2756                access_token: '',
2757                refresh_token: '',
2758
2759                fullName: '',
2760                phoneNumber: '',
2761                email: '',
2762                memberID: '',
2763                userName: '',
2764            },
2765            auth_last: {},
2766            cart_temp: null,
2767            cart: {
2768                timeOrderCalculateNext: null,
2769                lastUser: '',
2770                lastDate: null,
2771                CouponDeleteID: 0,
2772
2773                Code: null,
2774                OrderNo: '',
2775                OrderBy: '',
2776                OrderPhone: '',
2777                OrderEmail: '',
2778                OrderDate: null,
2779                OrderTime: null,
2780                StepDate: null,
2781                EstDelivery: null,
2782                TotalAmount: 0,
2783                MembershipID: '',
2784                PolicyMembership: 0,
2785                DiscountMembership: 0,
2786                CouponPaid: 0,
2787                ShippingFee: 0,
2788                ShippingDiscount: 0,
2789                Payment: 0,
2790                Remark: '',
2791                RemarkClient: '',
2792                StaffID: 0,
2793                //1:dang nhap, 2:giao hang, 3:kiem tra,thanh toan
2794                StatusID: 0,
2795
2796                TotalItemQuantity: 0,
2797                TotalItemQuantityChoose: 0,
2798                IsVAT: false,
2799                VATCode: '',
2800                VATCompany: '',
2801                VATAddress: '',
2802                VATEmail: '',
2803                HasCoupon: false,
2804                IsStock: false,
2805                IsAppliedHachi24: false,
2806                IsHachi24: false,
2807                IsOnlyHachi24h: false,
2808
2809                DeliveryID: 0,
2810                ReceivedBy: '',
2811                Cellphone: '',
2812                Province: 0,
2813                District: 0,
2814                Ward: 0,
2815                Address: '',
2816                FullAddress: '',
2817
2818                BankID: 0,
2819                PaymentID: 0,
2820                PaymentMethod: '',
2821
2822                CartDetails: [],
2823                CartCoupon: [],
2824                ListCoupon: [],
2825                CartNoti: [],
2826                CartCombo: [],
2827                TypeOfTransportation: [],
2828            },
2829            others: {
2830                ListBanner: ListBanner,
2831                ListGroupGift: []
2832            },
2833            productLike: '',
2834            productDeleteID: 0,
2835            deliveryID: 0,
2836            location: null,
2837            listDelivery: [],
2838            listPayment: [],
2839            listSuggestCombo: [],
2840            listCouponOffer: [],
2841            idSuggestCombo: -1,
2842            couponChange: false,
2843            itemTemp: null,
2844            keydown_el: null,
2845            keydown_count: null,
2846            keydown_timer: null,
2847            timmer: [],
2848            timmer1s: [],
2849            temp_OrderPhone: null,
2850            temp_OrderPhoneOTP: null,
2851            temp_H89: false,
2852        };
2853
2854        if (!lib3p_helper.utility.cache.check()) {
2855            alert("This browser is not support cache");
2856        }
2857        else if (document["myparam"] == undefined || document["myparam"] == null) {
2858            alert("This browser is not hachi");
2859        }
2860        else {
2861            window.pars3p.timmer = [];
2862            window.pars3p.timmer1s = [];
2863            setInterval(function () {
2864                if (lib3p_helper.utility.hasListValue(window.pars3p.timmer)) {
2865                    window.pars3p.timmer.forEach(function (c) {
2866                        try {
2867                            c();
2868                        }
2869                        catch (e) {
2870                            console.log(e);
2871                        }
2872                    });
2873                }
2874            }, 60000);
2875            setInterval(function () {
2876                if (lib3p_helper.utility.hasListValue(window.pars3p.timmer1s)) {
2877                    window.pars3p.timmer1s.forEach(function (c) {
2878                        try {
2879                            c();
2880                        }
2881                        catch (e) {
2882                            console.log(e);
2883                        }
2884                    });
2885                }
2886            }, 1000);
2887
2888            try {
2889                window.pars3p.id = lib3p.common_idGet2();
2890            }
2891            catch (e) { }
2892            /* if (!lib3p_helper.utility.hasValueString(window.pars3p.id)) {
2893                try {
2894                    window.pars3p.id = lib3p.common_idGet();
2895                    if (lib3p_helper.utility.hasValueString(window.pars3p.id)) {
2896                        lib3p.common_idSet2(window.pars3p.id);
2897                    }
2898                }
2899                catch (e) { }
2900            } */
2901            try {
2902                window.pars3p.browser = lib3p.common_Browser();
2903            }
2904            catch (e) { }
2905            /* try {
2906                window.pars3p.BrowserID = lib3p.common_browserGet();        
2907            }
2908            catch(e) { }
2909            var queryCheck = jQuery('.page-action');
2910            if(lib3p_helper.utility.hasValue(queryCheck) && queryCheck.length > 0) {
2911                var data = document["myparam"]();
2912                if(lib3p_helper.utility.hasValueString(data.BrowserID)) {
2913                    window.pars3p.BrowserID = data.BrowserID;
2914                    lib3p.common_browserSet(window.pars3p.BrowserID);
2915                }
2916                var url = queryCheck.html();
2917                window.location = url;
2918            }
2919            else if(!lib3p_helper.utility.hasValueString(window.pars3p.BrowserID)) {
2920                var data = document["myparam"]();
2921                if(data.IsPageIndex == "1") {
2922                    window.location = '/hachi-action?type=1073';
2923                }
2924                else if(lib3p_helper.utility.hasValueString(data.BrowserID)) {
2925                    window.pars3p.BrowserID = data.BrowserID;
2926                    lib3p.common_browserSet(window.pars3p.BrowserID);
2927                }
2928            } */
2929            lib3p.loadparams();
2930
2931            if (!lib3p_helper.utility.hasValueString(window.pars3p.id)) {
2932                var dt = new Date();
2933                window.pars3p.id = lib3p_helper.utility.uuidv4() + '-' + dt.getTime();
2934                lib3p.common_idSet2(window.pars3p.id);
2935                //lib3p.common_idSet(window.pars3p.id);
2936            }
2937
2938            lib3p.common_logSystem("Load param success");
2939
2940            //loại scroll
2941            var browserW = lib3p.common_GetWidthBrowser();
2942            if (browserW > 700) {
2943                window.pars3p.scrollType = 1;
2944            }
2945            else {
2946                window.pars3p.scrollType = 2;
2947            }
2948            //Show hide scroll top
2949            var b = jQuery(window).scrollTop();
2950            var c = jQuery(window).height();
2951            if (b > 100) {
2952                var d = b + c / 2;
2953            }
2954            else {
2955                var d = 1;
2956            }
2957            if (d < 700 && d < c) {
2958                jQuery("#scroll-to-top").removeClass('on off').addClass('off');
2959            }
2960            else {
2961                jQuery("#scroll-to-top").removeClass('on off').addClass('on');
2962            }
2963            if (window.pars3p.scrollType == 1) {
2964                //hien menu
2965                var queryMenu = jQuery('.mode-desktop .page-header-menu');
2966                if (queryMenu != null && queryMenu.length > 0) {
2967                    if (b > 200) {
2968                        if (!queryMenu.hasClass('header-fixed')) {
2969                            queryMenu.addClass("header-fixed");
2970                            queryMenu.css('top', '36px');
2971                        }
2972                    }
2973                }
2974                queryMenu = jQuery('.mode-desktop .page-header-top-1');
2975                if (queryMenu != null && queryMenu.length > 0) {
2976                    if (b > 70) {
2977                        if (!queryMenu.hasClass('fixed')) {
2978                            queryMenu.addClass('fixed');
2979                        }
2980                    }
2981                }
2982            }
2983            else if (window.pars3p.scrollType == 2) {
2984                //nếu là mobile thì ẩn logo header và textbox lớn và banner top, hiện textbox nhỏ
2985                if (b < 90) {
2986                    jQuery(".mobile-header-menu .logo a").show();
2987                    jQuery(".mobile-header .mobile-outline .search-input").show();
2988                    jQuery(".mobile-header-menu .logo .search-input").hide();
2989                    //jQuery(".mobile-header .mobile-header-top").show();
2990                }
2991                else {
2992                    //jQuery(".mobile-header-menu .logo a").hide();
2993                    jQuery(".mobile-header-menu").not('.event1').find('.logo a').hide();
2994                    jQuery(".mobile-header .mobile-outline .search-input").hide();
2995                    jQuery(".mobile-header-menu .logo .search-input").show();
2996                    //jQuery(".mobile-header .mobile-header-top").hide();
2997                }
2998            }
2999
3000            jQuery('.hachi-modal .modal').on('click', function (e) {
3001                if (window.pars3p.islockDiaglog != true) {
3002                    if (lib3p_helper.utility.hasValue(e.target) && e.target.className == 'modal') {
3003                        var query = jQuery(e.target).closest('.hachi-modal');
3004                        if (query != null && query.length > 0) {
3005                            if (jQuery(query[0]).hasClass("d-block")) {
3006                                jQuery(query[0]).removeClass("d-block").addClass("d-none");
3007                            }
3008                        }
3009                    }
3010                }
3011            });
3012            jQuery(window).on("scroll", function () {
3013                var currentScrollPosition = jQuery(this).scrollTop();
3014
3015                if (window.pars3p.scrollType == 1) {
3016                    //desltop     
3017                    //Show hide scroll top
3018                    var b = jQuery(this).scrollTop();
3019                    var c = jQuery(this).height();
3020                    if (b > 100) {
3021                        var d = b + c / 2;
3022                    }
3023                    else {
3024                        var d = 1;
3025                    }
3026
3027                    if (d < 1000 && d < c) {
3028                        jQuery("#scroll-to-top").removeClass('on').addClass('off');
3029                    }
3030                    else {
3031                        jQuery("#scroll-to-top").removeClass('off').addClass('on');
3032                    }
3033                    window.pars3p.scrollLast = b;
3034                    //nếu scroll xuống thì ẩn header, scroll lên thì hiện header
3035                    var queryMenu = jQuery('.mode-desktop .page-header-menu');
3036                    if (queryMenu != null && queryMenu.length > 0) {
3037                        if (currentScrollPosition == 0) {
3038                            // Show header
3039                            if (queryMenu.hasClass('header-fixed')) {
3040                                queryMenu.removeClass("header-fixed");
3041                            }
3042                            queryMenu.css('top', '36px');
3043                        }
3044                        else if (currentScrollPosition > window.pars3p.lastScrollPosition) {
3045                            // Hide header
3046                            if (queryMenu.hasClass('header-fixed')) {
3047                                queryMenu.removeClass("header-fixed");
3048                            }
3049                            queryMenu.css('top', '-100%');
3050                        }
3051                        else {
3052                            // Show header
3053                            if (!queryMenu.hasClass('header-fixed')) {
3054                                queryMenu.addClass("header-fixed");
3055                                queryMenu.css('top', '36px');
3056                            }
3057                        }
3058                    }
3059                    queryMenu = jQuery('.mode-desktop .page-header-top-1');
3060                    if (queryMenu != null && queryMenu.length > 0) {
3061                        if (currentScrollPosition > 70) {
3062                            if (!queryMenu.hasClass('fixed')) {
3063                                queryMenu.addClass('fixed');
3064                            }
3065                        }
3066                        else {
3067                            queryMenu.removeClass('fixed');
3068                        }
3069                    }
3070                }
3071                else if (window.pars3p.scrollType == 2) {
3072                    //mobile
3073                    //Show hide scroll top
3074                    var b = jQuery(this).scrollTop();
3075                    var c = jQuery(this).height();
3076                    if (b > 100) {
3077                        var d = b + c / 2;
3078                    }
3079                    else {
3080                        var d = 1;
3081                    }
3082                    if (d < 700 && d < c) {
3083                        jQuery("#scroll-to-top").removeClass('on off').addClass('off');
3084                    }
3085                    else {
3086                        jQuery("#scroll-to-top").removeClass('on off').addClass('on');
3087                    }
3088                    //nếu là mobile thì ẩn logo header và textbox lớn và banner top, hiện textbox nhỏ
3089                    if (b < 90) {
3090                        jQuery(".mobile-header-menu .logo a").show();
3091                        jQuery(".mobile-header .mobile-outline .search-input").show();
3092                        jQuery(".mobile-header-menu .logo .search-input").hide();
3093                        //jQuery(".mobile-header .mobile-header-top").show();
3094                    }
3095                    else {
3096                        //jQuery(".mobile-header-menu .logo a").hide();
3097                        jQuery(".mobile-header-menu").not('.event1').find('.logo a').hide();
3098                        jQuery(".mobile-header .mobile-outline .search-input").hide();
3099                        jQuery(".mobile-header-menu .logo .search-input").show();
3100                        //jQuery(".mobile-header .mobile-header-top").hide();
3101                    }
3102                    window.pars3p.scrollLast = b;
3103                }
3104                else {
3105                    var browserW = lib3p.common_GetWidthBrowser();
3106                    if (browserW > 700) {
3107                        window.pars3p.scrollType = 1;
3108                    }
3109                    else {
3110                        window.pars3p.scrollType = 2;
3111                    }
3112                }
3113
3114                //console.log((currentScrollPosition + jQuery(window).height()) + ' : ' + jQuery(document).height())
3115                window.pars3p.lastScrollPosition = currentScrollPosition;
3116            });
3117            jQuery(window).on("resize", function () {
3118                var browserW = lib3p.common_GetWidthBrowser();
3119                lib3p.common_FixReturnScroll();
3120
3121                if (browserW > 992 && jQuery('.menu-mobile-3p').hasClass('opened'))
3122                    jQuery("#session-body").trigger('click');
3123
3124                if (browserW > 991)
3125                    scrollType = 1;
3126                else if (browserW < 992) {
3127                    scrollType = 2;
3128                    lib3p.common_appHeight();
3129                }
3130            });
3131            jQuery(window).on("keydown", function (event) {
3132                //nhấn esc đóng popup đang mở
3133                if (event.keyCode == 27) {
3134                    jQuery('.hachi-modal.d-block').removeClass("d-block").addClass("d-none");
3135                }
3136            });
3137            //click scroll-to-top
3138            jQuery("#scroll-to-top").on('click', function (e) {
3139                e.preventDefault();
3140                jQuery('body,html').animate({ scrollTop: 0 }, 800, 'swing');
3141            });
3142
3143            lib3p.common_logSystem("Init resize,scroll,click success");
3144
3145            lib3p.init_async().then(function (data) { }, function (err) { console.log(err); });
3146
3147            setTimeout(function () {
3148                jQuery('.product-list .product-item .name a').each(function () {
3149                    var val = jQuery(this).html();
3150                    jQuery(this).html(lib3p_helper.product.productName(val));
3151                });
3152            }, 2000);
3153        }
3154    },
3155    runPromotionTimer(ele, ms_in_min) {
3156        const dates = [new Date().getTime(), new Date($(ele).attr('data-time')).getTime()]
3157        //cooldown 1 min
3158        dates[0] += ms_in_min
3159        const diffTime = Math.abs(dates[0] - dates[1]);
3160        //tính ngày giờ phút
3161        const days = diffTime / (24 * 60 * 60 * 1000);
3162        const hours = (days % 1) * 24;
3163        const minutes = (hours % 1) * 60;
3164        //gán giá trị mới
3165        jQuery(ele).find('.ngay').html(days < 10 ? '0' + ~~days : ~~days)
3166        jQuery(ele).find('.gio').html(hours < 10 ? '0' + ~~hours : ~~hours)
3167        jQuery(ele).find('.phut').html(minutes < 10 ? '0' + ~~minutes : ~~minutes)
3168
3169        if (days > 3) {
3170            $(ele).find('.timegroup').hide();
3171        }
3172    },
3173    runFlashsaleTimer(ele, ms_in_min, date) {
3174        // const dates = [new Date().getTime(), new Date($(ele).attr('data-time')).getTime()]
3175        const dates = [new Date().getTime(), date.getTime()]
3176        //cooldown 1 sec
3177        dates[0] += ms_in_min
3178        const diffTime = Math.abs(dates[0] - dates[1]);
3179        //tính giờ phút giây
3180        const days = diffTime / (24 * 60 * 60 * 1000);
3181        const hours = (days % 1) * 24;
3182        const minutes = (hours % 1) * 60;
3183        const secs = (minutes % 1) * 60;
3184        //gán giá trị mới
3185        jQuery(ele).find('.hour').html(hours < 10 ? '0' + ~~hours : ~~hours)
3186        jQuery(ele).find('.min').html(minutes < 10 ? '0' + ~~minutes : ~~minutes)
3187        jQuery(ele).find('.sec').html(secs < 10 ? '0' + ~~secs : ~~secs)
3188
3189        if (days > 3) {
3190            $(ele).find('.timegroup').hide();
3191        }
3192    },
3193    init_async: function () {
3194        return new Promise(function (resolve, reject) {
3195            setTimeout(function () {
3196                lib3p.logInfo('init_async');
3197
3198                lib3p.header.GMC_UserCheck();
3199                lib3p.header.GMC_ViewList();
3200                lib3p.header.GMC_ViewItem();
3201                jQuery('[data-toggle="popover"]').popover();
3202
3203                var lstViewed = lib3p.common_viewGet();
3204                if (lib3p_helper.utility.hasValueString(lstViewed)) {
3205                    var temp = [];
3206                    lstViewed.split(",").forEach(function (s) {
3207                        temp.push(parseInt(s));
3208                    });
3209                    window.pars3p.viewed = temp;
3210                }
3211                var queryViewed = jQuery('.page-product-detail');
3212                if (lib3p_helper.utility.hasValue(queryViewed) && queryViewed.length > 0) {
3213                    var data = jQuery(queryViewed[0]).data();
3214                    window.pars3p.viewedID = parseInt(data.id);
3215                    if (window.pars3p.viewedID > 0 && window.pars3p.viewed.indexOf(window.pars3p.viewedID) == -1) {
3216                        window.pars3p.viewed.push(window.pars3p.viewedID);
3217                        lib3p.common_viewSet(window.pars3p.viewed);
3218                    }
3219
3220                    lib3p.common_logSystem("Init product detail success");
3221                }
3222
3223                window.pars3p.auth.isLogin = false;
3224                if (lib3p_helper.utility.hasValueString(window.pars3p.auth.access_token)) {
3225                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Header_GetInfo, {}, function (resGet) {
3226                        if (lib3p_helper.utility.hasValue(resGet) && lib3p_helper.utility.hasValueString(resGet.UserName)) {
3227                            window.pars3p.auth.fullName = resGet.FullName;
3228                            window.pars3p.auth.phoneNumber = resGet.Cellphone;
3229                            window.pars3p.auth.email = resGet.Email;
3230                            window.pars3p.auth.memberID = resGet.CardNo;
3231                            window.pars3p.auth.userName = resGet.UserName;
3232
3233                            window.pars3p.auth.isLogin = true;
3234                            lib3p.common_loginSet("1");
3235
3236                            lib3p.initPage();
3237                            resolve('');
3238                        }                       
3239                        else {
3240                            lib3p.header.onUserLogout_Click();
3241                            reject(false);
3242                        }
3243                    }, function (errGet) {
3244                        lib3p.log(errGet);
3245                        lib3p.header.onUserLogout_Click();
3246                        reject(errGet);
3247                    });
3248                }
3249                else {
3250                    lib3p.common_loginSet('');
3251                    lib3p.initPage();
3252                    resolve('');
3253                }
3254            }, window.pars3p.timeAsync);
3255        });
3256    },
3257
3258    initPage: function () {
3259        lib3p.logInfo('initPage');
3260
3261        lib3p.header.init();
3262        lib3p.pageLogin.init();
3263        lib3p.pageHome.init();
3264        lib3p.pageProductCategory.init();
3265        lib3p.pageProductDetail.init();
3266        lib3p.pageProductPromotion.init();
3267        lib3p.pageCart.init();
3268        //lib3p.pageCartTest.init();
3269        //lib3p.pageCartDelivery.init();
3270        lib3p.pageCartPayment.init();
3271        lib3p.pageCartThanks.init();
3272        lib3p.pageContact.init();
3273        lib3p.pageBlogHome.init();
3274        lib3p.pageBlogCate.init();
3275        lib3p.pageBlogSearch.init();
3276        lib3p.pageBlogDetail.init();
3277        lib3p.pageUserLike.init();
3278        lib3p.pageUserBuy.init();
3279        lib3p.pageUserDelivery.init();
3280        lib3p.pageUserCoupon.init();
3281        lib3p.pageOrderHistory.init();
3282        lib3p.pageOrderHistoryDetail.init();
3283        lib3p.pageUserCard.init();
3284        lib3p.pageUserProfile.init();
3285        lib3p.pageQA.init();
3286        lib3p.pageProductChuDe.init();
3287        lib3p.pageStore.init();
3288        lib3p.pageHachiGioiThieu.init();
3289        lib3p.pageHachiStar.init();
3290        lib3p.pageGiftset.init();
3291        lib3p.pageCombo.init();
3292        lib3p.pageTracking.init();
3293        lib3p.pageDangKyKHTT.init();
3294        lib3p.pageNoFound.init();
3295        lib3p.pageRegister.init();
3296        lib3p.eventJapanMall2024.init();
3297        lib3p.eventJapanMall2025.init();
3298        lib3p.eventHamperTet2025.init();
3299        lib3p.eventHamperTet2026.init();
3300        lib3p.eventTraXanh2025.init();
3301        lib3p.eventKenkogen2025.init();
3302
3303        //lib3p.common_trackInsert();
3304
3305        //#region dùng chung
3306
3307        //lib3p.common_logSystem("Init input search success");
3308        try {
3309            //chạy thời gian khuyến mãi
3310            var query = jQuery('.title[data-time]');
3311            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
3312                const ms_in_min = 60000
3313                jQuery('.title[data-time]').each(function () {
3314                    lib3p.runPromotionTimer(this, ms_in_min);
3315                    //bind lần đầu sau khi load data
3316
3317                    setInterval(() => {//bind mỗi 1 phút
3318                        lib3p.runPromotionTimer(this, ms_in_min)
3319                    }, ms_in_min);
3320                });
3321            }
3322        } catch (error) {
3323            console.log(error)
3324        }
3325
3326        if (lib3p_helper.utility.hasValue(jQuery("#js-noti-register-success")) && jQuery("#js-noti-register-success").length > 0) {
3327            if (window.pars3p.auth && window.pars3p.auth.isLogin == true) {
3328                jQuery("#js-noti-register-success .fullName").html(window.pars3p.auth.fullName);
3329                jQuery("#js-noti-register-success .memberID").html(window.pars3p.auth.memberID.substr(0, 3) + "****" + window.pars3p.auth.memberID.substr(-3));
3330                jQuery("#js-noti-register-success .phoneNumber").html(window.pars3p.auth.phoneNumber.substr(0, 3) + "****" + window.pars3p.auth.phoneNumber.substr(-3));
3331            }
3332        }
3333
3334        var query = jQuery('.san-pham-da-xem');
3335        var queryMobile = jQuery('.san-pham-da-xem-mobile');
3336
3337        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
3338            if (lib3p_helper.utility.hasListValue(window.pars3p.viewed)) {
3339                var lstid = window.pars3p.viewed.filter(function (c) { return c != window.pars3p.viewedID; });
3340                if (lib3p_helper.utility.hasListValue(lstid)) {
3341                    lib3p.common_PostURL(window.pars3p.api.public.All_GetProductByID, { ListID: lstid }, function (res) {
3342                        if (lib3p_helper.utility.hasListValue(res)) {
3343                            var html = '<div class="owl-carousel">';
3344                            var html_m = '';
3345                            res.forEach(function (c, cidx) {
3346                                html += lib3p_helper.product.parseHTML(c);
3347                                if (cidx < 4) {
3348                                    html_m += lib3p_helper.product.parseHTML(c);
3349                                }
3350                            });
3351                            html += '</div>';
3352                            jQuery('.san-pham-da-xem .product-list').html(html);
3353                            jQuery('.san-pham-da-xem-mobile .product-list').html(html_m);
3354                            jQuery('.san-pham-da-xem .product-list .owl-carousel').owlCarousel({
3355                                autoplay: true,
3356                                autoplayTimeout: 3000,
3357                                autoplayHoverPause: true,
3358                                autoWidth: false,
3359                                loop: false,
3360                                nav: true,
3361                                dots: false,
3362                                items: 5,
3363                                slideBy: 3,
3364                                margin: 20,
3365                                navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
3366                                navElement: 'div'
3367                            });
3368                            jQuery('.san-pham-da-xem').show();
3369                            jQuery('.san-pham-da-xem-mobile').show();
3370                        }
3371                        else {
3372                            query.hide();
3373                            queryMobile.hide();
3374                        }
3375                    }, function (err) {
3376                        lib3p.log(err);
3377                        query.hide();
3378                        queryMobile.hide();
3379                    });
3380                }
3381                else {
3382                    query.hide();
3383                    queryMobile.hide();
3384                }
3385            }
3386            else {
3387                query.hide();
3388                queryMobile.hide();
3389            }
3390        }
3391
3392        query = jQuery('.san-pham-da-mua');
3393        queryMobile = jQuery('.san-pham-da-mua-mobile');
3394
3395        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
3396            if (window.pars3p.auth.isLogin == true) {
3397                lib3p.common_AuthPostURL(window.pars3p.api.public.All_GetProductByID, { ListID: [] }, function (res) {
3398                    if (lib3p_helper.utility.hasListValue(res)) {
3399                        var html = '<div class="owl-carousel">';
3400                        var html_m = '';
3401                        res.forEach(function (c, cidx) {
3402                            html += lib3p_helper.product.parseHTML(c);
3403                            if (cidx < 4) {
3404                                html_m += lib3p_helper.product.parseHTML(c);
3405                            }
3406                        });
3407                        html += '</div>';
3408                        jQuery('.san-pham-da-mua .product-list').html(html);
3409                        jQuery('.san-pham-da-mua-mobile .product-list').html(html_m);
3410                        jQuery('.san-pham-da-mua .product-list .owl-carousel').owlCarousel({
3411                            autoplay: true,
3412                            autoplayTimeout: 3000,
3413                            autoplayHoverPause: true,
3414                            autoWidth: false,
3415                            loop: false,
3416                            nav: true,
3417                            dots: false,
3418                            items: 5,
3419                            slideBy: 3,
3420                            margin: 20,
3421                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
3422                            navElement: 'div'
3423                        });
3424                        jQuery('.san-pham-da-mua').show();
3425                        jQuery('.san-pham-da-mua-mobile').show();
3426                    }
3427                    else {
3428                        query.hide();
3429                        queryMobile.hide();
3430                    }
3431                }, function (err) {
3432                    lib3p.log(err);
3433                    query.hide();
3434                    queryMobile.hide();
3435                });
3436            }
3437            else {
3438                query.hide();
3439                queryMobile.hide();
3440            }
3441        }
3442
3443        //lib3p.header.addQuerySEO();
3444        //#endregion
3445        lib3p.logInfo('initPage end');
3446    },
3447    //#endregion
3448
3449    //D:\_Working\3ps\HachiWeb\HachiWebsite2\HachiWeb.WebApp\v2\Sources\Controls\hachi_tagSectionHeader.ascx
3450    header: {
3451        IsLoading: {
3452            TotalChip: false,
3453        },
3454        TypeOTP: {
3455            Phone: 1,
3456            Account: 2
3457        },
3458        IsNew: {
3459            New: 1,
3460            NewV2: 2,
3461        },
3462        SendType: {
3463            SMS: 1,
3464            Zalo: 2
3465        },
3466        TypeKTTT: {
3467            Phone: 1,
3468            Account: 2
3469        },
3470        SEO: {
3471            IsLoading: false,
3472            Query: ''
3473        },
3474        init: function () {
3475            lib3p.header.init_async().then(function (data) { }, function (err) { console.log(err); });
3476        },
3477        init_async: function () {
3478            return new Promise(function (resolve, reject) {
3479                setTimeout(function () {
3480
3481                    if(window.location.href.indexOf('/gio-hang?type=35') >= 0 || window.location.href.indexOf('/thanh-toan?type=37') >= 0 || window.location.href.indexOf('/cam-on?type=40') >= 0) {
3482
3483                    }
3484                    else {
3485                        var strCookie = lib3p.common_cookieConfigGet();
3486                        if (!lib3p_helper.utility.hasValueString(strCookie)) {                            
3487                            lib3p.header.PopupCookieConfirm_Show();
3488                        }
3489                    }
3490                    
3491
3492                    var query = jQuery(".mode-desktop .page-header-menu .page-header .search-input input");
3493                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
3494                        if (lib3p_helper.utility.hasValueString(jQuery(query[0]).val())) {
3495                            if (!jQuery('.mode-desktop .page-header-menu .page-header .search-input a.input-clear').hasClass('show')) {
3496                                jQuery('.mode-desktop .page-header-menu .page-header .search-input a.input-clear').addClass('show');
3497                            }
3498                        }
3499                    }
3500
3501                    jQuery(".popup-header-product-add-cart .hachi-modal").on("click", function (e) {
3502                        lib3p.header.ProductAddCart_Hide();
3503                    });
3504                    jQuery(".popup-header-product-add-cart .hachi-modal .modal-content").on("click", function (e) {
3505                        lib3p.header.ProductAddCart_Hide();
3506                    });
3507
3508                    query = jQuery("#header-dropdown-login");
3509                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
3510                        jQuery("#header-dropdown-login .user-hide").show();
3511                        jQuery("#header-dropdown-login .user-show").hide();
3512
3513                        if (window.pars3p.auth && window.pars3p.auth.isLogin == true) {
3514                            var helloUser = "Chào " + window.pars3p.auth.fullName + "!";
3515                            jQuery("#header-dropdown-login .user-text").html(helloUser);
3516                            jQuery(".popup-mobile-header-menu .category li.item-nav.user .username").html(helloUser);
3517                            jQuery("#mobile-user-dropdown-menu .username").html(helloUser);
3518                            jQuery("#mobile-user-dropdown-menu .khtt").html(window.pars3p.auth.memberID);
3519
3520                            jQuery("#header-dropdown-login .user-hide").hide();
3521                            jQuery("#header-dropdown-login .user-show").show();
3522
3523                            var query = jQuery('.page-header .top-icon .user-icon img');
3524
3525                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
3526                                query.attr('src', "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon_03_b.svg");
3527                            }
3528                            //TODO active mobile menu nếu đúng link                            
3529                            // var url = window.location.href;
3530                            // var type = url.split('?')[1];
3531                            // var queryA = jQuery(`#mobile-user-dropdown-menu .menu .check.choose a[href*="${type}"]`);
3532                            // var queryCheck = queryA.closest('.check');
3533                            // var queryHasChild = queryA.closest('.haschild');
3534
3535                            // switch (type) {
3536                            //     case 'type=43':
3537                            //         queryA.removeClass("regular400").addClass("sibold600");
3538                            //         queryLi.addClass('choose');
3539                            //         break;                            
3540                            //     default:
3541                            //         break;
3542                            // }
3543                        }
3544                        jQuery('#header-dropdown-login .dropdown-menu a').on("click", function (e) {
3545                            if (lib3p_helper.utility.hasValue(e.target) && lib3p_helper.utility.hasValueString(jQuery(e.target).attr('href'))) {
3546                                var href = jQuery(e.target).attr('href');
3547                                if (lib3p_helper.utility.hasValueString(href)) {
3548                                    window.location.href = href;
3549                                }
3550                            }
3551                            else if (lib3p_helper.utility.hasValue(e.currentTarget)) {
3552                                var href = jQuery(e.currentTarget).attr('href');
3553                                if (lib3p_helper.utility.hasValueString(href)) {
3554                                    window.location.href = href;
3555                                }
3556                            }
3557                        });
3558                        jQuery("#header-dropdown-login").hover(function () {
3559                            if (!jQuery("#header-dropdown-login .dropdown-menu").hasClass('show')) {
3560                                jQuery("#header-dropdown-login").trigger('click');
3561                            }
3562                        }, function () {
3563                            if (jQuery("#header-dropdown-login .dropdown-menu").hasClass('show')) {
3564                                jQuery("#header-dropdown-login").trigger('click');
3565                            }
3566                        });
3567                    }
3568                    query = jQuery('.mobile-header-menu .right .user');
3569                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
3570                        if (window.pars3p.auth.isLogin == true) {
3571                            if (!jQuery(query[0]).hasClass('active')) {
3572                                jQuery(query[0]).addClass('active');
3573                            }
3574                        }
3575                        else {
3576                            query.removeClass('active');
3577                        }
3578                    }
3579
3580                    jQuery('#header-dropdown-menu .dropdown-menu a').on("click", function (e) {
3581                        var href = jQuery(e.currentTarget).attr('href');
3582                        if (lib3p_helper.utility.hasValueString(href)) {
3583                            window.location.href = href;
3584                        }
3585                    });
3586
3587                    if (lib3p_helper.utility.hasValue(window.pars3p.timmer1s)) {
3588                        window.pars3p.timmer1s.push(function () {
3589                            if (window.pars3p.otp.Timer > 0) {
3590                                window.pars3p.otp.Timer--;
3591                                var str = "";
3592                                if (window.pars3p.otp.Timer > 0) {
3593                                    var s = window.pars3p.otp.Timer;
3594                                    var m = 0;
3595                                    if (window.pars3p.otp.Timer > 60) {
3596                                        s = window.pars3p.otp.Timer % 60;
3597                                        m = parseInt(window.pars3p.otp.Timer / 60);
3598                                    }
3599                                    if (m > 0) str = m + " phút ";
3600                                    else str = "";
3601                                    if (s > 0) str += s < 10 ? "0" + s + " giây" : s + " giây";
3602                                }
3603                                jQuery('.popup-header-otp .modal-body .text-3 .giay').html(str);
3604                                if (!jQuery('.popup-header-otp').hasClass('waiting')) {
3605                                    jQuery('.popup-header-otp').addClass('waiting');
3606                                }
3607                            }
3608                            else {
3609                                jQuery('.popup-header-otp').removeClass('waiting');
3610                            }
3611                        });
3612                    }
3613
3614                    if (lib3p_helper.utility.hasListValue(window.pars3p.others.ListBanner)) {
3615                        //window.pars3p.api.public.All_GetBanner
3616                        var lstBanners = window.pars3p.others.ListBanner.filter(function (c) { return c.TypeData == 5 || c.TypeData == 6; });
3617                        if (lib3p_helper.utility.hasListValue(lstBanners)) {
3618                            var html = '<div class="owl-carousel">';
3619                            lstBanners.forEach(function (c) {
3620                                if (lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
3621                                    if (c.Link.indexOf('?') > 0) {
3622                                        c.Link = c.Link + '&' + window.pars3p.seo.Query;
3623                                    }
3624                                    else {
3625                                        c.Link = c.Link + '?' + window.pars3p.seo.Query;
3626                                    }
3627                                }
3628
3629                                html += '<div key="' + c.Code + '" class="item"><a href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
3630                            });
3631                            html += '</div>';
3632                            jQuery('.banner-left').html(html);
3633                            jQuery('.banner-left .owl-carousel').owlCarousel({
3634                                autoplay: true,
3635                                autoplayTimeout: 3000,
3636                                autoplayHoverPause: true,
3637                                loop: true,
3638                                nav: false,
3639                                dots: false,
3640                                items: 1,
3641                                navElement: 'div',
3642                            });
3643                        }
3644                        var lstBanners = window.pars3p.others.ListBanner.filter(function (c) { return c.TypeData == 21; });
3645                        if (lib3p_helper.utility.hasListValue(lstBanners)) {
3646                            var html = '<div class="owl-carousel">';
3647                            var html_m = '<div class="owl-carousel">';
3648                            lstBanners.forEach(function (c) {
3649                                html += '<div class="item"><a class="gtm-home-banner" data-device="pc" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
3650                                if (lib3p_helper.utility.hasValueString(c.ImageMobile)) {
3651                                    html_m += '<div class="item"><a class="gtm-home-banner" data-device="mobile" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.ImageMobile + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
3652                                }
3653                            });
3654                            html += '</div>';
3655                            html_m += '</div>';
3656
3657                            jQuery('.mode-desktop .danh-sach-coupon').html(html);
3658                            jQuery('.mode-desktop .danh-sach-coupon .owl-carousel').owlCarousel({
3659                                autoplay: false,
3660                                autoplayTimeout: 3000,
3661                                autoplayHoverPause: false,
3662                                loop: false,
3663                                nav: false,
3664                                dots: false,
3665                                autoWidth: false,
3666                                margin: 20,
3667                                items: 4
3668                            });
3669
3670                            jQuery('.mode-mobile .danh-sach-coupon').html(html_m);
3671                            jQuery('.mode-mobile .danh-sach-coupon .owl-carousel').owlCarousel({
3672                                autoplay: false,
3673                                autoplayTimeout: 3000,
3674                                autoplayHoverPause: false,
3675                                loop: true,
3676                                nav: false,
3677                                dots: false,
3678                                autoWidth: true,
3679                                margin: 10,
3680                            });
3681                        }
3682                    }
3683
3684                    lib3p.header.LoadLikeChip();
3685                    var index = jQuery('.mode-desktop .danh-sach-chip .owl-carousel .item.active').index();
3686                    var carousel = jQuery('.mode-desktop .danh-sach-chip .owl-carousel').owlCarousel({
3687                        autoplay: false,
3688                        autoplayTimeout: 3000,
3689                        autoplayHoverPause: true,
3690                        autoWidth: true,
3691                        loop: false,
3692                        nav: true,
3693                        dots: false,
3694                        margin: 70,
3695                        navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
3696                        navElement: 'div'
3697                    });
3698                    if(index > 3) {
3699                        carousel.trigger('to.owl.carousel', index - 3);
3700                    }
3701                    carousel = jQuery('.mode-mobile .danh-sach-chip .owl-carousel').owlCarousel({
3702                        autoplay: false,
3703                        autoplayHoverPause: false,
3704                        loop: false,
3705                        nav: false,
3706                        dots: false,
3707                        autoWidth: true,
3708                        margin: 20,
3709                        //navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
3710                        //navElement: 'div'
3711                    });
3712                    if(index > 1) {
3713                        carousel.trigger('to.owl.carousel', index - 1);
3714                    }
3715
3716                    if (window.location.href.indexOf('/cam-on?type=40&') >= 0) {
3717                        jQuery('#social-network').removeClass('hasgift');
3718                    }
3719                    else {
3720                        if (window.pars3p.auth.isLogin == true) {
3721                            lib3p.common_AuthPostURL(window.pars3p.api.auth.Header_GiftCheck, { Code:'' }, function (res) {
3722                                if (lib3p_helper.utility.hasValue(res) && res.MessageType == 0) {
3723                                    window.pars3p.tempError = res.MessageError;
3724                                    jQuery('#social-network').addClass('hasgift');
3725                                }
3726                            }, function (err) {
3727                                console.log(err);
3728                            });
3729                        }
3730                        else {
3731                            var OrderPhone = lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhone) ? window.pars3p.cart.OrderPhone : '';
3732                            var OrderPhoneOTP = lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP) ? window.pars3p.cart.OrderPhoneOTP : '';
3733                            lib3p.common_PostURL(window.pars3p.api.public.Header_GiftCheck, { Code:'', OrderPhone:OrderPhone, OrderPhoneOTP:OrderPhoneOTP }, function (res) {
3734                                if (lib3p_helper.utility.hasValue(res) && res.MessageType == 0) {
3735                                    window.pars3p.tempError = res.MessageError;
3736                                    jQuery('#social-network').addClass('hasgift');
3737                                }
3738                            }, function (err) {
3739                                console.log(err);
3740                            });
3741                        }
3742                    }
3743
3744                }, window.pars3p.timeAsync);
3745            });
3746        },
3747
3748        onChat_Toggle: function(el) {
3749            var query = jQuery(el).closest('.dong');
3750            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
3751                if (jQuery(query[0]).hasClass("open")) {
3752                    jQuery(query[0]).removeClass("open");
3753                }
3754                else {
3755                    jQuery(query[0]).addClass("open");
3756                }
3757            }
3758        },
3759        onGift_Click: function(el) {
3760            if (window.pars3p.auth.isLogin == true) {
3761                lib3p.common_AuthPostURL(window.pars3p.api.auth.Header_GiftCheck, { Code:window.pars3p.tempError }, function (res) {
3762                    if (lib3p_helper.utility.hasValue(res)) {
3763                        if(res.MessageType == 0) {
3764                            window.location.href = res.MessageError;
3765                        }
3766                        else if(res.MessageType == 1) {
3767                            var query = jQuery('.popup-hasgift-thongbao .hachi-modal');
3768                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
3769                                if (jQuery(query[0]).hasClass("d-none")) {
3770                                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
3771                                }
3772                            }
3773                            jQuery('.popup-hasgift-thongbao .modal-body .data .txt').html('Đã hết thời gian chọn quà. Nếu bạn cần hỗ trợ, vui lòng liên hệ 18001245 hoặc Zalo 0906366228');
3774                            jQuery('#social-network').removeClass('hasgift');
3775                        }
3776                    }
3777                }, function (err) {
3778                    console.log(err);
3779                });
3780            }
3781            else {
3782                var OrderPhone = lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhone) ? window.pars3p.cart.OrderPhone : '';
3783                var OrderPhoneOTP = lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP) ? window.pars3p.cart.OrderPhoneOTP : '';
3784                lib3p.common_PostURL(window.pars3p.api.public.Header_GiftCheck, { Code:window.pars3p.tempError, OrderPhone:OrderPhone, OrderPhoneOTP:OrderPhoneOTP }, function (res) {
3785                    if (lib3p_helper.utility.hasValue(res)) {
3786                        if(res.MessageType == 0) {
3787                            window.location.href = res.MessageError;
3788                        }
3789                        else if(res.MessageType == 1) {
3790                            var query = jQuery('.popup-hasgift-thongbao .hachi-modal');
3791                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
3792                                if (jQuery(query[0]).hasClass("d-none")) {
3793                                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
3794                                }
3795                            }
3796                            jQuery('.popup-hasgift-thongbao .modal-body .data .txt').html('Đã hết thời gian chọn quà. Nếu bạn cần hỗ trợ, vui lòng liên hệ 18001245 hoặc Zalo 0906366228');
3797                            jQuery('#social-network').removeClass('hasgift');
3798                        }
3799                    }
3800                }, function (err) {
3801                    console.log(err);
3802                });
3803            }
3804        },
3805        onGiftThongBao_Close: function() {
3806            var query = jQuery('.popup-hasgift-thongbao .hachi-modal');
3807            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
3808                if (jQuery(query[0]).hasClass("d-block")) {
3809                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
3810                }
3811            }
3812        },
3813        loadLocation: function() {
3814            window.pars3p.location = null;
3815            lib3p.common_PostURL(window.pars3p.api.public.Delivery_GetLocation, {}, function (res) {
3816                if (lib3p_helper.utility.hasValue(res)) {
3817                    window.pars3p.location = res;
3818                    if (lib3p_helper.utility.hasValue(window.pars3p.location) && lib3p_helper.utility.hasListValue(window.pars3p.location.ListProvince)) {
3819                        jQuery('select.cboProvince').html('<option value>Select one...</option>');
3820                        window.pars3p.location.ListProvince.forEach(function (c, cidx) {
3821                            if ((window.pars3p.cart.Province + '') != (c.Code + '')) {
3822                                jQuery('select.cboProvince').append('<option value="' + c.Code + '">' + c.ProvinceName + '</option>');
3823                            }
3824                            else {
3825                                jQuery('select.cboProvince').append('<option value="' + c.Code + '" selected>' + c.ProvinceName + '</option>');            
3826                            }
3827                        });         
3828                        if (window.pars3p.cart.Province > 0) {
3829                            var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == window.pars3p.cart.Province; });
3830                            jQuery('select.cboDistrict').html('<option value>Select one...</option>');
3831                            lstTemp.forEach(function (c, cidx) {
3832                                if ((window.pars3p.cart.District + '') != (c.Code + '')) {
3833                                    jQuery('select.cboDistrict').append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
3834                                }
3835                                else {
3836                                    jQuery('select.cboDistrict').append('<option value="' + c.Code + '" selected>' + c.DistrictName + '</option>');
3837                                }
3838                            });
3839                        }
3840                        if (window.pars3p.cart.District > 0) {
3841                            var lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == window.pars3p.cart.District; });
3842                            jQuery('select.cboWard').html('<option value>Select one...</option>');
3843                            lstTemp.forEach(function (c, cidx) {
3844                                if ((window.pars3p.cart.Ward + '') != (c.Code + '')) {
3845                                    jQuery('select.cboWard').append('<option value="' + c.Code + '">' + c.WardName + '</option>');
3846                                }
3847                                else {
3848                                    jQuery('select.cboWard').append('<option value="' + c.Code + '" selected>' + c.WardName + '</option>');
3849                                }
3850                            });
3851                        }
3852                    }
3853                }
3854                lib3p.logInfo('loadLocation');
3855            }, function (err) {
3856                lib3p.log(err);
3857                lib3p.logInfo(err);
3858            });          
3859        },
3860        //#region PopupDelivery        
3861        PopupDelivery_Init: function() {
3862            setTimeout(function () {
3863                if (lib3p_helper.utility.hasValue(window.pars3p.location) && lib3p_helper.utility.hasListValue(window.pars3p.location.ListProvince)) {                    
3864                    jQuery("#cboProvince_popup").combobox({ change: function (opt) { lib3p.header.onPopupDeliveryProvince_Change(opt, '#cboDistrict_popup', '#cboWard_popup') } });
3865                    jQuery("#cboDistrict_popup").combobox({ change: function (opt) { lib3p.header.onPopupDeliveryDistrict_Change(opt, '#cboWard_popup') } });
3866                    jQuery("#cboWard_popup").combobox({ change: function (opt) { lib3p.header.onPopupDeliveryWard_Change(opt) } });
3867                }
3868                lib3p.logInfo('PopupDelivery_Init');
3869            }, 1);
3870        },
3871        PopupDelivery_Show: function() {
3872            var query = jQuery('.popup-cart-delivery .hachi-modal');
3873            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
3874                if (jQuery(query[0]).hasClass("d-none")) {
3875                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
3876                }
3877            }
3878            jQuery('.popup-cart-delivery .item-edit .nguoi-nhan').hide();
3879            jQuery('.popup-cart-delivery .item-edit .input.cboDistrict').hide();
3880            jQuery('.popup-cart-delivery .item-edit .input.cboWard').hide();
3881            jQuery('.popup-cart-delivery .item-edit .input.Address').hide();
3882            lib3p.header.PopupDelivery_Data();
3883        },
3884        PopupDelivery_Data: function() {
3885            var DeliveryID = -1;
3886            if (window.pars3p.cart.DeliveryID > 0) {
3887                DeliveryID = window.pars3p.cart.DeliveryID;
3888            }
3889            jQuery('.popup-cart-delivery .modal-body .item-edit').hide();
3890            jQuery('.popup-cart-delivery .modal-body .data').show();
3891            window.pars3p.islockDiaglog = false;
3892            lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_GetAll, { DeliveryID: DeliveryID }, function (res) {
3893                if (lib3p_helper.utility.hasListValue(res)) {
3894                    window.pars3p.listDelivery = res;
3895
3896                    var html = '';
3897                    window.pars3p.listDelivery.forEach(function (c, cidx) {
3898                        html += '<div class="item data-' + c.ID + '"><div class="outline sl-gregray100">';
3899
3900                        html += '<div class="left">';
3901                        if (c.ID == DeliveryID) {
3902                            html += '<input type="radio" name="delivery" onchange="lib3p.header.onPopupDeliveryCheck_Click(event,' + c.ID + ')" value="' + c.ID + '" checked />';
3903                        }
3904                        else {
3905                            html += '<input type="radio" name="delivery" onchange="lib3p.header.onPopupDeliveryCheck_Click(event,' + c.ID + ')" value="' + c.ID + '" />';
3906                        }
3907                        html += '</div>';
3908                        html += '<div class="right">';
3909                        var ReceivedBy = c.ReceivedBy;
3910                        if (!lib3p_helper.utility.hasValueString(ReceivedBy)) {
3911                            ReceivedBy = '&nbsp;';
3912                        }
3913                        if (c.IsDefault == true) {
3914                            html += '<div><span class="ReceivedBy s14 cl-gregray900 sibold600">' + ReceivedBy + '</span><span class="IsDefault b-dakgreen200 s13 cl-dakgreen900 regular400">Mặc định</span></div>';
3915                        }
3916                        else {
3917                            html += '<div><span class="ReceivedBy s14 cl-gregray900 sibold600">' + ReceivedBy + '</span></div>';
3918                        }
3919                        html += '<div class="FullAddress s14 cl-gregray750 regular400">' + c.FullAddress + '</div><div class="Cellphone s14 cl-gregray750 regular400">Điện thoại: ' + c.Cellphone + '</div>';
3920                        if (c.ID == DeliveryID || c.IsDefault == true) {
3921                            html += '<div class="act"><button type="button" aria-label="hachihachi" class="edit sl-gregray200 s13 cl-dakgreen650 sibold600" onclick="lib3p.header.onPopupDeliveryEdit_Click(' + c.ID + ')">Chỉnh sửa</button></div>';
3922                        }
3923                        else {
3924                            html += '<div class="act"><button type="button" aria-label="hachihachi" class="sl-gregray200 b-gregray100 s13 cl-gregray900 sibold600" onclick="lib3p.header.onPopupDeliveryXoa_Click(' + c.ID + ')">Xóa</button>&nbsp;&nbsp;<button type="button" aria-label="hachihachi" class="edit sl-gregray200 s13 cl-dakgreen650 sibold600" onclick="lib3p.header.onPopupDeliveryEdit_Click(' + c.ID + ')">Chỉnh sửa</button></div>';
3925                        }
3926                        html += '</div>';
3927
3928                        html += '</div></div>';
3929                    });
3930                    jQuery(".popup-cart-delivery .modal-body .data").html(html);
3931                }
3932
3933            }, function (err) {
3934                lib3p.common_logSystem(err);
3935            });
3936        },
3937        onPopupDeliveryClose_Click: function () {
3938            window.pars3p.islockDiaglog = false;
3939            var query = jQuery('.popup-cart-delivery .hachi-modal');
3940            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
3941                if (jQuery(query[0]).hasClass("d-block")) {
3942                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
3943                }
3944            }
3945        },
3946        onPopupDeliveryAdd_Click: function () {
3947            lib3p.header.PopupDeliveryEdit(-1);
3948        },     
3949        PopupDeliveryEdit: function(id) {
3950            window.pars3p.tempID = id;
3951            window.pars3p.islockDiaglog = true;
3952            jQuery('.popup-cart-delivery .modal-body .data').hide();
3953            jQuery('.popup-cart-delivery .modal-body .item-edit').show();
3954            var frm = jQuery('.popup-cart-delivery .modal-body .item-edit form')[0];
3955            var item = window.pars3p.listDelivery.find(function (c) { return c.ID == id; });
3956            if (lib3p_helper.utility.hasValue(item) && item.ID > 0) {
3957                /* if(item.Cellphone != window.pars3p.cart.OrderPhone) {
3958                    frm.IsDeliveryOther.value = true;
3959                    jQuery('.popup-cart-delivery .item-edit .nguoi-nhan').show();
3960                }
3961                else {
3962                    frm.IsDeliveryOther.value = false;
3963                    jQuery('.popup-cart-delivery .item-edit .nguoi-nhan').hide();
3964                } */
3965                frm.ReceivedBy.value = item.ReceivedBy;
3966                frm.Cellphone.value = item.Cellphone;
3967                frm.Address.value = item.Address;
3968                frm.IsDefault.checked = item.IsDefault == true;
3969                if (item.IsDefault == true) {
3970                    jQuery(frm.IsDefault).prop("disabled", true);
3971                }
3972                else {
3973                    jQuery(frm.IsDefault).prop("disabled", false);
3974                }
3975                var itemProvince = window.pars3p.location.ListProvince.find(function (c) { return c.Code == item.Province; });
3976                jQuery(frm.Province).find('option[value="' + itemProvince.Code + '"]').attr('selected', 'selected');
3977                frm.Province.value = itemProvince.Code;
3978                jQuery(frm.Province).next().find('.custom-combobox-input').val(itemProvince.ProvinceName);
3979                var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == itemProvince.Code; });
3980                var itemDistrict = lstTemp.find(function (c) { return c.Code == item.District; });
3981                jQuery(frm.District).html('<option value>Select one...</option>');
3982                lstTemp.forEach(function (c, cidx) {
3983                    if (c.Code == itemDistrict.Code) {
3984                        jQuery(frm.District).append('<option value="' + c.Code + '" selected>' + c.DistrictName + '</option>');
3985                    }
3986                    else {
3987                        jQuery(frm.District).append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
3988                    }
3989                });                
3990                frm.District.value = itemDistrict.Code;
3991                jQuery(frm.District).next().find('.custom-combobox-input').val(itemDistrict.DistrictName);                
3992                lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == itemDistrict.Code; });
3993                var itemWard = lstTemp.find(function (c) { return c.Code == item.Ward; });
3994                jQuery(frm.Ward).html('<option value>Select one...</option>');
3995                lstTemp.forEach(function (c, cidx) {
3996                    if (c.Code == itemWard.Code) {
3997                        jQuery(frm.Ward).append('<option value="' + c.Code + '" selected>' + c.WardName + '</option>');
3998                    }
3999                    else {
4000                        jQuery(frm.Ward).append('<option value="' + c.Code + '">' + c.WardName + '</option>');
4001                    }
4002                });
4003                frm.Ward.value = itemWard.Code;
4004                jQuery(frm.Ward).next().find('.custom-combobox-input').val(itemWard.WardName);                
4005
4006                jQuery('.popup-cart-delivery .item-edit .input.cboDistrict').show();
4007                jQuery('.popup-cart-delivery .item-edit .input.cboWard').show();
4008                jQuery('.popup-cart-delivery .item-edit .input.Address').show();
4009
4010                jQuery(frm).find('div.error').not('.ui-widget').html('');
4011                jQuery(frm).find('.input input').removeClass('error');
4012                jQuery(frm).find('.input > .ui-widget').removeClass('error');
4013            }
4014            else {
4015                //frm.IsDeliveryOther.value = false;
4016                //jQuery('.popup-cart-delivery .item-edit .nguoi-nhan').hide();
4017                frm.ReceivedBy.value = '';
4018                frm.Cellphone.value = '';
4019                frm.Address.value = '';
4020                frm.IsDefault.checked = false;
4021                jQuery(frm.IsDefault).prop("disabled", false);
4022                frm.Province.value = -1;
4023                jQuery(frm.Province).next().find('.custom-combobox-input').val('');         
4024                frm.District.value = -1;
4025                jQuery(frm.District).next().find('.custom-combobox-input').val('');  
4026                frm.Ward.value = -1;
4027                jQuery(frm.Ward).next().find('.custom-combobox-input').val('');  
4028                jQuery('.popup-cart-delivery .item-edit .input.cboDistrict').hide();
4029                jQuery('.popup-cart-delivery .item-edit .input.cboWard').hide();
4030                jQuery('.popup-cart-delivery .item-edit .input.Address').hide();
4031                
4032                jQuery(frm).find('div.error').not('.ui-widget').html('');
4033                jQuery(frm).find('.input input').removeClass('error');
4034                jQuery(frm).find('.input > .ui-widget').removeClass('error');
4035            }
4036        },        
4037        onPopupDeliveryProvince_Change: function (opt, iddistrict, idward) {
4038            if (lib3p_helper.utility.hasValueString(opt.value)) {
4039                jQuery(opt.form.Province).closest('.ui-widget').removeClass('error');
4040                jQuery('.popup-cart-delivery .item-edit .input.cboDistrict').show();
4041                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListDistrict)) {
4042                    var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == opt.value; });
4043                    jQuery(iddistrict).html('<option value>Select one...</option>');
4044                    lstTemp.forEach(function (c, cidx) {
4045                        jQuery(iddistrict).append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
4046                    });
4047                    jQuery(iddistrict).next().find('.custom-combobox-input').val('');
4048                    jQuery(idward).html('<option value>Select one...</option>');
4049                    jQuery(idward).next().find('.custom-combobox-input').val('');
4050                }
4051
4052                jQuery(opt.form.Province).closest('.ui-widget').removeClass('error');
4053                jQuery(opt.form.Province).closest('.dong').children('.error').html('');
4054            }
4055            else {
4056                jQuery('.popup-cart-delivery .item-edit .input.cboDistrict').hide();
4057                jQuery('.popup-cart-delivery .item-edit .input.cboWard').hide();
4058                jQuery('.popup-cart-delivery .item-edit .input.Address').hide();
4059            }
4060            jQuery(opt.form.District).children(":selected").each(function () {
4061                this.selected = false;
4062            });
4063            jQuery(opt.form.Ward).children(":selected").each(function () {
4064                this.selected = false;
4065            });
4066            setTimeout(function () {
4067                lib3p.header.PopupDelivery_Check(opt.form, opt.form.Province);
4068            }, 100);
4069        },
4070        onPopupDeliveryDistrict_Change: function (opt, idward) {
4071            if (lib3p_helper.utility.hasValueString(opt.value)) {
4072                jQuery(opt.form.District).closest('.ui-widget').removeClass('error');
4073                jQuery('.popup-cart-delivery .item-edit .input.cboWard').show();
4074                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListWard)) {
4075                    var lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == opt.value; });
4076                    jQuery(idward).html('<option value>Select one...</option>');
4077                    lstTemp.forEach(function (c, cidx) {
4078                        jQuery(idward).append('<option value="' + c.Code + '">' + c.WardName + '</option>');
4079                    });
4080                    jQuery(idward).next().find('.custom-combobox-input').val('');
4081                }
4082
4083                jQuery(opt.form.District).closest('.ui-widget').removeClass('error');
4084                jQuery(opt.form.District).closest('.dong').children('.error').html('');
4085            }
4086            else {
4087                jQuery('.popup-cart-delivery .item-edit .input.cboWard').hide();
4088                jQuery('.popup-cart-delivery .item-edit .input.Address').hide();
4089            }
4090            jQuery(opt.form.Ward).children(":selected").each(function () {
4091                this.selected = false;
4092            });
4093            setTimeout(function () {
4094                lib3p.header.PopupDelivery_Check(opt.form, opt.form.District);
4095            }, 100);
4096        },
4097        onPopupDeliveryWard_Change: function (opt) {
4098            if (lib3p_helper.utility.hasValueString(opt.value)) {
4099                jQuery(opt.form.Ward).closest('.ui-widget').removeClass('error');
4100                jQuery('.popup-cart-delivery .item-edit .input.Address').show();
4101
4102                jQuery(opt.form.Ward).closest('.ui-widget').removeClass('error');
4103                jQuery(opt.form.Ward).closest('.dong').children('.error').html('');
4104            }
4105            else {
4106                jQuery('.popup-cart-delivery .item-edit .input.Address').hide();
4107            }
4108            setTimeout(function () {
4109                lib3p.header.PopupDelivery_Check(opt.form, opt.form.Ward);
4110            }, 100);
4111        },
4112        onPopupDeliveryIsCopy_Click: function (el) {
4113            var query = jQuery(el).closest('form');
4114            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4115                var flag = el.checked == true;
4116                setTimeout(function () {
4117                    if (flag == true) {
4118                        query[0].ReceivedBy.value = '';
4119                        query[0].Cellphone.value = '';
4120                        jQuery('.popup-cart-delivery .item-edit .nguoi-nhan').show();
4121                    }
4122                    else {
4123                        jQuery('.popup-cart-delivery .item-edit .nguoi-nhan').hide();
4124                    }
4125                }, 100);
4126            }
4127        },
4128        onPopupDelivery_KeyDown: function (event, el) {
4129            var query = jQuery(el).closest('form');
4130            setTimeout(function () {
4131                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4132                    lib3p.header.PopupDelivery_Check(query[0], el);
4133                }
4134            }, 100);
4135        },
4136        PopupDelivery_Check: function(form, el) {
4137            var flagControl = false;
4138            /* var ctr = form.IsDeliveryOther;
4139            var IsDeliveryOther = ctr.checked == true;
4140            if(IsDeliveryOther == true) {
4141                                        
4142            } */   
4143            var ctr = form.ReceivedBy;
4144            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4145                if (flagControl == false) {
4146                    if (ctr != el) {
4147                        if (!jQuery(ctr).hasClass('error')) {
4148                            jQuery(ctr).addClass('error');
4149                        }
4150                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4151                    }
4152                }                            
4153            }
4154            else {
4155                jQuery(ctr).removeClass('error');
4156                jQuery(ctr).parent().next().html('');
4157            }
4158            if (ctr == el) {
4159                flagControl = true;
4160            }
4161            ctr = form.Cellphone;
4162            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4163                if (flagControl == false) {
4164                    if (ctr != el) {
4165                        if (!jQuery(ctr).hasClass('error')) {
4166                            jQuery(ctr).addClass('error');
4167                        }
4168                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4169                    }
4170                }                            
4171            }
4172            else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
4173                if (flagControl == false) {
4174                    if (ctr != el) {
4175                        if (!jQuery(ctr).hasClass('error')) {
4176                            jQuery(ctr).addClass('error');
4177                        }
4178                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
4179                    }
4180                }                            
4181            }
4182            else {
4183                jQuery(ctr).removeClass('error');
4184                jQuery(ctr).parent().next().html('');
4185            }
4186            if (ctr == el) {
4187                flagControl = true;
4188            }                 
4189            ctr = form.Province;
4190            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4191                flag = false;
4192                if (flagControl == false) {
4193                    if (ctr != el) {
4194                        if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
4195                            jQuery(ctr).closest('.ui-widget').addClass('error');
4196                        }
4197                        jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4198                    }
4199                }                        
4200            }
4201            else {
4202                jQuery(ctr).closest('.ui-widget').removeClass('error');
4203                jQuery(ctr).closest('.dong').children('.error').html('');
4204            }
4205            if (ctr == el) {
4206                flagControl = true;
4207            }
4208            ctr = form.District;
4209            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4210                flag = false;
4211                if (flagControl == false) {
4212                    if (ctr != el) {
4213                        if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
4214                            jQuery(ctr).closest('.ui-widget').addClass('error');
4215                        }
4216                        jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4217                    }
4218                }                        
4219            }
4220            else {
4221                jQuery(ctr).closest('.ui-widget').removeClass('error');
4222                jQuery(ctr).closest('.dong').children('.error').html('');
4223            }
4224            if (ctr == el) {
4225                flagControl = true;
4226            }
4227            ctr = form.Ward;
4228            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4229                flag = false;
4230                if (flagControl == false) {
4231                    if (ctr != el) {
4232                        if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
4233                            jQuery(ctr).closest('.ui-widget').addClass('error');
4234                        }
4235                        jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4236                    }
4237                }                        
4238            }
4239            else {
4240                jQuery(ctr).closest('.ui-widget').removeClass('error');
4241                jQuery(ctr).closest('.dong').children('.error').html('');
4242            }
4243            if (ctr == el) {
4244                flagControl = true;
4245            }
4246            ctr = form.Address;
4247            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4248                if (flagControl == false) {
4249                    if (ctr != el) {
4250                        if (!jQuery(ctr).hasClass('error')) {
4251                            jQuery(ctr).addClass('error');
4252                        }
4253                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4254                    }
4255                }                            
4256            }
4257            else {
4258                jQuery(ctr).removeClass('error');
4259                jQuery(ctr).parent().next().html('');
4260            }
4261            if (ctr == el) {
4262                flagControl = true;
4263            }
4264        },        
4265        onPopupDeliveryCancel_Click: function () {            
4266            lib3p.header.PopupDelivery_Data();
4267
4268            return false;
4269        },
4270        onPopupDeliveryEdit_Click: function (id) {        
4271            lib3p.header.PopupDeliveryEdit(id);
4272        },
4273        onPopupDeliveryCheck_Click: function (event, id) {
4274            var item = window.pars3p.listDelivery.find(function (c) { return c.ID == id; });
4275            var cart = {
4276                Code: window.pars3p.cart.Code,
4277                DeliveryID: item.ID,
4278                ReceivedBy: item.ReceivedBy,
4279                Cellphone: item.Cellphone,
4280                Province: item.Province,
4281                District: item.District,
4282                Ward: item.Ward,
4283                Address: item.Address,
4284                FullAddress: item.FullAddress
4285            };
4286            lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_Order, { cart: cart }, function (res) {
4287                if (res == true) {
4288                    window.pars3p.cart.DeliveryID = item.ID;
4289                    window.pars3p.cart.Province = item.Province;
4290                    window.pars3p.cart.District = item.District;
4291                    window.pars3p.cart.Ward = item.Ward;
4292                    window.pars3p.cart.FullAddress = item.FullAddress;
4293                    lib3p.common_cartSet(window.pars3p.cart).then(function (data) {
4294                        window.location.reload();
4295                    }, function (err) {
4296                        console.log(err);
4297                    });
4298                }
4299            }, function (err) {
4300                lib3p.log(err);
4301            });
4302        },
4303        onPopupDeliveryXoa_Click: function (id) {
4304            var query = jQuery('.popup-cart-delivery-xoa .hachi-modal');
4305            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4306                if (jQuery(query[0]).hasClass("d-none")) {
4307                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
4308                }
4309            }
4310            query = jQuery('.popup-cart-delivery .hachi-modal');
4311            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4312                if (jQuery(query[0]).hasClass("d-block")) {
4313                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
4314                }
4315            }
4316            var item = window.pars3p.listDelivery.find(function (c) { return c.ID == id; });
4317            if (lib3p_helper.utility.hasValue(item)) {
4318                window.pars3p.tempID = id;
4319                jQuery('.popup-cart-delivery-xoa .FullAddress').html(item.FullAddress);
4320            }
4321        },
4322        onPopupDeliveryXoa_DongY: function () {
4323            lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_Delete, { DeliveryID: window.pars3p.tempID }, function (res) {
4324                if (res == true) {
4325                    lib3p.header.onPopupDeliveryXoa_Close();
4326                    lib3p.header.PopupDelivery_Data();
4327                }
4328            }, function (err) {
4329                lib3p.log(err);
4330            });
4331        },
4332        onPopupDeliveryXoa_Close: function () {
4333            var query = jQuery('.popup-cart-delivery-xoa .hachi-modal');
4334            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4335                if (jQuery(query[0]).hasClass("d-block")) {
4336                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
4337                }
4338            }
4339            query = jQuery('.popup-cart-delivery .hachi-modal');
4340            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4341                if (jQuery(query[0]).hasClass("d-none")) {
4342                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
4343                }
4344            }
4345        },        
4346        onPopupDelivery_Submit: function (event) {
4347            try {
4348                jQuery(event.target).find('div.error').not('.ui-widget').html('');
4349                jQuery(event.target).find('.input input').removeClass('error');
4350    
4351                var data = {
4352                    ID: -1,
4353                    IsDeliveryOther: false,
4354                    ReceivedBy: '',
4355                    Cellphone: '',
4356                    Province: 0,
4357                    District: 0,
4358                    Ward: 0,
4359                    Address: '',
4360                    IsDefault: false,
4361                };
4362                var flag = tru
4362e;
4363                var flagAddress = true;
4364                /* var ctr = event.target.IsDeliveryOther;
4365                data.IsDeliveryOther = ctr.checked == true;
4366                if(data.IsDeliveryOther == true) {
4367                    
4368                } */
4369                var ctr = event.target.ReceivedBy;
4370                data.ReceivedBy = ctr.value;
4371                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4372                    flag = false;
4373                    if (!jQuery(ctr).hasClass('error')) {
4374                        jQuery(ctr).addClass('error');
4375                    }
4376                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4377                }
4378                ctr = event.target.Cellphone;
4379                data.Cellphone = ctr.value;
4380                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4381                    flag = false;
4382                    if (!jQuery(ctr).hasClass('error')) {
4383                        jQuery(ctr).addClass('error');
4384                    }
4385                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4386                }
4387                else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
4388                    flag = false;
4389                    if (!jQuery(ctr).hasClass('error')) {
4390                        jQuery(ctr).addClass('error');
4391                    }
4392                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
4393                }
4394                ctr = event.target.Province;
4395                data.Province = ctr.value;
4396                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4397                    flag = false;
4398                    flagAddress = false;
4399                    if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
4400                        jQuery(ctr).closest('.ui-widget').addClass('error');
4401                    }
4402                    jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4403                }
4404                else {
4405                    jQuery(ctr).closest('.ui-widget').removeClass('error');
4406                    jQuery(ctr).closest('.dong').children('.error').html('');
4407                }
4408                if (flagAddress == true) {
4409                    ctr = event.target.District;
4410                    data.District = ctr.value;
4411                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4412                        flag = false;
4413                        flagAddress = false;
4414                        if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
4415                            jQuery(ctr).closest('.ui-widget').addClass('error');
4416                        }
4417                        jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4418                    }
4419                    else {
4420                        jQuery(ctr).closest('.ui-widget').removeClass('error');
4421                        jQuery(ctr).closest('.dong').children('.error').html('');
4422                    }
4423                }
4424                if(flagAddress == true) {
4425                    ctr = event.target.Ward;
4426                    data.Ward = ctr.value;
4427                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4428                        flag = false;
4429                        flagAddress = false;
4430                        if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
4431                            jQuery(ctr).closest('.ui-widget').addClass('error');
4432                        }
4433                        jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4434                    }
4435                    else {
4436                        jQuery(ctr).closest('.ui-widget').removeClass('error');
4437                        jQuery(ctr).closest('.dong').children('.error').html('');
4438                    }
4439                }
4440                if(flagAddress == true) {
4441                    ctr = event.target.Address;
4442                    data.Address = ctr.value;
4443                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4444                        flag = false;
4445                        if (!jQuery(ctr).hasClass('error')) {
4446                            jQuery(ctr).addClass('error');
4447                        }
4448                        jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4449                    }
4450                    else {
4451                        jQuery(ctr).removeClass('error');
4452                        jQuery(ctr).parent().next().html('');
4453                    }
4454                }
4455                ctr = event.target.IsDefault;
4456                data.IsDefault = ctr.checked == true;
4457                if (flag == true) {
4458                    /* if(data.IsDeliveryOther != true) {
4459                        data.ReceivedBy = window.pars3p.cart.OrderBy;
4460                        data.Cellphone = window.pars3p.cart.OrderPhone;
4461                    } */
4462                    if (window.pars3p.tempID > 0) {
4463                        data.ID = window.pars3p.tempID;
4464                    }
4465                    if (data.ID > 0) {
4466                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_Edit, { item: data }, function (res) {
4467                            if (res == true) {
4468                                if(data.ID == window.pars3p.cart.DeliveryID || data.IsDefault == true) {
4469                                    lib3p.header.onPopupDeliveryCheck_Click(null, data.ID);
4470                                }
4471                                else {
4472                                    lib3p.header.PopupDelivery_Data();
4473                                }                                
4474                            }
4475                        }, function (err) {
4476                            throw err;
4477                        });
4478                    }
4479                    else {
4480                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_Add, { item: data }, function (res) {
4481                            if (res > 0) {
4482                                if(data.IsDefault == true) {
4483                                    window.pars3p.listDelivery.push({
4484                                        ID: res,
4485                                        ReceivedBy: data.ReceivedBy,
4486                                        Cellphone: data.Cellphone,
4487                                        Province: data.Province,
4488                                        District: data.District,
4489                                        Ward: data.Ward,
4490                                        Address: data.Address,
4491                                    });
4492                                    lib3p.header.onPopupDeliveryCheck_Click(null, res);
4493                                }
4494                                else {
4495                                    lib3p.header.PopupDelivery_Data();
4496                                }                                
4497                            }
4498                        }, function (err) {
4499                            throw err;
4500                        });
4501                    }
4502                }
4503            }
4504            catch(ex) {
4505                console.log(ex);
4506            }
4507
4508            event.preventDefault();
4509            return false;
4510        },
4511        //#endregion PopupDelivery
4512        onEmpty_Submit: function (event) {
4513            event.preventDefault();
4514            return false;
4515        },
4516        onRutGonXemThem_Click: function(el) {
4517            var query = jQuery(el).closest('.noidungrutgon-outline').find('.noidung');
4518            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4519                if (jQuery(query[0]).hasClass("anchitiet")) {
4520                    jQuery(query[0]).removeClass("anchitiet");
4521                    jQuery(el).html('Thu gọn');
4522                }
4523                else {
4524                    jQuery(query[0]).addClass("anchitiet");
4525                    jQuery(el).html('Xem thêm');
4526                }
4527            }
4528        },
4529        onPopupDev_Show: function() {
4530            lib3p.logInfo('onPopupDev_Show');
4531            var query = jQuery('.popup-develop .hachi-modal');
4532            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4533                if (jQuery(query[0]).hasClass("d-none")) {
4534                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
4535                }
4536            }
4537        },
4538        addQuerySEO: function () {
4539            if (window.pars3p.seo.IsLoading != true) {
4540                if (lib3p_helper.utility.hasValueString(window.location.search)) {
4541                    var urlParams = new URLSearchParams(window.location.search);
4542                    var str = '';
4543                    var key = 'srsltid';
4544                    var myParam = urlParams.get(key);
4545                    if (lib3p_helper.utility.hasValueString(myParam)) {
4546                        str += '&' + key + '=' + myParam;
4547                    }
4548                    key = 'fbclid';
4549                    myParam = urlParams.get(key);
4550                    if (lib3p_helper.utility.hasValueString(myParam)) {
4551                        str += '&' + key + '=' + myParam;
4552                    }
4553                    key = 'utm_medium';
4554                    myParam = urlParams.get(key);
4555                    if (lib3p_helper.utility.hasValueString(myParam)) {
4556                        str += '&' + key + '=' + myParam;
4557                    }
4558                    key = 'utm_source';
4559                    myParam = urlParams.get(key);
4560                    if (lib3p_helper.utility.hasValueString(myParam)) {
4561                        str += '&' + key + '=' + myParam;
4562                    }
4563                    key = 'utm_content';
4564                    myParam = urlParams.get(key);
4565                    if (lib3p_helper.utility.hasValueString(myParam)) {
4566                        str += '&' + key + '=' + myParam;
4567                    }
4568                    key = 'utm_term';
4569                    myParam = urlParams.get(key);
4570                    if (lib3p_helper.utility.hasValueString(myParam)) {
4571                        str += '&' + key + '=' + myParam;
4572                    }
4573                    if (lib3p_helper.utility.hasValueString(str)) {
4574                        str = str.substr(1);
4575                    }
4576                    window.pars3p.seo.IsLoading = true;
4577                    window.pars3p.seo.Query = str;
4578
4579                    if (lib3p_helper.utility.hasValueString(str)) {
4580                        jQuery('a').each(function () {
4581                            var href = jQuery(this).attr('href');
4582                            if (lib3p_helper.utility.hasValueString(href)) {
4583                                if (href.startsWith('/') || href.startsWith('https://')) {
4584                                    if (href.indexOf('?') > 0) {
4585                                        href = href + '&' + str;
4586                                    }
4587                                    else {
4588                                        href = href + '?' + str;
4589                                    }
4590                                    jQuery(this).attr('href', href);
4591                                }
4592                            }
4593                        });
4594
4595                        window.pars3p.urlLogin = lib3p.header.addQuerySEO_temp(window.pars3p.urlLogin, str);
4596                        window.pars3p.urlRegister = lib3p.header.addQuerySEO_temp(window.pars3p.urlRegister, str);
4597                        window.pars3p.urlCart = lib3p.header.addQuerySEO_temp(window.pars3p.urlCart, str);
4598                        window.pars3p.urlCartDelivery = lib3p.header.addQuerySEO_temp(window.pars3p.urlCartDelivery, str);
4599                        window.pars3p.urlCartPayment = lib3p.header.addQuerySEO_temp(window.pars3p.urlCartPayment, str);
4600                        window.pars3p.urlRegisterSuccess = lib3p.header.addQuerySEO_temp(window.pars3p.urlRegisterSuccess, str);
4601                        window.pars3p.urlUserLike = lib3p.header.addQuerySEO_temp(window.pars3p.urlUserLike, str);
4602                    }
4603                }
4604            }
4605        },
4606        addQuerySEO_temp: function (s, query) {
4607            if (s.indexOf('?') > 0) {
4608                s = s + '&' + query;
4609            }
4610            else {
4611                s = s + '?' + query;
4612            }
4613            return s;
4614        },
4615        onUserMobile_Click: function (el, isOpen = true) {
4616            if (window.pars3p.auth.isLogin == true) {
4617                var query = jQuery('.mobile-header-menu .user-manage');
4618                if (isOpen)
4619                    query.show();
4620                else
4621                    query.hide();
4622            }
4623            else {
4624                window.location.href = window.pars3p.urlLogin;
4625            }
4626            return false;
4627        },
4628        onUserMobileEvent1_Click: function (el, isOpen = true) {
4629            if (window.pars3p.auth.isLogin == true) {
4630                lib3p.common_tokenSet('');
4631                lib3p.common_cartSet('');
4632                window.pars3p.auth = {
4633                    isLogin: false,
4634                    access_token: '',
4635                    refresh_token: '',
4636                    fullName: '',
4637                    phoneNumber: '',
4638                };
4639                window.pars3p.cart = {};
4640                window.location.reload();
4641            }
4642            else {
4643                window.location.href = window.pars3p.urlLogin;
4644            }
4645            return false;
4646        },
4647        onMenuHeader_Prev: function (el, code) {
4648            if (code == 0) {
4649                jQuery('.popup-mobile-header-menu .category.main').show();
4650                jQuery('.popup-mobile-header-menu .category.sub').hide();
4651            }
4652            else {
4653                var html = jQuery('.popup-mobile-header-menu .category.main .haschilds.child-' + code).html();
4654                jQuery('.popup-mobile-header-menu .category.sub').html(html);
4655            }
4656        },
4657        onMenuHeader_Click: function (el) {
4658            var query = jQuery(el).closest('div.category');
4659            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4660                var ismain = jQuery(query[0]).hasClass('main');
4661                query = jQuery(el).closest('div.li-item-nav');
4662                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4663                    query = jQuery(query[0]).find('div.haschilds');
4664                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4665                        if (ismain == true) {
4666                            jQuery('.popup-mobile-header-menu .category.main').hide();
4667                            jQuery('.popup-mobile-header-menu .category.sub').show();
4668                            jQuery('.popup-mobile-header-menu .category.sub').html(jQuery(query[0]).html());
4669                        }
4670                        else {
4671                            jQuery('.popup-mobile-header-menu .category.sub').html(jQuery(query[0]).html());
4672                        }
4673                    }
4674                }
4675            }
4676            if (!jQuery(jQuery(el).closest('div.item')).hasClass('show')) {
4677                var query = jQuery('.mobile-footer .ds-menu .item.show');
4678                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4679                    query.removeClass('show');
4680                }
4681            }
4682            jQuery(el).closest('div.item').toggleClass('show');
4683        },
4684        onMenuHeader_Close: function (el) {
4685            var query = jQuery('.popup-mobile-header-menu .hachi-modal');
4686            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4687                if (jQuery(query[0]).hasClass("d-block")) {
4688                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
4689                }
4690            }
4691        },
4692        onMenuMobile_Click: function (el) {
4693            var query = jQuery('.popup-mobile-header-menu .hachi-modal');
4694            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4695                if (jQuery(query[0]).hasClass("d-none")) {
4696                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
4697                }
4698                jQuery('.popup-mobile-header-menu .category.sub').hide();
4699                jQuery('.popup-mobile-header-menu .category.main').show();
4700            }
4701        },
4702        onFooterMenu_Click: function (el) {
4703            if (!jQuery(jQuery(el).closest('div.item')).hasClass('show')) {
4704                var query = jQuery('.mobile-footer .ds-menu .item.show');
4705                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4706                    query.removeClass('show');
4707                }
4708            }
4709            jQuery(el).closest('div.item').toggleClass('show');
4710        },
4711        onTaiKhoan_Like: function () {
4712            if (window.pars3p.auth.isLogin == true) {
4713                window.location.href = window.pars3p.urlUserLike;
4714            }
4715            else {
4716                lib3p.header.onPopupLikeConfirm_Show();
4717            }
4718        },
4719        onCaptcha_Click: function () {
4720            window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
4721            jQuery('.captcha-input .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
4722            jQuery('.captcha-input .captcha').attr('key', window.pars3p.KeyView);
4723        },
4724        ShowHasAccount: function (PhoneNumber, callbackOk, callbackCancel) {
4725            window.pars3p.khtt.CallBackOK = callbackOk;
4726            window.pars3p.khtt.CallBackCancel = callbackCancel;
4727            window.pars3p.otp.PhoneNumber = PhoneNumber;
4728
4729            var str = PhoneNumber.substr(0, 3) + "****" + PhoneNumber.substr(-3);
4730            jQuery('.popup-header-has-account .sodienthoai').html(str);
4731            jQuery('.popup-header-forget-pass form')[0].phone.value = PhoneNumber;
4732
4733            var query = jQuery('.popup-header-has-account .hachi-modal');
4734            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4735                if (jQuery(query[0]).hasClass("d-none")) {
4736                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
4737                }
4738            }
4739            query = jQuery('.popup-header-forget-pass form');
4740            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4741                jQuery(query[0].phone).prop('disabled', true);
4742            }
4743        },
4744        ShowChangePass: function (callbackOk, callbackCancel) {
4745            window.pars3p.khtt.CallBackOK = callbackOk;
4746            window.pars3p.khtt.CallBackCancel = callbackCancel;
4747            window.pars3p.otp.PhoneNumber = '';
4748
4749            jQuery('.popup-header-forget-pass form')[0].phone.value = '';
4750            lib3p.header.onCaptcha_Click();
4751            var query = jQuery('.popup-header-forget-pass .hachi-modal');
4752            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4753                if (jQuery(query[0]).hasClass("d-none")) {
4754                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
4755                }
4756            }
4757            query = jQuery('.popup-header-forget-pass form');
4758            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4759                jQuery(query[0].phone).prop('disabled', false);
4760            }
4761            setTimeout(function () {
4762                query = jQuery('.popup-header-forget-pass form');
4763                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4764                    query[0].phone.focus();
4765                }
4766            }, 100);
4767        },
4768        onPopupHasAccount_Close: function () {
4769            var query = jQuery('.popup-header-has-account .hachi-modal');
4770            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4771                if (jQuery(query[0]).hasClass("d-block")) {
4772                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
4773                }
4774            }
4775            if (lib3p_helper.utility.hasValue(window.pars3p.khtt.CallBackCancel)) {
4776                window.pars3p.khtt.CallBackCancel();
4777            }
4778        },
4779        onPopupForgetPass_Open: function () {
4780            lib3p.header.onCaptcha_Click();
4781            var query = jQuery('.popup-header-has-account .hachi-modal');
4782            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4783                if (jQuery(query[0]).hasClass("d-block")) {
4784                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
4785                }
4786            }
4787            query = jQuery('.popup-header-forget-pass .hachi-modal');
4788            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4789                if (jQuery(query[0]).hasClass("d-none")) {
4790                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
4791                }
4792            }
4793            setTimeout(function () {
4794                query = jQuery('.popup-header-forget-pass form');
4795                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4796                    query[0].Captcha.focus();
4797                }
4798            }, 100);
4799        },
4800        onPopupForgetPass_Close: function () {
4801            var query = jQuery('.popup-header-forget-pass .hachi-modal');
4802            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4803                if (jQuery(query[0]).hasClass("d-block")) {
4804                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
4805                }
4806            }
4807            if (lib3p_helper.utility.hasValue(window.pars3p.khtt.CallBackCancel)) {
4808                window.pars3p.khtt.CallBackCancel();
4809            }
4810        },
4811        onPopupForgetPass_Submit: function (event) {
4812            if (!jQuery(event.target).hasClass('haserror')) {
4813                jQuery(event.target).find('div.error').html('');
4814                jQuery(event.target).find('.input input').removeClass('error');
4815
4816                var flag = true;
4817                var data = {
4818                    phone: '',
4819                    Captcha: '',
4820                };
4821
4822                var ctr = event.target.phone;
4823                data.phone = ctr.value;
4824                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4825                    flag = false;
4826                    if (!jQuery(ctr).hasClass('error')) {
4827                        jQuery(ctr).addClass('error');
4828                    }
4829                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
4829<span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4830                }
4831                ctr = event.target.Captcha;
4832                data.Captcha = ctr.value;
4833                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4834                    flag = false;
4835                    if (!jQuery(ctr).hasClass('error')) {
4836                        jQuery(ctr).addClass('error');
4837                    }
4838                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4839                }
4840                if (flag == true) {
4841                    window.pars3p.KeyCaptcha = data.Captcha;
4842                    lib3p.common_PostURL(window.pars3p.api.public.userchangepass + '?key=' + window.pars3p.KeyView + '&captcha=' + window.pars3p.KeyCaptcha, { "PhoneNumber": data.phone }, function (res) {
4843                        if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValue(res.phoneNumber)) {
4844                            var str = data.phone.substr(0, 3) + "****" + data.phone.substr(-3);
4845                            jQuery('.popup-header-pass-input .modal-body .data').html(str);
4846                            jQuery('.popup-header-pass-success .modal-body .data').html(str);
4847
4848                            window.pars3p.dangkykhtt.IsChangePass = true;
4849                            window.pars3p.otp.PhoneNumber = res.phoneNumber;
4850                            lib3p.header.onPopupForgetPass_Close();
4851                            lib3p.header.onOTPType_Show(res.phoneNumber, lib3p.header.TypeOTP.Account, function () {
4852                                window.pars3p.password.PasswordOld = window.pars3p.otp.Password;
4853
4854                                var query = jQuery('.popup-header-pass-input .hachi-modal');
4855                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4856                                    if (jQuery(query[0]).hasClass("d-none")) {
4857                                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
4858                                    }
4859                                }
4860                            }, function () {
4861
4862                            });
4863                        }
4864                        else {
4865                            jQuery(event.target.phone).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã Khách Hàng Thân Thiết (KHTT) hoặc số điện thoại bạn vừa nhập chưa có trong hệ thống Hachi Hachi </span>');
4866                        }
4867                    }, function (err) {
4868                        jQuery(event.target.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập sai mã captcha</span>');
4869                    });
4870                }
4871            }
4872
4873            event.preventDefault();
4874        },
4875        onPopupForgetPassInput_Close: function (haschange) {
4876            var query = jQuery('.popup-header-pass-input .hachi-modal');
4877            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4878                if (jQuery(query[0]).hasClass("d-block")) {
4879                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
4880                }
4881            }
4882            if (haschange == true) {
4883                var query = jQuery('.popup-header-pass-success .hachi-modal');
4884                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4885                    if (jQuery(query[0]).hasClass("d-none")) {
4886                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
4887                    }
4888                }
4889                setTimeout(function () {
4890                    lib3p.header.onPopupForgetPassSuccess_Close();
4891                }, 3000);
4892            }
4893            else {
4894                if (lib3p_helper.utility.hasValue(window.pars3p.khtt.CallBackOK)) {
4895                    window.pars3p.khtt.CallBackOK();
4896                }
4897            }
4898        },
4899        onHienPass_Click: function (el) {
4900            var query = jQuery(el).closest('.input');
4901            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4902                var el = query[0];
4903                var query = jQuery(el).children('input');
4904                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4905                    var input = query[0];
4906                    if (jQuery(el).hasClass('hide')) {
4907                        jQuery(el).removeClass('hide');
4908                        jQuery(input).attr('type', 'password');
4909                    }
4910                    else {
4911                        jQuery(el).addClass('hide');
4912                        jQuery(input).attr('type', 'text');
4913                    }
4914                }
4915            }
4916        },
4917        onPopupForgetPassInput_Submit: function (event) {
4918            if (!jQuery(event.target).hasClass('haserror')) {
4919                jQuery(event.target).find('div.error').html('');
4920                jQuery(event.target).find('.input input').removeClass('error');
4921
4922                var flag = true;
4923                var data = {
4924                    pass: '',
4925                    passre: '',
4926                };
4927
4928                var ctr = event.target.pass;
4929                data.pass = ctr.value;
4930                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4931                    flag = false;
4932                    if (!jQuery(ctr).hasClass('error')) {
4933                        jQuery(ctr).addClass('error');
4934                    }
4935                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mật khẩu không đủ 6 kí tự, vui lòng nhập lại</span>');
4936                }
4937                else if (ctr.value.length < 6) {
4938                    flag = false;
4939                    if (!jQuery(ctr).hasClass('error')) {
4940                        jQuery(ctr).addClass('error');
4941                    }
4942                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mật khẩu ít nhất 6 kí tự</span>');
4943                }
4944                ctr = event.target.passre;
4945                data.passre = ctr.value;
4946                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
4947                    flag = false;
4948                    if (!jQuery(ctr).hasClass('error')) {
4949                        jQuery(ctr).addClass('error');
4950                    }
4951                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
4952                }
4953                if (flag != false && data.passre != data.pass) {
4954                    flag = false;
4955                    if (!jQuery(ctr).hasClass('error')) {
4956                        jQuery(ctr).addClass('error');
4957                    }
4958                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mật khẩu không khớp nhau, vui lòng nhập lại</span>');
4959                }
4960
4961                if (flag == true) {
4962                    lib3p.common_AuthPostURL(window.pars3p.api.auth.User_ChangePassByActive, { "active": window.pars3p.password.PasswordOld, "passnew": data.pass }, function (res) {
4963                        if(res.Succeeded == true) {
4964                            lib3p.header.onPopupForgetPassInput_Close(true);
4965                        }
4966                        else {
4967                            ctr = event.target.pass;
4968                            if (!jQuery(ctr).hasClass('error')) {
4969                                jQuery(ctr).addClass('error');
4970                            }
4971                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Nhập sai mật khẩu</span>');
4972                        }
4973                    }, function (err) {
4974                        if (err.status == 200) {
4975                            lib3p.header.onPopupForgetPassInput_Close(true);
4976                        }
4977                    });
4978                    /* lib3p.common_AuthPostURL(window.pars3p.api.auth.changepassword, { "ActiveCode": window.pars3p.password.PasswordOld, "NewPassword": data.pass }, function (res) {
4979                        lib3p.header.onPopupForgetPassInput_Close(true);
4980                    }, function (err) {
4981                        if (err.status == 200) {
4982                            lib3p.header.onPopupForgetPassInput_Close(true);
4983                        }
4984                    }); */
4985                }
4986            }
4987
4988            event.preventDefault();
4989        },
4990        onPopupForgetPassSuccess_Close: function () {
4991            window.pars3p.islockDiaglog = false;
4992            var query = jQuery('.popup-header-pass-success .hachi-modal');
4993            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
4994                if (jQuery(query[0]).hasClass("d-block")) {
4995                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
4996                }
4997            }
4998            if (lib3p_helper.utility.hasValue(window.pars3p.khtt.CallBackOK)) {
4999                window.pars3p.khtt.CallBackOK();
5000            }
5001        },
5002        PopupCookieConfirm_Show: function(el) {
5003            window.pars3p.islockDiaglog = true;
5004            var query = jQuery('.popup-cookie-confirm .hachi-modal');
5005            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
5006                if (jQuery(query[0]).hasClass("d-none")) {
5007                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
5008                }
5009            }
5010        },
5011        PopupCookieConfirm_Close: function(el) {
5012            var query = jQuery('.popup-cookie-confirm .hachi-modal');
5013            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
5014                if (jQuery(query[0]).hasClass("d-block")) {
5015                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
5016                }
5017            }
5018        },
5019        onPopupCookieOptions_Show: function(el) {
5020            window.pars3p.islockDiaglog = true;
5021            window.pars3p.tempData = [];
5022            var str = lib3p.common_cookieConfigGet();
5023            if (lib3p_helper.utility.hasValueString(str)) {
5024                window.pars3p.tempData = str.split(',');
5025                for (var i = 0; i < window.pars3p.tempData.length; i++) {
5026                    if(window.pars3p.tempData[i] == '1') {
5027                        jQuery('.popup-cookie-options .hachi-modal .dong .choose.i' + i).addClass('checked');
5028                    }
5029                    else {
5030                        jQuery('.popup-cookie-options .hachi-modal .dong .choose.i' + i).removeClass('checked');
5031                    }                    
5032                }
5033            }
5034            else {
5035                jQuery('.popup-cookie-options .hachi-modal .dong .choose').addClass('checked');
5036                window.pars3p.tempData = ['1','1','1'];
5037            }
5038
5039            var query = jQuery('.popup-cookie-options .hachi-modal');
5040            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
5041                if (jQuery(query[0]).hasClass("d-none")) {
5042                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
5043                }
5044            }
5045        },
5046        PopupCookieOptions_Close: function(el) {
5047            var query = jQuery('.popup-cookie-options .hachi-modal');
5048            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
5049                if (jQuery(query[0]).hasClass("d-block")) {
5050                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
5051                }
5052            }
5053        },
5054        onPopupCookieConfirm_Options: function(el) {
5055            lib3p.header.PopupCookieConfirm_Close();
5056            lib3p.header.onPopupCookieOptions_Show(el);
5057        },
5058        onPopupCookieOptions_Toggle: function(el) {
5059            jQuery(el).closest('.noidung-outline').children('.dong').removeClass('expand');
5060            var query = jQuery(el).closest('.dong');
5061            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
5062                if(query.hasClass('expand')) {
5063                    query.removeClass('expand');
5064                }
5065                else {
5066                    query.addClass('expand');
5067                }
5068            }
5069        },
5070        onPopupCookieOptions_Choose: function(el, ix) {
5071            var query = jQuery(el).closest('.choose');
5072            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {                
5073                if(query.hasClass('checked')) {
5074                    query.removeClass('checked');
5075                    window.pars3p.tempData[ix] = '0';
5076                }
5077                else {
5078                    query.addClass('checked');
5079                    window.pars3p.tempData[ix] = '1';
5080                }
5081            }
5082        },
5083        onPopupCookieOptions_ChapNhan: function(el) {
5084            lib3p.common_cookieConfigSet('1,1,1');
5085            lib3p.header.PopupCookieOptions_Close();
5086            
5087            lib3p.header.onPopupCookieOptions_Consent('accept_all', {
5088                'ad_storage': 'granted',
5089                'analytics_storage': 'granted',
5090                'ad_user_data': 'granted',
5091                'ad_personalization': 'granted',
5092                'functionality_storage': 'granted',
5093                'personalization_storage': 'granted'
5094            });
5095            window.dataLayer = window.dataLayer || [];
5096            window.dataLayer.push({
5097                'event': 'cookie_consent_update',
5098                'consent_action': 'accept_all',
5099                'ad_storage': 'granted',
5100                'analytics_storage': 'granted',
5101                'ad_user_data': 'granted',
5102                'ad_personalization': 'granted',
5103                'functionality_storage': 'granted',
5104                'personalization_storage': 'granted'
5105            });
5106            setTimeout(function(){
5107                window.location.reload();
5108            }, 1000);            
5109        },
5110        onPopupCookieOptions_TuChoi: function(el) {
5111            var str = '0,0,0';            
5112            lib3p.header.PopupCookieOptions_RemoveOld(str);
5113            lib3p.common_cookieConfigSet(str);
5114            lib3p.header.PopupCookieOptions_Close();
5115
5116            lib3p.header.onPopupCookieOptions_Consent('reject_all', {
5117                'ad_storage': 'denied',
5118                'analytics_storage': 'denied',
5119                'ad_user_data': 'denied',
5120                'ad_personalization': 'denied',
5121                'functionality_storage': 'granted',
5122                'personalization_storage': 'denied'
5123            });
5124            window.dataLayer = window.dataLayer || [];
5125            window.dataLayer.push({
5126                'event': 'cookie_consent_update',
5127                'consent_action': 'reject_all',
5128                'ad_storage': 'denied',
5129                'analytics_storage': 'denied',
5130                'ad_user_data': 'denied',
5131                'ad_personalization': 'denied',
5132                'functionality_storage': 'granted',
5133                'personalization_storage': 'denied'
5134            });
5135            setTimeout(function(){
5136                window.location.reload();
5137            }, 1000);
5138        },
5139        onPopupCookieOptions_LuuCaiDat: function(el) {
5140            var str = window.pars3p.tempData.join(',');
5141            lib3p.header.PopupCookieOptions_RemoveOld(str);
5142            lib3p.common_cookieConfigSet(str);
5143            lib3p.header.PopupCookieOptions_Close();
5144
5145            var tuychon = window.pars3p.tempData[0] == '1';
5146            var phantich = window.pars3p.tempData[1] == '1';
5147            var quangcao = window.pars3p.tempData[2] == '1';
5148            lib3p.header.onPopupCookieOptions_Consent('customize', {
5149                'ad_storage': quangcao == true ? 'granted' : 'denied',
5150                'analytics_storage': phantich == true ? 'granted' : 'denied',
5151                'ad_user_data': quangcao == true ? 'granted' : 'denied',
5152                'ad_personalization': quangcao == true ? 'granted' : 'denied',
5153                'functionality_storage': 'granted',
5154                'personalization_storage': tuychon == true ? 'granted' : 'denied'
5155            });
5156            window.dataLayer = window.dataLayer || [];
5157            window.dataLayer.push({
5158                'event': 'cookie_consent_update',
5159                'consent_action': 'customize',
5160                'ad_storage': quangcao == true ? 'granted' : 'denied',
5161                'analytics_storage': phantich == true ? 'granted' : 'denied',
5162                'ad_user_data': quangcao == true ? 'granted' : 'denied',
5163                'ad_personalization': quangcao == true ? 'granted' : 'denied',
5164                'functionality_storage': 'granted',
5165                'personalization_storage': tuychon == true ? 'granted' : 'denied'
5166            });
5167            setTimeout(function(){
5168                window.location.reload();
5169            }, 1000);
5170        },
5171        onPopupCookieOptions_Consent: function(action, states) {
5172            window.dataLayer = window.dataLayer || [];
5173            if(lib3p_helper.utility.hasValue(gtag)) {
5174                gtag('consent', 'update', states);
5175            }
5176            window.dataLayer.push(Object.assign({
5177                'event': 'cookie_consent_update',
5178                'consent_action': action
5179            }, states));
5180        },
5181        PopupCookieOptions_RemoveOld: function(str) {
5182            if(str == '0,0,0') {
5183                var cookie = document.cookie;
5184                if (lib3p_helper.utility.hasValueString(cookie)) {
5185                    /* var lstCheck = ['_cookie_config_', '_view_', '_server_id_', '_server_connect_', 'login'];
5186                    var lstRemove = [];
5187                    var strs = cookie.split(';');
5188                    strs.forEach(function(s) {
5189                        if(s.indexOf('=') >= 0) {
5190                            var data = s.split('=');
5191                            while (data[0].charAt(0) == ' ') {
5192                                data[0] = data[0].substring(1);
5193                            }
5194                            if(lstCheck.indexOf(data[0]) < 0) {
5195                                lstRemove.push(data[0]);
5196                            }
5197                        }
5198                    });
5199                    lstRemove.forEach(function(s) {
5200                        lib3p_helper.utility.cookie.set(s, '', -30);
5201                    });
5202                    var d = new Date();
5203                    d.setTime(d.getTime() + (-7 * 24 * 60 * 60 * 1000));
5204                    document.cookie = "_gcl_au=;" + "expires=" + d.toUTCString() + ";path=/;domain=.hachihachi.com.vn";
5205                    document.cookie = "_ga=;" + "expires=" + d.toUTCString() + ";path=/;domain=.hachihachi.com.vn";
5206                    document.cookie = "_ga_6D7L9ZG5W9=;" + "expires=" + d.toUTCString() + ";path=/;domain=.hachihachi.com.vn";
5207                    document.cookie = "_fbp=;" + "expires=" + d.toUTCString() + ";path=/;domain=.hachihachi.com.vn"; */
5208                }
5209            }
5210        },
5211        LoadTotalChip: function () {
5212            if (lib3p.header.IsLoading.IsLoading != true) {
5213                lib3p.header.IsLoading.IsLoading = true;
5214                var query = jQuery(".total-chip");
5215                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
5216                    lib3p.header.LoadTotalChip_async().then(function (data) { }, function (err) { console.log(err); });
5217                }
5218            }
5219        },
5220        LoadTotalChip_async: function () {
5221            return new Promise(function (resolve, reject) {
5222                try {
5223                    setTimeout(function () {
5224                        lib3p.common_PostURL(window.pars3p.api.public.All_TotalChip, {}, function (res) {
5225                            if (lib3p_helper.utility.hasValue(res)) {
5226                                if (!(res.TotalKhuyenMai > 0)) {
5227                                    jQuery(".total-chip .khuyenmai_chip2").remove();
5228                                }
5229                                if (!(res.TotalHachiGioiThieu > 0)) {
5230                                    jQuery(".total-chip .hachigioithieu_chip").remove();
5231                                }
5232                                if (!(res.TotalHachiStar > 0)) {
5233                                    jQuery(".total-chip .hachistar_chip").remove();
5234                                }
5235                                if (!(res.TotalCombo > 0)) {
5236                                    jQuery(".total-chip .combo_ico").remove();
5237                                }
5238                                if (!(res.TotalGiftset > 0)) {
5239                                    jQuery(".total-chip .giftset_ico").remove();
5240                                }
5241                                if (!(res.TotalSPMoi > 0)) {
5242                                    jQuery(".total-chip .moi_ico").remove();
5243                                }
5244                                if (!(res.TotalFlashSale > 0)) {
5245                                    jQuery(".total-chip .flashsale_chip").remove();
5246                                }
5247                                if (!(res.Total29K > 0)) {
5248                                    jQuery(".total-chip .29k_ico").remove();
5249                                }
5250                                if (!(res.TotalGiaTot > 0)) {
5251                                    jQuery(".total-chip .giatot_chip").remove();
5252                                }
5253                                if (!(res.TotalHamper > 0)) {
5254                                    jQuery(".total-chip .hamper_ico").remove();
5255                                }
5256
5257                                var query = jQuery('.khuyenmai-noi-bat-mobile.owl-carousel');
5258                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
5259                                    query.owlCarousel({
5260                                        autoplay: false,
5261                                        autoplayHoverPause: false,
5262                                        loop: false,
5263                                        nav: false,
5264                                        dots: false,
5265                                        autoWidth: true,
5266                                        margin: 20,
5267                                    });
5268
5269                                    jQuery('.khuyenmai-noi-bat-mobile .item').each(function (cix) {
5270                                        var el = this;
5271                                        if (jQuery(el).hasClass('active')) {
5272                                            query.trigger('to.owl.carousel', cix);
5273                                        }
5274                                    });
5275                                }
5276                                query = jQuery('.khuyenmai-noi-bat-mobile-sub.owl-carousel');
5277                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
5278                                    query.owlCarousel({
5279                                        autoplay: false,
5280                                        autoplayHoverPause: false,
5281                                        loop: false,
5282                                        nav: false,
5283                                        dots: false,
5284                                        autoWidth: true,
5285                                        margin: 5,
5286                                    });
5287                                    jQuery('.khuyenmai-noi-bat-mobile-sub .item').each(function (cix) {
5288                                        var el = this;
5289                                        if (jQuery(el).hasClass('active')) {
5290                                            query.trigger('to.owl.carousel', cix);
5291                                        }
5292                                    });
5293                                }
5294                            }
5295                            resolve('');
5296                        }, function (err) {
5297                            reject(err);
5298                        });
5299                    }, window.pars3p.timeAsync);
5300                } catch (error) {
5301                }
5302            });
5303        },
5304        LoadLikeChip: function () {
5305            lib3p.header.ProductLike_DS(function () {
5306                var query = jQuery('.page-header .top-icon .like-icon .like-number');
5307
5308                if (lib3p_helper.utility.hasValue(query) && query.length > 0 && lib3p_helper.utility.hasValueString(window.pars3p.productLike)) {
5309                    var num = window.pars3p.productLike.split('[').length - 1
5310                    if (num > 0) {
5311                        query.html(num);
5312                        query.show();
5313                    }
5314                    else {
5315                        query.hide();
5316                    }
5317                }
5318
5319                query = jQuery('.page-header .top-icon .like-icon img');
5320
5321                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
5322                    query.attr('src', "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon_02_b.svg");
5323                }
5324            });
5325        },
5326        LoadFlashSale: function () {
5327            var query = jQuery(".flashsale");
5328            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
5329                lib3p.header.LoadFlashSale_async().then(function (data) { }, function (err) { console.log(err); });
5330            }
5331        },
5332        LoadFlashSale_async: function () {
5333            return new Promise(function (resolve, reject) {
5334                try {
5335                    setTimeout(function () {
5336                        /* 
5337                        lib3p.common_PostURL(window.pars3p.api.public.Home_GetFlashSale, {}, function (res) {
5338                            var query = jQuery(".flashsale");
5339                            var queryMobile = jQuery(".flashsale-mobile");
5340
5341                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
5342                                if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.ListItems)) {
5343                                    var dt = new Date();
5344                                    if (lib3p_helper.utility.hasValue(res.EndDate)) {
5345                                        dt = new Date(res.EndDate);
5346                                    }
5347                                    var now = new Date();
5348                                    var getdate = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds());
5349
5350                                    // if(dt >= lib3p_helper.utility.dateAddDay(now, 1)) {
5351                                    //     dt = lib3p_helper.utility.dateAddDay(now, 1);
5352                                    try {
5353                                        const ms_in_min = 1000
5354                                        //chạy thời gian khuyến mãi                    
5355                                        query.each(function () {
5356                                            lib3p.runFlashsaleTimer(this, ms_in_min, dt)//bind lần đầu sau khi load data
5357
5358                                            setInterval(() => {//bind mỗi 1 phút
5359                                                lib3p.runFlashsaleTimer(this, ms_in_min, dt)
5360                                            }, ms_in_min)
5361                                        })
5362                                        //chạy thời gian khuyến mãi
5363                                        queryMobile.each(function () {
5364                                            lib3p.runFlashsaleTimer(this, ms_in_min, dt)//bind lần đầu sau khi load data
5365
5366                                            setInterval(() => {//bind mỗi 1 phút
5367                                                lib3p.runFlashsaleTimer(this, ms_in_min, dt)
5368                                            }, ms_in_min)
5369                                        })
5370                                    } catch (error) {
5371                                        console.log(error)
5372                                    }
5373
5374                                    if (dt >= getdate) {
5375                                        // var hour = dt.getHours() - now.getHours();
5376                                        // var min = dt.getMinutes() - now.getMinutes();
5377                                        // var sec = dt.getSeconds() - now.getSeconds();
5378
5379                                        var html = '<div class="owl-carousel">';
5380                                        var total = res.ListItems.length;
5381                                        var existBanner = [];
5382
5383                                        res.ListItems.forEach(function (c, cidx) {
5384                                            //nếu data banner dup thì ko vẽ trên giao diện
5385                                            if (!existBanner.includes(c.BannerCard)) {
5386                                                html += '<div class="item">';
5387                                                html += '<img src="' + window.pars3p.hostresouce + c.BannerCard + '" />';
5388                                                html += '<a class="cart-fast" data-code="' + c.Code + '" data-name="' + c.ProductName + '" data-img="' + c.ImageThumb + '" data-price="' + c.Price + '" data-pricebase="' + c.PriceBase + '" data-hachi24="' + c.IsHachi24h + '" data-barcode="' + c.Barcode + '" onclick="lib3p.header.onProductMuaNgay_Click(this)">&nbsp;</a>';
5389                                                html += '<div class="sapxep-bg b-gregray40">&nbsp;</div>';
5390                                                html += '<div class="sapxep s13 cl-gregray600 sibold600">' + (cidx + 1) + '/' + total + '</div>';
5391                                                html += '</div>';
5392                                                existBanner.push(c.BannerCard)
5393                                            }
5394                                        });
5395                                        html += '</div>';
5396
5397                                        jQuery('.flashsale .danhsach').html(html);
5398                                        jQuery('.flashsale-mobile .danhsach').html(html);
5399                                        jQuery('.flashsale .danhsach .owl-carousel').owlCarousel({
5400                                            autoplay: true,
5401                                            autoplayTimeout: 3000,
5402                                            autoplayHoverPause: true,
5403                                            autoWidth: false,
5404                                            loop: true,
5405                                            nav: true,
5406                                            dots: false,
5407                                            items: 2.6,
5408                                            margin: 12,
5409                                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
5410                                            navElement: 'div'
5411                                        });
5412                                        jQuery('.flashsale-mobile .danhsach .owl-carousel').owlCarousel({
5413                                            autoplay: true,
5414                                            autoplayTimeout: 3000,
5415                                            autoplayHoverPause: false,
5416                                            autoWidth: true,
5417                                            loop: true,
5418                                            nav: false,
5419                                            dots: false,
5420                                            margin: 20,
5421                                        });
5422                                    }
5423                                    else {
5424                                        query.hide();
5425                                        queryMobile.hide();
5426                                    }
5427                                }
5428                                else {
5429                                    query.hide();
5430                                    queryMobile.hide();
5431                                }
5432                            }
5433
5434                            resolve('');
5435                        }, function (err) {
5436                            reject(err);
5437                        });
5438                         */
5439                        resolve('');
5440
5441                    }, window.pars3p.timeAsync);
5442                } catch (error) {
5443
5444                }
5445            });
5446        },
5447        LoadBrand: function () {
5448            var query = jQuery(".thuong-hieu");
5449            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
5450                lib3p.header.LoadBrand_async().then(function (data) { }, function (err) { console.log(err); });
5451            }
5452        },
5453        LoadBrand_async: function () {
5454            return new Promise(function (resolve, reject) {
5455                setTimeout(function () {
5456                    lib3p.common_PostURL(window.pars3p.api.public.Home_GetBrand, {}, function (res) {
5457                        if (lib3p_helper.utility.hasValue(res)) {
5458                            var html = '<div class="owl-carousel">';
5459                            res.forEach(function (c) {
5460                                if (c.ImageThumb.indexOf('Japan brand') == -1) {
5461                                    html += '<div key="' + c.Code + '" class="item">';
5462                                    html += '<a class="product" href="' + c.Alias + '"><img src="' + c.ImageProduct + '" alt="' + c.BrandName + '" loading="lazy" /></a>';
5463                                    html += '<a class="img" href="' + c.Alias + '"><img class="sl-gregray200" src="' + c.ImageThumb + '" alt="' + c.BrandName + '" loading="lazy" /></a>';
5464                                    html += '<a class="name s12 cl-gray900 medium500" href="' + c.Alias + '">' + c.BrandName + '</a>';
5465                                    html += '</div>';
5466                                }
5467                            });
5468                            html += '</div>';
5469                            jQuery('.thuong-hieu .danhsach').html(html);
5470                            jQuery('.thuong-hieu .danhsach-mobile').html(html);
5471
5472                            jQuery('.thuong-hieu .danhsach .owl-carousel').owlCarousel({
5473                                autoplay: true,
5474                                autoplayTimeout: 3000,
5475                                autoplayHoverPause: true,
5476                                autoWidth: false,
5477                                loop: true,
5478                                nav: true,
5479                                dots: false,
5480                                margin: 0,
5481                                //có nhiều hơn 6 banner mới hiện nav
5482                                items: 6,
5483                                slideBy: 3,
5484                                navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
5485                                navElement: 'div'
5486                            });
5487                            jQuery('.thuong-hieu .danhsach-mobile .owl-carousel').owlCarousel({
5488                                autoplay: false,
5489                                autoplayTimeout: 3000,
5490                                autoplayHoverPause: true,
5491                                autoWidth: true,
5492                                loop: true,
5493                                nav: true,
5494                                dots: false,
5495                                margin: 10,
5496                                slideBy: 3,
5497                                navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
5498                                navElement: 'div'
5499                            });
5500                        }
5501                        resolve('');
5502                    }, function (err) {
5503                        reject(err);
5504                    });
5505                }, window.pars3p.timeAsync);
5506            });
5507        },
5508
5509        onUserMenu_Click: function (el) {
5510            jQuery(el).closest('li').toggleClass('show');
5511        },
5512        onUserLogout_Click: function () {
5513            lib3p.common_tokenSet('');
5514            lib3p.common_cartSet('');
5515            lib3p.common_loginSet('');
5516            window.pars3p.auth = {
5517                isLogin: false,
5518                access_token: '',
5519                refresh_token: '',
5520                fullName: '',
5521                phoneNumber: '',
5522            };
5523            window.pars3p.cart = {};
5524            window.location.href = '/';
5525        },
5526        onTimKiem_Submit: function (event) {
5527            var link = '/tim-kiem?key={0}';
5528
5529            //jQuery('.page-login').find('.error').html('');
5530            //jQuery('.page-login').find('.input input').removeClass('error');
5531
5532            var flag = true;
5533            var data = {
5534                TimKiem: '',
5535            };
5536
5537            var ctr = event.target.TimKiem;
5538            data.TimKiem = ctr.value;
5539            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
5540                flag = false;
5541            }
5542
5543            if (flag == true) {
5544                var str = data.TimKiem.replaceAll("   ", " ").replaceAll("  ", " ");
5545                //lib3p_helper.utility.cookie.set("searchkey", str);
5546                //str = lib3p_helper.utility.removeUnicode(str.replaceAll(" ", "-"));
5547                link = lib3p_helper.utility.stringFormatMore(link, str.replaceAll(" ", "-"));
5548                window.location = link;
5549            }
5550
5551            event.preventDefault();
5552        },
5553        onTimKiem_KeyDown: function (event, el) {
5554            var query = jQuery(event.target);
5555            var keyenter = event.keyCode == 13;
5556            var keyesc = event.keyCode == 27;
5557            if (keyenter != true && keyesc != true) {
5558                var current = new Date().getTime();
5559                window.pars3p.keydowndate = current;
5560                setTimeout(function () {
5561                    if (window.pars3p.keydowndate == current) {
5562                        var link = '/tim-kiem?key={0}';
5563                        var key = query.val();
5564                        if (lib3p_helper.utility.hasValueString(key)) {
5565                            if (!query.parent().find('a.input-clear').hasClass('show')) {
5566                                query.parent().find('a.input-clear').addClass('show');
5567                            }
5568
5569                            link = lib3p_helper.utility.stringFormatMore(link, key);
5570
5571                            if (!jQuery('.headerSearchSuggest').hasClass('show')) {
5572                                jQuery('#headerSearchSuggest').trigger('click');
5573                            }
5574                            var itemdata = window.pars3p.keydowndata[key];
5575                            if (lib3p_helper.utility.hasValue(itemdata) && itemdata.time > window.pars3p.keydowndate && lib3p_helper.utility.hasValue(itemdata.data)) {
5576                                lib3p.header.onTimKiem_KeyDown_load(itemdata.data, key, link);
5577                            }
5578                            else {
5579                                lib3p.common_GetURL(window.pars3p.api.public.Header_Search + '?key=' + key, function (res) {
5580                                    if (lib3p_helper.utility.hasValue(res)) {
5581                                        window.pars3p.keydowndata[key] = { time: lib3p_helper.utility.dateAddMinute(new Date(), 10), data: res };
5582                                        lib3p.header.onTimKiem_KeyDown_load(res, key, link);
5583                                    }
5584                                }, function (err) {
5585                                    lib3p.log(err);
5586                                });
5587                            }
5588                        }
5589                        else {
5590                            if (query.parent().find('a.input-clear').hasClass('show')) {
5591                                query.parent().find('a.input-clear').removeClass('show');
5592                            }
5593                            if (jQuery('.headerSearchSuggest').hasClass('show')) {
5594                                jQuery('#headerSearchSuggest').trigger('click');
5595                            }
5596                        }
5597                    }
5598                }, 500);
5599            }
5600            else if (keyesc == true) {
5601                if (query.parent().find('a.input-clear').hasClass('show')) {
5602                    query.parent().find('a.input-clear').removeClass('show');
5603                }
5604                if (jQuery('.headerSearchSuggest').hasClass('show')) {
5605                    jQuery('#headerSearchSuggest').trigger('click');
5606                }
5607            }
5608        },
5609        onTimKiem_KeyDown_load: function (res, key, link) {
5610            if (lib3p_helper.utility.hasValue(res)) {
5611                var html = '';
5612                if (lib3p_helper.utility.hasListValue(res.ListCategory)) {
5613                    html += '<div class="danhmuc">';
5614                    html += '<div class="tieude s14 cl-dakgreen800 sibold600">
5614Tìm trong danh mục</div>';
5615                    html += '<div class="danhsach">';
5616                    res.ListCategory.forEach(function (c, cidx) {
5617                        html += '<a href="' + c.AliasVN + '" class="sl-gregray100 s13 cl-gregray800 regular400">' + c.CategoryNameVN + '</a>';
5618                    });
5619                    html += '</div>';
5620                    html += '</div>';
5621                }
5622                if (lib3p_helper.utility.hasListValue(res.ListProduct)) {
5623                    html += '<div class="sanpham">';
5624                    html += '<div class="tieude s14 cl-dakgreen800 sibold600">Sản phẩm có liên quan</div>';
5625                    html += '<div class="danhsach">';
5626                    res.ListProduct.forEach(function (c, cidx) {
5627                        html += '<div class="product-item">';
5628                        html += '<div class="img"><a class="gtm-search-product" data-device="pc" data-name="' + key + '" href="' + c.Alias + '"><img src="' + c.ImageThumb + '" alt="' + c.ProductName + '" loading="lazy" /></a></div>';
5629
5630                        html += '<div class="info">';
5631                        if (c.StatusID == 20) {
5632                            if (c.Price != c.PriceBase) {
5633                                html += '<div class="price"><a class="gtm-search-product sale s14 cl-gregray900 regular400" data-device="pc" data-name="' + key + '" href="' + c.Alias + '">' + lib3p_helper.utility.formatMoney(c.PriceBase) + '</a><a href="' + c.Alias + '" class="s14 cl-red400 regular400">' + lib3p_helper.utility.formatMoney(c.Price) + '</a></div>';
5634                            }
5635                            else {
5636                                html += '<div class="price"><a class="gtm-search-product s14 cl-gregray900 regular400" data-device="pc" data-name="' + key + '" href="' + c.Alias + '">' + lib3p_helper.utility.formatMoney(c.Price) + '</a></div>';
5637                            }
5638                        }
5639                        else {
5640                            html += '<div class="price">&nbsp;</div>';
5641                        }
5642                        html += '<div class="name"><a class="gtm-search-product s14 cl-gregray900 regular400" data-device="pc" data-name="' + key + '" href="' + c.Alias + '">' + c.ProductName + '</a></div>';
5643                        html += '</div>';
5644                        html += '<div class="product-tag">';
5645                        if (c.IsBestSeller == true) {
5646                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_ban_chay.svg" alt="hachihachi" loading="lazy" />';
5647                        }
5648                        else if (c.IsBestPrice == true) {
5649                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_gia_tot.svg" alt="hachihachi" loading="lazy" />';
5650                        }
5651                        else if (c.IsNew == true) {
5652                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon_08.svg" alt="hachihachi" loading="lazy" />';
5653                        }
5654                        else if (c.Is29K == true) {
5655                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_dong_gia.svg" alt="hachihachi" loading="lazy" />';
5656                        }
5657                        html += '</div>';
5658
5659                        html += '</div>';
5660                    });
5661                    html += '</div>';
5662                    html += '</div>';
5663                }
5664                html += '<div class="xemtatca"><a class="s14 cl-dakgreen800 sibold600" href="' + link + '">Xem tất cả "' + key + '"</a></div>';
5665                jQuery('.page-header .search-input .headerSearchSuggest .find').html(html);
5666            }
5667        },
5668        onTimKiem_KeyDown_old: function (event, el) {
5669            var query = jQuery(event.target);
5670            if (event.keyCode != 13) {
5671                var close = event.keyCode == 27;
5672                setTimeout(function () {
5673                    var link = '/tim-kiem?key={0}';
5674                    var key = query.val();
5675
5676                    if (!lib3p_helper.utility.hasValueString(key)) {
5677                        close = true;
5678                    }
5679                    if (close == true) {
5680                        if (query.parent().find('a.input-clear').hasClass('show')) {
5681                            query.parent().find('a.input-clear').removeClass('show');
5682                        }
5683                        if (jQuery('.headerSearchSuggest').hasClass('show')) {
5684                            jQuery('#headerSearchSuggest').trigger('click');
5685                        }
5686                    }
5687                    else {
5688                        if (!query.parent().find('a.input-clear').hasClass('show')) {
5689                            query.parent().find('a.input-clear').addClass('show');
5690                        }
5691
5692                        link = lib3p_helper.utility.stringFormatMore(link, key);
5693
5694                        if (!jQuery('.headerSearchSuggest').hasClass('show')) {
5695                            jQuery('#headerSearchSuggest').trigger('click');
5696                        }
5697                        lib3p.common_GetURL(window.pars3p.api.public.Header_Search + '?key=' + key, function (res) {
5698                            if (lib3p_helper.utility.hasValue(res)) {
5699                                var html = '';
5700                                if (lib3p_helper.utility.hasListValue(res.ListCategory)) {
5701                                    html += '<div class="danhmuc">';
5702                                    html += '<div class="tieude s14 cl-dakgreen800 sibold600">
5702Tìm trong danh mục</div>';
5703                                    html += '<div class="danhsach">';
5704                                    res.ListCategory.forEach(function (c, cidx) {
5705                                        html += '<a href="' + c.AliasVN + '" class="sl-gregray100 s13 cl-gregray800 regular400">' + c.CategoryNameVN + '</a>';
5706                                    });
5707                                    html += '</div>';
5708                                    html += '</div>';
5709                                }
5710                                if (lib3p_helper.utility.hasListValue(res.ListProduct)) {
5711                                    html += '<div class="sanpham">';
5712                                    html += '<div class="tieude s14 cl-dakgreen800 sibold600">Sản phẩm có liên quan</div>';
5713                                    html += '<div class="danhsach">';
5714                                    res.ListProduct.forEach(function (c, cidx) {
5715                                        html += '<div class="product-item">';
5716                                        html += '<div class="img"><a class="gtm-search-product" data-device="pc" data-name="' + key + '" href="' + c.Alias + '"><img src="' + c.ImageThumb + '" alt="' + c.ProductName + '" loading="lazy" /></a></div>';
5717
5718                                        html += '<div class="info">';
5719                                        if (c.StatusID == 20) {
5720                                            if (c.Price != c.PriceBase) {
5721                                                html += '<div class="price"><a class="gtm-search-product sale s14 cl-gregray900 regular400" data-device="pc" data-name="' + key + '" href="' + c.Alias + '">' + lib3p_helper.utility.formatMoney(c.PriceBase) + '</a><a href="' + c.Alias + '" class="s14 cl-red400 regular400">' + lib3p_helper.utility.formatMoney(c.Price) + '</a></div>';
5722                                            }
5723                                            else {
5724                                                html += '<div class="price"><a class="gtm-search-product s14 cl-gregray900 regular400" data-device="pc" data-name="' + key + '" href="' + c.Alias + '">' + lib3p_helper.utility.formatMoney(c.Price) + '</a></div>';
5725                                            }
5726                                        }
5727                                        else {
5728                                            html += '<div class="price">&nbsp;</div>';
5729                                        }
5730                                        html += '<div class="name"><a class="gtm-search-product s14 cl-gregray900 regular400" data-device="pc" data-name="' + key + '" href="' + c.Alias + '">' + c.ProductName + '</a></div>';
5731                                        html += '</div>';
5732                                        html += '<div class="product-tag">';
5733                                        if (c.IsBestSeller == true) {
5734                                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_ban_chay.svg" alt="hachihachi" loading="lazy" />';
5735                                        }
5736                                        else if (c.IsBestPrice == true) {
5737                                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_gia_tot.svg" alt="hachihachi" loading="lazy" />';
5738                                        }
5739                                        else if (c.IsNew == true) {
5740                                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon_08.svg" alt="hachihachi" loading="lazy" />';
5741                                        }
5742                                        else if (c.Is29K == true) {
5743                                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_dong_gia.svg" alt="hachihachi" loading="lazy" />';
5744                                        }
5745                                        html += '</div>';
5746
5747                                        html += '</div>';
5748                                    });
5749                                    html += '</div>';
5750                                    html += '</div>';
5751                                }
5752                                html += '<div class="xemtatca"><a class="s14 cl-dakgreen800 sibold600" href="' + link + '">Xem tất cả "' + key + '"</a></div>';
5753                                jQuery('.page-header .search-input .headerSearchSuggest .find').html(html);
5754                            }
5755                        }, function (err) {
5756                            lib3p.log(err);
5757                        });
5758                    }
5759                }, 200);
5760            }
5761        },
5762        onTimKiemMobile_KeyDown: function (event, el) {
5763            var query = jQuery(event.target);
5764            var keyenter = event.keyCode == 13;
5765            var keyesc = event.keyCode == 27;
5766            if (keyenter != true && keyesc != true) {
5767                var current = new Date().getTime();
5768                window.pars3p.keydowndate = current;
5769                setTimeout(function () {
5770                    if (window.pars3p.keydowndate == current) {
5771                        var link = '/tim-kiem?key={0}';
5772                        var key = query.val();
5773                        if (lib3p_helper.utility.hasValueString(key)) {
5774                            if (!query.parent().find('a.input-clear').hasClass('show')) {
5775                                query.parent().find('a.input-clear').addClass('show');
5776                            }
5777
5778                            link = lib3p_helper.utility.stringFormatMore(link, key);
5779
5780                            if (!jQuery('.headerSearchSuggest').hasClass('show')) {
5781                                jQuery('.headerSearchSuggest-mobile').trigger('click');
5782                            }
5783                            var itemdata = window.pars3p.keydowndata[key];
5784                            if (lib3p_helper.utility.hasValue(itemdata) && itemdata.time > window.pars3p.keydowndate && lib3p_helper.utility.hasValue(itemdata.data)) {
5785                                lib3p.header.onTimKiemMobile_KeyDown_load(itemdata.data, key, link);
5786                            }
5787                            else {
5788                                lib3p.common_GetURL(window.pars3p.api.public.Header_Search + '?key=' + key, function (res) {
5789                                    if (lib3p_helper.utility.hasValue(res)) {
5790                                        window.pars3p.keydowndata[key] = { time: lib3p_helper.utility.dateAddMinute(new Date(), 10), data: res };
5791                                        lib3p.header.onTimKiemMobile_KeyDown_load(res, key, link);
5792                                    }
5793                                }, function (err) {
5794                                    lib3p.log(err);
5795                                });
5796                            }
5797                        }
5798                        else {
5799                            if (query.parent().find('a.input-clear').hasClass('show')) {
5800                                query.parent().find('a.input-clear').removeClass('show');
5801                            }
5802                            if (jQuery('.headerSearchSuggest').hasClass('show')) {
5803                                jQuery('.headerSearchSuggest-mobile').trigger('click');
5804                            }
5805                        }
5806                    }
5807                }, 500);
5808            }
5809            else if (keyesc == true) {
5810                if (query.parent().find('a.input-clear').hasClass('show')) {
5811                    query.parent().find('a.input-clear').removeClass('show');
5812                }
5813                if (jQuery('.headerSearchSuggest').hasClass('show')) {
5814                    jQuery('.headerSearchSuggest-mobile').trigger('click');
5815                }
5816            }
5817        },
5818        onTimKiemMobile_KeyDown_load: function (res, key, link) {
5819            if (lib3p_helper.utility.hasValue(res)) {
5820                var html = '';
5821                if (lib3p_helper.utility.hasListValue(res.ListCategory)) {
5822                    html += '<div class="danhmuc">';
5823                    html += '<div class="tieude s14 cl-dakgreen800 sibold600">
5823Tìm trong danh mục</div>';
5824                    html += '<div class="danhsach">';
5825                    res.ListCategory.forEach(function (c, cidx) {
5826                        html += '<a href="' + c.AliasVN + '" class="sl-gregray100 s13 cl-gregray800 regular400">' + c.CategoryNameVN + '</a>';
5827                    });
5828                    html += '</div>';
5829                    html += '</div>';
5830                }
5831                if (lib3p_helper.utility.hasListValue(res.ListProduct)) {
5832                    html += '<div class="sanpham">';
5833                    html += '<div class="tieude s14 cl-dakgreen800 sibold600">Sản phẩm có liên quan</div>';
5834                    html += '<div class="danhsach">';
5835                    res.ListProduct.forEach(function (c, cidx) {
5836                        html += '<div class="product-item">';
5837                        html += '<div class="img"><a class="gtm-search-product" data-device="mobile" data-name="' + key + '" href="' + c.Alias + '"><img src="' + c.ImageThumb + '" alt="' + c.ProductName + '" loading="lazy" /></a></div>';
5838
5839                        html += '<div class="info">';
5840                        if (c.StatusID == 20) {
5841                            if (c.Price != c.PriceBase) {
5842                                html += '<div class="price"><a class="gtm-search-product sale s14 cl-gregray900 regular400" data-device="mobile" data-name="' + key + '" href="' + c.Alias + '">' + lib3p_helper.utility.formatMoney(c.PriceBase) + '</a><a href="' + c.Alias + '" class="s14 cl-red400 regular400">' + lib3p_helper.utility.formatMoney(c.Price) + '</a></div>';
5843                            }
5844                            else {
5845                                html += '<div class="price"><a class="gtm-search-product s14 cl-gregray900 regular400" data-device="mobile" data-name="' + key + '" href="' + c.Alias + '">' + lib3p_helper.utility.formatMoney(c.Price) + '</a></div>';
5846                            }
5847                        }
5848                        else {
5849                            html += '<div class="price">&nbsp;</div>';
5850                        }
5851                        html += '<div class="name"><a class="gtm-search-product s14 cl-gregray900 regular400" data-device="mobile" data-name="' + key + '" href="' + c.Alias + '">' + c.ProductName + '</a></div>';
5852                        html += '</div>';
5853                        html += '<div class="product-tag">';
5854                        if (c.IsBestSeller == true) {
5855                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_ban_chay.svg" alt="hachihachi" loading="lazy" />';
5856                        }
5857                        else if (c.IsBestPrice == true) {
5858                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_gia_tot.svg" alt="hachihachi" loading="lazy" />';
5859                        }
5860                        else if (c.IsNew == true) {
5861                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon_08.svg" alt="hachihachi" loading="lazy" />';
5862                        }
5863                        else if (c.Is29K == true) {
5864                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_dong_gia.svg" alt="hachihachi" loading="lazy" />';
5865                        }
5866                        html += '</div>';
5867                        html += '</div>';
5868                    });
5869                    html += '</div>';
5870                    html += '</div>';
5871                }
5872                html += '<div class="xemtatca"><a class="s14 cl-dakgreen800 sibold600" href="' + link + '">Xem tất cả "' + key + '"</a></div>';
5873                jQuery('.mobile-header .search-input .headerSearchSuggest .find').html(html);
5874            }
5875        },
5876        onTimKiemMobile_KeyDown_old: function (event, el) {
5877            var query = jQuery(event.target);
5878            if (event.keyCode != 13) {
5879                var close = event.keyCode == 27;
5880                setTimeout(function () {
5881                    var link = '/tim-kiem?key={0}';
5882                    var key = query.val();
5883
5884                    if (!lib3p_helper.utility.hasValueString(key)) {
5885                        close = true;
5886                    }
5887                    if (close == true) {
5888                        if (query.parent().find('a.input-clear').hasClass('show')) {
5889                            query.parent().find('a.input-clear').removeClass('show');
5890                        }
5891                        if (jQuery('.headerSearchSuggest').hasClass('show')) {
5892                            // jQuery('#headerSearchSuggest-mobile').trigger('click');
5893                            jQuery('.headerSearchSuggest-mobile').trigger('click');
5894                        }
5895                    }
5896                    else {
5897                        if (!query.parent().find('a.input-clear').hasClass('show')) {
5898                            query.parent().find('a.input-clear').addClass('show');
5899                        }
5900
5901                        link = lib3p_helper.utility.stringFormatMore(link, key);
5902
5903                        if (!jQuery('.headerSearchSuggest').hasClass('show')) {
5904                            // jQuery('#headerSearchSuggest-mobile').trigger('click');
5905                            jQuery('.headerSearchSuggest-mobile').trigger('click');
5906                        }
5907                        lib3p.common_GetURL(window.pars3p.api.public.Header_Search + '?key=' + key, function (res) {
5908                            if (lib3p_helper.utility.hasValue(res)) {
5909                                var html = '';
5910                                if (lib3p_helper.utility.hasListValue(res.ListCategory)) {
5911                                    html += '<div class="danhmuc">';
5912                                    html += '<div class="tieude s14 cl-dakgreen800 sibold600">
5912Tìm trong danh mục</div>';
5913                                    html += '<div class="danhsach">';
5914                                    res.ListCategory.forEach(function (c, cidx) {
5915                                        html += '<a href="' + c.AliasVN + '" class="sl-gregray100 s13 cl-gregray800 regular400">' + c.CategoryNameVN + '</a>';
5916                                    });
5917                                    html += '</div>';
5918                                    html += '</div>';
5919                                }
5920                                if (lib3p_helper.utility.hasListValue(res.ListProduct)) {
5921                                    html += '<div class="sanpham">';
5922                                    html += '<div class="tieude s14 cl-dakgreen800 sibold600">Sản phẩm có liên quan</div>';
5923                                    html += '<div class="danhsach">';
5924                                    res.ListProduct.forEach(function (c, cidx) {
5925                                        html += '<div class="product-item">';
5926                                        html += '<div class="img"><a class="gtm-search-product" data-device="mobile" data-name="' + key + '" href="' + c.Alias + '"><img src="' + c.ImageThumb + '" alt="' + c.ProductName + '" loading="lazy" /></a></div>';
5927
5928                                        html += '<div class="info">';
5929                                        if (c.StatusID == 20) {
5930                                            if (c.Price != c.PriceBase) {
5931                                                html += '<div class="price"><a class="gtm-search-product sale s14 cl-gregray900 regular400" data-device="mobile" data-name="' + key + '" href="' + c.Alias + '">' + lib3p_helper.utility.formatMoney(c.PriceBase) + '</a><a href="' + c.Alias + '" class="s14 cl-red400 regular400">' + lib3p_helper.utility.formatMoney(c.Price) + '</a></div>';
5932                                            }
5933                                            else {
5934                                                html += '<div class="price"><a class="gtm-search-product s14 cl-gregray900 regular400" data-device="mobile" data-name="' + key + '" href="' + c.Alias + '">' + lib3p_helper.utility.formatMoney(c.Price) + '</a></div>';
5935                                            }
5936                                        }
5937                                        else {
5938                                            html += '<div class="price">&nbsp;</div>';
5939                                        }
5940                                        html += '<div class="name"><a class="gtm-search-product s14 cl-gregray900 regular400" data-device="mobile" data-name="' + key + '" href="' + c.Alias + '">' + c.ProductName + '</a></div>';
5941                                        html += '</div>';
5942                                        //html += `<div class="product-tag">${c.IsBestPrice ? '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_gia_tot.svg"/>' : c.IsNew ? '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon_08.svg"/>' : c.Is29K ? '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_dong_gia.svg"/>' : ''}</div>`
5943                                        html += '<div class="product-tag">';
5944                                        if (c.IsBestSeller == true) {
5945                                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_ban_chay.svg" alt="hachihachi" loading="lazy" />';
5946                                        }
5947                                        else if (c.IsBestPrice == true) {
5948                                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_gia_tot.svg" alt="hachihachi" loading="lazy" />';
5949                                        }
5950                                        else if (c.IsNew == true) {
5951                                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon_08.svg" alt="hachihachi" loading="lazy" />';
5952                                        }
5953                                        else if (c.Is29K == true) {
5954                                            html += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_dong_gia.svg" alt="hachihachi" loading="lazy" />';
5955                                        }
5956                                        html += '</div>';
5957                                        html += '</div>';
5958                                    });
5959                                    html += '</div>';
5960                                    html += '</div>';
5961                                }
5962                                html += '<div class="xemtatca"><a class="s14 cl-dakgreen800 sibold600" href="' + link + '">Xem tất cả "' + key + '"</a></div>';
5963                                //jQuery('.page-header .search-input .headerSearchSuggest .find').html(html);
5964                                jQuery('.mobile-header .search-input .headerSearchSuggest .find').html(html);
5965                            }
5966                        }, function (err) {
5967                            lib3p.log(err);
5968                        });
5969                    }
5970                }, 200);
5971            }
5972        },
5973        onTimKiem_ClearInput: function (el) {
5974            var query = jQuery(el).parent().find('input[type="text"]');
5975            if (query != null && query.length > 0) {
5976                query.val('');
5977            }
5978            if (jQuery(el).hasClass('show')) {
5979                jQuery(el).removeClass('show');
5980            }
5981        },
5982        GMC_AddCart: function (Barcode, ProductName, UnitPrice) {
5983            try {
5984                // --- PHẦN 1: GOOGLE ANALYTICS 4 (add_to_cart) ---
5985                window.dataLayer = window.dataLayer || [];
5986                window.dataLayer.push({ 'ecommerce': null });
5987                window.dataLayer.push({
5988                    'event': 'add_to_cart',
5989                    'page_type': window.pars3p.page_type,
5990                    'ecommerce': {
5991                        'currency': 'VND',
5992                        'value': UnitPrice,
5993                        'items': [
5994                            {
5995                                'item_id': Barcode,
5996                                'item_name': ProductName,
5997                                'price': UnitPrice,
5998                                'quantity': 1
5999                            }
6000                        ]
6001                    }
6002                });
6003
6004                // --- PHẦN 2: FACEBOOK PIXEL (AddToCart) ---
6005                if (typeof fbq === 'function') {
6006                    fbq('track', 'AddToCart', {
6007                        content_name: ProductName,
6008                        content_ids: [Barcode],
6009                        content_type: 'product',
6010                        value: UnitPrice,
6011                        currency: 'VND'
6012                    });
6013                }
6014            } catch (e) {
6015                console.error("GMC_AddCart error:", e);
6016            }
6017        },
6018        GMC_RemoveCart: function (Barcode, ProductName, UnitPrice, Quantity) {
6019            try {
6020                if (window.dataLayer && window.dataLayer.push) {
6021                    window.dataLayer.push({ 'ecommerce': null });
6022                    window.dataLayer.push({
6023                        'event': 'remove_from_cart',
6024                        'page_type': window.pars3p.page_type,
6025                        'ecommerce': {
6026                            'currency': 'VND',
6027                            'value': UnitPrice,
6028                            'items': [
6029                                {
6030                                    'item_id': Barcode,
6031                                    'item_name': ProductName,
6032                                    'price': UnitPrice,
6033                                    'quantity': Quantity
6034                                }
6035                            ]
6036                        }
6037                    });
6038                }
6039            } catch (e) {
6040                console.error("GMC_RemoveCart error:", e);
6041            }
6042        },
6043        GMC_ViewCart: function () {
6044            try {
6045                if (window.pars3p && lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
6046                    var ids = window.pars3p.cart.CartDetails.map(function (o) { return o.ProductID; });
6047                    lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: ids }, function (res) {
6048                        if (lib3p_helper.utility.hasListValue(res)) {
6049                            var items = [];
6050                            var Payment = 0;
6051                            if (window.pars3p.cart.Payment > 0) {
6052                                Payment = window.pars3p.cart.Payment;
6053                            }                                
6054                            window.pars3p.cart.CartDetails.forEach(function (c, index) {
6055                                var find = res.find(function(d) { return d.Code == c.ProductID; });
6056                                if(lib3p_helper.utility.hasValue(find)) {
6057                                    items.push({
6058                                        'item_id': c.Barcode,
6059                                        'item_name': c.ProductName,
6060                                        'price': c.BasePrice,
6061                                        'discount': c.BasePrice - c.UnitPrice,
6062                                        'index': index + 1,
6063                                        'quantity': c.OrderQuantity,
6064                                        'item_brand': find.BrandName,
6065                                        'item_variant': find.TechnicalSpec,
6066                                        'item_category': find.CategoryName,
6067                                    });
6068                                }                                    
6069                            });
6070                            // 1. Khởi tạo dataLayer an toàn (Thay thế cho if (window.dataLayer...))
6071                            window.dataLayer = window.dataLayer || [];
6072                            // 2. Xóa dữ liệu ecommerce cũ
6073                            window.dataLayer.push({ 'ecommerce': null });
6074                            // 3. Đẩy sự kiện lên GTM
6075                            window.pars3p.page_type = 'cart';
6076                            window.dataLayer.push({
6077                                'event': 'view_cart',
6078                                'page_type': window.pars3p.page_type,
6079                                'ecommerce': {
6080                                    'currency': 'VND',
6081                                    'value': Payment,
6082                                    'items': items
6083                                }
6084                            });
6085                        }
6086                    }, function (err) {
6087                        console.error("GMC_ShipCart error:", err);
6088                    });
6089                }
6090            } catch (e) {
6091                console.error("GMC_ViewCart error:", e);
6092            }
6093        },
6094        GMC_BeginCart: function () {
6095            setTimeout(function () {
6096                try {
6097                    if (window.pars3p && lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
6098                        var selectedItems = window.pars3p.cart.CartDetails.filter(function (c) {
6099                            return c.IsChoose == true;
6100                        });
6101                        if(lib3p_helper.utility.hasListValue(selectedItems)) {
6102                            var ids = selectedItems.map(function (o) { return o.ProductID; });
6103                            lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: ids }, function (res) {
6104                                if (lib3p_helper.utility.hasListValue(res)) {
6105                                    var items = [];
6106                                    var Payment = 0;
6107                                    if (window.pars3p.cart.Payment > 0) {
6108                                        Payment = window.pars3p.cart.Payment;
6109                                    }                                
6110                                    selectedItems.forEach(function (c, index) {
6111                                        var find = res.find(function(d) { return d.Code == c.ProductID; });
6112                                        if(lib3p_helper.utility.hasValue(find)) {
6113                                            items.push({
6114                                                'item_id': c.Barcode,
6115                                                'item_name': c.ProductName,
6116                                                'price': c.BasePrice,
6117                                                'discount': c.BasePrice - c.UnitPrice,
6118                                                'index': index + 1,
6119                                                'quantity': c.OrderQuantity,
6120                                                'item_brand': find.BrandName,
6121                                                'item_variant': find.TechnicalSpec,
6122                                                'item_category': find.CategoryName,
6123                                            });
6124                                        }                                    
6125                                    });
6126                                    // 1. Khởi tạo dataLayer an toàn (Thay thế cho if (window.dataLayer...))
6127                                    window.dataLayer = window.dataLayer || [];
6128                                    // 2. Xóa dữ liệu ecommerce cũ
6129                                    window.dataLayer.push({ 'ecommerce': null });
6130                                    // 3. Đẩy sự kiện lên GTM
6131                                    window.pars3p.page_type = 'checkout';
6132                                    window.dataLayer.push({
6133                                        'event': 'begin_checkout',
6134                                        'page_type': window.pars3p.page_type,
6135                                        'ecommerce': {
6136                                            'currency': 'VND',
6137                                            'value': Payment,
6138                                            'items': items
6139                                        }
6140                                    });
6141
6142                                    if (typeof fbq === 'function') {
6143                                        fbq('track', 'InitiateCheckout', {
6144                                            content_ids: items.map(function (o) { return o.item_id; }),
6145                                            content_type: 'product',
6146                                            value: window.pars3p.cart.TotalAmount,
6147                                            currency: 'VND'
6148                                        });
6149                                    }
6150                                }
6151                            }, function (err) {
6152                                console.error("GMC_ShipCart error:", err);
6153                            });
6154                        }                    
6155                    }
6156                } catch (e) {
6157                    console.error("GMC_BeginCart error:", e);
6158                }
6159
6160                lib3p.logInfo('GMC_BeginCart');
6161            }, 1);
6162        },
6163        GMC_ShipCart: function () {
6164            try {
6165                if (window.pars3p && lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
6166                    var selectedItems = window.pars3p.cart.CartDetails.filter(function (c) {
6167                        return c.IsChoose == true;
6168                    });
6169                    if(lib3p_helper.utility.hasListValue(selectedItems)) {
6170                        var ids = selectedItems.map(function (o) { return o.ProductID; });
6171                        lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: ids }, function (res) {
6172                            if (lib3p_helper.utility.hasListValue(res)) {
6173                                var items = [];
6174                                var Payment = 0;
6175                                if (window.pars3p.cart.Payment > 0) {
6176                                    Payment = window.pars3p.cart.Payment;
6177                                }                                
6178                                selectedItems.forEach(function (c, index) {
6179                                    var find = res.find(function(d) { return d.Code == c.ProductID; });
6180                                    if(lib3p_helper.utility.hasValue(find)) {
6181                                        items.push({
6182                                            'item_id': c.Barcode,
6183                                            'item_name': c.ProductName,
6184                                            'price': c.BasePrice,
6185                                            'discount': c.BasePrice - c.UnitPrice,
6186                                            'index': index + 1,
6187                                            'quantity': c.OrderQuantity,
6188                                            'item_brand': find.BrandName,
6189                                            'item_variant': find.TechnicalSpec,
6190                                            'item_category': find.CategoryName,
6191                                        });
6192                                    }                                    
6193                                });
6194                                // 1. Khởi tạo dataLayer an toàn (Thay thế cho if (window.dataLayer...))
6195                                window.dataLayer = window.dataLayer || [];
6196                                // 2. Xóa dữ liệu ecommerce cũ
6197                                window.dataLayer.push({ 'ecommerce': null });
6198                                // 3. Đẩy sự kiện lên GTM
6199                                window.pars3p.page_type = 'shipping';
6200                                window.dataLayer.push({
6201                                    'event': 'add_shipping_info',
6202                                    'page_type': window.pars3p.page_type,
6203                                    'ecommerce': {
6204                                        'currency': 'VND',
6205                                        'value': Payment,
6206                                        'items': items
6207                                    }
6208                                });
6209
6210                            }
6211                        }, function (err) {
6212                            console.error("GMC_ShipCart error:", err);
6213                        });
6214                    }                    
6215                }
6216            } catch (e) {
6217                console.error("GMC_ShipCart error:", e);
6218            }
6219        },
6220        GMC_PaymentCart: function () {
6221            setTimeout(function () {
6222                try {
6223                    if (window.pars3p && lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {                    
6224                        var selectedItems = window.pars3p.cart.CartDetails.filter(function (c) {
6225                            return c.IsChoose == true;
6226                        });
6227                        if(lib3p_helper.utility.hasListValue(selectedItems)) {
6228                            var ids = selectedItems.map(function (o) { return o.ProductID; });
6229                            lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: ids }, function (res) {
6230                                if (lib3p_helper.utility.hasListValue(res)) {
6231                                    var items = [];
6232                                    var Payment = 0;
6233                                    if (window.pars3p.cart.Payment > 0) {
6234                                        Payment = window.pars3p.cart.Payment;
6235                                    }                                
6236                                    selectedItems.forEach(function (c, index) {
6237                                        var find = res.find(function(d) { return d.Code == c.ProductID; });
6238                                        if(lib3p_helper.utility.hasValue(find)) {
6239                                            items.push({
6240                                                'item_id': c.Barcode,
6241                                                'item_name': c.ProductName,
6242                                                'price': c.BasePrice,
6243                                                'discount': c.BasePrice - c.UnitPrice,
6244                                                'index': index + 1,
6245                                                'quantity': c.OrderQuantity,
6246                                                'item_brand': find.BrandName,
6247                                                'item_variant': find.TechnicalSpec,
6248                                                'item_category': find.CategoryName,
6249                                            });
6250                                        }                                    
6251                                    });
6252                                    // 1. Khởi tạo dataLayer an toàn (Thay thế cho if (window.dataLayer...))
6253                                    window.dataLayer = window.dataLayer || [];
6254                                    // 2. Xóa dữ liệu ecommerce cũ
6255                                    window.dataLayer.push({ 'ecommerce': null });
6256                                    // 3. Đẩy sự kiện lên GTM
6257                                    window.pars3p.page_type = 'payment';
6258                                    window.dataLayer.push({
6259                                        'event': 'add_payment_info',
6260                                        'page_type': window.pars3p.page_type,
6261                                        'ecommerce': {
6262                                            'currency': 'VND',
6263                                            'value': Payment,
6264                                            'items': items
6265                                        }
6266                                    });
6267
6268                                }
6269                            }, function (err) {
6270                                console.error("GMC_PaymentCart error:", err);
6271                            });
6272                        }
6273                    }
6274                } catch (e) {
6275                    console.error("GMC_PaymentCart error:", e);
6276                }
6277
6278                lib3p.logInfo('GMC_PaymentCart');
6279            }, 1);  
6280        },
6281        GMC_ViewList: function() {
6282            setTimeout(function () {
6283                var query = jQuery('.gmc-view-list');
6284                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6285                    var listids = jQuery(query[0]).data('listids');
6286                    var h1 = jQuery(query[0]).data('h1');
6287                    if(lib3p_helper.utility.hasValueString(listids)) {
6288                        var lst = listids.split(",").map(function(o) { return parseInt(o); });
6289                        lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: lst }, function (res) {
6290                            if (lib3p_helper.utility.hasListValue(res)) {
6291                                var items = [];
6292                                res.forEach(function (c, index) {
6293                                    items.push({
6294                                        'item_id': c.Barcode,
6295                                        'item_name': c.ProductName,
6296                                        'price': c.PriceBase,
6297                                        'index': index + 1,
6298                                        'quantity': 1,
6299                                        'item_brand': c.BrandName,
6300                                        'item_variant': c.TechnicalSpec,
6301                                        'item_category': c.CategoryName,
6302                                        'item_list_id': 'related_products',
6303                                        'item_list_name': 'Related products'
6304                                    });
6305                                });
6306                                // 1. Khởi tạo dataLayer an toàn (Thay thế cho if (window.dataLayer...))
6307                                window.dataLayer = window.dataLayer || [];
6308                                // 2. Xóa dữ liệu ecommerce cũ
6309                                window.dataLayer.push({ 'ecommerce': null });
6310                                // 3. Đẩy sự kiện lên GTM
6311                                window.pars3p.page_type = 'category';
6312                                window.dataLayer.push({
6313                                    'event': 'view_item_list', // Lấy linh hoạt tên event từ Backend
6314                                    'page_type': window.pars3p.page_type,
6315                                    'ecommerce': {
6316                                        'item_list_id': 'related_products',
6317                                        'item_list_name': 'Related products',
6318                                        'items': items
6319                                    }
6320                                });
6321                            }
6322                        }, function (err) {
6323                            console.error("GMC_ViewList error:", err);
6324                        });
6325                    }                
6326                }
6327                lib3p.logInfo('GMC_ViewList');
6328            }, 1);            
6329        },
6330        GMC_ViewItem: function() {
6331            setTimeout(function () {
6332                var query = jQuery('.gmc-view-item');
6333                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6334                    var id = jQuery(query[0]).data('id');
6335                    var h1 = jQuery(query[0]).data('h1');
6336                    if(lib3p_helper.utility.hasValueString(id) && parseInt(id) > 0) {
6337                        lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: [parseInt(id)] }, function (res) {
6338                            if (lib3p_helper.utility.hasListValue(res)) {
6339                                var items = [];
6340                                var price = res[0].PriceBase;
6341                                items.push({
6342                                    'item_id': res[0].Barcode,
6343                                    'item_name': res[0].ProductName,
6344                                    'price': price,
6345                                    'quantity': 1,
6346                                    'item_brand': res[0].BrandName,
6347                                    'item_variant': res[0].TechnicalSpec,
6348                                    'item_category': res[0].CategoryName,
6349                                    'google_business_vertical': 'retail',
6350                                });
6351                                // --- PHẦN 1: GOOGLE ANALYTICS 4 (view_item) ---
6352                                // 1. Khởi tạo dataLayer an toàn
6353                                window.dataLayer = window.dataLayer || [];                            
6354                                // 2. Xóa dữ liệu ecommerce cũ để tránh cộng dồn/trùng lặp
6355                                window.dataLayer.push({ 'ecommerce': null });
6356                                // 3. Đẩy sự kiện view_item
6357                                window.pars3p.page_type = 'product';
6358                                window.dataLayer.push({
6359                                    'event': 'view_item',
6360                                    'page_type': window.pars3p.page_type,
6361                                    'ecommerce': {
6362                                        'currency': 'VND',
6363                                        'value': price,
6364                                        'items': items
6365                                    }
6366                                });
6367                                // --- PHẦN 2: FACEBOOK PIXEL (ViewContent) ---
6368                                // Kiểm tra an toàn xem hàm fbq đã tồn tại và là một function chưa
6369                                if (typeof fbq === 'function') {
6370                                    fbq('track', 'ViewContent', {
6371                                        // Cần mã hóa chuỗi tương tự như GTM
6372                                        content_name: res[0].ProductName,
6373                                        content_ids: [res[0].Barcode],
6374                                        content_type: 'product',
6375                                        value: price,
6376                                        currency: 'VND'
6377                                    });
6378                                }
6379                            }
6380                        }, function (err) {
6381                            console.error("GMC_ViewList error:", err);
6382                        });
6383                    }
6384                }
6385                lib3p.logInfo('GMC_ViewItem');
6386            }, 1);
6387        },
6388        GMC_Purchase: function(cart) {
6389            try {
6390                if (window.pars3p && lib3p_helper.utility.hasValue(cart) && lib3p_helper.utility.hasListValue(cart.CartDetails)) {
6391                    var items = [];
6392                    cart.CartDetails.forEach(function (c, index) {
6393                        items.push({
6394                            'item_id': c.Barcode,
6395                            'item_name': c.ProductName,
6396                            'price': c.UnitPrice,
6397                            'discount': c.BasePrice - c.UnitPrice,
6398                            'quantity': c.OrderQuantity,
6399                            'item_brand': c.BrandName,
6400                            'item_variant': c.TechnicalSpec,
6401                            'item_category': c.CategoryName,                            
6402                            'google_business_vertical': 'retail',
6403                            'index': index + 1,
6404                            
6405                        });
6406                    });                    
6407                    var txnId = cart.OrderNo;
6408                    // Cơ chế chống duplicate tracking (chống F5) - Rất tốt!
6409                    var firedKey = 'purchase_fired_' + txnId;
6410                    if (sessionStorage.getItem(firedKey)) return;
6411                    sessionStorage.setItem(firedKey, '1');
6412                    
6413                    // 1. Khởi tạo dataLayer an toàn
6414                    window.dataLayer = window.dataLayer || [];
6415                    window.dataLayer.push({ 'ecommerce': null }); // Xóa cache
6416                    // 2. Đẩy sự kiện Purchase lên GA4
6417                    window.pars3p.page_type = 'purchase';
6418                    window.dataLayer.push({
6419                        'event': 'purchase',
6420                        'page_type': window.pars3p.page_type,
6421                        'ecommerce': {
6422                            'transaction_id': txnId,
6423                            'currency': 'VND',
6424                            'value': cart.Payment, // Giá trị thực tế khách thanh toán
6425                            'tax': 0,
6426                            'shipping': cart.ShippingFee,
6427                            'items': items
6428                        }
6429                    });
6430                    // 3. Đẩy sự kiện Purchase lên Facebook Pixel
6431                    if (typeof fbq === 'function') {
6432                        fbq('track', 'Purchase', {
6433                            content_ids: items.map(function (o) { return o.item_id; }),
6434                            content_type: 'product',
6435                            value: cart.TotalAmount, // Lưu ý: FB Pixel bạn đang dùng TotalAmount, hãy đảm bảo nó khớp với chiến lược đo lường doanh thu của bạn (Payment vs TotalAmount)
6436                            currency: 'VND'
6437                        });
6438                    }
6439                }
6440            } catch (e) {
6441                console.error("GMC_Purchase error:", e);
6442            }
6443        },
6444        GMC_Home: function() {
6445            try {
6446                // 1. Khởi tạo dataLayer an toàn
6447                window.dataLayer = window.dataLayer || [];
6448                // 2. Đẩy sự kiện Purchase lên GA4
6449                window.pars3p.page_type = 'home';
6450                window.dataLayer.push({ 'page_type': window.pars3p.page_type });
6451            } catch (e) {
6452                console.error("GMC_Home error:", e);
6453            }
6454        },
6455        onProductAddCart_Click: function (el) {
6456            if (lib3p_helper.utility.hasValue(el) && window.pars3p.runningCart != true) {
6457                window.pars3p.runningCart = true;
6458
6459                var data = jQuery(el).data();
6460                var item = {
6461                    Code: -1,
6462                    IsChoose: true,
6463                    ProductID: parseInt(data.code, 10),
6464                    ProductName: data.name,
6465                    ImageSetting: data.img,
6466                    UnitPrice: data.price,
6467                    PriceBase: data.pricebase,
6468                    IsHachi24: data.hachi24,
6469                    OrderQuantity: 1,
6470                    CartID: -1,
6471                    LastModifiedTime: new Date()
6472                };
6473                var flag = true;
6474                if (data.Quantity >= 0) {
6475                    if (data.Quantity == 0) {
6476                        flag = false;
6477                    }
6478                }
6479                if (flag == true) {
6480                    window.pars3p.cart.LastModifiedTime = new Date();
6481                    if (window.pars3p.cart.Code > 0) {
6482                        item.CartID = window.pars3p.cart.Code;
6483                    }
6484                    //lấy item trong giỏ hàng
6485                    if (window.pars3p.cart.CartDetails.length == 0) {
6486                        window.pars3p.cart.CartDetails.push(item);
6487                    }
6488                    else {
6489                        var temp = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == item.ProductID; });
6490                        if (lib3p_helper.utility.hasValue(temp)) {
6491                            temp.UnitPrice = item.UnitPrice;
6492                            temp.PriceBase = item.PriceBase;
6493                            temp.LastModifiedTime = new Date();
6494                            item = temp;
6495                            item.OrderQuantity++;
6496                        }
6497                        else {
6498                            window.pars3p.cart.CartDetails.push(item);
6499                        }
6500                    }
6501
6502                    if (window.pars3p.auth.isLogin == true) {
6503                        lib3p.common_LoadingShow();
6504                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductAdd, { detail: item }, function (res) {
6505                            lib3p.common_LoadingHide();
6506                            window.pars3p.runningCart = false;
6507                            if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
6508                                lib3p.header.GMC_AddCart(data.barcode, data.name, data.price > 0 ? data.price : data.pricebase);
6509
6510                                if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
6511                                    if (res.ObjectReturn.CartID > 0) {
6512                                        if (window.pars3p.cart.Code != res.ObjectReturn.CartID) {
6513                                            window.pars3p.cart.Code = res.ObjectReturn.CartID;
6514                                        }
6515                                        item.OrderQuantity = res.ObjectReturn.OrderQuantity;
6516                                        item.UnitPrice = res.ObjectReturn.UnitPrice;
6517                                        lib3p.pageCart.Cache_Check();
6518                                        lib3p.common_cartSet(window.pars3p.cart);
6519                                        lib3p.header.ProductAddCart_Show(item);
6520                                        lib3p.pageCart.Cart_LoadHeader();
6521                                        if (!(item.OrderQuantity > 0)) {
6522                                            jQuery(el).hide();
6523                                        }
6524                                    }
6525                                }
6526                            }
6527                        }, function (err) {
6528                            lib3p.common_LoadingHide();
6529                            window.pars3p.runningCart = false;
6530                        });
6531                    }
6532                    else {
6533                        lib3p.common_LoadingShow();
6534                        lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: [item.ProductID] }, function (res) {
6535                            lib3p.common_LoadingHide();
6536                            window.pars3p.runningCart = false;
6537                            if (lib3p_helper.utility.hasListValue(res)) {
6538                                lib3p.header.GMC_AddCart(data.barcode, data.name, data.price > 0 ? data.price : data.pricebase);
6539                                if (!(res[0].Quantity > 0 && res[0].QuantityWithOrder > 0)) {
6540                                    item.OrderQuantity = 0;
6541                                }
6542                                else if (res[0].QuantityWithOrder < item.OrderQuantity) {
6543                                    item.OrderQuantity = res[0].QuantityWithOrder;
6544                                }
6545                                var index = window.pars3p.cart.CartDetails.findIndex(function (c) { return c.ProductID == item.ProductID; });
6546                                if (index >= 0 && item.OrderQuantity == 0) {
6547                                    window.pars3p.cart.CartDetails.splice(index, 1);
6548                                }
6549                                lib3p.pageCart.Cache_Check();
6550                                lib3p.common_cartSet(window.pars3p.cart);
6551                                lib3p.header.ProductAddCart_Show(item);
6552                                lib3p.pageCart.Cart_LoadHeader();
6553                                if (!(item.OrderQuantity > 0)) {
6554                                    jQuery(el).hide();
6555                                }
6556                            }
6557                        }, function (err) {
6558                            lib3p.common_LoadingHide();
6559                            window.pars3p.runningCart = false;
6560                        });
6561                    }
6562                }
6563                else {
6564                    var query = jQuery(el).closest('.product-item');
6565                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6566                        query = jQuery(query[0]).find('a');
6567                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6568                            var link = jQuery(query[0]).attr('href');
6569                            window.location.href = link;
6570                        }
6571                    }
6572                }
6573            }
6574        },
6575        onProductMuaNgay_Click: function (el) {
6576            if (lib3p_helper.utility.hasValue(el) && window.pars3p.runningCart != true) {
6577                window.pars3p.runningCart = true;
6578
6579                var data = jQuery(el).data();
6580                var item = {
6581                    Code: -1,
6582                    IsChoose: true,
6583                    ProductID: parseInt(data.code, 10),
6584                    ProductName: data.name,
6585                    ImageSetting: data.img,
6586                    UnitPrice: data.price,
6587                    PriceBase: data.pricebase,
6588                    IsHachi24: data.hachi24,
6589                    OrderQuantity: 1,
6590                    CartID: -1,
6591                    LastModifiedTime: new Date()
6592                };
6593                if (window.pars3p.cart.Code > 0) {
6594                    item.CartID = window.pars3p.cart.Code;
6595                }
6596                //lấy item trong giỏ hàng
6597                window.pars3p.cart.LastModifiedTime = new Date();
6598                if (window.pars3p.cart.CartDetails.length == 0) {
6599                    window.pars3p.cart.CartDetails.push(item);
6600                }
6601                else {
6602                    var temp = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == item.ProductID; });
6603                    if (lib3p_helper.utility.hasValue(temp)) {
6604                        temp.LastModifiedTime = new Date();
6605                        item = temp;
6606                        item.OrderQuantity++;
6607                    }
6608                    else {
6609                        window.pars3p.cart.CartDetails.push(item);
6610                    }
6611                }
6612
6613                if (window.pars3p.auth.isLogin == true) {
6614                    lib3p.common_LoadingShow();
6615                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductAdd, { detail: item }, function (res) {
6616                        lib3p.common_LoadingHide();
6617                        window.pars3p.runningCart = false;
6618                        if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
6619                            lib3p.header.GMC_AddCart(data.barcode, data.name, data.price > 0 ? data.price : data.pricebase);
6620
6621                            if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
6622                                if (res.ObjectReturn.CartID > 0) {
6623                                    if (window.pars3p.cart.Code != res.ObjectReturn.CartID) {
6624                                        window.pars3p.cart.Code = res.ObjectReturn.CartID;
6625                                    }
6626                                    item.OrderQuantity = res.ObjectReturn.OrderQuantity;
6627                                    lib3p.pageCart.Cache_Check();
6628                                    lib3p.common_cartSet(window.pars3p.cart);
6629                                    lib3p.header.ProductAddCart_Show(item);
6630                                    lib3p.pageCart.Cart_LoadHeader();
6631                                    if (item.OrderQuantity) {
6632                                        window.location.href = window.pars3p.urlCart;
6633                                    }
6634                                }
6635                            }
6636                        }
6637
6638
6639                    }, function (err) {
6640                        lib3p.common_LoadingHide();
6641                        window.pars3p.runningCart = false;
6642                    });
6643                }
6644                else {
6645                    lib3p.common_LoadingShow();
6646                    lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: [item.ProductID] }, function (res) {
6647                        lib3p.common_LoadingHide();
6648                        window.pars3p.runningCart = false;
6649                        if (lib3p_helper.utility.hasListValue(res)) {
6650                            lib3p.header.GMC_AddCart(data.barcode, data.name, data.price > 0 ? data.price : data.pricebase);
6651                            if (!(res[0].Quantity > 0 && res[0].QuantityWithOrder > 0)) {
6652                                item.OrderQuantity = 0;
6653                            }
6654                            else if (res[0].QuantityWithOrder < item.OrderQuantity) {
6655                                item.OrderQuantity = res[0].QuantityWithOrder;
6656                            }
6657                            var index = window.pars3p.cart.CartDetails.findIndex(function (c) { return c.ProductID == item.ProductID; });
6658                            if (index >= 0 && item.OrderQuantity == 0) {
6659                                window.pars3p.cart.CartDetails.splice(index, 1);
6660                            }
6661                            lib3p.pageCart.Cache_Check();
6662                            lib3p.common_cartSet(window.pars3p.cart);
6663                            lib3p.header.ProductAddCart_Show(item);
6664                            lib3p.pageCart.Cart_LoadHeader();
6665                            if (item.OrderQuantity > 0) {
6666                                window.location.href = window.pars3p.urlCart;
6667                            }
6668                        }
6669                    }, function (err) {
6670                        lib3p.common_LoadingHide();
6671                        window.pars3p.runningCart = false;
6672                    });
6673                }
6674            }
6675        },
6676        onPopupLikeConfirm_Show: function () {
6677            var query = jQuery('.popup-header-like-confirm .hachi-modal');
6678            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6679                if (jQuery(query[0]).hasClass("d-none")) {
6680                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
6681                }
6682            }
6683            query = jQuery('.popup-header-mobile-like-confirm .hachi-modal');
6684            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6685                if (jQuery(query[0]).hasClass("d-none")) {
6686                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
6687                }
6688            }
6689        },
6690        onPopupLikeConfirm_Close: function () {
6691            var query = jQuery('.popup-header-like-confirm .hachi-modal');
6692            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6693                if (jQuery(query[0]).hasClass("d-block")) {
6694                    jQuery(query[0]).
6694removeClass("d-block").addClass("d-none");
6695                }
6696            }
6697            query = jQuery('.popup-header-mobile-like-confirm .hachi-modal');
6698            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6699                if (jQuery(query[0]).hasClass("d-block")) {
6700                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
6701                }
6702            }
6703        },
6704        Notify_Show: function (txt) {
6705            var query = jQuery('.popup-header-notify .hachi-modal');
6706            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6707                if (jQuery(query[0]).hasClass("d-none")) {
6708                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
6709
6710                    setTimeout(function () { jQuery(query[0]).removeClass("d-block").addClass("d-none"); }, 2000);
6711                }
6712            }
6713            jQuery('.popup-header-notify .hachi-modal .modal-body .text').html(txt);
6714        },
6715
6716        //Cart_ShowTooltip: function(data) {
6717        ProductAddCart_Show: function(data) {
6718            //D:\_Working\3ps\HachiWeb\Hachiweb\Hachiweb\Sources\user\src\components\popup-add-product-success\index.tsx
6719            var query = jQuery(".popup-header-product-add-cart .hachi-modal");
6720            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6721                if (jQuery(query[0]).hasClass("d-none")) {
6722                    var queryImg = jQuery(query[0]).find("img.ImageSetting");
6723                    if (lib3p_helper.utility.hasValue(queryImg) && queryImg.length > 0) {
6724                        jQuery(queryImg[0]).attr("src", data.ImageSetting);
6725                    }
6726                    var queryText = jQuery(query[0]).find("div.ProductName");
6727                    if (lib3p_helper.utility.hasValue(queryText) && queryText.length > 0) {
6728                        jQuery(queryText[0]).html(data.ProductName);
6729                    }
6730                    queryText = jQuery(query[0]).find("span.Quantity");
6731                    if (lib3p_helper.utility.hasValue(queryText) && queryText.length > 0) {
6732                        jQuery(queryText[0]).html(data.OrderQuantity);
6733                    }
6734                    queryText = jQuery(query[0]).find("div.Gia");
6735                    if (lib3p_helper.utility.hasValue(queryText) && queryText.length > 0 && data.UnitPrice > 0) {
6736                        if (data.PriceBase > 0 && data.UnitPrice != data.PriceBase) {
6737                            jQuery(queryText[0]).html('<span class="s14 cl-red400 sibold600">' + lib3p_helper.utility.formatMoney(data.UnitPrice) + 'đ</span><span class="sale s13 cl-gregray550 regular400">' + lib3p_helper.utility.formatMoney(data.PriceBase) + 'đ</span>');
6738                        }
6739                        else {
6740                            jQuery(queryText[0]).html('<span class="s14 cl-dakgreen800 sibold600">' + lib3p_helper.utility.formatMoney(data.UnitPrice) + 'đ</span>');
6741                        }
6742                    }
6743                    if (data.OrderQuantity > 0) {
6744                        jQuery(".popup-header-product-add-cart .hachi-modal .cart-text .pass").show();
6745                        jQuery(".popup-header-product-add-cart .hachi-modal .cart-text .fail").hide();
6746                    }
6747                    else {
6748                        jQuery(".popup-header-product-add-cart .hachi-modal .cart-text .pass").hide();
6749                        jQuery(".popup-header-product-add-cart .hachi-modal .cart-text .fail").show();
6750                    }
6751
6752                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
6753                    setTimeout(function () {
6754                        lib3p.header.ProductAddCart_Hide();
6755                    }, 1500);
6756                }
6757            }
6758        },
6759        ProductAddCart_Hide: function () {
6760            var query = jQuery(".popup-header-product-add-cart .hachi-modal");
6761            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6762                if (jQuery(query[0]).hasClass("d-block")) {
6763                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
6764                }
6765            }
6766        },
6767        MustLogin: function () {
6768            if (window.pars3p.auth.isLogin == true && lib3p_helper.utility.hasValueString(window.pars3p.auth.access_token)) {
6769                return true;
6770            }
6771            else {
6772                lib3p.common_urllastSet(window.location.href);
6773                window.location.href = window.pars3p.urlLogin;
6774                return false;
6775            }
6776        },
6777        UserManager_Load: function () {
6778            jQuery('.user-manage .HoTen').html(window.pars3p.auth.fullName);
6779            jQuery('.user-manage .MaKH').html(window.pars3p.auth.memberID);
6780        },
6781        onTaiKhoan_Login: function () {
6782            if (window.location.href.indexOf(window.pars3p.urlCartPayment) >= 0) {
6783                lib3p.common_urllastSet(window.pars3p.urlCart);
6784            }
6785            if (window.location.href.indexOf(window.pars3p.urlLogin) >= 0 || window.location.href.indexOf(window.pars3p.urlRegister) >= 0) {
6786                lib3p.common_urllastSet('/');
6787            }
6788            else if (window.location.href.indexOf('/cam-on?') >= 0) {
6789                lib3p.common_urllastSet('/');
6790            }
6791            else {
6792                lib3p.common_urllastSet(window.location.href);
6793            }
6794            window.location.href = window.pars3p.urlLogin;
6795        },
6796        onTaiKhoan_Register: function () {
6797            lib3p.common_urllastSet(window.location.href);
6798            window.location.href = window.pars3p.urlRegister;
6799        },
6800        onTaiKhoan_FB: function () {
6801            lib3p.common_urllastSet(window.location.href);
6802            window.location.href = window.pars3p.urlLogin;
6803        },
6804        onTaiKhoan_Copy: function () {
6805            if (lib3p_helper.utility.hasValueString(window.pars3p.BrowserID)) {
6806                navigator.clipboard.writeText(window.pars3p.BrowserID);
6807                alert('Đã copy mã');
6808            }
6809        },
6810        GMC_UserAdd: function (str) {
6811            lib3p_helper.utility.cache.set("user_id", str);
6812        },
6813        GMC_UserCheck: function () {
6814            setTimeout(function () {
6815                var str = lib3p_helper.utility.cache.get("user_id");
6816                if (lib3p_helper.utility.hasValueString(str)) {
6817                    if (str == '_empty_') {
6818                        if (window.dataLayer && window.dataLayer.push) {
6819                            window.dataLayer.push({ 'event': 'user_id_cleared', 'user_id': null });
6820                        }
6821                    }
6822                    else {
6823                        if (window.dataLayer && window.dataLayer.push) {
6824                            window.dataLayer.push({ 'event': 'user_id_loaded', 'user_id': str });
6825                        }
6826                    }
6827                    lib3p_helper.utility.cache.remove('user_id');
6828                }
6829                lib3p.logInfo('GMC_UserCheck');
6830            }, 1); 
6831        },
6832        onTaiKhoan_Logout: function () {
6833            lib3p.header.GMC_UserAdd('_empty_');
6834            lib3p.common_tokenSet('');
6835            lib3p.common_loginSet('');
6836            window.pars3p.auth = {
6837                isLogin: false,
6838                access_token: '',
6839                refresh_token: '',
6840                fullName: '',
6841                phoneNumber: '',
6842            };
6843            window.pars3p.cart.Code = -1;
6844            window.pars3p.cart.OrderNo = '';
6845            window.pars3p.cart.OrderBy = '';
6846            window.pars3p.cart.OrderPhone = '';
6847            window.pars3p.cart.OrderEmail = '';
6848            window.pars3p.cart.MembershipID = null;
6849            window.pars3p.cart.ShipmentID = null;
6850            window.pars3p.cart.DeliveryID = null;
6851            window.pars3p.cart.ReceivedBy = '';
6852            window.pars3p.cart.Cellphone = '';
6853            window.pars3p.cart.Province = null;
6854            window.pars3p.cart.District = null;
6855            window.pars3p.cart.Ward = null;
6856            window.pars3p.cart.Address = '';
6857            window.pars3p.cart.FullAddress = '';
6858            window.pars3p.cart.OrderPhoneOTP = '';
6859            window.pars3p.cart.IsAppliedHachi24 = false;
6860            window.pars3p.cart.IsHachi24 = false;
6861            window.pars3p.cart.TotalItemQuantity = 0;
6862            window.pars3p.cart.TotalItemQuantityChoose = 0;
6863            window.pars3p.cart.CartCoupon = [];
6864            window.pars3p.cart.CartCoupon = [];
6865            window.pars3p.cart.CartDetails = [];
6866            lib3p.common_cartSet(window.pars3p.cart);
6867
6868            if (window.location.href.indexOf('/cam-on?') >= 0) {
6869                window.location.href = '/';
6870            }
6871            else {
6872                window.location.reload();
6873            }   
6874        },
6875
6876        DangNhap_LayDonHang: function () {
6877            lib3p.common_AuthPostURL(window.pars3p.api.auth.All_GetTotalQuantity, {}, function (res) {
6878                if (lib3p_helper.utility.hasValue(res) && res.ObjectReturn >= 0) {
6879                    window.pars3p.cart.TotalItemQuantity = res.ObjectReturn;
6880                }
6881
6882                var last = lib3p.common_urllastGet();
6883                if (lib3p_helper.utility.hasValueString(last) && last.indexOf("/dang-nhap?type=33") == -1 && last.indexOf("/dang-ky?type=34") == -1) {
6884                    window.location.href = last;
6885                }
6886                else {
6887                    window.location.href = "/";
6888                }
6889            }, function (err) {
6890                debugger;
6891            });
6892        },
6893
6894        onOTPType_ShowV2: function (number, callbackOk, callbackCancel) {
6895            window.pars3p.otp.IsNew = lib3p.header.IsNew.NewV2;
6896            window.pars3p.otp.TypeOTP = lib3p.header.TypeOTP.Phone;
6897            window.pars3p.otp.PhoneNumber = number;
6898            window.pars3p.otp.CallBackOK = callbackOk;
6899            window.pars3p.otp.CallBackCancel = callbackCancel;
6900            window.pars3p.otp.Success = false;
6901
6902            if (window.pars3p.otp.SendTypeTime >= 0 && window.pars3p.otp.SendType > 0) {
6903                lib3p.header.onOTP_Show();
6904            }
6905            else {
6906                var str = window.pars3p.otp.PhoneNumber.substr(0, 3) + "****" + window.pars3p.otp.PhoneNumber.substr(-3);
6907                jQuery('.popup-header-otp-type .hachi-modal .dienthoai').html(str);
6908                var query = jQuery('.popup-header-otp-type .hachi-modal');
6909                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6910                    if (jQuery(query[0]).hasClass("d-none")) {
6911                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
6912                    }
6913                }
6914            }
6915        },
6916        onOTPType_ShowDelivery: function (number, callbackOk, callbackCancel) {
6917            window.pars3p.otp.IsNew = lib3p.header.IsNew.New;
6918            window.pars3p.otp.TypeOTP = lib3p.header.TypeOTP.Phone;
6919            window.pars3p.otp.PhoneNumber = number;
6920            window.pars3p.otp.CallBackOK = callbackOk;
6921            window.pars3p.otp.CallBackCancel = callbackCancel;
6922            window.pars3p.otp.Success = false;
6923
6924            if (window.pars3p.otp.SendTypeTime >= 0 && window.pars3p.otp.SendType > 0) {
6925                lib3p.header.onOTP_Show();
6926            }
6927            else {
6928                var str = window.pars3p.otp.PhoneNumber.substr(0, 3) + "****" + window.pars3p.otp.PhoneNumber.substr(-3);
6929                jQuery('.popup-header-otp-type .hachi-modal .dienthoai').html(str);
6930                var query = jQuery('.popup-header-otp-type .hachi-modal');
6931                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6932                    if (jQuery(query[0]).hasClass("d-none")) {
6933                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
6934                    }
6935                }
6936            }
6937        },
6938        onOTPType_Show: function (number, TypeOTP, callbackOk, callbackCancel) {
6939            window.pars3p.otp.TypeOTP = TypeOTP;
6940            window.pars3p.otp.PhoneNumber = number;
6941            window.pars3p.otp.CallBackOK = callbackOk;
6942            window.pars3p.otp.CallBackCancel = callbackCancel;
6943            window.pars3p.otp.Success = false;
6944
6945            if (window.pars3p.otp.SendTypeTime >= 0 && window.pars3p.otp.SendTypeTime > 0) {
6946                lib3p.header.onOTP_Show();
6947            }
6948            else {
6949                var str = window.pars3p.otp.PhoneNumber.substr(0, 3) + "****" + window.pars3p.otp.PhoneNumber.substr(-3);
6950                jQuery('.popup-header-otp-type .hachi-modal .dienthoai').html(str);
6951                var query = jQuery('.popup-header-otp-type .hachi-modal');
6952                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6953                    if (jQuery(query[0]).hasClass("d-none")) {
6954                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
6955                    }
6956                }
6957            }
6958        },
6959        onOTPType_Close: function () {
6960            var query = jQuery('.popup-header-otp-type .hachi-modal');
6961            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6962                if (jQuery(query[0]).hasClass("d-block")) {
6963                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
6964                }
6965            }
6966            if (window.pars3p.otp.Success != true) {
6967                if (window.pars3p.otp.CallBackCancel) window.pars3p.otp.CallBackCancel();
6968            }
6969            return false;
6970        },
6971        onOTPType_TypeClick: function (n) {
6972            window.pars3p.otp.SendType = n;
6973            window.pars3p.otp.SendTypeTime = lib3p_helper.utility.dateAddHour(new Date(), 1).getTime();
6974            lib3p.common_optTypeSet({ SendType: window.pars3p.otp.SendType, SendTypeTime: window.pars3p.otp.SendTypeTime });
6975
6976            var query = jQuery('.popup-header-otp-type .hachi-modal');
6977            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
6978                if (jQuery(query[0]).hasClass("d-block")) {
6979                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
6980                }
6981            }
6982            lib3p.header.onOTP_Show();
6983            return false;
6984        },
6985        onOTP_Show: function () {
6986            jQuery('.popup-header-otp div.otp-err').html('');
6987            var str = window.pars3p.otp.PhoneNumber.substr(0, 3) + "****" + window.pars3p.otp.PhoneNumber.substr(-3);
6988            jQuery('.popup-header-otp .hachi-modal .dienthoai').html(str);
6989            if (window.pars3p.otp.TypeOTP == lib3p.header.TypeOTP.Phone) {
6990                jQuery('.popup-header-otp .hachi-modal .show-acc').hide();
6991            }
6992            else if (window.pars3p.otp.TypeOTP == lib3p.header.TypeOTP.Account) {
6993                jQuery('.popup-header-otp .hachi-modal .show-phone').hide();
6994            }
6995            if (window.pars3p.otp.SendType == lib3p.header.SendType.SMS) {
6996                jQuery('.popup-header-otp .hachi-modal .SendType').html('SMS');
6997                jQuery('.popup-header-otp .hachi-modal .guilai.zalo').removeClass('active');
6998                jQuery('.popup-header-otp .hachi-modal .guilai.sms').addClass('active');
6999                lib3p.header.onOTP_GuiLai(lib3p.header.SendType.SMS);
7000            }
7001            else if (window.pars3p.otp.SendType == lib3p.header.SendType.Zalo) {
7002                jQuery('.popup-header-otp .hachi-modal .SendType').html('Zalo');
7003                jQuery('.popup-header-otp .hachi-modal .guilai.zalo').addClass('active');
7004                jQuery('.popup-header-otp .hachi-modal .guilai.sms').removeClass('active');
7005                lib3p.header.onOTP_GuiLai(lib3p.header.SendType.Zalo);
7006            }
7007            var query = jQuery('.popup-header-otp .hachi-modal');
7008            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7009                if (jQuery(query[0]).hasClass("d-none")) {
7010                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
7011                }
7012            }
7013        },
7014        onOTP_Input: function (event, el) {
7015            if (lib3p_helper.utility.hasValue(event) && lib3p_helper.utility.hasValueString(event.data) && event.data.length > 3) {
7016                var data = event.data;
7017
7018                setTimeout(function () {
7019                    if (lib3p_helper.utility.isNumberInteger(data)) {
7020                        var query = jQuery('.popup-header-otp > form');
7021                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7022                            jQuery(query[0]).removeClass('haserror');
7023                            jQuery(query[0].otp).focus();
7024                            lib3p.header.OPT_Submit();
7025                        }
7026                    }
7027                }, 200);
7028            }
7029        },
7030        onOTP_KeyDown_old: function (event, el) {
7031            var query = jQuery(el).closest('form');
7032            var back = event.keyCode == 8;
7033            //jQuery('.popup-header-otp div.otp-err').html('key = ' + event.keyCode);
7034            //8 back, 13 enter, 27 esc
7035            if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode == 8 || event.keyCode == 13 || event.keyCode == 27) {
7036                setTimeout(function () {
7037                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7038                        if (back == true) {
7039                            jQuery(query[0]).removeClass('haserror');
7040
7041                            var flag = true;
7042                            var ctr = query[0].n4;
7043                            if (flag == true && lib3p_helper.utility.hasValueString(ctr.value)) {
7044                                jQuery(ctr).focus();
7045                                ctr.value = '';
7046                                flag = false;
7047                            }
7048                            ctr = query[0].n3;
7049                            if (flag == true && lib3p_helper.utility.hasValueString(ctr.value)) {
7050                                jQuery(ctr).focus();
7051                                ctr.value = '';
7052                                flag = false;
7053                            }
7054                            ctr = query[0].n2;
7055                            if (flag == true && lib3p_helper.utility.hasValueString(ctr.value)) {
7056                                jQuery(ctr).focus();
7057                                ctr.value = '';
7058                                flag = false;
7059                            }
7060                            ctr = query[0].n1;
7061                            if (flag == true && lib3p_helper.utility.hasValueString(ctr.value)) {
7062                                jQuery(ctr).focus();
7063                                ctr.value = '';
7064                                flag = false;
7065                            }
7066                        }
7067                        else {
7068                            var flag = true;
7069                            var ctr = query[0].n1;
7070                            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
7071                                flag = false;
7072                            }
7073                            ctr = query[0].n2;
7074                            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
7075                                if (flag == true) {
7076                                    jQuery(ctr).focus();
7077                                }
7078                                flag = false;
7079                            }
7080                            ctr = query[0].n3;
7081                            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
7082                                if (flag == true) {
7083                                    jQuery(ctr).focus();
7084                                }
7085                                flag = false;
7086                            }
7087                            ctr = query[0].n4;
7088                            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
7089                                if (flag == true) {
7090                                    jQuery(ctr).focus();
7091                                }
7092                                flag = false;
7093                            }
7094                            ctr = query[0].n5;
7095                            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
7096                                if (flag == true) {
7097                                    jQuery(ctr).focus();
7098                                }
7099                                flag = false;
7100                            }
7101                            jQuery(query[0]).removeClass('haserror');
7102                        }
7103                    }
7104                }, 100);
7105            }
7106        },
7107        onOTP_KeyDown: function (event, el) {
7108            var query = jQuery(el).closest('form');
7109            if ((event.keyCode >= 48 && event.keyCode <= 57) || (event.keyCode >= 96 && event.keyCode <= 105) || event.keyCode == 8 || event.keyCode == 13 || event.keyCode == 27) {
7110                var flag = true;
7111                var ctr = query[0].otp;
7112                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
7113                    flag = false;
7114                }
7115                /* if(flag == true) { 
7116                    jQuery(query[0]).removeClass('haserror');
7117                } */
7118
7119                if (ctr.value.length > 4 && event.keyCode != 8 && event.keyCode != 13 && event.keyCode != 27) {
7120                    event.preventDefault();
7121                }
7122            }
7123        },
7124        onOTP_GuiLai: function (n) {
7125            window.pars3p.otp.SendType = n;
7126            if (window.pars3p.otp.SendType == lib3p.header.SendType.SMS) {
7127                jQuery('.popup-header-otp .hachi-modal .SendType').html('SMS');
7128                jQuery('.popup-header-otp .hachi-modal .guilai.zalo').removeClass('active');
7129                jQuery('.popup-header-otp .hachi-modal .guilai.sms').addClass('active');
7130            }
7131            else if (window.pars3p.otp.SendType == lib3p.header.SendType.Zalo) {
7132                jQuery('.popup-header-otp .hachi-modal .SendType').html('Zalo');
7133                jQuery('.popup-header-otp .hachi-modal .guilai.zalo').addClass('active');
7134                jQuery('.popup-header-otp .hachi-modal .guilai.sms').removeClass('active');
7135            }
7136
7137            if (window.pars3p.otp.IsNew == lib3p.header.IsNew.NewV2) {
7138                lib3p.common_PostURL(window.pars3p.api.public.HeaderSMS_Reload + '?browserid=' 
7138+ window.pars3p.BrowserID + '&connectid=' + window.pars3p.ConnectID, { "PhoneNumber": window.pars3p.otp.PhoneNumber, "SendType": window.pars3p.otp.SendType }, function (res) {
7139                    if (res == 1) {
7140                        window.location.reload();
7141                    }
7142                    else {
7143                        lib3p.header.OTP_TimerStart();
7144                    }
7145                }, function (err) {
7146                    if (err.status == 200) {
7147                        debugger;
7148                        lib3p.header.OTP_TimerStart();
7149                    }
7150                });
7151            }
7152            else if (window.pars3p.otp.IsNew == lib3p.header.IsNew.New) {
7153                lib3p.common_PostURL(window.pars3p.api.public.LoginSMS_Reload + '?key=' + window.pars3p.KeyView + '&captcha=' + window.pars3p.KeyCaptcha, { "PhoneNumber": window.pars3p.otp.PhoneNumber, "SendType": window.pars3p.otp.SendType }, function (res) {
7154                    lib3p.header.OTP_TimerStart();
7155                }, function (err) {
7156                    if (err.status == 200) {
7157                        lib3p.header.OTP_TimerStart();
7158                    }
7159                });
7160            }
7161            else {
7162                lib3p.common_PostURL(window.pars3p.api.public.getactiveco
7162de + '?key=' + window.pars3p.KeyView + '&captcha=' + window.pars3p.KeyCaptcha, { "PhoneNumber": window.pars3p.otp.PhoneNumber, "SendType": window.pars3p.otp.SendType }, function (res) {
7163                    lib3p.header.OTP_TimerStart();
7164                }, function (err) {
7165                    if (err.status == 200) {
7166                        lib3p.header.OTP_TimerStart();
7167                    }
7168                });
7169            }
7170            return false;
7171        },
7172        OTP_TimerStart: function () {
7173            lib3p.header.OTP_InputReset();
7174            window.pars3p.otp.Timer = 90;
7175            var str = "";
7176            if (window.pars3p.otp.Timer > 0) {
7177                var s = window.pars3p.otp.Timer;
7178                var m = 0;
7179                if (window.pars3p.otp.Timer > 60) {
7180                    s = window.pars3p.otp.Timer % 60;
7181                    m = parseInt(window.pars3p.otp.Timer / 60);
7182                }
7183                if (m > 0) str = m + " phút ";
7184                else str = "";
7185                if (s > 0) str += s < 10 ? "0" + s + " giây" : s + " giây";
7186            }
7187            jQuery('.popup-header-otp .modal-body .text-3 .giay').html(str);
7188            //lib3p.header.OTP_Timer();
7189            if (!jQuery('.popup-header-otp').hasClass('waiting')) {
7190                jQuery('.popup-header-otp').addClass('waiting');
7191            }
7192        },
7193        OTP_InputReset: function () {
7194            var query = jQuery('.popup-header-otp form');
7195            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7196                query[0].otp.value = '';
7197                query[0].otp.focus();
7198
7199                /* if(!jQuery(query[0]).hasClass('haserror')) {
7200                    jQuery(query[0]).addClass('haserror');
7201                } */
7202            }
7203            setTimeout(function () {
7204                jQuery('.popup-header-otp form')[0].otp.focus();
7205            }, 200);
7206        },
7207        onOTP_Close: function () {
7208            var query = jQuery('.popup-header-otp .hachi-modal');
7209            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7210                if (jQuery(query[0]).hasClass("d-block")) {
7211                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
7212                }
7213            }
7214            if (window.pars3p.otp.Success != true) {
7215                if (window.pars3p.otp.CallBackCancel) window.pars3p.otp.CallBackCancel();
7216            }
7217            return false;
7218        },
7219        onOPT_Submit: function (event) {
7220            if (lib3p_helper.utility.hasValue(event) && lib3p_helper.utility.hasValue(event.preventDefault)) {
7221                event.preventDefault();
7222                lib3p.header.OPT_Submit();
7223            }
7224            return false;
7225        },
7226        ConnectAuth: function (PhoneNumber, Password, CallBackOK, CallBackErr) {
7227            window.pars3p.otp.CallBackOK = CallBackOK;
7228            window.pars3p.otp.CallBackCancel = CallBackErr;
7229
7230            lib3p.common_GetURL(window.pars3p.api.public.Header_Login + '?username=' + PhoneNumber + '&password=' + Password, function (res) {
7231                if(lib3p_helper.utility.hasValue(res)) {
7232                    if (lib3p_helper.utility.hasValueString(res.access_token)) {
7233                        window.pars3p.otp.Success = true;
7234                        window.pars3p.auth.access_token = res.access_token;
7235                        window.pars3p.auth.refresh_token = res.refresh_token;
7236                        window.pars3p.auth.isLogin = true;
7237                        lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
7238
7239                        if (window.pars3p.otp.CallBackOK) window.pars3p.otp.CallBackOK();
7240                    }
7241                    else {
7242                        var strError = res.error_description;
7243                        if (res.code == 1) {
7244                            strError = 'Email không tồn tại';
7245                        }
7246                        else if (res.code == 2) {
7247                            strError = 'Mã xác thực chưa đúng';
7248                        }
7249                        else if (res.code == 3) {
7250                            strError = 'Username đã tồn tại';
7251                        }
7252                        else if (res.code == 4) {
7253                            strError = 'Tài khoản đã bị vô hiệu hóa';
7254                        }
7255                        else if (res.code == 5) {
7256                            strError = 'Không tồn tại người dùng';
7257                        }
7258                        else if (res.code == 6) {
7259                            strError = 'Dữ liệu không tồn tại';
7260                        }
7261                        else if (res.code == 7) {
7262                            strError = 'Số diện thoại đã tồn tại';
7263                        }    
7264                        if (window.pars3p.otp.CallBackCancel) window.pars3p.otp.CallBackCancel(strError);
7265                    }
7266                }
7267                else {
7268                    if (window.pars3p.otp.CallBackCancel) window.pars3p.otp.CallBackCancel(false);
7269                }                
7270            }, function (err) {
7271                if (window.pars3p.otp.CallBackCancel) window.pars3p.otp.CallBackCancel(err);
7272            });
7273        },
7274        /* ConnectAuth: function (PhoneNumber, Password, CallBackOK, CallBackErr) {
7275            window.pars3p.otp.CallBackOK = CallBackOK;
7276            window.pars3p.otp.CallBackCancel = CallBackErr;
7277            var req = new FormData();
7278            req.append('client_id', 'user');
7279            req.append('client_secret', 'jssecret');
7280            req.append('scope', 'userapi offline_access');
7281            req.append('grant_type', 'password');
7282            req.append('username', PhoneNumber);
7283            req.append('password', Password);
7284            lib3p.common_PostDataURL(window.pars3p.api.public.connecttoken, req, function (res) {
7285                if (res && res.access_token) {
7286                    window.pars3p.otp.Success = true;
7287                    window.pars3p.auth.access_token = res.access_token;
7288                    window.pars3p.auth.refresh_token = res.refresh_token;
7289                    window.pars3p.auth.isLogin = true;
7290                    lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
7291
7292                    if (window.pars3p.otp.CallBackOK) window.pars3p.otp.CallBackOK();
7293                }
7294            }, function (err) {
7295                if (err && err.responseJSON && err.responseJSON.code > 0) {
7296                    var strError = err.responseJSON.error_description;
7297                    if (err.responseJSON.code == 1) {
7298                        strError = 'Email không tồn tại';
7299                    }
7300                    else if (err.responseJSON.code == 2) {
7301                        strError = 'Mã xác thực chưa đúng';
7302                    }
7303                    else if (err.responseJSON.code == 3) {
7304                        strError = 'Username đã tồn tại';
7305                    }
7306                    else if (err.responseJSON.code == 4) {
7307                        strError = 'Tài khoản đã bị vô hiệu hóa';
7308                    }
7309                    else if (err.responseJSON.code == 5) {
7310                        strError = 'Không tồn tại người dùng';
7311                    }
7312                    else if (err.responseJSON.code == 6) {
7313                        strError = 'Dữ liệu không tồn tại';
7314                    }
7315                    else if (err.responseJSON.code == 7) {
7316                        strError = 'Số diện thoại đã tồn tại';
7317                    }
7318
7319                    if (window.pars3p.otp.CallBackCancel) window.pars3p.otp.CallBackCancel(strError);
7320                }
7321                else {
7322                    if (window.pars3p.otp.CallBackCancel) window.pars3p.otp.CallBackCancel(strError);
7323                }
7324            });
7325        }, */
7326        OPT_Submit: function () {
7327            var query = jQuery('.popup-header-otp form');
7328            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7329                var form = query[0];
7330                if (!jQuery(form).hasClass('haserror')) {
7331                    jQuery('.popup-header-otp div.otp-err').html('');
7332
7333                    var flag = true;
7334                    var data = {
7335                        otp: '',
7336                    };
7337
7338                    var ctr = form.otp;
7339                    data.otp = ctr.value;
7340                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
7341                        flag = false;
7342                    }
7343                    if (flag == true) {
7344                        window.pars3p.otp.Password = data.otp;
7345                        if (window.pars3p.otp.IsNew == lib3p.header.IsNew.NewV2) {
7346                            lib3p.common_PostURL(window.pars3p.api.public.HeaderSMS_Check + '?browserid=' + window.pars3p.BrowserID + '&connectid=' + window.pars3p.ConnectID, { "PhoneNumber": window.pars3p.otp.PhoneNumber, "OTP": window.pars3p.otp.Password }, function (res) {
7347                                if (res == 1) {
7348                                    window.location.reload();
7349                                }
7350                                else if (res == 3) {
7351                                    query = jQuery('.popup-header-otp .hachi-modal');
7352                                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7353                                        if (jQuery(query[0]).hasClass("d-block")) {
7354                                            jQuery(query[0]).removeClass("d-block").addClass("d-none");
7355                                        }
7356                                    }
7357                                    if (window.pars3p.otp.CallBackOK) window.pars3p.otp.CallBackOK();
7358                                }
7359                                else {
7360                                    jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-red300 regular400">Mã xác thực chưa đúng</span>');
7361                                }
7362                            }, function (err) {
7363                                lib3p.log(err);
7364                            });
7365                        }
7366                        else if (window.pars3p.otp.IsNew == lib3p.header.IsNew.New) {
7367                            lib3p.common_PostURL(window.pars3p.api.public.LoginSMS_OPTNew, { "PhoneNumber": window.pars3p.otp.PhoneNumber, "OTP": window.pars3p.otp.Password }, function (res) {
7368                                if (res == true) {
7369                                    query = jQuery('.popup-header-otp .hachi-modal');
7370                                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7371                                        if (jQuery(query[0]).hasClass("d-block")) {
7372                                            jQuery(query[0]).removeClass("d-block").addClass("d-none");
7373                                        }
7374                                    }
7375                                    if (window.pars3p.otp.CallBackOK) window.pars3p.otp.CallBackOK();
7376                                }
7377                                else {
7378                                    jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-red300 regular400">Mã xác thực chưa đúng</span>');
7379                                }
7380                            }, function (err) {
7381                                lib3p.log(err);
7382                            });
7383                        }
7384                        else {
7385                            lib3p.common_GetURL(window.pars3p.api.public.Header_Login + '?username=' + window.pars3p.otp.PhoneNumber + '&password=' + window.pars3p.otp.Password, function (res) {
7386                                if(lib3p_helper.utility.hasValue(res)) {
7387                                    if (lib3p_helper.utility.hasValueString(res.access_token)) {
7388                                        window.pars3p.otp.Success = true;
7389                                        window.pars3p.auth.access_token = res.access_token;
7390                                        window.pars3p.auth.refresh_token = res.refresh_token;
7391                                        window.pars3p.auth.isLogin = true;
7392                                        lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
7393                                        lib3p.header.onOTP_Close();
7394
7395                                        if (window.pars3p.otp.CallBackOK) window.pars3p.otp.CallBackOK();
7396                                    }
7397                                    else {
7398                                        var strError = res.error_description;
7399                                        if (res.code == 1) {
7400                                            strError = 'Email không tồn tại';
7401                                        }
7402                                        else if (res.code == 2) {
7403                                            strError = 'Mã xác thực chưa đúng';
7404                                        }
7405                                        else if (res.code == 3) {
7406                                            strError = 'Username đã tồn tại';
7407                                        }
7408                                        else if (res.code == 4) {
7409                                            strError = 'Tài khoản đã bị vô hiệu hóa';
7410                                        }
7411                                        else if (res.code == 5) {
7412                                            strError = 'Không tồn tại người dùng';
7413                                        }
7414                                        else if (res.code == 6) {
7415                                            strError = 'Dữ liệu không tồn tại';
7416                                        }
7417                                        else if (res.code == 7) {
7418                                            strError = 'Số diện thoại đã tồn tại';
7419                                        }
7420                                        jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-red300 regular400">' + strError + '</span>');                                        
7421                                    }
7422                                }
7423                                else {
7424                                    jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-red300 regular400">Mã xác thực chưa đúng</span>');
7425                                }                
7426                            }, function (err) {
7427                                jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
7427<span class="s13 cl-red300 regular400">Mã xác thực chưa đúng</span>');
7428                            });
7429                        }
7430                    }
7431                    else {
7432                        jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-red300 regular400">Mã xác thực chưa đúng</span>');
7433                    }
7434                }
7435            }
7436        },
7437        /* OPT_Submit: function () {
7438            var query = jQuery('.popup-header-otp form');
7439            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7440                var form = query[0];
7441                if (!jQuery(form).hasClass('haserror')) {
7442                    jQuery('.popup-header-otp div.otp-err').html('');
7443
7444                    var flag = true;
7445                    var data = {
7446                        otp: '',
7447                    };
7448
7449                    var ctr = form.otp;
7450                    data.otp = ctr.value;
7451                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
7452                        flag = false;
7453                    }
7454                    if (flag == true) {
7455                        window.pars3p.otp.Password = data.otp;
7456                        if (window.pars3p.otp.IsNew == lib3p.header.IsNew.NewV2) {
7457                            lib3p.common_PostURL(window.pars3p.api.public.HeaderSMS_Check + '?browserid=' + window.pars3p.BrowserID + '&connectid=' + window.pars3p.ConnectID, { "PhoneNumber": window.pars3p.otp.PhoneNumber, "OTP": window.pars3p.otp.Password }, function (res) {
7458                                if (res == 1) {
7459                                    window.location.reload();
7460                                }
7461                                else if (res == 3) {
7462                                    query = jQuery('.popup-header-otp .hachi-modal');
7463                                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7464                                        if (jQuery(query[0]).hasClass("d-block")) {
7465                                            jQuery(query[0]).removeClass("d-block").addClass("d-none");
7466                                        }
7467                                    }
7468                                    if (window.pars3p.otp.CallBackOK) window.pars3p.otp.CallBackOK();
7469                                }
7470                                else {
7471                                    jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-red300 regular400">Mã xác thực chưa đúng</span>');
7472                                }
7473                            }, function (err) {
7474                                lib3p.log(err);
7475                            });
7476                        }
7477                        else if (window.pars3p.otp.IsNew == lib3p.header.IsNew.New) {
7478                            lib3p.common_PostURL(window.pars3p.api.public.LoginSMS_OPTNew, { "PhoneNumber": window.pars3p.otp.PhoneNumber, "OTP": window.pars3p.otp.Password }, function (res) {
7479                                if (res == true) {
7480                                    query = jQuery('.popup-header-otp .hachi-modal');
7481                                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7482                                        if (jQuery(query[0]).hasClass("d-block")) {
7483                                            jQuery(query[0]).removeClass("d-block").addClass("d-none");
7484                                        }
7485                                    }
7486                                    if (window.pars3p.otp.CallBackOK) window.pars3p.otp.CallBackOK();
7487                                }
7488                                else {
7489                                    jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
7489<span class="s13 cl-red300 regular400">Mã xác thực chưa đúng</span>');
7490                                }
7491                            }, function (err) {
7492                                lib3p.log(err);
7493                            });
7494                        }
7495                        else {
7496                            var req = new FormData();
7497                            req.append('client_id', 'user');
7498                            req.append('client_secret', 'jssecret');
7499                            req.append('scope', 'userapi offline_access');
7500                            req.append('grant_type', 'password');
7501                            req.append('username', window.pars3p.otp.PhoneNumber);
7502                            req.append('password', window.pars3p.otp.Password);
7503                            lib3p.common_PostDataURL(window.pars3p.api.public.connecttoken, req, function (res) {
7504                                if (res && res.access_token) {
7505                                    window.pars3p.otp.Success = true;
7506                                    window.pars3p.auth.access_token = res.access_token;
7507                                    window.pars3p.auth.refresh_token = res.refresh_token;
7508                                    window.pars3p.auth.isLogin = true;
7509                                    lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
7510                                    lib3p.header.onOTP_Close();
7511
7512                                    if (window.pars3p.otp.CallBackOK) window.pars3p.otp.CallBackOK();
7513                                }
7514                            }, function (err) {
7515                                lib3p.log(err);
7516                                if (err && err.responseJSON && err.responseJSON.code > 0) {
7517                                    var strError = err.responseJSON.error_description;
7518                                    if (err.responseJSON.code == 1) {
7519                                        strError = 'Email không tồn tại';
7520                                    }
7521                                    else if (err.responseJSON.code == 2) {
7522                                        jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-red300 regular400">Mã xác thực chưa đúng</span>');
7523                                    }
7524                                    else if (err.responseJSON.code == 3) {
7525                                        strError = 'Username đã tồn tại';
7526                                    }
7527                                    else if (err.responseJSON.code == 4) {
7528                                        jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-red300 regular400">Tài khoản đã bị vô hiệu hóa</span>');
7529                                    }
7530                                    else if (err.responseJSON.code == 5) {
7531                                        strError = 'Không tồn tại người dùng';
7532                                    }
7533                                    else if (err.responseJSON.code == 6) {
7534                                        strError = 'Dữ liệu không tồn tại';
7535                                    }
7536                                    else if (err.responseJSON.code == 7) {
7537                                        strError = 'Số diện thoại đã tồn tại';
7538                                    }
7539                                    lib3p.log(strError);
7540                                }
7541                                else {
7542                                    jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-red300 regular400">Mã xác thực chưa đúng</span>');
7543                                }
7544                            });
7545                        }
7546                    }
7547                    else {
7548                        jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
7548<span class="s13 cl-red300 regular400">Mã xác thực chưa đúng</span>');
7549                    }
7550                }
7551            }
7552        }, */
7553        /* OPT_Submit_old: function() {
7554            var query = jQuery('.popup-header-otp form');
7555            if(lib3p_helper.utility.hasValue(query) && query.length > 0) {
7556                var form = query[0];
7557                if(!jQuery(form).hasClass('haserror')) {
7558                    jQuery('.popup-header-otp div.otp-err').html('');
7559
7560                    var flag = true;
7561                    var data = {
7562                        n1: '',
7563                        n2: '',
7564                        n3: '',
7565                        n4: '',
7566                        n5: '',
7567                    };
7568        
7569                    var ctr = form.n1;
7570                    data.n1 = ctr.value;
7571                    if(!lib3p_helper.utility.hasValueString(ctr.value)) {
7572                        flag = false;
7573                    }
7574                    ctr = form.n2;
7575                    data.n2 = ctr.value;
7576                    if(!lib3p_helper.utility.hasValueString(ctr.value)) {
7577                        flag = false;
7578                    }
7579                    ctr = form.n3;
7580                    data.n3 = ctr.value;
7581                    if(!lib3p_helper.utility.hasValueString(ctr.value)) {
7582                        flag = false;
7583                    }
7584                    ctr = form.n4;
7585                    data.n4 = ctr.value;
7586                    if(!lib3p_helper.utility.hasValueString(ctr.value)) {
7587                        flag = false;
7588                    }
7589                    ctr = form.n4;
7590                    data.n4 = ctr.value;
7591                    if(!lib3p_helper.utility.hasValueString(ctr.value)) {
7592                        flag = false;
7593                    }
7594                    ctr = form.n5;
7595                    data.n5 = ctr.value;
7596                    if(!lib3p_helper.utility.hasValueString(ctr.value)) {
7597                        flag = false;
7598                    }
7599                    if(flag == true) {
7600                        window.pars3p.otp.Password = data.n1 + data.n2 + data.n3 + data.n4 + data.n5;
7601                        if(window.pars3p.otp.IsNew == true) {
7602                            lib3p.common_PostURL(window.pars3p.api.public.LoginSMS_OPTNew, { "PhoneNumber": window.pars3p.otp.PhoneNumber, "OTP": window.pars3p.otp.Password  }, function(res) {
7603                                if(res == true) {
7604                                    if(window.pars3p.otp.CallBackOK) window.pars3p.otp.CallBackOK();
7605                                }
7606                                else {
7607                                    jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-red300 regular400">Mã xác thực chưa đúng</span>');
7608                                    //lib3p.header.OTP_InputReset();
7609                                }
7610                            }, function(err) {
7611                                lib3p.log(err);
7612                            });
7613                        }
7614                        else {
7615                            var req = new FormData();
7616                            req.append('client_id', 'user');
7617                            req.append('client_secret', 'jssecret');
7618                            req.append('scope', 'userapi offline_access');
7619                            req.append('grant_type', 'password');
7620                            req.append('username', window.pars3p.otp.PhoneNumber);
7621                            req.append('password', window.pars3p.otp.Password);
7622                            lib3p.common_PostDataURL(window.pars3p.api.public.connecttoken, req, function(res) {
7623                                if(res && res.access_token) {
7624                                    window.pars3p.otp.Success = true;
7625                                    window.pars3p.auth.access_token = res.access_token;
7626                                    window.pars3p.auth.refresh_token = res.refresh_token;
7627                                    window.pars3p.auth.isLogin = true;        
7628                                    lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
7629                                    lib3p.header.onOTP_Close();
7630                                    
7631                                    if(window.pars3p.otp.CallBackOK) window.pars3p.otp.CallBackOK();
7632                                }
7633                            }, function(err) {
7634                                lib3p.log(err);
7635                                if(err && err.responseJSON && err.responseJSON.code > 0) {
7636                                    var strError = err.responseJSON.error_description;
7637                                    if(err.responseJSON.code == 1) {
7638                                        strError = 'Email không tồn tại';
7639                                    }
7640                                    else if(err.responseJSON.code == 2) {
7641                                        jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-red300 regular400">Mã xác thực chưa đúng</span>');
7642                                        //lib3p.header.OTP_InputReset();
7643                                    }
7644                                    else if(err.responseJSON.code == 3) {
7645                                        strError = 'Username đã tồn tại';
7646                                    }
7647                                    else if(err.responseJSON.code == 4) {
7648                                        jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-red300 regular400">Tài khoản đã bị vô hiệu hóa</span>');
7649                                    }
7650                                    else if(err.responseJSON.code == 5) {
7651                                        strError = 'Không tồn tại người dùng';
7652                                    }
7653                                    else if(err.responseJSON.code == 6) {
7654                                        strError = 'Dữ liệu không tồn tại';
7655                                    }
7656                                    else if(err.responseJSON.code == 7) {
7657                                        strError = 'Số diện thoại đã tồn tại';
7658                                    }
7659                                    lib3p.log(strError);     
7660                                }
7661                                else {
7662                                    jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-red300 regular400">Mã xác thực chưa đúng</span>');
7663                                    //lib3p.header.OTP_InputReset();
7664                                }
7665                            });
7666                        }                        
7667                    }
7668                    else {
7669                        jQuery('.popup-header-otp div.otp-err').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-red300 regular400">Mã xác thực chưa đúng</span>');
7670                    }
7671                }
7672            }
7673        }, */
7674
7675        onKTTT_Show: function (data, TypeKTTT, callbackOk, callbackCancel, callbackOTP) {
7676            window.pars3p.khtt.ID = data.ID;
7677            window.pars3p.khtt.CardNo = data.CardNo;
7678            window.pars3p.khtt.FirstName = data.FirstName;
7679            window.pars3p.khtt.LastName = data.LastName;
7680            window.pars3p.khtt.FullName = data.FullName;
7681            window.pars3p.khtt.Cellphone = data.Cellphone;
7682            window.pars3p.khtt.OrderBy = data.OrderBy;
7683            window.pars3p.khtt.CallBackOK = callbackOk;
7684            window.pars3p.khtt.CallBackCancel = callbackCancel;
7685            window.pars3p.khtt.CallBackOTP = callbackOTP;
7686            window.pars3p.khtt.Success = false;
7687            window.pars3p.khtt.TypeKTTT = TypeKTTT;
7688
7689            var str = window.pars3p.khtt.Cellphone.substr(0, 3) + "****" + window.pars3p.khtt.Cellphone.substr(-3);
7690            var strCard = window.pars3p.khtt.CardNo.substr(0, 2) + "****" + window.pars3p.khtt.CardNo.substr(-2);
7691            jQuery('.popup-header-khtt .hachi-modal .CardNo').html(strCard);
7692            jQuery('.popup-header-khtt .hachi-modal .Cellphone').html(str);
7693            jQuery('.popup-header-khtt .hachi-modal .FullName').html(window.pars3p.khtt.FullName);
7694            jQuery('.popup-header-khtt-mobile .hachi-modal .CardNo').html(strCard);
7695            jQuery('.popup-header-khtt-mobile .hachi-modal .Cellphone').html(str);
7696            jQuery('.popup-header-khtt-mobile .hachi-modal .FullName').html(window.pars3p.khtt.FullName);
7697
7698            if (lib3p_helper.utility.hasValue(callbackOTP) && lib3p_helper.utility.hasValue(window.pars3p.dangkykhtt) && lib3p_helper.utility.hasValueString(window.pars3p.dangkykhtt.TransactionNo)) {
7699                jQuery('.popup-header-khtt .hachi-modal .modal-body .type-1').hide();
7700                jQuery('.popup-header-khtt .hachi-modal .modal-body .type-2').show();
7701                jQuery('.popup-header-khtt-mobile .hachi-modal .modal-body .type-1').hide();
7702                jQuery('.popup-header-khtt-mobile .hachi-modal .modal-body .type-2').show();
7703            }
7704            else {
7705                jQuery('.popup-header-khtt .hachi-modal .modal-body .type-1').show();
7706                jQuery('.popup-header-khtt .hachi-modal .modal-body .type-2').hide();
7707                jQuery('.popup-header-khtt-mobile .hachi-modal .modal-body .type-1').show();
7708                jQuery('.popup-header-khtt-mobile .hachi-modal .modal-body .type-2').hide();
7709            }
7710
7711            if (window.pars3p.MobileClick == true) {
7712                query = jQuery('.popup-header-khtt-mobile .hachi-modal');
7713                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7714                    if (jQuery(query[0]).hasClass("d-none")) {
7715                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
7716                    }
7717                }
7718            }
7719            else {
7720                query = jQuery('.popup-header-khtt .hachi-modal');
7721                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7722                    if (jQuery(query[0]).hasClass("d-none")) {
7723                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
7724                    }
7725                }
7726            }
7727
7728            window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
7729            jQuery('.popup-header-khtt .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
7730            jQuery('.popup-header-khtt .captcha').attr('key', window.pars3p.KeyView);
7731            jQuery('.popup-header-khtt-mobile .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
7732            jQuery('.popup-header-khtt-mobile .captcha').attr('key', window.pars3p.KeyView);
7733        },
7734        onKTTT_KeyDown: function (event, el) {
7735            var query = jQuery(el).closest('form');
7736            setTimeout(function () {
7737                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7738                    var flag = true;
7739                    var ctr = query[0].Captcha;
7740                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
7741                        flag = false;
7742                    }
7743                    /* if(flag == true) {
7744                        jQuery(query[0]).removeClass('haserror');
7745                    }
7746                    else {
7747                        if(!jQuery(query[0]).hasClass('haserror')) {
7748                            jQuery(query[0]).addClass('haserror');
7749                        }
7750                    } */
7751                }
7752            }, 100);
7753        },
7754        onKTTTCaptcha_Click: function () {
7755            window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
7756            jQuery('.popup-header-khtt .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
7757            jQuery('.popup-header-khtt .captcha').attr('key', window.pars3p.KeyView);
7758            jQuery('.popup-header-khtt-mobile .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
7759            jQuery('.popup-header-khtt-mobile .captcha').attr('key', window.pars3p.KeyView);
7760            return false;
7761        },
7762        onKTTT_Close: function () {
7763            var query = jQuery('.popup-header-khtt .hachi-modal');
7764            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7765                if (jQuery(query[0]).hasClass("d-block")) {
7766                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
7767                }
7768            }
7769            var query = jQuery('.popup-header-khtt-mobile .hachi-modal');
7770            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7771                if (jQuery(query[0]).hasClass("d-block")) {
7772                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
7773                }
7774            }
7775            if (window.pars3p.khtt.Success != true) {
7776                if (window.pars3p.khtt.CallBackCancel) window.pars3p.khtt.CallBackCancel();
7777            }
7778            return false;
7779        },
7780        onKTTT_Submit: function (event) {
7781            if (lib3p_helper.utility.hasValue(event) && lib3p_helper.utility.hasValue(event.preventDefault)) {
7782                jQuery(event.target).find('div.error').html('');
7783                jQuery(event.target).find('.input input').removeClass('error');
7784
7785                var flag = true;
7786                var data = {
7787                    Captcha: '',
7788                };
7789                var ctr = event.target.Captcha;
7790                data.Captcha = ctr.value;
7791                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
7792                    flag = false;
7793                    if (!jQuery(ctr).hasClass('error')) {
7794                        jQuery(ctr).addClass('error');
7795                    }
7796                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
7796<span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
7797                }
7798                if (flag == true) {
7799                    window.pars3p.KeyCaptcha = data.Captcha;
7800                    lib3p.common_PostURL(window.pars3p.api.public.All_CheckCaptcha + '?key=' + window.pars3p.KeyView + '&captcha=' + window.pars3p.KeyCaptcha, {}, function (res) {
7801                        if (res == true) {
7802                            var query = jQuery('.popup-header-khtt .hachi-modal');
7803                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7804                                if (jQuery(query[0]).hasClass("d-block")) {
7805                                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
7806                                }
7807                            }
7808                            query = jQuery('.popup-header-khtt-mobile .hachi-modal');
7809                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7810                                if (jQuery(query[0]).hasClass("d-block")) {
7811                                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
7812                                }
7813                            }
7814                            window.pars3p.khtt.StatusID = "1";
7815                            lib3p.header.onOTPType_ShowDelivery(window.pars3p.khtt.Cellphone, function () {
7816                                //lib3p.header.KTTT_Success();
7817                                if (window.pars3p.khtt.CallBackOK) window.pars3p.khtt.CallBackOK();
7818                            }, function () {
7819                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7820                                    if (jQuery(query[0]).hasClass("d-none")) {
7821                                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
7822                                    }
7823                                }
7824                                if (window.pars3p.khtt.CallBackCancel) window.pars3p.khtt.CallBackCancel();
7825                            });
7826                        }
7827                        else {
7828                            jQuery(event.target.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập sai mã captcha</span>');
7829                        }
7830                    }, function (err) {
7831                        jQuery(event.target.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập sai mã captcha</span>');
7832                        //lib3p.log(err);
7833                    });
7834                }
7835
7836                event.preventDefault();
7837            }
7838            return false;
7839        },
7840        KTTT_Success: function () {
7841            if (window.pars3p.khtt.TypeKTTT == lib3p.header.TypeKTTT.Phone && window.pars3p.khtt.StatusID == "2") {
7842                var req = {
7843                    "ActiveCode": window.pars3p.otp.Password,
7844                    "StatusID": "2",
7845                    "CardInf": {
7846                        "ID": window.pars3p.khtt.ID,
7847                        "Cellphone": window.pars3p.khtt.Cellphone,
7848                        "FullName": window.pars3p.khtt.OrderBy
7849                    }
7850                };
7851
7852                //window.pars3p.api.public.Header_CreateIdentity
7853                
7854                lib3p.common_PostURL(window.pars3p.api.public.UpdateCardName, req, function (res) {
7855                    if (lib3p_helper.utility.hasValue(res)) {
7856                        if (res.StatusCode == 0) {
7857                            if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
7858                                window.pars3p.auth.access_token = res.ObjectReturn.access_token;
7859                                window.pars3p.auth.refresh_token = res.ObjectReturn.refresh_token;
7860                                window.pars3p.auth.isLogin = true;
7861                                lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
7862
7863                                if (window.pars3p.khtt.CallBackOK) window.pars3p.khtt.CallBackOK();
7864                            }
7865                        }
7866                        else {
7867                            console.log(res.ErrorString);
7868                        }
7869                    }
7870                }, function (err) {
7871                    throw err;
7872                });
7873            }
7874            else {
7875                if (window.pars3p.khtt.CallBackOK) window.pars3p.khtt.CallBackOK();
7876            }
7877        },
7878
7879        ProductLike_DS: function (callSuccess, callCancel) {
7880            if (window.pars3p.auth.isLogin == true && lib3p_helper.utility.hasValueString(window.pars3p.auth.access_token)) {
7881                lib3p.common_AuthGetURL(window.pars3p.api.auth.User_DSProductLikeHeader, function (res) {
7882                    if (lib3p_helper.utility.hasValue(res)) {
7883                        window.pars3p.productLike = '';
7884                        res.forEach(function (c, cidx) {
7885                            window.pars3p.productLike += '[' + c.ProductID + ']';
7886                        });
7887                        if (callSuccess) {
7888                            callSuccess();
7889                        }
7890                    }
7891                    else {
7892                        if (callCancel) {
7893                            callCancel();
7894                        }
7895                    }
7896                }, function (err) {
7897                    if (callCancel) {
7898                        callCancel();
7899                    }
7900                    throw err;
7901                });
7902            }
7903            else {
7904                if (callCancel) {
7905                    callCancel();
7906                }
7907            }
7908        },
7909        ProductLike_Change: function (code, callSuccess, callCancel) {
7910            if (window.pars3p.auth.isLogin == true && lib3p_helper.utility.hasValueString(window.pars3p.auth.access_token)) {
7911                lib3p.common_AuthPostURL(window.pars3p.api.auth.User_ProductLikeChange, { id: code }, function (res) {
7912                    if (res == true) {
7913                        if (callSuccess) {
7914                            callSuccess();
7915                        }
7916                    }
7917                    else {
7918                        if (callCancel) {
7919                            callCancel();
7920                        }
7921                    }
7922                }, function (err) {
7923                    if (callCancel) {
7924                        callCancel();
7925                    }
7926                    throw err;
7927                });
7928            }
7929            else {
7930                if (callCancel) {
7931                    callCancel();
7932                }
7933            }
7934        },
7935        ProductLike_Delete: function (codeList, callSuccess, callCancel) {
7936            if (window.pars3p.auth.isLogin == true && lib3p_helper.utility.hasValueString(window.pars3p.auth.access_token)) {
7937                lib3p.common_AuthPostURL(window.pars3p.api.auth.User_ProductLikeDelete, { lstid: codeList }, function (res) {
7938                    if (res == true) {
7939                        if (callSuccess) {
7940                            callSuccess();
7941                        }
7942                    }
7943                    else {
7944                        if (callCancel) {
7945                            callCancel();
7946                        }
7947                    }
7948                }, function (err) {
7949                    if (callCancel) {
7950                        callCancel();
7951                    }
7952                    throw err;
7953                });
7954            }
7955            else {
7956                if (callCancel) {
7957                    callCancel();
7958                }
7959            }
7960        },
7961    },
7962
7963    pageHome: {
7964        init: function () {
7965            var query = jQuery('.page-home');
7966            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {                
7967                //banner
7968                lib3p.pageHome.init_GetBanner_async().then(function (data) { }, function (err) { console.log(err); });
7969                lib3p.pageHome.init_async().then(function (data) { }, function (err) { console.log(err); });
7970            }
7971        },
7972        init_async: function () {
7973            return new Promise(function (resolve, reject) {
7974                setTimeout(function () {
7975                    var strCookie = lib3p.common_cookieConfigGet();
7976                    if (lib3p_helper.utility.hasValueString(strCookie)) {
7977                        lib3p.common_cookieConfigSet(strCookie);
7978                    }
7979
7980                    var strLogin = lib3p_helper.utility.cache.get("__login__");
7981                    if(strLogin == '1') {
7982                        lib3p_helper.utility.cache.set("__login__", "");
7983                        jQuery('.popup-hasgift-thongbao .modal-body .data .txt').html('Bạn đã đăng nhập, hãy tiếp tục mua sắm');
7984                        jQuery('.popup-hasgift-thongbao .hachi-modal .modal > .modal-dialog').removeClass('modal-lg');
7985                        var query = jQuery('.popup-hasgift-thongbao .hachi-modal');
7986                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7987                            if (jQuery(query[0]).hasClass("d-none")) {
7988                                jQuery(query[0]).removeClass("d-none").addClass("d-block");
7989                            }
7990                        }
7991                        setTimeout(function(){
7992                            query = jQuery('.popup-hasgift-thongbao .hachi-modal');
7993                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
7994                                if (jQuery(query[0]).hasClass("d-block")) {
7995                                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
7996                                }
7997                            }
7998                            jQuery('.popup-hasgift-thongbao .hachi-modal .modal > .modal-dialog').addClass('modal-lg');
7999                        }, 3000);
8000                    }
8001                    
8002                    lib3p.pageCart.OtherPage();
8003                    lib3p.header.GMC_Home();
8004                    if (jQuery(".flashsale").length > 0) {
8005                        var now = new Date();
8006                        var dateInit = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds());
8007                        var flagTimer = false;
8008                        jQuery(".flashsale").each(function () {
8009                            var str = jQuery(this).data('end');
8010                            if (lib3p_helper.utility.hasValue(str)) {
8011                                var dt = new Date(str);
8012                                if (dt >= dateInit) {
8013                                    var diffTime = Math.abs(dt - dateInit);
8014                                    var days = diffTime / (24 * 60 * 60 * 1000);
8015                                    if (days > 3) {
8016                                        jQuery(this).find('.timegroup').hide();
8017                                    }
8018                                    else {
8019                                        var hours = (days % 1) * 24;
8020                                        var minutes = (hours % 1) * 60;
8021                                        var secs = (minutes % 1) * 60;
8022                                        jQuery(this).find('.hour').html(Math.round(hours) < 10 ? '0' + Math.round(hours) : Math.round(hours));
8023                                        jQuery(this).find('.min').html(Math.round(minutes) < 10 ? '0' + Math.round(minutes) : Math.round(minutes));
8024                                        jQuery(this).find('.sec').html(Math.round(secs) < 10 ? '0' + Math.round(secs) : Math.round(secs));
8025                                        jQuery(this).data('time', dt);
8026                                        flagTimer = true;
8027                                    }
8028                                }
8029                                else {
8030                                    jQuery(this).find('.timegroup').hide();
8031                                }
8032                            }
8033                        });
8034                        if (flagTimer == true) {
8035                            setInterval(function () {
8036                                try {
8037                                    var now = new Date();
8038                                    var dateCurrent = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds());
8039                                    jQuery(".flashsale").each(function () {
8040                                        var dt = jQuery(this).data('time');
8041                                        var diffTime = Math.abs(dt - dateCurrent);
8042                                        var days = diffTime / (24 * 60 * 60 * 1000);
8043                                        var hours = (days % 1) * 24;
8044                                        var minutes = (hours % 1) * 60;
8045                                        var secs = (minutes % 1) * 60;
8046                                        jQuery(this).find('.hour').html(Math.round(hours) < 10 ? '0' + Math.round(hours) : Math.round(hours));
8047                                        jQuery(this).find('.min').html(Math.round(minutes) < 10 ? '0' + Math.round(minutes) : Math.round(minutes));
8048                                        jQuery(this).find('.sec').html(Math.round(secs) < 10 ? '0' + Math.round(secs) : Math.round(secs));
8049                                    });
8050                                }
8051                                catch (e) {
8052                                    console.log(e);
8053                                }
8054                            }, 1000);
8055                        }
8056                    }
8057                    if (jQuery(".flashsale-mobile").length > 0) {
8058                        var now = new Date();
8059                        var dateInit = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds());
8060                        var flagTimer = false;
8061                        jQuery(".flashsale-mobile").each(function () {
8062                            var str = jQuery(this).data('end');
8063                            if (lib3p_helper.utility.hasValue(str)) {
8064                                var dt = new Date(str);
8065                                if (dt >= dateInit) {
8066                                    var diffTime = Math.abs(dt - dateInit);
8067                                    var days = diffTime / (24 * 60 * 60 * 1000);
8068                                    if (days > 3) {
8069                                        jQuery(this).find('.timegroup').hide();
8070                                    }
8071                                    else {
8072                                        var hours = (days % 1) * 24;
8073                                        var minutes = (hours % 1) * 60;
8074                                        var secs = (minutes % 1) * 60;
8075                                        jQuery(this).find('.hour').html(Math.round(hours) < 10 ? '0' + Math.round(hours) : Math.round(hours));
8076                                        jQuery(this).find('.min').html(Math.round(minutes) < 10 ? '0' + Math.round(minutes) : Math.round(minutes));
8077                                        jQuery(this).find('.sec').html(Math.round(secs) < 10 ? '0' + Math.round(secs) : Math.round(secs));
8078                                        jQuery(this).data('time', dt);
8079                                        flagTimer = true;
8080                                    }
8081                                }
8082                                else {
8083                                    jQuery(this).find('.timegroup').hide();
8084                                }
8085                            }
8086                        });
8087                        if (flagTimer == true) {
8088                            setInterval(function () {
8089                                try {
8090                                    var now = new Date();
8091                                    var dateCurrent = new Date(now.getFullYear(), now.getMonth(), now.getDate(), now.getHours(), now.getMinutes(), now.getSeconds());
8092                                    jQuery(".flashsale-mobile").each(function () {
8093                                        var dt = jQuery(this).data('time');
8094                                        var diffTime = Math.abs(dt - dateCurrent);
8095                                        var days = diffTime / (24 * 60 * 60 * 1000);
8096                                        var hours = (days % 1) * 24;
8097                                        var minutes = (hours % 1) * 60;
8098                                        var secs = (minutes % 1) * 60;
8099                                        jQuery(this).find('.hour').html(Math.round(hours) < 10 ? '0' + Math.round(hours) : Math.round(hours));
8100                                        jQuery(this).find('.min').html(Math.round(minutes) < 10 ? '0' + Math.round(minutes) : Math.round(minutes));
8101                                        jQuery(this).find('.sec').html(Math.round(secs) < 10 ? '0' + Math.round(secs) : Math.round(secs));
8102                                    });
8103                                }
8104                                catch (e) {
8105                                    console.log(e);
8106                                }
8107                            }, 1000);
8108                        }
8109                    }
8110                    jQuery('.flashsale .danhsach .owl-carousel').owlCarousel({
8111                        autoplay: true,
8112                        autoplayTimeout: 3000,
8113                        autoplayHoverPause: true,
8114                        autoWidth: false,
8115                        loop: true,
8116                        nav: true,
8117                        dots: false,
8118                        items: 2.6,
8119                        margin: 12,
8120                        navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
8121                        navElement: 'div'
8122                    });
8123                    jQuery('.flashsale-mobile .danhsach .owl-carousel').owlCarousel({
8124                        autoplay: true,
8125                        autoplayTimeout: 3000,
8126                        autoplayHoverPause: false,
8127                        autoWidth: true,
8128                        loop: true,
8129                        nav: false,
8130                        dots: false,
8131                        margin: 20,
8132                    });
8133
8134                    jQuery('.thuong-hieu .danhsach .owl-carousel').owlCarousel({
8135                        autoplay: true,
8136                        autoplayTimeout: 3000,
8137                        autoplayHoverPause: true,
8138                        autoWidth: false,
8139                        loop: true,
8140                        nav: true,
8141                        dots: false,
8142                        margin: 0,
8143                        //có nhiều hơn 6 banner mới hiện nav
8144                        items: 6,
8145                        slideBy: 3,
8146                        navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
8147                        navElement: 'div'
8148                    });
8149                    jQuery('.thuong-hieu .danhsach-mobile .owl-carousel').owlCarousel({
8150                        autoplay: false,
8151                        autoplayTimeout: 3000,
8152                        autoplayHoverPause: true,
8153                        autoWidth: true,
8154                        loop: true,
8155                        nav: true,
8156                        dots: false,
8157                        margin: 10,
8158                        slideBy: 3,
8159                        navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
8160                        navElement: 'div'
8161                    });
8162
8163                    jQuery('.mode-mobile .mobile-home .chip-1.owl-carousel').owlCarousel({
8164                        autoplay: true,
8165                        autoplayTimeout: 3000,
8166                        autoplayHoverPause: false,
8167                        loop: true,
8168                        nav: false,
8169                        dot
8169s: false,
8170                        autoWidth: true,
8171                        margin: 40,
8172                    });
8173
8174                    jQuery('.mode-mobile .mobile-home .product-new .product-tabs.owl-carousel').owlCarousel({
8175                        autoplay: false,
8176                        autoplayHoverPause: false,
8177                        loop: true,
8178                        nav: false,
8179                        dots: false,
8180                        autoWidth: true,
8181                        margin: 10
8182                    });
8183                    jQuery('.mode-mobile .mobile-home .product-promotion .product-tabs.owl-carousel').owlCarousel({
8184                        autoplay: false,
8185                        autoplayHoverPause: false,
8186                        loop: true,
8187                        nav: false,
8188                        dots: false,
8189                        autoWidth: true,
8190                        margin: 10
8191                    });
8192                    jQuery('.mode-mobile .mobile-home .bestseller .product-tabs.owl-carousel').owlCarousel({
8193                        autoplay: false,
8194                        autoplayHoverPause: false,
8195                        loop: true,
8196                        nav: false,
8197                        dots: false,
8198                        autoWidth: true,
8199                        margin: 10
8200                    });
8201
8202                    if (jQuery('.page-home .danhmuc .danhmuc-data.khuyenmai.owl-carousel .item').length > 7) {
8203                        jQuery('.page-home .danhmuc .danhmuc-data.khuyenmai.owl-carousel').owlCarousel({
8204                            autoplay: false,
8205                            autoplayTimeout: 3000,
8206                            autoplayHoverPause: true,
8207                            autoWidth: true,
8208                            loop: true,
8209                            nav: true,
8210                            dots: false,
8211                            margin: 20,
8212                            navText: ['<button type="button" aria-label="hachihachi" class="icon-left"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>', '<button type="button" aria-label="hachihachi" class="icon-right"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>'],
8213                            navElement: 'div'
8214                        });
8215                    }
8216                    else {
8217                        jQuery('.page-home .danhmuc .danhmuc-data.khuyenmai.owl-carousel').owlCarousel({
8218                            autoplay: false,
8219                            autoplayTimeout: 3000,
8220                            autoplayHoverPause: true,
8221                            autoWidth: true,
8222                            loop: false,
8223                            nav: false,
8224                            dots: false,
8225                            margin: 20,
8226                        });
8227                    }
8228                    if (jQuery('.page-home .danhmuc .danhmuc-data.spmoi.owl-carousel .item').length > 7) {
8229                        jQuery('.page-home .danhmuc .danhmuc-data.spmoi.owl-carousel').owlCarousel({
8230                            autoplay: false,
8231                            autoplayTimeout: 3000,
8232                            autoplayHoverPause: true,
8233                            autoWidth: true,
8234                            loop: true,
8235                            nav: true,
8236                            dots: false,
8237                            margin: 20,
8238                            navText: ['<button type="button" aria-label="hachihachi" class="icon-left"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>', '<button type="button" aria-label="hachihachi" class="icon-right"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>'],
8239                            navElement: 'div'
8240                        });
8241                    }
8242                    else {
8243                        jQuery('.page-home .danhmuc .danhmuc-data.spmoi.owl-carousel').owlCarousel({
8244                            autoplay: false,
8245                            autoplayTimeout: 3000,
8246                            autoplayHoverPause: true,
8247                            autoWidth: true,
8248                            loop: false,
8249                            nav: false,
8250                            dots: false,
8251                            margin: 20,
8252                        });
8253                    }
8254                    if (jQuery('.page-home .bestseller .danhmuc .danhmuc-data.owl-carousel .item').length > 7) {
8255                        jQuery('.page-home .bestseller .danhmuc .danhmuc-data.owl-carousel').owlCarousel({
8256                            autoplay: false,
8257                            autoplayTimeout: 3000,
8258                            autoplayHoverPause: true,
8259                            autoWidth: true,
8260                            loop: true,
8261                            nav: true,
8262                            dots: false,
8263                            margin: 20,
8264                            navText: ['<button type="button" aria-label="hachihachi" class="icon-left"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>', '<button type="button" aria-label="hachihachi" class="icon-right"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>'],
8265                            navElement: 'div'
8266                        });
8267                    }
8268                    else {
8269                        jQuery('.page-home .bestseller .danhmuc .danhmuc-data.owl-carousel').owlCarousel({
8270                            autoplay: false,
8271                            autoplayTimeout: 3000,
8272                            autoplayHoverPause: true,
8273                            autoWidth: true,
8274                            loop: false,
8275                            nav: false,
8276                            dots: false,
8277                            margin: 20,
8278                        });
8279                    }
8280                    jQuery('.page-home .danhmuc-product .owl-carousel').owlCarousel({
8281                        autoplay: false,
8282                        autoplayTimeout: 3000,
8283                        autoplayHoverPause: true,
8284                        autoWidth: true,
8285                        loop: true,
8286                        nav: true,
8287                        dots: false,
8288                        margin: 20,
8289                        navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
8290                        navElement: 'div'
8291                    });
8292
8293                }, window.pars3p.timeAsync);
8294            });
8295        },
8296        init_GetBanner_async: function () {
8297            return new Promise(function (resolve, reject) {
8298                setTimeout(function () {
8299                    if (lib3p_helper.utility.hasListValue(window.pars3p.others.ListBanner)) {
8300                        //window.pars3p.api.public.Home_GetBanner
8301                        var lstBanners = window.pars3p.others.ListBanner.filter(function (c) { return c.TypeData == 15 || c.TypeData == 16 || c.TypeData == 19 || c.TypeData == 20 || c.TypeData == 21 || c.TypeData == 23 || c.TypeData == 43; });
8302                        if (lib3p_helper.utility.hasListValue(lstBanners)) {
8303                            var html1 = '<div class="owl-carousel">';
8304                            var html1_m = '<div class="owl-carousel">';
8305                            var html7 = '';
8306                            var index7 = 0;
8307                            var html7_m = '';
8308                            var html9 = '<div class="owl-carousel">';
8309                            var html9_m = '<div class="owl-carousel">';
8310                            var html10 = '';
8311                            var html10_m = '';
8312                            var index10 = 0;
8313                            var html12 = '<div class="owl-carousel">';
8314                            var html12_m = '';
8315
8316                            var total9 = lstBanners.filter(function (c) { return c.TypeData == 19; }).length;
8317                            var index9 = 1;
8318
8319                            lstBanners.forEach(function (c) {
8320                                if (lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
8321                                    if (c.Link.indexOf('?') > 0) {
8322                                        c.Link = c.Link + '&' + window.pars3p.seo.Query;
8323                                    }
8324                                    else {
8325                                        c.Link = c.Link + '?' + window.pars3p.seo.Query;
8326                                    }
8327                                }
8328
8329                                if (c.TypeData == 15) {
8330                                    //Banner H02 Hero
8331                                    html1 += `<div key="` + c.Code + `" class="item" style="background-image: url('` + window.pars3p.hostresouce + c.Image + `');background-position: center center;background-repeat: no-repeat;background-size: cover;"><a class="gtm-home-banner" data-device="pc" data-name="` + c.ImageName + `" href="` + c.Link + `">&nbsp;</a></div>`;
8332                                    if (lib3p_helper.utility.hasValueString(c.ImageMobile)) {
8333                                        html1_m += `<div key="` + c.Code + `" class="item" style="background-image: url('` + window.pars3p.hostresouce + c.ImageMobile + `');background-position: center center;background-repeat: no-repeat;background-size: cover;"><a class="gtm-home-banner" data-device="mobile" data-name="` + c.ImageName + `" href="` + c.Link + `">&nbsp;</a></div>`;
8334                                        //html1_m += '<div key="' + c.Code + '" class="item"><a class="gtm-home-banner" data-device="mobile" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.ImageMobile +'" alt="' + c.Name + '" loading="lazy" /></a></div>';
8335                                    }
8336                                }
8337                                /* else if (c.TypeData == 16) {
8338                                    //H03 SP Khuyen mai
8339                                    if (index7 <= 3) {
8340                                        html7 += '<div class="col-lg-3"><a class="gtm-home-banner" data-device="pc" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
8341                                        if (lib3p_helper.utility.hasValueString(c.ImageMobile)) {
8342                                            html7_m += '<div class="item"><a class="gtm-home-banner" data-device="mobile" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.ImageMobile + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
8343                                        }
8344                                        //html7_m += '<div class="item"><a class="gtm-home-banner" data-device="mobile" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image +'" alt="' + c.Name + '" loading="lazy" /></a></div>';
8345                                        index7++;
8346                                    }
8347                                } */
8348                                else if (c.TypeData == 19) {
8349                                    //H06 SP chu de
8350                                    html9 += '<div key="' + c.Code + '" class="item"><a class="gtm-home-banner" data-device="pc" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a>';
8351                                    html9 += '<div class="sapxep-bg b-gregray40">&nbsp;</div>';
8352                                    html9 += '<div class="sapxep s13 cl-gregray600 sibold600">' + index9 + '/' + total9 + '</div>';
8353                                    html9 += '</div>';
8354                                    if (lib3p_helper.utility.hasValueString(c.ImageMobile)) {
8355                                        html9_m += '<div key="' + c.Code + '" class="item"><a class="gtm-home-banner" data-device="mobile" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.ImageMobile + '" alt="' + c.Name + '" loading="lazy" /></a>';
8356                                        html9_m += '<div class="sapxep-bg b-gregray40">&nbsp;</div>';
8357                                        html9_m += '<div class="sapxep s13 cl-gregray600 sibold600">' + index9 + '/' + total9 + '</div>';
8358                                        html9_m += '</div>';
8359                                    }
8360                                    /* html9_m += '<div key="' + c.Code + '" class="item"><a class="gtm-home-banner" data-device="mobile" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image +'" alt="' + c.Name + '" loading="lazy" /></a>';
8361                                    html9_m += '<div class="sapxep-bg b-gregray40">&nbsp;</div>';
8362                                    html9_m += '<div class="sapxep s13 cl-gregray600 sibold600">' + index9 + '/' + total9 + '</div>';
8363                                    html9_m += '</div>'; */
8364
8365                                    index9++;
8366                                }
8367                                else if (c.TypeData == 20) {
8368                                    //H07 SP khuyen dung
8369                                    html10 += '<div class="item"><a class="gtm-home-banner" data-device="pc" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
8370                                    //ITEM ĐẦU TIÊN LÀ HÌNH CHỮ NHẬT, ITEM CÒN LẠI LÀ HÌNH VUÔNG
8371                                    if (lib3p_helper.utility.hasValueString(c.ImageMobile)) {
8372                                        html10_m += '<div class="item ' + (index10 == 0 ? 'lg' : 'sm') + '"><a class="gtm-home-banner" data-device="mobile" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.ImageMobile + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
8373                                    }
8374                                    //html10_m += '<div class="item ' + (index10 == 0 ? 'lg' : 'sm') + '"><a class="gtm-home-banner" data-device="mobile" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image +'" alt="' + c.Name + '" loading="lazy" /></a></div>';
8375                                    index10++;
8376                                }
8377                                else if (c.TypeData == 21) {
8378                                    //H08 Ecoupon he thong
8379                                    html12 += '<div class="item"><a class="gtm-home-banner" data-device="pc" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
8380                                    if (lib3p_helper.utility.hasValueString(c.ImageMobile)) {
8381                                        html12_m += '<div class="item"><a class="gtm-home-banner" data-device="mobile" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.ImageMobile + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
8382                                    }
8383                                    //html12_m += '<div class="item"><a class="gtm-home-banner" data-device="mobile" data-name="' + c.ImageName + '" href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image +'" alt="' + c.Name + '" loading="lazy" /></a></div>';
8384                                }
8385                            });
8386                            html1 += '</div>';
8387                            html1_m += '</div>';
8388                            html7 += '';
8389                            html7_m += '';
8390                            html9 += '</div>';
8391                            html9_m += '</div>';
8392                            html10 += '';
8393                            html10_m += '';
8394                            html12 += '</div>';
8395                            html12_m += '';
8396
8397                            var tuyendungbanner = lstBanners.find(function (c) { return c.TypeData == 43; });
8398                            query = jQuery('.page-home .home-tuyendung-banner');
8399                            if (lib3p_helper.utility.hasValue(tuyendungbanner) && lib3p_helper.utility.hasValue(query) && query.length > 0) {
8400                                jQuery(query[0]).attr('href', tuyendungbanner.Link);
8401                                jQuery(jQuery('.page-home .home-tuyendung-banner img')[0]).attr('src', window.pars3p.hostresouce + tuyendungbanner.Image);
8402                            }
8403
8404                            if (window.pars3p.homepopup == -1 || window.pars3p.homepopup < (new Date().getTime())) {
8405                                var popupcenter = lstBanners.find(function (c) { return c.TypeData == 23; });
8406                                query = jQuery('.popup-home-center .hachi-modal');
8407                                if (lib3p_helper.utility.hasValue(popupcenter) && lib3p_helper.utility.hasValue(query) && query.length > 0) {
8408                                    if (!lib3p_helper.utility.hasValueString(popupcenter.Link) || popupcenter.Link == "/") {
8409                                        jQuery('.popup-home-center .hachi-modal .modal-body .data').html('<button type="button" aria-label="hachihachi" class="gtm-home-banner" data-device="pc" data-name="' + popupcenter.Name + '" onclick="return lib3p.pageHome.onPopupCenterClose_Click()"><img src="' + window.pars3p.hostresouce + popupcenter.Image + '" alt="hachihachi" loading="lazy" /></button>');
8410                                        jQuery('.popup-home-center .hachi-modal .modal-body .data-mobile').html('<button type="button" aria-label="hachihachi" class="gtm-home-banner" data-device="mobile" data-name="' + popupcenter.Name + '" onclick="return lib3p.pageHome.onPopupCenterClose_Click()"><img src="' + window.pars3p.hostresouce + popupcenter.Image + '" alt="hachihachi" loading="lazy" /></button>');
8411                                    }
8412                                    else {
8413                                        jQuery('.popup-home-center .hachi-modal .modal-body .data').html('<a aria-label="hachihachi" class="gtm-home-banner" data-device="pc" data-name="' + popupcenter.Name + '" href="' + popupcenter.Link + '"><img src="' + window.pars3p.hostresouce + popupcenter.Image + '" alt="hachihachi" loading="lazy" /></a>');
8414                                        jQuery('.popup-home-center .hachi-modal .modal-body .data-mobile').html('<a aria-label="hachihachi" class="gtm-home-banner" data-device="mobile" data-name="' + popupcenter.Name + '" href="' + popupcenter.Link + '"><img src="' + window.pars3p.hostresouce + popupcenter.Image + '" alt="hachihachi" loading="lazy" /></a>');
8415                                    }
8416                                    if (jQuery(query[0]).hasClass("d-none")) {
8417                                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
8418                                    }
8419                                }
8420                                else {
8421                                }
8422                                var t = lib3p_helper.utility.dateAddHour(new Date(), 2).getTime();
8423                                lib3p.common_popupSet(t);
8424                            }
8425
8426                            /* if(lib3p_helper.utility.hasValue(tuyendungbanner) && lib3p_helper.utility.hasValue(query) && query.length > 0) {
8427                                jQuery(query[0]).attr('href', tuyendungbanner.Link);
8428                                jQuery(jQuery('.page-home .home-tuyendung-banner img')[0]).attr('src', tuyendungbanner.Image);
8429                            } */
8430
8431                            jQuery('.mode-desktop .page-home .section-1 .banner').html(html1);
8432                            jQuery('.mode-mobile .mobile-home .banner-1').html(html1_m);
8433                            
8434                            //jQuery('.mode-desktop .page-home .section-3').html(html7);
8435                            //jQuery('.mode-mobile .mobile-home .banner-2').html(html7_m);
8436
8437                            jQuery('.mode-desktop .page-home .section-6 .banner').html(html9);
8438                            jQuery('.mode-mobile .mobile-home .banner-3').html(html9_m);
8439
8440                            jQuery('.mode-desktop .page-home .section-8').html('<div class="col-lg-12"><div class="danhsach">' + html10 + '</div></div>');
8441                            jQuery('.mode-mobile .mobile-home .banner-4').html(html10_m);
8442
8443                            jQuery('.mode-desktop .page-home .section-10').html(html12);
8444                            jQuery('.mode-mobile .mobile-home .banner-5').html(html12_m);
8445                            //banner main
8446                            jQuery('.mode-desktop .page-home .section-1 .banner .owl-carousel').owlCarousel({
8447                                autoplay: true,
8448                                autoplayTimeout: 3000,
8449                                autoplayHoverPause: true,
8450                                loop: true,
8451                                nav: true,
8452                                dots: true,
8453                                items: 1,
8454                                navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
8455                                navElement: 'div'
8456                            });
8457                            jQuery('.mode-mobile .mobile-home .banner-1 .owl-carousel').owlCarousel({
8458                                autoplay: true,
8459                                autoplayTimeout: 3000,
8460                                autoplayHoverPause: true,
8461                                loop: true,
8462                                nav: true,
8463                                dots: false,
8464                                items: 1,
8465                                navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
8466                                navElement: 'div'
8467                            });
8468                            //
8469
8470                            //banner 4 hình vuông
8471                            jQuery('.mode-mobile .mobile-home .banner-2.owl-carousel').owlCarousel({
8472                                autoplay: false,
8473                                autoplayTimeout: 3000,
8474                                autoplayHoverPause: false,
8475                                loop: true,
8476                                nav: false,
8477                                dots: false,
8478                                autoWidth: true,
8479                                margin: 2,
8480                            });
8481
8482                            jQuery('.page-home .section-6 .banner .owl-carousel').owlCarousel({
8483                                autoplay: true,
8484                                autoplayTimeout: 3000,
8485                                autoplayHoverPause: true,
8486                                loop: true,
8487                                nav: true,
8488                                dots: false,
8489                                autoWidth: true,
8490                                margin: 20,
8491                                navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
8492                                navElement: 'div'
8493                            });
8494
8495                            jQuery('.mode-mobile .mobile-home .banner-3 .owl-carousel').owlCarousel({
8496                                autoplay: false,
8497                                autoplayTimeout: 3000,
8498                                autoplayHoverPause: false,
8499                                loop: false,
8500                                nav: false,
8501                                dots: false,
8502                                autoWidth: true,
8503                                margin: 20,
8504                            });
8505
8506                            jQuery('.mode-mobile .mobile-home .banner-4.owl-carousel').owlCarousel({
8507                                autoplay: true,
8508                                autoplayTimeout: 3000,
8509                                autoplayHoverPause: false,
8510                                loop: true,
8511                                nav: false,
8512                                dots: false,
8513                                //autoWidth: false,
8514                                items: 1,
8515                                margin: 5,
8516                            });
8517                            //banner coupon
8518                            jQuery('.mode-desktop .page-home .section-10 .owl-carousel').owlCarousel({
8519                                autoplay: false,
8520                                autoplayTimeout: 3000,
8521                                autoplayHoverPause: false,
8522                                loop: false,
8523                                nav: false,
8524                                dots: false,
8525                                autoWidth: false,
8526                                margin: 20,
8527                                items: 4,
8528                                //navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
8529                                //navElement: 'div'
8530                            });
8531                            jQuery('.mode-mobile .mobile-home .banner-5.owl-carousel').owlCarousel({
8532                                autoplay: false,
8533                                autoplayTimeout: 3000,
8534                                autoplayHoverPause: false,
8535                                loop: true,
8536                                nav: false,
8537                                dots: false,
8538                                autoWidth: true,
8539                                margin: 10,
8540                            });
8541
8542                        }
8543                    }
8544
8545                    resolve('');
8546                }, function (err) {
8547                    reject(err);
8548                });
8549            }, window.pars3p.timeAsync);
8550        },
8551        onPopupCenterClose_Click: function () {
8552            var query = jQuery('.popup-home-center .hachi-modal');
8553            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
8554                if (jQuery(query[0]).hasClass("d-block")) {
8555                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
8556                }
8557            }
8558            return false;
8559        },
8560        init_GetBanner_async_old: function () {
8561            return new Promise(function (resolve, reject) {
8562                setTimeout(function () {
8563
8564                    lib3p.common_PostURL(window.pars3p.api.public.Home_GetBanner, {}, function (res) {
8565                        if (lib3p_helper.utility.hasValue(res)) {
8566                            var html1 = '<div class="owl-carousel">';
8567                            var count1 = 0;
8568                            var html7 = '';
8569                            var index7 = 0;
8570                            var html7_m = '';
8571                            var html9 = '<div class="owl-carousel">';
8572                            var html10 = '';
8573                            var html11 = '';
8574                            var html10_m = '';
8575                            var html12 = '<div class="owl-carousel">';
8576                            var html12_m = '';
8577
8578                            var total9 = res.filter(function (c) { return c.TypeData == 19; }).length;
8579                            var index9 = 1;
8580                            var index10 = 0;
8581
8582                            res.forEach(function (c, cidx) {
8583                                //Banner H02 Hero
8584                                if (c.TypeData == 15) {
8585                                    html1 += `<div key="` + c.Code + `" class="item" style="background-image: url('` + window.pars3p.hostresouce + c.Image + `');background-position: center center;background-repeat: no-repeat;background-size: cover;"><a href="` + c.Link + `">&nbsp;</a></div>`;
8586                                    count1++;
8587                                }
8588                                else if (c.TypeData == 8) {
8589
8590                                }
8591                                else if (c.TypeData == 5) {
8592
8593                                }
8594                                else if (c.TypeData == 6) {
8595
8596                                }
8597                                else if (c.TypeData == 3) {
8598
8599                                }
8600                                /* //H03 SP Khuyen mai
8601                                else if (c.TypeData == 16) {
8602                                    if (index7 <= 3) {
8603                                        html7 += '<div class="col-lg-3"><a href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
8604                                        html7_m += '<div class="item"><a href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
8605                                        index7++;
8606                                    }
8607                                } */
8608                                //H06 SP chu de
8609                                else if (c.TypeData == 19) {
8610                                    html9 += '<div key="' + c.Code + '" class="item"><a href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a>';
8611                                    html9 += '<div class="sapxep-bg b-gregray40">&nbsp;</div>';
8612                                    html9 += '<div class="sapxep s13 cl-gregray600 sibold600">' + index9 + '/' + total9 + '</div>';
8613                                    html9 += '</div>';
8614                                    index9++;
8615                                }
8616                                //H07 SP khuyen dung
8617                                else if (c.TypeData == 20) {
8618                                    html10 += '<div class="item"><a href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
8619                                    html10_m += '<div class="item ' + (index10 == 0 ? 'lg' : 'sm') + '"><a href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
8620                                    index10++;
8621                                }
8622                                //H08 Ecoupon he thong
8623                                else if (c.TypeData == 21) {
8624                                    html12 += '<div class="item"><a href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
8625                                    html12_m += '<div class="item"><a href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
8626                                }
8627                            });
8628                            html1 += '</div>';
8629                            html7 += '';
8630                            html7_m += '';
8631                            html9 += '</div>';
8632                            html10 += '';
8633                            html11 += '';
8634                            html10_m += '';
8635                            html12 += '</div>';
8636                            html12_m += '';
8637
8638                            var tuyendungbanner = res.filter(function (c) { return c.TypeData == 43; });
8639                            query = jQuery('.page-home .home-tuyendung-banner');
8640                            if (lib3p_helper.utility.hasValue(tuyendungbanner) && lib3p_helper.utility.hasValue(query) && query.length > 0) {
8641                                jQuery(query[0]).attr('href', tuyendungbanner.Link);
8642                                jQuery(jQuery('.page-home .home-tuyendung-banner img')[0]).attr('src', tuyendungbanner.Image);
8643                            }
8644
8645                            jQuery('.mode-desktop .page-home .section-1 .banner').html(html1);
8646                            jQuery('.mode-mobile .mobile-home .banner-1').html(html1);
8647
8648                            /* jQuery('.mode-desktop .page-home .section-3').html(html7);
8649                            jQuery('.mode-mobile .mobile-home .banner-2').html(html7_m); */
8650
8651                            jQuery('.mode-desktop .page-home .section-6 .banner').html(html9);
8652                            jQuery('.mode-mobile .mobile-home .banner-3').html(html9);
8653
8654                            jQuery('.mode-desktop .page-home .section-8').html('<div class="col-lg-12"><div class="danhsach">' + html10 + '</div></div>');
8655                            jQuery('.mode-mobile .mobile-home .banner-4').html(html10_m);
8656
8657                            jQuery('.mode-desktop .page-home .section-10').html(html12);
8658                            jQuery('.mode-mobile .mobile-home .banner-5').html(html12_m);
8659                            //banner main
8660                            jQuery('.mode-desktop .page-home .section-1 .banner .owl-carousel').owlCarousel({
8661                                autoplay: true,
8662                                autoplayTimeout: 3000,
8663                                autoplayHoverPause: true,
8664                                loop: true,
8665                                nav: true,
8666                                dots: true,
8667                                items: 1,
8668                                navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
8669                                navElement: 'div'
8670                            });
8671                            jQuery('.mode-mobile .mobile-home .banner-1 .owl-carousel').owlCarousel({
8672                                autoplay: true,
8673                                autoplayTimeout: 3000,
8674                                autoplayHoverPause: true,
8675                                loop: true,
8676                                nav: false,
8677                                dots: true,
8678                                items: 1,
8679                                //navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
8680                                navElement: 'div'
8681                            });
8682                            //
8683
8684                            //banner 4 hình vuông
8685                            jQuery('.mode-mobile .mobile-home .banner-2.owl-carousel').owlCarousel({
8686                                autoplay: false,
8687                                autoplayTimeout: 3000,
8688                                autoplayHoverPause: false,
8689                                loop: true,
8690                                nav: false,
8691                                dots: false,
8692                                autoWidth: true,
8693                                margin: 2,
8694                            });
8695                            //
8696                            jQuery('.page-home .section-6 .banner .owl-carousel').owlCarousel({
8697                                autoplay: true,
8698                                autoplayTimeout: 3000,
8699                                autoplayHoverPause: true,
8700                                loop: false,
8701                                nav: true,
8702                                dots: false,
8703                                items: 2.5,
8704                                margin: 20,
8705                                navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
8706                                navElement: 'div'
8707                            });
8708
8709                            jQuery('.mode-mobile .mobile-home .banner-3 .owl-carousel').owlCarousel({
8710                                autoplay: true,
8711                                autoplayTimeout: 3000,
8712                                autoplayHoverPause: false,
8713                                loop: false,
8714                                nav: false,
8715                                dots: false,
8716                                autoWidth: true,
8717                                margin: 20,
8718                            });
8719
8720                            jQuery('.mode-mobile .mobile-home .banner-4.owl-carousel').owlCarousel({
8721                                autoplay: true,
8722                                autoplayTimeout: 3000,
8723                                autoplayHoverPause: false,
8724                                loop: true,
8725                                nav: false,
8726                                dots: false,
8727                                autoWidth: true,
8728                                item: 2,
8729                                margin: 20,
8730                            });
8731                            //banner coupon
8732                            jQuery('.mode-desktop .page-home .section-10 .owl-carousel').owlCarousel({
8733                                autoplay: true,
8734                                autoplayTimeout: 3000,
8735                                autoplayHoverPause: false,
8736                                loop: false,
8737                                nav: true,
8738                                dots: true,
8739                                margin: 20,
8740                                navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
8741                                navElement: 'div'
8742                            });
8743                            jQuery('.mode-mobile .mobile-home .banner-5.owl-carousel').owlCarousel({
8744                                autoplay: false,
8745                                autoplayTimeout: 3000,
8746                                autoplayHoverPause: false,
8747                                loop: true,
8748                                nav: false,
8749                                dots: false,
8750                                autoWidth: true,
8751                                margin: 10,
8752                            });
8753                        }
8754
8755                        resolve('');
8756                    }, function (err) {
8757                        reject(err);
8758                    });
8759                }, window.pars3p.timeAsync);
8760            });
8761        },
8762        init_GetProductPromotion_async: function () {
8763            return new Promise(function (resolve, reject) {
8764                setTimeout(function () {
8765                    lib3p.common_PostURL(window.pars3p.api.public.Home_GetProductPromotion, {}, function (res) {
8766                        if (lib3p_helper.utility.hasValue(res)) {
8767                            var html = '';
8768                            var html_m = '';
8769                            res.forEach(function (c, cidx) {
8770                                html += '<div class="col-auto">';
8771                                html += lib3p_helper.product.parseHTML(c);
8772                                html += '</div>';
8773
8774                                if (cidx < 4) {
8775                                    html_m += lib3p_helper.product.parseHTML(c);
8776                                }
8777                            });
8778                            jQuery('.mode-desktop .page-home .home-promotion.product-list').html(html);
8779                            jQuery('.mode-mobile .mobile-home .product-promotion .product-list').html(html_m);
8780
8781                        }
8782                        resolve('');
8783                    }, function (err) {
8784                        reject(err);
8785                    });
8786                }, window.pars3p.timeAsync);
8787            });
8788        },
8789        init_GetCategoryNew_async: function () {
8790            return new Promise(function (resolve, reject) {
8791                setTimeout(function () {
8792                    window.pars3p.home_category = [];
8793                    lib3p.common_PostURL(window.pars3p.api.public.Home_GetCategoryNew, {}, function (res) {
8794                        if (lib3p_helper.utility.hasListValue(res)) {
8795                            window.pars3p.home_category = res;
8796                            var html = '';
8797                            var html_m = '';
8798                            var idx = Math.floor(Math.random() * 4);
8799                            if (idx >= 4) {
8800                                idx = window.pars3p.home_category.findIndex(function (o) { return o.Code == 33; });
8801                            }
8802                            else if (idx >= 3) {
8803                                idx = window.pars3p.home_category.findIndex(function (o) { return o.Code == 314; });
8804                            }
8805                            else if (idx >= 2) {
8806                                idx = window.pars3p.home_category.findIndex(function (o) { return o.Code == 40; });
8807                            }
8808                            else if (idx >= 0) {
8809                                idx = window.pars3p.home_category.findIndex(function (o) { return o.Code == 42; });
8810                            }
8811                            if (!(idx >= 0)) {
8812                                idx = 0;
8813                            }
8814                            var items = res.splice(idx, 1);
8815                            //res.push(items[0]);
8816                            res.splice(0, 0, items[0]);
8817                            res.forEach(function (c, i) {
8818                                if (i == 0) {
8819                                    html += '<li class="active item-' + c.Code + '">';
8820                                    html_m += '<div class="active item item-' + c.Code + '">';
8821                                    lib3p.pageHome.Product_New(null, c.Code);
8822                                }
8823                                else {
8824                                    html += '<li class="item-' + c.Code + '">';
8825                                    html_m += '<div class="item item-' + c.Code + '">';
8826                                }
8827                                html += '<button type="button" aria-label="hachihachi" onclick="lib3p.pageHome.onCategory_Change(this,' + c.Code + ')"><span class="icon hachi-' + c.ImageThumb + '"></span><br/><h3 class="text s13 cl-gregray600 sibold600">' + c.CategoryName + '</h3></button></li>';
8828                                html_m += '<button type="button" aria-label="hachihachi" onclick="lib3p.pageHome.onCategory_Change(this,' + c.Code + ')"><span class="icon hachi-' + c.ImageThumb + '"></span><br/><span class="text s13 cl-gregray600 sibold600">' + c.CategoryName + '</span></button></div>';
8829                            });
8830                            jQuery('.mode-desktop .page-home .section-7 .tabs').html(html);
8831                            jQuery('.mode-mobile .mobile-home .product-new .product-tabs').html(html_m);
8832                            jQuery('.mode-mobile .mobile-home .product-new .product-tabs.owl-carousel').owlCarousel({
8833                                autoplay: false,
8834                                autoplayHoverPause: false,
8835                                loop: false,
8836                                nav: false,
8837                                dots: false,
8838                                autoWidth: true,
8839                                margin: 10
8840                            });
8841                        }
8842                        resolve('');
8843                    }, function (err) {
8844                        reject(err);
8845                    });
8846                }, window.pars3p.timeAsync);
8847            });
8848        },
8849        init_GetBlog_async: function () {
8850            return new Promise(function (resolve, reject) {
8851                setTimeout(function () {
8852                    lib3p.common_PostURL(window.pars3p.api.public.Home_GetBlog, {}, function (res) {
8853                        if (lib3p_helper.utility.hasValue(res)) {
8854                            var html = '';
8855                            var html_m = '';
8856                            res.forEach(function (c, cidx) {
8857                                if (lib3p_helper.utility.hasValue(c.PostDate)) {
8858                                    c.PostDate = new Date(c.PostDate);
8859                                }
8860
8861                                html += '<div class="col-4"><div class="item sl-gregray200">';
8862                                html += '<div class="img"><a href="' + c.Alias + '"><img src="' + c.ImageLarge + '" alt="' + c.Title + '" loading="lazy" /></a></div>';
8863                                html += '<div class="name s18 cl-dakgreen800 sibold600"><a href="' + c.Alias + '">' + c.Title + '</a></div>';
8864                                html += '<div class="sub"><a class="cate s13 cl-dakgreen650 medium500" href="' + c.CategoryAlias + '">' + c.CategoryName + '</a>&nbsp;&nbsp;|&nbsp;&nbsp;<span class="date s13 cl-gregray550 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.PostDate) + '<span></div>';
8865                                html += '<div class="summary s14 cl-gregray900 regular400">' + c.Summary + '</div>';
8866                                html += '</div></div>';
8867
8868                                if (cidx < 1) {
8869                                    html_m += '<div class="item">';
8870                                    html_m += '<div class="img"><a href="' + c.Alias + '"><img src="' + c.ImageLarge + '" alt="' + c.Title + '" loading="lazy" /></a></div>';
8871                                    html_m += '<div class="name s15 cl-dakgreen800 medium500"><a href="' + c.Alias + '">' + c.Title + '</a></div>';
8872                                    html_m += '<div class="sub"><a class="cate s13 cl-dakgreen650 medium500" href="' + c.CategoryAlias + '">' + c.CategoryName + '</a>&nbsp;&nbsp;|&nbsp;&nbsp;<span class="date s13 cl-gregray550 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.PostDate) + '<span></div>';
8873                                    html_m += '<div class="summary s14 cl-gregray900 regular400">' + c.Summary + '</div>';
8874                                    html_m += '</div>';
8875                                }
8876                            });
8877                            jQuery('.home-blog').html(html);
8878                            jQuery('.home-blog-mobile .danhsach').html(html_m);
8879                        }
8880                        resolve('');
8881                    }, function (err) {
8882                        reject(err);
8883                    });
8884                }, window.pars3p.timeAsync);
8885            });
8886        },
8887        init_GetTinTuc_async: function () {
8888            return new Promise(function (resolve, reject) {
8889                setTimeout(function () {
8890                    lib3p.common_PostURL(window.pars3p.api.public.Home_GetTinTuc, {}, function (res) {
8891                        if (lib3p_helper.utility.hasValue(res)) {
8892                            var html = '';
8893                            var html_m = '';
8894                            res.forEach(function (c, cidx) {
8895                                if (lib3p_helper.utility.hasValue(c.PostDate)) {
8896                                    c.PostDate = new Date(c.PostDate);
8897                                }
8898
8899                                html += '<div class="item">';
8900                                html += '<div class="left"><a href="' + c.Alias + '"><img src="' + c.ImageLarge + '" alt="' + c.Title + '" loading="lazy" /></a></div>';
8901                                html += '<div class="right"><div class="name"><a class="s18 cl-dakgreen800 sibold600" href="' + c.Alias + '">' + c.Title + '</a></div><div class="summary s14 cl-gregray900 regular400">' + c.Summary + '</div></div>';
8902                                html += '</div>';
8903
8904                                html_m += '<div class="item">';
8905                                html_m += '<div class="left"><a href="' + c.Alias + '"><img src="' + c.ImageLarge + '" alt="' + c.Title + '" loading="lazy" /></a></div>';
8906                                html_m += '<div class="right"><div class="name"><a class="s15 cl-dakgreen800 medium500" href="' + c.Alias + '">' + c.Title + '</a></div></div>';
8907                                html_m += '</div>';
8908                            });
8909                            jQuery('.home-tintuc').html(html);
8910                            jQuery('.home-tintuc-mobile .danhsach').html(html_m);
8911                        }
8912                        resolve('');
8913                    }, function (err) {
8914                        reject(err);
8915                    });
8916                }, window.pars3p.timeAsync);
8917            });
8918        },
8919        init_GetProductGroup29K_async: function () {
8920            return new Promise(function (resolve, reject) {
8921                setTimeout(function () {
8922                    lib3p.common_GetURL(window.pars3p.api.public.Home_GetProductGroupByID + '?id=10033', function (res) {
8923                        if (lib3p_helper.utility.hasListValue(res)) {
8924                            var html = '';
8925                            var html_m = '';
8926                            res.forEach(function (c, cidx) {
8927                                html += '<div class="col-auto">';
8928                                html += lib3p_helper.product.parseHTML4(c);
8929                                html += '</div>';
8930                                if (cidx < 4) {
8931                                    html_m += lib3p_helper.product.parseHTML4(c);
8932                                }
8933                            });
8934                            jQuery('.donggia29k .row.product-list').html(html);
8935                            jQuery('.donggia29k-mobile .product-list').html(html_m);
8936                        }
8937                        else {
8938                            var query = jQuery('.container.donggia29k').parent();
8939                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
8940                                jQuery(query[0]).hide();
8941                            }
8942                            query = jQuery('.mobile-home .donggia29k-mobile');
8943                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
8944                                jQuery(query[0]).hide();
8945                            }
8946                        }
8947                        resolve('');
8948                    }, function (err) {
8949                        reject(err);
8950                    });
8951                }, window.pars3p.timeAsync);
8952            });
8953        },
8954        onCategoryBestSeller_Change: function (el, id) {
8955            if (lib3p_helper.utility.hasValue(el)) {
8956                var str = jQuery(el).data('ids');
8957                if (lib3p_helper.utility.hasValueString(str)) {
8958                    var ids = [];
8959                    (str + '').split(',').forEach(function (c) {
8960                        ids.push(parseInt(c));
8961                    });
8962                    if (ids.length > 0) {
8963                        jQuery('.mode-desktop .page-home .bestseller .danhmuc-data .item').removeClass('active');
8964                        jQuery('.mode-desktop .page-home .bestseller .danhmuc-data .item.item-' + id).addClass('active');
8965
8966                        lib3p.common_PostURL(window.pars3p.api.public.Home_GetProductNew, { ListID: ids }, function (res) {
8967                            if (lib3p_helper.utility.hasListValue(res)) {
8968                                var html = '';
8969                                res.forEach(function (c, cidx) {
8970                                    //html += lib3p_helper.product.parseHTML(c);
8971                                    html += lib3p_helper.product.parseWithGTM(c, 'gtm-home-product', 'pc', 'Top bán chạy');
8972                                });
8973                                jQuery('.mode-desktop .page-home .bestseller .danhmuc-product .product-list.owl-carousel').owlCarousel('destroy');
8974                                jQuery('.mode-desktop .page-home .bestseller .danhmuc-product .product-list.owl-carousel').html(html);
8975                                jQuery('.mode-desktop .page-home .bestseller .danhmuc-product .product-list.owl-carousel').owlCarousel({
8976                                    autoplay: false,
8977                                    autoplayTimeout: 3000,
8978                                    autoplayHoverPause: true,
8979                                    autoWidth: true,
8980                                    loop: res.length > 2,
8981                                    nav: true,
8982                                    dots: false,
8983                                    margin: 20,
8984                                    navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
8985                                    navElement: 'div'
8986                                });
8987                            }
8988                        }, function (err) {
8989                            console.log(err);
8990                        });
8991                    }
8992                }
8993            }
8994        },
8995        onCategoryBestSellerMobile_Change: function (el, id) {
8996            if (lib3p_helper.utility.hasValue(el)) {
8997                var str = jQuery(el).data('ids');
8998                if (lib3p_helper.utility.hasValueString(str)) {
8999                    var ids = [];
9000                    (str + '').split(',').forEach(function (c) {
9001                        ids.push(parseInt(c));
9002                    });
9003                    if (ids.length > 0) {
9004                        jQuery('.mode-mobile .mobile-home .bestseller .product-tabs .item.active').removeClass('active');
9005                        jQuery('.mode-mobile .mobile-home .bestseller .product-tabs .item-' + id).addClass('active');
9006
9007                        lib3p.common_PostURL(window.pars3p.api.public.Home_GetProductNew, { ListID: ids }, function (res) {
9008                            if (lib3p_helper.utility.hasListValue(res)) {
9009                                //var html = '';
9010                                var html_m = '';
9011                                res.forEach(function (c, cidx) {
9012                                    //html += '<div class="col-auto">';
9013                                    //html += lib3p_helper.product.parseHTML(c);
9014                                    //html += '</div>';
9015                                    if (cidx < 4) {
9016                                        //html_m += lib3p_helper.product.parseHTML(c);
9017                                        html_m += lib3p_helper.product.parseWithGTM(c, 'gtm-home-product', 'mobile', 'Top bán chạy');
9018                                    }
9019                                    else {
9020                                        //html_m += lib3p_helper.product.parseHTML(c, 'ansp');
9021                                        html_m += lib3p_helper.product.parseWithGTM(c, 'gtm-home-product', 'mobile', 'Top bán chạy', 'ansp');
9022                                    }
9023                                });
9024                                jQuery('.mode-mobile .mobile-home .bestseller .product-list').html(html_m);
9025                                jQuery('.mode-mobile .mobile-home .bestseller .xemthem').show();
9026                            }
9027                        }, function (err) {
9028                            console.log(err);
9029                        });
9030                    }
9031                }
9032            }
9033        },
9034        onCategoryPromotion_Change: function (el, id) {
9035            lib3p.pageHome.Product_Promotion(el, id);
9036        },
9037        Product_Promotion: function (el, id) {
9038            if (lib3p_helper.utility.hasValue(el)) {
9039                var str = jQuery(el).data('ids');
9040                if (lib3p_helper.utility.hasValueString(str)) {
9041                    var ids = [];
9042                    (str + '').split(',').forEach(function (c) {
9043                        ids.push(parseInt(c));
9044                    });
9045                    if (ids.length > 0) {
9046                        jQuery('.mode-desktop .page-home .section-5 .danhmuc-data .item').removeClass('active');
9047                        jQuery('.mode-desktop .page-home .section-5 .danhmuc-data .item.item-' + id).addClass('active');
9048
9049                        lib3p.common_PostURL(window.pars3p.api.public.Home_GetProductNew, { ListID: ids }, function (res) {
9050                            if (lib3p_helper.utility.hasListValue(res)) {
9051                                var html = '';
9052                                res.forEach(function (c, cidx) {
9053                                    //html += lib3p_helper.product.parseHTML(c);
9054                                    html += lib3p_helper.product.parseWithGTM(c, 'gtm-home-product', 'pc', 'Khuyến mãi');
9055                                });
9056                                jQuery('.mode-desktop .page-home .section-5 .danhmuc-product .product-list.owl-carousel').owlCarousel('destroy');
9057                                jQuery('.mode-desktop .page-home .section-5 .danhmuc-product .product-list.owl-carousel').html(html);
9058                                jQuery('.mode-desktop .page-home .section-5 .danhmuc-product .product-list.owl-carousel').owlCarousel({
9059                                    autoplay: false,
9060                                    autoplayTimeout: 3000,
9061                                    autoplayHoverPause: true,
9062                                    autoWidth: true,
9063                                    loop: res.length > 2,
9064                                    nav: true,
9065                                    dots: false,
9066                                    margin: 20,
9067                                    navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
9068                                    navElement: 'div'
9069                                });
9070                            }
9071                        }, function (err) {
9072                            console.log(err);
9073                        });
9074                    }
9075                }
9076            }
9077        },
9078        onCategoryNew_Change: function (el, id) {
9079            lib3p.pageHome.Product_New(el, id);
9080        },
9081        Product_New: function (el, id) {
9082            if (lib3p_helper.utility.hasValue(el)) {
9083                var str = jQuery(el).data('ids');
9084                if (lib3p_helper.utility.hasValueString(str)) {
9085                    var ids = [];
9086                    (str + '').split(',').forEach(function (c) {
9087                        ids.push(parseInt(c));
9088                    });
9089                    if (ids.length > 0) {
9090                        jQuery('.mode-desktop .page-home .section-7 .danhmuc-data .item').removeClass('active');
9091                        jQuery('.mode-desktop .page-home .section-7 .danhmuc-data .item.item-' + id).addClass('active');
9092                        //jQuery('.mode-mobile .mobile-home .product-new .product-tabs .item.active').removeClass('active');
9093                        //jQuery('.mode-mobile .mobile-home .product-new .product-tabs .item-' + id).addClass('active');
9094
9095                        lib3p.common_PostURL(window.pars3p.api.public.Home_GetProductNew, { ListID: ids }, function (res) {
9096                            if (lib3p_helper.utility.hasListValue(res)) {
9097                                var html = '';
9098                                //var html_m = '';
9099                                res.forEach(function (c, cidx) {
9100                                    //html += lib3p_helper.product.parseHTML(c);
9101                                    html += lib3p_helper.product.parseWithGTM(c, 'gtm-home-product', 'pc', 'Sản phẩm mới');
9102                                });
9103                                jQuery('.mode-desktop .page-home .section-7 .danhmuc-product .product-list.owl-carousel').owlCarousel('destroy');
9104                                jQuery('.mode-desktop .page-home .section-7 .danhmuc-product .product-list.owl-carousel').html(html);
9105                                jQuery('.mode-desktop .page-home .section-7 .danhmuc-product .product-list.owl-carousel').owlCarousel({
9106                                    autoplay: false,
9107                                    autoplayTimeout: 3000,
9108                                    autoplayHoverPause: true,
9109                                    autoWidth: true,
9110                                    loop: res.length > 2,
9111                                    nav: true,
9112                                    dots: false,
9113                                    margin: 20,
9114                                    navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
9115                                    navElement: 'div'
9116                                });
9117                            }
9118                        }, function (err) {
9119                            console.log(err);
9120                        });
9121                    }
9122                }
9123            }
9124        },
9125        Product_New_old: function (el, id) {
9126            if (lib3p_helper.utility.hasValue(el)) {
9127                var str = jQuery(el).data('ids');
9128                if (lib3p_helper.utility.hasValueString(str)) {
9129                    var ids = [];
9130                    (str + '').split(',').forEach(function (c) {
9131                        ids.push(parseInt(c));
9132                    });
9133                    if (ids.length > 0) {
9134                        jQuery('.mode-desktop .page-home .section-7 .tabs li').removeClass('active');
9135                        jQuery('.mode-desktop .page-home .section-7 .tabs li.item-' + id).addClass('active');
9136                        jQuery('.mode-mobile .mobile-home .product-new .product-tabs .item.active').removeClass('active');
9137                        jQuery('.mode-mobile .mobile-home .product-new .product-tabs .item-' + id).addClass('active');
9138
9139                        lib3p.common_PostURL(window.pars3p.api.public.Home_GetProductNew, { ListID: ids }, function (res) {
9140                            if (lib3p_helper.utility.hasValue(res)) {
9141                                var html = '';
9142                                var html_m = '';
9143                                res.forEach(function (c, cidx) {
9144                                    html += '<div class="col-auto">';
9145                                    html += lib3p_helper.product.parseHTML(c);
9146                                    html += '</div>';
9147                                    if (cidx < 4) {
9148                                        html_m += lib3p_helper.product.parseHTML(c);
9149                                    }
9150                                    else {
9151                                        html_m += lib3p_helper.product.parseHTML(c, 'ansp');
9152                                    }
9153                                });
9154                                jQuery('.mode-desktop .page-home .home-new.product-list').html(html);
9155                                jQuery('.mode-mobile .mobile-home .product-new .product-list').html(html_m);
9156                            }
9157                        }, function (err) {
9158                            console.log(err);
9159                        });
9160                    }
9161                }
9162            }
9163        },
9164
9165        onCategoryPromotionMobile_Change: function (el, id) {
9166            lib3p.pageHome.Product_PromotionMobile(el, id);
9167        },
9168        Product_PromotionMobile: function (el, id) {
9169            if (lib3p_helper.utility.hasValue(el)) {
9170                var str = jQuery(el).data('ids');
9171                if (lib3p_helper.utility.hasValueString(str)) {
9172                    var ids = [];
9173                    (str + '').split(',').forEach(function (c) {
9174                        ids.push(parseInt(c));
9175                    });
9176                    if (ids.length > 0) {
9177                        jQuery('.mode-mobile .mobile-home .product-promotion .product-tabs .item.active').removeClass('active');
9178                        jQuery('.mode-mobile .mobile-home .product-promotion .product-tabs .item-' + id).addClass('active');
9179
9180                        lib3p.common_PostURL(window.pars3p.api.public.Home_GetProductNew, { ListID: ids }, function (res) {
9181                            if (lib3p_helper.utility.hasListValue(res)) {
9182                                //var html = '';
9183                                var html_m = '';
9184                                res.forEach(function (c, cidx) {
9185                                    //html += '<div class="col-auto">';
9186                                    //html += lib3p_helper.product.parseHTML(c);
9187                                    //html += '</div>';
9188                                    if (cidx < 4) {
9189                                        //html_m += lib3p_helper.product.parseHTML(c);
9190                                        html_m += lib3p_helper.product.parseWithGTM(c, 'gtm-home-product', 'mobile', 'Khuyến mãi');
9191                                    }
9192                                    else {
9193                                        //html_m += lib3p_helper.product.parseHTML(c, 'ansp');
9194                                        html_m += lib3p_helper.product.parseWithGTM(c, 'gtm-home-product', 'mobile', 'Khuyến mãi', 'ansp');
9195                                    }
9196                                });
9197                                jQuery('.mode-mobile .mobile-home .product-promotion .product-list').html(html_m);
9198                                jQuery('.mode-mobile .mobile-home .product-promotion .xemthem').show();
9199                            }
9200                        }, function (err) {
9201                            console.log(err);
9202                        });
9203                    }
9204                }
9205            }
9206        },
9207        onCategoryNewMobile_Change: function (el, id) {
9208            lib3p.pageHome.Product_NewMobile(el, id);
9209        },
9210        Product_NewMobile: function (el, id) {
9211            if (lib3p_helper.utility.hasValue(el)) {
9212                var str = jQuery(el).data('ids');
9213                if (lib3p_helper.utility.hasValueString(str)) {
9214                    var ids = [];
9215                    (str + '').split(',').forEach(function (c) {
9216                        ids.push(parseInt(c));
9217                    });
9218                    if (ids.length > 0) {
9219                        jQuery('.mode-mobile .mobile-home .product-new .product-tabs .item.active').removeClass('active');
9220                        jQuery('.mode-mobile .mobile-home .product-new .product-tabs .item-' + id).addClass('active');
9221
9222                        lib3p.common_PostURL(window.pars3p.api.public.Home_GetProductNew, { ListID: ids }, function (res) {
9223                            if (lib3p_helper.utility.hasListValue(res)) {
9224                                //var html = '';
9225                                var html_m = '';
9226                                res.forEach(function (c, cidx) {
9227                                    //html += '<div class="col-auto">';
9228                                    //html += lib3p_helper.product.parseHTML(c);
9229                                    //html += '</div>';
9230                                    if (cidx < 4) {
9231                                        //html_m += lib3p_helper.product.parseHTML(c);
9232                                        html_m += lib3p_helper.product.parseWithGTM(c, 'gtm-home-product', 'mobile', 'Sản phẩm mới');
9233                                    }
9234                                    else {
9235                                        //html_m += lib3p_helper.product.parseHTML(c, 'ansp');
9236                                        html_m += lib3p_helper.product.parseWithGTM(c, 'gtm-home-product', 'mobile', 'Sản phẩm mới', 'ansp');
9237                                    }
9238                                });
9239                                jQuery('.mode-mobile .mobile-home .product-new .product-list').html(html_m);
9240                                jQuery('.mode-mobile .mobile-home .product-new .xemthem').show();
9241                            }
9242                        }, function (err) {
9243                            console.log(err);
9244                        });
9245                    }
9246                }
9247            }
9248        },
9249
9250        onPromotionXemThem: function (el) {
9251            var query = jQuery(el).closest('.product-promotion');
9252            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9253                jQuery(query[0]).find('.product-list .product-item.ansp').removeClass('ansp');
9254                jQuery(el).closest('.xemthem').hide();
9255            }
9256        },
9257        onNewXemThem: function (el) {
9258            var query = jQuery(el).closest('.product-new');
9259            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9260                jQuery(query[0]).find('.product-list .product-item.ansp').removeClass('ansp');
9261                jQuery(el).closest('.xemthem').hide();
9262            }
9263        },
9264        onBestSellerXemThem: function (el) {
9265            var query = jQuery(el).closest('.bestseller');
9266            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9267                jQuery(query[0]).find('.product-list .product-item.ansp').removeClass('ansp');
9268                jQuery(el).closest('.xemthem').hide();
9269            }
9270        },
9271    },
9272
9273    //D:\_Working\3ps\HachiWeb\HachiWebsite2\HachiWeb.WebApp\Sources\hachi_PageListProduct.ascx
9274    //D:\_Working\3ps\HachiWeb\HachiWebsite2\HachiWeb.WebApp\Sources\Controls\hachi_tagSubCategoryMenu.ascx
9275    //D:\_Working\3ps\HachiWeb\HachiWebsite2\HachiWeb.WebApp\Sources\Controls\hachi_tagFilterPriority.ascx
9276    //D:\_Working\3ps\HachiWeb\HachiWebsite2\HachiWeb.WebApp\Sources\Controls\hachi_tagFilterCategory.ascx
9277    //D:\_Working\3ps\HachiWeb\HachiWebsite2\HachiWeb.WebApp\Sources\Controls\hachi_tagFilterPrice.ascx
9278    //D:\_Working\3ps\HachiWeb\HachiWebsite2\HachiWeb.WebApp\Sources\Controls\hachi_tagFilterBrand.ascx
9279    //D:\_Working\3ps\HachiWeb\HachiWebsite2\HachiWeb.WebApp\Sources\Controls\hachi_tagBrandList.ascx
9280    //D:\_Working\3ps\HachiWeb\HachiWebsite2\HachiWeb.WebApp\Sources\Controls\hachi_tagProductList.ascx
9281    //D:\_Working\3ps\HachiWeb\HachiWebsite2\HachiWeb.WebApp\Sources\hachi_PageListBrand.ascx
9282    //D:\_Working\3ps\HachiWeb\HachiWebsite2\HachiWeb.WebApp\Sources\hachi_PageSearch.ascx
9283
9284    pageProductCategory: {
9285        Data: {
9286            MobileFilter_CateID: -1
9287        },
9288        init: function () {
9289            var query = jQuery('.page-product-category');
9290            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9291                lib3p.pageProductCategory.init_async().then(function (data) { }, function (err) { console.log(err); });
9292            }
9293        },
9294        init_async: function () {
9295            return new Promise(function (resolve, reject) {
9296                setTimeout(function () {
9297                    lib3p.pageCart.OtherPage();
9298                    lib3p.common_urllastSet(window.location.href);
9299                    //lib3p.header.LoadTotalChip();
9300
9301                    var query = jQuery('.page-outline.khuyenmai-brand .container .tomtat');
9302                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9303                        var html = query.html();
9304                        var strs = html.split(' ');
9305                        if (strs.length > 80) {
9306                            var sub = '';
9307                            for (var i = 0; i <= 80; i++) {
9308                                sub += strs[i] + ' ';
9309                            }
9310                            query.html('<div class="data-show">' + sub + '...<a class="btn-xemthem s14 cl-gregray550 regular400" onclick="lib3p.pageProductCategory.onMore2_Click(this)">Xem thêm</a></div>' +
9311                                '<div class="data-hide">' + html + ' <a class="btn-xemthem s14 cl-gregray550 regular400" onclick="lib3p.pageProductCategory.onMore2_Click(this)">Thu gọn</a></div>');
9312                        }
9313                    }
9314                    query = jQuery('.page-product-category .search-empty-banner');
9315                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9316                        if (lib3p_helper.utility.hasListValue(window.pars3p.others.ListBanner)) {
9317                            var lstBanners = window.pars3p.others.ListBanner.filter(function (c) { return c.TypeData == 16; });
9318                            if (lib3p_helper.utility.hasListValue(lstBanners)) {
9319                                var html7 = '';
9320                                var html7_m = '';
9321                                lstBanners.forEach(function (c, cidx) {
9322                                    if (lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
9323                                        if (c.Link.indexOf('?') > 0) {
9324                                            c.Link = c.Link + '&' + window.pars3p.seo.Query;
9325                                        }
9326                                        else {
9327                                            c.Link = c.Link + '?' + window.pars3p.seo.Query;
9328                                        }
9329                                    }
9330
9331                                    if (c.TypeData == 16) {
9332                                        html7 += '<div class="col-lg-3"><a href="' + c.Link + '"><img src="' + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a></div>';
9333                                        html7_m += '<a class="item" href="' + c.Link + '"><img src="' + c.Image + '" alt="' + c.Name + '" loading="lazy" /></a>';
9334                                    }
9335                                });
9336                                html7 += '';
9337                                query.html(html7);
9338                                jQuery('.mobile-product-category .search-empty-banner').html(html7_m);
9339                                jQuery('.mobile-product-category .search-empty-banner').owlCarousel({
9340                                    autoplay: false,
9341                                    autoplayHoverPause: false,
9342                                    loop: false,
9343                                    nav: false,
9344                                    dots: false,
9345                                    autoWidth: true,
9346                                    margin: 5,
9347                                });
9348                            }
9349                        }
9350                    }
9351
9352                    //trang tìm kiếm
9353                    jQuery('.mobile-product-category .ketqua-tin').hide();
9354
9355                }, window.pars3p.timeAsync);
9356            });
9357        },
9358        onPopupFilterCate_Click: function (el, id) {
9359            jQuery('.popup-mobile-product-category-filter .search-category .tree-item.choose').removeClass('choose');
9360            lib3p.pageProductCategory.Data.MobileFilter_CateID = id;
9361            jQuery(el).closest('.tree-item').addClass('choose');
9362
9363            return false;
9364        },
9365        onPopupFilter_Show: function () {
9366            var query = jQuery('.popup-mobile-product-category-filter .hachi-modal');
9367            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9368                if (jQuery(query[0]).hasClass("d-none")) {
9369                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
9370                }
9371            }
9372        },
9373        onPopupFilter_Close: function () {
9374            var query = jQuery('.popup-mobile-product-category-filter .hachi-modal');
9375            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9376                if (jQuery(query[0]).hasClass("d-block")) {
9377                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
9378                }
9379            }
9380            return false;
9381        },
9382        onPopupFilter_Submit: function (event, urlsearch) {
9383            if (lib3p_helper.utility.hasValue(event) && lib3p_helper.utility.hasValue(event.preventDefault)) {
9384                lib3p.pageProductCategory.PopupFilter_Submit(urlsearch);
9385                event.preventDefault();
9386            }
9387            return false;
9388        },
9389        onPopupFilterClear_Click: function (el) {
9390            var query = jQuery('.popup-mobile-product-category-filter form');
9391            var frm = query[0];
9392            frm.min.value = null;
9393            frm.max.value = null;
9394            jQuery('.popup-mobile-product-category-filter form .search-priority input[type="checkbox"]').each(function () {
9395                this.checked = false;
9396            });
9397            jQuery('.popup-mobile-product-category-filter .search-brand .search-input input')[0].value = null;
9398            jQuery('.popup-mobile-product-category-filter form .search-brand-result input[type="checkbox"]').each(function () {
9399                this.checked = false;
9400            });
9401            lib3p.pageProductCategory.Data.MobileFilter_CateID = null;
9402            jQuery('.popup-mobile-product-category-filter .search-category .tree-item.choose').removeClass('cho
9402ose');
9403
9404            return false;
9405        },
9406        onPopupFilterBrand_KeyDown: function (event, el) {
9407            var query = jQuery(el).closest('.search-brand');
9408            var enter = event.keyCode == 13;
9409            if (enter == true) {
9410                event.preventDefault();
9411            }
9412            setTimeout(function () {
9413                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9414                    var flag = false;
9415                    if (lib3p_helper.utility.hasValueString(el.value)) {
9416                        flag = true;
9417                    }
9418                    if (flag == true) {
9419                        jQuery(query[0]).removeClass('haserror');
9420                    }
9421                    else {
9422                        if (!jQuery(query[0]).hasClass('haserror')) {
9423                            jQuery(query[0]).addClass('haserror');
9424                        }
9425                    }
9426                    if (enter == true) {
9427                        lib3p.pageProductCategory.onPopupFilterBrand_Click();
9428                    }
9429                }
9430            }, 100);
9431        },
9432        onPopupFilterBrand_Click: function () {
9433            jQuery('.popup-mobile-product-category-filter .search-brand').find('div.error').html('');
9434            var data = {
9435                search: ''
9436            };
9437
9438            var ctr = jQuery('.popup-mobile-product-category-filter .search-brand .search-input input')[0];
9439            data.search = ctr.value;
9440            if (lib3p_helper.utility.hasValueString(ctr.value)) {
9441                data.search = data.search.toLowerCase();
9442                var query = jQuery(".popup-mobile-product-category-filter .filter-box .search-brand-result label[filter*='" + data.search + "']");
9443                if (query && query.length > 0) {
9444                    jQuery(".popup-mobile-product-category-filter .filter-box .search-brand-result label").hide();
9445                    query.show();
9446                    query = jQuery(ctr).closest('.brand-outline');
9447                    if (query && query.length > 0) {
9448                        if (!jQuery(query[0]).hasClass("hienthi")) {
9449                            jQuery(query[0]).addClass("hienthi");
9450                        }
9451                    }
9452                }
9453                else {
9454                    jQuery('.popup-mobile-product-category-filter .search-brand div.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Không tìm thấy thương hiệu này</span>');
9455                    jQuery(".popup-mobile-product-category-filter .filter-box .search-brand-result label").hide();
9456                    query = jQuery(ctr).closest('.brand-outline');
9457                    if (query && query.length > 0) {
9458                        if (jQuery(query[0]).hasClass("hienthi")) {
9459                            jQuery(query[0]).addClass("hienthi");
9460                        }
9461                    }
9462                }
9463            }
9464            else {
9465                jQuery(".popup-mobile-product-category-filter .filter-box .search-brand-result label").show();
9466            }
9467            return false;
9468        },
9469        PopupFilter_Submit: function (urlsearch) {
9470            var query = jQuery('.popup-mobile-product-category-filter form');
9471            var frm = query[0];
9472
9473            var data = {
9474                min: 0,
9475                max: 0
9476            };
9477            var ctr = frm.min;
9478            if (lib3p_helper.utility.hasValueString(ctr.value)) {
9479                try {
9480                    data.min = parseFloat(ctr.value);
9481                }
9482                catch {
9483                    data.min = 0;
9484                }
9485            }
9486            ctr = frm.max;
9487            if (lib3p_helper.utility.hasValueString(ctr.value)) {
9488                try {
9489                    data.max = parseFloat(ctr.value);
9490                }
9491                catch {
9492                    data.max = 0;
9493                }
9494            }
9495            var flag = true;
9496            if (data.min > 0 || data.max > 0) {
9497                if (data.min > 0 && data.max > 0 && data.min > data.max) {
9498                    ctr = frm.max;
9499                    if (!jQuery(ctr).hasClass('error')) {
9500                        jQuery(ctr).addClass('error');
9501                    }
9502                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
9502<span class="s13 cl-gregray600 regular400">Nhập sai giá</span>');
9503                    flag = false;
9504                }
9505            }
9506            if (flag == true) {
9507                var link = urlsearch + '&p=1&s=30';
9508                if (data.min > 0 || data.max > 0) {
9509                    link += '&pr=' + data.min + ',' + data.max;
9510                }
9511                var pi = '';
9512                jQuery('.popup-mobile-product-category-filter form .search-priority input[type="checkbox"]').each(function () {
9513                    if (this.checked == true) {
9514                        var val = jQuery(this).val();
9515                        pi += ',' + val;
9516                    }
9517                });
9518                if (lib3p_helper.utility.hasValueString(pi)) {
9519                    pi = pi.substr(1);
9520                    link += '&pi=' + pi;
9521                }
9522                var br = '';
9523                jQuery('.popup-mobile-product-category-filter form .search-brand-result input[type="checkbox"]').each(function () {
9524                    if (this.checked == true) {
9525                        var val = jQuery(this).val();
9526                        br += ',' + val;
9527                    }
9528                });
9529                if (lib3p_helper.utility.hasValueString(br)) {
9530                    br = br.substr(1);
9531                    link += '&b=' + br;
9532                }
9533                if (lib3p.pageProductCategory.Data.MobileFilter_CateID > 0) {
9534                    link += '&c=' + lib3p.pageProductCategory.Data.MobileFilter_CateID;
9535                }
9536                window.location = link;
9537            }
9538        },
9539
9540        onPopupFilterPrice_Submit: function (event) {
9541            var data = {
9542                min: 0,
9543                max: 0
9544            };
9545
9546            var ctr = event.target.min;
9547            if (lib3p_helper.utility.hasValueString(ctr.value)) {
9548                try {
9549                    data.min = parseFloat(ctr.value);
9550                }
9551                catch {
9552                    data.min = 0;
9553                }
9554            }
9555            ctr = event.target.max;
9556            if (lib3p_helper.utility.hasValueString(ctr.value)) {
9557                try {
9558                    data.max = parseFloat(ctr.value);
9559                }
9560                catch {
9561                    data.max = 0;
9562                }
9563            }
9564
9565            if (data.min > 0 || data.max > 0) {
9566                //var url = lib3p_helper.utility.stringFormat(url, data.min, data.max);
9567                //window.location = url;
9568            }
9569
9570            event.preventDefault();
9571        },
9572        onPrice_KeyDown: function (event, el) {
9573            var query = jQuery(el).closest('form');
9574            setTimeout(function () {
9575                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9576                    var flag = false;
9577                    var ctr = query[0].min;
9578                    if (lib3p_helper.utility.hasValueString(ctr.value)) {
9579                        flag = true;
9580                    }
9581                    ctr = query[0].max;
9582                    if (lib3p_helper.utility.hasValueString(ctr.value)) {
9583                        flag = true;
9584                    }
9585                    if (flag == true) {
9586                        jQuery(query[0]).removeClass('haserror');
9587                    }
9588                    else {
9589                        if (!jQuery(query[0]).hasClass('haserror')) {
9590                            jQuery(query[0]).addClass('haserror');
9591                        }
9592                    }
9593                }
9594            }, 100);
9595        },
9596        onBrand_KeyDown: function (event, el) {
9597            var query = jQuery(el).closest('form');
9598            setTimeout(function () {
9599                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9600                    var flag = false;
9601                    var ctr = query[0].search;
9602                    if (lib3p_helper.utility.hasValueString(ctr.value)) {
9603                        flag = true;
9604                    }
9605                    if (flag == true) {
9606                        jQuery(query[0]).removeClass('haserror');
9607                    }
9608                    else {
9609                        if (!jQuery(query[0]).hasClass('haserror')) {
9610                            jQuery(query[0]).addClass('haserror');
9611                        }
9612                    }
9613                }
9614            }, 100);
9615        },
9616
9617        onMore2_Click: function (el) {
9618            var query = jQuery(el).closest('.khuyenmai-brand').find(".tomtat");
9619            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9620                if (jQuery(query[0]).hasClass("hienthi")) {
9621                    jQuery(query[0]).removeClass("hienthi");
9622                }
9623                else {
9624                    jQuery(query[0]).addClass("hienthi");
9625                }
9626            }
9627        },
9628        onMore_Click: function (el) {
9629            var query = jQuery(el).closest('.khuyenmai-brand').find(".tomtat");
9630            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9631                if (jQuery(query[0]).hasClass("anchitiet")) {
9632                    jQuery(query[0]).removeClass("anchitiet");
9633                    jQuery(el).html('Thu gọn');
9634                }
9635                else {
9636                    jQuery(query[0]).addClass("anchitiet");
9637                    jQuery(el).html('Xem thêm');
9638                }
9639            }
9640        },
9641        onBrand_Toggle: function (el) {
9642            var query = jQuery(el).closest('.brand-outline');
9643            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9644                if (jQuery(query[0]).hasClass("hienthi")) {
9645                    jQuery(query[0]).removeClass("hienthi");
9646                }
9647                else {
9648                    jQuery(query[0]).addClass("hienthi");
9649                }
9650            }
9651        },
9652        onBrand_Search: function (event) {
9653            if (!jQuery(event.target).hasClass('haserror')) {
9654                jQuery('.page-product-category .search-brand form').find('div.error').html('');
9655                var data = {
9656                    search: ''
9657                };
9658
9659                var ctr = event.target.search;
9660                data.search = ctr.value;
9661                if (lib3p_helper.utility.hasValueString(ctr.value)) {
9662                    data.search = data.search.toLowerCase();
9663                    var query = jQuery(".page-product-category .filter-box .search-brand-result label[filter*='" + data.search + "']");
9664                    if (query && query.length > 0) {
9665                        jQuery(".page-product-category .filter-box .search-brand-result label").hide();
9666                        query.show();
9667                        //lib3p.pageProductCategory.onBrand_Toggle(event.target);
9668                        query = jQuery(event.target).closest('.brand-outline');
9669                        if (query && query.length > 0) {
9670                            if (!jQuery(query[0]).hasClass("hienthi")) {
9671                                jQuery(query[0]).addClass("hienthi");
9672                            }
9673                        }
9674                    }
9675                    else {
9676                        jQuery('.page-product-category .search-brand form div.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
9676<span class="s13 cl-gregray600 regular400">Không tìm thấy thương hiệu này</span>');
9677                    }
9678                }
9679                else {
9680                    jQuery(".page-product-category .filter-box .search-brand-result label").show();
9681                }
9682            }
9683
9684            event.preventDefault();
9685        },
9686        onFilterPrio_Click: function (el, url) {
9687            var selected = [];
9688            jQuery(el).closest('div').find('input[type="checkbox"]:checked').each(function () {
9689                selected.push(jQuery(this).val() < 0 ? '(' + (-jQuery(this).val()) + ')' : jQuery(this).val());
9690            });
9691            if (selected.length > 0) {
9692                url = lib3p_helper.utility.stringFormat(url, selected.join(','));
9693                window.location = url;
9694            }
9695        },
9696        onFilterBrand_Click: function (el, url) {
9697            var selected = [];
9698            jQuery(el).closest('div').find('input[type="checkbox"]:checked').each(function () {
9699                selected.push(jQuery(this).val() < 0 ? '(' + (-jQuery(this).val()) + ')' : jQuery(this).val());
9700            });
9701            if (selected.length > 0) {
9702                url = lib3p_helper.utility.stringFormat(url, selected.join(','));
9703                window.location = url;
9704            }
9705        },
9706        onFilterCategory_Toggle: function (el, id) {
9707            var flag = jQuery(el).closest('.tree-item').hasClass('active');
9708            var query = jQuery(el).closest('.tree-childs');
9709            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9710                jQuery(query[0]).children('.tree-childs.active').removeClass('active');
9711                jQuery(query[0]).children('.tree-item.active').removeClass('active');
9712            }
9713            else {
9714                query = jQuery(el).closest('.search-category');
9715                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9716                    jQuery(query[0]).children('.tree-childs.active').removeClass('active');
9717                    jQuery(query[0]).children('.tree-item.active').removeClass('active');
9718                }
9719            }
9720            if (flag == true) {
9721                jQuery('.page-product-category .section-2 .search-category .tree-childs.child-' + id).removeClass('active');
9722                jQuery('.mobile-product-category .filter-box .search-category .tree-childs.child-' + id).removeClass('active');
9723                jQuery(el).closest('.tree-item').removeClass('active');
9724            }
9725            else {
9726                jQuery('.page-product-category .section-2 .search-category .tree-childs.child-' + id).addClass('active');
9727                jQuery('.mobile-product-category .filter-box .search-category .tree-childs.child-' + id).addClass('active');
9728                jQuery(el).closest('.tree-item').addClass('active');
9729            }
9730        },
9731        onFilterPrice_Search: function (event, url) {
9732            if (!jQuery(event.target).hasClass('haserror')) {
9733                var data = {
9734                    min: 0,
9735                    max: 0
9736                };
9737
9738                var ctr = event.target.min;
9739                if (lib3p_helper.utility.hasValueString(ctr.value)) {
9740                    try {
9741                        data.min = parseFloat(ctr.value);
9742                    }
9743                    catch {
9744                        data.min = 0;
9745                    }
9746                }
9747                ctr = event.target.max;
9748                if (lib3p_helper.utility.hasValueString(ctr.value)) {
9749                    try {
9750                        data.max = parseFloat(ctr.value);
9751                    }
9752                    catch {
9753                        data.max = 0;
9754                    }
9755                }
9756
9757                if (data.min > 0 || data.max > 0) {
9758                    var url = lib3p_helper.utility.stringFormat(url, data.min, data.max);
9759                    window.location = url;
9760                }
9761            }
9762
9763            event.preventDefault();
9764        },
9765        onFilterPrice_Click: function (url) {
9766            window.location = url;
9767        },
9768        onMobileTabs_Click: function (el, type) {
9769            if (type == 1) {
9770                jQuery('.mobile-product-category .timkiem .ketqua-sp').show();
9771                jQuery('.mobile-product-category .timkiem .ketqua-tin').hide();
9772            }
9773            else {
9774                jQuery('.mobile-product-category .timkiem .ketqua-sp').hide();
9775                jQuery('.mobile-product-category .timkiem .ketqua-tin').show();
9776            }
9777            jQuery('.mobile-product-category .timkiem .tabs .item.active').removeClass('active');
9778            jQuery(el).closest('.item').addClass('active');
9779        },
9780
9781
9782
9783
9784
9785        onCategory_ToggleClass(e, parnent, cls) {
9786            jQuery(e).closest('.list-parent').toggleClass('open');
9787        },
9788        onGetMaxMinFilter() {
9789            var priceStart = jQuery('#min-price').val();
9790            var priceEnd = jQuery('#max-price').val();
9791
9792            if (priceStart != undefined)
9793                priceStart = priceStart.replace('đ', '').replace('.', '').replace(',', '');
9794
9795            if (priceEnd != undefined)
9796                priceEnd = priceEnd.replace('đ', '').replace('.', '').replace(',', '');
9797
9798            if (priceStart != undefined && priceStart != null && priceStart != '')
9799                priceStart = priceStart + '';
9800            else
9801                priceStart = '0';
9802
9803            if (priceEnd != undefined && priceEnd != null && priceEnd != '')
9804                priceEnd = priceEnd + '';
9805            else
9806                priceEnd = '0';
9807
9808            return {
9809                priceStart: priceStart,
9810                priceEnd: priceEnd,
9811            }
9812        },
9813        onGetCheckBoxChecked: function (e) {
9814            var selected = [];
9815            e.find('input[type="checkbox"]:checked').each(function () {
9816                selected.push(jQuery(this).val() < 0 ? '(' + (-jQuery(this).val()) + ')' : jQuery(this).val());
9817            });
9818            return selected;
9819        },
9820        onButtonFilter: function (e, url) {
9821            var selected = [];
9822            selected = lib3p.pageProductCategory.onGetCheckBoxChecked(jQuery(e).closest(".card-header").next(".card-body"));
9823
9824            if (selected.length > 0) {
9825                url = lib3p.common_StringFormat(url, selected.join(','));
9826                window.location = url;
9827            }
9828        },
9829        onButtonFilter2: function (e, url) {
9830            var selected = [];
9831            selected = lib3p.pageProductCategory.onGetCheckBoxChecked(
9832                jQuery(e).closest(".hachi_page_category_left").find(".card-header").next(".card-body")
9833            );
9834
9835            if (selected.length > 0) {
9836                url = lib3p.common_StringFormat(url, selected.join(','));
9837                window.location = url;
9838            }
9839        },
9840        onBrandSearchFilter: function (e, url, key) {
9841            if (key == 'apDung' || key == 'Enter') {
9842                var brandFilter = key == 'apDung' ? jQuery(e).closest('.input-group').find('input')
9843                    : jQuery(e).find('.input-group').find('input')
9844
9845                var brandFilterVal = brandFilter.val()
9846
9847                if (brandFilterVal != null && brandFilterVal != undefined) {
9848                    var labels = brandFilterVal.split(' ')
9849
9850                    labels.forEach(function (l) {
9851                        let cbBox = jQuery(`.container-checkbox:contains(${l.toUpperCase()})`)
9852
9853                        if (cbBox != null && cbBox != undefined)
9854                            cbBox.click()
9855                    });
9856                }
9857            }
9858        },
9859        onCheckboxFilter: function (e) {
9860            var selected = [];
9861            jQuery(e).closest(".card").find('input[type="checkbox"]:checked').each(function () {
9862                selected.push(jQuery(this).val());
9863            });
9864            jQuery(e).closest(".card").find(".btn.hachi-standard").each(function () {
9865                // jQuery(this).prop('disabled', selected.length > 0 ? false : true);//disable nút áp dụng lọc
9866                jQuery(this).prop('hidden', selected.length > 0 ? false : true)//ẩn nút áp dụng
9867            });
9868        },
9869
9870        onPriceFilter: function (e, url) {
9871            var price = lib3p.pageProductCategory.onGetMaxMinFilter();
9872            url = lib3p.common_StringFormat(url, price.priceStart, price.priceEnd);
9873            window.location = url;
9874        },
9875        onCloseMobileFilter: function (e) {
9876            jQuery(e).closest(".hachi_page_category_left").removeClass("filter-mobile");
9877        },
9878        onOpenMobileFilter: function (e) {
9879            jQuery(e).closest(".hachi_page_category").find(".hachi_page_category_left").addClass("filter-mobile");
9880        },
9881        onApDungMobileFilter: function (e, url) {
9882            var price = lib3p.pageProductCategory.onGetMaxMinFilter();
9883            var lstUuTien = lib3p.pageProductCategory.onGetCheckBoxChecked(jQuery(".tag-filter-type .card-body"));
9884            var lstBrand = lib3p.pageProductCategory.onGetCheckBoxChecked(jQuery(".tag-filter-brand .card-body"));
9885            var listCategory = lib3p.pageProductCategory.onGetCheckBoxChecked(jQuery(".tag-filter-category .card-body"));
9886
9887            if (
9888                price.priceStart !== '0' ||
9889                price.priceEnd !== '0' ||
9890                lstUuTien.length > 0 ||
9891                lstBrand.length > 0 ||
9892                listCategory.length > 0
9893            ) {
9894                var strUuTien = lstUuTien.length > 0 ? lstUuTien.join(',') : "0";
9895                var strBrand = lstBrand.length > 0 ? lstBrand.join(',') : "0";
9896                var strCategory = listCategory.length > 0 ? listCategory.join(',') : "0";
9897
9898                url = lib3p.common_StringFormat(url, strCategory, strUuTien, price.priceStart.replace('.', '') + ',' + price.priceEnd.replace('.', ''), strBrand);
9899                window.location = url;
9900            }
9901        }
9902    },
9903
9904    pageProductDetail: {
9905        Data: {
9906            IsImageClick: false
9907        },
9908        init: function () {
9909            var query = jQuery(".page-product-detail");
9910            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9911                lib3p.pageProductDetail.init_async().then(function (data) { }, function (err) { console.log(err); });
9912            }
9913        },
9914        ReloadInput: function (isfirst) {
9915            var query = jQuery(".page-product-detail");
9916            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
9917                var queryAddCart = jQuery(".page-product-detail .product-item .add-cart .group-input");
9918                if (lib3p_helper.utility.hasValue(queryAddCart) && queryAddCart.length > 0) {
9919                    var id = jQuery(query[0]).data('id');
9920
9921                    if (window.pars3p.auth.isLogin == true) {
9922                        lib3p.common_AuthPostURL(window.pars3p.api.auth.ProductDetail_GetID, { id: parseInt(id) }, function (res) {
9923                            if (lib3p_helper.utility.hasValue(res)) {
9924                                var product = res;
9925                                if (!(product.Quantity > 0 && product.QuantityWithOrder > 0)) {
9926                                    var str = '';
9927                                    if (product.StatusID != 20) {
9928                                        str = product.QuantityInStore > 0 ? "Sản phẩm ngừng kinh doanh tại web" : "Sản phẩm ngừng kinh doanh";
9929                                    }
9930                                    else {
9931                                        str = product.QuantityInStore > 0 ? "Sản phẩm tạm hết hàng tại web" : "Sản phẩm tạm hết hàng toàn hệ thống";
9932                                    }
9933                                    jQuery('.page-product-detail .product-item .add-cart').hide();
9934                                    jQuery('.page-product-detail .product-item .detail_product_info_quanlity_add.no-stock').show();
9935                                    jQuery('.page-product-detail .product-item .detail_product_info_quanlity_add.no-stock .text div').html(str);
9936
9937                                    jQuery('.mobile-product-detail .product-item .add-cart').hide();
9938                                    jQuery('.mobile-product-detail .product-item .detail_product_info_quanlity_add.no-stock').show();
9939                                    jQuery('.mobile-product-detail .product-item .detail_product_info_quanlity_add.no-stock .text div').html(str);
9940                                }
9941                                else {
9942                                    if (isfirst == true) {
9943                                        jQuery(".page-product-detail .group-input input.input").attr('max', product.QuantityWithOrder);
9944                                        if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
9945                                            var find = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == id; });
9946                                            if (lib3p_helper.utility.hasValue(find)) {
9947                                                jQuery(".page-product-detail .group-input input.input").val(find.OrderQuantity);
9948                                                lib3p.pageProductDetail.onProduct_QuantityChange(null, product.Barcode);
9949                                            }
9950                                        }
9951                                    }
9952                                }
9953                            }
9954                        }, function (err) {
9955                            lib3p.log(err);
9956                        });
9957                    }
9958                    else {
9959                        lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: [parseInt(id)] }, function (res) {
9960                            if (lib3p_helper.utility.hasListValue(res)) {
9961                                var product = res[0];
9962                                if (!(product.Quantity > 0 && product.QuantityWithOrder > 0)) {
9963                                    var str = '';
9964                                    if (product.StatusID != 20) {
9965                                        str = product.QuantityInStore > 0 ? "Sản phẩm ngừng kinh doanh tại web" : "Sản phẩm ngừng kinh doanh";
9966                                    }
9967                                    else {
9968                                        str = product.QuantityInStore > 0 ? "Sản phẩm tạm hết hàng tại web" : "Sản phẩm tạm hết hàng toàn hệ thống";
9969                                    }
9970                                    jQuery('.page-product-detail .product-item .add-cart').hide();
9971                                    jQuery('.page-product-detail .product-item .detail_product_info_quanlity_add.no-stock').show();
9972                                    jQuery('.page-product-detail .product-item .detail_product_info_quanlity_add.no-stock .text div').html(str);
9973
9974                                    jQuery('.mobile-product-detail .product-item .add-cart').hide();
9975                                    jQuery('.mobile-product-detail .product-item .detail_product_info_quanlity_add.no-stock').show();
9976                                    jQuery('.mobile-product-detail .product-item .detail_product_info_quanlity_add.no-stock .text div').html(str);
9977                                }
9978                                else {
9979                                    if (isfirst == true) {
9980                                        jQuery(".page-product-detail .group-input input.input").attr('max', product.QuantityWithOrder);
9981                                        if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
9982                                            var find = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == id; });
9983                                            if (lib3p_helper.utility.hasValue(find)) {
9984                                                jQuery(".page-product-detail .group-input input.input").val(find.OrderQuantity);
9985                                                lib3p.pageProductDetail.onProduct_QuantityChange(null, product.Barcode);
9986                                            }
9987                                        }
9988                                    }
9989                                }
9990                            }
9991                        }, function (err) {
9992                            lib3p.log(err);
9993                        });
9994                    }
9995                }
9996            }
9997        },
9998        init_async: function () {
9999            return new Promise(function (resolve, reject) {
10000                setTimeout(function () {
10001                    lib3p.pageCart.OtherPage();
10002
10003                    var query = jQuery(".page-product-detail");
10004                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10005                        var wImage = lib3p.common_GetWidthBrowser();
10006                        if (wImage > 800) {
10007
10008                        }
10009                        else {
10010                            if (jQuery(window).scrollTop() == 0) {
10011                                setTimeout(function () {
10012                                    jQuery(window).scrollTop(120);
10013                                }, 2000);
10014                            }
10015                        }
10016                        lib3p.pageProductDetail.ReloadInput(true);
10017
10018                        jQuery('.mode-desktop .product-gift .danh-sach .owl-carousel').owlCarousel({
10019                            autoplay: false,
10020                            autoplayTimeout: 3000,
10021                            autoplayHoverPause: true,
10022                            autoWidth: false,
10023                            loop: false,
10024                            nav: true,
10025                            dots: false,
10026                            items: 1,
10027                            navText: ['<button type="button" aria-label="hachihachi" class="icon-left"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>', '<button type="button" aria-label="hachihachi" class="icon-right"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>'],
10028                            navElement: 'div'
10029                        });
10030                        jQuery('.mode-mobile .product-gift .danh-sach .owl-carousel').owlCarousel({
10031                            autoplay: false,
10032                            autoplayTimeout: 3000,
10033                            autoplayHoverPause: true,
10034                            autoWidth: false,
10035                            loop: false,
10036                            nav: false,
10037                            dots: false,
10038                            items: 1,
10039                        });                       
10040
10041                        query = jQuery(".mobile-product-detail .product-image .danhsach-hinh.owl-carousel");
10042                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10043                            if (wImage > 100) {
10044                                wImage -= 30;
10045                                jQuery(".mobile-product-detail .product-image .danhsach-hinh.owl-carousel div.item").css({ width: wImage });
10046                            }
10047                            var dsHinhChinh = query.owlCarousel({
10048                                autoplay: false,
10049                                autoWidth: true,
10050                                loop: false,
10051                                nav: true,
10052                                dots: false,
10053                                items: 1,
10054                                margin: 0,
10055                                navText: ['<button type="button" aria-label="hachihachi" class="icon-left"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>', '<button type="button" aria-label="hachihachi" class="icon-right"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>'],
10056                                navElement: 'div'
10057                            });
10058                            dsHinhChinh.on('change.owl.carousel', function (event) {
10059                                if (lib3p.pageProductDetail.Data.IsImageClick != true) {
10060                                    jQuery('.mobile-product-detail .product-image .danhsach.owl-carousel').trigger('to.owl.carousel', event.property.value);
10061                                    jQuery('.mobile-product-detail .product-image .danhsach.owl-carousel .item.active').removeClass('active');
10062                                    jQuery(jQuery('.mobile-product-detail .product-image .danhsach.owl-carousel .item')[event.property.value]).addClass('active');
10063                                }
10064
10065                                if (event.property.value == 0) {
10066                                    jQuery(".mobile-product-detail .product-image .imgbackground").show();
10067                                    jQuery(".mobile-product-detail .product-image .imgbackgroundncc1").show();
10068                                }
10069                                else {
10070                                    jQuery(".mobile-product-detail .product-image .imgbackground").hide();
10071                                    jQuery(".mobile-product-detail .product-image .imgbackgroundncc1").hide();
10072                                }
10073
10074                            });
10075                        }
10076                        query = jQuery(".popup-image-zoom .modal-content .danhsach.owl-carousel");
10077                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10078                            var dsHinhChinh = query.owlCarousel({
10079                                autoplay: false,
10080                                autoWidth: true,
10081                                loop: false,
10082                                nav: false,
10083                                dots: false,
10084                                items: 1,
10085                                margin: 0,
10086                                navText: ['<button type="button" aria-label="hachihachi" class="icon-left"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>', '<button type="button" aria-label="hachihachi" class="icon-ri
10086ght"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>'],
10087                                navElement: 'div'
10088                            });
10089                            lib3p.myzoom.init(jQuery('.popup-image-zoom .main img.hinh-zoom')[0]);
10090                        }
10091
10092                        query = jQuery(".slide-image-product .owl-carousel");
10093                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10094                            if (wImage >= 900) {
10095                                var slideChiTietSP = jQuery(".slide-image-product .owl-carousel");
10096                                var listImage = jQuery(".slide-image-product .list-image .url");
10097                                var listType = jQuery(".detail_product_info .detail_product_info_type.web-type .list-type .badge");
10098                                var popupSlideChiTietSP = jQuery("#hachi-product-popup-image .popup-slide-image-product .owl-carousel");
10099                                var popupListImage = jQuery("#hachi-product-popup-image .popup-slide-image-product .list-image .url");
10100                                var popuplistType = jQuery(" #hachi-product-popup-image .detail_product_info .popup_detail_product_info_type .popup-list-type .badge");
10101                                //active hình nhỏ khi khởi tạo slide
10102                                slideChiTietSP.on('initialized.owl.carousel', function (event) {
10103                                    var current = event.item.index;
10104                                    let curImg = listImage.eq(current)
10105                                    let curTypeIndex = -1
10106
10107                                    listImage.removeClass("active");
10108                                    listImage.eq(current).addClass("active");
10109                                    popupListImage.removeClass("active");
10110                                    popupListImage.eq(current).addClass("active");
10111
10112                                    if (listType && listType.length > 0) {
10113                                        listType.map(function (i) {
10114                                            if (listType.eq(i).attr("data-link") == curImg.attr("data-link"))
10115                                                curTypeIndex = i
10116                                        });
10117
10118                                        listType.removeClass("active");
10119                                        if (curTypeIndex > -1)
10120                                            listType.eq(curTypeIndex).addClass("active");
10121                                    }
10122
10123                                    if (popuplistType && popuplistType.length > 0) {
10124                                        popuplistType.removeClass("active");
10125                                        if (curTypeIndex > -1)
10126                                            popuplistType.eq(curTypeIndex).addClass("active");
10127                                    }
10128                                    var img = jQuery(".slide-image-product .owl-carousel .owl-item.active .item img");
10129                                    var w = lib3p.common_GetWidthBrowser();
10130                                    if (w > 600) {
10131                                        img.attr("data-zoom-image", img.attr("src"));
10132                                        img.ezPlus();
10133                                    }
10134                                });
10135                                slideChiTietSP.owlCarousel({
10136                                    dots: false,
10137                                    margin: 0,
10138                                    nav: false,
10139                                    navText: [
10140                                        '<span class="hachi-icon-left"></span>',
10141                                        '<span class="hachi-icon-right"></span>'
10142                                    ],
10143                                    navElement: 'div',
10144                                    items: 1,
10145                                    loop: false,
10146                                });
10147                                slideChiTietSP.on('change.owl.carousel', function (event) {
10148                                    var w = lib3p.common_GetWidthBrowser();
10149                                    if (w > 600) {
10150                                        var img = jQuery(".slide-image-product .owl-carousel .owl-item.active .item img").data("ezPlus");
10151                                        if (lib3p_helper.utility.hasValue(img) && lib3p_helper.utility.hasValue(img.changeState)) {
10152                                            img.changeState('disable');
10153                                        }
10154                                    }
10155                                });
10156
10157                                //active hình nhỏ khi slide thay đổi
10158                                slideChiTietSP.on('changed.owl.carousel', function (event) {
10159                                    var current = event.item.index;
10160                                    var curImg = listImage.eq(current)
10161                                    var curTypeIndex = -1
10162
10163                                    listImage.removeClass("active");
10164                                    listImage.eq(current).addClass("active");
10165                                    popupListImage.removeClass("active");
10166                                    popupListImage.eq(current).addClass("active");
10167
10168                                    if (listType && listType.length > 0) {
10169                                        listType.map(function (i) {
10170                                            if (listType.eq(i).attr("data-link") == curImg.attr("data-link"))
10171                                                curTypeIndex = i
10172                                        });
10173
10174                                        listType.removeClass("active");
10175                                        if (curTypeIndex > -1)
10176                                            listType.eq(curTypeIndex).addClass("active");
10177                                    }
10178
10179                                    if (popuplistType && popuplistType.length > 0) {
10180                                        popuplistType.removeClass("active");
10181                                        if (curTypeIndex > -1)
10182                                            popuplistType.eq(curTypeIndex).addClass("active");
10183                                    }
10184                                    var w = lib3p.common_GetWidthBrowser();
10185                                    if (w > 600) {
10186                                        setTimeout(function () {
10187                                            var img = jQuery(".slide-image-product .owl-carousel .owl-item.active .item img");
10188                                            var ezPlus = img.data("ezPlus");
10189                                            if (ezPlus != undefined) {
10190                                                ezPlus.changeState('enable');
10191                                                ezPlus.refresh();
10192
10193                                            } else {
10194                                                img.attr("data-zoom-image", img.attr("src"));
10195                                                img.ezPlus();
10196                                            }
10197
10198                                        }, 300);
10199                                    }
10200                                    popupSlideChiTietSP.trigger('to.owl.carousel', current);
10201                                });
10202
10203                                listImage.on("click", function (e) {
10204                                    e.preventDefault();
10205                                    var el = jQuery(this).index();
10206                                    if (el == 0) {
10207                                        jQuery(".page-product-detail .product-list-image .imgbackground").show();
10208                                        jQuery(".page-product-detail .product-list-image .imgbackgroundncc1").show();
10209                                    }
10210                                    else {
10211                                        jQuery(".page-product-detail .product-list-image .imgbackground").hide();
10212                                        jQuery(".page-product-detail .product-list-image .imgbackgroundncc1").hide();
10213                                    }
10214                                    slideChiTietSP.trigger('to.owl.carousel', el);
10215                                    popupSlideChiTietSP.trigger('to.owl.carousel', el);
10216                                });
10217
10218                                let curImgIndex = -1
10219
10220                                if (listType && listType.length > 0) {
10221                                    listType.on("click", function (e) {
10222                                        e.preventDefault();
10223                                        var el = jQuery(this).index();
10224
10225                                        if (listImage && listImage.length > 0)
10226                                            listImage.map(function (i) {
10227                                                if (listImage.eq(i).attr("data-link") == listType.eq(el).attr("data-link"))
10228                                                    curImgIndex = i
10229                                            });
10230
10231                                        slideChiTietSP.trigger('to.owl.carousel', curImgIndex);
10232                                        popupSlideChiTietSP.trigger('to.owl.carousel', curImgIndex);
10233                                    });
10234                                };
10235
10236                                if (popuplistType && popuplistType.length > 0) {
10237                                    popuplistType.on("click", function (e) {
10238                                        e.preventDefault();
10239                                        // var el = jQuery(this).index();
10240
10241                                        slideChiTietSP.trigger('to.owl.carousel', curImgIndex);
10242                                        popupSlideChiTietSP.trigger('to.owl.carousel', curImgIndex);
10243                                    });
10244                                }
10245                                //popup
10246                                popupSlideChiTietSP.owlCarousel({
10247                                    dots: false,
10248                                    margin: 0,
10249                                    nav: false,
10250                                    navText: [
10251                                        '<span class="hachi-icon-left"></span>',
10252                                        '<span class="hachi-icon-right"></span>'
10253                                    ],
10254                                    navElement: 'div',
10255                                    items: 1,
10256                                    loop: false,
10257
10258                                });
10259                                popupSlideChiTietSP.on('changed.owl.carousel', function (event) {
10260                                    var current = event.item.index;
10261                                    let curImg = listImage.eq(current)
10262                                    let curTypeIndex = -1
10263
10264                                    listImage.removeClass("active");
10265                                    listImage.eq(current).addClass("active");
10266                                    popupListImage.removeClass("active");
10267                                    popupListImage.eq(current).addClass("active");
10268
10269                                    if (listType && listType.length > 0) {
10270                                        listType.map(function (i) {
10271                                            if (listType.eq(i).attr("data-link") == curImg.attr("data-link"))
10272                                                curTypeIndex = i
10273                                        });
10274
10275                                        listType.removeClass("active");
10276                                        if (curTypeIndex > -1)
10277                                            listType.eq(curTypeIndex).addClass("active");
10278                                    }
10279                                    slideChiTietSP.trigger('to.owl.carousel', current);
10280                                });
10281
10282                                popupListImage.on("click", function (e) {
10283                                    e.preventDefault();
10284                                    var el = jQuery(this).index();
10285                                    slideChiTietSP.trigger('to.owl.carousel', el);
10286                                    popupSlideChiTietSP.trigger('to.owl.carousel', el);
10287                                });
10288                            }
10289                        }
10290
10291                        query = jQuery('.page-product-detail .sp-quan-tam .product-list.list-1 .owl-carousel');
10292                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10293                            query.owlCarousel({
10294                                autoplay: true,
10295                                autoplayTimeout: 3000,
10296                                autoplayHoverPause: true,
10297                                loop: true,
10298                                nav: false,
10299                                dots: false,
10300                                items: 1,
10301                            });
10302                        }
10303                        query = jQuery('.page-product-detail .sp-quan-tam .product-list.list-2 .owl-carousel');
10304                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10305                            query.owlCarousel({
10306                                autoplay: true,
10307                                autoplayTimeout: 2600,
10308                                autoplayHoverPause: true,
10309                                loop: true,
10310                                nav: false,
10311                                dots: false,
10312                                items: 1,
10313                            });
10314                        }
10315
10316                        if (window.pars3p.auth.isLogin == true && lib3p_helper.utility.hasValueString(window.pars3p.auth.access_token)) {
10317                            lib3p.header.ProductLike_DS(function () {
10318                                var query = jQuery('.page-product-detail button.img-like');
10319                                if (lib3p_helper.utility.hasValue(query) && query.length > 0 && lib3p_helper.utility.hasValueString(window.pars3p.productLike)) {
10320                                    var id = jQuery(query[0]).data('code');
10321                                    if (window.pars3p.productLike.indexOf('[' + id + ']') >= 0) {
10322                                        if (!jQuery(query[0]).hasClass('like')) {
10323                                            jQuery(query[0]).addClass('like');
10324                                        }
10325                                        if (!jQuery('.mobile-product-detail button.img-like').hasClass('like')) {
10326                                            jQuery('.mobile-product-detail button.img-like').addClass('like');
10327                                        }
10328                                    }
10329                                }
10330                            });
10331                        }
10332
10333                        query = jQuery('.page-product-detail .sanphamcombo div.product-list .owl-carousel');
10334                        var queryMobile = jQuery('.mobile-product-detail .sanphamcombo div.product-list .owl-carousel');
10335                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10336                            query.owlCarousel({
10337                                autoplay: false,
10338                                autoplayTimeout: 3000,
10339                                autoplayHoverPause: true,
10340                                autoWidth: false,
10341                                loop: false,
10342                                nav: true,
10343                                dots: false,
10344                                items: 3,
10345                                slideBy: 2,
10346                                margin: 20,
10347                                navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
10348                                navElement: 'div'
10349                            });
10350                            queryMobile.owlCarousel({
10351                                autoplay: false,
10352                                autoplayTimeout: 3000,
10353                                autoplayHoverPause: true,
10354                                autoWidth: false,
10355                                loop: false,
10356                                nav: false,
10357                                dots: false,
10358                                items: 1,
10359                                margin: 10,
10360                            });
10361                        }
10362
10363                        query = jQuery('.mobile-product-detail .product-image .danhsach.owl-carousel');
10364                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10365                            query.owlCarousel({
10366                                autoplay: false,
10367                                autoplayTimeout: 3000,
10368                                autoplayHoverPause: true,
10369                                loop: false,
10370                                nav: false,
10371                                dots: false,
10372                                autoWidth: true,
10373                                margin: 10,
10374                            });
10375
10376                            query = jQuery('.mobile-product-detail .danhsach.owl-carousel .item');
10377                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10378                                jQuery(query[0]).addClass('active');
10379                            }
10380                        }
10381
10382                        query = jQuery('.mode-desktop .product-item div.hachi3h');
10383                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10384                            let showHachi3h = false;
10385                            query.on('click', function (e) {
10386                                if (showHachi3h) {
10387                                    jQuery('.mode-desktop .product-item div.hachi3h .hachi3h-more').hide();
10388                                    jQuery('.mode-desktop .product-item div.hachi3h .hachi-icon-up').hide();
10389                                    jQuery('.mode-desktop .product-item div.hachi3h .hachi-icon-down').show();
10390                                    showHachi3h = false;
10391                                }
10392                                else {
10393                                    jQuery('.mode-desktop .product-item div.hachi3h .hachi3h-more').show();
10394                                    jQuery('.mode-desktop .product-item div.hachi3h .hachi-icon-up').show();
10395                                    jQuery('.mode-desktop .product-item div.hachi3h .hachi-icon-down').hide();
10396                                    showHachi3h = true;
10397                                }
10398                            });
10399                        }
10400
10401                        query = jQuery('.mobile-product-detail .mobile-outline div.hachi3h');
10402                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10403                            let showHachi3h = false;
10404                            query.on('click', function (e) {
10405                                if (showHachi3h) {
10406                                    jQuery('.mobile-product-detail .mobile-outline div.hachi3h .hachi3h-more').hide();
10407                                    jQuery('.mobile-product-detail .mobile-outline div.hachi3h .hachi-icon-up').hide();
10408                                    jQuery('.mobile-product-detail .mobile-outline div.hachi3h .hachi-icon-down').show();
10409                                    showHachi3h = false;
10410                                }
10411                                else {
10412                                    jQuery('.mobile-product-detail .mobile-outline div.hachi3h .hachi3h-more').show();
10413                                    jQuery('.mobile-product-detail .mobile-outline div.hachi3h .hachi-icon-up').show();
10414                                    jQuery('.mobile-product-detail .mobile-outline div.hachi3h .hachi-icon-down').hide();
10415                                    showHachi3h = true;
10416                                }
10417                            });
10418                        }
10419                    }
10420                }, window.pars3p.timeAsync);
10421            });
10422        },
10423        onGift_Click: function (el) {
10424            var query = jQuery(el).closest('.product-gift');
10425            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10426                if (query.hasClass("open")) {
10427                    query.removeClass("open");
10428                }
10429                else {
10430                    query.addClass("open");
10431                }
10432            }
10433        },
10434        onImageMobile_Click: function (el) {
10435            var query = jQuery(el).closest('.item');
10436            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10437                lib3p.pageProductDetail.Data.IsImageClick = true;
10438                setTimeout(function () { lib3p.pageProductDetail.Data.IsImageClick = false; }, 500);
10439                var ix = jQuery(el).closest('.owl-item').index();
10440                jQuery('.mobile-product-detail .product-image .danhsach-hinh.owl-carousel').trigger('to.owl.carousel', ix);
10441                jQuery('.mobile-product-detail .danhsach.owl-carousel .item.active').removeClass('active');
10442                jQuery(query[0]).addClass('active');
10443            }
10444        },
10445        onImageZoom_Click: function (el) {
10446            //jQuery('.popup-image-zoom .main img.hinh-zoom').attr('src', jQuery(el).find('img').attr('src'));            
10447            lib3p.myzoom.openPopup(jQuery(el).find('img')[0]);
10448            var query = jQuery('.popup-image-zoom .hachi-modal');
10449            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10450                if (jQuery(query[0]).hasClass("d-none")) {
10451                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
10452                }
10453            }
10454        },
10455        onImageZoomItem_Click: function (el) {
10456            var src = jQuery(el).find('img').attr('src');
10457
10458            lib3p.myzoom.changeImage(src);
10459        },
10460        onImageZoomClose_Click: function (el) {
10461            var query = jQuery('.popup-image-zoom .hachi-modal');
10462            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10463                if (jQuery(query[0]).hasClass("d-block")) {
10464                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
10465                }
10466            }
10467        },
10468        onProduct_Like: function (el, id) {
10469            var query = jQuery('.page-product-detail button.img-like');
10470            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10471                if (window.pars3p.auth.isLogin == true && lib3p_helper.utility.hasValueString(window.pars3p.auth.access_token)) {
10472                    var id = jQuery(query[0]).data('code');
10473                    lib3p.header.ProductLike_Change(id, function () {
10474                        if (jQuery(query[0]).hasClass('like')) {
10475                            jQuery(query[0]).removeClass('like');
10476                        }
10477                        else {
10478                            jQuery(query[0]).addClass('like');
10479                        }
10480                        lib3p.header.LoadLikeChip();
10481                    });
10482                }
10483                else {
10484                    lib3p.header.onPopupLikeConfirm_Show();
10485                    //lib3p.common_urllastSet(window.location.href);
10486                    //window.location.href = window.pars3p.urlLogin;
10487                }
10488            }
10489        },
10490        onMore_Click: function (el) {
10491            var query = jQuery(el).closest('.mo-ta').find(".mo-ta-sp");
10492            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10493                if (jQuery(query[0]).hasClass("anchitiet")) {
10494                    jQuery(query[0]).removeClass("anchitiet");
10495                    jQuery(el).html('Thu gọn');
10496                    jQuery(query[0]).find(".gradient").hide();
10497                }
10498                else {
10499                    jQuery(query[0]).addClass("anchitiet");
10500                    jQuery(el).html('Xem thêm');
10501                    jQuery(query[0]).find(".gradient").show();
10502                }
10503            }
10504        },
10505        onDanhGia_Toggle: function (el) {
10506            var query = jQuery(el).closest('.danh-gia');
10507            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10508                if (jQuery(query[0]).hasClass("hienthi")) {
10509                    jQuery(query[0]).removeClass("hienthi");
10510                }
10511                else {
10512                    jQuery(query[0]).addClass("hienthi");
10513                }
10514            }
10515        },
10516        onProduct_QuantityKeyDown: function (event, el) {
10517            setTimeout(function () {
10518                var val = jQuery(el).val();
10519                var max = jQuery(el).attr('max');
10520                try {
10521                    if (lib3p_helper.utility.hasValueString(val)) {
10522                        val = parseInt(val);
10523                        if (lib3p_helper.utility.hasValueString(max)) {
10524                            max = parseInt(max);
10525                        }
10526                        else {
10527                            max = 0;
10528                        }
10529                        if (val > max) {
10530                            val = max;
10531                            jQuery(el).val(val);
10532                        }
10533                        if (val <= 1) {
10534                            jQuery('.page-product-detail .group-input .sub').attr('disabled', true);
10535                        }
10536                        else {
10537                            jQuery('.page-product-detail .group-input .sub').attr('disabled', false);
10538                        }
10539                        if (val >= max) {
10540                            jQuery('.page-product-detail .group-input .add').attr('disabled', true);
10541                        }
10542                        else {
10543                            jQuery('.page-product-detail .group-input .add').attr('disabled', false);
10544                        }
10545                    }
10546                }
10547                catch (e) {
10548                    console.log(e);
10549                }
10550            }, 500);
10551        },
10552        Product_QuantityEmptyShow: function () {
10553            jQuery('.page-product-detail .group-input .hetton').show();
10554            setTimeout(function () {
10555                jQuery('.page-product-detail .group-input .hetton').hide();
10556            }, 2000);
10557        },
10558        onProduct_QuantityAdd: function (el, barcode) {
10559            var val = jQuery('#' + barcode).val();
10560            var max = jQuery('#' + barcode).attr('max');
10561            try {
10562                if (lib3p_helper.utility.hasValueString(val)) {
10563                    val = parseInt(val);
10564                    if (lib3p_helper.utility.hasValueString(max)) {
10565                        max = parseInt(max);
10566                    }
10567                    else {
10568                        max = 0;
10569                    }
10570                    if (val + 1 > max) {
10571                        lib3p.pageProductDetail.Product_QuantityEmptyShow();
10572                    }
10573                    else {
10574                        val++;
10575                        jQuery('#' + barcode).val(val);
10576                    }
10577                    lib3p.pageProductDetail.onProduct_QuantityChange(el, barcode);
10578                }
10579            }
10580            catch (e) {
10581                console.log(e);
10582            }
10583        },
10584        onProduct_QuantitySub: function (el, barcode) {
10585            var val = jQuery('#' + barcode).val();
10586            try {
10587                if (lib3p_helper.utility.hasValueString(val)) {
10588                    val = parseInt(val);
10589                    val--;
10590                    if (val < 1) {
10591                        val = 1;
10592                    }
10593                    jQuery('#' + barcode).val(val);
10594                    lib3p.pageProductDetail.onProduct_QuantityChange(el, barcode);
10595                }
10596            }
10597            catch (e) {
10598                console.log(e);
10599            }
10600        },
10601        onProduct_QuantityChange: function (el, barcode) {
10602            var val = jQuery('#' + barcode).val();
10603            var max = jQuery('#' + barcode).attr('max');
10604            try {
10605                if (lib3p_helper.utility.hasValueString(val)) {
10606                    val = parseInt(val);
10607                    if (lib3p_helper.utility.hasValueString(max)) {
10608                        max = parseInt(max);
10609                    }
10610                    if (val <= 1) {
10611                        jQuery('.page-product-detail .group-input .sub').attr('disabled', true);
10612                    }
10613                    else {
10614                        jQuery('.page-product-detail .group-input .sub').attr('disabled', false);
10615                    }
10616                    if (val >= max) {
10617                        jQuery('.page-product-detail .group-input .add').attr('disabled', true);
10618                    }
10619                    else {
10620                        jQuery('.page-product-detail .group-input .add').attr('disabled', false);
10621                    }
10622                }
10623            }
10624            catch (e) {
10625                console.log(e);
10626            }
10627        },
10628        onProduct_DetailAdd: function (el, barcode, show) {
10629            var val = jQuery('#' + barcode).val();
10630            try {
10631                if (lib3p_helper.utility.hasValueString(val)) {
10632                    val = parseInt(val);
10633                    if (lib3p_helper.utility.hasValue(el) && window.pars3p.runningCart != true) {
10634                        window.pars3p.runningCart = true;
10635
10636                        var data = jQuery(el).data();
10637                        var item = {
10638                            Code: -1,
10639                            ProductID: parseInt(data.code, 10),
10640                            ProductName: data.name,
10641                            ImageSetting: data.img,
10642                            UnitPrice: data.price,
10643                            PriceBase: data.pricebase,
10644                            IsHachi24: data.hachi24,
10645                            OrderQuantity: val,
10646                            CartID: -1,
10647                            LastModifiedTime: new Date(),
10648                            IsChoose: true
10649                        };
10650                        window.pars3p.cart.LastModifiedTime = new Date();
10651                        if (window.pars3p.cart.CartDetails.length == 0) {
10652                            window.pars3p.cart.CartDetails.push(item);
10653                        }
10654                        else {
10655                            var temp = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == item.ProductID; });
10656                            if (lib3p_helper.utility.hasValue(temp)) {
10657                                temp.UnitPrice = item.UnitPrice;
10658                                temp.PriceBase = item.PriceBase;
10659                                temp.LastModifiedTime = new Date();
10660                                item = temp;
10661                                item.OrderQuantity = val;
10662                            }
10663                            else {
10664                                window.pars3p.cart.Car
10664tDetails.push(item);
10665                            }
10666                        }
10667
10668                        if (window.pars3p.auth.isLogin == true || window.pars3p.cart.Code > 0) {
10669                            item.CartID = window.pars3p.cart.Code;
10670
10671                            lib3p.common_LoadingShow();
10672                            lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductAdd, { detail: item }, function (res) {
10673                                lib3p.common_LoadingHide();
10674                                window.pars3p.runningCart = false;
10675                                if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
10676                                    if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
10677                                        lib3p.header.GMC_AddCart(data.barcode, data.name, data.price);
10678
10679                                        item.Code = res.ObjectReturn.Code;
10680                                        item.OrderQuantity = res.ObjectReturn.OrderQuantity;
10681                                        item.UnitPrice = res.ObjectReturn.UnitPrice;
10682                                        item.IsStock = res.ObjectReturn.IsStock;
10683                                        item.IsMoreThanStock = res.ObjectReturn.IsMoreThanStock;
10684                                        item.DeliveryHachi24h = res.ObjectReturn.DeliveryHachi24h;
10685                                        item.IsPromotionVIP = res.ObjectReturn.IsPromotionVIP;
10686                                        item.ShippingFee = res.ObjectReturn.ShippingFee;
10687                                        item.IsFinish = res.ObjectReturn.IsFinish;
10688                                        item.IsCombo = res.ObjectReturn.IsCombo;
10689                                        item.IsHamper = res.ObjectReturn.IsHamper;
10690                                        item.PromotionDetailID = res.ObjectReturn.PromotionDetailID;
10691                                        item.ComboQty = res.ObjectReturn.ComboQty;
10692                                        item.TypeData = res.ObjectReturn.TypeData;
10693                                        item.IsHachi24 = res.ObjectReturn.IsHachi24;
10694                                        item.CBM = res.ObjectReturn.CBM;
10695                                        item.IsPriceAdj = res.ObjectReturn.IsPriceAdj;
10696                                        item.IsQtyAdj = res.ObjectReturn.IsQtyAdj;
10697                                        item.LSProduct_QuantityWithOrder = res.ObjectReturn.LSProduct_QuantityWithOrder;
10698                                        jQuery('#' + barcode).attr('max', item.LSProduct_QuantityWithOrder);
10699                                        jQuery('#' + barcode).val(item.OrderQuantity);
10700                                        lib3p.pageProductDetail.onProduct_QuantityChange(el, barcode);
10701                                        if (item.OrderQuantity > 0) {
10702                                            lib3p.pageCart.Cache_Check();
10703                                            lib3p.common_cartSet(window.pars3p.cart);
10704                                            if (show != false) {
10705                                                lib3p.header.ProductAddCart_Show(item);
10706                                                lib3p.pageCart.Cart_LoadHeader();
10707                                            }
10708                                            else {
10709                                                window.location.href = window.pars3p.urlCart;
10710                                            }
10711                                        }
10712                                        else {
10713                                            lib3p.pageProductDetail.ReloadInput(false);
10714                                            var index = window.pars3p.cart.CartDetails.findIndex(function (c) { return c.ProductID == item.ProductID; });
10715                                            if (index >= 0) {
10716                                                window.pars3p.cart.CartDetails.splice(index, 1);
10717                                                lib3p.pageCart.Cache_Check();
10718                                                lib3p.common_cartSet(window.pars3p.cart);
10719                                            }
10720                                            lib3p.header.ProductAddCart_Show(item);
10721                                            lib3p.pageCart.Cart_LoadHeader();
10722                                        }
10723                                        return true;
10724                                    }
10725                                }
10726                                return false;
10727                            }, function (err) {
10728                                lib3p.common_LoadingHide();
10729                                window.pars3p.runningCart = false;
10730                                return false;
10731                            });
10732                        }
10733                        else {
10734                            lib3p.common_LoadingShow();
10735                            lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: [item.ProductID] }, function (res) {
10736                                lib3p.common_LoadingHide();
10737                                window.pars3p.runningCart = false;
10738                                if (lib3p_helper.utility.hasListValue(res)) {
10739                                    lib3p.header.GMC_AddCart(data.barcode, data.name, data.price);
10740
10741                                    if (!(res[0].Quantity > 0 && res[0].QuantityWithOrder > 0)) {
10742                                        item.OrderQuantity = 0;
10743                                    }
10744                                    else if (res[0].QuantityWithOrder < item.OrderQuantity) {
10745                                        item.OrderQuantity = res[0].QuantityWithOrder;
10746                                    }
10747                                    jQuery('#' + barcode).attr('max', res[0].QuantityWithOrder);
10748                                    jQuery('#' + barcode).val(item.OrderQuantity);
10749                                    if (item.OrderQuantity > 0) {
10750                                        lib3p.pageCart.Cache_Check();
10751                                        lib3p.common_cartSet(window.pars3p.cart);
10752                                        if (show != false) {
10753                                            lib3p.header.ProductAddCart_Show(item);
10754                                            lib3p.pageCart.Cart_LoadHeader();
10755                                        }
10756                                        else {
10757                                            window.location.href = window.pars3p.urlCart;
10758                                        }
10759                                    }
10760                                    else {
10761                                        lib3p.pageProductDetail.ReloadInput(false);
10762                                        var index = window.pars3p.cart.CartDetails.findIndex(function (c) { return c.ProductID == item.ProductID; });
10763                                        if (index >= 0) {
10764                                            window.pars3p.cart.CartDetails.splice(index, 1);
10765                                            lib3p.pageCart.Cache_Check();
10766                                            lib3p.common_cartSet(window.pars3p.cart);
10767                                        }
10768                                        lib3p.header.ProductAddCart_Show(item);
10769                                        lib3p.pageCart.Cart_LoadHeader();
10770                                    }
10771                                    return true;
10772                                }
10773                                return false;
10774                            }, function (err) {
10775                                lib3p.common_LoadingHide();
10776                                window.pars3p.runningCart = false;
10777                                return false;
10778                            });
10779                        }
10780                    }
10781                }
10782                return false;
10783            }
10784            catch (e) {
10785                console.log(e);
10786            }
10787        },
10788        onProduct_DetailAdd24h: function (el, barcode) {
10789            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
10790                window.pars3p.cart.CartDetails.forEach(function (c, cidx) {
10791                    c.IsChoose = false;
10792                });
10793            }
10794            var flag = lib3p.pageProductDetail.onProduct_DetailAdd(el, barcode, false);
10795
10796        },
10797        onProduct_DetailAdd_Mobile: function (el, barcode, show) {
10798            try {
10799                if (lib3p_helper.utility.hasValue(el) && window.pars3p.runningCart != true) {
10800                    window.pars3p.runningCart = true;
10801
10802                    var data = jQuery(el).data();
10803                    var item = {
10804                        Code: -1,
10805                        ProductID: parseInt(data.code, 10),
10806                        ProductName: data.name,
10807                        ImageSetting: data.img,
10808                        UnitPrice: data.price,
10809                        PriceBase: data.pricebase,
10810                        IsHachi24: data.hachi24,
10811                        OrderQuantity: 1,
10812                        CartID: -1,
10813                        LastModifiedTime: new Date(),
10814                        IsChoose: true
10815                    };
10816                    window.pars3p.cart.LastModifiedTime = new Date();
10817                    if (window.pars3p.cart.CartDetails.length == 0) {
10818                        window.pars3p.cart.CartDetails.push(item);
10819                    }
10820                    else {
10821                        var temp = window.pars3p.cart.CartDetails.find(c => c.ProductID == item.ProductID);
10822                        if (lib3p_helper.utility.hasValue(temp)) {
10823                            temp.UnitPrice = item.UnitPrice;
10824                            temp.PriceBase = item.PriceBase;
10825                            temp.LastModifiedTime = new Date();
10826                            item = temp;
10827                            item.OrderQuantity++;
10828                        }
10829                        else {
10830                            window.pars3p.cart.CartDetails.push(item);
10831                        }
10832                    }
10833
10834                    if (window.pars3p.auth.isLogin == true || window.pars3p.cart.Code > 0) {
10835                        item.CartID = window.pars3p.cart.Code;
10836
10837                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductAdd, { detail: item }, function (res) {
10838                            window.pars3p.runningCart = false;
10839                            if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
10840                                if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
10841                                    lib3p.header.GMC_AddCart(data.barcode, data.name, data.price);
10842
10843                                    item.Code = res.ObjectReturn.Code;
10844                                    item.OrderQuantity = res.ObjectReturn.OrderQuantity;
10845                                    item.UnitPrice = res.ObjectReturn.UnitPrice;
10846                                    item.IsStock = res.ObjectReturn.IsStock;
10847                                    item.IsMoreThanStock = res.ObjectReturn.IsMoreThanStock;
10848                                    item.DeliveryHachi24h = res.ObjectReturn.DeliveryHachi24h;
10849                                    item.IsPromotionVIP = res.ObjectReturn.IsPromotionVIP;
10850                                    item.ShippingFee = res.ObjectReturn.ShippingFee;
10851                                    item.IsFinish = res.ObjectReturn.IsFinish;
10852                                    item.IsCombo = res.ObjectReturn.IsCombo;
10853                                    item.IsHamper = res.ObjectReturn.IsHamper;
10854                                    item.PromotionDetailID = res.ObjectReturn.PromotionDetailID;
10855                                    item.ComboQty = res.ObjectReturn.ComboQty;
10856                                    item.TypeData = res.ObjectReturn.TypeData;
10857                                    item.IsHachi24 = res.ObjectReturn.IsHachi24;
10858                                    item.CBM = res.ObjectReturn.CBM;
10859                                    item.IsPriceAdj = res.ObjectReturn.IsPriceAdj;
10860                                    item.IsQtyAdj = res.ObjectReturn.IsQtyAdj;
10861                                    lib3p.pageCart.Cache_Check();
10862                                    lib3p.common_cartSet(window.pars3p.cart);
10863                                    if (show != false) {
10864                                        lib3p.header.ProductAddCart_Show(item);
10865                                        lib3p.pageCart.Cart_LoadHeader();
10866                                    }
10867                                    else {
10868                                        window.location.href = window.pars3p.urlCart;
10869                                    }
10870                                    return true;
10871                                }
10872                            }
10873                            return false;
10874                        }, function (err) {
10875                            window.pars3p.runningCart = false;
10876                        });
10877                    }
10878                    else {
10879                        window.pars3p.runningCart = false;
10880                        lib3p.header.GMC_AddCart(data.barcode, data.name, data.price);
10881                        lib3p.pageCart.Cache_Check();
10882                        lib3p.common_cartSet(window.pars3p.cart);
10883                        if (show != false) {
10884                            lib3p.header.ProductAddCart_Show(item);
10885                            lib3p.pageCart.Cart_LoadHeader();
10886                        }
10887                        else {
10888                            window.location.href = window.pars3p.urlCart;
10889                        }
10890                        return true;
10891                    }
10892                }
10893                return false;
10894            }
10895            catch (e) {
10896                console.log(e);
10897            }
10898        },
10899        onProduct_DetailAdd24h_Mobile: function (el, barcode) {
10900            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
10901                window.pars3p.cart.CartDetails.forEach(function (c, cidx) {
10902                    c.IsChoose = false;
10903                });
10904            }
10905            var flag = lib3p.pageProductDetail.onProduct_DetailAdd_Mobile(el, barcode, false);
10906        },
10907        onMoTa_Toggle: function (el) {
10908            var query = jQuery(el).closest('.mo-ta-outline');
10909            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10910                if (jQuery(query[0]).hasClass("hienthi")) {
10911                    jQuery(query[0]).removeClass("hienthi");
10912                }
10913                else {
10914                    jQuery(query[0]).addClass("hienthi");
10915                }
10916            }
10917        },
10918        onThongTin_Toggle: function (el) {
10919            var query = jQuery(el).closest('.mo-ta-thong-tin');
10920            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10921                if (jQuery(query[0]).hasClass("hienthi")) {
10922                    jQuery(query[0]).removeClass("hienthi");
10923                }
10924                else {
10925                    jQuery(query[0]).addClass("hienthi");
10926                }
10927            }
10928        },
10929    },
10930
10931    pageLogin: {
10932        init: function () {
10933            var query = jQuery('.page-login');
10934            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
10935                lib3p.pageLogin.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
10936            }
10937        },
10938        init_async: function () {
10939            return new Promise(function (resolve, reject) {
10940                setTimeout(function () {                    
10941                    if (window.pars3p.auth.isLogin == true) {
10942                        lib3p_helper.utility.cache.set("__login__", "1");
10943                        window.location.href = "/";
10944                    }
10945                    lib3p.pageCart.OtherPage();
10946                    var CouponExpired = lib3p_helper.utility.dateAddDay(new Date(), 90);
10947                    jQuery('.CouponExpired').html(lib3p_helper.utility.formatDateDDMMYYYY(CouponExpired));
10948
10949                    window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
10950                    jQuery('.page-login .dang-nhap-sms .input .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
10951                    jQuery('.page-login .dang-nhap-sms .input .captcha').attr('key', window.pars3p.KeyView);
10952                    jQuery('.mobile-login .dang-nhap-sms .input .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
10953                    jQuery('.mobile-login .dang-nhap-sms .input .captcha').attr('key', window.pars3p.KeyView);
10954
10955                }, window.pars3p.timeAsync);
10956            });
10957        },
10958        Check_Phone: function (PhoneNumber, frm) {
10959            lib3p.common_LoadingShow();
10960
10961            return new Promise(function (resolve, reject) {
10962                setTimeout(function () {
10963                    window.pars3p.PhoneNumber_last = PhoneNumber;
10964                    lib3p.common_GetURL(window.pars3p.api.public.Header_GetByPhone + '?phone=' + PhoneNumber, function (res) {
10965                        lib3p.common_LoadingHide();
10966
10967                        if (res.HasAccount != true) {
10968                            window.pars3p.PhoneNumber_last = null;
10969                            if (res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn)) {
10970                                if (res.ObjectReturn.Cellphone != PhoneNumber) {
10971                                    ctr = frm[0].UserName;
10972                                    if (!jQuery(ctr).hasClass('error')) {
10973                                        jQuery(ctr).addClass('error');
10974                                    }
10975                                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại bạn vừa nhập được đăng ký cho mã KHTT ' + res.ObjectReturn.CardNo + ' tại Cửa hàng, nhưng tại web, mã KHTT này đang lưu với số điện thoại ' + res.ObjectReturn.Cellphone + '. Vui lòng liên hệ Hachi Hachi để được hỗ trợ.</span>');
10976                                }
10977                                else {
10978                                    res.ObjectReturn.Cellphone = PhoneNumber;
10979                                    window.pars3p.dangkykhtt.IsChangePass = false;
10980                                    var str = PhoneNumber.substr(0, 3) + "****" + PhoneNumber.substr(-3);
10981                                    jQuery('.page-login .thanh-cong .dienthoai').html(str);
10982                                    jQuery('.popup-register-pass .data').html(str);
10983                                    jQuery('.mobile-login .thanh-cong .dienthoai').html(str);
10984                                    lib3p.header.onKTTT_Show(res.ObjectReturn, lib3p.header.TypeKTTT.Account, function () {
10985                                        var req = {
10986                                            HistoryCardID: res.ObjectReturn.ID,
10987                                            CardNo: res.ObjectReturn.CardNo,
10988                                            Email: "",
10989                                            UserName: window.pars3p.khtt.Cellphone,
10990                                            Password: new Date().getTime(),
10991                                            PhoneNumber: window.pars3p.khtt.Cellphone,
10992                                            FirstName: window.pars3p.khtt.FirstName,
10993                                            LastName: window.pars3p.khtt.LastName,
10994                                            FullName: window.pars3p.khtt.FullName,
10995                                            Store: -1,
10996                                            POMaster: "",
10997                                            SendType: window.pars3p.otp.SendType
10998                                        };
10999                                        window.pars3p.dangkykhtt.Code = res.ObjectReturn.ID;
11000                                        window.pars3p.dangkykhtt.HistoryCardID = res.ObjectReturn.ID;
11001                                        window.pars3p.dangkykhtt.Cellphone = window.pars3p.khtt.Cellphone;
11002                                        window.pars3p.dangkykhtt.CardNo = res.ObjectReturn.CardNo;
11003                                        window.pars3p.dangkykhtt.FirstName = res.ObjectReturn.FirstName;
11004                                        window.pars3p.dangkykhtt.L
11004astName = res.ObjectReturn.LastName;
11005                                        window.pars3p.dangkykhtt.FullName = res.ObjectReturn.FullName;
11006                                        lib3p.common_PostURL(window.pars3p.api.public.User_Register2, req, function (res3) {
11007                                            if (lib3p_helper.utility.hasValue(res3)) {
11008                                                if (res3.StatusID == 0 && lib3p_helper.utility.hasValueString(res3.CardNo)) {
11009                                                    window.pars3p.dangkykhtt.IsSend = res3.IsSentRabbit;
11010                                                    lib3p.header.ConnectAuth(window.pars3p.khtt.Cellphone, res3.Password, function () {
11011                                                        window.pars3p.password.PasswordOld = res3.Password;
11012                                                        lib3p.pageLogin.onRegisterPass_Open();
11013                                                    }, function (errConnect) {
11014                                                        jQuery(frm[0].Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">' + errConnect + '</span>');
11015                                                    });
11016                                                }
11017                                                else {
11018                                                    jQuery(frm[0].Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Lỗi dữ liệu</span>');
11019                                                }
11020                                            }
11021                                        }, function (err3) {
11022                                            lib3p.log(err3);
11023                                        });
11024                                    }, function () {
11025                                        if (window.pars3p.MobileClick == true) {
11026                                            query = jQuery('.mobile-register form');
11027                                        }
11028                                        else {
11029                                            query = jQuery('.page-register form');
11030                                        }
11031                                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
11032                                            ctr = frm[0].Cellphone;
11033                                            ctr.value = '';
11034                                            ctr.focus();
11035                                        }
11036                                    });
11037                                }
11038                            }
11039                            else if (res.StatusCode == 2) {
11040                                ctr = frm[0].UserName;
11041                                if (!jQuery(ctr).hasClass('error')) {
11042                                    jQuery(ctr).addClass('error');
11043                                }
11044                                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa có đăng ký ở Hachi Hachi</span>');
11045                            }
11046                        }
11047
11048                    }, function (err) {
11049                        lib3p.log(err);
11050                        lib3p.common_LoadingHide();
11051                    });
11052
11053                }, window.pars3p.timeAsync);
11054
11055            });
11056        },
11057        Check_Phone_Test: function (PhoneNumber, frm) {
11058            lib3p.common_LoadingShow();
11059
11060            return new Promise(function (resolve, reject) {
11061                setTimeout(function () {
11062                    if (!jQuery(frm[0]).hasClass('haserror')) {
11063                        //jQuery(frm[0]).addClass('haserror');
11064                    }
11065                    window.pars3p.PhoneNumber_last = PhoneNumber;
11066                    lib3p.common_PostURL(window.pars3p.api.public.checkuser, { "PhoneNumber": PhoneNumber }, function (res) {
11067                        if (res == true) {
11068                            lib3p.common_LoadingHide();
11069
11070                            //ctr = frm[0].UserName;
11071                            //jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại bạn vừa nhập chưa có tài khoản tại Hachi Hachi</span>');
11072                        }
11073                        else {
11074                            //lib3p.common_PostURL(window.pars3p.api.public.GetCardByStaff, { "CellPhone": PhoneNumber }, function (res2) {
11075                            lib3p.common_PostURL(window.pars3p.api.public.Header_GetByPhone, { "CellPhone": PhoneNumber }, function (res2) {
11076                                lib3p.common_LoadingHide();
11077                                window.pars3p.PhoneNumber_last = null;
11078                                if (lib3p_helper.utility.hasValue(res2)) {
11079                                    if (res2.StatusCode == 0 && lib3p_helper.utility.hasValue(res2.ObjectReturn)) {
11080                                        if (res2.ObjectReturn.Cellphone != PhoneNumber) {
11081                                            ctr = frm[0].UserName;
11082                                            if (!jQuery(ctr).hasClass('error')) {
11083                                                jQuery(ctr).addClass('error');
11084                                            }
11085                                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại bạn vừa nhập được đăng ký cho mã KHTT ' + res2.ObjectReturn.CardNo + ' tại Cửa hàng, nhưng tại web, mã KHTT này đang lưu với số điện thoại ' + res2.ObjectReturn.Cellphone + '. Vui lòng liên hệ Hachi Hachi để được hỗ trợ.</span>');
11086                                        }
11087                                        else {
11088                                            res2.ObjectReturn.Cellphone = PhoneNumber;
11089                                            window.pars3p.dangkykhtt.IsChangePass = false;
11090                                            var str = PhoneNumber.substr(0, 3) + "****" + PhoneNumber.substr(-3);
11091                                            jQuery('.page-login .thanh-cong .dienthoai').html(str);
11092                                            jQuery('.popup-register-pass .data').html(str);
11093                                            jQuery('.mobile-login .thanh-cong .dienthoai').html(str);
11094                                            lib3p.header.onKTTT_Show(res2.ObjectReturn, lib3p.header.TypeKTTT.Account, function () {
11095                                                var req = {
11096                                                    HistoryCardID: res2.ObjectReturn.ID,
11097                                                    CardNo: res2.ObjectReturn.CardNo,
11098                                                    Email: "",
11099                                                    UserName: window.pars3p.khtt.Cellphone,
11100                                                    Password: new Date().getTime(),
11101                                                    PhoneNumber: window.pars3p.khtt.Cellphone,
11102                                                    FirstName: window.pars3p.khtt.FirstName,
11103                                                    LastName: window.pars3p.khtt.LastName,
11104                                                    FullName: window.pars3p.khtt.FullName,
11105                                                    Store: -1,
11106                                                    POMaster: "",
11107                                                    SendType: window.pars3p.otp.SendType
11108                                                };
11109                                                window.pars3p.dangkykhtt.Code = res2.ObjectReturn.ID;
11110                                                window.pars3p.dangkykhtt.HistoryCardID = res2.ObjectReturn.ID;
11111                                                window.pars3p.dangkykhtt.Cellphone = window.pars3p.khtt.Cellphone;
11112                                                window.pars3p.dangkykhtt.CardNo = res2.ObjectReturn.CardNo;
11113                                                window.pars3p.dangkykhtt.FirstName = res2.ObjectReturn.FirstName;
11114                                                window.pars3p.dangkykhtt.L
11114astName = res2.ObjectReturn.LastName;
11115                                                window.pars3p.dangkykhtt.FullName = res2.ObjectReturn.FullName;
11116                                                lib3p.common_PostURL(window.pars3p.api.public.User_Register2, req, function (res3) {
11117                                                    if (lib3p_helper.utility.hasValue(res3)) {
11118                                                        if (res3.StatusID == 0 && lib3p_helper.utility.hasValueString(res3.CardNo)) {
11119                                                            window.pars3p.dangkykhtt.IsSend = res3.IsSentRabbit;
11120                                                            lib3p.header.ConnectAuth(window.pars3p.khtt.Cellphone, res3.Password, function () {
11121                                                                window.pars3p.password.PasswordOld = res3.Password;
11122                                                                lib3p.pageLogin.onRegisterPass_Open();
11123                                                            }, function (errConnect) {
11124                                                                jQuery(frm[0].Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">' + errConnect + '</span>');
11125                                                            });
11126                                                        }
11127                                                        else {
11128                                                            jQuery(frm[0].Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Lỗi dữ liệu</span>');
11129                                                        }
11130                                                    }
11131                                                }, function (err3) {
11132                                                    lib3p.log(err3);
11133                                                });
11134                                            }, function () {
11135                                                if (window.pars3p.MobileClick == true) {
11136                                                    query = jQuery('.mobile-register form');
11137                                                }
11138                                                else {
11139                                                    query = jQuery('.page-register form');
11140                                                }
11141                                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
11142                                                    ctr = frm[0].Cellphone;
11143                                                    ctr.value = '';
11144                                                    ctr.focus();
11145                                                }
11146                                            });
11147                                        }
11148                                    }
11149                                    else if (res2.StatusCode == 2) {
11150                                        ctr = frm[0].UserName;
11151                                        if (!jQuery(ctr).hasClass('error')) {
11152                                            jQuery(ctr).addClass('error');
11153                                        }
11154                                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa có đăng ký ở Hachi Hachi</span>');
11155                                    }
11156                                }
11157                            }, function (err2) {
11158                                lib3p.log(err2);
11159                                lib3p.common_LoadingHide();
11160                            });
11161                        }
11162                    }, function (err) {
11163                        lib3p.log(err);
11164                        lib3p.common_LoadingHide();
11165                    });
11166
11167                }, window.pars3p.timeAsync);
11168            });
11169        },
11170        onDangNhap_KeyDown: function (event, el) {
11171            var query = jQuery(el).closest('form');
11172            var isphone = jQuery(el).attr('name') == "UserName";
11173            setTimeout(function () {
11174                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
11175                    var flag = true;
11176                    var flagControl = false;
11177                    var flagPhone = false;
11178                    var phonenumber = '';
11179                    var ctr = query[0].UserName;
11180                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
11181                        flag = false;
11182                        if (flagControl == false) {
11183                            if (ctr != el) {
11184                                if (!jQuery(ctr).hasClass('error')) {
11185                                    jQuery(ctr).addClass('error');
11186                                }
11187                                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
11187<span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
11188                            }
11189                            else {
11190                                flagControl = true;
11191                            }
11192                        }
11193                    }
11194                    else if (/^[0-9]+$/.test(ctr.value) == true && ctr.value.length == 10) {
11195                        if (isphone == true) {
11196                            flagPhone = true;
11197                            phonenumber = ctr.value;
11198                        }
11199                    }
11200                    else {
11201                        jQuery(ctr).removeClass('error');
11202                        jQuery(ctr).parent().next().html('');
11203                    }
11204                    if (ctr == el) {
11205                        flagControl = true;
11206                    }
11207                    ctr = query[0].Password;
11208                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
11209                        flag = false;
11210                        if (flagControl == false) {
11211                            if (ctr != el) {
11212                                if (!jQuery(ctr).hasClass('error')) {
11213                                    jQuery(ctr).addClass('error');
11214                                }
11215                                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
11216                            }
11217                            else {
11218                                flagControl = true;
11219                            }
11220                        }
11221                    }
11222                    else {
11223                        jQuery(ctr).removeClass('error');
11224                        jQuery(ctr).parent().next().html('');
11225                    }
11226                    if (flag == true) {
11227                        //jQuery(query[0]).removeClass('haserror');
11228                    }
11229                    else {
11230                        if (!jQuery(query[0]).hasClass('haserror')) {
11231                            //jQuery(query[0]).addClass('haserror');
11232                        }
11233                    }
11234                    if (flagPhone == true && lib3p_helper.utility.hasValueString(phonenumber)) {
11235                        lib3p.pageLogin.Check_Phone(phonenumber, query).then(function (data) { }, function (err) { lib3p.log(err); });
11236                    }
11237                }
11238            }, 100);
11239        },
11240        onDangNhap_Submit: function (event) {
11241            if (!jQuery(event.target).hasClass('haserror')) {
11242                jQuery(event.target).find('div.error').html('');
11243                jQuery(event.target).find('.input input').removeClass('error');
11244
11245                var flag = true;
11246                var data = {
11247                    UserName: '',
11248                    Password: '',
11249                };
11250
11251                var ctr = event.target.UserName;
11252                data.UserName = ctr.value;
11253                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
11254                    flag = false;
11255                    if (!jQuery(ctr).hasClass('error')) {
11256                        jQuery(ctr).addClass('error');
11257                    }
11258                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
11259                }
11260                ctr = event.target.Password;
11261                data.Password = ctr.value;
11262                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
11263                    flag = false;
11264                    if (!jQuery(ctr).hasClass('error')) {
11265                        jQuery(ctr).addClass('error');
11266                    }
11267                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
11267<span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
11268                }
11269                if (flag == true) {
11270                    data.UserName = data.UserName.replace(/\s+/g, "");
11271
11272                    lib3p.common_GetURL(window.pars3p.api.public.Header_Login + '?username=' + data.UserName + '&password=' + data.Password, function (res) {
11273                        if(lib3p_helper.utility.hasValue(res)) {
11274                            if (lib3p_helper.utility.hasValueString(res.access_token)) {
11275                                window.pars3p.auth.access_token = res.access_token;
11276                                window.pars3p.auth.refresh_token = res.refresh_token;
11277                                window.pars3p.auth.isLogin = true;
11278    
11279                                lib3p.common_AuthPostURL(window.pars3p.api.auth.Header_GetInfo, {}, function (resGet) {
11280                                    if (lib3p_helper.utility.hasValue(resGet) && lib3p_helper.utility.hasValueString(resGet.UserName)) {
11281                                        if (lib3p_helper.utility.hasValueString(resGet.UserID)) {
11282                                            lib3p.header.GMC_UserAdd(resGet.UserID);
11283                                        }
11284                                        lib3p.common_loginSet("1");
11285                                        lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
11286                                        lib3p.pageLogin.DangNhap_SubmitGioHang();
11287                                    }                       
11288                                    else {
11289                                        window.pars3p.auth.access_token = "";
11290                                        window.pars3p.auth.refresh_token = "";
11291                                        window.pars3p.auth.isLogin = false;
11292                                        lib3p.common_loginSet('');
11293                                        var ctr = event.target.UserName;
11294                                        if (!jQuery(ctr).hasClass('error')) {
11295                                            jQuery(ctr).addClass('error');
11296                                        }
11297                                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Tài khoản chưa có KHTT</span>');
11298                                    }
11299                                }, function (errGet) {
11300                                    lib3p.log(errGet);
11301                                    window.pars3p.auth.access_token = "";
11302                                    window.pars3p.auth.refresh_token = "";
11303                                    window.pars3p.auth.isLogin = false;
11304                                    lib3p.common_loginSet('');
11305                                    var ctr = event.target.UserName;
11306                                    if (!jQuery(ctr).hasClass('error')) {
11307                                        jQuery(ctr).addClass('error');
11308                                    }
11309                                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Tài khoản chưa có KHTT</span>');
11310                                });
11311                            }
11312                            else {
11313                                if (res.code == 1) {
11314                                    ctr = event.target.UserName;
11315                                    if (!jQuery(ctr).hasClass('error')) {
11316                                        jQuery(ctr).addClass('error');
11317                                    }
11318                                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Email chưa đúng</span>');
11319                                }
11320                                else if (res.code == 2) {
11321                                    ctr = event.target.Password;
11322                                    if (!jQuery(ctr).hasClass('error')) {
11323                                        jQuery(ctr).addClass('error');
11324                                    }
11325                                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
11325<span class="s13 cl-gregray600 regular400">Mật khẩu chưa đúng</span>');
11326                                }
11327                                else if (res.code == 3) {
11328                                    ctr = event.target.UserName;
11329                                    if (!jQuery(ctr).hasClass('error')) {
11330                                        jQuery(ctr).addClass('error');
11331                                    }
11332                                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã KHTT/Số điện thoại chưa đúng</span>');
11333                                }
11334                                else if (res.code == 4) {
11335                                    ctr = event.target.UserName;
11336                                    if (!jQuery(ctr).hasClass('error')) {
11337                                        jQuery(ctr).addClass('error');
11338                                    }
11339                                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã KHTT/Số điện thoại chưa đúng</span>');
11340                                }
11341                                else if (res.code == 5) {
11342                                    ctr = event.target.UserName;
11343                                    if (!jQuery(ctr).hasClass('error')) {
11344                                        jQuery(ctr).addClass('error');
11345                                    }
11346                                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã KHTT/Số điện thoại chưa có đăng ký ở Hachi Hachi</span>');
11347                                }
11348                                else if (res.code == 6) {
11349                                    ctr = event.target.UserName;
11350                                    if (!jQuery(ctr).hasClass('error')) {
11351                                        jQuery(ctr).addClass('error');
11352                                    }
11353                                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã KHTT/Số điện thoại chưa đúng</span>');
11354                                }
11355                                else if (res.code == 7) {
11356                                    ctr = event.target.UserName;
11357                                    if (!jQuery(ctr).hasClass('error')) {
11358                                        jQuery(ctr).addClass('error');
11359                                    }
11360                                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số diện thoại chưa đúng</span>');
11361                                }
11362                            }
11363                        }
11364                    }, function (err) {
11365                        console.log(err);
11366                    });
11367                }
11368            }
11369
11370            event.preventDefault();
11371        },
11372        /* onDangNhap_Submit_old: function (event) {
11373            if (!jQuery(event.target).hasClass('haserror')) {
11374                jQuery(event.target).find('div.error').html('');
11375                jQuery(event.target).find('.input input').removeClass('error');
11376
11377                var flag = true;
11378                var data = {
11379                    UserName: '',
11380                    Password: '',
11381                };
11382
11383                var ctr = event.target.UserName;
11384                data.UserName = ctr.value;
11385                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
11386                    flag = false;
11387                    if (!jQuery(ctr).hasClass('error')) {
11388                        jQuery(ctr).addClass('error');
11389                    }
11390                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
11390<span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
11391                }
11392                ctr = event.target.Password;
11393                data.Password = ctr.value;
11394                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
11395                    flag = false;
11396                    if (!jQuery(ctr).hasClass('error')) {
11397                        jQuery(ctr).addClass('error');
11398                    }
11399                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
11400                }
11401                if (flag == true) {
11402                    data.UserName = data.UserName.replace(/\s+/g, "");
11403
11404                    var req = new FormData();
11405                    req.append('client_id', 'user');
11406                    req.append('client_secret', 'jssecret');
11407                    req.append('scope', 'userapi offline_access');
11408                    req.append('grant_type', 'password');
11409                    req.append('username', data.UserName);
11410                    req.append('password', data.Password);
11411
11412                    lib3p.common_PostDataURL(window.pars3p.api.public.connecttoken, req, function (res) {
11413                        if (res && res.access_token) {
11414                            window.pars3p.auth.access_token = res.access_token;
11415                            window.pars3p.auth.refresh_token = res.refresh_token;
11416                            window.pars3p.auth.isLogin = true;
11417
11418                            lib3p.common_AuthPostURL(window.pars3p.api.auth.Header_GetInfo, {}, function (resGet) {
11419                                if (lib3p_helper.utility.hasValue(resGet) && lib3p_helper.utility.hasValueString(resGet.UserName)) {
11420                                    if (lib3p_helper.utility.hasValueString(resGet.UserID)) {
11421                                        lib3p.header.GMC_UserAdd(resGet.UserID);
11422                                    }
11423                                    lib3p.common_loginSet("1");
11424                                    lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
11425                                    lib3p.pageLogin.DangNhap_SubmitGioHang();
11426                                }                       
11427                                else {
11428                                    window.pars3p.auth.access_token = "";
11429                                    window.pars3p.auth.refresh_token = "";
11430                                    window.pars3p.auth.isLogin = false;
11431                                    lib3p.common_loginSet('');
11432                                    var ctr = event.target.UserName;
11433                                    if (!jQuery(ctr).hasClass('error')) {
11434                                        jQuery(ctr).addClass('error');
11435                                    }
11436                                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Tài khoản chưa có KHTT</span>');
11437                                }
11438                            }, function (errGet) {
11439                                lib3p.log(errGet);
11440                                window.pars3p.auth.access_token = "";
11441                                window.pars3p.auth.refresh_token = "";
11442                                window.pars3p.auth.isLogin = false;
11443                                lib3p.common_loginSet('');
11444                                var ctr = event.target.UserName;
11445                                if (!jQuery(ctr).hasClass('error')) {
11446                                    jQuery(ctr).addClass('error');
11447                                }
11448                                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
11448<span class="s13 cl-gregray600 regular400">Tài khoản chưa có KHTT</span>');
11449                            });
11450                        }
11451                    }, function (err) {
11452                        if (err && err.responseJSON && err.responseJSON.code > 0) {
11453                            var strError = err.responseJSON.error_description;
11454                            if (err.responseJSON.code == 1) {
11455                                ctr = event.target.UserName;
11456                                if (!jQuery(ctr).hasClass('error')) {
11457                                    jQuery(ctr).addClass('error');
11458                                }
11459                                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Email chưa đúng</span>');
11460                            }
11461                            else if (err.responseJSON.code == 2) {
11462                                ctr = event.target.Password;
11463                                if (!jQuery(ctr).hasClass('error')) {
11464                                    jQuery(ctr).addClass('error');
11465                                }
11466                                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mật khẩu chưa đúng</span>');
11467                            }
11468                            else if (err.responseJSON.code == 3) {
11469                                ctr = event.target.UserName;
11470                                if (!jQuery(ctr).hasClass('error')) {
11471                                    jQuery(ctr).addClass('error');
11472                                }
11473                                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã KHTT/Số điện thoại chưa đúng</span>');
11474                            }
11475                            else if (err.responseJSON.code == 4) {
11476                                ctr = event.target.UserName;
11477                                if (!jQuery(ctr).hasClass('error')) {
11478                                    jQuery(ctr).addClass('error');
11479                                }
11480                                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã KHTT/Số điện thoại chưa đúng</span>');
11481                            }
11482                            else if (err.responseJSON.code == 5) {
11483                                ctr = event.target.UserName;
11484                                if (!jQuery(ctr).hasClass('error')) {
11485                                    jQuery(ctr).addClass('error');
11486                                }
11487                                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã KHTT/Số điện thoại chưa có đăng ký ở Hachi Hachi</span>');
11488                            }
11489                            else if (err.responseJSON.code == 6) {
11490                                ctr = event.target.UserName;
11491                                if (!jQuery(ctr).hasClass('error')) {
11492                                    jQuery(ctr).addClass('error');
11493                                }
11494                                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã KHTT/Số điện thoại chưa đúng</span>');
11495                            }
11496                            else if (err.responseJSON.code == 7) {
11497                                ctr = event.target.UserName;
11498                                if (!jQuery(ctr).hasClass('error')) {
11499                                    jQuery(ctr).addClass('error');
11500                                }
11501                                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số diện thoại chưa đúng</span>');
11502                            }
11503                        }
11504                        else {
11505                            
11506                        }
11507                    });
11508                }
11509            }
11510
11511            event.preventDefault();
11512        }, */
11513        DangNhap_SubmitGioHang: function () {
11514            if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
11515                lib3p.common_AuthPostURL(window.pars3p.api.auth.All_MergeCart, { cart: { CartDetails: window.pars3p.cart.CartDetails, CartCoupon: window.pars3p.cart.CartCoupon } }, function (res) {
11516                    if (res == true) {
11517                        window.pars3p.cart.lastUser = '';
11518                        window.pars3p.cart.lastDate = null;
11519                        window.pars3p.cart.Code = -1;
11520                        window.pars3p.cart.CartDetails = [];
11521                        window.pars3p.cart.CartCoupon = [];
11522                        window.pars3p.cart.ListCoupon = [];
11523                        window.pars3p.cart.CartNoti = [];
11524                        window.pars3p.cart.CartCombo = [];
11525                        window.pars3p.cart.TypeOfTransportation = [];
11526                        window.pars3p.cart.timeOrderCalculateNext = null;
11527                        lib3p.common_cartSet(window.pars3p.cart);
11528
11529                        var last = lib3p.common_urllastGet();
11530                        if (lib3p_helper.utility.hasValueString(last) && last.indexOf("/dang-nhap?type=33") == -1 && last.indexOf("/dang-ky?type=34") == -1) {
11531                            window.location.href = last;
11532                        }
11533                        else {
11534                            window.location.href = "/";
11535                        }
11536                    }
11537                }, function (err) {
11538                    console.log(err);
11539                });
11540            }
11541            else {
11542                window.pars3p.cart.lastUser = '';
11543                window.pars3p.cart.lastDate = null;
11544                window.pars3p.cart.Code = -1;
11545                window.pars3p.cart.CartDetails = [];
11546                window.pars3p.cart.CartCoupon = [];
11547                window.pars3p.cart.ListCoupon = [];
11548                window.pars3p.cart.CartNoti = [];
11549                window.pars3p.cart.CartCombo = [];
11550                window.pars3p.cart.TypeOfTransportation = [];
11551                window.pars3p.cart.timeOrderCalculateNext = null;
11552                lib3p.common_cartSet(window.pars3p.cart);
11553
11554                var last = lib3p.common_urllastGet();
11555                if (lib3p_helper.utility.hasValueString(last) && last.indexOf("/dang-nhap?type=33") == -1 && last.indexOf("/dang-ky?type=34") == -1) {
11556                    window.location.href = last;
11557                }
11558                else {
11559                    window.location.href = "/";
11560                }
11561            }
11562        },
11563        onHienMatKhau_Click: function (el) {
11564            var query = jQuery(el).closest('.input');
11565            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
11566                var el = query[0];
11567                var query = jQuery(el).children('input');
11568                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
11569                    var input = query[0];
11570                    if (jQuery(el).hasClass('hide')) {
11571                        jQuery(el).removeClass('hide');
11572                        jQuery(input).attr('type', 'password');
11573                    }
11574                    else {
11575                        jQuery(el).addClass('hide');
11576                        jQuery(input).attr('type', 'text');
11577                    }
11578                }
11579            }
11580        },
11581        onQuenMatKhau_Click: function () {
11582            lib3p.header.ShowChangePass(function () {
11583                lib3p.pageLogin.DangNhap_SubmitGioHang();
11584            }, function () {
11585
11586            });
11587        },
11588        onDangNhapSMS_Click: function () {
11589            if (!jQuery('.page-login .dang-nhap').hasClass('hide')) {
11590                jQuery('.page-login .dang-nhap').addClass('hide');
11591            }
11592            if (!jQuery('.mobile-login .dang-nhap').hasClass('hide')) {
11593                jQuery('.mobile-login .dang-nhap').addClass('hide');
11594            }
11595            jQuery('.page-login .dang-nhap-sms').removeClass('hide');
11596            jQuery('.mobile-login .dang-nhap-sms').removeClass('hide');
11597            window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
11598            jQuery('.page-login .dang-nhap-sms .input .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
11599            jQuery('.page-login .dang-nhap-sms .input .captcha').attr('key', window.pars3p.KeyView);
11600            jQuery('.mobile-login .dang-nhap-sms .input .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
11601            jQuery('.mobile-login .dang-nhap-sms .input .captcha').attr('key', window.pars3p.KeyView);
11602        },
11603        onDangNhapSMS_Login: function () {
11604            if (!jQuery('.page-login .dang-nhap-sms').hasClass('hide')) {
11605                jQuery('.page-login .dang-nhap-sms').addClass('hide');
11606            }
11607            if (!jQuery('.mobile-login .dang-nhap-sms').hasClass('hide')) {
11608                jQuery('.mobile-login .dang-nhap-sms').addClass('hide');
11609            }
11610            jQuery('.page-login .dang-nhap').removeClass('hide');
11611            jQuery('.mobile-login .dang-nhap').removeClass('hide');
11612        },
11613        onDangNhapSMS_Captcha: function () {
11614            window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
11615            jQuery('.page-login .dang-nhap-sms .input .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
11616            jQuery('.page-login .dang-nhap-sms .input .captcha').attr('key', window.pars3p.KeyView);
11617            jQuery('.mobile-login .dang-nhap-sms .input .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
11618            jQuery('.mobile-login .dang-nhap-sms .input .captcha').attr('key', window.pars3p.KeyView);
11619        },
11620        onDangNhapSMS_KeyDown: function (event, el) {
11621            var query = jQuery(el).closest('form');
11622            setTimeout(function () {
11623                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
11624                    var flag = true;
11625                    var ctr = query[0].SoDienThoai;
11626                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
11627                        flag = false;
11628                        if (!jQuery(ctr).hasClass('error')) {
11629                            jQuery(ctr).addClass('error');
11630                        }
11631                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
11631<span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
11632                    }
11633                    else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
11634                        flag = false;
11635                        if (!jQuery(ctr).hasClass('error')) {
11636                            jQuery(ctr).addClass('error');
11637                        }
11638                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
11639                    }
11640                    else {
11641                        jQuery(ctr).removeClass('error');
11642                        jQuery(ctr).parent().next().html('');
11643                    }
11644                    ctr = query[0].Captcha;
11645                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
11646                        flag = false;
11647                        if (!jQuery(ctr).hasClass('error')) {
11648                            jQuery(ctr).addClass('error');
11649                        }
11650                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
11651                    }
11652                    else {
11653                        jQuery(ctr).removeClass('error');
11654                        jQuery(ctr).parent().next().html('');
11655                    }
11656                    if (flag == true) {
11657                        //jQuery(query[0]).removeClass('haserror');
11658                    }
11659                    else {
11660                        if (!jQuery(query[0]).hasClass('haserror')) {
11661                            //jQuery(query[0]).addClass('haserror');
11662                        }
11663                    }
11664                }
11665            }, 100);
11666        },
11667        onDangNhapSMS_Submit: function (event) {
11668            if (!jQuery(event.target).hasClass('haserror')) {
11669                jQuery(event.target).find('div.error').html('');
11670                jQuery(event.target).find('.input input').removeClass('error');
11671
11672                var flag = true;
11673                var data = {
11674                    SoDienThoai: '',
11675                    Captcha: '',
11676                };
11677
11678                var ctr = event.target.SoDienThoai;
11679                data.SoDienThoai = ctr.value;
11680                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
11681                    flag = false;
11682                    if (!jQuery(ctr).hasClass('error')) {
11683                        jQuery(ctr).addClass('error');
11684                    }
11685                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
11686                }
11687                else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
11688                    flag = false;
11689                    if (!jQuery(ctr).hasClass('error')) {
11690                        jQuery(ctr).addClass('error');
11691                    }
11692                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
11693                }
11694                else if (ctr.value.length < 10 || ctr.value.length > 20) {
11695                    flag = false;
11696                    if (!jQuery(ctr).hasClass('error')) {
11697                        jQuery(ctr).addClass('error');
11698                    }
11699                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
11699<span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng</span>');
11700                }
11701                ctr = event.target.Captcha;
11702                data.Captcha = ctr.value;
11703                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
11704                    flag = false;
11705                    if (!jQuery(ctr).hasClass('error')) {
11706                        jQuery(ctr).addClass('error');
11707                    }
11708                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
11709                }
11710
11711                if (flag == true) {
11712                    window.pars3p.KeyCaptcha = data.Captcha;
11713                    lib3p.common_PostURL(window.pars3p.api.public.LoginSMS_Check + '?key=' + window.pars3p.KeyView + '&captcha=' + window.pars3p.KeyCaptcha, { "PhoneNumber": data.SoDienThoai }, function (res) {
11714                        if (res == 1) {
11715                            window.pars3p.otp.PhoneNumber = data.SoDienThoai;
11716                            //lib3p.header.onOTP_Show(data.SoDienThoai, lib3p.header.TypeOTP.Account, function() {
11717                            lib3p.header.onOTPType_Show(data.SoDienThoai, lib3p.header.TypeOTP.Account, function () {
11718
11719                                lib3p.common_AuthPostURL(window.pars3p.api.auth.Header_GetInfo, {}, function (resGet) {
11720                                    if (lib3p_helper.utility.hasValue(resGet) && lib3p_helper.utility.hasValueString(resGet.UserName)) {
11721                                        if (lib3p_helper.utility.hasValueString(resGet.UserID)) {
11722                                            lib3p.header.GMC_UserAdd(resGet.UserID);
11723                                        }
11724                                        lib3p.common_loginSet("1");
11725                                        window.pars3p.password.PasswordOld = window.pars3p.otp.Password;
11726                                        lib3p.pageLogin.DangNhap_SubmitGioHang();
11727                                        window.location.href = "/";
11728                                    }                       
11729                                    else {
11730                                        window.pars3p.auth.access_token = "";
11731                                        window.pars3p.auth.refresh_token = "";
11732                                        window.pars3p.auth.isLogin = false;
11733                                        lib3p.common_loginSet('');
11734                                        lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
11735                                        var ctr = event.target.SoDienThoai;
11736                                        if (!jQuery(ctr).hasClass('error')) {
11737                                            jQuery(ctr).addClass('error');
11738                                        }
11739                                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Tài khoản chưa có KHTT</span>');
11740                                    }
11741                                }, function (errGet) {
11742                                    lib3p.log(errGet);
11743                                    window.pars3p.auth.access_token = "";
11744                                    window.pars3p.auth.refresh_token = "";
11745                                    window.pars3p.auth.isLogin = false;
11746                                    lib3p.common_loginSet('');
11747                                    lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
11748                                    var ctr = event.target.SoDienThoai;
11749                                    if (!jQuery(ctr).hasClass('error')) {
11750                                        jQuery(ctr).addClass('error');
11751                                    }
11752                                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
11752<span class="s13 cl-gregray600 regular400">Tài khoản chưa có KHTT</span>');
11753                                });
11754
11755                                /* lib3p.common_AuthPostURL(window.pars3p.api.auth.GetCard, {}, function (resGet) {
11756                                    if (lib3p_helper.utility.hasValue(resGet) && lib3p_helper.utility.hasValue(resGet.ObjectReturn) && resGet.StatusCode == 0) {
11757                                        if (lib3p_helper.utility.hasValueString(resGet.ObjectReturn.UserID)) {
11758                                            lib3p.header.GMC_UserAdd(resGet.ObjectReturn.UserID);
11759                                        }
11760                                        lib3p.common_loginSet("1");
11761                                        window.pars3p.password.PasswordOld = window.pars3p.otp.Password;
11762                                        lib3p.pageLogin.DangNhap_SubmitGioHang();
11763                                        window.location.href = "/";
11764                                    }
11765                                    else {                                        
11766                                        window.pars3p.auth.access_token = "";
11767                                        window.pars3p.auth.refresh_token = "";
11768                                        window.pars3p.auth.isLogin = false;
11769                                        lib3p.common_loginSet('');
11770                                        lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
11771                                        var ctr = event.target.SoDienThoai;
11772                                        if (!jQuery(ctr).hasClass('error')) {
11773                                            jQuery(ctr).addClass('error');
11774                                        }
11775                                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Tài khoản chưa có KHTT</span>');
11776                                    }
11777                                }, function (errGet) {
11778                                    lib3p.log(errGet);
11779                                    window.pars3p.auth.access_token = "";
11780                                    window.pars3p.auth.refresh_token = "";
11781                                    window.pars3p.auth.isLogin = false;
11782                                    lib3p.common_loginSet('');
11783                                    lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
11784                                    var ctr = event.target.SoDienThoai;
11785                                    if (!jQuery(ctr).hasClass('error')) {
11786                                        jQuery(ctr).addClass('error');
11787                                    }
11788                                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Tài khoản chưa có KHTT</span>');
11789                                }); */
11790
11791                            }, function () {
11792                                //alert('Thất bại');
11793                            });
11794                        }
11795                        else if (res == 2) {
11796                            jQuery(event.target.SoDienThoai).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đăng ký</span>');
11797                        }
11798                    }, function (err) {
11799                        jQuery(event.target.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập sai mã captcha</span>');
11800                    });
11801                }
11802            }
11803
11804            event.preventDefault();
11805        },
11806        OPT_Submit_Info: function () {
11807            jQuery('.page-login .dang-nhap').hide();
11808            jQuery('.page-login .thanh-cong').show();
11809            jQuery('.mobile-login .dang-nhap').hide();
11810            jQuery('.mobile-login .thanh-cong').show();
11811            lib3p.common_AuthPostURL(window.pars3p.api.auth.Header_GetInfo, {}, function (resGet) {
11812                if (lib3p_helper.utility.hasValue(resGet) && lib3p_helper.utility.hasValueString(resGet.UserName)) {
11813                    window.pars3p.auth.fullName = resGet.FullName;
11814                    window.pars3p.auth.phoneNumber = resGet.Cellphone;
11815                    window.pars3p.auth.email = resGet.Email;
11816                    window.pars3p.auth.memberID = resGet.CardNo;
11817                    window.pars3p.auth.userName = resGet.UserName;
11818                    window.pars3p.auth.isLogin = true;
11819
11820                    if (lib3p_helper.utility.hasValueString(resGet.CardNo)) {
11821                        var str = resGet.CardNo;
11822                        jQuery('.page-login .thanh-cong .memberID').html(str);
11823                        jQuery('.mobile-login .thanh-cong .memberID').html(str);
11824                    }
11825                }
11826            }, function (err) {
11827                lib3p.log(err);
11828            });
11829        },
11830        /* OPT_Submit_Info: function () {
11831            jQuery('.page-login .dang-nhap').hide();
11832            jQuery('.page-login .thanh-cong').show();
11833            jQuery('.mobile-login .dang-nhap').hide();
11834            jQuery('.mobile-login .thanh-cong').show();
11835            lib3p.common_AuthGetURL(window.pars3p.api.auth.getuserinfo, function (res) {
11836                window.pars3p.auth.fullName = res.fullName;
11837                window.pars3p.auth.phoneNumber = res.phoneNumber;
11838                window.pars3p.auth.email = res.email;
11839                window.pars3p.auth.memberID = res.memberID;
11840                window.pars3p.auth.userName = res.userName;
11841                window.pars3p.auth.isLogin = true;
11842
11843                if (lib3p_helper.utility.hasValueString(res.memberID)) {
11844                    var str = res.memberID;
11845                    jQuery('.page-login .thanh-cong .memberID').html(str);
11846                    jQuery('.mobile-login .thanh-cong .memberID').html(str);
11847                }
11848            }, function (err) {
11849                lib3p.log(err);
11850            });
11851        }, */
11852        onRegisterPass_Open: function () {
11853            var query = jQuery('.popup-register-pass .hachi-modal');
11854            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
11855                if (jQuery(query[0]).hasClass("d-none")) {
11856                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
11857                }
11858            }
11859            if (lib3p_helper.utility.hasValueString(window.pars3p.dangkykhtt) && window.pars3p.dangkykhtt.Code > 0) {
11860                lib3p.common_AuthPostURL(window.pars3p.api.auth.PageKHTT_SendOther, { "item": window.pars3p.dangkykhtt }, function (res) {
11861                    if (res == true) {
11862
11863                    }
11864                }, function (err) {
11865                    lib3p.log(err);
11866                });
11867            }
11868        },
11869        onRegisterPass_Close: function () {
11870            var query = jQuery('.popup-register-pass .hachi-modal');
11871            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
11872                if (jQuery(query[0]).hasClass("d-block")) {
11873                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
11874                }
11875            }
11876            lib3p.pageLogin.OPT_Submit_Info();
11877        },
11878        onRegisterPassHien_Click: function (el) {
11879            var query = jQuery(el).closest('.input');
11880            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
11881                var el = query[0];
11882                var query = jQuery(el).children('input');
11883                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
11884                    var input = query[0];
11885                    if (jQuery(el).hasClass('hide')) {
11886                        jQuery(el).removeClass('hide');
11887                        jQuery(input).attr('type', 'password');
11888                    }
11889                    else {
11890                        jQuery(el).addClass('hide');
11891                        jQuery(input).attr('type', 'text');
11892                    }
11893                }
11894            }
11895        },
11896        onRegisterPass_KeyDown: function (event, el) {
11897            var query = jQuery(el).closest('form');
11898            setTimeout(function () {
11899                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
11900                    var flag = true;
11901                    var ctr = query[0].pass;
11902                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
11903                        flag = false;
11904                    }
11905                    ctr = query[0].passre;
11906                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
11907                        flag = false;
11908                    }
11909                    if (flag == true) {
11910                        jQuery(query[0]).removeClass('haserror');
11911                    }
11912                    else {
11913                        if (!jQuery(query[0]).hasClass('haserror')) {
11914                            jQuery(query[0]).addClass('haserror');
11915                        }
11916                    }
11917                }
11918            }, 100);
11919        },
11920        onRegisterPass_Submit: function (event) {
11921            if (!jQuery(event.target).hasClass('haserror')) {
11922                jQuery(event.target).find('div.error').html('');
11923                jQuery(event.target).find('.input input').removeClass('error');
11924
11925                var flag = true;
11926                var data = {
11927                    pass: '',
11928                    passre: '',
11929                };
11930
11931                var ctr = event.target.pass;
11932                data.pass = ctr.value;
11933                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
11934                    flag = false;
11935                    if (!jQuery(ctr).hasClass('error')) {
11936                        jQuery(ctr).addClass('error');
11937                    }
11938                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mật khẩu không đủ 6 kí tự, vui lòng nhập lại</span>');
11939                }
11940                else if (ctr.value.length < 6) {
11941                    flag = false;
11942                    if (!jQuery(ctr).hasClass('error')) {
11943                        jQuery(ctr).addClass('error');
11944                    }
11945                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mật khẩu ít nhất 6 kí tự</span>');
11946                }
11947                ctr = event.target.passre;
11948                data.passre = ctr.value;
11949                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
11950                    flag = false;
11951                    if (!jQuery(ctr).hasClass('error')) {
11952                        jQuery(ctr).addClass('error');
11953                    }
11954                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
11955                }
11956                if (flag != false && data.passre != data.pass) {
11957                    flag = false;
11958                    if (!jQuery(ctr).hasClass('error')) {
11959                        jQuery(ctr).addClass('error');
11960                    }
11961                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mật khẩu không khớp nhau, vui lòng nhập lại</span>');
11962                }
11963
11964                if (flag == true) {
11965                    lib3p.common_AuthPostURL(window.pars3p.api.auth.User_ChangePass, { "passold": window.pars3p.password.PasswordOld, "passnew": data.pass }, function (res) {
11966                        if(res.Succeeded == true) {
11967                            lib3p.pageLogin.onRegisterPass_Close();
11968                        }
11969                        else {
11970                            ctr = event.target.pass;
11971                            if (!jQuery(ctr).hasClass('error')) {
11972                                jQuery(ctr).addClass('error');
11973                            }
11974                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Nhập sai mật khẩu</span>');
11975                        }                        
11976                    }, function (err) {
11977                        if (err.status == 200) {
11978                            lib3p.pageLogin.onRegisterPass_Close();
11979                        }
11980                    });
11981                    /* lib3p.common_AuthPostURL(window.pars3p.api.auth.changepassword, { "Password": window.pars3p.password.PasswordOld, "NewPassword": data.pass }, function (res) {
11982                        lib3p.pageLogin.onRegisterPass_Close();
11983                    }, function (err) {
11984                        if (err.status == 200) {
11985                            lib3p.pageLogin.onRegisterPass_Close();
11986                        }
11987                    }); */
11988                }
11989            }
11990
11991            event.preventDefault();
11992        },
11993    },
11994
11995    pageContact: {
11996        init: function () {
11997            var query = jQuery('.page-contact');
11998            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
11999                lib3p.pageContact.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
12000            }
12001        },
12002        init_async: function () {
12003            return new Promise(function (resolve, reject) {
12004                setTimeout(function () { 
12005                    lib3p.pageCart.OtherPage();
12006                    window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
12007                    jQuery('.page-contact .nhaplieu .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
12008                    jQuery('.page-contact .nhaplieu .captcha').attr('key', window.pars3p.KeyView);
12009                    jQuery('.mobile-contact .nhaplieu .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
12010                    jQuery('.mobile-contact .nhaplieu .captcha').attr('key', window.pars3p.KeyView);
12011
12012                }, window.pars3p.timeAsync);
12013            });
12014        },
12015        onGui_KeyDown: function (event, el) {
12016            var query = jQuery(el).closest('form');
12017            setTimeout(function () {
12018                //var query = jQuery('.page-contact form.nhaplieu');
12019                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
12020                    var flag = true;
12021                    var ctr = query[0].ContactName;
12022                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12023                        flag = false;
12024                    }
12025                    ctr = query[0].PhoneNumber;
12026                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12027                        flag = false;
12028                    }
12029                    else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
12030                        flag = false;
12031                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
12032                    }
12033                    ctr = query[0].Email;
12034                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12035                        flag = false;
12036                    }
12037                    ctr = query[0].Comments;
12038                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12039                        flag = false;
12040                    }
12041                    ctr = query[0].Captcha;
12042                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12043                        flag = false;
12044                    }
12045                    if (flag == true) {
12046                        jQuery(query[0]).removeClass('haserror');
12047                    }
12048                    else {
12049                        if (!jQuery(query[0]).hasClass('haserror')) {
12050                            jQuery(query[0]).addClass('haserror');
12051                        }
12052                    }
12053                }
12054            }, 100);
12055        },
12056        onCaptcha_Click: function () {
12057            window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
12058            jQuery('.page-contact .nhaplieu .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
12059            jQuery('.page-contact .nhaplieu .captcha').attr('key', window.pars3p.KeyView);
12060            jQuery('.mobile-contact .nhaplieu .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
12061            jQuery('.mobile-contact .nhaplieu .captcha').attr('key', window.pars3p.KeyView);
12062        },
12063        onGui_Submit: function (event) {
12064            if (!jQuery(event.target).hasClass('haserror')) {
12065                jQuery(event.target).find('div.error').html('');
12066                jQuery(event.target).find('.input input').removeClass('error');
12067                jQuery(event.target).find('.input textarea').removeClass('error');
12068                jQuery(event.target).find('.thongbao').removeClass('show');
12069
12070                var flag = true;
12071                var data = {
12072                    ContactName: '',
12073                    PhoneNumber: '',
12074                    Email: '',
12075                    Comments: '',
12076                    Captcha: '',
12077                };
12078
12079                var ctr = event.target.ContactName;
12080                data.ContactName = ctr.value;
12081                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12082                    flag = false;
12083                    if (!jQuery(ctr).hasClass('error')) {
12084                        jQuery(ctr).addClass('error');
12085                    }
12086                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
12086<span class="s13 cl-gregray600 regular400">Bạn chưa nhập họ tên</span>');
12087                }
12088                ctr = event.target.PhoneNumber;
12089                data.PhoneNumber = ctr.value;
12090                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12091                    flag = false;
12092                    if (!jQuery(ctr).hasClass('error')) {
12093                        jQuery(ctr).addClass('error');
12094                    }
12095                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Bạn chưa nhập số điện thoại</span>');
12096                }
12097                else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
12098                    flag = false;
12099                    if (!jQuery(ctr).hasClass('error')) {
12100                        jQuery(ctr).addClass('error');
12101                    }
12102                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
12103                }
12104                ctr = event.target.Email;
12105                data.Email = ctr.value;
12106                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12107                    flag = false;
12108                    if (!jQuery(ctr).hasClass('error')) {
12109                        jQuery(ctr).addClass('error');
12110                    }
12111                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Bạn chưa nhập email</span>');
12112                }
12113                else if (!lib3p_helper.utility.isEmail(ctr.value)) {
12114                    flag = false;
12115                    if (!jQuery(ctr).hasClass('error')) {
12116                        jQuery(ctr).addClass('error');
12117                    }
12118                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Email chưa có @ ví dụ [email protected]</span>');
12119                }
12120                ctr = event.target.Comments;
12121                data.Comments = ctr.value;
12122                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12123                    flag = false;
12124                    if (!jQuery(ctr).hasClass('error')) {
12125                        jQuery(ctr).addClass('error');
12126                    }
12127                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Bạn chưa nhập nội dung</span>');
12128                }
12129                ctr = event.target.Captcha;
12130                data.Captcha = ctr.value;
12131                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12132                    flag = false;
12133                    if (!jQuery(ctr).hasClass('error')) {
12134                        jQuery(ctr).addClass('error');
12135                    }
12136                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Bạn chưa nhập mã captcha</span>');
12137                }
12138
12139                if (flag == true) {
12140                    window.pars3p.KeyCaptcha = data.Captcha;
12141                    lib3p.common_PostURL(window.pars3p.api.public.Contact_Send + '?key=' + window.pars3p.KeyView + '&captcha=' + window.pars3p.KeyCaptcha, { "request": { "Email": data.Email, "PhoneNumber": data.PhoneNumber, "Comments": data.Comments, "ContactName": data.ContactName }, "Key": window.pars3p.KeyView }, function (res) {
12142                        if (lib3p_helper.utility.hasValue(res)) {
12143                            if (res.StatusCode == 0) {
12144                                ctr = jQuery('.page-contact .thongbao')[0];
12145                                if (!jQuery(ctr).hasClass('show')) {
12146                                    jQuery(ctr).addClass('show');
12147                                    setTimeout(function () {
12148                                        jQuery(ctr).removeClass('show');
12149                                    }, 3000);
12150                                }
12151                                event.target.ContactName.value = '';
12152                                event.target.PhoneNumber.value = '';
12153                                event.target.Email.value = '';
12154                                event.target.Comments.value = '';
12155                                event.target.Captcha.value = '';
12156                            }
12157                            else {
12158                                lib3p.log(res.ErrorString);
12159                            }
12160                        }
12161                        else {
12162                            lib3p.log("Lỗi dữ liệu");
12163                        }
12164                    }, function (err) {
12165                        //lib3p.log(err);
12166                        ctr = event.target.Captcha;
12167                        if (!jQuery(ctr).hasClass('error')) {
12168                            jQuery(ctr).addClass('error');
12169                        }
12170                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
12170<span class="s13 cl-gregray600 regular400">Bạn nhập sai mã kiểm tra</span>');
12171                    });
12172                }
12173            }
12174
12175            event.preventDefault();
12176        },
12177
12178    },
12179
12180    pageNoFound: {
12181        init: function () {
12182
12183        },
12184    },
12185
12186    pageRegister: {
12187        init: function () {
12188            var query = jQuery('.page-register');
12189            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
12190                if (window.pars3p.auth.isLogin == true && lib3p_helper.utility.hasValueString(window.pars3p.auth.refresh_token)) {
12191                    lib3p_helper.utility.cache.set("__login__", "1");
12192                    window.location.href = "/";
12193                }
12194                else {
12195                    lib3p.pageRegister.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
12196                }
12197            }
12198        },
12199        init_async: function () {
12200            return new Promise(function (resolve, reject) {
12201                setTimeout(function () {
12202                    lib3p.pageCart.OtherPage();
12203                    lib3p.pageRegister.onCaptcha_Click();
12204                    var CouponExpired = lib3p_helper.utility.dateAddDay(new Date(), 90);
12205                    jQuery('.CouponExpired').html(lib3p_helper.utility.formatDateDDMMYYYY(CouponExpired));
12206
12207                    var browserW = lib3p.common_GetWidthBrowser();
12208
12209                    lib3p.common_PostURL(window.pars3p.api.public.Delivery_GetLocation, {}, function (res) {
12210                        if (lib3p_helper.utility.hasValue(res)) {
12211                            window.pars3p.location = res;
12212                            if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListProvince)) {
12213                                jQuery('select.cboProvince').html('<option value="-1"></option>');
12214                                window.pars3p.location.ListProvince.forEach(function (c, cidx) {
12215                                    jQuery('select.cboProvince').append('<option value="' + c.Code + '">' + c.ProvinceName + '</option>');
12216                                });
12217                            }
12218                        }
12219                    }, function (err) {
12220                        lib3p.log(err);
12221                    });
12222                    var year = (new Date()).getFullYear() - 10;
12223                    var i = 0;
12224                    jQuery('select.cboNam').append('<option value="-1"></option>');
12225                    jQuery('select.cboThang').append('<option value="-1"></option>');
12226                    jQuery('select.cboNgay').append('<option value="-1"></option>');
12227                    for (i = 0; i < 100; i++) {
12228                        jQuery('select.cboNam').append('<option value="' + (year - i) + '">' + (year - i) + '</option>');
12229                    }
12230                    for (i = 1; i <= 12; i++) {
12231                        jQuery('select.cboThang').append('<option value="' + i + '">' + i + '</option>');
12232                    }
12233                    for (i = 1; i <= 31; i++) {
12234                        jQuery('select.cboNgay').append('<option value="' + i + '">' + i + '</option>');
12235                    }
12236
12237                    if (browserW >= 800) {
12238                        jQuery("#cboNgay_itemedit").combobox({ change: function (opt) { lib3p.pageRegister.onCboNgay_Change(opt) } });
12239                        jQuery("#cboThang_itemedit").combobox({ change: function (opt) { lib3p.pageRegister.onCboThang_Change(opt) } });
12240                        jQuery("#cboNam_itemedit").combobox({ change: function (opt) { lib3p.pageRegister.onCboNam_Change(opt) } });
12241                        jQuery("#cboProvince_itemedit").combobox({ change: function (opt) { lib3p.pageRegister.onProvince_Change(opt, '#cboDistrict_itemedit') } });
12242                        jQuery("#cboDistrict_itemedit").combobox({ change: function (opt) { } });
12243
12244                        jQuery('.page-dangky-khtt .hasaccount').hide();
12245                        jQuery('.page-dangky-khtt .noaccount').hide();
12246
12247                    }
12248                    else {
12249                        jQuery("#cboNgay_itemedit_m").combobox({ change: function (opt) { lib3p.pageRegister.onCboNgay_Change(opt) } });
12250                        jQuery("#cboThang_itemedit_m").combobox({ change: function (opt) { lib3p.pageRegister.onCboThang_Change(opt) } });
12251                        jQuery("#cboNam_itemedit_m").combobox({ change: function (opt) { lib3p.pageRegister.onCboNam_Change(opt) } });
12252                        jQuery("#cboProvince_itemedit_m").combobox({ change: function (opt) { lib3p.pageRegister.onProvince_Change(opt, '#cboDistrict_itemedit_m') } });
12253                        jQuery("#cboDistrict_itemedit_m").combobox({ change: function (opt) { } });
12254
12255                        jQuery('.mobile-dangky-khtt .hasaccount').hide();
12256                        jQuery('.mobile-dangky-khtt .noaccount').hide();
12257
12258                    }
12259                }, window.pars3p.timeAsync);
12260            });
12261        },
12262        onProvince_Change: function (opt, iddistrict) {
12263            if (lib3p_helper.utility.hasValueString(opt.value)) {
12264                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListDistrict)) {
12265                    var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == opt.value; });
12266                    jQuery(iddistrict).html('<option value="-1"></option>');
12267                    lstTemp.forEach(function (c, cidx) {
12268                        jQuery(iddistrict).append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
12269                    });
12270                }
12271            }
12272        },
12273        onCboNgay_Change: function (opt) {
12274            var query = jQuery(opt).closest('form');
12275            setTimeout(function () {
12276                lib3p.pageRegister.Register_Check(query);
12277            }, 100);
12278        },
12279        onCboThang_Change: function (opt) {
12280            var query = jQuery(opt).closest('form');
12281            setTimeout(function () {
12282                lib3p.pageRegister.Register_Check(query);
12283            }, 100);
12284        },
12285        onCboNam_Change: function (opt) {
12286            var query = jQuery(opt).closest('form');
12287            setTimeout(function () {
12288                lib3p.pageRegister.Register_Check(query);
12289            }, 100);
12290        },
12291        onCaptcha_Click: function () {
12292            window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
12293            jQuery('.page-register .dang-ky .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
12294            jQuery('.page-register .dang-ky .captcha').attr('key', window.pars3p.KeyView);
12295            jQuery('.mobile-register .dang-ky .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
12296            jQuery('.mobile-register .dang-ky .captcha').attr('key', window.pars3p.KeyView);
12297        },
12298        Check_Disabled: function (query) {
12299            jQuery(query[0].FirstName).prop("disabled", true);
12300            jQuery(query[0].LastName).prop("disabled", true);
12301            jQuery(query[0].Captcha).prop("disabled", true);
12302            if (window.pars3p.MobileClick == true) {
12303                jQuery("#cboProvince_itemedit_m").prop("disabled", true);
12304                jQuery("#cboProvince_itemedit_m").next().children().prop("disabled", true);
12305                jQuery("#cboDistrict_itemedit_m").prop("disabled", true);
12306                jQuery("#cboDistrict_itemedit_m").next().children().prop("disabled", true);
12307                jQuery("#cboNam_itemedit_m").prop("disabled", true);
12308                jQuery("#cboNam_itemedit_m").next().children().prop("disabled", true);
12309                jQuery("#cboThang_itemedit_m").prop("disabled", true);
12310                jQuery("#cboThang_itemedit_m").next().children().prop("disabled", true);
12311                jQuery("#cboNgay_itemedit_m").prop("disabled", true);
12312                jQuery("#cboNgay_itemedit_m").next().children().prop("disabled", true);
12313            }
12314            else {
12315                jQuery("#cboProvince_itemedit").prop("disabled", true);
12316                jQuery("#cboProvince_itemedit").next().children().prop("disabled", true);
12317                jQuery("#cboDistrict_itemedit").prop("disabled", true);
12318                jQuery("#cboDistrict_itemedit").next().children().prop("disabled", true);
12319                jQuery("#cboNam_itemedit").prop("disabled", true);
12320                jQuery("#cboNam_itemedit").next().children().prop("disabled", true);
12321                jQuery("#cboThang_itemedit").prop("disabled", true);
12322                jQuery("#cboThang_itemedit").next().children().prop("disabled", true);
12323                jQuery("#cboNgay_itemedit").prop("disabled", true);
12324                jQuery("#cboNgay_itemedit").next().children().prop("disabled", true);
12325            }
12326        },
12327        Check_Enabled: function (query) {
12328            jQuery(query[0].FirstName).prop("disabled", false);
12329            jQuery(query[0].LastName).prop("disabled", false);
12330            jQuery(query[0].Captcha).prop("disabled", false);
12331            if (window.pars3p.MobileClick == true) {
12332                jQuery("#cboProvince_itemedit_m").prop("disabled", false);
12333                jQuery("#cboProvince_itemedit_m").next().children().prop("disabled", false);
12334                jQuery("#cboDistrict_itemedit_m").prop("disabled", false);
12335                jQuery("#cboDistrict_itemedit_m").next().children().prop("disabled", false);
12336                jQuery("#cboNam_itemedit_m").prop("disabled", false);
12337                jQuery("#cboNam_itemedit_m").next().children().prop("disabled", false);
12338                jQuery("#cboThang_itemedit_m").prop("disabled", false);
12339                jQuery("#cboThang_itemedit_m").next().children().prop("disabled", false);
12340                jQuery("#cboNgay_itemedit_m").prop("disabled", false);
12341                jQuery("#cboNgay_itemedit_m").next().children().prop("disabled", false);
12342            }
12343            else {
12344                jQuery("#cboProvince_itemedit").prop("disabled", false);
12345                jQuery("#cboProvince_itemedit").next().children().prop("disabled", false);
12346                jQuery("#cboDistrict_itemedit").prop("disabled", false);
12347                jQuery("#cboDistrict_itemedit").next().children().prop("disabled", false);
12348                jQuery("#cboNam_itemedit").prop("disabled", false);
12349                jQuery("#cboNam_itemedit").next().children().prop("disabled", false);
12350                jQuery("#cboThang_itemedit").prop("disabled", false);
12351                jQuery("#cboThang_itemedit").next().children().prop("disabled", false);
12352                jQuery("#cboNgay_itemedit").prop("disabled", false);
12353                jQuery("#cboNgay_itemedit").next().children().prop("disabled", false);
12354            }
12355        },
12356        Register_Check: function (query, el, isphone) {
12357            //var query = jQuery('.page-register form.dang-ky');
12358            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
12359                var flag = true;
12360                var flagControl = false;
12361                var ctr = query[0].Cellphone;
12362                var PhoneNumber = ctr.value;
12363                var flagPhone = true;
12364                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12365                    //lib3p.pageRegister.Check_Disabled(query);
12366                    flag = false;
12367                    flagPhone = false;
12368                    window.pars3p.PhoneNumber_last = null;
12369                    if (flagControl == false) {
12370                        if (ctr != el) {
12371                            if (!jQuery(ctr).hasClass('error')) {
12372                                jQuery(ctr).addClass('error');
12373                            }
12374                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
12374<span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
12375                        }
12376                    }
12377                }
12378                else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
12379                    //lib3p.pageRegister.Check_Disabled(query);
12380                    flag = false;
12381                    flagPhone = false;
12382                    window.pars3p.PhoneNumber_last = null;
12383                    if (flagControl == false) {
12384                        if (ctr != el) {
12385                            if (!jQuery(ctr).hasClass('error')) {
12386                                jQuery(ctr).addClass('error');
12387                            }
12388                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
12389                        }
12390                        else if (ctr.value.length >= 10) {
12391                            if (!jQuery(ctr).hasClass('error')) {
12392                                jQuery(ctr).addClass('error');
12393                            }
12394                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
12395                        }
12396                    }
12397                }
12398                else {
12399                    jQuery(ctr).removeClass('error');
12400                    jQuery(ctr).parent().next().html('');
12401                }
12402                if (ctr == el) {
12403                    flagControl = true;
12404                }
12405                ctr = query[0].FirstName;
12406                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12407                    flag = false;
12408                    if (flagControl == false) {
12409                        if (ctr != el) {
12410                            if (!jQuery(ctr).hasClass('error')) {
12411                                jQuery(ctr).addClass('error');
12412                            }
12413                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
12414                        }
12415                    }
12416                }
12417                else if (ctr.value.length > 200) {
12418                    flag = false;
12419                    if (flagControl == false) {
12420                        if (ctr != el) {
12421                            if (!jQuery(ctr).hasClass('error')) {
12422                                jQuery(ctr).addClass('error');
12423                            }
12424                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Họ và tên lót nhập quá 200 ký tự</span>');
12425                        }
12426                    }
12427                }
12428                else {
12429                    jQuery(ctr).removeClass('error');
12430                    jQuery(ctr).parent().next().html('');
12431                }
12432                if (ctr == el) {
12433                    flagControl = true;
12434                }
12435                ctr = query[0].LastName;
12436                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12437                    flag = false;
12438                    if (flagControl == false) {
12439                        if (ctr != el) {
12440                            if (!jQuery(ctr).hasClass('error')) {
12441                                jQuery(ctr).addClass('error');
12442                            }
12443                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
12443<span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
12444                        }
12445                    }
12446                }
12447                else if (ctr.value.length > 50) {
12448                    flag = false;
12449                    if (flagControl == false) {
12450                        if (ctr != el) {
12451                            if (!jQuery(ctr).hasClass('error')) {
12452                                jQuery(ctr).addClass('error');
12453                            }
12454                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Tên nhập quá 50 ký tự</span>');
12455                        }
12456                    }
12457                }
12458                else {
12459                    jQuery(ctr).removeClass('error');
12460                    jQuery(ctr).parent().next().html('');
12461                }
12462                if (ctr == el) {
12463                    flagControl = true;
12464                }
12465                var ngay = -1;
12466                var thang = -1;
12467                var nam = -1;
12468                if (window.pars3p.MobileClick == true) {
12469                    ctr = document.getElementById('cboNgay_itemedit_m');
12470                    ngay = parseInt(ctr.value);
12471                    ctr = document.getElementById('cboThang_itemedit_m');
12472                    thang = parseInt(ctr.value);
12473                    ctr = document.getElementById('cboNam_itemedit_m');
12474                    nam = parseInt(ctr.value);
12475                }
12476                else {
12477                    ctr = document.getElementById('cboNgay_itemedit');
12478                    ngay = parseInt(ctr.value);
12479                    ctr = document.getElementById('cboThang_itemedit');
12480                    thang = parseInt(ctr.value);
12481                    ctr = document.getElementById('cboNam_itemedit');
12482                    nam = parseInt(ctr.value);
12483                }
12484                if (!(ngay > 0 && thang > 0 && nam > 0)) {
12485                    flag = false;
12486                }
12487                else if (!lib3p_helper.utility.dateIsValid(ngay, thang, nam)) {
12488                    flag = false;
12489                    jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập sai ngày, tháng, năm</span>');
12490                }
12491                else {
12492                    jQuery(ctr).closest('.input').next().html('');
12493                }
12494                ctr = query[0].Captcha;
12495                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12496                    flag = false;
12497                    if (flagControl == false) {
12498                        if (ctr != el) {
12499                            if (!jQuery(ctr).hasClass('error')) {
12500                                jQuery(ctr).addClass('error');
12501                            }
12502                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
12503                        }
12504                    }
12505                }
12506                if (ctr == el) {
12507                    flagControl = true;
12508                }
12509                ctr = query[0].Chon;
12510                if (ctr.checked != true) {
12511                    flag = false;
12512                }
12513                if (flagPhone == true && isphone == true && window.pars3p.PhoneNumber_last != PhoneNumber) {
12514                    lib3p.pageRegister.Check_Phone(PhoneNumber, query).then(function (data) { }, function (err) { lib3p.log(err); });
12515                }
12516            }
12517        },
12518        Check_Phone: function (PhoneNumber, frm) {
12519            lib3p.common_LoadingShow();
12520
12521            return new Promise(function (resolve, reject) {
12522                setTimeout(function () {
12523                    window.pars3p.PhoneNumber_last = PhoneNumber;
12524                    lib3p.common_GetURL(window.pars3p.api.public.Header_GetByPhone + '?phone=' + PhoneNumber, function (res) {
12525                        lib3p.common_LoadingHide();
12526                        if (res.HasAccount == true) {
12527                            frm[0].Cellphone.value = '';
12528                            lib3p.header.ShowHasAccount(PhoneNumber, function () {
12529                                window.location = '/';
12530                            }, function () {
12531
12532                            });
12533                        }
12534                        else {
12535                            window.pars3p.PhoneNumber_last = null;
12536                            if (res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn)) {
12537                                if (res.ObjectReturn.Cellphone != PhoneNumber) {
12538                                    ctr = frm[0].Cellphone;
12539                                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại bạn vừa nhập được đăng ký cho mã KHTT ' + res2.ObjectReturn.CardNo + ' tại Cửa hàng, nhưng tại web, mã KHTT này đang lưu với số điện thoại ' + res2.ObjectReturn.Cellphone + '. Vui lòng liên hệ Hachi Hachi để được hỗ trợ.</span>');
12540                                }
12541                                else {
12542                                    res.ObjectReturn.Cellphone = PhoneNumber;
12543                                    window.pars3p.dangkykhtt.IsChangePass = false;
12544                                    var str = PhoneNumber.substr(0, 3) + "****" + PhoneNumber.substr(-3);
12545                                    jQuery('.page-register .thanh-cong .dienthoai').html(str);
12546                                    jQuery('.popup-register-pass .data').html(str);
12547                                    jQuery('.mobile-register .thanh-cong .dienthoai').html(str);
12548                                    lib3p.header.onKTTT_Show(res.ObjectReturn, lib3p.header.TypeKTTT.Account, function () {
12549                                        var req = {
12550                                            HistoryCardID: res.ObjectReturn.ID,
12551                                            CardNo: res.ObjectReturn.CardNo,
12552                                            Email: "",
12553                                            UserName: window.pars3p.khtt.Cellphone,
12554                                            Password: new Date().getTime(),
12555                                            PhoneNumber: window.pars3p.khtt.Cellphone,
12556                                            FirstName: window.pars3p.khtt.FirstName,
12557                                            LastName: window.pars3p.khtt.LastName,
12558                                            FullName: window.pars3p.khtt.FullName,
12559                                            Store: -1,
12560                                            POMaster: "",
12561                                            SendType: window.pars3p.otp.SendType
12562                                        };
12563                                        window.pars3p.dangkykhtt.Code = res.ObjectReturn.ID;
12564                                        window.pars3p.dangkykhtt.HistoryCardID = res.ObjectReturn.ID;
12565                                        window.pars3p.dangkykhtt.Cellphone = window.pars3p.khtt.Cellphone;
12566                                        window.pars3p.dangkykhtt.CardNo = res.ObjectReturn.CardNo;
12567                                        window.pars3p.dangkykhtt.FirstName = res.ObjectReturn.FirstName;
12568                                        window.pars3p.dangkykhtt.L
12568astName = res.ObjectReturn.LastName;
12569                                        window.pars3p.dangkykhtt.FullName = res.ObjectReturn.FullName;
12570                                        lib3p.common_PostURL(window.pars3p.api.public.User_Register2, req, function (res3) {
12571                                            if (lib3p_helper.utility.hasValue(res3)) {
12572                                                if (res3.StatusID == 0 && lib3p_helper.utility.hasValueString(res3.CardNo)) {
12573                                                    window.pars3p.dangkykhtt.IsSend = res3.IsSentRabbit;
12574                                                    lib3p.header.ConnectAuth(window.pars3p.khtt.Cellphone, res3.Password, function () {
12575                                                        window.pars3p.password.PasswordOld = res3.Password;
12576                                                        lib3p.pageRegister.onRegisterPass_Open();
12577                                                    }, function (errConnect) {
12578                                                        jQuery(frm[0].Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">' + errConnect + '</span>');
12579                                                    });
12580                                                }
12581                                                else {
12582                                                    jQuery(frm[0].Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Lỗi dữ liệu</span>');
12583                                                }
12584                                            }
12585                                        }, function (err3) {
12586                                            lib3p.log(err3);
12587                                        });
12588                                    }, function () {
12589                                        if (window.pars3p.MobileClick == true) {
12590                                            query = jQuery('.mobile-register form');
12591                                        }
12592                                        else {
12593                                            query = jQuery('.page-register form');
12594                                        }
12595                                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
12596                                            ctr = frm[0].Cellphone;
12597                                            ctr.value = '';
12598                                            ctr.focus();
12599                                        }
12600                                    });
12601                                }
12602                            }
12603                        }
12604
12605                    }, function (err) {
12606                        lib3p.log(err);
12607                        lib3p.common_LoadingHide();
12608                    });
12609
12610                }, window.pars3p.timeAsync);
12611            });
12612        },
12613        Check_Phone_Test: function (PhoneNumber, frm) {
12614            lib3p.common_LoadingShow();
12615
12616            return new Promise(function (resolve, reject) {
12617                setTimeout(function () {
12618                    /* if(!jQuery(frm[0]).hasClass('haserror')) {
12619                        jQuery(frm[0]).addClass('haserror');
12620                    } */
12621                    window.pars3p.PhoneNumber_last = PhoneNumber;
12622                    lib3p.common_PostURL(window.pars3p.api.public.checkuser, { "PhoneNumber": PhoneNumber }, function (res) {
12623                        if (res == true) {
12624                            lib3p.common_LoadingHide();
12625
12626                            frm[0].Cellphone.value = '';
12627                            lib3p.header.ShowHasAccount(PhoneNumber, function () {
12628                                window.location = '/';
12629                            }, function () {
12630
12631                            });
12632
12633                            //ctr = frm[0].Cellphone;
12634                            //jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại bạn vừa nhập đã có tài khoản tại Hachi Hachi</span>');
12635                        }
12636                        else {
12637                            //lib3p.common_PostURL(window.pars3p.api.public.GetCardByStaff, { "CellPhone": PhoneNumber }, function (res2) {
12638                            lib3p.common_PostURL(window.pars3p.api.public.Header_GetByPhone, { "CellPhone": PhoneNumber }, function (res2) {
12639                                lib3p.common_LoadingHide();
12640
12641                                window.pars3p.PhoneNumber_last = null;
12642                                if (lib3p_helper.utility.hasValue(res2) && res2.StatusCode == 0 && lib3p_helper.utility.hasValue(res2.ObjectReturn)) {
12643                                    if (res2.ObjectReturn.Cellphone != PhoneNumber) {
12644                                        ctr = frm[0].Cellphone;
12645                                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại bạn vừa nhập được đăng ký cho mã KHTT ' + res2.ObjectReturn.CardNo + ' tại Cửa hàng, nhưng tại web, mã KHTT này đang lưu với số điện thoại ' + res2.ObjectReturn.Cellphone + '. Vui lòng liên hệ Hachi Hachi để được hỗ trợ.</span>');
12646                                    }
12647                                    else {
12648                                        res2.ObjectReturn.Cellphone = PhoneNumber;
12649                                        window.pars3p.dangkykhtt.IsChangePass = false;
12650                                        var str = PhoneNumber.substr(0, 3) + "****" + PhoneNumber.substr(-3);
12651                                        jQuery('.page-register .thanh-cong .dienthoai').html(str);
12652                                        jQuery('.popup-register-pass .data').html(str);
12653                                        jQuery('.mobile-register .thanh-cong .dienthoai').html(str);
12654                                        lib3p.header.onKTTT_Show(res2.ObjectReturn, lib3p.header.TypeKTTT.Account, function () {
12655                                            var req = {
12656                                                Email: "",
12657                                                UserName: window.pars3p.khtt.Cellphone,
12658                                                Password: new Date().getTime(),
12659                                                PhoneNumber: window.pars3p.khtt.Cellphone,
12660                                                FirstName: window.pars3p.khtt.FirstName,
12661                                                LastName: window.pars3p.khtt.LastName,
12662                                                FullName: window.pars3p.khtt.FullName,
12663                                                Store: -1,
12664                                                POMaster: "",
12665                                                SendType: window.pars3p.otp.SendType
12666                                            };
12667                                            window.pars3p.dangkykhtt.Code = res2.ObjectReturn.ID;
12668                                            window.pars3p.dangkykhtt.HistoryCardID = res2.ObjectReturn.ID;
12669                                            window.pars3p.dangkykhtt.Cellphone = window.pars3p.khtt.Cellphone;
12670                                            window.pars3p.dangkykhtt.CardNo = res2.ObjectReturn.CardNo;
12671                                            window.pars3p.dangkykhtt.FirstName = res2.ObjectReturn.FirstName;
12672                                            window.pars3p.dangkykhtt.L
12672astName = res2.ObjectReturn.LastName;
12673                                            window.pars3p.dangkykhtt.FullName = res2.ObjectReturn.FullName;
12674                                            lib3p.common_PostURL(window.pars3p.api.public.User_Register2, req, function (res3) {
12675                                                if (lib3p_helper.utility.hasValue(res3)) {
12676                                                    if (res3.StatusID == 0 && lib3p_helper.utility.hasValueString(res3.CardNo)) {
12677                                                        window.pars3p.dangkykhtt.IsSend = res3.IsSentRabbit;
12678                                                        lib3p.header.ConnectAuth(window.pars3p.khtt.Cellphone, res3.Password, function () {
12679                                                            window.pars3p.password.PasswordOld = res3.Password;
12680                                                            lib3p.pageRegister.onRegisterPass_Open();
12681                                                        }, function (errConnect) {
12682                                                            jQuery(frm[0].Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">' + errConnect + '</span>');
12683                                                        });
12684                                                    }
12685                                                    else {
12686                                                        jQuery(frm[0].Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Lỗi dữ liệu</span>');
12687                                                    }
12688                                                }
12689                                            }, function (err3) {
12690                                                lib3p.log(err3);
12691                                            });
12692                                        }, function () {
12693                                            if (window.pars3p.MobileClick == true) {
12694                                                query = jQuery('.mobile-register form');
12695                                            }
12696                                            else {
12697                                                query = jQuery('.page-register form');
12698                                            }
12699                                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
12700                                                ctr = frm[0].Cellphone;
12701                                                ctr.value = '';
12702                                                ctr.focus();
12703                                            }
12704                                        });
12705                                    }
12706                                }
12707                                else {
12708                                    jQuery(frm[0]).removeClass('haserror');
12709                                    //lib3p.pageRegister.Check_Enabled(frm);
12710                                }
12711                            }, function (err2) {
12712                                lib3p.log(err2);
12713                                lib3p.common_LoadingHide();
12714                            });
12715                        }
12716                    }, function (err) {
12717                        lib3p.log(err);
12718                        lib3p.common_LoadingHide();
12719                    });
12720
12721                }, window.pars3p.timeAsync);
12722            });
12723        },
12724        onRegister_Check: function (el) {
12725            var query = jQuery(el).closest('form');
12726            setTimeout(function () {
12727                lib3p.pageRegister.Register_Check(query, el);
12728            }, 100);
12729        },
12730        onRegister_KeyDown: function (event, el) {
12731            var query = jQuery(el).closest('form');
12732            var isphone = jQuery(el).attr('name') == 'Cellphone';
12733            setTimeout(function () {
12734                lib3p.pageRegister.Register_Check(query, el, isphone);
12735            }, 100);
12736        },
12737        onRegisterMobile_KeyDown: function (event, el) {
12738            var query = jQuery(el).closest('form');
12739            var isphone = jQuery(el).attr('name') == 'Cellphone';
12740            window.pars3p.MobileClick = true;
12741            setTimeout(function () {
12742                lib3p.pageRegister.Register_Check(query, el, isphone);
12743            }, 100);
12744        },
12745        onRegister_Submit: function (event) {
12746            if (!jQuery(event.target).hasClass('haserror')) {
12747                jQuery(event.target).find('div.error').html('');
12748                jQuery(event.target).find('.input input').removeClass('error');
12749
12750                var flag = true;
12751                var data = {
12752                    PhoneNumber: '',
12753                    HoTen: '',
12754                    Email: '',
12755                    Chon: false,
12756                    Ads: false,
12757                    Captcha: '',
12758                };
12759
12760                var ctr = event.target.Cellphone;
12761                data.Cellphone = ctr.value;
12762                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12763                    flag = false;
12764                    if (!jQuery(ctr).hasClass('error')) {
12765                        jQuery(ctr).addClass('error');
12766                    }
12767                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
12767<span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
12768                }
12769                else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
12770                    flag = false;
12771                    if (!jQuery(ctr).hasClass('error')) {
12772                        jQuery(ctr).addClass('error');
12773                    }
12774                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
12775                }
12776                ctr = event.target.FirstName;
12777                data.FirstName = ctr.value;
12778                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12779                    flag = false;
12780                    if (!jQuery(ctr).hasClass('error')) {
12781                        jQuery(ctr).addClass('error');
12782                    }
12783                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
12784                }
12785                else if (ctr.value.length > 200) {
12786                    flag = false;
12787                    if (!jQuery(ctr).hasClass('error')) {
12788                        jQuery(ctr).addClass('error');
12789                    }
12790                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Họ và tên lót nhập quá 200 ký tự</span>');
12791                }
12792                ctr = event.target.LastName;
12793                data.LastName = ctr.value;
12794                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12795                    flag = false;
12796                    if (!jQuery(ctr).hasClass('error')) {
12797                        jQuery(ctr).addClass('error');
12798                    }
12799                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
12800                }
12801                else if (ctr.value.length > 50) {
12802                    flag = false;
12803                    if (!jQuery(ctr).hasClass('error')) {
12804                        jQuery(ctr).addClass('error');
12805                    }
12806                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Tên nhập quá 50 ký tự</span>');
12807                }
12808                var ngay = -1;
12809                var thang = -1;
12810                var nam = -1;
12811                if (window.pars3p.MobileClick == true) {
12812                    ctr = document.getElementById('cboNgay_itemedit_m');
12813                    ngay = parseInt(ctr.value);
12814                    ctr = document.getElementById('cboThang_itemedit_m');
12815                    thang = parseInt(ctr.value);
12816                    ctr = document.getElementById('cboNam_itemedit_m');
12817                    nam = parseInt(ctr.value);
12818                }
12819                else {
12820                    ctr = document.getElementById('cboNgay_itemedit');
12821                    ngay = parseInt(ctr.value);
12822                    ctr = document.getElementById('cboThang_itemedit');
12823                    thang = parseInt(ctr.value);
12824                    ctr = document.getElementById('cboNam_itemedit');
12825                    nam = parseInt(ctr.value);
12826                }
12827                if (!(ngay > 0 && thang > 0 && nam > 0)) {
12828                    flag = false;
12829                    jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
12829<span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
12830                }
12831                else if (!lib3p_helper.utility.dateIsValid(ngay, thang, nam)) {
12832                    flag = false;
12833                    if (!jQuery(ctr).hasClass('error')) {
12834                        jQuery(ctr).addClass('error');
12835                    }
12836                    jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập sai ngày, tháng, năm</span>');
12837                }
12838                else {
12839                    jQuery(ctr).removeClass('error');
12840                    jQuery(ctr).closest('.input').next().html('');
12841                }
12842                var province = -1;
12843                var district = -1;
12844                if (window.pars3p.MobileClick == true) {
12845                    ctr = document.getElementById('cboProvince_itemedit_m');
12846                    province = parseInt(ctr.value);
12847                    ctr = document.getElementById('cboDistrict_itemedit_m');
12848                    district = parseInt(ctr.value);
12849                }
12850                else {
12851                    ctr = document.getElementById('cboProvince_itemedit');
12852                    province = parseInt(ctr.value);
12853                    ctr = document.getElementById('cboDistrict_itemedit');
12854                    district = parseInt(ctr.value);
12855                }
12856                if (!(province > 0 && district > 0)) {
12857                    flag = false;
12858                    jQuery(ctr).closest('.input').next('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
12859                }
12860                ctr = event.target.Captcha;
12861                data.Captcha = ctr.value;
12862                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
12863                    flag = false;
12864                    if (!jQuery(ctr).hasClass('error')) {
12865                        jQuery(ctr).addClass('error');
12866                    }
12867                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
12868                }
12869                ctr = event.target.Chon;
12870                if (ctr.checked != true) {
12871                    flag = false;
12872                    jQuery(ctr).closest('.chinhsach').find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng đồng ý với Chính sách bán hàng và Chính sách bảo mật để tiếp tục</span>');
12873                }
12874                ctr = event.target.Ads;
12875                data.Ads = ctr.checked == true;
12876
12877                if (flag == true) {
12878                    data.Birthday = new Date(nam, thang - 1, ngay);
12879                    data.Province = province;
12880                    data.District = district;
12881
12882                    ctr = event.target.Captcha;
12883                    window.pars3p.KeyCaptcha = data.Captcha;
12884                    lib3p.common_PostURL(window.pars3p.api.public.All_CheckCaptcha + '?key=' + window.pars3p.KeyView + '&captcha=' + window.pars3p.KeyCaptcha, {}, function (res) {
12885                        if (res == true) {
12886                            lib3p.pageRegister.onRegister_Submit_Next(event.target, data);
12887                        }
12888                        else {
12889                            if (!jQuery(ctr).hasClass('error')) {
12890                                jQuery(ctr).addClass('error');
12891                            }
12892                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
12892<span class="s13 cl-gregray600 regular400">Nhập sai mã</span>');
12893                        }
12894                    }, function (err) {
12895                        //lib3p.log(err);
12896                        if (!jQuery(ctr).hasClass('error')) {
12897                            jQuery(ctr).addClass('error');
12898                        }
12899                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập sai mã</span>');
12900                    });
12901                }
12902            }
12903
12904            event.preventDefault();
12905        },
12906
12907        onRegisterMobile_Submit: function (event) {
12908            window.pars3p.MobileClick = true;
12909            lib3p.pageRegister.onRegister_Submit(event);
12910            event.preventDefault();
12911        },
12912        onRegister_Submit_Next: function (query, data) {
12913            var str = data.Cellphone.substr(0, 3) + "****" + data.Cellphone.substr(-3);
12914            jQuery('.page-register .thanh-cong .dienthoai').html(str);
12915            jQuery('.popup-register-pass .data').html(str);
12916            jQuery('.mobile-register .thanh-cong .dienthoai').html(str);
12917            window.pars3p.dangkykhtt.Cellphone = data.Cellphone;
12918            window.pars3p.dangkykhtt.FirstName = data.FirstName;
12919            window.pars3p.dangkykhtt.LastName = data.LastName;
12920            window.pars3p.dangkykhtt.Birthday = data.Birthday;
12921            window.pars3p.dangkykhtt.Province = data.Province;
12922            window.pars3p.dangkykhtt.District = data.District;
12923            window.pars3p.dangkykhtt.IsReceiveAds = data.Ads == true;
12924            lib3p.header.onOTPType_ShowDelivery(data.Cellphone, function () {
12925                var req = {
12926                    Email: "",
12927                    UserName: data.Cellphone,
12928                    Password: new Date().getTime(),
12929                    PhoneNumber: data.Cellphone,
12930                    FirstName: data.FirstName,
12931                    LastName: data.LastName,
12932                    Birthday: data.Birthday,
12933                    Province: data.Province,
12934                    District: data.District,
12935                    Store: -1,
12936                    POMaster: "",
12937                    IsReceiveAds: data.Ads == true,
12938                    SendType: window.pars3p.otp.SendType
12939                };
12940                lib3p.common_PostURL(window.pars3p.api.public.User_Register2, req, function (res) {
12941                    if (lib3p_helper.utility.hasValue(res)) {
12942                        if (res.StatusID == 0 && lib3p_helper.utility.hasValueString(res.CardNo)) {
12943                            window.pars3p.dangkykhtt.Code = res.ID;
12944                            window.pars3p.dangkykhtt.HistoryCardID = res.ID;
12945                            window.pars3p.dangkykhtt.CardNo = res.CardNo;
12946                            window.pars3p.dangkykhtt.FullName = res.FullName;
12947                            window.pars3p.dangkykhtt.IsSend = res.IsSentRabbit;
12948                            window.pars3p.dangkykhtt.Store = -1;
12949                            window.pars3p.dangkykhtt.POMaster = "";
12950                            lib3p.header.ConnectAuth(data.Cellphone, res.Password, function () {
12951                                window.pars3p.password.PasswordOld = res.Password;
12952                                lib3p.pageRegister.onRegisterPass_Open();
12953                            }, function (errConnect) {
12954                                jQuery(query.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">' + errConnect + '</span>');
12955                            });
12956                        }
12957                        else {
12958                            jQuery(query.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Lỗi dữ liệu</span>');
12959                        }
12960                    }
12961                }, function (err) {
12962                    lib3p.log(err);
12963                });
12964            }, function () {
12965
12966            });
12967        },
12968        /* onRegister_Submit_Next_old: function (data) {
12969            var req = {
12970                Email: data.Email,
12971                UserName: data.PhoneNumber,
12972                Password: new Date().getTime(),
12973                PhoneNumber: data.PhoneNumber,
12974                FullName: data.FullName,
12975                SendType: window.pars3p.otp.SendType
12976            };
12977            var str = data.PhoneNumber.substr(0, 3) + "****" + data.PhoneNumber.substr(-3);
12978            jQuery('.page-register .thanh-cong .dienthoai').html(str);
12979            jQuery('.popup-register-pass .data').html(str);
12980            jQuery('.mobile-register .thanh-cong .dienthoai').html(str);
12981            lib3p.common_PostURL(window.pars3p.api.public.registeruser + '?key=' + window.pars3p.KeyView + '&captcha=' + data.Captcha, req, function (res) {
12982                if (lib3p_helper.utility.hasValue(res)) {
12983                    if (res.StatusCode == 0) {
12984                        if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
12985                            if (res.ObjectReturn.StatusID == 0) {
12986                                window.pars3p.otp.PhoneNumber = data.PhoneNumber;
12987                                lib3p.header.onOTPType_Show(data.PhoneNumber, lib3p.header.TypeOTP.Account, function () {
12988                                    window.pars3p.password.PasswordOld = window.pars3p.otp.Password;
12989                                    lib3p.pageRegister.onRegisterPass_Open();
12990                                }, function () {
12991                                });
12992                            }
12993                            else if (res.ObjectReturn.StatusID == 1) {
12994                                res.ObjectReturn.Cellphone = data.PhoneNumber;
12995                                lib3p.header.onKTTT_Show(res.ObjectReturn, lib3p.header.TypeKTTT.Account, function () {
12996                                    lib3p.pageRegister.onRegisterPass_Open();
12997                                }, function () {
12998                                });
12999                            }
13000                        }
13001                    }
13002                    else {
13003                        var query = jQuery('.page-register form.dang-ky');
13004                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
13005                            ctr = query[0].Email;
13006                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">' + res.ErrorString + '</span>');
13007                            jQuery(jQuery('.mobile-register form.dang-ky')[0].Email).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">' + res.ErrorString + '</span>');
13008                        }
13009                    }
13010                }
13011                else {
13012                    var query = jQuery('.page-register form.dang-ky');
13013                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
13014                        ctr = query[0].Email;
13015                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Lỗi dữ liệu</span>');
13016                        jQuery(jQuery('.mobile-register form.dang-ky')[0].Email).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Lỗi dữ liệu</span>');
13017                    }
13018                }
13019            }, function (err) {
13020                lib3p.log(err);
13021            });
13022        }, */
13023        OPT_Submit_Info: function () {
13024            jQuery('.page-register .dang-ky').hide();
13025            jQuery('.page-register .thanh-cong').show();
13026            jQuery('.page-register .col-auto.left').hide();
13027            jQuery('.mobile-register .dang-ky').hide();
13028            jQuery('.mobile-register .thanh-cong').show();
13029            jQuery('.mobile-register .banner-top').hide();
13030            lib3p.common_AuthPostURL(window.pars3p.api.auth.Header_GetInfo, {}, function (resGet) {
13031                if (lib3p_helper.utility.hasValue(resGet) && lib3p_helper.utility.hasValueString(resGet.UserName)) {
13032                    window.pars3p.auth.fullName = resGet.FullName;
13033                    window.pars3p.auth.phoneNumber = resGet.Cellphone;
13034                    window.pars3p.auth.email = resGet.Email;
13035                    window.pars3p.auth.memberID = resGet.CardNo;
13036                    window.pars3p.auth.userName = resGet.UserName;
13037                    window.pars3p.auth.isLogin = true;
13038    
13039                    if (lib3p_helper.utility.hasValueString(resGet.CardNo)) {
13040                        var str = resGet.CardNo;
13041                        jQuery('.page-register .thanh-cong .memberID').html(str);
13042                        jQuery('.mobile-register .thanh-cong .memberID').html(str);
13043                    }
13044                }                
13045            }, function (err) {
13046                lib3p.log(err);
13047            });
13048        },
13049        /* OPT_Submit_Info: function () {
13050            jQuery('.page-register .dang-ky').hide();
13051            jQuery('.page-register .thanh-cong').show();
13052            jQuery('.page-register .col-auto.left').hide();
13053            jQuery('.mobile-register .dang-ky').hide();
13054            jQuery('.mobile-register .thanh-cong').show();
13055            jQuery('.mobile-register .banner-top').hide();
13056            lib3p.common_AuthGetURL(window.pars3p.api.auth.getuserinfo, function (res) {
13057                window.pars3p.auth.fullName = res.fullName;
13058                window.pars3p.auth.phoneNumber = res.phoneNumber;
13059                window.pars3p.auth.email = res.email;
13060                window.pars3p.auth.memberID = res.memberID;
13061                window.pars3p.auth.userName = res.userName;
13062                window.pars3p.auth.isLogin = true;
13063
13064                if (lib3p_helper.utility.hasValueString(res.memberID)) {
13065                    //var str = res.memberID.substr(0, 3) + "****" + res.memberID.substr(-3);
13066                    var str = res.memberID;
13067                    jQuery('.page-register .thanh-cong .memberID').html(str);
13068                    jQuery('.mobile-register .thanh-cong .memberID').html(str);
13069                }
13070            }, function (err) {
13071                lib3p.log(err);
13072            });
13073        }, */
13074        onRegisterPass_Open: function () {
13075            var query = jQuery('.popup-register-pass .hachi-modal');
13076            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
13077                if (jQuery(query[0]).hasClass("d-none")) {
13078                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
13079                }
13080            }
13081            if (lib3p_helper.utility.hasValueString(window.pars3p.dangkykhtt) && window.pars3p.dangkykhtt.Code > 0) {
13082                lib3p.common_AuthPostURL(window.pars3p.api.auth.PageKHTT_SendOther, { "item": window.pars3p.dangkykhtt }, function (res) {
13083                    if (res == true) {
13084
13085                    }
13086                }, function (err) {
13087                    lib3p.log(err);
13088                });
13089            }
13090        },
13091        onRegisterPass_Close: function () {
13092            var query = jQuery('.popup-register-pass .hachi-modal');
13093            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
13094                if (jQuery(query[0]).hasClass("d-block")) {
13095                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
13096                }
13097            }
13098            lib3p.pageRegister.OPT_Submit_Info();
13099        },
13100        onRegisterPassHien_Click: function (el) {
13101            var query = jQuery(el).closest('.input');
13102            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
13103                var el = query[0];
13104                var query = jQuery(el).children('input');
13105                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
13106                    var input = query[0];
13107                    if (jQuery(el).hasClass('hide')) {
13108                        jQuery(el).removeClass('hide');
13109                        jQuery(input).attr('type', 'password');
13110                    }
13111                    else {
13112                        jQuery(el).addClass('hide');
13113                        jQuery(input).attr('type', 'text');
13114                    }
13115                }
13116            }
13117        },
13118        onRegisterPass_KeyDown: function (event, el) {
13119            var query = jQuery(el).closest('form');
13120            setTimeout(function () {
13121                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
13122                    var flag = true;
13123                    var ctr = query[0].pass;
13124                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
13125                        flag = false;
13126                    }
13127                    ctr = query[0].passre;
13128                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
13129                        flag = false;
13130                    }
13131                    if (flag == true) {
13132                        jQuery(query[0]).removeClass('haserror');
13133                    }
13134                    else {
13135                        if (!jQuery(query[0]).hasClass('haserror')) {
13136                            jQuery(query[0]).addClass('haserror');
13137                        }
13138                    }
13139                }
13140            }, 100);
13141        },
13142        onRegisterPass_Submit: function (event) {
13143            if (!jQuery(event.target).hasClass('haserror')) {
13144                jQuery(event.target).find('div.error').html('');
13145                jQuery(event.target).find('.input input').removeClass('error');
13146
13147                var flag = true;
13148                var data = {
13149                    pass: '',
13150                    passre: '',
13151                };
13152
13153                var ctr = event.target.pass;
13154                data.pass = ctr.value;
13155                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
13156                    flag = false;
13157                    if (!jQuery(ctr).hasClass('error')) {
13158                        jQuery(ctr).addClass('error');
13159                    }
13160                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mật khẩu không đủ 6 kí tự, vui lòng nhập lại</span>');
13161                }
13162                else if (ctr.value.length < 6) {
13163                    flag = false;
13164                    if (!jQuery(ctr).hasClass('error')) {
13165                        jQuery(ctr).addClass('error');
13166                    }
13167                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mật khẩu ít nhất 6 kí tự</span>');
13168                }
13169                ctr = event.target.passre;
13170                data.passre = ctr.value;
13171                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
13172                    flag = false;
13173                    if (!jQuery(ctr).hasClass('error')) {
13174                        jQuery(ctr).addClass('error');
13175                    }
13176                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
13177                }
13178                if (flag != false && data.passre != data.pass) {
13179                    flag = 
13179false;
13180                    if (!jQuery(ctr).hasClass('error')) {
13181                        jQuery(ctr).addClass('error');
13182                    }
13183                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mật khẩu không khớp nhau, vui lòng nhập lại</span>');
13184                }
13185
13186                if (flag == true) {
13187                    lib3p.common_AuthPostURL(window.pars3p.api.auth.User_ChangePass, { "passold": window.pars3p.password.PasswordOld, "passnew": data.pass }, function (res) {
13188                        if(res.Succeeded == true) {
13189                            lib3p.pageRegister.onRegisterPass_Close();
13190                        }
13191                        else {
13192                            ctr = event.target.pass;
13193                            if (!jQuery(ctr).hasClass('error')) {
13194                                jQuery(ctr).addClass('error');
13195                            }
13196                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Nhập sai mật khẩu</span>');
13197                        }
13198                    }, function (err) {
13199                        if (err.status == 200) {
13200                            lib3p.pageRegister.onRegisterPass_Close();
13201                        }
13202                    });
13203                    /* lib3p.common_AuthPostURL(window.pars3p.api.auth.changepassword, { "Password": window.pars3p.password.PasswordOld, "NewPassword": data.pass }, function (res) {
13204                        lib3p.pageRegister.onRegisterPass_Close();
13205                    }, function (err) {
13206                        if (err.status == 200) {
13207                            lib3p.pageRegister.onRegisterPass_Close();
13208                        }
13209                    }); */
13210                }
13211            }
13212
13213            event.preventDefault();
13214        },
13215    },
13216
13217    pageProductPromotion: {
13218        init: function () {
13219            var query = jQuery(".page-product-promotion");
13220            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
13221                lib3p.pageProductPromotion.init_async().then(function (data) { }, function (err) { console.log(err); });
13222            }
13223        },
13224        init_async: function () {
13225            return new Promise(function (resolve, reject) {
13226                setTimeout(function () {
13227                    lib3p.pageCart.OtherPage();
13228                    lib3p.common_urllastSet(window.location.href);
13229                    //lib3p.header.LoadFlashSale();
13230                    //lib3p.header.LoadTotalChip();
13231
13232                    if (lib3p_helper.utility.hasListValue(window.pars3p.others.ListBanner)) {
13233                        var lstBanners = window.pars3p.others.ListBanner.filter(function (c) { return c.TypeData == 19; });
13234                        if (lib3p_helper.utility.hasListValue(lstBanners)) {
13235                            var html9 = '<div class="owl-carousel">';
13236                            var total9 = lstBanners.filter(function (c) { return c.TypeData == 19; }).length;
13237                            var index9 = 1;
13238                            lstBanners.forEach(function (c, cidx) {
13239                                if (lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
13240                                    if (c.Link.indexOf('?') > 0) {
13241                                        c.Link = c.Link + '&' + window.pars3p.seo.Query;
13242                                    }
13243                                    else {
13244                                        c.Link = c.Link + '?' + window.pars3p.seo.Query;
13245                                    }
13246                                }
13247
13248                                if (c.TypeData == 19) {
13249                                    html9 += '<div key="' + c.Code + '" class="item"><a href="' + c.Link + '"><img src="' + window.pars3p.hostresouce + c.Image + '" alt="' + c.Name + '" /></a>';
13250                                    html9 += '<div class="sapxep-bg b-gregray40">&nbsp;</div>';
13251                                    html9 += '<div class="sapxep s13 cl-gregray600 sibold600">' + index9 + '/' + total9 + '</div>';
13252                                    html9 += '</div>';
13253                                    index9++;
13254                                }
13255                            });
13256                            html9 += '</div>';
13257                            jQuery(".page-product-promotion .section-6 .banner").html(html9);
13258                            jQuery('.page-product-promotion .section-6 .banner .owl-carousel').owlCarousel({
13259                                autoplay: false,
13260                                autoplayTimeout: 3000,
13261                                autoplayHoverPause: true,
13262                                loop: true,
13263                                nav: true,
13264                                dots: false,
13265                                items: 2.5,
13266                                margin: 20,
13267                                navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
13268                                navElement: 'div'
13269                            });
13270                            jQuery('.mobile-product-promotion .banner-1').html(html9);
13271                            jQuery('.mobile-product-promotion .banner-1 .owl-carousel').owlCarousel({
13272                                autoplay: false,
13273                                autoplayTimeout: 3000,
13274                                autoplayHoverPause: true,
13275                                loop: true,
13276                                nav: false,
13277                                dots: false,
13278                                autoWidth: true,
13279                                margin: 10,
13280                            });
13281                        }
13282                    }
13283                    resolve('');
13284
13285                    var query = jQuery(".page-product-promotion .section-1 .danh-sach .item .title");
13286                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
13287                        query.each(function () {
13288                            var time = jQuery(this).data('time');
13289                            /* if(lib3p_helper.utility.hasValue(time)) {
13290                                var dt = new Date(time);
13291                                var dtNow = new Date();
13292                                var day = dtNow.getDate() - dt.getDate();
13293                                var hour = dtNow.getHours() - dt.getHours();
13294                                var min = dtNow.getMinutes() - dt.getMinutes();
13295                            } */
13296                        });
13297                    }
13298
13299                    query = jQuery(".page-product-promotion .promotion-gift-range");
13300                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
13301                        jQuery('.page-product-promotion .promotion-gift-range .product-list.owl-carousel').owlCarousel({
13302                            autoplay: false,
13303                            autoplayTimeout: 3000,
13304                            autoplayHoverPause: true,
13305                            autoWidth: true,
13306                            loop: false,
13307                            nav: true,
13308                            dots: false,
13309                            margin: 10,
13310                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
13311                            navElement: 'div'
13312                        });
13313                        jQuery('.mobile-product-promotion .promotion-gift-range .product-list.owl-carousel').owlCarousel({
13314                            autoplay: false,
13315                            autoplayTimeout: 3000,
13316                            autoplayHoverPause: true,
13317                            autoWidth: true,
13318                            loop: false,
13319                            nav: true,
13320                            dots: false,
13321                            margin: 10,
13322                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
13323                            navElement: 'div'
13324                        });
13325                        
13326                    }
13327                }, window.pars3p.timeAsync);
13328            });
13329        },
13330    },
13331
13332    pageCartTest2: {
13333        init: function () {
13334        },
13335        init_async: function () {
13336            return new Promise(function (resolve, reject) {
13337                setTimeout(function () {
13338                    lib3p.common_cartGet().then(function (res) {
13339                        var cart = res;
13340                        if (lib3p_helper.utility.hasValue(cart) && (cart.Code >= -1 || cart.PaymentID >= 0)) {
13341                            window.pars3p.cart = cart;
13342                            window.pars3p.cart.URLRedirect = '';
13343                            window.pars3p.cart.OrderDate = lib3p_helper.utility.dateGet(window.pars3p.cart.OrderDate);
13344                            window.pars3p.cart.StepDate = lib3p_helper.utility.dateGet(window.pars3p.cart.StepDate);
13345                            window.pars3p.cart.EstDelivery = lib3p_helper.utility.dateGet(window.pars3p.cart.EstDelivery);
13346
13347                            if (lib3p_helper.utility.hasListValue(cart.CartDetails)) {
13348                                window.pars3p.cart.CartDetails.forEac
13348h(function (c, cidx) {
13349                                    if (!lib3p_helper.utility.hasListValue(c.ListCoupon)) {
13350                                        c.ListCoupon = null;
13351                                    }
13352                                    if (!lib3p_helper.utility.hasListValue(c.ListCouponSelected)) {
13353                                        c.ListCouponSelected = null;
13354                                    }
13355                                    if (!lib3p_helper.utility.hasListValue(c.ListGift)) {
13356                                        c.ListGift = null;
13357                                    }
13358                                });
13359                            }
13360                            else {
13361                                cart.CartDetails = [];
13362                            }
13363                        }
13364                        else {
13365                            window.pars3p.cart.Code = -1;
13366                            window.pars3p.cart.CartDetails = [];
13367                            window.pars3p.cart.TotalItemQuantity = 0;
13368                            window.pars3p.cart.lastDate = new Date();
13369                            lib3p.common_cartSet(window.pars3p.cart);
13370                        }
13371
13372                        if (window.pars3p.auth.isLogin == true) {
13373                            jQuery('.page-cart .cart-bottom-fix .right .txt').addClass('haslogin');
13374                            jQuery(".page-cart .section-1 .cart-top").hide();
13375                            jQuery(".mobile-cart .cart-top").hide();
13376
13377                            var Code = -1;
13378                            if (lib3p_helper.utility.hasValue(window.pars3p.cart) && window.pars3p.cart.Code > 0) {
13379                                Code = window.pars3p.cart.Code;
13380                            }
13381                            lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductTotal, { cart: { Cart: { Code: -1 } } }, function (res) {
13382                                if (res.StatusCode == 0) {
13383                                    lib3p.common_LoadingHide();
13384                                    if (lib3p_helper.utility.hasValue(res.ObjectReturn) && lib3p_helper.utility.hasListValue(res.ObjectReturn.CartDetails)) {
13385                                        window.pars3p.cart.lastUser = window.pars3p.auth.userName;
13386                                        window.pars3p.cart.lastDate = new Date();
13387                                        window.pars3p.cart.CartDetails = [];
13388                                        window.pars3p.cart.CartCoupon = [];
13389                                        window.pars3p.cart.ListCoupon = [];
13390                                        window.pars3p.cart.CartNoti = [];
13391                                        window.pars3p.cart.CartCombo = [];
13392                                        window.pars3p.cart.TypeOfTransportation = [];
13393                                        lib3p_helper.cart.copyCart(res.ObjectReturn);
13394                                        if (window.pars3p.cart.StepDate && window.pars3p.cart.StepDate.getTime) {
13395                                            window.pars3p.cart.timeOrderCalculateNext = window.pars3p.cart.StepDate.getTime() + window.pars3p.timeOrderCalculate;
13396                                        }
13397                                        else {
13398                                            window.pars3p.cart.timeOrderCalculateNext = (new Date()).getTime() + window.pars3p.timeOrderCalculate;
13399                                        }
13400                                        lib3p.pageCart.Cache_Check();
13401                                        lib3p.common_cartSet(window.pars3p.cart);
13402                                        lib3p.pageCart.Cart_LoadHeader();
13403                                        lib3p.pageCart.Cart_LoadNoti();
13404                                        lib3p.pageCart.Cart_LoadBody();
13405                                        lib3p.pageCart.Cart_LoadGift();
13406                                        lib3p.pageCart.Cart_LoadTotal();
13407                                        lib3p.pageCart.Cart_SuggestCombo();
13408                                        lib3p.pageCartTest.Cart_ListCoupon();
13409                                        if (res.ObjectReturn.TotalDelivery == 0) {
13410                                        }
13411                                        lib3p.pageCartTest.Cart_ListHopGiaySuggest(res.ObjectReturn);
13412                                        if (window.pars3p.cart.Province > 0 && window.pars3p.cart.District > 0 && window.pars3p.cart.IsAppliedHachi24 != true && lib3p_helper.utility.hasValue(window.pars3p.cart.CartDetails.find(function (o) { return o.IsHachi24 == true && o.IsChoose == true; }))) {
13413                                            jQuery('.cart .data-row .product .hachi3h').show();
13414                                        }
13415                                        else {
13416                                            jQuery('.cart .data-row .product .hachi3h').hide();
13417                                        }
13418
13419                                        lib3p.header.GMC_ViewCart();
13420                                        lib3p.pageCart.init_timmer();
13421                                    }
13422                                    else {
13423                                        jQuery(".page-cart .container .row.section-1").hide();
13424                                        jQuery(".page-cart.b-gregray30").removeClass('b-gregray30');
13425                                        jQuery(".page-cart .container .row.empty").addClass('show');
13426
13427                                        window.pars3p.cart.lastUser = window.pars3p.auth.userName;
13428                                        window.pars3p.cart.lastDate = new Date();
13429                                        window.pars3p.cart.CartDetails = [];
13430                                        window.pars3p.cart.CartCoupon = [];
13431                                        window.pars3p.cart.ListCoupon = [];
13432                                        window.pars3p.cart.CartNoti = [];
13433                                        window.pars3p.cart.CartCombo = [];
13434                                        window.pars3p.cart.TypeOfTransportation = [];
13435                                        if (window.pars3p.cart.StepDate && window.pars3p.cart.StepDate.getTime) {
13436                                            window.pars3p.cart.timeOrderCalculateNext = window.pars3p.cart.StepDate.getTime() + window.pars3p.timeOrderCalculate;
13437                                        }
13438                                        else {
13439                                            window.pars3p.cart.timeOrderCalculateNext = (new Date()).getTime() + window.pars3p.timeOrderCalculate;
13440                                        }
13441                                        lib3p.pageCart.Cache_Check();
13442                                        lib3p.common_cartSet(window.pars3p.cart);
13443                                        lib3p.pageCart.Cart_LoadHeader();
13444
13445                                        jQuery(".mobile-cart .data").hide();
13446                                        jQuery(".mobile-cart .empty").addClass('show');
13447                                        if (lib3p_helper.utility.hasListValue(window.pars3p.others.ListBanner)) {
13448                                            var lstBanners = window.pars3p.others.ListBanner.filter(function (c) { return c.TypeData == 16; });
13449                                            if (lib3p_helper.utility.hasListValue(lstBanners)) {
13450                                                var html7 = '';
13451                                                var html7_m = '';
13452                                                var index7 = 0;
13453                                                lstBanners.forEac
13453h(function (c, cidx) {
13454                                                    if (lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
13455                                                        if (c.Link.indexOf('?') > 0) {
13456                                                            c.Link = c.Link + '&' + window.pars3p.seo.Query;
13457                                                        }
13458                                                        else {
13459                                                            c.Link = c.Link + '?' + window.pars3p.seo.Query;
13460                                                        }
13461                                                    }
13462
13463                                                    if (c.TypeData == 16) {
13464                                                        if (index7 <= 3) {
13465                                                            html7 += '<div class="col-lg-3"><a href="' + c.Link + '"><img src="' + c.Image + '" alt="' + c.Name + '" /></a></div>';
13466                                                            html7_m += '<div class="item"><a href="' + c.Link + '"><img src="' + c.Image + '" alt="' + c.Name + '" /></a></div>';
13467                                                            index7++;
13468                                                        }
13469                                                    }
13470                                                });
13471                                                jQuery(".page-cart .empty.banner").html(html7);
13472                                                jQuery(".mobile-cart .empty .banner").html('<div class="owl-carousel">' + html7_m + '</div>');
13473                                                if (lib3p_helper.utility.hasValueString(html7_m)) {
13474                                                    jQuery('.mobile-cart .empty .banner .owl-carousel').owlCarousel({
13475                                                        autoplay: false,
13476                                                        autoplayTimeout: 3000,
13477                                                        autoplayHoverPause: true,
13478                                                        autoWidth: true,
13479                                                        margin: 5,
13480                                                        loop: false,
13481                                                        nav: false,
13482                                                        dots: false,
13483                                                    });
13484                                                }
13485                                            }
13486                                        }
13487                                    }
13488                                }
13489                                else {
13490                                    throw res.ErrorString;
13491                                }
13492                                resolve('');
13493                            }, function (err) {
13494                                reject(err);
13495                            });
13496                            lib3p.header.ProductLike_DS(function () {
13497                                lib3p.pageCart.Cart_LoadLike();
13498                            });
13499                        }
13500                        else {
13501                            if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
13502
13503                                if (window.pars3p.cart.lastUser != '' || window.pars3p.cart.lastDate == null) {
13504                                    window.pars3p.cart.lastUser = '';
13505                                    window.pars3p.cart.lastDate = null;
13506                                    window.pars3p.cart.Code = -1;
13507                                }
13508                                var req = {
13509                                    Cart: {},
13510                                    CartDetails: window.pars3p.cart.CartDetails,
13511                                    CartCoupon: window.pars3p.cart.CartCoupon,
13512                                    CartCombo: [],
13513                                };
13514                                req.Cart = lib3p_helper.cart.getCartInfo();
13515
13516                                lib3p.common_PostURL(window.pars3p.api.public.Cart_ProductTotal, { cart: req }, function (res) {
13517                                    if (res.StatusCode == 0) {
13518                                        lib3p.common_LoadingHide();
13519                                        if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
13520                                            window.pars3p.cart.lastUser = window.pars3p.auth.userName;
13521                                            window.pars3p.cart.lastDate = new Date();
13522                                            window.pars3p.cart.CartDetails = [];
13523                                            window.pars3p.cart.CartCoupon = [];
13524                                            window.pars3p.cart.ListCoupon = [];
13525                                            window.pars3p.cart.CartNoti = [];
13526                                            window.pars3p.cart.CartCombo = [];
13527                                            window.pars3p.cart.TypeOfTransportation = [];
13528                                            lib3p_helper.cart.copyCart(res.ObjectReturn);
13529                                            window.pars3p.cart.CartCoupon = window.pars3p.cart.CartCoupon.filter(function (c) { return lib3p_helper.utility.hasValue(c) && c.CouponID > 0; });
13530                                            lib3p.pageCart.Cache_Check();
13531                                            lib3p.common_cartSet(window.pars3p.cart);
13532                                            lib3p.pageCart.Cart_LoadHeader();
13533                                            lib3p.pageCart.Cart_LoadNoti();
13534                                            lib3p.pageCart.Cart_LoadBody();
13535                                            lib3p.pageCart.Cart_LoadGift();
13536                                            lib3p.pageCart.Cart_LoadTotal();
13537                                            lib3p.pageCart.Cart_SuggestCombo();
13538                                            lib3p.pageCartTest.Cart_ListCoupon();
13539                                            lib3p.pageCartTest.LoadDataEdit();
13540                                            lib3p.pageCartTest.Cart_ListHopGiaySuggest(res.ObjectReturn);
13541                                            if (window.pars3p.cart.Province > 0 && window.pars3p.cart.District > 0 && window.pars3p.cart.IsAppliedHachi24 != true && lib3p_helper.utility.hasValue(window.pars3p.cart.CartDetails.find(function (o) { return o.IsHachi24 == true && o.IsChoose == true; }))) {
13542                                                jQuery('.cart .data-row .product .hachi3h').show();
13543                                            }
13544                                            else {
13545                                                jQuery('.cart .data-row .product .hachi3h').hide();
13546                                            }
13547
13548                                            lib3p.header.GMC_ViewCart();
13549                                            lib3p.pageCart.init_timmer();
13550                                        }
13551                                    }
13552                                    else {
13553                                        throw res.ErrorString;
13554                                    }
13555                                    resolve('');
13556                                }, function (err) {
13557                                    reject(err);
13558                                });
13559                            }
13560                            else {
13561                                lib3p.common_LoadingHide();
13562
13563                                jQuery(".page-cart .container .row.section-1").hide();
13564                                jQuery(".page-cart.b-gregray30").removeClass('b-gregray30');
13565                                jQuery(".page-cart .container .row.empty").addClass('show');
13566
13567                                jQuery(".mobile-cart .data").hide();
13568                                jQuery(".mobile-cart .empty").addClass('show');
13569                                if (lib3p_helper.utility.hasListValue(window.pars3p.others.ListBanner)) {
13570                                    var lstBanners = window.pars3p.others.ListBanner.filter(function (c) { return c.TypeData == 19; });
13571                                    if (lib3p_helper.utility.hasListValue(lstBanners)) {
13572                                        var html7 = '';
13573                                        var html7_m = '';
13574                                        var index7 = 0;
13575                                        lstBanners.forEach(function (c, cidx) {
13576                                            if (lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
13577                                                if (c.Link.indexOf('?') > 0) {
13578                                                    c.Link = c.Link + '&' + window.pars3p.seo.Query;
13579                                                }
13580                                                else {
13581                                                    c.Link = c.Link + '?' + window.pars3p.seo.Query;
13582                                                }
13583                                            }
13584
13585                                            if (c.TypeData == 16) {
13586                                                if (index7 <= 3) {
13587                                                    html7 += '<div class="col-lg-3"><a href="' + c.Link + '"><img src="' + c.Image + '" alt="' + c.Name + '" /></a></div>';
13588                                                    html7_m += '<div class="item"><a href="' + c.Link + '"><img src="' + c.Image + '" alt="' + c.Name + '" /></a></div>';
13589                                                    index7++;
13590                                                }
13591                                            }
13592                                        });
13593                                        jQuery(".page-cart .empty.banner").html(html7);
13594                                        jQuery(".mobile-cart .empty .banner").html('<div class="owl-carousel">' + html7_m + '</div>');
13595                                        if (lib3p_helper.utility.hasValueString(html7_m)) {
13596                                            jQuery('.mobile-cart .empty .banner .owl-carousel').owlCarousel({
13597                                                autoplay: false,
13598                                                autoplayTimeout: 3000,
13599                                                autoplayHoverPause: true,
13600                                                autoWidth: true,
13601                                                margin: 5,
13602                                                loop: false,
13603                                                nav: false,
13604                                                dots: false,
13605                                            });
13606                                        }
13607                                    }
13608                                }
13609
13610                                resolve('');
13611                            }
13612                        }
13613                    }, function (err) {
13614                        console.log(err);
13615                    });
13616                }, window.pars3p.timeAsync);
13617            });
13618        },
13619        init_timmer: function () {
13620            window.pars3p.timmer.push(function () {
13621                if (window.pars3p.cartWaitTimeRun >= 0) {
13622                    if (window.pars3p.cartWaitTimeRun == 0) {
13623                        jQuery('.popup-cart-time-out').show();
13624                    }
13625                    window.pars3p.cartWaitTimeRun--;
13626                }
13627            });
13628        },
13629        OtherPage: function () {
13630            lib3p.pageCart.OtherPage_async().then(function (data) { }, function (err) { console.log(err); });
13631        },
13632        OtherPage_async: function () {
13633            return new Promise(function (resolve, reject) {
13634                setTimeout(function () {
13635                    lib3p.common_cartGet().then(function (res) {
13636                        var cart = res;
13637                        if (lib3p_helper.utility.hasValue(cart) && cart.Code >= -1) {
13638                            window.pars3p.cart = cart;
13639                        }
13640                        else {
13641                            window.pars3p.cart.Code = -1;
13642                            window.pars3p.cart.CartDetails = [];
13643                            window.pars3p.cart.TotalItemQuantity = 0;
13644                            window.pars3p.cart.lastDate = new Date();
13645                            lib3p.common_cartSet(window.pars3p.cart);
13646                        }
13647                        if (window.pars3p.auth.isLogin == true) {
13648                            var Code = -1;
13649                            if (window.pars3p.cart.Code > 0) {
13650                                Code = window.pars3p.cart.Code;
13651                            }
13652                            if (Code == -1 || window.pars3p.cart.lastDate <= lib3p_helper.utility.dateAddMinute(new Date(), -10)) {
13653                                lib3p.common_AuthPostURL(window.pars3p.api.auth.All_GetCart, { Code: Code }, function (res) {
13654                                    if (res.StatusCode == 0) {
13655                                        if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
13656                                            window.pars3p.cart.lastUser = window.pars3p.auth.userName;
13657                                            window.pars3p.cart.lastDate = new Date();
13658                                            window.pars3p.cart.CartDetails = [];
13659                                            window.pars3p.cart.CartCoupon = [];
13660                                            window.pars3p.cart.ListCoupon = [];
13661                                            window.pars3p.cart.CartNoti = [];
13662                                            window.pars3p.cart.CartCombo = [];
13663                                            window.pars3p.cart.TypeOfTransportation = [];
13664                                            lib3p_helper.cart.copyCart(res.ObjectReturn);
13665                                            lib3p.pageCart.Cache_Check();
13666                                            lib3p.common_cartSet(window.pars3p.cart);
13667                                            lib3p.pageCart.Cart_LoadHeader();
13668                                        }
13669                                    }
13670                                    else {
13671                                        throw res.ErrorString;
13672                                    }
13673                                    resolve('');
13674                                }, function (err) {
13675                                    reject(err);
13676                                });
13677                            }
13678                            else {
13679                                lib3p.pageCart.Cart_LoadHeader();
13680                                resolve('');
13681                            }
13682                        }
13683                        else {
13684                            lib3p.pageCart.Cart_LoadHeader();
13685                            resolve('');
13686                        }
13687                    }, function (err) {
13688                        console.log(err);
13689                    });
13690                }, window.pars3p.timeAsync);
13691            });
13692        },
13693        LoadDataEdit: function () {
13694            var flag = false;
13695
13696            if (window.pars3p.auth.isLogin == true) {
13697                flag = true;
13698                window.pars3p.cart.ReceivedBy = window.pars3p.cart.OrderBy;
13699                window.pars3p.cart.Cellphone = window.pars3p.cart.OrderPhone;
13700            }
13701            else {
13702                if (!lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP)) {
13703                    flag = true;
13704                }
13705            }
13706
13707            if (flag == true) {
13708                lib3p.common_PostURL(window.pars3p.api.public.Delivery_GetLocation, {}, function (res) {
13709                    if (lib3p_helper.utility.hasValue(res)) {
13710                        window.pars3p.location = res;
13711                        if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListProvince)) {
13712                            jQuery('select.cboProvince').html('<option value>Select one...</option>');
13713                            window.pars3p.location.ListProvince.forEach(function (c, cidx) {
13714                                if ((window.pars3p.cart.Province + '') != (c.Code + '')) {
13715                                    jQuery('select.cboProvince').append('<option value="' + c.Code + '">' + c.ProvinceName + '</option>');
13716                                }
13717                                else {
13718                                    jQuery('select.cboProvince').append('<option value="' + c.Code + '" selected>' + c.ProvinceName + '</option>');
13719
13720                                    if (window.pars3p.cart.Province > 0) {
13721                                        var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == window.pars3p.cart.Province; });
13722                                        jQuery('select.cboDistrict').html('<option value>Select one...</option>');
13723                                        lstTemp.forEach(function (c, cidx) {
13724                                            if ((window.pars3p.cart.District + '') != (c.Code + '')) {
13725                                                jQuery('select.cboDistrict').append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
13726                                            }
13727                                            else {
13728                                                jQuery('select.cboDistrict').append('<option value="' + c.Code + '" selected>' + c.DistrictName + '</option>');
13729                                                if (window.pars3p.cart.District > 0) {
13730                                                    var lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == window.pars3p.cart.District; });
13731                                                    jQuery('select.cboWard').html('<option value>Select one...</option>');
13732                                                    lstTemp.forEach(function (c, cidx) {
13733                                                        if ((window.pars3p.cart.Ward + '') != (c.Code + '')) {
13734                                                            jQuery('select.cboWard').append('<option value="' + c.Code + '">' + c.WardName + '</option>');
13735                                                        }
13736                                                        else {
13737                                                            jQuery('select.cboWard').append('<option value="' + c.Code + '" selected>' + c.WardName + '</option>');
13738                                                        }
13739                                                    });
13740                                                    jQuery('select.cboWard').next().find('.custom-combobox-input').val(jQuery('#cboWard_itemedit option:selected').text());
13741                                                }
13742                                            }
13743                                        });
13744                                        jQuery('select.cboDistrict').next().find('.custom-combobox-input').val(jQuery('#cboDistrict_itemedit option:selected').text());
13745                                    }
13746                                }
13747                            });
13748                        }
13749                    }
13750                    jQuery("#cboProvince_itemedit").combobox({ change: function (opt) { lib3p.pageCartTest.onProvince_Change(opt, '#cboDistrict_itemedit', '#cboWard_itemedit') } });
13751                    jQuery("#cboDistrict_itemedit").combobox({ change: function (opt) { lib3p.pageCartTest.onDistrict_Change(opt, '#cboWard_itemedit') } });
13752                    jQuery("#cboWard_itemedit").combobox({ change: function (opt) { lib3p.pageCartTest.onWard_Change(opt) } });
13753                    jQuery("#cboProvince_itemedit_m").combobox({ change: function (opt) { lib3p.pageCartTest.onProvince_Change(opt, '#cboDistrict_itemedit_m', '#cboWard_itemedit_m') } });
13754                    jQuery("#cboDistrict_itemedit_m").combobox({ change: function (opt) { lib3p.pageCartTest.onDistrict_Change(opt, '#cboWard_itemedit_m') } });
13755                    jQuery("#cboWard_itemedit_m").combobox({ change: function (opt) { lib3p.pageCartTest.onWard_Change(opt) } });
13756                }, function (err) {
13757                    lib3p.log(err);
13758                });
13759
13760                jQuery('.page-cart .dia-chi-edit .nguoi-nhan').hide();
13761                jQuery('.page-cart .dia-chi-edit .input.cboDistrict').hide();
13762                jQuery('.page-cart .dia-chi-edit .input.cboWard').hide();
13763                jQuery('.page-cart .dia-chi-edit .input.Address').hide();
13764                jQuery('.page-cart .dia-chi-edit').show();
13765                jQuery('.page-cart .dia-chi').hide();
13766                jQuery('.mobile-cart .dia-chi-edit .nguoi-nhan').hide();
13767                jQuery('.mobile-cart .dia-chi-edit .input.cboDistrict').hide();
13768                jQuery('.mobile-cart .dia-chi-edit .input.cboWard').hide();
13769                jQuery('.mobile-cart .dia-chi-edit .input.Address').hide();
13770                jQuery('.mobile-cart .dia-chi-edit').show();
13771                jQuery('.mobile-cart .dia-chi').hide();
13772
13773                var query = jQuery('.page-cart .dia-chi-edit form');
13774                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
13775                    query.attr('has', '1');
13776                    query[0].OrderPhone.value = window.pars3p.cart.OrderPhone;
13777                    query[0].OrderBy.value = window.pars3p.cart.OrderBy;
13778                    query[0].Province.value = window.pars3p.cart.Province;
13779                    query[0].District.value = window.pars3p.cart.District;
13780                    query[0].Ward.value = window.pars3p.cart.Ward;
13781                    query[0].Address.value = window.pars3p.cart.Address;
13782                    if (window.pars3p.cart.Cellphone != window.pars3p.cart.OrderPhone || window.pars3p.cart.OrderBy != window.pars3p.cart.ReceivedBy) {
13783                        jQuery(query[0].IsDeliveryOther).prop('checked', true);
13784                    }
13785                    else {
13786                        jQuery(query[0].IsDeliveryOther).prop('checked', false);
13787                    }
13788                    //query[0].IsDeliveryOther.value = window.pars3p.cart.Cellphone != window.pars3p.cart.OrderPhone || window.pars3p.cart.OrderBy != window.pars3p.cart.ReceivedBy;
13789                    query[0].ReceivedBy.value = window.pars3p.cart.ReceivedBy;
13790                    query[0].Cellphone.value = window.pars3p.cart.Cellphone;
13791                    if (window.pars3p.cart.Province > 0) {
13792                        jQuery('.page-cart .dia-chi-edit .input.cboDistrict').show();
13793                    }
13794                    if (window.pars3p.cart.District > 0) {
13795                        jQuery('.page-cart .dia-chi-edit .input.cboWard').show();
13796                    }
13797                    if (window.pars3p.cart.Ward > 0) {
13798                        jQuery('.page-cart .dia-chi-edit .input.Address').show();
13799                    }
13800                    if (window.pars3p.auth.isLogin == true) {
13801                        jQuery(query[0].OrderPhone).prop('disabled', true);
13802                        jQuery(query[0].OrderBy).prop('disabled', true);
13803                    }
13804                }
13805                query = jQuery('.mobile-cart .dia-chi-edit form');
13806                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
13807                    query.attr('has', '1');
13808                    query[0].OrderPhone.value = window.pars3p.cart.OrderPhone;
13809                    query[0].OrderBy.value = window.pars3p.cart.OrderBy;
13810                    query[0].Province.value = window.pars3p.cart.Province;
13811                    query[0].District.value = window.pars3p.cart.District;
13812                    query[0].Ward.value = window.pars3p.cart.Ward;
13813                    query[0].Address.value = window.pars3p.cart.Address;
13814                    if (window.pars3p.cart.Cellphone != window.pars3p.cart.OrderPhone || window.pars3p.cart.OrderBy != window.pars3p.cart.ReceivedBy) {
13815                        jQuery(query[0].IsDeliveryOther).prop('checked', true);
13816                    }
13817                    else {
13818                        jQuery(query[0].IsDeliveryOther).prop('checked', false);
13819                    }
13820                    //query[0].IsDeliveryOther.value = window.pars3p.cart.Cellphone != window.pars3p.cart.OrderPhone || window.pars3p.cart.OrderBy != window.pars3p.cart.ReceivedBy;
13821                    query[0].ReceivedBy.value = window.pars3p.cart.ReceivedBy;
13822                    query[0].Cellphone.value = window.pars3p.cart.Cellphone;
13823                    if (window.pars3p.cart.Province > 0) {
13824                        jQuery('.mobile-cart .dia-chi-edit .input.cboDistrict').show();
13825                    }
13826                    if (window.pars3p.cart.District > 0) {
13827                        jQuery('.mobile-cart .dia-chi-edit .input.cboWard').show();
13828                    }
13829                    if (window.pars3p.cart.Ward > 0) {
13830                        jQuery('.mobile-cart .dia-chi-edit .input.Address').show();
13831                    }
13832                    if (window.pars3p.auth.isLogin == true) {
13833                        jQuery(query[0].OrderPhone).prop('disabled', true);
13834                        jQuery(query[0].OrderBy).prop('disabled', true);
13835                    }
13836                }
13837            }
13838        },
13839        onProvince_Change: function (opt, iddistrict, idward) {
13840            if (lib3p_helper.utility.hasValueString(opt.value)) {
13841                jQuery(opt.form.Province).closest('.ui-widget').removeClass('error');
13842                jQuery('.page-cart .dia-chi-edit .input.cboDistrict').show();
13843                jQuery('.mobile-cart .dia-chi-edit .input.cboDistrict').show();
13844                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListDistrict)) {
13845                    var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == opt.value; });
13846                    jQuery(iddistrict).html('<option value>Select one...</option>');
13847                    lstTemp.forEach(function (c, cidx) {
13848                        jQuery(iddistrict).append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
13849                    });
13850                    jQuery(iddistrict).next().find('.custom-combobox-input').val('');
13851                    jQuery(idward).html('<option value>Select one...</option>');
13852                    jQuery(idward).next().find('.custom-combobox-input').val('');
13853                }
13854
13855                jQuery(opt.form.Province).closest('.ui-widget').removeClass('error');
13856                jQuery(opt.form.Province).closest('.dong').children('.error').html('');
13857            }
13858            else {
13859                jQuery('.page-cart .dia-chi-edit .input.cboDistrict').hide();
13860                jQuery('.page-cart .dia-chi-edit .input.cboWard').hide();
13861                jQuery('.page-cart .dia-chi-edit .input.Address').hide();
13862                jQuery('.mobile-cart .dia-chi-edit .input.cboDistrict').hide();
13863                jQuery('.mobile-cart .dia-chi-edit .input.cboWard').hide();
13864                jQuery('.mobile-cart .dia-chi-edit .input.Address').hide();
13865            }
13866
13867            jQuery(opt.form.District).children(":selected").each(function () {
13868                this.selected = false;
13869            });
13870            jQuery(opt.form.Ward).children(":selected").each(function () {
13871                this.selected = false;
13872            });
13873            if (lib3p_helper.utility.hasValue(opt) && lib3p_helper.utility.hasValue(opt.form)) {
13874                lib3p.common_LoadingShow();
13875                lib3p.pageCartTest.GetDelivery(opt.form);
13876                lib3p.pageCartTest.Cart_ProductTotal(true);
13877            }
13878        },
13879        onDistrict_Change: function (opt, idward) {
13880            if (lib3p_helper.utility.hasValueString(opt.value)) {
13881                jQuery(opt.form.District).closest('.ui-widget').removeClass('error');
13882                jQuery('.page-cart .dia-chi-edit .input.cboWard').show();
13883                jQuery('.mobile-cart .dia-chi-edit .input.cboWard').show();
13884                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListWard)) {
13885                    var lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == opt.value; });
13886                    jQuery(idward).html('<option value>Select one...</option>');
13887                    lstTemp.forEach(function (c, cidx) {
13888                        jQuery(idward).append('<option value="' + c.Code + '">' + c.WardName + '</option>');
13889                    });
13890                    jQuery(idward).next().find('.custom-combobox-input').val('');
13891                }
13892
13893                jQuery(opt.form.District).closest('.ui-widget').removeClass('error');
13894                jQuery(opt.form.District).closest('.dong').children('.error').html('');
13895            }
13896            else {
13897                jQuery('.page-cart .dia-chi-edit .input.cboWard').hide();
13898                jQuery('.page-cart .dia-chi-edit .input.Address').hide();
13899                jQuery('.mobile-cart .dia-chi-edit .input.cboWard').hide();
13900                jQuery('.mobile-cart .dia-chi-edit .input.Address').hide();
13901            }
13902
13903            jQuery(opt.form.Ward).children(":selected").each(function () {
13904                this.selected = false;
13905            });
13906            if (lib3p_helper.utility.hasValue(opt) && lib3p_helper.utility.hasValue(opt.form)) {
13907                lib3p.common_LoadingShow();
13908                lib3p.pageCartTest.GetDelivery(opt.form);
13909                lib3p.pageCartTest.Cart_ProductTotal(true);
13910            }
13911        },
13912        onWard_Change: function (opt) {
13913            if (lib3p_helper.utility.hasValueString(opt.value)) {
13914                jQuery(opt.form.Ward).closest('.ui-widget').removeClass('error');
13915                jQuery('.page-cart .dia-chi-edit .input.Address').show();
13916                jQuery('.mobile-cart .dia-chi-edit .input.Address').show();
13917
13918                jQuery(opt.form.Ward).closest('.ui-widget').removeClass('error');
13919                jQuery(opt.form.Ward).closest('.dong').children('.error').html('');
13920            }
13921            else {
13922                jQuery('.page-cart .dia-chi-edit .input.Address').hide();
13923                jQuery('.mobile-cart .dia-chi-edit .input.Address').hide();
13924            }
13925
13926            if (lib3p_helper.utility.hasValue(opt) && lib3p_helper.utility.hasValue(opt.form)) {
13927                lib3p.common_LoadingShow();
13928                lib3p.pageCartTest.GetDelivery(opt.form);
13929                lib3p.pageCartTest.Cart_ProductTotal(true);
13930            }
13931        },
13932        onIsCopy_Click: function (el) {
13933            var query = jQuery(el).closest('form');
13934            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
13935                var flag = el.checked == true;
13936                setTimeout(function () {
13937                    if (flag == true) {
13938                        query[0].ReceivedBy.value = '';
13939                        query[0].Cellphone.value = '';
13940                        jQuery('.page-cart .dia-chi-edit .nguoi-nhan').show();
13941                        jQuery('.mobile-cart .dia-chi-edit .nguoi-nhan').show();
13942                    }
13943                    else {
13944                        jQuery('.page-cart .dia-chi-edit .nguoi-nhan').hide();
13945                        jQuery('.mobile-cart .dia-chi-edit .nguoi-nhan').hide();
13946                    }
13947                }, 100);
13948            }
13949        },
13950        onDelivery_KeyDown: function (event, el) {
13951            var query = jQuery(el).closest('form');
13952            var isphone = jQuery(el).attr('name') == 'OrderPhone';
13953            setTimeout(function () {
13954                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
13955                    lib3p.pageCartTest.DeliveryEdit_Check(query, isphone);
13956                }
13957            }, 100);
13958        },
13959        DeliveryEdit_Check: function (query, isphone, hasfocus) {
13960            var flag = true;
13961            var flagPhone = true;
13962            var PhoneNumber = '';
13963            var ctr = query[0].OrderPhone;
13964            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
13965                if (hasfocus == true && flag == true) {
13966                    jQuery(ctr).focus();
13967                }
13968                window.pars3p.PhoneNumber_last = '';
13969                flag = false;
13970                flagPhone = false;
13971                if (!jQuery(ctr).hasClass('error')) {
13972                    jQuery(ctr).addClass('error');
13973                }
13974                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
13975            }
13976            else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
13977                if (hasfocus == true && flag == true) {
13978                    jQuery(ctr).focus();
13979                }
13980                window.pars3p.PhoneNumber_last = '';
13981                flag = false;
13982                flagPhone = false;
13983                if (!jQuery(ctr).hasClass('error')) {
13984                    jQuery(ctr).addClass('error');
13985                }
13986                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
13986<span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
13987            }
13988            else {
13989                PhoneNumber = ctr.value;
13990                jQuery(ctr).removeClass('error');
13991                jQuery(ctr).parent().next().html('');
13992            }
13993            if (isphone != true) {
13994                ctr = query[0].OrderBy;
13995                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
13996                    if (hasfocus == true && flag == true) {
13997                        jQuery(ctr).focus();
13998                    }
13999                    flag = false;
14000                    if (!jQuery(ctr).hasClass('error')) {
14001                        jQuery(ctr).addClass('error');
14002                    }
14003                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
14004                }
14005                else {
14006                    jQuery(ctr).removeClass('error');
14007                    jQuery(ctr).parent().next().html('');
14008                }
14009
14010                ctr = query[0].Province;
14011                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
14012                    if (hasfocus == true && flag == true) {
14013                        jQuery(ctr).closest('.ui-widget').find('.custom-combobox > input.custom-combobox-input').focus();
14014                    }
14015                    flag = false;
14016                    if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
14017                        jQuery(ctr).closest('.ui-widget').addClass('error');
14018                    }
14019                    jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
14020                }
14021                else {
14022                    jQuery(ctr).closest('.ui-widget').removeClass('error');
14023                    jQuery(ctr).closest('.dong').children('.error').html('');
14024
14025                    ctr = query[0].District;
14026                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
14027                        if (hasfocus == true && flag == true) {
14028                            jQuery(ctr).closest('.ui-widget').find('.custom-combobox > input.custom-combobox-input').focus();
14029                        }
14030                        flag = false;
14031                        if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
14032                            jQuery(ctr).closest('.ui-widget').addClass('error');
14033                        }
14034                        jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
14035                    }
14036                    else {
14037                        jQuery(ctr).closest('.ui-widget').removeClass('error');
14038                        jQuery(ctr).closest('.dong').children('.error').html('');
14039
14040                        ctr = query[0].Ward;
14041                        if (!lib3p_helper.utility.hasValueString(ctr.value)) {
14042                            if (hasfocus == true && flag == true) {
14043                                jQuery(ctr).closest('.ui-widget').find('.custom-combobox > input.custom-combobox-input').focus();
14044                            }
14045                            flag = false;
14046                            if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
14047                                jQuery(ctr).closest('.ui-widget').addClass('error');
14048                            }
14049                            jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
14050                        }
14051                        else {
14052                            jQuery(ctr).closest('.ui-widget').removeClass('error');
14053                            jQuery(ctr).closest('.dong').children('.error').html('');
14054
14055                            ctr = query[0].Address;
14056                            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
14057                                if (hasfocus == true && flag == true) {
14058                                    jQuery(ctr).focus();
14059                                }
14060                                flag = false;
14061                                if (!jQuery(ctr).hasClass('error')) {
14062                                    jQuery(ctr).addClass('error');
14063                                }
14064                                jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
14065                            }
14066                            else {
14067                                jQuery(ctr).removeClass('error');
14068                                jQuery(ctr).parent().next().html('');
14069                            }
14070                        }
14071                    }
14072                }
14073                ctr = query[0].IsDeliveryOther;
14074                if (jQuery(ctr).prop('checked') == true) {
14075                    ctr = query[0].ReceivedBy;
14076                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
14077                        flag = false;
14078                        if (!jQuery(ctr).hasClass('error')) {
14079                            jQuery(ctr).addClass('error');
14080                        }
14081                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
14082                    }
14083                    else {
14084                        jQuery(ctr).removeClass('error');
14085                        jQuery(ctr).parent().next().html('');
14086                    }
14087                    ctr = query[0].Cellphone;
14088                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
14089                        if (hasfocus == true && flag == true) {
14090                            jQuery(ctr).focus();
14091                        }
14092                        flag = false;
14093                        if (!jQuery(ctr).hasClass('error')) {
14094                            jQuery(ctr).addClass('error');
14095                        }
14096                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
14097                    }
14098                    else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
14099                        if (hasfocus == true && flag == true) {
14100                            jQuery(ctr).focus();
14101                        }
14102                        flag = false;
14103                        if (!jQuery(ctr).hasClass('error')) {
14104                            jQuery(ctr).addClass('error');
14105                        }
14106                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
14106<span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
14107                    }
14108                    else {
14109                        jQuery(ctr).removeClass('error');
14110                        jQuery(ctr).parent().next().html('');
14111                    }
14112                }
14113            }
14114            if (flagPhone == true && isphone == true && window.pars3p.PhoneNumber_last != PhoneNumber) {
14115                lib3p.pageCartTest.DeliveryEdit_CheckPhone(PhoneNumber, query);
14116            }
14117            return flag;
14118        },
14119        DeliveryEdit_CheckPhone: function (PhoneNumber, frm) {
14120            lib3p.common_LoadingShow();
14121            return new Promise(function (resolve, reject) {
14122                setTimeout(function () {
14123                    window.pars3p.PhoneNumber_last = PhoneNumber;
14124                    lib3p.common_PostURL(window.pars3p.api.public.checkuser, { "PhoneNumber": PhoneNumber }, function (res) {
14125                        if (res == true) {
14126                            lib3p.common_LoadingHide();
14127                            window.pars3p.PhoneNumber_last = null;
14128                            frm[0].OrderPhone.value = '';
14129
14130                            lib3p.header.ShowHasAccount(PhoneNumber, function () {
14131                                lib3p.pageCartTest.QuenMatKhau_MergeCart();
14132                            }, function () {
14133
14134                            });
14135                        }
14136                        else {
14137                            lib3p.common_PostURL(window.pars3p.api.public.GetCardByStaff, { "CellPhone": PhoneNumber }, function (res2) {
14138                                lib3p.common_LoadingHide();
14139                                window.pars3p.PhoneNumber_last = null;
14140
14141                                if (lib3p_helper.utility.hasValue(res2) && res2.StatusCode == 0 && lib3p_helper.utility.hasValue(res2.ObjectReturn)) {
14142                                    if (res2.ObjectReturn.Cellphone != PhoneNumber) {
14143                                        alert('Số điện thoại bạn vừa nhập được đăng ký cho mã KHTT ' + res2.ObjectReturn.CardNo + ' tại Cửa hàng, nhưng tại web, mã KHTT này đang lưu với số điện thoại ' + res2.ObjectReturn.Cellphone + '. Vui lòng liên hệ Hachi Hachi để được hỗ trợ.');
14144                                    }
14145                                    else {
14146                                        res2.ObjectReturn.Cellphone = PhoneNumber;
14147                                        lib3p.header.onKTTT_Show(res2.ObjectReturn, lib3p.header.TypeKTTT.Account, function () {
14148                                            var req = {
14149                                                Email: "",
14150                                                UserName: window.pars3p.khtt.Cellphone,
14151                                                Password: new Date().getTime(),
14152                                                PhoneNumber: window.pars3p.khtt.Cellphone,
14153                                                FirstName: window.pars3p.khtt.FirstName,
14154                                                LastName: window.pars3p.khtt.LastName,
14155                                                FullName: window.pars3p.khtt.FullName,
14156                                                Store: -1,
14157                                                POMaster: "",
14158                                                SendType: window.pars3p.otp.SendType
14159                                            };
14160                                            window.pars3p.dangkykhtt.Code = res2.ObjectReturn.ID;
14161                                            window.pars3p.dangkykhtt.HistoryCardID = res2.ObjectReturn.ID;
14162                                            window.pars3p.dangkykhtt.Cellphone = window.pars3p.khtt.Cellphone;
14163                                            window.pars3p.dangkykhtt.CardNo = res2.ObjectReturn.CardNo;
14164                                            window.pars3p.dangkykhtt.FirstName = res2.ObjectReturn.FirstName;
14165                                            window.pars3p.dangkykhtt.L
14165astName = res2.ObjectReturn.LastName;
14166                                            window.pars3p.dangkykhtt.FullName = res2.ObjectReturn.FullName;
14167                                            lib3p.common_PostURL(window.pars3p.api.public.User_Register2, req, function (res3) {
14168                                                if (lib3p_helper.utility.hasValue(res3)) {
14169                                                    if (res3.StatusID == 0 && lib3p_helper.utility.hasValueString(res3.CardNo)) {
14170                                                        window.pars3p.dangkykhtt.IsSend = res3.IsSentRabbit;
14171                                                        lib3p.header.ConnectAuth(window.pars3p.khtt.Cellphone, res3.Password, function () {
14172                                                            if (lib3p_helper.utility.hasValueString(window.pars3p.dangkykhtt) && window.pars3p.dangkykhtt.Code > 0) {
14173                                                                lib3p.common_AuthPostURL(window.pars3p.api.auth.PageKHTT_SendOther, { "item": window.pars3p.dangkykhtt }, function (res4) {
14174                                                                    if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
14175                                                                        lib3p.common_AuthPostURL(window.pars3p.api.auth.All_MergeCart, { cart: { CartDetails: window.pars3p.cart.CartDetails, CartCoupon: window.pars3p.cart.CartCoupon } }, function (res3) {
14176                                                                            if (res3 == true) {
14177                                                                                window.pars3p.cart.lastUser = '';
14178                                                                                window.pars3p.cart.lastDate = null;
14179                                                                                window.pars3p.cart.Code = -1;
14180                                                                                window.pars3p.cart.CartDetails = [];
14181                                                                                window.pars3p.cart.CartCoupon = [];
14182                                                                                window.pars3p.cart.ListCoupon = [];
14183                                                                                window.pars3p.cart.CartNoti = [];
14184                                                                                window.pars3p.cart.CartCombo = [];
14185                                                                                window.pars3p.cart.TypeOfTransportation = [];
14186                                                                                window.pars3p.cart.timeOrderCalculateNext = null;
14187                                                                                lib3p.common_cartSet(window.pars3p.cart);
14188                                                                            }
14189                                                                            window.location.href = window.pars3p.urlCart;
14190                                                                        }, function (err3) {
14191                                                                            lib3p.log(err3);
14192                                                                        });
14193                                                                    }
14194                                                                    else {
14195                                                                        window.location.href = window.pars3p.urlCart;
14196                                                                    }
14197                                                                }, function (err4) {
14198                                                                    lib3p.log(err4);
14199                                                                });
14200                                                            }
14201                                                        }, function (errConnect) {
14202                                                            lib3p.log(errConnect);
14203                                                        });
14204                                                    }
14205                                                    else {
14206                                                        lib3p.log("Lỗi dữ liệu");
14207                                                    }
14208                                                }
14209                                            }, function (err3) {
14210                                                lib3p.log(err3);
14211                                            });
14212                                        }, function () {
14213                                            lib3p.pageCartDelivery.onPopupDeliveryEdit_AccountShow();
14214                                        });
14215                                    }
14216                                }
14217                            }, function (err2) {
14218                                lib3p.log(err2);
14219                            });
14220                        }
14221                    }, function (err) {
14222                        lib3p.log(err);
14223                    });
14224
14225                }, window.pars3p.timeAsync);
14226            });
14227        },
14228        QuenMatKhau_MergeCart: function () {
14229            if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
14230                lib3p.common_AuthPostURL(window.pars3p.api.auth.All_MergeCart, { cart: { CartDetails: window.pars3p.cart.CartDetails, CartCoupon: window.pars3p.cart.CartCoupon } }, function (res) {
14231                    if (res == true) {
14232                        window.pars3p.cart.lastUser = '';
14233                        window.pars3p.cart.lastDate = null;
14234                        window.pars3p.cart.Code = -1;
14235                        window.pars3p.cart.CartDetails = [];
14236                        window.pars3p.cart.CartCoupon = [];
14237                        window.pars3p.cart.ListCoupon = [];
14238                        window.pars3p.cart.CartNoti = [];
14239                        window.pars3p.cart.CartCombo = [];
14240                        window.pars3p.cart.TypeOfTransportation = [];
14241                        window.pars3p.cart.timeOrderCalculateNext = null;
14242                        lib3p.common_cartSet(window.pars3p.cart);
14243
14244                        window.location.reload();
14245                    }
14246                }, function (err) {
14247                    console.log(err);
14248                });
14249            }
14250            else {
14251                window.pars3p.cart.lastUser = '';
14252                window.pars3p.cart.lastDate = null;
14253                window.pars3p.cart.Code = -1;
14254                window.pars3p.cart.CartDetails = [];
14255                window.pars3p.cart.CartCoupon = [];
14256                window.pars3p.cart.ListCoupon = [];
14257                window.pars3p.cart.CartNoti = [];
14258                window.pars3p.cart.CartCombo = [];
14259                window.pars3p.cart.TypeOfTransportation = [];
14260                window.pars3p.cart.timeOrderCalculateNext = null;
14261                lib3p.common_cartSet(window.pars3p.cart);
14262
14263                window.location.reload();
14264            }
14265        },
14266        onCartHopGiay_Click: function (el) {
14267            jQuery(el).closest('.hop-giay-suggest').toggleClass('open');
14268        },
14269        onCaptcha_Click: function () {
14270            window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
14271            jQuery('.captcha-input .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
14272            jQuery('.captcha-input .captcha').attr('key', window.pars3p.KeyView);
14273            return false;
14274        },
14275        Cart_ListHopGiaySuggest: function (res) {
14276            if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.ListHopGiaySuggest)) {
14277                var html = '';
14278                res.ListHopGiaySuggest.forEach(function (item) {
14279                    html += lib3p_helper.product.parseWithAction(item, 'lib3p.pageCartTest.onHopGiaySuggestCart_Click(this)');
14280                });
14281                jQuery('.page-cart .hop-giay-suggest .danh-sach .product-list.owl-carousel').html(html);
14282                jQuery('.page-cart .hop-giay-suggest .danh-sach .product-list.owl-carousel').owlCarousel({
14283                    autoplay: false,
14284                    autoplayTimeout: 3000,
14285                    autoplayHoverPause: true,
14286                    autoWidth: true,
14287                    loop: false,
14288                    nav: true,
14289                    dots: false,
14290                    margin: 20,
14291                    navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
14292                    navElement: 'div'
14293                });
14294                jQuery('.mobile-cart .hop-giay-suggest .danh-sach .product-list.owl-carousel').html(html);
14295                jQuery('.mobile-cart .hop-giay-suggest .danh-sach .product-list.owl-carousel').owlCarousel({
14296                    autoplay: false,
14297                    autoplayTimeout: 3000,
14298                    autoplayHoverPause: false,
14299                    autoWidth: true,
14300                    loop: false,
14301                    nav: false,
14302                    dots: false,
14303                    margin: 10,
14304                });
14305            }
14306        },
14307        onHopGiaySuggestCart_Click: function (el) {
14308            var data = jQuery(el).data();
14309            var item = {
14310                Code: -1,
14311                IsChoose: true,
14312                ProductID: parseInt(data.code, 10),
14313                ProductName: data.name,
14314                ImageSetting: data.img,
14315                UnitPrice: data.price,
14316                PriceBase: data.pricebase,
14317                IsHachi24: data.hachi24,
14318                OrderQuantity: 1,
14319                CartID: -1,
14320                LastModifiedTime: new Date()
14321            };
14322            var flag = true;
14323            if (data.Quantity >= 0) {
14324                if (data.Quantity == 0) {
14325                    flag = false;
14326                }
14327            }
14328            if (flag == true) {
14329                window.pars3p.cart.LastModifiedTime = new Date();
14330                if (window.pars3p.cart.Code > 0) {
14331                    item.CartID = window.pars3p.cart.Code;
14332                }
14333                if (window.pars3p.cart.CartDetails.length == 0) {
14334                    window.pars3p.cart.CartDetails.push(item);
14335                }
14336                else {
14337                    var temp = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == item.ProductID; });
14338                    if (lib3p_helper.utility.hasValue(temp)) {
14339                        temp.UnitPrice = item.UnitPrice;
14340                        temp.PriceBase = item.PriceBase;
14341                        temp.LastModifiedTime = new Date();
14342                        item = temp;
14343                        item.OrderQuantity++;
14344                    }
14345                    else {
14346                        window.pars3p.cart.CartDetails.push(item);
14347                    }
14348                }
14349                if (window.pars3p.auth.isLogin == true) {
14350                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductAdd, { detail: item }, function (res) {
14351                        if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
14352                            if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
14353                                if (res.ObjectReturn.CartID > 0) {
14354                                    item.OrderQuantity = res.ObjectReturn.OrderQuantity;
14355                                    lib3p.pageCart.Cache_Check();
14356                                    lib3p.common_cartSet(window.pars3p.cart);
14357                                    lib3p.pageCart.Cart_LoadHeader();
14358                                    lib3p.header.Notify_Show('Đã thêm ' + data.name + ' vào giỏ hàng!');
14359                                    lib3p.pageCartTest.onHopGiaySuggest_ClickLoad();
14360                                }
14361                            }
14362                        }
14363                    }, function (err) {
14364
14365                    });
14366                }
14367                else {
14368                    lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: [item.ProductID] }, function (res) {
14369                        if (lib3p_helper.utility.hasListValue(res)) {
14370                            if (!(res[0].Quantity > 0 && res[0].QuantityWithOrder > 0)) {
14371                                item.OrderQuantity = 0;
14372                            }
14373                            else if (res[0].QuantityWithOrder < item.OrderQuantity) {
14374                                item.OrderQuantity = res[0].QuantityWithOrder;
14375                            }
14376                            var index = window.pars3p.cart.CartDetails.findIndex(function (c) { return c.ProductID == item.ProductID; });
14377                            if (index >= 0 && item.OrderQuantity == 0) {
14378                                window.pars3p.cart.CartDetails.splice(index, 1);
14379                            }
14380                            lib3p.pageCart.Cache_Check();
14381                            lib3p.common_cartSet(window.pars3p.cart);
14382                            lib3p.pageCart.Cart_LoadHeader();
14383                            lib3p.header.Notify_Show('Đã thêm ' + data.name + ' vào giỏ hàng!');
14384                            lib3p.pageCartTest.onHopGiaySuggest_ClickLoad();
14385                        }
14386                    }, function (err) {
14387
14388                    });
14389                }
14390
14391            }
14392        },
14393        onHopGiaySuggest_Click: function (el) {
14394            var data = jQuery(el).data();
14395            var item = {
14396                Code: -1,
14397                IsChoose: true,
14398                ProductID: parseInt(data.code, 10),
14399                ProductName: data.name,
14400                ImageSetting: data.img,
14401                UnitPrice: data.price,
14402                PriceBase: data.pricebase,
14403                IsHachi24: data.hachi24,
14404                OrderQuantity: 1,
14405                CartID: -1,
14406                LastModifiedTime: new Date()
14407            };
14408            window.pars3p.cart.LastModifiedTime = new Date();
14409            if (window.pars3p.cart.Code > 0) {
14410                item.CartID = window.pars3p.cart.Code;
14411            }
14412            //lấy item trong giỏ hàng
14413            if (window.pars3p.cart.CartDetails.length == 0) {
14414                window.pars3p.cart.CartDetails.push(item);
14415            }
14416            else {
14417                var temp = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == item.ProductID; });
14418                if (lib3p_helper.utility.hasValue(temp)) {
14419                    temp.UnitPrice = item.UnitPrice;
14420                    temp.PriceBase = item.PriceBase;
14421                    temp.LastModifiedTime = new Date();
14422                    item = temp;
14423                    item.OrderQuantity++;
14424                }
14425                else {
14426                    window.pars3p.cart.CartDetails.push(item);
14427                }
14428            }
14429            lib3p.common_LoadingShow();
14430            if (window.pars3p.auth.isLogin == true) {
14431                lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductAdd, { detail: item }, function (res) {
14432                    if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
14433                        lib3p.pageCartTest.onHopGiaySuggest_ClickLoad();
14434                    }
14435                    else {
14436                        lib3p.common_LoadingHide();
14437                    }
14438                }, function (err) {
14439                    lib3p.common_LoadingHide();
14440                    console.log(err);
14441                });
14442            }
14443            else {
14444                lib3p.pageCart.Cache_Check();
14445                lib3p.common_cartSet(window.pars3p.cart);
14446                lib3p.pageCartTest.onHopGiaySuggest_ClickLoad();
14447            }
14448        },
14449        onHopGiaySuggest_ClickLoad: function () {
14450            if (window.pars3p.aut
14450h.isLogin == true) {
14451                lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductTotal, { cart: { Cart: { Code: -1 } } }, function (res) {
14452                    lib3p.common_LoadingHide();
14453                    if (res.StatusCode == 0) {
14454                        if (lib3p_helper.utility.hasValue(res.ObjectReturn) && lib3p_helper.utility.hasListValue(res.ObjectReturn.CartDetails)) {
14455                            window.pars3p.cart.lastUser = window.pars3p.auth.userName;
14456                            window.pars3p.cart.lastDate = new Date();
14457                            window.pars3p.cart.CartDetails = [];
14458                            window.pars3p.cart.CartCoupon = [];
14459                            window.pars3p.cart.ListCoupon = [];
14460                            window.pars3p.cart.CartNoti = [];
14461                            window.pars3p.cart.CartCombo = [];
14462                            window.pars3p.cart.TypeOfTransportation = [];
14463                            lib3p_helper.cart.copyCart(res.ObjectReturn);
14464                            if (window.pars3p.cart.StepDate && window.pars3p.cart.StepDate.getTime) {
14465                                window.pars3p.cart.timeOrderCalculateNext = window.pars3p.cart.StepDate.getTime() + window.pars3p.timeOrderCalculate;
14466                            }
14467                            else {
14468                                window.pars3p.cart.timeOrderCalculateNext = (new Date()).getTime() + window.pars3p.timeOrderCalculate;
14469                            }
14470                            lib3p.pageCart.Cache_Check();
14471                            lib3p.common_cartSet(window.pars3p.cart);
14472                            lib3p.pageCart.Cart_LoadHeader();
14473                            lib3p.pageCart.Cart_LoadNoti();
14474                            lib3p.pageCart.Cart_LoadBody();
14475                            lib3p.pageCart.Cart_LoadGift();
14476                            lib3p.pageCart.Cart_LoadTotal();
14477                            lib3p.pageCartTest.Cart_ListCoupon();
14478                            lib3p.pageCart.Cart_SuggestCombo();
14479                        }
14480                    }
14481                }, function (err) {
14482                    lib3p.common_LoadingHide();
14483                    console.log(err);
14484                });
14485            }
14486            else {
14487                if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
14488                    if (window.pars3p.cart.lastUser != '' || window.pars3p.cart.lastDate == null) {
14489                        window.pars3p.cart.lastUser = '';
14490                        window.pars3p.cart.lastDate = null;
14491                        window.pars3p.cart.Code = -1;
14492                    }
14493                    var req = {
14494                        Cart: {},
14495                        CartDetails: window.pars3p.cart.CartDetails,
14496                        CartCoupon: window.pars3p.cart.CartCoupon,
14497                        CartCombo: [],
14498                    };
14499                    req.Cart = lib3p_helper.cart.getCartInfo();
14500
14501                    lib3p.common_PostURL(window.pars3p.api.public.Cart_ProductTotal, { cart: req }, function (res) {
14502                        lib3p.common_LoadingHide();
14503                        if (res.StatusCode == 0) {
14504                            if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
14505                                window.pars3p.cart.lastUser = window.pars3p.auth.userName;
14506                                window.pars3p.cart.lastDate = new Date();
14507                                window.pars3p.cart.CartDetails = [];
14508                                window.pars3p.cart.CartCoupon = [];
14509                                window.pars3p.cart.ListCoupon = [];
14510                                window.pars3p.cart.CartNoti = [];
14511                                window.pars3p.cart.CartCombo = [];
14512                                window.pars3p.cart.TypeOfTransportation = [];
14513                                lib3p_helper.cart.copyCart(res.ObjectReturn);
14514                                window.pars3p.cart.CartCoupon = window.pars3p.cart.CartCoupon.filter(function (c) { return lib3p_helper.utility.hasValue(c) && c.CouponID > 0; });
14515                                lib3p.pageCart.Cache_Check();
14516                                lib3p.common_cartSet(window.pars3p.cart);
14517                                lib3p.pageCart.Cart_LoadHeader();
14518                                lib3p.pageCart.Cart_LoadNoti();
14519                                lib3p.pageCart.Cart_LoadBody();
14520                                lib3p.pageCart.Cart_LoadGift();
14521                                lib3p.pageCart.Cart_LoadTotal();
14522                                lib3p.pageCartTest.Cart_ListCoupon();
14523                                lib3p.pageCart.Cart_SuggestCombo();
14524                            }
14525                        }
14526                    }, function (err) {
14527                        lib3p.common_LoadingHide();
14528                        console.log(err);
14529                    });
14530                }
14531            }
14532        },
14533        Cart_ListCoupon: function () {
14534            jQuery('.page-cart .coupon .list-choose').hide();
14535            jQuery('.mobile-cart .coupon .list-choose').hide();
14536            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
14537                var html1 = '';
14538                window.pars3p.cart.CartCoupon.forEach(function (c, cidx) {
14539                    if (c.HasError == true) {
14540                        html1 += '<div class="item b-red500"><div class="text s13 cl-white regular400">' + c.CouponName + '</div><div class="xoa"><button type="button" aria-label="hachihachi" onclick="lib3p.pageCart.onCartCoupon_Delete(' + c.CouponID + ')"><span class="hachi-icon-close"></span></button></div></div>';
14541                    }
14542                    else {
14543                        html1 += '<div class="item b-dakgreen100"><div class="text s13 cl-gregray900 regular400">' + c.CouponName + '</div><div class="xoa"><button type="button" aria-label="hachihachi" onclick="lib3p.pageCart.onCartCoupon_Delete(' + c.CouponID + ')"><span class="hachi-icon-close"></span></button></div></div>';
14544                    }
14545                });
14546                jQuery('.page-cart .coupon .list-choose').html(html1);
14547                jQuery('.page-cart .coupon .list-choose').show();
14548                jQuery('.mobile-cart .coupon .list-choose').html(html1);
14549                jQuery('.mobile-cart .coupon .list-choose').show();
14550                if (lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (o) { return o.HasError == true; }))) {
14551                    //jQuery('.page-cart .coupon .sub-1-error').html('Mã giảm giá đã chọn không phù hợp');
14552                    //jQuery('.mobile-cart .coupon .sub-1-error').html('Mã giảm giá đã chọn không phù hợp');
14553                }
14554            }
14555            else {
14556                jQuery('.page-cart .coupon .list-choose').html('');
14557                jQuery('.mobile-cart .coupon .list-choose').html('');
14558            }
14559            jQuery('.page-cart .coupon .list-choose-type').hide();
14560            jQuery('.mobile-cart .coupon .list-choose-type').hide();
14561            jQuery('.popup-cart-coupon-choose .list-public .giam-san-pham').hide();
14562            jQuery('.popup-cart-coupon-choose .list-public .giam-don-hang').hide();
14563            jQuery('.popup-cart-coupon-choose .list-public .giam-ship').hide();
14564            jQuery('.popup-cart-coupon-choose .list-public .giam-mua-sam').hide();
14565            jQuery('.mobile-cart .coupon .list-public .giam-san-pham').hide();
14566            jQuery('.mobile-cart .coupon .list-public .giam-don-hang').hide();
14567            jQuery('.mobile-cart .coupon .list-public .giam-ship').hide();
14568            jQuery('.mobile-cart .coupon .list-public .giam-mua-sam').hide();
14569            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)) {
14570                var dtCompare = lib3p_helper.utility.dateAddDay(new Date(), 7).getTime();
14571                var hasExpiredPrivate = false;
14572                window.pars3p.cart.ListCoupon.sort(function (a, b) { return a.LimitInv - b.LimitInv; });
14573                window.pars3p.cart.ListCoupon.forEach(function (c) {
14574                    if (c.IsPrivate == true) {
14575                        if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
14576                            var dt = new Date(c.ExpiredDate).getTime();
14577                            if (dt <= dtCompare) {
14578                                hasExpiredPrivate = true;
14579                                c.IsExpired = true;
14580                            }
14581                        }
14582                    }
14583                });
14584                if (hasExpiredPrivate == true) {
14585                    jQuery('.page-cart .private-expired').show();
14586                    jQuery('.mobile-cart .private-expired').show();
14587                }
14588                else {
14589                    jQuery('.page-cart .private-expired').hide();
14590                    jQuery('.mobile-cart .private-expired').hide();
14591                }
14592
14593                var lstChoose = window.pars3p.cart.CartCoupon.filter(function (c) { return c.CouponID > 0; }).map(function (c) { return c.CouponID; });
14594
14595                var html2 = '';
14596                var offerShipList = [];
14597                var offerShipAmount = -1;
14598                var findCoupon = window.pars3p.cart.CartCoupon.find(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
14598ouponCartShipping; });
14599                if (lib3p_helper.utility.hasValue(findCoupon)) {
14600                    offerShipAmount = findCoupon.LimitInv;
14601                }
14602                var offerOrderList = [];
14603                var offerOrderAmount = -1;
14604                findCoupon = window.pars3p.cart.CartCoupon.find(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCart; });
14605                if (lib3p_helper.utility.hasValue(findCoupon)) {
14606                    offerOrderAmount = findCoupon.LimitInv;
14607                }
14608
14609                var lst = window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponProduct || c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponProductShipping; });
14610                if (lib3p_helper.utility.hasListValue(lst)) {
14611                    var html = '';
14612                    lst.forEach(function (c, cidx) {
14613                        var dt = lib3p_helper.utility.dateGet(c.ExpiredDate);
14614                        html += '<div class="item-outline">';
14615                        if (c.IsEnabled == true) {
14616                            html += '<div class="item type-1"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
14617                            if (c.IsPrivate == true) {
14618                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
14619                            }
14620                            html += '</div></div>';
14621                            if (lstChoose.indexOf(c.Code) >= 0) {
14622                                c.IsUse = true;
14623                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" checked /></div>';
14624                            }
14625                            else {
14626                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" /></div>';
14627                            }
14628                        }
14629                        else {
14630                            html += '<div class="item type-empty"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
14631                            if (c.IsPrivate == true) {
14632                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
14633                            }
14634                            html += '</div></div>';
14635                            html += '<div class="check"><input type="checkbox" disabled="disabled" /></div>';
14636                        }
14637                        html += '</div>';
14638
14639                        if (c.IsPrivate != true) {
14640                            if (c.IsEnabled == true) {
14641                                if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
14642                                    html2 += '<div class="item" onclick="lib3p.pageCartTest.onCouponChoose_Click(' + c.Code + ')"><div class="type-1"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
14643                                }
14644                            }
14645                            else {
14646                                html2 += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
14647                            }
14648                        }
14649                    });
14650                    jQuery('.popup-cart-coupon-choose .list-public .giam-san-pham .data').html(html);
14651                    jQuery('.popup-cart-coupon-choose .list-public .giam-san-pham').show();
14652                    jQuery('.mobile-cart .coupon .list-public .giam-san-pham .data').html(html);
14653                    jQuery('.mobile-cart .coupon .list-public .giam-san-pham').show();
14654                }
14655                lst = window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
14655ouponCart; });
14656                if (lib3p_helper.utility.hasListValue(lst)) {
14657                    var html = '';
14658                    lst.forEach(function (c, cidx) {
14659                        var dt = lib3p_helper.utility.dateGet(c.ExpiredDate);
14660                        html += '<div class="item-outline">';
14661                        if (c.IsEnabled == true) {
14662                            html += '<div class="item type-2"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
14663                            if (c.IsPrivate == true) {
14664                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
14665                            }
14666                            html += '</div></div>';
14667                            if (lstChoose.indexOf(c.Code) >= 0) {
14668                                c.IsUse = true;
14669                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" checked /></div>';
14670                            }
14671                            else {
14672                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" /></div>';
14673                            }
14674                        }
14675                        else {
14676                            html += '<div class="item type-empty"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
14677                            if (c.IsPrivate == true) {
14678                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
14679                            }
14680                            html += '</div></div>';
14681                            html += '<div class="check"><input type="checkbox" disabled="disabled" /></div>';
14682                        }
14683                        html += '</div>';
14684
14685                        if (c.IsPrivate != true) {
14686                            if (c.IsEnabled == true) {
14687                                if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
14688                                    html2 += '<div class="item" onclick="lib3p.pageCartTest.onCouponChoose_Click(' + c.Code + ')"><div class="type-2"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
14689                                }
14690                            }
14691                            else {
14692                                html2 += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
14693                            }
14694                        }
14695                        c.TempAmountCoupon = 0;
14696                        if (c.IsPercent == true) {
14697                            c.TempAmountCoupon = c.CouponAmount * (window.pars3p.cart.TotalAmount / 100);
14698                            if (c.LimitAmount > 0 && c.LimitAmount <= c.TempAmountCoupon) {
14699                                c.TempAmountCoupon = c.LimitAmount;
14700                            }
14701                        }
14702                        else {
14703                            c.TempAmountCoupon = c.CouponAmount;
14704                        }
14705                        if (!(lstChoose.indexOf(c.Code) >= 0)) {
14706                            if (c.LimitInv > offerOrderAmount) {
14707                                offerOrderList.push(c);
14708                            }
14709                            else if (c.IsEnabled == true) {
14710                                offerOrderList.push(c);
14711                            }
14712                        }
14713                    });
14714                    jQuery('.popup-cart-coupon-choose .list-public .giam-don-hang .data').html(html);
14715                    jQuery('.popup-cart-coupon-choose .list-public .giam-don-hang').show();
14716                    jQuery('.mobile-cart .coupon .list-public .giam-don-hang .data').html(html);
14717                    jQuery('.mobile-cart .coupon .list-public .giam-don-hang').show();
14718                }
14719                lst = window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
14719ouponCartShipping; });
14720                if (lib3p_helper.utility.hasListValue(lst)) {
14721                    var html = '';
14722                    lst.forEach(function (c, cidx) {
14723                        var dt = lib3p_helper.utility.dateGet(c.ExpiredDate);
14724                        html += '<div class="item-outline">';
14725                        if (c.IsEnabled == true) {
14726                            html += '<div class="item type-3"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
14727                            if (c.IsPrivate == true) {
14728                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
14729                            }
14730                            html += '</div></div>';
14731                            if (lstChoose.indexOf(c.Code) >= 0) {
14732                                c.IsUse = true;
14733                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" checked /></div>';
14734                            }
14735                            else {
14736                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" /></div>';
14737                            }
14738                        }
14739                        else {
14740                            html += '<div class="item type-empty"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
14741                            if (c.IsPrivate == true) {
14742                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
14743                            }
14744                            html += '</div></div>';
14745                            html += '<div class="check"><input type="checkbox" disabled="disabled" /></div>';
14746                        }
14747                        html += '</div>';
14748
14749                        if (c.IsPrivate != true) {
14750                            if (c.IsEnabled == true) {
14751                                if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
14752                                    html2 += '<div class="item" onclick="lib3p.pageCartTest.onCouponChoose_Click(' + c.Code + ')"><div class="type-3"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
14753                                }
14754                            }
14755                            else {
14756                                html2 += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
14757                            }
14758                        }
14759                        c.TempAmountCoupon = 0;
14760                        if (window.pars3p.cart.ShippingFee > 0) {
14761                            if (c.IsPercent == true) {
14762                                c.TempAmountCoupon = c.CouponAmount * (window.pars3p.cart.ShippingFee / 100);
14763                                if (c.LimitAmount > 0 && c.LimitAmount <= c.TempAmountCoupon) {
14764                                    c.TempAmountCoupon = c.LimitAmount;
14765                                }
14766                            }
14767                            else {
14768                                c.TempAmountCoupon = c.CouponAmount;
14769                            }
14770                            if (c.TempAmountCoupon > window.pars3p.cart.ShippingFee) {
14771                                c.TempAmountCoupon = window.pars3p.cart.ShippingFee;
14772                            }
14773                        }
14774                        if (!(lstChoose.indexOf(c.Code) >= 0)) {
14775                            if (c.LimitInv > offerShipAmount) {
14776                                offerShipList.push(c);
14777                            }
14778                            else if (c.IsEnabled == true) {
14779                                offerShipList.push(c);
14780                            }
14781                        }
14782                    });
14783                    jQuery('.popup-cart-coupon-choose .list-public .giam-ship .data').html(html);
14784                    jQuery('.popup-cart-coupon-choose .list-public .giam-ship').show();
14785                    jQuery('.mobile-cart .coupon .list-public .giam-ship .data').html(html);
14786                    jQuery('.mobile-cart .coupon .list-public .giam-ship').show();
14787                }
14788                lst = window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
14788oupon; });
14789                if (lib3p_helper.utility.hasListValue(lst)) {
14790                    var html = '';
14791                    lst.forEach(function (c, cidx) {
14792                        var dt = lib3p_helper.utility.dateGet(c.ExpiredDate);
14793                        html += '<div class="item-outline">';
14794                        if (c.IsEnabled == true) {
14795                            html += '<div class="item type-4"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
14796                            if (c.IsPrivate == true) {
14797                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
14798                            }
14799                            html += '</div></div>';
14800                            if (lstChoose.indexOf(c.Code) >= 0) {
14801                                c.IsUse = true;
14802                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" checked /></div>';
14803                            }
14804                            else {
14805                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" /></div>';
14806                            }
14807                        }
14808                        else {
14809                            html += '<div class="item type-empty"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
14810                            if (c.IsPrivate == true) {
14811                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
14812                            }
14813                            html += '</div></div>';
14814                            html += '<div class="check"><input type="checkbox" disabled="disabled" /></div>';
14815                        }
14816                        html += '</div>';
14817
14818                        if (c.IsPrivate != true) {
14819                            if (c.IsEnabled == true) {
14820                                if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
14821                                    html2 += '<div class="item" onclick="lib3p.pageCartTest.onCouponChoose_Click(' + c.Code + ')"><div class="type-4"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
14822                                }
14823                            }
14824                            else {
14825                                html2 += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
14826                            }
14827                        }
14828                    });
14829                    jQuery('.popup-cart-coupon-choose .list-public .giam-mua-sam .data').html(html);
14830                    jQuery('.popup-cart-coupon-choose .list-public .giam-mua-sam').show();
14831                    jQuery('.mobile-cart .coupon .list-public .giam-mua-sam .data').html(html);
14832                    jQuery('.mobile-cart .coupon .list-public .giam-mua-sam').show();
14833                }
14834                jQuery('.page-cart .coupon .list-choose-type').html(html2);
14835                jQuery('.mobile-cart .coupon .list-choose-type').html(html2);
14836                jQuery('.page-cart .coupon .list-choose-type').show();
14837                jQuery('.mobile-cart .coupon .list-choose-type').show();
14838
14839                var mobileNote = '';
14840                if (offerShipList.length > 0) {
14841                    var first = offerShipList[0];
14842                    var txt = 'Đừng quên chọn mã FREESHIP để tiết kiệm hơn nhé!';
14843                    if (first.IsEnabled != true) {
14844                        if (window.pars3p.cart.TotalAmount < 200000) {
14845                            txt = 'Mua đủ 200K để áp mã ' + first.CouponName;
14846                            mobileNote = '<div>' + txt + '</div>';
14847                        }
14848                        else if (window.pars3p.cart.TotalAmount > (first.LimitInv / 2)) {
14849                            var sub = first.LimitInv - window.pars3p.cart.TotalAmount;
14850                            txt = 'Mua thêm ' + lib3p_helper.utility.formatMoney(sub) + 'đ' + ' để áp mã ' + first.CouponName;
14851                        }
14852                    }
14853                    jQuery('.page-cart .van-chuyen-offer .tieu-de .txt').html(txt);
14854                    jQuery('.mobile-cart .van-chuyen-offer .tieu-de .txt').html(txt);
14855                }
14856                if (offerOrderList.length > 0) {
14857                    offerOrderList.sort(function (a, b) { return (b.TempAmountCoupon + (b.IsEnabled == true ? window.pars3p.cart.TotalAmount : 0)) - (a.TempAmountCoupon + (a.IsEnabled == true ? window.pars3p.cart.TotalAmount : 0)); });
14858                    var first = offerOrderList[0];
14859                    var txt = 'Mua sắm tiết kiệm với mã giảm chỉ dành cho đơn online';
14860                    if (first.IsEnabled != true && window.pars3p.cart.TotalAmount > (first.LimitInv / 2)) {
14861                        var sub = first.LimitInv - window.pars3p.cart.TotalAmount;
14862                        var giam = lib3p_helper.utility.formatMoney(first.CouponBaseAmount) + 'đ';
14863                        if (first.IsPercent == true) {
14864                            giam = first.CouponBaseAmount + '%';
14865                        }
14866                        txt = 'Mua thêm ' + lib3p_helper.utility.formatMoney(sub) + 'đ' + ' để được giảm ' + giam + ' đơn hàng';
14867                        mobileNote = '<div>' + 'Mua thêm ' + lib3p_helper.utility.formatMoney(sub) + 'đ' + ' để đơn giảm ' + giam + '</div>';
14868                    }
14869                    jQuery('.page-cart .order-offer .tieu-de .txt').html(txt);
14870                    jQuery('.mobile-cart .order-offer .tieu-de .txt').html(txt);
14871
14872                    html = '';
14873                    offerOrderList.forEach(function (c, cidx) {
14874                        var strExpired = '';
14875                        if (c.IsExpired == true) {
14876                            strExpired = '<div class="expired b-orange-50"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-exclamation.svg" /><span class="s13 cl-gregray900 regular400">Sắp hết hạn</span></div>';
14877                        }
14878                        if (c.IsEnabled == true) {
14879                            html += '<div class="item" onclick="lib3p.pageCartTest.onCouponChoose_Click(' + c.Code + ')"><div class="type-2"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div>' + strExpired + '</div>';
14880                        }
14881                        else {
14882                            html += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div>' + strExpired + '</div>';
14883                        }
14884                    });
14885                    jQuery('.page-cart .order-offer .list-choose-type').html(html);
14886                    jQuery('.mobile-cart .order-offer .list-choose-type').html(html);
14887                    jQuery('.page-cart .order-offer').show();
14888                    jQuery('.mobile-cart .order-offer').show();
14889                }
14890                else {
14891                    jQuery('.page-cart .order-offer').hide();
14892                    jQuery('.mobile-cart .order-offer').hide();
14893                }
14894                if (jQuery('.mobile-cart .cart-total .list-sub .list-sub-sticky .sub-offer').hasClass('hascoupon')) {
14895                    jQuery('.mobile-cart .cart-total .list-sub .list-sub-sticky .sub-offer').removeClass('hascoupon');
14896                }
14897                window.pars3p.listCouponOffer = [];
14898                if (!lib3p_helper.utility.hasListValue(lstChoose) && lib3p_helper.utility.hasListValue(offerShipList) && lib3p_helper.utility.hasListValue(offerOrderList)) {
14899                    var findOfferShip = null;
14900                    var findOfferOrder = null;
14901                    offerShipList.forEach(function (c) {
14902                        if (c.IsEnabled == true && !lib3p_helper.utility.hasValue(findOfferShip)) {
14903                            findOfferShip = c;
14904                        }
14905                    });
14906                    offerOrderList.forEach(function (c) {
14907                        if (c.IsEnabled == true && !lib3p_helper.utility.hasValue(findOfferOrder)) {
14908                            findOfferOrder = c;
14909                        }
14910                    });
14911                    if (lib3p_helper.utility.hasValue(findOfferShip) || lib3p_helper.utility.hasValue(findOfferOrder)) {
14912                        //mobileNote = '';
14913                        if (lib3p_helper.utility.hasValue(findOfferShip)) {
14914                            window.pars3p.listCouponOffer.push(findOfferShip);
14915                            //mobileNote += ',' + findOfferShip.Code;
14916                        }
14917                        if (lib3p_helper.utility.hasValue(findOfferOrder)) {
14918                            window.pars3p.listCouponOffer.push(findOfferOrder);
14919                            //mobileNote += ',' + findOfferOrder.Code;
14920                        }
14921                        mobileNote = '<div>Lựa chọn mã giảm tốt nhất cho đơn này</div><button class="coupon-ok sl-gregray200 b-white s13 cl-dakgreen650 sibold600" onclick="lib3p.pageCartTest.onCouponOfferOk_Click([' + mobileNote.substr(1) + '])">Đồng ý</button>';
14922                        jQuery('.mobile-cart .cart-total .list-sub .list-sub-sticky .sub-offer').addClass('hascoupon');
14923                    }
14924                }
14925
14926                jQuery('.page-cart .cart-bottom-fix .left .cart-offer').html('');
14927                jQuery('.page-cart .cart-bottom-fix .left').removeClass('hasoffer');
14928                jQuery('.mobile-cart .cart-total .list-sub .list-sub-sticky .sub-offer').html('');
14929                jQuery('.mobile-cart .cart-total .list-sub .list-sub-sticky').removeClass('hasoffer');
14930                if (lib3p_helper.utility.hasValueString(mobileNote)) {
14931                    jQuery('.page-cart .cart-bottom-fix .left .cart-offer').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/pig.svg" />' + mobileNote);
14932                    jQuery('.page-cart .cart-bottom-fix .left').addClass('hasoffer');
14933                    jQuery('.mobile-cart .cart-total .list-sub .list-sub-sticky .sub-offer').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/pig.svg" />' + mobileNote);
14934                    jQuery('.mobile-cart .cart-total .list-sub .list-sub-sticky').addClass('hasoffer');
14935                }
14936            }
14937        },
14938        onCouponChoose_Click: function (id) {
14939            var find = window.pars3p.cart.ListCoupon.find(function (c) { return c.CouponID == id; });
14940            var exists = window.pars3p.cart.CartCoupon.find(function (c) { return c.CouponID == id; });
14941            if (lib3p_helper.utility.hasValue(find) && !lib3p_helper.utility.hasValue(exists)) {
14942                if (find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
14942ouponCart || find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCartShipping) {
14943                    var index = window.pars3p.cart.CartCoupon.findIndex(function (c) { return c.TypeData == find.TypeData });
14944                    if (index >= 0) {
14945                        window.pars3p.cart.CartCoupon.splice(index, 1);
14946                    }
14947                }
14948                lib3p.header.Notify_Show('Áp dụng ' + find.CouponName + ' thành công!');
14949                if (window.pars3p.auth.isLogin == true) {
14950                    window.pars3p.cart.CartCoupon.push(find);
14951                    lib3p.common_cartSet(window.pars3p.cart);
14952                    lib3p.pageCart.Cart_ProductTotal(true);
14953                }
14954                else {
14955                    window.pars3p.cart.CartCoupon.push(find);
14956                    lib3p.common_cartSet(window.pars3p.cart);
14957                    lib3p.pageCartTest.Cart_ListCoupon();
14958                    lib3p.pageCart.Cart_ProductTotal();
14959                }
14960            }
14961        },
14962        onCouponOfferOk_Click(lst) {
14963            if (lib3p_helper.utility.hasListValue(lst)) {
14964                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)) {
14965                    window.pars3p.cart.CartCoupon = window.pars3p.cart.ListCoupon.filter(function (o) { return lst.indexOf(o.Code) >= 0; });
14966                    lib3p.header.Notify_Show('Áp dụng mã giảm tốt nhất thành công!');
14967                    if (window.pars3p.auth.isLogin == true) {
14968                        lib3p.pageCartTest.Cart_ListCoupon();
14969                        lib3p.pageCart.Cart_ProductTotal(true);
14970                    }
14971                    else {
14972                        lib3p.pageCartTest.Cart_ListCoupon();
14973                        lib3p.pageCart.Cart_ProductTotal();
14974                    }
14975                }
14976            }
14977        },
14978        Cart_SuggestCombo: function () {
14979            lib3p.pageCart.Cart_SuggestCombo_async().then(function (data) {
14980
14981            }, function (err) {
14982                console.log(err);
14983                //alert(err);
14984            });
14985        },
14986        Cart_SuggestCombo_async: function () {
14987            return new Promise(function (resolve, reject) {
14988                setTimeout(function () {
14989                    var cart = {
14990                        Cart: {
14991                            Code: -1
14992                        },
14993                        CartDetails: window.pars3p.cart.CartDetails
14994                    };
14995
14996                    lib3p.common_PostURL(window.pars3p.api.public.Cart_SuggestCombo, { cart: cart }, function (res) {
14997                        if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.SuggestCombo)) {
14998                            window.pars3p.listSuggestCombo = res.SuggestCombo;
14999                            var lst = [];
15000                            res.SuggestCombo.forEach(function (c, cidx) {
15001                                c.ListCombo.forEach(function (d, didx) {
15002                                    var find = lst.find(function (e) { return e.ProductID == d.ProductID; });
15003                                    if (!lib3p_helper.utility.hasValue(find)) {
15004                                        find = { ProductID: d.ProductID, ImageSetting: d.ImageSetting, ProductName: d.ProductName, Alias: d.Alias, UnitPrice: d.UnitPrice, BasePrice: d.BasePrice, List: [] };
15005                                        lst.push(find);
15006                                    }
15007                                    find.List.push(c);
15008                                });
15009                            });
15010                            lst.forEach(function (c, cidx) {
15011                                var query = jQuery('.page-cart .cart .data-content .product-suggest-combo.product' + c.ProductID);
15012                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15013                                    var html = '';
15014                                    html += '<a class="down s14 cl-gregray900 medium500" onclick="lib3p.pageCart.onCart_SuggestCombo_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/combo-tiet-kiem.svg" /> Nếu bạn chọn combo sẽ tiết kiệm hơn bạn có muốn chuyển sang combo không ? &nbsp;<span class="hachi-icon-down"></span></a>';
15015                                    html += '<fieldset class="sl-green500">';
15016                                    html += '<legend class="down s14 cl-gregray900 medium500">&nbsp;&nbsp;<a onclick="lib3p.pageCart.onCart_SuggestCombo_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/combo-tiet-kiem.svg" /> Nếu bạn chọn combo sẽ tiết kiệm hơn bạn có muốn chuyển sang combo không ? &nbsp;<span class="hachi-icon-up"></span></a>&nbsp;</legend>';
15017                                    html += '<div class="list">';
15018                                    c.List.forEach(function (d, didx) {
15019                                        html += '<div class="product">';
15020                                        html += '<div class="choose"><input type="checkbox" onchange="lib3p.pageCart.onCart_SuggestCombo_Check(this,' + d.ProductID + ')" /></div>';
15021                                        html += '<div class="image"><a href="' + d.Alias + '"><img src="' + d.ImageSetting + '" /></a></div>';
15022                                        //info start ---
15023                                        html += '<div class="info">';
15024                                        html += '<div class="name s14 cl-gregray900 medium500"><a href="' + d.Alias + '">' + d.ProductName + '</a></div>';
15025                                        //action start ---       
15026                                        html += '<div class="action">';
15027                                        html += '<div class="price s14 sibold600">';
15028                                        if (d.BasePrice > 0 && d.UnitPrice != d.BasePrice) {
15029                                            html += '<span class="sale cl-red400">' + lib3p_helper.utility.formatMoney(d.UnitPrice) + 'đ</span>';
15030                                            html += '<span class="sale-base cl-gregray550">&nbsp;' + lib3p_helper.utility.formatMoney(d.BasePrice) + 'đ</span>';
15031                                        }
15032                                        else {
15033                                            html += '<span class="base cl-dakgreen800">' + lib3p_helper.utility.formatMoney(d.UnitPrice) + 'đ</span>';
15034                                        }
15035                                        html += '</div>';
15036                                        html += '</div>';
15037                                        //action end ---
15038                                        html += '</div>';
15039                                        //info end ---
15040                                        html += '</div>';
15041                                    });
15042                                    html += '</div>';
15043                                    html += '</fieldset>';
15044                                    query.html(html);
15045                                    if (!query.hasClass('hienthi')) {
15046                                        query.addClass('hienthi');
15047                                    }
15048
15049                                    query = jQuery('.mobile-cart .cart .data-content .product-suggest-combo.product' + c.ProductID);
15050                                    query.html(html);
15051                                    if (!query.hasClass('hienthi')) {
15052                                        query.addClass('hienthi');
15053                                    }
15054                                }
15055                            });
15056                        }
15057                        resolve('');
15058                    }, function (err) {
15059                        reject(err);
15060                    });
15061                }, window.pars3p.timeAsync);
15062            });
15063        },
15064        onCart_SuggestCombo_Toggle: function (el) {
15065            var query = jQuery(el).closest('.product-suggest-combo');
15066            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15067                if (jQuery(query[0]).hasClass('expand')) {
15068                    jQuery(query[0]).removeClass('expand');
15069                }
15070                else {
15071                    jQuery(query[0]).addClass('expand');
15072                }
15073            }
15074        },
15075        onCart_Gift_Toggle: function (el) {
15076            var query = jQuery(el).closest('.product-gift');
15077            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15078                if (jQuery(query[0]).hasClass('expand')) {
15079                    jQuery(query[0]).removeClass('expand');
15080                }
15081                else {
15082                    jQuery(query[0]).addClass('expand');
15083                }
15084            }
15085        },
15086        onCart_SuggestCombo_Check: function (el, id) {
15087            if (el.checked == true) {
15088                var find = window.pars3p.listSuggestCombo.find(function (c) { return c.ProductID == id; });
15089                if (lib3p_helper.utility.hasValue(find)) {
15090                    if (window.pars3p.auth.isLogin == true) {
15091                        var cart = {
15092                            Cart: {
15093                                Code: -1,
15094                                OrderDate: null,
15095                                MembershipID: -1,
15096                                DiscountMembership: 0
15097                            },
15098                            CartDetails: [],
15099                            CartCoupon: [],
15100                            SuggestCombo: []
15101                        };
15102                        cart.SuggestCombo.push(find);
15103                        if (window.pars3p.cart.Code > 0) {
15104                            cart.Cart = lib3p_helper.cart.getCartInfo();
15105                        }
15106                        if (window.pars3p.cart.MembershipID > 0) {
15107                            cart.Cart.MembershipID = window.pars3p.cart.MembershipID;
15108                            cart.Cart.DiscountMembership = window.pars3p.cart.DiscountMembership;
15109                        }
15110                        window.pars3p.cart.CartDetails.forEach(function (c) {
15111                            cart.CartDetails.push({ ProductID: c.ProductID, OrderQuantity: c.OrderQuantity, ShippedQuantity: c.ShippedQuantity, UnitPrice: c.UnitPrice, IsChoose: c.IsChoose, ModelID: c.ModelID });
15112                        });
15113
15114                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ChangeCombo, { cart: cart }, function (res) {
15115                            if (res == true) {
15116                                window.location.reload();
15117                            }
15118                        }, function (err) {
15119                            lib3p.log(err);
15120                        });
15121                    }
15122                    else {
15123                        find.ListCombo.forEach(function (c, cidx) {
15124                            var idx = window.pars3p.cart.CartDetails.findIndex(function (d) { return d.ProductID == c.ProductID; });
15125                            if (idx >= 0) {
15126                                window.pars3p.cart.CartDetails.splice(idx, 1);
15127                            }
15128                        });
15129                        var item = {
15130                            Code: -1,
15131                            ProductID: find.ProductID,
15132                            ProductName: find.ProductName,
15133                            ImageSetting: find.ImageSetting,
15134                            UnitPrice: find.UnitPrice,
15135                            IsHachi24: find.IsHachi24,
15136                            OrderQuantity: find.OrderQuantity,
15137                            IsChoose: true,
15138                            CartID: -1,
15139                            LastModifiedTime: new Date()
15140                        };
15141                        window.pars3p.cart.LastModifiedTime = new Date();
15142                        window.pars3p.cart.CartDetails.push(item);
15143                        lib3p.pageCart.Cache_Check();
15144                        window.pars3p.cart.timeOrderCalculateNext = null;
15145                        lib3p.common_cartSet(window.pars3p.cart);
15146                        window.location.reload();
15147                    }
15148                }
15149            }
15150        },
15151        onSuggestCombo_Chon: function (event, id) {
15152            window.pars3p.idSuggestCombo = id;
15153        },
15154        onSuggestCombo_Close: function () {
15155            var query = jQuery('.popup-cart-suggest-combo .hachi-modal');
15156            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15157                if (jQuery(query[0]).hasClass("d-block")) {
15158                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
15159                }
15160            }
15161        },
15162        onSuggestCombo_Ok: function () {
15163            if (window.pars3p.idSuggestCombo > 0) {
15164                var find = window.pars3p.listSuggestCombo.find(function (c) { return c.ProductID == window.pars3p.idSuggestCombo; });
15165                if (lib3p_helper.utility.hasValue(find)) {
15166                    if (window.pars3p.auth.isLogin == true) {
15167
15168                    }
15169                    else {
15170                        find.ListCombo.forEach(function (c, cidx) {
15171                            var idx = window.pars3p.cart.CartDetails.findIndex(function (c) { return c.ProductID == c.ProductID; });
15172                            if (idx >= 0) {
15173                                window.pars3p.cart.CartDetails.splice(idx, 1);
15174                            }
15175                        });
15176                        var item = {
15177                            Code: -1,
15178                            ProductID: find.ProductID,
15179                            ProductName: find.ProductName,
15180                            ImageSetting: find.ImageSetting,
15181                            UnitPrice: find.UnitPrice,
15182                            IsHachi24: find.IsHachi24,
15183                            OrderQuantity: find.OrderQuantity,
15184                            CartID: -1,
15185                            LastModifiedTime: new Date()
15186                        };
15187                        window.pars3p.cart.LastModifiedTime = new Date();
15188                        window.pars3p.cart.CartDetails.push(item);
15189                        lib3p.pageCart.Cache_Check();
15190                        window.pars3p.cart.timeOrderCalculateNext = null;
15191                        lib3p.common_cartSet(window.pars3p.cart);
15192                        window.location.reload();
15193                    }
15194                }
15195            }
15196        },
15197        onCartNotity_Close: function () {
15198            jQuery(".page-cart .cart .notify .list").html("");
15199            jQuery(".page-cart .cart .notify").hide();
15200            jQuery(".mobile-cart .cart .notify .list").html("");
15201            jQuery(".mobile-cart .cart .notify").hide();
15202        },
15203        onCartCombo_Toggle: function (el) {
15204            var query = jQuery(el).closest('.product-combo');
15205            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15206                if (jQuery(query[0]).hasClass('expand')) {
15207                    jQuery(query[0]).removeClass('expand');
15208                }
15209                else {
15210                    jQuery(query[0]).addClass('expand');
15211                }
15212            }
15213        },
15214        Cart_LoadHeader: function () {
15215            var query = jQuery('.page-header .top-icon .cart-icon img');
15216            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15217                if (lib3p_helper.utility.hasValue(window.pars3p.cart)) {
15218                    if (window.pars3p.cart.TotalItemQuantity > 0) {
15219                        var str = '/v2/Sources/assets/css/images/icomoon/cart{0}.svg';
15220                        if (window.pars3p.cart.TotalItemQuantity > 9) {
15221                            str = lib3p_helper.utility.stringFormat(str, 10);
15222                        }
15223                        else {
15224                            str = lib3p_helper.utility.stringFormat(str, window.pars3p.cart.TotalItemQuantity);
15225                        }
15226                        query.attr('src', str);
15227                        jQuery('.mobile-header .mobile-header-menu .cart img').attr('src', str);
15228                    }
15229                }
15230            }
15231            query = jQuery('.event-japanmall-2024-action .cart-icon img');
15232            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15233                if (lib3p_helper.utility.hasValue(window.pars3p.cart)) {
15234                    if (window.pars3p.cart.TotalItemQuantity > 0) {
15235                        var str = '/v2/Sources/assets/css/images/icomoon/cart{0}.svg';
15236                        if (window.pars3p.cart.TotalItemQuantity > 9) {
15237                            str = lib3p_helper.utility.stringFormat(str, 10);
15238                        }
15239                        else {
15240                            str = lib3p_helper.utility.stringFormat(str, window.pars3p.cart.TotalItemQuantity);
15241                        }
15242                        query.attr('src', str);
15243                    }
15244                }
15245            }
15246        },
15247        Cart_LoadNoti: function () {
15248            if (lib3p_helper.utility.hasValue(window.pars3p.cart)) {
15249                var query = jQuery('.page-cart .cart .notify');
15250                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15251                    if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartNoti)) {
15252                        var noti = "";
15253                        window.pars3p.cart.CartNoti.forEach(function (c, cidx) {
15254                            noti += '<div class="item"><div class="icon"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-exclamation.svg" alt="hachihachi" /></div><div class="text s14 cl-gregray900 regular400">' + c.Notification + '</div></div>';
15255                        });
15256                        jQuery(".page-cart .cart .notify .list").html(noti);
15257                        jQuery(".page-cart .cart .notify").show();
15258                        jQuery(".mobile-cart .cart .notify .list").html(noti);
15259                        jQuery(".mobile-cart .cart .notify").show();
15260                    }
15261                    else {
15262                        jQuery(".page-cart .cart .notify .list").html("");
15263                        jQuery(".page-cart .cart .notify").hide();
15264                        jQuery(".mobile-cart .cart .notify .list").html("");
15265                        jQuery(".mobile-cart .cart .notify").hide();
15266                    }
15267                }
15268            }
15269        },
15270        Cart_LoadBody: function () {
15271            if (lib3p_helper.utility.hasValue(window.pars3p.cart)) {
15272                var query = jQuery('.page-cart .cart .data-content');
15273                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15274                    var carthtml = "";
15275                    window.pars3p.cart.CartDetails.forEach(function (c, cidx) {
15276                        var img = window.pars3p.hostresouce + '/Uploads/productimage_mobile/' + c.Barcode + '.jpg';
15277
15278                        carthtml += '<div data-id="' + c.ProductID + '" class="data-row product' + c.ProductID + ' ' + (c.IsStock == true ? '' : 'isempty') + '">';
15279                        //product start ---
15280                        carthtml += '<div class="product">';
15281                        if (c.IsChoose == true) {
15282                            carthtml += '<div class="choose"><input type="checkbox" checked onchange="lib3p.pageCart.onProduct_Chon(this,' + c.ProductID + ')" /></div>';
15283                        }
15284                        else {
15285                            carthtml += '<div class="choose"><input type="checkbox" onchange="lib3p.pageCart.onProduct_Chon(this,' + c.ProductID + ')" /></div>';
15286                        }
15287                        //carthtml += '<div class="image"><a href="' + c.Alias + '"><img src="' + c.ImageSetting + '" /></a>';
15288                        carthtml += '<div class="image"><a href="' + c.Alias + '"><img src="' + img + '" /></a>';
15289                        if (c.IsHachi24 == true) {
15290                            carthtml += '<div class="imgbackground"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/hachi3h-text.svg" alt="..." loading="lazy" /></div>';
15291                        }
15292                        carthtml += '</div>';
15293                        //info start ---
15294                        carthtml += '<div class="info">';
15295                        carthtml += '<div class="name s14 cl-gregray900 medium500"><a href="' + c.Alias + '">' + c.ProductName + '</a></div>';
15296                        //action start ---       
15297                        carthtml += '<div class="action">';
15298                        carthtml += '<div class="price s14 sibold600">';
15299                        if (c.BasePrice > 0 && c.UnitPrice != c.BasePrice) {
15300                            carthtml += '<span class="sale cl-red400">' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</span>';
15301                            carthtml += '<span class="sale-base cl-gregray550">&nbsp;' + lib3p_helper.utility.formatMoney(c.BasePrice) + 'đ</span>';
15302                        }
15303                        else {
15304                            carthtml += '<span class="base cl-dakgreen800">' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</span>';
15305                        }
15306                        carthtml += '</div>';
15307                        carthtml += '<div class="group-input">';
15308                        carthtml += '<button type="button" aria-label="hachihachi" class="sub s8 sl-gregray70" onclick="lib3p.pageCart.onProduct_Sub(this,' + c.ProductID + ')"><span class="hachi-icon-minus"></span></button>';
15309                        carthtml += '<input type="number" value="' + c.OrderQuantity + '" class="input s15 cl-gregray900 medium500 sl-gregray70" onin
15309put="this.value=Math.round(this.value);" onkeydown="lib3p.pageCart.onQuantiy_KeyDown(event,this,' + c.ProductID + ')">';
15310                        carthtml += '<button type="button" aria-label="hachihachi" class="add s8 sl-gregray70" onclick="lib3p.pageCart.onProduct_Add(this,' + c.ProductID + ')"><span class="hachi-icon-plus"></span></button>';
15311                        if (window.pars3p.auth.isLogin == true && lib3p_helper.utility.hasValueString(window.pars3p.auth.access_token)) {
15312                            carthtml += '<div class="img-like"><button type="button" aria-label="hachihachi" onclick="lib3p.pageCart.onCart_Like(this,' + c.ProductID + ')"><img class="unchoose" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/heart2circle.svg" alt="hachihachi" /><img class="choose" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/heart2circlesel.svg" alt="hachihachi" /></button></div>';
15313                        }
15314                        else {
15315                            carthtml += '<div class="img-like"><button type="button" aria-label="hachihachi" onclick="lib3p.header.onPopupLikeConfirm_Show()"><img class="unchoose" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/heart2circle.svg" alt="hachihachi" /><img class="choose" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/heart2circlesel.svg" alt="hachihachi" /></button></div>';
15316                        }
15317                        carthtml += '</div>';
15318                        carthtml += '<div class="thongbao b-dakgreen900 s14 cl-white bold700"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-info-grey.svg" /><span>Hàng không đủ tồn!</span></div>';
15319                        carthtml += '</div>';
15320                        carthtml += '<div class="action-sub">';
15321                        if (c.IsStock == true) {
15322                            //carthtml += '<button type="button" aria-label="hachihachi" class="s13 cl-red500 sibold600" onclick="lib3p.pageCart.onProduct_Delete(this,' + c.ProductID + ')">Xóa</button>';
15323                        }
15324                        else {
15325                            carthtml += '<span class="hethang s13 cl-red500 sibold600">Hết hàng</span>';
15326                        }
15327                        carthtml += '</div>';
15328                        if (c.IsHachi24 == true) {
15329                            carthtml += '<div style="display:none" class="hachi3h s13 cl-red600 medium500">Do điều kiện bảo quản, sản phẩm này không thể giao đến khu vực của bạn. Bạn hãy xóa sản phẩm khỏi giỏ hàng hoặc chỉnh địa chỉ nhận hàng sang nội thành TPHCM</div>';
15330                        }
15331                        //action end ---
15332                        carthtml += '</div>';
15333                        //info end ---
15334                        //delete start ---
15335                        carthtml += '<div class="del">';
15336                        if (c.IsStock == true) {
15337                            carthtml += '<button type="button" aria-label="hachihachi" onclick="lib3p.pageCart.onProduct_Delete(this,' + c.ProductID + ')"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/close.svg" alt="hachihachi" /></button>';
15338                        }
15339                        carthtml += '</div>';
15340                        //delete start ---
15341                        carthtml += '</div>';
15342                        //product end ---
15343                        if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)) {
15344                            var lstFind = window.pars3p.cart.ListCoupon.filter(function (coupon) { return coupon.ProductID == c.ProductID; });
15345                            if (lib3p_helper.utility.hasListValue(lstFind)) {
15346                                carthtml += '<div class="product-suggest-coupon">';
15347                                carthtml += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/voucher.svg" alt="hachihachi" /><span class="tieude s14 cl-gregray900 medium500">
15347Mã giảm kèm</span>';
15348                                lstFind.forEach(function (coupon) {
15349                                    if (c.IsChoose != true) {
15350                                        carthtml += '<span class="item b-gregray100 s14 cl-gregray550 regular400" data-container=".page-cart-popover" data-toggle="popover" data-placement="top" data-trigger="hover" data-content="' + coupon.Description + '">' + coupon.CouponName + '</span>';
15351                                    }
15352                                    else if (window.pars3p.cart.CartCoupon.find(function (temp) { return temp.ProductID == c.ProductID; }) == null) {
15353                                        carthtml += '<span class="item b-dakgreen50 s14 cl-gregray900 regular400" data-container=".page-cart-popover" data-toggle="popover" data-placement="top" data-trigger="hover" data-content="' + coupon.Description + '">' + coupon.CouponName + '</span>';
15354                                    }
15355                                    else {
15356                                        carthtml += '<span class="item b-dakgreen400 s14 cl-dakgreen900 regular400" data-container=".page-cart-popover" data-toggle="popover" data-placement="top" data-trigger="hover" data-content="' + coupon.Description + '">' + coupon.CouponName + '</span>';
15357                                    }
15358                                });
15359                                carthtml += '<a class="hienchon" onclick="lib3p.pageCart.onCartCoupon_Toggle()"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-down.svg" alt="hachihachi" /></a></div>';
15360                            }
15361                        }
15362                        /* if(lib3p_helper.utility.hasListValue(c.ListGift)) {
15363                            var html = '<div class="hienthi product-gift product' + c.ProductID + '">';
15364                            html += '<a class="down s14 cl-gregray900 medium500" onclick="lib3p.pageCart.onCart_Gift_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Sản phẩm có quà tặng kèm vui lòng chọn sau khi hoàn tất đặt hàng &nbsp;<span class="hachi-icon-down"></span></a>';
15365                            html += '<fieldset class="sl-green500">';
15366                            html += '<legend class="down s14 cl-gregray900 medium500">&nbsp;&nbsp;<a onclick="lib3p.pageCart.onCart_Gift_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Sản phẩm có quà tặng kèm vui lòng chọn sau khi hoàn tất đặt hàng &nbsp;<span class="hachi-icon-up"></span></a>&nbsp;</legend>';
15367                            html += '<div class="list">';
15368                            c.ListGift.forEach(function(d) {
15369                                html += '<div class="image"><img src="' + d.ImageThumb + '" /></div>';
15370                            });
15371                            html += '</div>';
15372                            html += '</fieldset>';
15373                            carthtml += html;
15374                        }
15375                        else {
15376                            carthtml += '<div class="product-gift product' + c.ProductID + '">';
15377                        } */
15378                        carthtml += '<div class="product-gift product' + c.ProductID + '"></div>';
15379
15380                        carthtml += '<div class="product-suggest-combo product' + c.ProductID + '"></div>';
15381                        if (lib3p_helper.utility.hasListValue(c.ListItem)) {
15382                            carthtml += '<div class="product-combo">';
15383                            carthtml += '<a class="down s14 cl-gregray900 medium500" onclick="lib3p.pageCart.onCartCombo_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Sản phẩm có quà tặng kèm vui lòng chọn <span class="bold700">sau khi hoàn tất đơn hàng</span> &nbsp;<span class="hachi-icon-down"></span></a>';
15384                            carthtml += '<fieldset class="sl-green500">';
15385                            carthtml += '<legend class="down s14 cl-gregray900 medium500">&nbsp;&nbsp;<a onclick="lib3p.pageCart.onCartCombo_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Sản phẩm có quà tặng kèm vui lòng chọn <b>sau khi hoàn tất đơn hàng</b> &nbsp;<span class="hachi-icon-up"></span></a>&nbsp;</legend>';
15386                            carthtml += '<div class="list">';
15387                            c.ListItem.forEach(function (d) {
15388                                carthtml += '<img src="' + d.ImageThumb + '">';
15389                            });
15390                            carthtml += '</div>';
15391                            carthtml += '</fieldset>';
15392                            carthtml += '</div>';
15393                        }
15394                        //carthtml += '<div class="product-empty b-white"><button type="button" aria-label="hachihachi" class="s13 cl-red500 sibold600" onclick="lib3p.pageCart.onProduct_Delete(this,' + c.ProductID + ')">Xóa</button></div>';
15395                        carthtml += '<div class="product-empty b-white"><button type="button" aria-label="hachihachi" class="s13 cl-red500 sibold600" onclick="lib3p.pageCart.onProduct_Delete(this,' + c.ProductID + ')"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/close.svg" alt="hachihachi" /></button></div>';
15396                        carthtml += '<div class="line b-gregray100">&nbsp;</div>';
15397                        carthtml += '</div>';
15398                    });
15399                    /* if(lib3p_helper.utility.hasListValue(window.pars3p.cart.ListGift)) {
15400                        var group = {};
15401                        window.pars3p.cart.ListGift.forEach(function(d) {
15402                            var key = '';
15403                            if(d.TypeData == 16) {
15404                                key = 'Quà tặng cho nhóm sản phẩm';
15405                            }
15406                            else if(d.TypeData == 17) {
15407                                key = 'Quà tặng cho đơn hàng ứng với giá trị mua hàng ' + lib3p_helper.utility.formatMoney(d.Price) + 'đ';
15408                            }
15409                            if(lib3p_helper.utility.hasValueString(key)) {
15410                                if(!lib3p_helper.utility.hasValue(group[key])){
15411                                    group[key] = [];
15412                                }
15413                                group[key].push(d);
15414                            }                            
15415                        });
15416                        for(var key in group) {
15417                            carthtml += '<div class="hienthi order-gift type2">';
15418                            carthtml += '<div class="tieu-de s20 cl-gregray900 bold700">' + key + '</div>';
15419                            carthtml += '<div class="product-list owl-carousel">';
15420                            group[key].forEach(function(d) {
15421                                carthtml += '<div class="product-item">';
15422                                carthtml += '<div class="img"><img src="' + d.ImageThumb + '" alt="..."/></div>';
15423                                carthtml += '<div class="name s13 cl-gregray800 medium500">' + d.ProductName + '</div>';
15424                                carthtml += '</div>';
15425                            });
15426                            carthtml += '</div>';
15427                        }
15428                    }
15429                    else {
15430                        carthtml += '<div class="order-gift">';
15431                    } */
15432                    carthtml += '<div class="order-gift-outline"></div>';
15433                    jQuery(".page-cart .cart .data-content").html(carthtml);
15434                    jQuery(".mobile-cart .cart .data-content").html(carthtml);
15435                    var query = jQuery('.page-cart .cart .data-content span[data-toggle="popover"]');
15436                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15437                        query.popover();
15438                    }
15439
15440                    if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
15441                        jQuery('.page-cart .cart .data-header .choose input[type="checkbox"]')[0].checked = window.pars3p.cart.CartDetails.find(function (o) { return o.IsChoose != true; }) == null;
15442                    }
15443
15444                    lib3p.pageCart.Cart_LoadLike();
15445                }
15446            }
15447        },
15448        Cart_LoadGift: function () {
15449            window.pars3p.cart.CartDetails.forEach(function (c, cidx) {
15450                var query = jQuery('.page-cart .cart .data-content .product-gift.product' + c.ProductID);
15451                var queryMobile = jQuery('.mobile-cart .cart .data-content .product-gift.product' + c.ProductID);
15452                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15453                    if (lib3p_helper.utility.hasListValue(c.ListGift)) {
15454                        var html = '<button type="button" aria-label="hachihachi" class="down s14 cl-gregray900 medium500" onclick="lib3p.pageCart.onCart_Gift_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Sản phẩm có quà tặng kèm vui lòng chọn sau khi hoàn tất đặt hàng &nbsp;<span class="hachi-icon-down"></span></button>';
15455                        html += '<fieldset class="sl-green500">';
15456                        html += '<legend class="down s14 cl-gregray900 medium500">&nbsp;&nbsp;<button type="button" aria-label="hachihachi" onclick="lib3p.pageCart.onCart_Gift_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Sản phẩm có quà tặng kèm vui lòng chọn sau khi hoàn tất đặt hàng &nbsp;<span class="hachi-icon-up"></span></button>&nbsp;</legend>';
15457                        html += '<div class="list">';
15458                        c.ListGift.forEach(function (d) {
15459                            html += '<div class="image"><img src="' + d.ImageThumb + '" /></div>';
15460                        });
15461                        html += '</div>';
15462                        html += '</fieldset>';
15463
15464                        query.html(html);
15465                        queryMobile.html(html);
15466                        if (!query.hasClass('hienthi')) {
15467                            query.addClass('hienthi');
15468                            queryMobile.addClass('hienthi');
15469                        }
15470                    }
15471                    else if (query.hasClass('hienthi')) {
15472                        query.removeClass('hienthi');
15473                        queryMobile.removeClass('hienthi');
15474                    }
15475                }
15476            });
15477            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListGift)) {
15478                jQuery('.page-cart .cart .data-content .hienthi.order-gift .product-list.owl-carousel').owlCarousel('destroy');
15479                jQuery('.mobile-cart .cart .data-content .hienthi.order-gift .product-list.owl-carousel').owlCarousel('destroy');
15480
15481                var carthtml = '';
15482                var group = {};
15483                window.pars3p.cart.ListGift.forEach(function (d) {
15484                    var key = '';
15485                    if (d.TypeData == 16) {
15486                        key = 'Quà tặng cho nhóm sản phẩm';
15487                    }
15488                    else if (d.TypeData == 17) {
15489                        key = 'Quà tặng cho đơn hàng ứng với giá trị mua hàng ' + lib3p_helper.utility.formatMoney(d.Price) + 'đ';
15490                    }
15491                    if (lib3p_helper.utility.hasValueString(key)) {
15492                        if (!lib3p_helper.utility.hasValue(group[key])) {
15493                            group[key] = [];
15494                        }
15495                        group[key].push(d);
15496                    }
15497                });
15498                for (var key in group) {
15499                    carthtml += '<div class="hienthi order-gift type2">';
15500                    carthtml += '<div class="tieu-de s20 cl-gregray900 bold700">' + key + '</div>';
15501                    carthtml += '<div class="product-list owl-carousel">';
15502                    group[key].forEach(function (d) {
15503                        carthtml += '<div class="product-item">';
15504                        carthtml += '<div class="img"><img src="' + d.ImageThumb + '" alt="..."/></div>';
15505                        carthtml += '<div class="name s13 cl-gregray800 medium500">' + d.ProductName + '</div>';
15506                        carthtml += '</div>';
15507                    });
15508                    carthtml += '</div>';
15509                }
15510                jQuery(".page-cart .cart .data-content .order-gift-outline").html(carthtml);
15511                jQuery(".mobile-cart .cart .data-content .order-gift-outline").html(carthtml);
15512
15513                jQuery('.page-cart .cart .data-content .hienthi.order-gift .product-list.owl-carousel').owlCarousel({
15514                    autoplay: false,
15515                    autoplayTimeout: 3000,
15516                    autoplayHoverPause: true,
15517                    autoWidth: true,
15518                    loop: false,
15519                    nav: true,
15520                    dots: false,
15521                    margin: 20,
15522                    navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
15523                    navElement: 'div'
15524                });
15525                jQuery('.mobile-cart .cart .data-content .hienthi.order-gift .product-list.owl-carousel').owlCarousel({
15526                    autoplay: false,
15527                    autoplayTimeout: 3000,
15528                    autoplayHoverPause: true,
15529                    autoWidth: true,
15530                    loop: false,
15531                    nav: true,
15532                    dots: false,
15533                    margin: 20,
15534                    navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
15535                    navElement: 'div'
15536                });
15537            }
15538        },
15539        Cart_LoadBodyReload: function (details) {
15540            if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(details)) {
15541                var query = jQuery('.page-cart .cart .data-content');
15542                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15543                    details.forEach(function (c, cidx) {
15544                        var item = window.pars3p.cart.CartDetails.find(function (d) { return d.ProductID == c.ProductID; });
15545                        if (lib3p_helper.utility.hasValue(item)) {
15546                            if (item.OrderQuantity != c.OrderQuantity) {
15547                                item.OrderQuantity = c.OrderQuantity;
15548                                jQuery('.page-cart .cart .data-content .product' + c.ProductID + ' .col-quantity input.input').val(item.OrderQuantity);
15549                            }
15550                        }
15551                    });
15552                }
15553            }
15554        },
15555        Cart_Reload: function () {
15556            var req = {
15557                Cart: {
15558                    Code: 0,
15559                    StatusID: 1,
15560                    IsVAT: false,
15561                    HasCoupon: false,
15562                    IsStock: true,
15563                    StepDate: null,
15564                    OrderDate: null,
15565                    MembershipID: '',
15566                    IsHachi24: false,
15567                    IsAppliedHachi24: false,
15568                    DeliveryID: null,
15569                    PaymentID: null,
15570                    Province: null,
15571                    District: null,
15572                    Ward: null,
15573                    Address: '',
15574                    Cellphone: '',
15575                    ReceivedBy: '',
15576                    Payment: 0,
15577                    TotalAmount: 0,
15578                },
15579                CartDetails: window.pars3p.cart.CartDetails,
15580                CartCoupon: [],
15581                CartCombo: [],
15582            };
15583            if (window.pars3p.cart.Code > 0) {
15584                req.Cart.Code = window.pars3p.cart.Code;
15585            }
15586            if (lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
15587                req.Cart.MembershipID = window.pars3p.cart.MembershipID;
15588            }
15589            req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
15590            req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
15591            if (window.pars3p.cart.DeliveryID > 0) {
15592                req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
15593            }
15594            if (window.pars3p.cart.PaymentID > 0) {
15595                req.Cart.PaymentID = window.pars3p.cart.PaymentID;
15596            }
15597            if (window.pars3p.cart.Province > 0) {
15598                req.Cart.Province = window.pars3p.cart.Province;
15599            }
15600            if (window.pars3p.cart.District > 0) {
15601                req.Cart.District = window.pars3p.cart.District;
15602            }
15603            if (window.pars3p.cart.Ward > 0) {
15604                req.Cart.Ward = window.pars3p.cart.Ward;
15605            }
15606            req.Cart.Address = window.pars3p.cart.Address;
15607            req.Cart.Cellphone = window.pars3p.cart.Cellphone;
15608            req.Cart.ReceivedBy = window.pars3p.cart.ReceivedBy;
15609            if (window.pars3p.cart.Payment > 0) {
15610                req.Cart.Payment = window.pars3p.cart.Payment;
15611            }
15612            if (window.pars3p.cart.TotalAmount > 0) {
15613                req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
15614            }
15615            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
15616                req.CartCoupon = window.pars3p.cart.CartCoupon;
15617            }
15618
15619            if (window.pars3p.auth.isLogin == true) {
15620
15621                lib3p.common_AuthPostURL(window.pars3p.api.auth.All_GetCart, req, function (res) {
15622                    if (res.StatusCode == 0) {
15623                        if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
15624                            window.pars3p.cart.lastUser = window.pars3p.auth.userName;
15625                            window.pars3p.cart.lastDate = new Date();
15626
15627                            window.pars3p.cart.Code = res.ObjectReturn.Cart.Code;
15628                            window.pars3p.cart.OrderNo = res.ObjectReturn.Cart.OrderNo;
15629                            window.pars3p.cart.OrderBy = res.ObjectReturn.Cart.OrderBy;
15630                            window.pars3p.cart.OrderPhone = res.ObjectReturn.Cart.OrderPhone;
15631                            window.pars3p.cart.OrderEmail = res.ObjectReturn.Cart.OrderEmail;
15632                            window.pars3p.cart.OrderDate = res.ObjectReturn.Cart.OrderDate;
15633                            window.pars3p.cart.StepDate = res.ObjectReturn.Cart.StepDate;
15634                            window.pars3p.cart.EstDelivery = res.ObjectReturn.Cart.EstDelivery;
15635                            window.pars3p.cart.TotalAmount = res.ObjectReturn.Cart.TotalAmount;
15636                            window.pars3p.cart.MembershipID = res.ObjectReturn.Cart.MembershipID;
15637                            window.pars3p.cart.PolicyMembership = res.ObjectReturn.Cart.PolicyMembership;
15638                            window.pars3p.cart.DiscountMembership = res.ObjectReturn.Cart.DiscountMembership;
15639                            window.pars3p.cart.CouponPaid = res.ObjectReturn.Cart.CouponPaid;
15640                            window.pars3p.cart.ShippingFee = res.ObjectReturn.Cart.ShippingFee;
15641                            window.pars3p.cart.ShippingDiscount = res.ObjectReturn.Cart.ShippingDiscount;
15642                            window.pars3p.cart.Payment = res.ObjectReturn.Cart.Payment;
15643                            window.pars3p.cart.Remark = res.ObjectReturn.Cart.Remark;
15644                            window.pars3p.cart.StaffID = res.ObjectReturn.Cart.StaffID;
15645                            window.pars3p.cart.StatusID = res.ObjectReturn.Cart.StatusID;
15646                            window.pars3p.cart.IsVAT = res.ObjectReturn.Cart.IsVAT;
15647                            window.pars3p.cart.VATCode = res.ObjectReturn.Cart.VATCode;
15648                            window.pars3p.cart.VATCompany = res.ObjectReturn.Cart.VATCompany;
15649                            window.pars3p.cart.VATAddress = res.ObjectReturn.Cart.VATAddress;
15650                            window.pars3p.cart.VATEmail = res.ObjectReturn.Cart.VATEmail;
15651                            window.pars3p.cart.HasCoupon = res.ObjectReturn.Cart.HasCoupon;
15652                            window.pars3p.cart.IsStock = res.ObjectReturn.Cart.IsStock;
15653                            window.pars3p.cart.IsAppliedHachi24 = res.ObjectReturn.Cart.IsAppliedHachi24;
15654                            window.pars3p.cart.IsHachi24 = res.ObjectReturn.Cart.IsHachi24;
15655                            window.pars3p.cart.DeliveryID = res.ObjectReturn.Cart.DeliveryID;
15656                            window.pars3p.cart.ReceivedBy = res.ObjectReturn.Cart.ReceivedBy;
15657                            window.pars3p.cart.Cellphone = res.ObjectReturn.Cart.Cellphone;
15658                            window.pars3p.cart.Province = res.ObjectReturn.Cart.Province;
15659                            window.pars3p.cart.District = res.ObjectReturn.Cart.District;
15660                            window.pars3p.cart.Ward = res.ObjectReturn.Cart.Ward;
15661                            window.pars3p.cart.Address = res.ObjectReturn.Cart.Address;
15662                            window.pars3p.cart.FullAddress = res.ObjectReturn.Cart.FullAddress;
15663                            window.pars3p.cart.BankID = res.ObjectReturn.Cart.BankID;
15664                            window.pars3p.cart.PaymentID = res.ObjectReturn.Cart.PaymentID;
15665                            window.pars3p.cart.PaymentMethod = res.ObjectReturn.Cart.PaymentMethod;
15666
15667                            window.pars3p.cart.TotalItemQuantity = res.ObjectReturn.TotalItemQuantity;
15668
15669                            window.pars3p.cart.CartCoupon = res.ObjectReturn.CartCoupon;
15670                            window.pars3p.cart.ListCoupon = res.ObjectReturn.ListCoupon;
15671                            window.pars3p.cart.CartNoti = res.ObjectReturn.CartNoti;
15672                            window.pars3p.cart.CartCombo = res.ObjectReturn.CartCombo;
15673                            window.pars3p.cart.TypeOfTransportation = res.ObjectReturn.TypeOfTransportation;
15674
15675                            window.pars3p.cart.OrderDate = lib3p_helper.utility.dateGet(window.pars3p.cart.OrderDate);
15676                            window.pars3p.cart.StepDate = lib3p_helper.utility.dateGet(window.pars3p.cart.StepDate);
15677                            window.pars3p.cart.EstDelivery = lib3p_helper.utility.dateGet(window.pars3p.cart.EstDelivery);
15678                            lib3p.pageCart.Cart_LoadHeader();
15679                            lib3p.pageCart.Cart_LoadNoti();
15680                            lib3p.pageCart.Cart_LoadBodyReload(res.ObjectReturn.CartDetails);
15681                            lib3p.pageCart.Cart_LoadTotal();
15682                            lib3p.common_cartSet(window.pars3p.cart);
15683                        }
15684                    }
15685                    else {
15686                        throw res.ErrorString;
15687                    }
15688                }, function (err) {
15689                    throw err;
15690                });
15691
15692            }
15693            else {
15694
15695                lib3p.common_PostURL(window.pars3p.api.auth.All_GetCart, req, function (res) {
15696                    if (res.StatusCode == 0) {
15697                        if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
15698                            window.pars3p.cart.lastUser = window.pars3p.auth.userName;
15699                            window.pars3p.cart.lastDate = new Date();
15700
15701                            window.pars3p.cart.Code = res.ObjectReturn.Cart.Code;
15702                            window.pars3p.cart.OrderNo = res.ObjectReturn.Cart.OrderNo;
15703                            window.pars3p.cart.OrderBy = res.ObjectReturn.Cart.OrderBy;
15704                            window.pars3p.cart.OrderPhone = res.ObjectReturn.Cart.OrderPhone;
15705                            window.pars3p.cart.OrderEmail = res.ObjectReturn.Cart.OrderEmail;
15706                            window.pars3p.cart.OrderDate = res.ObjectReturn.Cart.OrderDate;
15707                            window.pars3p.cart.StepDate = res.ObjectReturn.Cart.StepDate;
15708                            window.pars3p.cart.EstDelivery = res.ObjectReturn.Cart.EstDelivery;
15709                            window.pars3p.cart.TotalAmount = res.ObjectReturn.Cart.TotalAmount;
15710                            window.pars3p.cart.MembershipID = res.ObjectReturn.Cart.MembershipID;
15711                            window.pars3p.cart.PolicyMembership = res.ObjectReturn.Cart.PolicyMembership;
15712                            window.pars3p.cart.DiscountMembership = res.ObjectReturn.Cart.DiscountMembership;
15713                            window.pars3p.cart.CouponPaid = res.ObjectReturn.Cart.CouponPaid;
15714                            window.pars3p.cart.ShippingFee = res.ObjectReturn.Cart.ShippingFee;
15715                            window.pars3p.cart.ShippingDiscount = res.ObjectReturn.Cart.ShippingDiscount;
15716                            window.pars3p.cart.Payment = res.ObjectReturn.Cart.Payment;
15717                            window.pars3p.cart.Remark = res.ObjectReturn.Cart.Remark;
15718                            window.pars3p.cart.StaffID = res.ObjectReturn.Cart.StaffID;
15719                            window.pars3p.cart.StatusID = res.ObjectReturn.Cart.StatusID;
15720                            window.pars3p.cart.IsVAT = res.ObjectReturn.Cart.IsVAT;
15721                            window.pars3p.cart.VATCode = res.ObjectReturn.Cart.VATCode;
15722                            window.pars3p.cart.VATCompany = res.ObjectReturn.Cart.VATCompany;
15723                            window.pars3p.cart.VATAddress = res.ObjectReturn.Cart.VATAddress;
15724                            window.pars3p.cart.VATEmail = res.ObjectReturn.Cart.VATEmail;
15725                            window.pars3p.cart.HasCoupon = res.ObjectReturn.Cart.HasCoupon;
15726                            window.pars3p.cart.IsStock = res.ObjectReturn.Cart.IsStock;
15727                            window.pars3p.cart.IsAppliedHachi24 = res.ObjectReturn.Cart.IsAppliedHachi24;
15728                            window.pars3p.cart.IsHachi24 = res.ObjectReturn.Cart.IsHachi24;
15729                            window.pars3p.cart.DeliveryID = res.ObjectReturn.Cart.DeliveryID;
15730                            window.pars3p.cart.ReceivedBy = res.ObjectReturn.Cart.ReceivedBy;
15731                            window.pars3p.cart.Cellphone = res.ObjectReturn.Cart.Cellphone;
15732                            window.pars3p.cart.Province = res.ObjectReturn.Cart.Province;
15733                            window.pars3p.cart.District = res.ObjectReturn.Cart.District;
15734                            window.pars3p.cart.Ward = res.ObjectReturn.Cart.Ward;
15735                            window.pars3p.cart.Address = res.ObjectReturn.Cart.Address;
15736                            window.pars3p.cart.FullAddress = res.ObjectReturn.Cart.FullAddress;
15737                            window.pars3p.cart.BankID = res.ObjectReturn.Cart.BankID;
15738                            window.pars3p.cart.PaymentID = res.ObjectReturn.Cart.PaymentID;
15739                            window.pars3p.cart.PaymentMethod = res.ObjectReturn.Cart.PaymentMethod;
15740
15741                            window.pars3p.cart.TotalItemQuantity = res.ObjectReturn.TotalItemQuantity;
15742
15743                            window.pars3p.cart.CartCoupon = res.ObjectReturn.CartCoupon;
15744                            window.pars3p.cart.ListCoupon = res.ObjectReturn.ListCoupon;
15745                            window.pars3p.cart.CartNoti = res.ObjectReturn.CartNoti;
15746                            window.pars3p.cart.CartCombo = res.ObjectReturn.CartCombo;
15747                            window.pars3p.cart.TypeOfTransportation = res.ObjectReturn.TypeOfTransportation;
15748
15749                            window.pars3p.cart.OrderDate = lib3p_helper.utility.dateGet(window.pars3p.cart.OrderDate);
15750                            window.pars3p.cart.StepDate = lib3p_helper.utility.dateGet(window.pars3p.cart.StepDate);
15751                            window.pars3p.cart.EstDelivery = lib3p_helper.utility.dateGet(window.pars3p.cart.EstDelivery);
15752                            lib3p.pageCart.Cart_LoadHeader();
15753                            lib3p.pageCart.Cart_LoadNoti();
15754      
15754                      lib3p.pageCart.Cart_LoadBodyReload(res.ObjectReturn.CartDetails);
15755                            lib3p.pageCart.Cart_LoadTotal();
15756                            lib3p.common_cartSet(window.pars3p.cart);
15757                        }
15758                    }
15759                    else {
15760                        throw res.ErrorString;
15761                    }
15762                }, function (err) {
15763                    throw err;
15764                });
15765            }
15766        },
15767        Cart_LoadTotal: function () {
15768            var query = jQuery('.page-cart .cart-total');
15769            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15770                var TotalSub = 0;
15771                var TotalWithShip = 0;
15772                jQuery('.page-cart .TotalAmountShipping-sub').hide();
15773                jQuery('.mobile-cart .TotalAmountShipping-sub').hide();
15774                if (window.pars3p.cart.TotalAmount > 0 && window.pars3p.cart.ShippingFee > 0) {
15775                    var temp = window.pars3p.cart.TotalAmount + window.pars3p.cart.ShippingFee;
15776                    if (window.pars3p.cart.ShippingDiscount > 0) {
15777                        temp -= window.pars3p.cart.ShippingDiscount;
15778                    }
15779                    TotalWithShip = temp;
15780                    jQuery('.page-cart .TotalAmountShipping').html(lib3p_helper.utility.formatMoney(temp) + 'đ');
15781                    jQuery('.mobile-cart .TotalAmountShipping').html(lib3p_helper.utility.formatMoney(temp) + 'đ');
15782                    jQuery('.page-cart .TotalAmountShipping-sub').show();
15783                    jQuery('.mobile-cart .TotalAmountShipping-sub').show();
15784                }
15785                jQuery('.page-cart .PolicyMembership-sub').hide();
15786                jQuery('.page-cart .TotalAmountKHTT-sub').hide();
15787                jQuery('.mobile-cart .PolicyMembership-sub').hide();
15788                jQuery('.mobile-cart .TotalAmountKHTT-sub').hide();
15789                if (window.pars3p.cart.TotalAmount > 0 && window.pars3p.cart.PolicyMembership > 0) {
15790                    jQuery('.page-cart .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.PolicyMembership) + 'đ');
15791                    jQuery('.page-cart .PolicyMembership-sub').show();
15792                    jQuery('.page-cart .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(TotalWithShip - window.pars3p.cart.PolicyMembership - window.pars3p.cart.CouponOrder) + 'đ');
15793                    jQuery('.page-cart .TotalAmountKHTT-sub').show();
15794                    jQuery('.mobile-cart .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.PolicyMembership) + 'đ');
15795                    jQuery('.mobile-cart .PolicyMembership-sub').show();
15796                    jQuery('.mobile-cart .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(TotalWithShip - window.pars3p.cart.PolicyMembership - window.pars3p.cart.CouponOrder) + 'đ');
15797                    jQuery('.mobile-cart .TotalAmountKHTT-sub').show();
15798                    TotalSub += window.pars3p.cart.PolicyMembership;
15799                }
15800                jQuery('.page-cart .CouponOrder-sub').hide();
15801                jQuery('.mobile-cart .CouponOrder-sub').hide();
15802                if (window.pars3p.cart.CouponOrder > 0) {
15803                    jQuery('.page-cart .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponOrder) + 'đ');
15804                    jQuery('.page-cart .cart-bottom-fix .CouponOrder').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponOrder) + 'đ');
15805                    jQuery('.page-cart .CouponOrder-sub').show();
15806                    jQuery('.mobile-cart .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponOrder) + 'đ');
15807                    jQuery('.mobile-cart .CouponOrder-sub').show();
15808                    TotalSub += window.pars3p.cart.CouponOrder;
15809                }
15810                //jQuery('.page-cart .TotalAmount').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.TotalAmount) + 'đ');
15811                //jQuery('.js-total-cart .card-body .TotalAmount').show();
15812                //jQuery('.js-total-cart .card-body .TotalAmount .item-value').html(lib3p.common_Money(window.pars3p.cart.TotalAmount - window.pars3p.cart.PolicyMembership) + 'đ');
15813                jQuery('.page-cart .TotalAmount').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.TotalAmount) + 'đ');
15814                jQuery('.page-cart .CouponPaid-sub').hide();
15815                jQuery('.mobile-cart .TotalAmount').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.TotalAmount) + 'đ');
15816                jQuery('.mobile-cart .CouponPaid-sub').hide();
15817                if (window.pars3p.cart.CouponPaid > 0) {
15818                    jQuery('.page-cart .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponPaid) + 'đ');
15819                    jQuery('.page-cart .CouponPaid-sub').show();
15820                    jQuery('.mobile-cart .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponPaid) + 'đ');
15821                    jQuery('.mobile-cart .CouponPaid-sub').show();
15822                    TotalSub += window.pars3p.cart.CouponPaid;
15823                }
15824                //jQuery('.js-total-cart .card-body .ShippingFee').show();
15825                //jQuery('.js-total-cart .card-body .ShippingFee .item-value').html('chưa xác định');
15826
15827                //jQuery('.page-cart .ShippingFee-sub').hide();
15828                jQuery('.page-cart .ShippingFee').html('chưa xác định');
15829                jQuery('.mobile-cart .ShippingFee').html('chưa xác định');
15830                if (window.pars3p.cart.ShippingFee > 0) {
15831                    jQuery('.page-cart .ShippingFee').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.ShippingFee) + 'đ');
15832                    jQuery('.mobile-cart .ShippingFee').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.ShippingFee) + 'đ');
15833                    //jQuery('.page-cart .ShippingFee-sub').show();
15834                }
15835                jQuery('.page-cart .ShippingDiscount-sub').hide();
15836                jQuery('.mobile-cart .ShippingDiscount-sub').hide();
15837                if (window.pars3p.cart.ShippingDiscount > 0) {
15838                    jQuery('.page-cart .ShippingDiscount').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.ShippingDiscount) + 'đ');
15839                    jQuery('.page-cart .ShippingDiscount-sub').show();
15840                    jQuery('.mobile-cart .ShippingDiscount').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.ShippingDiscount) + 'đ');
15841                    jQuery('.mobile-cart .ShippingDiscount-sub').show();
15842                    TotalSub += window.pars3p.cart.ShippingDiscount;
15843                }
15844                if (TotalSub > 0) {
15845                    jQuery('.page-cart .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
15846                    jQuery('.mobile-cart .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
15847                }
15848                else {
15849                    jQuery('.page-cart .TotalSub').html('');
15850                    jQuery('.mobile-cart .TotalSub').html('');
15851                }
15852
15853                jQuery('.page-cart .Payment').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.Payment) + 'đ');
15854                jQuery('.page-cart .TotalItemQuantityChoose').html('(' + window.pars3p.cart.TotalItemQuantityChoose + ' sản phẩm)');
15855                jQuery('.mobile-cart .Payment').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.Payment) + 'đ');
15856                jQuery('.mobile-cart .TotalItemQuantityChoose').html('(' + window.pars3p.cart.TotalItemQuantityChoose + ' sản phẩm)');
15857                if (window.pars3p.auth.isLogin != true) {
15858                    jQuery('.page-cart .cart-right .dia-chi').hide();
15859                }
15860                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.FullAddress)) {
15861                    if (window.pars3p.auth.isLogin == true || lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP)) {
15862                        jQuery('.page-cart .dia-chi .ReceivedBy').html(window.pars3p.cart.ReceivedBy);
15863                        jQuery('.page-cart .dia-chi .Cellphone').html(window.pars3p.cart.Cellphone);
15864                        jQuery('.page-cart .dia-chi .FullAddress').html(window.pars3p.cart.FullAddress);
15865                        jQuery('.mobile-cart .dia-chi .ReceivedBy').html(window.pars3p.cart.ReceivedBy);
15866                        jQuery('.mobile-cart .dia-chi .Cellphone').html(window.pars3p.cart.Cellphone);
15867                        jQuery('.mobile-cart .dia-chi .FullAddress').html(window.pars3p.cart.FullAddress);
15868                        if (window.pars3p.auth.isLogin != true) {
15869                            jQuery('.page-cart .cart-right .dia-chi').show();
15870                        }
15871                    }
15872                    else {
15873                        jQuery('.page-cart .dia-chi .sub-1').hide();
15874                        jQuery('.page-cart .dia-chi .sub-2').hide();
15875                        jQuery('.mobile-cart .dia-chi .sub-1').hide();
15876                        jQuery('.mobile-cart .dia-chi .sub-2').hide();
15877                    }
15878                }
15879                else {
15880                    jQuery('.page-cart .dia-chi .sub-1').hide();
15881                    jQuery('.page-cart .dia-chi .sub-2').hide();
15882                    jQuery('.mobile-cart .dia-chi .sub-1').hide();
15883                    jQuery('.mobile-cart .dia-chi .sub-2').hide();
15884                }
15885
15886                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails) && window.pars3p.cart.CartDetails.length > 2) {
15887                    if (!jQuery('.page-cart .cart-right').hasClass('full')) {
15888                        jQuery('.page-cart .cart-right').addClass('full');
15889                    }
15890                }
15891                else {
15892                    jQuery('.page-cart .cart-right.full').removeClass('full');
15893                }
15894            }
15895        },
15896        Cart_LoadLike: function () {
15897            query = jQuery('.page-cart .cart .data-content .data-row');
15898            if (lib3p_helper.utility.hasValue(query) && query.length > 0 && lib3p_helper.utility.hasValueString(window.pars3p.productLike)) {
15899                query.each(function () {
15900                    var id = jQuery(this).data('id');
15901                    if (window.pars3p.productLike.indexOf('[' + id + ']') >= 0) {
15902                        var queryLike = jQuery(this).find('div.img-like');
15903                        if (lib3p_helper.utility.hasValue(queryLike) && queryLike.length > 0) {
15904                            if (!jQuery(queryLike[0]).hasClass('like')) {
15905                                jQuery(queryLike[0]).addClass('like');
15906                            }
15907                        }
15908                    }
15909                });
15910                jQuery('.mobile-cart .cart .data-content .data-row').each(function () {
15911                    var id = jQuery(this).data('id');
15912                    if (window.pars3p.productLike.indexOf('[' + id + ']') >= 0) {
15913                        var queryLike = jQuery(this).find('div.img-like');
15914                        if (lib3p_helper.utility.hasValue(queryLike) && queryLike.length > 0) {
15915                            if (!jQuery(queryLike[0]).hasClass('like')) {
15916                                jQuery(queryLike[0]).addClass('like');
15917                            }
15918                        }
15919                    }
15920                });
15921            }
15922        },
15923        onCart_Like: function (el, id) {
15924            var query = jQuery(el).closest('div.data-row').find('div.img-like');
15925            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15926                lib3p.header.ProductLike_Change(id, function () {
15927                    if (jQuery(query[0]).hasClass('like')) {
15928                        jQuery(query[0]).removeClass('like');
15929                    }
15930                    else {
15931                        jQuery(query[0]).addClass('like');
15932                    }
15933                });
15934            }
15935        },
15936        onQuantiy_KeyDown: function (event, el, id) {
15937            setTimeout(function () {
15938                if (lib3p_helper.utility.hasValueString(el.value)) {
15939                    var quan = -1;
15940                    try {
15941                        quan = parseInt(el.value);
15942                    }
15943                    catch (err) { }
15944                    var item = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == id; });
15945                    if (lib3p_helper.utility.hasValue(item) && item.OrderQuantity > 0) {
15946                        if (item.LSProduct_QuantityWithOrder >= quan && quan > 0) {
15947                            item.OrderQuantity = quan;
15948                            lib3p.pageCart.Cart_ProductQuantity(el, item);
15949                        }
15950                        else {
15951                            el.value = item.OrderQuantity;
15952                        }
15953                    }
15954                }
15955            }, 500);
15956        },
15957        onProduct_Sub: function (el, id) {
15958            var item = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == id; });
15959            if (lib3p_helper.utility.hasValue(item)) {
15960                if (item.OrderQuantity > 1) {
15961                    item.OrderQuantity--;
15962                    lib3p.pageCart.Cart_ProductQuantity(el, item);
15963                }
15964                else {
15965                    lib3p.pageCart.onProduct_Delete(el, id);
15966                }
15967            }
15968        },
15969        onProduct_Add: function (el, id) {
15970            var item = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == id; });
15971            if (lib3p_helper.utility.hasValue(item)) {
15972                if (item.LSProduct_QuantityWithOrder < item.OrderQuantity + 1) {
15973                    var query = jQuery(el).closest('.action');
15974                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
15975                        query.find('.thongbao').addClass('show');
15976                        setTimeout(function () {
15977                            query.find('.thongbao').removeClass('show');
15978                        }, 1000);
15979                    }
15980                }
15981                else {
15982                    item.OrderQuantity++;
15983                    lib3p.pageCart.Cart_ProductQuantity(el, item);
15984                }
15985            }
15986        },
15987        Cart_ProductQuantity: function (el, detail) {
15988            jQuery(el).parent().find('input.input').val(detail.OrderQuantity);
15989            if (window.pars3p.cart.Code > 0) {
15990                detail.CartID = window.pars3p.cart.Code;
15991            }
15992            lib3p.pageCart.Cart_ProductQuantity_async(el, detail).then(function (data) {
15993
15994            }, function (err) {
15995                alert(err);
15996            });
15997        },
15998        Cart_ProductQuantity_async: function (el, detail) {
15999            return new Promise(function (resolve, reject) {
16000                setTimeout(function () {
16001                    lib3p.pageCart.Cart_SuggestCombo();
16002                    if (window.pars3p.auth.isLogin == true) {
16003                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductQuantity, { detail: detail }, function (res) {
16004                            if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
16005                                if (res.ObjectReturn.IsApproved != true || res.ObjectReturn.OrderQuantity == 0) {
16006                                    jQuery(el).parent().find('input.input').val('0');
16007                                    detail.OrderQuantity = 0;
16008                                    var query = jQuery('.page-cart .cart .data-content .data-row.product' + detail.ProductID);
16009                                    if (query != null && query.length > 0) {
16010                                        if (!query.hasClass('isempty')) {
16011                                            query.addClass('isempty');
16012                                        }
16013                                        query.find('.del .button').hide();
16014          
16014                              query.find('.action-sub').html('<span class="hethang s13 cl-red500 sibold600">Hết hàng</span>');
16015                                    }
16016                                }
16017                                if (res.ObjectReturn.OrderQuantity > 0 && detail.OrderQuantity != res.ObjectReturn.OrderQuantity) {
16018                                    jQuery(el).parent().find('input.input').val(res.ObjectReturn.OrderQuantity);
16019                                    detail.OrderQuantity = res.ObjectReturn.OrderQuantity;
16020                                    window.pars3p.cart.CartNoti = [{ Notification: res.ObjectReturn.ErrorNote }];
16021                                    lib3p.pageCart.Cart_LoadNoti();
16022                                    //window.pars3p.cart.CartNoti.push({ Notification: 'Giỏ hàng của bạn có sản phẩm quá số lượng tồn : ' + detail.ProductName + '.' });
16023                                }
16024                                else {
16025                                    detail.LSProduct_Quantity = res.ObjectReturn.LSProduct_Quantity;
16026                                    detail.LSProduct_QuantityWithOrder = res.ObjectReturn.LSProduct_QuantityWithOrder;
16027                                    lib3p.pageCart.Cache_Check();
16028                                    lib3p.common_cartSet(window.pars3p.cart);
16029                                    lib3p.pageCart.Cart_ProductTotal(false);
16030                                }
16031                            }
16032                            resolve('');
16033                        }, function (err) {
16034                            lib3p.log(err);
16035                            reject(err);
16036                        });
16037                    }
16038                    else {
16039                        lib3p.common_PostURL(window.pars3p.api.public.Cart_ProductQuantity, { detail: detail }, function (res) {
16040                            if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
16041                                if (res.ObjectReturn.IsApproved != true || res.ObjectReturn.OrderQuantity == 0) {
16042                                    jQuery(el).parent().find('input.input').val('0');
16043                                    detail.OrderQuantity = 0;
16044                                    var query = jQuery('.page-cart .cart .data-content .data-row.product' + detail.ProductID);
16045                                    if (query != null && query.length > 0) {
16046                                        if (!query.hasClass('isempty')) {
16047                                            query.addClass('isempty');
16048                                        }
16049                                        query.find('.del .button').hide();
16050                                        query.find('.action-sub').html('<span class="hethang s13 cl-red500 sibold600">Hết hàng</span>');
16051                                    }
16052                                }
16053                                if (res.ObjectReturn.OrderQuantity > 0 && detail.OrderQuantity != res.ObjectReturn.OrderQuantity) {
16054                                    jQuery(el).parent().find('input.input').val(res.ObjectReturn.OrderQuantity);
16055                                    detail.OrderQuantity = res.ObjectReturn.OrderQuantity;
16056                                    window.pars3p.cart.CartNoti = [{ Notification: res.ObjectReturn.ErrorNote }];
16057                                    lib3p.pageCart.Cart_LoadNoti();
16058                                }
16059                                else {
16060                                    detail.LSProduct_Quantity = res.ObjectReturn.LSProduct_Quantity;
16061                                    detail.LSProduct_QuantityWithOrder = res.ObjectReturn.LSProduct_QuantityWithOrder;
16062                                    lib3p.pageCart.Cache_Check();
16063                                    lib3p.common_cartSet(window.pars3p.cart);
16064                                    lib3p.pageCart.Cart_ProductTotal(true);
16065                                }
16066                            }
16067                            resolve('');
16068                        }, function (err) {
16069                            lib3p.log(err);
16070                            reject(err);
16071                        });
16072                    }
16073                }, 200);
16074            });
16075        },
16076        Cache_Check: function () {
16077            if (lib3p_helper.utility.hasValue(window.pars3p.cart)) {
16078                window.pars3p.cart.TotalItemQuantity = 0;
16079                window.pars3p.cart.TotalItemQuantityChoose = 0;
16080                window.pars3p.cart.CartDetails.forEach(function (c, cidx) {
16081                    if (c.OrderQuantity > 0) {
16082                        window.pars3p.cart.TotalItemQuantity += c.OrderQuantity;
16083                        if (c.IsChoose == true) {
16084                            window.pars3p.cart.TotalItemQuantityChoose += c.OrderQuantity;
16085                        }
16086                    }
16087                });
16088            }
16089        },
16090        onProduct_Delete: function (el, id) {
16091            window.pars3p.productDeleteID = id;
16092            var query = jQuery('.popup-cart-delete .hachi-modal');
16093            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
16094                if (jQuery(query[0]).hasClass("d-none")) {
16095                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
16096                }
16097            }
16098
16099            var item = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == id; });
16100            if (lib3p_helper.utility.hasValue(item)) {
16101                jQuery('.popup-cart-delete .hachi-modal .ProductName').html(item.ProductName);
16102            }
16103        },
16104        onProduct_DeleteClose: function () {
16105            var query = jQuery('.popup-cart-delete .hachi-modal');
16106            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
16107                if (jQuery(query[0]).hasClass("d-block")) {
16108                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
16109                }
16110            }
16111        },
16112        onProduct_DeleteOk: function () {
16113            var item = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == window.pars3p.productDeleteID; });
16114            var idx = window.pars3p.cart.CartDetails.findIndex(function (c) { return c.ProductID == window.pars3p.productDeleteID; });
16115            if (lib3p_helper.utility.hasValue(item) && idx >= 0) {
16116                if (window.pars3p.auth.isLogin == true) {
16117                    item.CartID = window.pars3p.cart.Code;
16118                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductDelete, { detail: item }, function (res) {
16119                        if (res == true) {
16120                            lib3p.header.GMC_RemoveCart(item.Barcode, item.ProductName, item.BasePrice, item.OrderQuantity);
16121                            lib3p.pageCart.onProduct_DeleteClose();
16122                            jQuery('.page-cart .cart .data-content .data-row.product' + window.pars3p.productDeleteID).remove();
16123                            jQuery('.mobile-cart .cart .data-content .data-row.product' + window.pars3p.productDeleteID).remove();
16124                            window.pars3p.cart.CartDetails.splice(idx, 1);
16125                            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
16126                                lib3p.pageCart.Cart_ProductTotal(false);
16127                            }
16128                            else {
16129                                lib3p.pageCart.Cache_Check();
16130                                lib3p.common_cartSet(window.pars3p.cart);
16131                                window.location.reload();
16132                            }
16133                        }
16134                    }, function (err) {
16135                        lib3p.log(err);
16136                    });
16137                }
16138                else {
16139                    lib3p.header.GMC_RemoveCart(item.Barcode, item.ProductName, item.BasePrice, item.OrderQuantity);
16140                    lib3p.pageCart.onProduct_DeleteClose();
16141                    jQuery('.page-cart .cart .data-content .data-row.product' + window.pars3p.productDeleteID).remove();
16142                    jQuery('.mobile-cart .cart .data-content .data-row.product' + window.pars3p.productDeleteID).remove();
16143                    window.pars3p.cart.CartDetails.splice(idx, 1);
16144                    if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
16145                        lib3p.pageCart.Cart_ProductTotal(true);
16146                    }
16147                    else {
16148                        lib3p.pageCart.Cache_Check();
16149                        lib3p.common_cartSet(window.pars3p.cart);
16150                        window.location.reload();
16151                    }
16152                }
16153            }
16154        },
16155        onProduct_Chon: function (el, id) {
16156            lib3p.pageCart.onProduct_Chon_async(el.checked, id).then(function (data) {
16157
16158            }, function (err) {
16159                alert(err);
16160            });
16161        },
16162        onProduct_Chon_async: function (check, id) {
16163            lib3p.common_LoadingShow();
16164
16165            return new Promise(function (resolve, reject) {
16166                setTimeout(function () {
16167                    var item = window.pars3p.cart.CartDetails.find(function (d) { return d.ProductID == id; });
16168                    if (lib3p_helper.utility.hasValue(item)) {
16169                        item.IsChoose = check == true;
16170
16171                        var hasCheck = true;
16172                        window.pars3p.cart.CartDetails.forEach(function (c) {
16173                            if (c.IsChoose != true && c.IsStock == true) {
16174                                hasCheck = false;
16175                            }
16176                        });
16177                        if (hasCheck == true) {
16178                            var query = jQuery('.page-cart .cart .data-header input');
16179                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
16180                                query[0].checked = true;
16181                                jQuery('.mobile-cart .cart .data-header input')[0].checked = true;
16182                            }
16183                        }
16184                        else {
16185                            var query = jQuery('.page-cart .cart .data-header input');
16186                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
16187                                query[0].checked = false;
16188                                jQuery('.mobile-cart .cart .data-header input')[0].checked = false;
16189                            }
16190                        }
16191                        lib3p.pageCart.Cart_ProductTotal(true);
16192                        resolve('');
16193                    }
16194                    else {
16195                        reject('not found data');
16196                    }
16197                }, 200);
16198            });
16199        },
16200        onProduct_ChonAll: function (event) {
16201            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
16202                window.pars3p.cart.CartDetails.forEach(function (c) {
16203                    if (c.IsStock == true) {
16204                        c.IsChoose = event.currentTarget.checked == true;
16205                        var query = jQuery('.page-cart .cart .data-content .data-row.product' + c.ProductID + ' .choose input');
16206                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
16207                            query[0].checked = c.IsChoose;
16208                            jQuery('.mobile-cart .cart .data-content .data-row.product' + c.ProductID + ' .choose input')[0].checked = c.IsChoose;
16209                        }
16210                    }
16211                });
16212                lib3p.pageCart.onProduct_ChonAll_async(event.currentTarget.checked).then(function (data) {
16213
16214                }, function (err) {
16215                    alert(err);
16216                });
16217            }
16218        },
16219        onProduct_ChonAll_async: function (check) {
16220            lib3p.common_LoadingShow();
16221            return new Promise(function (resolve, reject) {
16222                setTimeout(function () {
16223                    if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
16224                        lib3p.pageCart.Cart_ProductTotal(true);
16225                        resolve('');
16226                    }
16227                    else {
16228                        reject('not found data');
16229                    }
16230                }, 200);
16231            });
16232        },
16233        Cart_ProductTotal: function (sendDetail) {
16234            window.pars3p.cartWaitTimeRun = window.pars3p.cartWaitTime;
16235            jQuery('.coupon form .sub-1-error').html('');
16236            var cart = {
16237                Cart: {
16238                    Code: -1,
16239                    OrderDate: null,
16240                    MembershipID: -1,
16241                    DiscountMembership: 0
16242                },
16243                CartDetails: [],
16244                CartCoupon: []
16245            };
16246            cart.Cart = lib3p_helper.cart.getCartInfo();
16247            if (window.pars3p.auth.isLogin == true) {
16248                if (sendDetail == true) {
16249                    window.pars3p.cart.CartDetails.forEach(function (c) {
16250                        cart.CartDetails.push({ ProductID: c.ProductID, ProductName: c.ProductName, OrderQuantity: c.OrderQuantity, ShippedQuantity: c.ShippedQuantity, UnitPrice: c.UnitPrice, IsChoose: c.IsChoose, ModelID: c.ModelID, ImageSetting: c.ImageSetting });
16251                    });
16252                    cart.CartCoupon = window.pars3p.cart.CartCoupon;
16253                }
16254            }
16255            else {
16256                window.pars3p.cart.CartDetails.forEach(function (c) {
16257                    cart.CartDetails.push({ ProductID: c.ProductID, ProductName: c.ProductName, OrderQuantity: c.OrderQuantity, ShippedQuantity: c.ShippedQuantity, UnitPrice: c.UnitPrice, IsChoose: c.IsChoose, ModelID: c.ModelID, ImageSetting: c.ImageSetting });
16258                });
16259                cart.CartCoupon = window.pars3p.cart.CartCoupon;
16260            }
16261
16262            if (window.pars3p.auth.isLogin == true) {
16263                lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductTotal, { cart: cart }, function (res) {
16264                    lib3p.common_LoadingHide();
16265                    if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
16266                        window.pars3p.cart.lastUser = window.pars3p.auth.userName;
16267                        window.pars3p.cart.lastDate = new Date();
16268                        window.pars3p.cart.CartNoti = [];
16269                        lib3p_helper.cart.copyCart(res.ObjectReturn);
16270                        if (window.pars3p.cart.StepDate && window.pars3p.cart.StepDate.getTime) {
16271                            window.pars3p.cart.timeOrderCalculateNext = window.pars3p.cart.StepDate.getTime() + window.pars3p.timeOrderCalculate;
16272                        }
16273                        else {
16274                            window.pars3p.cart.timeOrderCalculateNext = (new Date()).getTime() + window.pars3p.timeOrderCalculate;
16275                        }
16276                        if (window.pars3p.cart.IsAppliedHachi24 != true) {
16277                            window.pars3p.cart.IsHachi24 = false;
16278                        }
16279                        lib3p.pageCart.Cache_Check();
16280                        lib3p.common_cartSet(window.pars3p.cart);
16281                        lib3p.pageCart.Cart_LoadHeader();
16282                        lib3p.pageCart.Cart_LoadNoti();
16283                        lib3p.pageCart.Cart_LoadGift();
16284                        lib3p.pageCart.Cart_LoadTotal();
16285                        lib3p.pageCart.Cart_ListCoupon();
16286
16287                        window.pars3p.cart.CartDetails.forEach(function (c) {
16288                            if (c.IsChoose != true) {
16289                                var query = jQuery('.page-cart .cart .data-content .data-row.product' + c.ProductID + ' input[type="checkbox"]');
16290                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
16291                                    query[0].checked = false;
16292                                    jQuery('.page-cart .cart .data-header .choose input[type="checkbox"]')[0].checked = false;
16293                                }
16294                                query = jQuery('.mobile-cart .cart .data-content .data-row.product' + c.ProductID + ' input[type="checkbox"]');
16295                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
16296                                    query[0].checked = false;
16297                                    jQuery('.mobile-cart .cart .data-header .choose input[type="checkbox"]')[0].checked = false;
16298                                }
16299                            }
16300                        });
16301                        if (window.pars3p.cart.Province > 0 && window.pars3p.cart.District > 0 && window.pars3p.cart.IsAppliedHachi24 != true && lib3p_helper.utility.hasValue(window.pars3p.cart.CartDetails.find(function (o) { return o.IsHachi24 == true && o.IsChoose == true; }))) {
16302                            jQuery('.cart .data-row .product .hachi3h').show();
16303                        }
16304                        else {
16305                            jQuery('.cart .data-row .product .hachi3h').hide();
16306                        }
16307                    }
16308                }, function (err) {
16309                    lib3p.log(err);
16310                });
16311            }
16312            else {
16313                lib3p.common_PostURL(window.pars3p.api.public.Cart_ProductTotal, { cart: cart }, function (res) {
16314                    lib3p.common_LoadingHide();
16315                    if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
16316                        window.pars3p.cart.lastUser = window.pars3p.auth.userName;
16317                        window.pars3p.cart.lastDate = new Date();
16318                        window.pars3p.cart.CartNoti = [];
16319                        lib3p_helper.cart.copyCart(res.ObjectReturn);
16320
16321                        if (window.pars3p.cart.IsAppliedHachi24 != true) {
16322                            window.pars3p.cart.IsHachi24 = false;
16323                        }
16324                        lib3p.pageCart.Cache_Check();
16325                        lib3p.common_cartSet(window.pars3p.cart);
16326                        lib3p.pageCart.Cart_LoadHeader();
16327                        lib3p.pageCart.Cart_LoadNoti();
16328                        lib3p.pageCart.Cart_LoadGift();
16329                        lib3p.pageCart.Cart_LoadTotal();
16330                        lib3p.pageCart.Cart_ListCoupon();
16331                        if (window.pars3p.cart.Province > 0 && window.pars3p.cart.District > 0 && window.pars3p.cart.IsAppliedHachi24 != true && lib3p_helper.utility.hasValue(window.pars3p.cart.CartDetails.find(function (o) { return o.IsHachi24 == true && o.IsChoose == true; }))) {
16332                            jQuery('.cart .data-row .product .hachi3h').show();
16333                        }
16334                        else {
16335                            jQuery('.cart .data-row .product .hachi3h').hide();
16336                        }
16337                    }
16338                }, function (err) {
16339                    lib3p.log(err);
16340                });
16341            }
16342        },
16343        onCartShip_Click: function () {
16344            if (window.pars3p.auth.isLogin == true) {
16345                lib3p.common_urllastSet(window.location.href);
16346                window.location.href = window.pars3p.urlCartDelivery;
16347            }
16348            else {
16349                window.pars3p.cart.OrderPhoneOTP = '';
16350                lib3p.pageCartTest.LoadDataEdit();
16351            }
16352        },
16353        onCartCoupon_Toggle: function () {
16354            var query = jQuery('.popup-cart-coupon-choose .hachi-modal');
16355            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
16356                if (jQuery(query[0]).hasClass("d-none")) {
16357                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
16358                }
16359            }
16360            /* if(lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)){
16361                if(jQuery('.page-cart .coupon').hasClass('open')) {
16362                    jQuery('.page-cart .coupon').removeClass('open');
16363                    jQuery('.mobile-cart .coupon').removeClass('open');
16364                }
16365                else {
16366                    jQuery('.page-cart .coupon').addClass('open');
16367                    jQuery('.mobile-cart .coupon').addClass('open');
16368                }
16369            } */
16370        },
16371        onCartCoupon_Close: function () {
16372            var query = jQuery('.popup-cart-coupon-choose .hachi-modal');
16373            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
16374                if (jQuery(query[0]).hasClass("d-block")) {
16375                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
16376                }
16377            }
16378        },
16379        onCartCoupon_Check: function (el, id) {
16380            var find = window.pars3p.cart.ListCoupon.find(function (c) { return c.Code == id; });
16381
16382            if (lib3p_helper.utility.hasValue(find)) {
16383                find.IsUse = el.checked == true;
16384                if (find.IsUse == true) {
16385                    if (find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
16385ouponCart) {
16386                        window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCart && c.CouponID != id; }).forEach(function (c) {
16387                            c.IsUse = false;
16388                        });
16389                        jQuery(el).closest('div.data').find('div.check input[type="checkbox"]').each(function () {
16390                            var detail = this;
16391                            if (detail != el) {
16392                                detail.checked = false;
16393                            }
16394                        });
16395                    }
16396                    else if (find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCartShipping) {
16397                        window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCartShipping && c.CouponID != id; }).forEach(function (c) {
16398                            c.IsUse = false;
16399                        });
16400                        jQuery(el).closest('div.data').find('div.check input[type="checkbox"]').each(function () {
16401                            var detail = this;
16402                            if (detail != el) {
16403                                detail.checked = false;
16404                            }
16405                        });
16406                    }
16407                    else if (find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.Coupon) {
16408                        if (window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.Coupon && c.CouponID != id && c.IsUse == true; }).length >= 5) {
16409                            var first = window.pars3p.cart.ListCoupon.find(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.Coupon && c.CouponID != id && c.IsUse == true; });
16410                            if (lib3p_helper.utility.hasValue(first)) {
16411                                first.IsUse = false;
16412                                jQuery(el).closest('div.data').find('input[type="checkbox"].chk_' + first.Code).each(function () {
16413                                    var detail = this;
16414                                    if (detail != el) {
16415                                        detail.checked = false;
16416                                    }
16417                                });
16418                            }
16419                        }
16420                    }
16421                }
16422
16423                //jQuery('.popup-cart-coupon-choose .list-public.nochange').removeClass('nochange');
16424                //window.pars3p.couponChange = true;
16425            }
16426        },
16427        onCartCoupon_Delete: function (id) {
16428            window.pars3p.cart.CouponDeleteID = id;
16429            var item = window.pars3p.cart.CartCoupon.find(function (c) { return c.CouponID == id; });
16430            if (lib3p_helper.utility.hasValue(item)) {
16431                jQuery('.popup-cart-coupon-delete .CouponCode').html(item.CouponCode);
16432                var query = jQuery('.popup-cart-coupon-delete .hachi-modal');
16433                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
16434                    if (jQuery(query[0]).hasClass("d-none")) {
16435                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
16436                    }
16437                }
16438            }
16439        },
16440        onCartCouponDelete_Close: function () {
16441            var query = jQuery('.popup-cart-coupon-delete .hachi-modal');
16442            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
16443                if (jQuery(query[0]).hasClass("d-block")) {
16444                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
16445                }
16446            }
16447        },
16448        onCartCouponDelete_Ok: function () {
16449            lib3p.pageCart.onCartCouponDelete_Close();
16450            var item = window.pars3p.cart.CartCoupon.find(function (c) { return c.CouponID == window.pars3p.cart.CouponDeleteID; });
16451            var idx = window.pars3p.cart.CartCoupon.findIndex(function (c) { return c.CouponID == window.pars3p.cart.CouponDeleteID; });
16452
16453            if (idx >= 0) {
16454                window.pars3p.cart.CartCoupon.splice(idx, 1);
16455
16456                if (window.pars3p.auth.isLogin == true) {
16457                    var req = {
16458                        CartID: -1,
16459                        CouponID: window.pars3p.cart.CouponDeleteID,
16460                    };
16461                    if (window.pars3p.cart.Code > 0) {
16462                        req.CartID = window.pars3p.cart.Code;
16463                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_CouponDelete, req, function (res) {
16464                            if (res == true) {
16465                                lib3p.common_cartSet(window.pars3p.cart);
16466                                lib3p.pageCart.Cart_ListCoupon();
16467                                lib3p.pageCart.Cart_ProductTotal();
16468                            }
16469                        }, function (err) {
16470                            lib3p.log(err);
16471                        });
16472                    }
16473                }
16474                else {
16475                    lib3p.common_cartSet(window.pars3p.cart);
16476                    lib3p.pageCart.Cart_ProductTotal();
16477                }
16478            }
16479        },
16480        onCartCoupon_ApDung: function () {
16481            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)) {
16482                var cart = {
16483                    Cart: lib3p_helper.cart.getCartInfo(),
16484                    CartDetails: [],
16485                    CartCoupon: [],
16486                    ListCoupon: []
16487                };
16488                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
16489                    cart.CartDetails = window.pars3p.cart.CartDetails;
16490                }
16491                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)) {
16492                    cart.ListCoupon = window.pars3p.cart.ListCoupon;
16493                }
16494                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
16495                    cart.CartCoupon = window.pars3p.cart.CartCoupon;
16496                }
16497                if (window.pars3p.auth.isLogin == true) {
16498                    window.pars3p.cart.CartCoupon = window.pars3p.cart.ListCoupon.filter(function (o) { return o.IsUse == true; });
16499                    lib3p.pageCart.onCartCoupon_Close();
16500                    lib3p.pageCart.Cart_ListCoupon();
16501                    lib3p.pageCart.Cart_ProductTotal(true);
16502                }
16503                else {
16504                    window.pars3p.cart.CartCoupon = window.pars3p.cart.ListCoupon.filter(function (o) { return o.IsUse == true; });
16505                    lib3p.pageCart.onCartCoupon_Close();
16506                    lib3p.pageCart.Cart_ListCoupon();
16507                    lib3p.pageCart.Cart_ProductTotal();
16508                }
16509            }
16510        },
16511        onCartCoupon_KeyDown: function (event, el) {
16512            var query = jQuery(el).closest('form');
16513            setTimeout(function () {
16514                var ctr = query[0].CouponCode;
16515                if (lib3p_helper.utility.hasValueString(ctr.value)) {
16516                    //jQuery(query[0]).removeClass('haserror');
16517                    //jQuery('.page-cart .coupon .sub-1.haserror').removeClass('haserror');
16518                }
16519                else {
16520                    if (!jQuery(query[0]).hasClass('haserror')) {
16521                        //jQuery(query[0]).addClass('haserror');
16522                    }
16523                    /* if(!jQuery('.page-cart .coupon .sub-1').hasClass('haserror')) {
16524                        jQuery('.page-cart .coupon .sub-1').addClass('haserror');
16525                    } */
16526                }
16527            }, 100);
16528        },
16529        onCartCoupon_Submit: function (event) {
16530            if (!jQuery(event.target).hasClass('haserror')) {
16531                var flag = true;
16532                var data = {
16533                    CouponCode: ''
16534                };
16535
16536                var ctr = event.target.CouponCode;
16537                data.CouponCode = ctr.value;
16538                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
16539                    flag = false;
16540                    jQuery(event.target).find('.sub-1-error').html('Vui lòng nhập mã giảm giá');
16541                }
16542                else {
16543                    ctr.value = '';
16544                }
16545                if (flag == true) {
16546                    var cart = {
16547                        Cart: {
16548                            Code: -1,
16549                            OrderDate: null,
16550                            MembershipID: -1,
16551                            DiscountMembership: 0
16552                        },
16553                        CartDetails: [],
16554                        CartCoupon: []
16555                    };
16556                    if (window.pars3p.cart.Code > 0) {
16557                        cart.Cart = lib3p_helper.cart.getCartInfo();
16558                    }
16559                    if (window.pars3p.cart.MembershipID > 0) {
16560                        cart.Cart.MembershipID = window.pars3p.cart.MembershipID;
16561                        cart.Cart.DiscountMembership = window.pars3p.cart.DiscountMembership;
16562                    }
16563                    window.pars3p.cart.CartDetails.forEach(function (c) {
16564                        cart.CartDetails.push({ ProductID: c.ProductID, OrderQuantity: c.OrderQuantity, ShippedQuantity: c.ShippedQuantity, UnitPrice: c.UnitPrice, IsChoose: c.IsChoose, ModelID: c.ModelID });
16565                    });
16566                    cart.CartCoupon = window.pars3p.cart.CartCoupon;
16567
16568                    if (window.pars3p.auth.isLogin == true) {
16569                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_CouponAdd, { cart: cart, CouponCode: data.CouponCode }, function (res) {
16570                            if (lib3p_helper.utility.hasValue(res)) {
16571                                if (res.StatusCode == 0) {
16572                                    if (res.ObjectReturn == true) {
16573                                        lib3p.common_cartSet(window.pars3p.cart);
16574                                        lib3p.pageCart.Cart_ListCoupon();
16575                                        lib3p.pageCart.Cart_ProductTotal();
16576                                    }
16577                                }
16578                                else {
16579                                    jQuery(event.target).find('.sub-1-error').html(res.ErrorString);
16580                                }
16581                            }
16582                        }, function (err) {
16583                            lib3p.log(err);
16584                        });
16585                    }
16586                    else {
16587                        lib3p.common_PostURL(window.pars3p.api.public.Cart_CouponAdd, { cart: cart, CouponCode: data.CouponCode }, function (res) {
16588                            if (lib3p_helper.utility.hasValue(res)) {
16589                                if (res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn) && res.ObjectReturn.CouponID > 0) {
16590                                    window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
16591                                    lib3p.common_cartSet(window.pars3p.cart);
16592                                    lib3p.pageCart.Cart_ProductTotal();
16593                                }
16594                                else {
16595                                    jQuery(event.target).find('.sub-1-error').html(res.ErrorString);
16596                                }
16597                            }
16598                        }, function (err) {
16599                            lib3p.log(err);
16600                        });
16601                    }
16602                }
16603            }
16604
16605            event.preventDefault();
16606        },
16607
16608
16609        onProduct_Combo: function (el, id) {
16610
16611        },
16612        onDelivery_ThayDoi: function () {
16613            if (window.pars3p.auth.isLogin == true) {
16614                lib3p.common_urllastSet(window.location.href);
16615                window.location.href = window.pars3p.urlCartDelivery;
16616            }
16617            else {
16618                lib3p.pageCart.onPopupDatHang_Show();
16619            }
16620        },
16621
16622        onPopupCoupon_Submit: function (event) {
16623            var flag = true;
16624            var data = {
16625                CouponCode: ''
16626            };
16627
16628            var ctr = event.target.CouponCode;
16629            data.CouponCode = ctr.value;
16630            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
16631                flag = false;
16632                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html('Vui lòng nhập mã giảm giá');
16633            }
16634
16635            if (flag == true) {
16636                var req = {
16637                    SelectedCoupon: {
16638                        CartID: 0,
16639                        CouponCode: data.CouponCode,
16640                        ProductID: null,
16641                    },
16642                    Cart: {
16643                        Code: 0,
16644                        StatusID: 1,
16645                        IsVAT: false,
16646                        HasCoupon: false,
16647                        IsStock: true,
16648                        StepDate: null,
16649                        OrderDate: null,
16650                        MembershipID: '',
16651                        IsHachi24: false,
16652                        IsAppliedHachi24: false,
16653                        DeliveryID: null,
16654                        PaymentID: null,
16655                        Province: null,
16656                        District: null,
16657                        Ward: null,
16658                        Payment: 0,
16659                        TotalAmount: 0,
16660                    },
16661                    CartCoupon: [],
16662                    SelectedCartDetail: null,
16663                };
16664                if (window.pars3p.cart.Code > 0) {
16665                    req.Cart.Code = window.pars3p.cart.Code;
16666                    req.SelectedCoupon.CartID = window.pars3p.cart.Code;
16667                }
16668                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
16669                    req.Cart.MembershipID = window.pars3p.cart.MembershipID;
16670                }
16671                req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
16672                req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
16673                if (window.pars3p.cart.DeliveryID > 0) {
16674                    req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
16675                }
16676                if (window.pars3p.cart.PaymentID > 0) {
16677                    req.Cart.PaymentID = window.pars3p.cart.PaymentID;
16678                }
16679                if (window.pars3p.cart.Province > 0) {
16680                    req.Cart.Province = window.pars3p.cart.Province;
16681                }
16682                if (window.pars3p.cart.District > 0) {
16683                    req.Cart.District = window.pars3p.cart.District;
16684                }
16685                if (window.pars3p.cart.Ward > 0) {
16686                    req.Cart.Ward = window.pars3p.cart.Ward;
16687                }
16688                if (window.pars3p.cart.Payment > 0) {
16689                    req.Cart.Payment = window.pars3p.cart.Payment;
16690                }
16691                if (window.pars3p.cart.TotalAmount > 0) {
16692                    req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
16693                }
16694                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
16695                    req.CartCoupon = window.pars3p.cart.CartCoupon;
16696                }
16697
16698                if (window.pars3p.auth.isLogin == true) {
16699                    lib3p.common_AuthPostURL(window.pars3p.api.auth.AddCoupon, req, function (res) {
16700                        if (lib3p_helper.utility.hasValue(res)) {
16701                            if (res.StatusCode == 0) {
16702                                window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
16703                                lib3p.common_cartSet(window.pars3p.cart);
16704                                lib3p.pageCart.Cart_Reload();
16705                            }
16706                            else {
16707                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
16708                            }
16709                        }
16710                    }, function (err) {
16711                        lib3p.log(err);
16712                    });
16713                }
16714                else {
16715                    lib3p.common_PostURL(window.pars3p.api.public.AddCoupon, req, function (res) {
16716                        if (lib3p_helper.utility.hasValue(res)) {
16717                            if (res.StatusCode == 0) {
16718                                window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
16719                                lib3p.common_cartSet(window.pars3p.cart);
16720                                lib3p.pageCart.Cart_Reload();
16721                            }
16722                            else {
16723                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
16724                            }
16725                        }
16726                    }, function (err) {
16727                        lib3p.log(err);
16728                    });
16729                }
16730            }
16731
16732            event.preventDefault();
16733        },
16734        onPopupCoupon_ApDung: function (id) {
16735            jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html('');
16736            var item = window.pars3p.cart.ListCoupon.find(function (c) { return c.CouponID == id; });
16737            if (lib3p_helper.utility.hasValue(item)) {
16738                var req = {
16739                    SelectedCoupon: {
16740                        IsPercent: item.IsPercent,
16741                        IsPrivate: item.IsPrivate,
16742                        CardID: null,
16743                        Code: 0,
16744                        CartID: 0,
16745                        CouponID: item.CouponID,
16746                        CouponCode: item.CouponCode,
16747                        CartDetailID: item.CartDetailID,
16748                        ProductID: item.ProductID,
16749                        TypeData: item.TypeData,
16750                        IsUse: item.IsUse,
16751                        IsChoose: true,
16752                    },
16753                    Cart: {
16754                        Code: 0,
16755                        StatusID: 1,
16756                        IsVAT: false,
16757                        HasCoupon: false,
16758                        IsStock: true,
16759                        StepDate: null,
16760                        OrderDate: null,
16761                        MembershipID: '',
16762                        IsHachi24: false,
16763                        IsAppliedHachi24: false,
16764                        DeliveryID: null,
16765                        PaymentID: null,
16766                        Province: null,
16767                        District: null,
16768                        Ward: null,
16769                        Payment: 0,
16770                        TotalAmount: 0,
16771                    },
16772                    CartCoupon: [],
16773                    SelectedCartDetail: null,
16774                };
16775                if (window.pars3p.cart.Code > 0) {
16776                    req.Cart.Code = window.pars3p.cart.Code;
16777                    req.SelectedCoupon.CartID = window.pars3p.cart.Code;
16778                }
16779                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
16780                    req.Cart.MembershipID = window.pars3p.cart.MembershipID;
16781                }
16782                req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
16783                req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
16784                if (window.pars3p.cart.DeliveryID > 0) {
16785                    req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
16786                }
16787                if (window.pars3p.cart.PaymentID > 0) {
16788                    req.Cart.PaymentID = window.pars3p.cart.PaymentID;
16789                }
16790                if (window.pars3p.cart.Province > 0) {
16791                    req.Cart.Province = window.pars3p.cart.Province;
16792                }
16793                if (window.pars3p.cart.District > 0) {
16794                    req.Cart.District = window.pars3p.cart.District;
16795                }
16796                if (window.pars3p.cart.Ward > 0) {
16797                    req.Cart.Ward = window.pars3p.cart.Ward;
16798                }
16799                if (window.pars3p.cart.Payment > 0) {
16800                    req.Cart.Payment = window.pars3p.cart.Payment;
16801                }
16802                if (window.pars3p.cart.TotalAmount > 0) {
16803                    req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
16804                }
16805                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
16806                    req.CartCoupon = window.pars3p.cart.CartCoupon;
16807                }
16808
16809                if (window.pars3p.auth.isLogin == true) {
16810
16811                    lib3p.common_AuthPostURL(window.pars3p.api.auth.AddCoupon, req, function (res) {
16812                        if (lib3p_helper.utility.hasValue(res)) {
16813                            if (res.StatusCode == 0) {
16814                                window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
16815                                lib3p.common_cartSet(window.pars3p.cart);
16816                                lib3p.pageCart.Cart_Reload();
16817                            }
16818                            else {
16819                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
16820                            }
16821                        }
16822                    }, function (err) {
16823                        lib3p.log(err);
16824                    });
16825
16826                }
16827                else {
16828
16829                    lib3p.common_PostURL(window.pars3p.api.public.AddCoupon, req, function (res) {
16830                        if (lib3p_helper.utility.hasValue(res)) {
16831                            if (res.StatusCode == 0) {
16832                                window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
16833                                lib3p.common_cartSet(window.pars3p.cart);
16834                                lib3p.pageCart.Cart_Reload();
16835                            }
16836                            else {
16837                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
16838                            }
16839                        }
16840                    }, function (err) {
16841                        lib3p.log(err);
16842                    });
16843
16844                }
16845            }
16846        },
16847        onPopupCoupon_BoChon: function (id) {
16848            jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html('');
16849            window.pars3p.cart.CouponDeleteID = -1;
16850            var item = window.pars3p.cart.CartCoupon.find(function (c) { return c.CouponID == id; });
16851            var idx = window.pars3p.cart.CartCoupon.findIndex(function (c) { return c.CouponID == id; });
16852            if (lib3p_helper.utility.hasValue(item) && idx >= 0) {
16853                var req = {
16854                    SelectedCoupon: {
16855                        IsPercent: item.IsPercent,
16856                        IsPrivate: item.IsPrivate,
16857                        CardID: null,
16858                        Code: 0,
16859                        CartID: 0,
16860                        CouponID: item.CouponID,
16861                        CouponCode: item.CouponCode,
16862                        CartDetailID: item.CartDetailID,
16863                        ProductID: item.ProductID,
16864                        TypeData: item.TypeData,
16865                        IsUse: item.IsUse,
16866                        IsChoose: true,
16867                    },
16868                    Cart: {
16869                        Code: 0,
16870                        StatusID: 1,
16871                        IsVAT: false,
16872                        HasCoupon: false,
16873                        IsStock: true,
16874                        StepDate: null,
16875                        OrderDate: null,
16876                        MembershipID: '',
16877                        IsHachi24: false,
16878                        IsAppliedHachi24: false,
16879                        DeliveryID: null,
16880                        PaymentID: null,
16881                        Province: null,
16882                        District: null,
16883                        Ward: null,
16884                        Payment: 0,
16885                        TotalAmount: 0,
16886                    },
16887                    CartCoupon: [],
16888                    SelectedCartDetail: null,
16889                };
16890                if (window.pars3p.cart.Code > 0) {
16891                    req.Cart.Code = window.pars3p.cart.Code;
16892                    req.SelectedCoupon.CartID = window.pars3p.cart.Code;
16893                }
16894                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
16895                    req.Cart.MembershipID = window.pars3p.cart.MembershipID;
16896                }
16897                req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
16898                req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
16899                if (window.pars3p.cart.DeliveryID > 0) {
16900                    req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
16901                }
16902                if (window.pars3p.cart.PaymentID > 0) {
16903                    req.Cart.PaymentID = window.pars3p.cart.PaymentID;
16904                }
16905                if (window.pars3p.cart.Province > 0) {
16906                    req.Cart.Province = window.pars3p.cart.Province;
16907                }
16908                if (window.pars3p.cart.District > 0) {
16909                    req.Cart.District = window.pars3p.cart.District;
16910                }
16911                if (window.pars3p.cart.Ward > 0) {
16912                    req.Cart.Ward = window.pars3p.cart.Ward;
16913                }
16914                if (window.pars3p.cart.Payment > 0) {
16915                    req.Cart.Payment = window.pars3p.cart.Payment;
16916                }
16917                if (window.pars3p.cart.TotalAmount > 0) {
16918                    req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
16919                }
16920                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
16921                    req.CartCoupon = window.pars3p.cart.CartCoupon;
16922                }
16923
16924                if (window.pars3p.auth.isLogin == true) {
16925                    lib3p.common_AuthPostURL(window.pars3p.api.auth.DeleteCoupon, req, function (res) {
16926                        if (lib3p_helper.utility.hasValue(res)) {
16927                            if (res.StatusCode == 0) {
16928                                window.pars3p.cart.CartCoupon.splice(idx, 1);
16929                                lib3p.common_cartSet(window.pars3p.cart);
16930                                lib3p.pageCart.Cart_Reload();
16931                            }
16932                            else {
16933                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
16934                            }
16935                        }
16936                    }, function (err) {
16937                        lib3p.log(err);
16938                    });
16939                }
16940                else {
16941                    lib3p.common_PostURL(window.pars3p.api.public.DeleteCoupon, req, function (res) {
16942                        if (lib3p_helper.utility.hasValue(res)) {
16943                            if (res.StatusCode == 0) {
16944                                window.pars3p.cart.CartCoupon.splice(idx, 1);
16945                                lib3p.common_cartSet(window.pars3p.cart);
16946                                lib3p.pageCart.Cart_Reload();
16947                            }
16948                            else {
16949                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
16950                            }
16951                        }
16952                    }, function (err) {
16953                        lib3p.log(err);
16954                    });
16955                }
16956            }
16957        },
16958        GetDelivery: function (frm) {
16959            var ctr = frm.Address;
16960            window.pars3p.cart.FullAddress = '';
16961            if (lib3p_helper.utility.hasValueString(ctr.value)) {
16962                window.pars3p.cart.Address = ctr.value;
16963                window.pars3p.cart.FullAddress += ',' + ctr.value;
16964            }
16965            ctr = frm.Ward;
16966            if (lib3p_helper.utility.hasListValue(ctr.selectedOptions)) {
16967                window.pars3p.cart.Ward = parseInt(ctr.value);
16968                window.pars3p.cart.FullAddress += ', ' + ctr.selectedOptions[0].text;
16969            }
16970            ctr = frm.District;
16971            if (lib3p_helper.utility.hasListValue(ctr.selectedOptions)) {
16972                window.pars3p.cart.District = parseInt(ctr.value);
16973                window.pars3p.cart.FullAddress += ', ' + ctr.selectedOptions[0].text;
16974            }
16975            ctr = frm.Province;
16976            if (lib3p_helper.utility.hasListValue(ctr.selectedOptions)) {
16977                window.pars3p.cart.Province = parseInt(ctr.value);
16978                window.pars3p.cart.FullAddress += ', ' + ctr.selectedOptions[0].text;
16979            }
16980            if (window.pars3p.cart.FullAddress.indexOf(',') == 0) {
16981                window.pars3p.cart.FullAddress = window.pars3p.cart.FullAddress.substr(1);
16982            }
16983            window.pars3p.cart.OrderPhone = frm.OrderPhone.value;
16984            window.pars3p.cart.OrderBy = frm.OrderBy.value;
16985            ctr = frm.IsDeliveryOther;
16986            if (jQuery(ctr).prop('checked') == true) {
16987                window.pars3p.cart.ReceivedBy = frm.ReceivedBy.value;
16988                window.pars3p.cart.Cellphone = frm.Cellphone.value;
16989            }
16990            else {
16991                window.pars3p.cart.ReceivedBy = frm.OrderBy.value;
16992                window.pars3p.cart.Cellphone = frm.OrderPhone.value;
16993            }
16994        },
16995        onCartDatHang_Click: function () {
16996            var query = null;
16997            var flagDelivery = false;
16998            var flag = true;
16999            if (window.pars3p.MobileClick == true) {
17000                query = jQuery('.mobile-cart .dia-chi-edit form');
17001            }
17002            else {
17003                query = jQuery('.page-cart .dia-chi-edit form');
17004            }
17005            if (window.pars3p.auth.isLogin == true) {
17006                if (query.attr('has') == '1') {
17007                    flagDelivery = true;
17008                }
17009            }
17010            else {
17011                if (!lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP)) {
17012                    flagDelivery = true;
17013                }
17014            }
17015            if (flagDelivery == true) {
17016                if (lib3p.pageCartTest.DeliveryEdit_Check(query, false, true) == true) {
17017                    lib3p.pageCartTest.GetDelivery(query[0]);
17018                    lib3p.common_cartSet(window.pars3p.cart).then(function (data) {
17019
17020                    }, function (err) {
17021                        lib3p.log(err);
17022                    });
17023                }
17024                else {
17025                    flag = false;
17026                }
17027            }
17028            if (flag == true) {
17029                if (window.pars3p.cart.TotalItemQuantityChoose > 0) {
17030                    if (window.pars3p.cart.Province > 0 && window.pars3p.cart.District > 0 && lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhone)) {
17031                        if (window.pars3p.cart.IsAppliedHachi24 != true && lib3p_helper.utility.hasValue(window.pars3p.cart.CartDetails.find(function (o) { return o.IsHachi24 == true && o.IsChoose == true; }))) {
17032                            //lib3p.header.Notify_Show('Địa chỉ không đáp ứng gi
17032ao hàng 3h');
17033                            jQuery('.cart .data-row .product .hachi3h').show();
17034                            if (window.pars3p.MobileClick == true) {
17035                                jQuery(jQuery('.mobile-cart .cart .data-row .product .hachi3h')[0]).closest('.info').find('input[type="number"]').focus();
17036                            }
17037                            else {
17038                                jQuery(jQuery('.page-cart .cart .data-row .product .hachi3h')[0]).closest('.info').find('input[type="number"]').focus();
17039                            }
17040                        }
17041                        else {
17042                            if (window.pars3p.auth.isLogin == true) {
17043                                if (flagDelivery == true) {
17044                                    var data = {};
17045                                    data.ReceivedBy = window.pars3p.cart.ReceivedBy;
17046                                    data.Cellphone = window.pars3p.cart.Cellphone;
17047                                    data.Province = window.pars3p.cart.Province;
17048                                    data.District = window.pars3p.cart.District;
17049                                    data.Ward = window.pars3p.cart.Ward;
17050                                    data.Address = window.pars3p.cart.Address;
17051                                    data.OrderBy = window.pars3p.cart.OrderBy;
17052                                    data.OrderPhone = window.pars3p.cart.OrderPhone;
17053                                    data.IsDefault = true;
17054                                    var cart = lib3p_helper.cart.getCartInfo();
17055                                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_AddShipping, { cart: cart, dto: data }, function (res) {
17056                                        if (lib3p_helper.utility.hasValue(res) && res.Code > 0) {
17057                                            window.pars3p.cart.DeliveryID = res.DeliveryID;
17058                                            window.pars3p.cart.ShipmentID = res.ShipmentID;
17059                                            window.pars3p.cart.IsAppliedHachi24 = res.IsAppliedHachi24;
17060                                            window.pars3p.cart.MaxEstimate24h = res.MaxEstimate24h;
17061                                            window.pars3p.cart.MaxEstimateNormal = res.MaxEstimateNormal;
17062                                            window.pars3p.cart.ShippingFee = res.ShippingFee;
17063                                            window.pars3p.cart.ShippingDiscount = res.ShippingDiscount;
17064                                            window.pars3p.cart.Payment = res.Payment;
17065                                            lib3p.common_cartSet(window.pars3p.cart).then(function () {
17066                                                window.location.href = window.pars3p.urlCartPayment;
17067                                            }, function (err) {
17068                                                lib3p.log(err);
17069                                            });
17070                                        }
17071                                    }, function (err) {
17072                                        throw err;
17073                                    });
17074                                }
17075                                else {
17076                                    window.location.href = window.pars3p.urlCartPayment;
17077                                }
17078                            }
17079                            else {
17080                                window.location.href = window.pars3p.urlCartPayment;
17081                            }
17082                        }
17083                    }
17084                    else {
17085                        if (!(window.pars3p.cart.Province > 0 && window.pars3p.cart.District > 0) && window.pars3p.auth.isLogin == true) {
17086                            window.location.href = window.pars3p.urlCartDelivery;
17087                        }
17088                    }
17089                }
17090                else {
17091                    var query = jQuery('.popup-cart-empty .hachi-modal');
17092                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
17093                        if (jQuery(query[0]).hasClass("d-none")) {
17094                            jQuery(query[0]).removeClass("d-none").addClass("d-block");
17095                        }
17096                    }
17097                }
17098            }
17099
17100        },
17101        onCartDatHang_Delivery: function () {
17102
17103        },
17104        onCartDatHangMobile_Click: function () {
17105            window.pars3p.MobileClick = true;
17106            lib3p.pageCartTest.onCartDatHang_Click();
17107        },
17108        onPopupCartDeliveryOTP_Close: function () {
17109            var query = jQuery('.popup-cart-delivery-otp .hachi-modal');
17110            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
17111                if (jQuery(query[0]).hasClass("d-block")) {
17112                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
17113                }
17114            }
17115            window.location.href = window.pars3p.urlCartDelivery;
17116        },
17117        onPopupCartEmpty_Close: function () {
17118            var query = jQuery('.popup-cart-empty .hachi-modal');
17119            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
17120                if (jQuery(query[0]).hasClass("d-block")) {
17121                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
17122                }
17123            }
17124        },
17125        onPopupCartEmpty_Ok: function () {
17126            if (window.pars3p.auth.isLogin == true) {
17127                window.pars3p.cart.Code = -1;
17128                window.pars3p.cart.DeliveryID = null;
17129                window.pars3p.cart.ShipmentID = null;
17130                window.pars3p.cart.Province = null;
17131                window.pars3p.cart.District = null;
17132                window.pars3p.cart.Ward = null;
17133                window.pars3p.cart.Address = '';
17134                window.pars3p.cart.CartCoupon = [];
17135                window.pars3p.cart.CartDetails = [];
17136                lib3p.common_cartSet(window.pars3p.cart);
17137
17138                lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_CheckEmpty, {}, function (res) {
17139                    window.location.href = window.pars3p.urlCart;
17140                }, function (err) {
17141                    console.log(err);
17142                });
17143            }
17144            else {
17145                window.location.href = window.pars3p.urlCart;
17146            }
17147        },
17148        onPopupCartDatHang_Show: function () {
17149            if (window.pars3p.MobileClick == true) {
17150                var query = jQuery('.popup-cart-dat-hang-mobile .hachi-modal');
17151                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
17152                    if (jQuery(query[0]).hasClass("d-none")) {
17153                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
17154                    }
17155                }
17156            }
17157            else {
17158                var query = jQuery('.popup-cart-dat-hang .hachi-modal');
17159                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
17160                    if (jQuery(query[0]).hasClass("d-none")) {
17161                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
17162                    }
17163                }
17164            }
17165        },
17166        onPopupCartDatHang_Close: function () {
17167            var query = jQuery('.popup-cart-dat-hang .hachi-modal');
17168            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
17169                if (jQuery(query[0]).hasClass("d-block")) {
17170                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
17171                }
17172            }
17173        },
17174        onPopupCartDatHangMobile_Close: function () {
17175            var query = jQuery('.popup-cart-dat-hang-mobile .hachi-modal');
17176            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
17177                if (jQuery(query[0]).hasClass("d-block")) {
17178                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
17179                }
17180            }
17181        },
17182        onPopupCartDatHang_Login: function () {
17183            window.location.href = window.pars3p.urlLogin;
17184        },
17185        onPopupCartDatHang_NoAccount: function () {
17186            window.location.href = window.pars3p.urlCartDelivery;
17187        },
17188
17189        onPopupCouponInfo_Show: function () {
17190            jQuery('.popup-cart-coupon-info').show();
17191            lib3p.pageCart.onPopupCouponList_Close();
17192        },
17193        onPopupCouponInfo_Close: function () {
17194            jQuery('.popup-cart-coupon-info').hide();
17195        },
17196        onPopupCouponList_Show: function () {
17197            var query = jQuery('.popup-ma-giam-gia .hachi-popup');
17198            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
17199                if (jQuery(query[0]).hasClass("d-none")) {
17200                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
17201                }
17202            }
17203            lib3p.pageCart.onPopupCouponInfo_Close();
17204        },
17205        onPopupCouponList_Close: function () {
17206            var query = jQuery('.popup-ma-giam-gia .hachi-popup');
17207            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
17208                if (jQuery(query[0]).hasClass("d-block")) {
17209                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
17210                }
17211            }
17212        },
17213    },
17214
17215    pageCart: {
17216        phoneCheck: ['1234567890', '0889000251', '0981877973', '0962507727', '0369775388', '0907132025', '0932735869', '0983397922', '0981977973', '0902937277', '0382057349', '0909546759', '0915574517', '0903183158', '0962507727', '0918926337', '0777336178'],
17217        data: {
17218            ENumTypeOfCoupon: {
17219                CouponProduct: 1, //Coupon sản phẩm giảm giá
17220                CouponProductShipping: 2, //Coupon sản phẩm ship
17221                CouponCart: 3, //Coupon Giỏ hàng Giảm giá
17222                CouponCartShipping: 4, //Coupon Giỏ hàng Shipping
17223                Coupon: 5, //Coupon Mua sắm
17224            },
17225            EnumDetermineGift: {
17226                TheoSoLuong: 0,
17227                TheoGiaTri: 1
17228            }
17229        },
17230        init: function () {
17231            var query = jQuery(".page-cart .cart .data-content");
17232            var queryTest = jQuery(".page-cart.test .cart .data-content");
17233            if ((lib3p_helper.utility.hasValue(query) && query.length > 0) && !(lib3p_helper.utility.hasValue(queryTest) && queryTest.length > 0)) {
17234                lib3p.common_LoadingShow();
17235                lib3p.pageCart.init_async().then(function (data) { }, function (err) { console.log(err); });
17236            }
17237        },
17238        init_async: function () {
17239            return new Promise(function (resolve, reject) {
17240                setTimeout(function () {
17241                    var bWidth = lib3p.common_GetWidthBrowser();
17242                    if (bWidth >= 800) {
17243
17244                    }
17245                    else {
17246                        jQuery('.mobile-header .mobile-header-top').hide();
17247                    }
17248                    lib3p.header.loadLocation();
17249
17250                    lib3p.common_GetURL(window.pars3p.api.public.All_GetMAConfig + '?data=28', function (res) {
17251                        if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValueString(res.ConfigDescription)) {
17252                            jQuery('.cart-top .top-noidung .config').html(res.ConfigDescription);
17253                        }
17254                    }, function (err) {
17255                        lib3p.log(err);
17256                    });
17257
17258                    if (window.pars3p.auth.isLogin == true) {
17259                        jQuery('.page-cart .cart-bottom-fix .right .txt').addClass('haslogin');
17260                        jQuery(".page-cart .section-1 .cart-top").hide();
17261                        jQuery(".mobile-cart .cart-top").hide();
17262
17263                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductTotal, { cart: { Cart: { Code: -1 } } }, function (res) {
17264                            if (res.StatusCode == 0) {
17265                                lib3p.common_LoadingHide();
17266                                if (lib3p_helper.utility.hasValue(res.ObjectReturn) && lib3p_helper.utility.hasListValue(res.ObjectReturn.CartDetails)) {
17267                                    window.pars3p.cart.lastUser = window.pars3p.auth.userName;
17268                                    window.pars3p.cart.lastDate = new Date();
17269                                    window.pars3p.cart.CartDetails = [];
17270                                    window.pars3p.cart.CartCoupon = [];
17271                                    window.pars3p.cart.ListCoupon = [];
17272                                    window.pars3p.cart.CartNoti = [];
17273                                    window.pars3p.cart.CartCombo = [];
17274                                    window.pars3p.cart.TypeOfTransportation = [];
17275                                    lib3p_helper.cart.copyCart(res.ObjectReturn);
17276                                    if (window.pars3p.cart.StepDate && window.pars3p.cart.StepDate.getTime) {
17277                                        window.pars3p.cart.timeOrderCalculateNext = window.pars3p.cart.StepDate.getTime() + window.pars3p.timeOrderCalculate;
17278                                    }
17279                                    else {
17280                                        window.pars3p.cart.timeOrderCalculateNext = (new Date()).getTime() + window.pars3p.timeOrderCalculate;
17281                                    }
17282                                    lib3p.pageCart.Cache_Check();
17283                                    lib3p.common_cartSet(window.pars3p.cart);
17284                                    lib3p.pageCart.Cart_LoadHeader();
17285                                    lib3p.pageCart.Cart_LoadNoti();
17286                                    lib3p.pageCart.Cart_LoadBody();
17287                                    lib3p.pageCart.Cart_LoadGift();
17288                                    lib3p.pageCart.Cart_LoadTotal();
17289                                    lib3p.pageCart.Cart_SuggestCombo();
17290                                    lib3p.pageCart.Cart_ListCoupon();
17291                                    lib3p.header.PopupDelivery_Init();
17292                                    if (res.ObjectReturn.TotalDelivery == 0) {
17293                                        //lib3p.pageCartTest.LoadDataEdit();
17294                                    }
17295                                    lib3p.pageCart.Cart_ListHopGiaySuggest(res.ObjectReturn);
17296                                    if (window.pars3p.cart.Province > 0 && window.pars3p.cart.District > 0 && window.pars3p.cart.IsAppliedHachi24 != true && lib3p_helper.utility.hasValue(window.pars3p.cart.CartDetails.find(function (o) { return o.IsHachi24 == true && o.IsChoose == true; }))) {
17297                                        jQuery('.cart .data-row .product .hachi3h').show();
17298                                    }
17299                                    else {
17300                                        jQuery('.cart .data-row .product .hachi3h').hide();
17301                                    }
17302
17303                                    lib3p.header.GMC_ViewCart();
17304                                    lib3p.pageCart.init_timmer();
17305                                }
17306                                else {
17307                                    jQuery(".page-cart .container .row.section-1").hide();
17308                                    jQuery(".page-cart.b-gregray30").removeClass('b-gregray30');
17309                                    jQuery(".page-cart .container .row.empty").addClass('show');
17310
17311                                    window.pars3p.cart.lastUser = window.pars3p.auth.userName;
17312                                    window.pars3p.cart.lastDate = new Date();
17313                                    window.pars3p.cart.CartDetails = [];
17314                                    window.pars3p.cart.CartCoupon = [];
17315                                    window.pars3p.cart.ListCoupon = [];
17316                                    window.pars3p.cart.CartNoti = [];
17317                                    window.pars3p.cart.CartCombo = [];
17318                                    window.pars3p.cart.TypeOfTransportation = [];
17319                                    if (window.pars3p.cart.StepDate && window.pars3p.cart.StepDate.getTime) {
17320                                        window.pars3p.cart.timeOrderCalculateNext = window.pars3p.cart.StepDate.getTime() + window.pars3p.timeOrderCalculate;
17321                                    }
17322                                    else {
17323                                        window.pars3p.cart.timeOrderCalculateNext = (new Date()).getTime() + window.pars3p.timeOrderCalculate;
17324                                    }
17325                                    lib3p.pageCart.Cache_Check();
17326                                    lib3p.common_cartSet(window.pars3p.cart);
17327                                    lib3p.pageCart.Cart_LoadHeader();
17328
17329                                    jQuery(".mobile-cart .data").hide();
17330                                    jQuery(".mobile-cart .empty").addClass('show');
17331                                    if (lib3p_helper.utility.hasListValue(window.pars3p.others.ListBanner)) {
17332                                        var lstBanners = window.pars3p.others.ListBanner.filter(function (c) { return c.TypeData == 16; });
17333                                        if (lib3p_helper.utility.hasListValue(lstBanners)) {
17334                                            var html7 = '';
17335                                            var html7_m = '';
17336                                            var index7 = 0;
17337                                            lstBanners.forEach(function (c, cidx) {
17338                                                if (lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
17339                                                    if (c.Link.indexOf('?') > 0) {
17340                                                        c.Link = c.Link + '&' + window.pars3p.seo.Query;
17341                                                    }
17342                                                    else {
17343                                                        c.Link = c.Link + '?' + window.pars3p.seo.Query;
17344                                                    }
17345                                                }
17346
17347                                                if (c.TypeData == 16) {
17348                                                    if (index7 <= 3) {
17349                                                        html7 += '<div class="col-lg-3"><a href="' + c.Link + '"><img src="' + c.Image + '" alt="' + c.Name + '" /></a></div>';
17350                                                        html7_m += '<div class="item"><a href="' + c.Link + '"><img src="' + c.Image + '" alt="' + c.Name + '" /></a></div>';
17351                                                        index7++;
17352                                                    }
17353                                                }
17354                                            });
17355                                            jQuery(".page-cart .empty.banner").html(html7);
17356                                            jQuery(".mobile-cart .empty .banner").html('<div class="owl-carousel">' + html7_m + '</div>');
17357                                            if (lib3p_helper.utility.hasValueString(html7_m)) {
17358                                                jQuery('.mobile-cart .empty .banner .owl-carousel').owlCarousel({
17359                                                    autoplay: false,
17360                                                    autoplayTimeout: 3000,
17361                                                    autoplayHoverPause: true,
17362                                                    autoWidth: true,
17363                                                    margin: 5,
17364                                                    loop: false,
17365                                                    nav: false,
17366                                                    dots: false,
17367                                                });
17368                                            }
17369                                        }
17370                                    }
17371                                }
17372                            }
17373                            else {
17374                                throw res.ErrorString;
17375                            }
17376                            resolve('');
17377                        }, function (err) {
17378                            reject(err);
17379                        });
17380                        lib3p.header.ProductLike_DS(function () {
17381                            lib3p.pageCart.Cart_LoadLike();
17382                        });
17383                    }
17384                    else {
17385                        lib3p.common_cartGet().then(function (res) {
17386                            var cart = res;
17387                            if (lib3p_helper.utility.hasValue(cart) && (cart.Code >= -1 || cart.PaymentID >= 0)) {
17388                                window.pars3p.cart = cart;
17389                                window.pars3p.cart.URLRedirect = '';
17390                                window.pars3p.cart.OrderDate = lib3p_helper.utility.dateGet(window.pars3p.cart.OrderDate);
17391                                window.pars3p.cart.StepDate = lib3p_helper.utility.dateGet(window.pars3p.cart.StepDate);
17392                                window.pars3p.cart.EstDelivery = lib3p_helper.utility.dateGet(window.pars3p.cart.EstDelivery);
17393    
17394                                if (lib3p_helper.utility.hasListValue(cart.CartDetails)) {
17395                                    window.pars3p.cart.CartDetails.forEach(function (c, cidx) {
17396                                        if (!lib3p_helper.utility.hasListValue(c.ListCoupon)) {
17397                                            c.ListCoupon = null;
17398                                        }
17399                                        if (!lib3p_helper.utility.hasListValue(c.ListCouponSelected)) {
17400                                            c.ListCouponSelected = null;
17401                                        }
17402                                        if (!lib3p_helper.utility.hasListValue(c.ListGift)) {
17403                                            c.ListGift = null;
17404                                        }
17405                                    });
17406                                }
17407                                else {
17408                                    cart.CartDetails = [];
17409                                }
17410                            }
17411                            else {
17412                                window.pars3p.cart.Code = -1;
17413                                window.pars3p.cart.CartDetails = [];
17414                                window.pars3p.cart.TotalItemQuantity = 0;
17415                                window.pars3p.cart.lastDate = new Date();
17416                                lib3p.common_cartSet(window.pars3p.cart);
17417                            }
17418    
17419                            if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
17420    
17421                                if (window.pars3p.cart.lastUser != '' || window.pars3p.cart.lastDate == null) {
17422                                    window.pars3p.cart.lastUser = '';
17423                                    window.pars3p.cart.lastDate = null;
17424                                    window.pars3p.cart.Code = -1;
17425                                }
17426                                var req = {
17427                                    Cart: {},
17428                                    CartDetails: window.pars3p.cart.CartDetails,
17429                                    CartCoupon: window.pars3p.cart.CartCoupon,
17430                                    CartCombo: [],
17431                                };
17432                                req.Cart = lib3p_helper.cart.getCartInfo();
17433                                if(lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhone)) {
17434                                    lib3p.pageCart.DeliveryEdit_CheckPhone(window.pars3p.cart.OrderPhone, null);
17435                                }
17436    
17437                                lib3p.common_PostURL(window.pars3p.api.public.Cart_ProductTotal, { cart: req }, function (res) {
17438                                    if (res.StatusCode == 0) {
17439                                        lib3p.common_LoadingHide();
17440                                        if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
17441                                            window.pars3p.cart.lastUser = window.pars3p.auth.userName;
17442                                            window.pars3p.cart.lastDate = new Date();
17443                                            window.pars3p.cart.CartDetails = [];
17444                                            window.pars3p.cart.CartCoupon = [];
17445                                            window.pars3p.cart.ListCoupon = [];
17446                                            window.pars3p.cart.CartNoti = [];
17447                                            window.pars3p.cart.CartCombo = [];
17448                                            window.pars3p.cart.TypeOfTransportation = [];
17449                                            lib3p_helper.cart.copyCart(res.ObjectReturn);
17450                                            window.pars3p.cart.CartCoupon = window.pars3p.cart.CartCoupon.filter(function (c) { return lib3p_helper.utility.hasValue(c) && c.CouponID > 0; });
17451                                            lib3p.pageCart.Cache_Check();
17452                                            lib3p.common_cartSet(window.pars3p.cart);
17453                                            lib3p.pageCart.Cart_LoadHeader();
17454                                            lib3p.pageCart.Cart_LoadNoti();
17455                                            lib3p.pageCart.Cart_LoadBody();
17456                                            lib3p.pageCart.Cart_LoadGift();
17457                                            lib3p.pageCart.Cart_LoadTotal();
17458                                            lib3p.pageCart.Cart_SuggestCombo();
17459                                            lib3p.pageCart.Cart_ListCoupon();
17460                                            lib3p.pageCart.LoadDataEdit();
17461                                            lib3p.pageCart.Cart_ListHopGiaySuggest(res.ObjectReturn);
17462                                            if (window.pars3p.cart.Province > 0 && window.pars3p.cart.District > 0 && window.pars3p.cart.IsAppliedHachi24 != true && lib3p_helper.utility.hasValue(window.pars3p.cart.CartDetails.find(function (o) { return o.IsHachi24 == true && o.IsChoose == true; }))) {
17463                                                jQuery('.cart .data-row .product .hachi3h').show();
17464                                            }
17465                                            else {
17466                                                jQuery('.cart .data-row .product .hachi3h').hide();
17467                                            }
17468    
17469                                            lib3p.header.GMC_ViewCart();
17470                                            lib3p.pageCart.init_timmer();
17471                                        }
17472                                    }
17473                                    else {
17474                                        throw res.ErrorString;
17475                                    }
17476                                    resolve('');
17477                                }, function (err) {
17478                                    reject(err);
17479                                });
17480                            }
17481                            else {
17482                                lib3p.common_LoadingHide();
17483    
17484                                jQuery(".page-cart .container .row.section-1").hide();
17485                                jQuery(".page-cart.b-gregray30").removeClass('b-gregray30');
17486                                jQuery(".page-cart .container .row.empty").addClass('show');
17487    
17488                                jQuery(".mobile-cart .data").hide();
17489                                jQuery(".mobile-cart .empty").addClass('show');
17490                                if (lib3p_helper.utility.hasListValue(window.pars3p.others.ListBanner)) {
17491                                    var lstBanners = window.pars3p.others.ListBanner.filter(function (c) { return c.TypeData == 19; });
17492                                    if (lib3p_helper.utility.hasListValue(lstBanners)) {
17493                                        var html7 = '';
17494                                        var html7_m = '';
17495                                        var index7 = 0;
17496                                        lstBanners.forEach(function (c, cidx) {
17497                                            if (lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
17498                                                if (c.Link.indexOf('?') > 0) {
17499                                                    c.Link = c.Link + '&' + window.pars3p.seo.Query;
17500                                                }
17501                                                else {
17502                                                    c.Link = c.Link + '?' + window.pars3p.seo.Query;
17503                                                }
17504                                            }
17505    
17506                                            if (c.TypeData == 16) {
17507                                                if (index7 <= 3) {
17508                                                    html7 += '<div class="col-lg-3"><a href="' + c.Link + '"><img src="' + c.Image + '" alt="' + c.Name + '" /></a></div>';
17509                                                    html7_m += '<div class="item"><a href="' + c.Link + '"><img src="' + c.Image + '" alt="' + c.Name + '" /></a></div>';
17510                                                    index7++;
17511                                                }
17512                                            }
17513                                        });
17514                                        jQuery(".page-cart .empty.banner").html(html7);
17515                                        jQuery(".mobile-cart .empty .banner").html('<div class="owl-carousel">' + html7_m + '</div>');
17516                                        if (lib3p_helper.utility.hasValueString(html7_m)) {
17517                                            jQuery('.mobile-cart .empty .banner .owl-carousel').owlCarousel({
17518                                                autoplay: false,
17519                                                autoplayTimeout: 3000,
17520                                                autoplayHoverPause: true,
17521                                                autoWidth: true,
17522                                                margin: 5,
17523                                                loop: false,
17524                                                nav: false,
17525                                                dots: false,
17526                                            });
17527                                        }
17528                                    }
17529                                }
17530    
17531                                resolve('');
17532                            }
17533                            
17534                        }, function (err) {
17535                            reject(err);
17536                        });
17537                    }
17538
17539                }, window.pars3p.timeAsync);
17540            });
17541        },
17542        init_timmer: function () {
17543            window.pars3p.timmer.push(function () {
17544                if (window.pars3p.cartWaitTimeRun >= 0) {
17545                    if (window.pars3p.cartWaitTimeRun == 0) {
17546                        jQuery('.popup-cart-time-out').show();
17547                    }
17548                    window.pars3p.cartWaitTimeRun--;
17549                }
17550            });
17551        },
17552        OtherPage: function () {
17553            lib3p.pageCart.OtherPage_async().then(function (data) { }, function (err) { console.log(err); });
17554        },
17555        OtherPage_async: function () {
17556            return new Promise(function (resolve, reject) {
17557                setTimeout(function () {
17558                    lib3p.common_cartGet().then(function (res) {
17559                        var cart = res;
17560                        if (lib3p_helper.utility.hasValue(cart) && cart.Code >= -1) {
17561                            window.pars3p.cart = cart;
17562                        }
17563                        else {
17564                            window.pars3p.cart.Code = -1;
17565                            window.pars3p.cart.CartDetails = [];
17566                            window.pars3p.cart.TotalItemQuantity = 0;
17567                            window.pars3p.cart.lastDate = new Date();
17568                            lib3p.common_cartSet(window.pars3p.cart);
17569                        }
17570                        if (window.pars3p.auth.isLogin == true) {
17571                            var Code = -1;
17572                            if (window.pars3p.cart.Code > 0) {
17573                                Code = window.pars3p.cart.Code;
17574                            }
17575                            if (Code == -1 || window.pars3p.cart.lastDate <= lib3p_helper.utility.dateAddMinute(new Date(), -10)) {
17576                                lib3p.common_AuthPostURL(window.pars3p.api.auth.All_GetCart, { Code: Code }, function (res) {
17577                                    if (res.StatusCode == 0) {
17578                                        if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
17579                                            window.pars3p.cart.lastUser = window.pars3p.auth.userName;
17580                                            window.pars3p.cart.lastDate = new Date();
17581                                            window.pars3p.cart.CartDetails = [];
17582                                            window.pars3p.cart.CartCoupon = [];
17583                                            window.pars3p.cart.ListCoupon = [];
17584                                            window.pars3p.cart.CartNoti = [];
17585                                            window.pars3p.cart.CartCombo = [];
17586                                            window.pars3p.cart.TypeOfTransportation = [];
17587                                            lib3p_helper.cart.copyCart(res.ObjectReturn);
17588                                            lib3p.pageCart.Cache_Check();
17589                                            lib3p.common_cartSet(window.pars3p.cart);
17590                                            lib3p.pageCart.Cart_LoadHeader();
17591                                        }
17592                                    }
17593                                    else {
17594                                        throw res.ErrorString;
17595                                    }
17596                                    resolve('');
17597                                }, function (err) {
17598                                    reject(err);
17599                                });
17600                            }
17601                            else {
17602                                lib3p.pageCart.Cart_LoadHeader();
17603                                resolve('');
17604                            }
17605                        }
17606                        else {
17607                            lib3p.pageCart.Cart_LoadHeader();
17608                            resolve('');
17609                        }
17610                    }, function (err) {
17611                        console.log(err);
17612                    });
17613                }, window.pars3p.timeAsync);
17614            });
17615        },
17616        LoadDataEdit: function () {
17617            var flag = false;
17618
17619            if (window.pars3p.auth.isLogin == true) {
17620                flag = true;
17621                window.pars3p.cart.ReceivedBy = window.pars3p.cart.OrderBy;
17622                window.pars3p.cart.Cellphone = window.pars3p.cart.OrderPhone;
17623            }
17624            else {
17625                if (!lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP)) {
17626                    flag = true;
17627                }
17628            }
17629
17630            if (flag == true) {
17631                if (lib3p_helper.utility.hasValue(window.pars3p.location) && lib3p_helper.utility.hasListValue(window.pars3p.location.ListProvince)) {
17632                    if(window.pars3p.cart.Province > 0) {
17633                        var itemProvince = window.pars3p.location.ListProvince.find(function (c) { return c.Code == window.pars3p.cart.Province; });
17634                        jQuery('select.cboProvince').find('option[value="' + itemProvince.Code + '"]').attr('selected', 'selected');
17635                        var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == itemProvince.Code; });
17636                        jQuery('select.cboDistrict').html('<option value>Select one...</option>');
17637                        lstTemp.forEach(function (c, cidx) {
17638                            if (c.Code == window.pars3p.cart.District) {
17639                                jQuery('select.cboDistrict').append('<option value="' + c.Code + '" selected>' + c.DistrictName + '</option>');
17640                            }
17641                            else {
17642                                jQuery('select.cboDistrict').append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
17643                            }
17644                        });
17645                        if(window.pars3p.cart.District > 0) {
17646                            var itemDistrict = lstTemp.find(function (c) { return c.Code == window.pars3p.cart.District; });
17647                            lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == itemDistrict.Code; });
17648                            jQuery('select.cboWard').html('<option value>Select one...</option>');
17649                            lstTemp.forEach(function (c, cidx) {
17650                                if (c.Code == window.pars3p.cart.Ward) {
17651                                    jQuery('select.cboWard').append('<option value="' + c.Code + '" selected>' + c.WardName + '</option>');
17652                                }
17653                                else {
17654                                    jQuery('select.cboWard').append('<option value="' + c.Code + '">' + c.WardName + '</option>');
17655                                }
17656                            });
17657                        }
17658                    }
17659                    jQuery("#cboProvince_itemedit").combobox({ change: function (opt) { lib3p.pageCart.onProvince_Change(opt, '#cboDistrict_itemedit', '#cboWard_itemedit') } });
17660                    jQuery("#cboDistrict_itemedit").combobox({ change: function (opt) { lib3p.pageCart.onDistrict_Change(opt, '#cboWard_itemedit') } });
17661                    jQuery("#cboWard_itemedit").combobox({ change: function (opt) { lib3p.pageCart.onWard_Change(opt) } });
17662                    jQuery("#cboProvince_itemedit_m").combobox({ change: function (opt) { lib3p.pageCart.onProvince_Change(opt, '#cboDistrict_itemedit_m', '#cboWard_itemedit_m') } });
17663                    jQuery("#cboDistrict_itemedit_m").combobox({ change: function (opt) { lib3p.pageCart.onDistrict_Change(opt, '#cboWard_itemedit_m') } });
17664                    jQuery("#cboWard_itemedit_m").combobox({ change: function (opt) { lib3p.pageCart.onWard_Change(opt) } });                    
17665                }
17666                jQuery('.page-cart .dia-chi-edit .nguoi-nhan').hide();
17667                jQuery('.page-cart .dia-chi-edit .input.cboDistrict').hide();
17668                jQuery('.page-cart .dia-chi-edit .input.cboWard').hide();
17669                jQuery('.page-cart .dia-chi-edit .input.Address').hide();
17670                jQuery('.page-cart .dia-chi-edit').show();
17671                jQuery('.page-cart .dia-chi').hide();
17672                jQuery('.mobile-cart .dia-chi-edit .nguoi-nhan').hide();
17673                jQuery('.mobile-cart .dia-chi-edit .input.cboDistrict').hide();
17674                jQuery('.mobile-cart .dia-chi-edit .input.cboWard').hide();
17675                jQuery('.mobile-cart .dia-chi-edit .input.Address').hide();
17676                jQuery('.mobile-cart .dia-chi-edit').show();
17677                jQuery('.mobile-cart .dia-chi').hide();
17678
17679                var query = jQuery('.page-cart .dia-chi-edit form');
17680                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
17681                    query.attr('has', '1');
17682                    query[0].OrderPhone.value = window.pars3p.cart.OrderPhone;
17683                    query[0].OrderBy.value = window.pars3p.cart.OrderBy;
17684                    query[0].Province.value = window.pars3p.cart.Province;
17685                    query[0].District.value = window.pars3p.cart.District;
17686                    query[0].Ward.value = window.pars3p.cart.Ward;
17687                    query[0].Address.value = window.pars3p.cart.Address;
17688                    if (window.pars3p.cart.Cellphone != window.pars3p.cart.OrderPhone || window.pars3p.cart.OrderBy != window.pars3p.cart.ReceivedBy) {
17689                        jQuery(query[0].IsDeliveryOther).prop('checked', true);
17690                    }
17691                    else {
17692                        jQuery(query[0].IsDeliveryOther).prop('checked', false);
17693                    }
17694                    //query[0].IsDeliveryOther.value = window.pars3p.cart.Cellphone != window.pars3p.cart.OrderPhone || window.pars3p.cart.OrderBy != window.pars3p.cart.ReceivedBy;
17695                    query[0].ReceivedBy.value = window.pars3p.cart.ReceivedBy;
17696                    query[0].Cellphone.value = window.pars3p.cart.Cellphone;
17697                    if (window.pars3p.cart.Province > 0) {
17698                        jQuery('.page-cart .dia-chi-edit .input.cboDistrict').show();
17699                    }
17700                    if (window.pars3p.cart.District > 0) {
17701                        jQuery('.page-cart .dia-chi-edit .input.cboWard').show();
17702                    }
17703                    if (window.pars3p.cart.Ward > 0) {
17704                        jQuery('.page-cart .dia-chi-edit .input.Address').show();
17705                    }
17706                    if (window.pars3p.auth.isLogin == true) {
17707                        jQuery(query[0].OrderPhone).prop('disabled', true);
17708                        jQuery(query[0].OrderBy).prop('disabled', true);
17709                    }
17710                }
17711                query = jQuery('.mobile-cart .dia-chi-edit form');
17712                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
17713                    query.attr('has', '1');
17714                    query[0].OrderPhone.value = window.pars3p.cart.OrderPhone;
17715                    query[0].OrderBy.value = window.pars3p.cart.OrderBy;
17716                    query[0].Province.value = window.pars3p.cart.Province;
17717                    query[0].District.value = window.pars3p.cart.District;
17718                    query[0].Ward.value = window.pars3p.cart.Ward;
17719                    query[0].Address.value = window.pars3p.cart.Address;
17720                    if (window.pars3p.cart.Cellphone != window.pars3p.cart.OrderPhone || window.pars3p.cart.OrderBy != window.pars3p.cart.ReceivedBy) {
17721                        jQuery(query[0].IsDeliveryOther).prop('checked', true);
17722                    }
17723                    else {
17724                        jQuery(query[0].IsDeliveryOther).prop('checked', false);
17725                    }
17726                    //query[0].IsDeliveryOther.value = window.pars3p.cart.Cellphone != window.pars3p.cart.OrderPhone || window.pars3p.cart.OrderBy != window.pars3p.cart.ReceivedBy;
17727                    query[0].ReceivedBy.value = window.pars3p.cart.ReceivedBy;
17728                    query[0].Cellphone.value = window.pars3p.cart.Cellphone;
17729                    if (window.pars3p.cart.Province > 0) {
17730                        jQuery('.mobile-cart .dia-chi-edit .input.cboDistrict').show();
17731                    }
17732                    if (window.pars3p.cart.District > 0) {
17733                        jQuery('.mobile-cart .dia-chi-edit .input.cboWard').show();
17734                    }
17735                    if (window.pars3p.cart.Ward > 0) {
17736                        jQuery('.mobile-cart .dia-chi-edit .input.Address').show();
17737                    }
17738                    if (window.pars3p.auth.isLogin == true) {
17739                        jQuery(query[0].OrderPhone).prop('disabled', true);
17740                        jQuery(query[0].OrderBy).prop('disabled', true);
17741                    }
17742                }
17743            }
17744        },
17745        onProvince_Change: function (opt, iddistrict, idward) {
17746            if (lib3p_helper.utility.hasValueString(opt.value)) {
17747                jQuery(opt.form.Province).closest('.ui-widget').removeClass('error');
17748                jQuery('.page-cart .dia-chi-edit .input.cboDistrict').show();
17749                jQuery('.mobile-cart .dia-chi-edit .input.cboDistrict').show();
17750                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListDistrict)) {
17751                    var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == opt.value; });
17752                    jQuery(iddistrict).html('<option value>Select one...</option>');
17753                    lstTemp.forEach(function (c, cidx) {
17754                        jQuery(iddistrict).append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
17755                    });
17756                    jQuery(iddistrict).next().find('.custom-combobox-input').val('');
17757                    jQuery(idward).html('<option value>Select one...</option>');
17758                    jQuery(idward).next().find('.custom-combobox-input').val('');
17759                }
17760
17761                jQuery(opt.form.Province).closest('.ui-widget').removeClass('error');
17762                jQuery(opt.form.Province).closest('.dong').children('.error').html('');
17763            }
17764            else {
17765                jQuery('.page-cart .dia-chi-edit .input.cboDistrict').hide();
17766                jQuery('.page-cart .dia-chi-edit .input.cboWard').hide();
17767                jQuery('.page-cart .dia-chi-edit .input.Address').hide();
17768                jQuery('.mobile-cart .dia-chi-edit .input.cboDistrict').hide();
17769                jQuery('.mobile-cart .dia-chi-edit .input.cboWard').hide();
17770                jQuery('.mobile-cart .dia-chi-edit .input.Address').hide();
17771            }
17772
17773            jQuery(opt.form.District).children(":selected").each(function () {
17774                this.selected = false;
17775            });
17776            jQuery(opt.form.Ward).children(":selected").each(function () {
17777                this.selected = false;
17778            });
17779            if (lib3p_helper.utility.hasValue(opt) && lib3p_helper.utility.hasValue(opt.form)) {
17780                lib3p.common_LoadingShow();
17781                lib3p.pageCart.GetDelivery(opt.form);
17782                lib3p.pageCart.Cart_ProductTotal(true);
17783            }
17784        },
17785        onDistrict_Change: function (opt, idward) {
17786            if (lib3p_helper.utility.hasValueString(opt.value)) {
17787                jQuery(opt.form.District).closest('.ui-widget').removeClass('error');
17788                jQuery('.page-cart .dia-chi-edit .input.cboWard').show();
17789                jQuery('.mobile-cart .dia-chi-edit .input.cboWard').show();
17790                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListWard)) {
17791                    var lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == opt.value; });
17792                    jQuery(idward).html('<option value>Select one...</option>');
17793                    lstTemp.forEach(function (c, cidx) {
17794                        jQuery(idward).append('<option value="' + c.Code + '">' + c.WardName + '</option>');
17795                    });
17796                    jQuery(idward).next().find('.custom-combobox-input').val('');
17797                }
17798
17799                jQuery(opt.form.District).closest('.ui-widget').removeClass('error');
17800                jQuery(opt.form.District).closest('.dong').children('.error').html('');
17801            }
17802            else {
17803                jQuery('.page-cart .dia-chi-edit .input.cboWard').hide();
17804                jQuery('.page-cart .dia-chi-edit .input.Address').hide();
17805                jQuery('.mobile-cart .dia-chi-edit .input.cboWard').hide();
17806                jQuery('.mobile-cart .dia-chi-edit .input.Address').hide();
17807            }
17808
17809            jQuery(opt.form.Ward).children(":selected").each(function () {
17810                this.selected = false;
17811            });
17812            if (lib3p_helper.utility.hasValue(opt) && lib3p_helper.utility.hasValue(opt.form)) {
17813                lib3p.common_LoadingShow();
17814                lib3p.pageCart.GetDelivery(opt.form);
17815                lib3p.pageCart.Cart_ProductTotal(true);
17816            }
17817        },
17818        onWard_Change: function (opt) {
17819            if (lib3p_helper.utility.hasValueString(opt.value)) {
17820                jQuery(opt.form.Ward).closest('.ui-widget').removeClass('error');
17821                jQuery('.page-cart .dia-chi-edit .input.Address').show();
17822                jQuery('.mobile-cart .dia-chi-edit .input.Address').show();
17823
17824                jQuery(opt.form.Ward).closest('.ui-widget').removeClass('error');
17825                jQuery(opt.form.Ward).closest('.dong').children('.error').html('');
17826            }
17827            else {
17828                jQuery('.page-cart .dia-chi-edit .input.Address').hide();
17829                jQuery('.mobile-cart .dia-chi-edit .input.Address').hide();
17830            }
17831
17832            if (lib3p_helper.utility.hasValue(opt) && lib3p_helper.utility.hasValue(opt.form)) {
17833                lib3p.common_LoadingShow();
17834                lib3p.pageCart.GetDelivery(opt.form);
17835                lib3p.pageCart.Cart_ProductTotal(true);
17836            }
17837        },
17838        onIsCopy_Click: function (el) {
17839            var query = jQuery(el).closest('form');
17840            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
17841                var flag = el.checked == true;
17842                setTimeout(function () {
17843                    if (flag == true) {
17844                        query[0].ReceivedBy.value = '';
17845                        query[0].Cellphone.value = '';
17846                        jQuery('.page-cart .dia-chi-edit .nguoi-nhan').show();
17847                        jQuery('.mobile-cart .dia-chi-edit .nguoi-nhan').show();
17848                    }
17849                    else {
17850                        jQuery('.page-cart .dia-chi-edit .nguoi-nhan').hide();
17851                        jQuery('.mobile-cart .dia-chi-edit .nguoi-nhan').hide();
17852                    }
17853                }, 100);
17854            }
17855        },
17856        onDelivery_KeyDown: function (event, el) {
17857            var query = jQuery(el).closest('form');
17858            var isphone = jQuery(el).attr('name') == 'OrderPhone';
17859            setTimeout(function () {
17860                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
17861                    lib3p.pageCart.DeliveryEdit_Check(query, isphone);
17862                }
17863            }, 100);
17864        },
17865        DeliveryEdit_Check: function (query, isphone, hasfocus) {
17866            var flag = true;
17867            var flagPhone = true;
17868            var PhoneNumber = '';
17869            var ctr = query[0].OrderPhone;
17870            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
17871                if (hasfocus == true && flag == true) {
17872                    jQuery(ctr).focus();
17873                }
17874                window.pars3p.PhoneNumber_last = '';
17875                flag = false;
17876                flagPhone = false;
17877                if (!jQuery(ctr).hasClass('error')) {
17878                    jQuery(ctr).addClass('error');
17879                }
17880                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
17881            }
17882            else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
17883                if (hasfocus == true && flag == true) {
17884                    jQuery(ctr).focus();
17885                }
17886                window.pars3p.PhoneNumber_last = '';
17887                flag = false;
17888                flagPhone = false;
17889                if (!jQuery(ctr).hasClass('error')) {
17890                    jQuery(ctr).addClass('error');
17891                }
17892                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
17892<span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
17893            }
17894            else {
17895                PhoneNumber = ctr.value;
17896                jQuery(ctr).removeClass('error');
17897                jQuery(ctr).parent().next().html('');
17898            }
17899            if (isphone != true) {
17900                ctr = query[0].OrderBy;
17901                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
17902                    if (hasfocus == true && flag == true) {
17903                        jQuery(ctr).focus();
17904                    }
17905                    flag = false;
17906                    if (!jQuery(ctr).hasClass('error')) {
17907                        jQuery(ctr).addClass('error');
17908                    }
17909                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
17910                }
17911                else {
17912                    jQuery(ctr).removeClass('error');
17913                    jQuery(ctr).parent().next().html('');
17914                }
17915
17916                ctr = query[0].Province;
17917                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
17918                    if (hasfocus == true && flag == true) {
17919                        jQuery(ctr).closest('.ui-widget').find('.custom-combobox > input.custom-combobox-input').focus();
17920                    }
17921                    flag = false;
17922                    if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
17923                        jQuery(ctr).closest('.ui-widget').addClass('error');
17924                    }
17925                    jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
17926                }
17927                else {
17928                    jQuery(ctr).closest('.ui-widget').removeClass('error');
17929                    jQuery(ctr).closest('.dong').children('.error').html('');
17930
17931                    ctr = query[0].District;
17932                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
17933                        if (hasfocus == true && flag == true) {
17934                            jQuery(ctr).closest('.ui-widget').find('.custom-combobox > input.custom-combobox-input').focus();
17935                        }
17936                        flag = false;
17937                        if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
17938                            jQuery(ctr).closest('.ui-widget').addClass('error');
17939                        }
17940                        jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
17941                    }
17942                    else {
17943                        jQuery(ctr).closest('.ui-widget').removeClass('error');
17944                        jQuery(ctr).closest('.dong').children('.error').html('');
17945
17946                        ctr = query[0].Ward;
17947                        if (!lib3p_helper.utility.hasValueString(ctr.value)) {
17948                            if (hasfocus == true && flag == true) {
17949                                jQuery(ctr).closest('.ui-widget').find('.custom-combobox > input.custom-combobox-input').focus();
17950                            }
17951                            flag = false;
17952                            if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
17953                                jQuery(ctr).closest('.ui-widget').addClass('error');
17954                            }
17955                            jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
17956                        }
17957                        else {
17958                            jQuery(ctr).closest('.ui-widget').removeClass('error');
17959                            jQuery(ctr).closest('.dong').children('.error').html('');
17960
17961                            ctr = query[0].Address;
17962                            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
17963                                if (hasfocus == true && flag == true) {
17964                                    jQuery(ctr).focus();
17965                                }
17966                                flag = false;
17967                                if (!jQuery(ctr).hasClass('error')) {
17968                                    jQuery(ctr).addClass('error');
17969                                }
17970                                jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
17971                            }
17972                            else {
17973                                jQuery(ctr).removeClass('error');
17974                                jQuery(ctr).parent().next().html('');
17975                            }
17976                        }
17977                    }
17978                }
17979                ctr = query[0].IsDeliveryOther;
17980                if (jQuery(ctr).prop('checked') == true) {
17981                    ctr = query[0].ReceivedBy;
17982                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
17983                        flag = false;
17984                        if (!jQuery(ctr).hasClass('error')) {
17985                            jQuery(ctr).addClass('error');
17986                        }
17987                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
17988                    }
17989                    else {
17990                        jQuery(ctr).removeClass('error');
17991                        jQuery(ctr).parent().next().html('');
17992                    }
17993                    ctr = query[0].Cellphone;
17994                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
17995                        if (hasfocus == true && flag == true) {
17996                            jQuery(ctr).focus();
17997                        }
17998                        flag = false;
17999                        if (!jQuery(ctr).hasClass('error')) {
18000                            jQuery(ctr).addClass('error');
18001                        }
18002                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
18003                    }
18004                    else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
18005                        if (hasfocus == true && flag == true) {
18006                            jQuery(ctr).focus();
18007                        }
18008                        flag = false;
18009                        if (!jQuery(ctr).hasClass('error')) {
18010                            jQuery(ctr).addClass('error');
18011                        }
18012                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
18012<span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
18013                    }
18014                    else {
18015                        jQuery(ctr).removeClass('error');
18016                        jQuery(ctr).parent().next().html('');
18017                    }
18018                }
18019            }
18020            if (flagPhone == true && isphone == true && window.pars3p.PhoneNumber_last != PhoneNumber) {
18021                lib3p.pageCart.DeliveryEdit_CheckPhone(PhoneNumber, query);
18022            }
18023            return flag;
18024        },
18025        DeliveryEdit_CheckPhone: function (PhoneNumber, frm) {
18026            lib3p.common_LoadingShow();
18027            return new Promise(function (resolve, reject) {
18028                setTimeout(function () {
18029                    if(lib3p_helper.utility.hasValue(frm)) {
18030                        window.pars3p.PhoneNumber_last = PhoneNumber;
18031                    }
18032                    lib3p.common_GetURL(window.pars3p.api.public.Header_GetByPhone + '?phone=' + PhoneNumber, function (res) {
18033                        lib3p.common_LoadingHide();
18034                        if (res.HasAccount == true) {
18035                            if(lib3p_helper.utility.hasValue(frm)) {
18036                                window.pars3p.PhoneNumber_last = null;
18037                                frm[0].OrderPhone.value = '';
18038                            }
18039                            else {
18040                                //trường hợp kiểm tra từ init
18041                                window.pars3p.cart.OrderPhone = '';
18042                                window.pars3p.cart.OrderPhoneOTP = '';
18043                                lib3p.common_cartSet(window.pars3p.cart);
18044                                window.location.reload();
18045                            }
18046                            lib3p.header.ShowHasAccount(PhoneNumber, function () {
18047                                lib3p.pageCart.QuenMatKhau_MergeCart();
18048                            }, function () {
18049
18050                            });
18051                        }
18052                        else {
18053                            window.pars3p.PhoneNumber_last = null;
18054                            if (res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn)) {
18055                                if (res.ObjectReturn.Cellphone != PhoneNumber) {
18056                                    alert('Số điện thoại bạn vừa nhập được đăng ký cho mã KHTT ' + res.ObjectReturn.CardNo + ' tại Cửa hàng, nhưng tại web, mã KHTT này đang lưu với số điện thoại ' + res.ObjectReturn.Cellphone + '. Vui lòng liên hệ Hachi Hachi để được hỗ trợ.');
18057                                }
18058                                else {
18059                                    //trường hợp kiểm tra từ init
18060                                    if(!lib3p_helper.utility.hasValue(frm)) {
18061                                        window.pars3p.cart.OrderPhone = '';
18062                                        window.pars3p.cart.OrderPhoneOTP = '';
18063                                        lib3p.common_cartSet(window.pars3p.cart);
18064                                        window.location.reload();
18065                                    }
18066                                    res.ObjectReturn.Cellphone = PhoneNumber;
18067                                    lib3p.header.onKTTT_Show(res.ObjectReturn, lib3p.header.TypeKTTT.Account, function () {
18068                                        var req = {
18069                                            HistoryCardID: res.ObjectReturn.ID,
18070                                            CardNo: res.ObjectReturn.CardNo,
18071                                            Email: "",
18072                                            UserName: window.pars3p.khtt.Cellphone,
18073                                            Password: new Date().getTime(),
18074                                            PhoneNumber: window.pars3p.khtt.Cellphone,
18075                                            FirstName: window.pars3p.khtt.FirstName,
18076                                            LastName: window.pars3p.khtt.LastName,
18077                                            FullName: window.pars3p.khtt.FullName,
18078                                            Store: -1,
18079                                            POMaster: "",
18080                                            SendType: window.pars3p.otp.SendType
18081                                        };
18082                                        window.pars3p.dangkykhtt.Code = res.ObjectReturn.ID;
18083                                        window.pars3p.dangkykhtt.HistoryCardID = res.ObjectReturn.ID;
18084                                        window.pars3p.dangkykhtt.Cellphone = window.pars3p.khtt.Cellphone;
18085                                        window.pars3p.dangkykhtt.CardNo = res.ObjectReturn.CardNo;
18086                                        window.pars3p.dangkykhtt.FirstName = res.ObjectReturn.FirstName;
18087                                        window.pars3p.dangkykhtt.L
18087astName = res.ObjectReturn.LastName;
18088                                        window.pars3p.dangkykhtt.FullName = res.ObjectReturn.FullName;
18089                                        lib3p.common_PostURL(window.pars3p.api.public.User_Register2, req, function (res3) {
18090                                            if (lib3p_helper.utility.hasValue(res3)) {
18091                                                if (res3.StatusID == 0 && lib3p_helper.utility.hasValueString(res3.CardNo)) {
18092                                                    window.pars3p.dangkykhtt.IsSend = res3.IsSentRabbit;
18093                                                    lib3p.header.ConnectAuth(window.pars3p.khtt.Cellphone, res3.Password, function () {
18094                                                        if (lib3p_helper.utility.hasValueString(window.pars3p.dangkykhtt) && window.pars3p.dangkykhtt.Code > 0) {
18095                                                            lib3p.common_AuthPostURL(window.pars3p.api.auth.PageKHTT_SendOther, { "item": window.pars3p.dangkykhtt }, function (res4) {
18096                                                                if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
18097                                                                    lib3p.common_AuthPostURL(window.pars3p.api.auth.All_MergeCart, { cart: { CartDetails: window.pars3p.cart.CartDetails, CartCoupon: window.pars3p.cart.CartCoupon } }, function (res3) {
18098                                                                        if (res3 == true) {
18099                                                                            window.pars3p.cart.lastUser = '';
18100                                                                            window.pars3p.cart.lastDate = null;
18101                                                                            window.pars3p.cart.Code = -1;
18102                                                                            window.pars3p.cart.CartDetails = [];
18103                                                                            window.pars3p.cart.CartCoupon = [];
18104                                                                            window.pars3p.cart.ListCoupon = [];
18105                                                                            window.pars3p.cart.CartNoti = [];
18106                                                                            window.pars3p.cart.CartCombo = [];
18107                                                                            window.pars3p.cart.TypeOfTransportation = [];
18108                                                                            window.pars3p.cart.timeOrderCalculateNext = null;
18109                                                                            lib3p.common_cartSet(window.pars3p.cart);
18110                                                                        }
18111                                                                        window.location.href = window.pars3p.urlCart;
18112                                                                    }, function (err3) {
18113                                                                        lib3p.log(err3);
18114                                                                    });
18115                                                                }
18116                                                                else {
18117                                                                    window.location.href = window.pars3p.urlCart;
18118                                                                }
18119                                                            }, function (err4) {
18120                                                                lib3p.log(err4);
18121                                                            });
18122                                                        }
18123                                                    }, function (errConnect) {
18124                                                        lib3p.log(errConnect);
18125                                                    });
18126                                                }
18127                                                else {
18128                                                    lib3p.log("Lỗi dữ liệu");
18129                                                }
18130                                            }
18131                                        }, function (err3) {
18132                                            lib3p.log(err3);
18133                                        });
18134                                    }, function () {
18135                                        
18136                                    });
18137                                }
18138
18139                            }
18140                        }
18141
18142                    }, function (err) {
18143                        lib3p.log(err);
18144                        lib3p.common_LoadingHide();
18145                    });                    
18146
18147                }, window.pars3p.timeAsync);
18148            });
18149        },
18150        DeliveryEdit_CheckPhone_Test: function (PhoneNumber, frm) {
18151            lib3p.common_LoadingShow();
18152            return new Promise(function (resolve, reject) {
18153                setTimeout(function () {
18154                    if(lib3p_helper.utility.hasValue(frm)) {
18155                        window.pars3p.PhoneNumber_last = PhoneNumber;
18156                    }                    
18157                    lib3p.common_PostURL(window.pars3p.api.public.checkuser, { "PhoneNumber": PhoneNumber }, function (res) {
18158                        if (res == true) {
18159                            lib3p.common_LoadingHide();
18160                            if(lib3p_helper.utility.hasValue(frm)) {
18161                                window.pars3p.PhoneNumber_last = null;
18162                                frm[0].OrderPhone.value = '';
18163                            }
18164                            else {
18165                                //trường hợp kiểm tra từ init
18166                                window.pars3p.cart.OrderPhone = '';
18167                                window.pars3p.cart.OrderPhoneOTP = '';
18168                                lib3p.common_cartSet(window.pars3p.cart);
18169                                window.location.reload();
18170                            }
18171                            lib3p.header.ShowHasAccount(PhoneNumber, function () {
18172                                lib3p.pageCart.QuenMatKhau_MergeCart();
18173                            }, function () {
18174
18175                            });
18176                        }
18177                        else {
18178                            lib3p.common_PostURL(window.pars3p.api.public.GetCardByStaff, { "CellPhone": PhoneNumber }, function (res2) {
18179                                lib3p.common_LoadingHide();
18180                                window.pars3p.PhoneNumber_last = null;
18181
18182                                if (lib3p_helper.utility.hasValue(res2) && res2.StatusCode == 0 && lib3p_helper.utility.hasValue(res2.ObjectReturn)) {
18183                                    if (res2.ObjectReturn.Cellphone != PhoneNumber) {
18184                                        alert('Số điện thoại bạn vừa nhập được đăng ký cho mã KHTT ' + res2.ObjectReturn.CardNo + ' tại Cửa hàng, nhưng tại web, mã KHTT này đang lưu với số điện thoại ' + res2.ObjectReturn.Cellphone + '. Vui lòng liên hệ Hachi Hachi để được hỗ trợ.');
18185                                    }
18186                                    else {
18187                                        //trường hợp kiểm tra từ init
18188                                        if(!lib3p_helper.utility.hasValue(frm)) {
18189                                            window.pars3p.cart.OrderPhone = '';
18190                                            window.pars3p.cart.OrderPhoneOTP = '';
18191                                            lib3p.common_cartSet(window.pars3p.cart);
18192                                            window.location.reload();
18193                                        }
18194                                        res2.ObjectReturn.Cellphone = PhoneNumber;
18195                                        lib3p.header.onKTTT_Show(res2.ObjectReturn, lib3p.header.TypeKTTT.Account, function () {
18196                                            var req = {
18197                                                Email: "",
18198                                                UserName: window.pars3p.khtt.Cellphone,
18199                                                Password: new Date().getTime(),
18200                                                PhoneNumber: window.pars3p.khtt.Cellphone,
18201                                                FirstName: window.pars3p.khtt.FirstName,
18202                                                LastName: window.pars3p.khtt.LastName,
18203                                                FullName: window.pars3p.khtt.FullName,
18204                                                Store: -1,
18205                                                POMaster: "",
18206                                                SendType: window.pars3p.otp.SendType
18207                                            };
18208                                            window.pars3p.dangkykhtt.Code = res2.ObjectReturn.ID;
18209                                            window.pars3p.dangkykhtt.HistoryCardID = res2.ObjectReturn.ID;
18210                                            window.pars3p.dangkykhtt.Cellphone = window.pars3p.khtt.Cellphone;
18211                                            window.pars3p.dangkykhtt.CardNo = res2.ObjectReturn.CardNo;
18212                                            window.pars3p.dangkykhtt.FirstName = res2.ObjectReturn.FirstName;
18213                                            window.pars3p.dangkykhtt.L
18213astName = res2.ObjectReturn.LastName;
18214                                            window.pars3p.dangkykhtt.FullName = res2.ObjectReturn.FullName;
18215                                            lib3p.common_PostURL(window.pars3p.api.public.User_Register2, req, function (res3) {
18216                                                if (lib3p_helper.utility.hasValue(res3)) {
18217                                                    if (res3.StatusID == 0 && lib3p_helper.utility.hasValueString(res3.CardNo)) {
18218                                                        window.pars3p.dangkykhtt.IsSend = res3.IsSentRabbit;
18219                                                        lib3p.header.ConnectAuth(window.pars3p.khtt.Cellphone, res3.Password, function () {
18220                                                            if (lib3p_helper.utility.hasValueString(window.pars3p.dangkykhtt) && window.pars3p.dangkykhtt.Code > 0) {
18221                                                                lib3p.common_AuthPostURL(window.pars3p.api.auth.PageKHTT_SendOther, { "item": window.pars3p.dangkykhtt }, function (res4) {
18222                                                                    if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
18223                                                                        lib3p.common_AuthPostURL(window.pars3p.api.auth.All_MergeCart, { cart: { CartDetails: window.pars3p.cart.CartDetails, CartCoupon: window.pars3p.cart.CartCoupon } }, function (res3) {
18224                                                                            if (res3 == true) {
18225                                                                                window.pars3p.cart.lastUser = '';
18226                                                                                window.pars3p.cart.lastDate = null;
18227                                                                                window.pars3p.cart.Code = -1;
18228                                                                                window.pars3p.cart.CartDetails = [];
18229                                                                                window.pars3p.cart.CartCoupon = [];
18230                                                                                window.pars3p.cart.ListCoupon = [];
18231                                                                                window.pars3p.cart.CartNoti = [];
18232                                                                                window.pars3p.cart.CartCombo = [];
18233                                                                                window.pars3p.cart.TypeOfTransportation = [];
18234                                                                                window.pars3p.cart.timeOrderCalculateNext = null;
18235                                                                                lib3p.common_cartSet(window.pars3p.cart);
18236                                                                            }
18237                                                                            window.location.href = window.pars3p.urlCart;
18238                                                                        }, function (err3) {
18239                                                                            lib3p.log(err3);
18240                                                                        });
18241                                                                    }
18242                                                                    else {
18243                                                                        window.location.href = window.pars3p.urlCart;
18244                                                                    }
18245                                                                }, function (err4) {
18246                                                                    lib3p.log(err4);
18247                                                                });
18248                                                            }
18249                                                        }, function (errConnect) {
18250                                                            lib3p.log(errConnect);
18251                                                        });
18252                                                    }
18253                                                    else {
18254                                                        lib3p.log("Lỗi dữ liệu");
18255                                                    }
18256                                                }
18257                                            }, function (err3) {
18258                                                lib3p.log(err3);
18259                                            });
18260                                        }, function () {
18261                                            //lib3p.pageCartDelivery.onPopupDeliveryEdit_AccountShow();
18262                                        });
18263                                    }
18264                                }
18265                            }, function (err2) {
18266                                lib3p.log(err2);
18267                            });
18268                        }
18269                    }, function (err) {
18270                        lib3p.log(err);
18271                    });
18272
18273                }, window.pars3p.timeAsync);
18274            });
18275        },
18276        QuenMatKhau_MergeCart: function () {
18277            if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
18278                lib3p.common_AuthPostURL(window.pars3p.api.auth.All_MergeCart, { cart: { CartDetails: window.pars3p.cart.CartDetails, CartCoupon: window.pars3p.cart.CartCoupon } }, function (res) {
18279                    if (res == true) {
18280                        window.pars3p.cart.lastUser = '';
18281                        window.pars3p.cart.lastDate = null;
18282                        window.pars3p.cart.Code = -1;
18283                        window.pars3p.cart.CartDetails = [];
18284                        window.pars3p.cart.CartCoupon = [];
18285                        window.pars3p.cart.ListCoupon = [];
18286                        window.pars3p.cart.CartNoti = [];
18287                        window.pars3p.cart.CartCombo = [];
18288                        window.pars3p.cart.TypeOfTransportation = [];
18289                        window.pars3p.cart.timeOrderCalculateNext = null;
18290                        lib3p.common_cartSet(window.pars3p.cart);
18291
18292                        window.location.reload();
18293                    }
18294                }, function (err) {
18295                    console.log(err);
18296                });
18297            }
18298            else {
18299                window.pars3p.cart.lastUser = '';
18300                window.pars3p.cart.lastDate = null;
18301                window.pars3p.cart.Code = -1;
18302                window.pars3p.cart.CartDetails = [];
18303                window.pars3p.cart.CartCoupon = [];
18304                window.pars3p.cart.ListCoupon = [];
18305                window.pars3p.cart.CartNoti = [];
18306                window.pars3p.cart.CartCombo = [];
18307                window.pars3p.cart.TypeOfTransportation = [];
18308                window.pars3p.cart.timeOrderCalculateNext = null;
18309                lib3p.common_cartSet(window.pars3p.cart);
18310
18311                window.location.reload();
18312            }
18313        },
18314        
18315        onCartHopGiay_Click: function (el) {
18316            jQuery(el).closest('.hop-giay-suggest').toggleClass('open');
18317        },
18318        onCaptcha_Click: function () {
18319            window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
18320            jQuery('.captcha-input .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
18321            jQuery('.captcha-input .captcha').attr('key', window.pars3p.KeyView);
18322            return false;
18323        },
18324        Cart_ListHopGiaySuggest: function (res) {
18325            if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.ListHopGiaySuggest)) {
18326                var html = '';
18327                res.ListHopGiaySuggest.forEach(function (item) {
18328                    html += lib3p_helper.product.parseWithAction(item, 'lib3p.pageCart.onHopGiaySuggestCart_Click(this)');
18329                });
18330                jQuery('.page-cart .hop-giay-suggest .danh-sach .product-list.owl-carousel').html(html);
18331                jQuery('.page-cart .hop-giay-suggest .danh-sach .product-list.owl-carousel').owlCarousel({
18332                    autoplay: false,
18333                    autoplayTimeout: 3000,
18334                    autoplayHoverPause: true,
18335                    autoWidth: true,
18336                    loop: false,
18337                    nav: true,
18338                    dots: false,
18339                    margin: 20,
18340                    navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
18341                    navElement: 'div'
18342                });
18343                jQuery('.mobile-cart .hop-giay-suggest .danh-sach .product-list.owl-carousel').html(html);
18344                jQuery('.mobile-cart .hop-giay-suggest .danh-sach .product-list.owl-carousel').owlCarousel({
18345                    autoplay: false,
18346                    autoplayTimeout: 3000,
18347                    autoplayHoverPause: false,
18348                    autoWidth: true,
18349                    loop: false,
18350                    nav: false,
18351                    dots: false,
18352                    margin: 10,
18353                });
18354            }
18355        },
18356        onHopGiaySuggestCart_Click: function (el) {
18357            var data = jQuery(el).data();
18358            var item = {
18359                Code: -1,
18360                IsChoose: true,
18361                ProductID: parseInt(data.code, 10),
18362                ProductName: data.name,
18363                ImageSetting: data.img,
18364                UnitPrice: data.price,
18365                PriceBase: data.pricebase,
18366                IsHachi24: data.hachi24,
18367                OrderQuantity: 1,
18368                CartID: -1,
18369                LastModifiedTime: new Date()
18370            };
18371            var flag = true;
18372            if (data.Quantity >= 0) {
18373                if (data.Quantity == 0) {
18374                    flag = false;
18375                }
18376            }
18377            if (flag == true) {
18378                window.pars3p.cart.LastModifiedTime = new Date();
18379                if (window.pars3p.cart.Code > 0) {
18380                    item.CartID = window.pars3p.cart.Code;
18381                }
18382                if (window.pars3p.cart.CartDetails.length == 0) {
18383                    window.pars3p.cart.CartDetails.push(item);
18384                }
18385                else {
18386                    var temp = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == item.ProductID; });
18387                    if (lib3p_helper.utility.hasValue(temp)) {
18388                        temp.UnitPrice = item.UnitPrice;
18389                        temp.PriceBase = item.PriceBase;
18390                        temp.LastModifiedTime = new Date();
18391                        item = temp;
18392                        item.OrderQuantity++;
18393                    }
18394                    else {
18395                        window.pars3p.cart.CartDetails.push(item);
18396                    }
18397                }
18398                if (window.pars3p.auth.isLogin == true) {
18399                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductAdd, { detail: item }, function (res) {
18400                        if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
18401                            if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
18402                                if (res.ObjectReturn.CartID > 0) {
18403                                    item.OrderQuantity = res.ObjectReturn.OrderQuantity;
18404                                    lib3p.pageCart.Cache_Check();
18405                                    lib3p.common_cartSet(window.pars3p.cart);
18406                                    lib3p.pageCart.Cart_LoadHeader();
18407                                    lib3p.header.Notify_Show('Đã thêm ' + data.name + ' vào giỏ hàng!');
18408                                    lib3p.pageCart.onHopGiaySuggest_ClickLoad();
18409                                }
18410                            }
18411                        }
18412                    }, function (err) {
18413
18414                    });
18415                }
18416                else {
18417                    lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: [item.ProductID] }, function (res) {
18418                        if (lib3p_helper.utility.hasListValue(res)) {
18419                            if (!(res[0].Quantity > 0 && res[0].QuantityWithOrder > 0)) {
18420                                item.OrderQuantity = 0;
18421                            }
18422                            else if (res[0].QuantityWithOrder < item.OrderQuantity) {
18423                                item.OrderQuantity = res[0].QuantityWithOrder;
18424                            }
18425                            var index = window.pars3p.cart.CartDetails.findIndex(function (c) { return c.ProductID == item.ProductID; });
18426                            if (index >= 0 && item.OrderQuantity == 0) {
18427                                window.pars3p.cart.CartDetails.splice(index, 1);
18428                            }
18429                            lib3p.pageCart.Cache_Check();
18430                            lib3p.common_cartSet(window.pars3p.cart);
18431                            lib3p.pageCart.Cart_LoadHeader();
18432                            lib3p.header.Notify_Show('Đã thêm ' + data.name + ' vào giỏ hàng!');
18433                            lib3p.pageCart.onHopGiaySuggest_ClickLoad();
18434                        }
18435                    }, function (err) {
18436
18437                    });
18438                }
18439
18440            }
18441        },
18442        onHopGiaySuggest_Click: function (el) {
18443            var data = jQuery(el).data();
18444            var item = {
18445                Code: -1,
18446                IsChoose: true,
18447                ProductID: parseInt(data.code, 10),
18448                ProductName: data.name,
18449                ImageSetting: data.img,
18450                UnitPrice: data.price,
18451                PriceBase: data.pricebase,
18452                IsHachi24: data.hachi24,
18453                OrderQuantity: 1,
18454                CartID: -1,
18455                LastModifiedTime: new Date()
18456            };
18457            window.pars3p.cart.LastModifiedTime = new Date();
18458            if (window.pars3p.cart.Code > 0) {
18459                item.CartID = window.pars3p.cart.Code;
18460            }
18461            //lấy item trong giỏ hàng
18462            if (window.pars3p.cart.CartDetails.length == 0) {
18463                window.pars3p.cart.CartDetails.push(item);
18464            }
18465            else {
18466                var temp = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == item.ProductID; });
18467                if (lib3p_helper.utility.hasValue(temp)) {
18468                    temp.UnitPrice = item.UnitPrice;
18469                    temp.PriceBase = item.PriceBase;
18470                    temp.LastModifiedTime = new Date();
18471                    item = temp;
18472                    item.OrderQuantity++;
18473                }
18474                else {
18475                    window.pars3p.cart.CartDetails.push(item);
18476                }
18477            }
18478            lib3p.common_LoadingShow();
18479            if (window.pars3p.auth.isLogin == true) {
18480                lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductAdd, { detail: item }, function (res) {
18481                    if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
18482                        lib3p.pageCart.onHopGiaySuggest_ClickLoad();
18483                    }
18484                    else {
18485                        lib3p.common_LoadingHide();
18486                    }
18487                }, function (err) {
18488                    lib3p.common_LoadingHide();
18489                    console.log(err);
18490                });
18491            }
18492            else {
18493                lib3p.pageCart.Cache_Check();
18494                lib3p.common_cartSet(window.pars3p.cart);
18495                lib3p.pageCart.onHopGiaySuggest_ClickLoad();
18496            }
18497        },
18498        onHopGiaySuggest_ClickLoad: function () {
18499            if (window.pars3p.auth.isLogi
18499n == true) {
18500                lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductTotal, { cart: { Cart: { Code: -1 } } }, function (res) {
18501                    lib3p.common_LoadingHide();
18502                    if (res.StatusCode == 0) {
18503                        if (lib3p_helper.utility.hasValue(res.ObjectReturn) && lib3p_helper.utility.hasListValue(res.ObjectReturn.CartDetails)) {
18504                            window.pars3p.cart.lastUser = window.pars3p.auth.userName;
18505                            window.pars3p.cart.lastDate = new Date();
18506                            window.pars3p.cart.CartDetails = [];
18507                            window.pars3p.cart.CartCoupon = [];
18508                            window.pars3p.cart.ListCoupon = [];
18509                            window.pars3p.cart.CartNoti = [];
18510                            window.pars3p.cart.CartCombo = [];
18511                            window.pars3p.cart.TypeOfTransportation = [];
18512                            lib3p_helper.cart.copyCart(res.ObjectReturn);
18513                            if (window.pars3p.cart.StepDate && window.pars3p.cart.StepDate.getTime) {
18514                                window.pars3p.cart.timeOrderCalculateNext = window.pars3p.cart.StepDate.getTime() + window.pars3p.timeOrderCalculate;
18515                            }
18516                            else {
18517                                window.pars3p.cart.timeOrderCalculateNext = (new Date()).getTime() + window.pars3p.timeOrderCalculate;
18518                            }
18519                            lib3p.pageCart.Cache_Check();
18520                            lib3p.common_cartSet(window.pars3p.cart);
18521                            lib3p.pageCart.Cart_LoadHeader();
18522                            lib3p.pageCart.Cart_LoadNoti();
18523                            lib3p.pageCart.Cart_LoadBody();
18524                            lib3p.pageCart.Cart_LoadGift();
18525                            lib3p.pageCart.Cart_LoadTotal();
18526                            lib3p.pageCart.Cart_ListCoupon();
18527                            lib3p.pageCart.Cart_SuggestCombo();
18528                        }
18529                    }
18530                }, function (err) {
18531                    lib3p.common_LoadingHide();
18532                    console.log(err);
18533                });
18534            }
18535            else {
18536                if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
18537                    if (window.pars3p.cart.lastUser != '' || window.pars3p.cart.lastDate == null) {
18538                        window.pars3p.cart.lastUser = '';
18539                        window.pars3p.cart.lastDate = null;
18540                        window.pars3p.cart.Code = -1;
18541                    }
18542                    var req = {
18543                        Cart: {},
18544                        CartDetails: window.pars3p.cart.CartDetails,
18545                        CartCoupon: window.pars3p.cart.CartCoupon,
18546                        CartCombo: [],
18547                    };
18548                    req.Cart = lib3p_helper.cart.getCartInfo();
18549
18550                    lib3p.common_PostURL(window.pars3p.api.public.Cart_ProductTotal, { cart: req }, function (res) {
18551                        lib3p.common_LoadingHide();
18552                        if (res.StatusCode == 0) {
18553                            if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
18554                                window.pars3p.cart.lastUser = window.pars3p.auth.userName;
18555                                window.pars3p.cart.lastDate = new Date();
18556                                window.pars3p.cart.CartDetails = [];
18557                                window.pars3p.cart.CartCoupon = [];
18558                                window.pars3p.cart.ListCoupon = [];
18559                                window.pars3p.cart.CartNoti = [];
18560                                window.pars3p.cart.CartCombo = [];
18561                                window.pars3p.cart.TypeOfTransportation = [];
18562                                lib3p_helper.cart.copyCart(res.ObjectReturn);
18563                                window.pars3p.cart.CartCoupon = window.pars3p.cart.CartCoupon.filter(function (c) { return lib3p_helper.utility.hasValue(c) && c.CouponID > 0; });
18564                                lib3p.pageCart.Cache_Check();
18565                                lib3p.common_cartSet(window.pars3p.cart);
18566                                lib3p.pageCart.Cart_LoadHeader();
18567                                lib3p.pageCart.Cart_LoadNoti();
18568                                lib3p.pageCart.Cart_LoadBody();
18569                                lib3p.pageCart.Cart_LoadGift();
18570                                lib3p.pageCart.Cart_LoadTotal();
18571                                lib3p.pageCart.Cart_ListCoupon();
18572                                lib3p.pageCart.Cart_SuggestCombo();
18573                            }
18574                        }
18575                    }, function (err) {
18576                        lib3p.common_LoadingHide();
18577                        console.log(err);
18578                    });
18579                }
18580            }
18581        },
18582        Cart_ListCoupon: function () {
18583            jQuery('.page-cart .coupon .list-choose').hide();
18584            jQuery('.mobile-cart .coupon .list-choose').hide();
18585            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
18586                var html1 = '';
18587                window.pars3p.cart.CartCoupon.forEach(function (c, cidx) {
18588                    if (c.HasError == true) {
18589                        html1 += '<div class="item b-red500"><div class="text s13 cl-white regular400">' + c.CouponName + '</div><div class="xoa"><button type="button" aria-label="hachihachi" onclick="lib3p.pageCart.onCartCoupon_Delete(' + c.CouponID + ')"><span class="hachi-icon-close"></span></button></div></div>';
18590                    }
18591                    else {
18592                        html1 += '<div class="item b-dakgreen100"><div class="text s13 cl-gregray900 regular400">' + c.CouponName + '</div><div class="xoa"><button type="button" aria-label="hachihachi" onclick="lib3p.pageCart.onCartCoupon_Delete(' + c.CouponID + ')"><span class="hachi-icon-close"></span></button></div></div>';
18593                    }
18594                });
18595                jQuery('.page-cart .coupon .list-choose').html(html1);
18596                jQuery('.page-cart .coupon .list-choose').show();
18597                jQuery('.mobile-cart .coupon .list-choose').html(html1);
18598                jQuery('.mobile-cart .coupon .list-choose').show();
18599                if (lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (o) { return o.HasError == true; }))) {
18600                    //jQuery('.page-cart .coupon .sub-1-error').html('Mã giảm giá đã chọn không phù hợp');
18601                    //jQuery('.mobile-cart .coupon .sub-1-error').html('Mã giảm giá đã chọn không phù hợp');
18602                }
18603            }
18604            else {
18605                jQuery('.page-cart .coupon .list-choose').html('');
18606                jQuery('.mobile-cart .coupon .list-choose').html('');
18607            }
18608            jQuery('.page-cart .coupon .list-choose-type').hide();
18609            jQuery('.mobile-cart .coupon .list-choose-type').hide();
18610            jQuery('.popup-cart-coupon-choose .list-public .giam-san-pham').hide();
18611            jQuery('.popup-cart-coupon-choose .list-public .giam-don-hang').hide();
18612            jQuery('.popup-cart-coupon-choose .list-public .giam-ship').hide();
18613            jQuery('.popup-cart-coupon-choose .list-public .giam-mua-sam').hide();
18614            jQuery('.mobile-cart .coupon .list-public .giam-san-pham').hide();
18615            jQuery('.mobile-cart .coupon .list-public .giam-don-hang').hide();
18616            jQuery('.mobile-cart .coupon .list-public .giam-ship').hide();
18617            jQuery('.mobile-cart .coupon .list-public .giam-mua-sam').hide();
18618            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)) {
18619                var dtCompare = lib3p_helper.utility.dateAddDay(new Date(), 7).getTime();
18620                var hasExpiredPrivate = false;
18621                window.pars3p.cart.ListCoupon.sort(function (a, b) { return a.LimitInv - b.LimitInv; });
18622                window.pars3p.cart.ListCoupon.forEach(function (c) {
18623                    if (c.IsPrivate == true) {
18624                        if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
18625                            var dt = new Date(c.ExpiredDate).getTime();
18626                            if (dt <= dtCompare) {
18627                                hasExpiredPrivate = true;
18628                                c.IsExpired = true;
18629                            }
18630                        }
18631                    }
18632                });
18633                if (hasExpiredPrivate == true) {
18634                    jQuery('.page-cart .private-expired').show();
18635                    jQuery('.mobile-cart .private-expired').show();
18636                }
18637                else {
18638                    jQuery('.page-cart .private-expired').hide();
18639                    jQuery('.mobile-cart .private-expired').hide();
18640                }
18641
18642                var lstChoose = window.pars3p.cart.CartCoupon.filter(function (c) { return c.CouponID > 0; }).map(function (c) { return c.CouponID; });
18643                var lstChooseErr = window.pars3p.cart.CartCoupon.filter(function (c) { return c.CouponID > 0 && c.HasError != true; }).map(function (c) { return c.CouponID; });
18644
18645                var html2 = '';
18646                var offerShipList = [];
18647                var offerShipAmount = -1;
18648                var findCoupon = window.pars3p.cart.CartCoupon.find(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCartShipping && c.HasError != true; });
18649                if (lib3p_helper.utility.hasValue(findCoupon)) {
18650                    offerShipAmount = findCoupon.CouponBaseAmount;
18651                }
18652                var offerOrderList = [];
18653                var offerOrderAmount = -1;
18654                findCoupon = window.pars3p.cart.CartCoupon.find(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCart && c.HasError != true; });
18655                if (lib3p_helper.utility.hasValue(findCoupon)) {
18656                    offerOrderAmount = findCoupon.CouponAmount;
18657                }
18658
18659                var lst = window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponProduct || c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponProductShipping; });
18660                if (lib3p_helper.utility.hasListValue(lst)) {
18661                    var html = '';
18662                    lst.forEach(function (c, cidx) {
18663                        var dt = lib3p_helper.utility.dateGet(c.ExpiredDate);
18664                        html += '<div class="item-outline">';
18665                        if (c.IsEnabled == true) {
18666                            html += '<div class="item type-1"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
18667                            if (c.IsPrivate == true) {
18668                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
18669                            }
18670                            html += '</div></div>';
18671                            if (lstChoose.indexOf(c.Code) >= 0) {
18672                                c.IsUse = true;
18673                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" checked /></div>';
18674                            }
18675                            else {
18676                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" /></div>';
18677                            }
18678                        }
18679                        else {
18680                            html += '<div class="item type-empty"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
18681                            if (c.IsPrivate == true) {
18682                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
18683                            }
18684                            html += '</div></div>';
18685                            html += '<div class="check"><input type="checkbox" disabled="disabled" /></div>';
18686                        }
18687                        html += '</div>';
18688
18689                        if (c.IsPrivate != true) {
18690                            if (c.IsEnabled == true) {
18691                                if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
18692                                    html2 += '<div class="item" onclick="lib3p.pageCart.onCouponChoose_Click(' + c.Code + ')"><div class="type-1"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
18693                                }
18694                            }
18695                            else {
18696                                html2 += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
18697                            }
18698                        }
18699                    });
18700                    jQuery('.popup-cart-coupon-choose .list-public .giam-san-pham .data').html(html);
18701                    jQuery('.popup-cart-coupon-choose .list-public .giam-san-pham').show();
18702                    jQuery('.mobile-cart .coupon .list-public .giam-san-pham .data').html(html);
18703                    jQuery('.mobile-cart .coupon .list-public .giam-san-pham').show();
18704                }
18705                lst = window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
18705ouponCart; });
18706                if (lib3p_helper.utility.hasListValue(lst)) {
18707                    var html = '';
18708                    lst.forEach(function (c, cidx) {
18709                        var dt = lib3p_helper.utility.dateGet(c.ExpiredDate);
18710                        html += '<div class="item-outline">';
18711                        if (c.IsEnabled == true) {
18712                            html += '<div class="item type-2"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
18713                            if (c.IsPrivate == true) {
18714                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
18715                            }
18716                            html += '</div></div>';
18717                            if (lstChoose.indexOf(c.Code) >= 0) {
18718                                c.IsUse = true;
18719                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" checked /></div>';
18720                            }
18721                            else {
18722                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" /></div>';
18723                            }
18724                        }
18725                        else {
18726                            html += '<div class="item type-empty"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
18727                            if (c.IsPrivate == true) {
18728                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
18729                            }
18730                            html += '</div></div>';
18731                            html += '<div class="check"><input type="checkbox" disabled="disabled" /></div>';
18732                        }
18733                        html += '</div>';
18734
18735                        if (c.IsPrivate != true) {
18736                            if (c.IsEnabled == true) {
18737                                if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
18738                                    html2 += '<div class="item" onclick="lib3p.pageCart.onCouponChoose_Click(' + c.Code + ')"><div class="type-2"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
18739                                }
18740                            }
18741                            else {
18742                                html2 += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
18743                            }
18744                        }
18745                        c.TempAmountCoupon = 0;
18746                        if (c.IsPercent == true) {
18747                            c.TempAmountCoupon = c.CouponAmount * (window.pars3p.cart.TotalAmount / 100);
18748                            if (c.LimitAmount > 0 && c.LimitAmount <= c.TempAmountCoupon) {
18749                                c.TempAmountCoupon = c.LimitAmount;
18750                            }
18751                        }
18752                        else {
18753                            c.TempAmountCoupon = c.CouponAmount;
18754                        }
18755                        if (!(lstChoose.indexOf(c.Code) >= 0)) {
18756                            if (c.TempAmountCoupon > offerOrderAmount) {
18757                                offerOrderList.push(c);
18758                            }
18759                            else if (!(offerOrderAmount > 0) && c.IsEnabled == true) {
18760                                offerOrderList.push(c);
18761                            }
18762                        }
18763                    });
18764                    jQuery('.popup-cart-coupon-choose .list-public .giam-don-hang .data').html(html);
18765                    jQuery('.popup-cart-coupon-choose .list-public .giam-don-hang').show();
18766                    jQuery('.mobile-cart .coupon .list-public .giam-don-hang .data').html(html);
18767                    jQuery('.mobile-cart .coupon .list-public .giam-don-hang').show();
18768                }
18769                lst = window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
18769ouponCartShipping; });
18770                if (lib3p_helper.utility.hasListValue(lst)) {
18771                    var html = '';
18772                    lst.forEach(function (c, cidx) {
18773                        var dt = lib3p_helper.utility.dateGet(c.ExpiredDate);
18774                        html += '<div class="item-outline">';
18775                        if (c.IsEnabled == true) {
18776                            html += '<div class="item type-3"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
18777                            if (c.IsPrivate == true) {
18778                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
18779                            }
18780                            html += '</div></div>';
18781                            if (lstChoose.indexOf(c.Code) >= 0) {
18782                                c.IsUse = true;
18783                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" checked /></div>';
18784                            }
18785                            else {
18786                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" /></div>';
18787                            }
18788                        }
18789                        else {
18790                            html += '<div class="item type-empty"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
18791                            if (c.IsPrivate == true) {
18792                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
18793                            }
18794                            html += '</div></div>';
18795                            html += '<div class="check"><input type="checkbox" disabled="disabled" /></div>';
18796                        }
18797                        html += '</div>';
18798
18799                        if (c.IsPrivate != true) {
18800                            if (window.pars3p.cart.ShippingFee > 0 && c.IsEnabled == true) {
18801                                if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
18802                                    html2 += '<div class="item" onclick="lib3p.pageCart.onCouponChoose_Click(' + c.Code + ')"><div class="type-3"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
18803                                }
18804                            }
18805                            else {
18806                                html2 += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
18807                            }
18808                        }
18809                        c.TempAmountCoupon = 0;
18810                        if (window.pars3p.cart.ShippingFee > 0) {
18811                            if (c.IsPercent == true) {
18812                                c.TempAmountCoupon = c.CouponAmount * (window.pars3p.cart.ShippingFee / 100);
18813                                if (c.LimitAmount > 0 && c.LimitAmount <= c.TempAmountCoupon) {
18814                                    c.TempAmountCoupon = c.LimitAmount;
18815                                }
18816                            }
18817                            else {
18818                                c.TempAmountCoupon = c.CouponAmount;
18819                            }
18820                            if (c.TempAmountCoupon > window.pars3p.cart.ShippingFee) {
18821                                c.TempAmountCoupon = window.pars3p.cart.ShippingFee;
18822                            }
18823                        }
18824                        if (!(lstChooseErr.indexOf(c.Code) >= 0)) {
18825                            if (c.CouponBaseAmount > offerShipAmount) {
18826                                offerShipList.push(c);
18827                            }
18828                            else if (!(offerShipAmount > 0) && c.IsEnabled == true) {
18829                                offerShipList.push(c);
18830                            }
18831                        }
18832                    });
18833                    jQuery('.popup-cart-coupon-choose .list-public .giam-ship .data').html(html);
18834                    jQuery('.popup-cart-coupon-choose .list-public .giam-ship').show();
18835                    jQuery('.mobile-cart .coupon .list-public .giam-ship .data').html(html);
18836                    jQuery('.mobile-cart .coupon .list-public .giam-ship').show();
18837                }
18838                lst = window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.Coupon; });
18839                if (lib3p_helper.utility.hasListValue(lst)) {
18840                    var html = '';
18841                    lst.forEach(function (c, cidx) {
18842                        var dt = lib3p_helper.utility.dateGet(c.ExpiredDate);
18843                        html += '<div class="item-outline">';
18844                        if (c.IsEnabled == true) {
18845                            html += '<div class="item type-4"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
18846                            if (c.IsPrivate == true) {
18847                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
18848                            }
18849                            html += '</div></div>';
18850                            if (lstChoose.indexOf(c.Code) >= 0) {
18851                                c.IsUse = true;
18852                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" checked /></div>';
18853                            }
18854                            else {
18855                                html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCart.onCartCoupon_Check(this,' + c.Code + ')" /></div>';
18856                            }
18857                        }
18858                        else {
18859                            html += '<div class="item type-empty"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode;
18860                            if (c.IsPrivate == true) {
18861                                html += '&nbsp;&nbsp;|&nbsp;&nbsp;HSD:' + lib3p_helper.utility.formatDateDDMMYYYY(dt);
18862                            }
18863                            html += '</div></div>';
18864                            html += '<div class="check"><input type="checkbox" disabled="disabled" /></div>';
18865                        }
18866                        html += '</div>';
18867
18868                        if (c.IsPrivate != true) {
18869                            if (c.IsEnabled == true) {
18870                                if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
18871                                    html2 += '<div class="item" onclick="lib3p.pageCart.onCouponChoose_Click(' + c.Code + ')"><div class="type-4"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
18872                                }
18873                            }
18874                            else {
18875                                html2 += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
18876                            }
18877                        }
18878                    });
18879                    jQuery('.popup-cart-coupon-choose .list-public .giam-mua-sam .data').html(html);
18880                    jQuery('.popup-cart-coupon-choose .list-public .giam-mua-sam').show();
18881                    jQuery('.mobile-cart .coupon .list-public .giam-mua-sam .data').html(html);
18882                    jQuery('.mobile-cart .coupon .list-public .giam-mua-sam').show();
18883                }
18884                jQuery('.page-cart .coupon .list-choose-type').html(html2);
18885                jQuery('.mobile-cart .coupon .list-choose-type').html(html2);
18886                jQuery('.page-cart .coupon .list-choose-type').show();
18887                jQuery('.mobile-cart .coupon .list-choose-type').show();
18888
18889                var mobileNote = '';
18890                if (window.pars3p.cart.ShippingFee > 0) {
18891                    if (offerShipList.length > 0) {
18892                        var first = offerShipList[0];
18893                        var txt = 'Đừng quên chọn mã FREESHIP để tiết kiệm hơn nhé!';
18894                        if (first.IsEnabled != true) {
18895                            if (window.pars3p.cart.TotalAmount < 200000) {
18896                                txt = 'Mua đủ 200K để áp mã ' + first.CouponName;
18897                                mobileNote = '<div>' + txt + '</div>';
18898                            }
18899                        }
18900                        jQuery('.page-cart .van-chuyen-offer .tieu-de .txt').html(txt);
18901                        jQuery('.mobile-cart .van-chuyen-offer .tieu-de .txt').html(txt);
18902                    }
18903                    if (offerOrderList.length > 0 && (!lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon) || window.pars3p.cart.CartCoupon.filter(function (c) { return c.HasError == true; }).length == 0)) {
18904                        offerOrderList.sort(function (a, b) { return (b.TempAmountCoupon + (b.IsEnabled == true ? window.pars3p.cart.TotalAmount : 0)) - (a.TempAmountCoupon + (a.IsEnabled == true ? window.pars3p.cart.TotalAmount : 0)); });
18905                        var first = offerOrderList[0];
18906                        var txt = 'Mua sắm tiết kiệm với mã giảm chỉ dành cho đơn online';
18907                        if (first.IsEnabled != true && window.pars3p.cart.TotalAmount > (first.LimitInv / 2)) {
18908                            var sub = first.LimitInv - window.pars3p.cart.TotalAmount;
18909                            var giam = lib3p_helper.utility.formatMoney(first.CouponBaseAmount) + 'đ';
18910                            if (first.IsPercent == true) {
18911                                giam = first.CouponBaseAmount + '%';
18912                            }
18913                            txt = 'Mua thêm ' + lib3p_helper.utility.formatMoney(sub) + 'đ' + ' để được giảm ' + giam + ' đơn hàng';
18914                            mobileNote = '<div>' + 'Mua thêm ' + lib3p_helper.utility.formatMoney(sub) + 'đ' + ' để đơn giảm ' + giam + '</div>';
18915                        }
18916                        jQuery('.page-cart .order-offer .tieu-de .txt').html(txt);
18917                        jQuery('.mobile-cart .order-offer .tieu-de .txt').html(txt);
18918
18919                        html = '';
18920                        offerOrderList.forEach(function (c, cidx) {
18921                            var strExpired = '';
18922                            if (c.IsExpired == true) {
18923                                strExpired = '<div class="expired b-orange-50"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-exclamation.svg" /><span class="s13 cl-gregray900 regular400">Sắp hết hạn</span></div>';
18924                            }
18925                            if (c.IsEnabled == true) {
18926                                html += '<div class="item" onclick="lib3p.pageCart.onCouponChoose_Click(' + c.Code + ')"><div class="type-2"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div>' + strExpired + '</div>';
18927                            }
18928                            else {
18929                                html += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div>' + strExpired + '</div>';
18930                            }
18931                        });
18932                        jQuery('.page-cart .order-offer .list-choose-type').html(html);
18933                        jQuery('.mobile-cart .order-offer .list-choose-type').html(html);
18934                        jQuery('.page-cart .order-offer').show();
18935                        jQuery('.mobile-cart .order-offer').show();
18936                    }
18937                    else {
18938                        jQuery('.page-cart .order-offer').hide();
18939                        jQuery('.mobile-cart .order-offer').hide();
18940                    }
18941                }
18942                else {
18943                    jQuery('.page-cart .order-offer').hide();
18944                    jQuery('.mobile-cart .order-offer').hide();
18945                    offerShipList = [];
18946                    offerOrderList = [];
18947                }
18948                if (jQuery('.mobile-cart .cart-total .list-sub .list-sub-sticky .sub-offer').hasClass('hascoupon')) {
18949                    jQuery('.mobile-cart .cart-total .list-sub .list-sub-sticky .sub-offer').removeClass('hascoupon');
18950                }
18951                window.pars3p.listCouponOffer = [];
18952                if (!lib3p_helper.utility.hasListValue(lstChoose) && lib3p_helper.utility.hasListValue(offerShipList) && lib3p_helper.utility.hasListValue(offerOrderList)) {
18953                    var findOfferShip = null;
18954                    var findOfferOrder = null;
18955                    offerShipList.forEach(function (c) {
18956                        if (c.IsEnabled == true) {
18957                            if (!lib3p_helper.utility.hasValue(findOfferShip)) {
18958                                findOfferShip = c;
18959                            }
18960                            else if (findOfferShip.CouponBaseAmount < c.CouponBaseAmount) {
18961                                findOfferShip = c;
18962                            }
18963                        }
18964                    });
18965                    offerOrderList.forEach(function (c) {
18966                        if (c.IsEnabled == true && !lib3p_helper.utility.hasValue(findOfferOrder)) {
18967                            findOfferOrder = c;
18968                        }
18969                    });
18970                    if (lib3p_helper.utility.hasValue(findOfferShip) || lib3p_helper.utility.hasValue(findOfferOrder)) {
18971                        //mobileNote = '';
18972                        if (lib3p_helper.utility.hasValue(findOfferShip)) {
18973                            window.pars3p.listCouponOffer.push(findOfferShip);
18974                            //mobileNote += ',' + findOfferShip.Code;
18975                        }
18976                        if (lib3p_helper.utility.hasValue(findOfferOrder)) {
18977                            window.pars3p.listCouponOffer.push(findOfferOrder);
18978                            //mobileNote += ',' + findOfferOrder.Code;
18979                        }
18980                        mobileNote = '<div>Lựa chọn mã giảm tốt nhất cho đơn này</div><button class="coupon-ok sl-gregray200 b-white s13 cl-dakgreen650 sibold600" onclick="lib3p.pageCart.onCouponOfferOk_Click()">Đồng ý</button>';
18981                        jQuery('.mobile-cart .cart-total .list-sub .list-sub-sticky .sub-offer').addClass('hascoupon');
18982                    }
18983                }
18984                else if(lib3p_helper.utility.hasListValue(offerShipList) && window.pars3p.cart.CartCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
18984ouponCartShipping; }).length == 0) {
18985                    var first = offerShipList[0];
18986                    if(first.IsEnabled == true) {
18987                        if(offerShipList.length > 1) {
18988                            var next = offerShipList[1];
18989                            if(first.CouponBaseAmount < next.CouponBaseAmount && next.IsEnabled == true) {
18990                                first = next;
18991                            }
18992                        }
18993                        window.pars3p.listCouponOffer.push(first);
18994                    }                    
18995                }
18996
18997                jQuery('.page-cart .cart-bottom-fix .left .cart-offer').html('');
18998                jQuery('.page-cart .cart-bottom-fix .left').removeClass('hasoffer');
18999                jQuery('.mobile-cart .cart-total .list-sub .list-sub-sticky .sub-offer').html('');
19000                jQuery('.mobile-cart .cart-total .list-sub .list-sub-sticky').removeClass('hasoffer');
19001                if (lib3p_helper.utility.hasValueString(mobileNote)) {
19002                    jQuery('.page-cart .cart-bottom-fix .left .cart-offer').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/pig.svg" />' + mobileNote);
19003                    jQuery('.page-cart .cart-bottom-fix .left').addClass('hasoffer');
19004                    jQuery('.mobile-cart .cart-total .list-sub .list-sub-sticky .sub-offer').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/pig.svg" />' + mobileNote);
19005                    jQuery('.mobile-cart .cart-total .list-sub .list-sub-sticky').addClass('hasoffer');
19006                }
19007            }
19008        },
19009        onCouponChoose_Click: function (id) {
19010            var find = window.pars3p.cart.ListCoupon.find(function (c) { return c.CouponID == id; });
19011            var exists = window.pars3p.cart.CartCoupon.find(function (c) { return c.CouponID == id; });
19012            if (lib3p_helper.utility.hasValue(find) && !lib3p_helper.utility.hasValue(exists)) {
19013                if (find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCart || find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCartShipping) {
19014                    var index = window.pars3p.cart.CartCoupon.findIndex(function (c) { return c.TypeData == find.TypeData });
19015                    if (index >= 0) {
19016                        window.pars3p.cart.CartCoupon.splice(index, 1);
19017                    }
19018                }
19019                lib3p.header.Notify_Show('Áp dụng ' + find.CouponName + ' thành công!');
19020                if (window.pars3p.auth.isLogin == true) {
19021                    window.pars3p.cart.CartCoupon.push(find);
19022                    lib3p.common_cartSet(window.pars3p.cart);
19023                    lib3p.pageCart.Cart_ProductTotal(true);
19024                }
19025                else {
19026                    window.pars3p.cart.CartCoupon.push(find);
19027                    lib3p.common_cartSet(window.pars3p.cart);
19028                    lib3p.pageCart.Cart_ListCoupon();
19029                    lib3p.pageCart.Cart_ProductTotal();
19030                }
19031            }
19032        },
19033        onCouponOfferOk_Click: function() {
19034            if (lib3p_helper.utility.hasListValue(window.pars3p.listCouponOffer)) {
19035                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)) {
19036                    //window.pars3p.cart.CartCoupon = window.pars3p.cart.ListCoupon.filter(function(o) { return lst.indexOf(o.Code) >= 0; });
19037                    window.pars3p.cart.CartCoupon = window.pars3p.listCouponOffer;
19038                    lib3p.header.Notify_Show('Áp dụng mã giảm tốt nhất thành công!');
19039                    if (window.pars3p.auth.isLogin == true) {
19040                        lib3p.pageCart.Cart_ListCoupon();
19041                        lib3p.pageCart.Cart_ProductTotal(true);
19042                    }
19043                    else {
19044                        lib3p.pageCart.Cart_ListCoupon();
19045                        lib3p.pageCart.Cart_ProductTotal();
19046                    }
19047                }
19048            }
19049        },
19050        Cart_SuggestCombo: function () {
19051            lib3p.pageCart.Cart_SuggestCombo_async().then(function (data) {
19052
19053            }, function (err) {
19054                console.log(err);
19055                //alert(err);
19056            });
19057        },
19058        Cart_SuggestCombo_async: function () {
19059            return new Promise(function (resolve, reject) {
19060                setTimeout(function () {
19061                    var cart = {
19062                        Cart: {
19063                            Code: -1
19064                        },
19065                        CartDetails: window.pars3p.cart.CartDetails
19066                    };
19067
19068                    lib3p.common_PostURL(window.pars3p.api.public.Cart_SuggestCombo, { cart: cart }, function (res) {
19069                        if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.SuggestCombo)) {
19070                            window.pars3p.listSuggestCombo = res.SuggestCombo;
19071                            var lst = [];
19072                            res.SuggestCombo.forEach(function (c, cidx) {
19073                                c.ListCombo.forEach(function (d, didx) {
19074                                    var find = lst.find(function (e) { return e.ProductID == d.ProductID; });
19075                                    if (!lib3p_helper.utility.hasValue(find)) {
19076                                        find = { ProductID: d.ProductID, ImageSetting: d.ImageSetting, ProductName: d.ProductName, Alias: d.Alias, UnitPrice: d.UnitPrice, BasePrice: d.BasePrice, List: [] };
19077                                        lst.push(find);
19078                                    }
19079                                    find.List.push(c);
19080                                });
19081                            });
19082                            lst.forEach(function (c, cidx) {
19083                                var query = jQuery('.page-cart .cart .data-content .product-suggest-combo.product' + c.ProductID);
19084                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
19085                                    var html = '';
19086                                    html += '<a class="down" onclick="lib3p.pageCart.onCart_SuggestCombo_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/combo-tiet-kiem.svg" /><span class="s14 cl-gregray900 medium500">Nếu bạn chọn combo sẽ tiết kiệm hơn bạn có muốn chuyển sang combo không ?</span><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-down.svg" /></a>';
19087                                    html += '<fieldset class="sl-green500">';
19088                                    html += '<legend class="down s14 cl-gregray900 medium500"><a class="up" onclick="lib3p.pageCart.onCart_SuggestCombo_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/combo-tiet-kiem.svg" /><span class="s14 cl-gregray900 medium500">Nếu bạn chọn combo sẽ tiết kiệm hơn bạn có muốn chuyển sang combo không ?</span><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-up.svg" /></a></legend>';
19089                                    html += '<div class="list">';
19090                                    c.List.forEach(function (d, didx) {
19091                                        html += '<div class="product">';
19092                                        html += '<div class="choose"><input type="checkbox" onchange="lib3p.pageCart.onCart_SuggestCombo_Check(this,' + d.ProductID + ')" /></div>';
19093                                        html += '<div class="image"><a href="' + d.Alias + '"><img src="' + d.ImageSetting + '" /></a></div>';
19094                                        //info start ---
19095                                        html += '<div class="info">';
19096                                        html += '<div class="name s14 cl-gregray900 medium500"><a href="' + d.Alias + '">' + d.ProductName + '</a></div>';
19097                                        //action start ---       
19098                                        html += '<div class="action">';
19099                                        html += '<div class="price s14 sibold600">';
19100                                        if (d.BasePrice > 0 && d.UnitPrice != d.BasePrice) {
19101                                            html += '<span class="sale cl-red400">' + lib3p_helper.utility.formatMoney(d.UnitPrice) + 'đ</span>';
19102                                            html += '<span class="sale-base cl-gregray550">&nbsp;' + lib3p_helper.utility.formatMoney(d.BasePrice) + 'đ</span>';
19103                                        }
19104                                        else {
19105                                            html += '<span class="base cl-dakgreen800">' + lib3p_helper.utility.formatMoney(d.UnitPrice) + 'đ</span>';
19106                                        }
19107                                        html += '</div>';
19108                                        html += '</div>';
19109                                        //action end ---
19110                                        html += '</div>';
19111                                        //info end ---
19112                                        html += '</div>';
19113                                    });
19114                                    html += '</div>';
19115                                    html += '</fieldset>';
19116                                    query.html(html);
19117                                    if (!query.hasClass('hienthi')) {
19118                                        query.addClass('hienthi');
19119                                    }
19120
19121                                    query = jQuery('.mobile-cart .cart .data-content .product-suggest-combo.product' + c.ProductID);
19122                                    query.html(html);
19123                                    if (!query.hasClass('hienthi')) {
19124                                        query.addClass('hienthi');
19125                                    }
19126                                }
19127                            });
19128                        }
19129                        resolve('');
19130                    }, function (err) {
19131                        reject(err);
19132                    });
19133                }, window.pars3p.timeAsync);
19134            });
19135        },
19136        onCart_SuggestCombo_Toggle: function (el) {
19137            var query = jQuery(el).closest('.product-suggest-combo');
19138            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
19139                if (jQuery(query[0]).hasClass('expand')) {
19140                    jQuery(query[0]).removeClass('expand');
19141                }
19142                else {
19143                    jQuery(query[0]).addClass('expand');
19144                }
19145            }
19146        },
19147        onCart_Gift_Toggle: function (el) {
19148            var query = jQuery(el).closest('.product-gift');
19149            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
19150                if (jQuery(query[0]).hasClass('expand')) {
19151                    jQuery(query[0]).removeClass('expand');
19152                }
19153                else {
19154                    jQuery(query[0]).addClass('expand');
19155                }
19156            }
19157        },
19158        onCart_SuggestCombo_Check: function (el, id) {
19159            if (el.checked == true) {
19160                var find = window.pars3p.listSuggestCombo.find(function (c) { return c.ProductID == id; });
19161                if (lib3p_helper.utility.hasValue(find)) {
19162                    if (window.pars3p.auth.isLogin == true) {
19163                        var cart = {
19164                            Cart: {
19165                                Code: -1,
19166                                OrderDate: null,
19167                                MembershipID: -1,
19168                                DiscountMembership: 0
19169                            },
19170                            CartDetails: [],
19171                            CartCoupon: [],
19172                            SuggestCombo: []
19173                        };
19174                        cart.SuggestCombo.push(find);
19175                        if (window.pars3p.cart.Code > 0) {
19176                            cart.Cart = lib3p_helper.cart.getCartInfo();
19177                        }
19178                        if (window.pars3p.cart.MembershipID > 0) {
19179                            cart.Cart.MembershipID = window.pars3p.cart.MembershipID;
19180                            cart.Cart.DiscountMembership = window.pars3p.cart.DiscountMembership;
19181                        }
19182                        window.pars3p.cart.CartDetails.forEach(function (c) {
19183                            cart.CartDetails.push({ ProductID: c.ProductID, OrderQuantity: c.OrderQuantity, ShippedQuantity: c.ShippedQuantity, UnitPrice: c.UnitPrice, IsChoose: c.IsChoose, ModelID: c.ModelID });
19184                        });
19185
19186                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ChangeCombo, { cart: cart }, function (res) {
19187                            if (res == true) {
19188                                window.location.reload();
19189                            }
19190                        }, function (err) {
19191                            lib3p.log(err);
19192                        });
19193                    }
19194                    else {
19195                        find.ListCombo.forEach(function (c, cidx) {
19196                            var idx = window.pars3p.cart.CartDetails.findIndex(function (d) { return d.ProductID == c.ProductID; });
19197                            if (idx >= 0) {
19198                                window.pars3p.cart.CartDetails.splice(idx, 1);
19199                            }
19200                        });
19201                        var findDetail = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == id; });
19202                        if (lib3p_helper.utility.hasValue(findDetail)) {
19203                            findDetail.OrderQuantity++;
19204                            window.pars3p.cart.LastModifiedTime = new Date();
19205                            lib3p.pageCart.Cache_Check();
19206                            window.pars3p.cart.timeOrderCalculateNext = null;
19207                            lib3p.common_cartSet(window.pars3p.cart);
19208                            window.location.reload();
19209                        }
19210                        else {
19211                            var item = {
19212                                Code: -1,
19213                                ProductID: find.ProductID,
19214                                ProductName: find.ProductName,
19215                                ImageSetting: find.ImageSetting,
19216                                UnitPrice: find.UnitPrice,
19217                                IsHachi24: find.IsHachi24,
19218                                OrderQuantity: find.OrderQuantity,
19219                                IsChoose: true,
19220                                CartID: -1,
19221                                LastModifiedTime: new Date()
19222                            };
19223                            window.pars3p.cart.LastModifiedTime = new Date();
19224                            window.pars3p.cart.CartDetails.push(item);
19225                            lib3p.pageCart.Cache_Check();
19226                            window.pars3p.cart.timeOrderCalculateNext = null;
19227                            lib3p.common_cartSet(window.pars3p.cart);
19228                            window.location.reload();
19229                        }
19230                    }
19231                }
19232            }
19233        },
19234        onSuggestCombo_Chon: function (event, id) {
19235            window.pars3p.idSuggestCombo = id;
19236        },
19237        onSuggestCombo_Close: function () {
19238            var query = jQuery('.popup-cart-suggest-combo .hachi-modal');
19239            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
19240                if (jQuery(query[0]).hasClass("d-block")) {
19241                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
19242                }
19243            }
19244        },
19245        onSuggestCombo_Ok: function () {
19246            if (window.pars3p.idSuggestCombo > 0) {
19247                var find = window.pars3p.listSuggestCombo.find(function (c) { return c.ProductID == window.pars3p.idSuggestCombo; });
19248                if (lib3p_helper.utility.hasValue(find)) {
19249                    if (window.pars3p.auth.isLogin == true) {
19250
19251                    }
19252                    else {
19253                        find.ListCombo.forEach(function (c, cidx) {
19254                            var idx = window.pars3p.cart.CartDetails.findIndex(function (c) { return c.ProductID == c.ProductID; });
19255                            if (idx >= 0) {
19256                                window.pars3p.cart.CartDetails.splice(idx, 1);
19257                            }
19258                        });
19259                        var item = {
19260                            Code: -1,
19261                            ProductID: find.ProductID,
19262                            ProductName: find.ProductName,
19263                            ImageSetting: find.ImageSetting,
19264                            UnitPrice: find.UnitPrice,
19265                            IsHachi24: find.IsHachi24,
19266                            OrderQuantity: find.OrderQuantity,
19267                            CartID: -1,
19268                            LastModifiedTime: new Date()
19269                        };
19270                        window.pars3p.cart.LastModifiedTime = new Date();
19271                        window.pars3p.cart.CartDetails.push(item);
19272                        lib3p.pageCart.Cache_Check();
19273                        window.pars3p.cart.timeOrderCalculateNext = null;
19274                        lib3p.common_cartSet(window.pars3p.cart);
19275                        window.location.reload();
19276                    }
19277                }
19278            }
19279        },
19280        onCartNotity_Close: function () {
19281            jQuery(".page-cart .cart .notify .list").html("");
19282            jQuery(".page-cart .cart .notify").hide();
19283            jQuery(".mobile-cart .cart .notify .list").html("");
19284            jQuery(".mobile-cart .cart .notify").hide();
19285        },
19286        onCartCombo_Toggle: function (el) {
19287            var query = jQuery(el).closest('.product-combo');
19288            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
19289                if (jQuery(query[0]).hasClass('expand')) {
19290                    jQuery(query[0]).removeClass('expand');
19291                }
19292                else {
19293                    jQuery(query[0]).addClass('expand');
19294                }
19295            }
19296        },
19297        Cart_LoadHeader: function () {
19298            var query = jQuery('.page-header .top-icon .cart-icon img');
19299            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
19300                if (lib3p_helper.utility.hasValue(window.pars3p.cart)) {
19301                    if (window.pars3p.cart.TotalItemQuantity > 0) {
19302                        var str = 'https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/cart{0}.svg';
19303                        if (window.pars3p.cart.TotalItemQuantity > 9) {
19304                            str = lib3p_helper.utility.stringFormat(str, 10);
19305                        }
19306                        else {
19307                            str = lib3p_helper.utility.stringFormat(str, window.pars3p.cart.TotalItemQuantity);
19308                        }
19309                        query.attr('src', str);
19310                        jQuery('.mobile-header .mobile-header-menu .cart img').attr('src', str);
19311                    }
19312                }
19313            }
19314            query = jQuery('.event-japanmall-2024-action .cart-icon img');
19315            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
19316                if (lib3p_helper.utility.hasValue(window.pars3p.cart)) {
19317                    if (window.pars3p.cart.TotalItemQuantity > 0) {
19318                        var str = 'https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/cart{0}.svg';
19319                        if (window.pars3p.cart.TotalItemQuantity > 9) {
19320                            str = lib3p_helper.utility.stringFormat(str, 10);
19321                        }
19322                        else {
19323                            str = lib3p_helper.utility.stringFormat(str, window.pars3p.cart.TotalItemQuantity);
19324                        }
19325                        query.attr('src', str);
19326                    }
19327                }
19328            }
19329        },
19330        Cart_LoadNoti: function () {
19331            if (lib3p_helper.utility.hasValue(window.pars3p.cart)) {
19332                var query = jQuery('.page-cart .cart .notify');
19333                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
19334                    if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartNoti)) {
19335                        var noti = "";
19336                        window.pars3p.cart.CartNoti.forEach(function (c, cidx) {
19337                            noti += '<div class="item"><div class="icon"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-exclamation.svg" alt="hachihachi" /></div><div class="text s14 cl-gregray900 regular400">' + c.Notification + '</div></div>';
19338                        });
19339                        jQuery(".page-cart .cart .notify .list").html(noti);
19340                        jQuery(".page-cart .cart .notify").show();
19341                        jQuery(".mobile-cart .cart .notify .list").html(noti);
19342                        jQuery(".mobile-cart .cart .notify").show();
19343                    }
19344                    else {
19345                        jQuery(".page-cart .cart .notify .list").html("");
19346                        jQuery(".page-cart .cart .notify").hide();
19347                        jQuery(".mobile-cart .cart .notify .list").html("");
19348                        jQuery(".mobile-cart .cart .notify").hide();
19349                    }
19350                }
19351            }
19352        },
19353        Cart_LoadBody: function () {
19354            if (lib3p_helper.utility.hasValue(window.pars3p.cart)) {
19355                var query = jQuery('.page-cart .cart .data-content');
19356                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
19357                    var carthtml = "";
19358                    window.pars3p.cart.CartDetails.forEach(function (c, cidx) {
19359                        var img = window.pars3p.hostresouce + '/Uploads/productimage_mobile/' + c.Barcode + '.jpg';
19360
19361                        carthtml += '<div data-id="' + c.ProductID + '" class="data-row product' + c.ProductID + ' ' + (c.IsStock == true ? '' : 'isempty') + '">';
19362                        //product start ---
19363                        carthtml += '<div class="product">';
19364                        if (c.IsChoose == true && c.OrderQuantity > 0) {
19365                            carthtml += '<div class="choose"><input type="checkbox" checked onchange="lib3p.pageCart.onProduct_Chon(this,' + c.ProductID + ')" /></div>';
19366                        }
19367                        else {
19368                            if (c.OrderQuantity > 0) {
19369                                carthtml += '<div class="choose"><input type="checkbox" onchange="lib3p.pageCart.onProduct_Chon(this,' + c.ProductID + ')" /></div>';
19370                            }
19371                            else {
19372                                carthtml += '<div class="choose"><input type="checkbox" onchange="lib3p.pageCart.onProduct_Chon(this,' + c.ProductID + ')" disabled /></div>';
19373                            }
19374
19375                        }
19376                        //carthtml += '<div class="image"><a href="' + c.Alias + '"><img src="' + c.ImageSetting + '" /></a>';
19377                        carthtml += '<div class="image"><a href="' + c.Alias + '"><img src="' + img + '" /></a>';
19378                        if (c.IsHachi24 == true) {
19379                            carthtml += '<div class="imgbackground"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/hachi3h-text.svg" alt="..." loading="lazy" /></div>';
19380                        }
19381                        if (c.IsGiftProduct == true) {
19382                            carthtml += '<div class="product-tag"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_product.3.svg" alt="..." loading="lazy" /></div>';
19383                        }
19384                        else if (c.IsGiftGroup == true) {
19385                            carthtml += '<div class="product-tag"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gift_group.3.svg" alt="..." loading="lazy" /></div>';
19386                        }
19387                        else if (c.IsBestSeller == true) {
19388                            carthtml += '<div class="product-tag"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_ban_chay.3.svg" alt="..." loading="lazy" /></div>';
19389                        }
19390                        else if (c.IsBestPrice == true) {
19391                            carthtml += '<div class="product-tag"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_gia_tot.3.svg" alt="..." loading="lazy" /></div>';
19392                        }
19393                        else if (c.IsNew == true) {
19394                            carthtml += '<div class="product-tag"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tag_new.3.svg" alt="..." loading="lazy" /></div>';
19395                        }
19396                        /* if (c.IsBestPrice == true) {
19397                            carthtml += '<div class="product-tag"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/tag_gia_tot.2.svg" alt="..." loading="lazy" /></div>';
19398                        } */
19399                        carthtml += '</div>';
19400                        //info start ---
19401                        carthtml += '<div class="info">';
19402                        carthtml += '<div class="name s14 cl-gregray900 medium500"><a href="' + c.Alias + '">' + c.ProductName + '</a></div>';
19403                        //action start ---       
19404                        carthtml += '<div class="action">';
19405                        carthtml += '<div class="price s14 sibold600">';
19406                        if (c.BasePrice > 0 && c.UnitPrice != c.BasePrice) {
19407                            carthtml += '<span class="sale cl-red400">' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</span>';
19408                            carthtml += '<span class="sale-base cl-gregray550">&nbsp;' + lib3p_helper.utility.formatMoney(c.BasePrice) + 'đ</span>';
19409                        }
19410                        else {
19411                            carthtml += '<span class="base cl-dakgreen800">' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</span>';
19412                        }
19413                        carthtml += '</div>';
19414                        carthtml += '<div class="group-input">';
19415                        carthtml += '<button type="button" aria-label="hachihachi" class="sub s8 sl-gregray70" onclick="lib3p.pageCart.onProduct_Sub(this,' + c.ProductID + ')"><span class="hachi-icon-minus"></span></button>';
19416                        carthtml += '<input type="number" pattern="\\d*" value="' + c.OrderQuantity + '" class="input s15 cl-gregray900 medium500 sl-gregray70" onkeydown="lib3p.pageCart.onQuantiy_KeyDown(event,this,' + c.ProductID + ')">';
19417                        carthtml += '<button type="button" aria-label="hachihachi" class="add s8 sl-gregray70" onclick="lib3p.pageCart.onProduct_Add(this,' + c.ProductID + ')"><span class="hachi-icon-plus"></span></button>';
19418                        if (window.pars3p.auth.isLogin == true && lib3p_helper.utility.hasValueString(window.pars3p.auth.access_token)) {
19419                            carthtml += '<div class="img-like"><button type="button" aria-label="hachihachi" onclick="lib3p.pageCart.onCart_Like(this,' + c.ProductID + ')"><img class="unchoose" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/heart2circle.svg" alt="hachihachi" /><img class="choose" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/heart2circlesel.svg" alt="hachihachi" /></button></div>';
19420                        }
19421                        else {
19422                            carthtml += '<div class="img-like"><button type="button" aria-label="hachihachi" onclick="lib3p.header.onPopupLikeConfirm_Show()"><img class="unchoose" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/heart2circle.svg" alt="hachihachi" /><img class="choose" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/heart2circlesel.svg" alt="hachihachi" /></button></div>';
19423                        }
19424                        carthtml += '</div>';
19425                        carthtml += '<div class="thongbao b-dakgreen900 s14 cl-white bold
19425700"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-info-grey.svg" /><span>Hàng không đủ tồn!</span></div>';
19426                        carthtml += '</div>';
19427                        carthtml += '<div class="action-sub">';
19428                        if (c.IsStock == true) {
19429                            //carthtml += '<button type="button" aria-label="hachihachi" class="s13 cl-red500 sibold600" onclick="lib3p.pageCart.onProduct_Delete(this,' + c.ProductID + ')">Xóa</button>';
19430                        }
19431                        else {
19432                            carthtml += '<span class="hethang s13 cl-red500 sibold600">Hết hàng</span>';
19433                        }
19434                        carthtml += '</div>';
19435                        if (c.IsHachi24 == true) {
19436                            carthtml += '<div style="display:none" class="hachi3h s13 cl-red600 medium500">Do điều kiện bảo quản, sản phẩm này không thể giao đến khu vực của bạn. Bạn hãy xóa sản phẩm khỏi giỏ hàng hoặc chỉnh địa chỉ nhận hàng sang nội thành TPHCM</div>';
19437                        }
19438                        //action end ---
19439                        carthtml += '</div>';
19440                        //info end ---
19441                        //delete start ---
19442                        carthtml += '<div class="del">';
19443                        if (c.IsStock == true) {
19444                            carthtml += '<button type="button" aria-label="hachihachi" onclick="lib3p.pageCart.onProduct_Delete(this,' + c.ProductID + ')"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/close.svg" alt="hachihachi" /></button>';
19445                        }
19446                        carthtml += '</div>';
19447                        //delete start ---
19448                        carthtml += '</div>';
19449                        //product end ---
19450                        if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)) {
19451                            var lstFind = window.pars3p.cart.ListCoupon.filter(function (coupon) { return coupon.ProductID == c.ProductID; });
19452                            if (lib3p_helper.utility.hasListValue(lstFind)) {
19453                                carthtml += '<div class="product-suggest-coupon">';
19454                                carthtml += '<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/voucher.svg" alt="hachihachi" /><span class="tieude s14 cl-gregray900 medium500">Mã giảm kèm</span>';
19455                                lstFind.forEach(function (coupon) {
19456                                    if (c.IsChoose != true) {
19457                                        carthtml += '<span class="item b-gregray100 s14 cl-gregray550 regular400" data-container=".page-cart-popover" data-toggle="popover" data-placement="top" data-trigger="hover" data-content="' + coupon.Description + '">' + coupon.CouponName + '</span>';
19458                                    }
19459                                    else if (window.pars3p.cart.CartCoupon.find(function (temp) { return temp.ProductID == c.ProductID; }) == null) {
19460                                        carthtml += '<span class="item b-dakgreen50 s14 cl-gregray900 regular400" data-container=".page-cart-popover" data-toggle="popover" data-placement="top" data-trigger="hover" data-content="' + coupon.Description + '">' + coupon.CouponName + '</span>';
19461                                    }
19462                                    else {
19463                                        carthtml += '<span class="item b-dakgreen400 s14 cl-dakgreen900 regular400" data-container=".page-cart-popover" data-toggle="popover" data-placement="top" data-trigger="hover" data-content="' + coupon.Description + '">' + coupon.CouponName + '</span>';
19464                                    }
19465                                });
19466                                carthtml += '<a class="hienchon" onclick="lib3p.pageCart.onCartCoupon_Toggle()"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-down.svg" alt="hachihachi" /></a></div>';
19467                            }
19468                        }
19469                        /* if(lib3p_helper.utility.hasListValue(c.ListGift)) {
19470                            var html = '<div class="hienthi product-gift product' + c.ProductID + '">';
19471                            html += '<a class="down s14 cl-gregray900 medium500" onclick="lib3p.pageCart.onCart_Gift_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Sản phẩm có quà tặng kèm vui lòng chọn sau khi hoàn tất đặt hàng &nbsp;<span class="hachi-icon-down"></span></a>';
19472                            html += '<fieldset class="sl-green500">';
19473                            html += '<legend class="down s14 cl-gregray900 medium500">&nbsp;&nbsp;<a onclick="lib3p.pageCart.onCart_Gift_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Sản phẩm có quà tặng kèm vui lòng chọn sau khi hoàn tất đặt hàng &nbsp;<span class="hachi-icon-up"></span></a>&nbsp;</legend>';
19474                            html += '<div class="list">';
19475                            c.ListGift.forEach(function(d) {
19476                                html += '<div class="image"><img src="' + d.ImageThumb + '" /></div>';
19477                            });
19478                            html += '</div>';
19479                            html += '</fieldset>';
19480                            carthtml += html;
19481                        }
19482                        else {
19483                            carthtml += '<div class="product-gift product' + c.ProductID + '">';
19484                        } */
19485                        carthtml += '<div class="product-gift product' + c.ProductID + '"></div>';
19486
19487                        carthtml += '<div class="product-suggest-combo product' + c.ProductID + '"></div>';
19488                        if (lib3p_helper.utility.hasListValue(c.ListItem)) {
19489                            carthtml += '<div class="product-combo">';
19490                            carthtml += '<a class="down s14 cl-gregray900 medium500" onclick="lib3p.pageCart.onCartCombo_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Sản phẩm có quà tặng kèm vui lòng chọn <span class="bold700">sau khi hoàn tất đơn hàng</span> &nbsp;<span class="hachi-icon-down"></span></a>';
19491                            carthtml += '<fieldset class="sl-green500">';
19492                            carthtml += '<legend class="down s14 cl-gregray900 medium500">&nbsp;&nbsp;<a onclick="lib3p.pageCart.onCartCombo_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Sản phẩm có quà tặng kèm vui lòng chọn <b>sau khi hoàn tất đơn hàng</b> &nbsp;<span class="hachi-icon-up"></span></a>&nbsp;</legend>';
19493                            carthtml += '<div class="list">';
19494                            c.ListItem.forEach(function (d) {
19495                                carthtml += '<img src="' + d.ImageThumb + '">';
19496                            });
19497                            carthtml += '</div>';
19498                            carthtml += '</fieldset>';
19499                            carthtml += '</div>';
19500                        }
19501                        //carthtml += '<div class="product-empty b-white"><button type="button" aria-label="hachihachi" class="s13 cl-red500 sibold600" onclick="lib3p.pageCart.onProduct_Delete(this,' + c.ProductID + ')">Xóa</button></div>';
19502                        carthtml += '<div class="product-empty b-white"><button type="button" aria-label="hachihachi" class="s13 cl-red500 sibold600" onclick="lib3p.pageCart.onProduct_Delete(this,' + c.ProductID + ')"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/close.svg" alt="hachihachi" /></button></div>';
19503                        carthtml += '<div class="line b-gregray100">&nbsp;</div>';
19504                        carthtml += '</div>';
19505                    });
19506                    /* if(lib3p_helper.utility.hasListValue(window.pars3p.cart.ListGift)) {
19507                        var group = {};
19508                        window.pars3p.cart.ListGift.forEach(function(d) {
19509                            var key = '';
19510                            if(d.TypeData == 16) {
19511                                key = 'Quà tặng cho nhóm sản phẩm';
19512                            }
19513                            else if(d.TypeData == 17) {
19514                                key = 'Quà tặng cho đơn hàng ứng với giá trị mua hàng ' + lib3p_helper.utility.formatMoney(d.Price) + 'đ';
19515                            }
19516                            if(lib3p_helper.utility.hasValueString(key)) {
19517                                if(!lib3p_helper.utility.hasValue(group[key])){
19518                                    group[key] = [];
19519                                }
19520                                group[key].push(d);
19521                            }                            
19522                        });
19523                        for(var key in group) {
19524                            carthtml += '<div class="hienthi order-gift type2">';
19525                            carthtml += '<div class="tieu-de s20 cl-gregray900 bold700">' + key + '</div>';
19526                            carthtml += '<div class="product-list owl-carousel">';
19527                            group[key].forEach(function(d) {
19528                                carthtml += '<div class="product-item">';
19529                                carthtml += '<div class="img"><img src="' + d.ImageThumb + '" alt="..."/></div>';
19530                                carthtml += '<div class="name s13 cl-gregray800 medium500">' + d.ProductName + '</div>';
19531                                carthtml += '</div>';
19532                            });
19533                            carthtml += '</div>';
19534                        }
19535                    }
19536                    else {
19537                        carthtml += '<div class="order-gift">';
19538                    } 
19539                    carthtml += '<div class="order-gift-outline"></div>';*/
19540                    jQuery(".page-cart .cart .data-content").html(carthtml);
19541                    jQuery(".mobile-cart .cart .data-content").html(carthtml);
19542                    var query = jQuery('.page-cart .cart .data-content span[data-toggle="popover"]');
19543                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
19544                        query.popover();
19545                    }
19546
19547                    if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
19548                        jQuery('.page-cart .cart .data-header .choose input[type="checkbox"]')[0].checked = window.pars3p.cart.CartDetails.find(function (o) { return o.IsChoose != true; }) == null;
19549                        jQuery('.mobile-cart .cart .data-header .choose input[type="checkbox"]')[0].checked = window.pars3p.cart.CartDetails.find(function (o) { return o.IsChoose != true; }) == null;
19550                    }
19551
19552                    lib3p.pageCart.Cart_LoadLike();
19553                }
19554            }
19555        },
19556        Cart_LoadGift: function () {
19557            var bWidth = lib3p.common_GetWidthBrowser();
19558
19559                window.pars3p.cart.CartDetails.forEach(function (c, cidx) {
19560                    var query = jQuery('.page-cart .cart .data-content .product-gift.product' + c.ProductID);
19561                    var queryMobile = jQuery('.mobile-cart .cart .data-content .product-gift.product' + c.ProductID);
19562                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
19563                        if (lib3p_helper.utility.hasListValue(c.ListGift)) {
19564                            var html = '<button type="button" aria-label="hachihachi" class="down" onclick="lib3p.pageCart.onCart_Gift_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang_ico.svg" /><div class="txt s14 cl-gregray900 medium500">Sản phẩm có quà tặng kèm vui lòng chọn <span class="bold700">sau khi hoàn tất đặt hàng</span></div><img class="ico" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-down.svg" /></button>';
19565                            html += '<fieldset class="sl-green500">';
19566                            html += '<legend class="down"><button type="button" aria-label="hachihachi" onclick="lib3p.pageCart.onCart_Gift_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang_ico.svg" /><div class="txt s14 cl-gregray900 medium500">Sản phẩm có quà tặng kèm vui lòng chọn <span class="bold700">sau khi hoàn tất đặt hàng</span></div><img class="ico" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-up.svg" /></button></legend>';
19567                            html += '<div class="list">';
19568                            var first = c.ListGift[0];
19569                            var first2 = null;
19570                            var tieude1 = '';
19571                            var tieude2 = '';
19572                            var tieude3 = '';
19573                            var child1 = '';
19574                            var child2 = '';
19575                            var child3 = '';
19576                            var giftmore = false;
19577                            c.ListGift.forEach(function (d) {
19578                                if(first.PriceKHTT == d.PriceKHTT) {
19579                                    child1 += '<div class="item">
19579<div class="level b-dakgreen200 s13 cl-gregray900 sibold600">Mức 1</div>';
19580                                    child1 += '<div class="img"><img src="' + d.ImageSmall + '" alt=""></div><div class="text s14 cl-gregray900 regular400">' + d.ProductName + '</div>';
19581                                    child1 += '</div>';
19582                                }
19583                                else if(!lib3p_helper.utility.hasValue(first2) || first2.PriceKHTT == d.PriceKHTT) {
19584                                    first2 = d;
19585                                    child2 += '<div class="item"><div class="level b-dakgreen200 s13 cl-gregray900 sibold600">Mức 2</div>';
19586                                    child2 += '<div class="img"><img src="' + d.ImageSmall + '" alt=""></div><div class="text s14 cl-gregray900 regular400">' + d.ProductName + '</div>';
19587                                    child2 += '</div>';
19588                                    giftmore = true;
19589                                }
19590                                else {
19591                                    child3 += '<div class="item"><div class="level b-dakgreen200 s13 cl-gregray900 sibold600">Mức 3</div>';
19592                                    child3 += '<div class="img"><img src="' + d.ImageSmall + '" alt=""></div><div class="text s14 cl-gregray900 regular400">' + d.ProductName + '</div>';
19593                                    child3 += '</div>';
19594                                    giftmore = true;
19595                                }
19596                            });
19597                            if(lib3p_helper.utility.hasValueString(child1)) {
19598                                html += '<div class="danh-sach p1 type3"><div class="data owl-carousel sl-gregray70">';
19599                                html += child1;
19600                                html += '</div></div>';
19601                            }
19602                            if(lib3p_helper.utility.hasValueString(child2)) {
19603                                html += '<div class="danh-sach p2 type3"><div class="data owl-carousel sl-gregray70">';
19604                                html += child2;
19605                                html += '</div></div>';
19606                            }
19607                            if(lib3p_helper.utility.hasValueString(child3)) {
19608                                html += '<div class="danh-sach p3 type3"><div class="data owl-carousel sl-gregray70">';
19609                                html += child3;
19610                                html += '</div></div>';
19611                            }
19612                            html += '</div>';
19613                            html += '</fieldset>';
19614                            if(giftmore != true) {
19615                                query.addClass('one-level');
19616                                queryMobile.addClass('one-level');
19617                            }
19618                            query.html(html);
19619                            queryMobile.html(html);
19620                            if (!query.hasClass('hienthi')) {
19621                                query.addClass('hienthi').addClass('expand');
19622                                queryMobile.addClass('hienthi').addClass('expand');
19623                            }
19624                        }
19625                        else if (query.hasClass('hienthi')) {
19626                            query.removeClass('hienthi');
19627                            queryMobile.removeClass('hienthi');
19628                        }
19629                    }
19630                });
19631                jQuery('.page-cart .cart .data-content .product-gift .danh-sach .owl-carousel').owlCarousel({
19632                    autoplay: false,
19633                    autoplayTimeout: 3000,
19634                    autoplayHoverPause: true,
19635                    autoWidth: false,
19636                    loop: false,
19637                    nav: true,
19638                    dots: false,
19639                    items: 1,
19640                    navText: ['<button type="button" aria-label="hachihachi" class="icon-left"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>', '<button type="button" aria-label="hachihachi" class="icon-right"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>'],
19641                    navElement: 'div'
19642                });
19643                jQuery('.mobile-cart .cart .data-content .product-gift .danh-sach .owl-carousel').owlCarousel({
19644                    autoplay: false,
19645                    autoplayTimeout: 3000,
19646                    autoplayHoverPause: true,
19647                    autoWidth: false,
19648                    loop: false,
19649                    nav: false,
19650                    dots: false,
19651                    items: 1,
19652                });
19653
19654                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListGift)) {
19655                    jQuery('.page-cart .cart .order-gift-outline .hienthi.order-gift .product-list.owl-carousel').owlCarousel('destroy');
19656                    jQuery('.mobile-cart .cart .order-gift-outline .hienthi.order-gift .product-list.owl-carousel').owlCarousel('destroy');
19657
19658                    var carthtml = '';
19659                    var group = {};
19660                    window.pars3p.cart.ListGift.forEach(function (d) {
19661                        if (!lib3p_helper.utility.hasValue(group[d.CategoryID])) {
19662                            group[d.CategoryID] = {};
19663                        }
19664                        if (!lib3p_helper.utility.hasValue(group[d.CategoryID][d.BrandID])) {
19665                            group[d.CategoryID][d.BrandID] = [];
19666                        }
19667                        group[d.CategoryID][d.BrandID].push(d);
19668                    });
19669                    var lstTemp = [];
19670                    for (var key in group) {
19671                        if (lib3p_helper.utility.hasListValue(group[key])) {
19672                            var first = null;
19673                            for (var key2 in group[key]) {
19674                                first = group[key][key2][0];
19675                                first.VNPromotion = first.BrandName;
19676                                first.DetermineGift = first.OrderBy;
19677                            }
19678                            var item = {
19679                                key: first,
19680                                group: group[key]
19681                            };
19682                            lstTemp.push(item);
19683                        }
19684                    }
19685                    /* if (bWidth >= 800) {
19686                        carthtml += '<div class="order-gift-top"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang2_ico.svg" /><div class="tieu-de-sub s24 cl-dakgreen650 sibold600">Đừng bỏ lỡ chương trình hấp dẫn hôm nay!</div></div>';
19687                    }
19688                    else {
19689                        carthtml += '<div class="order-gift-top"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang2_ico.svg" /><div class="tieu-de-sub s20 cl-dakgreen650 sibold600">Đừng bỏ lỡ chương trình hấp dẫn hôm nay!</div></div>';
19690                    } */                    
19691                    var giftnotity = {};
19692                    lstTemp.forEach(function (g) {
19693                        if (g.key.TypeData == 16) {
19694                            if(!lib3p_helper.utility.hasValue(giftnotity[g.key.CategoryID])) {
19695                                giftnotity[g.key.CategoryID] = { Type: -1, Name: '', Message: '' };
19696                            }
19697                            carthtml += '<div class="order-gift-group">';
19698                            if (bWidth >= 800) {
19699                                carthtml += '<div class="promotionname s18 cl-dakgreen650 bold700 gachduoi">' + g.key.VNPromotion + '</div>';
19700                            }
19701                            else {
19702                                carthtml += '<div class="promotionname s15 cl-dakgreen650 bold700 gachduoi">' + g.key.VNPromotion + '</div>';
19703                            }
19704                            var carthtml_notity = '';
19705                            var carthtml_detail = '';
19706                            var index = 0;
19707                            for (var key in g.group) {
19708                                var first = g.group[key][0];
19709                                if (bWidth >= 800) {
19710                                    carthtml_detail += '<div class="hienthi order-gift ' + (index == 0 ? 'first' : '' ) + ' type2">';
19711                                    carthtml_detail += '<div class="tieu-de s16 cl-gregray900 medium500">' + first.SapXepText + '</div>';
19712                                    carthtml_detail += '<div class="tieu-de-sub s14 cl-gregray750 gregray900"><i>Sau khi hoàn tất đặt mua, chọn 1 trong các quà tặng dưới đây:</i></div>';                                
19713                                }
19714                                else {
19715                                    carthtml_detail += '<div class="hienthi order-gift ' + (index == 0 ? 'first' : '' ) + ' type2">';
19716                                    carthtml_detail += '<div class="tieu-de s15 cl-gregray900 medium500">' + first.SapXepText + '</div>';
19717                                    carthtml_detail += '<div class="tieu-de-sub s14 cl-gregray750 gregray900"><i>Sau khi hoàn tất đặt mua, chọn 1 trong các quà tặng dưới đây:</i></div>';
19718                                }                                
19719                                carthtml_detail += '<div class="product-list owl-carousel">';
19720                                g.group[key].forEach(function (d) {
19721                                    carthtml_detail += '<div class="product-item">';
19722                                    carthtml_detail += '<div class="img"><img src="' + d.ImageThumb + '" alt="..."/></div>';
19723                                    carthtml_detail += '<div class="name s13 cl-gregray800 medium500">' + d.ProductName + '</div>';
19724                                    carthtml_detail += '</div>';
19725                                });
19726                                carthtml_detail += '</div></div>';
19727                                if(giftnotity[g.key.CategoryID].Type == -1) {
19728                                    if(g.key.OrderBy == lib3p.pageCart.data.EnumDetermineGift.TheoSoLuong) {
19729                                        if(first.Price <= g.key.GiftGroupQuantity) {
19730                                            giftnotity[g.key.CategoryID].Type = 1;
19731                                        }
19732                                        else {
19733                                            carthtml_notity = 'Bạn đã mua <span class="cl-dakgreen650"> ' + g.key.GiftGroupQuantity + '/' + first.Price + ' sản phẩm</span>. Hãy <a href="' + first.Alias + '" class="link"><span class="cl-orange550">mua thêm ' + (first.Price - g.key.GiftGroupQuantity) + ' sản phẩm</span></a> để nhận quà.';
19734                                            giftnotity[g.key.CategoryID].Type = 1;
19735                                            //giftnotity[g.key.CategoryID].Name = g.key.VNPromotion;
19736                                            //giftnotity[g.key.CategoryID].Message = 'Bạn đã mua ' + g.key.GiftGroupQuantity + '/' + first.Price + ' sản phẩm. Mua thêm ' + (first.Price - g.key.GiftGroupQuantity) + ' sản phẩm để nhận quà tặng.';
19737                                        }
19738                                    }
19739                                    else if(g.key.OrderBy == lib3p.pageCart.data.EnumDetermineGift.TheoGiaTri
19739) { 
19740                                        if(first.Price <= g.key.GiftGroupTotal) {
19741                                            giftnotity[g.key.CategoryID].Type = 1;
19742                                        }
19743                                        else {
19744                                            carthtml_notity = 'Bạn đã mua <span class="cl-dakgreen650"> ' + lib3p_helper.utility.formatMoney(g.key.GiftGroupTotal) + 'đ sản phẩm</span>. Hãy <a href="' + first.Alias + '" class="link"><span class="cl-orange550">mua thêm ' + lib3p_helper.utility.formatMoney(first.Price - g.key.GiftGroupTotal) + 'đ sản phẩm</span></a> để nhận quà.';
19745                                            giftnotity[g.key.CategoryID].Type = 1;
19746                                            //giftnotity[g.key.CategoryID].Name = g.key.VNPromotion;
19747                                            //giftnotity[g.key.CategoryID].Message = 'Bạn đã mua ' + lib3p_helper.utility.formatMoney(g.key.GiftGroupTotal) + 'đ sản phẩm. Mua thêm ' + lib3p_helper.utility.formatMoney(first.Price - g.key.GiftGroupTotal) + 'đ sản phẩm để nhận quà tặng.';
19748                                        }
19749                                    }
19750                                }
19751                                index++;
19752                            }
19753                            if(lib3p_helper.utility.hasValueString(carthtml_notity)) {
19754                                if (bWidth >= 800) {
19755                                    carthtml += '<div class="thong-bao"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-info-green.svg" /><div class="s16 cl-gregray900 sibold600">' + carthtml_notity + '</div></div>';
19756                                }
19757                                else {
19758                                    carthtml += '<div class="thong-bao"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-info-green.svg" /><div class="s15 cl-gregray900 sibold600">' + carthtml_notity + '</div></div>';
19759                                }
19760                            }
19761                            carthtml += carthtml_detail + '</div>';
19762                        }
19763                        if (g.key.TypeData == 17) {
19764                            carthtml += '<div class="order-gift-group">';
19765                            if (bWidth >= 800) {
19766                                carthtml += '<div class="promotionname s18 cl-dakgreen650 bold700 gachduoi">' + g.key.VNPromotion + '</div>';
19767                            }
19768                            else {
19769                                carthtml += '<div class="promotionname s15 cl-dakgreen650 bold700 gachduoi">' + g.key.VNPromotion + '</div>';
19770                            }                            
19771                            var index = 0;
19772                            for (var key in g.group) {
19773                                var first = g.group[key][0];
19774                                if (bWidth >= 800) {
19775                                    carthtml += '<div class="hienthi order-gift ' + (index == 0 ? 'first' : '' ) + ' type2">';
19776                                    carthtml += '<div class="tieu-de s16 cl-gregray900 medium500"><span class="gachduoi">Quà tặng dành cho đơn hàng&nbsp;' + lib3p_helper.utility.formatMoney(first.Price) + 'đ</span>&nbsp;(thành tiền đã trừ mã giảm)</div>';
19777                                    carthtml += '<div class="tieu-de-sub s14 cl-gregray750 gregray900"><i>Sau khi hoàn tất đặt mua, chọn 1 trong các quà tặng dưới đây:</i></div>';                                    
19778                                }
19779                                else {
19780                                    carthtml += '<div class="hienthi order-gift ' + (index == 0 ? 'first' : '' ) + ' type2">';
19781                                    carthtml += '<div class="tieu-de s15 cl-gregray900 medium500"><span class="gachduoi">Quà tặng dành cho đơn hàng&nbsp;' + lib3p_helper.utility.formatMoney(first.Price) + 'đ</span>&nbsp;(thành tiền đã trừ mã giảm)</div>';
19782                                    carthtml += '<div class="tieu-de-sub s14 cl-gregray750 gregray900"><i>Sau khi hoàn tất đặt mua, chọn 1 trong các quà tặng dưới đây:</i></div>';
19783                                }
19784                                carthtml += '<div class="product-list owl-carousel">';
19785                                g.group[key].forEach(function (d) {
19786                                    carthtml += '<div class="product-item">';
19787                                    carthtml += '<div class="img"><img src="' + d.ImageThumb + '" alt="..."/></div>';
19788                                    carthtml += '<div class="name s13 cl-gregray800 medium500">' + d.ProductName + '</div>';
19789                                    carthtml += '</div>';
19790                                });
19791                                carthtml += '</div></div>';
19792                                index++;
19793                            }
19794                            carthtml += '</div>';
19795                        }
19796                    });
19797                    /* var notitytxt = '';
19798                    for (var key in giftnotity) {
19799                        var item = giftnotity[key];
19800                        if (item.Type == 1 && lib3p_helper.utility.hasValueString(item.Message)) {
19801                            notitytxt += item.Message + '<br/>';
19802                        }
19803                    } */
19804                    var tophtml = '';
19805                    if (bWidth >= 800) {
19806                        tophtml = '<div class="order-gift-top"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang2_ico.svg" /><div class="tieu-de-sub s24 cl-dakgreen650 sibold600">Đừng bỏ lỡ chương trình hấp dẫn hôm nay!</div></div>';
19807                    }
19808                    else {
19809                        tophtml = '<div class="order-gift-top"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang2_ico.svg" /><div class="tieu-de-sub s20 cl-dakgreen650 sibold600">Đừng bỏ lỡ chương trình hấp dẫn hôm nay!</div></div>';
19810                    }  
19811                    /* if(lib3p_helper.utility.hasValueString(notitytxt)) {
19812                        tophtml += '<div class="order-gift-notify b-green100 sl-yel800"><div class="tieude s16 cl-darkred800 bold700">Nhanh tay mua hàng nhận quà!</div><div class="noidung s14 cl-gregray900 regular400">' + notitytxt + '</div></div>';
19813                    } */
19814                    carthtml = tophtml + carthtml;
19815                    jQuery(".page-cart .cart .order-gift-outline").html(carthtml);
19816                    jQuery(".mobile-cart .cart .order-gift-outline").html(carthtml);
19817
19818                    jQuery('.page-cart .cart .order-gift-outline .hienthi.order-gift .product-list.owl-carousel').owlCarousel({
19819                        autoplay: false,
19820                        autoplayTimeout: 3000,
19821                        autoplayHoverPause: true,
19822                        autoWidth: true,
19823                        loop: false,
19824                        nav: true,
19825                        dots: false,
19826                        margin: 10,
19827                        navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
19828                        navElement: 'div'
19829                    });
19830                    jQuery('.mobile-cart .cart .order-gift-outline .hienthi.order-gift .product-list.owl-carousel').owlCarousel({
19831                        autoplay: false,
19832                        autoplayTimeout: 3000,
19833                        autoplayHoverPause: true,
19834                        autoWidth: true,
19835                        loop: false,
19836                        nav: true,
19837                        dots: false,
19838                        margin: 10,
19839                        navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
19840                        navElement: 'div'
19841                    });
19842                }
19843
19844
19845            
19846        },
19847        Cart_LoadBodyReload: function (details) {
19848            if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(details)) {
19849                var query = jQuery('.page-cart .cart .data-content');
19850                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
19851                    details.forEach(function (c, cidx) {
19852                        var item = window.pars3p.cart.CartDetails.find(function (d) { return d.ProductID == c.ProductID; });
19853                        if (lib3p_helper.utility.hasValue(item)) {
19854                            if (item.OrderQuantity != c.OrderQuantity) {
19855                                item.OrderQuantity = c.OrderQuantity;
19856                                jQuery('.page-cart .cart .data-content .product' + c.ProductID + ' .col-quantity input.input').val(item.OrderQuantity);
19857                            }
19858                        }
19859                    });
19860                }
19861            }
19862        },
19863        Cart_Reload: function () {
19864            var req = {
19865                Cart: {
19866                    Code: 0,
19867                    StatusID: 1,
19868                    IsVAT: false,
19869                    HasCoupon: false,
19870                    IsStock: true,
19871                    StepDate: null,
19872                    OrderDate: null,
19873                    MembershipID: '',
19874                    IsHachi24: false,
19875                    IsAppliedHachi24: false,
19876                    DeliveryID: null,
19877                    PaymentID: null,
19878                    Province: null,
19879                    District: null,
19880                    Ward: null,
19881                    Address: '',
19882                    Cellphone: '',
19883                    ReceivedBy: '',
19884                    Payment: 0,
19885                    TotalAmount: 0,
19886                },
19887                CartDetails: window.pars3p.cart.CartDetails,
19888                CartCoupon: [],
19889                CartCombo: [],
19890            };
19891            if (window.pars3p.cart.Code > 0) {
19892                req.Cart.Code = window.pars3p.cart.Code;
19893            }
19894            if (lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
19895                req.Cart.MembershipID = window.pars3p.cart.MembershipID;
19896            }
19897            req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
19898            req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
19899            if (window.pars3p.cart.DeliveryID > 0) {
19900                req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
19901            }
19902            if (window.pars3p.cart.PaymentID > 0) {
19903                req.Cart.PaymentID = window.pars3p.cart.PaymentID;
19904            }
19905            if (window.pars3p.cart.Province > 0) {
19906                req.Cart.Province = window.pars3p.cart.Province;
19907            }
19908            if (window.pars3p.cart.District > 0) {
19909                req.Cart.District = window.pars3p.cart.District;
19910            }
19911            if (window.pars3p.cart.Ward > 0) {
19912                req.Cart.Ward = window.pars3p.cart.Ward;
19913            }
19914            req.Cart.Address = window.pars3p.cart.Address;
19915            req.Cart.Cellphone = window.pars3p.cart.Cellphone;
19916            req.Cart.ReceivedBy = window.pars3p.cart.ReceivedBy;
19917            if (window.pars3p.cart.Payment > 0) {
19918                req.Cart.Payment = window.pars3p.cart.Payment;
19919            }
19920            if (window.pars3p.cart.TotalAmount > 0) {
19921                req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
19922            }
19923            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
19924                req.CartCoupon = window.pars3p.cart.CartCoupon;
19925            }
19926
19927            if (window.pars3p.auth.isLogin == true) {
19928
19929                lib3p.common_AuthPostURL(window.pars3p.api.auth.All_GetCart, req, function (res) {
19930                    if (res.StatusCode == 0) {
19931                        if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
19932                            window.pars3p.cart.lastUser = window.pars3p.auth.userName;
19933                            window.pars3p.cart.lastDate = new Date();
19934
19935                            window.pars3p.cart.Code = res.ObjectReturn.Cart.Code;
19936                            window.pars3p.cart.OrderNo = res.ObjectReturn.Cart.OrderNo;
19937                            window.pars3p.cart.OrderBy = res.ObjectReturn.Cart.OrderBy;
19938                            window.pars3p.cart.OrderPhone = res.ObjectReturn.Cart.OrderPhone;
19939                            window.pars3p.cart.OrderEmail = res.ObjectReturn.Cart.OrderEmail;
19940                            window.pars3p.cart.OrderDate = res.ObjectReturn.Cart.OrderDate;
19941                            window.pars3p.cart.StepDate = res.ObjectReturn.Cart.StepDate;
19942                            window.pars3p.cart.EstDelivery = res.ObjectReturn.Cart.EstDelivery;
19943                            window.pars3p.cart.TotalAmount = res.ObjectReturn.Cart.TotalAmount;
19944                            window.pars3p.cart.MembershipID = res.ObjectReturn.Cart.MembershipID;
19945                            window.pars3p.cart.PolicyMembership = res.ObjectReturn.Cart.PolicyMembership;
19946                            window.pars3p.cart.DiscountMembership = res.ObjectReturn.Cart.DiscountMembership;
19947                            window.pars3p.cart.CouponPaid = res.ObjectReturn.Cart.CouponPaid;
19948                            window.pars3p.cart.ShippingFee = res.ObjectReturn.Cart.ShippingFee;
19949                            window.pars3p.cart.ShippingDiscount = res.ObjectReturn.Cart.ShippingDiscount;
19950                            window.pars3p.cart.Payment = res.ObjectReturn.Cart.Payment;
19951                            window.pars3p.cart.Remark = res.ObjectReturn.Cart.Remark;
19952                            window.pars3p.cart.StaffID = res.ObjectReturn.Cart.StaffID;
19953                            window.pars3p.cart.StatusID = res.ObjectReturn.Cart.StatusID;
19954                            window.pars3p.cart.IsVAT = res.ObjectReturn.Cart.IsVAT;
19955                            window.pars3p.cart.VATCode = res.ObjectReturn.Cart.VATCode;
19956                            window.pars3p.cart.VATCompany = res.ObjectReturn.Cart.VATCompany;
19957                            window.pars3p.cart.VATAddress = res.ObjectReturn.Cart.VATAddress;
19958                            window.pars3p.cart.VATEmail = res.ObjectReturn.Cart.VATEmail;
19959                            window.pars3p.cart.HasCoupon = res.ObjectReturn.Cart.HasCoupon;
19960                            window.pars3p.cart.IsStock = res.ObjectReturn.Cart.IsStock;
19961                            window.pars3p.cart.IsAppliedHachi24 = res.ObjectReturn.Cart.IsAppliedHachi24;
19962                            window.pars3p.cart.IsHachi24 = res.ObjectReturn.Cart.IsHachi24;
19963                            window.pars3p.cart.DeliveryID = res.ObjectReturn.Cart.DeliveryID;
19964                            window.pars3p.cart.ReceivedBy = res.ObjectReturn.Cart.ReceivedBy;
19965                            window.pars3p.cart.Cellphone = res.ObjectReturn.Cart.Cellphone;
19966                            window.pars3p.cart.Province = res.ObjectReturn.Cart.Province;
19967                            window.pars3p.cart.District = res.ObjectReturn.Cart.District;
19968                            window.pars3p.cart.Ward = res.ObjectReturn.Cart.Ward;
19969                            window.pars3p.cart.Address = res.ObjectReturn.Cart.Address;
19970                            window.pars3p.cart.FullAddress = res.ObjectReturn.Cart.FullAddress;
19971                            window.pars3p.cart.BankID = res.ObjectReturn.Cart.BankID;
19972                            window.pars3p.cart.PaymentID = res.ObjectReturn.Cart.PaymentID;
19973                            window.pars3p.cart.PaymentMethod = res.ObjectReturn.Cart.PaymentMethod;
19974
19975                            window.pars3p.cart.TotalItemQuantity = res.ObjectReturn.TotalItemQuantity;
19976
19977                            window.pars3p.cart.CartCoupon = res.ObjectReturn.CartCoupon;
19978                            window.pars3p.cart.ListCoupon = res.ObjectReturn.ListCoupon;
19979                            window.pars3p.cart.CartNoti = res.ObjectReturn.CartNoti;
19980                            window.pars3p.cart.CartCombo = res.ObjectReturn.CartCombo;
19981                            window.pars3p.cart.TypeOfTransportation = res.ObjectReturn.TypeOfTransportation;
19982
19983                            window.pars3p.cart.OrderDate = lib3p_helper.utility.dateGet(window.pars3p.cart.OrderDate);
19984                            window.pars3p.cart.StepDate = lib3p_helper.utility.dateGet(window.pars3p.cart.StepDate);
19985                            window.pars3p.cart.EstDelivery = lib3p_helper.utility.dateGet(window.pars3p.cart.EstDelivery);
19986                            lib3p.pageCart.Cart_LoadHeader();
19987                            lib3p.pageCart.Cart_LoadNoti();
19988                            lib3p.pageCart.Cart_LoadBodyReload(res.ObjectReturn.CartDetails);
19989                            lib3p.pageCart.Cart_LoadTotal();
19990                            lib3p.common_cartSet(window.pars3p.cart);
19991                        }
19992                    }
19993                    else {
19994                        throw res.ErrorString;
19995                    }
19996                }, function (err) {
19997                    throw err;
19998                });
19999
20000            }
20001            else {
20002
20003                lib3p.common_PostURL(window.pars3p.api.auth.All_GetCart, req, function (res) {
20004                    if (res.StatusCode == 0) {
20005                        if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
20006                            window.pars3p.cart.lastUser = window.pars3p.auth.userName;
20007                            window.pars3p.cart.lastDate = new Date();
20008
20009                            window.pars3p.cart.Code = res.ObjectReturn.Cart.Code;
20010                            window.pars3p.cart.OrderNo = res.ObjectReturn.Cart.OrderNo;
20011                            window.pars3p.cart.OrderBy = res.ObjectReturn.Cart.OrderBy;
20012                            window.pars3p.cart.OrderPhone = res.ObjectReturn.Cart.OrderPhone;
20013                            window.pars3p.cart.OrderEmail = res.ObjectReturn.Cart.OrderEmail;
20014                            window.pars3p.cart.OrderDate = res.ObjectReturn.Cart.OrderDate;
20015                            window.pars3p.cart.StepDate = res.ObjectReturn.Cart.StepDate;
20016                            window.pars3p.cart.EstDelivery = res.ObjectReturn.Cart.EstDelivery;
20017                            window.pars3p.cart.TotalAmount = res.ObjectReturn.Cart.TotalAmount;
20018                            window.pars3p.cart.MembershipID = res.ObjectReturn.Cart.MembershipID;
20019                            window.pars3p.cart.PolicyMembership = res.ObjectReturn.Cart.PolicyMembership;
20020                            window.pars3p.cart.DiscountMembership = res.ObjectReturn.Cart.DiscountMembership;
20021                            window.pars3p.cart.CouponPaid = res.ObjectReturn.Cart.CouponPaid;
20022                            window.pars3p.cart.ShippingFee = res.ObjectReturn.Cart.ShippingFee;
20023                            window.pars3p.cart.ShippingDiscount = res.ObjectReturn.Cart.ShippingDiscount;
20024                            window.pars3p.cart.Payment = res.ObjectReturn.Cart.Payment;
20025                            window.pars3p.cart.Remark = res.ObjectReturn.Cart.Remark;
20026                            window.pars3p.cart.StaffID = res.ObjectReturn.Cart.StaffID;
20027                            window.pars3p.cart.StatusID = res.ObjectReturn.Cart.StatusID;
20028                            window.pars3p.cart.IsVAT = res.ObjectReturn.Cart.IsVAT;
20029                            window.pars3p.cart.VATCode = res.ObjectReturn.Cart.VATCode;
20030                            window.pars3p.cart.VATCompany = res.ObjectReturn.Cart.VATCompany;
20031                            window.pars3p.cart.VATAddress = res.ObjectReturn.Cart.VATAddress;
20032                            window.pars3p.cart.VATEmail = res.ObjectReturn.Cart.VATEmail;
20033                            window.pars3p.cart.HasCoupon = res.ObjectReturn.Cart.HasCoupon;
20034                            window.pars3p.cart.IsStock = res.ObjectReturn.Cart.IsStock;
20035                            window.pars3p.cart.IsAppliedHachi24 = res.ObjectReturn.Cart.IsAppliedHachi24;
20036                            window.pars3p.cart.IsHachi24 = res.ObjectReturn.Cart.IsHachi24;
20037                            window.pars3p.cart.DeliveryID = res.ObjectReturn.Cart.DeliveryID;
20038                            window.pars3p.cart.ReceivedBy = res.ObjectReturn.Cart.ReceivedBy;
20039                            window.pars3p.cart.Cellphone = res.ObjectReturn.Cart.Cellphone;
20040                            window.pars3p.cart.Province = res.ObjectReturn.Cart.Province;
20041                            window.pars3p.cart.District = res.ObjectReturn.Cart.District;
20042                            window.pars3p.cart.Ward = res.ObjectReturn.Cart.Ward;
20043                            window.pars3p.cart.Address = res.ObjectReturn.Cart.Address;
20044                            window.pars3p.cart.FullAddress = res.ObjectReturn.Cart.FullAddress;
20045                            window.pars3p.cart.BankID = res.ObjectReturn.Cart.BankID;
20046                            window.pars3p.cart.PaymentID = res.ObjectReturn.Cart.PaymentID;
20047                            window.pars3p.cart.PaymentMethod = res.ObjectReturn.Cart.PaymentMethod;
20048
20049                            window.pars3p.cart.TotalItemQuantity = res.ObjectReturn.TotalItemQuantity;
20050
20051                            window.pars3p.cart.CartCoupon = res.ObjectReturn.CartCoupon;
20052                            window.pars3p.cart.ListCoupon = res.ObjectReturn.ListCoupon;
20053                            window.pars3p.cart.CartNoti = res.ObjectReturn.CartNoti;
20054                            window.pars3p.cart.CartCombo = res.ObjectReturn.CartCombo;
20055                            window.pars3p.cart.TypeOfTransportation = res.ObjectReturn.TypeOfTransportation;
20056
20057                            window.pars3p.cart.OrderDate = lib3p_helper.utility.dateGet(window.pars3p.cart.OrderDate);
20058                            window.pars3p.cart.StepDate = lib3p_helper.utility.dateGet(window.pars3p.cart.StepDate);
20059                            window.pars3p.cart.EstDelivery = lib3p_helper.utility.dateGet(window.pars3p.cart.EstDelivery);
20060                            lib3p.pageCart.Cart_LoadHeader();
20061                            lib3p.pageCart.Cart_LoadNoti();
20062                            lib3p.pageCart.Cart_LoadBodyReload(res.ObjectReturn.CartDetails);
20063                            lib3p.pageCart.Cart_LoadTotal();
20064                            lib3p.common_cartSet(window.pars3p.cart);
20065                        }
20066                    }
20067                    else {
20068                        throw res.ErrorString;
20069                    }
20070                }, function (err) {
20071                    throw err;
20072                });
20073            }
20074        },
20075        Cart_LoadTotal: function () {
20076            var query = jQuery('.page-cart .cart-total');
20077            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20078                var TotalSub = 0;
20079                var TotalWithShip = 0;
20080                jQuery('.page-cart .TotalAmountShipping-sub').hide();
20081                jQuery('.mobile-cart .TotalAmountShipping-sub').hide();
20082                if (window.pars3p.cart.TotalAmount > 0 && window.pars3p.cart.ShippingFee > 0) {
20083                    var temp = window.pars3p.cart.TotalAmount + window.pars3p.cart.ShippingFee;
20084                    if (window.pars3p.cart.ShippingDiscount > 0) {
20085                        temp -= window.pars3p.cart.ShippingDiscount;
20086                    }
20087                    TotalWithShip = temp;
20088                    jQuery('.page-cart .TotalAmountShipping').html(lib3p_helper.utility.formatMoney(temp) + 'đ');
20089                    jQuery('.mobile-cart .TotalAmountShipping').html(lib3p_helper.utility.formatMoney(temp) + 'đ');
20090                    jQuery('.page-cart .TotalAmountShipping-sub').show();
20091                    jQuery('.mobile-cart .TotalAmountShipping-sub').show();
20092                }
20093                jQuery('.page-cart .PolicyMembership-sub').hide();
20094                jQuery('.page-cart .TotalAmountKHTT-sub').hide();
20095                jQuery('.mobile-cart .PolicyMembership-sub').hide();
20096                jQuery('.mobile-cart .TotalAmountKHTT-sub').hide();
20097                if (window.pars3p.cart.TotalAmount > 0 && window.pars3p.cart.PolicyMembership > 0) {
20098                    jQuery('.page-cart .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.PolicyMembership) + 'Ä
20098‘');
20099                    jQuery('.page-cart .PolicyMembership-sub').show();
20100                    jQuery('.page-cart .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(TotalWithShip - window.pars3p.cart.PolicyMembership - window.pars3p.cart.CouponOrder) + 'đ');
20101                    jQuery('.page-cart .TotalAmountKHTT-sub').show();
20102                    jQuery('.mobile-cart .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.PolicyMembership) + 'đ');
20103                    jQuery('.mobile-cart .PolicyMembership-sub').show();
20104                    jQuery('.mobile-cart .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(TotalWithShip - window.pars3p.cart.PolicyMembership - window.pars3p.cart.CouponOrder) + 'đ');
20105                    jQuery('.mobile-cart .TotalAmountKHTT-sub').show();
20106                    TotalSub += window.pars3p.cart.PolicyMembership;
20107                }
20108                jQuery('.page-cart .CouponOrder-sub').hide();
20109                jQuery('.mobile-cart .CouponOrder-sub').hide();
20110                if (window.pars3p.cart.CouponOrder > 0) {
20111                    jQuery('.page-cart .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponOrder) + 'đ');
20112                    jQuery('.page-cart .cart-bottom-fix .CouponOrder').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponOrder) + 'đ');
20113                    jQuery('.page-cart .CouponOrder-sub').show();
20114                    jQuery('.mobile-cart .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponOrder) + 'đ');
20115                    jQuery('.mobile-cart .CouponOrder-sub').show();
20116                    TotalSub += window.pars3p.cart.CouponOrder;
20117                }
20118                //jQuery('.page-cart .TotalAmount').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.TotalAmount) + 'đ');
20119                //jQuery('.js-total-cart .card-body .TotalAmount').show();
20120                //jQuery('.js-total-cart .card-body .TotalAmount .item-value').html(lib3p.common_Money(window.pars3p.cart.TotalAmount - window.pars3p.cart.PolicyMembership) + 'đ');
20121                jQuery('.page-cart .TotalAmount').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.TotalAmount) + 'đ');
20122                jQuery('.page-cart .CouponPaid-sub').hide();
20123                jQuery('.mobile-cart .TotalAmount').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.TotalAmount) + 'đ');
20124                jQuery('.mobile-cart .CouponPaid-sub').hide();
20125                if (window.pars3p.cart.CouponPaid > 0) {
20126                    jQuery('.page-cart .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponPaid) + 'đ');
20127                    jQuery('.page-cart .CouponPaid-sub').show();
20128                    jQuery('.mobile-cart .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponPaid) + 'đ');
20129                    jQuery('.mobile-cart .CouponPaid-sub').show();
20130                    TotalSub += window.pars3p.cart.CouponPaid;
20131                }
20132                //jQuery('.js-total-cart .card-body .ShippingFee').show();
20133                //jQuery('.js-total-cart .card-body .ShippingFee .item-value').html('chưa xác định');
20134
20135                //jQuery('.page-cart .ShippingFee-sub').hide();
20136                jQuery('.page-cart .ShippingFee').html('chưa xác định');
20137                jQuery('.mobile-cart .ShippingFee').html('chưa xác định');
20138                if (window.pars3p.cart.ShippingFee > 0) {
20139                    jQuery('.page-cart .ShippingFee').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.ShippingFee) + 'đ');
20140                    jQuery('.mobile-cart .ShippingFee').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.ShippingFee) + 'đ');
20141                    //jQuery('.page-cart .ShippingFee-sub').show();
20142                }
20143                jQuery('.page-cart .ShippingDiscount-sub').hide();
20144                jQuery('.mobile-cart .ShippingDiscount-sub').hide();
20145                if (window.pars3p.cart.ShippingDiscount > 0) {
20146                    jQuery('.page-cart .ShippingDiscount').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.ShippingDiscount) + 'đ');
20147                    jQuery('.page-cart .ShippingDiscount-sub').show();
20148                    jQuery('.mobile-cart .ShippingDiscount').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.ShippingDiscount) + 'đ');
20149                    jQuery('.mobile-cart .ShippingDiscount-sub').show();
20150                    TotalSub += window.pars3p.cart.ShippingDiscount;
20151                }
20152                if (TotalSub > 0) {
20153                    jQuery('.page-cart .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
20154                    jQuery('.mobile-cart .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
20155                }
20156                else {
20157                    jQuery('.page-cart .TotalSub').html('');
20158                    jQuery('.mobile-cart .TotalSub').html('');
20159                }
20160
20161                jQuery('.page-cart .Payment').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.Payment) + 'đ');
20162                jQuery('.page-cart .TotalItemQuantityChoose').html('(' + window.pars3p.cart.TotalItemQuantityChoose + ' sản phẩm)');
20163                jQuery('.mobile-cart .Payment').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.Payment) + 'đ');
20164                jQuery('.mobile-cart .TotalItemQuantityChoose').html('(' + window.pars3p.cart.TotalItemQuantityChoose + ' sản phẩm)');
20165                if (window.pars3p.auth.isLogin != true) {
20166                    jQuery('.page-cart .cart-right .dia-chi').hide();
20167                }
20168                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.FullAddress)) {
20169                    if (window.pars3p.auth.isLogin == true || lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP)) {
20170                        jQuery('.page-cart .dia-chi .ReceivedBy').html(window.pars3p.cart.ReceivedBy);
20171                        jQuery('.page-cart .dia-chi .Cellphone').html(window.pars3p.cart.Cellphone);
20172                        jQuery('.page-cart .dia-chi .FullAddress').html(window.pars3p.cart.FullAddress);
20173                        jQuery('.mobile-cart .dia-chi .ReceivedBy').html(window.pars3p.cart.ReceivedBy);
20174                        jQuery('.mobile-cart .dia-chi .Cellphone').html(window.pars3p.cart.Cellphone);
20175                        jQuery('.mobile-cart .dia-chi .FullAddress').html(window.pars3p.cart.FullAddress);
20176                        if (window.pars3p.auth.isLogin != true) {
20177                            jQuery('.page-cart .cart-right .dia-chi').show();
20178                        }
20179                    }
20180                    else {
20181                        jQuery('.page-cart .dia-chi .sub-1').hide();
20182                        jQuery('.page-cart .dia-chi .sub-2').hide();
20183                        jQuery('.mobile-cart .dia-chi .sub-1').hide();
20184                        jQuery('.mobile-cart .dia-chi .sub-2').hide();
20185                    }
20186                }
20187                else {
20188                    jQuery('.page-cart .dia-chi .sub-1').hide();
20189                    jQuery('.page-cart .dia-chi .sub-2').hide();
20190                    jQuery('.mobile-cart .dia-chi .sub-1').hide();
20191                    jQuery('.mobile-cart .dia-chi .sub-2').hide();
20192                }
20193
20194                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails) && window.pars3p.cart.CartDetails.length > 3) {
20195                    if (!jQuery('.page-cart .cart-right').hasClass('full')) {
20196                        jQuery('.page-cart .cart-right').addClass('full');
20197                    }
20198                }
20199                else {
20200                    jQuery('.page-cart .cart-right.full').removeClass('full');
20201                }
20202            }
20203        },
20204        Cart_LoadLike: function () {
20205            query = jQuery('.page-cart .cart .data-content .data-row');
20206            if (lib3p_helper.utility.hasValue(query) && query.length > 0 && lib3p_helper.utility.hasValueString(window.pars3p.productLike)) {
20207                query.each(function () {
20208                    var id = jQuery(this).data('id');
20209                    if (window.pars3p.productLike.indexOf('[' + id + ']') >= 0) {
20210                        var queryLike = jQuery(this).find('div.img-like');
20211                        if (lib3p_helper.utility.hasValue(queryLike) && queryLike.length > 0) {
20212                            if (!jQuery(queryLike[0]).hasClass('like')) {
20213                                jQuery(queryLike[0]).addClass('like');
20214                            }
20215                        }
20216                    }
20217                });
20218                jQuery('.mobile-cart .cart .data-content .data-row').each(function () {
20219                    var id = jQuery(this).data('id');
20220                    if (window.pars3p.productLike.indexOf('[' + id + ']') >= 0) {
20221                        var queryLike = jQuery(this).find('div.img-like');
20222                        if (lib3p_helper.utility.hasValue(queryLike) && queryLike.length > 0) {
20223                            if (!jQuery(queryLike[0]).hasClass('like')) {
20224                                jQuery(queryLike[0]).addClass('like');
20225                            }
20226                        }
20227                    }
20228                });
20229            }
20230        },
20231        onCart_Like: function (el, id) {
20232            var query = jQuery(el).closest('div.data-row').find('div.img-like');
20233            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20234                lib3p.header.ProductLike_Change(id, function () {
20235                    if (jQuery(query[0]).hasClass('like')) {
20236                        jQuery(query[0]).removeClass('like');
20237                    }
20238                    else {
20239                        jQuery(query[0]).addClass('like');
20240                    }
20241                });
20242            }
20243        },
20244        onQuantiy_KeyDown: function (event, el, id) {
20245            if (window.pars3p.keydown_el != el) {
20246                window.pars3p.keydown_count = 1;
20247            }
20248            else if (window.pars3p.keydown_count >= 0) {
20249                window.pars3p.keydown_count++;
20250            }
20251            else {
20252                window.pars3p.keydown_count = 1;
20253            }
20254            setTimeout(function () {
20255                window.pars3p.keydown_count--;
20256                if (window.pars3p.keydown_count <= 0) {
20257                    window.pars3p.keydown_el = null;
20258                    if (lib3p_helper.utility.hasValue(window.pars3p.keydown_timer)) {
20259                        clearTimeout(window.pars3p.keydown_timer);
20260                        window.pars3p.keydown_timer = null;
20261                    }
20262                    if (lib3p_helper.utility.hasValueString(el.value)) {
20263                        var quan = -1;
20264                        var flagNumber = false;
20265                        try {
20266                            quan = parseInt(el.value);
20267                            flagNumber = true;
20268                        }
20269                        catch (err) { }
20270                        if (flagNumber == true) {
20271                            var item = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == id; });
20272                            if (lib3p_helper.utility.hasValue(item)) {
20273                                if (item.LSProduct_QuantityWithOrder >= quan) {
20274                                    if (quan > 0) {
20275                                        item.OrderQuantity = quan;
20276                                        item.IsChoose = true;
20277                                        lib3p.pageCart.Cart_ProductQuantity(el, item);
20278                                    }
20279                                    else {
20280                                        item.OrderQuantity = 0;
20281                                        item.IsChoose = false;
20282                                        var query = jQuery(el).closest('.data-row');
20283                                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20284                                            query.find('.choose > input')[0].checked = false;
20285                                        }
20286                                        query = jQuery(el).closest('.cart');
20287                                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20288                                            query.find('.data-header .choose > input')[0].checked = false;
20289                                        }
20290                                        lib3p.pageCart.Cart_ProductQuantity(el, item);
20291                                    }
20292                                }
20293                                else if (item.LSProduct_QuantityWithOrder < quan) {
20294                                    item.OrderQuantity = item.LSProduct_QuantityWithOrder;
20295                                    lib3p.pageCart.Cart_ProductQuantity(el, item);
20296
20297                                    var query = jQuery(el).closest('.action');
20298                                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20299                                        query.find('.thongbao').addClass('show');
20300                                        setTimeout(function () {
20301                                            query.find('.thongbao').removeClass('show');
20302                                        }, 1000);
20303                                    }
20304                                }
20305                            }
20306                        }
20307                    }
20308                }
20309            }, 1000);
20310            if (!lib3p_helper.utility.hasValue(window.pars3p.keydown_timer)) {
20311                window.pars3p.keydown_timer = setTimeout(function () {
20312                    if (lib3p_helper.utility.hasValue(window.pars3p.keydown_el) && window.pars3p.keydown_count > 0) {
20313                        if (lib3p_helper.utility.hasValue(window.pars3p.keydown_timer)) {
20314                            clearTimeout(window.pars3p.keydown_timer);
20315                            window.pars3p.keydown_timer = null;
20316                        }
20317                        if (lib3p_helper.utility.hasValueString(el.value)) {
20318                            var quan = -1;
20319                            var flagNumber = false;
20320                            try {
20321                                quan = parseInt(el.value);
20322                                flagNumber = true;
20323                            }
20324                            catch (err) { }
20325                            if (flagNumber == true) {
20326                                var item = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == id; });
20327                                if (lib3p_helper.utility.hasValue(item)) {
20328                                    if (item.LSProduct_QuantityWithOrder >= quan && quan > 0) {
20329                                        if (quan > 0) {
20330                                            item.OrderQuantity = quan;
20331                                            item.IsChoose = true;
20332                                            lib3p.pageCart.Cart_ProductQuantity(el, item);
20333                                        }
20334                                        else {
20335                                            item.OrderQuantity = 0;
20336                                            item.IsChoose = false;
20337                                            var query = jQuery(el).closest('.data-row');
20338                                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20339                                                query.find('.choose > input')[0].checked = false;
20340                                            }
20341                                            query = jQuery(el).closest('.cart');
20342                                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20343                                                query.find('.data-header .choose > input')[0].checked = false;
20344                                            }
20345                                            lib3
20345p.pageCart.Cart_ProductQuantity(el, item);
20346                                        }
20347                                    }
20348                                    else if (item.LSProduct_QuantityWithOrder < quan) {
20349                                        item.OrderQuantity = item.LSProduct_QuantityWithOrder;
20350                                        lib3p.pageCart.Cart_ProductQuantity(el, item);
20351
20352                                        var query = jQuery(el).closest('.action');
20353                                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20354                                            query.find('.thongbao').addClass('show');
20355                                            setTimeout(function () {
20356                                                query.find('.thongbao').removeClass('show');
20357                                            }, 1000);
20358                                        }
20359                                    }
20360                                }
20361                            }
20362                        }
20363                    }
20364                }, 5000);
20365            }
20366        },
20367        onProduct_Sub: function (el, id) {
20368            var item = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == id; });
20369            if (lib3p_helper.utility.hasValue(item)) {
20370                if (item.OrderQuantity > 1) {
20371                    item.OrderQuantity--;
20372                    lib3p.pageCart.Cart_ProductQuantity(el, item);
20373                }
20374                else {
20375                    lib3p.pageCart.onProduct_Delete(el, id);
20376                }
20377            }
20378        },
20379        onProduct_Add: function (el, id) {
20380            var item = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == id; });
20381            if (lib3p_helper.utility.hasValue(item)) {
20382                if (item.LSProduct_QuantityWithOrder < item.OrderQuantity + 1) {
20383                    var query = jQuery(el).closest('.action');
20384                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20385                        query.find('.thongbao').addClass('show');
20386                        setTimeout(function () {
20387                            query.find('.thongbao').removeClass('show');
20388                        }, 1000);
20389                    }
20390                }
20391                else {
20392                    item.OrderQuantity++;
20393                    item.IsChoose = true;
20394                    lib3p.pageCart.Cart_ProductQuantity(el, item);
20395                }
20396            }
20397        },
20398        Cart_ProductQuantity: function (el, detail) {
20399            jQuery(el).parent().find('input.input').val(detail.OrderQuantity);
20400            if (window.pars3p.cart.Code > 0) {
20401                detail.CartID = window.pars3p.cart.Code;
20402            }
20403            lib3p.pageCart.Cart_ProductQuantity_async(el, detail).then(function (data) {
20404
20405            }, function (err) {
20406                alert(err);
20407            });
20408        },
20409        Cart_ProductQuantity_async: function (el, detail) {
20410            return new Promise(function (resolve, reject) {
20411                setTimeout(function () {
20412                    lib3p.pageCart.Cart_SuggestCombo();
20413                    if (window.pars3p.auth.isLogin == true) {
20414                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductQuantity, { detail: detail }, function (res) {
20415                            if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
20416                                if (res.ObjectReturn.IsApproved != true) {
20417                                    jQuery(el).parent().find('input.input').val('0');
20418                                    detail.OrderQuantity = 0;
20419                                    //var query = jQuery('.page-cart .cart .data-content .data-row.product' + detail.ProductID);
20420                                    var query = jQuery(el).closest('.data-row');
20421                                    if (query != null && query.length > 0) {
20422                                        if (!query.hasClass('isempty')) {
20423                                            query.addClass('isempty');
20424                                        }
20425                                        query.find('.del .button').hide();
20426                                        query.find('.action-sub').html('<span class="hethang s13 cl-red500 sibold600">
20426Hết hàng</span>');
20427                                    }
20428                                }
20429                                else if (res.ObjectReturn.OrderQuantity > 0) {
20430                                    //var query = jQuery('.page-cart .cart .data-content .data-row.product' + detail.ProductID);
20431                                    var query = jQuery(el).closest('.data-row');
20432                                    if (query != null && query.length > 0) {
20433                                        query.find('.choose > input')[0].disabled = false;
20434                                        if(detail.IsChoose == true) {
20435                                            query.find('.choose > input')[0].checked = true;
20436                                        }
20437                                    }
20438                                }
20439                                else {
20440                                    jQuery(el).parent().find('input.input').val(res.ObjectReturn.OrderQuantity);
20441                                    detail.OrderQuantity = 0;
20442                                    //var query = jQuery('.page-cart .cart .data-content .data-row.product' + detail.ProductID);
20443                                    var query = jQuery(el).closest('.data-row');
20444                                    if (query != null && query.length > 0) {
20445                                        query.find('.choose > input')[0].disabled = true;
20446                                    }
20447                                }
20448                                if (res.ObjectReturn.OrderQuantity > 0 && detail.OrderQuantity != res.ObjectReturn.OrderQuantity) {
20449                                    jQuery(el).parent().find('input.input').val(res.ObjectReturn.OrderQuantity);
20450                                    detail.OrderQuantity = res.ObjectReturn.OrderQuantity;
20451                                    window.pars3p.cart.CartNoti = [{ Notification: res.ObjectReturn.ErrorNote }];
20452                                    lib3p.pageCart.Cart_LoadNoti();
20453                                    //window.pars3p.cart.CartNoti.push({ Notification: 'Giỏ hàng của bạn có sản phẩm quá số lượng tồn : ' + detail.ProductName + '.' });
20454                                }
20455                                else {
20456                                    detail.LSProduct_Quantity = res.ObjectReturn.LSProduct_Quantity;
20457                                    detail.LSProduct_QuantityWithOrder = res.ObjectReturn.LSProduct_QuantityWithOrder;
20458                                    lib3p.pageCart.Cache_Check();
20459                                    lib3p.common_cartSet(window.pars3p.cart);
20460                                    lib3p.pageCart.Cart_ProductTotal(false);
20461                                }
20462                            }
20463                            resolve('');
20464                        }, function (err) {
20465                            lib3p.log(err);
20466                            reject(err);
20467                        });
20468                    }
20469                    else {
20470                        lib3p.common_PostURL(window.pars3p.api.public.Cart_ProductQuantity, { detail: detail }, function (res) {
20471                            if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
20472                                if (res.ObjectReturn.IsApproved != true) {
20473                                    jQuery(el).parent().find('input.input').val('0');
20474                                    detail.OrderQuantity = 0;
20475                                    //var query = jQuery('.page-cart .cart .data-content .data-row.product' + detail.ProductID);
20476                                    var query = jQuery(el).closest('.data-row');
20477                                    if (query != null && query.length > 0) {
20478                                        if (!query.hasClass('isempty')) {
20479                                            query.addClass('isempty');
20480                                        }
20481                                        query.find('.del .button').hide();
20482                                        query.find('.action-sub').html('<span class="hethang s13 cl-red500 sibold600">
20482Hết hàng</span>');
20483                                    }
20484                                }
20485                                else if (res.ObjectReturn.OrderQuantity > 0) {
20486                                    //var query = jQuery('.page-cart .cart .data-content .data-row.product' + detail.ProductID);
20487                                    var query = jQuery(el).closest('.data-row');
20488                                    if (query != null && query.length > 0) {
20489                                        query.find('.choose > input')[0].disabled = false;
20490                                        if(detail.IsChoose == true) {
20491                                            query.find('.choose > input')[0].checked = true;
20492                                        }
20493                                    }
20494                                }
20495                                else {
20496                                    jQuery(el).parent().find('input.input').val(res.ObjectReturn.OrderQuantity);
20497                                    detail.OrderQuantity = 0;
20498                                    //var query = jQuery('.page-cart .cart .data-content .data-row.product' + detail.ProductID);
20499                                    var query = jQuery(el).closest('.data-row');
20500                                    if (query != null && query.length > 0) {
20501                                        query.find('.choose > input')[0].disabled = true;
20502                                    }
20503                                }
20504                                if (res.ObjectReturn.OrderQuantity > 0 && detail.OrderQuantity != res.ObjectReturn.OrderQuantity) {
20505                                    jQuery(el).parent().find('input.input').val(res.ObjectReturn.OrderQuantity);
20506                                    detail.OrderQuantity = res.ObjectReturn.OrderQuantity;
20507                                    window.pars3p.cart.CartNoti = [{ Notification: res.ObjectReturn.ErrorNote }];
20508                                    lib3p.pageCart.Cart_LoadNoti();
20509                                }
20510                                else {
20511                                    detail.LSProduct_Quantity = res.ObjectReturn.LSProduct_Quantity;
20512                                    detail.LSProduct_QuantityWithOrder = res.ObjectReturn.LSProduct_QuantityWithOrder;
20513                                    lib3p.pageCart.Cache_Check();
20514                                    lib3p.common_cartSet(window.pars3p.cart);
20515                                    lib3p.pageCart.Cart_ProductTotal(true);
20516                                }
20517                            }
20518                            resolve('');
20519                        }, function (err) {
20520                            lib3p.log(err);
20521                            reject(err);
20522                        });
20523                    }
20524                }, 200);
20525            });
20526        },
20527        Cache_Check: function () {
20528            if (lib3p_helper.utility.hasValue(window.pars3p.cart)) {
20529                window.pars3p.cart.TotalItemQuantity = 0;
20530                window.pars3p.cart.TotalItemQuantityChoose = 0;
20531                window.pars3p.cart.CartDetails.forEach(function (c, cidx) {
20532                    if (c.OrderQuantity > 0) {
20533                        window.pars3p.cart.TotalItemQuantity += c.OrderQuantity;
20534                        if (c.IsChoose == true) {
20535                            window.pars3p.cart.TotalItemQuantityChoose += c.OrderQuantity;
20536                        }
20537                    }
20538                });
20539            }
20540        },
20541        onProduct_Delete: function (el, id) {
20542            window.pars3p.productDeleteID = id;
20543            var query = jQuery('.popup-cart-delete .hachi-modal');
20544            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20545                if (jQuery(query[0]).hasClass("d-none")) {
20546                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
20547                }
20548            }
20549
20550            var item = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == id; });
20551            if (lib3p_helper.utility.hasValue(item)) {
20552                jQuery('.popup-cart-delete .hachi-modal .ProductName').html(item.ProductName);
20553            }
20554        },
20555        onProduct_DeleteClose: function () {
20556            var query = jQuery('.popup-cart-delete .hachi-modal');
20557            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20558                if (jQuery(query[0]).hasClass("d-block")) {
20559                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
20560                }
20561            }
20562        },
20563        onProduct_DeleteOk: function () {
20564            var item = window.pars3p.cart.CartDetails.find(function (c) { return c.ProductID == window.pars3p.productDeleteID; });
20565            var idx = window.pars3p.cart.CartDetails.findIndex(function (c) { return c.ProductID == window.pars3p.productDeleteID; });
20566            if (lib3p_helper.utility.hasValue(item) && idx >= 0) {
20567                if (window.pars3p.auth.isLogin == true) {
20568                    item.CartID = window.pars3p.cart.Code;
20569                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductDelete, { detail: item }, function (res) {
20570                        if (res == true) {
20571                            lib3p.header.GMC_RemoveCart(item.Barcode, item.ProductName, item.BasePrice, item.OrderQuantity);
20572                            lib3p.pageCart.onProduct_DeleteClose();
20573                            jQuery('.page-cart .cart .data-content .data-row.product' + window.pars3p.productDeleteID).remove();
20574                            jQuery('.mobile-cart .cart .data-content .data-row.product' + window.pars3p.productDeleteID).remove();
20575                            window.pars3p.cart.CartDetails.splice(idx, 1);
20576                            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
20577                                lib3p.pageCart.Cart_ProductTotal(false);
20578                            }
20579                            else {
20580                                lib3p.pageCart.Cache_Check();
20581                                lib3p.common_cartSet(window.pars3p.cart);
20582                                window.location.reload();
20583                            }
20584                        }
20585                    }, function (err) {
20586                        lib3p.log(err);
20587                    });
20588                }
20589                else {
20590                    lib3p.header.GMC_RemoveCart(item.Barcode, item.ProductName, item.BasePrice, item.OrderQuantity);
20591                    lib3p.pageCart.onProduct_DeleteClose();
20592                    jQuery('.page-cart .cart .data-content .data-row.product' + window.pars3p.productDeleteID).remove();
20593                    jQuery('.mobile-cart .cart .data-content .data-row.product' + window.pars3p.productDeleteID).remove();
20594                    window.pars3p.cart.CartDetails.splice(idx, 1);
20595                    if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
20596                        lib3p.pageCart.Cart_ProductTotal(true);
20597                    }
20598                    else {
20599                        lib3p.pageCart.Cache_Check();
20600                        lib3p.common_cartSet(window.pars3p.cart);
20601                        window.location.reload();
20602                    }
20603                }
20604            }
20605        },
20606        onProduct_Chon: function (el, id) {
20607            lib3p.pageCart.onProduct_Chon_async(el.checked, id).then(function (data) {
20608
20609            }, function (err) {
20610                alert(err);
20611            });
20612        },
20613        onProduct_Chon_async: function (check, id) {
20614            lib3p.common_LoadingShow();
20615
20616            return new Promise(function (resolve, reject) {
20617                setTimeout(function () {
20618                    var item = window.pars3p.cart.CartDetails.find(function (d) { return d.ProductID == id; });
20619                    if (lib3p_helper.utility.hasValue(item)) {
20620                        item.IsChoose = check == true;
20621
20622                        var hasCheck = true;
20623                        window.pars3p.cart.CartDetails.forEach(function (c) {
20624                            if (c.IsChoose != true && c.IsStock == true) {
20625                                hasCheck = false;
20626                            }
20627                        });
20628                        if (hasCheck == true) {
20629                            var query = jQuery('.page-cart .cart .data-header input');
20630                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20631                                query[0].checked = true;
20632                                jQuery('.mobile-cart .cart .data-header input')[0].checked = true;
20633                            }
20634                        }
20635                        else {
20636                            var query = jQuery('.page-cart .cart .data-header input');
20637                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20638                                query[0].checked = false;
20639                                jQuery('.mobile-cart .cart .data-header input')[0].checked = false;
20640                            }
20641                        }
20642                        lib3p.pageCart.Cart_ProductTotal(true);
20643                        resolve('');
20644                    }
20645                    else {
20646                        reject('not found data');
20647                    }
20648                }, 200);
20649            });
20650        },
20651        onProduct_ChonAll: function (event) {
20652            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
20653                window.pars3p.cart.CartDetails.forEach(function (c) {
20654                    if (c.IsStock == true) {
20655                        c.IsChoose = event.currentTarget.checked == true;
20656                        var query = jQuery('.page-cart .cart .data-content .data-row.product' + c.ProductID + ' .choose input');
20657                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20658                            query[0].checked = c.IsChoose;
20659                            jQuery('.mobile-cart .cart .data-content .data-row.product' + c.ProductID + ' .choose input')[0].checked = c.IsChoose;
20660                        }
20661                    }
20662                });
20663                lib3p.pageCart.onProduct_ChonAll_async(event.currentTarget.checked).then(function (data) {
20664
20665                }, function (err) {
20666                    alert(err);
20667                });
20668            }
20669        },
20670        onProduct_ChonAll_async: function (check) {
20671            lib3p.common_LoadingShow();
20672            return new Promise(function (resolve, reject) {
20673                setTimeout(function () {
20674                    if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
20675                        lib3p.pageCart.Cart_ProductTotal(true);
20676                        resolve('');
20677                    }
20678                    else {
20679                        reject('not found data');
20680                    }
20681                }, 200);
20682            });
20683        },
20684        Cart_ProductTotal: function (sendDetail) {
20685            window.pars3p.cartWaitTimeRun = window.pars3p.cartWaitTime;
20686            jQuery('.coupon form .sub-1-error').html('');
20687            var cart = {
20688                Cart: {
20689                    Code: -1,
20690                    OrderDate: null,
20691                    MembershipID: -1,
20692                    DiscountMembership: 0
20693                },
20694                CartDetails: [],
20695                CartCoupon: []
20696            };
20697            cart.Cart = lib3p_helper.cart.getCartInfo();
20698            if (window.pars3p.auth.isLogin == true) {
20699                if (sendDetail == true) {
20700                    window.pars3p.cart.CartDetails.forEach(function (c) {
20701                        cart.CartDetails.push({ ProductID: c.ProductID, ProductName: c.ProductName, OrderQuantity: c.OrderQuantity, ShippedQuantity: c.ShippedQuantity, UnitPrice: c.UnitPrice, IsChoose: c.IsChoose, ModelID: c.ModelID, ImageSetting: c.ImageSetting });
20702                    });
20703                    cart.CartCoupon = window.pars3p.cart.CartCoupon;
20704                }
20705            }
20706            else {
20707                window.pars3p.cart.CartDetails.forEach(function (c) {
20708                    cart.CartDetails.push({ ProductID: c.ProductID, ProductName: c.ProductName, OrderQuantity: c.OrderQuantity, ShippedQuantity: c.ShippedQuantity, UnitPrice: c.UnitPrice, IsChoose: c.IsChoose, ModelID: c.ModelID, ImageSetting: c.ImageSetting });
20709                });
20710                cart.CartCoupon = window.pars3p.cart.CartCoupon;
20711            }
20712
20713            if (window.pars3p.auth.isLogin == true) {
20714                lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_ProductTotal, { cart: cart }, function (res) {
20715                    lib3p.common_LoadingHide();
20716                    if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
20717                        window.pars3p.cart.lastUser = window.pars3p.auth.userName;
20718                        window.pars3p.cart.lastDate = new Date();
20719                        window.pars3p.cart.CartNoti = [];
20720                        lib3p_helper.cart.copyCart(res.ObjectReturn);
20721                        if (window.pars3p.cart.StepDate && window.pars3p.cart.StepDate.getTime) {
20722                            window.pars3p.cart.timeOrderCalculateNext = window.pars3p.cart.StepDate.getTime() + window.pars3p.timeOrderCalculate;
20723                        }
20724                        else {
20725                            window.pars3p.cart.timeOrderCalculateNext = (new Date()).getTime() + window.pars3p.timeOrderCalculate;
20726                        }
20727                        if (window.pars3p.cart.IsAppliedHachi24 != true) {
20728                            window.pars3p.cart.IsHachi24 = false;
20729                        }
20730                        lib3p.pageCart.Cache_Check();
20731                        lib3p.common_cartSet(window.pars3p.cart);
20732                        lib3p.pageCart.Cart_LoadHeader();
20733                        lib3p.pageCart.Cart_LoadNoti();
20734                        lib3p.pageCart.Cart_LoadGift();
20735                        lib3p.pageCart.Cart_LoadTotal();
20736                        lib3p.pageCart.Cart_ListCoupon();
20737
20738                        window.pars3p.cart.CartDetails.forEach(function (c) {
20739                            if (c.IsChoose != true) {
20740                                var query = jQuery('.page-cart .cart .data-content .data-row.product' + c.ProductID + ' input[type="checkbox"]');
20741                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20742                                    query[0].checked = false;
20743                                    jQuery('.page-cart .cart .data-header .choose input[type="checkbox"]')[0].checked = false;
20744                                }
20745                                query = jQuery('.mobile-cart .cart .data-content .data-row.product' + c.ProductID + ' input[type="checkbox"]');
20746                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20747                                    query[0].checked = false;
20748                                    jQuery('.mobile-cart .cart .data-header .choose input[type="checkbox"]')[0].checked = false;
20749                                }
20750                            }
20751                        });
20752                    }
20753                }, function (err) {
20754                    lib3p.log(err);
20755                });
20756            }
20757            else {
20758                lib3p.common_PostURL(window.pars3p.api.public.Cart_ProductTotal, { cart: cart }, function (res) {
20759                    lib3p.common_LoadingHide();
20760                    if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
20761                        window.pars3p.cart.lastUser = window.pars3p.auth.userName;
20762                        window.pars3p.cart.lastDate = new Date();
20763                        window.pars3p.cart.CartNoti = [];
20764                        lib3p_helper.cart.copyCart(res.ObjectReturn);
20765
20766                        if (window.pars3p.cart.IsAppliedHachi24 != true) {
20767                            window.pars3p.cart.IsHachi24 = false;
20768                        }
20769                        lib3p.pageCart.Cache_Check();
20770                        lib3p.common_cartSet(window.pars3p.cart);
20771                        lib3p.pageCart.Cart_LoadHeader();
20772                        lib3p.pageCart.Cart_LoadNoti();
20773                        lib3p.pageCart.Cart_LoadGift();
20774                        lib3p.pageCart.Cart_LoadTotal();
20775                        lib3p.pageCart.Cart_ListCoupon();
20776                    }
20777                }, function (err) {
20778                    lib3p.log(err);
20779                });
20780            }
20781        },
20782        onCartShip_Click: function () {
20783            /* lib3p.common_urllastSet(window.location.href);
20784            window.location.href = window.pars3p.urlCartDelivery; */
20785            if (window.pars3p.auth.isLogin == true) {
20786                //lib3p.common_urllastSet(window.location.href);
20787                //window.location.href = window.pars3p.urlCartDelivery;
20788                lib3p.header.PopupDelivery_Show();
20789            }
20790            else {
20791                window.pars3p.cart.OrderPhoneOTP = '';
20792                lib3p.pageCart.LoadDataEdit();
20793            }
20794        },        
20795        onCartCoupon_Toggle: function () {
20796            var query = jQuery('.popup-cart-coupon-choose .hachi-modal');
20797            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20798                if (jQuery(query[0]).hasClass("d-none")) {
20799                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
20800                }
20801            }
20802            /* if(lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)){
20803                if(jQuery('.page-cart .coupon').hasClass('open')) {
20804                    jQuery('.page-cart .coupon').removeClass('open');
20805                    jQuery('.mobile-cart .coupon').removeClass('open');
20806                }
20807                else {
20808                    jQuery('.page-cart .coupon').addClass('open');
20809                    jQuery('.mobile-cart .coupon').addClass('open');
20810                }
20811            } */
20812        },
20813        onCartCoupon_Close: function () {
20814            var query = jQuery('.popup-cart-coupon-choose .hachi-modal');
20815            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20816                if (jQuery(query[0]).hasClass("d-block")) {
20817                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
20818                }
20819            }
20820        },
20821        onCartCoupon_Check: function (el, id) {
20822            var find = window.pars3p.cart.ListCoupon.find(function (c) { return c.Code == id; });
20823
20824            if (lib3p_helper.utility.hasValue(find)) {
20825                find.IsUse = el.checked == true;
20826                if (find.IsUse == true) {
20827                    if (find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
20827ouponCart) {
20828                        window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCart && c.CouponID != id; }).forEach(function (c) {
20829                            c.IsUse = false;
20830                        });
20831                        jQuery(el).closest('div.data').find('div.check input[type="checkbox"]').each(function () {
20832                            var detail = this;
20833                            if (detail != el) {
20834                                detail.checked = false;
20835                            }
20836                        });
20837                    }
20838                    else if (find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCartShipping) {
20839                        window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCartShipping && c.CouponID != id; }).forEach(function (c) {
20840                            c.IsUse = false;
20841                        });
20842                        jQuery(el).closest('div.data').find('div.check input[type="checkbox"]').each(function () {
20843                            var detail = this;
20844                            if (detail != el) {
20845                                detail.checked = false;
20846                            }
20847                        });
20848                    }
20849                    else if (find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.Coupon) {
20850                        if (window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.Coupon && c.CouponID != id && c.IsUse == true; }).length >= 5) {
20851                            var first = window.pars3p.cart.ListCoupon.find(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.Coupon && c.CouponID != id && c.IsUse == true; });
20852                            if (lib3p_helper.utility.hasValue(first)) {
20853                                first.IsUse = false;
20854                                jQuery(el).closest('div.data').find('input[type="checkbox"].chk_' + first.Code).each(function () {
20855                                    var detail = this;
20856                                    if (detail != el) {
20857                                        detail.checked = false;
20858                                    }
20859                                });
20860                            }
20861                        }
20862                    }
20863                }
20864
20865                //jQuery('.popup-cart-coupon-choose .list-public.nochange').removeClass('nochange');
20866                //window.pars3p.couponChange = true;
20867            }
20868        },
20869        onCartCoupon_Delete: function (id) {
20870            window.pars3p.cart.CouponDeleteID = id;
20871            var item = window.pars3p.cart.CartCoupon.find(function (c) { return c.CouponID == id; });
20872            if (lib3p_helper.utility.hasValue(item)) {
20873                jQuery('.popup-cart-coupon-delete .CouponCode').html(item.CouponCode);
20874                var query = jQuery('.popup-cart-coupon-delete .hachi-modal');
20875                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20876                    if (jQuery(query[0]).hasClass("d-none")) {
20877                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
20878                    }
20879                }
20880            }
20881        },
20882        onCartCouponDelete_Close: function () {
20883            var query = jQuery('.popup-cart-coupon-delete .hachi-modal');
20884            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
20885                if (jQuery(query[0]).hasClass("d-block")) {
20886                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
20887                }
20888            }
20889        },
20890        onCartCouponDelete_Ok: function () {
20891            lib3p.pageCart.onCartCouponDelete_Close();
20892            var item = window.pars3p.cart.CartCoupon.find(function (c) { return c.CouponID == window.pars3p.cart.CouponDeleteID; });
20893            var idx = window.pars3p.cart.CartCoupon.findIndex(function (c) { return c.CouponID == window.pars3p.cart.CouponDeleteID; });
20894
20895            if (idx >= 0) {
20896                window.pars3p.cart.CartCoupon.splice(idx, 1);
20897
20898                if (window.pars3p.auth.isLogin == true) {
20899                    var req = {
20900                        CartID: -1,
20901                        CouponID: window.pars3p.cart.CouponDeleteID,
20902                    };
20903                    if (window.pars3p.cart.Code > 0) {
20904                        req.CartID = window.pars3p.cart.Code;
20905                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_CouponDelete, req, function (res) {
20906                            if (res == true) {
20907                                lib3p.common_cartSet(window.pars3p.cart);
20908                                lib3p.pageCart.Cart_ListCoupon();
20909                                lib3p.pageCart.Cart_ProductTotal();
20910                            }
20911                        }, function (err) {
20912                            lib3p.log(err);
20913                        });
20914                    }
20915                }
20916                else {
20917                    lib3p.common_cartSet(window.pars3p.cart);
20918                    lib3p.pageCart.Cart_ProductTotal();
20919                }
20920            }
20921        },
20922        onCartCoupon_ApDung: function () {
20923            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)) {
20924                var cart = {
20925                    Cart: lib3p_helper.cart.getCartInfo(),
20926                    CartDetails: [],
20927                    CartCoupon: [],
20928                    ListCoupon: []
20929                };
20930                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
20931                    cart.CartDetails = window.pars3p.cart.CartDetails;
20932                }
20933                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)) {
20934                    cart.ListCoupon = window.pars3p.cart.ListCoupon;
20935                }
20936                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
20937                    cart.CartCoupon = window.pars3p.cart.CartCoupon;
20938                }
20939                if (window.pars3p.auth.isLogin == true) {
20940                    window.pars3p.cart.CartCoupon = window.pars3p.cart.ListCoupon.filter(function (o) { return o.IsUse == true; });
20941                    lib3p.pageCart.onCartCoupon_Close();
20942                    lib3p.pageCart.Cart_ListCoupon();
20943                    lib3p.pageCart.Cart_ProductTotal(true);
20944                }
20945                else {
20946                    window.pars3p.cart.CartCoupon = window.pars3p.cart.ListCoupon.filter(function (o) { return o.IsUse == true; });
20947                    lib3p.pageCart.onCartCoupon_Close();
20948                    lib3p.pageCart.Cart_ListCoupon();
20949                    lib3p.pageCart.Cart_ProductTotal();
20950                }
20951            }
20952        },
20953        onCartCoupon_KeyDown: function (event, el) {
20954            var query = jQuery(el).closest('form');
20955            setTimeout(function () {
20956                var ctr = query[0].CouponCode;
20957                if (lib3p_helper.utility.hasValueString(ctr.value)) {
20958                    //jQuery(query[0]).removeClass('haserror');
20959                    //jQuery('.page-cart .coupon .sub-1.haserror').removeClass('haserror');
20960                }
20961                else {
20962                    if (!jQuery(query[0]).hasClass('haserror')) {
20963                        //jQuery(query[0]).addClass('haserror');
20964                    }
20965                    /* if(!jQuery('.page-cart .coupon .sub-1').hasClass('haserror')) {
20966                        jQuery('.page-cart .coupon .sub-1').addClass('haserror');
20967                    } */
20968                }
20969            }, 100);
20970        },
20971        onCartCoupon_Submit: function (event) {
20972            if (!jQuery(event.target).hasClass('haserror')) {
20973                var flag = true;
20974                var data = {
20975                    CouponCode: ''
20976                };
20977
20978                var ctr = event.target.CouponCode;
20979                data.CouponCode = ctr.value;
20980                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
20981                    flag = false;
20982                    jQuery(event.target).find('.sub-1-error').html('Vui lòng nhập mã giảm giá');
20983                }
20984                else {
20985                    ctr.value = '';
20986                    data.CouponCode = data.CouponCode.trim();
20987                }
20988                if (flag == true) {
20989                    var cart = {
20990                        Cart: {
20991                            Code: -1,
20992                            OrderDate: null,
20993                            MembershipID: -1,
20994                            DiscountMembership: 0
20995                        },
20996                        CartDetails: [],
20997                        CartCoupon: []
20998                    };
20999                    cart.Cart = lib3p_helper.cart.getCartInfo();
21000                    if (window.pars3p.cart.MembershipID > 0) {
21001                        cart.Cart.MembershipID = window.pars3p.cart.MembershipID;
21002                        cart.Cart.DiscountMembership = window.pars3p.cart.DiscountMembership;
21003                    }
21004                    window.pars3p.cart.CartDetails.forEach(function (c) {
21005                        cart.CartDetails.push({ ProductID: c.ProductID, OrderQuantity: c.OrderQuantity, ShippedQuantity: c.ShippedQuantity, UnitPrice: c.UnitPrice, IsChoose: c.IsChoose, ModelID: c.ModelID });
21006                    });
21007                    cart.CartCoupon = window.pars3p.cart.CartCoupon;
21008
21009                    if (window.pars3p.auth.isLogin == true) {
21010                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_CouponAdd, { cart: cart, CouponCode: data.CouponCode }, function (res) {
21011                            if (lib3p_helper.utility.hasValue(res)) {
21012                                //jQuery(event.target).addClass('haserror');
21013                                if (res.StatusCode == 0) {
21014                                    if (res.ObjectReturn == true) {
21015                                        lib3p.common_cartSet(window.pars3p.cart);
21016                                        lib3p.pageCart.Cart_ListCoupon();
21017                                        lib3p.pageCart.Cart_ProductTotal();
21018                                    }
21019                                }
21020                                else {
21021                                    jQuery(event.target).find('.sub-1-error').html(res.ErrorString);
21022                                }
21023                            }
21024                        }, function (err) {
21025                            lib3p.log(err);
21026                        });
21027                    }
21028                    else {
21029                        lib3p.common_PostURL(window.pars3p.api.public.Cart_CouponAdd, { cart: cart, CouponCode: data.CouponCode }, function (res) {
21030                            if (lib3p_helper.utility.hasValue(res)) {
21031                                //jQuery(event.target).addClass('haserror');
21032                                if (res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn) && res.ObjectReturn.CouponID > 0) {
21033                                    window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
21034                                    lib3p.common_cartSet(window.pars3p.cart);
21035                                    lib3p.pageCart.Cart_ProductTotal();
21036                                }
21037                                else {
21038                                    jQuery(event.target).find('.sub-1-error').html(res.ErrorString);
21039                                }
21040                            }
21041                        }, function (err) {
21042                            lib3p.log(err);
21043                        });
21044                    }
21045                }
21046            }
21047
21048            event.preventDefault();
21049            return false;
21050        },
21051
21052
21053        onProduct_Combo: function (el, id) {
21054
21055        },
21056        onDelivery_ThayDoi: function () {
21057            if (window.pars3p.auth.isLogin == true) {
21058                //lib3p.common_urllastSet(window.location.href);
21059                //window.location.href = window.pars3p.urlCartDelivery;
21060                lib3p.header.PopupDelivery_Show();
21061            }
21062            else {
21063                lib3p.pageCart.onPopupDatHang_Show();
21064            }
21065        },
21066
21067        onPopupCoupon_Submit: function (event) {
21068            var flag = true;
21069            var data = {
21070                CouponCode: ''
21071            };
21072
21073            var ctr = event.target.CouponCode;
21074            data.CouponCode = ctr.value;
21075            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
21076                flag = false;
21077                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html('Vui lòng nhập mã giảm giá');
21078            }
21079
21080            if (flag == true) {
21081                var req = {
21082                    SelectedCoupon: {
21083                        CartID: 0,
21084                        CouponCode: data.CouponCode,
21085                        ProductID: null,
21086                    },
21087                    Cart: {
21088                        Code: 0,
21089                        StatusID: 1,
21090                        IsVAT: false,
21091                        HasCoupon: false,
21092                        IsStock: true,
21093                        StepDate: null,
21094                        OrderDate: null,
21095                        MembershipID: '',
21096                        IsHachi24: false,
21097                        IsAppliedHachi24: false,
21098                        DeliveryID: null,
21099                        PaymentID: null,
21100                        Province: null,
21101                        District: null,
21102                        Ward: null,
21103                        Payment: 0,
21104                        TotalAmount: 0,
21105                    },
21106                    CartCoupon: [],
21107                    SelectedCartDetail: null,
21108                };
21109                if (window.pars3p.cart.Code > 0) {
21110                    req.Cart.Code = window.pars3p.cart.Code;
21111                    req.SelectedCoupon.CartID = window.pars3p.cart.Code;
21112                }
21113                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
21114                    req.Cart.MembershipID = window.pars3p.cart.MembershipID;
21115                }
21116                req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
21117                req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
21118                if (window.pars3p.cart.DeliveryID > 0) {
21119                    req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
21120                }
21121                if (window.pars3p.cart.PaymentID > 0) {
21122                    req.Cart.PaymentID = window.pars3p.cart.PaymentID;
21123                }
21124                if (window.pars3p.cart.Province > 0) {
21125                    req.Cart.Province = window.pars3p.cart.Province;
21126                }
21127                if (window.pars3p.cart.District > 0) {
21128                    req.Cart.District = window.pars3p.cart.District;
21129                }
21130                if (window.pars3p.cart.Ward > 0) {
21131                    req.Cart.Ward = window.pars3p.cart.Ward;
21132                }
21133                if (window.pars3p.cart.Payment > 0) {
21134                    req.Cart.Payment = window.pars3p.cart.Payment;
21135                }
21136                if (window.pars3p.cart.TotalAmount > 0) {
21137                    req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
21138                }
21139                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
21140                    req.CartCoupon = window.pars3p.cart.CartCoupon;
21141                }
21142
21143                if (window.pars3p.auth.isLogin == true) {
21144                    lib3p.common_AuthPostURL(window.pars3p.api.auth.AddCoupon, req, function (res) {
21145                        if (lib3p_helper.utility.hasValue(res)) {
21146                            if (res.StatusCode == 0) {
21147                                window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
21148                                lib3p.common_cartSet(window.pars3p.cart);
21149                                lib3p.pageCart.Cart_Reload();
21150                            }
21151                            else {
21152                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
21153                            }
21154                        }
21155                    }, function (err) {
21156                        lib3p.log(err);
21157                    });
21158                }
21159                else {
21160                    lib3p.common_PostURL(window.pars3p.api.public.AddCoupon, req, function (res) {
21161                        if (lib3p_helper.utility.hasValue(res)) {
21162                            if (res.StatusCode == 0) {
21163                                window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
21164                                lib3p.common_cartSet(window.pars3p.cart);
21165                                lib3p.pageCart.Cart_Reload();
21166                            }
21167                            else {
21168                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
21169                            }
21170                        }
21171                    }, function (err) {
21172                        lib3p.log(err);
21173                    });
21174                }
21175            }
21176
21177            event.preventDefault();
21178        },
21179        onPopupCoupon_ApDung: function (id) {
21180            jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html('');
21181            var item = window.pars3p.cart.ListCoupon.find(function (c) { return c.CouponID == id; });
21182            if (lib3p_helper.utility.hasValue(item)) {
21183                var req = {
21184                    SelectedCoupon: {
21185                        IsPercent: item.IsPercent,
21186                        IsPrivate: item.IsPrivate,
21187                        CardID: null,
21188                        Code: 0,
21189                        CartID: 0,
21190                        CouponID: item.CouponID,
21191                        CouponCode: item.CouponCode,
21192                        CartDetailID: item.CartDetailID,
21193                        ProductID: item.ProductID,
21194                        TypeData: item.TypeData,
21195                        IsUse: item.IsUse,
21196                        IsChoose: true,
21197                    },
21198                    Cart: {
21199                        Code: 0,
21200                        StatusID: 1,
21201                        IsVAT: false,
21202                        HasCoupon: false,
21203                        IsStock: true,
21204                        StepDate: null,
21205                        OrderDate: null,
21206                        MembershipID: '',
21207                        IsHachi24: false,
21208                        IsAppliedHachi24: false,
21209                        DeliveryID: null,
21210                        PaymentID: null,
21211                        Province: null,
21212                        District: null,
21213                        Ward: null,
21214                        Payment: 0,
21215                        TotalAmount: 0,
21216                    },
21217                    CartCoupon: [],
21218                    SelectedCartDetail: null,
21219                };
21220                if (window.pars3p.cart.Code > 0) {
21221                    req.Cart.Code = window.pars3p.cart.Code;
21222                    req.SelectedCoupon.CartID = window.pars3p.cart.Code;
21223                }
21224                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
21225                    req.Cart.MembershipID = window.pars3p.cart.MembershipID;
21226                }
21227                req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
21228                req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
21229                if (window.pars3p.cart.DeliveryID > 0) {
21230                    req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
21231                }
21232                if (window.pars3p.cart.PaymentID > 0) {
21233                    req.Cart.PaymentID = window.pars3p.cart.PaymentID;
21234                }
21235                if (window.pars3p.cart.Province > 0) {
21236                    req.Cart.Province = window.pars3p.cart.Province;
21237                }
21238                if (window.pars3p.cart.District > 0) {
21239                    req.Cart.District = window.pars3p.cart.District;
21240                }
21241                if (window.pars3p.cart.Ward > 0) {
21242                    req.Cart.Ward = window.pars3p.cart.Ward;
21243                }
21244                if (window.pars3p.cart.Payment > 0) {
21245                    req.Cart.Payment = window.pars3p.cart.Payment;
21246                }
21247                if (window.pars3p.cart.TotalAmount > 0) {
21248                    req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
21249                }
21250                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
21251                    req.CartCoupon = window.pars3p.cart.CartCoupon;
21252                }
21253
21254                if (window.pars3p.auth.isLogin == true) {
21255
21256                    lib3p.common_AuthPostURL(window.pars3p.api.auth.AddCoupon, req, function (res) {
21257                        if (lib3p_helper.utility.hasValue(res)) {
21258                            if (res.StatusCode == 0) {
21259                                window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
21260                                lib3p.common_cartSet(window.pars3p.cart);
21261                                lib3p.pageCart.Cart_Reload();
21262                            }
21263                            else {
21264                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
21265                            }
21266                        }
21267                    }, function (err) {
21268                        lib3p.log(err);
21269                    });
21270
21271                }
21272                else {
21273
21274                    lib3p.common_PostURL(window.pars3p.api.public.AddCoupon, req, function (res) {
21275                        if (lib3p_helper.utility.hasValue(res)) {
21276                            if (res.StatusCode == 0) {
21277                                window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
21278                                lib3p.common_cartSet(window.pars3p.cart);
21279                                lib3p.pageCart.Cart_Reload();
21280                            }
21281                            else {
21282                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
21283                            }
21284                        }
21285                    }, function (err) {
21286                        lib3p.log(err);
21287                    });
21288
21289                }
21290            }
21291        },
21292        onPopupCoupon_BoChon: function (id) {
21293            jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html('');
21294            window.pars3p.cart.CouponDeleteID = -1;
21295            var item = window.pars3p.cart.CartCoupon.find(function (c) { return c.CouponID == id; });
21296            var idx = window.pars3p.cart.CartCoupon.findIndex(function (c) { return c.CouponID == id; });
21297            if (lib3p_helper.utility.hasValue(item) && idx >= 0) {
21298                var req = {
21299                    SelectedCoupon: {
21300                        IsPercent: item.IsPercent,
21301                        IsPrivate: item.IsPrivate,
21302                        CardID: null,
21303                        Code: 0,
21304                        CartID: 0,
21305                        CouponID: item.CouponID,
21306                        CouponCode: item.CouponCode,
21307                        CartDetailID: item.CartDetailID,
21308                        ProductID: item.ProductID,
21309                        TypeData: item.TypeData,
21310                        IsUse: item.IsUse,
21311                        IsChoose: true,
21312                    },
21313                    Cart: {
21314                        Code: 0,
21315                        StatusID: 1,
21316                        IsVAT: false,
21317                        HasCoupon: false,
21318                        IsStock: true,
21319                        StepDate: null,
21320                        OrderDate: null,
21321                        MembershipID: '',
21322                        IsHachi24: false,
21323                        IsAppliedHachi24: false,
21324                        DeliveryID: null,
21325                        PaymentID: null,
21326                        Province: null,
21327                        District: null,
21328                        Ward: null,
21329                        Payment: 0,
21330                        TotalAmount: 0,
21331                    },
21332                    CartCoupon: [],
21333                    SelectedCartDetail: null,
21334                };
21335                if (window.pars3p.cart.Code > 0) {
21336                    req.Cart.Code = window.pars3p.cart.Code;
21337                    req.SelectedCoupon.CartID = window.pars3p.cart.Code;
21338                }
21339                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
21340                    req.Cart.MembershipID = window.pars3p.cart.MembershipID;
21341                }
21342                req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
21343                req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
21344                if (window.pars3p.cart.DeliveryID > 0) {
21345                    req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
21346                }
21347                if (window.pars3p.cart.PaymentID > 0) {
21348                    req.Cart.PaymentID = window.pars3p.cart.PaymentID;
21349                }
21350                if (window.pars3p.cart.Province > 0) {
21351                    req.Cart.Province = window.pars3p.cart.Province;
21352                }
21353                if (window.pars3p.cart.District > 0) {
21354                    req.Cart.District = window.pars3p.cart.District;
21355                }
21356                if (window.pars3p.cart.Ward > 0) {
21357                    req.Cart.Ward = window.pars3p.cart.Ward;
21358                }
21359                if (window.pars3p.cart.Payment > 0) {
21360                    req.Cart.Payment = window.pars3p.cart.Payment;
21361                }
21362                if (window.pars3p.cart.TotalAmount > 0) {
21363                    req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
21364                }
21365                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
21366                    req.CartCoupon = window.pars3p.cart.CartCoupon;
21367                }
21368
21369                if (window.pars3p.auth.isLogin == true) {
21370                    lib3p.common_AuthPostURL(window.pars3p.api.auth.DeleteCoupon, req, function (res) {
21371                        if (lib3p_helper.utility.hasValue(res)) {
21372                            if (res.StatusCode == 0) {
21373                                window.pars3p.cart.CartCoupon.splice(idx, 1);
21374                                lib3p.common_cartSet(window.pars3p.cart);
21375                                lib3p.pageCart.Cart_Reload();
21376                            }
21377                            else {
21378                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
21379                            }
21380                        }
21381                    }, function (err) {
21382                        lib3p.log(err);
21383                    });
21384                }
21385                else {
21386                    lib3p.common_PostURL(window.pars3p.api.public.DeleteCoupon, req, function (res) {
21387                        if (lib3p_helper.utility.hasValue(res)) {
21388                            if (res.StatusCode == 0) {
21389                                window.pars3p.cart.CartCoupon.splice(idx, 1);
21390                                lib3p.common_cartSet(window.pars3p.cart);
21391                                lib3p.pageCart.Cart_Reload();
21392                            }
21393                            else {
21394                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
21395                            }
21396                        }
21397                    }, function (err) {
21398                        lib3p.log(err);
21399                    });
21400                }
21401            }
21402        },
21403        GetDelivery: function (frm) {
21404            var ctr = frm.Address;
21405            window.pars3p.cart.FullAddress = '';
21406            if (lib3p_helper.utility.hasValueString(ctr.value)) {
21407                window.pars3p.cart.Address = ctr.value;
21408                window.pars3p.cart.FullAddress += ',' + ctr.value;
21409            }
21410            ctr = frm.Ward;
21411            if (lib3p_helper.utility.hasListValue(ctr.selectedOptions)) {
21412                window.pars3p.cart.Ward = parseInt(ctr.value);
21413                window.pars3p.cart.FullAddress += ', ' + ctr.selectedOptions[0].text;
21414            }
21415            ctr = frm.District;
21416            if (lib3p_helper.utility.hasListValue(ctr.selectedOptions)) {
21417                window.pars3p.cart.District = parseInt(ctr.value);
21418                window.pars3p.cart.FullAddress += ', ' + ctr.selectedOptions[0].text;
21419            }
21420            ctr = frm.Province;
21421            if (lib3p_helper.utility.hasListValue(ctr.selectedOptions)) {
21422                window.pars3p.cart.Province = parseInt(ctr.value);
21423                window.pars3p.cart.FullAddress += ', ' + ctr.selectedOptions[0].text;
21424            }
21425            if (window.pars3p.cart.FullAddress.indexOf(',') == 0) {
21426                window.pars3p.cart.FullAddress = window.pars3p.cart.FullAddress.substr(1);
21427            }
21428            window.pars3p.cart.OrderPhone = frm.OrderPhone.value;
21429            window.pars3p.cart.OrderBy = frm.OrderBy.value;
21430            ctr = frm.IsDeliveryOther;
21431            if (jQuery(ctr).prop('checked') == true) {
21432                window.pars3p.cart.ReceivedBy = frm.ReceivedBy.value;
21433                window.pars3p.cart.Cellphone = frm.Cellphone.value;
21434            }
21435            else {
21436                window.pars3p.cart.ReceivedBy = frm.OrderBy.value;
21437                window.pars3p.cart.Cellphone = frm.OrderPhone.value;
21438            }
21439        },
21440        onCartDatHang_Click: function () {
21441            var query = null;
21442            var flagDelivery = false;
21443            var flag = true;
21444            if (window.pars3p.MobileClick == true) {
21445                query = jQuery('.mobile-cart .dia-chi-edit form');
21446            }
21447            else {
21448                query = jQuery('.page-cart .dia-chi-edit form');
21449            }
21450            if (window.pars3p.auth.isLogin == true) {
21451                if (query.attr('has') == '1') {
21452                    flagDelivery = true;
21453                }
21454            }
21455            else {
21456                if (!lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP)) {
21457                    flagDelivery = true;
21458                }
21459            }
21460            if (flagDelivery == true) {
21461                if (lib3p.pageCart.DeliveryEdit_Check(query, false, true) == true) {
21462                    lib3p.pageCart.GetDelivery(query[0]);
21463                    lib3p.common_cartSet(window.pars3p.cart).then(function (data) {
21464
21465                    }, function (err) {
21466                        lib3p.log(err);
21467                    });
21468                }
21469                else {
21470                    flag = false;
21471                }
21472            }
21473            if (flag == true) {
21474                if (window.pars3p.cart.TotalItemQuantityChoose > 0) {
21475                    if (window.pars3p.cart.Province > 0 && window.pars3p.cart.District > 0 && lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhone)) {
21476                        if (window.pars3p.cart.IsAppliedHachi24 != true && lib3p_helper.utility.hasValue(window.pars3p.cart.CartDetails.find(function (o) { return o.IsHachi24 == true && o.IsChoose == true; }))) {
21477                            //lib3p.header.Notify_Show('Địa chỉ không đáp ứng gi
21477ao hàng 3h');
21478                            jQuery('.cart .data-row .product .hachi3h').show();
21479                            if (window.pars3p.MobileClick == true) {
21480                                jQuery(jQuery('.mobile-cart .cart .data-row .product .hachi3h')[0]).closest('.info').find('input[type="number"]').focus();
21481                            }
21482                            else {
21483                                jQuery(jQuery('.page-cart .cart .data-row .product .hachi3h')[0]).closest('.info').find('input[type="number"]').focus();
21484                            }
21485                        }
21486                        else {
21487                            if (window.pars3p.auth.isLogin == true) {
21488                                if (flagDelivery == true) {
21489                                    var data = {};
21490                                    data.ReceivedBy = window.pars3p.cart.ReceivedBy;
21491                                    data.Cellphone = window.pars3p.cart.Cellphone;
21492                                    data.Province = window.pars3p.cart.Province;
21493                                    data.District = window.pars3p.cart.District;
21494                                    data.Ward = window.pars3p.cart.Ward;
21495                                    data.Address = window.pars3p.cart.Address;
21496                                    data.OrderBy = window.pars3p.cart.OrderBy;
21497                                    data.OrderPhone = window.pars3p.cart.OrderPhone;
21498                                    data.IsDefault = true;
21499                                    var cart = lib3p_helper.cart.getCartInfo();
21500                                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_AddShipping, { cart: cart, dto: data }, function (res) {
21501                                        if (lib3p_helper.utility.hasValue(res) && res.Code > 0) {
21502                                            window.pars3p.cart.DeliveryID = res.DeliveryID;
21503                                            window.pars3p.cart.ShipmentID = res.ShipmentID;
21504                                            window.pars3p.cart.IsAppliedHachi24 = res.IsAppliedHachi24;
21505                                            window.pars3p.cart.MaxEstimate24h = res.MaxEstimate24h;
21506                                            window.pars3p.cart.MaxEstimateNormal = res.MaxEstimateNormal;
21507                                            window.pars3p.cart.ShippingFee = res.ShippingFee;
21508                                            window.pars3p.cart.ShippingDiscount = res.ShippingDiscount;
21509                                            window.pars3p.cart.Payment = res.Payment;
21510                                            lib3p.common_cartSet(window.pars3p.cart).then(function () {
21511                                                window.location.href = window.pars3p.urlCartPayment;
21512                                            }, function (err) {
21513                                                lib3p.log(err);
21514                                            });
21515                                        }
21516                                    }, function (err) {
21517                                        throw err;
21518                                    });
21519                                }
21520                                else {
21521                                    lib3p.pageCart.onCartDatHang_ClickCouponOffer();
21522                                }
21523                            }
21524                            else {
21525                                lib3p.pageCart.onCartDatHang_ClickCouponOffer();
21526                            }
21527                        }
21528                    }
21529                    else {
21530                        if (!(window.pars3p.cart.Province > 0 && window.pars3p.cart.District > 0) && window.pars3p.auth.isLogin == true) {
21531                            lib3p.header.PopupDelivery_Show();
21532                            //window.location.href = window.pars3p.urlCartDelivery;
21533                        }
21534                    }
21535                }
21536                else {
21537                    var query = jQuery('.popup-cart-empty .hachi-modal');
21538                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21539                        if (jQuery(query[0]).hasClass("d-none")) {
21540                            jQuery(query[0]).removeClass("d-none").addClass("d-block");
21541                        }
21542                    }
21543                }
21544            }
21545        },
21546        onCartDatHangMobile_Click: function () {
21547            window.pars3p.MobileClick = true;
21548            lib3p.pageCart.onCartDatHang_Click();
21549        },
21550        onCartDatHang_ClickCouponOffer: function () {
21551            if (lib3p_helper.utility.hasListValue(window.pars3p.listCouponOffer)) {
21552                var ids = window.pars3p.listCouponOffer.map(function(c) { return c.CouponID; })
21553                window.pars3p.cart.CartCoupon.forEach(function (c, cidx) {
21554                    if(ids.indexOf(c.CouponID) == -1) {
21555                        window.pars3p.listCouponOffer.push(c);
21556                        ids.push(c.CouponID);
21557                    }
21558                });
21559                lib3p_helper.utility.cache.set("cart_couponoffer", ids.join(','));
21560                if (window.pars3p.auth.isLogin == true) {
21561                    var cart = lib3p_helper.cart.getCartInfo();
21562                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_CouponAddList, { cart: cart, List: window.pars3p.listCouponOffer }, function (res) {
21563                        window.location.href = window.pars3p.urlCartPayment;
21564                    }, function (err) {
21565                        throw err;
21566                    });
21567                }
21568                else {
21569                    window.pars3p.cart.CartCoupon = window.pars3p.listCouponOffer;
21570                    lib3p.common_cartSet(window.pars3p.cart);
21571                    window.location.href = window.pars3p.urlCartPayment;
21572                }
21573            }
21574            else {
21575                if (window.pars3p.auth.isLogin == true) {
21576                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_GenRam, { Code: window.pars3p.cart.Code }, function (res) {
21577                        if(res == true) {
21578                            window.location.href = window.pars3p.urlCartPayment;
21579                        }
21580                        else {
21581                            window.location.reload();
21582                        }
21583                    }, function (err) {
21584                        throw err;
21585                    });
21586                }
21587                else {
21588                    window.location.href = window.pars3p.urlCartPayment;
21589                }
21590            }
21591        },
21592        onPopupCartDeliveryOTP_Close: function () {
21593            var query = jQuery('.popup-cart-delivery-otp .hachi-modal');
21594            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21595                if (jQuery(query[0]).hasClass("d-block")) {
21596                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
21597                }
21598            }
21599            lib3p.header.PopupDelivery_Show();
21600            //window.location.href = window.pars3p.urlCartDelivery;
21601        },
21602        onPopupCartEmpty_Close: function () {
21603            var query = jQuery('.popup-cart-empty .hachi-modal');
21604            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21605                if (jQuery(query[0]).hasClass("d-block")) {
21606                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
21607                }
21608            }
21609        },
21610        onPopupCartEmpty_Ok: function () {
21611            if (window.pars3p.auth.isLogin == true) {
21612                window.pars3p.cart.Code = -1;
21613                window.pars3p.cart.DeliveryID = null;
21614                window.pars3p.cart.ShipmentID = null;
21615                window.pars3p.cart.Province = null;
21616                window.pars3p.cart.District = null;
21617                window.pars3p.cart.Ward = null;
21618                window.pars3p.cart.Address = '';
21619                window.pars3p.cart.CartCoupon = [];
21620                window.pars3p.cart.CartDetails = [];
21621                lib3p.common_cartSet(window.pars3p.cart);
21622
21623                lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_CheckEmpty, {}, function (res) {
21624                    window.location.href = window.pars3p.urlCart;
21625                }, function (err) {
21626                    console.log(err);
21627                });
21628            }
21629            else {
21630                window.location.href = window.pars3p.urlCart;
21631            }
21632        },
21633        onPopupCartDatHang_Show: function () {
21634            if (window.pars3p.MobileClick == true) {
21635                var query = jQuery('.popup-cart-dat-hang-mobile .hachi-modal');
21636                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21637                    if (jQuery(query[0]).hasClass("d-none")) {
21638                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
21639                    }
21640                }
21641            }
21642            else {
21643                var query = jQuery('.popup-cart-dat-hang .hachi-modal');
21644                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21645                    if (jQuery(query[0]).hasClass("d-none")) {
21646                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
21647                    }
21648                }
21649            }
21650        },
21651        onPopupCartDatHang_Close: function () {
21652            var query = jQuery('.popup-cart-dat-hang .hachi-modal');
21653            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21654                if (jQuery(query[0]).hasClass("d-block")) {
21655                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
21656                }
21657            }
21658        },
21659        onPopupCartDatHangMobile_Close: function () {
21660            var query = jQuery('.popup-cart-dat-hang-mobile .hachi-modal');
21661            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21662                if (jQuery(query[0]).hasClass("d-block")) {
21663                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
21664                }
21665            }
21666        },
21667        onPopupCartDatHang_Login: function () {
21668            lib3p.common_urllastSet(window.location.href);
21669            window.location.href = window.pars3p.urlLogin;
21670        },
21671        onPopupCartDatHang_NoAccount: function () {
21672            lib3p.common_urllastSet(window.location.href);
21673            window.location.href = window.pars3p.urlCartDelivery;
21674            /* if(lib3p_helper.utility.hasValueString(window.pars3p.cart.ReceivedBy) && lib3p_helper.utility.hasValueString(window.pars3p.cart.Cellphone) && lib3p_helper.utility.hasValueString(window.pars3p.cart.FullAddress)) {
21675                window.location.href = window.pars3p.urlCartPayment;
21676            }
21677            else {
21678                window.location.href = window.pars3p.urlCartDelivery;
21679            } */
21680        },
21681
21682        onPopupCouponInfo_Show: function () {
21683            jQuery('.popup-cart-coupon-info').show();
21684            lib3p.pageCart.onPopupCouponList_Close();
21685        },
21686        onPopupCouponInfo_Close: function () {
21687            jQuery('.popup-cart-coupon-info').hide();
21688        },
21689        onPopupCouponList_Show: function () {
21690            var query = jQuery('.popup-ma-giam-gia .hachi-popup');
21691            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21692                if (jQuery(query[0]).hasClass("d-none")) {
21693                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
21694                }
21695            }
21696            lib3p.pageCart.onPopupCouponInfo_Close();
21697        },
21698        onPopupCouponList_Close: function () {
21699            var query = jQuery('.popup-ma-giam-gia .hachi-popup');
21700            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21701                if (jQuery(query[0]).hasClass("d-block")) {
21702                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
21703                }
21704            }
21705        },
21706    },
21707
21708    //D:\_Working\3ps\HachiWeb\HachiWebsite2\HachiWeb.WebApp\Sources\hachi_pageCartDelivery.ascx
21709    //D:\_Working\3ps\HachiWeb\HachiWebsite2\HachiWeb.WebApp\Sources\Controls\hachi_tagSectionHeader.ascx
21710    pageCartDelivery_test: {
21711        init: function () {
21712            var query = jQuery('.page-delivery');
21713            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21714                lib3p.pageCartDelivery.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
21715            }
21716        },
21717        init_async: function () {
21718            return new Promise(function (resolve, reject) {
21719                setTimeout(function () {
21720                    lib3p.common_cartGet().then(function (res) {
21721                        var cart = res;
21722                        window.pars3p.cart = cart;
21723                        var IDDelivery = -1;
21724                        if (window.pars3p.cart.IDDelivery > 0) {
21725                            IDDelivery = window.pars3p.cart.IDDelivery;
21726                        }
21727
21728                        if (window.pars3p.auth.isLogin == true) {
21729                            lib3p.pageCartDelivery.Delivery_Load();
21730                            jQuery('.noaccount').hide();
21731                        }
21732                        else {
21733                            window.pars3p.islockDiaglog = true;
21734                            lib3p.pageCartDelivery.onDelivery_TaoMoi();
21735                            var query = jQuery('.popup-delivery-edit form');
21736                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21737                                var frm = query[0];
21738                                frm.OrderBy.value = window.pars3p.cart.OrderBy;
21739                                frm.OrderPhone.value = window.pars3p.cart.OrderPhone;
21740                                frm.OrderEmail.value = window.pars3p.cart.OrderEmail;
21741                                frm.ReceivedBy.value = window.pars3p.cart.ReceivedBy;
21742                                frm.Cellphone.value = window.pars3p.cart.Cellphone;
21743                                frm.Address.value = window.pars3p.cart.Address;
21744                                frm.IsCopy.checked = lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderBy) && window.pars3p.cart.OrderBy == window.pars3p.cart.ReceivedBy && window.pars3p.cart.OrderPhone == window.pars3p.cart.Cellphone;
21745                            }
21746                            jQuery('.hasaccount').hide();
21747                            lib3p.pageCartDelivery.onDeliveryCaptcha_Click();
21748                        }
21749                        lib3p.header.GMC_ShipCart();
21750
21751                        lib3p.common_PostURL(window.pars3p.api.public.Delivery_GetLocation, {}, function (res) {
21752                            if (lib3p_helper.utility.hasValue(res)) {
21753                                window.pars3p.location = res;
21754                                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListProvince)) {
21755                                    jQuery('select.cboProvince').html('<option value>Select one...</option>');
21756                                    window.pars3p.location.ListProvince.forEach(function (c, cidx) {
21757                                        if (window.pars3p.auth.isLogin == true || (window.pars3p.cart.Province + '') != (c.Code + '')) {
21758                                            jQuery('select.cboProvince').append('<option value="' + c.Code + '">' + c.ProvinceName + '</option>');
21759                                        }
21760                                        else {
21761                                            jQuery('select.cboProvince').append('<option value="' + c.Code + '" selected>' + c.ProvinceName + '</option>');
21762
21763                                            if (window.pars3p.cart.Province > 0) {
21764                                                var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == window.pars3p.cart.Province; });
21765                                                jQuery('#cboDistrict_itemedit').html('<option value>Select one...</option>');
21766                                                lstTemp.forEach(function (c, cidx) {
21767                                                    if (window.pars3p.auth.isLogin == true || (window.pars3p.cart.District + '') != (c.Code + '')) {
21768                                                        jQuery('#cboDistrict_itemedit').append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
21769                                                    }
21770                                                    else {
21771                                                        jQuery('#cboDistrict_itemedit').append('<option value="' + c.Code + '" selected>' + c.DistrictName + '</option>');
21772                                                        if (window.pars3p.cart.District > 0) {
21773                                                            var lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == window.pars3p.cart.District; });
21774                                                            jQuery('#cboWard_itemedit').html('<option value>Select one...</option>');
21775                                                            lstTemp.forEach(function (c, cidx) {
21776                                                                if (window.pars3p.auth.isLogin == true || (window.pars3p.cart.Ward + '') != (c.Code + '')) {
21777                                                                    jQuery('#cboWard_itemedit').append('<option value="' + c.Code + '">' + c.WardName + '</option>');
21778                                                                }
21779                                                                else {
21780                                                                    jQuery('#cboWard_itemedit').append('<option value="' + c.Code + '" selected>' + c.WardName + '</option>');
21781                                                                }
21782                                                            });
21783                                                            jQuery('#cboWard_itemedit').next().find('.custom-combobox-input').val(jQuery('#cboWard_itemedit option:selected').text());
21784                                                        }
21785                                                    }
21786                                                });
21787                                                jQuery('#cboDistrict_itemedit').next().find('.custom-combobox-input').val(jQuery('#cboDistrict_itemedit option:selected').text());
21788                                            }
21789                                        }
21790                                    });
21791
21792                                    var query = jQuery('.popup-delivery-edit form');
21793                                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21794                                        lib3p.pageCartDelivery.DeliveryEdit_Check(query);
21795                                    }
21796                                }
21797                            }
21798                        }, function (err) {
21799                            lib3p.log(err);
21800                        });
21801                        jQuery("#cboProvince_itemedit").combobox({ change: function (opt) { lib3p.pageCartDelivery.onProvince_Change(opt, '#cboDistrict_itemedit', '#cboWard_itemedit') } });
21802                        jQuery("#cboDistrict_itemedit").combobox({ change: function (opt) { lib3p.pageCartDelivery.onDistrict_Change(opt, '#cboWard_itemedit') } });
21803                        jQuery("#cboWard_itemedit").combobox({ change: function (opt) { lib3p.pageCartDelivery.onWard_Change(opt) } });
21804
21805                        resolve(true);
21806                    }, function (err) {
21807                        reject(err);
21808                        //console.log(err); 
21809                    });
21810                }, window.pars3p.timeAsync);
21811            });
21812        },
21813        onProvince_Change: function (opt, iddistrict, idward) {
21814            if (lib3p_helper.utility.hasValueString(opt.value)) {
21815                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListDistrict)) {
21816                    var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == opt.value; });
21817                    jQuery(iddistrict).html('<option value>Select one...</option>');
21818                    lstTemp.forEach(function (c, cidx) {
21819                        if (window.pars3p.auth.isLogin == true || (window.pars3p.cart.District + '') != (c.Code + '')) {
21820                            jQuery(iddistrict).append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
21821                        }
21822                        else {
21823                            jQuery(iddistrict).append('<option value="' + c.Code + '" selected>' + c.DistrictName + '</option>');
21824                        }
21825                    });
21826                    jQuery(iddistrict).next().find('.custom-combobox-input').val('');
21827                    jQuery(idward).html('<option value>Select one...</option>');
21828                    jQuery(idward).next().find('.custom-combobox-input').val('');
21829
21830                    var query = jQuery(opt).closest('form');
21831                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21832                        lib3p.pageCartDelivery.DeliveryEdit_Check(query, opt.parentElement);
21833                    }
21834                }
21835            }
21836        },
21837        onDistrict_Change: function (opt, idward) {
21838            if (lib3p_helper.utility.hasValueString(opt.value)) {
21839                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListWard)) {
21840                    var lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == opt.value; });
21841                    jQuery(idward).html('<option value>Select one...</option>');
21842                    lstTemp.forEach(function (c, cidx) {
21843                        jQuery(idward).append('<option value="' + c.Code + '">' + c.WardName + '</option>');
21844                    });
21845                    jQuery(idward).next().find('.custom-combobox-input').val('');
21846
21847                    var query = jQuery(opt).closest('form');
21848                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21849                        lib3p.pageCartDelivery.DeliveryEdit_Check(query, opt.parentElement);
21850                    }
21851                }
21852            }
21853        },
21854        onWard_Change: function (opt) {
21855            if (lib3p_helper.utility.hasValueString(opt.value)) {
21856                var query = jQuery(opt).closest('form');
21857                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21858                    lib3p.pageCartDelivery.DeliveryEdit_Check(query, opt.parentElement);
21859                }
21860            }
21861        },
21862        onIsCopy_Click: function (el) {
21863            var query = jQuery(el).closest('form');
21864            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21865                var flag = el.checked == true;
21866                setTimeout(function () {
21867                    if (flag == true) {
21868                        query[0].ReceivedBy.value = query[0].OrderBy.value;
21869                        query[0].Cellphone.value = query[0].OrderPhone.value;
21870                    }
21871                    else {
21872                        query[0].ReceivedBy.value = '';
21873                        query[0].Cellphone.value = '';
21874                    }
21875                }, 100);
21876            }
21877        },
21878        Delivery_Load: function () {
21879            var DeliveryID = -1;
21880            if (window.pars3p.cart.DeliveryID > 0) {
21881                DeliveryID = window.pars3p.cart.DeliveryID;
21882            }
21883            lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_GetAll, { DeliveryID: DeliveryID }, function (res) {
21884                if (lib3p_helper.utility.hasListValue(res)) {
21885                    window.pars3p.listDelivery = res;
21886
21887                    var html = '';
21888                    window.pars3p.listDelivery.forEach(function (c, cidx) {
21889                        html += '<div class="col-lg-4 item data-' + c.ID + '"><div class="outline sl-gregray100">';
21890
21891                        html += '<div class="left">';
21892                        if (c.ID == DeliveryID) {
21893                            html += '<input type="radio" name="delivery" onchange="lib3p.pageCartDelivery.onDelivery_Check(event,' + c.ID + ')" value="' + c.ID + '" checked />';
21894                        }
21895                        else {
21896                            html += '<input type="radio" name="delivery" onchange="lib3p.pageCartDelivery.onDelivery_Check(event,' + c.ID + ')" value="' + c.ID + '" />';
21897                        }
21898                        html += '</div>';
21899                        html += '<div class="right">';
21900                        var ReceivedBy = c.ReceivedBy;
21901                        if (!lib3p_helper.utility.hasValueString(ReceivedBy)) {
21902                            ReceivedBy = '&nbsp;';
21903                        }
21904                        if (c.IsDefault == true) {
21905                            html += '<div><span class="ReceivedBy s14 cl-gregray900 sibold600">' + ReceivedBy + '</span>
21905<span class="IsDefault b-dakgreen200 s13 cl-dakgreen900 regular400">Mặc định</span></div>';
21906                        }
21907                        else {
21908                            html += '<div><span class="ReceivedBy s14 cl-gregray900 sibold600">' + ReceivedBy + '</span></div>';
21909                        }
21910                        html += '<div class="FullAddress s14 cl-gregray750 regular400">' + c.FullAddress + '</div><div class="Cellphone s14 cl-gregray750 regular400">Điện thoại: ' + c.Cellphone + '</div>';
21911                        if (c.ID == DeliveryID || c.IsDefault == true) {
21912                            html += '<div class="act"><button type="button" aria-label="hachihachi" class="edit sl-gregray200 s13 cl-dakgreen650 sibold600" onclick="lib3p.pageCartDelivery.onDelivery_ThayDoi(' + c.ID + ')">Chỉnh sửa</button></div>';
21913                        }
21914                        else {
21915                            html += '<div class="act"><button type="button" aria-label="hachihachi" class="sl-gregray200 b-gregray100 s13 cl-gregray900 sibold600" onclick="lib3p.pageCartDelivery.onDelivery_Xoa(' + c.ID + ')">Xóa</button>&nbsp;&nbsp;<button type="button" aria-label="hachihachi" class="edit sl-gregray200 s13 cl-dakgreen650 sibold600" onclick="lib3p.pageCartDelivery.onDelivery_ThayDoi(' + c.ID + ')">Chỉnh sửa</button></div>';
21916                        }
21917                        html += '</div>';
21918
21919                        html += '</div></div>';
21920                    });
21921                    jQuery(".page-delivery .section-2.list-diachi").html(html);
21922                    html = '';
21923                    window.pars3p.listDelivery.forEach(function (c, cidx) {
21924                        html += '<div class="item data-' + c.ID + '"><div class="outline sl-top-gregray200">';
21925
21926                        html += '<div class="left">';
21927                        if (c.ID == DeliveryID) {
21928                            html += '<input type="radio" name="delivery" onchange="lib3p.pageCartDelivery.onDelivery_Check(event,' + c.ID + ')" checked />';
21929                        }
21930                        else {
21931                            html += '<input type="radio" name="delivery" onchange="lib3p.pageCartDelivery.onDelivery_Check(event,' + c.ID + ')" />';
21932                        }
21933                        html += '</div>';
21934                        html += '<div class="right">';
21935                        var ReceivedBy = c.ReceivedBy;
21936                        if (!lib3p_helper.utility.hasValueString(ReceivedBy)) {
21937                            ReceivedBy = '&nbsp;';
21938                        }
21939                        if (c.IsDefault == true) {
21940                            html += '<div><button class="ReceivedBy s14 cl-gregray900 sibold600" onclick="lib3p.pageCartDelivery.onDelivery_CheckClick(event,' + c.ID + ')">' + ReceivedBy + '</button><span class="IsDefault b-dakgreen200 s13 cl-dakgreen900 regular400">Mặc định</span></div>';
21941                        }
21942                        else {
21943                            html += '<div><button class="ReceivedBy s14 cl-gregray900 sibold600" onclick="lib3p.pageCartDelivery.onDelivery_CheckClick(event,' + c.ID + ')">' + ReceivedBy + '</button></div>';
21944                        }
21945                        html += '<div class="FullAddress s14 cl-gregray750 regular400">' + c.FullAddress + '</div><div class="Cellphone s14 cl-gregray750 regular400">Điện thoại: ' + c.Cellphone + '</div>';
21946                        if (c.ID == DeliveryID || c.IsDefault == true) {
21947                            html += '<div class="act"><button type="button" aria-label="hachihachi" class="edit sl-gregray200 s13 cl-dakgreen650 sibold600" onclick="lib3p.pageCartDelivery.onDelivery_ThayDoi(' + c.ID + ')">Chỉnh sửa</button></div>';
21948                        }
21949                        else {
21950                            html += '<div class="act"><button type="button" aria-label="hachihachi" class="sl-gregray200 b-gregray100 s13 cl-gregray900 sibold600" onclick="lib3p.pageCartDelivery.onDelivery_Xoa(' + c.ID + ')">Xóa</button>&nbsp;&nbsp;<button type="button" aria-label="hachihachi" class="edit sl-gregray200 s13 cl-dakgreen650 sibold600" onclick="lib3p.pageCartDelivery.onDelivery_ThayDoi(' + c.ID + ')">Chỉnh sửa</button></div>';
21951                        }
21952                        html += '</div>';
21953
21954                        html += '</div></div>';
21955                    });
21956                    jQuery(".mobile-delivery .list-diachi").html(html);
21957                }
21958                if (!lib3p_helper.utility.hasListValue(window.pars3p.listDelivery)) {
21959                    lib3p.pageCartDelivery.onDelivery_TaoMoi();
21960                }
21961
21962            }, function (err) {
21963                lib3p.common_logSystem(err);
21964            });
21965        },
21966        Delivery_Edit: function () {
21967            var query = jQuery('.popup-delivery-edit > form');
21968            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
21969                jQuery('.popup-delivery-edit .modal-body .input input').removeClass('error');
21970                jQuery('.popup-delivery-edit .modal-body .error').html('');
21971
21972                var frm = query[0];
21973                frm.ReceivedBy.value = '';
21974                frm.Cellphone.value = '';
21975                frm.Address.value = '';
21976                frm.IsDefault.value = false;
21977
21978                jQuery('.popup-delivery-edit .modal-header .tieu-de').html('Nhập địa chỉ mới');
21979                if (window.pars3p.deliveryID > 0) {
21980                    jQuery('.popup-delivery-edit .modal-header .tieu-de').html('Cập nhật địa chỉ');
21981                    var item = window.pars3p.listDelivery.find(function (c) { return c.ID == window.pars3p.deliveryID; });
21982                    if (lib3p_helper.utility.hasValue(item)) {
21983                        frm.ReceivedBy.value = item.ReceivedBy;
21984                        frm.Cellphone.value = item.Cellphone;
21985                        frm.Address.value = item.Address;
21986                        frm.IsDefault.checked = item.IsDefault == true;
21987                        if (item.IsDefault == true) {
21988                            jQuery(frm.IsDefault).prop("disabled", true);
21989                        }
21990                        else {
21991                            jQuery(frm.IsDefault).prop("disabled", false);
21992                        }
21993
21994                        var itemProvince = window.pars3p.location.ListProvince.find(function (c) { return c.Code == item.Province; });
21995                        jQuery('#cboProvince_itemedit option[value="' + itemProvince.Code + '"]').attr('selected', 'selected');
21996                        document.getElementById('cboProvince_itemedit').value = itemProvince.Code;
21997                        jQuery('#cboProvince_itemedit').next().find('.custom-combobox-input').val(itemProvince.ProvinceName);
21998                        var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == itemProvince.Code; });
21999                        var itemDistrict = lstTemp.find(function (c) { return c.Code == item.District; });
22000                        jQuery('#cboDistrict_itemedit').html('<option value>Select one...</option>');
22001                        lstTemp.forEach(function (c, cidx) {
22002                            if (c.Code == itemDistrict.Code) {
22003                                jQuery('#cboDistrict_itemedit').append('<option value="' + c.Code + '" selected>' + c.DistrictName + '</option>');
22004                            }
22005                            else {
22006                                jQuery('#cboDistrict_itemedit').append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
22007                            }
22008                        });
22009                        document.getElementById('cboDistrict_itemedit').value = itemDistrict.Code;
22010                        jQuery('#cboDistrict_itemedit').next().find('.custom-combobox-input').val(itemDistrict.DistrictName);
22011                        lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == itemDistrict.Code; });
22012                        var itemWard = lstTemp.find(function (c) { return c.Code == item.Ward; });
22013                        jQuery('#cboWard_itemedit').html('<option value>Select one...</option>');
22014                        lstTemp.forEach(function (c, cidx) {
22015                            if (c.Code == itemWard.Code) {
22016                                jQuery('#cboWard_itemedit').append('<option value="' + c.Code + '" selected>' + c.WardName + '</option>');
22017                            }
22018                            else {
22019                                jQuery('#cboWard_itemedit').append('<option value="' + c.Code + '">' + c.WardName + '</option>');
22020                            }
22021                        });
22022                        document.getElementById('cboWard_itemedit').value = itemWard.Code;
22023                        jQuery('#cboWard_itemedit').next().find('.custom-combobox-input').val(itemWard.WardName);
22024
22025                        lib3p.pageCartDelivery.DeliveryEdit_Check(jQuery('.popup-delivery-edit > form'));
22026                    }
22027                }
22028                else {
22029                    if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListProvince)) {
22030                        var itemProvince = window.pars3p.location.ListProvince[0];
22031                        jQuery('#cboProvince_itemedit option[value="' + itemProvince.Code + '"]').attr('selected', 'selected');
22032                        document.getElementById('cboProvince_itemedit').value = itemProvince.Code;
22033                        jQuery('#cboProvince_itemedit').next().find('.custom-combobox-input').val(itemProvince.ProvinceName);
22034                        var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == itemProvince.Code; });
22035                        var itemDistrict = lstTemp[0];
22036                        jQuery('#cboDistrict_itemedit').html('<option value>Select one...</option>');
22037                        lstTemp.forEach(function (c, cidx) {
22038                            if (c.Code == itemDistrict.Code) {
22039                                jQuery('#cboDistrict_itemedit').append('<option value="' + c.Code + '" selected>' + c.DistrictName + '</option>');
22040                            }
22041                            else {
22042                                jQuery('#cboDistrict_itemedit').append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
22043                            }
22044                        });
22045                        document.getElementById('cboDistrict_itemedit').value = itemDistrict.Code;
22046                        jQuery('#cboDistrict_itemedit').next().find('.custom-combobox-input').val(itemDistrict.DistrictName);
22047                        lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == itemDistrict.Code; });
22048                        var itemWard = lstTemp[0];
22049                        jQuery('#cboWard_itemedit').html('<option value>Select one...</option>');
22050                        lstTemp.forEach(function (c, cidx) {
22051                            if (c.Code == itemWard.Code) {
22052                                jQuery('#cboWard_itemedit').append('<option value="' + c.Code + '" selected>' + c.WardName + '</option>');
22053                            }
22054                            else {
22055                                jQuery('#cboWard_itemedit').append('<option value="' + c.Code + '">' + c.WardName + '</option>');
22056                            }
22057                        });
22058                        document.getElementById('cboWard_itemedit').value = itemWard.Code;
22059                        jQuery('#cboWard_itemedit').next().find('.custom-combobox-input').val(itemWard.WardName);
22060                    }
22061                    if (window.pars3p.auth.isLogin == true && !lib3p_helper.utility.hasListValue(window.pars3p.listDelivery)) {
22062                        frm.Cellphone.value = window.pars3p.auth.phoneNumber;
22063                        frm.ReceivedBy.value = window.pars3p.auth.fullName;
22064                    }
22065                }
22066            }
22067            var query = jQuery('.popup-delivery-edit .hachi-modal');
22068            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22069                if (jQuery(query[0]).hasClass("d-none")) {
22070                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
22071                }
22072            }
22073        },
22074        Delivery_Shipping: function () {
22075            var req = {
22076                Cart: {
22077                    Code: window.pars3p.cart.Code,
22078                    OrderNo: window.pars3p.cart.OrderNo,
22079                    OrderBy: window.pars3p.cart.OrderBy,
22080                    OrderPhone: window.pars3p.cart.OrderPhone,
22081                    OrderEmail: window.pars3p.cart.OrderEmail,
22082                    OrderDate: window.pars3p.cart.OrderDate,
22083                    StepDate: window.pars3p.cart.StepDate,
22084                    IsVAT: window.pars3p.cart.IsVAT,
22085                    VATCode: window.pars3p.cart.VATCode,
22086                    VATCompany: window.pars3p.cart.VATCompany,
22087                    VATAddress: window.pars3p.cart.VATAddress,
22088                    VATEmail: window.pars3p.cart.VATEmail,
22089                    HasCoupon: window.pars3p.cart.HasCoupon,
22090                    IsStock: window.pars3p.cart.IsStock,
22091                    DeliveryID: window.pars3p.cart.DeliveryID,
22092                    ReceivedBy: window.pars3p.cart.ReceivedBy,
22093                    Cellphone: window.pars3p.cart.Cellphone,
22094                    Province: window.pars3p.cart.Province,
22095                    District: window.pars3p.cart.District,
22096                    Ward: window.pars3p.cart.Ward,
22097                    Address: window.pars3p.cart.Address,
22098                    FullAddress: window.pars3p.cart.FullAddress,
22099                },
22100                Properties: ["Cellphone", "Address", "Province", "District", "Ward", "DeliveryID", "ReceivedBy"]
22101            };
22102            if (window.pars3p.auth.isLogin == true) {
22103                lib3p.common_AuthPostURL(lib3p_helper.utility.path(window.pars3p.apiapp, 'api/cart/UpdateCart'), req, function (res) {
22104                    if (lib3p_helper.utility.hasValue(res)) {
22105                        if (res.StatusCode == 0) {
22106                            var last = lib3p.common_urllastGet();
22107                            if (lib3p_helper.utility.hasValueString(last) && last.indexOf("/dang-nhap?type=33") == -1 && last.indexOf("/dang-ky?type=34") == -1) {
22108                                window.location.href = last;
22109                            }
22110                            else {
22111                                window.location.href = window.pars3p.urlCartPayment;
22112                            }
22113                        }
22114                    }
22115                }, function (err) {
22116                    lib3p.log(err);
22117                });
22118            }
22119            else {
22120                lib3p.common_PostURL(lib3p_helper.utility.path(window.pars3p.apiapp, 'api/cart/UpdateCart'), req, function (res) {
22121                    if (lib3p_helper.utility.hasValue(res)) {
22122                        if (res.StatusCode == 0) {
22123                            var last = lib3p.common_urllastGet();
22124                            if (lib3p_helper.utility.hasValueString(last) && last.indexOf("/dang-nhap?type=33") == -1 && last.indexOf("/dang-ky?type=34") == -1) {
22125                                window.location.href = last;
22126                            }
22127                            else {
22128                                window.location.href = window.pars3p.urlCartPayment;
22129                            }
22130                        }
22131                    }
22132                }, function (err) {
22133                    lib3p.log(err);
22134                });
22135            }
22136
22137        },
22138        onDelivery_KeyDown: function (event, el) {
22139            var query = jQuery(el).closest('form');
22140            var isphone = jQuery(el).attr('name') == 'OrderPhone';
22141            setTimeout(function () {
22142                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22143                    lib3p.pageCartDelivery.DeliveryEdit_Check(query, isphone);
22144                }
22145            }, 100);
22146        },
22147        DeliveryEdit_Check: function (query, isphone) {
22148            var flag = true;
22149            var ctr = query[0].ReceivedBy;
22150            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22151                flag = false;
22152            }
22153            if (window.pars3p.auth.isLogin != true) {
22154                ctr = query[0].OrderBy;
22155                var OrderBy = '';
22156                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22157                    flag = false;
22158                }
22159                else {
22160                    OrderBy = ctr.value;
22161                }
22162                ctr = query[0].OrderPhone;
22163                var PhoneNumber = ctr.value;
22164                var flagPhone = true;
22165                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22166                    flag = false;
22167                    flagPhone = false;
22168                    jQuery(ctr).removeClass('error');
22169                    jQuery(ctr).parent().next().html('');
22170                }
22171                else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
22172                    flag = false;
22173                    flagPhone = false;
22174                    if (!jQuery(ctr).hasClass('error')) {
22175                        jQuery(ctr).addClass('error');
22176                    }
22177                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
22177<span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
22178                }
22179                else {
22180                    jQuery(ctr).removeClass('error');
22181                    jQuery(ctr).parent().next().html('');
22182                }
22183                if (flagPhone == true && isphone == true && window.pars3p.PhoneNumber_last != PhoneNumber) {
22184                    lib3p.pageCartDelivery.DeliveryEdit_CheckPhone(PhoneNumber, query);
22185                }
22186            }
22187            ctr = query[0].Cellphone;
22188            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22189                flag = false;
22190            }
22191            else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
22192                flag = false;
22193                if (!jQuery(ctr).hasClass('error')) {
22194                    jQuery(ctr).addClass('error');
22195                }
22196                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
22197            }
22198            else {
22199                jQuery(ctr).removeClass('error');
22200                jQuery(ctr).parent().next().html('');
22201            }
22202            ctr = query[0].Address;
22203            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22204                flag = false;
22205            }
22206            ctr = document.getElementById('cboProvince_itemedit');
22207            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22208                flag = false;
22209            }
22210            ctr = document.getElementById('cboDistrict_itemedit');
22211            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22212                flag = false;
22213            }
22214            ctr = document.getElementById('cboWard_itemedit');
22215            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22216                flag = false;
22217            }
22218            if (flag == true) {
22219                jQuery(query[0]).removeClass('haserror');
22220            }
22221            else {
22222                if (!jQuery(query[0]).hasClass('haserror')) {
22223                    jQuery(query[0]).addClass('haserror');
22224                }
22225            }
22226        },
22227        DeliveryEdit_CheckPhone: function (PhoneNumber, frm) {
22228            lib3p.common_LoadingShow();
22229            return new Promise(function (resolve, reject) {
22230                setTimeout(function () {
22231                    if (!jQuery(frm[0]).hasClass('haserror')) {
22232                        jQuery(frm[0]).addClass('haserror');
22233                    }
22234                    window.pars3p.PhoneNumber_last = PhoneNumber;
22235                    lib3p.common_PostURL(window.pars3p.api.public.checkuser, { "PhoneNumber": PhoneNumber }, function (res) {
22236                        if (res == true) {
22237                            lib3p.common_LoadingHide();
22238                            window.pars3p.PhoneNumber_last = null;
22239                            frm[0].OrderPhone.value = "";
22240
22241                            var query = jQuery('.popup-delivery-has-account .hachi-modal');
22242                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22243                                if (jQuery(query[0]).hasClass("d-none")) {
22244                                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
22245                                }
22246                            }
22247                            lib3p.pageCartDelivery.DeliveryEdit_Close();
22248                        }
22249                        else {
22250                            lib3p.common_PostURL(window.pars3p.api.public.GetCardByStaff, { "CellPhone": PhoneNumber }, function (res2) {
22251                                lib3p.common_LoadingHide();
22252                                window.pars3p.PhoneNumber_last = null;
22253
22254                                if (lib3p_helper.utility.hasValue(res2) && res2.StatusCode == 0 && lib3p_helper.utility.hasValue(res2.ObjectReturn)) {
22255                                    if (res2.ObjectReturn.Cellphone != PhoneNumber) {
22256                                        alert('Số điện thoại bạn vừa nhập được đăng ký cho mã KHTT ' + res2.ObjectReturn.CardNo + ' tại Cửa hàng, nhưng tại web, mã KHTT này đang lưu với số điện thoại ' + res2.ObjectReturn.Cellphone + '. Vui lòng liên hệ Hachi Hachi để được hỗ trợ.');
22257                                    }
22258                                    else {
22259                                        lib3p.pageCartDelivery.DeliveryEdit_Close();
22260                                        res2.ObjectReturn.Cellphone = PhoneNumber;
22261                                        lib3p.header.onKTTT_Show(res2.ObjectReturn, lib3p.header.TypeKTTT.Account, function () {
22262                                            var req = {
22263                                                Email: "",
22264                                                UserName: window.pars3p.khtt.Cellphone,
22265                                                Password: new Date().getTime(),
22266                                                PhoneNumber: window.pars3p.khtt.Cellphone,
22267                                                FirstName: window.pars3p.khtt.FirstName,
22268                                                LastName: window.pars3p.khtt.LastName,
22269                                                FullName: window.pars3p.khtt.FullName,
22270                                                Store: -1,
22271                                                POMaster: "",
22272                                                SendType: window.pars3p.otp.SendType
22273                                            };
22274                                            window.pars3p.dangkykhtt.Code = res2.ObjectReturn.ID;
22275                                            window.pars3p.dangkykhtt.HistoryCardID = res2.ObjectReturn.ID;
22276                                            window.pars3p.dangkykhtt.Cellphone = window.pars3p.khtt.Cellphone;
22277                                            window.pars3p.dangkykhtt.CardNo = res2.ObjectReturn.CardNo;
22278                                            window.pars3p.dangkykhtt.FirstName = res2.ObjectReturn.FirstName;
22279                                            window.pars3p.dangkykhtt.L
22279astName = res2.ObjectReturn.LastName;
22280                                            window.pars3p.dangkykhtt.FullName = res2.ObjectReturn.FullName;
22281                                            lib3p.common_PostURL(window.pars3p.api.public.User_Register2, req, function (res3) {
22282                                                if (lib3p_helper.utility.hasValue(res3)) {
22283                                                    if (res3.StatusID == 0 && lib3p_helper.utility.hasValueString(res3.CardNo)) {
22284                                                        window.pars3p.dangkykhtt.IsSend = res3.IsSentRabbit;
22285                                                        lib3p.header.ConnectAuth(window.pars3p.khtt.Cellphone, res3.Password, function () {
22286                                                            if (lib3p_helper.utility.hasValueString(window.pars3p.dangkykhtt) && window.pars3p.dangkykhtt.Code > 0) {
22287                                                                lib3p.common_AuthPostURL(window.pars3p.api.auth.PageKHTT_SendOther, { "item": window.pars3p.dangkykhtt }, function (res4) {
22288                                                                    if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
22289                                                                        lib3p.common_AuthPostURL(window.pars3p.api.auth.All_MergeCart, { cart: { CartDetails: window.pars3p.cart.CartDetails, CartCoupon: window.pars3p.cart.CartCoupon } }, function (res3) {
22290                                                                            if (res3 == true) {
22291                                                                                window.pars3p.cart.lastUser = '';
22292                                                                                window.pars3p.cart.lastDate = null;
22293                                                                                window.pars3p.cart.Code = -1;
22294                                                                                window.pars3p.cart.CartDetails = [];
22295                                                                                window.pars3p.cart.CartCoupon = [];
22296                                                                                window.pars3p.cart.ListCoupon = [];
22297                                                                                window.pars3p.cart.CartNoti = [];
22298                                                                                window.pars3p.cart.CartCombo = [];
22299                                                                                window.pars3p.cart.TypeOfTransportation = [];
22300                                                                                window.pars3p.cart.timeOrderCalculateNext = null;
22301                                                                                lib3p.common_cartSet(window.pars3p.cart);
22302                                                                            }
22303                                                                            window.location.href = window.pars3p.urlCart;
22304                                                                        }, function (err3) {
22305                                                                            lib3p.log(err3);
22306                                                                        });
22307                                                                    }
22308                                                                    else {
22309                                                                        window.location.href = window.pars3p.urlCart;
22310                                                                    }
22311                                                                }, function (err4) {
22312                                                                    lib3p.log(err4);
22313                                                                });
22314                                                            }
22315                                                        }, function (errConnect) {
22316                                                            lib3p.log(errConnect);
22317                                                        });
22318                                                    }
22319                                                    else {
22320                                                        lib3p.log("Lỗi dữ liệu");
22321                                                    }
22322                                                }
22323                                            }, function (err3) {
22324                                                lib3p.log(err3);
22325                                            });
22326                                        }, function () {
22327                                            lib3p.pageCartDelivery.onPopupDeliveryEdit_AccountShow();
22328                                        });
22329                                    }
22330                                }
22331                            }, function (err2) {
22332                                lib3p.log(err2);
22333                            });
22334                        }
22335                    }, function (err) {
22336                        lib3p.log(err);
22337                    });
22338
22339                }, window.pars3p.timeAsync);
22340            });
22341        },
22342        onPopupDeliveryHasAccount_Login: function () {
22343            window.location.href = window.pars3p.urlLogin;
22344        },
22345        onPopupDeliveryHasAccount_Close: function () {
22346            var query = jQuery('.popup-delivery-has-account .hachi-modal');
22347            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22348                if (jQuery(query[0]).hasClass("d-block")) {
22349                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
22350                }
22351            }
22352            lib3p.pageCartDelivery.onPopupDeliveryEdit_AccountShow();
22353        },
22354        onPopupDeliveryEdit_AccountShow: function () {
22355            var query = jQuery('.popup-delivery-edit .hachi-modal');
22356            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22357                if (jQuery(query[0]).hasClass("d-none")) {
22358                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
22359                }
22360            }
22361            query = jQuery('.popup-delivery-edit form');
22362            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22363                ctr = query[0].OrderPhone;
22364                ctr.value = '';
22365                ctr.focus();
22366            }
22367        },
22368        DeliveryEdit_Check_Phone: function (OrderPhone, OrderBy) {
22369            return new Promise(function (resolve, reject) {
22370                setTimeout(function () {
22371                    try {
22372                        lib3p.common_PostURL(window.pars3p.api.public.GetCardByPhone, { "CellPhone": OrderPhone }, function (res) {
22373                            if (lib3p_helper.utility.hasValue(res)) {
22374                                if (res.StatusCode == 0) {
22375                                    if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
22376                                        var query = jQuery('.popup-delivery-edit .hachi-modal');
22377                                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22378                                            if (jQuery(query[0]).hasClass("d-block")) {
22379                                                jQuery(query[0]).removeClass("d-block").addClass("d-none");
22380                                            }
22381                                        }
22382                                        res.ObjectReturn.Cellphone = OrderPhone;
22383                                        res.ObjectReturn.OrderBy = OrderBy;
22384                                        lib3p.header.onKTTT_Show(res.ObjectReturn, lib3p.header.TypeKTTT.Phone, function () {
22385                                            lib3p.common_AuthPostURL(window.pars3p.api.auth.All_MergeCart, { cart: { CartDetails: window.pars3p.cart.CartDetails, CartCoupon: window.pars3p.cart.CartCoupon } }, function (resMerge) {
22386                                                if (resMerge == true) {
22387                                                    window.pars3p.cart.lastUser = '';
22388                                                    window.pars3p.cart.lastDate = null;
22389                                                    window.pars3p.cart.Code = -1;
22390                                                    window.pars3p.cart.CartDetails = [];
22391                                                    window.pars3p.cart.CartCoupon = [];
22392                                                    window.pars3p.cart.ListCoupon = [];
22393                                                    window.pars3p.cart.CartNoti = [];
22394                                                    window.pars3p.cart.CartCombo = [];
22395                                                    window.pars3p.cart.TypeOfTransportation = [];
22396                                                    window.pars3p.cart.timeOrderCalculateNext = null;
22397                                                    lib3p.common_cartSet(window.pars3p.cart);
22398
22399                                                    window.location.href = window.pars3p.urlCart;
22400                                                }
22401                                                else {
22402                                                    window.location.href = window.pars3p.urlCart;
22403                                                }
22404                                                resolve(true);
22405                                            }, function (err) {
22406                                                reject(err);
22407                                            });
22408                                        }, function () {
22409                                            lib3p.pageCartDelivery.onDelivery_TaoMoi();
22410                                        });
22411                                    }
22412                                }
22413                            }
22414                        }, function (err) {
22415                            reject(err);
22416                        });
22417                    }
22418                    catch (err) {
22419                        reject(err);
22420                    }
22421                }, window.pars3p.timeAsync);
22422            });
22423        },
22424        onDelivery_TaoMoi: function () {
22425            window.pars3p.deliveryID = 0;
22426            lib3p.pageCartDelivery.Delivery_Edit();
22427        },
22428        onDelivery_ThayDoi: function (id) {
22429            window.pars3p.deliveryID = id;
22430            lib3p.pageCartDelivery.Delivery_Edit();
22431        },
22432        onDelivery_Xoa: function (id) {
22433            var query = jQuery('.popup-delivery-xoa .hachi-modal');
22434            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22435                if (jQuery(query[0]).hasClass("d-none")) {
22436                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
22437                }
22438            }
22439            var item = window.pars3p.listDelivery.find(function (c) { return c.ID == id; });
22440            if (lib3p_helper.utility.hasValue(item)) {
22441                window.pars3p.cart.DeliveryID = id;
22442                jQuery('.popup-delivery-xoa .FullAddress').html(item.FullAddress);
22443            }
22444        },
22445        onDelivery_XoaDongY: function () {
22446            lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_Delete, { DeliveryID: window.pars3p.cart.DeliveryID }, function (res) {
22447                if (res == true) {
22448                    lib3p.pageCartDelivery.onDelivery_XoaClose();
22449                    var idx = window.pars3p.listDelivery.findIndex(function (c) { return c.ID == window.pars3p.cart.DeliveryID; });
22450                    window.pars3p.listDelivery.splice(idx, 1);
22451                    jQuery('.page-delivery .section-2.list-diachi .item.data-' + window.pars3p.cart.DeliveryID).remove();
22452                }
22453            }, function (err) {
22454                lib3p.log(err);
22455            });
22456        },
22457        onDelivery_XoaClose: function () {
22458            var query = jQuery('.popup-delivery-xoa .hachi-modal');
22459            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22460                if (jQuery(query[0]).hasClass("d-block")) {
22461                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
22462                }
22463            }
22464        },
22465        onDelivery_Check: function (event, id) {
22466            if (event.currentTarget.checked == true) {
22467                var item = window.pars3p.listDelivery.find(function (c) { return c.ID == id; });
22468                var cart = {
22469                    Code: window.pars3p.cart.Code,
22470                    DeliveryID: item.ID,
22471                    ReceivedBy: item.ReceivedBy,
22472                    Cellphone: item.Cellphone,
22473                    Province: item.Province,
22474                    District: item.District,
22475                    Ward: item.Ward,
22476                    Address: item.Address,
22477                };
22478                lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_Order, { cart: cart }, function (res) {
22479                    if (res == true) {
22480                        window.pars3p.cart.DeliveryID = item.ID;
22481                        window.pars3p.cart.Province = item.Province;
22482                        window.pars3p.cart.District = item.District;
22483                        window.pars3p.cart.Ward = item.Ward;
22484                        window.pars3p.cart.FullAddress = item.FullAddress;
22485                        lib3p.common_cartSet(window.pars3p.cart).then(function (data) {
22486                            var last = lib3p.common_urllastGet();
22487                            if (lib3p_helper.utility.hasValueString(last) && last.indexOf("/dang-nhap?type=33") == -1 && last.indexOf("/dang-ky?type=34") == -1) {
22488                                window.location.href = last;
22489                            }
22490                            else {
22491                                window.location.href = window.pars3p.urlCart;
22492                            }
22493                        }, function (err) {
22494                            console.log(err);
22495                        });
22496                    }
22497                }, function (err) {
22498                    lib3p.log(err);
22499                });
22500            }
22501        },
22502        onDelivery_CheckClick: function (event, id) {
22503            var item = window.pars3p.listDelivery.find(function (c) { return c.ID == id; });
22504            var cart = {
22505                Code: window.pars3p.cart.Code,
22506                DeliveryID: item.ID,
22507                ReceivedBy: item.ReceivedBy,
22508                Cellphone: item.Cellphone,
22509                Province: item.Province,
22510                District: item.District,
22511                Ward: item.Ward,
22512                Address: item.Address,
22513            };
22514            lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_Order, { cart: cart }, function (res) {
22515                if (res == true) {
22516                    var last = lib3p.common_urllastGet();
22517                    if (lib3p_helper.utility.hasValueString(last) && last.indexOf("/dang-nhap?type=33") == -1 && last.indexOf("/dang-ky?type=34") == -1) {
22518                        window.location.href = last;
22519                    }
22520                    else {
22521                        window.location.href = window.pars3p.urlCart;
22522                    }
22523                }
22524            }, function (err) {
22525                lib3p.log(err);
22526            });
22527        },
22528        onDeliveryEdit_Close: function () {
22529            if (window.pars3p.islockDiaglog != true) {
22530                lib3p.pageCartDelivery.DeliveryEdit_Close();
22531            }
22532            else if (window.pars3p.auth.isLogin != true) {
22533                window.location.href = window.pars3p.urlCart;
22534            }
22535        },
22536        DeliveryEdit_Close: function () {
22537            var query = jQuery('.popup-delivery-edit .hachi-modal');
22538            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22539                if (jQuery(query[0]).hasClass("d-block")) {
22540                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
22541  
22541              }
22542            }
22543        },
22544        onDeliveryCaptcha_Click: function () {
22545            window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
22546            jQuery('.popup-delivery-edit .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
22547            jQuery('.popup-delivery-edit .captcha').attr('key', window.pars3p.KeyView);
22548            return false;
22549        },
22550        onDeliveryEdit_Submit: function (event) {
22551            if (!jQuery(event.target).hasClass('haserror')) {
22552                jQuery(event.target).find('div.error').html('');
22553                jQuery(event.target).find('.input input').removeClass('error');
22554
22555                var data = {
22556                    ID: -1,
22557                    OrderBy: '',
22558                    OrderPhone: '',
22559                    OrderEmail: '',
22560                    ReceivedBy: '',
22561                    Cellphone: '',
22562                    Province: 0,
22563                    District: 0,
22564                    Ward: 0,
22565                    Address: '',
22566                    IsDefault: false,
22567                    Captcha: ''
22568                };
22569                var flag = true;
22570
22571                var ctr = event.target.ReceivedBy;
22572                data.ReceivedBy = ctr.value;
22573                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22574                    flag = false;
22575                    if (!jQuery(ctr).hasClass('error')) {
22576                        jQuery(ctr).addClass('error');
22577                    }
22578                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
22579                }
22580                ctr = event.target.Cellphone;
22581                data.Cellphone = ctr.value;
22582                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22583                    flag = false;
22584                    if (!jQuery(ctr).hasClass('error')) {
22585                        jQuery(ctr).addClass('error');
22586                    }
22587                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
22588                }
22589                else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
22590                    flag = false;
22591                    if (!jQuery(ctr).hasClass('error')) {
22592                        jQuery(ctr).addClass('error');
22593                    }
22594                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
22595                }
22596                ctr = document.getElementById('cboProvince_itemedit');
22597                data.Province = ctr.value;
22598                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22599                    flag = false;
22600                    if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
22601                        jQuery(ctr).closest('.ui-widget').addClass('error');
22602                    }
22603                    jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
22604                }
22605                ctr = document.getElementById('cboDistrict_itemedit');
22606                data.District = ctr.value;
22607                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22608                    flag = false;
22609                    if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
22610                        jQuery(ctr).closest('.ui-widget').addClass('error');
22611                    }
22612                    jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
22613                }
22614                ctr = document.getElementById('cboWard_itemedit');
22615                data.Ward = ctr.value;
22616                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22617                    flag = false;
22618                    if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
22619                        jQuery(ctr).closest('.ui-widget').addClass('error');
22620                    }
22621                    jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
22622                }
22623                ctr = event.target.Address;
22624                data.Address = ctr.value;
22625                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22626                    flag = false;
22627                    if (!jQuery(ctr).hasClass('error')) {
22628                        jQuery(ctr).addClass('error');
22629                    }
22630                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
22631                }
22632                if (window.pars3p.auth.isLogin != true) {
22633                    ctr = event.target.OrderBy;
22634                    data.OrderBy = ctr.value;
22635                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22636                        flag = false;
22637                        if (!jQuery(ctr).hasClass('error')) {
22638                            jQuery(ctr).addClass('error');
22639                        }
22640                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
22641                    }
22642                    ctr = event.target.OrderPhone;
22643                    data.OrderPhone = ctr.value;
22644                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22645                        flag = false;
22646                        if (!jQuery(ctr).hasClass('error')) {
22647                            jQuery(ctr).addClass('error');
22648                        }
22649                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
22650                    }
22651                    else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
22652                        flag = false;
22653                        if (!jQuery(ctr).hasClass('error')) {
22654                            jQuery(ctr).addClass('error');
22655                        }
22656                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
22657                    }
22658                    ctr = event.target.OrderEmail;
22659                    data.OrderEmail = ctr.value;
22660                    if (lib3p_helper.utility.hasValueString(ctr.value) && !lib3p_helper.utility.isEmail(ctr.value)) {
22661                        flag = false;
22662                        if (!jQuery(ctr).hasClass('error')) {
22663                            jQuery(ctr).addClass('error');
22664                        }
22665                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Email chưa đúng</span>');
22666                    }
22667                    ctr = event.target.Captcha;
22668                    data.Captcha = ctr.value;
22669                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
22670                        flag = false;
22671                        if (!jQuery(ctr).hasClass('error')) {
22672                            jQuery(ctr).addClass('error');
22673                        }
22674                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
22675                    }
22676                    window.pars3p.cart.OrderPhoneOTP = null;
22677                }
22678
22679                ctr = event.target.IsDefault;
22680                data.IsDefault = ctr.checked == true;
22681                if (flag == true) {
22682                    data.Cellphone = data.Cellphone.replace(/\s+/g, "");
22683                    data.OrderPhone = data.OrderPhone.replace(/\s+/g, "");
22684
22685                    if (window.pars3p.auth.isLogin == true) {
22686                        if (window.pars3p.deliveryID > 0) {
22687                            data.ID = window.pars3p.deliveryID;
22688                        }
22689                        if (data.ID > 0) {
22690                            lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_Edit, { item: data }, function (res) {
22691                                if (res == true) {
22692                                    if (window.pars3p.listDelivery.length == 1) {
22693                                        var last = lib3p.common_urllastGet();
22694                                        if (lib3p_helper.utility.hasValueString(last)) {
22695                                            window.location.href = last;
22696                                        }
22697                                        else {
22698                                            window.location.href = window.pars3p.urlCart;
22699                                        }
22700                                    }
22701                                    else if(window.pars3p.cart.DeliveryID == data.ID) {
22702                                        var cart = {
22703                                            Code: window.pars3p.cart.Code,
22704                                            DeliveryID: data.ID,
22705                                            ReceivedBy: data.ReceivedBy,
22706                                            Cellphone: data.Cellphone,
22707                                            Province: data.Province,
22708                                            District: data.District,
22709                                            Ward: data.Ward,
22710                                            Address: data.Address,
22711                                        };
22712                                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_Order, { cart: cart }, function (resOrder) {
22713                                            if (res == true) {
22714                                                var last = lib3p.common_urllastGet();
22715                                                if (lib3p_helper.utility.hasValueString(last)) {
22716                                                    window.location.href = last;
22717                                                }
22718                                                else {
22719                                                    window.location.href = window.pars3p.urlCart;
22720                                                }
22721                                            }
22722                                        }, function (errOrder) {
22723                                            console.log(errOrder);
22724                                        });
22725                                    }
22726                                    else {
22727                                        lib3p.pageCartDelivery.Delivery_Load();
22728                                        lib3p.pageCartDelivery.onDeliveryEdit_Close();
22729                                    }                                    
22730                                }
22731                            }, function (err) {
22732                                console.log(err);
22733                            });
22734                        }
22735                        else {
22736                            lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_Add, { item: data }, function (res) {
22737                                if (res > 0) {
22738                                    lib3p.pageCartDelivery.Delivery_Load();
22739                                    lib3p.pageCartDelivery.onDeliveryEdit_Close();
22740                                }
22741                            }, function (err) {
22742                                throw err;
22743                            });
22744                        }
22745                    }
22746                    else {
22747                        lib3p.common_PostURL(window.pars3p.api.public.GetCardByPhone, { "CellPhone": data.OrderPhone }, function (res) {
22748                            if (lib3p_helper.utility.hasValue(res)) {
22749                                if (res.StatusCode == 0) {
22750                                    if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
22751                                        //lib3p.pageCartDelivery.onDeliveryEdit_Close();
22752                                        var query = jQuery('.popup-delivery-edit .hachi-modal');
22753                                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22754                                            if (jQuery(query[0]).hasClass("d-block")) {
22755                                                jQuery(query[0]).removeClass("d-block").addClass("d-none");
22756                                            }
22757                                        }
22758
22759                                        res.ObjectReturn.Cellphone = data.OrderPhone;
22760                                        res.ObjectReturn.OrderBy = data.ReceivedBy;
22761                                        lib3p.header.onKTTT_Show(res.ObjectReturn, lib3p.header.TypeKTTT.Phone, function () {
22762                                            lib3p.common_AuthPostURL(window.pars3p.api.auth.All_MergeCart, { cart: { CartDetails: window.pars3p.cart.CartDetails, CartCoupon: window.pars3p.cart.CartCoupon } }, function (resMerge) {
22763                                                if (resMerge == true) {
22764                                                    window.pars3p.cart.lastUser = '';
22765                                                    window.pars3p.cart.lastDate = null;
22766                                                    window.pars3p.cart.Code = -1;
22767                                                    window.pars3p.cart.CartDetails = [];
22768                                                    window.pars3p.cart.CartCoupon = [];
22769                                                    window.pars3p.cart.ListCoupon = [];
22770                                                    window.pars3p.cart.CartNoti = [];
22771                                                    window.pars3p.cart.CartCombo = [];
22772                                                    window.pars3p.cart.TypeOfTransportation = [];
22773                                                    window.pars3p.cart.timeOrderCalculateNext = null;
22774                                                    lib3p.common_cartSet(window.pars3p.cart);
22775
22776                                                    window.location.href = window.pars3p.urlCart;
22777                                                    var last = lib3p.common_urllastGet();
22778                                                    if (lib3p_helper.utility.hasValueString(last) && last.indexOf("/dang-nhap?type=33") == -1 && last.indexOf("/dang-ky?type=34") == -1) {
22779                                                        //window.location.href = last;
22780                                                    }
22781                          
22781                          else {
22782                                                        //window.location.href = "/";
22783                                                    }
22784                                                }
22785                                            }, function (err) {
22786                                                console.log(err);
22787                                            });
22788
22789                                            /* var last = lib3p.common_urllastGet();
22790                                            if(lib3p_helper.utility.hasValueString(last)) {
22791                                                window.location.href = last;
22792                                            }
22793                                            else {
22794                                                window.location.href = window.pars3p.urlCart;
22795                                            } */
22796                                        }, function () {
22797                                            lib3p.pageCartDelivery.onDelivery_TaoMoi();
22798                                        });
22799                                    }
22800                                }
22801                                else {
22802                                    window.pars3p.cart.OrderBy = data.OrderBy;
22803                                    window.pars3p.cart.OrderPhone = data.OrderPhone;
22804                                    window.pars3p.cart.OrderEmail = data.OrderEmail;
22805                                    window.pars3p.cart.ReceivedBy = data.ReceivedBy;
22806                                    window.pars3p.cart.Cellphone = data.Cellphone;
22807                                    window.pars3p.cart.Province = data.Province;
22808                                    window.pars3p.cart.District = data.District;
22809                                    window.pars3p.cart.Ward = data.Ward;
22810                                    window.pars3p.cart.Address = data.Address;
22811                                    window.pars3p.cart.FullAddress = data.Address;
22812                                    var find = window.pars3p.location.ListWard.find(function (c) { return c.Code == data.Ward; });
22813                                    if (lib3p_helper.utility.hasValue(find)) {
22814                                        window.pars3p.cart.FullAddress += ',' + find.WardName;
22815                                    }
22816                                    find = window.pars3p.location.ListDistrict.find(function (c) { return c.Code == data.District; });
22817                                    if (lib3p_helper.utility.hasValue(find)) {
22818                                        window.pars3p.cart.FullAddress += ',' + find.DistrictName;
22819                                    }
22820                                    find = window.pars3p.location.ListProvince.find(function (c) { return c.Code == data.Province; });
22821                                    if (lib3p_helper.utility.hasValue(find)) {
22822                                        window.pars3p.cart.FullAddress += ',' + find.ProvinceName;
22823                                    }
22824
22825                                    window.pars3p.KeyCaptcha = data.Captcha;
22826                                    lib3p.common_PostURL(window.pars3p.api.public.All_CheckCaptcha + '?key=' + window.pars3p.KeyView + '&captcha=' + window.pars3p.KeyCaptcha, {}, function (res) {
22827                                        if (res == true) {
22828                                            var query = jQuery('.popup-delivery-edit .hachi-modal');
22829                                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22830                                                if (jQuery(query[0]).hasClass("d-block")) {
22831                                                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
22832                                                }
22833                                            }
22834                                            lib3p.header.onOTPType_ShowDelivery(window.pars3p.cart.OrderPhone, function () {
22835                                                window.pars3p.cart.OrderPhoneOTP = window.pars3p.KeyCaptcha;
22836                                                lib3p.common_cartSet(window.pars3p.cart).then(function (data) {
22837                                                    window.location.href = window.pars3p.urlCart;
22838                                                }, function (err) {
22839                                                    lib3p.log(err);
22840                                                });
22841                                            }, function () {
22842                                                query = jQuery('.popup-delivery-edit .hachi-modal');
22843                                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22844                                                    if (jQuery(query[0]).hasClass("d-none")) {
22845                                                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
22846                                                    }
22847                                                }
22848                                            });
22849                                        }
22850                                        else {
22851                                            jQuery(event.target.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">
22851Nhập sai mã captcha</span>');
22852                                        }
22853                                    }, function (err) {
22854                                        lib3p.log(err);
22855                                        jQuery(event.target.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Nhập sai mã captcha</span>');
22856                                    });
22857
22858                                }
22859
22860                            }
22861                        }, function (err) {
22862
22863                        });
22864                    }
22865                }
22866            }
22867
22868            event.preventDefault();
22869            return false;
22870        },
22871        onDeliveryKHTT_Show() {
22872            var query = jQuery("#popup-delivery-khtt .hachi-modal");
22873            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22874                if (jQuery(query[0]).hasClass("d-none")) {
22875                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
22876                }
22877                jQuery(query[0]).find('.CardNo').html(window.pars3p.popupKHTT.CardNo);
22878                jQuery(query[0]).find('.Cellphone').html(window.pars3p.popupKHTT.Cellphone);
22879                jQuery(query[0]).find('.FullName').html(window.pars3p.popupKHTT.FullName);
22880                jQuery(query[0]).find('.OrderBy').html(window.pars3p.popupKHTT.OrderBy);
22881            }
22882        },
22883        onDeliveryKHTT_Close() {
22884            var query = jQuery("#popup-delivery-khtt .hachi-modal");
22885            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22886                if (jQuery(query[0]).hasClass("d-block")) {
22887                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
22888                }
22889            }
22890        },
22891        onDeliveryKHTT_Submit: function (event) {
22892            var ctr = event.target.StatusID;
22893            window.pars3p.popupKHTT.StatusID = 1;
22894            if (ctr.value == '2') {
22895                window.pars3p.popupKHTT.StatusID = 2;
22896            }
22897            lib3p.common_PostURL(window.pars3p.api.public.getactiveco
22897de, { "PhoneNumber": window.pars3p.popupKHTT.CellphoneShow, "SendType": 1 }, function (res) {
22898                window.pars3p.popupKHTT.active = true;
22899                lib3p.pageCartDelivery.onDeliveryKHTT_Close();
22900                //lib3p.onHeader_PopupKTT_Close();
22901                //lib3p.onHeader_PopupSMS_Show();
22902            }, function (err) {
22903                if (err.status == 200) {
22904                    window.pars3p.popupKHTT.active = true;
22905                    lib3p.pageCartDelivery.onDeliveryKHTT_Close();
22906                    //lib3p.onHeader_PopupKTT_Close();
22907                    //lib3p.onHeader_PopupSMS_Show();
22908                }
22909            });
22910
22911            event.preventDefault();
22912        },
22913
22914
22915        onHeader_PopupKTT_Show() {
22916            var query = jQuery("#header-popup-xacnhan-khtt .hachi-modal");
22917            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22918                if (jQuery(query[0]).hasClass("d-none")) {
22919                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
22920                }
22921                jQuery(query[0]).find('.CardNo').html(window.pars3p.popupKHTT.CardNo);
22922                jQuery(query[0]).find('.Cellphone').html(window.pars3p.popupKHTT.Cellphone);
22923                jQuery(query[0]).find('.FullName').html(window.pars3p.popupKHTT.FullName);
22924                jQuery(query[0]).find('.OrderBy').html(window.pars3p.popupKHTT.OrderBy);
22925            }
22926        },
22927        onHeader_PopupKTT_Close() {
22928            var query = jQuery("#header-popup-xacnhan-khtt .hachi-modal");
22929            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
22930                if (jQuery(query[0]).hasClass("d-block")) {
22931                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
22932                }
22933            }
22934        },
22935        onHeader_PopupKTT_Submit: function (event) {
22936            var ctr = event.target.StatusID;
22937            window.pars3p.popupKHTT.StatusID = 1;
22938            if (ctr.value == '2') {
22939                window.pars3p.popupKHTT.StatusID = 2;
22940            }
22941            lib3p.common_PostURL(window.pars3p.api.public.getactiveco
22941de, { "PhoneNumber": window.pars3p.popupKHTT.CellphoneShow, "SendType": 1 }, function (res) {
22942                window.pars3p.popupKHTT.active = true;
22943                lib3p.onHeader_PopupKTT_Close();
22944                lib3p.onHeader_PopupSMS_Show();
22945            }, function (err) {
22946                if (err.status == 200) {
22947                    window.pars3p.popupKHTT.active = true;
22948                    lib3p.onHeader_PopupKTT_Close();
22949                    lib3p.onHeader_PopupSMS_Show();
22950                }
22951            });
22952
22953            event.preventDefault();
22954        },
22955        onHeader_PopupKTT_FB: function () {
22956            if (window['FB'] && window['FB'].login && window['FB'].api) {
22957                window['FB'].login(function (res) {
22958                    if (lib3p_helper.utility.hasValue(res.authResponse)) {
22959                        window['FB'].api('/me', { fields: 'name,email' }, function (dataUser) {
22960                            //    {
22961                            //     email: "[email protected]"
22962                            //     id: "20076713260473432"
22963                            //     name: "Phương Phè Phỡn"
22964                            //    }
22965                            //{
22966                            //  access_token=EAAH0VmWfAHIBAHHSWIEO77ZAIMbSsud8fcAAh2QOpth1bQ25ZC3rlW018Bj9FkbNnVyMktd5pVggeQHBfkFZAWwWHaIPGbUzitBN7u4YEVUFQAVhoGWqJtl6H1ZAadHfFT7k6P8KXmqktUaQ9sbbm56oHWsGoPNowCBDgFw7hMLK2GpdJsqJ3imZCSUj1LkhmxWIduqVRXl2rl4FNRbZBX&fields=name%2Cemail&method=get&pretty=0&sdk=joey&suppress_http_code=1
22967                            //}
22968
22969                            // console.log(dataUser)
22970                            //let token = new DTOToken();
22971                            //token = { ...res.authResponse }
22972                            //token.access_token = res.authResponse.accessToken;
22973                            window.pars3p.auth.access_token = res.authResponse.accessToken;
22974                            window.pars3p.auth.isLogin = true;
22975                            lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
22976
22977                        });
22978
22979                    } else {
22980
22981                        obs.error("Đăng nhập fb ko thàng công");
22982                        obs.complete();
22983                    }
22984                }, { scope: 'email' });
22985            }
22986
22987            //logOutFB() {
22988            //if (window['FB']) {
22989            //window['FB'].logout(function (response) {
22990            // console.log(response);
22991            //});
22992            //}
22993            //}
22994        },
22995
22996        /* onDelivery_Submit: function(event) {
22997            
22998            jQuery('#js-dia-chi-giao-hang .itemedit .form-dia-chi-giao-hang').find('.hachi-color-text-10').html('');
22999            jQuery('#js-dia-chi-giao-hang .itemedit .form-dia-chi-giao-hang').find('.form-control').removeClass('error');
23000            jQuery('#js-dia-chi-giao-hang .itemedit .form-dia-chi-giao-hang').find('input.custom-combobox-input').removeClass('error');
23001
23002            var flag = true;
23003            var data = {
23004                ReceivedBy: '',
23005                Cellphone: '',
23006                Province: 0,
23007                District: 0,
23008                Ward: 0,
23009                Address: '',
23010                IsDefault: false,
23011            };
23012
23013            var ctr = event.target.ReceivedBy;
23014            data.ReceivedBy = ctr.value;
23015            if(!lib3p_helper.utility.hasValueString(ctr.value)) {
23016                flag = false;
23017                if(!jQuery(ctr).hasClass('error')) {
23018                    jQuery(ctr).addClass('error');
23019                }
23020                jQuery(ctr).parent().find('.hachi-color-text-10').html('<span>Vui lòng điền đầy đủ thông tin</span>');
23021            }
23022            ctr = event.target.Cellphone;
23023            data.Cellphone = ctr.value;
23024            if(!lib3p_helper.utility.hasValueString(ctr.value)) {
23025                flag = false;
23026                if(!jQuery(ctr).hasClass('error')) {
23027                    jQuery(ctr).addClass('error');
23028                }
23029                jQuery(ctr).parent().find('.hachi-color-text-10').html('<span>Vui lòng điền đầy đủ thông tin</span>');
23030            }
23031
23032            ctr = document.getElementById('cboProvince_itemedit');
23033            data.Province = ctr.value;
23034            if(!lib3p_helper.utility.hasValueString(ctr.value)) {
23035                flag = false;
23036                if(!jQuery(ctr).next().find('input').hasClass('error')) {
23037                    jQuery(ctr).next().find('input').addClass('error');
23038                }
23039                jQuery(ctr).parent().next().find('.hachi-color-text-10').html('<span>Vui lòng điền đầy đủ thông tin</span>');
23040            }
23041            ctr = document.getElementById('cboDistrict_itemedit');
23042            data.District = ctr.value;
23043            if(!lib3p_helper.utility.hasValueString(ctr.value)) {
23044                flag = false;
23045                if(!jQuery(ctr).next().find('input').hasClass('error')) {
23046                    jQuery(ctr).next().find('input').addClass('error');
23047                }
23048                jQuery(ctr).parent().next().find('.hachi-color-text-10').html('<span>Vui lòng điền đầy đủ thông tin</span>');
23049            }
23050            ctr = document.getElementById('cboWard_itemedit');
23051            data.Ward = ctr.value;
23052            if(!lib3p_helper.utility.hasValueString(ctr.value)) {
23053                flag = false;
23054                if(!jQuery(ctr).next().find('input').hasClass('error')) {
23055                    jQuery(ctr).next().find('input').addClass('error');
23056                }
23057                jQuery(ctr).parent().next().find('.hachi-color-text-10').html('<span>Vui lòng điền đầy đủ thông tin</span>');
23058            }
23059            ctr = event.target.Address;
23060            data.Address = ctr.value;
23061            if(!lib3p_helper.utility.hasValueString(ctr.value)) {
23062                flag = false;
23063                if(!jQuery(ctr).hasClass('error')) {
23064                    jQuery(ctr).addClass('error');
23065                }
23066                jQuery(ctr).parent().find('.hachi-color-text-10 span').html('<span>Vui lòng điền đầy đủ thông tin</span>');
23067            }
23068            ctr = event.target.IsDefault;
23069            data.IsDefault = ctr.value == true;            
23070
23071            if(flag == true) {
23072                var req = {
23073                    ID: window.pars3p.deliveryID,
23074                    ReceivedBy: data.ReceivedBy,
23075                    Cellphone: data.Cellphone,                    
23076                    Province: data.Province,
23077                    District: data.District,
23078                    Ward: data.Ward,
23079                    Address: data.Address,
23080                    IsDefault: data.IsDefault,
23081                };
23082
23083                lib3p.common_AuthPostURL(lib3p_helper.utility.path(window.pars3p.apiapp, 'api/profile/UpdateDelivery'), req, function(res) {
23084                    if(lib3p_helper.utility.hasValue(res)) {
23085                        if(res.StatusCode == 0) {
23086                            window.pars3p.cart.DeliveryID = res.ObjectReturn.ID;
23087                            window.pars3p.cart.ReceivedBy = data.ReceivedBy;
23088                            window.pars3p.cart.Cellphone = data.Cellphone;
23089                            window.pars3p.cart.Province = data.Province;
23090                            window.pars3p.cart.District = data.District;
23091                            window.pars3p.cart.Ward = data.Ward;
23092                            window.pars3p.cart.Address = data.Address;
23093                            window.pars3p.cart.FullAddress = res.ObjectReturn.FullAddress;
23094                            window.pars3p.cart.StatusID = 2;
23095                            lib3p.common_cartSet(window.pars3p.cart);
23096                            lib3p.pageCartDelivery.Delivery_Shipping();
23097                        }
23098                        else {
23099
23100                            //jQuery('.ap-dung-ma-giam-gia .error.CouponSubmit').html(res.ErrorString);
23101                        }
23102                    }
23103                }, function(err) {
23104                    lib3p.log(err);
23105                });                
23106            }
23107
23108            event.preventDefault();
23109        }, */
23110
23111
23112
23113        onDeliverySubmit: function (event) {
23114
23115            jQuery('#js-dia-chi-giao-hang').find('.hachi-color-text-10').html('');
23116            jQuery('#js-dia-chi-giao-hang').find('.form-control').removeClass('error');
23117            jQuery('#js-dia-chi-giao-hang').find('input.custom-combobox-input').removeClass('error');
23118
23119            var flag = true;
23120            var data = {
23121                ID: 0,
23122                OrderBy: '',
23123                OrderPhone: '',
23124                OrderEmail: '',
23125                ReceivedBy: '',
23126                Cellphone: '',
23127                Province: null,
23128                District: null,
23129                Ward: null,
23130                Address: '',
23131            };
23132            if (window.pars3p.cart.Code > 0) {
23133                data.ID = window.pars3p.cart.Code;
23134            }
23135            var ctr = event.target.OrderBy;
23136            data.OrderBy = ctr.value;
23137            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
23138                flag = false;
23139                if (!jQuery(ctr).hasClass('error')) {
23140                    jQuery(ctr).addClass('error');
23141                }
23142                jQuery(ctr).next().html('<span>Vui lòng điền đầy đủ thông tin</span>');
23143            }
23144            ctr = event.target.OrderPhone;
23145            data.OrderPhone = ctr.value;
23146            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
23147                flag = false;
23148                if (!jQuery(ctr).hasClass('error')) {
23149                    jQuery(ctr).addClass('error');
23150                }
23151                jQuery(ctr).next().html('<span>Vui lòng điền đầy đủ thông tin</span>');
23152            }
23153            ctr = event.target.OrderEmail;
23154            data.OrderEmail = ctr.value;
23155            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
23156                flag = false;
23157                if (!jQuery(ctr).hasClass('error')) {
23158                    jQuery(ctr).addClass('error');
23159                }
23160                jQuery(ctr).next().html('<span>Vui lòng điền đầy đủ thông tin</span>');
23161            }
23162            ctr = event.target.ReceivedBy;
23163            data.ReceivedBy = ctr.value;
23164            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
23165                flag = false;
23166                if (!jQuery(ctr).hasClass('error')) {
23167                    jQuery(ctr).addClass('error');
23168                }
23169                jQuery(ctr).next().html('<span>Vui lòng điền đầy đủ thông tin</span>');
23170            }
23171            ctr = event.target.Cellphone;
23172            data.Cellphone = ctr.value;
23173            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
23174                flag = false;
23175                if (!jQuery(ctr).hasClass('error')) {
23176                    jQuery(ctr).addClass('error');
23177                }
23178                jQuery(ctr).next().html('<span>Vui lòng điền đầy đủ thông tin</span>');
23179            }
23180            ctr = document.getElementById('cboProvince');
23181            data.Province = ctr.value;
23182            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
23183                flag = false;
23184                if (!jQuery(ctr).next().find('input').hasClass('error')) {
23185                    jQuery(ctr).next().find('input').addClass('error');
23186                }
23187                jQuery(jQuery(ctr).parent()[0]).next().html('<span>Vui lòng điền đầy đủ thông tin</span>');
23188            }
23189            ctr = document.getElementById('cboDistrict');
23190            data.District = ctr.value;
23191            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
23192                flag = false;
23193                if (!jQuery(ctr).next().find('input').hasClass('error')) {
23194                    jQuery(ctr).next().find('input').addClass('error');
23195                }
23196                jQuery(jQuery(ctr).parent()[0]).next().html('<span>Vui lòng điền đầy đủ thông tin</span>');
23197            }
23198            ctr = document.getElementById('cboWard');
23199            data.Ward = ctr.value;
23200            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
23201                flag = false;
23202                if (!jQuery(ctr).next().find('input').hasClass('error')) {
23203                    jQuery(ctr).next().find('input').addClass('error');
23204                }
23205                jQuery(jQuery(ctr).parent()[0]).next().html('<span>Vui lòng điền đầy đủ thông tin</span>');
23206            }
23207            ctr = event.target.Address;
23208            data.Address = ctr.value;
23209            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
23210                flag = false;
23211                if (!jQuery(ctr).hasClass('error')) {
23212                    jQuery(ctr).addClass('error');
23213                }
23214                jQuery(ctr).next().html('<span>Vui lòng điền đầy đủ thông tin</span>');
23215            }
23216
23217            if (flag == true) {
23218                data.Cellphone = data.Cellphone.replace(/\s+/g, "");
23219                data.OrderPhone = data.OrderPhone.replace(/\s+/g, "");
23220
23221                lib3p.common_PostURL(lib3p_helper.utility.path(window.pars3p.apihistory, 'api/card/GetCardByPhone'), { "CellPhone": data.OrderPhone }, function (res) {
23222                    if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValue(res.ObjectReturn) && res.StatusCode == 0) {
23223                        res.ObjectReturn.OrderBy = data.OrderBy;
23224                        window.pars3p.popupKHTT.CellphoneShow = data.OrderPhone;
23225
23226                        window.pars3p.popupKHTT.ID = res.ObjectReturn.ID;
23227                        window.pars3p.popupKHTT.CardNo = res.ObjectReturn.CardNo;
23228                        window.pars3p.popupKHTT.Cellphone = res.ObjectReturn.Cellphone;
23229                        window.pars3p.popupKHTT.FullName = res.ObjectReturn.FullName;
23230                        window.pars3p.popupKHTT.OrderBy = res.ObjectReturn.OrderBy;
23231                        lib3p.onHeader_PopupKTT_Show();
23232                    }
23233                    else {
23234                        var last = lib3p.common_urllastGet();
23235                        if (lib3p_helper.utility.hasValueString(last) && last.indexOf("/dang-nhap?type=33") == -1 && last.indexOf("/dang-ky?type=34") == -1) {
23236                            window.location.href = last;
23237                        }
23238                        else {
23239                            window.location.href = window.pars3p.urlCartPayment;
23240                        }
23241                    }
23242                }, function (err) {
23243
23244                });
23245
23246
23247
23248
23249                /*  lib3p.common_PostURL(lib3p_helper.utility.path(window.pars3p.apiapp, 'api/profile/UpdateDelivery'), data, function(res) {
23250                     if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValue(res.ObjectReturn) && res.StatusCode == 0) {
23251     
23252                         window.pars3p.cart.Cellphone = res.Cellphone
23253                         window.pars3p.cart.Address = res.Address
23254                         window.pars3p.cart.ReceivedBy = res.ReceivedBy
23255                         window.pars3p.cart.UserID = res.UserID
23256                         window.pars3p.cart.DeliveryID = item.ID
23257                         window.pars3p.cart.Province = res.Province
23258                         window.pars3p.cart.District = res.District
23259                         window.pars3p.cart.Ward = res.Ward
23260                         lib3p.Cart_ShippingAdd(res);
23261                     }
23262                 }, function(err) {
23263                     
23264                 }); */
23265            }
23266
23267            event.preventDefault();
23268        },
23269        onDeliveryCheck: function (el) {
23270            if (el.checked == true) {
23271                var frm = jQuery('#js-dia-chi-giao-hang').find('form')[0];
23272                frm.ReceivedBy.value = frm.OrderBy.value;
23273                frm.Cellphone.value = frm.OrderPhone.value;
23274            }
23275        },
23276
23277        Cart_ShippingAdd: function (item) {
23278            var data = {
23279                Cart: item,
23280                Properties: ["Cellphone", "Address", "Province", "District", "Ward", "DeliveryID", "ReceivedBy"]
23281            };
23282            lib3p.common_PostURL(lib3p_helper.utility.path(window.pars3p.apiapp, 'api/cart/UpdateCart'), data, function (res) {
23283                if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
23284                    var last = lib3p.common_urllastGet();
23285                    if (lib3p_helper.utility.hasValueString(last) && last.indexOf("/dang-nhap?type=33") == -1 && last.indexOf("/dang-ky?type=34") == -1) {
23286                        window.location.href = last;
23287                    }
23288                    else {
23289                        window.location.href = window.pars3p.urlCartPayment;
23290                    }
23291                }
23292            }, function (err) {
23293
23294            });
23295        },
23296
23297
23298
23299        onHeader_PopupSMS_Submit: function (event) {
23300            jQuery('#header-popup-xac-nhan-sms').find('.text-wanring').html('');
23301            jQuery('#header-popup-xac-nhan-sms').find('.form-control').removeClass('error');
23302
23303            var flag = true;
23304            var data = {
23305                cCode: ''
23306            };
23307
23308            var ctr = event.target.cCode;
23309            data.cCode = ctr.value;
23310            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
23311                flag = false;
23312                if (!jQuery(ctr).hasClass('error')) {
23313                    jQuery(ctr).addClass('error');
23314                }
23315                jQuery('#header-popup-xac-nhan-sms').find('.text-wanring').html('Vui lòng nhập mã xác nhận');
23316            }
23317
23318            if (flag == true) {
23319                if (window.pars3p.popupKHTT.activeLogin == true) {
23320                    var req = new FormData();
23321                    req.append('client_id', 'user');
23322                    req.append('client_secret', 'jssecret');
23323                    req.append('scope', 'userapi offline_access');
23324                    req.append('grant_type', 'password');
23325                    req.append('username', window.pars3p.password.UserName);
23326                    req.append('password', data.cCode);
23327                    lib3p.common_PostDataURL(lib3p_helper.utility.path(window.pars3p.apiid, 'connect/token'), req, function (res) {
23328                        if (res && res.access_token) {
23329                            window.pars3p.auth.access_token = res.access_token;
23330                            window.pars3p.auth.refresh_token = res.refresh_token;
23331                            window.pars3p.auth.isLogin = true;
23332
23333                            lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
23334
23335                            window.pars3p.password.PasswordOld = data.cCode;
23336                            lib3p.onHeader_PopupPassword_Show();
23337                        }
23338                    }, function (err) {
23339                        if (err && err.responseJSON && err.responseJSON.c
23339ode > 0) {
23340                            var strError = err.responseJSON.error_description;
23341                            if (err.responseJSON.code == 1) {
23342                                strError = 'Email không tồn tại';
23343                            }
23344                            else if (err.responseJSON.code == 2) {
23345                                strError = 'Mật khẩu không đúng';
23346                            }
23347                            else if (err.responseJSON.code == 3) {
23348                                strError = 'Username đã tồn tại';
23349                            }
23350                            else if (err.responseJSON.code == 4) {
23351                                strError = 'Tài khoản đã bị vô hiệu hóa';
23352                            }
23353                            else if (err.responseJSON.code == 5) {
23354                                strError = 'Không tồn tại người dùng';
23355                            }
23356                            else if (err.responseJSON.code == 6) {
23357                                strError = 'Dữ liệu không tồn tại';
23358                            }
23359                            else if (err.responseJSON.code == 7) {
23360                                strError = 'Số diện thoại đã tồn tại';
23361                            }
23362                            jQuery(jQuery('#js-hachi-login-form .hachi-invalid-feedback')[1]).html(strError);
23363                        }
23364                        else {
23365                            jQuery(jQuery('#js-hachi-login-form .hachi-invalid-feedback')[1]).html('Tài khoản hoặc mật khẩu không đúng');
23366                        }
23367                    });
23368                }
23369                else {
23370                    var req = {
23371                        "ActiveCode": data.cCode,
23372                        "StatusID": window.pars3p.popupKHTT.StatusID,
23373                        "CardInf": {
23374                            "ID": window.pars3p.popupKHTT.ID,
23375                            "Cellphone": window.pars3p.popupKHTT.CellphoneShow,
23376                            "FullName": window.pars3p.popupKHTT.FullName
23377                        }
23378                    };
23379                    lib3p.common_PostURL(lib3p_helper.utility.path(window.pars3p.apihistory, 'api/card/UpdateCardName'), req, function (res) {
23380                        if (lib3p_helper.utility.hasValue(res)) {
23381                            if (res.StatusCode == 0) {
23382                                if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
23383                                    window.pars3p.auth.access_token = res.ObjectReturn.access_token;
23384                                    window.pars3p.auth.refresh_token = res.ObjectReturn.refresh_token;
23385                                    window.pars3p.auth.isLogin = true;
23386                                    lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
23387
23388                                    lib3p.onHeader_PopupSMSSuccess_Show();
23389                                    setTimeout(function () {
23390                                        lib3p.onHeader_PopupSMSSuccess_Close();
23391                                    }, 1000);
23392                                }
23393                            }
23394                            else {
23395                                jQuery('#header-popup-xac-nhan-sms').find('.text-wanring').html(res.ErrorString);
23396                            }
23397                        }
23398                    }, function (err) {
23399                        throw err;
23400                    });
23401                }
23402            }
23403
23404            event.preventDefault();
23405        },
23406        onHeader_PopupSMSSuccess_Show() {
23407            var query = jQuery("#header-popup-xac-nhan-sms-success .hachi-modal");
23408            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
23409                if (jQuery(query[0]).hasClass("d-none")) {
23410                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
23411                }
23412                jQuery(query[0]).find('.Cellphone').html(window.pars3p.popupKHTT.Cellphone);
23413            }
23414        },
23415        onHeader_PopupSMSSuccess_Close() {
23416            var query = jQuery("#header-popup-xac-nhan-sms-success .hachi-modal");
23417            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
23418                if (jQuery(query[0]).hasClass("d-block")) {
23419                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
23420                }
23421            }
23422
23423            var last = lib3p.common_urllastGet();
23424            if (lib3p_helper.utility.hasValueString(last) && last.indexOf("/dang-nhap?type=33") == -1 && last.indexOf("/dang-ky?type=34") == -1) {
23425                window.location.href = last;
23426            }
23427            else {
23428                window.location.href = window.pars3p.urlCart;
23429            }
23430        },
23431    },
23432    pageCartPayment: {
23433        init: function () {
23434            var query = jQuery('.page-payment');
23435            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
23436                lib3p.pageCartPayment.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
23437            }
23438        },
23439        init_async: function () {
23440            return new Promise(function (resolve, reject) {
23441                setTimeout(function () {
23442                    lib3p.logInfo('pageCartPayment');
23443
23444                    var bWidth = lib3p.common_GetWidthBrowser();
23445                    if (bWidth >= 800) {
23446
23447                    }
23448                    else {
23449                        jQuery('.mobile-header .mobile-header-top').hide();
23450                    }
23451                    //lib3p.header.loadLocation();
23452                    lib3p.pageCartPayment.init_async_Location();
23453
23454                    //window.pars3p.cartWaitTimeRun = window.pars3p.cartWaitTime;
23455                    window.pars3p.cartWaitTimeRun = new Date();
23456
23457                    lib3p.common_PostURL(window.pars3p.api.public.Payment_GetPayments, {}, function (res) {
23458                        if (lib3p_helper.utility.hasListValue(res)) {
23459                            window.pars3p.listPayment = res;
23460
23461                            var html = '';
23462                            window.pars3p.listPayment.forEach(function (c, cidx) {
23463                                html += '<div class="item sl-top-gregray400">';
23464                                if (lib3p_helper.utility.hasListValue(c.ListBank)) {
23465                                    html += '<div class="item-text">';
23466                                    html += '<div class="input"><input type="radio" name="payment" value="' + c.Code + '" onchange="lib3p.pageCartPayment.onPayment_Change(event,' + c.Code + ')"></div>';
23467                                    html += '<div class="text"><div class="text-1"><label for="radio">' + c.PaymentName + '</label></div><div class="text-2 cl-red500"></div></div>';
23468                                    html += '</div>';
23469                                    html += '<div class="list-bank">';
23470                                    c.ListBank.forEach(function (d) {
23471                                        if (d.Code == window.pars3p.cart.BankID) {
23472                                            html += '<div class="bank active sl-gregray400">';
23473                                        }
23474                                        else {
23475                                            html += '<div class="bank sl-gregray400">';
23476                                        }
23477                                        html += '<img src="' + d.ImageSetting1 + '" alt="' + d.BankName + '" onclick="lib3p.pageCartPayment.onPayment_Chon(this,' + c.Code + ',' + d.Code + ')">';
23478                                        html += '</div>';
23479                                    });
23480                                    html += '</div>';
23481                                }
23482                                else {
23483                                    html += '<div class="item-text">';
23484                                    html += '<div class="input"><input type="radio" name="payment" value="' + c.Code + '" onchange="lib3p.pageCartPayment.onPayment_Change(event,' + c.Code + ')"></div>';
23485                                    html += '<div class="text"><label for="radio">' + c.PaymentName + '</label></div>';
23486                                    html += '</div>';
23487                                }
23488                                html += '</div>';
23489                            });
23490                            jQuery('.page-payment .thanh-toan .list').html(html);
23491                            jQuery('.mobile-payment .thanh-toan .list').html(html);
23492                            if (window.pars3p.cart.PaymentID > 0) {
23493                                var queryPayment = jQuery('#page-payment-thanh-toan');
23494                                if (queryPayment.length > 0 && lib3p_helper.utility.hasValue(queryPayment[0].payment)) {
23495                                    queryPayment[0].payment.value = window.pars3p.cart.PaymentID;
23496                                }
23497                                queryPayment = jQuery('#mobile-payment-thanh-toan');
23498                                if (queryPayment.length > 0 && lib3p_helper.utility.hasValue(queryPayment[0].payment)) {
23499                                    queryPayment[0].payment.value = window.pars3p.cart.PaymentID;
23500                                }
23501                            }
23502                            var itemPayment = window.pars3p.listPayment.find(function (c) { return c.Code == window.pars3p.cart.PaymentID; });
23503                            if (lib3p_helper.utility.hasValue(itemPayment)) {
23504                                jQuery('.page-payment .thanh-toan-txt').html(itemPayment.PaymentName);
23505                            }
23506                        }
23507                    }, function (err) {
23508                        lib3p.log(err);
23509                    });
23510
23511                    if (window.pars3p.auth.isLogin == true) {
23512                        jQuery('.page-payment .cart-bottom-fix .right .txt').addClass('haslogin');
23513
23514                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Payment_ProductTotal, { Code: -1 }, function (res) {
23515                            if (res.StatusCode == 0) {
23516                                if (lib3p_helper.utility.hasValue(res.ObjectReturn) && lib3p_helper.utility.hasValue(res.ObjectReturn.Cart) && res.ObjectReturn.Cart.Code > 0) {
23517                                    if (lib3p_helper.utility.hasListValue(res.ObjectReturn.CartDetails) || !lib3p_helper.utility.hasValue(res.ObjectReturn.ChooseTime)) {
23518                                        window.pars3p.cart.lastUser = window.pars3p.auth.userName;
23519                                        window.pars3p.cart.lastDate = new Date();
23520                                        window.pars3p.cart.CartDetails = [];
23521                                        window.pars3p.cart.CartCoupon = [];
23522                                        window.pars3p.cart.ListCoupon = [];
23523                                        window.pars3p.cart.CartNoti = [];
23524                                        window.pars3p.cart.CartCombo = [];
23525                                        window.pars3p.cart.TypeOfTransportation = [];
23526                                        lib3p_helper.cart.copyCart(res.ObjectReturn);
23527                                        if (lib3p_helper.utility.hasValue(window.pars3p.cart.ChooseTime)) {
23528                                            window.pars3p.cart.ChooseTime = lib3p_helper.utility.dateGet(window.pars3p.cart.ChooseTime);
23529                                        }
23530                                        if (window.pars3p.cart.StepDate && window.pars3p.cart.StepDate.getTime) {
23531                                            window.pars3p.cart.timeOrderCalculateNext = window.pars3p.cart.StepDate.getTime() + window.pars3p.timeOrderCalculate;
23532                                        }
23533                                        else {
23534                                            window.pars3p.cart.timeOrderCalculateNext = (new Date()).getTime() + window.pars3p.timeOrderCalculate;
23535                                        }
23536                                        lib3p.pageCart.Cache_Check();
23537                                        lib3p.common_cartSet(window.pars3p.cart);
23538                                        lib3p.pageCartPayment.Cart_LoadHeader();
23539                                        lib3p.pageCartPayment.Cart_LoadNoti();
23540                                        lib3p.pageCartPayment.Cart_LoadBody();
23541                                        lib3p.pageCartPayment.Cart_LoadTotal();
23542                                        lib3p.pageCartPayment.Cart_LoadGift();
23543                                        lib3p.pageCartPayment.Cart_ListCoupon();
23544                                        lib3p.pageCartPayment.Cart_LoadVAT();
23545                                        //lib3p.header.PopupDelivery_Init();
23546                                        //lib3p.pageCartPayment.init_timmer();
23547
23548                                        lib3p.header.GMC_BeginCart();
23549                                        lib3p.header.GMC_PaymentCart();
23550                                        if (window.pars3p.cart.PaymentID > 0) {
23551                                            var queryPayment = jQuery('#page-payment-thanh-toan');
23552                                            if (queryPayment.length > 0 && lib3p_helper.utility.hasValue(queryPayment[0].payment)) {
23553                                                queryPayment[0].payment.value = window.pars3p.cart.PaymentID;
23554                                            }
23555                                            var itemPayment = window.pars3p.listPayment.find(function (c) { return c.Code == window.pars3p.cart.PaymentID; });
23556                                            if (lib3p_helper.utility.hasValue(itemPayment)) {
23557                                                jQuery('.page-payment .thanh-toan-txt').html(itemPayment.PaymentName);
23558                                            }
23559                                            queryPayment = jQuery('#mobile-payment-thanh-toan');
23560                                            if (queryPayment.length > 0 && lib3p_helper.utility.hasValue(queryPayment[0].payment)) {
23561                                                queryPayment[0].payment.value = window.pars3p.cart.PaymentID;
23562                                            }
23563                                        }
23564                                    }
23565                                    else {
23566                                        //alert('Giỏ hàng hết hiệu lực');
23567                                        window.location.href = window.pars3p.urlCart;
23568                                    }
23569                                }
23570                                else {
23571                                    //alert('Giỏ hàng có vấn đề, vui lòng kiểm tra lại');
23572                                    window.location.href = window.pars3p.urlCart;
23573                                }
23574                            }
23575                            else {
23576                                throw res.ErrorString;
23577                            }
23578                        }, function (err) {
23579                            console.log(err);
23580                        });
23581
23582                    }
23583                    else {
23584                        lib3p.common_cartGet().then(function (res) {
23585                            var cart = res;
23586                            if (lib3p_helper.utility.hasValue(cart) && (cart.Code >= -1 || cart.PaymentID >= 0)) {
23587                                window.pars3p.cart = cart;
23588                                window.pars3p.cart.OrderDate = lib3p_helper.utility.dateGet(window.pars3p.cart.OrderDate);
23589                                window.pars3p.cart.StepDate = lib3p_helper.utility.dateGet(window.pars3p.cart.StepDate);
23590                                window.pars3p.cart.EstDelivery = lib3p_helper.utility.dateGet(window.pars3p.cart.EstDelivery);
23591
23592                                if (lib3p_helper.utility.hasListValue(cart.CartDetails)) {
23593                                    window.pars3p.cart.CartDetails.forEac
23593h(function (c, cidx) {
23594                                        if (!lib3p_helper.utility.hasListValue(c.ListCoupon)) {
23595                                            c.ListCoupon = null;
23596                                        }
23597                                        if (!lib3p_helper.utility.hasListValue(c.ListCouponSelected)) {
23598                                            c.ListCouponSelected = null;
23599                                        }
23600                                        if (!lib3p_helper.utility.hasListValue(c.ListGift)) {
23601                                            c.ListGift = null;
23602                                        }
23603                                    });
23604                                }
23605                                else {
23606                                    cart.CartDetails = [];
23607                                }
23608                            }
23609                            else {
23610                                window.pars3p.cart.Code = -1;
23611                                window.pars3p.cart.CartDetails = [];
23612                                window.pars3p.cart.TotalItemQuantity = 0;
23613                                window.pars3p.cart.lastDate = new Date();
23614                            }
23615
23616                            var req = {
23617                                Cart: {},
23618                                CartDetails: window.pars3p.cart.CartDetails,
23619                                CartCoupon: window.pars3p.cart.CartCoupon,
23620                                CartCombo: [],
23621                            };
23622                            req.Cart = lib3p_helper.cart.getCartInfo();
23623
23624                            if (window.pars3p.cart.CartDetails.filter(function (c) { return c.IsChoose == true; }).length == 0) {
23625                                //alert('Đơn hàng hết hiệu lực');
23626                                window.location.href = window.pars3p.urlCart;
23627                            }
23628                            else {
23629                                lib3p.common_PostURL(window.pars3p.api.public.Payment_ProductTotal, { cart: req }, function (res) {
23630                                    if (res.StatusCode == 0) {
23631                                        if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
23632                                            if (lib3p_helper.utility.hasListValue(res.ObjectReturn.CartDetails)) {
23633                                                window.pars3p.cart.lastUser = window.pars3p.auth.userName;
23634                                                window.pars3p.cart.lastDate = new Date();
23635                                                window.pars3p.cart.CartDetails = [];
23636                                                window.pars3p.cart.CartCoupon = [];
23637                                                window.pars3p.cart.ListCoupon = [];
23638                                                window.pars3p.cart.CartNoti = [];
23639                                                window.pars3p.cart.CartCombo = [];
23640                                                window.pars3p.cart.TypeOfTransportation = [];
23641                                                lib3p_helper.cart.copyCart(res.ObjectReturn);
23642                                                window.pars3p.cart.OTP_Temp = res.ObjectReturn.Cart.OTP_Temp;
23643                                                if (lib3p_helper.utility.hasValue(window.pars3p.cart.ChooseTime)) {
23644                                                    window.pars3p.cart.ChooseTime = lib3p_helper.utility.dateGet(window.pars3p.cart.ChooseTime);
23645                                                }
23646                                                if (window.pars3p.cart.StepDate && window.pars3p.cart.StepDate.getTime) {
23647                                                    window.pars3p.cart.timeOrderCalculateNext = window.pars3p.cart.StepDate.getTime() + window.pars3p.timeOrderCalculate;
23648                                                }
23649                                                else {
23650                                                    window.pars3p.cart.timeOrderCalculateNext = (new Date()).getTime() + window.pars3p.timeOrderCalculate;
23651                                                }
23652                                                lib3p.pageCart.Cache_Check();
23653                                                lib3p.common_cartSet(window.pars3p.cart);
23654                                                lib3p.pageCartPayment.Cart_LoadHeader();
23655                                                lib3p.pageCartPayment.Cart_LoadNoti();
23656                                                lib3p.pageCartPayment.Cart_LoadBody();
23657                                                lib3p.pageCartPayment.Cart_LoadTotal();
23658                                                lib3p.pageCartPayment.Cart_LoadGift();
23659                                                lib3p.pageCartPayment.Cart_ListCoupon();
23660                                                lib3p.pageCartPayment.Cart_LoadVAT();
23661                                                //lib3p.pageCartPayment.init_timmer();
23662
23663                                                lib3p.header.GMC_BeginCart();
23664                                                lib3p.header.GMC_PaymentCart();
23665                                                if (window.pars3p.cart.PaymentID > 0) {
23666                                                    var queryPayment = jQuery('#page-payment-thanh-toan');
23667                                                    if (queryPayment.length > 0 && lib3p_helper.utility.hasValue(queryPayment[0].payment)) {
23668                                                        queryPayment[0].payment.value = window.pars3p.cart.PaymentID;
23669                                                    }
23670                                                    var itemPayment = window.pars3p.listPayment.find(function (c) { return c.Code == window.pars3p.cart.PaymentID; });
23671                                                    if (lib3p_helper.utility.hasValue(itemPayment)) {
23672                                                        jQuery('.page-payment .thanh-toan-txt').html(itemPayment.PaymentName);
23673                                                    }
23674                                                    queryPayment = jQuery('#mobile-payment-thanh-toan');
23675                                                    if (queryPayment.length > 0 && lib3p_helper.utility.hasValue(queryPayment[0].payment)) {
23676                                                        queryPayment[0].payment.value = window.pars3p.cart.PaymentID;
23677                                                    }
23678                                                }
23679                                            }
23680                                            else {
23681                                                //alert('Đơn hàng hết hiệu lực');
23682                                                window.location.href = window.pars3p.urlCart;
23683                                            }
23684                                        }
23685                                        else {
23686                                            //alert('Đơn hàng hết hiệu lực');
23687                                            window.location.href = window.pars3p.urlCart;
23688                                        }
23689                                    }
23690                                    else {
23691                                        throw res.ErrorString;
23692                                    }
23693                                }, function (err) {
23694                                    throw err;
23695                                });
23696                            }
23697                        }, function (errCache) {
23698                            console.log(errCache);
23699                        });
23700                    }
23701                }, window.pars3p.timeAsync);
23702            });
23703        },
23704        init_async_Location: function() {            
23705            return new Promise(function (resolve, reject) {
23706                setTimeout(function () {
23707                    lib3p.header.loadLocation();
23708                    if (window.pars3p.auth.isLogin == true) {
23709                        setTimeout(function () {
23710                            lib3p.header.PopupDelivery_Init();
23711                        }, 1000);
23712                    }
23713                    resolve(true);
23714                }, 3000);
23715            });
23716        },
23717        init_timmer: function () {
23718            window.pars3p.timmer.push(function () {
23719                if (window.pars3p.cartWaitTimeRun >= 0) {
23720                    if (window.pars3p.cartWaitTimeRun == 0) {
23721                        jQuery('.popup-payment-timeout .hachi-modal .modal-body .w
23721arning').html('Đơn hàng của bạn đã hết thời gian giữ, sẽ trả về giỏ hàng sau 3s');
23722                        if (window.pars3p.auth.isLogin == true) {
23723                            lib3p.common_AuthPostURL(window.pars3p.api.auth.Payment_Timeout, { Code: window.pars3p.cart.Code }, function (res) {
23724                                if (res == true) {
23725
23726                                }
23727                            }, function (err) {
23728                                throw err;
23729                            });
23730
23731                            var query = jQuery('.popup-payment-timeout .hachi-modal');
23732                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
23733                                if (jQuery(query[0]).hasClass("d-none")) {
23734                                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
23735                                }
23736                            }
23737                            setTimeout(function () {
23738                                window.location.href = window.pars3p.urlCart;
23739                            }, 3000);
23740                        }
23741                        else {
23742                            var query = jQuery('.popup-payment-timeout .hachi-modal');
23743                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
23744                                if (jQuery(query[0]).hasClass("d-none")) {
23745                                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
23746                                }
23747                            }
23748                            setTimeout(function () {
23749                                window.location.href = window.pars3p.urlCart;
23750                            }, 3000);
23751                        }
23752                    }
23753                    window.pars3p.cartWaitTimeRun--;
23754                }
23755            });
23756        },
23757        LoadDataEdit: function () {
23758            var flag = false;
23759
23760            if (window.pars3p.auth.isLogin == true) {
23761                flag = true;
23762                window.pars3p.cart.ReceivedBy = window.pars3p.cart.OrderBy;
23763                window.pars3p.cart.Cellphone = window.pars3p.cart.OrderPhone;
23764            }
23765            else {
23766                if (!lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP)) {
23767                    flag = true;
23768                }
23769            }
23770
23771            if (flag == true) {
23772                if (lib3p_helper.utility.hasValue(window.pars3p.location) && lib3p_helper.utility.hasListValue(window.pars3p.location.ListProvince)) {
23773                    if(window.pars3p.cart.Province > 0) {
23774                        var itemProvince = window.pars3p.location.ListProvince.find(function (c) { return c.Code == window.pars3p.cart.Province; });
23775                        jQuery('select.cboProvince').find('option[value="' + itemProvince.Code + '"]').attr('selected', 'selected');
23776                        var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == itemProvince.Code; });
23777                        jQuery('select.cboDistrict').html('<option value>Select one...</option>');
23778                        lstTemp.forEach(function (c, cidx) {
23779                            if (c.Code == window.pars3p.cart.District) {
23780                                jQuery('select.cboDistrict').append('<option value="' + c.Code + '" selected>' + c.DistrictName + '</option>');
23781                            }
23782                            else {
23783                                jQuery('select.cboDistrict').append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
23784                            }
23785                        });
23786                        if(window.pars3p.cart.District > 0) {
23787                            var itemDistrict = lstTemp.find(function (c) { return c.Code == window.pars3p.cart.District; });
23788                            lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == itemDistrict.Code; });
23789                            jQuery('select.cboWard').html('<option value>Select one...</option>');
23790                            lstTemp.forEach(function (c, cidx) {
23791                                if (c.Code == window.pars3p.cart.Ward) {
23792                                    jQuery('select.cboWard').append('<option value="' + c.Code + '" selected>' + c.WardName + '</option>');
23793                                }
23794                                else {
23795                                    jQuery('select.cboWard').append('<option value="' + c.Code + '">' + c.WardName + '</option>');
23796                                }
23797                            });
23798                        }
23799                    }
23800                    
23801                    jQuery("#cboProvince_itemedit").combobox({ change: function (opt) { lib3p.pageCartPayment.onProvince_Change(opt, '#cboDistrict_itemedit', '#cboWard_itemedit') } });
23802                    jQuery("#cboDistrict_itemedit").combobox({ change: function (opt) { lib3p.pageCartPayment.onDistrict_Change(opt, '#cboWard_itemedit') } });
23803                    jQuery("#cboWard_itemedit").combobox({ change: function (opt) { lib3p.pageCartPayment.onWard_Change(opt) } });
23804                    jQuery("#cboProvince_itemedit_m").combobox({ change: function (opt) { lib3p.pageCartPayment.onProvince_Change(opt, '#cboDistrict_itemedit_m', '#cboWard_itemedit_m') } });
23805                    jQuery("#cboDistrict_itemedit_m").combobox({ change: function (opt) { lib3p.pageCartPayment.onDistrict_Change(opt, '#cboWard_itemedit_m') } });
23806                    jQuery("#cboWard_itemedit_m").combobox({ change: function (opt) { lib3p.pageCartPayment.onWard_Change(opt) } });
23807                }
23808
23809                jQuery('.page-payment .dia-chi-edit .nguoi-nhan').hide();
23810                jQuery('.page-payment .dia-chi-edit .input.cboDistrict').hide();
23811                jQuery('.page-payment .dia-chi-edit .input.cboWard').hide();
23812                jQuery('.page-payment .dia-chi-edit .input.Address').hide();
23813                jQuery('.page-payment .dia-chi-edit').show();
23814                jQuery('.page-payment .dia-chi').hide();
23815                jQuery('.mobile-payment .dia-chi-edit .nguoi-nhan').hide();
23816                jQuery('.mobile-payment .dia-chi-edit .input.cboDistrict').hide();
23817                jQuery('.mobile-payment .dia-chi-edit .input.cboWard').hide();
23818                jQuery('.mobile-payment .dia-chi-edit .input.Address').hide();
23819                jQuery('.mobile-payment .dia-chi-edit').show();
23820                jQuery('.mobile-payment .dia-chi').hide();
23821
23822                var query = jQuery('.page-payment .dia-chi-edit form');
23823                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
23824                    query.attr('has', '1');
23825                    query[0].OrderPhone.value = window.pars3p.cart.OrderPhone;
23826                    query[0].OrderBy.value = window.pars3p.cart.OrderBy;
23827                    query[0].Province.value = window.pars3p.cart.Province;
23828                    query[0].District.value = window.pars3p.cart.District;
23829                    query[0].Ward.value = window.pars3p.cart.Ward;
23830                    query[0].Address.value = window.pars3p.cart.Address;
23831                    if (window.pars3p.cart.Cellphone != window.pars3p.cart.OrderPhone || window.pars3p.cart.OrderBy != window.pars3p.cart.ReceivedBy) {
23832                        jQuery(query[0].IsDeliveryOther).prop('checked', true);
23833                    }
23834                    else {
23835                        jQuery(query[0].IsDeliveryOther).prop('checked', false);
23836                    }
23837                    //query[0].IsDeliveryOther.value = window.pars3p.cart.Cellphone != window.pars3p.cart.OrderPhone || window.pars3p.cart.OrderBy != window.pars3p.cart.ReceivedBy;
23838                    query[0].ReceivedBy.value = window.pars3p.cart.ReceivedBy;
23839                    query[0].Cellphone.value = window.pars3p.cart.Cellphone;
23840                    if (window.pars3p.cart.Province > 0) {
23841                        jQuery('.page-payment .dia-chi-edit .input.cboDistrict').show();
23842                    }
23843                    if (window.pars3p.cart.District > 0) {
23844                        jQuery('.page-payment .dia-chi-edit .input.cboWard').show();
23845                    }
23846                    if (window.pars3p.cart.Ward > 0) {
23847                        jQuery('.page-payment .dia-chi-edit .input.Address').show();
23848                    }
23849                    if (window.pars3p.auth.isLogin == true) {
23850                        jQuery(query[0].OrderPhone).prop('disabled', true);
23851                        jQuery(query[0].OrderBy).prop('disabled', true);
23852                    }
23853                }
23854                query = jQuery('.mobile-payment .dia-chi-edit form');
23855                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
23856                    query.attr('has', '1');
23857                    query[0].OrderPhone.value = window.pars3p.cart.OrderPhone;
23858                    query[0].OrderBy.value = window.pars3p.cart.OrderBy;
23859                    query[0].Province.value = window.pars3p.cart.Province;
23860                    query[0].District.value = window.pars3p.cart.District;
23861                    query[0].Ward.value = window.pars3p.cart.Ward;
23862                    query[0].Address.value = window.pars3p.cart.Address;
23863                    if (window.pars3p.cart.Cellphone != window.pars3p.cart.OrderPhone || window.pars3p.cart.OrderBy != window.pars3p.cart.ReceivedBy) {
23864                        jQuery(query[0].IsDeliveryOther).prop('checked', true);
23865                    }
23866                    else {
23867                        jQuery(query[0].IsDeliveryOther).prop('checked', false);
23868                    }
23869                    //query[0].IsDeliveryOther.value = window.pars3p.cart.Cellphone != window.pars3p.cart.OrderPhone || window.pars3p.cart.OrderBy != window.pars3p.cart.ReceivedBy;
23870                    query[0].ReceivedBy.value = window.pars3p.cart.ReceivedBy;
23871                    query[0].Cellphone.value = window.pars3p.cart.Cellphone;
23872                    if (window.pars3p.cart.Province > 0) {
23873                        jQuery('.mobile-payment .dia-chi-edit .input.cboDistrict').show();
23874                    }
23875                    if (window.pars3p.cart.District > 0) {
23876                        jQuery('.mobile-payment .dia-chi-edit .input.cboWard').show();
23877                    }
23878                    if (window.pars3p.cart.Ward > 0) {
23879                        jQuery('.mobile-payment .dia-chi-edit .input.Address').show();
23880                    }
23881                    if (window.pars3p.auth.isLogin == true) {
23882                        jQuery(query[0].OrderPhone).prop('disabled', true);
23883                        jQuery(query[0].OrderBy).prop('disabled', true);
23884                    }
23885                }
23886            }
23887        },
23888        onProvince_Change: function (opt, iddistrict, idward) {
23889            window.pars3p.cart.IsHachi24 = false;
23890            window.pars3p.cart.IsOnlyHachi24h = false;
23891            if (lib3p_helper.utility.hasValueString(opt.value)) {
23892                jQuery(opt.form.Province).closest('.ui-widget').removeClass('error');
23893                jQuery('.page-payment .dia-chi-edit .input.cboDistrict').show();
23894                jQuery('.mobile-payment .dia-chi-edit .input.cboDistrict').show();
23895                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListDistrict)) {
23896                    var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == opt.value; });
23897                    jQuery(iddistrict).html('<option value>Select one...</option>');
23898                    lstTemp.forEach(function (c, cidx) {
23899                        jQuery(iddistrict).append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
23900                    });
23901                    jQuery(iddistrict).next().find('.custom-combobox-input').val('');
23902                    jQuery(idward).html('<option value>Select one...</option>');
23903                    jQuery(idward).next().find('.custom-combobox-input').val('');
23904                }
23905
23906                jQuery(opt.form.Province).closest('.ui-widget').removeClass('error');
23907                jQuery(opt.form.Province).closest('.dong').children('.error').html('');
23908            }
23909            else {
23910                jQuery('.page-payment .dia-chi-edit .input.cboDistrict').hide();
23911                jQuery('.page-payment .dia-chi-edit .input.cboWard').hide();
23912                jQuery('.page-payment .dia-chi-edit .input.Address').hide();
23913                jQuery('.mobile-payment .dia-chi-edit .input.cboDistrict').hide();
23914                jQuery('.mobile-payment .dia-chi-edit .input.cboWard').hide();
23915                jQuery('.mobile-payment .dia-chi-edit .input.Address').hide();
23916            }
23917
23918            jQuery(opt.form.District).children(":selected").each(function () {
23919                this.selected = false;
23920            });
23921            jQuery(opt.form.Ward).children(":selected").each(function () {
23922                this.selected = false;
23923            });
23924            if (lib3p_helper.utility.hasValue(opt) && lib3p_helper.utility.hasValue(opt.form)) {
23925                lib3p.common_LoadingShow();
23926                lib3p.pageCartPayment.GetDelivery(opt.form);
23927                lib3p.pageCartPayment.Payment_ProductTotal();
23928            }
23929        },
23930        onDistrict_Change: function (opt, idward) {
23931            if (lib3p_helper.utility.hasValueString(opt.value)) {
23932                jQuery(opt.form.District).closest('.ui-widget').removeClass('error');
23933                jQuery('.page-payment .dia-chi-edit .input.cboWard').show();
23934                jQuery('.mobile-payment .dia-chi-edit .input.cboWard').show();
23935                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListWard)) {
23936                    var lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == opt.value; });
23937                    jQuery(idward).html('<option value>Select one...</option>');
23938                    lstTemp.forEach(function (c, cidx) {
23939                        jQuery(idward).append('<option value="' + c.Code + '">' + c.WardName + '</option>');
23940                    });
23941                    jQuery(idward).next().find('.custom-combobox-input').val('');
23942                }
23943
23944                jQuery(opt.form.District).closest('.ui-widget').removeClass('error');
23945                jQuery(opt.form.District).closest('.dong').children('.error').html('');
23946            }
23947            else {
23948                jQuery('.page-payment .dia-chi-edit .input.cboWard').hide();
23949                jQuery('.page-payment .dia-chi-edit .input.Address').hide();
23950                jQuery('.mobile-payment .dia-chi-edit .input.cboWard').hide();
23951                jQuery('.mobile-payment .dia-chi-edit .input.Address').hide();
23952            }
23953
23954            jQuery(opt.form.Ward).children(":selected").each(function () {
23955                this.selected = false;
23956            });
23957            if (lib3p_helper.utility.hasValue(opt) && lib3p_helper.utility.hasValue(opt.form)) {
23958                lib3p.common_LoadingShow();
23959                lib3p.pageCartPayment.GetDelivery(opt.form);
23960                lib3p.pageCartPayment.Payment_ProductTotal();
23961            }
23962        },
23963        onWard_Change: function (opt) {
23964            if (lib3p_helper.utility.hasValueString(opt.value)) {
23965                jQuery(opt.form.Ward).closest('.ui-widget').removeClass('error');
23966                jQuery('.page-payment .dia-chi-edit .input.Address').show();
23967                jQuery('.mobile-payment .dia-chi-edit .input.Address').show();
23968
23969                jQuery(opt.form.Ward).closest('.ui-widget').removeClass('error');
23970                jQuery(opt.form.Ward).closest('.dong').children('.error').html('');
23971            }
23972            else {
23973                jQuery('.page-payment .dia-chi-edit .input.Address').hide();
23974                jQuery('.mobile-payment .dia-chi-edit .input.Address').hide();
23975            }
23976
23977            if (lib3p_helper.utility.hasValue(opt) && lib3p_helper.utility.hasValue(opt.form)) {
23978                lib3p.common_LoadingShow();
23979                lib3p.pageCartPayment.GetDelivery(opt.form);
23980                lib3p.pageCartPayment.Payment_ProductTotal();
23981            }
23982        },
23983        onIsCopy_Click: function (el) {
23984            var query = jQuery(el).closest('form');
23985            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
23986                var flag = el.checked == true;
23987                setTimeout(function () {
23988                    if (flag == true) {
23989                        query[0].ReceivedBy.value = '';
23990                        query[0].Cellphone.value = '';
23991                        jQuery('.page-payment .dia-chi-edit .nguoi-nhan').show();
23992                        jQuery('.mobile-payment .dia-chi-edit .nguoi-nhan').show();
23993                    }
23994                    else {
23995                        jQuery('.page-payment .dia-chi-edit .nguoi-nhan').hide();
23996                        jQuery('.mobile-payment .dia-chi-edit .nguoi-nhan').hide();
23997                    }
23998                }, 100);
23999            }
24000        },
24001        onDelivery_KeyDown: function (event, el) {
24002            var query = jQuery(el).closest('form');
24003            var isphone = jQuery(el).attr('name') == 'OrderPhone';
24004            setTimeout(function () {
24005                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
24006                    lib3p.pageCartPayment.DeliveryEdit_Check(query, isphone);
24007                }
24008            }, 100);
24009        },
24010        DeliveryEdit_Check: function (query, isphone, hasfocus) {
24011            var flag = true;
24012            var flagPhone = true;
24013            var PhoneNumber = '';
24014            var ctr = query[0].OrderPhone;
24015            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
24016                if (hasfocus == true && flag == true) {
24017                    jQuery(ctr).focus();
24018                }
24019                window.pars3p.PhoneNumber_last = '';
24020                flag = false;
24021                flagPhone = false;
24022                if (!jQuery(ctr).hasClass('error')) {
24023                    jQuery(ctr).addClass('error');
24024                }
24025                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
24026            }
24027            else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
24028                if (hasfocus == true && flag == true) {
24029                    jQuery(ctr).focus();
24030                }
24031                window.pars3p.PhoneNumber_last = '';
24032                flag = false;
24033                flagPhone = false;
24034                if (!jQuery(ctr).hasClass('error')) {
24035                    jQuery(ctr).addClass('error');
24036                }
24037                jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
24037<span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
24038            }
24039            else {
24040                PhoneNumber = ctr.value;
24041                jQuery(ctr).removeClass('error');
24042                jQuery(ctr).parent().next().html('');
24043            }
24044            if (isphone != true) {
24045                ctr = query[0].OrderBy;
24046                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
24047                    if (hasfocus == true && flag == true) {
24048                        jQuery(ctr).focus();
24049                    }
24050                    flag = false;
24051                    if (!jQuery(ctr).hasClass('error')) {
24052                        jQuery(ctr).addClass('error');
24053                    }
24054                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
24055                }
24056                else {
24057                    jQuery(ctr).removeClass('error');
24058                    jQuery(ctr).parent().next().html('');
24059                }
24060
24061                ctr = query[0].Province;
24062                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
24063                    if (hasfocus == true && flag == true) {
24064                        jQuery(ctr).closest('.ui-widget').find('.custom-combobox > input.custom-combobox-input').focus();
24065                    }
24066                    flag = false;
24067                    if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
24068                        jQuery(ctr).closest('.ui-widget').addClass('error');
24069                    }
24070                    jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
24071                }
24072                else {
24073                    jQuery(ctr).closest('.ui-widget').removeClass('error');
24074                    jQuery(ctr).closest('.dong').children('.error').html('');
24075
24076                    ctr = query[0].District;
24077                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
24078                        if (hasfocus == true && flag == true) {
24079                            jQuery(ctr).closest('.ui-widget').find('.custom-combobox > input.custom-combobox-input').focus();
24080                        }
24081                        flag = false;
24082                        if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
24083                            jQuery(ctr).closest('.ui-widget').addClass('error');
24084                        }
24085                        jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
24086                    }
24087                    else {
24088                        jQuery(ctr).closest('.ui-widget').removeClass('error');
24089                        jQuery(ctr).closest('.dong').children('.error').html('');
24090
24091                        ctr = query[0].Ward;
24092                        if (!lib3p_helper.utility.hasValueString(ctr.value)) {
24093                            if (hasfocus == true && flag == true) {
24094                                jQuery(ctr).closest('.ui-widget').find('.custom-combobox > input.custom-combobox-input').focus();
24095                            }
24096                            flag = false;
24097                            if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
24098                                jQuery(ctr).closest('.ui-widget').addClass('error');
24099                            }
24100                            jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
24101                        }
24102                        else {
24103                            jQuery(ctr).closest('.ui-widget').removeClass('error');
24104                            jQuery(ctr).closest('.dong').children('.error').html('');
24105
24106                            ctr = query[0].Address;
24107                            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
24108                                if (hasfocus == true && flag == true) {
24109                                    jQuery(ctr).focus();
24110                                }
24111                                flag = false;
24112                                if (!jQuery(ctr).hasClass('error')) {
24113                                    jQuery(ctr).addClass('error');
24114                                }
24115                                jQuery(ctr).closest('.dong').children('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
24116                            }
24117                            else {
24118                                jQuery(ctr).removeClass('error');
24119                                jQuery(ctr).parent().next().html('');
24120                            }
24121                        }
24122                    }
24123                }
24124                ctr = query[0].IsDeliveryOther;
24125                if (jQuery(ctr).prop('checked') == true) {
24126                    ctr = query[0].ReceivedBy;
24127                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
24128                        flag = false;
24129                        if (!jQuery(ctr).hasClass('error')) {
24130                            jQuery(ctr).addClass('error');
24131                        }
24132                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
24133                    }
24134                    else {
24135                        jQuery(ctr).removeClass('error');
24136                        jQuery(ctr).parent().next().html('');
24137                    }
24138                    ctr = query[0].Cellphone;
24139                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
24140                        flag = false;
24141                        if (!jQuery(ctr).hasClass('error')) {
24142                            jQuery(ctr).addClass('error');
24143                        }
24144                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
24145                    }
24146                    else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
24147                        flag = false;
24148                        if (!jQuery(ctr).hasClass('error')) {
24149                            jQuery(ctr).addClass('error');
24150                        }
24151                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
24151<span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
24152                    }
24153                    else {
24154                        jQuery(ctr).removeClass('error');
24155                        jQuery(ctr).parent().next().html('');
24156                    }
24157                }
24158            }
24159            if (flagPhone == true && isphone == true && window.pars3p.PhoneNumber_last != PhoneNumber) {
24160                lib3p.pageCartPayment.DeliveryEdit_CheckPhone(PhoneNumber, query);
24161            }
24162            return flag;
24163
24164        },
24165        DeliveryEdit_CheckPhone: function (PhoneNumber, frm) {
24166            lib3p.common_LoadingShow();
24167            return new Promise(function (resolve, reject) {
24168                setTimeout(function () {
24169                    window.pars3p.PhoneNumber_last = PhoneNumber;
24170
24171                    lib3p.common_GetURL(window.pars3p.api.public.Header_GetByPhone + '?phone=' + PhoneNumber, function (res) {
24172                        lib3p.common_LoadingHide();
24173
24174                        if (res.HasAccount == true) {
24175                            lib3p.common_LoadingHide();
24176                            window.pars3p.PhoneNumber_last = null;
24177                            frm[0].OrderPhone.value = '';
24178
24179                            lib3p.header.ShowHasAccount(PhoneNumber, function () {
24180                                lib3p.pageCartPayment.QuenMatKhau_MergeCart();
24181                            }, function () {
24182
24183                            });
24184                        }
24185                        else {
24186                            window.pars3p.PhoneNumber_last = null;
24187                            if (res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn)) {
24188                                if (res.ObjectReturn.Cellphone != PhoneNumber) {
24189                                    alert('Số điện thoại bạn vừa nhập được đăng ký cho mã KHTT ' + res.ObjectReturn.CardNo + ' tại Cửa hàng, nhưng tại web, mã KHTT này đang lưu với số điện thoại ' + res.ObjectReturn.Cellphone + '. Vui lòng liên hệ Hachi Hachi để được hỗ trợ.');
24190                                }
24191                                else {
24192                                    res.ObjectReturn.Cellphone = PhoneNumber;
24193                                    lib3p.header.onKTTT_Show(res.ObjectReturn, lib3p.header.TypeKTTT.Account, function () {
24194                                        var req = {
24195                                            HistoryCardID: res.ObjectReturn.ID,
24196                                            CardNo: res.ObjectReturn.CardNo,
24197                                            Email: "",
24198                                            UserName: window.pars3p.khtt.Cellphone,
24199                                            Password: new Date().getTime(),
24200                                            PhoneNumber: window.pars3p.khtt.Cellphone,
24201                                            FirstName: window.pars3p.khtt.FirstName,
24202                                            LastName: window.pars3p.khtt.LastName,
24203                                            FullName: window.pars3p.khtt.FullName,
24204                                            Store: -1,
24205                                            POMaster: "",
24206                                            SendType: window.pars3p.otp.SendType
24207                                        };
24208                                        window.pars3p.dangkykhtt.Code = res.ObjectReturn.ID;
24209                                        window.pars3p.dangkykhtt.HistoryCardID = res.ObjectReturn.ID;
24210                                        window.pars3p.dangkykhtt.Cellphone = window.pars3p.khtt.Cellphone;
24211                                        window.pars3p.dangkykhtt.CardNo = res.ObjectReturn.CardNo;
24212                                        window.pars3p.dangkykhtt.FirstName = res.ObjectReturn.FirstName;
24213                                        window.pars3p.dangkykhtt.LastName = res.ObjectReturn.LastName;
24214                                        window.pars3p.dangkykhtt.FullName = res.ObjectReturn.FullName;
24215                                        lib3p.common_PostURL(window.pars3p.api.public.User_Register2, req, function (res3) {
24216                                            if (lib3p_helper.utility.hasValue(res3)) {
24217                                                if (res3.StatusID == 0 && lib3p_helper.utility.hasValueString(res3.CardNo)) {
24218                                                    window.pars3p.dangkykhtt.IsSend = res3.IsSentRabbit;
24219                                                    lib3p.header.ConnectAuth(window.pars3p.khtt.Cellphone, res3.Password, function () {
24220                                                        if (lib3p_helper.utility.hasValueString(window.pars3p.dangkykhtt) && window.pars3p.dangkykhtt.Code > 0) {
24221                                                            lib3p.common_AuthPostURL(window.pars3p.api.auth.PageKHTT_SendOther, { "item": window.pars3p.dangkykhtt }, function (res4) {
24222                                                                lib3p.pageCartPayment.QuenMatKhau_MergeCart();
24223                                                            }, function (err4) {
24224                                                                lib3p.log(err4);
24225                                                            });
24226                                                        }
24227                                                    }, function (errConnect) {
24228                                                        lib3p.log(errConnect);
24229                                                    });
24230                                                }
24231                                                else {
24232                                                    lib3p.log("Lỗi dữ liệu");
24233                                                }
24234                                            }
24235                                        }, function (err3) {
24236                                            lib3p.log(err3);
24237                                        });
24238                                    }, function () {
24239
24240                                    });
24241                                }
24242                            }
24243                        }
24244
24245                    }, function (err) {
24246                        lib3p.log(err);
24247                        lib3p.common_LoadingHide();
24248                    });
24249
24250                }, window.pars3p.timeAsync);
24251            });
24252        },
24253        DeliveryEdit_CheckPhone_Test: function (PhoneNumber, frm) {
24254            lib3p.common_LoadingShow();
24255            return new Promise(function (resolve, reject) {
24256                setTimeout(function () {
24257                    window.pars3p.PhoneNumber_last = PhoneNumber;
24258                    lib3p.common_PostURL(window.pars3p.api.public.checkuser, { "PhoneNumber": PhoneNumber }, function (res) {
24259                        if (res == true) {
24260                            lib3p.common_LoadingHide();
24261                            window.pars3p.PhoneNumber_last = null;
24262                            frm[0].OrderPhone.value = '';
24263
24264                            lib3p.header.ShowHasAccount(PhoneNumber, function () {
24265                                lib3p.pageCartPayment.QuenMatKhau_MergeCart();
24266                            }, function () {
24267
24268                            });
24269                        }
24270                        else {
24271                            lib3p.common_PostURL(window.pars3p.api.public.GetCardByStaff, { "CellPhone": PhoneNumber }, function (res2) {
24272                                lib3p.common_LoadingHide();
24273                                window.pars3p.PhoneNumber_last = null;
24274
24275                                if (lib3p_helper.utility.hasValue(res2) && res2.StatusCode == 0 && lib3p_helper.utility.hasValue(res2.ObjectReturn)) {
24276                                    if (res2.ObjectReturn.Cellphone != PhoneNumber) {
24277                                        alert('Số điện thoại bạn vừa nhập được đăng ký cho mã KHTT ' + res2.ObjectReturn.CardNo + ' tại Cửa hàng, nhưng tại web, mã KHTT này đang lưu với số điện thoại ' + res2.ObjectReturn.Cellphone + '. Vui lòng liên hệ Hachi Hachi để được hỗ trợ.');
24278                                    }
24279                                    else {
24280                                        res2.ObjectReturn.Cellphone = PhoneNumber;
24281                                        lib3p.header.onKTTT_Show(res2.ObjectReturn, lib3p.header.TypeKTTT.Account, function () {
24282                                            var req = {
24283                                                Email: "",
24284                                                UserName: window.pars3p.khtt.Cellphone,
24285                                                Password: new Date().getTime(),
24286                                                PhoneNumber: window.pars3p.khtt.Cellphone,
24287                                                FirstName: window.pars3p.khtt.FirstName,
24288                                                LastName: window.pars3p.khtt.LastName,
24289                                                FullName: window.pars3p.khtt.FullName,
24290                                                Store: -1,
24291                                                POMaster: "",
24292                                                SendType: window.pars3p.otp.SendType
24293                                            };
24294                                            window.pars3p.dangkykhtt.Code = res2.ObjectReturn.ID;
24295                                            window.pars3p.dangkykhtt.HistoryCardID = res2.ObjectReturn.ID;
24296                                            window.pars3p.dangkykhtt.Cellphone = window.pars3p.khtt.Cellphone;
24297                                            window.pars3p.dangkykhtt.CardNo = res2.ObjectReturn.CardNo;
24298                                            window.pars3p.dangkykhtt.FirstName = res2.ObjectReturn.FirstName;
24299                                            window.pars3p.dangkykhtt.L
24299astName = res2.ObjectReturn.LastName;
24300                                            window.pars3p.dangkykhtt.FullName = res2.ObjectReturn.FullName;
24301                                            lib3p.common_PostURL(window.pars3p.api.public.User_Register2, req, function (res3) {
24302                                                if (lib3p_helper.utility.hasValue(res3)) {
24303                                                    if (res3.StatusID == 0 && lib3p_helper.utility.hasValueString(res3.CardNo)) {
24304                                                        window.pars3p.dangkykhtt.IsSend = res3.IsSentRabbit;
24305                                                        lib3p.header.ConnectAuth(window.pars3p.khtt.Cellphone, res3.Password, function () {
24306                                                            if (lib3p_helper.utility.hasValueString(window.pars3p.dangkykhtt) && window.pars3p.dangkykhtt.Code > 0) {
24307                                                                lib3p.common_AuthPostURL(window.pars3p.api.auth.PageKHTT_SendOther, { "item": window.pars3p.dangkykhtt }, function (res4) {
24308                                                                    lib3p.pageCartPayment.QuenMatKhau_MergeCart();
24309                                                                }, function (err4) {
24310                                                                    lib3p.log(err4);
24311                                                                });
24312                                                            }
24313                                                        }, function (errConnect) {
24314                                                            lib3p.log(errConnect);
24315                                                        });
24316                                                    }
24317                                                    else {
24318                                                        lib3p.log("Lỗi dữ liệu");
24319                                                    }
24320                                                }
24321                                            }, function (err3) {
24322                                                lib3p.log(err3);
24323                                            });
24324                                        }, function () {
24325
24326                                        });
24327                                    }
24328                                }
24329                            }, function (err2) {
24330                                lib3p.log(err2);
24331                            });
24332                        }
24333                    }, function (err) {
24334                        lib3p.log(err);
24335                    });
24336
24337                }, window.pars3p.timeAsync);
24338            });
24339        },
24340        QuenMatKhau_MergeCart: function () {
24341            if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
24342                lib3p.common_AuthPostURL(window.pars3p.api.auth.All_MergeCart, { cart: { CartDetails: window.pars3p.cart.CartDetails, CartCoupon: window.pars3p.cart.CartCoupon } }, function (res) {
24343                    if (res == true) {
24344                        window.pars3p.cart.lastUser = '';
24345                        window.pars3p.cart.lastDate = null;
24346                        window.pars3p.cart.Code = -1;
24347                        window.pars3p.cart.CartDetails = [];
24348                        window.pars3p.cart.CartCoupon = [];
24349                        window.pars3p.cart.ListCoupon = [];
24350                        window.pars3p.cart.CartNoti = [];
24351                        window.pars3p.cart.CartCombo = [];
24352                        window.pars3p.cart.TypeOfTransportation = [];
24353                        window.pars3p.cart.timeOrderCalculateNext = null;
24354                        lib3p.common_cartSet(window.pars3p.cart);
24355
24356                        window.location.reload();
24357                    }
24358                }, function (err) {
24359                    console.log(err);
24360                });
24361            }
24362            else {
24363                window.pars3p.cart.lastUser = '';
24364                window.pars3p.cart.lastDate = null;
24365                window.pars3p.cart.Code = -1;
24366                window.pars3p.cart.CartDetails = [];
24367                window.pars3p.cart.CartCoupon = [];
24368                window.pars3p.cart.ListCoupon = [];
24369                window.pars3p.cart.CartNoti = [];
24370                window.pars3p.cart.CartCombo = [];
24371                window.pars3p.cart.TypeOfTransportation = [];
24372                window.pars3p.cart.timeOrderCalculateNext = null;
24373                lib3p.common_cartSet(window.pars3p.cart);
24374
24375                window.location.reload();
24376            }
24377        },
24378        onCartNotity_Close: function () {
24379            jQuery(".page-payment .cart .notify .list").html("");
24380            jQuery(".page-payment .cart .notify").hide();
24381            jQuery(".mobile-payment .cart .notify .list").html("");
24382            jQuery(".mobile-payment .cart .notify").hide();
24383        },
24384        onVATUnion_Change: function (el) {
24385            window.pars3p.cart.VATUnion = el.checked;
24386            if (window.pars3p.cart.VATUnion == true) {
24387                jQuery('.VATCode_require').hide();
24388            }
24389            else {
24390                jQuery('.VATCode_require').show();
24391            }
24392            lib3p.pageCartPayment.CartVAT_Check('')
24393        },
24394        onVATUnionMobile_Change: function (el) {
24395            window.pars3p.cart.VATUnion = el.checked;
24396            if (window.pars3p.cart.VATUnion == true) {
24397                jQuery('.VATCode_require').hide();
24398            }
24399            else {
24400                jQuery('.VATCode_require').show();
24401            }
24402            lib3p.pageCartPayment.CartVAT_Check('', true)
24403        },
24404        Payment_ProductTotal: function () {
24405            window.pars3p.cartWaitTimeRun = window.pars3p.cartWaitTime;
24406
24407            if (window.pars3p.cart.Code > 0) {
24408                lib3p.common_AuthPostURL(window.pars3p.api.auth.Payment_ProductTotal, { Code: window.pars3p.cart.Code }, function (res) {
24409                    lib3p.common_LoadingHide();
24410                    if (res.StatusCode == 0) {
24411                        if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
24412                            window.pars3p.cart.lastUser = window.pars3p.auth.userName;
24413                            window.pars3p.cart.lastDate = new Date();
24414                            window.pars3p.cart.CartCoupon = [];
24415                            window.pars3p.cart.ListCoupon = [];
24416                            window.pars3p.cart.CartNoti = [];
24417                            window.pars3p.cart.CartCombo = [];
24418                            window.pars3p.cart.TypeOfTransportation = [];
24419                            lib3p_helper.cart.copyCart(res.ObjectReturn);
24420                            if (window.pars3p.cart.StepDate && window.pars3p.cart.StepDate.getTime) {
24421                                window.pars3p.cart.timeOrderCalculateNext = window.pars3p.cart.StepDate.getTime() + window.pars3p.timeOrderCalculate;
24422                            }
24423                            else {
24424                                window.pars3p.cart.timeOrderCalculateNext = (new Date()).getTime() + window.pars3p.timeOrderCalculate;
24425                            }
24426                            lib3p.pageCart.Cache_Check();
24427                            lib3p.common_cartSet(window.pars3p.cart);
24428                            lib3p.pageCartPayment.Cart_LoadHeader();
24429                            lib3p.pageCartPayment.Cart_LoadTotal();
24430                            lib3p.pageCartPayment.Cart_ListCoupon();
24431                        }
24432                    }
24433                    else {
24434                        throw res.ErrorString;
24435                    }
24436                }, function (err) {
24437                    lib3p.common_LoadingHide();
24438                    throw err;
24439                });
24440            }
24441            else if (window.pars3p.auth.isLogin != true) {
24442                var req = {
24443                    Cart: {},
24444                    CartDetails: window.pars3p.cart.CartDetails,
24445                    CartCoupon: window.pars3p.cart.CartCoupon,
24446                    CartCombo: [],
24447                };
24448                req.Cart = lib3p_helper.cart.getCartInfo();
24449
24450                lib3p.common_PostURL(window.pars3p.api.public.Payment_ProductTotal, { cart: req }, function (res) {
24451                    lib3p.common_LoadingHide();
24452                    if (res.StatusCode == 0) {
24453                        if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
24454                            if (lib3p_helper.utility.hasListValue(res.ObjectReturn.CartDetails)) {
24455                                window.pars3p.cart.lastUser = window.pars3p.auth.userName;
24456                                window.pars3p.cart.lastDate = new Date();
24457                                window.pars3p.cart.CartDetails = [];
24458                                window.pars3p.cart.CartCoupon = [];
24459                                window.pars3p.cart.ListCoupon = [];
24460                                window.pars3p.cart.CartNoti = [];
24461                                window.pars3p.cart.CartCombo = [];
24462                                window.pars3p.cart.TypeOfTransportation = [];
24463                                lib3p_helper.cart.copyCart(res.ObjectReturn);
24464                                if (window.pars3p.cart.StepDate && window.pars3p.cart.StepDate.getTime) {
24465                                    window.pars3p.cart.timeOrderCalculateNext = window.pars3p.cart.StepDate.getTime() + window.pars3p.timeOrderCalculate;
24466                                }
24467                                else {
24468                                    window.pars3p.cart.timeOrderCalculateNext = (new Date()).getTime() + window.pars3p.timeOrderCalculate;
24469                                }
24470                                lib3p.pageCart.Cache_Check();
24471                                lib3p.common_cartSet(window.pars3p.cart);
24472                                lib3p.pageCartPayment.Cart_LoadHeader();
24473                                lib3p.pageCartPayment.Cart_LoadNoti();
24474                                lib3p.pageCartPayment.Cart_LoadBody();
24475                                lib3p.pageCartPayment.Cart_LoadTotal();
24476                                lib3p.pageCartPayment.Cart_ListCoupon();
24477                            }
24478                            else {
24479                                alert('Đơn hàng hết hiệu lực');
24480                                window.location.href = window.pars3p.urlCart;
24481                            }
24482                        }
24483                        else {
24484                            alert('Đơn hàng hết hiệu lực');
24485                            window.location.href = window.pars3p.urlCart;
24486                        }
24487                    }
24488                    else {
24489                        throw res.ErrorString;
24490                    }
24491                }, function (err) {
24492                    lib3p.common_LoadingHide();
24493                    throw err;
24494                });
24495            }
24496        },
24497        Cart_LoadVAT: function () {
24498            setTimeout(function () {
24499                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.RemarkClient)) {
24500                    jQuery('#page-payment-ghi-chu').val(window.pars3p.cart.RemarkClient);
24501                    jQuery('#mobile-payment-ghi-chu').val(window.pars3p.cart.RemarkClient);
24502                }
24503                if (!(window.pars3p.cart.VATType > 0)) {
24504                    window.pars3p.cart.VATType = 1;
24505                }
24506                jQuery('#chon' + window.pars3p.cart.VATType)[0].checked = true;
24507                jQuery('#chon' + window.pars3p.cart.VATType + 'm')[0].checked = true;
24508                lib3p.pageCartPayment.CartVAT_HienChon(window.pars3p.cart.VATType);
24509                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.Cellphone) && lib3p_helper.utility.hasValueString(window.pars3p.cart.FullAddress)) {
24510                    if (!lib3p_helper.utility.hasValueString(window.pars3p.cart.VATPhone) && !lib3p_helper.utility.hasValueString(window.pars3p.cart.VATAddress)) {
24511                        window.pars3p.cart.VATPhone = window.pars3p.cart.Cellphone;
24512                        window.pars3p.cart.VATAddress = window.pars3p.cart.FullAddress;
24513                        window.pars3p.cart.VATContactName = window.pars3p.cart.OrderBy;
24514                        window.pars3p.cart.VATEmail = window.pars3p.cart.OrderEmail;
24515                    }
24516                }
24517                if (window.pars3p.cart.IsVAT == true) {
24518                    var query = jQuery('.page-payment .vat');
24519                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
24520                        if (!jQuery(query).hasClass('open')) {
24521                            jQuery(query).addClass('open');
24522                            jQuery('.mobile-payment .vat').addClass('open');
24523                        }
24524                    }
24525
24526                    jQuery('.page-payment .vat .nhap-lieu .input input.VATCode').val(window.pars3p.cart.VATCode);
24527                    jQuery('.page-payment .vat .nhap-lieu .input input.VATDVQHNS').val(window.pars3p.cart.VATDVQHNS);
24528                    jQuery('.page-payment .vat .nhap-lieu .input input.VATIdentityNo').val(window.pars3p.cart.VATIdentityNo);
24529                    jQuery('.page-payment .vat .nhap-lieu .input input.VATPassportNo').val(window.pars3p.cart.VATPassportNo);
24530                    jQuery('.page-payment .vat .nhap-lieu .input input.VATBuyerName').val(window.pars3p.cart.VATBuyerName);
24531                    jQuery('.page-payment .vat .nhap-lieu .input input.VATCompany').val(window.pars3p.cart.VATCompany);
24532                    jQuery('.page-payment .vat .nhap-lieu .input input.VATAddress').val(window.pars3p.cart.VATAddress);
24533                    jQuery('.page-payment .vat .nhap-lieu .input input.VATEmail').val(window.pars3p.cart.VATEmail);
24534                    jQuery('.page-payment .vat .nhap-lieu .input input.VATPhone').val(window.pars3p.cart.VATPhone);
24535                    jQuery('.page-payment .vat .nhap-lieu .input input.VATContactName').val(window.pars3p.cart.VATContactName);
24536
24537                    jQuery('.mobile-payment .vat .nhap-lieu .input input.VATCode').val(window.pars3p.cart.VATCode);
24538                    jQuery('.mobile-payment .vat .nhap-lieu .input input.VATDVQHNS').val(window.pars3p.cart.VATDVQHNS);
24539                    jQuery('.mobile-payment .vat .nhap-lieu .input input.VATIdentityNo').val(window.pars3p.cart.VATIdentityNo);
24540                    jQuery('.mobile-payment .vat .nhap-lieu .input input.VATPassportNo').val(window.pars3p.cart.VATPassportNo);
24541                    jQuery('.mobile-payment .vat .nhap-lieu .input input.VATBuyerName').val(window.pars3p.cart.VATBuyerName);
24542                    jQuery('.mobile-payment .vat .nhap-lieu .input input.VATCompany').val(window.pars3p.cart.VATCompany);
24543                    jQuery('.mobile-payment .vat .nhap-lieu .input input.VATAddress').val(window.pars3p.cart.VATAddress);
24544                    jQuery('.mobile-payment .vat .nhap-lieu .input input.VATEmail').val(window.pars3p.cart.VATEmail);
24545                    jQuery('.mobile-payment .vat .nhap-lieu .input input.VATPhone').val(window.pars3p.cart.VATPhone);
24546                    jQuery('.mobile-payment .vat .nhap-lieu .input input.VATContactName').val(window.pars3p.cart.VATContactName);
24547
24548                    if (window.pars3p.cart.VATUnion == true) {
24549                        jQuery('.page-payment .vat .nhap-lieu .input input.VATUnion')[0].checked = true;
24550                        jQuery('.mobile-payment .vat .nhap-lieu .input input.VATUnion')[0].checked = true;
24551                        jQuery('.VATCode_require').hide();
24552                    }
24553                }
24554
24555                lib3p.logInfo('Cart_LoadVAT');
24556            }, 1);
24557            
24558        },
24559        Cart_LoadHeader: function () {
24560            lib3p.logInfo('Cart_LoadHeader');
24561            /* if (lib3p_helper.utility.hasValue(window.pars3p.cart)) {
24562                var query = jQuery('#js-header-userinfo li.cart .number .n-item');
24563                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
24564                    jQuery(query[0]).html(window.pars3p.cart.TotalItemQuantity);
24565                }
24566            } */
24567        },
24568        Cart_LoadBody: function () {
24569            setTimeout(function () {
24570                if (lib3p_helper.utility.hasValue(window.pars3p.cart)) {
24571                    var query = jQuery('.page-payment .cart .data-content');
24572                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
24573                        var carthtml = "";
24574                        window.pars3p.cart.CartDetails.forEach(function (c, cidx) {
24575                            var img = window.pars3p.hostresouce + '/Uploads/productimage_mobile/' + c.Barcode + '.jpg';
24576
24577                            if (c.IsChoose == true) {
24578                                carthtml += '<div class="data-row product' + c.ProductID + ' ' + (c.IsStock == true ? '' : 'isempty') + '">';
24579                                //product start ---
24580                                carthtml += '<div class="product">';
24581                                carthtml += '<div class="image"><img src="' + img + '" />';
24582                                //carthtml += '<div class="image"><img src="' + c.ImageSetting + '" />';
24583                                if (c.IsHachi24 == true) {
24584                                    carthtml += '<div class="imgbackground"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/hachi3h-text.svg" alt="..." loading="lazy" /></div>';
24585                                }
24586                                carthtml += '</div>';
24587                                //info start ---
24588                                carthtml += '<div class="info">';
24589                                carthtml += '<div class="name s14 cl-gregray900 regular400">' + c.ProductName + '</div>';
24590                                //action start ---       
24591                                carthtml += '<div class="action">';
24592                                carthtml += '<div class="price">';
24593                                carthtml += '<span class="base s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</span>';
24594                                carthtml += '</div>';
24595                                carthtml += '<div class="action-sub">';
24596                                if (c.IsStock != true) {
24597                                    carthtml += '<span class="hethang cl-red500">Hết hàng</span>';
24598                                }
24599                                carthtml += '</div>';
24600                                //action end ---
24601                                carthtml += '</div>';
24602                                if (c.IsHachi24 == true && window.pars3p.cart.Province > 0 && window.pars3p.cart.District > 0) {
24603                                    if (window.pars3p.cart.IsHachi24 != true || window.pars3p.cart.IsAppliedHachi24 != true) {
24604                                        carthtml += '<div class="hachi3h s13 cl-red600 medium500">Do điều kiện bảo quản, sản phẩm này không thể giao đến khu vực của bạn. Bạn hãy xóa sản phẩm khỏi giỏ hàng hoặc chỉnh địa chỉ nhận hàng sang nội thành TPHCM</div>';
24605                                    }
24606                                }
24607                                //info end ---
24608                                carthtml += '</div>';
24609                                carthtml += '<div class="soluong s14 cl-gregray900 regular400">&nbsp;&nbsp;' + c.OrderQuantity + '</div>';
24610                                carthtml += '<div class="thanhtien s14 cl-gregray900 regular400">&nbsp;&nbsp;' + lib3p_helper.utility.formatMoney(c.UnitPrice * c.OrderQuantity) + 'đ</div>';
24611                                //product end ---
24612                                carthtml += '<div class="product-empty b-white">&nbsp;</div>';                            
24613                                carthtml += '</div>';
24614                                carthtml += '<div class="product-gift product' + c.ProductID + '"></div>';
24615                            }
24616                        });
24617                        jQuery(".page-payment .cart .data-content").html(carthtml);
24618
24619                        carthtml = "";
24620                        window.pars3p.cart.CartDetails.forEach(function (c, cidx) {
24621                            if (c.IsChoose == true) {
24622                                carthtml += '<div class="data-row product' + c.ProductID + ' ' + (c.IsStock == true ? '' : 'isempty') + '">';
24623                                //product start ---
24624                                carthtml += '<div class="product">';
24625                                carthtml += '<div class="image"><img src="' + c.ImageSetting + '" />';
24626                                if (c.IsHachi24 == true) {
24627                                    carthtml += '<div class="imgbackground"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/hachi3h-text.svg" alt="..." loading="lazy" /></div>';
24628                                }
24629                                carthtml += '</div>';
24630                                //info start ---
24631                                carthtml += '<div class="info">';
24632                                carthtml += '<div class="name s14 cl-gregray900 regular400">' + c.ProductName + '</div>';
24633                                //action start ---       
24634                                carthtml += '<div class="action">';
24635                                carthtml += '<div class="price">';
24636                                carthtml += '<span class="base s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</span>';
24637                                carthtml += '</div>';
24638                                carthtml += '<div class="soluong s14 cl-gregray900 regular400">x&nbsp;' + c.OrderQuantity + '</div>';
24639                                carthtml += '<div class="action-sub">';
24640                                if (c.IsStock != true) {
24641                                    carthtml += '<span class="hethang cl-red500">Hết hàng</span>';
24642                                }
24643                                carthtml += '</div>';
24644                                //action end ---
24645                                carthtml += '</div>';
24646                                if (c.IsHachi24 == true && window.pars3p.cart.Province > 0 && window.pars3p.cart.District > 0) {
24647                                    if (window.pars3p.cart.IsHachi24 != true || window.pars3p.cart.IsAppliedHachi24 != true) {
24648                                        carthtml += '<div class="hachi3h s13 cl-red600 medium500">Do điều kiện bảo quản, sản phẩm này không thể giao đến khu vực của bạn. Bạn hãy xóa sản phẩm khỏi giỏ hàng hoặc chỉnh địa chỉ nhận hàng sang nội thành TPHCM</div>';
24649                                    }
24650                                }
24651                                //info end ---
24652                                carthtml += '</div>';
24653                                //product end ---
24654                                carthtml += '<div class="product-empty b-white">&nbsp;</div>';                            
24655                                carthtml += '</div>';
24656                                carthtml += '<div class="product-gift product' + c.ProductID + '"></div>';
24657                            }
24658                        });
24659                        jQuery(".mobile-payment .cart .data-content").html(carthtml);
24660                    }
24661
24662
24663                    if (lib3p_helper.utility.hasListValue(window.pars3p.cart.TypeOfTransportation)) {
24664                        var carthtml = '';
24665                        var hasTrans = false;
24666                        var carthtml_m = '';                   
24667                        window.pars3p.cart.TypeOfTransportation.forEach(function (c, cidx) {
24668                            var infoHachi3h = '<a tabindex="0" class="info" onclick="return false;" data-container=".page-payment .van-chuyen .item.item-' + c.Code + '" data-toggle="popover" data-placement="top" data-trigger="focus" data-html="true" data-content="Giao hàng nhanh HACHI3H: giao nhanh nội thành TP. HCM trong vòng 3H đối với các đơn hàng đặt trước 16h. Khu vực áp dụng dịch vụ Hachi3H: Quận 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, TP. Thủ Đức, Tân Bình, Tân Phú, Phú Nhuận, Gò Vấp, Bình Thạnh)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-info.svg" /></a>';
24669                            var infoNormal = '<a tabindex="0" class="info" onclick="return false;" data-container=".page-payment .van-chuyen .item.item-' + c.Code + '" data-toggle="popover" data-placement="top" data-trigger="focus" data-html="true" data-content="Giao hàng tiết kiệm: 1-3 ngày với TPHCM; 5-7 ngày với tỉnh, thành phố khác"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-info.svg" /></a>';
24670                            var infoHachi3h_m = '<a tabindex="0" class="info" onclick="return false;" data-container=".mobile-payment .van-chuyen .item.item-' + c.Code + '" data-toggle="popover" data-placement="top" data-trigger="focus" data-html="true" data-content="Giao hàng nhanh HACHI3H: giao nhanh nội thành TP. HCM trong vòng 3H đối với các đơn hàng đá
24670º·t trước 16h. Khu vá»±c áp dụng dịch vụ Hachi3H: Quận 1, 3, 4, 5, 6, 7, 8, 10, 11, 12, TP. Thủ Đức, Tân Bình, Tân Phú, Phú Nhuận, Gò Vấp, Bình Thạnh)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-info.svg" /></a>';
24671                            var infoNormal_m = '<a tabindex="0" class="info" onclick="return false;" data-container=".mobile-payment .van-chuyen .item.item-' + c.Code + '" data-toggle="popover" data-placement="top" data-trigger="focus" data-html="true" data-content="Giao hàng tiết kiệm: 1-3 ngày với TPHCM; 5-7 ngày với tỉnh, thành phố khác"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-info.svg" /></a>';    
24672
24673                            var name = '';
24674                            var name_m = '';
24675                            if (c.Code == 0) {
24676                                name = '<span class="s14 ' + (c.IsEnabled == true ? 'cl-gregray900' : 'cl-gregray550') + ' bold700">Giao thường tiết kiệm</span>' + infoNormal;
24677                                name_m = '<span class="s14 ' + (c.IsEnabled == true ? 'cl-gregray900' : 'cl-gregray550') + ' bold700">Giao thường tiết kiệm</span>' + infoNormal_m;
24678                            }
24679                            else if (c.Code == 1) {
24680                                if (window.pars3p.cart.CartDetails.filter(function (o) { return o.IsChoose == true && o.IsHachi24 == true }).length > 0) {
24681                                    name = '<div><span class="s14 ' + (c.IsEnabled == true ? 'cl-gregray900' : 'cl-gregray550') + ' bold700">Giao hàng nhanh Hachi3H</span><br/><span class="s14 ' + (c.IsEnabled == true ? 'cl-dakgreen650' : 'cl-gregray550') + ' regular400">
24681Giỏ hàng có sản phẩm bảo quản đặc biệt cần giao nhanh 3H nội thành TPHCM</span></div>';
24682                                    name_m = '<div><span class="s14 ' + (c.IsEnabled == true ? 'cl-gregray900' : 'cl-gregray550') + ' bold700">Giao hàng nhanh Hachi3H</span><br/><span class="s14 ' + (c.IsEnabled == true ? 'cl-dakgreen650' : 'cl-gregray550') + ' regular400">Giỏ hàng có sản phẩm bảo quản đặc biệt cần giao nhanh 3H nội thành TPHCM</span></div>';
24683                                }
24684                                else {
24685                                    name = '<span class="s14 ' + (c.IsEnabled == true ? 'cl-gregray900' : 'cl-gregray550') + ' bold700">Giao hàng nhanh Hachi3H</span>' + infoHachi3h;
24686                                    name_m = '<span class="s14 ' + (c.IsEnabled == true ? 'cl-gregray900' : 'cl-gregray550') + ' bold700">Giao hàng nhanh Hachi3H</span>' + infoHachi3h_m;
24687                                }
24688                            }
24689
24690                            carthtml += '<div class="item item-' + c.Code + ' sl-top-gregray400">';
24691                            if (c.IsEnabled == true) {
24692                                if (c.IsChoose == true) {
24693                                    hasTrans = true;
24694                                    carthtml += '<div class="input"><input type="radio" name="delivery" value="' + c.Code + '" onchange="lib3p.pageCartPayment.onVanChuyen_Change(event,' + c.Code + ')" checked /></div>';
24695                                }
24696                                else {
24697                                    carthtml += '<div class="input"><input type="radio" name="delivery" value="' + c.Code + '" onchange="lib3p.pageCartPayment.onVanChuyen_Change(event,' + c.Code + ')" /></div>';
24698                                }
24699                                carthtml += '<div class="text">' + name + '</div>';
24700                                carthtml += '<div class="fee s14 cl-dakgreen650 bold700">' + (c.Fee > 0 ? lib3p.common_Money(c.Fee) + 'đ' : '') + '</div>';
24701                                carthtml += '<div class="isblock b-white">&nbsp;</div>';
24702                            }
24703                            else {
24704                                carthtml += '<div class="input"><input type="radio" name="delivery" value="' + c.Code + '" onchange="lib3p.pageCartPayment.onVanChuyen_Change(event,' + c.Code + ')" disabled /></div>';
24705                                carthtml += '<div class="text">' + name + '</div>';
24706                                carthtml += '<div class="fee s14 cl-gregray550 bold700"></div>';
24707                                carthtml += '<div class="isblock b-white">&nbsp;</div>';
24708                            }
24709                            carthtml_m += '<div class="item item-' + c.Code + ' sl-top-gregray400">';
24710                            if (c.IsEnabled == true) {
24711                                if (c.IsChoose == true) {
24712                                    hasTrans = true;
24713                                    carthtml_m += '<div class="input"><input type="radio" name="delivery" value="' + c.Code + '" onchange="lib3p.pageCartPayment.onVanChuyen_Change(event,' + c.Code + ')" checked /></div>';
24714                                }
24715                                else {
24716                                    carthtml_m += '<div class="input"><input type="radio" name="delivery" value="' + c.Code + '" onchange="lib3p.pageCartPayment.onVanChuyen_Change(event,' + c.Code + ')" /></div>';
24717                                }
24718                                carthtml_m += '<div class="text">' + name_m + '</div>';
24719                                carthtml_m += '<div class="fee s14 cl-dakgreen650 bold700">' + (c.Fee > 0 ? lib3p.common_Money(c.Fee) + 'đ' : '') + '</div>';
24720                                carthtml_m += '<div class="isblock b-white">&nbsp;</div>';
24721                            }
24722                            else {
24723                                carthtml_m += '<div class="input"><input type="radio" name="delivery" value="' + c.Code + '" onchange="lib3p.pageCartPayment.onVanChuyen_Change(event,' + c.Code + ')" disabled /></div>';
24724                                carthtml_m += '<div class="text">' + name_m + '</div>';
24725                                carthtml_m += '<div class="fee s14 cl-gregray550 bold700"></div>';
24726                                carthtml_m += '<div class="isblock b-white">&nbsp;</div>';
24727                            }
24728
24729                            carthtml += '</div>';
24730                            carthtml_m += '</div>';
24731                        });
24732                        if (hasTrans != true) {
24733                            window.pars3p.cart.IsHachi24 = false;
24734                        }
24735                        jQuery('.page-payment .van-chuyen .list').html(carthtml);
24736                        jQuery('.mobile-payment .van-chuyen .list').html(carthtml_m);
24737                        var query = jQuery('.van-chuyen .list a[data-toggle="popover"]');
24738                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
24739                            query.popover();
24740                        }
24741
24742                        var itemType = window.pars3p.cart.TypeOfTransportation.find(function (c) { return c.Code == 0; });
24743                        if (window.pars3p.cart.IsHachi24 == true) {
24744                            itemType = window.pars3p.cart.TypeOfTransportation.find(function (c) { return c.Code == 1; });
24745                        }
24746                        if (lib3p_helper.utility.hasValue(itemType)) {
24747                            jQuery('.page-payment .van-chuyen-txt').html(itemType.Name);
24748                        }
24749                        else {
24750                            jQuery('.page-payment .van-chuyen-txt').html('');
24751                        }
24752                    }
24753                    else {
24754                        //jQuery('.page-payment .van-chuyen .list .item').addClass('fail');
24755                        //jQuery('.mobile-payment .van-chuyen .list .item').addClass('fail');
24756                        jQuery('.page-payment .van-chuyen .list .item .fee').html('');
24757                        jQuery('.mobile-payment .van-chuyen .list .item .fee').html('');
24758                        jQuery('.page-payment .van-chuyen-txt').html('');
24759                        jQuery('.page-payment .van-chuyen .list .item input[type="radio"]').prop('disabled', true);
24760                        jQuery('.mobile-payment .van-chuyen .list .item input[type="radio"]').prop('disabled', true);
24761                        window.pars3p.cart.IsHachi24 = false;
24762                    }
24763                }
24764
24765                lib3p.logInfo('Cart_LoadBody');
24766            }, 1);
24767            
24768        },
24769        Cart_LoadNoti: function () {
24770            if (lib3p_helper.utility.hasValue(window.pars3p.cart)) {
24771                var query = jQuery('.page-payment .cart .notify');
24772                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
24773                    if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartNoti)) {
24774                        var noti = "";
24775                        /* window.pars3p.cart.CartNoti.forEach(function(c) {
24776                            noti += '<div class="item"><div class="icon"><span class="hachi-icon-information"></span></div><div class="text">' + c.Notification + '</div></div>';
24777                        }); */
24778                        window.pars3p.cart.CartNoti.forEach(function (c, cidx) {
24779                            noti += '<div class="item"><div class="icon"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-exclamation.svg" /></div><div class="text s14 cl-gregray900 regular400">' + c.Notification + '</div></div>';
24780                        });
24781                        jQuery(".page-payment .cart .notify .list").html(noti);
24782                        jQuery(".page-payment .cart .notify").show();
24783                        jQuery(".mobile-payment .cart .notify .list").html(noti);
24784                        jQuery(".mobile-payment .cart .notify").show();
24785                    }
24786                    else {
24787                        jQuery(".page-payment .cart .notify .list").html("");
24788                        jQuery(".page-payment .cart .notify").hide();
24789                        jQuery(".mobile-payment .cart .notify .list").html("");
24790                        jQuery(".mobile-payment .cart .notify").hide();
24791                    }
24792                }
24793            }
24794        },
24795        Cart_LoadTotal: function () {
24796            setTimeout(function () {
24797                var query = jQuery('.page-payment .cart-total');
24798                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
24799                    var TotalSub = 0;
24800                    var TotalWithShip = 0;
24801                    jQuery('.page-payment .TotalAmountShipping-sub').hide();
24802                    jQuery('.mobile-payment .TotalAmountShipping-sub').hide();
24803                    if (window.pars3p.cart.TotalAmount > 0 && window.pars3p.cart.ShippingFee > 0) {
24804                        var temp = window.pars3p.cart.TotalAmount + window.pars3p.cart.ShippingFee;
24805                        if (window.pars3p.cart.ShippingDiscount > 0) {
24806                            temp -= window.pars3p.cart.ShippingDiscount;
24807                        }
24808                        TotalWithShip = temp;
24809                        jQuery('.page-payment .TotalAmountShipping').html(lib3p_helper.utility.formatMoney(temp) + 'đ');
24810                        jQuery('.mobile-payment .TotalAmountShipping').html(lib3p_helper.utility.formatMoney(temp) + 'đ');
24811                        jQuery('.page-payment .TotalAmountShipping-sub').show();
24812                        jQuery('.mobile-payment .TotalAmountShipping-sub').show();
24813                    }
24814                    jQuery('.page-payment .PolicyMembership-sub').hide();
24815                    jQuery('.page-payment .TotalAmountKHTT-sub').hide();
24816                    jQuery('.mobile-payment .PolicyMembership-sub').hide();
24817                    jQuery('.mobile-payment .TotalAmountKHTT-sub').hide();
24818                    if (window.pars3p.cart.TotalAmount > 0 && window.pars3p.cart.PolicyMembership > 0) {
24819                        jQuery('.page-payment .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.PolicyMembership) + 'đ');
24820                        jQuery('.page-payment .PolicyMembership-sub').show();
24821                        jQuery('.page-payment .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(TotalWithShip - window.pars3p.cart.PolicyMembership - window.pars3p.cart.CouponOrder) + 'đ');
24822                        jQuery('.page-payment .TotalAmountKHTT-sub').show();
24823                        jQuery('.mobile-payment .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.PolicyMembership) + 'đ');
24824                        jQuery('.mobile-payment .PolicyMembership-sub').show();
24825                        jQuery('.mobile-payment .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(TotalWithShip - window.pars3p.cart.PolicyMembership - window.pars3p.cart.CouponOrder) + 'đ');
24826                        jQuery('.mobile-payment .TotalAmountKHTT-sub').show();
24827                        TotalSub += window.pars3p.cart.PolicyMembership;
24828                    }
24829                    jQuery('.page-payment .CouponOrder-sub').hide();
24830                    jQuery('.mobile-payment .CouponOrder-sub').hide();
24831                    if (window.pars3p.cart.CouponOrder > 0) {
24832                        jQuery('.page-payment .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponOrder) + 'đ');
24833                        jQuery('.page-payment .cart-bottom-fix .CouponOrder').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponOrder) + 'đ');
24834                        jQuery('.page-payment .CouponOrder-sub').show();
24835                        jQuery('.mobile-payment .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponOrder) + 'đ');
24836                        jQuery('.mobile-payment .CouponOrder-sub').show();
24837                        TotalSub += window.pars3p.cart.CouponOrder;
24838                    }
24839                    jQuery('.page-payment .TotalAmount').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.TotalAmount) + 'đ');
24840                    jQuery('.page-payment .CouponPaid-sub').hide();
24841                    jQuery('.mobile-payment .TotalAmount').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.TotalAmount) + 'đ');
24842                    jQuery('.mobile-payment .CouponPaid-sub').hide();
24843                    if (window.pars3p.cart.CouponPaid > 0) {
24844                        jQuery('.page-payment .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponPaid) + 'đ');
24845                        jQuery('.page-payment .CouponPaid-sub').show();
24846                        jQuery('.mobile-payment .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.CouponPaid) + 'đ');
24847                        jQuery('.mobile-payment .CouponPaid-sub').show();
24848                        TotalSub += window.pars3p.cart.CouponPaid;
24849                    }
24850                    jQuery('.page-payment .ShippingFee').html('chưa xác định');
24851                    jQuery('.mobile-payment .ShippingFee').html('chưa xác định');
24852                    if (window.pars3p.cart.ShippingFee > 0) {
24853                        jQuery('.page-payment .ShippingFee').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.ShippingFee) + 'đ');
24854                        jQuery('.mobile-payment .ShippingFee').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.ShippingFee) + 'đ');
24855                    }
24856                    jQuery('.page-payment .ShippingDiscount-sub').hide();
24857                    jQuery('.mobile-payment .ShippingDiscount-sub').hide();
24858                    if (window.pars3p.cart.ShippingDiscount > 0) {
24859                        jQuery('.page-payment .ShippingDiscount').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.ShippingDiscount) + 'đ');
24860                        jQuery('.page-payment .ShippingDiscount-sub').show();
24861                        jQuery('.mobile-payment .ShippingDiscount').html('-' + lib3p_helper.utility.formatMoney(window.pars3p.cart.ShippingDiscount) + 'đ');
24862                        jQuery('.mobile-payment .ShippingDiscount-sub').show();
24863                        TotalSub += window.pars3p.cart.ShippingDiscount;
24864                    }
24865                    if (TotalSub > 0) {
24866                        jQuery('.page-payment .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
24867                        jQuery('.mobile-payment .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
24868                    }
24869                    else {
24870                        jQuery('.page-payment .TotalSub').html('');
24871                        jQuery('.mobile-payment .TotalSub').html('');
24872                    }
24873
24874                    jQuery('.page-payment .Payment').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.Payment) + 'đ');
24875                    jQuery('.page-payment .TotalItemQuantityChoose').html('(' + window.pars3p.cart.TotalItemQuantityChoose + ' sản phẩm)');
24876                    jQuery('.mobile-payment .Payment').html(lib3p_helper.utility.formatMoney(window.pars3p.cart.Payment) + 'đ');
24877                    jQuery('.mobile-payment .TotalItemQuantityChoose').html('(' + window.pars3p.cart.TotalItemQuantityChoose + ' sản phẩm)');
24878                    
24879                    if(window.pars3p.cart.IsGift == true) {
24880                        jQuery('.page-payment .cart-bottom-fix').addClass('gift');
24881                        jQuery('.mobile-payment .cart-total .list-sub-sticky').addClass('gift');
24882                        jQuery('.page-payment .has-gift').show();
24883                        jQuery('.mobile-payment .has-gift').show();
24884                        jQuery('.page-payment .no-gift').hide();
24885                        jQuery('.mobile-payment .no-gift').hide();
24886                    }                
24887                    else {
24888                        jQuery('.page-payment .cart-bottom-fix').removeClass('gift');
24889                        jQuery('.mobile-payment .cart-total .list-sub-sticky').removeClass('gift');
24890                        jQuery('.page-payment .has-gift').hide();
24891                        jQuery('.mobile-payment .has-gift').hide();
24892                        jQuery('.page-payment .no-gift').show();
24893                        jQuery('.mobile-payment .no-gift').show();
24894                    }
24895
24896                    var html = '';
24897                    if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
24898                        window.pars3p.cart.CartCoupon.forEach(function (c, cidx) {
24899                            html += '<div class="col-lg-6 item type-1"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div>';
24900                        });
24901                        jQuery('.page-payment .coupon .list-public').html(html);
24902                        jQuery('.mobile-payment .coupon .list-public').html(html);
24903                        if (!jQuery('.page-payment .coupon').hasClass('open')) {
24904                            jQuery('.page-payment .coupon').addClass('open');
24905                            jQuery('.mobile-payment .coupon').addClass('open');
24906                        }
24907                    }
24908
24909                    if (lib3p_helper.utility.hasValueString(window.pars3p.cart.FullAddress)) {
24910                        jQuery('.page-payment .dia-chi .ReceivedBy').html(window.pars3p.cart.ReceivedBy);
24911                        jQuery('.page-payment .dia-chi .Cellphone').html(window.pars3p.cart.Cellphone);
24912                        jQuery('.page-payment .dia-chi .FullAddress').html(window.pars3p.cart.FullAddress);
24913                        jQuery('.mobile-payment .dia-chi .ReceivedBy').html(window.pars3p.cart.ReceivedBy);
24914                        jQuery('.mobile-payment .dia-chi .Cellphone').html(window.pars3p.cart.Cellphone);
24915                        jQuery('.mobile-payment .dia-chi .FullAddress').html(window.pars3p.cart.FullAddress);
24916                    }
24917                    else {
24918                        jQuery('.page-payment .dia-chi .sub-1').hide();
24919                        jQuery('.page-payment .dia-chi .sub-2').hide();
24920                        jQuery('.mobile-payment .dia-chi .sub-1').hide();
24921                        jQuery('.mobile-payment .dia-chi .sub-2').hide();
24922                    }
24923
24924                    if (window.pars3p.cart.PaymentID > 0 && (window.pars3p.cart.IsHachi24 == true || window.pars3p.cart.IsHachi24 == false)) {
24925                        jQuery('.page-payment .cart-total').removeClass('haserror');
24926                        jQuery('.mobile-payment .cart-total').removeClass('haserror');
24927                    }
24928                }
24929
24930                lib3p.logInfo('Cart_LoadTotal');
24931            }, 1);            
24932        },
24933        Cart_LoadGift: function () {
24934            setTimeout(function () {
24935                var txtGiftType = '';
24936                var bWidth = lib3p.common_GetWidthBrowser();
24937                window.pars3p.cart.CartDetails.forEach(function (c, cidx) {
24938                    var query = jQuery('.page-payment .cart .data-content .product-gift.product' + c.ProductID);
24939                    var queryMobile = jQuery('.mobile-payment .cart .data-content .product-gift.product' + c.ProductID);
24940                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
24941                        if (lib3p_helper.utility.hasListValue(c.ListGift)) {
24942                            var html = '<button type="button" aria-label="hachihachi" class="down" onclick="lib3p.pageCart.onCart_Gift_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang_ico.svg" /><div class="txt s14 cl-gregray900 medium500">Sản phẩm có quà tặng kèm vui lòng chọn <span class="bold
24942700">sau khi hoàn tất đặt hàng</span></div><img class="ico" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-down.svg" /></button>';
24943                            html += '<fieldset class="sl-green500">';
24944                            html += '<legend class="down"><button type="button" aria-label="hachihachi" onclick="lib3p.pageCart.onCart_Gift_Toggle(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang_ico.svg" /><div class="txt s14 cl-gregray900 medium500">Sản phẩm có quà tặng kèm vui lòng chọn <span class="bold700">sau khi hoàn tất đặt hàng</span></div><img class="ico" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-up.svg" /></button></legend>';
24945                            html += '<div class="list">';
24946                            var first = c.ListGift[0];
24947                            var first2 = null;
24948                            var tieude1 = '';
24949                            var tieude2 = '';
24950                            var tieude3 = '';
24951                            var child1 = '';
24952                            var child2 = '';
24953                            var child3 = '';
24954                            var giftmore = false;
24955                            c.ListGift.forEach(function (d) {
24956                                if(first.PriceKHTT == d.PriceKHTT) {
24957                                    child1 += '<div class="item"><div class="level b-dakgreen200 s13 cl-gregray900 sibold600">Mức 1</div>';
24958                                    child1 += '<div class="img"><img src="' + d.ImageSmall + '" alt=""></div><div class="text s14 cl-gregray900 regular400">' + d.ProductName + '</div>';
24959                                    child1 += '</div>';
24960                                }
24961                                else if(!lib3p_helper.utility.hasValue(first2) || first2.PriceKHTT == d.PriceKHTT) {
24962                                    first2 = d;
24963                                    child2 += '<div class="item"><div class="level b-dakgreen200 s13 cl-gregray900 sibold600">Mức 2</div>';
24964                                    child2 += '<div class="img"><img src="' + d.ImageSmall + '" alt=""></div><div class="text s14 cl-gregray900 regular400">' + d.ProductName + '</div>';
24965                                    child2 += '</div>';
24966                                    giftmore = true;
24967                                }
24968                                else {
24969                                    child3 += '<div class="item"><div class="level b-dakgreen200 s13 cl-gregray900 sibold600">Mức 3</div>';
24970                                    child3 += '<div class="img"><img src="' + d.ImageSmall + '" alt=""></div><div class="text s14 cl-gregray900 regular400">' + d.ProductName + '</div>';
24971                                    child3 += '</div>';
24972                                    giftmore = true;
24973                                }
24974                            });
24975                            if(lib3p_helper.utility.hasValueString(child1)) {
24976                                html += '<div class="danh-sach p1 type3"><div class="data owl-carousel sl-gregray70">';
24977                                html += child1;
24978                                html += '</div></div>';
24979                            }
24980                            if(lib3p_helper.utility.hasValueString(child2)) {
24981                                html += '<div class="danh-sach p2 type3"><div class="data owl-carousel sl-gregray70">';
24982                                html += child2;
24983                                html += '</div></div>';
24984                            }
24985                            if(lib3p_helper.utility.hasValueString(child3)) {
24986                                html += '<div class="danh-sach p3 type3"><div class="data owl-carousel sl-gregray70">';
24987                                html += child3;
24988                                html += '</div></div>';
24989                            }
24990                            html += '</div>';
24991                            html += '</fieldset>';
24992                            if(giftmore != true) {
24993                                query.addClass('one-level');
24994                                queryMobile.addClass('one-level');
24995                            }
24996                            query.html(html);
24997                            queryMobile.html(html);
24998                            if (!query.hasClass('hienthi')) {
24999                                query.addClass('hienthi').addClass('expand');
25000                                queryMobile.addClass('hienthi').addClass('expand');
25001                            }
25002                            txtGiftType = 'Quà kèm sản phẩm';
25003                        }
25004                        else if (query.hasClass('hienthi')) {
25005                            query.removeClass('hienthi');
25006                            queryMobile.removeClass('hienthi');
25007                        }
25008                    }
25009                });
25010                jQuery('.page-payment .cart .data-content .product-gift .danh-sach .owl-carousel').owlCarousel({
25011                    autoplay: false,
25012                    autoplayTimeout: 3000,
25013                    autoplayHoverPause: true,
25014                    autoWidth: false,
25015                    loop: false,
25016                    nav: true,
25017                    dots: false,
25018                    items: 1,
25019                    navText: ['<button type="button" aria-label="hachihachi" class="icon-left"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>', '<button type="button" aria-label="hachihachi" class="icon-right"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>'],
25020                    navElement: 'div'
25021                });
25022                jQuery('.mobile-payment .cart .data-content .product-gift .danh-sach .owl-carousel').owlCarousel({
25023                    autoplay: false,
25024                    autoplayTimeout: 3000,
25025                    autoplayHoverPause: true,
25026                    autoWidth: false,
25027                    loop: false,
25028                    nav: false,
25029                    dots: false,
25030                    items: 1,
25031                });
25032                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListGift)) {
25033                    jQuery(".page-payment .cart .order-gift-outline").show();
25034                    jQuery('.page-payment .cart .hienthi.order-gift .product-list.owl-carousel').owlCarousel('destroy');
25035                    jQuery('.mobile-payment .cart .hienthi.order-gift .product-list.owl-carousel').owlCarousel('destroy');
25036
25037                    var carthtml = '';
25038                    var group = {};
25039                    window.pars3p.cart.ListGift.forEach(function (d) {
25040                        if (!lib3p_helper.utility.hasValue(group[d.CategoryID])) {
25041                            group[d.CategoryID] = {};
25042                        }
25043                        if (!lib3p_helper.utility.hasValue(group[d.CategoryID][d.BrandID])) {
25044                            group[d.CategoryID][d.BrandID] = [];
25045                        }
25046                        group[d.CategoryID][d.BrandID].push(d);
25047                    });
25048                    var lstTemp = [];
25049                    for (var key in group) {
25050                        if (lib3p_helper.utility.hasListValue(group[key])) {
25051                            var first = null;
25052                            for (var key2 in group[key]) {
25053                                first = group[key][key2][0];
25054                                first.VNPromotion = first.BrandName;
25055                                first.DetermineGift = first.OrderBy;
25056                            }
25057                            var item = {
25058                                key: first,
25059                                group: group[key]
25060                            };
25061                            lstTemp.push(item);
25062                        }
25063                    }
25064                     if (bWidth >= 800) {
25065                        carthtml += '<div class="order-gift-top"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang2_ico.svg" /><div class="tieu-de-sub s24 cl-dakgreen650 sibold600">Đừng bỏ lỡ chương trình hấp dẫn hôm nay!</div></div>';
25066                    }
25067                    else {
25068                        carthtml += '<div class="order-gift-top"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang2_ico.svg" /><div class="tieu-de-sub s20 cl-dakgreen650 sibold600">Đừng bỏ lỡ chương trình hấp dẫn hôm nay!</div></div>';
25069                    }                    
25070                    var giftnotity = {};
25071                    lstTemp.forEach(function (g) {
25072                        if (g.key.TypeData == 16) {        
25073                            carthtml += '<div class="order-gift-group">';
25074                            if (bWidth >= 800) {
25075                                carthtml += '<div class="promotionname s18 cl-dakgreen650 bold700 gachduoi">' + g.key.VNPromotion + '</div>';
25076                            }
25077                            else {
25078                                carthtml += '<div class="promotionname s15 cl-dakgreen650 bold700 gachduoi">' + g.key.VNPromotion + '</div>';
25079                            }                            
25080                            var index = 0;
25081                            for (var key in g.group) {
25082                                var first = g.group[key][0];
25083                                if (bWidth >= 800) {
25084                                    carthtml += '<div class="hienthi order-gift ' + (index == 0 ? 'first' : '' ) + ' type2">';
25085                                    carthtml += '<div class="tieu-de s16 cl-gregray900 medium500">
25085' + first.SapXepText + '</div>';
25086                                    carthtml += '<div class="tieu-de-sub s14 cl-gregray750 gregray900"><i>Sau khi hoàn tất đặt mua, chọn 1 trong các quà tặng dưới đây:</i></div>';                                    
25087                                }
25088                                else {
25089                                    carthtml += '<div class="hienthi order-gift ' + (index == 0 ? 'first' : '' ) + ' type2">';
25090                                    carthtml += '<div class="tieu-de s15 cl-gregray900 medium500">' + first.SapXepText + '</div>';
25091                                    carthtml += '<div class="tieu-de-sub s14 cl-gregray750 gregray900"><i>Sau khi hoàn tất đặt mua, chọn 1 trong các quà tặng dưới đây:</i></div>';
25092                                }
25093                                carthtml += '<div class="product-list owl-carousel">';
25094                                g.group[key].forEach(function (d) {
25095                                    carthtml += '<div class="product-item">';
25096                                    carthtml += '<div class="img"><img src="' + d.ImageThumb + '" alt="..."/></div>';
25097                                    carthtml += '<div class="name s13 cl-gregray800 medium500">' + d.ProductName + '</div>';
25098                                    carthtml += '</div>';
25099                                });
25100                                carthtml += '</div></div>';
25101                                index++;
25102                            }
25103                            carthtml += '</div>';          
25104                            txtGiftType = 'Quà theo nhóm sản phẩm';
25105                        }
25106                        if (g.key.TypeData == 17) {
25107                            if(!lib3p_helper.utility.hasValue(giftnotity[g.key.CategoryID])) {
25108                                giftnotity[g.key.CategoryID] = { Type: -1, Message: '', MessageMobile: '' };
25109                            }
25110                            carthtml += '<div class="order-gift-group">';
25111                            if (bWidth >= 800) {
25112                                carthtml += '<div class="promotionname s18 cl-dakgreen650 bold700 gachduoi">' + g.key.VNPromotion + '</div>';
25113                            }
25114                            else {
25115                                carthtml += '<div class="promotionname s15 cl-dakgreen650 bold700 gachduoi">' + g.key.VNPromotion + '</div>';
25116                            }                            
25117                            var index = 0;
25118                            for (var key in g.group) {
25119                                var first = g.group[key][0];
25120                                if (bWidth >= 800) {
25121                                    carthtml += '<div class="hienthi order-gift ' + (index == 0 ? 'first' : '' ) + ' type2">';
25122                                    carthtml += '<div class="tieu-de s16 cl-gregray900 medium500"><span class="gachduoi">Quà tặng dành cho đơn hàng&nbsp;' + lib3p_helper.utility.formatMoney(first.Price) + 'đ</span>&nbsp;(thành tiền đã trừ mã giảm)</div>';
25123                                    carthtml += '<div class="tieu-de-sub s14 cl-gregray750 gregray900"><i>Sau khi hoàn tất đặt mua, chọn 1 trong các quà tặng dưới đây:</i></div>';                                
25124                                }
25125                                else {
25126                                    carthtml += '<div class="hienthi order-gift ' + (index == 0 ? 'first' : '' ) + ' type2">';
25127                                    carthtml += '<div class="tieu-de s15 cl-gregray900 medium500"><span class="gachduoi">Quà tặng dành cho đơn hàng&nbsp;' + lib3p_helper.utility.formatMoney(first.Price) + 'đ</span>&nbsp;(thành tiền đã trừ mã giảm)</div>';
25128                                    carthtml += '<div class="tieu-de-sub s14 cl-gregray750 gregray900"><i>Sau khi hoàn tất đặt mua, chọn 1 trong các quà tặng dưới đây:</i></div>';
25129                                }
25130                                carthtml += '<div class="product-list owl-carousel">';
25131                                g.group[key].forEach(function (d) {
25132                                    carthtml += '<div class="product-item">';
25133                                    carthtml += '<div class="img"><img src="' + d.ImageThumb + '" alt="..."/></div>';
25134                                    carthtml += '<div class="name s13 cl-gregray800 medium500">' + d.ProductName + '</div>';
25135                                    carthtml += '</div>';
25136                                });
25137                                carthtml += '</div></div>';
25138                                if(giftnotity[g.key.CategoryID].Type == -1) {
25139                                    if(first.Price <= g.key.GiftGroupTotal) {
25140                                        giftnotity[g.key.CategoryID].Type = 1;
25141                                        txtGiftType = 'Quà của đơn hàng';
25142                                    }
25143                                    else {
25144                                        giftnotity[g.key.CategoryID].Type = 1;
25145                                        giftnotity[g.key.CategoryID].Message = '<span class="gachduoi">Đơn hàng của bạn gần đạt mức giá trị nhận quà.</span>Hãy mua thêm ' + lib3p_helper.utility.formatMoney(first.Price - g.key.GiftGroupTotal) + 'đ để nhận quà nhé!';
25146                                        giftnotity[g.key.CategoryID].MessageMobile = '<span class="gachduoi">Đơn hàng của bạn gần đạt mức giá trị nhận quà.</span><br/>Hãy mua thêm ' + lib3p_helper.utility.formatMoney(first.Price - g.key.GiftGroupTotal) + 'đ để nhận quà nhé!';
25147                                    }
25148                                }
25149                                index++;
25150                            }
25151                            carthtml += '</div>';
25152                        }
25153                    });
25154                    jQuery(".page-payment .cart .order-gift-outline").html(carthtml);
25155                    jQuery(".mobile-payment .cart .order-gift-outline").html(carthtml);
25156
25157                    jQuery('.page-payment .cart-bottom-fix').removeClass('hasgift');
25158                    jQuery('.mobile-payment .cart-total .list-sub .list-sub-sticky').removeClass('hasgift');
25159                    for (var key in giftnotity) {
25160                        var item = giftnotity[key];
25161                        if (item.Type == 1 && lib3p_helper.utility.hasValueString(item.Message)) {
25162                            jQuery('.page-payment .cart-bottom-fix .left .gift-offer').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang_ico.svg" /><div>' + item.Message + '</div><span></span>');
25163                            jQuery('.page-payment .cart-bottom-fix').addClass('hasgift');
25164                            jQuery('.mobile-payment .cart-total .list-sub .list-sub-sticky .gift-offer').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang_ico.svg" /><div>' + item.MessageMobile + '</div><span></span>');
25165                            jQuery('.mobile-payment .cart-total .list-sub .list-sub-sticky').addClass('hasgift');
25166                        }
25167                    }
25168
25169                    jQuery('.page-payment .cart .hienthi.order-gift .product-list.owl-carousel').owlCarousel({
25170                        autoplay: false,
25171                        autoplayTimeout: 3000,
25172                        autoplayHoverPause: true,
25173                        autoWidth: true,
25174                        loop: false,
25175                        nav: true,
25176                        dots: false,
25177                        margin: 10,
25178                        navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
25179                        navElement: 'div'
25180                    });
25181                    jQuery('.mobile-payment .cart .hienthi.order-gift .product-list.owl-carousel').owlCarousel({
25182                        autoplay: false,
25183                        autoplayTimeout: 3000,
25184                        autoplayHoverPause: true,
25185                        autoWidth: true,
25186                        loop: false,
25187                        nav: true,
25188                        dots: false,
25189                        margin: 10,
25190                        navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
25191                        navElement: 'div'
25192                    });
25193                }
25194                jQuery(".page-payment .cart-bottom-fix .dat-hang .has-gift.text").html(txtGiftType);
25195                jQuery(".mobile-payment .cart-total .list-sub-sticky .dat-hang .has-gift.text").html(txtGiftType);
25196
25197                lib3p.logInfo('Cart_LoadGift');
25198            }, 1);            
25199        },
25200        Cart_ListCoupon: function () {
25201            setTimeout(function () {
25202                jQuery('.page-payment .coupon .list-choose').hide();
25203                jQuery('.mobile-payment .coupon .list-choose').hide();
25204                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
25205                    var html1 = '';
25206                    window.pars3p.cart.CartCoupon.forEach(function (c, cidx) {
25207                        if (c.HasError == true) {
25208                            html1 += '<div class="item b-red500"><div class="text s13 cl-white regular400">' + c.CouponName + '</div><div class="xoa"><button type="button" aria-label="hachihachi" onclick="lib3p.pageCartPayment.onCartCoupon_Delete(' + c.CouponID + ')"><span class="hachi-icon-close"></span></button></div></div>';
25209                        }
25210                        else {
25211                            html1 += '<div class="item b-dakgreen100"><div class="text s13 cl-gregray900 regular400">' + c.CouponName + '</div><div class="xoa"><button type="button" aria-label="hachihachi" onclick="lib3p.pageCartPayment.onCartCoupon_Delete(' + c.CouponID + ')"><span class="hachi-icon-close"></span></button></div></div>';
25212                        }
25213                    });
25214                    jQuery('.page-payment .coupon .list-choose').html(html1);
25215                    jQuery('.page-payment .coupon .list-choose').show();
25216                    jQuery('.mobile-payment .coupon .list-choose').html(html1);
25217                    jQuery('.mobile-payment .coupon .list-choose').show();
25218                    if (lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (o) { return o.HasError == true; }))) {
25219                        //jQuery('.page-payment .coupon .sub-1-error').html('Mã giảm giá đã chọn không phù hợp');
25220                        //jQuery('.mobile-payment .coupon .sub-1-error').html('Mã giảm giá đã chọn không phù hợp');
25221                    }
25222                }
25223                else {
25224                    jQuery('.page-payment .coupon .list-choose').html('');
25225                    jQuery('.mobile-payment .coupon .list-choose').html('');
25226                }
25227
25228                jQuery('.page-payment .coupon .list-choose-type').hide();
25229                jQuery('.mobile-payment .coupon .list-choose-type').hide();
25230                jQuery('.popup-cart-coupon-choose .list-public .giam-san-pham').hide();
25231                jQuery('.popup-cart-coupon-choose .list-public .giam-don-hang').hide();
25232                jQuery('.popup-cart-coupon-choose .list-public .giam-ship').hide();
25233                jQuery('.popup-cart-coupon-choose .list-public .giam-mua-sam').hide();
25234                jQuery('.mobile-payment .coupon .list-public .giam-san-pham').hide();
25235                jQuery('.mobile-payment .coupon .list-public .giam-don-hang').hide();
25236                jQuery('.mobile-payment .coupon .list-public .giam-ship').hide();
25237                jQuery('.mobile-payment .coupon .list-public .giam-mua-sam').hide();
25238                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)) {
25239                    var dtCompare = lib3p_helper.utility.dateAddDay(new Date(), 7).getTime();
25240                    var hasExpiredPrivate = false;
25241                    window.pars3p.cart.ListCoupon.sort(function (a, b) { return a.LimitInv - b.LimitInv; });
25242                    window.pars3p.cart.ListCoupon.forEach(function (c) {
25243                        if (c.IsPrivate == true) {
25244                            if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
25245                                var dt = new Date(c.ExpiredDate).getTime();
25246                                if (dt <= dtCompare) {
25247                                    c.IsExpired = true;
25248                                    hasExpiredPrivate = true;
25249                                }
25250                            }
25251                        }
25252                    });
25253                    if (hasExpiredPrivate == true) {
25254                        jQuery('.page-payment .private-expired').show();
25255                        jQuery('.mobile-payment .private-expired').show();
25256                    }
25257                    else {
25258                        jQuery('.page-payment .private-expired').hide();
25259                        jQuery('.mobile-payment .private-expired').hide();
25260                    }
25261
25262                    var lstChoose = window.pars3p.cart.CartCoupon.filter(function (c) { return c.CouponID > 0; }).map(function (c) { return c.CouponID; });
25263
25264                    var html2 = '';
25265                    var offerShipList = [];
25266                    var offerShipAmount = -1;
25267                    var findCoupon = window.pars3p.cart.CartCoupon.find(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
25267ouponCartShipping; });
25268                    if (lib3p_helper.utility.hasValue(findCoupon)) {
25269                        offerShipAmount = findCoupon.CouponBaseAmount;
25270                    }
25271                    var offerOrderList = [];
25272                    var offerOrderAmount = -1;
25273                    findCoupon = window.pars3p.cart.CartCoupon.find(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCart; });
25274                    if (lib3p_helper.utility.hasValue(findCoupon)) {
25275                        offerOrderAmount = findCoupon.CouponAmount;
25276                    }
25277
25278                    var lst = window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponProduct || c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponProductShipping; });
25279                    if (lib3p_helper.utility.hasListValue(lst)) {
25280                        var html = '';
25281                        lst.forEach(function (c, cidx) {
25282                            html += '<div class="item-outline">';
25283                            if (c.IsEnabled == true) {
25284                                html += '<div class="item type-1"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode + '</div></div>';
25285                                if (lstChoose.indexOf(c.Code) >= 0) {
25286                                    c.IsUse = true;
25287                                    html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCartPayment.onCartCoupon_Check(this,' + c.Code + ')" checked /></div>';
25288                                }
25289                                else {
25290                                    html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCartPayment.onCartCoupon_Check(this,' + c.Code + ')" /></div>';
25291                                }
25292                            }
25293                            else {
25294                                html += '<div class="item type-empty"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode + '</div></div>';
25295                                html += '<div class="check"><input type="checkbox" disabled="disabled" /></div>';
25296                            }
25297                            html += '</div>';
25298
25299                            if (c.IsPrivate != true) {
25300                                if (c.IsEnabled == true) {
25301                                    if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
25302                                        html2 += '<div class="item" onclick="lib3p.pageCartPayment.onCouponChoose_Click(' + c.Code + ')"><div class="type-1"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
25303                                    }
25304                                }
25305                                else {
25306                                    html2 += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
25307                                }
25308                            }
25309                        });
25310                        jQuery('.popup-cart-coupon-choose .list-public .giam-san-pham .data').html(html);
25311                        jQuery('.popup-cart-coupon-choose .list-public .giam-san-pham').show();
25312                        jQuery('.mobile-payment .coupon .list-public .giam-san-pham .data').html(html);
25313                        jQuery('.mobile-payment .coupon .list-public .giam-san-pham').show();
25314                    }
25315                    lst = window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
25315ouponCart; });
25316                    if (lib3p_helper.utility.hasListValue(lst)) {
25317                        var html = '';
25318                        lst.forEach(function (c, cidx) {
25319                            html += '<div class="item-outline">';
25320                            if (c.IsEnabled == true) {
25321                                html += '<div class="item type-2"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode + '</div></div>';
25322                                if (lstChoose.indexOf(c.Code) >= 0) {
25323                                    c.IsUse = true;
25324                                    html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCartPayment.onCartCoupon_Check(this,' + c.Code + ')" checked /></div>';
25325                                }
25326                                else {
25327                                    html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCartPayment.onCartCoupon_Check(this,' + c.Code + ')" /></div>';
25328                                }
25329                            }
25330                            else {
25331                                html += '<div class="item type-empty"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode + '</div></div>';
25332                                html += '<div class="check"><input type="checkbox" disabled="disabled" /></div>';
25333                            }
25334                            html += '</div>';
25335
25336                            if (c.IsPrivate != true) {
25337                                if (c.IsEnabled == true) {
25338                                    if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
25339                                        html2 += '<div class="item" onclick="lib3p.pageCartPayment.onCouponChoose_Click(' + c.Code + ')"><div class="type-2"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
25340                                    }
25341                                }
25342                                else {
25343                                    html2 += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
25344                                }
25345                            }
25346                            c.TempAmountCoupon = 0;
25347                            if (c.IsPercent == true) {
25348                                c.TempAmountCoupon = c.CouponAmount * (window.pars3p.cart.TotalAmount / 100);
25349                                if (c.LimitAmount > 0 && c.LimitAmount <= c.TempAmountCoupon) {
25350                                    c.TempAmountCoupon = c.LimitAmount;
25351                                }
25352                            }
25353                            else {
25354                                c.TempAmountCoupon = c.CouponAmount;
25355                            }
25356                            if (!(lstChoose.indexOf(c.Code) >= 0)) {
25357                                if (c.TempAmountCoupon > offerOrderAmount) {
25358                                    offerOrderList.push(c);
25359                                }
25360                                else if (!(offerOrderAmount > 0) && c.IsEnabled == true) {
25361                                    offerOrderList.push(c);
25362                                }
25363                            }
25364                        });
25365                        jQuery('.popup-cart-coupon-choose .list-public .giam-don-hang .data').html(html);
25366                        jQuery('.popup-cart-coupon-choose .list-public .giam-don-hang').show();
25367                        jQuery('.mobile-payment .coupon .list-public .giam-don-hang .data').html(html);
25368                        jQuery('.mobile-payment .coupon .list-public .giam-don-hang').show();
25369                    }
25370                    lst = window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
25370ouponCartShipping; });
25371                    if (lib3p_helper.utility.hasListValue(lst)) {
25372                        var html = '';
25373                        lst.forEach(function (c, cidx) {
25374                            html += '<div class="item-outline">';
25375                            if (c.IsEnabled == true) {
25376                                html += '<div class="item type-3"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode + '</div></div>';
25377                                if (lstChoose.indexOf(c.Code) >= 0) {
25378                                    c.IsUse = true;
25379                                    html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCartPayment.onCartCoupon_Check(this,' + c.Code + ')" checked /></div>';
25380                                }
25381                                else {
25382                                    html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCartPayment.onCartCoupon_Check(this,' + c.Code + ')" /></div>';
25383                                }
25384                            }
25385                            else {
25386                                html += '<div class="item type-empty"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode + '</div></div>';
25387                                html += '<div class="check"><input type="checkbox" disabled="disabled" /></div>';
25388                            }
25389                            html += '</div>';
25390
25391                            if (c.IsPrivate != true) {
25392                                if (c.IsEnabled == true) {
25393                                    if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
25394                                        html2 += '<div class="item" onclick="lib3p.pageCartPayment.onCouponChoose_Click(' + c.Code + ')"><div class="type-3"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
25395                                    }
25396                                }
25397                                else {
25398                                    html2 += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
25399                                }
25400                            }
25401                            c.TempAmountCoupon = 0;
25402                            if (window.pars3p.cart.ShippingFee > 0) {
25403                                if (c.IsPercent == true) {
25404                                    c.TempAmountCoupon = c.CouponAmount * (window.pars3p.cart.ShippingFee / 100);
25405                                    if (c.LimitAmount > 0 && c.LimitAmount <= c.TempAmountCoupon) {
25406                                        c.TempAmountCoupon = c.LimitAmount;
25407                                    }
25408                                }
25409                                else {
25410                                    c.TempAmountCoupon = c.CouponAmount;
25411                                }
25412                                if (c.TempAmountCoupon > window.pars3p.cart.ShippingFee) {
25413                                    c.TempAmountCoupon = window.pars3p.cart.ShippingFee;
25414                                }
25415                            }
25416                            if (!(lstChoose.indexOf(c.Code) >= 0)) {
25417                                if (c.CouponBaseAmount > offerShipAmount) {
25418                                    offerShipList.push(c);
25419                                }
25420                                else if (!(offerShipAmount > 0) && c.IsEnabled == true) {
25421                                    offerShipList.push(c);
25422                                }
25423                            }
25424                        });
25425                        jQuery('.popup-cart-coupon-choose .list-public .giam-ship .data').html(html);
25426                        jQuery('.popup-cart-coupon-choose .list-public .giam-ship').show();
25427                        jQuery('.mobile-payment .coupon .list-public .giam-ship .data').html(html);
25428                        jQuery('.mobile-payment .coupon .list-public .giam-ship').show();
25429                    }
25430                    lst = window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
25430oupon; });
25431                    if (lib3p_helper.utility.hasListValue(lst)) {
25432                        var html = '';
25433                        lst.forEach(function (c, cidx) {
25434                            html += '<div class="item-outline">';
25435                            if (c.IsEnabled == true) {
25436                                html += '<div class="item type-4"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode + '</div></div>';
25437                                if (lstChoose.indexOf(c.Code) >= 0) {
25438                                    c.IsUse = true;
25439                                    html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCartPayment.onCartCoupon_Check(this,' + c.Code + ')" checked /></div>';
25440                                }
25441                                else {
25442                                    html += '<div class="check"><input type="checkbox" class="chk_' + c.Code + '" onchange="lib3p.pageCartPayment.onCartCoupon_Check(this,' + c.Code + ')" /></div>';
25443                                }
25444                            }
25445                            else {
25446                                html += '<div class="item type-empty"><div class="CouponName s18 cl-dakgreen800 sibold600">' + c.CouponName + '</div><div class="Description s13 cl-gregray750 medium500">' + c.Description + '</div><div class="CouponCode s12 cl-gregray550 regular400">' + c.CouponCode + '</div></div>';
25447                                html += '<div class="check"><input type="checkbox" disabled="disabled" /></div>';
25448                            }
25449                            html += '</div>';
25450
25451                            if (c.IsPrivate != true) {
25452                                if (c.IsEnabled == true) {
25453                                    if (!lib3p_helper.utility.hasValue(window.pars3p.cart.CartCoupon.find(function (d) { return d.CouponID == c.Code; }))) {
25454                                        html2 += '<div class="item" onclick="lib3p.pageCartPayment.onCouponChoose_Click(' + c.Code + ')"><div class="type-4"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
25455                                    }
25456                                }
25457                                else {
25458                                    html2 += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div></div>';
25459                                }
25460                            }
25461                        });
25462                        jQuery('.popup-cart-coupon-choose .list-public .giam-mua-sam .data').html(html);
25463                        jQuery('.popup-cart-coupon-choose .list-public .giam-mua-sam').show();
25464                        jQuery('.mobile-payment .coupon .list-public .giam-mua-sam .data').html(html);
25465                        jQuery('.mobile-payment .coupon .list-public .giam-mua-sam').show();
25466                    }
25467                    jQuery('.page-payment .coupon .list-choose-type').html(html2);
25468                    jQuery('.mobile-payment .coupon .list-choose-type').html(html2);
25469                    jQuery('.page-payment .coupon .list-choose-type').show();
25470                    jQuery('.mobile-payment .coupon .list-choose-type').show();
25471
25472                    var mobileNote = '';
25473                    if (offerShipList.length > 0) {
25474                        var first = offerShipList[0];
25475                        var txt = 'Đừng quên chọn mã FREESHIP để tiết kiệm hơn nhé!';
25476                        if (first.IsEnabled != true) {
25477                            if (window.pars3p.cart.TotalAmount < 200000) {
25478                                txt = 'Mua đủ 200K để áp mã ' + first.CouponName;
25479                                mobileNote = '<div>' + txt + '</div>';
25480                            }
25481                            /* else if(window.pars3p.cart.TotalAmount > (first.LimitInv / 2)) {
25482                                var sub = first.LimitInv - window.pars3p.cart.TotalAmount;
25483                                txt = 'Mua thêm ' + lib3p_helper.utility.formatMoney(sub) + 'đ' + ' để áp mã ' + first.CouponName;                            
25484                            } */
25485                        }
25486                        jQuery('.page-payment .van-chuyen-offer .tieu-de .txt').html(txt);
25487                        jQuery('.mobile-payment .van-chuyen-offer .tieu-de .txt').html(txt);
25488
25489                        html = '';
25490                        offerShipList.forEach(function (c, cidx) {
25491                            var strExpired = '';
25492                            if (c.IsExpired == true) {
25493                                strExpired = '<div class="expired b-orange-50"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-exclamation.svg" /><span class="s13 cl-gregray900 regular400">Sắp hết hạn</span></div>';
25494                            }
25495                            if (c.IsEnabled == true) {
25496                                html += '<div class="item" onclick="lib3p.pageCartPayment.onCouponChoose_Click(' + c.Code + ')"><div class="type-3"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div>' + strExpired + '</div>';
25497                            }
25498                            else {
25499                                html += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div>' + strExpired + '</div>';
25500                            }
25501                        });
25502                        jQuery('.page-payment .van-chuyen-offer .list-choose-type').html(html);
25503                        jQuery('.mobile-payment .van-chuyen-offer .list-choose-type').html(html);
25504                        jQuery('.page-payment .van-chuyen-offer').show();
25505                        jQuery('.mobile-payment .van-chuyen-offer').show();
25506                    }
25507                    else {
25508                        jQuery('.page-payment .van-chuyen-offer').hide();
25509                        jQuery('.mobile-payment .van-chuyen-offer').hide();
25510                    }
25511                    if (offerOrderList.length > 0) {
25512                        offerOrderList.sort(function (a, b) { return (b.TempAmountCoupon + (b.IsEnabled == true ? window.pars3p.cart.TotalAmount : 0)) - (a.TempAmountCoupon + (a.IsEnabled == true ? window.pars3p.cart.TotalAmount : 0)); });
25513                        var first = offerOrderList[0];
25514                        var txt = 'Mua sắm tiết kiệm với mã giảm chỉ dành cho đơn online';
25515                        if (first.IsEnabled != true && window.pars3p.cart.TotalAmount > (first.LimitInv / 2)) {
25516                            var sub = first.LimitInv - window.pars3p.cart.TotalAmount;
25517                            var giam = lib3p_helper.utility.formatMoney(first.CouponBaseAmount) + 'đ';
25518                            if (first.IsPercent == true) {
25519                                giam = first.CouponBaseAmount + '%';
25520                            }
25521                            txt = 'Mua thêm ' + lib3p_helper.utility.formatMoney(sub) + 'đ' + ' để được giảm ' + giam + ' đơn hàng';
25522                            mobileNote = '<div>' + 'Mua thêm ' + lib3p_helper.utility.formatMoney(sub) + 'đ' + ' để đơn giảm ' + giam + '</div>';
25523                        }
25524                        jQuery('.page-payment .order-offer .tieu-de .txt').html(txt);
25525                        jQuery('.mobile-payment .order-offer .tieu-de .txt').html(txt);
25526
25527                        html = '';
25528                        offerOrderList.forEach(function (c, cidx) {
25529                            var strExpired = '';
25530                            if (c.IsExpired == true) {
25531                                strExpired = '<div class="expired b-orange-50"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-exclamation.svg" /><span class="s13 cl-gregray900 regular400">Sắp hết hạn</span></div>';
25532                            }
25533                            if (c.IsEnabled == true) {
25534                                html += '<div class="item" onclick="lib3p.pageCartPayment.onCouponChoose_Click(' + c.Code + ')"><div class="type-2"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div>' + strExpired + '</div>';
25535                            }
25536                            else {
25537                                html += '<div class="item"><div class="type-empty"><div class="title">' + c.CouponName + '</div><div class="sub">' + c.Description + '</div></div>' + strExpired + '</div>';
25538                            }
25539                        });
25540                        jQuery('.page-payment .order-offer .list-choose-type').html(html);
25541                        jQuery('.mobile-payment .order-offer .list-choose-type').html(html);
25542                        jQuery('.page-payment .order-offer').show();
25543                        jQuery('.mobile-payment .order-offer').show();
25544                    }
25545                    else {
25546                        jQuery('.page-payment .order-offer').hide();
25547                        jQuery('.mobile-payment .order-offer').hide();
25548                    }
25549                    if (jQuery('.mobile-payment .cart-total .list-sub .list-sub-sticky .sub-offer').hasClass('hascoupon')) {
25550                        jQuery('.mobile-payment .cart-total .list-sub .list-sub-sticky .sub-offer').removeClass('hascoupon');
25551                    }
25552                    window.pars3p.listCouponOffer = [];
25553                    if (!lib3p_helper.utility.hasListValue(lstChoose) && lib3p_helper.utility.hasListValue(offerShipList) && lib3p_helper.utility.hasListValue(offerOrderList)) {
25554                        var findOfferShip = null;
25555                        var findOfferOrder = null;
25556                        offerShipList.forEach(function (c) {
25557                            if (c.IsEnabled == true) {
25558                                if (!lib3p_helper.utility.hasValue(findOfferShip)) {
25559                                    findOfferShip = c;
25560                                }
25561                                else if (findOfferShip.CouponBaseAmount < c.CouponBaseAmount) {
25562                                    findOfferShip = c;
25563                                }
25564                            }
25565                        });
25566                        offerOrderList.forEach(function (c) {
25567                            if (c.IsEnabled == true && !lib3p_helper.utility.hasValue(findOfferOrder)) {
25568                                findOfferOrder = c;
25569                            }
25570                        });
25571                        if (lib3p_helper.utility.hasValue(findOfferShip) || lib3p_helper.utility.hasValue(findOfferOrder)) {
25572                            //mobileNote = '';
25573                            if (lib3p_helper.utility.hasValue(findOfferShip)) {
25574                                //mobileNote += ',' + findOfferShip.Code;
25575                                window.pars3p.listCouponOffer.push(findOfferShip);
25576                            }
25577                            if (lib3p_helper.utility.hasValue(findOfferOrder)) {
25578                                //mobileNote += ',' + findOfferOrder.Code;
25579                                window.pars3p.listCouponOffer.push(findOfferOrder);
25580                            }
25581                            mobileNote = '<div>Lựa chọn mã giảm tốt nhất cho đơn này</div><button class="coupon-ok sl-gregray200 b-white s13 cl-dakgreen650 sibold600" onclick="lib3p.pageCartPayment.onCouponOfferOk_Click()">Đồng ý</button>';
25582                            jQuery('.mobile-payment .cart-total .list-sub .list-sub-sticky .sub-offer').addClass('hascoupon');
25583                        }
25584                    }
25585
25586                    jQuery('.page-payment .cart-bottom-fix .left .cart-offer').html('');
25587                    jQuery('.page-payment .cart-bottom-fix').removeClass('hasoffer');
25588                    jQuery('.mobile-payment .cart-total .list-sub .list-sub-sticky .sub-offer').html('');
25589                    jQuery('.mobile-payment .cart-total .list-sub .list-sub-sticky').removeClass('hasoffer');
25590                    const ids = lib3p_helper.utility.cache.get("cart_couponoffer");
25591                    if (lib3p_helper.utility.hasValueString(ids)) {
25592                        lib3p_helper.utility.cache.remove("cart_couponoffer");
25593                        /* jQuery('.page-payment .cart-bottom-fix .left .cart-offer').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/pig.svg" /><div>Mã giảm tốt nhất đã được tự động áp dụng</div><span></span>');
25594                        jQuery('.page-payment .cart-bottom-fix').addClass('hasoffer');
25595                        jQuery('.mobile-payment .cart-total .list-sub .list-sub-sticky .sub-offer').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/pig.svg" /><div>Mã giảm tốt nhất đã được tự động áp dụng</div><span></span>');
25596                        jQuery('.mobile-payment .cart-total .list-sub .list-sub-sticky').addClass('hasoffer'); */
25597                        var query = jQuery('.popup-payment-usegift .hachi-modal');
25598                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25599                            if (jQuery(query[0]).hasClass("d-none")) {
25600                                jQuery(query[0]).removeClass("d-none").addClass("d-block");
25601                            }
25602                        }
25603                        setTimeout(function(){
25604                            lib3p.pageCartPayment.onPopupUsegift_Close();
25605                        }, 3000);
25606                    }
25607                    else if (lib3p_helper.utility.hasValueString(mobileNote)) {
25608                        jQuery('.page-payment .cart-bottom-fix .left .cart-offer').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/pig.svg" />' + mobileNote);
25609                        jQuery('.page-payment .cart-bottom-fix').addClass('hasoffer');
25610                        jQuery('.mobile-payment .cart-total .list-sub .list-sub-sticky .sub-offer').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/pig.svg" />' + mobileNote);
25611                        jQuery('.mobile-payment .cart-total .list-sub .list-sub-sticky').addClass('hasoffer');
25612                    }
25613                }
25614                
25615                lib3p.logInfo('Cart_ListCoupon');
25616            }, 1);            
25617        },
25618        onPopupUsegift_Close: function(){
25619            var query = jQuery('.popup-payment-usegift .hachi-modal');
25620            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25621                if (jQuery(query[0]).hasClass("d-block")) {
25622                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
25623                }
25624            }
25625            return false;
25626        },
25627        onCouponChoose_Click: function (id) {
25628            var find = window.pars3p.cart.ListCoupon.find(function (c) { return c.CouponID == id; });
25629            var exists = window.pars3p.cart.CartCoupon.find(function (c) { return c.CouponID == id; });
25630            if (lib3p_helper.utility.hasValue(find) && !lib3p_helper.utility.hasValue(exists)) {
25631                if (find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCart || find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCartShipping) {
25632                    var index = window.pars3p.cart.CartCoupon.findIndex(function (c) { return c.TypeData == find.TypeData });
25633                    if (index >= 0) {
25634                        window.pars3p.cart.CartCoupon.splice(index, 1);
25635                    }
25636                }
25637                lib3p.header.Notify_Show('Áp dụng ' + find.CouponName + ' thành công!');
25638                if (window.pars3p.auth.isLogin == true) {
25639                    window.pars3p.cart.CartCoupon.push(find);
25640                    lib3p.common_cartSet(window.pars3p.cart);
25641                    var cart = {
25642                        Cart: lib3p_helper.cart.getCartInfo(),
25643                        CartCoupon: window.pars3p.cart.CartCoupon,
25644                    };
25645                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_CouponTotal, { cart: cart }, function (res) {
25646                        if (lib3p_helper.utility.hasValue(res)) {
25647                            if (res.StatusCode == 0) {
25648                                lib3p.pageCartPayment.Payment_ProductTotal();
25649                            }
25650                        }
25651                    }, function (err) {
25652                        lib3p.log(err);
25653                    });
25654                }
25655                else {
25656                    window.pars3p.cart.CartCoupon.push(find);
25657                    lib3p.common_cartSet(window.pars3p.cart);
25658                    lib3p.pageCartPayment.Cart_ListCoupon();
25659                    lib3p.pageCartPayment.Payment_ProductTotal();
25660                }
25661            }
25662        },
25663        onCouponOfferOk_Click() {
25664            if (lib3p_helper.utility.hasListValue(window.pars3p.listCouponOffer)) {
25665                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)) {
25666                    //window.pars3p.cart.CartCoupon = window.pars3p.cart.ListCoupon.filter(function(o) { return lst.indexOf(o.Code) >= 0; });
25667                    window.pars3p.cart.CartCoupon = window.pars3p.listCouponOffer;
25668                    lib3p.header.Notify_Show('Áp dụng mã giảm tốt nhất thành công!');
25669                    if (window.pars3p.auth.isLogin == true) {
25670                        var cart = {
25671                            Cart: lib3p_helper.cart.getCartInfo(),
25672                            CartCoupon: window.pars3p.cart.CartCoupon,
25673                        };
25674                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_CouponTotal, { cart: cart }, function (res) {
25675                            if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
25676                                lib3p.pageCartPayment.Cart_ListCoupon();
25677                                lib3p.pageCartPayment.Payment_ProductTotal();
25678                            }
25679                        }, function (err) {
25680                            lib3p.log(err);
25681                        });
25682                    }
25683                    else {
25684                        lib3p.pageCartPayment.Cart_ListCoupon();
25685                        lib3p.pageCartPayment.Payment_ProductTotal();
25686                    }
25687                }
25688            }
25689        },
25690
25691        /* onCartCoupon_Toggle: function() {
25692            var query = jQuery('.popup-cart-coupon-choose .hachi-modal');
25693            if(lib3p_helper.utility.hasValue(query) && query.length > 0) {
25694                if(jQuery(query[0]).hasClass("d-none")) {
25695                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
25696                }            
25697            }
25698            if(lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)){
25699                if(jQuery('.page-payment .coupon').hasClass('open')) {
25700                    jQuery('.page-payment .coupon').removeClass('open');
25701                    jQuery('.mobile-payment .coupon').removeClass('open');
25702                }
25703                else {
25704                    jQuery('.page-payment .coupon').addClass('open');
25705                    jQuery('.mobile-payment .coupon').addClass('open');
25706                }
25707            }
25708        }, */
25709        onPopupGiftClose_Click: function () {
25710            var query = jQuery('.popup-payment-gift .hachi-modal');
25711            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25712                if (jQuery(query[0]).hasClass("d-block")) {
25713                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
25714                }
25715            }
25716            return false;
25717        },
25718        onPopupGiftCancel_Click: function () {
25719            var query = jQuery('.popup-payment-gift .hachi-modal');
25720            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25721                if (jQuery(query[0]).hasClass("d-block")) {
25722                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
25723                }
25724            }
25725            query = jQuery('.popup-payment-gift-cancel .hachi-modal');
25726            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25727                if (jQuery(query[0]).hasClass("d-none")) {
25728                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
25729                }
25730            }
25731            return false;
25732        },
25733        onPopupGiftCancelClose_Click: function () {
25734            var query = jQuery('.popup-payment-gift-cancel .hachi-modal');
25735            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25736                if (jQuery(query[0]).hasClass("d-block")) {
25737                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
25738                }
25739            }
25740            query = jQuery('.popup-payment-gift .hachi-modal');
25741            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25742                if (jQuery(query[0]).hasClass("d-none")) {
25743                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
25744                }
25745            }
25746            return false;
25747        },
25748        onPopupGiftCancelOk_Click: function () {
25749            window.pars3p.cart.IsGiftReceived = false;
25750            window.pars3p.cart.ListGift = [];
25751            lib3p.pageCartPayment.CartMuaHang_Complete();
25752            return false;
25753        },
25754        onPopupGiftOk_Click: function () {
25755            if (!jQuery('.popup-payment-gift').hasClass('haserror')) {
25756                var query = jQuery('.popup-payment-gift .hachi-modal');
25757                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25758                    if (jQuery(query[0]).hasClass("d-block")) {
25759                        jQuery(query[0]).removeClass("d-block").addClass("d-none");
25760                    }
25761                }
25762                var lst = [];
25763                window.pars3p.others.ListGroupGift.forEach(function (g) {
25764                    for (var key in g.group) {
25765                        g.group[key].forEach(function (p) {
25766                            if (p.Quantity > 0) {
25767                                lst.push(p);
25768                            }
25769                        });
25770                    }
25771                });
25772                window.pars3p.cart.ListGift = lst;
25773                window.pars3p.cart.IsGiftReceived = true;
25774                lib3p.pageCartPayment.CartMuaHang_Complete();
25775            }
25776            return false;
25777        },
25778
25779        onPopupMobileGiftClose_Click: function () {
25780            var query = jQuery('.popup-mobile-payment-gift .hachi-modal');
25781            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25782                if (jQuery(query[0]).hasClass("d-block")) {
25783                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
25784                }
25785            }
25786            return false;
25787        },
25788        onPopupMobileGiftCancel_Click: function () {
25789            var query = jQuery('.popup-mobile-payment-gift .hachi-modal');
25790            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25791                if (jQuery(query[0]).hasClass("d-block")) {
25792                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
25793                }
25794            }
25795            query = jQuery('.popup-mobile-payment-gift-cancel .hachi-modal');
25796            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25797                if (jQuery(query[0]).hasClass("d-none")) {
25798                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
25799                }
25800            }
25801            return false;
25802        },
25803        onPopupMobileGiftCancelClose_Click: function () {
25804            var query = jQuery('.popup-mobile-payment-gift-cancel .hachi-modal');
25805            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25806                if (jQuery(query[0]).hasClass("d-block")) {
25807                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
25808                }
25809            }
25810            query = jQuery('.popup-mobile-payment-gift .hachi-modal');
25811            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25812                if (jQuery(query[0]).hasClass("d-none")) {
25813                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
25814                }
25815            }
25816            return false;
25817        },
25818        onPopupMobileGiftCancelOk_Click: function () {
25819            window.pars3p.cart.IsGiftReceived = false;
25820            window.pars3p.cart.ListGift = [];
25821            lib3p.pageCartPayment.CartMuaHang_Complete();
25822            return false;
25823        },
25824        onPopupMobileGiftOk_Click: function () {
25825            if (!jQuery('.popup-mobile-payment-gift').hasClass('haserror')) {
25826                var query = jQuery('.popup-mobile-payment-gift .hachi-modal');
25827                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25828                    if (jQuery(query[0]).hasClass("d-block")) {
25829                        jQuery(query[0]).removeClass("d-block").addClass("d-none");
25830                    }
25831                }
25832                var lst = [];
25833                window.pars3p.others.ListGroupGift.forEach(function (g) {
25834                    for (var key in g.group) {
25835                        g.group[key].forEach(function (p) {
25836                            if (p.Quantity > 0) {
25837                                lst.push(p);
25838                            }
25839                        });
25840                    }
25841                });
25842                window.pars3p.cart.ListGift = lst;
25843                window.pars3p.cart.IsGiftReceived = true;
25844                lib3p.pageCartPayment.CartMuaHang_Complete();
25845            }
25846            return false;
25847        },
25848
25849        PopupGift_ReCheck: function (el) {
25850            var flag = false;
25851            window.pars3p.others.ListGroupGift.forEach(function (g) {
25852                jQuery('.group-gift.cate-' + g.key.CategoryID + ' .group-input button.add').removeAttr('disabled');
25853                if (g.key.TypeData == 15) {
25854                    if (g.key.OrderQuantityUse > 0) {
25855                        for (var key in g.group) {
25856                            var first = g.group[key][0];
25857                            if (g.key.OrderQuantityUse >= first.Price) {
25858                                flag = true;
25859                            }
25860                            else {
25861                                jQuery('.group-gift .nhom-sp.nhom-' + g.key.CategoryID + '-' + key + ' .group-input button.add').attr('disabled', 'disabled');
25862                            }
25863                        }
25864                    }
25865                    else {
25866                        jQuery('.group-gift.cate-' + g.key.CategoryID + ' .group-input button.add').attr('disabled', 'disabled');
25867                    }
25868                }
25869                else {
25870                    if (g.key.TotalAmountUse > 0) {
25871                        for (var key in g.group) {
25872                            var first = g.group[key][0];
25873                            if (g.key.TotalAmountUse >= first.Price) {
25874                                flag = true;
25875                            }
25876                            else {
25877                                jQuery('.group-gift .nhom-sp.nhom-' + g.key.CategoryID + '-' + key + ' .group-input button.add').attr('disabled', 'disabled');
25878                            }
25879                        }
25880                    }
25881                    else {
25882                        jQuery('.group-gift.cate-' + g.key.CategoryID + ' .group-input button.add').attr('disabled', 'disabled');
25883                    }
25884                }
25885            });
25886            if (flag == false) {
25887                jQuery('.popup-payment-gift.haserror').removeClass('haserror');
25888                jQuery('.popup-mobile-payment-gift.haserror').removeClass('haserror');
25889            }
25890            else {
25891                if (!jQuery('.popup-payment-gift').hasClass("haserror")) {
25892                    jQuery('.popup-payment-gift').addClass("haserror");
25893                }
25894                if (!jQuery('.popup-mobile-payment-gift').hasClass("haserror")) {
25895                    jQuery('.popup-mobile-payment-gift').addClass("haserror");
25896                }
25897            }
25898        },
25899        onPopupGiftInput_Keydown: function (event, el, cateid, brandid, id) {
25900            var query = jQuery(el);
25901            var btn = jQuery(jQuery(el).closest('.group-input')[0]).find('button.add');
25902            var conlai = jQuery(jQuery(el).closest('.group-gift')[0]).find('.gia-tri .dong .value-conlai');
25903            setTimeout(function () {
25904                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25905                    var val = query.val();
25906                    var q = 0;
25907                    try {
25908                        if (lib3p_helper.utility.hasValueString(val)) {
25909                            q = parseInt(val);
25910                        }
25911                    }
25912                    catch { }
25913                    var g = window.pars3p.others.ListGroupGift.find(function (o) { return o.key.CategoryID == cateid; });
25914                    if (lib3p_helper.utility.hasValue(g)) {
25915                        var item = g.group[brandid].find(function (o) { return o.Code == id; });
25916                        if (lib3p_helper.utility.hasValue(item)) {
25917                            if (q > 0) {
25918                                if (g.key.TypeData == 15) {
25919                                    if (g.key.OrderQuantityUse + item.Price * item.Quantity >= item.Price * q) {
25920                                        g.key.OrderQuantityUse += item.Price * item.Quantity;
25921                                        g.key.OrderQuantityUse -= item.Price * q;
25922                                        item.Quantity = q;
25923                                        conlai.html(g.key.OrderQuantityUse);
25924                                        lib3p.pageCartPayment.Po
25924pupGift_ReCheck();
25925                                    }
25926                                    else {
25927                                        query.val(item.Quantity);
25928                                    }
25929                                }
25930                                else {
25931                                    if (g.key.TotalAmountUse + item.Price * item.Quantity >= item.Price * q) {
25932                                        g.key.TotalAmountUse += item.Price * item.Quantity;
25933                                        g.key.TotalAmountUse -= item.Price * q;
25934                                        item.Quantity = q;
25935                                        if(g.key.TotalAmountMax > 0 && g.key.TotalAmountUse > g.key.TotalAmountMax) {
25936                                            g.key.TotalAmountUse = g.key.TotalAmountMax;
25937                                        }
25938                                        conlai.html(lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ');
25939                                        lib3p.pageCartPayment.PopupGift_ReCheck();
25940                                    }
25941                                    else {
25942                                        query.val(item.Quantity);
25943                                    }
25944                                }
25945                                if (item.Quantity >= item.QuantityWithOrder) {
25946                                    if (lib3p_helper.utility.hasValue(btn) && btn.length > 0) {
25947                                        btn.removeAttr('disabled');
25948                                        btn.attr('disabled', 'disabled');
25949                                    }
25950                                }
25951                            }
25952                            else {
25953                                item.Quantity = 0;
25954                                if (lib3p_helper.utility.hasValue(btn) && btn.length > 0) {
25955                                    btn.removeAttr('disabled');
25956                                }
25957                                lib3p.pageCartPayment.PopupGift_ReCheck();
25958                            }
25959                        }
25960                    }
25961                }
25962            }, 100);
25963        },
25964        onPopupGiftSub_Click: function (el, cateid, brandid, id) {
25965            var query = jQuery(el).closest('.group-input');
25966            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25967                query = jQuery(query[0]).find('input[type="number"]');
25968                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
25969                    var val = query.val();
25970                    if (!lib3p_helper.utility.hasValueString(val) || val == "0") {
25971                        val = "0";
25972                    }
25973                    else {
25974                        var g = window.pars3p.others.ListGroupGift.find(function (o) { return o.key.CategoryID == cateid; });
25975                        if (lib3p_helper.utility.hasValue(g)) {
25976                            var item = g.group[brandid].find(function (o) { return o.Code == id; });
25977                            if (lib3p_helper.utility.hasValue(item)) {
25978                                if (g.key.TypeData == 15) {
25979                                    item.Quantity--;
25980                                    query.val(item.Quantity);
25981                                    g.key.OrderQuantityUse += item.Price;
25982                                    jQuery(jQuery(el).closest('.group-gift')[0]).find('.gia-tri .dong .value-conlai').html(g.key.OrderQuantityUse);
25983                                    lib3p.pageCartPayment.PopupGift_ReCheck();
25984                                }
25985                                else {
25986                                    item.Quantity--;
25987                                    query.val(item.Quantity);
25988                                    g.key.TotalAmountUse += item.Price;
25989                                    if(g.key.TotalAmountMax > 0 && g.key.TotalAmountUse > g.key.TotalAmountMax) {
25990                                        g.key.TotalAmountUse = g.key.TotalAmountMax;
25991                                    }
25992                                    jQuery(jQuery(el).closest('.group-gift')[0]).find('.gia-tri .dong .value-conlai').html(lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ');
25993                                    lib3p.pageCartPayment.PopupGift_ReCheck();
25994                                }
25995                                var btn = jQuery(jQuery(el).closest('.group-input')[0]).find('button.add');
25996                                if (lib3p_helper.utility.hasValue(btn) && btn.length > 0) {
25997                                    btn.removeAttr('disabled');
25998                                }
25999                            }
26000                        }
26001                    }
26002                }
26003            }
26004        },
26005        onPopupGiftAdd_Click: function (el, cateid, brandid, id) {
26006            var query = jQuery(el).closest('.group-input');
26007            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
26008                query = jQuery(query[0]).find('input[type="number"]');
26009                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
26010                    var g = window.pars3p.others.ListGroupGift.find(function (o) { return o.key.CategoryID == cateid; });
26011                    if (lib3p_helper.utility.hasValue(g)) {
26012                        var item = g.group[brandid].find(function (o) { return o.Code == id; });
26013                        if (lib3p_helper.utility.hasValue(item)) {
26014                            if (item.Quantity >= item.QuantityWithOrder) {
26015                                var btn = jQuery(jQuery(el).closest('.group-input')[0]).find('button.add');
26016                                if (lib3p_helper.utility.hasValue(btn) && btn.length > 0) {
26017                                    btn.removeAttr('disabled');
26018                                    btn.attr('disabled', 'disabled');
26019                                }
26020                            }
26021                            else {
26022                                if (g.key.TypeData == 15) {
26023                                    if (g.key.OrderQuantityUse >= item.Price) {
26024                                        item.Quantity++;
26025                                        query.val(item.Quantity);
26026                                        g.key.OrderQuantityUse -= item.Price;
26027                                        jQuery(jQuery(el).closest('.group-gift')[0]).find('.gia-tri .dong .value-conlai').html(g.key.OrderQuantityUse);
26028                                        lib3p.pageCartPayment.PopupGift_ReCheck();
26029                                    }
26030                                }
26031                                else {
26032                                    if (g.key.TotalAmountUse >= item.Price) {
26033                                        item.Quantity++;
26034                                        query.val(item.Quantity);
26035                                        g.key.TotalAmountUse -= item.Price;
26036                                        if(g.key.TotalAmountMax > 0 && g.key.TotalAmountUse > g.key.TotalAmountMax) {
26037                                            g.key.TotalAmountUse = g.key.TotalAmountMax;
26038                                        }
26039                                        jQuery(jQuery(el).closest('.group-gift')[0]).find('.gia-tri .dong .value-conlai').html(lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ');
26040                                        lib3p.pageCartPayment.PopupGift_ReCheck();
26041                                    }
26042                                }
26043                            }
26044                        }
26045                    }
26046                }
26047            }
26048        },
26049        onCartCoupon_Check: function (el, id) {
26050            var find = window.pars3p.cart.ListCoupon.find(function (c) { return c.Code == id; });
26051            if (lib3p_helper.utility.hasValue(find)) {
26052                find.IsUse = el.checked == true;
26053                if (find.IsUse == true) {
26054                    if (find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCart) {
26055                        window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCart && c.CouponID != id; }).forEach(function (c) {
26056                            c.IsUse = false;
26057                        });
26058                        jQuery(el).closest('div.data').find('div.check input[type="checkbox"]').each(function () {
26059                            var detail = this;
26060                            if (detail != el) {
26061                                detail.checked = false;
26062                            }
26063                        });
26064                    }
26065                    else if (find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.C
26065ouponCartShipping) {
26066                        window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.CouponCartShipping && c.CouponID != id; }).forEach(function (c) {
26067                            c.IsUse = false;
26068                        });
26069                        jQuery(el).closest('div.data').find('div.check input[type="checkbox"]').each(function () {
26070                            var detail = this;
26071                            if (detail != el) {
26072                                detail.checked = false;
26073                            }
26074                        });
26075                    }
26076                    else if (find.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.Coupon) {
26077                        if (window.pars3p.cart.ListCoupon.filter(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.Coupon && c.CouponID != id && c.IsUse == true; }).length >= 5) {
26078                            var first = window.pars3p.cart.ListCoupon.find(function (c) { return c.TypeData == lib3p.pageCart.data.ENumTypeOfCoupon.Coupon && c.CouponID != id && c.IsUse == true; });
26079                            if (lib3p_helper.utility.hasValue(first)) {
26080                                first.IsUse = false;
26081                                jQuery(el).closest('div.data').find('input[type="checkbox"].chk_' + first.Code).each(function () {
26082                                    var detail = this;
26083                                    if (detail != el) {
26084                                        detail.checked = false;
26085                                    }
26086                                });
26087                            }
26088                        }
26089                    }
26090                }
26091            }
26092        },
26093        onCartCoupon_Delete: function (id) {
26094            window.pars3p.cart.CouponDeleteID = id;
26095            var item = window.pars3p.cart.CartCoupon.find(function (c) { return c.CouponID == id; });
26096            if (lib3p_helper.utility.hasValue(item)) {
26097                jQuery('.popup-payment-coupon-delete .CouponCode').html(item.CouponCode);
26098                var query = jQuery('.popup-payment-coupon-delete .hachi-modal');
26099                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
26100                    if (jQuery(query[0]).hasClass("d-none")) {
26101                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
26102                    }
26103                }
26104            }
26105        },
26106        onCartCouponDelete_Close: function () {
26107            var query = jQuery('.popup-payment-coupon-delete .hachi-modal');
26108            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
26109                if (jQuery(query[0]).hasClass("d-block")) {
26110                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
26111                }
26112            }
26113        },
26114        onCartCouponDelete_Ok: function () {
26115            lib3p.pageCartPayment.onCartCouponDelete_Close();
26116            var item = window.pars3p.cart.CartCoupon.find(function (c) { return c.CouponID == window.pars3p.cart.CouponDeleteID; });
26117            var idx = window.pars3p.cart.CartCoupon.findIndex(function (c) { return c.CouponID == window.pars3p.cart.CouponDeleteID; });
26118
26119            if (idx >= 0) {
26120                window.pars3p.cart.CartCoupon.splice(idx, 1);
26121
26122                if (window.pars3p.auth.isLogin == true) {
26123                    var req = {
26124                        CartID: -1,
26125                        CouponID: window.pars3p.cart.CouponDeleteID,
26126                    };
26127                    if (window.pars3p.cart.Code > 0) {
26128                        req.CartID = window.pars3p.cart.Code;
26129                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_CouponDelete, req, function (res) {
26130                            if (res == true) {
26131                                lib3p.common_cartSet(window.pars3p.cart);
26132                                lib3p.pageCartPayment.Cart_ListCoupon();
26133                                lib3p.pageCartPayment.Payment_ProductTotal();
26134                            }
26135                        }, function (err) {
26136                            lib3p.log(err);
26137                        });
26138                    }
26139                }
26140                else {
26141                    lib3p.common_cartSet(window.pars3p.cart);
26142                    lib3p.pageCartPayment.Cart_ListCoupon();
26143                    lib3p.pageCartPayment.Payment_ProductTotal();
26144                }
26145            }
26146        },
26147        onCartCoupon_Close: function () {
26148            var query = jQuery('.popup-cart-coupon-choose .hachi-modal');
26149            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
26150                if (jQuery(query[0]).hasClass("d-block")) {
26151                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
26152                }
26153            }
26154        },
26155        onCartCoupon_ApDung: function () {
26156            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)) {
26157                var cart = {
26158                    Cart: lib3p_helper.cart.getCartInfo(),
26159                    CartDetails: [],
26160                    CartCoupon: [],
26161                    ListCoupon: []
26162                };
26163                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartDetails)) {
26164                    cart.CartDetails = window.pars3p.cart.CartDetails;
26165                }
26166                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListCoupon)) {
26167                    cart.ListCoupon = window.pars3p.cart.ListCoupon;
26168                }
26169                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
26170                    cart.CartCoupon = window.pars3p.cart.CartCoupon;
26171                }
26172                if (window.pars3p.auth.isLogin == true) {
26173                    window.pars3p.cart.CartCoupon = window.pars3p.cart.ListCoupon.filter(function (o) { return o.IsUse == true; });
26174                    lib3p.pageCartPayment.onCartCoupon_Close();
26175                    var cart = {
26176                        Cart: lib3p_helper.cart.getCartInfo(),
26177                        CartCoupon: window.pars3p.cart.CartCoupon,
26178                    };
26179                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_CouponTotal, { cart: cart }, function (res) {
26180                        if (lib3p_helper.utility.hasValue(res)) {
26181                            if (res.StatusCode == 0) {
26182                                lib3p.pageCartPayment.Payment_ProductTotal();
26183                            }
26184                        }
26185                    }, function (err) {
26186                        lib3p.log(err);
26187                    });
26188                }
26189                else {
26190                    window.pars3p.cart.CartCoupon = window.pars3p.cart.ListCoupon.filter(function (o) { return o.IsUse == true; });
26191                    lib3p.pageCartPayment.onCartCoupon_Close();
26192                    lib3p.pageCartPayment.Cart_ListCoupon();
26193                    lib3p.pageCartPayment.Payment_ProductTotal();
26194                }
26195            }
26196        },
26197        onCartCoupon_KeyDown: function (event, el) {
26198            var query = jQuery(el).closest('form');
26199            setTimeout(function () {
26200                var ctr = query[0].CouponCode;
26201                if (lib3p_helper.utility.hasValueString(ctr.value)) {
26202                    //jQuery(query[0]).removeClass('haserror');
26203                    //jQuery('.page-cart .coupon .sub-1.haserror').removeClass('haserror');
26204                }
26205                else {
26206                    if (!jQuery(query[0]).hasClass('haserror')) {
26207                        //jQuery(query[0]).addClass('haserror');
26208                    }
26209                    /* if(!jQuery('.page-cart .coupon .sub-1').hasClass('haserror')) {
26210                        jQuery('.page-cart .coupon .sub-1').addClass('haserror');
26211                    } */
26212                }
26213            }, 100);
26214        },
26215        onCartCoupon_Submit: function (event) {
26216            if (!jQuery(event.target).hasClass('haserror')) {
26217                var flag = true;
26218                var data = {
26219                    CouponCode: ''
26220                };
26221
26222                var ctr = event.target.CouponCode;
26223                data.CouponCode = ctr.value;
26224                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
26225                    flag = false;
26226                    jQuery(event.target).find('.sub-1-error').html('Vui lòng nhập mã giảm giá');
26227                }
26228                else {                    
26229                    ctr.value = '';
26230                    data.CouponCode = data.CouponCode.trim();
26231                }
26232                if (flag == true) {
26233                    var cart = {
26234                        Cart: {
26235                            Code: -1,
26236                            OrderDate: null,
26237                            MembershipID: -1,
26238                            DiscountMembership: 0
26239                        },
26240                        CartDetails: [],
26241                        CartCoupon: []
26242                    };
26243                    cart.Cart = lib3p_helper.cart.getCartInfo();
26244                    if (window.pars3p.cart.MembershipID > 0) {
26245                        cart.Cart.MembershipID = window.pars3p.cart.MembershipID;
26246                        cart.Cart.DiscountMembership = window.pars3p.cart.DiscountMembership;
26247                    }
26248                    window.pars3p.cart.CartDetails.forEach(function (c) {
26249                        cart.CartDetails.push({ ProductID: c.ProductID, OrderQuantity: c.OrderQuantity, ShippedQuantity: c.ShippedQuantity, UnitPrice: c.UnitPrice, IsChoose: c.IsChoose, ModelID: c.ModelID });
26250                    });
26251                    cart.CartCoupon = window.pars3p.cart.CartCoupon;
26252
26253                    if (window.pars3p.auth.isLogin == true) {
26254                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_CouponAdd, { cart: cart, CouponCode: data.CouponCode }, function (res) {
26255                            if (lib3p_helper.utility.hasValue(res)) {
26256                                //jQuery(event.target).addClass('haserror');
26257                                if (res.StatusCode == 0) {
26258                                    if (res.ObjectReturn == true) {
26259                                        lib3p.common_cartSet(window.pars3p.cart);
26260                                        lib3p.pageCartPayment.Cart_ListCoupon();
26261                                        lib3p.pageCartPayment.Payment_ProductTotal();
26262                                    }
26263                                }
26264                                else {
26265                                    jQuery(event.target).find('.sub-1-error').html(res.ErrorString);
26266                                }
26267                            }
26268                        }, function (err) {
26269                            lib3p.log(err);
26270                        });
26271                    }
26272                    else {
26273                        lib3p.common_PostURL(window.pars3p.api.public.Cart_CouponAdd, { cart: cart, CouponCode: data.CouponCode }, function (res) {
26274                            if (lib3p_helper.utility.hasValue(res)) {
26275                                //jQuery(event.target).addClass('haserror');
26276                                if (res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn) && res.ObjectReturn.CouponID > 0) {
26277                                    window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
26278                                    lib3p.common_cartSet(window.pars3p.cart);
26279                                    lib3p.pageCartPayment.Payment_ProductTotal();
26280                                }
26281                                else {
26282                                    jQuery(event.target).find('.sub-1-error').html(res.ErrorString);
26283                                }
26284                            }
26285                        }, function (err) {
26286                            lib3p.log(err);
26287                        });
26288                    }
26289                }
26290            }
26291
26292            event.preventDefault();
26293            return false;
26294        },
26295        onCartCoupon_Submit_old: function (event) {
26296            if (!jQuery('.page-payment .coupon .sub-1').hasClass('haserror')) {
26297                var flag = true;
26298                var data = {
26299                    CouponCode: ''
26300                };
26301
26302                var ctr = event.target.CouponCode;
26303                data.CouponCode = ctr.value;
26304                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
26305                    flag = false;
26306                    jQuery('.page-payment .coupon .sub-1-error').html('Vui lòng nhập mã giảm giá');
26307                }
26308                else {
26309                    ctr.value = '';
26310                }
26311                if (flag == true) {
26312                    var cart = {
26313                        Cart: {
26314                            Code: -1,
26315                            OrderDate: null,
26316                            MembershipID: -1,
26317                            DiscountMembership: 0
26318                        },
26319                        CartDetails: [],
26320                        CartCoupon: []
26321                    };
26322                    if (window.pars3p.cart.Code > 0) {
26323                        cart.Cart = lib3p_helper.cart.getCartInfo();
26324                    }
26325                    if (window.pars3p.cart.MembershipID > 0) {
26326                        cart.Cart.MembershipID = window.pars3p.cart.MembershipID;
26327                        cart.Cart.DiscountMembership = window.pars3p.cart.DiscountMembership;
26328                    }
26329                    window.pars3p.cart.CartDetails.forEach(function (c) {
26330                        cart.CartDetails.push({ ProductID: c.ProductID, OrderQuantity: c.OrderQuantity, ShippedQuantity: c.ShippedQuantity, UnitPrice: c.UnitPrice, IsChoose: c.IsChoose, ModelID: c.ModelID });
26331                    });
26332                    cart.CartCoupon = window.pars3p.cart.CartCoupon;
26333
26334                    if (window.pars3p.auth.isLogin == true) {
26335                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Cart_CouponAdd, { cart: cart, CouponCode: data.CouponCode }, function (res) {
26336                            if (lib3p_helper.utility.hasValue(res)) {
26337                                if (res.StatusCode == 0) {
26338                                    if (res.ObjectReturn == true) {
26339                                        lib3p.common_cartSet(window.pars3p.cart);
26340                                        lib3p.pageCartPayment.Cart_ListCoupon();
26341                                        lib3p.pageCartPayment.Payment_ProductTotal();
26342                                    }
26343                                }
26344                                else {
26345                                    jQuery('.page-payment .coupon .sub-1-error').html(res.ErrorString);
26346                                }
26347                            }
26348                        }, function (err) {
26349                            lib3p.log(err);
26350                        });
26351                    }
26352                    else {
26353                        lib3p.common_PostURL(window.pars3p.api.public.Cart_CouponAdd, { cart: cart, CouponCode: data.CouponCode }, function (res) {
26354                            if (lib3p_helper.utility.hasValue(res)) {
26355                                if (res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn) && res.ObjectReturn.CouponID > 0) {
26356                                    window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
26357                                    lib3p.common_cartSet(window.pars3p.cart);
26358                                    lib3p.pageCartPayment.Payment_ProductTotal();
26359                                }
26360                                else {
26361                                    jQuery('.page-payment .coupon .sub-1-error').html(res.ErrorString);
26362                                }
26363                            }
26364                        }, function (err) {
26365                            lib3p.log(err);
26366                        });
26367                    }
26368                }
26369            }
26370
26371            event.preventDefault();
26372            return false;
26373        },
26374        GetDelivery: function (frm) {
26375            var ctr = frm.Address;
26376            window.pars3p.cart.FullAddress = '';
26377            if (lib3p_helper.utility.hasValueString(ctr.value)) {
26378                window.pars3p.cart.Address = ctr.value;
26379                window.pars3p.cart.FullAddress += ',' + ctr.value;
26380            }
26381            ctr = frm.Ward;
26382            if (lib3p_helper.utility.hasListValue(ctr.selectedOptions)) {
26383                window.pars3p.cart.Ward = parseInt(ctr.value);
26384                window.pars3p.cart.FullAddress += ', ' + ctr.selectedOptions[0].text;
26385            }
26386            ctr = frm.District;
26387            if (lib3p_helper.utility.hasListValue(ctr.selectedOptions)) {
26388                window.pars3p.cart.District = parseInt(ctr.value);
26389                window.pars3p.cart.FullAddress += ', ' + ctr.selectedOptions[0].text;
26390            }
26391            ctr = frm.Province;
26392            if (lib3p_helper.utility.hasListValue(ctr.selectedOptions)) {
26393                window.pars3p.cart.Province = parseInt(ctr.value);
26394                window.pars3p.cart.FullAddress += ', ' + ctr.selectedOptions[0].text;
26395            }
26396            if (window.pars3p.cart.FullAddress.indexOf(',') == 0) {
26397                window.pars3p.cart.FullAddress = window.pars3p.cart.FullAddress.substr(1);
26398            }
26399            window.pars3p.cart.OrderPhone = frm.OrderPhone.value;
26400            window.pars3p.cart.OrderBy = frm.OrderBy.value;
26401            ctr = frm.IsDeliveryOther;
26402            if (jQuery(ctr).prop('checked') == true) {
26403                window.pars3p.cart.ReceivedBy = frm.ReceivedBy.value;
26404                window.pars3p.cart.Cellphone = frm.Cellphone.value;
26405            }
26406            else {
26407                window.pars3p.cart.ReceivedBy = frm.OrderBy.value;
26408                window.pars3p.cart.Cellphone = frm.OrderPhone.value;
26409            }
26410        },
26411        onCartMuaHang_Click: function () {
26412            var dtCheck = new Date();
26413            if(lib3p_helper.utility.formatDateDDMMYYYY(window.pars3p.cartWaitTimeRun) != lib3p_helper.utility.formatDateDDMMYYYY(dtCheck)) {
26414                window.location.reload();
26415            }
26416            else {
26417                var query = null;
26418                var flagDelivery = false;
26419                var flag = true;
26420                if (window.pars3p.MobileClick == true) {
26421                    query = jQuery('.mobile-payment .dia-chi-edit form');
26422                    var queryData = jQuery('#mobile-payment-van-chuyen');
26423                    if (lib3p_helper.utility.hasValue(queryData) && queryData.length > 0 && lib3p_helper.utility.hasValue(queryData[0].delivery)) {
26424                        window.pars3p.cart.IsHachi24 = queryData[0].delivery.value == '1' || queryData[0].delivery.value == 1;
26425                    }
26426                    queryData = jQuery('#mobile-payment-thanh-toan');
26427                    if (lib3p_helper.utility.hasValue(queryData) && queryData.length > 0 && lib3p_helper.utility.hasValue(queryData[0].payment)) {
26428                        window.pars3p.cart.PaymentID = parseInt(queryData[0].payment.value);
26429                    }
26430                }
26431                else {
26432                    query = jQuery('.page-payment .dia-chi-edit form');
26433                    var queryData = jQuery('#page-payment-van-chuyen');
26434                    if (lib3p_helper.utility.hasValue(queryData) && queryData.length > 0 && lib3p_helper.utility.hasValue(queryData[0].delivery)) {
26435                        window.pars3p.cart.IsHachi24 = queryData[0].delivery.value == '1' || queryData[0].delivery.value == 1;
26436                    }
26437                    queryData = jQuery('#page-payment-thanh-toan');
26438                    if (lib3p_helper.utility.hasValue(queryData) && queryData.length > 0 && lib3p_helper.utility.hasValue(queryData[0].payment)) {
26439                        window.pars3p.cart.PaymentID = parseInt(queryData[0].payment.value);
26440                    }
26441                }
26442                if (window.pars3p.auth.isLogin == true) {
26443                    if (query.attr('has') == '1') {
26444                        flagDelivery = true;
26445                    }
26446                }
26447                else {
26448                    if (!lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP)) {
26449                        if (query.attr('has') == '1') {
26450                            flagDelivery = true;
26451                        }
26452                        //flagDelivery = true;
26453                    }
26454                }
26455                if (flagDelivery == true) {
26456                    if (lib3p.pageCartPayment.DeliveryEdit_Check(query, false, true) == true) {
26457                        lib3p.pageCartPayment.GetDelivery(query[0]);
26458                        lib3p.common_cartSet(window.pars3p.cart).then(function (data) {
26459    
26460                        }, function (err) {
26461                            lib3p.log(err);
26462                        });
26463                    }
26464                    else {
26465                        flag = false;
26466                    }
26467                }
26468                if (flag == true) {
26469                    if (window.pars3p.cart.Province > 0 && window.pars3p.cart.District > 0 && lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhone)) {
26470                        if (window.pars3p.cart.PaymentID > 0) {
26471                            if (window.pars3p.cart.FailCoupon != true) {
26472                                if (window.pars3p.cart.FailHachi24 != true && window.pars3p.cart.ShippingFee > 0) {
26473                                    var query = jQuery('.page-payment');
26474                                    if (window.pars3p.MobileClick == true) {
26475                                        query = jQuery('.mobile-payment');
26476                                    }
26477                                    if (!query.find('.cart-total').hasClass('haserror')) {
26478                                        flag = true;
26479                                        var data = {
26480                                            VATCode: '',
26481                                            VATDVQHNS: '',
26482                                            VATIdentityNo: '',
26483                                            VATPassportNo: '',
26484                                            VATBuyerName: '',
26485                                            VATCompany: '',
26486                                            VATAddress: '',
26487                                            VATEmail: '',
26488                                            VATPhone: '',
26489                                            VATContactName: '',
26490                                            RemarkClient: ''
26491                                        };
26492                                        data.RemarkClient = jQuery('#page-payment-ghi-chu').val();
26493                                        if (window.pars3p.MobileClick == true) {
26494                                            data.RemarkClient = jQuery('#mobile-payment-ghi-chu').val();
26495                                        }
26496                                        if (window.pars3p.cart.IsVAT == true) {
26497                                            if (window.pars3p.cart.VATType != 1 && window.pars3p.cart.VATType != 2 && window.pars3p.cart.VATType != 3) {
26498                                                window.pars3p.cart.VATType = 1;
26499                                            }
26500                                            flag = lib3p.pageCartPayment.CartVAT_Check('', window.pars3p.MobileClick);
26501                                        }
26502                                        if (flag == true) {
26503                                            window.pars3p.cart.RemarkClient = data.RemarkClient;
26504                                            lib3p.common_cartSet(window.pars3p.cart);
26505                                            lib3p.pageCartPayment.onCartMuaHang_CheckQuantity();
26506    
26507                                        }
26508                                        else {
26509                                            //jQuery('.popup-payment-vat .hachi-modal .modal .modal-dialog .modal-body .err').html(window.pars3p.tempError + flag);
26510                                            lib3p.pageCartPayment.onPopupPayment_Show();
26511                                        }
26512                                    }
26513    
26514                                }
26515                                else {
26516                                    if ((window.pars3p.cart.IsAppliedHachi24 != true || window.pars3p.cart.IsHachi24 != true) && lib3p_helper.utility.hasValue(window.pars3p.cart.CartDetails.find(function (o) { return o.IsHachi24 == true && o.IsChoose == true; }))) {
26517                                        if (window.pars3p.MobileClick == true) {
26518                                            window.scrollTo(0, 0);
26519                                        }
26520                                        //lib3p.header.Notify_Show('Chưa chọn hình thức vận chuyển');
26521                                    }
26522                                    else {
26523                                        alert('Địa chỉ không phù hợp');
26524                                    }
26525                                }
26526                            }
26527                            else {
26528                                alert('Áp dụng sai coupon');
26529                            }
26530                        }
26531                        else {
26532                            alert('Dữ liệu thanh toán bị sai');
26533                        }
26534                    }
26535    
26536                }
26537                
26538            }
26539
26540        },
26541        onCartMuaHang_CheckQuantity: function() {
26542            var cart = {
26543                Cart: lib3p_helper.cart.getCartInfo(),
26544                CartDetails: [],
26545                CartCoupon: []
26546            };
26547            window.pars3p.cart.CartDetails.forEach(function (c) {
26548                cart.CartDetails.push({ ProductID: c.ProductID, OrderQuantity: c.OrderQuantity, IsChoose: c.IsChoose });
26549            });
26550            if (window.pars3p.auth.isLogin == true) {
26551                lib3p.common_AuthPostURL(window.pars3p.api.auth.Payment_CheckQuantity, { cart: cart }, function (res) {
26552                    if (res == true) {
26553                        //lib3p.pageCartPayment.onCartMuaHang_CheckQuantityNext();
26554                        lib3p.pageCartPayment.CartMuaHang_Complete();
26555                    }
26556                    else {
26557                        window.pars3p.islockDiaglog = true;
26558                        var query = jQuery('.popup-payment-noquantity .hachi-modal');
26559                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
26560                            if (jQuery(query[0]).hasClass("d-none")) {
26561                                jQuery(query[0]).removeClass("d-none").addClass("d-block");
26562                            }
26563                            jQuery('.popup-payment-noquantity button').focus();
26564                        }
26565                        window.pars3p.otp.Timer = 6;
26566                        window.pars3p.timmer1s.push(function() {
26567                            return new Promise(function(resolve, reject) {
26568                                if(window.pars3p.otp.Timer > 0) {
26569                                    window.pars3p.otp.Timer--;
26570                                    jQuery('.popup-payment-noquantity .hachi-modal .warning .giay').html(window.pars3p.otp.Timer);
26571                                }
26572                            });                            
26573                        });
26574                        setTimeout(function () {
26575                            window.location.href = window.pars3p.urlCart;
26576                        }, 5000);
26577                    }
26578                }, function (err) {
26579                    lib3p.log(err);
26580                });
26581            }
26582            else {
26583                lib3p.common_PostURL(window.pars3p.api.public.Payment_CheckQuantity, { cart: cart }, function (res) {
26584                    if (res == true) {
26585                        //lib3p.pageCartPayment.onCartMuaHang_CheckQuantityNext();
26586                        lib3p.pageCartPayment.CartMuaHang_Complete();
26587                    }
26588                    else {
26589                        window.pars3p.islockDiaglog = true;
26590                        var query = jQuery('.popup-payment-noquantity .hachi-modal');
26591                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
26592                            if (jQuery(query[0]).hasClass("d-none")) {
26593                                jQuery(query[0]).removeClass("d-none").addClass("d-block");
26594                            }
26595                            jQuery('.popup-payment-noquantity button').focus();
26596                        }
26597                        window.pars3p.otp.Timer = 6;
26598                        window.pars3p.timmer1s.push(function() {
26599                            return new Promise(function(resolve, reject) {
26600                                if(window.pars3p.otp.Timer > 0) {
26601                                    window.pars3p.otp.Timer--;
26602                                    jQuery('.popup-payment-noquantity .hachi-modal .warning .giay').html(window.pars3p.otp.Timer);
26603                                }
26604                            });                            
26605                        });
26606                        setTimeout(function () {
26607                            window.location.href = window.pars3p.urlCart;
26608                        }, 5000);
26609                    }
26610                }, function (err) {
26611                    lib3p.log(err);
26612                });
26613            }
26614        },
26615        onNoQuanity_Submit: function() {
26616            window.location.href = window.pars3p.urlCart;
26617            event.preventDefault();
26618            return false;
26619        },
26620        /* onCartMuaHang_CheckQuantityNext: function () {
26621            if (window.pars3p.cart.IsGift == true && lib3p_helper.utility.hasListValue(window.pars3p.cart.ListGift)) {
26622                if ((lib3p_helper.utility.hasValue(window.pars3p.auth) && window.pars3p.auth.isLogin == true && lib3p.pageCart.phoneCheck.indexOf(window.pars3p.auth.phoneNumber) >= 0) || (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhone) && lib3p.pageCart.phoneCheck.indexOf(window.pars3p.cart.OrderPhone) >= 0)) {
26623                    lib3p.pageCartPayment.CartMuaHang_Complete();
26624                }
26625                else {
26626                    window.pars3p.cart.IsGift = false;
26627                    window.pars3p.cart.ListGift = [];
26628                    lib3p.pageCartPayment.CartMuaHang_Complete();
26629                }
26630            }
26631            else {
26632                lib3p.pageCartPayment.CartMuaHang_Complete();
26633            }
26634        }, */
26635        onCartMuaHangMobile_Click: function () {
26636            window.pars3p.MobileClick = true;
26637            lib3p.pageCartPayment.onCartMuaHang_Click();
26638        },
26639        CartMuaHang_LoadGift: function () {
26640            var query = jQuery('.popup-payment-gift .hachi-modal');
26641            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
26642                if (jQuery(query[0]).hasClass("d-none")) {
26643                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
26644
26645                    if (lib3p_helper.utility.hasListValue(window.pars3p.others.ListGroupGift) == false) {
26646                        var group = {};
26647                        window.pars3p.cart.ListGift.forEach(function (d) {
26648                            if (d.CategoryID > 0) {
26649                                if (!lib3p_helper.utility.hasValue(group[d.CategoryID])) {
26650                                    group[d.CategoryID] = {};
26651                                }
26652                                if (!lib3p_helper.utility.hasValue(group[d.CategoryID][d.BrandID])) {
26653                                    group[d.CategoryID][d.BrandID] = [];
26654                                }
26655                                d.Quantity = 0;
26656                                group[d.CategoryID][d.BrandID].push(d);
26657                            }
26658                        });
26659                        window.pars3p.cart.CartDetails.forEach(function (detail) {
26660                            if (lib3p_helper.utility.hasListValue(detail.ListGift)) {
26661                                detail.ListGift.forEach(function (d) {
26662                                    if (d.CategoryID > 0) {
26663                                        d.BannerCard = detail.ProductName;
26664                                        d.OrderQuantity = detail.OrderQuantity;
26665                                        d.OrderQuantityUse = detail.OrderQuantity;
26666                                        d.OrginalID = detail.ProductID;
26667                                        if (!lib3p_helper.utility.hasValue(group[d.CategoryID])) {
26668                                            group[d.CategoryID] = {};
26669                                        }
26670                                        if (!lib3p_helper.utility.hasValue(group[d.CategoryID][d.BrandID])) {
26671                                            group[d.CategoryID][d.BrandID] = [];
26672                                        }
26673                                        d.Quantity = 0;
26674                                        group[d.CategoryID][d.BrandID].push(d);
26675                                    }
26676                                });
26677                            }
26678                        });
26679                        window.pars3p.others.ListGroupGift = [];
26680                        for (var key in group) {
26681                            if (lib3p_helper.utility.hasListValue(group[key])) {
26682                                var first = null;
26683                                for (var key2 in group[key]) {
26684                                    first = group[key][key2][0];
26685                                }
26686                                var item = {
26687                                    key: first,
26688                                    group: group[key]
26689                                };
26690                                window.pars3p.others.ListGroupGift.push(item);
26691                            }
26692                        }
26693                        var html = '';
26694                        window.pars3p.others.ListGroupGift.forEach(function (g) {
26695                            html += '<div class="group-gift cate-' + g.key.CategoryID + ' type2"><div class="top-img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-qua-tang.svg" /></div>';
26696                            var tieude = '';
26697                            var tieudesub = '';
26698                            var tomtat = '';
26699                            if (g.key.TypeData == 15) {
26700                                tieude = 'Quà tặng kèm sản phẩm';
26701                                tieudesub = 'Tặng quà khi mua ' + g.key.BannerCard;
26702                                tomtat = 'Bạn vừa mua sản phẩm <span class="cl-dakgreen650 bold700">' + g.key.BannerCard + '</span>';
26703                            }
26704                            if (g.key.TypeData == 16) {
26705                                tieude = 'Quà tặng cho nhóm sản phẩm';
26706                                tieudesub = 'Tặng quà khi mua nhóm sản phẩm: ' + g.key.BannerCard;
26707                                tomtat = 'Bạn vừa mua nhóm sản phẩm <span class="cl-dakgreen650 bold700">' + g.key.BannerCard + '</span>';
26708                            }
26709                            if (g.key.TypeData == 17) {
26710                                tieude = 'Quà tặng cho đơn hàng';
26711                            }
26712                            html += '<div class="tieu-de s28 cl-dakgreen800 bold700">' + tieude + '</div>';
26713                            if (lib3p_helper.utility.hasValueString(tieudesub)) {
26714                                html += '<div class="tieu-de-sub s28 cl-dakgreen800 bold700">' + tieudesub + '</div>';
26715                            }
26716                            if (lib3p_helper.utility.hasValueString(tomtat)) {
26717                                html += '<div class="tom-tat s18 cl-dakgreen800 regular400">' + tomtat + '</div>';
26718                                html += '<div class="tom-tat s18 cl-dakgreen800 regular400">có quà tặng kèm dưới đây</div>';
26719                            }
26720                            html += '<div class="gia-tri-outline">';
26721                            html += '<div class="gia-tri" style="background-image: url(\'https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-bg.jpg\');">';
26722                            if (g.key.TypeData == 15) {
26723                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Số lượng sản phẩm đã mua</div><div class="value s20 cl-dakgreen800 bold700">' + g.key.OrderQuantity + '</div></div>';
26724                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Số lượng sản phẩm còn lại để chọn quà</div><div class="value-conlai s20 cl-orange500 bold700">' + g.key.OrderQuantity + '</div></div>';
26725                            }
26726                            else if (g.key.TypeData == 16) {
26727                                var lstid = [];
26728                                g.key.FreeShippingImage.split(',').forEach(function (s) {
26729                                    var id = parseInt(s);
26730                                    lstid.push(id);
26731                                });
26732                                var lstFind = window.pars3p.cart.CartDetails.filter(function (detail) { return lstid.indexOf(detail.ProductID) >= 0; });
26733                                var total = 0;
26734                                lstFind.forEach(function (detail) {
26735                                    total += detail.OrderQuantity * detail.UnitPrice;
26736                                });
26737                                g.key.TotalAmount = total;
26738                                g.key.TotalAmountUse = total;
26739                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Giá trị sản phẩm đã mua</div><div class="value s20 cl-dakgreen800 bold700">' + lib3p_helper.utility.formatMoney(g.key.TotalAmount) + 'đ</div></div>';
26740                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Giá trị còn lại để chọn quà</div><div class="value-conlai s20 cl-orange500 bold700">' + lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ</div></div>';
26741                            }
26742                            else if (g.key.TypeData == 17) {
26743                                g.key.TotalAmount = window.pars3p.cart.TotalAmount;
26744                                g.key.TotalAmountUse = window.pars3p.cart.TotalAmount;
26745                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Giá trị sản phẩm đã mua</div><div class="value s20 cl-dakgreen800 bold700">' + lib3p_helper.utility.formatMoney(g.key.TotalAmount) + 'đ</div></div>';
26746                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Giá trị còn lại để chọn quà</div><div class="value-conlai s20 cl-orange500 bold700">' + lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ</div></div>';
26747                            }
26748                            html += '</div>';
26749                            html += '<div class="text s15 cl-gregray550 regular400">Khi hết quà tặng Hachi Hachi sẽ gửi tặng bạn <br/>Mã quà tặng tương ứng với giá trị quà</div>';
26750                            html += '</div>';
26751
26752                            for (var key in g.group) {
26753                                var first = g.group[key][0];
26754                                if (g.key.TypeData == 15) {
26755                                    html += '<div class="nhom-sp nhom-' + g.key.CategoryID + '-' + key + '"><div class="nhom-sp-tieu-de s16 cl-gregray900 sibold600">Quà tặng khi mua số lượng sản phẩm là <span class="s20 bold700">' + first.Price + '</span></div>';
26756                                }
26757                                else {
26758                                    html += '<div class="nhom-sp nhom-' + g.key.CategoryID + '-' + key + '"><div class="nhom-sp-tieu-de s16 cl-gregray900 sibold600">Quà tặng khi mua giá trị sản phẩm là <span class="s20 bold700">' + lib3p_helper.utility.formatMoney(first.Price) + 'đ</span></div>';
26759                                }
26760                                html += '<div class="product-list owl-carousel">';
26761                                g.group[key].forEach(function (p) {
26762                                    html += '<div class="product-item">';
26763                                    html += '<div class="img"><img src="' + p.ImageThumb + '" alt="..."/></div>';
26764                                    html += '<div class="name-outline"><div class="name s13 cl-gregray800 medium500">' + p.ProductName + '</div>';
26765                                    html += '<div class="group-input"><button type="button" aria-label="hachihachi" class="sub sl-gregray200" onclick="lib3p.pageCartPayment.onPopupGiftSub_Click(this,' + p.CategoryID + ',' + p.BrandID + ',' + p.Code + ');"><span class="ico s12 hachi-icon-minus"></span></button>
26765<input type="number" value="0" onkeydown="lib3p.pageCartPayment.onPopupGiftInput_Keydown(event,this,' + p.CategoryID + ',' + p.BrandID + ',' + p.Code + ')" class="input sl-gregray200" max="' + p.QuantityWithOrder + '"/><button type="button" aria-label="hachihachi" class="add sl-gregray200" onclick="lib3p.pageCartPayment.onPopupGiftAdd_Click(this,' + p.CategoryID + ',' + p.BrandID + ',' + p.Code + ');"><span class="ico s12 hachi-icon-plus"></span></button></div>';
26766                                    html += '</div>';
26767                                    html += '</div>';
26768                                });
26769                                html += '</div>';
26770                                html += '</div>';
26771                            }
26772                            html += '</div>';
26773                        });
26774                        jQuery('.popup-payment-gift .hachi-modal .modal-body').html(html);
26775
26776                        jQuery('.popup-payment-gift .hachi-modal .modal-body .product-list.owl-carousel').owlCarousel({
26777                            autoplay: false,
26778                            autoplayTimeout: 3000,
26779                            autoplayHoverPause: true,
26780                            autoWidth: true,
26781                            loop: false,
26782                            nav: true,
26783                            dots: false,
26784                            margin: 10,
26785                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
26786                            navElement: 'div'
26787                        });
26788                    }
26789                }
26790            }
26791        },
26792        CartMuaHang_Complete: function () {
26793            setTimeout(function () {
26794                lib3p.common_LoadingShow();
26795            }, 1);
26796            var cart = {
26797                Cart: null
26798            };
26799            cart.Cart = lib3p_helper.cart.getCartInfo();
26800            cart.ListGift = [];
26801            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.ListGift)) {
26802                cart.ListGift = window.pars3p.cart.ListGift.map(function (o) { return { Code: o.Code, Quantity: o.Quantity, OrginalID: o.OrginalID } });
26803            }
26804            if (cart.Cart.IsVAT != true) {
26805                cart.Cart.VATType = null;
26806                cart.Cart.VATCode = '';
26807                cart.Cart.VATDVQHNS = '';
26808                cart.Cart.VATIdentityNo = '';
26809                cart.Cart.VATPassportNo = '';
26810                cart.Cart.VATBuyerName = '';
26811                cart.Cart.VATCompany = '';
26812                cart.Cart.VATAddress = '';
26813                cart.Cart.VATEmail = '';
26814                cart.Cart.VATPhone = '';
26815                cart.Cart.VATContactName = '';
26816                cart.Cart.VATUnion = false;
26817            }
26818            if (window.pars3p.auth.isLogin == true) {
26819                //lib3p.pageCart.Cache_Check();
26820                //lib3p.common_cartSet(window.pars3p.cart);
26821
26822                lib3p.common_AuthPostURL(window.pars3p.api.auth.Payment_Complete, { cart: cart }, function (res) {
26823                    setTimeout(function () {
26824                        lib3p.common_LoadingHide();
26825                    }, 1);
26826                    if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValue(res.Cart)) {
26827                        if(res.Cart.Code > 0) {
26828                            window.pars3p.cart.CartDetails = [];
26829                            window.pars3p.cart.CartCoupon = [];
26830                            window.pars3p.cart.ListGift = [];
26831                            window.pars3p.cart.RemarkClient = '';
26832
26833                            //lib3p.pageCart.Cache_Check();
26834                            if (res.URLRedirect.startsWith('?vnp') || res.URLRedirect.indexOf('vnpay') >= 0) {
26835                                window.pars3p.cart.URLRedirect = '';
26836                            }
26837                            else {
26838                                window.pars3p.cart.URLRedirect = res.URLRedirect;
26839                            }
26840                            //lib3p.common_cartSet(window.pars3p.cart);
26841
26842                            if (res.URLRedirect.startsWith('?vnp') || res.URLRedirect.indexOf('vnpay') >= 0) {
26843                                if (res.URLRedirect.startsWith('https://pay.vnpay.vn')) {
26844                                    window.location.href = res.URLRedirect;
26845                                }
26846                                else {
26847                                    window.location.href = 'https://pay.vnpay.vn/vpcpay.html' + res.URLRedirect;
26848                                }
26849                            }
26850                            else {
26851                                if (lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
26852                                    if (res.URLRedirect.indexOf('?') > 0) {
26853                                        res.URLRedirect = res.URLRedirect + '&' + window.pars3p.seo.Query;
26854                                    }
26855                                    else {
26856                                        res.URLRedirect = res.URLRedirect + '?' + window.pars3p.seo.Query;
26857                                    }
26858                                }
26859                                window.location.href = res.URLRedirect;
26860                            }
26861                        }
26862                        else {
26863                            window.location.href = window.pars3p.urlCart;
26864                        }
26865                    }
26866                }, function (err) {
26867                    setTimeout(function () {
26868                        lib3p.common_LoadingHide();
26869                    }, 1);
26870                    var query = jQuery('.popup-payment-timeout .hachi-modal');
26871                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
26872                        if (jQuery(query[0]).hasClass("d-none")) {
26873                            jQuery(query[0]).removeClass("d-none").addClass("d-block");
26874                        }
26875                    }
26876                    setTimeout(function () {
26877                        window.location.href = window.pars3p.urlCart;
26878                    }, 3000);
26879                    console.log(err);
26880                });
26881            }
26882            else {
26883                if (window.pars3p.cart.PaymentID != 1 || lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP)) {
26884                    cart.CartDetails = window.pars3p.cart.CartDetails;
26885                    cart.CartCoupon = window.pars3p.cart.CartCoupon;
26886                    lib3p.pageCart.Cache_Check();
26887                    lib3p.common_cartSet(window.pars3p.cart);
26888
26889                    cart.Cart.OTP_Temp = window.pars3p.cart.OTP_Temp;
26890                    lib3p.common_PostURL(window.pars3p.api.public.Payment_Complete, { cart: cart }, function (res) {
26891                        setTimeout(function () {
26892                            lib3p.common_LoadingHide();
26893                        }, 1);
26894                        if (lib3p_helper.utility.hasValue(res)) {
26895                            window.pars3p.cart.CartDetails = window.pars3p.cart.CartDetails.filter(function (c) { return c.IsChoose != true; });
26896                            window.pars3p.cart.CartCoupon = [];
26897                            window.pars3p.cart.ListGift = [];
26898                            window.pars3p.cart.RemarkClient = '';
26899                            lib3p.pageCart.Cache_Check();
26900                            lib3p.common_cartSet(window.pars3p.cart);
26901
26902                            if (res.URLRedirect.startsWith('?vnp') || res.URLRedirect.indexOf('vnpay') >= 0) {
26903                                window.pars3p.cart.URLRedirect = '';
26904                            }
26905                            else {
26906                                window.pars3p.cart.URLRedirect = res.URLRedirect;
26907                            }
26908                            if (res.URLRedirect.startsWith('?vnp') || res.URLRedirect.indexOf('vnpay') >= 0) {
26909                                if (res.URLRedirect.startsWith('https://pay.vnpay.vn')) {
26910                                    window.location.href = res.URLRedirect;
26911                                }
26912                                else {
26913                                    window.location.href = 'https://pay.vnpay.vn/vpcpay.html' + res.URLRedirect;
26914                                }
26915                            }
26916                            else {
26917                                if (lib3p_helper.utility.hasValueString(window.pars3p.seo.Query)) {
26918                                    if (res.URLRedirect.indexOf('?') > 0) {
26919                                        res.URLRedirect = res.URLRedirect + '&' + window.pars3p.seo.Query;
26920                                    }
26921                                    else {
26922                                        res.URLRedirect = res.URLRedirect + '?' + window.pars3p.seo.Query;
26923                                    }
26924                                }
26925                                window.location.href = res.URLRedirect;
26926                            }
26927                        }
26928                    }, function (err) {
26929                        setTimeout(function () {
26930                            lib3p.common_LoadingHide();
26931                        }, 1);
26932                        lib3p.log(err);
26933                    });
26934                }
26935                else {
26936                    setTimeout(function () {
26937                        lib3p.common_LoadingHide();
26938                    }, 1);
26939
26940                    lib3p.common_PostURL(window.pars3p.api.public.HeaderSMS_Test + '?browserid=' 
26940+ window.pars3p.BrowserID + '&connectid=' + window.pars3p.ConnectID, {}, function (resTest) {
26941                        if (resTest == true) {
26942                            lib3p.header.onOTPType_ShowV2(window.pars3p.cart.OrderPhone, function () {
26943                                window.pars3p.cart.OrderPhoneOTP = window.pars3p.otp.Password;
26944                                lib3p.common_cartSet(window.pars3p.cart).then(function (data) {
26945                                    lib3p.pageCartPayment.CartMuaHang_Complete();
26946                                }, function (err) {
26947                                    lib3p.log(err);
26948                                });
26949                            }, function () {
26950
26951                            });
26952                        }
26953                        else {
26954                            /* jQuery('.popup-payment-timeout .hachi-modal .modal-body .warning').html('Đơn hàng đã hết thời gian xử lý. Trang sẽ tự động tải lại sau 2s');
26955                            var query = jQuery('.popup-payment-timeout .hachi-modal');
26956                            if(lib3p_helper.utility.hasValue(query) && query.length > 0) {
26957                                if(jQuery(query[0]).hasClass("d-none")) {
26958                                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
26959                                }            
26960                            } */
26961                            lib3p.header.Notify_Show('Đơn hàng đã hết thời gian xử lý. Trang sẽ tự động tải lại sau 2s');
26962                            setTimeout(function () {
26963                                window.location.reload();
26964                            }, 2000);
26965                        }
26966                    }, function (errTest) {
26967                        lib3p.log(errTest);
26968                    });
26969
26970                }
26971            }
26972
26973        },
26974        onCartMuaHangMobile_Click_old: function () {
26975            window.pars3p.IsMobileClick = true;
26976
26977            var query = jQuery('#mobile-payment-van-chuyen');
26978            if (lib3p_helper.utility.hasValue(query) && query.length > 0 && lib3p_helper.utility.hasValue(query[0].delivery)) {
26979                window.pars3p.cart.IsHachi24 = query[0].delivery.value == '1' || query[0].delivery.value == 1;
26980            }
26981            query = jQuery('#mobile-payment-thanh-toan');
26982            if (lib3p_helper.utility.hasValue(query) && query.length > 0 && lib3p_helper.utility.hasValue(query[0].payment)) {
26983                window.pars3p.cart.PaymentID = parseInt(query[0].payment.value);
26984            }
26985            if (window.pars3p.cart.PaymentID > 0) {
26986                if (window.pars3p.cart.FailCoupon != true) {
26987                    if (window.pars3p.cart.FailHachi24 != true && window.pars3p.cart.ShippingFee > 0) {
26988                        if (!jQuery('.mobile-payment .cart-total').hasClass('haserror')) {
26989                            jQuery('.mobile-payment .vat .nhap-lieu div.error').html('');
26990                            jQuery('.mobile-payment .vat .nhap-lieu .input input').removeClass('error');
26991
26992                            var flag = true;
26993                            var data = {
26994                                VATCode: '',
26995                                VATDVQHNS: '',
26996                                VATIdentityNo: '',
26997                                VATPassportNo: '',
26998                                VATBuyerName: '',
26999                                VATCompany: '',
27000                                VATAddress: '',
27001                                VATEmail: '',
27002                                VATPhone: '',
27003                                VATContactName: '',
27004                                VATUnion: false,
27005                                RemarkClient: ''
27006                            };
27007
27008                            data.RemarkClient = jQuery('#mobile-payment-ghi-chu').val();
27009
27010                            var ctr = event.target.VATCompany;
27011                            if (window.pars3p.cart.IsVAT == true) {
27012                                if (window.pars3p.cart.VATType != 1 && window.pars3p.cart.VATType != 2 && window.pars3p.cart.VATType != 3) {
27013                                    window.pars3p.cart.VATType = 1;
27014                                }
27015                                flag = lib3p.pageCartPayment.CartVAT_Check('', true);
27016                            }
27017
27018                            if (flag == true) {
27019                                window.pars3p.cart.RemarkClient = data.RemarkClient;
27020                                lib3p.common_cartSet(window.pars3p.cart);
27021
27022                                if (window.pars3p.cart.IsGift == true && lib3p_helper.utility.hasListValue(window.pars3p.cart.ListGift)) {
27023                                    lib3p.pageCartPayment.CartMuaHangMobile_LoadGift();
27024                                }
27025                                else {
27026                                    lib3p.pageCartPayment.CartMuaHang_Complete();
27027                                }
27028                            }
27029                            else {
27030                                //jQuery('.popup-payment-vat .hachi-modal .modal .modal-dialog .modal
27030-body .err').html(window.pars3p.tempError + flag);
27031                                lib3p.pageCartPayment.onPopupPayment_Show();
27032                            }
27033                        }
27034                    }
27035                    else {
27036                        alert('Địa chỉ không phù hợp');
27037                    }
27038                }
27039                else {
27040                    alert('Áp dụng sai coupon');
27041                }
27042            }
27043            else {
27044                //lib3p.pageCartPayment.onPopupPaymentChuaChon_Show();
27045                alert('Dữ liệu thanh toán bị sai');
27046            }
27047        },
27048        CartMuaHangMobile_LoadGift: function () {
27049            var query = jQuery('.popup-mobile-payment-gift .hachi-modal');
27050            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27051                if (jQuery(query[0]).hasClass("d-none")) {
27052                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
27053
27054                    if (lib3p_helper.utility.hasListValue(window.pars3p.others.ListGroupGift) == false) {
27055                        var group = {};
27056                        window.pars3p.cart.ListGift.forEach(function (d) {
27057                            if (d.CategoryID > 0) {
27058                                if (!lib3p_helper.utility.hasValue(group[d.CategoryID])) {
27059                                    group[d.CategoryID] = {};
27060                                }
27061                                if (!lib3p_helper.utility.hasValue(group[d.CategoryID][d.BrandID])) {
27062                                    group[d.CategoryID][d.BrandID] = [];
27063                                }
27064                                d.Quantity = 0;
27065                                group[d.CategoryID][d.BrandID].push(d);
27066                            }
27067                        });
27068                        window.pars3p.cart.CartDetails.forEach(function (detail) {
27069                            if (lib3p_helper.utility.hasListValue(detail.ListGift)) {
27070                                detail.ListGift.forEach(function (d) {
27071                                    if (d.CategoryID > 0) {
27072                                        d.BannerCard = detail.ProductName;
27073                                        d.OrderQuantity = detail.OrderQuantity;
27074                                        d.OrderQuantityUse = detail.OrderQuantity;
27075                                        d.OrginalID = detail.ProductID;
27076                                        if (!lib3p_helper.utility.hasValue(group[d.CategoryID])) {
27077                                            group[d.CategoryID] = {};
27078                                        }
27079                                        if (!lib3p_helper.utility.hasValue(group[d.CategoryID][d.BrandID])) {
27080                                            group[d.CategoryID][d.BrandID] = [];
27081                                        }
27082                                        d.Quantity = 0;
27083                                        group[d.CategoryID][d.BrandID].push(d);
27084                                    }
27085                                });
27086                            }
27087                        });
27088                        window.pars3p.others.ListGroupGift = [];
27089                        for (var key in group) {
27090                            if (lib3p_helper.utility.hasListValue(group[key])) {
27091                                var first = null;
27092                                for (var key2 in group[key]) {
27093                                    first = group[key][key2][0];
27094                                }
27095                                var item = {
27096                                    key: first,
27097                                    group: group[key]
27098                                };
27099                                window.pars3p.others.ListGroupGift.push(item);
27100                            }
27101                        }
27102                        var html = '';
27103                        window.pars3p.others.ListGroupGift.forEach(function (g) {
27104                            html += '<div class="group-gift cate-' + g.key.CategoryID + ' type2"><div class="top-img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-qua-tang.svg" /></div>';
27105                            var tieude = '';
27106                            var tieudesub = '';
27107                            var tomtat = '';
27108                            if (g.key.TypeData == 15) {
27109                                tieude = 'Quà tặng kèm sản phẩm';
27110                                tieudesub = 'Tặng quà khi mua ' + g.key.BannerCard;
27111                                tomtat = 'Bạn vừa mua sản phẩm <span class="cl-dakgreen650 bold700">' + g.key.BannerCard + '</span>';
27112                            }
27113                            if (g.key.TypeData == 16) {
27114                                tieude = 'Quà tặng cho nhóm sản phẩm';
27115                                tieudesub = 'Tặng quà khi mua nhóm sản phẩm: ' + g.key.BannerCard;
27116                                tomtat = 'Bạn vừa mua nhóm sản phẩm <span class="cl-dakgreen650 bold700">' + g.key.BannerCard + '</span>';
27117                            }
27118                            if (g.key.TypeData == 17) {
27119                                tieude = 'Quà tặng cho đơn hàng';
27120                            }
27121                            html += '<div class="tieu-de s28 cl-dakgreen800 bold700">' + tieude + '</div>';
27122                            if (lib3p_helper.utility.hasValueString(tieudesub)) {
27123                                html += '<div class="tieu-de-sub s28 cl-dakgreen800 bold700">' + tieudesub + '</div>';
27124                            }
27125                            if (lib3p_helper.utility.hasValueString(tomtat)) {
27126                                html += '<div class="tom-tat s18 cl-dakgreen800 regular400">' + tomtat + '</div>';
27127                                html += '<div class="tom-tat s18 cl-dakgreen800 regular400">có quà tặng kèm dưới đây</div>';
27128                            }
27129                            html += '<div class="gia-tri-outline">';
27130                            html += '<div class="gia-tri" style="background-image: url(\'https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-bg.jpg\');">';
27131                            if (g.key.TypeData == 15) {
27132                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Số lượng sản phẩm đã mua</div><div class="value s20 cl-dakgreen800 bold700">' + g.key.OrderQuantity + '</div></div>';
27133                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Số lượng sản phẩm còn lại để chọn quà</div><div class="value-conlai s20 cl-orange500 bold700">' + g.key.OrderQuantity + '</div></div>';
27134                            }
27135                            else if (g.key.TypeData == 16) {
27136                                var lstid = [];
27137                                g.key.FreeShippingImage.split(',').forEach(function (s) {
27138                                    var id = parseInt(s);
27139                                    lstid.push(id);
27140                                });
27141                                var lstFind = window.pars3p.cart.CartDetails.filter(function (detail) { return lstid.indexOf(detail.ProductID) >= 0; });
27142                                var total = 0;
27143                                lstFind.forEach(function (detail) {
27144                                    total += detail.OrderQuantity * detail.UnitPrice;
27145                                });
27146                                g.key.TotalAmount = total;
27147                                g.key.TotalAmountUse = total;
27148                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Giá trị sản phẩm đã mua</div><div class="value s20 cl-dakgreen800 bold700">' + lib3p_helper.utility.formatMoney(g.key.TotalAmount) + 'đ</div></div>';
27149                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Giá trị còn lại để chọn quà</div><div class="value-conlai s20 cl-orange500 bold700">' + lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ</div></div>';
27150                            }
27151                            else if (g.key.TypeData == 17) {
27152                                g.key.TotalAmount = window.pars3p.cart.TotalAmount;
27153                                g.key.TotalAmountUse = window.pars3p.cart.TotalAmount;
27154                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Giá trị sản phẩm đã mua</div><div class="value s20 cl-dakgreen800 bold700">' + lib3p_helper.utility.formatMoney(g.key.TotalAmount) + 'đ</div></div>';
27155                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Giá trị còn lại để chọn quà</div><div class="value-conlai s20 cl-orange500 bold700">' + lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ</div></div>';
27156                            }
27157                            html += '</div>';
27158                            html += '<div class="text s15 cl-gregray550 regular400">Khi hết quà tặng Hachi Hachi sẽ gửi tặng bạn <br/>Mã quà tặng tương ứng với giá trị quà</div>';
27159                            html += '</div>';
27160
27161                            for (var key in g.group) {
27162                                var first = g.group[key][0];
27163                                if (g.key.TypeData == 15) {
27164                                    html += '<div class="nhom-sp nhom-' + g.key.CategoryID + '-' + key + '"><div class="nhom-sp-tieu-de s16 cl-gregray900 sibold600">Quà tặng khi mua số lượng sản phẩm là <span class="s20 bold700">' + first.Price + '</span></div>';
27165                                }
27166                                else {
27167                                    html += '<div class="nhom-sp nhom-' + g.key.CategoryID + '-' + key + '"><div class="nhom-sp-tieu-de s16 cl-gregray900 sibold600">Quà tặng khi mua giá trị sản phẩm là <span class="s20 bold700">' + lib3p_helper.utility.formatMoney(first.Price) + 'đ</span></div>';
27168                                }
27169                                html += '<div class="product-list owl-carousel">';
27170                                g.group[key].forEach(function (p) {
27171                                    html += '<div class="product-item">';
27172                                    html += '<div class="img"><img src="' + p.ImageThumb + '" alt="..."/></div>';
27173                                    html += '<div class="name-outline"><div class="name s13 cl-gregray800 medium500">' + p.ProductName + '</div>';
27174                                    html += '<div class="group-input"><button type="button" aria-label="hachihachi" class="sub sl-gregray200" onclick="lib3p.pageCartPayment.onPopupGiftSub_Click(this,' + p.CategoryID + ',' + p.BrandID + ',' + p.Code + ');"><span class="ico s12 hachi-icon-minus"></span></button>
27174<input type="number" value="0" onkeydown="lib3p.pageCartPayment.onPopupGiftInput_Keydown(event,this,' + p.CategoryID + ',' + p.BrandID + ',' + p.Code + ')" class="input sl-gregray200" max="' + p.QuantityWithOrder + '"/><button type="button" aria-label="hachihachi" class="add sl-gregray200" onclick="lib3p.pageCartPayment.onPopupGiftAdd_Click(this,' + p.CategoryID + ',' + p.BrandID + ',' + p.Code + ');"><span class="ico s12 hachi-icon-plus"></span></button></div>';
27175                                    html += '</div>';
27176                                    html += '</div>';
27177                                });
27178                                html += '</div>';
27179                                html += '</div>';
27180                            }
27181                            html += '</div>';
27182                        });
27183                        jQuery('.popup-mobile-payment-gift .hachi-modal .modal-body').html(html);
27184
27185                        jQuery('.popup-mobile-payment-gift .hachi-modal .modal-body .product-list.owl-carousel').owlCarousel({
27186                            autoplay: false,
27187                            autoplayTimeout: 3000,
27188                            autoplayHoverPause: true,
27189                            autoWidth: true,
27190                            loop: false,
27191                            nav: true,
27192                            dots: false,
27193                            margin: 10,
27194                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
27195                            navElement: 'div'
27196                        });
27197                    }
27198                }
27199            }
27200        },
27201
27202        onPopupPayment_Show: function () {
27203            var query = jQuery('.popup-payment-vat .hachi-modal');
27204            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27205                if (jQuery(query[0]).hasClass("d-none")) {
27206                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
27207                }
27208            }
27209            lib3p.common_cartSet(window.pars3p.cart);
27210        },
27211        onPopupPayment_Close: function () {
27212            var query = jQuery('.popup-payment-vat .hachi-modal');
27213            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27214                if (jQuery(query[0]).hasClass("d-block")) {
27215                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
27216                }
27217            }
27218        },
27219        onPopupPayment_Next: function () {
27220            lib3p.pageCartPayment.onPopupPayment_Close();
27221
27222            var cart = {
27223                Cart: null
27224            };
27225            cart.Cart = lib3p_helper.cart.getCartInfo();            
27226            cart.Cart.IsVAT = false;
27227            cart.Cart.VATType = null;
27228            cart.Cart.VATCode = '';
27229            cart.Cart.VATDVQHNS = '';
27230            cart.Cart.VATIdentityNo = '';
27231            cart.Cart.VATPassportNo = '';
27232            cart.Cart.VATBuyerName = '';
27233            cart.Cart.VATCompany = '';
27234            cart.Cart.VATAddress = '';
27235            cart.Cart.VATEmail = '';
27236            cart.Cart.VATPhone = '';
27237            cart.Cart.VATContactName = '';
27238            if (window.pars3p.auth.isLogin == true) {
27239                lib3p.common_AuthPostURL(window.pars3p.api.auth.Payment_Complete, { cart: cart }, function (res) {
27240                    if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValue(res.Cart)) {
27241                        if(res.Cart.Code > 0) {
27242                            window.pars3p.cart.CartDetails = [];
27243                            window.pars3p.cart.CartCoupon = [];
27244                            window.pars3p.cart.ListGift = [];
27245                            window.pars3p.cart.RemarkClient = '';
27246
27247                            lib3p.pageCart.Cache_Check();
27248                            if (res.URLRedirect.startsWith('?vnp') || res.URLRedirect.indexOf('vnpay') >= 0) {
27249                                window.pars3p.cart.URLRedirect = '';
27250                            }
27251                            else {
27252                                window.pars3p.cart.URLRedirect = res.URLRedirect;
27253                            }
27254                            lib3p.common_cartSet(window.pars3p.cart);
27255
27256                            if (res.URLRedirect.startsWith('?vnp') || res.URLRedirect.indexOf('vnpay') >= 0) {
27257                                if (res.URLRedirect.startsWith('https://pay.vnpay.vn')) {
27258                                    window.location.href = res.URLRedirect;
27259                                }
27260                                else {
27261                                    window.location.href = 'https://pay.vnpay.vn/vpcpay.html' + res.URLRedirect;
27262                                }
27263                            }
27264                            else {
27265                                window.location.href = res.URLRedirect;
27266                            }
27267                        }
27268                        else {
27269                            window.location.href = window.pars3p.urlCart;
27270                        }
27271                    }
27272                }, function (err) {
27273                    lib3p.log(err);
27274                });
27275            }
27276            else {
27277                cart.Cart.OTP_Temp = window.pars3p.cart.OTP_Temp;
27278                lib3p.common_PostURL(window.pars3p.api.public.Payment_Complete, { cart: cart }, function (res) {
27279                    if (lib3p_helper.utility.hasValue(res)) {
27280                        window.pars3p.cart.CartDetails = window.pars3p.cart.CartDetails.filter(function (c) { return c.IsChoose != true; });
27281                        window.pars3p.cart.CartCoupon = [];
27282                        window.pars3p.cart.ListGift = [];
27283                        window.pars3p.cart.RemarkClient = '';
27284
27285                        lib3p.pageCart.Cache_Check();
27286                        if (res.URLRedirect.startsWith('?vnp') || res.URLRedirect.indexOf('vnpay') >= 0) {
27287                            window.pars3p.cart.URLRedirect = '';
27288                        }
27289                        else {
27290                            window.pars3p.cart.URLRedirect = res.URLRedirect;
27291                        }
27292                        lib3p.common_cartSet(window.pars3p.cart);
27293
27294                        if (res.URLRedirect.startsWith('?vnp') || res.URLRedirect.indexOf('vnpay') >= 0) {
27295                            if (res.URLRedirect.startsWith('https://pay.vnpay.vn')) {
27296                                window.location.href = res.URLRedirect;
27297                            }
27298                            else {
27299                                window.location.href = 'https://pay.vnpay.vn/vpcpay.html' + res.URLRedirect;
27300                            }
27301                        }
27302                        else {
27303                            window.location.href = res.URLRedirect;
27304                        }
27305                    }
27306                }, function (err) {
27307                    lib3p.log(err);
27308                });
27309            }
27310        },
27311        onPopupPayment_Ok: function () {
27312            lib3p.pageCartPayment.onPopupPayment_Close();
27313            var query = jQuery('.page-payment .vat .nhap-lieu .input input.error');
27314            if (window.pars3p.IsMobileClick == true) {
27315                query = jQuery('.mobile-payment .vat .nhap-lieu .input input.error');
27316            }
27317            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27318                jQuery(query[0]).focus();
27319            }
27320        },
27321        onCartShip_Click: function () {
27322            //lib3p.common_urllastSet(window.location.href);
27323            //window.location.href = window.pars3p.urlCartDelivery;
27324            if (window.pars3p.auth.isLogin == true) {
27325                /* lib3p.common_urllastSet(window.location.href);
27326                window.location.href = window.pars3p.urlCartDelivery; */
27327                lib3p.header.PopupDelivery_Show();
27328            }
27329            else {
27330                window.pars3p.cart.OrderPhoneOTP = '';
27331                lib3p.pageCartPayment.LoadDataEdit();
27332            }
27333        },
27334        onCartCoupon_Toggle: function () {
27335            var query = jQuery('.popup-cart-coupon-choose .hachi-modal');
27336            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27337                if (jQuery(query[0]).hasClass("d-none")) {
27338                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
27339                }
27340            }
27341            /* if(lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)){
27342                if(jQuery('.page-payment .coupon').hasClass('open')) {
27343                    jQuery('.page-payment .coupon').removeClass('open');
27344                    jQuery('.mobile-payment .coupon').removeClass('open');
27345                }
27346                else {
27347                    jQuery('.page-payment .coupon').addClass('open');
27348                    jQuery('.mobile-payment .coupon').addClass('open');
27349                }
27350            } */
27351        },
27352        onPayment_Change: function (event, id) {
27353            if (event.currentTarget.checked == true) {
27354                //jQuery('#js_hinh_thuc_thanh_toan .listdetails .item.active .justify-content-between .hachi-color-text-10').html('');
27355                //jQuery('#js_hinh_thuc_thanh_toan .listdetails .item.active .bank-detail
27355s').hide();
27356                jQuery('.page-payment .thanh-toan .list .item.active').removeClass('active');
27357                var query = jQuery(event.currentTarget).parents('.item');
27358                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27359                    if (!jQuery(query[0]).hasClass('active')) {
27360                        jQuery(query[0]).addClass('active');
27361                    }
27362                }
27363                window.pars3p.cart.PaymentID = id;
27364                var itemPayment = window.pars3p.listPayment.find(function (c) { return c.Code == window.pars3p.cart.PaymentID; });
27365                if (lib3p_helper.utility.hasValue(itemPayment)) {
27366                    jQuery('.page-payment .thanh-toan-txt').html(itemPayment.PaymentName);
27367                }
27368                else {
27369                    jQuery('.page-payment .thanh-toan-txt').html('');
27370                }
27371                if (window.pars3p.auth.isLogin == true) {
27372                    var req = {
27373                        Cart: {
27374                            Code: window.pars3p.cart.Code,
27375                            PaymentID: id,
27376                            BankID: -1,
27377                        }
27378                    };
27379                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Payment_UpdatePayment, { cart: req }, function (res) {
27380                        if (res == true) {
27381                            lib3p.common_cartSet(window.pars3p.cart);
27382                        }
27383                    }, function (err) {
27384                        lib3p.log(err);
27385                    });
27386                }
27387                else {
27388                    lib3p.common_cartSet(window.pars3p.cart);
27389                }
27390            }
27391        },
27392        onCartVAT_Toggle: function () {
27393            var query = jQuery('.page-payment .vat');
27394            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27395                if (!jQuery(query).hasClass('open')) {
27396                    jQuery(query).addClass('open');
27397                    jQuery('.mobile-payment .vat').addClass('open');
27398                    window.pars3p.cart.IsVAT = true;
27399                    lib3p.common_cartSet(window.pars3p.cart);
27400                }
27401                else {
27402                    jQuery(query).removeClass('open');
27403                    jQuery('.mobile-payment .vat').removeClass('open');
27404                    window.pars3p.cart.IsVAT = false;
27405                    lib3p.common_cartSet(window.pars3p.cart);
27406                }
27407            }
27408        },
27409
27410        onCartVAT_KeyDown: function (event, el) {
27411            var classname = el.className;
27412            if (event.keyCode == 13 || event.keyCode == 27) {
27413                if (event.keyCode == 13) {
27414                    setTimeout(function () {
27415                        //lib3p.pageXem.onGuiHoaDon_Click(null);
27416                    }, 100);
27417                }
27418            }
27419            else {
27420                setTimeout(function () {
27421                    var query = jQuery('.page-payment .vat .nhap-lieu');
27422                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27423                        if (window.pars3p.cart.VATType != 1 && window.pars3p.cart.VATType != 2 && window.pars3p.cart.VATType != 3) {
27424                            window.pars3p.cart.VATType = 1;
27425                        }
27426                        if (lib3p.pageCartPayment.CartVAT_Check(classname)) {
27427
27428                        }
27429                    }
27430                }, 100);
27431            }
27432        },
27433        onCartVATMobile_KeyDown: function (event, el) {
27434            var classname = el.className;
27435            if (event.keyCode == 13 || event.keyCode == 27) {
27436                if (event.keyCode == 13) {
27437                    setTimeout(function () {
27438                        //lib3p.pageXem.onGuiHoaDon_Click(null);
27439                    }, 100);
27440                }
27441            }
27442            else {
27443                setTimeout(function () {
27444                    var query = jQuery('.mobile-payment .vat .nhap-lieu');
27445                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27446                        if (window.pars3p.cart.VATType != 1 && window.pars3p.cart.VATType != 2 && window.pars3p.cart.VATType != 3) {
27447                            window.pars3p.cart.VATType = 1;
27448                        }
27449                        if (lib3p.pageCartPayment.CartVAT_Check(classname, true)) {
27450                            //if(lib3p.pageCartPayment.CartVATMobile_Check(classname)) {
27451
27452                        }
27453                    }
27454                }, 100);
27455            }
27456        },
27457        onCartVAT_Change: function (event, el) {
27458            var val = parseInt(el.value);
27459            window.pars3p.cart.VATType = val;
27460            lib3p.common_cartSet(window.pars3p.cart);
27461            lib3p.pageCartPayment.CartVAT_HienChon(val);
27462        },
27463        CartVAT_HienChon: function (num) {
27464            if (num == 1) {
27465                jQuery('.page-payment .vat .nhap-lieu .chon-1').show();
27466                jQuery('.page-payment .vat .nhap-lieu .chon-2').hide();
27467                jQuery('.page-payment .vat .nhap-lieu .chon-3').hide();
27468                jQuery('.mobile-payment .vat .nhap-lieu .chon-1').show();
27469                jQuery('.mobile-payment .vat .nhap-lieu .chon-2').hide();
27470                jQuery('.mobile-payment .vat .nhap-lieu .chon-3').hide();
27471
27472                var query = jQuery('.page-payment .vat .nhap-lieu .VATBuyerName');
27473                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27474                    jQuery(query[0]).attr('placeholder', 'Họ tên đầy đủ');
27475                }
27476                query = jQuery('.page-payment .vat .nhap-lieu .CompanyAddress');
27477                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27478                    jQuery(query[0]).attr('placeholder', 'Địa chỉ đầy đủ của Công ty/Tổ chức/HKD');
27479                }
27480                jQuery('.mobile-payment .vat .nhap-lieu .VATBuyerName');
27481                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27482                    jQuery(query[0]).attr('placeholder', 'Họ tên đầy đủ');
27483                }
27484                query = jQuery('.mobile-payment .vat .nhap-lieu .CompanyAddress');
27485                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27486                    jQuery(query[0]).attr('placeholder', 'Địa chỉ đầy đủ của Công ty/Tổ chức');
27487                }
27488            }
27489            else if (num == 2) {
27490                jQuery('.page-payment .vat .nhap-lieu .chon-1').hide();
27491                jQuery('.page-payment .vat .nhap-lieu .chon-2').show();
27492                jQuery('.page-payment .vat .nhap-lieu .chon-3').hide();
27493                jQuery('.mobile-payment .vat .nhap-lieu .chon-1').hide();
27494                jQuery('.mobile-payment .vat .nhap-lieu .chon-2').show();
27495                jQuery('.mobile-payment .vat .nhap-lieu .chon-3').hide();
27496
27497                var query = jQuery('.page-payment .vat .nhap-lieu .VATBuyerName');
27498                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27499                    jQuery(query[0]).attr('placeholder', 'Họ tên đầy đủ');
27500                }
27501                query = jQuery('.page-payment .vat .nhap-lieu .VATAddress');
27502                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27503                    jQuery(query[0]).attr('placeholder', 'Địa chỉ đầy đủ');
27504                }
27505                query = jQuery('.mobile-payment .vat .nhap-lieu .VATBuyerName');
27506                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27507                    jQuery(query[0]).attr('placeholder', 'Họ tên đầy đủ');
27508                }
27509                query = jQuery('.mobile-payment .vat .nhap-lieu .VATAddress');
27510                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27511                    jQuery(query[0]).attr('placeholder', 'Địa chỉ đầy đủ');
27512                }
27513            }
27514            else if (num == 3) {
27515                jQuery('.page-payment .vat .nhap-lieu .chon-1').hide();
27516                jQuery('.page-payment .vat .nhap-lieu .chon-2').hide();
27517                jQuery('.page-payment .vat .nhap-lieu .chon-3').show();
27518                jQuery('.mobile-payment .vat .nhap-lieu .chon-1').hide();
27519                jQuery('.mobile-payment .vat .nhap-lieu .chon-2').hide();
27520                jQuery('.mobile-payment .vat .nhap-lieu .chon-3').show();
27521
27522                var query = jQuery('.page-payment .vat .nhap-lieu .VATBuyerName');
27523                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27524                    jQuery(query[0]).attr('placeholder', 'Họ tên đầy đủ');
27525                }
27526                query = jQuery('.page-payment .vat .nhap-lieu .VATAddress');
27527                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27528                    jQuery(query[0]).attr('placeholder', 'Địa chỉ đầy đủ');
27529                }
27530                query = jQuery('.mobile-payment .vat .nhap-lieu .VATBuyerName');
27531                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27532                    jQuery(query[0]).attr('placeholder', 'Họ tên đầy đủ');
27533                }
27534                query = jQuery('.mobile-payment .vat .nhap-lieu .VATAddress');
27535                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27536                    jQuery(query[0]).attr('placeholder', 'Địa chỉ đầy đủ');
27537                }
27538            }
27539        },
27540        CartVAT_Check: function (classname, ismobile) {
27541            var query = jQuery('.page-payment .vat .nhap-lieu');
27542            if (ismobile == true) {
27543                query = jQuery('.mobile-payment .vat .nhap-lieu');
27544            }
27545            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27546                if (!lib3p_helper.utility.hasValueString(classname)) {
27547                    jQuery('.page-payment .vat .nhap-lieu').find('.error').html('');
27548                    jQuery('.page-payment .vat .nhap-lieu').find('.input input').removeClass('error');
27549                    jQuery('.page-payment .vat .nhap-lieu').find('.input-sub').show();
27550                    if (ismobile == true) {
27551                        jQuery('.mobile-payment .vat .nhap-lieu').find('.error').html('');
27552                        jQuery('.mobile-payment .vat .nhap-lieu').find('.input input').removeClass('error');
27553                        jQuery('.mobile-payment .vat .nhap-lieu').find('.input-sub').show();
27554                    }
27555                }
27556                var flag = true;
27557
27558                var ctr = null;
27559                var key = '';
27560                window.pars3p.tempError = '';
27561                key = '.VATUnion';
27562                ctr = jQuery(query[0]).find(key)[0];
27563                window.pars3p.cart.VATUnion = ctr.checked == true;
27564                if (window.pars3p.cart.VATType != 1 && window.pars3p.cart.VATType != 2 && window.pars3p.cart.VATType != 3) {
27565                    window.pars3p.cart.VATType = 1;
27566                }
27567                if (window.pars3p.cart.VATType == 1) {
27568                    key = '.VATCode';
27569                    ctr = jQuery(query[0]).find(key)[0];
27570                    window.pars3p.cart.VATCode = ctr.value;
27571                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27572                        if (jQuery(ctr).hasClass('error')) {
27573                            jQuery(ctr).removeClass('error');
27574                        }
27575                        jQuery(ctr).parent().find('.input-sub').show();
27576                        jQuery(ctr).parent().find('.error').html('');
27577                    }
27578                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
27579                        if (window.pars3p.cart.VATUnion != true) {
27580                            window.pars3p.tempError += '11';
27581                            flag = false;
27582                            if (!jQuery(ctr).hasClass('error')) {
27583                                jQuery(ctr).addClass('error');
27584                            }
27585                            jQuery(ctr).parent().find('.input-sub').hide();
27586                            jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
27586<span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
27587                        }
27588                    }
27589                    else if ((ctr.value.length == 10 || ctr.value.length == 14 || ctr.value.length == 12) == false) {
27590                        window.pars3p.tempError += '12';
27591                        flag = false;
27592                        if (!jQuery(ctr).hasClass('error')) {
27593                            jQuery(ctr).addClass('error');
27594                        }
27595                        jQuery(ctr).parent().find('.input-sub').hide();
27596                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã số thuế chưa đúng (với định dạng xxxxxxxxxx-xxx hoặc số định danh)</span>');
27597                    }
27598                    else if (ctr.value.length == 14 && /^[0-9]{10}[-][0-9]{3}$/.test(ctr.value) != true) {
27599                        window.pars3p.tempError += '13';
27600                        flag = false;
27601                        if (!jQuery(ctr).hasClass('error')) {
27602                            jQuery(ctr).addClass('error');
27603                        }
27604                        jQuery(ctr).parent().find('.input-sub').hide();
27605                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã số thuế chưa đúng (với định dạng xxxxxxxxxx-xxx hoặc số định danh)</span>');
27606                    }
27607                    else if ((ctr.value.length == 10 || ctr.value.length == 12) && /^[0-9]+$/.test(ctr.value) != true) {
27608                        window.pars3p.tempError += '14';
27609                        flag = false;
27610                        if (!jQuery(ctr).hasClass('error')) {
27611                            jQuery(ctr).addClass('error');
27612                        }
27613                        jQuery(ctr).parent().find('.input-sub').hide();
27614                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã số thuế chưa đúng (với định dạng xxxxxxxxxx-xxx hoặc số định danh)</span>');
27615                    }
27616                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27617                        return flag;
27618                    }
27619                    key = '.VATCompany';
27620                    ctr = jQuery(query[0]).find(key)[0];
27621                    window.pars3p.cart.VATCompany = ctr.value;
27622                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27623                        if (jQuery(ctr).hasClass('error')) {
27624                            jQuery(ctr).removeClass('error');
27625                        }
27626                        jQuery(ctr).parent().find('.input-sub').show();
27627                        jQuery(ctr).parent().find('.error').html('');
27628                    }
27629                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
27630                        window.pars3p.tempError += '21';
27631                        flag = false;
27632                        if (!jQuery(ctr).hasClass('error')) {
27633                            jQuery(ctr).addClass('error');
27634                        }
27635                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
27636                    }
27637                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27638                        return flag;
27639                    }
27640                }
27641                else if (window.pars3p.cart.VATType == 2) {
27642                    key = '.VATIdentityNo';
27643                    ctr = jQuery(query[0]).find(key)[0];
27644                    window.pars3p.cart.VATIdentityNo = ctr.value;
27645                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27646                        if (jQuery(ctr).hasClass('error')) {
27647                            jQuery(ctr).removeClass('error');
27648                        }
27649                        jQuery(ctr).parent().find('.input-sub').show();
27650                        jQuery(ctr).parent().find('.error').html('');
27651                    }
27652                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
27653                        window.pars3p.tempError += '31';
27654                        flag = false;
27655                        if (!jQuery(ctr).hasClass('error')) {
27656                            jQuery(ctr).addClass('error');
27657                        }
27658                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
27658<span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
27659                    }
27660                    else if (/^\d{9}$/.test(ctr.value) != true && /^\d{12}$/.test(ctr.value) != true) {
27661                        window.pars3p.tempError += '32';
27662                        flag = false;
27663                        if (!jQuery(ctr).hasClass('error')) {
27664                            jQuery(ctr).addClass('error');
27665                        }
27666                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số định danh không đúng định dạng</span>');
27667                    }
27668                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27669                        return flag;
27670                    }
27671                    key = '.VATBuyerName';
27672                    ctr = jQuery(query[0]).find(key)[0];
27673                    window.pars3p.cart.VATBuyerName = ctr.value;
27674                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27675                        if (jQuery(ctr).hasClass('error')) {
27676                            jQuery(ctr).removeClass('error');
27677                        }
27678                        jQuery(ctr).parent().find('.input-sub').show();
27679                        jQuery(ctr).parent().find('.error').html('');
27680                    }
27681                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
27682                        window.pars3p.tempError += '41';
27683                        flag = false;
27684                        if (!jQuery(ctr).hasClass('error')) {
27685                            jQuery(ctr).addClass('error');
27686                        }
27687                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
27688                    }
27689                    else if (ctr.value.length >= 500) {
27690                        window.pars3p.tempError += '42';
27691                        flag = false;
27692                        if (!jQuery(ctr).hasClass('error')) {
27693                            jQuery(ctr).addClass('error');
27694                        }
27695                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập ít hơn 500 ký tự</span>');
27696                    }
27697                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27698                        return flag;
27699                    }
27700                }
27701                else if (window.pars3p.cart.VATType == 3) {
27702                    key = '.VATPassportNo';
27703                    ctr = jQuery(query[0]).find(key)[0];
27704                    window.pars3p.cart.VATPassportNo = ctr.value;
27705                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27706                        if (jQuery(ctr).hasClass('error')) {
27707                            jQuery(ctr).removeClass('error');
27708                        }
27709                        jQuery(ctr).parent().find('.input-sub').show();
27710                        jQuery(ctr).parent().find('.error').html('');
27711                    }
27712                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
27713                        window.pars3p.tempError += '51';
27714                        flag = false;
27715                        if (!jQuery(ctr).hasClass('error')) {
27716                            jQuery(ctr).addClass('error');
27717                        }
27718                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
27718<span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
27719                    }
27720                    else if (/^[a-zA-Z]\d{8}$/.test(ctr.value) != true) {
27721                        window.pars3p.tempError += '52';
27722                        flag = false;
27723                        if (!jQuery(ctr).hasClass('error')) {
27724                            jQuery(ctr).addClass('error');
27725                        }
27726                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số hộ chiếu không đúng định dạng, ví dụ: A12345678</span>');
27727                    }
27728                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27729                        return flag;
27730                    }
27731                    key = '.VATBuyerName';
27732                    ctr = jQuery(query[0]).find(key)[0];
27733                    window.pars3p.cart.VATBuyerName = ctr.value;
27734                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27735                        if (jQuery(ctr).hasClass('error')) {
27736                            jQuery(ctr).removeClass('error');
27737                        }
27738                        jQuery(ctr).parent().find('.input-sub').show();
27739                        jQuery(ctr).parent().find('.error').html('');
27740                    }
27741                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
27742                        window.pars3p.tempError += '61';
27743                        flag = false;
27744                        if (!jQuery(ctr).hasClass('error')) {
27745                            jQuery(ctr).addClass('error');
27746                        }
27747                        //jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập Tên người mua hàng</span>');
27748                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
27749                    }
27750                    else if (ctr.value.length >= 500) {
27751                        window.pars3p.tempError += '62';
27752                        flag = false;
27753                        if (!jQuery(ctr).hasClass('error')) {
27754                            jQuery(ctr).addClass('error');
27755                        }
27756                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập ít hơn 500 ký tự</span>');
27757                    }
27758                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27759                        return flag;
27760                    }
27761                }
27762                else {
27763                    window.pars3p.tempError += '02';
27764                    return false;
27765                }
27766                key = '.VATAddress';
27767                ctr = jQuery(query[0]).find(key)[0];
27768                window.pars3p.cart.VATAddress = ctr.value;
27769                if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27770                    if (jQuery(ctr).hasClass('error')) {
27771                        jQuery(ctr).removeClass('error');
27772                    }
27773                    jQuery(ctr).parent().find('.input-sub').show();
27774                    jQuery(ctr).parent().find('.error').html('');
27775                }
27776                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
27777                    window.pars3p.tempError += '71';
27778                    flag = false;
27779                    if (!jQuery(ctr).hasClass('error')) {
27780                        jQuery(ctr).addClass('error');
27781                    }
27782                    jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
27782<span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
27783                }
27784                if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27785                    return flag;
27786                }
27787                key = '.VATEmail';
27788                ctr = jQuery(query[0]).find(key)[0];
27789                window.pars3p.cart.VATEmail = ctr.value;
27790                if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27791                    if (jQuery(ctr).hasClass('error')) {
27792                        jQuery(ctr).removeClass('error');
27793                    }
27794                    jQuery(ctr).parent().find('.input-sub').show();
27795                    jQuery(ctr).parent().find('.error').html('');
27796                }
27797                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
27798                    window.pars3p.tempError += '81';
27799                    flag = false;
27800                    if (!jQuery(ctr).hasClass('error')) {
27801                        jQuery(ctr).addClass('error');
27802                    }
27803                    jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
27804                }
27805                else if (!lib3p_helper.utility.isEmail(ctr.value)) {
27806                    window.pars3p.tempError += '82';
27807                    flag = false;
27808                    if (!jQuery(ctr).hasClass('error')) {
27809                        jQuery(ctr).addClass('error');
27810                    }
27811                    jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Email chưa đúng</span>');
27812                }
27813                if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27814                    return flag;
27815                }
27816                key = '.VATPhone';
27817                ctr = jQuery(query[0]).find(key)[0];
27818                window.pars3p.cart.VATPhone = ctr.value;
27819                if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27820                    if (jQuery(ctr).hasClass('error')) {
27821                        jQuery(ctr).removeClass('error');
27822                    }
27823                    jQuery(ctr).parent().find('.input-sub').show();
27824                    jQuery(ctr).parent().find('.error').html('');
27825                }
27826                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
27827                    window.pars3p.tempError += '91';
27828                    flag = false;
27829                    if (!jQuery(ctr).hasClass('error')) {
27830                        jQuery(ctr).addClass('error');
27831                    }
27832                    jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
27833                }
27834                else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
27835                    window.pars3p.tempError += '92';
27836                    flag = false;
27837                    if (!jQuery(ctr).hasClass('error')) {
27838                        jQuery(ctr).addClass('error');
27839                    }
27840                    jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
27841                }
27842                if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27843                    return flag;
27844                }
27845                key = '.VATContactName';
27846                ctr = jQuery(query[0]).find(key)[0];
27847                window.pars3p.cart.VATContactName = ctr.value;
27848                if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27849                    if (jQuery(ctr).hasClass('error')) {
27850                        jQuery(ctr).removeClass('error');
27851                    }
27852                    jQuery(ctr).parent().find('.input-sub').show();
27853                    jQuery(ctr).parent().find('.error').html('');
27854                }
27855                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
27856                    window.pars3p.tempError += '01';
27857                    flag = false;
27858                    if (!jQuery(ctr).hasClass('error')) {
27859                        jQuery(ctr).addClass('error');
27860                    }
27861                    jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
27861<span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
27862                }
27863
27864                return flag;
27865            }
27866        },
27867        CartVATMobile_Check: function (classname) {
27868            var query = jQuery('.mobile-payment .vat .nhap-lieu');
27869            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
27870                if (!lib3p_helper.utility.hasValueString(classname)) {
27871                    jQuery('.mobile-payment .vat .nhap-lieu').find('.error').html('');
27872                    jQuery('.mobile-payment .vat .nhap-lieu').find('.input input').removeClass('error');
27873                    jQuery('.mobile-payment .vat .nhap-lieu').find('.input-sub').show();
27874                }
27875                var flag = true;
27876
27877                var ctr = null;
27878                var key = '';
27879                if (window.pars3p.cart.VATType == 1) {
27880                    key = '.VATCode';
27881                    ctr = jQuery(query[0]).find(key)[0];
27882                    window.pars3p.cart.VATCode = ctr.value;
27883                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27884                        if (jQuery(ctr).hasClass('error')) {
27885                            jQuery(ctr).removeClass('error');
27886                        }
27887                        jQuery(ctr).parent().find('.input-sub').show();
27888                        jQuery(ctr).parent().find('.error').html('');
27889                    }
27890                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
27891
27892                    }
27893                    else if ((ctr.value.length == 10 || ctr.value.length == 14 || ctr.value.length == 12) == false) {
27894                        flag = false;
27895                        if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27896                            if (!jQuery(ctr).hasClass('error')) {
27897                                jQuery(ctr).addClass('error');
27898                            }
27899                            jQuery(ctr).parent().find('.input-sub').hide();
27900                            jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã số thuế chưa đúng (với định dạng xxxxxxxxxx-xxx hoặc số định danh)</span>');
27901                        }
27902                    }
27903                    else if (ctr.value.length == 14 && /^[0-9]{10}[-][0-9]{3}$/.test(ctr.value) != true) {
27904                        flag = false;
27905                        if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27906                            if (!jQuery(ctr).hasClass('error')) {
27907                                jQuery(ctr).addClass('error');
27908                            }
27909                            jQuery(ctr).parent().find('.input-sub').hide();
27910                            jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã số thuế chưa đúng (với định dạng xxxxxxxxxx-xxx hoặc số định danh)</span>');
27911                        }
27912                    }
27913                    else if ((ctr.value.length == 10 || ctr.value.length == 12) && /^[0-9]+$/.test(ctr.value) != true) {
27914                        flag = false;
27915                        if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27916                            if (!jQuery(ctr).hasClass('error')) {
27917                                jQuery(ctr).addClass('error');
27918                            }
27919                            jQuery(ctr).parent().find('.input-sub').hide();
27920                            jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
27920<span class="s13 cl-gregray600 regular400">Mã số thuế chưa đúng (với định dạng xxxxxxxxxx-xxx hoặc số định danh)</span>');
27921                        }
27922                    }
27923                    key = '.VATCompany';
27924                    ctr = jQuery(query[0]).find(key)[0];
27925                    window.pars3p.cart.VATCompany = ctr.value;
27926                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27927                        if (jQuery(ctr).hasClass('error')) {
27928                            jQuery(ctr).removeClass('error');
27929                        }
27930                        jQuery(ctr).parent().find('.input-sub').show();
27931                        jQuery(ctr).parent().find('.error').html('');
27932                    }
27933                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
27934                        flag = false;
27935                        if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27936                            if (!jQuery(ctr).hasClass('error')) {
27937                                jQuery(ctr).addClass('error');
27938                            }
27939                            //jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập tên đơn vị/ cá nhân</span>');
27940                            jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
27941                        }
27942                    }
27943                }
27944                else if (window.pars3p.cart.VATType == 2) {
27945                    key = '.VATIdentityNo';
27946                    ctr = jQuery(query[0]).find(key)[0];
27947                    window.pars3p.cart.VATIdentityNo = ctr.value;
27948                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27949                        if (jQuery(ctr).hasClass('error')) {
27950                            jQuery(ctr).removeClass('error');
27951                        }
27952                        jQuery(ctr).parent().find('.input-sub').show();
27953                        jQuery(ctr).parent().find('.error').html('');
27954                    }
27955                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
27956                        flag = false;
27957                        if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27958                            if (!jQuery(ctr).hasClass('error')) {
27959                                jQuery(ctr).addClass('error');
27960                            }
27961                            //jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập Số định danh</span>');
27962                            jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
27963                        }
27964                    }
27965                    else if (/^\d{9}$/.test(ctr.value) != true && /^\d{12}$/.test(ctr.value) != true) {
27966                        flag = false;
27967                        if (!jQuery(ctr).hasClass('error')) {
27968                            jQuery(ctr).addClass('error');
27969                        }
27970                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số định danh không đúng định dạng</span>');
27971                    }
27972                    key = '.VATBuyerName';
27973                    ctr = jQuery(query[0]).find(key)[0];
27974                    window.pars3p.cart.VATBuyerName = ctr.value;
27975                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27976                        if (jQuery(ctr).hasClass('error')) {
27977                            jQuery(ctr).removeClass('error');
27978                        }
27979                        jQuery(ctr).parent().find('.input-sub').show();
27980                        jQuery(ctr).parent().find('.error').html('');
27981                    }
27982                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
27983                        flag = false;
27984                        if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27985                            if (!jQuery(ctr).hasClass('error')) {
27986                                jQuery(ctr).addClass('error');
27987                            }
27988                            //jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
27988<span class="s13 cl-gregray600 regular400">Vui lòng nhập Tên người mua hàng</span>');
27989                            jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
27990                        }
27991                    }
27992                    else if (ctr.value.length >= 500) {
27993                        flag = false;
27994                        if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
27995                            if (!jQuery(ctr).hasClass('error')) {
27996                                jQuery(ctr).addClass('error');
27997                            }
27998                            jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập ít hơn 500 ký tự</span>');
27999                        }
28000                    }
28001                }
28002                else if (window.pars3p.cart.VATType == 3) {
28003                    key = '.VATPassportNo';
28004                    ctr = jQuery(query[0]).find(key)[0];
28005                    window.pars3p.cart.VATPassportNo = ctr.value;
28006                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28007                        if (jQuery(ctr).hasClass('error')) {
28008                            jQuery(ctr).removeClass('error');
28009                        }
28010                        jQuery(ctr).parent().find('.input-sub').show();
28011                        jQuery(ctr).parent().find('.error').html('');
28012                    }
28013                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
28014                        flag = false;
28015                        if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28016                            if (!jQuery(ctr).hasClass('error')) {
28017                                jQuery(ctr).addClass('error');
28018                            }
28019                            //jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập Số hộ chiếu</span>');
28020                            jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
28021                        }
28022                    }
28023                    else if (/^[a-zA-Z]\d{8}$/.test(ctr.value) != true) {
28024                        flag = false;
28025                        if (!jQuery(ctr).hasClass('error')) {
28026                            jQuery(ctr).addClass('error');
28027                        }
28028                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số hộ chiếu không đúng định dạng, ví dụ: A12345678</span>');
28029                    }
28030                    key = '.VATBuyerName';
28031                    ctr = jQuery(query[0]).find(key)[0];
28032                    window.pars3p.cart.VATBuyerName = ctr.value;
28033                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28034                        if (jQuery(ctr).hasClass('error')) {
28035                            jQuery(ctr).removeClass('error');
28036                        }
28037                        jQuery(ctr).parent().find('.input-sub').show();
28038                        jQuery(ctr).parent().find('.error').html('');
28039                    }
28040                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
28041                        flag = false;
28042                        if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28043                            if (!jQuery(ctr).hasClass('error')) {
28044                                jQuery(ctr).addClass('error');
28045                            }
28046                            //jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
28046<span class="s13 cl-gregray600 regular400">Vui lòng nhập Tên người mua hàng</span>');
28047                            jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
28048                        }
28049                    }
28050                    else if (ctr.value.length >= 500) {
28051                        flag = false;
28052                        if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28053                            if (!jQuery(ctr).hasClass('error')) {
28054                                jQuery(ctr).addClass('error');
28055                            }
28056                            jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập ít hơn 500 ký tự</span>');
28057                        }
28058                    }
28059                }
28060                else {
28061                    return false;
28062                }
28063                key = '.VATAddress';
28064                ctr = jQuery(query[0]).find(key)[0];
28065                window.pars3p.cart.VATAddress = ctr.value;
28066                if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28067                    if (jQuery(ctr).hasClass('error')) {
28068                        jQuery(ctr).removeClass('error');
28069                    }
28070                    jQuery(ctr).parent().find('.input-sub').show();
28071                    jQuery(ctr).parent().find('.error').html('');
28072                }
28073                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
28074                    flag = false;
28075                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28076                        if (!jQuery(ctr).hasClass('error')) {
28077                            jQuery(ctr).addClass('error');
28078                        }
28079                        //jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập địa chỉ xuất hóa đơn</span>');
28080                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
28081                    }
28082                }
28083                key = '.VATEmail';
28084                ctr = jQuery(query[0]).find(key)[0];
28085                window.pars3p.cart.VATEmail = ctr.value;
28086                if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28087                    if (jQuery(ctr).hasClass('error')) {
28088                        jQuery(ctr).removeClass('error');
28089                    }
28090                    jQuery(ctr).parent().find('.input-sub').show();
28091                    jQuery(ctr).parent().find('.error').html('');
28092                }
28093                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
28094                    flag = false;
28095                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28096                        if (!jQuery(ctr).hasClass('error')) {
28097                            jQuery(ctr).addClass('error');
28098                        }
28099                        //jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập email nhận hóa đơn</span>');
28100                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
28100<span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
28101                    }
28102                }
28103                else if (!lib3p_helper.utility.isEmail(ctr.value)) {
28104                    flag = false;
28105                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28106                        if (!jQuery(ctr).hasClass('error')) {
28107                            jQuery(ctr).addClass('error');
28108                        }
28109                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Email chưa đúng</span>');
28110                    }
28111                }
28112                key = '.VATPhone';
28113                ctr = jQuery(query[0]).find(key)[0];
28114                window.pars3p.cart.VATPhone = ctr.value;
28115                if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28116                    if (jQuery(ctr).hasClass('error')) {
28117                        jQuery(ctr).removeClass('error');
28118                    }
28119                    jQuery(ctr).parent().find('.input-sub').show();
28120                    jQuery(ctr).parent().find('.error').html('');
28121                }
28122                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
28123                    flag = false;
28124                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28125                        if (!jQuery(ctr).hasClass('error')) {
28126                            jQuery(ctr).addClass('error');
28127                        }
28128                        //jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập Số điện thoại liên hệ</span>');
28129                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
28130                    }
28131                }
28132                else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
28133                    flag = false;
28134                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28135                        if (!jQuery(ctr).hasClass('error')) {
28136                            jQuery(ctr).addClass('error');
28137                        }
28138                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
28139                    }
28140                }
28141                else if (lib3p_helper.utility.hasValueString(ctr.value) && (ctr.value.length < 10 || ctr.value.length > 20)) {
28142                    flag = false;
28143                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28144                        if (!jQuery(ctr).hasClass('error')) {
28145                            jQuery(ctr).addClass('error');
28146                        }
28147                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng</span>');
28148                    }
28149                }
28150                key = '.VATContactName';
28151                ctr = jQuery(query[0]).find(key)[0];
28152                window.pars3p.cart.VATContactName = ctr.value;
28153                if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28154                    if (jQuery(ctr).hasClass('error')) {
28155                        jQuery(ctr).removeClass('error');
28156                    }
28157                    jQuery(ctr).parent().find('.input-sub').show();
28158                    jQuery(ctr).parent().find('.error').html('');
28159                }
28160                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
28161                    flag = false;
28162                    if (lib3p_helper.utility.hasValueString(classname) && classname.indexOf(key.substr(1)) >= 0) {
28163                        if (!jQuery(ctr).hasClass('error')) {
28164                            jQuery(ctr).addClass('error');
28165                        }
28166                        //jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
28166<span class="s13 cl-gregray600 regular400">Tên người liên hệ</span>');
28167                        jQuery(ctr).parent().find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
28168                    }
28169                }
28170
28171                return flag;
28172            }
28173        },
28174
28175        onPayment_Chon: function (el, id, idbank) {
28176            jQuery('.page-payment .thanh-toan .list .item.active .list-bank .bank.active').removeClass('active');
28177
28178            var query = jQuery(el).parent();
28179            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
28180                if (!jQuery(query[0]).hasClass('active')) {
28181                    jQuery(query[0]).addClass('active');
28182                }
28183                var item = window.pars3p.listPayment.find(function (c) { return c.Code == id; });
28184                if (lib3p_helper.utility.hasValue(item)) {
28185                    jQuery('.page-payment .thanh-toan-txt').html(item.PaymentName);
28186
28187                    var child = item.ListBank.find(function (c) { return c.Code == idbank; });
28188                    if (lib3p_helper.utility.hasValue(child)) {
28189                        query = jQuery(query[0]).closest('.item');
28190                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
28191                            jQuery(query[0]).find('.text-2').html(child.BankName);
28192                        }
28193                        window.pars3p.cart.PaymentID = id;
28194                        window.pars3p.cart.BankID = child.Code;
28195                        if (window.pars3p.auth.isLogin == true) {
28196                            var req = {
28197                                Cart: {
28198                                    Code: window.pars3p.cart.Code,
28199                                    PaymentID: id,
28200                                    BankID: child.Code,
28201                                }
28202                            };
28203                            lib3p.common_AuthPostURL(window.pars3p.api.auth.Payment_UpdatePayment, { cart: req }, function (res) {
28204                                if (res == true) {
28205                                    lib3p.common_cartSet(window.pars3p.cart);
28206                                }
28207                            }, function (err) {
28208                                lib3p.log(err);
28209                            });
28210                        }
28211                        else {
28212                            lib3p.common_cartSet(window.pars3p.cart);
28213                        }
28214                    }
28215                }
28216            }
28217        },
28218
28219        onVanChuyen_Change: function (event, id) {
28220            if (event.currentTarget.checked == true) {
28221                var req = {
28222                    Cart: {
28223                        Code: window.pars3p.cart.Code,
28224                        OrderNo: window.pars3p.cart.OrderNo,
28225                        OrderBy: window.pars3p.cart.OrderBy,
28226                        OrderPhone: window.pars3p.cart.OrderPhone,
28227                        OrderEmail: window.pars3p.cart.OrderEmail,
28228                        OrderDate: window.pars3p.cart.OrderDate,
28229                        StepDate: window.pars3p.cart.StepDate,
28230                        HasCoupon: window.pars3p.cart.HasCoupon,
28231                        IsStock: window.pars3p.cart.IsStock,
28232                        IsHachi24: id == 1
28233                    }
28234                };
28235                window.pars3p.cart.IsHachi24 = id == 1;
28236                if (window.pars3p.auth.isLogin == true) {
28237                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Payment_UpdateTranport, { cart: req }, function (res) {
28238                        if (res == true) {
28239                            var itemType = window.pars3p.cart.TypeOfTransportation.find(function (c) { return c.Code == 0; });
28240                            if (window.pars3p.cart.IsHachi24 == true) {
28241                                itemType = window.pars3p.cart.TypeOfTransportation.find(function (c) { return c.Code == 1; });
28242                            }
28243                            if (lib3p_helper.utility.hasValue(itemType)) {
28244                                jQuery('.page-payment .van-chuyen-txt').html(itemType.Name);
28245                            }
28246                            lib3p.common_cartSet(window.pars3p.cart);
28247                            lib3p.pageCartPayment.Payment_ProductTotal();
28248                        }
28249                    }, function (err) {
28250                        lib3p.log(err);
28251                    });
28252                }
28253                else {
28254                    lib3p.common_cartSet(window.pars3p.cart);
28255                    lib3p.pageCartPayment.Payment_ProductTotal();
28256                }
28257            }
28258        },
28259
28260        onPopupPaymentChuaChon_Show: function () {
28261            var query = jQuery('.popup-payment-chua-chon-thanh-toan .hachi-modal');
28262            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
28263                if (jQuery(query[0]).hasClass("d-none")) {
28264                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
28265                }
28266            }
28267        },
28268        onPopupPaymentChuaChon_Close: function () {
28269            var query = jQuery('.popup-payment-chua-chon-thanh-toan .hachi-modal');
28270            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
28271                if (jQuery(query[0]).hasClass("d-block")) {
28272                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
28273                }
28274            }
28275        },
28276        onDelivery_ThayDoi: function () {
28277            if (window.pars3p.auth.isLogin == true) {
28278                //lib3p.common_urllastSet(window.location.href);
28279                //window.location.href = window.pars3p.urlCartDelivery;
28280                lib3p.header.PopupDelivery_Show();
28281            }
28282            else {
28283                lib3p.pageCartPayment.onPopupDatHang_Show();
28284            }
28285        },
28286        onPopupDatHang_Show: function () {
28287            var query = jQuery('#popup-tien-hanh-dat-hang .hachi-modal');
28288            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
28289                if (jQuery(query[0]).hasClass("d-none")) {
28290                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
28291                }
28292            }
28293        },
28294        onPopupDatHang_Close: function () {
28295            var query = jQuery('#popup-tien-hanh-dat-hang .hachi-modal');
28296            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
28297                if (jQuery(query[0]).hasClass("d-block")) {
28298                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
28299                }
28300            }
28301        },
28302        onPopupDatHang_NoAccount: function () {
28303            lib3p.common_urllastSet(window.location.href);
28304            if (lib3p_helper.utility.hasValueString(window.pars3p.cart.ReceivedBy) && lib3p_helper.utility.hasValueString(window.pars3p.cart.Cellphone) && lib3p_helper.utility.hasValueString(window.pars3p.cart.FullAddress)) {
28305                window.location.href = window.pars3p.urlCartPayment;
28306            }
28307            else {
28308                window.location.href = window.pars3p.urlCartDelivery;
28309            }
28310        },
28311        onPopupDatHang_Login: function () {
28312            lib3p.common_urllastSet(window.location.href);
28313            window.location.href = window.pars3p.urlLogin;
28314        },
28315
28316        Cart_Reload: function () {
28317            var req = {
28318                Cart: {
28319                    Code: 0,
28320                    StatusID: 1,
28321                    IsVAT: false,
28322                    HasCoupon: false,
28323                    IsStock: true,
28324                    StepDate: null,
28325                    OrderDate: null,
28326                    MembershipID: '',
28327                    IsHachi24: false,
28328                    IsAppliedHachi24: false,
28329                    DeliveryID: null,
28330                    PaymentID: null,
28331                    Province: null,
28332                    District: null,
28333                    Ward: null,
28334                    Address: '',
28335                    Cellphone: '',
28336                    ReceivedBy: '',
28337                    Payment: 0,
28338                    TotalAmount: 0,
28339                },
28340                CartDetails: window.pars3p.cart.CartDetails,
28341                CartCoupon: [],
28342                CartCombo: [],
28343            };
28344            if (window.pars3p.cart.Code > 0) {
28345                req.Cart.Code = window.pars3p.cart.Code;
28346            }
28347            if (lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
28348                req.Cart.MembershipID = window.pars3p.cart.MembershipID;
28349            }
28350            req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
28351            req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
28352            if (window.pars3p.cart.DeliveryID > 0) {
28353                req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
28354            }
28355            if (window.pars3p.cart.PaymentID > 0) {
28356                req.Cart.PaymentID = window.pars3p.cart.PaymentID;
28357            }
28358            if (window.pars3p.cart.Province > 0) {
28359                req.Cart.Province = window.pars3p.cart.Province;
28360            }
28361            if (window.pars3p.cart.District > 0) {
28362                req.Cart.District = window.pars3p.cart.District;
28363            }
28364            if (window.pars3p.cart.Ward > 0) {
28365                req.Cart.Ward = window.pars3p.cart.Ward;
28366            }
28367            req.Cart.Address = window.pars3p.cart.Address;
28368            req.Cart.Cellphone = window.pars3p.cart.Cellphone;
28369            req.Cart.ReceivedBy = window.pars3p.cart.ReceivedBy;
28370            if (window.pars3p.cart.Payment > 0) {
28371                req.Cart.Payment = window.pars3p.cart.Payment;
28372            }
28373            if (window.pars3p.cart.TotalAmount > 0) {
28374                req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
28375            }
28376            if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
28377                req.CartCoupon = window.pars3p.cart.CartCoupon;
28378            }
28379
28380            if (window.pars3p.auth.isLogin == true) {
28381
28382                lib3p.common_AuthPostURL(window.pars3p.api.auth.GetCurrentCart, req, function (res) {
28383                    if (res.StatusCode == 0) {
28384                        if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
28385                            window.pars3p.cart.lastUser = window.pars3p.auth.userName;
28386                            window.pars3p.cart.lastDate = new Date();
28387
28388                            window.pars3p.cart.Code = res.ObjectReturn.Cart.Code;
28389                            window.pars3p.cart.OrderNo = res.ObjectReturn.Cart.OrderNo;
28390                            window.pars3p.cart.OrderBy = res.ObjectReturn.Cart.OrderBy;
28391                            window.pars3p.cart.OrderPhone = res.ObjectReturn.Cart.OrderPhone;
28392                            window.pars3p.cart.OrderEmail = res.ObjectReturn.Cart.OrderEmail;
28393                            window.pars3p.cart.OrderDate = res.ObjectReturn.Cart.OrderDate;
28394                            window.pars3p.cart.StepDate = res.ObjectReturn.Cart.StepDate;
28395                            window.pars3p.cart.EstDelivery = res.ObjectReturn.Cart.EstDelivery;
28396                            window.pars3p.cart.TotalAmount = res.ObjectReturn.Cart.TotalAmount;
28397                            window.pars3p.cart.MembershipID = res.ObjectReturn.Cart.MembershipID;
28398                            window.pars3p.cart.PolicyMembership = res.ObjectReturn.Cart.PolicyMembership;
28399                            window.pars3p.cart.DiscountMembership = res.ObjectReturn.Cart.DiscountMembership;
28400                            window.pars3p.cart.CouponPaid = res.ObjectReturn.Cart.CouponPaid;
28401                            window.pars3p.cart.ShippingFee = res.ObjectReturn.Cart.ShippingFee;
28402                            window.pars3p.cart.ShippingDiscount = res.ObjectReturn.Cart.ShippingDiscount;
28403                            window.pars3p.cart.Payment = res.ObjectReturn.Cart.Payment;
28404                            window.pars3p.cart.Remark = res.ObjectReturn.Cart.Remark;
28405                            window.pars3p.cart.StaffID = res.ObjectReturn.Cart.StaffID;
28406                            window.pars3p.cart.StatusID = res.ObjectReturn.Cart.StatusID;
28407                            window.pars3p.cart.IsVAT = res.ObjectReturn.Cart.IsVAT;
28408                            window.pars3p.cart.VATCode = res.ObjectReturn.Cart.VATCode;
28409                            window.pars3p.cart.VATCompany = res.ObjectReturn.Cart.VATCompany;
28410                            window.pars3p.cart.VATAddress = res.ObjectReturn.Cart.VATAddress;
28411                            window.pars3p.cart.VATEmail = res.ObjectReturn.Cart.VATEmail;
28412                            window.pars3p.cart.HasCoupon = res.ObjectReturn.Cart.HasCoupon;
28413                            window.pars3p.cart.IsStock = res.ObjectReturn.Cart.IsStock;
28414                            window.pars3p.cart.IsAppliedHachi24 = res.ObjectReturn.Cart.IsAppliedHachi24;
28415                            window.pars3p.cart.IsHachi24 = res.ObjectReturn.Cart.IsHachi24;
28416                            window.pars3p.cart.DeliveryID = res.ObjectReturn.Cart.DeliveryID;
28417                            window.pars3p.cart.ReceivedBy = res.ObjectReturn.Cart.ReceivedBy;
28418                            window.pars3p.cart.Cellphone = res.ObjectReturn.Cart.Cellphone;
28419                            window.pars3p.cart.Province = res.ObjectReturn.Cart.Province;
28420                            window.pars3p.cart.District = res.ObjectReturn.Cart.District;
28421                            window.pars3p.cart.Ward = res.ObjectReturn.Cart.Ward;
28422                            window.pars3p.cart.Address = res.ObjectReturn.Cart.Address;
28423                            window.pars3p.cart.FullAddress = res.ObjectReturn.Cart.FullAddress;
28424                            window.pars3p.cart.BankID = res.ObjectReturn.Cart.BankID;
28425                            window.pars3p.cart.PaymentID = res.ObjectReturn.Cart.PaymentID;
28426                            window.pars3p.cart.PaymentMethod = res.ObjectReturn.Cart.PaymentMethod;
28427
28428                            window.pars3p.cart.TotalItemQuantity = res.ObjectReturn.TotalItemQuantity;
28429
28430                            window.pars3p.cart.CartCoupon = res.ObjectReturn.CartCoupon;
28431                            window.pars3p.cart.ListCoupon = res.ObjectReturn.ListCoupon;
28432                            window.pars3p.cart.CartNoti = res.ObjectReturn.CartNoti;
28433                            window.pars3p.cart.CartCombo = res.ObjectReturn.CartCombo;
28434                            window.pars3p.cart.TypeOfTransportation = res.ObjectReturn.TypeOfTransportation;
28435
28436                            window.pars3p.cart.OrderDate = lib3p_helper.utility.dateGet(window.pars3p.cart.OrderDate);
28437                            window.pars3p.cart.StepDate = lib3p_helper.utility.dateGet(window.pars3p.cart.StepDate);
28438                            window.pars3p.cart.EstDelivery = lib3p_helper.utility.dateGet(window.pars3p.cart.EstDelivery);
28439                            lib3p.pageCartPayment.Cart_LoadHeader();
28440                            lib3p.pageCartPayment.Cart_LoadBodyReload();
28441                            lib3p.pageCartPayment.Cart_LoadTotal();
28442                            lib3p.common_cartSet(window.pars3p.cart);
28443                        }
28444                    }
28445                    else {
28446                        throw res.ErrorString;
28447                    }
28448                }, function (err) {
28449                    throw err;
28450                });
28451
28452            }
28453            else {
28454
28455                lib3p.common_PostURL(window.pars3p.api.public.GetCurrentCart, req, function (res) {
28456                    if (res.StatusCode == 0) {
28457                        if (lib3p_helper.utility.hasValue(res.ObjectReturn)) {
28458                            window.pars3p.cart.lastUser = window.pars3p.auth.userName;
28459                            window.pars3p.cart.lastDate = new Date();
28460
28461                            window.pars3p.cart.Code = res.ObjectReturn.Cart.Code;
28462                            window.pars3p.cart.OrderNo = res.ObjectReturn.Cart.OrderNo;
28463                            window.pars3p.cart.OrderBy = res.ObjectReturn.Cart.OrderBy;
28464                            window.pars3p.cart.OrderPhone = res.ObjectReturn.Cart.OrderPhone;
28465                            window.pars3p.cart.OrderEmail = res.ObjectReturn.Cart.OrderEmail;
28466                            window.pars3p.cart.OrderDate = res.ObjectReturn.Cart.OrderDate;
28467                            window.pars3p.cart.StepDate = res.ObjectReturn.Cart.StepDate;
28468                            window.pars3p.cart.EstDelivery = res.ObjectReturn.Cart.EstDelivery;
28469                            window.pars3p.cart.TotalAmount = res.ObjectReturn.Cart.TotalAmount;
28470                            window.pars3p.cart.MembershipID = res.ObjectReturn.Cart.MembershipID;
28471                            window.pars3p.cart.PolicyMembership = res.ObjectReturn.Cart.PolicyMembership;
28472                            window.pars3p.cart.DiscountMembership = res.ObjectReturn.Cart.DiscountMembership;
28473                            window.pars3p.cart.CouponPaid = res.ObjectReturn.Cart.CouponPaid;
28474                            window.pars3p.cart.ShippingFee = res.ObjectReturn.Cart.ShippingFee;
28475                            window.pars3p.cart.ShippingDiscount = res.ObjectReturn.Cart.ShippingDiscount;
28476                            window.pars3p.cart.Payment = res.ObjectReturn.Cart.Payment;
28477                            window.pars3p.cart.Remark = res.ObjectReturn.Cart.Remark;
28478                            window.pars3p.cart.StaffID = res.ObjectReturn.Cart.StaffID;
28479                            window.pars3p.cart.StatusID = res.ObjectReturn.Cart.StatusID;
28480                            window.pars3p.cart.IsVAT = res.ObjectReturn.Cart.IsVAT;
28481                            window.pars3p.cart.VATCode = res.ObjectReturn.Cart.VATCode;
28482                            window.pars3p.cart.VATCompany = res.ObjectReturn.Cart.VATCompany;
28483                            window.pars3p.cart.VATAddress = res.ObjectReturn.Cart.VATAddress;
28484                            window.pars3p.cart.VATEmail = res.ObjectReturn.Cart.VATEmail;
28485                            window.pars3p.cart.HasCoupon = res.ObjectReturn.Cart.HasCoupon;
28486                            window.pars3p.cart.IsStock = res.ObjectReturn.Cart.IsStock;
28487                            window.pars3p.cart.IsAppliedHachi24 = res.ObjectReturn.Cart.IsAppliedHachi24;
28488                            window.pars3p.cart.IsHachi24 = res.ObjectReturn.Cart.IsHachi24;
28489                            window.pars3p.cart.DeliveryID = res.ObjectReturn.Cart.DeliveryID;
28490                            window.pars3p.cart.ReceivedBy = res.ObjectReturn.Cart.ReceivedBy;
28491                            window.pars3p.cart.Cellphone = res.ObjectReturn.Cart.Cellphone;
28492                            window.pars3p.cart.Province = res.ObjectReturn.Cart.Province;
28493                            window.pars3p.cart.District = res.ObjectReturn.Cart.District;
28494                            window.pars3p.cart.Ward = res.ObjectReturn.Cart.Ward;
28495                            window.pars3p.cart.Address = res.ObjectReturn.Cart.Address;
28496                            window.pars3p.cart.FullAddress = res.ObjectReturn.Cart.FullAddress;
28497                            window.pars3p.cart.BankID = res.ObjectReturn.Cart.BankID;
28498                            window.pars3p.cart.PaymentID = res.ObjectReturn.Cart.PaymentID;
28499                            window.pars3p.cart.PaymentMethod = res.ObjectReturn.Cart.PaymentMethod;
28500
28501                            window.pars3p.cart.TotalItemQuantity = res.ObjectReturn.TotalItemQuantity;
28502
28503                            window.pars3p.cart.CartCoupon = res.ObjectReturn.CartCoupon;
28504                            window.pars3p.cart.ListCoupon = res.ObjectReturn.ListCoupon;
28505                            window.pars3p.cart.CartNoti = res.ObjectReturn.CartNoti;
28506                            window.pars3p.cart.CartCombo = res.ObjectReturn.CartCombo;
28507                            window.pars3p.cart.TypeOfTransportation = res.ObjectReturn.TypeOfTransportation;
28508
28509                            window.pars3p.cart.OrderDate = lib3p_helper.utility.dateGet(window.pars3p.cart.OrderDate);
28510                            window.pars3p.cart.StepDate = lib3p_helper.utility.dateGet(window.pars3p.cart.StepDate);
28511                            window.pars3p.cart.EstDelivery = lib3p_helper.utility.dateGet(window.pars3p.cart.EstDelivery);
28512                            lib3p.pageCart.Cart_LoadHeader();
28513                            lib3p.pageCart.Cart_LoadBodyReload();
28514                            lib3p.pageCart.Cart_LoadTotal();
28515                            lib3p.common_cartSet(window.pars3p.cart);
28516                        }
28517                    }
28518                    else {
28519                        throw res.ErrorString;
28520                    }
28521           
28521     }, function (err) {
28522                    throw err;
28523                });
28524            }
28525        },
28526        Cart_LoadBodyReload: function () {
28527            if (lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasListValue(window.pars3p.cart.TypeOfTransportation)) {
28528                var item = window.pars3p.cart.TypeOfTransportation.find(function (c) { return c.Code == 0; });
28529                if (window.pars3p.cart.IsHachi24 == true) {
28530                    item = window.pars3p.cart.TypeOfTransportation.find(function (c) { return c.Code == 1; });
28531                }
28532                if (lib3p_helper.utility.hasValue(item)) {
28533
28534                    //var name = item.Name.charAt(0).toLowerCase() + item.Name.slice(1);
28535                    //jQuery('#js_cpn_phuong_thuc_giao_hang .cart_detail_header .title .font-weight-bold').html('Đơn hàng ' + name);
28536                    //jQuery('#js_cpn_phuong_thuc_giao_hang .cart_detail_header .subtitle').html('(' + item.Description + ')');
28537                }
28538            }
28539        },
28540        onCoupon_Delete: function (id) {
28541            window.pars3p.cart.CouponDeleteID = id;
28542            var item = window.pars3p.cart.CartCoupon.find(function (c) { return c.CouponID == id; });
28543            if (lib3p_helper.utility.hasValue(item)) {
28544                jQuery('.modal_delete_coupon_containter .CouponCode').html(item.CouponCode);
28545                lib3p.pageCartPayment.onPopupCouponConfirm_Show();
28546            }
28547        },
28548        onCoupon_Submit: function (event) {
28549            var flag = true;
28550            var data = {
28551                CouponCode: ''
28552            };
28553
28554            var ctr = event.target.CouponCode;
28555            data.CouponCode = ctr.value;
28556            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
28557                flag = false;
28558                jQuery('.ap-dung-ma-giam-gia .error.CouponSubmit').html('Vui lòng nhập mã giảm giá');
28559            }
28560
28561            if (flag == true) {
28562                var req = {
28563                    SelectedCoupon: {
28564                        CartID: 0,
28565                        CouponCode: data.CouponCode,
28566                        ProductID: null,
28567                    },
28568                    Cart: {
28569                        Code: 0,
28570                        StatusID: 1,
28571                        IsVAT: false,
28572                        HasCoupon: false,
28573                        IsStock: true,
28574                        StepDate: null,
28575                        OrderDate: null,
28576                        MembershipID: '',
28577                        IsHachi24: false,
28578                        IsAppliedHachi24: false,
28579                        DeliveryID: null,
28580                        PaymentID: null,
28581                        Province: null,
28582                        District: null,
28583                        Ward: null,
28584                        Payment: 0,
28585                        TotalAmount: 0,
28586                    },
28587                    CartCoupon: [],
28588                    SelectedCartDetail: null,
28589                };
28590                if (window.pars3p.cart.Code > 0) {
28591                    req.Cart.Code = window.pars3p.cart.Code;
28592                    req.SelectedCoupon.CartID = window.pars3p.cart.Code;
28593                }
28594                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
28595                    req.Cart.MembershipID = window.pars3p.cart.MembershipID;
28596                }
28597                req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
28598                req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
28599                if (window.pars3p.cart.DeliveryID > 0) {
28600                    req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
28601                }
28602                if (window.pars3p.cart.PaymentID > 0) {
28603                    req.Cart.PaymentID = window.pars3p.cart.PaymentID;
28604                }
28605                if (window.pars3p.cart.Province > 0) {
28606                    req.Cart.Province = window.pars3p.cart.Province;
28607                }
28608                if (window.pars3p.cart.District > 0) {
28609                    req.Cart.District = window.pars3p.cart.District;
28610                }
28611                if (window.pars3p.cart.Ward > 0) {
28612                    req.Cart.Ward = window.pars3p.cart.Ward;
28613                }
28614                if (window.pars3p.cart.Payment > 0) {
28615                    req.Cart.Payment = window.pars3p.cart.Payment;
28616                }
28617                if (window.pars3p.cart.TotalAmount > 0) {
28618                    req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
28619                }
28620                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
28621                    req.CartCoupon = window.pars3p.cart.CartCoupon;
28622                }
28623
28624                if (window.pars3p.auth.isLogin == true) {
28625                    lib3p.common_AuthPostURL(window.pars3p.api.auth.AddCoupon, req, function (res) {
28626                        if (lib3p_helper.utility.hasValue(res)) {
28627                            if (res.StatusCode == 0) {
28628                                window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
28629                                lib3p.common_cartSet(window.pars3p.cart);
28630                                lib3p.pageCartPayment.Cart_Reload();
28631                            }
28632                            else {
28633                                jQuery('.ap-dung-ma-giam-gia .error.CouponSubmit').html(res.ErrorString);
28634                            }
28635                        }
28636                    }, function (err) {
28637                        lib3p.log(err);
28638                    });
28639                }
28640                else {
28641                    lib3p.common_PostURL(window.pars3p.api.public.AddCoupon, req, function (res) {
28642                        if (lib3p_helper.utility.hasValue(res)) {
28643                            if (res.StatusCode == 0) {
28644                                window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
28645                                lib3p.common_cartSet(window.pars3p.cart);
28646                                lib3p.pageCartPayment.Cart_Reload();
28647                            }
28648                            else {
28649                                jQuery('.ap-dung-ma-giam-gia .error.CouponSubmit').html(res.ErrorString);
28650                            }
28651                        }
28652                    }, function (err) {
28653                        lib3p.log(err);
28654                    });
28655                }
28656            }
28657
28658            event.preventDefault();
28659        },
28660        onPopupCouponConfirm_Show: function () {
28661            var query = jQuery('.modal_delete_coupon_containter .hachi-modal');
28662            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
28663                if (jQuery(query[0]).hasClass("d-none")) {
28664                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
28665                }
28666            }
28667        },
28668        onPopupCouponConfirm_Close: function () {
28669            var query = jQuery('.modal_delete_coupon_containter .hachi-modal');
28670            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
28671                if (jQuery(query[0]).hasClass("d-block")) {
28672                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
28673                }
28674            }
28675        },
28676        onPopupCouponConfirm_Delete: function () {
28677            lib3p.pageCart.onPopupCouponConfirm_Close();
28678            var item = window.pars3p.cart.CartCoupon.find(function (c) { return c.CouponID == window.pars3p.cart.CouponDeleteID; });
28679            var idx = window.pars3p.cart.CartCoupon.findIndex(function (c) { return c.CouponID == window.pars3p.cart.CouponDeleteID; });
28680            if (lib3p_helper.utility.hasValue(item) && idx >= 0) {
28681                var req = {
28682                    SelectedCoupon: {
28683                        IsPercent: item.IsPercent,
28684                        IsPrivate: item.IsPrivate,
28685                        CardID: null,
28686                        Code: item.Code,
28687                        CartID: 0,
28688                        CouponID: item.CouponID,
28689                        CouponCode: item.CouponCode,
28690                        CartDetailID: item.CartDetailID,
28691                        ProductID: item.ProductID,
28692                        TypeData: item.TypeData,
28693                        IsUse: item.IsUse,
28694                        IsChoose: true,
28695                    },
28696                    Cart: {
28697                        Code: 0,
28698                        StatusID: 1,
28699                        IsVAT: false,
28700                        HasCoupon: false,
28701                        IsStock: true,
28702                        StepDate: null,
28703                        OrderDate: null,
28704                        MembershipID: '',
28705                        IsHachi24: false,
28706                        IsAppliedHachi24: false,
28707                        DeliveryID: null,
28708                        PaymentID: null,
28709                        Province: null,
28710                        District: null,
28711                        Ward: null,
28712                        Payment: 0,
28713                        TotalAmount: 0,
28714                    },
28715                    CartCoupon: [],
28716                    SelectedCartDetail: null,
28717                };
28718                if (window.pars3p.cart.Code > 0) {
28719                    req.Cart.Code = window.pars3p.cart.Code;
28720                    req.SelectedCoupon.CartID = window.pars3p.cart.Code;
28721                }
28722                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
28723                    req.Cart.MembershipID = window.pars3p.cart.MembershipID;
28724                }
28725                req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
28726                req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
28727                if (window.pars3p.cart.DeliveryID > 0) {
28728                    req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
28729                }
28730                if (window.pars3p.cart.PaymentID > 0) {
28731                    req.Cart.PaymentID = window.pars3p.cart.PaymentID;
28732                }
28733                if (window.pars3p.cart.Province > 0) {
28734                    req.Cart.Province = window.pars3p.cart.Province;
28735                }
28736                if (window.pars3p.cart.District > 0) {
28737                    req.Cart.District = window.pars3p.cart.District;
28738                }
28739                if (window.pars3p.cart.Ward > 0) {
28740                    req.Cart.Ward = window.pars3p.cart.Ward;
28741                }
28742                if (window.pars3p.cart.Payment > 0) {
28743                    req.Cart.Payment = window.pars3p.cart.Payment;
28744                }
28745                if (window.pars3p.cart.TotalAmount > 0) {
28746                    req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
28747                }
28748                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
28749                    req.CartCoupon = window.pars3p.cart.CartCoupon;
28750                }
28751
28752                if (window.pars3p.auth.isLogin == true) {
28753                    lib3p.common_AuthPostURL(window.pars3p.api.auth.DeleteCoupon, req, function (res) {
28754                        if (lib3p_helper.utility.hasValue(res)) {
28755                            if (res.StatusCode == 0) {
28756                                window.pars3p.cart.CouponDeleteID = -1;
28757                                window.pars3p.cart.CartCoupon.splice(idx, 1);
28758                                lib3p.common_cartSet(window.pars3p.cart);
28759                                lib3p.pageCartPayment.Cart_Reload();
28760                            }
28761                        }
28762                    }, function (err) {
28763                        lib3p.log(err);
28764                    });
28765                }
28766                else {
28767                    lib3p.common_PostURL(window.pars3p.api.public.DeleteCoupon, req, function (res) {
28768                        if (lib3p_helper.utility.hasValue(res)) {
28769                            if (res.StatusCode == 0) {
28770                                window.pars3p.cart.CouponDeleteID = -1;
28771                                window.pars3p.cart.CartCoupon.splice(idx, 1);
28772                                lib3p.common_cartSet(window.pars3p.cart);
28773                                lib3p.pageCartPayment.Cart_Reload();
28774                            }
28775                        }
28776                    }, function (err) {
28777                        lib3p.log(err);
28778                    });
28779                }
28780            }
28781        },
28782        onPopupCoupon_Submit: function (event) {
28783            var flag = true;
28784            var data = {
28785                CouponCode: ''
28786            };
28787
28788            var ctr = event.target.CouponCode;
28789            data.CouponCode = ctr.value;
28790            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
28791                flag = false;
28792                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html('Vui lòng nhập mã giảm giá');
28793            }
28794
28795            if (flag == true) {
28796                var req = {
28797                    SelectedCoupon: {
28798                        CartID: 0,
28799                        CouponCode: data.CouponCode,
28800                        ProductID: null,
28801                    },
28802                    Cart: {
28803                        Code: 0,
28804                        StatusID: 1,
28805                        IsVAT: false,
28806                        HasCoupon: false,
28807                        IsStock: true,
28808                        StepDate: null,
28809                        OrderDate: null,
28810                        MembershipID: '',
28811                        IsHachi24: false,
28812                        IsAppliedHachi24: false,
28813                        DeliveryID: null,
28814                        PaymentID: null,
28815                        Province: null,
28816                        District: null,
28817                        Ward: null,
28818                        Payment: 0,
28819                        TotalAmount: 0,
28820                    },
28821                    CartCoupon: [],
28822                    SelectedCartDetail: null,
28823                };
28824                if (window.pars3p.cart.Code > 0) {
28825                    req.Cart.Code = window.pars3p.cart.Code;
28826                    req.SelectedCoupon.CartID = window.pars3p.cart.Code;
28827                }
28828                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
28829                    req.Cart.MembershipID = window.pars3p.cart.MembershipID;
28830                }
28831                req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
28832                req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
28833                if (window.pars3p.cart.DeliveryID > 0) {
28834                    req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
28835                }
28836                if (window.pars3p.cart.PaymentID > 0) {
28837                    req.Cart.PaymentID = window.pars3p.cart.PaymentID;
28838                }
28839                if (window.pars3p.cart.Province > 0) {
28840                    req.Cart.Province = window.pars3p.cart.Province;
28841                }
28842                if (window.pars3p.cart.District > 0) {
28843                    req.Cart.District = window.pars3p.cart.District;
28844                }
28845                if (window.pars3p.cart.Ward > 0) {
28846                    req.Cart.Ward = window.pars3p.cart.Ward;
28847                }
28848                if (window.pars3p.cart.Payment > 0) {
28849                    req.Cart.Payment = window.pars3p.cart.Payment;
28850                }
28851                if (window.pars3p.cart.TotalAmount > 0) {
28852                    req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
28853                }
28854                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
28855                    req.CartCoupon = window.pars3p.cart.CartCoupon;
28856                }
28857
28858                if (window.pars3p.auth.isLogin == true) {
28859                    lib3p.common_AuthPostURL(window.pars3p.api.auth.AddCoupon, req, function (res) {
28860                        if (lib3p_helper.utility.hasValue(res)) {
28861                            if (res.StatusCode == 0) {
28862                                window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
28863                                lib3p.common_cartSet(window.pars3p.cart);
28864                                lib3p.pageCartPayment.Cart_Reload();
28865                            }
28866                            else {
28867                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
28868                            }
28869                        }
28870                    }, function (err) {
28871                        lib3p.log(err);
28872                    });
28873                }
28874                else {
28875                    lib3p.common_PostURL(window.pars3p.api.public.AddCoupon, req, function (res) {
28876                        if (lib3p_helper.utility.hasValue(res)) {
28877                            if (res.StatusCode == 0) {
28878                                window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
28879                                lib3p.common_cartSet(window.pars3p.cart);
28880                                lib3p.pageCartPayment.Cart_Reload();
28881                            }
28882                            else {
28883                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
28884                            }
28885                        }
28886                    }, function (err) {
28887                        lib3p.log(err);
28888                    });
28889                }
28890            }
28891
28892            event.preventDefault();
28893        },
28894        onPopupCoupon_ApDung: function (id) {
28895            jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html('');
28896            var item = window.pars3p.cart.ListCoupon.find(function (c) { return c.CouponID == id; });
28897            if (lib3p_helper.utility.hasValue(item)) {
28898                var req = {
28899                    SelectedCoupon: {
28900                        IsPercent: item.IsPercent,
28901                        IsPrivate: item.IsPrivate,
28902                        CardID: null,
28903                        Code: 0,
28904                        CartID: 0,
28905                        CouponID: item.CouponID,
28906                        CouponCode: item.CouponCode,
28907                        CartDetailID: item.CartDetailID,
28908                        ProductID: item.ProductID,
28909                        TypeData: item.TypeData,
28910                        IsUse: item.IsUse,
28911                        IsChoose: true,
28912                    },
28913                    Cart: {
28914                        Code: 0,
28915                        StatusID: 1,
28916                        IsVAT: false,
28917                        HasCoupon: false,
28918                        IsStock: true,
28919                        StepDate: null,
28920                        OrderDate: null,
28921                        MembershipID: '',
28922                        IsHachi24: false,
28923                        IsAppliedHachi24: false,
28924                        DeliveryID: null,
28925                        PaymentID: null,
28926                        Province: null,
28927                        District: null,
28928                        Ward: null,
28929                        Payment: 0,
28930                        TotalAmount: 0,
28931                    },
28932                    CartCoupon: [],
28933                    SelectedCartDetail: null,
28934                };
28935                if (window.pars3p.cart.Code > 0) {
28936                    req.Cart.Code = window.pars3p.cart.Code;
28937                    req.SelectedCoupon.CartID = window.pars3p.cart.Code;
28938                }
28939                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
28940                    req.Cart.MembershipID = window.pars3p.cart.MembershipID;
28941                }
28942                req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
28943                req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
28944                if (window.pars3p.cart.DeliveryID > 0) {
28945                    req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
28946                }
28947                if (window.pars3p.cart.PaymentID > 0) {
28948                    req.Cart.PaymentID = window.pars3p.cart.PaymentID;
28949                }
28950                if (window.pars3p.cart.Province > 0) {
28951                    req.Cart.Province = window.pars3p.cart.Province;
28952                }
28953                if (window.pars3p.cart.District > 0) {
28954                    req.Cart.District = window.pars3p.cart.District;
28955                }
28956                if (window.pars3p.cart.Ward > 0) {
28957                    req.Cart.Ward = window.pars3p.cart.Ward;
28958                }
28959                if (window.pars3p.cart.Payment > 0) {
28960                    req.Cart.Payment = window.pars3p.cart.Payment;
28961                }
28962                if (window.pars3p.cart.TotalAmount > 0) {
28963                    req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
28964                }
28965                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
28966                    req.CartCoupon = window.pars3p.cart.CartCoupon;
28967                }
28968
28969                if (window.pars3p.auth.isLogin == true) {
28970
28971                    lib3p.common_AuthPostURL(window.pars3p.api.auth.AddCoupon, req, function (res) {
28972                        if (lib3p_helper.utility.hasValue(res)) {
28973                            if (res.StatusCode == 0) {
28974                                window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
28975                                lib3p.common_cartSet(window.pars3p.cart);
28976                                lib3p.pageCartPayment.Cart_Reload();
28977                            }
28978                            else {
28979                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
28980                            }
28981                        }
28982                    }, function (err) {
28983                        lib3p.log(err);
28984                    });
28985
28986                }
28987                else {
28988
28989                    lib3p.common_PostURL(window.pars3p.api.public.AddCoupon, req, function (res) {
28990                        if (lib3p_helper.utility.hasValue(res)) {
28991                            if (res.StatusCode == 0) {
28992                                window.pars3p.cart.CartCoupon.push(res.ObjectReturn);
28993                                lib3p.common_cartSet(window.pars3p.cart);
28994                                lib3p.pageCartPayment.Cart_Reload();
28995                            }
28996                            else {
28997                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
28998                            }
28999                        }
29000                    }, function (err) {
29001                        lib3p.log(err);
29002                    });
29003
29004                }
29005            }
29006        },
29007        onPopupCoupon_BoChon: function (id) {
29008            jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html('');
29009            window.pars3p.cart.CouponDeleteID = -1;
29010            var item = window.pars3p.cart.CartCoupon.find(function (c) { return c.CouponID == id; });
29011            var idx = window.pars3p.cart.CartCoupon.findIndex(function (c) { return c.CouponID == id; });
29012            if (lib3p_helper.utility.hasValue(item) && idx >= 0) {
29013                var req = {
29014                    SelectedCoupon: {
29015                        IsPercent: item.IsPercent,
29016                        IsPrivate: item.IsPrivate,
29017                        CardID: null,
29018                        Code: 0,
29019                        CartID: 0,
29020                        CouponID: item.CouponID,
29021                        CouponCode: item.CouponCode,
29022                        CartDetailID: item.CartDetailID,
29023                        ProductID: item.ProductID,
29024                        TypeData: item.TypeData,
29025                        IsUse: item.IsUse,
29026                        IsChoose: true,
29027                    },
29028                    Cart: {
29029                        Code: 0,
29030                        StatusID: 1,
29031                        IsVAT: false,
29032                        HasCoupon: false,
29033                        IsStock: true,
29034                        StepDate: null,
29035                        OrderDate: null,
29036                        MembershipID: '',
29037                        IsHachi24: false,
29038                        IsAppliedHachi24: false,
29039                        DeliveryID: null,
29040                        PaymentID: null,
29041                        Province: null,
29042                        District: null,
29043                        Ward: null,
29044                        Payment: 0,
29045                        TotalAmount: 0,
29046                    },
29047                    CartCoupon: [],
29048                    SelectedCartDetail: null,
29049                };
29050                if (window.pars3p.cart.Code > 0) {
29051                    req.Cart.Code = window.pars3p.cart.Code;
29052                    req.SelectedCoupon.CartID = window.pars3p.cart.Code;
29053                }
29054                if (lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
29055                    req.Cart.MembershipID = window.pars3p.cart.MembershipID;
29056                }
29057                req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
29058                req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
29059                if (window.pars3p.cart.DeliveryID > 0) {
29060                    req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
29061                }
29062                if (window.pars3p.cart.PaymentID > 0) {
29063                    req.Cart.PaymentID = window.pars3p.cart.PaymentID;
29064                }
29065                if (window.pars3p.cart.Province > 0) {
29066                    req.Cart.Province = window.pars3p.cart.Province;
29067                }
29068                if (window.pars3p.cart.District > 0) {
29069                    req.Cart.District = window.pars3p.cart.District;
29070                }
29071                if (window.pars3p.cart.Ward > 0) {
29072                    req.Cart.Ward = window.pars3p.cart.Ward;
29073                }
29074                if (window.pars3p.cart.Payment > 0) {
29075                    req.Cart.Payment = window.pars3p.cart.Payment;
29076                }
29077                if (window.pars3p.cart.TotalAmount > 0) {
29078                    req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
29079                }
29080                if (lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
29081                    req.CartCoupon = window.pars3p.cart.CartCoupon;
29082                }
29083
29084                if (window.pars3p.auth.isLogin == true) {
29085                    lib3p.common_AuthPostURL(window.pars3p.api.auth.DeleteCoupon, req, function (res) {
29086                        if (lib3p_helper.utility.hasValue(res)) {
29087                            if (res.StatusCode == 0) {
29088                                window.pars3p.cart.CartCoupon.splice(idx, 1);
29089                                lib3p.common_cartSet(window.pars3p.cart);
29090                                lib3p.pageCartPayment.Cart_Reload();
29091                            }
29092                            else {
29093                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
29094                            }
29095                        }
29096                    }, function (err) {
29097                        lib3p.log(err);
29098                    });
29099                }
29100                else {
29101                    lib3p.common_PostURL(window.pars3p.api.public.DeleteCoupon, req, function (res) {
29102                        if (lib3p_helper.utility.hasValue(res)) {
29103                            if (res.StatusCode == 0) {
29104                                window.pars3p.cart.CartCoupon.splice(idx, 1);
29105                                lib3p.common_cartSet(window.pars3p.cart);
29106                                lib3p.pageCartPayment.Cart_Reload();
29107                            }
29108                            else {
29109                                jQuery('.popup-ma-giam-gia .hachi-invalid-feedback').html(res.ErrorString);
29110                            }
29111                        }
29112                    }, function (err) {
29113                        lib3p.log(err);
29114                    });
29115                }
29116            }
29117        },
29118        onPopupCouponInfo_Show: function () {
29119            jQuery('.popup-cart-coupon-info').show();
29120            lib3p.pageCartPayment.onPopupCouponList_Close();
29121        },
29122        onPopupCouponInfo_Close: function () {
29123            jQuery('.popup-cart-coupon-info').hide();
29124        },
29125        onPopupCouponList_Show: function () {
29126            var query = jQuery('.popup-ma-giam-gia .hachi-popup');
29127            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
29128                if (jQuery(query[0]).hasClass("d-none")) {
29129                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
29130                }
29131            }
29132            lib3p.pageCartPayment.onPopupCouponInfo_Close();
29133        },
29134        onPopupCouponList_Close: function () {
29135            var query = jQuery('.popup-ma-giam-gia .hachi-popup');
29136            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
29137                if (jQuery(query[0]).hasClass("d-block")) {
29138                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
29139                }
29140            }
29141        },
29142        /* onPayment_Submit: function(event) {
29143            if(window.pars3p.cart.PaymentID > 0) {
29144                jQuery('#js_hinh_thuc_thanh_toan .nhap-hoa-don .form-group').find('.hachi-color-text-10').html('');
29145                jQuery('#js_hinh_thuc_thanh_toan .nhap-hoa-don .form-group').find('.form-control').removeClass('error');
29146    
29147                var flag = true;
29148                var data = {
29149                    VATCompany: '',
29150                    VATCode: '',
29151                    VATAddress: '',
29152                    VATEmail: ''
29153                };
29154    
29155                var ctr = event.target.VATCompany;
29156                if(window.pars3p.cart.IsVAT == true) {
29157                    data.VATCompany = ctr.value;
29158                    if(!lib3p_helper.utility.hasValueString(ctr.value)) {
29159                        flag = false;
29160                        if(!jQuery(ctr).hasClass('error')) {
29161                            jQuery(ctr).addClass('error');
29162                        }
29163                        jQuery(ctr).next().html('Vui lòng điền đầy đủ thông tin.');
29164                    }
29165                    ctr = event.target.VATCode;
29166                    data.VATCode = ctr.value;
29167                    if(!lib3p_helper.utility.hasValueString(ctr.value)) {
29168                        flag = false;
29169                        if(!jQuery(ctr).hasClass('error')) {
29170                            jQuery(ctr).addClass('error');
29171                        }
29172                        jQuery(ctr).next().html('Vui lòng điền đầy đủ thông tin.');
29173                    }
29174                    ctr = event.target.VATAddress;
29175                    data.VATAddress = ctr.value;
29176                    if(!lib3p_helper.utility.hasValueString(ctr.value)) {
29177                        flag = false;
29178                        if(!jQuery(ctr).hasClass('error')) {
29179                            jQuery(ctr).addClass('error');
29180                        }
29181                        jQuery(ctr).next().html('Vui lòng điền đầy đủ thông tin.');
29182                    }
29183                    ctr = event.target.VATEmail;
29184                    data.VATEmail = ctr.value;
29185                    if(!lib3p_helper.utility.hasValueString(ctr.value)) {
29186                        flag = false;
29187                        if(!jQuery(ctr).hasClass('error')) {
29188                            jQuery(ctr).addClass('error');
29189                        }
29190                        jQuery(ctr).next().html('Vui lòng điền đầy đủ thông tin.');
29191                    }
29192                }
29193    
29194                if(flag == true) {
29195                    var req = {
29196                        Cart: {
29197                            Code: 0,
29198                            StatusID: 1,
29199                            IsVAT: false,
29200                            VATCompany: '',
29201                            VATCode: '',
29202                            VATAddress: '',
29203                            VATEmail: '',
29204                            HasCoupon: false,
29205                            IsStock: true,
29206                            StepDate: null, 
29207                            OrderDate: null,
29208                            MembershipID: '',
29209                            IsHachi24: false,
29210                            IsAppliedHachi24: false,
29211                            DeliveryID: null,
29212                            PaymentID: null,
29213                            BankID: null,
29214                            Province: null,
29215                            District: null,
29216                            Ward: null,
29217                            Address: '',
29218                            Cellphone: '',
29219                            ReceivedBy: '',                        
29220                            Payment: 0,
29221                            TotalAmount: 0,
29222                        },
29223                        CartDetails: window.pars3p.cart.CartDetails,
29224                        CartCoupon: [],
29225                        CartCombo:[],
29226                    };
29227                    if(window.pars3p.cart.Code > 0) {
29228                        req.Cart.Code = window.pars3p.cart.Code;
29229                    }
29230                    if(window.pars3p.cart.StatusID > 0) {
29231                        req.Cart.StatusID = 1;
29232                    }
29233                    if(lib3p_helper.utility.hasValueString(window.pars3p.cart.MembershipID)) {
29234                        req.Cart.MembershipID = window.pars3p.cart.MembershipID;
29235                    }
29236                    req.Cart.IsHachi24 = window.pars3p.cart.IsHachi24 == true;
29237                    req.Cart.IsAppliedHachi24 = window.pars3p.cart.IsAppliedHachi24 == true;
29238                    req.Cart.IsVAT = window.pars3p.cart.IsVAT;
29239                    req.Cart.VATCompany = window.pars3p.cart.VATCompany;
29240                    req.Cart.VATCode = window.pars3p.cart.VATCode;
29241                    req.Cart.VATAddress = window.pars3p.cart.VATAddress;
29242                    req.Cart.VATEmail = window.pars3p.cart.VATEmail;
29243                    if(window.pars3p.cart.DeliveryID > 0) {
29244                        req.Cart.DeliveryID = window.pars3p.cart.DeliveryID;
29245                    }
29246                    if(window.pars3p.cart.PaymentID > 0) {
29247                        req.Cart.PaymentID = window.pars3p.cart.PaymentID;
29248                    }
29249                    if(window.pars3p.cart.Province > 0) {
29250                        req.Cart.Province = window.pars3p.cart.Province;
29251                    }
29252                    if(window.pars3p.cart.District > 0) {
29253                        req.Cart.District = window.pars3p.cart.District;
29254                    }
29255                    if(window.pars3p.cart.Ward > 0) {
29256                        req.Cart.Ward = window.pars3p.cart.Ward;
29257                    }
29258                    req.Cart.Address = window.pars3p.cart.Address;
29259                    req.Cart.Cellphone = window.pars3p.cart.Cellphone;
29260                    req.Cart.ReceivedBy = window.pars3p.cart.ReceivedBy;
29261                    if(window.pars3p.cart.Payment > 0) {
29262                        req.Cart.Payment = window.pars3p.cart.Payment;
29263                    }
29264                    if(window.pars3p.cart.BankID > 0) {
29265                        req.Cart.BankID = window.pars3p.cart.BankID;
29266                    }
29267                    if(window.pars3p.cart.TotalAmount > 0) {
29268                        req.Cart.TotalAmount = window.pars3p.cart.TotalAmount;
29269                    }
29270                    if(lib3p_helper.utility.hasListValue(window.pars3p.cart.CartCoupon)) {
29271                        req.CartCoupon = window.pars3p.cart.CartCoupon;
29272                    }
29273    
29274                    lib3p.common_AuthPostURL(window.pars3p.api.auth.PaymentCart, req, function(res) {
29275                        if(lib3p_helper.utility.hasValue(res)) {
29276                            if(res.StatusCode == 0) {
29277                                if(res.URLRedirect.startsWith('?vnp') || res.URLRedirect.indexOf('vnpay') >= 0) {
29278                                    if(res.URLRedirect.startsWith('https://pay.vnpay.vn')) {
29279                                        window.location.href = res.URLRedirect;
29280                                    }
29281                                    else {
29282                                        window.location.href = 'https://pay.vnpay.vn/vpcpay.html' + res.URLRedirect;
29283                                    }
29284                                }
29285                                else {
29286                                    window.location.href = res.ObjectReturn;
29287                                }
29288                            }
29289                            else {
29290                                jQuery('.ap-dung-ma-giam-gia .error.CouponSubmit').html(res.ErrorString);
29291                            }
29292                        }
29293                    }, function(err) {
29294                        lib3p.log(err);
29295                    });                
29296                }
29297            }
29298            else {
29299                lib3p.pageCartPayment.onPopupPaymentChuaChon_Show();
29300            }
29301
29302            event.preventDefault();
29303        }, */
29304    },
29305
29306    pageCartThanks: {
29307        init: function () {
29308            var query = jQuery(".page-thanks");
29309            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
29310                lib3p.pageCartThanks.init_async().then(function (data) { }, function (err) { console.log(err); });
29311            }
29312        },
29313        init_async: function () {
29314            return new Promise(function (resolve, reject) {
29315                setTimeout(function () {
29316                    if (document["myquery"] == undefined || document["myquery"] == null) {
29317                        throw "Not found query";
29318                    }
29319                    else {
29320                        var data = document["myquery"]();
29321                        if (lib3p_helper.utility.hasValue(data) && lib3p_helper.utility.hasValueString(data.OrderID)) {
29322                            lib3p.common_PostURL(window.pars3p.api.public.CartThanks_GetOrder, { Code: data.OrderID }, function (res) {
29323                                if (lib3p_helper.utility.hasValue(res)) {
29324                                    window.pars3p.orderID = res.Code;
29325                                    window.pars3p.orderNo = res.OrderNo;
29326                        
29327                                    window.pars3p.cart_temp = lib3p_helper.cart.dupCart(res);
29328                                    lib3p.common_cartGet().then(function (resCart) {
29329                                        window.pars3p.cart = resCart;
29330
29331                                        var queryH89 = jQuery(".page-thanks.h89");
29332                                        if (lib3p_helper.utility.hasValue(queryH89) && queryH89.length > 0) {
29333                                            window.pars3p.cart.temp_OrderPhone = '_temp_'; 
29334                                            window.pars3p.cart.temp_OrderPhoneOTP = '_temp_';
29335                                            window.pars3p.cart.temp_H89 = true;
29336                                        }
29337                                        else {
29338                                            window.pars3p.cart.temp_OrderPhone = window.pars3p.cart.OrderPhone; 
29339                                            window.pars3p.cart.temp_OrderPhoneOTP = window.pars3p.cart.OrderPhoneOTP;
29340                                            if(!lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP) && lib3p_helper.utility.hasValueString(window.pars3p.cart.OTP_Temp)) {
29341                                                window.pars3p.cart.temp_OrderPhoneOTP = window.pars3p.cart.OTP_Temp;
29342                                                if (window.pars3p.auth.isLogin != true) {
29343                                                    window.pars3p.cart.OrderPhoneOTP = window.pars3p.cart.OTP_Temp;
29344                                                    lib3p.common_cartSet(window.pars3p.cart);
29345                                                }                                                
29346                                            }
29347                                            window.pars3p.cart.temp_H89 = false;
29348                                        }
29349                                        if(window.pars3p.cart_temp.IsGift == true && lib3p_helper.utility.hasValue(window.pars3p.cart_temp.GiftBeforeTime)) {
29350                                            window.pars3p.cart_temp.GiftTime = (new Date(window.pars3p.cart_temp.GiftBeforeTime)).getTime() - (new Date()).getTime();
29351                                            if(window.pars3p.cart.temp_
29351H89 == true) {
29352                                                if(lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasValueString(window.pars3p.cart.temp_OrderPhone) && lib3p_helper.utility.hasValueString(window.pars3p.cart.temp_OrderPhoneOTP)) {
29353                                                    lib3p.common_PostURL(window.pars3p.api.public.CartThanks_GiftGet, { Code:data.OrderID, OrderPhone:window.pars3p.cart.temp_OrderPhone, OrderPhoneOTP:window.pars3p.cart.temp_OrderPhoneOTP }, function (res) {
29354                                                        if(lib3p_helper.utility.hasValue(res) && res.Code > 0) {
29355                                                            lib3p.pageCartThanks.LoadDataGift(res);
29356                                                        }
29357                                                    }, function (err2) {
29358                                                        console.log(err2);
29359                                                    });
29360                                                }
29361                                            }
29362                                            else if (window.pars3p.auth.isLogin == true) {
29363                                                lib3p.common_AuthPostURL(window.pars3p.api.auth.CartThanks_GiftGet, { Code: data.OrderID }, function (res) {
29364                                                    if(lib3p_helper.utility.hasValue(res) && res.Code > 0) {
29365                                                        lib3p.pageCartThanks.LoadDataGift(res);
29366                                                    }
29367                                                }, function (err2) {
29368                                                    console.log(err2);
29369                                                });
29370                                            }
29371                                            else {
29372                                                if(lib3p_helper.utility.hasValue(window.pars3p.cart) && lib3p_helper.utility.hasValueString(window.pars3p.cart.temp_OrderPhone) && lib3p_helper.utility.hasValueString(window.pars3p.cart.temp_OrderPhoneOTP)) {
29373                                                    lib3p.common_PostURL(window.pars3p.api.public.CartThanks_GiftGet, { Code:data.OrderID, OrderPhone:window.pars3p.cart.temp_OrderPhone, OrderPhoneOTP:window.pars3p.cart.temp_OrderPhoneOTP }, function (res) {
29374                                                        if(lib3p_helper.utility.hasValue(res) && res.Code > 0) {
29375                                                            lib3p.pageCartThanks.LoadDataGift(res);
29376                                                        }
29377                                                    }, function (err2) {
29378                                                        console.log(err2);
29379                                                    });
29380                                                }
29381                                            }                                        
29382                                        }
29383                                        else {
29384                                            if(window.pars3p.cart.temp_H89 == true) {
29385                                                window.pars3p.islockDiaglog = true;
29386                                                var query = jQuery('.popup-thanks-gift-timeout .hachi-modal');
29387                                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
29388                                                    if (jQuery(query[0]).hasClass("d-none")) {
29389                                                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
29390                                                    }
29391                                                    if(window.pars3p.cart_temp.IsGiftReceived == true) {
29392                                                        query.find('.data .txt').html('Đã nhập quà');
29393                                                    }
29394                                                    else if(window.pars3p.cart_temp.IsGiftReceived == false) {
29395                                                        query.find('.data .txt').html('Đã từ chối nhập quà');
29396                                                    }
29397                                                }
29398                                            }
29399                                            else {
29400                                                if(window.pars3p.cart_temp.IsGift == true && lib3p_helper.utility.hasValue(window.pars3p.cart_temp.GiftBeforeTime)) {
29401                                                    window.pars3p.cart_temp.IsGift = false;
29402                                                    window.pars3p.cart_temp.IsGiftReceived = null;
29403                                                    window.pars3p.cart_temp.MessageError = 'quantity';
29404                                                    window.pars3p.cart_temp.ListGift = [];
29405                                                    lib3p.pageCartThanks.GiftComplete();
29406                                                }
29407        
29408                                                var cart = window.pars3p.cart_temp;
29409                                                cart.OrderDate = lib3p_helper.utility.dateGet(cart.OrderDate);
29410                                                cart.StepDate = lib3p_helper.utility.dateGet(cart.StepDate);
29411                                                cart.EstDelivery = lib3p_helper.utility.dateGet(cart.EstDelivery);
29412                                                lib3p.pageCartThanks.init_LoadData(cart);
29413                                            }
29414                                            
29415                                        }      
29416                                    }, function (errCache) {
29417                                        console.log(errCache);
29418                                    });                                                                  
29419                                }
29420                            }, function (err) {
29421                                throw err;
29422                            });
29423                        }
29424                    }
29425                }, window.pars3p.timeAsync);
29426            });
29427        },
29428        init_LoadData: function(cart) {
29429            lib3p.header.GMC_Purchase(cart);
29430            
29431            var bWidth = lib3p.common_GetWidthBrowser();
29432            if (bWidth >= 800) {
29433                jQuery('.page-thanks .section-1').show(); 
29434            }
29435            else {
29436                jQuery('.mobile-thanks .cart-show').show();
29437            }
29438
29439            var html = '';
29440            if (lib3p_helper.utility.hasListValue(cart.CartDetails)) {
29441                cart.TotalItemQuantity = 0;
29442                cart.TotalItemQuantityChoose = 0;
29443                cart.CartDetails.forEach(function (c, cidx) {
29444                    if (c.OrderQuantity > 0) {
29445                        cart.TotalItemQuantity += c.OrderQuantity;
29446                        cart.TotalItemQuantityChoose += c.OrderQuantity;
29447
29448                        html += '<div class="product">';
29449                        html += '<div class="name"><div class="image"><img src="' + c.ImageSetting + '" /></div><div class="text s14 cl-gregray900 regular400">' + c.ProductName + '<br/>' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</div></div>';
29450                        html += '<div class="soluong s14 cl-gregray900 medium500">' + c.OrderQuantity + '</div>';
29451                        html += '<div class="thanhtien s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatMoney(c.OrderQuantity * c.UnitPrice) + 'đ</div>';
29452                        html += '</div>';
29453
29454                        if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
29455                            var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID == c.Code; });
29456                            if (lib3p_helper.utility.hasListValue(lstGift)) {
29457                                html += '<div class="product-gift hienthi">';
29458                                html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang_ico.svg" /><div class="txt s14 cl-gregray900 medium500">Quà tặng kèm sản phẩm</div></button></div>';
29459                                html += '<div class="product-gift-data sl-gregray200">';
29460                                lstGift.forEach(function (g) {
29461                                    html += '<div class="dong">';
29462                                    html += '<div class="name"><div class="image"><img src="' + g.ImageThumb + '" /></div><div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div></div>';
29463                                    html += '<div class="soluong s14 cl-gregray900 medium500">' + g.Quantity + '</div>';
29464                                    html += '<div class="thanhtien"></div>';
29465                                    html += '</div>';
29466                                });
29467                                html += '</div>';
29468                                html += '</div>';
29469                            }
29470                        }
29471                    }
29472                });
29473                if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
29474                    var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID > 0 != true; });
29475                    if (lib3p_helper.utility.hasListValue(lstGift)) {
29476                        html += '<div class="product-gift hienthi"><div class="line b-gregray200">&nbsp;</div>';
29477                        html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang_ico.svg" /><div class="txt s14 cl-gregray900 medium500">Quà tặng cho đơn hàng</div></button></div>';
29478                        html += '<div class="product-gift-data sl-gregray200">';
29479                        lstGift.forEach(function (g) {
29480                            html += '<div class="dong">';
29481                            html += '<div class="name"><div class="image"><img src="' + g.ImageThumb + '" /></div><div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div></div>';
29482                            html += '<div class="soluong s14 cl-gregray900 medium500">' + g.Quantity + '</div>';
29483                            html += '<div class="thanhtien"></div>';
29484                            html += '</div>';
29485                        });
29486                        html += '</div>';
29487                        html += '</div>';
29488                    }
29489                }
29490                if (cart.CartDetails.length == 1) {
29491                    jQuery('.page-thanks .san-pham.anchitiet').removeClass('anchitiet');
29492                    jQuery('.page-thanks .san-pham .xem-them').hide();
29493                    jQuery('.mobile-thanks .san-pham.anchitiet').removeClass('anchitiet');
29494                    jQuery('.mobile-thanks .san-pham .xem-them').hide();
29495                }
29496            }
29497            jQuery('.page-thanks .san-pham .chi-tiet').html(html);
29498            html = '';
29499            if (lib3p_helper.utility.hasListValue(cart.CartDetails)) {
29500                cart.TotalItemQuantity = 0;
29501                cart.TotalItemQuantityChoose = 0;
29502                cart.CartDetails.forEach(function (c, cidx) {
29503                    if (c.OrderQuantity > 0) {
29504                        cart.TotalItemQuantity += c.OrderQuantity;
29505                        cart.TotalItemQuantityChoose += c.OrderQuantity;
29506
29507                        html += '<div class="product">';
29508                        html += '<div class="image"><img src="' + c.ImageSetting + '" /></div>';
29509                        html += '<div class="name">';
29510                        html += '<div class="text s14 cl-gregray900 regular400">' + c.ProductName + '</div>';
29511                        html += '<div class="text-2"><div class="s14 cl-gregray900 sibold600">' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</div><div class="soluong s14 cl-gregray900 medium500">x&nbsp;' + c.OrderQuantity + '</div></div>';
29512                        html += '</div>';
29513                        html += '</div>';
29514
29515                        if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
29516                            var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID == c.Code; });
29517                            if (lib3p_helper.utility.hasListValue(lstGift)) {
29518                                html += '<div class="product-gift hienthi">';
29519                                html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang_ico.svg" /><div class="txt s14 cl-gregray900 medium500">Quà tặng kèm sản phẩm</div></button></div>';
29520                                html += '<div class="product-gift-data sl-gregray200">';
29521                                lstGift.forEach(function (g) {
29522                                    html += '<div class="dong">';
29523                                    html += '<div class="image"><img src="' + g.ImageThumb + '" /></div>';
29524                                    html += '<div class="name">';
29525                                    html += '<div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div>';
29526                                    html += '<div class="text-2"><div class="s14 cl-gregray900 sibold600"></div><div class="soluong s14 cl-gregray900 medium500">x&nbsp;' + g.Quantity + '</div></div>';
29527                                    html += '</div>';
29528                                    html += '</div>';
29529                                });
29530                                html += '</div>';
29531                                html += '</div>';
29532                            }
29533                        }
29534                    }
29535                });
29536                if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
29537                    var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID > 0 != true; });
29538                    if (lib3p_helper.utility.hasListValue(lstGift)) {
29539                        html += '<div class="product-gift hienthi"><div class="line b-gregray200">&nbsp;</div>';
29540                        html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang_ico.svg" /><div class="txt s14 cl-gregray900 medium500">Quà tặng cho đơn hàng</div></button></div>';
29541                        html += '<div class="product-gift-data sl-gregray200">';
29542                        lstGift.forEach(function (g) {
29543                            html += '<div class="dong">';
29544                            html += '<div class="image"><img src="' + g.ImageThumb + '" /></div>';
29545                            html += '<div class="name">';
29546                            html += '<div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div>';
29547                            html += '<div class="text-2"><div class="s14 cl-gregray900 sibold600"></div><div class="soluong s14 cl-gregray900 medium500">x&nbsp;' + g.Quantity + '</div></div>';
29548                            html += '</div>';
29549                            html += '</div>';
29550                        });
29551                        html += '</div>';
29552                        html += '</div>';
29553                    }
29554                }
29555            }
29556            jQuery('.mobile-thanks .san-pham .chi-tiet').html(html);
29557
29558            jQuery('.page-thanks .section-1 .OrderNo').html(cart.OrderNo);
29559            jQuery('.page-thanks .section-1 .EstDelivery').html(lib3p_helper.utility.formatDateDDMMYYYYHHmm(cart.EstDelivery));
29560            jQuery('.page-thanks .section-1 .ReceivedBy').html(cart.ReceivedBy);
29561            jQuery('.page-thanks .section-1 .Address').html(cart.Address);
29562            jQuery('.page-thanks .section-1 .Cellphone').html(cart.Cellphone);
29563            jQuery('.page-thanks .section-1 .TransportName').html(cart.TransportName);
29564            jQuery('.page-thanks .section-1 .PaymentMethod').html(cart.PaymentMethod);
29565            jQuery('.page-thanks .section-1 .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
29566            jQuery('.page-thanks .section-1 .TotalItemQuantityChoose').html('(' + cart.TotalItemQuantityChoose + ' sản phẩm)');
29567
29568            jQuery('.mobile-thanks .OrderNo').html(cart.OrderNo);
29569            jQuery('.mobile-thanks .EstDelivery').html(lib3p_helper.utility.formatDateDDMMYYYYHHmm(cart.EstDelivery));
29570            jQuery('.mobile-thanks .ReceivedBy').html(cart.ReceivedBy);
29571            jQuery('.mobile-thanks .Address').html(cart.Address);
29572            jQuery('.mobile-thanks .Cellphone').html(cart.Cellphone);
29573            jQuery('.mobile-thanks .TransportName').html(cart.TransportName);
29574            jQuery('.mobile-thanks .PaymentMethod').html(cart.PaymentMethod);
29575            jQuery('.mobile-thanks .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
29576            jQuery('.mobile-thanks .TotalItemQuantityChoose').html('(' + cart.TotalItemQuantityChoose + ' sản phẩm)');
29577
29578            if (cart.IsVAT == true) {
29579                if (!lib3p_helper.utility.hasValueString(cart.VATCode)) cart.VATCode = "";
29580                if (!lib3p_helper.utility.hasValueString(cart.VATDVQHNS)) cart.VATDVQHNS = "";
29581                if (!lib3p_helper.utility.hasValueString(cart.VATIdentityNo)) cart.VATIdentityNo = "";
29582                if (!lib3p_helper.utility.hasValueString(cart.VATPassportNo)) cart.VATPassportNo = "";
29583                if (!lib3p_helper.utility.hasValueString(cart.VATBuyerName)) cart.VATBuyerName = "";
29584                if (!lib3p_helper.utility.hasValueString(cart.VATAddress)) cart.VATAddress = "";
29585                if (!lib3p_helper.utility.hasValueString(cart.VATEmail)) cart.VATEmail = "";
29586                if (!lib3p_helper.utility.hasValueString(cart.VATPhone)) cart.VATPhone = "";
29587                if (!lib3p_helper.utility.hasValueString(cart.VATContactName)) cart.VATContactName = "";
29588
29589                jQuery('.page-thanks .vat .chon-1').hide();
29590                jQuery('.page-thanks .vat .chon-2').hide();
29591                jQuery('.page-thanks .vat .chon-3').hide();
29592                jQuery('.mobile-thanks .vat .chon-1').hide();
29593                jQuery('.mobile-thanks .vat .chon-2').hide();
29594                jQuery('.mobile-thanks .vat .chon-3').hide();
29595                if (cart.VATType > 0) {
29596                    jQuery('.page-thanks .vat .chon-' + cart.VATType).show();
29597                    jQuery('.mobile-thanks .vat .chon-' + cart.VATType).show();
29598                }
29599                jQuery('.page-thanks .don-hang .tong-ket .VATCode').html('Mã số thuế: ' + cart.VATCode);
29600                jQuery('.page-thanks .don-hang .tong-ket .VATDVQHNS').html('Mã ĐVQHNS: ' + cart.VATDVQHNS);
29601                jQuery('.page-thanks .don-hang .tong-ket .VATIdentityNo').html('Số định danh: ' + cart.VATIdentityNo);
29602                jQuery('.page-thanks .don-hang .tong-ket .VATPassportNo').html('Số hộ chiếu: ' + cart.VATPassportNo);
29603                jQuery('.page-thanks .don-hang .tong-ket .VATBuyerName').html('Tên người mua hàng: ' + cart.VATBuyerName);
29604                jQuery('.page-thanks .don-hang .tong-ket .VATCompany').html('Tên Công ty/Tổ chức/HKD: ' + cart.VATCompany);
29605                jQuery('.page-thanks .don-hang .tong-ket .VATAddress').html('Địa chỉ: ' + cart.VATAddress);
29606                jQuery('.page-thanks .don-hang .tong-ket .VATEmail').html('Email nhận hóa đơn: ' + cart.VATEmail);
29607                jQuery('.page-thanks .don-hang .tong-ket .VATPhone').html('Số điện thoại liên hệ: ' + cart.VATPhone);
29608                jQuery('.page-thanks .don-hang .tong-ket .VATContactName').html('Tên người liên hệ: ' + cart.VATContactName);
29609
29610                jQuery('.mobile-thanks .don-hang .tong-ket .VATCode').html('Mã số thuế: ' + cart.VATCode);
29611                jQuery('.mobile-thanks .don-hang .tong-ket .VATDVQHNS').html('Mã ĐVQHNS: ' + cart.VATDVQHNS);
29612                jQuery('.mobile-thanks .don-hang .tong-ket .VATIdentityNo').html('Số định danh: ' + cart.VATIdentityNo);
29613                jQuery('.mobile-thanks .don-hang .tong-ket .VATPassportNo').html('Số hộ chiếu: ' + cart.VATPassportNo);
29614                jQuery('.mobile-thanks .don-hang .tong-ket .VATBuyerName').html('Tên người mua hàng: ' + cart.VATBuyerName);
29615                jQuery('.mobile-thanks .don-hang .tong-ket .VATCompany').html('Tên Công ty/Tổ chức/HKD: ' + cart.VATCompany);
29616                jQuery('.mobile-thanks .don-hang .tong-ket .VATAddress').html('Địa chỉ: ' + cart.VATAddress);
29617                jQuery('.mobile-thanks .don-hang .tong-ket .VATEmail').html('Email nhận hóa đơn: ' + cart.VATEmail);
29618                jQuery('.mobile-thanks .don-hang .tong-ket .VATPhone').html('Số điện thoại liên hệ: ' + cart.VATPhone);
29619                jQuery('.mobile-thanks .don-hang .tong-ket .VATContactName').html('Tên người liên hệ: ' + cart.VATContactName);
29620            }
29621            else {
29622                jQuery('.page-thanks .don-hang .tong-ket .vat').html('');
29623                if (lib3p_helper.utility.hasValueString(cart.RemarkClient)) {
29624                    jQuery('.page-thanks .don-hang .tong-ket .vat').hide();
29625                    jQuery('.page-thanks .don-hang .tong-ket .cot-trai .ghichu').addClass('first');
29626                }
29627                else {
29628                    jQuery('.page-thanks .don-hang .tong-ket .vat').css('opacity', '0');
29629                }
29630                jQuery('.mobile-thanks .don-hang .tong-ket .vat').html('');
29631                jQuery('.mobile-thanks .don-hang .tong-ket .vat').hide();
29632            }
29633            if (lib3p_helper.utility.hasValueString(cart.RemarkClient)) {
29634                jQuery('.page-thanks .don-hang .tong-ket .RemarkClient').html(cart.RemarkClient);
29635                jQuery('.mobile-thanks .don-hang .tong-ket .RemarkClient').html(cart.RemarkClient);
29636            }
29637            else {
29638                jQuery('.page-thanks .don-hang .tong-ket .ghichu').html('');
29639                jQuery('.page-thanks .don-hang .tong-ket .ghichu').hide();
29640                jQuery('.mobile-thanks .don-hang .tong-ket .ghichu').html('');
29641                jQuery('.mobile-thanks .don-hang .tong-ket .ghichu').hide();
29642            }
29643
29644            var TotalSub = 0;
29645            var TotalWithShip = 0;
29646            jQuery('.page-thanks .TotalAmountShipping-sub').hide();
29647            jQuery('.mobile-thanks .TotalAmountShipping-sub').hide();
29648            if (cart.TotalAmount > 0 && cart.ShippingFee > 0) {
29649                var temp = cart.TotalAmount + cart.ShippingFee;
29650                if (cart.ShippingDiscount > 0) {
29651                    temp -= cart.ShippingDiscount;
29652                }
29653                TotalWithShip = temp;
29654                jQuery('.page-thanks .TotalAmountShipping').html(lib3p_helper.utility.formatMoney(temp) + 'đ');
29655                jQuery('.mobile-thanks .TotalAmountShipping').html(lib3p_helper.utility.formatMoney(temp) + 'đ');
29656                jQuery('.page-thanks .TotalAmountShipping-sub').show();
29657                jQuery('.mobile-thanks .TotalAmountShipping-sub').show();
29658            }
29659
29660            jQuery('.page-thanks .don-hang .PolicyMembership-sub').hide();
29661            jQuery('.page-thanks .don-hang .TotalAmountKHTT-sub').hide();
29662            jQuery('.mobile-thanks .don-hang .PolicyMembership-sub').hide();
29663            jQuery('.mobile-thanks .don-hang .TotalAmountKHTT-sub').hide();
29664            if (cart.TotalAmount > 0 && cart.PolicyMembership > 0) {
29665                jQuery('.page-thanks .don-hang .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(cart.PolicyMembership) + 'đ');
29666                jQuery('.page-thanks .don-hang .PolicyMembership-sub').show();
29667                jQuery('.page-thanks .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(TotalWithShip - cart.PolicyMembership - cart.CouponOrder) + 'đ');
29668                jQuery('.page-thanks .TotalAmountKHTT-sub').show();
29669                jQuery('.mobile-thanks .don-hang .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(cart.PolicyMembership) + 'đ');
29670                jQuery('.mobile-thanks .don-hang .PolicyMembership-sub').show();
29671                jQuery('.mobile-thanks .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(TotalWithShip - cart.PolicyMembership - cart.CouponOrder) + 'đ');
29672                jQuery('.mobile-thanks .TotalAmountKHTT-sub').show();
29673                TotalSub += cart.PolicyMembership;
29674            }
29675            jQuery('.page-thanks .CouponOrder-sub').hide();
29676            jQuery('.mobile-thanks .CouponOrder-sub').hide();
29677            if (cart.CouponOrder > 0) {
29678                jQuery('.page-thanks .don-hang .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(cart.CouponOrder) + 'đ');
29679                jQuery('.page-thanks .don-hang .CouponOrder-sub').show();
29680                jQuery('.mobile-thanks .don-hang .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(cart.CouponOrder) + 'đ');
29681                jQuery('.mobile-thanks .don-hang .CouponOrder-sub').show();
29682                TotalSub += cart.CouponOrder;
29683            }
29684            jQuery('.page-thanks .don-hang .TotalAmount').html(lib3p_helper.utility.formatMoney(cart.TotalAmount) + 'đ');
29685            jQuery('.page-thanks .don-hang .CouponPaid-sub').hide();
29686            jQuery('.mobile-thanks .don-hang .TotalAmount').html(lib3p_helper.utility.formatMoney(cart.TotalAmount) + 'đ');
29687            jQuery('.mobile-thanks .don-hang .CouponPaid-sub').hide();
29688            if (cart.CouponPaid > 0) {
29689                jQuery('.page-thanks .don-hang .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(cart.CouponPaid) + 'đ');
29690                jQuery('.page-thanks .don-hang .CouponPaid-sub').show();
29691                jQuery('.mobile-thanks .don-hang .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(cart.CouponPaid) + 'đ');
29692                jQuery('.mobile-thanks .don-hang .CouponPaid-sub').show();
29693                TotalSub += cart.CouponPaid;
29694            }
29695            jQuery('.page-thanks .don-hang .ShippingFee').html('chưa xác định');
29696            jQuery('.mobile-thanks .don-hang .ShippingFee').html('chưa xác định');
29697            if (cart.ShippingFee > 0) {
29698                jQuery('.page-thanks .don-hang .ShippingFee').html(lib3p_helper.utility.formatMoney(cart.ShippingFee) + 'đ');
29699                jQuery('.mobile-thanks .don-hang .ShippingFee').html(lib3p_helper.utility.formatMoney(cart.ShippingFee) + 'đ');
29700            }
29701            jQuery('.page-thanks .don-hang .ShippingDiscount-sub').hide();
29702            jQuery('.mobile-thanks .don-hang .ShippingDiscount-sub').hide();
29703            if (cart.ShippingDiscount > 0) {
29704                jQuery('.page-thanks .don-hang .ShippingDiscount').html(lib3p_helper.utility.formatMoney('-' + cart.ShippingDiscount) + 'đ');
29705                jQuery('.page-thanks .don-hang .ShippingDiscount-sub').show();
29706                jQuery('.mobile-thanks .don-hang .ShippingDiscount').html(lib3p_helper.utility.formatMoney('-' + cart.ShippingDiscount) + 'đ');
29707                jQuery('.mobile-thanks .don-hang .ShippingDiscount-sub').show();
29708 
29708               TotalSub += cart.ShippingDiscount;
29709            }
29710            if (TotalSub > 0) {
29711                jQuery('.page-thanks .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
29712                jQuery('.mobile-thanks .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
29713            }
29714            else {
29715                jQuery('.page-thanks .TotalSub').html('');
29716                jQuery('.mobile-thanks .TotalSub').html('');
29717            }
29718            jQuery('.page-thanks .don-hang .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
29719            jQuery('.mobile-thanks .don-hang .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
29720        
29721        },
29722        onXemThem_Click: function (el) {
29723            var query = jQuery(el).closest('.san-pham');
29724            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
29725                if (query.hasClass('anchitiet')) {
29726                    query.removeClass('anchitiet');
29727                    jQuery(el).html('Rút gọn');
29728                }
29729                else {
29730                    query.addClass('anchitiet');
29731                    jQuery(el).html('Xem thêm');
29732                }
29733            }
29734        },
29735        onCopy_Click: function () {
29736            var html = jQuery('.mode-desktop .page-thanks .sub-2 .OrderNo').html();
29737            if (lib3p_helper.utility.hasValueString(html)) {
29738                navigator.clipboard.writeText(html);
29739                lib3p.header.Notify_Show('Đã copy mã đơn hàng thành công!');
29740            }
29741        },
29742        onGiftToggle_Click: function (el) {
29743            var query = jQuery(el).closest('.product-gift');
29744            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
29745                if (query.hasClass('hienthi')) {
29746                    query.removeClass('hienthi');
29747                }
29748                else {
29749                    query.addClass('hienthi');
29750                }
29751            }
29752        },
29753        onGiftTimeout_Close: function () {
29754            window.location.reload();
29755        },
29756        onGiftMobile_XemThem: function (el) {
29757            jQuery(el).closest('.group-gift').addClass('show');
29758        },
29759        LoadDataGift_Time: function () {
29760            if(lib3p_helper.utility.hasValue(window.pars3p.cart_temp.GiftTime)) {
29761                if(window.pars3p.cart_temp.GiftTime > 0) {
29762                    const days = window.pars3p.cart_temp.GiftTime / (24 * 60 * 60 * 1000);
29763                    const hours = (days % 1) * 24;
29764                    var minutes = (hours % 1) * 60;
29765                    var secs = (minutes % 1) * 60;
29766                    minutes = Math.trunc(minutes);
29767                    secs = Math.trunc(secs);
29768                    jQuery('.boxtimer .timer-min').html(minutes > 9 ? minutes : '0' + minutes);
29769                    jQuery('.boxtimer .timer-sec').html(secs > 9 ? secs : '0' + secs);
29770                    window.pars3p.cart_temp.GiftTime -= 1000;
29771                    setTimeout(function() {
29772                        lib3p.pageCartThanks.LoadDataGift_Time();
29773                    }, 1000);
29774                }
29775                else {                    
29776                    window.pars3p.cart_temp.IsGiftReceived = null;
29777                    window.pars3p.cart_temp.MessageError = 'timer';
29778                    window.pars3p.cart_temp.ListGift = [];
29779                    jQuery('.boxtimer .timer-min').html('00');
29780                    jQuery('.boxtimer .timer-sec').html('00');
29781                    lib3p.pageCartThanks.GiftComplete(false);
29782                    window.pars3p.islockDiaglog = true;
29783                    var query = jQuery('.popup-thanks-gift-timeout .hachi-modal');
29784                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
29785                        if (jQuery(query[0]).hasClass("d-none")) {
29786                            jQuery(query[0]).removeClass("d-none").addClass("d-block");
29787                        }
29788                    }                    
29789                }
29790            }
29791            else {
29792                window.pars3p.cart_temp.IsGiftReceived = null;
29793                window.pars3p.cart_temp.MessageError = 'timer';
29794                window.pars3p.cart_temp.ListGift = [];
29795                lib3p.pageCartThanks.GiftComplete();
29796            }
29797        },
29798        LoadDataGift: function(cart) {
29799            var hasGift = cart.ListGift.filter(function(o) { return o.QuantityWithOrder > 0; }).length > 0;
29800            if(hasGift != true) {
29801                hasGift = cart.CartDetails.filter(function(o) { return lib3p_helper.utility.hasListValue(o.ListGift) && o.ListGift.length > 0; }).length > 0;
29802            }
29803            if(hasGift != true) {
29804                window.pars3p.cart_temp.IsGiftReceived = null;
29805                window.pars3p.cart_temp.MessageError = 'quantity';
29806                window.pars3p.cart_temp.ListGift = [];
29807                lib3p.pageCartThanks.GiftComplete();
29808            }
29809            else if(lib3p_helper.utility.hasValue(window.pars3p.cart_temp.GiftTime) && !(window.pars3p.cart_temp.GiftTime > 0)) {
29810                lib3p.pageCartThanks.LoadDataGift_Time();
29811            }
29812            else {
29813                lib3p.pageCartThanks.LoadDataGift_Time();
29814                var bWidth = lib3p.common_GetWidthBrowser();
29815                if (bWidth >= 800) {
29816                    jQuery('.page-thanks .page-thanks-gift').show();
29817                    jQuery('.page-thanks .section-1').hide();
29818                    jQuery('.mode-desktop .page-header-top-1').addClass('hasgift');
29819                    jQuery('.page-header-menu').addClass('hasgift');  
29820                }
29821                else {
29822                    jQuery('.mobile-thanks .mobile-thanks-gift').show();
29823                    jQuery('.mobile-thanks .cart-show').hide();
29824                    jQuery('.mobile-header').addClass('hasgift');
29825                    jQuery('.mobile-thanks.top').addClass('hasgift');                    
29826                }            
29827                if (lib3p_helper.utility.hasListValue(window.pars3p.others.ListGroupGift) == false) {
29828                    var group = {};
29829                    cart.ListGift.forEach(function (d) {
29830                        if (d.CategoryID > 0) {
29831                            if (!lib3p_helper.utility.hasValue(group[d.CategoryID])) {
29832                                group[d.CategoryID] = {};
29833                            }
29834                            if (!lib3p_helper.utility.hasValue(group[d.CategoryID][d.BrandID])) {
29835                                group[d.CategoryID][d.BrandID] = [];
29836                            }
29837                            d.Quantity = 0;
29838                            group[d.CategoryID][d.BrandID].push(d);
29839                        }
29840                    });
29841                    cart.CartDetails.forEach(function (detail) {
29842                        if (lib3p_helper.utility.hasListValue(detail.ListGift)) {
29843                            detail.ListGift.forEach(function (d) {
29844                                if (d.CategoryID > 0 && detail.ProductID > 0) {
29845                                    d.BannerCard = detail.ProductName;
29846                                    d.OrderQuantity = detail.OrderQuantity;
29847                                    d.OrderQuantityUse = detail.OrderQuantity;
29848                                    d.OrginalID = detail.ProductID;
29849                                    if (!lib3p_helper.utility.hasValue(group[d.CategoryID + '-' + detail.ProductID])) {
29850                                        group[d.CategoryID + '-' + detail.ProductID] = {};
29851                                    }
29852                                    if (!lib3p_helper.utility.hasValue(group[d.CategoryID + '-' + detail.ProductID][d.BrandID])) {
29853                                        group[d.CategoryID + '-' + detail.ProductID][d.BrandID] = [];
29854                                    }
29855                                    d.Quantity = 0;
29856                                    group[d.CategoryID + '-' + detail.ProductID][d.BrandID].push(d);
29857                                }
29858                            });
29859                        }
29860                    });
29861                    window.pars3p.others.ListGroupGift = [];
29862                    for (var key in group) {
29863                        if (lib3p_helper.utility.hasListValue(group[key])) {
29864                            var first = null;
29865                            for (var key2 in group[key]) {
29866                                first = group[key][key2][0];
29867                                first.VNPromotion = first.BrandName;
29868                                first.VNSummary = first.TechnicalSpec;
29869                                first.VNDescription = first.OrginalName;
29870                            }
29871                            var item = {
29872                                key: first,
29873                                group: group[key]
29874                            };
29875                            window.pars3p.others.ListGroupGift.push(item);
29876                        }
29877                    }
29878                    var html = '';
29879                    var bWidth = lib3p.common_GetWidthBrowser();
29880                    var totalOrderGift = window.pars3p.cart_temp.TotalAmount + window.pars3p.cart_temp.ShippingFee;
29881                    if (window.pars3p.cart_temp.ShippingDiscount > 0) {
29882                        totalOrderGift -= window.pars3p.cart_temp.ShippingDiscount;
29883                    }
29884                    if (window.pars3p.cart_temp.PolicyMembership > 0) {
29885                        totalOrderGift -= window.pars3p.cart_temp.PolicyMembership;
29886                    }
29887                    if (window.pars3p.cart_temp.CouponOrder > 0) {
29888                        totalOrderGift -= window.pars3p.cart_temp.CouponOrder;
29889                    }
29890                    window.pars3p.cart_temp.TotalOrderGift = totalOrderGift;
29891                    window.pars3p.others.ListGroupGift.forEach(function (g) {
29892                        var OrginalID = '';
29893                        if (g.key.OrginalID > 0) {
29894                            OrginalID += '-' + g.key.OrginalID;
29895                        }
29896                        html += '<div class="group-gift cate-' + g.key.CategoryID + OrginalID + ' type2 show"><div class="top-img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/quatang2_ico.svg" /></div>';
29897                        var tieude = '';
29898                        var tieudesub = '';
29899                        var tomtat = '';
29900                        //var ghichu = '';
29901                        if (g.key.TypeData == 15) {
29902                            //tieude = 'Quà tặng kèm sản phẩm';
29903                            //tieudesub = 'Tặng quà khi mua ' + g.key.BannerCard;
29904                            //tomtat = 'Bạn vừa mua sản phẩm <span class="cl-dakgreen650 bold700">' + g.key.BannerCard + '</span>';
29905                            tieude = g.key.VNPromotion;
29906                            if (bWidth >= 800) {
29907                                tieudesub = '<div class="tieu-de-sub s15 cl-gregray900 regular400">' + g.key.VNSummary + '</div>';
29908                            }
29909                            else {
29910                                tieudesub = '<div class="tieu-de-sub s15 cl-gregray900 regular400">' + g.key.VNSummary + '</div>';
29911                            }
29912                            tomtat = 'Bạn vừa mua sản phẩm <span class="cl-dakgreen650 bold700">' + g.key.BannerCard + '</span> có quà tặng kèm dưới đây';
29913                            //ghichu = g.key.VNDescription;
29914                        }
29915                        if (g.key.TypeData == 16) {
29916                            /* tieude = 'Quà tặng cho nhóm sản phẩm';
29917                            tieudesub = 'Tặng quà khi mua nhóm sản phẩm: ' + g.key.BannerCard;
29918                            tomtat = 'Bạn vừa mua nhóm sản phẩm <span class="cl-dakgreen650 bold700">' + g.key.BannerCard + '</span>'; */
29919                            tieude = g.key.VNPromotion;
29920                            //tomtat = g.key.VNDescription;    
29921                            if (bWidth >= 800) {
29922                                tieudesub = '<div class="tieu-de-sub s15 cl-gregray900 regular400">' + g.key.VNSummary + '</div>';
29923                            }
29924                            else {
29925                                tieudesub = '<div class="tieu-de-sub s15 cl-gregray900 regular400">' + g.key.VNSummary + '</div>';
29926                            }    
29927                        }
29928                        if (g.key.TypeData == 17) {
29929                            //tieude = 'Quà tặng cho đơn hàng';
29930                            tieude = g.key.VNPromotion;
29931                            if (bWidth >= 800) {
29932                                tieudesub = '<div class="tieu-de-sub s15 cl-gregray900 regular400">' + g.key.VNSummary + '</div>';
29933                            }
29934                            else {
29935                                tieudesub = '<div class="tieu-de-sub s15 cl-gregray900 regular400">' + g.key.VNSummary + '</div>';
29936                            }
29937                            //tomtat = g.key.VNDescription;
29938                        }
29939                        if (bWidth >= 800) {
29940                            html += '<div class="tieu-de s24 cl-dakgreen800 bold700">' + tieude + '</div>';
29941                        }
29942                        else {
29943                            html += '<div class="tieu-de s20 cl-dakgreen800 bold700">' + tieude + '</div>';
29944                        }
29945                        if (lib3p_helper.utility.hasValueString(tieudesub)) {
29946                            html += tieudesub;
29947                        }
29948                        if (lib3p_helper.utility.hasValueString(tomtat)) {
29949                            html += '<div class="tom-tat s16 cl-dakgreen800 regular400">' + tomtat + '</div>';
29950                            //html += '<div class="tom-tat s18 cl-dakgreen800 regular400">có quà tặng kèm dưới đây</div>';
29951                        }
29952                        html += '<div class="gia-tri-outline">';
29953                        html += '<div class="gia-tri" style="background-image: url(\'https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-bg.jpg\');">';
29954                        if (g.key.TypeData == 15) {
29955                            html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Số lượng sản phẩm đã mua</div><div class="value s20 cl-dakgreen800 bold700">' + g.key.OrderQuantity + '</div></div>';
29956                            html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Số lượng SP còn lại để chọn quà</div><div class="value-conlai s20 cl-orange500 bold700">' + g.key.OrderQuantity + '</div></div>';
29957                        }
29958                        else if (g.key.TypeData == 16) {
29959                            if(g.key.OrderBy == lib3p.pageCart.data.EnumDetermineGift.TheoSoLuong) {
29960                                g.key.OrderQuantity = g.key.GiftGroupQuantity;
29961                                g.key.OrderQuantityUse = g.key.GiftGroupQuantity;
29962                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Số lượng sản phẩm đã mua</div><div class="value s20 cl-dakgreen800 bold700">' + g.key.OrderQuantity + '</div></div>';
29963                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Số lượng SP còn lại để chọn quà</div><div class="value-conlai s20 cl-orange500 bold700">' + g.key.OrderQuantity + '</div></div>';
29964                            }
29965                            else if(g.key.OrderBy == lib3p.pageCart.data.EnumDetermineGift.TheoGiaTri
29965) {                                
29966                                g.key.TotalAmount = g.key.GiftGroupTotal;
29967                                g.key.TotalAmountMax = 0;
29968                                g.key.TotalAmountUse = g.key.GiftGroupTotal;
29969                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Giá trị sản phẩm đã mua</div><div class="value s20 cl-dakgreen800 bold700">' + lib3p_helper.utility.formatMoney(g.key.TotalAmount) + 'đ</div></div>';
29970                                html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Giá trị còn lại để chọn quà</div><div class="value-conlai s20 cl-orange500 bold700">' + lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ</div></div>';
29971                            }                            
29972                        }
29973                        else if (g.key.TypeData == 17) {
29974                            g.key.TotalAmount = window.pars3p.cart_temp.TotalOrderGift;
29975                            g.key.TotalAmountMax = g.key.QuantityInStore;
29976                            g.key.TotalAmountUse = window.pars3p.cart_temp.TotalOrderGift;
29977                            if(g.key.TotalAmountMax > 0 && g.key.TotalAmount > g.key.TotalAmountMax) {
29978                                g.key.TotalAmountUse = g.key.TotalAmountMax;
29979                            }
29980                            html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Thành tiền đơn hàng đã mua</div><div class="value s20 cl-dakgreen800 bold700">' + lib3p_helper.utility.formatMoney(g.key.TotalAmount) + 'đ</div></div>';
29981                            html += '<div class="dong"><div class="img"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/payment-gift-check.svg" /></div><div class="noidung s14 cl-gregray900 sibold600">Giá trị còn lại để chọn quà</div><div class="value-conlai s20 cl-orange500 bold700">' + lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ</div></div>';
29982                        }
29983                        html += '</div>';
29984                        html += '<div class="text s15 cl-gregray550 regular400">Số lượng quà tặng có hạn và có thể hết sớm hơn dự kiến mà không cần báo trước.</div>';
29985                        html += '</div>';
29986                        /* if (lib3p_helper.utility.hasValueString(ghichu)) {
29987                            html += '<div class="ghi-chu s15 cl-gregray900 sibold60">' + ghichu + '</div>';
29988                        } */
29989    
29990                        for (var key in g.group) {
29991                            var first = g.group[key][0];
29992                            if (g.key.TypeData == 15) {
29993                                html += '<div class="nhom-sp nhom-' + g.key.CategoryID + '-' + key + '"><div class="nhom-sp-tieu-de"><div class="s16 cl-gregray900 sibold600">Quà tặng khi mua số lượng là&nbsp;&nbsp;<span class="s20 bold700">' + first.Price + '</span></div>';
29994                            }
29995                            else if (g.key.TypeData == 16) {
29996                                if(g.key.OrderBy == lib3p.pageCart.data.EnumDetermineGift.TheoSoLuong) {
29997                                    html += '<div class="nhom-sp nhom-' + g.key.CategoryID + '-' + key + '"><div class="nhom-sp-tieu-de"><div class="s16 cl-gregray900 sibold600">Quà tặng khi mua số lượng là&nbsp;&nbsp;<span class="s20 bold700">' + first.Price + '</span></div>';
29998                                }
29999                                else if(g.key.OrderBy == lib3p.pageCart.data.EnumDetermineGift.TheoGiaTri) {
30000                                    html += '<div class="nhom-sp nhom-' + g.key.CategoryID + '-' + key + '"><div class="nhom-sp-tieu-de"><div class="s16 cl-gregray900 sibold600">Quà tặng khi mua giá trị là&nbsp;&nbsp;<span class="s20 bold700">' + lib3p_helper.utility.formatMoney(first.Price) + 'đ</span></div>';
30001                                }
30002                            }
30003                            else if (g.key.TypeData == 17) {
30004                                html += '<div class="nhom-sp nhom-' + g.key.CategoryID + '-' + key + '"><div class="nhom-sp-tieu-de"><div class="s16 cl-gregray900 sibold600">Quà tặng khi mua giá trị là&nbsp;&nbsp;<span class="s20 bold700">' + lib3p_helper.utility.formatMoney(first.Price) + 'đ</span></div>';
30005                            }
30006                            if(first.BestPrice > 0) {
30007                                html += '<div class="max-quantity hasdata">
30007<div class="data b-orange-50"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-exclamation.svg" /><div class="s12 cl-gregray900 regular400">Số quà có thể chọn tối đa ' + Math.trunc(first.BestPrice) + '</div></div></div>';
30008                            }
30009                            else {
30010                                html += '<div class="max-quantity">&nbsp;</div>';
30011                            }
30012                            html += '</div>';
30013                            html += '<div class="product-list owl-carousel">';
30014                            g.group[key].forEach(function (p) {
30015                                var OrginalID = p.OrginalID > 0 ? p.OrginalID : -1;
30016                                html += '<div class="product-item-outline item-' + p.CategoryID + '-' + p.BrandID + '-' + p.Code + '-' + OrginalID + '">';
30017                                html += '<div class="product-item">';
30018                                html += '<div class="img"><img src="' + p.ImageThumb + '" alt="..."/></div>';
30019                                html += '<div class="name-outline"><div class="name s13 cl-gregray800 medium500">' + p.ProductName + '</div>';                                
30020                                html += '<div class="group-input"><button type="button" aria-label="hachihachi" class="sub sl-gregray200" onclick="lib3p.pageCartThanks.onGiftInput_Sub(this,' + p.CategoryID + ',' + p.BrandID + ',' + p.Code + ',' + OrginalID + ');"><span class="ico s12 hachi-icon-minus"></span></button><input type="number" pattern="\d*" value="0" onkeydown="lib3p.pageCartThanks.onGiftInput_Keydown(event,this,' + p.CategoryID + ',' + p.BrandID + ',' + p.Code + ',' + OrginalID + ')" class="input sl-gregray200" max="' + p.QuantityWithOrder + '"/><button type="button" aria-label="hachihachi" class="add sl-gregray200" onclick="lib3p.pageCartThanks.onGiftInput_Add(this,' + p.CategoryID + ',' + p.BrandID + ',' + p.Code + ',' + OrginalID + ');"><span class="ico s12 hachi-icon-plus"></span></button></div>';
30021                                html += '</div>';
30022                                html += '</div>';
30023                                if(p.PriceKHTT > 0) {
30024                                    html += '<div class="max-quantity"><div class="data b-orange-50"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/circle-exclamation.svg" /><div class="s12 cl-gregray900 regular400">Số quà có thể chọn tối đa ' + Math.trunc(p.PriceKHTT) + '</div></div></div>';
30025                                }
30026                                else {
30027                                    html += '<div class="max-quantity">&nbsp;</div>';
30028                                }                                
30029                                html += '<div class="product-item-empty b-white">&nbsp;</div></div>';
30030                            });
30031                            html += '</div>';
30032                            html += '</div>';
30033                        }
30034                        html += '<div class="xemthem"><div class="xemthem-outline"><button type="button" aria-label="hachihachi" class="sl-gregray200 s13 cl-dakgreen650 sibold600" onclick="lib3p.pageCartThanks.onGiftMobile_XemThem(this)"><span>Xem thêm</span><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-down.svg" alt="hachihachi" loading="lazy"></button></div></div><div class="line b-gregray200">&nbsp;</div>';
30035                        html += '</div>';
30036                    });
30037    
30038                    if (bWidth >= 800) {
30039                        jQuery('.page-thanks-gift .col-lg-12 .data').html(html);
30040                        jQuery('.page-thanks-gift .col-lg-12 .data .product-list.owl-carousel').owlCarousel({
30041                            autoplay: false,
30042                            autoplayTimeout: 0,
30043                            autoplayHoverPause: false,
30044                            autoWidth: true,
30045                            loop: false,
30046                            nav: true,
30047                            dots: false,
30048                            margin: 10,
30049                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
30050                            navElement: 'div'
30051                        });
30052                    }
30053                    else {
30054                        jQuery('.mobile-thanks .mobile-thanks-gift .data').html(html);
30055                        jQuery('.mobile-thanks .mobile-thanks-gift .data .product-list.owl-carousel').owlCarousel({
30056                            autoplay: false,
30057                            autoplayTimeout: 0,
30058                            autoplayHoverPause: false,
30059                            autoWidth: true,
30060                            loop: false,
30061                            nav: true,
30062                            dots: false,
30063                            margin: 10,
30064                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
30065                            navElement: 'div'
30066                        });
30067                    }
30068                }
30069            }
30070
30071        },
30072        onGiftInput_Keydown: function (event, el, cateid, brandid, id, productid) {
30073            var query = jQuery(el);
30074            var btn = jQuery(jQuery(el).closest('.group-input')[0]).find('button.add');
30075            var conlai = jQuery(jQuery(el).closest('.group-gift')[0]).find('.gia-tri .dong .value-conlai');
30076            setTimeout(function () {
30077                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
30078                    var val = query.val();
30079                    var q = -1;
30080                    try {
30081                        if (lib3p_helper.utility.hasValueString(val)) {
30082                            q = parseInt(val);                            
30083                        }
30084                    }
30085                    catch { }
30086                    var g = window.pars3p.others.ListGroupGift.find(function (o) { return o.key.CategoryID == cateid; });
30087                    if(productid > 0) {
30088                        g = window.pars3p.others.ListGroupGift.find(function (o) { return o.key.CategoryID == cateid && o.key.OrginalID == productid; });
30089                    }
30090                    if (lib3p_helper.utility.hasValue(g) && q >= 0) {
30091                        var item = g.group[brandid].find(function (o) { return o.Code == id; });
30092                        if (lib3p_helper.utility.hasValue(item)) {
30093                            if(item.PriceKHTT > 0 && q >= item.PriceKHTT) {
30094                                q = item.PriceKHTT;
30095                                query.val(q);
30096                            }
30097                            if (q > 0) {
30098                                if (g.key.TypeData == 15) {
30099                                    if (g.key.OrderQuantityUse + item.Price * item.Quantity >= item.Price * q) {
30100                                        g.key.OrderQuantityUse += item.Price * item.Quantity;
30101                                        g.key.OrderQuantityUse -= item.Price * q;
30102                                        item.Quantity = q;
30103                                        conlai.html(g.key.OrderQuantityUse);
30104                                        lib3p.pageCartThanks.GiftInput_ReCheck();
30105                                    }
30106                                    else {
30107                                        query.val(item.Quantity);
30108                                    }
30109                                }
30110                                else if (g.key.TypeData == 16) {
30111                                    if(g.key.OrderBy == lib3p.pageCart.data.EnumDetermineGift.TheoSoLuong) {
30112                                        if (g.key.OrderQuantityUse + item.Price * item.Quantity >= item.Price * q) {
30113                                            g.key.OrderQuantityUse += item.Price * item.Quantity;
30114                                            g.key.OrderQuantityUse -= item.Price * q;
30115                                            item.Quantity = q;
30116                                            conlai.html(g.key.OrderQuantityUse);
30117                                            lib3p.pageCartThanks.GiftInput_ReCheck();
30118                                        }
30119                                        else {
30120                                            query.val(item.Quantity);
30121                                        }                                
30122                                    }
30123                                    else if(g.key.OrderBy == lib3p.pageCart.data.EnumDetermineGift.TheoGiaTri
30123) {
30124                                        if (g.key.TotalAmountUse + item.Price * item.Quantity >= item.Price * q) {                                            
30125                                            g.key.TotalAmountUse += item.Price * item.Quantity;
30126                                            g.key.TotalAmountUse -= item.Price * q;
30127                                            item.Quantity = q;
30128                                            if(g.key.TotalAmountMax > 0 && g.key.TotalAmountUse > g.key.TotalAmountMax) {
30129                                                g.key.TotalAmountUse = g.key.TotalAmountMax;
30130                                            }
30131                                            conlai.html(lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ');
30132                                            lib3p.pageCartThanks.GiftInput_ReCheck();
30133                                        }
30134                                        else {
30135                                            query.val(item.Quantity);
30136                                        }
30137                                    }
30138                                }
30139                               else if (g.key.TypeData == 17) {
30140                                    if (g.key.TotalAmountUse + item.Price * item.Quantity >= item.Price * q) {                                        
30141                                        g.key.TotalAmountUse += item.Price * item.Quantity;
30142                                        g.key.TotalAmountUse -= item.Price * q;
30143                                        item.Quantity = q;
30144                                        if(g.key.TotalAmountMax > 0 && g.key.TotalAmountUse > g.key.TotalAmountMax) {
30145                                            g.key.TotalAmountUse = g.key.TotalAmountMax;
30146                                        }
30147                                        conlai.html(lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ');
30148                                        lib3p.pageCartThanks.GiftInput_ReCheck();
30149                                    }
30150                                    else {
30151                                        query.val(item.Quantity);
30152                                    }
30153                                }
30154                                if (item.Quantity >= item.QuantityWithOrder || (item.PriceKHTT > 0 && item.Quantity >= item.PriceKHTT)) {
30155                                    if (lib3p_helper.utility.hasValue(btn) && btn.length > 0) {
30156                                        btn.removeAttr('disabled');
30157                                        btn.attr('disabled', 'disabled');
30158                                    }
30159                                }
30160                            }
30161                            else {
30162                                item.Quantity = 0;
30163                                if (lib3p_helper.utility.hasValue(btn) && btn.length > 0) {
30164                                    btn.removeAttr('disabled');
30165                                }
30166                                lib3p.pageCartThanks.GiftInput_ReCheck();
30167                            }
30168                        }
30169                    }
30170                }
30171            }, 100);
30172        },
30173        onGiftInput_Sub: function (el, cateid, brandid, id, productid) {
30174            var query = jQuery(el).closest('.group-input');
30175            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
30176                query = jQuery(query[0]).find('input[type="number"]');
30177                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
30178                    var val = query.val();
30179                    if (!lib3p_helper.utility.hasValueString(val) || val == "0") {
30180                        val = "0";
30181                    }
30182                    else {
30183                        var g = window.pars3p.others.ListGroupGift.find(function (o) { return o.key.CategoryID == cateid; });
30184                        if(productid > 0) {
30185                            g = window.pars3p.others.ListGroupGift.find(function (o) { return o.key.CategoryID == cateid && o.key.OrginalID == productid; });
30186                        }
30187                        if (lib3p_helper.utility.hasValue(g)) {
30188                            var item = g.group[brandid].find(function (o) { return o.Code == id; });
30189                            if (lib3p_helper.utility.hasValue(item)) {
30190                                if (g.key.TypeData == 15) {
30191                                    item.Quantity--;
30192                                    query.val(item.Quantity);
30193                                    g.key.OrderQuantityUse += item.Price;
30194                                    jQuery(jQuery(el).closest('.group-gift')[0]).find('.gia-tri .dong .value-conlai').html(g.key.OrderQuantityUse);
30195                                    lib3p.pageCartThanks.GiftInput_ReCheck();
30196                                }
30197                                else if (g.key.TypeData == 16) {
30198                                    if(g.key.OrderBy == lib3p.pageCart.data.EnumDetermineGift.TheoSoLuong) {
30199                                        item.Quantity--;
30200                                        query.val(item.Quantity);
30201                                        g.key.OrderQuantityUse += item.Price;
30202                                        jQuery(jQuery(el).closest('.group-gift')[0]).find('.gia-tri .dong .value-conlai').html(g.key.OrderQuantityUse);
30203                                        lib3p.pageCartThanks.GiftInput_ReCheck();                                        
30204                                    }
30205                                    else if(g.key.OrderBy == lib3p.pageCart.data.EnumDetermineGift.TheoGiaTri
30205) {
30206                                        item.Quantity--;
30207                                        query.val(item.Quantity);  
30208                                        g.key.TotalAmountUse += item.Price;
30209                                        if(g.key.TotalAmountMax > 0 && g.key.TotalAmountUse > g.key.TotalAmountMax) {
30210                                            g.key.TotalAmountUse = g.key.TotalAmountMax;
30211                                        }
30212                                        jQuery(jQuery(el).closest('.group-gift')[0]).find('.gia-tri .dong .value-conlai').html(lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ');
30213                                        lib3p.pageCartThanks.GiftInput_ReCheck();
30214                                    }
30215                                }
30216                                else if (g.key.TypeData == 17) {
30217                                    item.Quantity--;
30218                                    query.val(item.Quantity);  
30219                                    g.key.TotalAmountUse += item.Price;
30220                                    if(g.key.TotalAmountMax > 0 && g.key.TotalAmountUse > g.key.TotalAmountMax) {
30221                                        g.key.TotalAmountUse = g.key.TotalAmountMax;
30222                                    }
30223                                    jQuery(jQuery(el).closest('.group-gift')[0]).find('.gia-tri .dong .value-conlai').html(lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ');
30224                                    lib3p.pageCartThanks.GiftInput_ReCheck();
30225                                }
30226                                var btn = jQuery(jQuery(el).closest('.group-input')[0]).find('button.add');
30227                                if (lib3p_helper.utility.hasValue(btn) && btn.length > 0) {
30228                                    btn.removeAttr('disabled');
30229                                }
30230                            }
30231                        }
30232                    }
30233                }
30234            }
30235        },
30236        onGiftInput_Add: function (el, cateid, brandid, id, productid) {
30237            var query = jQuery(el).closest('.group-input');
30238            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
30239                query = jQuery(query[0]).find('input[type="number"]');
30240                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
30241                    var g = window.pars3p.others.ListGroupGift.find(function (o) { return o.key.CategoryID == cateid; });
30242                    if(productid > 0) {
30243                        g = window.pars3p.others.ListGroupGift.find(function (o) { return o.key.CategoryID == cateid && o.key.OrginalID == productid; });
30244                    }
30245                    if (lib3p_helper.utility.hasValue(g)) {
30246                        var item = g.group[brandid].find(function (o) { return o.Code == id; });
30247                        if (lib3p_helper.utility.hasValue(item)) {
30248                            if (item.Quantity >= item.QuantityWithOrder) {
30249                                var btn = jQuery(jQuery(el).closest('.group-input')[0]).find('button.add');
30250                                if (lib3p_helper.utility.hasValue(btn) && btn.length > 0) {
30251                                    btn.removeAttr('disabled');
30252                                    btn.attr('disabled', 'disabled');
30253                                }
30254                            }
30255                            else {
30256                                if (g.key.TypeData == 15) {
30257                                    if (g.key.OrderQuantityUse >= item.Price) {
30258                                        item.Quantity++;
30259                                        query.val(item.Quantity);
30260                                        g.key.OrderQuantityUse -= item.Price;
30261                                        jQuery(jQuery(el).closest('.group-gift')[0]).find('.gia-tri .dong .value-conlai').html(g.key.OrderQuantityUse);
30262                                        lib3p.pageCartThanks.GiftInput_ReCheck();
30263                                    }
30264                                }
30265                                else if (g.key.TypeData == 16) {
30266                                    if(g.key.OrderBy == lib3p.pageCart.data.EnumDetermineGift.TheoSoLuong) {
30267                                        item.Quantity++;
30268                                        query.val(item.Quantity);
30269                                        g.key.OrderQuantityUse -= item.Price;
30270                                        jQuery(jQuery(el).closest('.group-gift')[0]).find('.gia-tri .dong .value-conlai').html(g.key.OrderQuantityUse);
30271                                        lib3p.pageCartThanks.GiftInput_ReCheck();                                        
30272                                    }
30273                                    else if(g.key.OrderBy == lib3p.pageCart.data.EnumDetermineGift.TheoGiaTri
30273) {
30274                                        item.Quantity++;
30275                                        query.val(item.Quantity);     
30276                                        g.key.TotalAmountUse -= item.Price;
30277                                        if(g.key.TotalAmountMax > 0 && g.key.TotalAmountUse > g.key.TotalAmountMax) {
30278                                            g.key.TotalAmountUse = g.key.TotalAmountMax;
30279                                        }
30280                                        jQuery(jQuery(el).closest('.group-gift')[0]).find('.gia-tri .dong .value-conlai').html(lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ');
30281                                        lib3p.pageCartThanks.GiftInput_ReCheck();
30282                                    }
30283                                }
30284                                else if (g.key.TypeData == 17) {
30285                                    if (g.key.TotalAmountUse >= item.Price) {
30286                                        item.Quantity++;
30287                                        query.val(item.Quantity);     
30288                                        g.key.TotalAmountUse -= item.Price;
30289                                        if(g.key.TotalAmountMax > 0 && g.key.TotalAmountUse > g.key.TotalAmountMax) {
30290                                            g.key.TotalAmountUse = g.key.TotalAmountMax;
30291                                        }
30292                                        jQuery(jQuery(el).closest('.group-gift')[0]).find('.gia-tri .dong .value-conlai').html(lib3p_helper.utility.formatMoney(g.key.TotalAmountUse) + 'đ');
30293                                        lib3p.pageCartThanks.GiftInput_ReCheck();
30294                                    }
30295                                }
30296                                if (item.Quantity >= item.QuantityWithOrder || (item.PriceKHTT > 0 && item.Quantity >= item.PriceKHTT)) {
30297                                    var btn = jQuery(jQuery(el).closest('.group-input')[0]).find('button.add');
30298                                    if (lib3p_helper.utility.hasValue(btn) && btn.length > 0) {
30299                                        btn.removeAttr('disabled');
30300                                        btn.attr('disabled', 'disabled');
30301                                    }
30302                                }
30303                            }
30304                        }
30305                    }
30306                }
30307            }
30308        },
30309        GiftInput_ReCheck: function (el) {
30310            var flag = false;
30311            window.pars3p.others.ListGroupGift.forEach(function (g) {                
30312                if (g.key.TypeData == 15) {
30313                    jQuery('.group-gift.cate-' + g.key.CategoryID + '-' + g.key.OrginalID + ' .group-input button.add').removeAttr('disabled');
30314                    jQuery('.group-gift.cate-' + g.key.CategoryID + '-' + g.key.OrginalID + ' .product-item-outline').removeClass('isempty');
30315                    if (g.key.OrderQuantityUse > 0) {
30316                        for (var key in g.group) {
30317                            var first = g.group[key][0];
30318                            var quan_range = 0;
30319                            g.group[key].forEach(function(p) {
30320                                quan_range += p.Quantity;
30321                            });
30322                            if (g.key.OrderQuantityUse >= first.Price && (!(first.BestPrice > 0) || quan_range < first.BestPrice)) {
30323                                flag = true;
30324                            }
30325                            else {
30326                                jQuery('.group-gift .nhom-sp.nhom-' + g.key.CategoryID + '-' + key + ' .group-input button.add').attr('disabled', 'disabled');
30327                                g.group[key].forEach(function(p) {
30328                                    if(!(p.Quantity > 0)) {
30329                                        var OrginalID = p.OrginalID > 0 ? p.OrginalID : -1;
30330                                        jQuery('.group-gift .product-item-outline.item-' + p.CategoryID + '-' + p.BrandID + '-' + p.Code + '-' + OrginalID).addClass('isempty');
30331                                    }
30332                                });
30333                            }
30334                        }
30335                    }
30336                    else {
30337                        jQuery('.group-gift.cate-' + g.key.CategoryID + '-' + g.key.OrginalID + ' .group-input button.add').attr('disabled', 'disabled');
30338                        for (var key in g.group) {
30339                            g.group[key].forEach(function(p) {
30340                                if(!(p.Quantity > 0)) {
30341                                    var OrginalID = p.OrginalID > 0 ? p.OrginalID : -1;
30342                                    jQuery('.group-gift .product-item-outline.item-' + p.CategoryID + '-' + p.BrandID + '-' + p.Code + '-' + OrginalID).addClass('isempty');
30343                                }
30344                            });
30345                        }
30346                    }
30347                }
30348                else if (g.key.TypeData == 16) {
30349                    jQuery('.group-gift.cate-' + g.key.CategoryID + ' .group-input button.add').removeAttr('disabled');
30350                    jQuery('.group-gift.cate-' + g.key.CategoryID + ' .product-item-outline').removeClass('isempty');
30351                    if(g.key.OrderBy == lib3p.pageCart.data.EnumDetermineGift.TheoSoLuong) {
30352                        if (g.key.OrderQuantityUse > 0) {
30353                            for (var key in g.group) {
30354                                var first = g.group[key][0];
30355                                var quan_range = 0;
30356                                g.group[key].forEach(function(detail) {
30357                                    quan_range += detail.Quantity;
30358                                });
30359                                if (g.key.OrderQuantityUse >= first.Price && (!(first.BestPrice > 0) || quan_range < first.BestPrice)) {
30360                                    flag = true;
30361                                }
30362                                else {
30363                                    jQuery('.group-gift .nhom-sp.nhom-' + g.key.CategoryID + '-' + key + ' .group-input button.add').attr('disabled', 'disabled');
30364                                    g.group[key].forEach(function(p) {
30365                                        if(!(p.Quantity > 0)) {
30366                                            var OrginalID = p.OrginalID > 0 ? p.OrginalID : -1;
30367                                            jQuery('.group-gift .product-item-outline.item-' + p.CategoryID + '-' + p.BrandID + '-' + p.Code + '-' + OrginalID).addClass('isempty');
30368                                        }
30369                                    });
30370                                }
30371                            }
30372                        }
30373                        else {
30374                            jQuery('.group-gift.cate-' + g.key.CategoryID + ' .group-input button.add').attr('disabled', 'disabled');
30375                            for (var key in g.group) {
30376                                g.group[key].forEach(function(p) {
30377                                    if(!(p.Quantity > 0)) {
30378                                        var OrginalID = p.OrginalID > 0 ? p.OrginalID : -1;
30379                                        jQuery('.group-gift .product-item-outline.item-' + p.CategoryID + '-' + p.BrandID + '-' + p.Code + '-' + OrginalID).addClass('isempty');
30380                                    }
30381                                });
30382                            }
30383                        }
30384                    }
30385                    else if(g.key.OrderBy == lib3p.pageCart.data.EnumDetermineGift.TheoGiaTri) {
30386                        if (g.key.TotalAmountUse > 0) {
30387                            for (var key in g.group) {
30388                                var first = g.group[key][0];
30389                                var quan_range = 0;
30390                                g.group[key].forEach(function(detail) {
30391                                    quan_range += detail.Quantity;
30392                                });
30393                                if (g.key.TotalAmountUse >= first.Price && (!(first.BestPrice > 0) || quan_range < first.BestPrice)) {
30394                                    flag = true;
30395                                }
30396                                else {
30397                                    jQuery('.group-gift .nhom-sp.nhom-' + g.key.CategoryID + '-' + key + ' .group-input button.add').attr('disabled', 'disabled');
30398                                    g.group[key].forEach(function(p) {
30399                                        if(!(p.Quantity > 0)) {
30400                                            var OrginalID = p.OrginalID > 0 ? p.OrginalID : -1;
30401                                            jQuery('.group-gift .product-item-outline.item-' + p.CategoryID + '-' + p.BrandID + '-' + p.Code + '-' + OrginalID).addClass('isempty');
30402                                        }
30403                                    });
30404                                }
30405                            }
30406                        }
30407                        else {
30408                            jQuery('.group-gift.cate-' + g.key.CategoryID + ' .group-input button.add').attr('disabled', 'disabled');
30409                            for (var key in g.group) {
30410                                g.group[key].forEach(function(p) {
30411                                    if(!(p.Quantity > 0)) {
30412                                        var OrginalID = p.OrginalID > 0 ? p.OrginalID : -1;
30413                                        jQuery('.group-gift .product-item-outline.item-' + p.CategoryID + '-' + p.BrandID + '-' + p.Code + '-' + OrginalID).addClass('isempty');
30414                                    }
30415                                });
30416                            }
30417                        }
30418                    }
30419                }
30420                else if(g.key.TypeData == 17) {
30421                    jQuery('.group-gift.cate-' + g.key.CategoryID + ' .group-input button.add').removeAttr('disabled');
30422                    jQuery('.group-gift.cate-' + g.key.CategoryID + ' .product-item-outline').removeClass('isempty');
30423                    if (g.key.TotalAmountUse > 0) {
30424                        for (var key in g.group) {
30425                            var first = g.group[key][0];
30426                            var quan_range = 0;
30427                            g.group[key].forEach(function(detail) {
30428                                quan_range += detail.Quantity;
30429                            });
30430                            if (g.key.TotalAmountUse >= first.Price && (!(first.BestPrice > 0) || quan_range < first.BestPrice)) {
30431                                flag = true;
30432                            }
30433                            else {
30434                                jQuery('.group-gift .nhom-sp.nhom-' + g.key.CategoryID + '-' + key + ' .group-input button.add').attr('disabled', 'disabled');
30435                                g.group[key].forEach(function(p) {
30436                                    if(!(p.Quantity > 0)) {
30437                                        var OrginalID = p.OrginalID > 0 ? p.OrginalID : -1;
30438                                        jQuery('.group-gift .product-item-outline.item-' + p.CategoryID + '-' + p.BrandID + '-' + p.Code + '-' + OrginalID).addClass('isempty');
30439                                    }
30440                                });
30441                            }
30442                        }
30443                    }
30444                    else {
30445                        jQuery('.group-gift.cate-' + g.key.CategoryID + ' .group-input button.add').attr('disabled', 'disabled');
30446                        for (var key in g.group) {
30447                            g.group[key].forEach(function(p) {
30448                                if(!(p.Quantity > 0)) {
30449                                    var OrginalID = p.OrginalID > 0 ? p.OrginalID : -1;
30450                                    jQuery('.group-gift .product-item-outline.item-' + p.CategoryID + '-' + p.BrandID + '-' + p.Code + '-' + OrginalID).addClass('isempty');
30451                                }
30452                            });
30453                        }
30454                    }
30455                }
30456                /* else {
30457                    jQuery('.group-gift.cate-' + g.key.CategoryID + ' .group-input button.add').removeAttr('disabled');
30458                    if (g.key.TotalAmountUse > 0) {
30459                        for (var key in g.group) {
30460                            var first = g.group[key][0];
30461                            if (g.key.TotalAmountUse >= first.Price) {
30462                                flag = true;
30463                            }
30464                            else {
30465                                jQuery('.group-gift .nhom-sp.nhom-' + g.key.CategoryID + '-' + key + ' .group-input button.add').attr('disabled', 'disabled');
30466                            }
30467                        }
30468                    }
30469                    else {
30470                        jQuery('.group-gift.cate-' + g.key.CategoryID + ' .group-input button.add').attr('disabled', 'disabled');
30471                    }
30472                } */
30473            });
30474            if (flag == false) {
30475                jQuery('.popup-payment-gift.haserror').removeClass('haserror');
30476                jQuery('.popup-mobile-payment-gift.haserror').removeClass('haserror');
30477            }
30478            else {
30479                if (!jQuery('.popup-payment-gift').hasClass("haserror")) {
30480                    jQuery('.popup-payment-gift').addClass("haserror");
30481                }
30482                if (!jQuery('.popup-mobile-payment-gift').hasClass("haserror")) {
30483                    jQuery('.popup-mobile-payment-gift').addClass("haserror");
30484                }
30485            }
30486        },
30487        onGiftCancel_Click: function () {
30488            var query = jQuery('.popup-thanks-gift-cancel .hachi-modal');
30489            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
30490                if (jQuery(query[0]).hasClass("d-none")) {
30491                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
30492                }
30493            }
30494            return false;
30495        },
30496        onPopupThanksGiftCancel_Close: function () {
30497            var query = jQuery('.popup-thanks-gift-cancel .hachi-modal');
30498            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
30499                if (jQuery(query[0]).hasClass("d-block")) {
30500                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
30501                }
30502            }
30503            return false;
30504        },
30505        onPopupThanksGiftCancel_Ok: function () {
30506            window.pars3p.cart_temp.IsGiftReceived = false;
30507            window.pars3p.cart_temp.ListGift = [];
30508            lib3p.pageCartThanks.GiftComplete();
30509            return false;
30510        },
30511        onGiftOk_Click: function () {
30512            var lst = [];
30513            window.pars3p.others.ListGroupGift.forEach(function (g) {
30514                for (var key in g.group) {
30515                    g.group[key].forEach(function (p) {
30516                        if (p.Quantity > 0) {
30517                            lst.push(p);
30518                        }
30519                    });
30520                }
30521            });
30522            if(lib3p_helper.utility.hasListValue(lst)) {
30523                window.pars3p.cart_temp.IsGiftReceived = true;
30524                window.pars3p.cart_temp.ListGift = lst;            
30525                lib3p.pageCartThanks.GiftComplete();
30526            }
30527            else {
30528                jQuery('.popup-hasgift-thongbao .modal-body .data .txt').html('Vui lòng chọn quà tặng trước khi nhấn HOÀN TẤT CHỌN QUÀ');
30529                jQuery('.popup-hasgift-thongbao .hachi-modal .modal > .modal-dialog').removeClass('modal-lg');
30530                var query = jQuery('.popup-hasgift-thongbao .hachi-modal');
30531                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
30532                    if (jQuery(query[0]).hasClass("d-none")) {
30533                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
30534                    }
30535                }
30536                setTimeout(function(){
30537                    query = jQuery('.popup-hasgift-thongbao .hachi-modal');
30538                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
30539                        if (jQuery(query[0]).hasClass("d-block")) {
30540                            jQuery(query[0]).removeClass("d-block").addClass("d-none");
30541                        }
30542                    }
30543                    jQuery('.popup-hasgift-thongbao .hachi-modal .modal > .modal-dialog').addClass('modal-lg');
30544                }, 2000);
30545            }
30546            return false;
30547        },
30548        GiftComplete: function(isreload = true) {
30549            var cart = {
30550                Cart: lib3p_helper.cart.dupCart(window.pars3p.cart_temp, true),
30551                ListGift: window.pars3p.cart_temp.ListGift
30552            };
30553            cart.Cart.MessageError = window.pars3p.cart_temp.MessageError;
30554            lib3p.common_LoadingShow();
30555            if(window.pars3p.cart.temp_H89 == true) {
30556                cart.Cart.OrderPhone = window.pars3p.cart.temp_OrderPhone;
30557                cart.Cart.OTPInput = window.pars3p.cart.temp_OrderPhoneOTP;
30558                lib3p.common_PostURL(window.pars3p.api.public.CartThanks_GiftUpdate, { cart: cart }, function (res) {
30559                    lib3p.common_LoadingHide();
30560                    if(res == true) {
30561                        window.pars3p.cart_temp = null;
30562                        if(isreload == true) {
30563                            window.location.reload();
30564                        }
30565                    }
30566                }, function (err2) {
30567                    lib3p.common_LoadingHide();
30568                    console.log(err2);
30569                });
30570            }
30571            else if (window.pars3p.auth.isLogin == true) {
30572                lib3p.common_AuthPostURL(window.pars3p.api.auth.CartThanks_GiftUpdate, { cart: cart }, function (res) {
30573                    lib3p.common_LoadingHide();
30574                    if(res == true) {
30575                        window.pars3p.cart_temp = null;
30576                        if(isreload == true) {
30577                            window.location.reload();
30578                        }                        
30579                    }
30580                }, function (err2) {
30581                    lib3p.common_LoadingHide();
30582                    console.log(err2);
30583                });
30584            }
30585            else {
30586                cart.Cart.OrderPhone = window.pars3p.cart.temp_OrderPhone;
30587                cart.Cart.OTPInput = window.pars3p.cart.temp_OrderPhoneOTP;
30588                lib3p.common_PostURL(window.pars3p.api.public.CartThanks_GiftUpdate, { cart: cart }, function (res) {
30589                    lib3p.common_LoadingHide();
30590                    if(res == true) {
30591                        window.pars3p.cart_temp = null;
30592                        if(isreload == true) {
30593                            window.location.reload();
30594                        }
30595                    }
30596                }, function (err2) {
30597                    lib3p.common_LoadingHide();
30598                    console.log(err2);
30599                });
30600            }
30601        },
30602
30603    },
30604
30605    pageProductChuDe: {
30606        ChuDeID: -1,
30607        TheoLoai: '',
30608        Japan: false,
30609        SapXep: {
30610            TheoLoai: '',
30611            KhuyenMai: '',
30612            Japan: '',
30613        },
30614        init: function () {
30615            var query = jQuery('.sp-chu-de');
30616            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
30617                var str = jQuery(query[0]).data('id');
30618                if (lib3p_helper.utility.hasValueString(str)) {
30619                    lib3p.pageProductChuDe.ChuDeID = parseInt(str);
30620                }
30621                if (lib3p.pageProductChuDe.ChuDeID > 0) {
30622                    lib3p.pageProductChuDe.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
30623                }
30624            }
30625        },
30626        init_async: function () {
30627            return new Promise(function (resolve, reject) {
30628                setTimeout(function () {
30629                    //lib3p.header.LoadFlashSale();
30630                    lib3p.header.LoadBrand();
30631
30632                    jQuery('.mobile-sp-chu-de .coupon.owl-carousel').owlCarousel({
30633                        autoplay: false,
30634                        autoplayHoverPause: false,
30635                        loop: false,
30636                        nav: false,
30637                        dots: false,
30638                        autoWidth: true,
30639                        margin: 10,
30640                    });
30641
30642                    /* lib3p.common_PostURL(window.pars3p.api.public.ChuDe_KhuyenMai, { id:lib3p.pageProductChuDe.ChuDeID, sort:1,lst:[] }, function(res) {
30643                        if(lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.ListProduct)) {
30644                            var html = '';
30645                            res.ListProduct.forEach(function(c, cidx) {
30646                                html += '<div class="col-lg-3">';
30647                                html += lib3p_helper.product.parseHTML(c);
30648                                html += '</div>';
30649                            });
30650                            jQuery('.sp-chu-de .khuyen-mai .product-list').html(html);
30651                        }
30652                    }, function(err) {
30653                        throw err;
30654                    }); */
30655
30656                    lib3p.pageProductChuDe.LoadData_KhuyenMai([]);
30657
30658                    lib3p.common_PostURL(window.pars3p.api.public.ChuDe_Kind, { id: lib3p.pageProductChuDe.ChuDeID }, function (res) {
30659                        if (lib3p_helper.utility.hasListValue(res)) {
30660                            var html = '';
30661                            res.forEach(function (c, cidx) {
30662                                if (cidx == 0) {
30663                                    html += '<li class="item active">';
30664                                    lib3p.pageProductChuDe.TheoLoai = c;
30665                                    lib3p.pageProductChuDe.LoadData_TheoLoai([]);
30666                                }
30667                                else {
30668                                    html += '<li class="item">';
30669                                }
30670                                html += '<button type="button" aria-label="hachihachi" class="s14 cl-gregray600 sibold600" onclick="lib3p.pageProductChuDe.onTheoLoai_Click(this)" data-kind="' + c + '">' + c + '</button>';
30671                                html += '</li>';
30672                            });
30673                            jQuery('.sp-chu-de .theo-loai .product-top .tabs').html(html);
30674                            jQuery('.mobile-sp-chu-de .theo-loai .product-top .tabs').html(html);
30675                        }
30676                    }, function (err) {
30677                        throw err;
30678                    });
30679
30680                    /* lib3p.common_PostURL(window.pars3p.api.public.ChuDe_ProductByType, { id:lib3p.pageProductChuDe.ChuDeID,sort:1,japan:true,lst:[] }, function(res) {
30681                        if(lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.ListProduct)) {
30682                            var html = '';
30683                            res.ListProduct.forEach(function(c, cidx) {
30684                                html += '<div class="col-lg-3">';
30685                                html += lib3p_helper.product.parseHTML(c);
30686                                html += '</div>';
30687                            });
30688                            jQuery('.sp-chu-de .made-in-japan .product-list').html(html);
30689                        }
30690                    }, function(err) {
30691                        throw err;
30692                    }); */
30693
30694                    lib3p.pageProductChuDe.Japan = true;
30695                    lib3p.pageProductChuDe.LoadData_Japan([]);
30696
30697                    lib3p.common_PostURL(window.pars3p.api.public.ChuDe_BannerMuaNhieu, { id: lib3p.pageProductChuDe.ChuDeID }, function (res) {
30698                        if (lib3p_helper.utility.hasListValue(res)) {
30699                            var html = '<div class="owl-carousel">';
30700                            var html_m = '<div class="owl-carousel">';
30701                            var total = res.length;
30702                            res.forEach(function (c, cidx) {
30703                                html += '<div class="item">';
30704                                html += '<img src="/Uploads/_6/productbannerchude/L03-' + c.Barcode + '.jpg" />';
30705                                html += '<a class="cart-fast" data-code="' + c.Code + '" data-name="' + c.ProductName + '" data-img="' + c.ImageThumb + '" data-price="' + c.Price + '" data-pricebase="' + c.PriceBase + '" data-hachi24="' + c.IsHachi24h + '" data-barcode="' + c.Barcode + '" onclick="lib3p.header.onProductMuaNgay_Click(this)">&nbsp;</a>';
30706                                html += '<div class="sapxep-bg b-gregray200">&nbsp;</div>';
30707                                html += '<div class="sapxep s16 cl-gregray750 regular400">' + (cidx + 1) + '/' + total + '</div>';
30708                                html += '</div>';
30709
30710                                html_m += '<div class="item">';
30711                                html_m += '<img src="/Uploads/_6/productbannerchude_m/L03-' + c.Barcode + '.jpg" />';
30712                                html_m += '<a class="cart-fast" data-code="' + c.Code + '" data-name="' + c.ProductName + '" data-img="' + c.ImageThumb + '" data-price="' + c.Price + '" data-pricebase="' + c.PriceBase + '" data-hachi24="' + c.IsHachi24h + '" data-barcode="' + c.Barcode + '" onclick="lib3p.header.onProductMuaNgay_Click(this)">&nbsp;</a>';
30713                                html_m += '<div class="sapxep-bg b-gregray200">&nbsp;</div>';
30714                                html_m += '<div class="sapxep s16 cl-gregray750 regular400">' + (cidx + 1) + '/' + total + '</div>';
30715                                html_m += '</div>';
30716                            });
30717                            html += '</div>';
30718                            jQuery('.sp-chu-de .banner-mua-nhieu .danhsach').html(html);
30719                            jQuery('.sp-chu-de .banner-mua-nhieu .danhsach .owl-carousel').owlCarousel({
30720                                autoplay: false,
30721                                autoplayTimeout: 3000,
30722                                autoplayHoverPause: true,
30723                                autoWidth: false,
30724                                loop: false,
30725                                nav: true,
30726                                dots: false,
30727                                items: 1,
30728                                navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
30729                                navElement: 'div'
30730                            });
30731                            jQuery('.mobile-sp-chu-de .banner-mua-nhieu .danhsach').html(html_m);
30732                            jQuery('.mobile-sp-chu-de .banner-mua-nhieu .danhsach .owl-carousel').owlCarousel({
30733                                autoplay: false,
30734                                autoplayHoverPause: false,
30735                                loop: false,
30736                                nav: false,
30737                                dots: false,
30738                                autoWidth: true,
30739                                margin: 20,
30740                            });
30741
30742                        }
30743                    }, function (err) {
30744                        throw err;
30745                    });
30746
30747                }, window.pars3p.timeAsync);
30748            });
30749        },
30750        /* LoadType: function(kind) {
30751            lib3p.common_PostURL(window.pars3p.api.public.ChuDe_KindProduct, { id:lib3p.pageProductChuDe.ChuDeID,sort:1,kind:kind,lst:[] }, function(res) {
30752                if(lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.ListProduct)) {
30753                    var html = '';
30754                    res.ListProduct.forEach(function(c, cidx) {
30755                        html += '<div class="col-lg-3">';
30756                        html += lib3p_helper.product.parseHTML(c);
30757                        html += '</div>';
30758                    });
30759                    jQuery('.sp-chu-de .theo-loai .product-list').html(html);
30760                }
30761            }, function(err) {
30762                throw err;
30763            });
30764        }, */
30765        onSapXepKhuyenMai_Click: function (el) {
30766            var sort = lib3p.pageProductChuDe.SapXepGet(el);
30767            if (lib3p_helper.utility.hasValueString(sort)) {
30768                lib3p.pageProductChuDe.SapXep.KhuyenMai = sort;
30769                lib3p.pageProductChuDe.LoadData_KhuyenMai([]);
30770            }
30771        },
30772        onSapXepTheoLoai_Click: function (el) {
30773            var sort = lib3p.pageProductChuDe.SapXepGet(el);
30774            if (lib3p_helper.utility.hasValueString(sort)) {
30775                lib3p.pageProductChuDe.SapXep.TheoLoai = sort;
30776                lib3p.pageProductChuDe.LoadData_TheoLoai([]);
30777            }
30778        },
30779        onSapXepJapan_Click: function (el) {
30780            var sort = lib3p.pageProductChuDe.SapXepGet(el);
30781            if (lib3p_helper.utility.hasValueString(sort)) {
30782                lib3p.pageProductChuDe.SapXep.Japan = sort;
30783                lib3p.pageProductChuDe.LoadData_Japan([]);
30784            }
30785        },
30786        SapXepGet: function (el) {
30787            var html = jQuery(el).html();
30788            var sort = jQuery(el).data('sort');
30789            if (lib3p_helper.utility.hasValueString(html) && lib3p_helper.utility.hasValueString(sort)) {
30790                var query = jQuery(el).closest('div.dropdown');
30791                query.find('span.txt-sort').html(html);
30792                return sort;
30793            }
30794            else {
30795                return null;
30796            }
30797        },
30798        onXemThemKhuyenMai_Click: function (el) {
30799            var lst = jQuery(el).data('lst');
30800            if (lib3p_helper.utility.hasListValue(lst)) {
30801                lib3p.pageProductChuDe.LoadData_KhuyenMai(lst);
30802                jQuery(el).data('lst', []);
30803                jQuery(el).hide();
30804            }
30805        },
30806        onXemThemTheoLoai_Click: function (el) {
30807            var lst = jQuery(el).data('lst');
30808            if (lib3p_helper.utility.hasListValue(lst)) {
30809                lib3p.pageProductChuDe.LoadData_TheoLoai(lst);
30810                jQuery(el).data('lst', []);
30811                jQuery(el).hide();
30812            }
30813        },
30814        onXemThemJapan_Click: function (el) {
30815            var lst = jQuery(el).data('lst');
30816            if (lib3p_helper.utility.hasListValue(lst)) {
30817                lib3p.pageProductChuDe.LoadData_Japan(lst);
30818                jQuery(el).data('lst', []);
30819                jQuery(el).hide();
30820            }
30821        },
30822        onTheoLoai_Click: function (el) {
30823            lib3p.pageProductChuDe.TheoLoai = jQuery(el).data('kind');
30824            lib3p.pageProductChuDe.LoadData_TheoLoai([]);
30825            jQuery('.sp-chu-de .theo-loai .product-top ul.tabs li.item.active').removeClass('active');
30826            jQuery('.sp-chu-de .theo-loai .product-top ul.tabs li.item > button').each(function () {
30827                var btn = this;
30828                if (jQuery(btn).data('kind') == lib3p.pageProductChuDe.TheoLoai) {
30829                    jQuery(btn).closest('li.item').addClass('active');
30830                }
30831            });
30832            jQuery('.mobile-sp-chu-de .theo-loai .product-top ul.tabs li.item.active').removeClass('active');
30833            jQuery('.mobile-sp-chu-de .theo-loai .product-top ul.tabs li.item > button').each(function () {
30834                var btn = this;
30835                if (jQuery(btn).data('kind') == lib3p.pageProductChuDe.TheoLoai) {
30836                    jQuery(btn).closest('li.item').addClass('active');
30837                }
30838            });
30839            //jQuery(el).closest('li.item').addClass('active');
30840        },
30841        onJapan_Click: function (el, japan) {
30842            lib3p.pageProductChuDe.Japan = japan;
30843            lib3p.pageProductChuDe.LoadData_Japan([]);
30844            jQuery('.sp-chu-de .made-in-japan .product-top ul.tabs li.item.active').removeClass('active');
30845            jQuery('.sp-chu-de .made-in-japan .product-top ul.tabs li.item > button').each(function () {
30846                var btn = this;
30847                if (jQuery(btn).data('kind') == lib3p.pageProductChuDe.Japan) {
30848                    jQuery(btn).closest('li.item').addClass('active');
30849                }
30850            });
30851            jQuery('.mobile-sp-chu-de .made-in-japan .product-top ul.tabs li.item.active').removeClass('active');
30852            jQuery('.mobile-sp-chu-de .made-in-japan .product-top ul.tabs li.item > button').each(function () {
30853                var btn = this;
30854                if (jQuery(btn).data('kind') == lib3p.pageProductChuDe.Japan) {
30855                    jQuery(btn).closest('li.item').addClass('active');
30856                }
30857            });
30858            //jQuery(el).closest('li.item').addClass('active');
30859        },
30860        LoadData_KhuyenMai: function (lst) {
30861            lib3p.common_PostURL(window.pars3p.api.public.ChuDe_KhuyenMai, { id: lib3p.pageProductChuDe.ChuDeID, sort: lib3p.pageProductChuDe.SapXep.KhuyenMai, lst: lst }, function (res) {
30862                if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.ListProduct)) {
30863                    var html = '';
30864                    var html_m = '';
30865                    res.ListProduct.forEach(function (c, cidx) {
30866                        html += '<div class="col-lg-3">';
30867                        html += lib3p_helper.product.parseHTML(c);
30868                        html += '</div>';
30869                        html_m += lib3p_helper.product.parseHTML(c);
30870                    });
30871                    if (lib3p_helper.utility.hasListValue(res.ListIDNext)) {
30872                        jQuery('.sp-chu-de .khuyen-mai .product-list').html(html);
30873                        jQuery('.mobile-sp-chu-de .khuyen-mai .product-list').html(html_m);
30874                    }
30875                    else {
30876                        jQuery('.sp-chu-de .khuyen-mai .product-list').append(html);
30877                        jQuery('.mobile-sp-chu-de .khuyen-mai .product-list').append(html_m);
30878                    }
30879
30880                    var query = jQuery('.sp-chu-de .khuyen-mai .xemthem > a');
30881                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
30882                        if (lib3p_helper.utility.hasListValue(res.ListIDNext)) {
30883                            query.show();
30884                            jQuery(query[0]).data('lst', res.ListIDNext);
30885                        }
30886                        else {
30887                            query.hide();
30888                        }
30889                    }
30890                }
30891            }, function (err) {
30892                throw err;
30893            });
30894        },
30895        LoadData_TheoLoai: function (lst) {
30896            lib3p.common_PostURL(window.pars3p.api.public.ChuDe_KindProduct, { id: lib3p.pageProductChuDe.ChuDeID, sort: lib3p.pageProductChuDe.SapXep.TheoLoai, kind: lib3p.pageProductChuDe.TheoLoai, lst: lst }, function (res) {
30897                if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.ListProduct)) {
30898                    var html = '';
30899                    var html_m = '';
30900                    res.ListProduct.forEach(function (c, cidx) {
30901                        html += '<div class="col-lg-3">';
30902                        html += lib3p_helper.product.parseHTML(c);
30903                        html += '</div>';
30904                        html_m += lib3p_helper.product.parseHTML(c);
30905                    });
30906                    if (lib3p_helper.utility.hasListValue(res.ListIDNext)) {
30907                        jQuery('.sp-chu-de .theo-loai .product-list').html(html);
30908                        jQuery('.mobile-sp-chu-de .theo-loai .product-list').html(html_m);
30909                    }
30910                    else {
30911                        jQuery('.sp-chu-de .theo-loai .product-list').append(html);
30912                        jQuery('.mobile-sp-chu-de .theo-loai .product-list').append(html_m);
30913                    }
30914
30915                    var query = jQuery('.sp-chu-de .theo-loai .xemthem > a');
30916                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
30917                        if (lib3p_helper.utility.hasListValue(res.ListIDNext)) {
30918                            query.show();
30919                            jQuery('.mobile-sp-chu-de .theo-loai .xemthem > a').show();
30920                            jQuery(query[0]).data('lst', res.ListIDNext);
30921                        }
30922                        else {
30923                            query.hide();
30924                            jQuery('.mobile-sp-chu-de .theo-loai .xemthem > a').hide();
30925                        }
30926                    }
30927                }
30928            }, function (err) {
30929                throw err;
30930            });
30931        },
30932        LoadData_Japan: function (lst) {
30933            lib3p.common_PostURL(window.pars3p.api.public.ChuDe_ProductByType, { id: lib3p.pageProductChuDe.ChuDeID, sort: lib3p.pageProductChuDe.SapXep.Japan, japan: lib3p.pageProductChuDe.Japan, lst: lst }, function (res) {
30934                if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.ListProduct)) {
30935                    var html = '';
30936                    var html_m = '';
30937                    res.ListProduct.forEach(function (c, cidx) {
30938                        html += '<div class="col-lg-3">';
30939                        html += lib3p_helper.product.parseHTML(c);
30940                        html += '</div>';
30941                        html_m += lib3p_helper.product.parseHTML(c);
30942                    });
30943                    if (lib3p_helper.utility.hasListValue(res.ListIDNext)) {
30944                        jQuery('.sp-chu-de .made-in-japan .product-list').html(html);
30945                        jQuery('.mobile-sp-chu-de .made-in-japan .product-list').html(html_m);
30946                    }
30947                    else {
30948                        jQuery('.sp-chu-de .made-in-japan .product-list').append(html);
30949                        jQuery('.mobile-sp-chu-de .made-in-japan .product-list').append(html_m);
30950                    }
30951
30952                    var query = jQuery('.sp-chu-de .made-in-japan .xemthem > a');
30953                    if (lib3p_helper.utility.hasValue(query) && query.length > 0 && lib3p_helper.utility.hasListValue(res.ListIDNext)) {
30954                        if (lib3p_helper.utility.hasListValue(res.ListIDNext)) {
30955                            query.show();
30956                            jQuery('.mobile-sp-chu-de .made-in-japan .xemthem > a').show();
30957                            jQuery(query[0]).data('lst', res.ListIDNext);
30958                        }
30959                        else {
30960                            query.hide();
30961                            jQuery('.mobile-sp-chu-de .made-in-japan .xemthem > a').hide();
30962                        }
30963                    }
30964                }
30965                else if (lib3p.pageProductChuDe.Japan == true && !lib3p_helper.utility.hasListValue(lst)) {
30966                    lib3p.pageProductChuDe.Japan = false;
30967                    jQuery('.sp-chu-de .made-in-japan .product-top ul.tabs li').hide();
30968                    jQuery('.mobile-sp-chu-de .made-in-japan .product-top ul.tabs li').hide();
30969                    //jQuery('.sp-chu-de .made-in-japan .product-top ul.tabs li.item.active').removeClass('active');
30970                    //jQuery(jQuery('.sp-chu-de .made-in-japan .product-top ul.tabs li.item')[1]).addClass('active');
30971
30972                    lib3p.pageProductChuDe.LoadData_Japan([]);
30973                }
30974            }, function (err) {
30975                throw err;
30976            });
30977        },
30978    },
30979
30980    pageBlogHome: {
30981        init: function () {
30982            var query = jQuery('.page-blog-home');
30983            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
30984                lib3p.pageBlogHome.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
30985            }
30986        },
30987        init_async: function () {
30988            return new Promise(function (resolve, reject) {
30989                setTimeout(function () {
30990                    lib3p.pageCart.OtherPage();
30991
30992                    jQuery('.mobile-blog-home .ds-danhmuc.owl-carousel').owlCarousel({
30993                        autoplay: false,
30994                        autoplayHoverPause: false,
30995                        loop: false,
30996                        nav: false,
30997                        dots: false,
30998                        autoWidth: true,
30999                        margin: 10,
31000                    });
31001
31002                    jQuery('.page-blog-home .hachivaban .owl-carousel').owlCarousel({
31003                        autoplay: false,
31004                        autoplayTimeout: 3000,
31005                        autoplayHoverPause: true,
31006                        autoWidth: true,
31007                        loop: true,
31008                        nav: true,
31009                        dots: false,
31010                        margin: 20,
31011                        navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
31012                        navElement: 'div'
31013                    });
31014                    jQuery('.mobile-blog-home .hachivaban.owl-carousel').owlCarousel({
31015                        autoplay: false,
31016                        autoplayHoverPause: false,
31017                        loop: false,
31018                        nav: false,
31019                        dots: false,
31020                        autoWidth: true,
31021                        margin: 10,
31022                    });
31023
31024                }, window.pars3p.timeAsync);
31025            });
31026        },
31027        onVideo_Click: function (el) {
31028            var query = jQuery(el).closest('.titok-video');
31029            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31030                //query.html('<blockquote class="tiktok-embed" cite="https://www.tiktok.com/@hachihachishop/video/7366139612311391496" data-video-id="7366139612311391496" data-embed-from="embed_page" style="max-width:605px; min-width:325px;"> <section>
31030 <a target="_blank" title="@hachihachishop" href="https://www.tiktok.com/@hachihachishop?refer=embed">@hachihachishop</a> <p>🔥 Hàng Nhật đồng giá 29K, chỉ 29K hàng Nhật giá hời, chất lượng Nhật Bản <a title="hachihachi" target="_blank" href="https://www.tiktok.com/tag/hachihachi?refer=embed">#hachihachi</a> <a title="hangnhatdonggia29k" target="_blank" href="https://www.tiktok.com/tag/hangnhatdonggia29k?refer=embed">#hangnhatdonggia29K</a> <a title="donggia29k" target="_blank" href="https://www.tiktok.com/tag/donggia29k?refer=embed">#donggia29k</a> <a title="hachihachijapanshop" target="_blank" href="https://www.tiktok.com/tag/hachihachijapanshop?refer=embed">#hachihachijapanshop</a> </p> </section> </blockquote> <script async src="https://www.tiktok.com/embed.js"></script>');
31031                //query.html('<blockquote class="tiktok-embed" cite="https://www.tiktok.com/@hachihachishop/video/7356108501611040008" data-video-id="7356108501611040008" data-embed-from="embed_page" style="max-width:605px; min-width:325px;"> <section> <a target="_blank" title="@hachihachishop" href="https://www.tiktok.com/@hachihachishop?refer=embed">@hachihachishop</a> <p>🔥 Hàng Nhật đồng giá 29K, chỉ 29K hàng Nhật giá hời, chất lượng Nhật Bản <a title="hachihachi" target="_blank" href="https://www.tiktok.com/tag/hachihachi?refer=embed">#hachihachi</a> <a title="hangnhatdonggia29k" target="_blank" href="https://www.tiktok.com/tag/hangnhatdonggia29k?refer=embed">#hangnhatdonggia29K</a> <a title="donggia29k" target="_blank" href="https://www.tiktok.com/tag/donggia29k?refer=embed">#donggia29k</a> <a title="hachihachijapanshop" target="_blank" href="https://www.tiktok.com/tag/hachihachijapanshop?refer=embed">#hachihachijapanshop</a> </p> </section> </blockquote> <script async src="https://www.tiktok.com/embed.js"></script>');
31032
31033                /* var link = jQuery(el).data('link');
31034                var strs = link.split('/');
31035                var id = '';
31036                if(strs.length > 0) {
31037                    id = strs[strs.length - 1];
31038                    if(!lib3p_helper.utility.hasValueString(id) && strs.length > 1) {
31039                        id = strs[strs.length - 2];
31040                    }
31041                }
31042                if(lib3p_helper.utility.hasValueString(id)) {
31043                    query.html('<blockquote class="tiktok-embed" cite="' + link + '" data-video-id="' + id + '" data-embed-from="embed_page" style="max-width:605px; min-width:325px;"> <section> <a target="_blank" title="@hachihachishop" href="https://www.tiktok.com/@hachihachishop?refer=embed">@hachihachishop</a> <p>🔥 Hàng Nhật đồng giá 29K, chỉ 29K hàng Nhật giá hời, chất lượng Nhật Bản <a title="hachihachi" target="_blank" href="https://www.tiktok.com/tag/hachihachi?refer=embed">#hachihachi</a> <a title="hangnhatdonggia29k" target="_blank" href="https://www.tiktok.com/tag/hangnhatdonggia29k?refer=embed">#hangnhatdonggia29K</a> <a title="donggia29k" target="_blank" href="https://www.tiktok.com/tag/donggia29k?refer=embed">#donggia29k</a> <a title="hachihachijapanshop" target="_blank" href="https://www.tiktok.com/tag/hachihachijapanshop?refer=embed">#hachihachijapanshop</a> </p> </section> </blockquote> <script async src="https://www.tiktok.com/embed.js"></script>');
31044                } */
31045            }
31046
31047            query = jQuery(el).closest('.titok-video');
31048            var link = jQuery(el).data('link');
31049            if (lib3p_helper.utility.hasValue(query) && query.length > 0 && lib3p_helper.utility.hasValueString(link)) {
31050                var strs = link.split('/');
31051                query.html('<iframe src="https://youtube.com/embed/' + strs[strs.length - 1] + '?autoplay=1&mute=1"></iframe>');
31052            }
31053        }
31054    },
31055
31056    pageBlogCate: {
31057        init: function () {
31058            var query = jQuery('.page-blog-cate');
31059            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31060                lib3p.pageBlogCate.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
31061            }
31062        },
31063        init_async: function () {
31064            return new Promise(function (resolve, reject) {
31065                setTimeout(function () {
31066                    lib3p.pageCart.OtherPage();
31067
31068                    jQuery('.mobile-blog-cate .ds-danhmuc.owl-carousel').owlCarousel({
31069                        autoplay: false,
31070                        autoplayHoverPause: false,
31071                        loop: false,
31072                        nav: false,
31073                        dots: false,
31074                        autoWidth: true,
31075                        margin: 10,
31076                    });
31077
31078                    jQuery('.page-blog-cate .hachivaban .owl-carousel').owlCarousel({
31079                        autoplay: false,
31080                        autoplayTimeout: 3000,
31081                        autoplayHoverPause: true,
31082                        autoWidth: true,
31083                        loop: true,
31084                        nav: true,
31085                        dots: false,
31086                        margin: 20,
31087                        navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
31088                        navElement: 'div'
31089                    });
31090                    jQuery('.mobile-blog-cate .hachivaban.owl-carousel').owlCarousel({
31091                        autoplay: false,
31092                        autoplayHoverPause: false,
31093                        loop: false,
31094                        nav: false,
31095                        dots: false,
31096                        autoWidth: true,
31097                        margin: 10,
31098                    });
31099
31100                    var query = jQuery('.page-blog-cate .xemthem button');
31101                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31102                        var data = jQuery(query[0]).data('id').split(',').map(function (o) { return parseInt(o); });
31103                        if (lib3p_helper.utility.hasListValue(data)) {
31104                            jQuery(query[0]).data('lst', data);
31105                            jQuery('.mobile-blog-cate .xemthem button').data('lst', data);
31106                        }
31107                        else {
31108                            jQuery(query[0]).html('');
31109                        }
31110                    }
31111
31112                }, window.pars3p.timeAsync);
31113            });
31114        },
31115        onXemThem_Click: function (el) {
31116            if (lib3p_helper.utility.hasValue(el)) {
31117                var lst = jQuery(el).data('lst');
31118                if (lib3p_helper.utility.hasValue(lst) && lst.length > 0) {
31119                    var pagesize = 10;
31120                    var data = [];
31121                    if (pagesize < lst.length) {
31122                        data = lst.splice(0, pagesize);
31123                    }
31124                    else {
31125                        data = lst.splice(0, lst.length);
31126                        lst = [];
31127                    }
31128                    jQuery(el).html('Còn ' + lst.length + ' bài viết');
31129                    lib3p.common_PostURL(window.pars3p.api.public.Blog_GetByID, { lst: data }, function (res) {
31130                        if (lib3p_helper.utility.hasListValue(res)) {
31131                            var html = '';
31132                            res.forEach(function (o) {
31133                                html += '<div class="item">';
31134
31135                                html += '<a class="hinh" href="' + o.Alias + '"><img src="' + o.ImageThumb + '" alt="" /></a>';
31136                                html += '<div class="noidung">';
31137                                html += '<a class="tieude s18 cl-dakgreen800 sibold600" href="' + o.Alias + '">' + o.Title + '</a>';
31138                                html += '<div class="danhmuc">';
31139                                html += '<a class="s13 cl-dakgreen650 sibold600" href="' + o.CategoryAlias + '">' + o.CategoryName + '</a>';
31140                                html += '<span class="s13 cl-gregray550 regular400">|</span>';
31141                                html += '<span class="s13 cl-gregray550 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(o.PostDate) + '</span>';
31142                                html += '</div>';
31143                                html += '<div class="tomtat s14 cl-gregray900 regular400">' + o.Summary + '</div>';
31144                                html += '</div>';
31145
31146                                html += '</div>';
31147                            });
31148                            jQuery('.page-blog-cate .danh-sach').append(html);
31149                        }
31150                    }, function (err) {
31151                        lib3p.log(err);
31152                    });
31153                }
31154                else {
31155                    jQuery(el).html('');
31156                }
31157            }
31158        },
31159        onXemThemMobile_Click: function (el) {
31160            if (lib3p_helper.utility.hasValue(el)) {
31161                var lst = jQuery(el).data('lst');
31162                if (lib3p_helper.utility.hasValue(lst) && lst.length > 0) {
31163                    var pagesize = 10;
31164                    var data = [];
31165                    if (pagesize < lst.length) {
31166                        data = lst.splice(0, pagesize);
31167                    }
31168                    else {
31169                        data = lst.splice(0, lst.length);
31170                        lst = [];
31171                    }
31172                    jQuery(el).html('Còn ' + lst.length + ' bài viết');
31173                    lib3p.common_PostURL(window.pars3p.api.public.Blog_GetByID, { lst: data }, function (res) {
31174                        if (lib3p_helper.utility.hasListValue(res)) {
31175                            var html = '';
31176                            res.forEach(function (o) {
31177                                html += '<div class="item">';
31178
31179                                html += '<a class="hinh" href="' + o.Alias + '"><img src="' + o.ImageSmall + '" alt="" /></a>';
31180                                html += '<div class="noidung">';
31181                                html += '<a class="tieude s18 cl-dakgreen800 sibold600" href="' + o.Alias + '">' + o.Title + '</a>';
31182                                html += '<div class="danhmuc">';
31183                                html += '<a class="s13 cl-dakgreen650 sibold600" href="' + o.CategoryAlias + '">' + o.CategoryName + '</a>';
31184                                html += '<span class="s13 cl-gregray550 regular400">|</span>';
31185                                html += '<span class="s13 cl-gregray550 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(o.PostDate) + '</span>';
31186                                html += '</div>';
31187                                html += '<div class="tomtat s14 cl-gregray900 regular400">' + o.Summary + '</div>';
31188                                html += '</div>';
31189
31190                                html += '</div>';
31191                            });
31192                            jQuery('.mobile-blog-cate .danh-sach').append(html);
31193                        }
31194                    }, function (err) {
31195                        lib3p.log(err);
31196                    });
31197                }
31198                else {
31199                    jQuery(el).html('');
31200                }
31201            }
31202        },
31203        onTimKiem_KeyDown: function (event, el) {
31204            var query = jQuery(event.target);
31205            setTimeout(function () {
31206                var key = query.val();
31207
31208                if (lib3p_helper.utility.hasValueString(key)) {
31209                    if (!query.parent().find('a.input-clear').hasClass('show')) {
31210                        query.parent().find('a.input-clear').addClass('show');
31211                    }
31212                }
31213                else {
31214                    if (query.parent().find('a.input-clear').hasClass('show')) {
31215                        query.parent().find('a.input-clear').removeClass('show');
31216                    }
31217                }
31218            }, 200);
31219        },
31220    },
31221
31222    pageBlogSearch: {
31223        init: function () {
31224            var query = jQuery('.page-blog-search');
31225            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31226                lib3p.pageBlogSearch.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
31227            }
31228        },
31229        init_async: function () {
31230            return new Promise(function (resolve, reject) {
31231                setTimeout(function () {
31232                    lib3p.pageCart.OtherPage();
31233
31234                    jQuery('.mobile-blog-search .ds-danhmuc.owl-carousel').owlCarousel({
31235                        autoplay: false,
31236                        autoplayHoverPause: false,
31237                        loop: false,
31238                        nav: false,
31239                        dots: false,
31240                        autoWidth: true,
31241                        margin: 10,
31242                    });
31243
31244                }, window.pars3p.timeAsync);
31245            });
31246        },
31247        onTimKiem_Submit: function (event, str) {
31248
31249            var flag = true;
31250            var data = {
31251                TimKiem: '',
31252            };
31253
31254            var ctr = event.target.TimKiem;
31255            data.TimKiem = ctr.value;
31256            if (!lib3p_helper.utility.hasValueString(data.TimKiem)) {
31257                flag = false;
31258            }
31259
31260            if (flag == true) {
31261                var url = lib3p_helper.utility.stringFormat(str, data.TimKiem);
31262                window.location.href = url;
31263            }
31264
31265            event.preventDefault();
31266        },
31267    },
31268
31269    pageBlogDetail: {
31270        init: function () {
31271            var query = jQuery('.page-blog-detail');
31272            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31273                lib3p.pageBlogDetail.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
31274            }
31275        },
31276        init_async: function () {
31277            return new Promise(function (resolve, reject) {
31278                setTimeout(function () {
31279                    lib3p.pageCart.OtherPage();
31280
31281                    jQuery('.mobile-blog-detail .ds-danhmuc.owl-carousel').owlCarousel({
31282                        autoplay: false,
31283                        autoplayHoverPause: false,
31284                        loop: false,
31285                        nav: false,
31286                        dots: false,
31287                        autoWidth: true,
31288                        margin: 10,
31289                    });
31290
31291                    if (jQuery('.page-blog-detail div[type="product"]').length > 0) {
31292                        var lstid = [];
31293                        jQuery('.page-blog-detail div[type="product"]').each(function () {
31294                            var code = jQuery(this).data('code');
31295                            lstid.push(code);
31296                        });
31297                        lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: lstid }, function (res) {
31298                            if (lib3p_helper.utility.hasListValue(res)) {
31299                                jQuery('.page-blog-detail div[type="product"]').each(function () {
31300                                    var code = jQuery(this).data('code');
31301                                    var find = res.find(function (o) { return o.Code == code; });
31302                                    if (lib3p_helper.utility.hasValue(find)) {
31303                                        var html = lib3p_helper.product.parseHTML6(find);
31304                                        jQuery(this).html(html);
31305                                    }
31306                                });
31307                                jQuery('.mobile-blog-detail div[type="product"]').each(function () {
31308                                    var code = jQuery(this).data('code');
31309                                    var find = res.find(function (o) { return o.Code == code; });
31310                                    if (lib3p_helper.utility.hasValue(find)) {
31311                                        var html = lib3p_helper.product.parseHTML6(find);
31312                                        jQuery(this).html(html);
31313                                    }
31314                                });
31315                            }
31316                        }, function (err) {
31317                            lib3p.log(err);
31318                        });
31319                    }
31320                    if (jQuery('.page-blog-detail img[type="product"]').length > 0) {
31321                        var lstid = [];
31322                        jQuery('.page-blog-detail img[type="product"]').each(function () {
31323                            var code = jQuery(this).data('code');
31324                            lstid.push(code);
31325                        });
31326                        lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: lstid }, function (res) {
31327                            if (lib3p_helper.utility.hasListValue(res)) {
31328                                var lst = [];
31329                                jQuery('.page-blog-detail img[type="product"]').each(function () {
31330                                    var code = jQuery(this).data('code');
31331                                    var find = res.find(function (o) { return o.Code == code; });
31332                                    if (lib3p_helper.utility.hasValue(find)) {
31333                                        var html = lib3p_helper.product.parseHTML6(find);
31334                                        jQuery(this).after(html);
31335                                        lst.push(this);
31336                                    }
31337                                });
31338                                jQuery('.mobile-blog-detail img[type="product"]').each(function () {
31339                                    var code = jQuery(this).data('code');
31340                                    var find = res.find(function (o) { return o.Code == code; });
31341                                    if (lib3p_helper.utility.hasValue(find)) {
31342                                        var html = lib3p_helper.product.parseHTML6(find);
31343                                        jQuery(this).after(html);
31344                                        lst.push(this);
31345                                    }
31346                                });
31347                                lst.forEach(function (o) {
31348                                    jQuery(o).remove();
31349                                });
31350                            }
31351                        }, function (err) {
31352                            lib3p.log(err);
31353                        });
31354                    }
31355
31356                }, window.pars3p.timeAsync);
31357            });
31358        },
31359    },
31360
31361    pageUserLike: {
31362        init: function () {
31363            var query = jQuery('.page-user-like');
31364            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31365                lib3p.pageUserLike.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
31366            }
31367        },
31368        init_async: function () {
31369            return new Promise(function (resolve, reject) {
31370                setTimeout(function () {
31371                    if (lib3p.header.MustLogin()) {
31372                        var data = lib3p.pageUserLike.GetQuery();
31373                        if (lib3p_helper.utility.hasValueString(data.key)) {
31374                            jQuery('.page-user-like .user-manage .timkiem form > input').val(data.key);
31375                            jQuery('.mobile-user-like .user-manage .timkiem form > input').val(data.key);
31376                        }
31377                        lib3p.header.UserManager_Load();
31378
31379                        window.pars3p.tempData = [];
31380                        lib3p.common_AuthPostURL(window.pars3p.api.auth.User_DSProductLike, { key: data.key, sort: data.sort }, function (res) {
31381                            if (lib3p_helper.utility.hasListValue(res)) {
31382                                window.pars3p.tempData = res;
31383                                var carthtml = '';
31384                                res.forEach(function (c, cidx) {
31385                                    var pbase = c.PriceBase > 0 ? c.PriceBase : 0;
31386                                    var Quantity = c.QuantityWithOrder >= 0 ? c.QuantityWithOrder : -1;
31387
31388                                    carthtml += '<div data-id="' + c.ProductID + '" class="data-row product' + c.ProductID + '">';
31389                                    //product start ---
31390                                    carthtml += '<div class="product">';
31391                                    carthtml += '<div class="image"><a href="' + c.Alias + '"><img src="' + c.ImageThumb + '" /></a></div>';
31392                                    //info start ---
31393                                    carthtml += '<div class="info">';
31394                                    carthtml += '<div class="name s14 cl-gregray900 medium500"><a href="' + c.Alias + '">' + c.ProductName + '</a></div>';
31395                                    //action start ---       
31396                                    carthtml += '<div class="action">';
31397                                    carthtml += '<div class="price s14 sibold600">';
31398                                    if (c.BasePrice > 0 && c.Price != c.BasePrice) {
31399                                        carthtml += '<span class="sale cl-red400">' + lib3p_helper.utility.formatMoney(c.Price) + 'đ</span>';
31400                                        carthtml += '<span class="sale-base cl-gregray550">&nbsp;' + lib3p_helper.utility.formatMoney(c.BasePrice) + 'đ</span>';
31401                                    }
31402                                    else {
31403                                        carthtml += '<span class="base cl-dakgreen800">' + lib3p_helper.utility.formatMoney(c.Price) + 'đ</span>';
31404                                    }
31405                                    carthtml += '</div>';
31406                                    carthtml += '</div>';
31407                                    carthtml += '<div class="action-sub">';
31408                                    if (c.IsApproved == true && c.Quantity > 0 && c.QuantityWithOrder > 0) {
31409                                        carthtml += '<button type="button" aria-label="hachihachi" class="mualai b-dakgreen650 s13 cl-white medium500" data-code="' + c.Code + '" data-quantity="' + Quantity + '" data-name="' + c.ProductName + '" data-img="' + c.ImageThumb + '" data-price="' + c.Price + '" data-pricebase="' + pbase + '" data-hachi24="' + c.IsHachi24h + '" data-barcode="' + c.Barcode + '" onclick="lib3p.header.onProductMuaNgay_Click(this)">Mua ngay</button>';
31410                                    }
31411                                    carthtml += '</div>';
31412                                    //action end ---
31413                                    carthtml += '</div>';
31414                                    //info end ---
31415                                    //delete start ---
31416                                    carthtml += '<div class="del">';
31417                                    carthtml += '<button type="button" aria-label="hachihachi" onclick="lib3p.pageUserLike.onProduct_LikeDelete(this,' + c.Code + ')"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/close.svg" alt="hachihachi" /></button>';
31418                                    carthtml += '</div>';
31419                                    //delete end ---
31420                                    carthtml += '</div>';
31421                                    //product end ---
31422
31423                                    carthtml += '<div class="line b-gregray100">&nbsp;</div>';
31424                                    carthtml += '</div>';
31425                                });
31426                                jQuery('.page-user-like .user-manage .danhsach').html(carthtml);
31427                                jQuery('.mobile-user-like .user-manage .danhsach').html(carthtml);
31428                            }
31429                            else {
31430                                jQuery('.page-user-like .user-manage .danhsach .noempty').show();
31431                                jQuery('.mobile-user-like .user-manage .danhsach .noempty').show();
31432                            }
31433                        }, function (err) {
31434                            jQuery('.page-user-like .user-manage .danhsach .noempty').show();
31435                            jQuery('.mobile-user-like .user-manage .danhsach .noempty').show();
31436                            lib3p.log(err);
31437                        });
31438                        var querySort = jQuery('.page-user-like .user-manage .timkiem .dropdown .dropdown-menu .dropdown-item:nth-child(3)');
31439                        var querySortm = jQuery('.mobile-user-like .user-manage .timkiem .dropdown .dropdown-menu .dropdown-item:nth-child(3)');
31440                        if (data.sort == 1) {
31441                            querySort = jQuery('.page-user-like .user-manage .timkiem .dropdown .dropdown-menu .dropdown-item:nth-child(1)');
31442                            querySortm = jQuery('.mobile-user-like .user-manage .timkiem .dropdown .dropdown-menu .dropdown-item:nth-child(1)');
31443                        }
31444                        else if (data.sort == 2) {
31445                            querySort = jQuery('.page-user-like .user-manage .timkiem .dropdown .dropdown-menu .dropdown-item:nth-child(2)');
31446                            querySortm = jQuery('.mobile-user-like .user-manage .timkiem .dropdown .dropdown-menu .dropdown-item:nth-child(2)');
31447                        }
31448                        var txt = querySort.html();
31449                        jQuery('.page-user-like .user-manage .timkiem .dropdown button.sapxep').html(txt);
31450                        querySort.addClass('active');
31451                        jQuery('.mobile-user-like .user-manage .timkiem .dropdown button.sapxep').html(txt);
31452                        querySortm.addClass('active');
31453                    }
31454                }, window.pars3p.timeAsync);
31455            });
31456        },
31457        onProduct_LikeDelete: function (el, id) {
31458            var find = window.pars3p.tempData.find(function (c) { return c.Code == id; });
31459            if (lib3p_helper.utility.hasValue(find)) {
31460                window.pars3p.tempID = id;
31461
31462                jQuery('.popup-user-like-delete .ProductName').html(find.ProductName);
31463                var query = jQuery('.popup-user-like-delete .hachi-modal');
31464                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31465                    if (jQuery(query[0]).hasClass("d-none")) {
31466                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
31467                    }
31468                }
31469            }
31470        },
31471        onPopupLikeDelete_Ok: function () {
31472            lib3p.header.ProductLike_Delete([window.pars3p.tempID], function () {
31473                var data = lib3p.pageUserBuy.GetQuery();
31474                var url = '/san-pham-da-thich?type=58&s=' + data.key + '&o=' + data.sort;
31475                window.location.href = url;
31476            });
31477        },
31478        onPopupLikeDelete_Close: function () {
31479            var query = jQuery('.popup-user-like-delete .hachi-modal');
31480            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31481                if (jQuery(query[0]).hasClass("d-block")) {
31482                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
31483                }
31484            }
31485        },
31486        GetQuery: function () {
31487            var res = { key: '', sort: 3 };
31488            var query = jQuery('.page-user-like');
31489            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31490                var key = jQuery(query[0]).data('key');
31491                var sort = jQuery(query[0]).data('sort');
31492                res.key = key;
31493                if (lib3p_helper.utility.hasValueString(sort)) {
31494                    res.sort = parseInt(sort);
31495                }
31496            }
31497            return res;
31498        },
31499        onSort_Click: function (o) {
31500            var data = lib3p.pageUserBuy.GetQuery();
31501            var url = '/san-pham-da-thich?type=58&s=' + data.key + '&o=' + o;
31502            window.location.href = url;
31503        },
31504        onTimKiem_Clear: function (el) {
31505            var query = jQuery(el).parent().find('input.txt');
31506            if (query != null && query.length > 0) {
31507                query.val('');
31508            }
31509            if (jQuery(el).hasClass('show')) {
31510                jQuery(el).removeClass('show');
31511            }
31512        },
31513        onTimKiem_KeyDown: function (event, el) {
31514            setTimeout(function () {
31515                var key = jQuery(el).val();
31516                if (lib3p_helper.utility.hasValueString(key)) {
31517                    if (!jQuery(el).parent().find('.clear').hasClass('show')) {
31518                        jQuery(el).parent().find('.clear').addClass('show');
31519                    }
31520                }
31521                else {
31522                    jQuery(el).parent().find('.clear').removeClass('show');
31523                }
31524            }, 500);
31525        },
31526        onTimKiem_Submit: function (event) {
31527            var ctr = event.target.TimKiem;
31528            var str = ctr.value;
31529            var data = lib3p.pageUserBuy.GetQuery();
31530            var url = '/san-pham-da-thich?type=58&s=' + str + '&o=' + data.sort;
31531            window.location.href = url;
31532
31533            event.preventDefault();
31534        }
31535    },
31536
31537    pageUserBuy: {
31538        init: function () {
31539            var query = jQuery('.page-user-buy');
31540            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31541                lib3p.pageUserBuy.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
31542            }
31543        },
31544        init_async: function () {
31545            return new Promise(function (resolve, reject) {
31546                setTimeout(function () {
31547                    if (lib3p.header.MustLogin()) {
31548                        var data = lib3p.pageUserBuy.GetQuery();
31549                        if (lib3p_helper.utility.hasValueString(data.key)) {
31550                            jQuery('.page-user-buy .user-manage .timkiem form > input').val(data.key);
31551                            jQuery('.mobile-user-buy .user-manage .timkiem form > input').val(data.key);
31552                            jQuery('.page-user-buy .user-manage .timkiem form .clear').addClass('show');
31553                            jQuery('.mobile-user-buy .user-manage .timkiem form .clear').addClass('show');
31554                        }
31555                        lib3p.header.UserManager_Load();
31556                        lib3p.common_AuthPostURL(window.pars3p.api.auth.User_DSProductBuy, { key: data.key, sort: data.sort }, function (res) {
31557                            if (lib3p_helper.utility.hasListValue(res)) {
31558                                var html = '';
31559                                var html_m = '';
31560                                res.forEach(function (c, cix) {
31561                                    var pbase = c.PriceBase > 0 ? c.PriceBase : 0;
31562                                    var Quantity = c.QuantityWithOrder >= 0 ? c.QuantityWithOrder : -1;
31563                                    var act = '<div class="product-action">';
31564                                    var act_m = '<div class="product-action">';
31565                                    if (c.IsApproved == true && c.Quantity > 0 && c.QuantityWithOrder > 0) {
31566                                        act += '<button type="button" aria-label="hachihachi" class="mualai b-dakgreen650 s13 cl-white medium500" data-code="' + c.Code + '" data-quantity="' + Quantity + '" data-name="' + c.ProductName + '" data-img="' + c.ImageThumb + '" data-price="' + c.Price + '" data-pricebase="' + pbase + '" data-hachi24="' + c.IsHachi24h + '" data-barcode="' + c.Barcode + '" onclick="lib3p.header.onProductAddCart_Click(this)">Mua lại</button><div class="gachgiua b-gregray200">&nbsp;</div>' +
31567                                            '<button type="button" aria-label="hachihachi" class="review b-white s13 cl-dakgreen650 medium500" data-code="' + c.Code + '" data-barcode="' + c.Barcode + '" onclick="lib3p.header.onProductAddCart_Click(this)">Viết đánh giá</button>';
31568                                        act_m += '<button type="button" aria-label="hachihachi" class="mualai b-dakgreen650 s13 cl-white medium500" data-code="' + c.Code + '" data-quantity="' + Quantity + '" data-name="' + c.ProductName + '" data-img="' + c.ImageThumb + '" data-price="' + c.Price + '" data-pricebase="' + pbase + '" data-hachi24="' + c.Is
31568Hachi24h + '" data-barcode="' + c.Barcode + '" onclick="lib3p.header.onProductAddCart_Click(this)">Mua lại</button>' +
31569                                            '<button type="button" aria-label="hachihachi" class="review b-white s13 cl-dakgreen650 medium500" data-code="' + c.Code + '" data-barcode="' + c.Barcode + '" onclick="lib3p.header.onProductAddCart_Click(this)">Viết đánh giá</button>';
31570                                    }
31571                                    else {
31572                                        act += '<button type="button" aria-label="hachihachi" class="mualai b-gregray s13 cl-gray500 medium500">Hết hàng</button><div class="gachgiua b-gregray200">&nbsp;</div>' +
31573                                            '<button type="button" aria-label="hachihachi" class="review b-white s13 cl-dakgreen650 medium500" data-code="' + c.Code + '" data-barcode="' + c.Barcode + '" onclick="lib3p.header.onProductAddCart_Click(this)">Viết đánh giá</button>';
31574                                        act_m += '<button type="button" aria-label="hachihachi" class="mualai b-gregray s13 cl-gray500 medium500">Hết hàng</button>' +
31575                                            '<button type="button" aria-label="hachihachi" class="review b-white s13 cl-dakgreen650 medium500" data-code="' + c.Code + '" data-barcode="' + c.Barcode + '" onclick="lib3p.header.onProductAddCart_Click(this)">Viết đánh giá</button>';
31576                                    }
31577                                    act += '</div>';
31578                                    act_m += '</div>';
31579
31580                                    html += '<div class="col-lg-4">';
31581                                    html += lib3p_helper.product.parseHTML3(c, 'b-white', act);
31582                                    html += '</div>';
31583
31584                                    html_m += lib3p_helper.product.parseHTML3(c, 'b-white', act_m);
31585                                });
31586                                jQuery('.page-user-buy .user-manage .danhsach').html(html);
31587                                jQuery('.mobile-user-buy .user-manage .danhsach').html(html_m);
31588                            }
31589                            else {
31590                                jQuery('.page-user-buy .user-manage .danhsach .noempty').show();
31591                                jQuery('.mobile-user-buy .user-manage .danhsach .noempty').show();
31592                            }
31593                        }, function (err) {
31594                            jQuery('.page-user-buy .user-manage .danhsach .noempty').show();
31595                            jQuery('.mobile-user-buy .user-manage .danhsach .noempty').show();
31596                            lib3p.log(err);
31597                        });
31598                        var querySort = jQuery('.page-user-buy .user-manage .timkiem .dropdown .dropdown-menu .dropdown-item:nth-child(3)');
31599                        var querySortm = jQuery('.mobile-user-buy .user-manage .timkiem .dropdown .dropdown-menu .dropdown-item:nth-child(3)');
31600                        if (data.sort == 1) {
31601                            querySort = jQuery('.page-user-buy .user-manage .timkiem .dropdown .dropdown-menu .dropdown-item:nth-child(1)');
31602                            querySortm = jQuery('.mobile-user-buy .user-manage .timkiem .dropdown .dropdown-menu .dropdown-item:nth-child(1)');
31603                        }
31604                        else if (data.sort == 2) {
31605                            querySort = jQuery('.page-user-buy .user-manage .timkiem .dropdown .dropdown-menu .dropdown-item:nth-child(2)');
31606                            querySortm = jQuery('.mobile-user-buy .user-manage .timkiem .dropdown .dropdown-menu .dropdown-item:nth-child(2)');
31607                        }
31608                        var txt = querySort.html();
31609                        jQuery('.page-user-buy .user-manage .timkiem .dropdown button.sapxep').html(txt);
31610                        querySort.addClass('active');
31611                        jQuery('.mobile-user-buy .user-manage .timkiem .dropdown button.sapxep').html(txt);
31612                        querySortm.addClass('active');
31613                    }
31614                }, window.pars3p.timeAsync);
31615            });
31616        },
31617        GetQuery: function () {
31618            var res = { key: '', sort: 3 };
31619            var query = jQuery('.page-user-buy');
31620            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31621                var key = jQuery(query[0]).data('key');
31622                var sort = jQuery(query[0]).data('sort');
31623                res.key = key;
31624                if (lib3p_helper.utility.hasValueString(sort)) {
31625                    res.sort = parseInt(sort);
31626                }
31627            }
31628            return res;
31629        },
31630        onSort_Click: function (o) {
31631            var data = lib3p.pageUserBuy.GetQuery();
31632            var url = '/san-pham-da-mua?type=50&s=' + data.key + '&o=' + o;
31633            window.location.href = url;
31634        },
31635        onTimKiem_Clear: function (el) {
31636            var query = jQuery(el).parent().find('input');
31637            if (query != null && query.length > 0) {
31638                query.val('');
31639            }
31640            if (jQuery(el).hasClass('show')) {
31641                jQuery(el).removeClass('show');
31642            }
31643
31644            var data = lib3p.pageUserBuy.GetQuery();
31645            if (lib3p_helper.utility.hasValueString(data.key)) {
31646                var url = '/san-pham-da-mua?type=50&s=&o=' + data.sort;
31647                window.location.href = url;
31648            }
31649        },
31650        onTimKiem_KeyDown: function (event, el) {
31651            setTimeout(function () {
31652                var key = jQuery(el).val();
31653                if (lib3p_helper.utility.hasValueString(key)) {
31654                    if (!jQuery(el).parent().find('.clear').hasClass('show')) {
31655                        jQuery(el).parent().find('.clear').addClass('show');
31656                    }
31657                }
31658                else {
31659                    jQuery(el).parent().find('.clear').removeClass('show');
31660                }
31661            }, 500);
31662        },
31663        onTimKiem_Submit: function (event) {
31664            var ctr = event.target.TimKiem;
31665            var str = ctr.value;
31666            var data = lib3p.pageUserBuy.GetQuery();
31667            var url = '/san-pham-da-mua?type=50&s=' + str + '&o=' + data.sort;
31668            window.location.href = url;
31669
31670            event.preventDefault();
31671        }
31672    },
31673
31674    pageUserDelivery: {
31675        init: function () {
31676            var query = jQuery('.page-user-delivery');
31677            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31678                lib3p.pageUserDelivery.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
31679            }
31680        },
31681        init_async: function () {
31682            return new Promise(function (resolve, reject) {
31683                setTimeout(function () {
31684                    if (lib3p.header.MustLogin()) {
31685                        lib3p.header.UserManager_Load();
31686                        window.pars3p.islockDiaglog = true;
31687
31688                        lib3p.pageUserDelivery.Delivery_Load();
31689                        lib3p.common_PostURL(window.pars3p.api.public.Delivery_GetLocation, {}, function (res) {
31690                            if (lib3p_helper.utility.hasValue(res)) {
31691                                window.pars3p.location = res;
31692                                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListProvince)) {
31693                                    jQuery('select.cboProvince').html('<option value>Select one...</option>');
31694                                    window.pars3p.location.ListProvince.forEach(function (c, cidx) {
31695                                        jQuery('select.cboProvince').append('<option value="' + c.Code + '" selected>' + c.ProvinceName + '</option>');
31696                                    });
31697                                }
31698                            }
31699                        }, function (err) {
31700                            lib3p.log(err);
31701                        });
31702                        jQuery("#cboProvince_itemedit").combobox({ change: function (opt) { lib3p.pageUserDelivery.onProvince_Change(opt, '#cboDistrict_itemedit', '#cboWard_itemedit') } });
31703                        jQuery("#cboDistrict_itemedit").combobox({ change: function (opt) { lib3p.pageUserDelivery.onDistrict_Change(opt, '#cboWard_itemedit') } });
31704                        jQuery("#cboWard_itemedit").combobox({ change: function (opt) { lib3p.pageUserDelivery.onWard_Change(opt) } });
31705
31706                        //jQuery("#cboAddress_itemedit").multiselect({ buttonFull: true, change: function(opt, data) { lib3p.pageUserDelivery.onAddress_Change(opt, data); } });
31707                    }
31708                }, window.pars3p.timeAsync);
31709            });
31710        },
31711        onProvince_Change: function (opt, iddistrict, idward) {
31712            if (lib3p_helper.utility.hasValueString(opt.value)) {
31713                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListDistrict)) {
31714                    var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == opt.value; });
31715                    jQuery(iddistrict).html('<option value>Select one...</option>');
31716                    lstTemp.forEach(function (c, cidx) {
31717                        jQuery(iddistrict).append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
31718                    });
31719                    jQuery(iddistrict).next().find('.custom-combobox-input').val('');
31720                    jQuery(idward).html('<option value>Select one...</option>');
31721                    jQuery(idward).next().find('.custom-combobox-input').val('');
31722
31723                    var query = jQuery(opt).closest('form');
31724                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31725                        lib3p.pageUserDelivery.DeliveryEdit_Check(query, opt.parentElement);
31726                    }
31727                }
31728            }
31729        },
31730        onDistrict_Change: function (opt, idward) {
31731            if (lib3p_helper.utility.hasValueString(opt.value)) {
31732                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListWard)) {
31733                    var lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == opt.value; });
31734                    jQuery(idward).html('<option value>Select one...</option>');
31735                    lstTemp.forEach(function (c, cidx) {
31736                        jQuery(idward).append('<option value="' + c.Code + '">' + c.WardName + '</option>');
31737                    });
31738                    jQuery(idward).next().find('.custom-combobox-input').val('');
31739
31740                    var query = jQuery(opt).closest('form');
31741                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31742                        lib3p.pageUserDelivery.DeliveryEdit_Check(query, opt.parentElement);
31743                    }
31744                }
31745            }
31746        },
31747        onWard_Change: function (opt) {
31748            if (lib3p_helper.utility.hasValueString(opt.value)) {
31749                var query = jQuery(opt).closest('form');
31750                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31751                    lib3p.pageCartDelivery.DeliveryEdit_Check(query);
31752                }
31753            }
31754        },
31755        DeliveryEdit_Check: function (query, el) {
31756            var flag = true;
31757            var flagControl = false;
31758            var ctr = query[0].ReceivedBy;
31759            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
31760                flag = false;
31761                if (flagControl == false) {
31762                    if (ctr != el) {
31763                        if (!jQuery(ctr).hasClass('error')) {
31764                            jQuery(ctr).addClass('error');
31765                        }
31766                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
31767                    }
31768                }
31769            }
31770            else {
31771                jQuery(ctr).removeClass('error');
31772                jQuery(ctr).parent().next().html('');
31773            }
31774            if (ctr == el) {
31775                flagControl = true;
31776            }
31777            ctr = query[0].Cellphone;
31778            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
31779                flag = false;
31780                if (flagControl == false) {
31781                    if (ctr != el) {
31782                        if (!jQuery(ctr).hasClass('error')) {
31783                            jQuery(ctr).addClass('error');
31784                        }
31785                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
31786                    }
31787                }
31788            }
31789            else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
31790                flag = false;
31791                if (flagControl == false) {
31792                    if (ctr != el) {
31793                        if (!jQuery(ctr).hasClass('error')) {
31794                            jQuery(ctr).addClass('error');
31795                        }
31796                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
31796<span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
31797                    }
31798                }
31799            }
31800            else {
31801                jQuery(ctr).removeClass('error');
31802                jQuery(ctr).parent().next().html('');
31803            }
31804            if (ctr == el) {
31805                flagControl = true;
31806            }
31807            ctr = document.getElementById('cboProvince_itemedit');
31808            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
31809                flag = false;
31810                if (flagControl == false) {
31811                    if (ctr != el) {
31812                        if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
31813                            jQuery(ctr).closest('.ui-widget').addClass('error');
31814                        }
31815                        jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
31816                    }
31817                }
31818            }
31819            else {
31820                jQuery(ctr).closest('.ui-widget').removeClass('error');
31821                jQuery(ctr).closest('.input').next().html('');
31822            }
31823            if (ctr == el) {
31824                flagControl = true;
31825            }
31826            ctr = document.getElementById('cboDistrict_itemedit');
31827            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
31828                flag = false;
31829                if (flagControl == false) {
31830                    if (ctr != el) {
31831                        if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
31832                            jQuery(ctr).closest('.ui-widget').addClass('error');
31833                        }
31834                        jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
31835                    }
31836                }
31837            }
31838            else {
31839                jQuery(ctr).closest('.ui-widget').removeClass('error');
31840                jQuery(ctr).closest('.input').next().html('');
31841            }
31842            if (ctr == el) {
31843                flagControl = true;
31844            }
31845            ctr = document.getElementById('cboWard_itemedit');
31846            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
31847                flag = false;
31848                if (flagControl == false) {
31849                    if (ctr != el) {
31850                        if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
31851                            jQuery(ctr).closest('.ui-widget').addClass('error');
31852                        }
31853                        jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
31854                    }
31855                }
31856            }
31857            else {
31858                jQuery(ctr).closest('.ui-widget').removeClass('error');
31859                jQuery(ctr).closest('.input').next().html('');
31860            }
31861            ctr = query[0].Address;
31862            if (!lib3p_helper.utility.hasValueString(ctr.value)) {
31863                flag = false;
31864                if (flagControl == false) {
31865                    if (ctr != el) {
31866                        if (!jQuery(ctr).hasClass('error')) {
31867                            jQuery(ctr).addClass('error');
31868                        }
31869                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
31870                    }
31871                }
31872            }
31873            else {
31874                jQuery(ctr).removeClass('error');
31875                jQuery(ctr).parent().next().html('');
31876            }
31877            if (ctr == el) {
31878                flagControl = true;
31879            }
31880            return flag;
31881            /* if(flag == true) {
31882                jQuery(query[0]).removeClass('haserror');
31883            }
31884            else {
31885                if(!jQuery(query[0]).hasClass('haserror')) {
31886                    jQuery(query[0]).addClass('haserror');
31887                }
31888            } */
31889        },
31890        onAddress_Change: function (opt, data) {
31891            if (data.length > 2) {
31892                var code = parseInt(data[data.length - 1].value);
31893                jQuery("#cboAddress_Ward").val(code);
31894                jQuery('select.cboAddress').html('');
31895            }
31896            else if (data.length > 1) {
31897                var code = parseInt(data[data.length - 1].value);
31898                jQuery("#cboAddress_District").val(code);
31899                jQuery("#cboAddress_Ward").val('-1');
31900                var lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == code; });
31901                jQuery('select.cboAddress').html('<option value>Select one...</option>');
31902                lstTemp.forEach(function (c, cidx) {
31903                    jQuery('select.cboAddress').append('<option value="' + c.Code + '">' + c.WardName + '</option>');
31904                });
31905            }
31906            else if (data.length > 0) {
31907                var code = parseInt(data[data.length - 1].value);
31908                jQuery("#cboAddress_Province").val(code);
31909                jQuery("#cboAddress_District").val('-1');
31910                jQuery("#cboAddress_Ward").val('-1');
31911                var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == code; });
31912                jQuery('select.cboAddress').html('<option value>Select one...</option>');
31913                lstTemp.forEach(function (c, cidx) {
31914                    jQuery('select.cboAddress').append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
31915                });
31916            }
31917            else {
31918                jQuery("#cboAddress_Province").val('-1');
31919                jQuery("#cboAddress_District").val('-1');
31920                jQuery("#cboAddress_Ward").val('-1');
31921                jQuery('select.cboAddress').html('<option value>Select one...</option>');
31922                window.pars3p.location.ListProvince.forEach(function (c, cidx) {
31923                    jQuery('select.cboAddress').append('<option value="' + c.Code + '">' + c.ProvinceName + '</option>');
31924                });
31925            }
31926        },
31927        Delivery_Load: function () {
31928            lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_GetAll, { "DeliveryID": -1 }, function (res) {
31929                if (lib3p_helper.utility.hasListValue(res)) {
31930                    window.pars3p.listDelivery = res;
31931
31932                    var html = '';
31933                    window.pars3p.listDelivery.forEach(function (c, cidx) {
31934                        html += '<div class="item data-' + c.ID + '"><div class="outline sl-gregray100">';
31935                        html += '<div class="content">';
31936                        var ReceivedBy = c.ReceivedBy;
31937                        if (!lib3p_helper.utility.hasValueString(ReceivedBy)) {
31938                            ReceivedBy = '&nbsp;';
31939                        }
31940                        if (c.IsDefault == true) {
31941                            html += '<div><span class="ReceivedBy s14 cl-gregray900 sibold600">' + ReceivedBy + '</span><span class="IsDefault b-dakgreen200 s13 cl-dakgreen900 regular400">Mặc định</span></div>';
31942                        }
31943                        else {
31944                            html += '<div><span class="ReceivedBy s14 cl-gregray900 sibold600">' + ReceivedBy + '</span></div>';
31945                        }
31946                        html += '<div class="FullAddress s14 cl-gregray750 regular400">' + c.FullAddress + '</div><div class="Cellphone s14 cl-gregray750 regular400">Điện thoại: ' + c.Cellphone + '</div>';
31947                        if (c.IsDefault == true) {
31948                            html += '<div class="act"><button type="button" aria-label="hachihachi" class="edit sl-gregray200 s13 cl-dakgreen650 sibold600" onclick="lib3p.pageUserDelivery.onDelivery_ThayDoi(' + c.ID + ')">Chỉnh sửa</button></div>';
31949                        }
31950                        else {
31951                            html += '<div class="act"><button type="button" aria-label="hachihachi" class="sl-gregray200 b-gregray100 s13 cl-gregray900 sibold600" onclick="lib3p.pageUserDelivery.onDelivery_Xoa(' + c.ID + ')">Xóa</button>&nbsp;&nbsp;<button type="button" aria-label="hachihachi" class="edit sl-gregray200 s13 cl-dakgreen650 sibold600" onclick="lib3p.pageUserDelivery.onDelivery_ThayDoi(' + c.ID + ')">Chỉnh sửa</button></div>';
31952                        }
31953                        html += '</div>';
31954
31955                        html += '</div></div>';
31956                    });
31957                    jQuery('.page-user-delivery .user-manage .danhsach').html('<div class="data">' + html + '</div>');
31958                    html = '';
31959                    window.pars3p.listDelivery.forEach(function (c, cidx) {
31960                        html += '<div class="item data-' + c.ID + '"><div class="outline sl-top-gregray200">';
31961                        html += '<div class="content">';
31962                        var ReceivedBy = c.ReceivedBy;
31963                        if (!lib3p_helper.utility.hasValueString(ReceivedBy)) {
31964                            ReceivedBy = '&nbsp;';
31965                        }
31966                        if (c.IsDefault == true) {
31967                            html += '<div><span class="ReceivedBy s14 cl-gregray900 sibold600">' + ReceivedBy + '</span><span class="IsDefault b-dakgreen200 s13 cl-dakgreen900 regular400">Mặc định</span></div>';
31968                        }
31969                        else {
31970                            html += '<div><span class="ReceivedBy s14 cl-gregray900 sibold600">' + ReceivedBy + '</span></div>';
31971                        }
31972                        html += '<div class="FullAddress s14 cl-gregray750 regular400">' + c.FullAddress + '</div><div class="Cellphone s14 cl-gregray750 regular400">Điện thoại: ' + c.Cellphone + '</div>';
31973                        if (c.IsDefault == true) {
31974                            html += '<div class="act"><button type="button" aria-label="hachihachi" class="edit sl-gregray200 s13 cl-dakgreen650 sibold600" onclick="lib3p.pageUserDelivery.onDelivery_ThayDoi(' + c.ID + ')">Chỉnh sửa</button></div>';
31975                        }
31976                        else {
31977                            html += '<div class="act"><button type="button" aria-label="hachihachi" class="sl-gregray200 b-gregray100 s13 cl-gregray900 sibold600" onclick="lib3p.pageUserDelivery.onDelivery_Xoa(' + c.ID + ')">Xóa</button>&nbsp;&nbsp;<button type="button" aria-label="hachihachi" class="edit sl-gregray200 s13 cl-dakgreen650 sibold600" onclick="lib3p.pageUserDelivery.onDelivery_ThayDoi(' + c.ID + ')">Chỉnh sửa</button></div>';
31978                        }
31979                        html += '</div>';
31980
31981                        html += '</div></div>';
31982                    });
31983                    jQuery('.mobile-user-delivery .user-manage .danhsach').html('<div class="data">' + html + '</div>');
31984                }
31985            }, function (err) {
31986                lib3p.log(err);
31987            });
31988        },
31989        onDeliveryEdit_Close: function () {
31990            var query = jQuery('.popup-delivery-edit .hachi-modal');
31991            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
31992                if (jQuery(query[0]).hasClass("d-block")) {
31993                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
31994                }
31995            }
31996        },
31997        Delivery_Edit: function () {
31998            var query = jQuery('.popup-delivery-edit > form');
31999            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
32000                jQuery('.popup-delivery-edit .modal-body .input input').removeClass('error');
32001                jQuery('.popup-delivery-edit .modal-body .error').html('');
32002
32003                var frm = query[0];
32004                frm.ReceivedBy.value = '';
32005                frm.Cellphone.value = '';
32006                frm.Address.value = '';
32007                frm.IsDefault.checked = false;
32008                //frm.Province.value = '-1';
32009                //frm.District.value = '-1';
32010                //frm.Ward.value = '-1';
32011
32012                jQuery('.popup-delivery-edit .modal-header .tieu-de').html('Nhập địa chỉ mới');
32013                if (window.pars3p.deliveryID > 0) {
32014                    jQuery('.popup-delivery-edit .modal-header .tieu-de').html('Cập nhật địa chỉ');
32015                    var item = window.pars3p.listDelivery.find(function (c) { return c.ID == window.pars3p.deliveryID; });
32016                    if (lib3p_helper.utility.hasValue(item)) {
32017                        frm.ReceivedBy.value = item.ReceivedBy;
32018                        frm.Cellphone.value = item.Cellphone;
32019                        frm.Address.value = item.Address;
32020                        frm.IsDefault.checked = item.IsDefault == true;
32021                        /*  frm.Province.value = item.Province;
32022                         frm.District.value = item.District;
32023                         frm.Ward.value = item.Ward; */
32024                        if (item.IsDefault == true) {
32025                            jQuery(frm.IsDefault).prop("disabled", true);
32026                        }
32027                        else {
32028                            jQuery(frm.IsDefault).prop("disabled", false);
32029                        }
32030
32031                        var itemProvince = window.pars3p.location.ListProvince.find(function (c) { return c.Code == item.Province; });
32032                        jQuery('#cboProvince_itemedit option[value="' + itemProvince.Code + '"]').attr('selected', 'selected');
32033                        document.getElementById('cboProvince_itemedit').value = itemProvince.Code;
32034                        jQuery('#cboProvince_itemedit').next().find('.custom-combobox-input').val(itemProvince.ProvinceName);
32035                        var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == itemProvince.Code; });
32036                        var itemDistrict = lstTemp.find(function (c) { return c.Code == item.District; });
32037                        jQuery('#cboDistrict_itemedit').html('<option value>Select one...</option>');
32038                        lstTemp.forEach(function (c, cidx) {
32039                            if (c.Code == itemDistrict.Code) {
32040                                jQuery('#cboDistrict_itemedit').append('<option value="' + c.Code + '" selected>' + c.DistrictName + '</option>');
32041                            }
32042                            else {
32043                                jQuery('#cboDistrict_itemedit').append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
32044                            }
32045                        });
32046                        document.getElementById('cboDistrict_itemedit').value = itemDistrict.Code;
32047                        jQuery('#cboDistrict_itemedit').next().find('.custom-combobox-input').val(itemDistrict.DistrictName);
32048                        lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == itemDistrict.Code; });
32049                        var itemWard = lstTemp.find(function (c) { return c.Code == item.Ward; });
32050                        jQuery('#cboWard_itemedit').html('<option value>Select one...</option>');
32051                        lstTemp.forEach(function (c, cidx) {
32052                            if (c.Code == itemWard.Code) {
32053                                jQuery('#cboWard_itemedit').append('<option value="' + c.Code + '" selected>' + c.WardName + '</option>');
32054                            }
32055                            else {
32056                                jQuery('#cboWard_itemedit').append('<option value="' + c.Code + '">' + c.WardName + '</option>');
32057                            }
32058                        });
32059                        document.getElementById('cboWard_itemedit').value = itemWard.Code;
32060                        jQuery('#cboWard_itemedit').next().find('.custom-combobox-input').val(itemWard.WardName);
32061                    }
32062                }
32063                else {
32064                    if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListProvince)) {
32065                        var itemProvince = window.pars3p.location.ListProvince[0];
32066                        jQuery('#cboProvince_itemedit option[value="' + itemProvince.Code + '"]').attr('selected', 'selected');
32067                        document.getElementById('cboProvince_itemedit').value = itemProvince.Code;
32068                        jQuery('#cboProvince_itemedit').next().find('.custom-combobox-input').val(itemProvince.ProvinceName);
32069                        var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == itemProvince.Code; });
32070                        var itemDistrict = lstTemp[0];
32071                        jQuery('#cboDistrict_itemedit').html('<option value>Select one...</option>');
32072                        lstTemp.forEach(function (c, cidx) {
32073                            if (c.Code == itemDistrict.Code) {
32074                                jQuery('#cboDistrict_itemedit').append('<option value="' + c.Code + '" selected>' + c.DistrictName + '</option>');
32075                            }
32076                            else {
32077                                jQuery('#cboDistrict_itemedit').append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
32078                            }
32079                        });
32080                        document.getElementById('cboDistrict_itemedit').value = itemDistrict.Code;
32081                        jQuery('#cboDistrict_itemedit').next().find('.custom-combobox-input').val(itemDistrict.DistrictName);
32082                        lstTemp = window.pars3p.location.ListWard.filter(function (c) { return c.DistrictID == itemDistrict.Code; });
32083                        var itemWard = lstTemp[0];
32084                        jQuery('#cboWard_itemedit').html('<option value>Select one...</option>');
32085                        lstTemp.forEach(function (c, cidx) {
32086                            if (c.Code == itemWard.Code) {
32087                                jQuery('#cboWard_itemedit').append('<option value="' + c.Code + '" selected>' + c.WardName + '</option>');
32088                            }
32089                            else {
32090                                jQuery('#cboWard_itemedit').append('<option value="' + c.Code + '">' + c.WardName + '</option>');
32091                            }
32092                        });
32093                        document.getElementById('cboWard_itemedit').value = itemWard.Code;
32094                        jQuery('#cboWard_itemedit').next().find('.custom-combobox-input').val(itemWard.WardName);
32095                    }
32096                }
32097            }
32098
32099            var query = jQuery('.popup-delivery-edit .hachi-modal');
32100            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
32101                if (jQuery(query[0]).hasClass("d-none")) {
32102                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
32103                }
32104            }
32105        },
32106        onDelivery_KeyDown: function (event, el) {
32107            var query = jQuery(el).closest('form');
32108            setTimeout(function () {
32109                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
32110                    lib3p.pageUserDelivery.DeliveryEdit_Check(query, el);
32111
32112                    /* var ctr = query[0].ReceivedBy;
32113                    if(!lib3p_helper.utility.hasValueString(ctr.value)) {
32114                        flag = false;
32115                        if(!jQuery(ctr).hasClass('error')) {
32116                            jQuery(ctr).addClass('error');
32117                        }
32118                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
32119                    }
32120                    else {
32121                        jQuery(ctr).removeClass('error');
32122                        jQuery(ctr).parent().next().html('');
32123                    }
32124                    ctr = query[0].Cellphone;
32125                    if(!lib3p_helper.utility.hasValueString(ctr.value)) {
32126                        flag = false;
32127                        if(!jQuery(ctr).hasClass('error')) {
32128                            jQuery(ctr).addClass('error');
32129                        }
32130                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
32131                    }
32132                    else if(/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10){
32133                        flag = false;
32134                        if(!jQuery(ctr).hasClass('error')) {
32135                            jQuery(ctr).addClass('error');
32136                        }
32137                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
32138                    }
32139                    else {
32140                        jQuery(ctr).removeClass('error');
32141                        jQuery(ctr).parent().next().html('');
32142                    }
32143                    ctr = query[0].Province;
32144                    if(!lib3p_helper.utility.hasValueString(ctr.value) || ctr.value == '-1' || ctr.value == '0') {
32145                        flag = false;
32146                        if(!jQuery(ctr).hasClass('error')) {
32147                            jQuery(ctr).addClass('error');
32148                        }
32149                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
32150                    }
32151                    else {
32152                        jQuery(ctr).removeClass('error');
32153                        jQuery(ctr).parent().next().html('');
32154                    }
32155                    ctr = query[0].District;
32156                    if(!lib3p_helper.utility.hasValueString(ctr.value) || ctr.value == '-1' || ctr.value == '0') {
32157                        flag = false;
32158                        if(!jQuery(ctr).hasClass('error')) {
32159                            jQuery(ctr).addClass('error');
32160                        }
32161                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
32162                    }
32163                    else {
32164                        jQuery(ctr).removeClass('error');
32165                        jQuery(ctr).parent().next().html('');
32166                    }
32167                    ctr = query[0].Ward;
32168                    if(!lib3p_helper.utility.hasValueString(ctr.value) || ctr.value == '-1' || ctr.value == '0') {
32169                        flag = false;
32170                        if(!jQuery(ctr).hasClass('error')) {
32171                            jQuery(ctr).addClass('error');
32172                        }
32173                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
32174                    }
32175                    else {
32176                        jQuery(ctr).removeClass('error');
32177                        jQuery(ctr).parent().next().html('');
32178                    }
32179                    ctr = query[0].Address;
32180                    if(!lib3p_helper.utility.hasValueString(ctr.value)) {
32181                        flag = false;
32182                        if(!jQuery(ctr).hasClass('error')) {
32183                            jQuery(ctr).addClass('error');
32184                        }
32185                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
32186                    }
32187                    else {
32188                        jQuery(ctr).removeClass('error');
32189                        jQuery(ctr).parent().next().html('');
32190                    } */
32191                }
32192            }, 100);
32193        },
32194        onDeliveryEdit_Submit: function (event) {
32195            if (!jQuery(event.target).hasClass('haserror')) {
32196                jQuery(event.target).find('div.error').html('');
32197                jQuery(event.target).find('.input input').removeClass('error');
32198
32199                var data = {
32200                    ID: -1,
32201                    ReceivedBy: '',
32202                    Cellphone: '',
32203                    Province: 0,
32204                    District: 0,
32205                    Ward: 0,
32206                    Address: '',
32207                    IsDefault: false,
32208                };
32209                var flag = true;
32210
32211                var ctr = event.target.ReceivedBy;
32212                data.ReceivedBy = ctr.value;
32213                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
32214                    flag = false;
32215                    if (!jQuery(ctr).hasClass('error')) {
32216                        jQuery(ctr).addClass('error');
32217                    }
32218                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
32219                }
32220                ctr = event.target.Cellphone;
32221                data.Cellphone = ctr.value;
32222                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
32223                    flag = false;
32224                    if (!jQuery(ctr).hasClass('error')) {
32225                        jQuery(ctr).addClass('error');
32226                    }
32227                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
32228                }
32229                else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
32230                    flag = false;
32231                    if (!jQuery(ctr).hasClass('error')) {
32232                        jQuery(ctr).addClass('error');
32233                    }
32234                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
32235                }
32236                ctr = document.getElementById('cboProvince_itemedit');
32237                data.Province = ctr.value;
32238                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
32239                    flag = false;
32240                    if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
32241                        jQuery(ctr).closest('.ui-widget').addClass('error');
32242                    }
32243                    jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
32244                }
32245                ctr = document.getElementById('cboDistrict_itemedit');
32246                data.District = ctr.value;
32247                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
32248                    flag = false;
32249                    if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
32250                        jQuery(ctr).closest('.ui-widget').addClass('error');
32251                    }
32252                    jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
32253                }
32254                ctr = document.getElementById('cboWard_itemedit');
32255                data.Ward = ctr.value;
32256                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
32257                    flag = false;
32258                    if (!jQuery(ctr).closest('.ui-widget').hasClass('error')) {
32259                        jQuery(ctr).closest('.ui-widget').addClass('error');
32260                    }
32261                    jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
32262                }
32263                ctr = event.target.Address;
32264                data.Address = ctr.value;
32265                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
32266                    flag = false;
32267                    if (!jQuery(ctr).hasClass('error')) {
32268                        jQuery(ctr).addClass('error');
32269                    }
32270                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
32271                }
32272                ctr = event.target.IsDefault;
32273                data.IsDefault = ctr.checked == true;
32274                if (flag == true) {
32275                    if (window.pars3p.deliveryID > 0) {
32276                        data.ID = window.pars3p.deliveryID;
32277                    }
32278                    if (data.ID > 0) {
32279                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_Edit, { item: data }, function (res) {
32280                            if (res == true) {
32281                                lib3p.pageUserDelivery.Delivery_Load();
32282                                lib3p.pageUserDelivery.onDeliveryEdit_Close();
32283                            }
32284                        }, function (err) {
32285                            throw err;
32286                        });
32287                    }
32288                    else {
32289                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_Add, { item: data }, function (res) {
32290                            if (res > 0) {
32291                                lib3p.pageUserDelivery.Delivery_Load();
32292                                lib3p.pageUserDelivery.onDeliveryEdit_Close();
32293                            }
32294                        }, function (err) {
32295                            throw err;
32296                        });
32297                    }
32298                }
32299            }
32300            event.preventDefault();
32301
32302            return false;
32303        },
32304        onDelivery_TaoMoi: function () {
32305            window.pars3p.deliveryID = 0;
32306            lib3p.pageUserDelivery.Delivery_Edit();
32307            /* jQuery('select.cboAddress').html('');
32308            if(lib3p_helper.utility.hasListValue(window.pars3p.location.ListProvince)) {
32309                jQuery('select.cboAddress').html('<option value>Select one...</option>');
32310                window.pars3p.location.ListProvince.forEach(function(c, cidx) {
32311                    jQuery('select.cboAddress').append('<option value="' + c.Code +'">' + c.ProvinceName + '</option>');
32312                });
32313            }
32314            jQuery("#cboAddress_itemedit").data('multiselect').reload([]); */
32315        },
32316        onDelivery_ThayDoi: function (id) {
32317            window.pars3p.deliveryID = id;
32318            lib3p.pageUserDelivery.Delivery_Edit();
32319        },
32320        onDelivery_Xoa: function (id) {
32321            var query = jQuery('.popup-delivery-xoa .hachi-modal');
32322            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
32323                if (jQuery(query[0]).hasClass("d-none")) {
32324                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
32325                }
32326            }
32327            var item = window.pars3p.listDelivery.find(function (c) { return c.ID == id; });
32328            if (lib3p_helper.utility.hasValue(item)) {
32329                window.pars3p.deliveryID = id;
32330                jQuery('.popup-delivery-xoa .FullAddress').html(item.FullAddress);
32331            }
32332        },
32333        onDelivery_XoaDongY: function () {
32334            lib3p.common_AuthPostURL(window.pars3p.api.auth.Delivery_Delete, { DeliveryID: window.pars3p.deliveryID }, function (res) {
32335                if (res == true) {
32336                    lib3p.pageUserDelivery.onDelivery_XoaClose();
32337                    lib3p.pageUserDelivery.Delivery_Load();
32338                    //var idx = window.pars3p.listDelivery.findIndex(function(c) { return c.ID == window.pars3p.deliveryID; });
32339                    //window.pars3p.listDelivery.splice(idx, 1);
32340                    //jQuery('.page-user-delivery .user-manage .danhsach .item.data-' + window.pars3p.deliveryID).remove();
32341                }
32342            }, function (err) {
32343                lib3p.log(err);
32344            });
32345        },
32346        onDelivery_XoaClose: function () {
32347            var query = jQuery('.popup-delivery-xoa .hachi-modal');
32348            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
32349                if (jQuery(query[0]).hasClass("d-block")) {
32350                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
32351                }
32352            }
32353        },
32354    },
32355
32356    pageUserCoupon: {
32357        Data: null,
32358        Item: null,
32359        init: function () {
32360            var query = jQuery('.page-user-coupon');
32361            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
32362                lib3p.pageUserCoupon.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
32363            }
32364        },
32365        init_async: function () {
32366            return new Promise(function (resolve, reject) {
32367                setTimeout(function () {
32368                    if (lib3p.header.MustLogin()) {
32369                        lib3p.header.UserManager_Load();
32370
32371                        lib3p.pageUserCoupon.LoadActive();
32372
32373                        //http://dev.ooc.vn:15007/api/profile/GetListActiveCoupons {"page":1,"pageSize":24}
32374                        //http://dev.ooc.vn:15007/api/profile/GetListUsedCoupons {"page":1,"pageSize":24}
32375                        //http://dev.ooc.vn:15007/api/profile/GetListExpiredCoupons {"page":1,"pageSize":24}
32376                    }
32377                }, window.pars3p.timeAsync);
32378            });
32379        },
32380        onTab_Click: function (el, type) {
32381            jQuery('.page-user-coupon .thongtin .product-top ul.tabs li.item.active').removeClass('active');
32382            jQuery(el).closest('li.item').addClass('active');
32383            jQuery('.page-user-coupon .danh-sach').html('');
32384            if (type == 1) {
32385                jQuery('.page-user-coupon .thongtin .danh-sach-tieude .dong .ExpiredDate').html('Hạn sử dụng');
32386                lib3p.pageUserCoupon.LoadActive();
32387            }
32388            else if (type == 2) {
32389                jQuery('.page-user-coupon .thongtin .danh-sach-tieude .dong .ExpiredDate').html('Ngày sử dụng');
32390                lib3p.pageUserCoupon.LoadUsed();
32391            }
32392            else if (type == 3) {
32393                jQuery('.page-user-coupon .thongtin .danh-sach-tieude .dong .ExpiredDate').html('Hạn sử dụng');
32394                lib3p.pageUserCoupon.LoadExpired();
32395            }
32396        },
32397        onTabMobile_Click: function (el, type) {
32398            jQuery('.mobile-user-coupon .thongtin .product-top ul.tabs li.item.active').removeClass('active');
32399            jQuery(el).closest('li.item').addClass('active');
32400            jQuery('.mobile-user-coupon .danh-sach').html('');
32401            if (type == 1) {
32402                lib3p.pageUserCoupon.LoadActive();
32403            }
32404            else if (type == 2) {
32405                lib3p.pageUserCoupon.LoadUsed();
32406            }
32407            else if (type == 3) {
32408                lib3p.pageUserCoupon.LoadExpired();
32409            }
32410        },
32411        onCoupon_Copy: function () {
32412            if (lib3p_helper.utility.hasValue(lib3p.pageUserCoupon.Item)) {
32413                navigator.clipboard.writeText(lib3p.pageUserCoupon.Item.CouponNo);
32414                alert('Đã copy mã');
32415            }
32416        },
32417        onCoupon_Click: function (el, code) {
32418            if (code > 0) {
32419                var find = lib3p.pageUserCoupon.Data.find(function (o) { return o.Code == code; });
32420                if (lib3p_helper.utility.hasValue(find)) {
32421                    lib3p.pageUserCoupon.Item = find;
32422
32423                    var query = jQuery('.popup-user-coupon .hachi-modal');
32424                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
32425                        if (jQuery(query[0]).hasClass("d-none")) {
32426                            jQuery(query[0]).removeClass("d-none").addClass("d-block");
32427                        }
32428                    }
32429                    var data = lib3p_helper.utility.formatMoney(find.CouponAmount) + 'đ';
32430                    if (find.IsPercent == true) {
32431                        data = find.CouponAmount + '%';
32432                    }
32433                    var d1 = new Date();
32434                    var diff = Math.abs(find.ExpiredDate - d1);
32435                    var d = Math.round(diff / (24 * 60 * 60000));
32436                    if (find.ExpiredDate <= d1) {
32437                        d = 0;
32438                    }
32439
32440                    jQuery('.popup-user-coupon .hachi-modal .CouponAmount').html(data);
32441                    jQuery('.popup-user-coupon .hachi-modal .ExpiredDate').html(lib3p_helper.utility.formatDateDDMMYYYY(find.ExpiredDate));
32442                    jQuery('.popup-user-coupon .hachi-modal .BrieftVN').html(find.BrieftVN);
32443                    jQuery('.popup-user-coupon .hachi-modal .DescriptionVN').html(find.BrieftVN);
32444                    jQuery('.popup-user-coupon .hachi-modal .ConditionVN').html(find.DescriptionVN);
32445                    jQuery('.popup-user-coupon .hachi-modal .ExpiredDate_Next').html('còn ' + d + ' ngày');
32446                    //jQuery('.popup-user-coupon .hachi-modal .CouponNo-image').html(find.CouponNo);
32447                    jQuery('.popup-user-coupon .hachi-modal .CouponNo-text').html(find.CouponNo);
32448                    JsBarcode("#CouponNo-image", find.CouponNo, { format: "CODE128", height: 40, displayValue: false });
32449                }
32450            }
32451        },
32452        onCoupon_Close: function (el) {
32453            var query = jQuery('.popup-user-coupon .hachi-modal');
32454            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
32455                if (jQuery(query[0]).hasClass("d-block")) {
32456                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
32457                }
32458            }
32459        },
32460        LoadActive: function () {
32461            lib3p.common_AuthPostURL(window.pars3p.api.auth.UserCoupon_ListActive, { page: 0, pagesize: 20 }, function (res) {
32462                if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValue(res.ObjectReturn) && res.StatusCode == 0) {
32463                    lib3p.pageUserCoupon.Data = res.ObjectReturn;
32464
32465                    var html = '';
32466                    res.ObjectReturn.forEach(function (c, cidx) {
32467                        if (lib3p_helper.utility.hasValue(c.ExpiredDate)) {
32468                            c.ExpiredDate = new Date(c.ExpiredDate);
32469                        }
32470                        else {
32471                            c.ExpiredDate = null;
32472                        }
32473                        var data = lib3p_helper.utility.formatMoney(c.CouponAmount) + 'đ';
32474                        if (c.IsPercent == true) {
32475                            data = c.CouponAmount + '%';
32476                        }
32477
32478                        html += '<div class="dong">';
32479                        html += '<div class="CouponAmount"><div class="txt1 s14 cl-gregray900 sibold600">' + data + '</div><div class="txt2 s14 cl-gregray600 regular400">' + c.CouponNo + '</div></div>';
32480                        html += '<div class="ExpiredDate s12 cl-gregray900 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.ExpiredDate) + '</div>';
32481                        html += '<div class="DescriptionVN s12 cl-gregray900 regular400">' + c.BrieftVN + '<br/>' + c.DescriptionVN + '</div>';
32482                        html += '<div class="act s12 cl-gregray900 regular400"><button type="button" aria-label="hachihachi" onclick="lib3p.pageUserCoupon.onCoupon_Click(this,' + c.Code + ')" class="b-white sl-gregray200 s13 cl-dakgreen650 sibold600">Xem mã</button></div>';
32483                        html += '</div>';
32484                        html += '<div class="line b-gregray200">&nbsp;</div>';
32485                    });
32486                    jQuery('.page-user-coupon .danh-sach').html(html);
32487
32488                    html = '';
32489                    res.ObjectReturn.forEach(function (c, cidx) {
32490                        if (lib3p_helper.utility.hasValue(c.ExpiredDate)) {
32491                            c.ExpiredDate = new Date(c.ExpiredDate);
32492                        }
32493                        else {
32494                            c.ExpiredDate = null;
32495                        }
32496                        var data = lib3p_helper.utility.formatMoney(c.CouponAmount) + 'đ';
32497                        if (c.IsPercent == true) {
32498                            data = c.CouponAmount + '%';
32499                        }
32500
32501                        html += '<div class="dong b-white sl-gregray70">';
32502                        html += '<div class="text-col">';
32503                        html += '<div class="s18 cl-gregray550 sibold600">Giá trị</div>';
32504                        html += '<div class="CouponAmount s18 cl-gregray900 sibold600">' + data + '</div>';
32505                        html += '</div>';
32506                        html += '<div class="line b-gregray200">&nbsp;</div>';
32507
32508                        html += '<div class="text-col">';
32509                        html += '<div class="s12 cl-gregray550 regular400">Hạn sử dụng</div>';
32510                        html += '<div class="ExpiredDate s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.ExpiredDate) + '</div>';
32511                        html += '</div>';
32512                        html += '<div class="text-col">';
32513                        html += '<div class="s12 cl-gregray550 regular400">Nội dung ưu đãi</div>';
32514                        html += '<div class="DescriptionVN s14 cl-gregray900 regular400">' + c.BrieftVN + '&nbsp;' + c.DescriptionVN + '</div>';
32515                        html += '</div>';
32516                        html += '<div class="text-col">';
32517                        html += '<div class="s12 cl-gregray550 regular400"></div>';
32518                        html += '<div class="act s14 cl-gregray900 regular400"><button type="button" aria-label="hachihachi" onclick="lib3p.pageUserCoupon.onCoupon_Click(this,' + c.Code + ')" class="s13 cl-dakgreen650 sibold600">Xem mã</button></div>';
32519                        html += '</div>';
32520
32521                        html += '</div>';
32522
32523                    });
32524                    jQuery('.mobile-user-coupon .danh-sach').html(html);
32525                }
32526            }, function (err) {
32527                throw err;
32528            });
32529        },
32530        LoadUsed: function () {
32531            lib3p.common_AuthPostURL(window.pars3p.api.auth.UserCoupon_ListUsed, { page: 0, pagesize: 20 }, function (res) {
32532                if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValue(res.ObjectReturn) && res.StatusCode == 0) {
32533                    lib3p.pageUserCoupon.Data = res.ObjectReturn;
32534
32535                    var html = '';
32536                    res.ObjectReturn.forEach(function (c, cidx) {
32537                        if (lib3p_helper.utility.hasValue(c.ExpiredDate)) {
32538                            c.ExpiredDate = new Date(c.ExpiredDate);
32539                        }
32540                        else {
32541                            c.ExpiredDate = null;
32542                        }
32543                        var data = lib3p_helper.utility.formatMoney(c.CouponAmount) + 'đ';
32544                        if (c.IsPercent == true) {
32545                            data = c.CouponAmount + '%';
32546                        }
32547
32548                        html += '<div class="dong">';
32549                        html += '<div class="CouponAmount"><div class="txt1 s14 cl-gregray900 sibold600">' + data + '</div><div class="txt2 s14 cl-gregray600 regular400">' + c.CouponNo + '</div></div>';
32550                        html += '<div class="ExpiredDate s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.ExpiredDate) + '</div>';
32551                        if (lib3p_helper.utility.hasValueString(c.OrderNo)) {
32552                            html += '<div class="DescriptionVN"><div class="txt1 s14 cl-gregray900 medium500">' + c.OrderNo + ' - ' + c.BrieftVN + '</div><div class="txt2 s14 cl-gregray600 regular400">' + c.DescriptionVN + '</div></div>';
32553                        }
32554                        else {
32555                            html += '<div class="DescriptionVN"><div class="txt1 s14 cl-gregray900 medium500">' + c.BrieftVN + '</div><div class="txt2 s14 cl-gregray600 regular400">' + c.DescriptionVN + '</div></div>';
32556                        }
32557                        html += '<div class="act s12 cl-gregray900 regular400"><button type="button" aria-label="hachihachi" onclick="lib3p.pageUserCoupon.onCoupon_Click(this,' + c.Code + ')" class="b-white sl-gregray200 s13 cl-dakgreen650 sibold600">Xem mã</button></div>';
32558                        html += '</div>';
32559                        html += '<div class="line b-gregray200">&nbsp;</div>';
32560                    });
32561                    jQuery('.page-user-coupon .danh-sach').html(html);
32562
32563                    html = '';
32564                    res.ObjectReturn.forEach(function (c, cidx) {
32565                        if (lib3p_helper.utility.hasValue(c.ExpiredDate)) {
32566                            c.ExpiredDate = new Date(c.ExpiredDate);
32567                        }
32568                        else {
32569                            c.ExpiredDate = null;
32570                        }
32571                        var data = lib3p_helper.utility.formatMoney(c.CouponAmount) + 'đ';
32572                        if (c.IsPercent == true) {
32573                            data = c.CouponAmount + '%';
32574                        }
32575
32576                        html += '<div class="dong b-white sl-gregray70">';
32577                        html += '<div class="text-col">';
32578                        html += '<div class="s18 cl-gregray550 sibold600">Giá trị</div>';
32579                        html += '<div class="CouponAmount s18 cl-gregray900 sibold600">' + data + '</div>';
32580                        html += '</div>';
32581                        html += '<div class="line b-gregray200">&nbsp;</div>';
32582
32583                        html += '<div class="text-col">';
32584                        html += '<div class="s12 cl-gregray550 regular400">Hạn sử dụng</div>';
32585                        html += '<div class="ExpiredDate s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.ExpiredDate) + '</div>';
32586                        html += '</div>';
32587                        html += '<div class="text-col">';
32588                        html += '<div class="s12 cl-gregray550 regular400">Nội dung ưu đãi</div>';
32589                        html += '<div class="DescriptionVN s14 cl-gregray900 regular400">' + c.BrieftVN + '&nbsp;' + c.DescriptionVN + '</div>';
32590                        html += '</div>';
32591                        html += '<div class="text-col">';
32592                        html += '<div class="s12 cl-gregray550 regular400">Đơn hàng</div>';
32593                        html += '<div class="DescriptionVN s14 cl-gregray900 regular400">' + c.OrderNo + '</div>';
32594                        html += '</div>';
32595                        html += '<div class="text-col">';
32596                        html += '<div class="s12 cl-gregray550 regular400"></div>';
32597                        html += '<div class="act s14 cl-gregray900 regular400"><button type="button" aria-label="hachihachi" onclick="lib3p.pageUserCoupon.onCoupon_Click(this,' + c.Code + ')" class="s13 cl-dakgreen650 sibold600">Xem mã</button></div>';
32598                        html += '</div>';
32599
32600                        html += '</div>';
32601
32602                    });
32603                    jQuery('.mobile-user-coupon .danh-sach').html(html);
32604                }
32605            }, function (err) {
32606                throw err;
32607            });
32608        },
32609        LoadExpired: function () {
32610            lib3p.common_AuthPostURL(window.pars3p.api.auth.UserCoupon_ListExpired, { page: 0, pagesize: 20 }, function (res) {
32611                if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValue(res.ObjectReturn) && res.StatusCode == 0) {
32612                    lib3p.pageUserCoupon.Data = res.ObjectReturn;
32613
32614                    var html = '';
32615                    res.ObjectReturn.forEach(function (c, cidx) {
32616                        if (lib3p_helper.utility.hasValue(c.ExpiredDate)) {
32617                            c.ExpiredDate = new Date(c.ExpiredDate);
32618                        }
32619                        else {
32620                            c.ExpiredDate = null;
32621                        }
32622                        var data = lib3p_helper.utility.formatMoney(c.CouponAmount) + 'đ';
32623                        if (c.IsPercent == true) {
32624                            data = c.CouponAmount + '%';
32625                        }
32626
32627                        html += '<div class="dong">';
32628                        html += '<div class="CouponAmount s12 cl-gregray900 sibold600">' + data + '</div>';
32629                        html += '<div class="ExpiredDate s12 cl-gregray900 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.ExpiredDate) + '</div>';
32630                        html += '<div class="DescriptionVN s12 cl-gregray900 regular400">' + c.BrieftVN + '<br/>' + c.DescriptionVN + '</div>';
32631                        html += '<div class="act s12 cl-gregray900 regular400"><button type="button" aria-label="hachihachi" onclick="lib3p.pageUserCoupon.onCoupon_Click(this,' + c.Code + ')" class="b-white sl-gregray200 s13 cl-dakgreen650 sibold600">Xem mã</button></div>';
32632                        html += '</div>';
32633                        html += '<div class="line b-gregray200">&nbsp;</div>';
32634                    });
32635                    jQuery('.page-user-coupon .danh-sach').html(html);
32636
32637                    html = '';
32638                    res.ObjectReturn.forEach(function (c, cidx) {
32639                        if (lib3p_helper.utility.hasValue(c.ExpiredDate)) {
32640                            c.ExpiredDate = new Date(c.ExpiredDate);
32641                        }
32642                        else {
32643                            c.ExpiredDate = null;
32644                        }
32645                        var data = lib3p_helper.utility.formatMoney(c.CouponAmount) + 'đ';
32646                        if (c.IsPercent == true) {
32647                            data = c.CouponAmount + '%';
32648                        }
32649
32650                        html += '<div class="dong b-white sl-gregray70">';
32651                        html += '<div class="text-col">';
32652                        html += '<div class="s18 cl-gregray550 sibold600">Giá trị</div>';
32653                        html += '<div class="CouponAmount s18 cl-gregray900 sibold600">' + data + '</div>';
32654                        html += '</div>';
32655                        html += '<div class="line b-gregray200">&nbsp;</div>';
32656
32657                        html += '<div class="text-col">';
32658                        html += '<div class="s12 cl-gregray550 regular400">Hạn sử dụng</div>';
32659                        html += '<div class="ExpiredDate s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.ExpiredDate) + '</div>';
32660                        html += '</div>';
32661                        html += '<div class="text-col">';
32662                        html += '<div class="s12 cl-gregray550 regular400">Nội dung ưu đãi</div>';
32663                        html += '<div class="DescriptionVN s14 cl-gregray900 regular400">' + c.BrieftVN + '&nbsp;' + c.DescriptionVN + '</div>';
32664                        html += '</div>';
32665                        html += '<div class="text-col">';
32666                        html += '<div class="s12 cl-gregray550 regular400"></div>';
32667                        html += '<div class="act s14 cl-gregray900 regular400"><button type="button" aria-label="hachihachi" onclick="lib3p.pageUserCoupon.onCoupon_Click(this,' + c.Code + ')" class="s13 cl-dakgreen650 sibold600">Xem mã</button></div>';
32668                        html += '</div>';
32669
32670                        html += '</div>';
32671
32672                    });
32673                    jQuery('.mobile-user-coupon .danh-sach').html(html);
32674                }
32675            }, function (err) {
32676                throw err;
32677            });
32678        },
32679    },
32680
32681    pageOrderHistory: {
32682        Data: {
32683            List: [],
32684            loai: -1,
32685            Code: -1,
32686        },
32687        init: function () {
32688            var query = jQuery('.page-order-history');
32689            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
32690                lib3p.common_LoadingShow();
32691                lib3p.pageOrderHistory.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
32692            }
32693        },
32694        init_async: function () {
32695            return new Promise(function (resolve, reject) {
32696                setTimeout(function () {
32697                    if (lib3p.header.MustLogin()) {
32698                        lib3p.header.UserManager_Load();
32699
32700                        lib3p.pageOrderHistory.Data.loai = 1;
32701                        lib3p.pageOrderHistory.LoadOrders();
32702
32703                        jQuery('.mobile-order-history .thongtin .product-top .tabs.owl-carousel').owlCarousel({
32704                            autoplay: false,
32705                            autoplayHoverPause: false,
32706                            loop: false,
32707                            nav: false,
32708                            dots: false,
32709                            autoWidth: true,
32710                            margin: 0,
32711                        });
32712                        //http://dev.ooc.vn:15007/api/order/GetCurrentListOrders
32713                        //cho thanh toan: {"page":1,"pageSize":20,"filter":"(OrderTypeID~eq~13~or~OrderTypeID~eq~14)~and~StatusID~eq~2","sort":"OrderDate-desc~StatusID-asc"}
32714                        //dang su ly: {"page":1,"pageSize":20,"filter":"(OrderTypeID~eq~13~or~OrderTypeID~eq~14)~and~(StatusID~eq~3~or~StatusID~eq~6~or~StatusID~eq~7~or~StatusID~eq~8~or~StatusID~eq~9~or~StatusID~eq~10)","sort":"OrderDate-desc~StatusID-asc"}
32715                        //dang van chuyen: {"page":1,"pageSize":20,"filter":"(OrderTypeID~eq~13~or~OrderTypeID~eq~14)~and~StatusID~eq~11","sort":"OrderDate-desc~StatusID-asc"}
32716                        //http://dev.ooc.vn:15005/api/history/GetListOrders
32717                        //da giao: {"page":1,"pageSize":20,"filter":"OrderTypeID~eq~15","sort":"OrderDate-desc~StatusID-asc"}
32718                        //da huy: {"page":1,"pageSize":20,"filter":"OrderTypeID~eq~16","sort":"OrderDate-desc~StatusID-asc"}
32719                        //http://dev.ooc.vn:15007/chi-tiet-don-hang?type=49&ordertypeid=13&orderid=58545
32720                        //http://dev.ooc.vn:15007/api/order/GetCurrentOrder {"ID":58545}
32721                        //http://dev.ooc.vn:15007/api/order/GetCancelOrderReason
32722                        //http://dev.ooc.vn:15007/api/order/GetCurrentOrderStatus {"ID":58545}
32723                        //http://dev.ooc.vn:15007/api/order/GetCurrentOrderDetails {"ID":58545}
32724                    }
32725                }, window.pars3p.timeAsync);
32726            });
32727        },
32728        onTab_Click: function (el, type) {
32729            jQuery('.page-order-history .thongtin .product-top ul.tabs li.item.active').removeClass('active');
32730            jQuery(el).closest('li.item').addClass('active');
32731            jQuery('.page-order-history .danh-sach').html('');
32732            lib3p.pageOrderHistory.Data.loai = type;
32733            lib3p.pageOrderHistory.LoadOrders();
32734        },
32735        onTabMobile_Click: function (el, type) {
32736            jQuery('.mobile-order-history .thongtin .product-top div.tabs .item.active').removeClass('active');
32737            jQuery(el).closest('.item').addClass('active');
32738            jQuery('.mobile-order-history .danh-sach').html('');
32739            lib3p.pageOrderHistory.Data.loai = type;
32740            lib3p.pageOrderHistory.LoadOrders();
32741        },
32742        LoadOrders: function () {
32743            lib3p.common_LoadingShow();
32744            lib3p.pageOrderHistory.LoadOrders_async().then(function (data) { }, function (err) { lib3p.log(err); });
32745        },
32746        LoadOrders_async: function () {
32747            return new Promise(function (resolve, reject) {
32748                setTimeout(function () {
32749
32750                    lib3p.common_AuthPostURL(window.pars3p.api.auth.OrderHistory_ListOrders, { loai: lib3p.pageOrderHistory.Data.loai, page: 0, pagesize: 20 }, function (res) {
32751                        if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValue(res.ObjectReturn) && res.StatusCode == 0) {
32752                            lib3p.pageOrderHistory.Data.List = res.ObjectReturn;
32753
32754                            var html = '';
32755                            res.ObjectReturn.forEach(function (c, cidx) {
32756                                if (lib3p_helper.utility.hasValue(c.OrderDate)) {
32757                                    c.OrderDate = new Date(c.OrderDate);
32758                                }
32759                                else {
32760                                    c.OrderDate = null;
32761                                }
32762                                if (lib3p_helper.utility.hasValue(c.EstDelivery)) {
32763                                    c.EstDelivery = new Date(c.EstDelivery);
32764                                }
32765                                else {
32766                                    c.EstDelivery = null;
32767                                }
32768                                if (lib3p_helper.utility.hasValue(c.DeliveriedDate)) {
32769                                    c.DeliveriedDate = new Date(c.DeliveriedDate);
32770                                }
32771                                else {
32772                                    c.DeliveriedDate = null;
32773                                }
32774
32775                                html += '<div class="dong b-white sl-gregray100">';
32776
32777                                html += '<div class="text-col">';
32778                                html += '<div class="s14 cl-gregray900 regular400"><span class="lbl">Đơn hàng</span><span class="OrderNo bold700">' + c.OrderNo + '</span></div>';
32779                                html += '<div class="StatusName b-dakgreen200 s13 cl-gregray900 sibold600">' + c.StatusName + '</div>';
32780                                html += '</div>';
32781                                html += '<div class="text-col">';
32782                                html += '<div class="s14 cl-gregray900 regular400"><span class="lbl">Ngày đặt hàng</span><span class="OrderDate">' + lib3p_helper.utility.formatDateDDMMYYYY(c.OrderDate) + '</span></div>';
32783                                if (c.StatusID == 12) {
32784                                    html += '<div class="EstDelivery s14 cl-gregray900 regular400">Ngày giao hàng ' + lib3p_helper.utility.formatDateDDMMYYYY(c.DeliveriedDate) + '</div>';
32785                                }
32786                                else {
32787                                    html += '<div class="EstDelivery s14 cl-gregray900 regular400">Ngày dự kiến giao hàng ' + lib3p_helper.utility.formatDateDDMMYYYY(c.EstDelivery) + '</div>';
32788                                }
32789                                html += '</div>';
32790                                html += '<div class="line b-gregray200">&nbsp;</div>';
32791
32792                                if (lib3p_helper.utility.hasValue(c.FirstDetail)) {
32793                                    var item = c.FirstDetail;
32794
32795                                    html += '<div class="text-col">';
32796
32797                                    html += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageSmall + '" alt="' + item.ProductName + '" /></a></div>';
32798
32799                                    html += '<div class="info">';
32800                                    html += '<div class="name s14 cl-gregray900 medium500"><a href="' + item.Alias + '">' + item.ProductName + '</div>';
32801                                    html += '<div class="price">'
32802                                    if (item.Price != item.PriceBase) {
32803                                        html += '<a class="s15 cl-red400 sibold600" href="' + item.Alias + '">' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a><span class="sale s13 cl-gregray550 regular400">' + lib3p_helper.utility.formatMoney(item.PriceBase) + 'đ</span>';
32804                                    }
32805                                    else {
32806                                        html += '<a class="s15 cl-dakgreen800 sibold600" href="' + item.Alias + '">' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a>';
32807                                    }
32808                                    html += '</div>';
32809                                    html += '</div>';
32810
32811                                    html += '<div class="soluong s14 cl-gregray900 regular400">&nbsp;&nbsp;' + item.Quantity + '</div>';
32812                                    html += '<div class="thanhtien s14 cl-gregray900 regular400">&nbsp;&nbsp;' + lib3p_helper.utility.formatMoney(item.Price * item.Quantity) + 'đ</div>';
32813
32814                                    html += '</div>';
32815                                }
32816                                html += '<div class="text-col">';
32817                                html += '<div class="NoOfItem s14 cl-gregray900 regular400">Tổng cộng: ' + c.NoOfItem + ' đơn vị sản phẩm</div>';
32818                                html += '<div class="Payment s15 cl-gregray750 bold700"><span>Tổng thanh toán </span><span class="cl-dakgreen650">' + lib3p_helper.utility.formatMoney(c.Payment) + 'đ</span></div>';
32819                                html += '</div>';
32820
32821                                html += '<div class="line b-gregray200">&nbsp;</div>';
32822                                if (c.StatusID == 2 || c.StatusID == 4) {
32823                                    if (c.AllowRepay == true) {
32824                                        html += '<div class="act s12 regular400">';
32825                                        html += '<button type="button" aria-label="hachihachi" class="b-red300 cl-white" onclick="lib3p.pageOrderHistory.onOrderRepay_Click(this,' + c.Code + ')">Thanh toán lại</button>';
32826                                        html += '<button type="button" aria-label="hachihachi" onclick="lib3p.pageOrderHistory.onOrderDetail_Click(this,' + c.OrderTypeID + ',' + c.Code + ')" class="b-gregray200 cl-gregray900">Xem chi tiết</button>';
32827                                        html += '<button type="button" aria-label="hachihachi" onclick="lib3p.pageOrderHistory.onOrderDelete_Click(this,' + c.Code + ')" class="b-gregray200 cl-gregray900">Hủy đơn hàng</button>';
32828                                        html += '</div>';
32829                                    }
32830                                    else {
32831                                        html += '<div class="act s12 regular400"><button type="button" aria-label="hachihachi" class="b-gregray200 cl-gregray900">Thanh toán lại</button><button type="button" aria-label="hachihachi" onclick="lib3p.pageOrderHistory.onOrderDetail_Click(this,' + c.OrderTypeID + ',' + c.Code + ')" class="b-gregray200 cl-gregray900">Xem chi tiết</button></div>';
32832                                    }
32833                                }
32834                                else {
32835                                    html += '<div class="act s12 regular400"><button type="button" aria-label="hachihachi" class="b-dakgreen650 cl-white" onclick="lib3p.pageOrderHistory.onOrderBuy_Click(this,' + c.Code + ')">Mua lại đơn</button><button type="button" aria-label="hachihachi" onclick="lib3p.pageOrderHistory.onOrderDetail_Click(this,' + c.OrderTypeID + ',' + c.Code + ')" class="b-gregray200 cl-gregray900">Xem chi tiết</button></div>';
32836                                }
32837
32838                                html += '</div>';
32839                            });
32840                            if (!lib3p_helper.utility.hasValueString(html)) {
32841                                html = '<div class="dong empty b-white sl-gregray100"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon-qldh_empty.svg" /><div class="s18 cl-dakgreen800 medium500">Bạn chưa có đơn hàng</div></div>';
32842                            }
32843                            jQuery('.page-order-history .danh-sach').html(html);
32844
32845                            html = '';
32846                            res.ObjectReturn.forEach(function (c, cidx) {
32847                                if (lib3p_helper.utility.hasValue(c.OrderDate)) {
32848                                    c.OrderDate = new Date(c.OrderDate);
32849                                }
32850                                else {
32851                                    c.OrderDate = null;
32852                                }
32853                                if (lib3p_helper.utility.hasValue(c.EstDelivery)) {
32854                                    c.EstDelivery = new Date(c.EstDelivery);
32855                                }
32856                                else {
32857                                    c.EstDelivery = null;
32858                                }
32859                                if (lib3p_helper.utility.hasValue(c.DeliveriedDate)) {
32860                                    c.DeliveriedDate = new Date(c.DeliveriedDate);
32861                                }
32862                                else {
32863                                    c.DeliveriedDate = null;
32864                                }
32865                                html += '<div class="dong b-white">';
32866
32867                                html += '<div class="text-col">';
32868                                html += '<div class="s14 cl-gregray900 regular400">Đơn hàng</div>';
32869                                html += '<div class="OrderNo s14 cl-gregray900 bold700">' + c.OrderNo + '</div>';
32870                                html += '</div>';
32871                                html += '<div class="text-col">';
32872                                html += '<div class="s14 cl-gregray900 regular400">Ngày đặt hàng</div>';
32873                                html += '<div class="OrderNo s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.OrderDate) + '</div>';
32874                                html += '</div>';
32875                                html += '<div class="text-col">';
32876                                if (c.StatusID == 12) {
32877                                    html += '<div class="s14 cl-gregray900 regular400">Ngày giao hàng</div>';
32878                                    html += '<div class="EstDelivery s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.DeliveriedDate) + '</div>';
32879                                }
32880                                else {
32881                                    html += '<div class="s14 cl-gregray900 regular400">Ngày dự kiến giao hàng</div>';
32882                                    html += '<div class="EstDelivery s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.EstDelivery) + '</div>';
32883                                }
32884                                html += '</div>';
32885                                html += '<div class="line b-gregray200">&nbsp;</div>';
32886
32887                                if (lib3p_helper.utility.hasValue(c.FirstDetail)) {
32888                                    var item = c.FirstDetail;
32889
32890                                    html += '<div class="text-col">';
32891
32892                                    html += '<div class="img"><a href="' + item.Alias + '"><img src="' + item.ImageSmall + '" alt="' + item.ProductName + '" /></a></div>';
32893
32894                                    html += '<div class="info">';
32895                                    html += '<div class="name s14 cl-gregray900 medium500"><a href="' + item.Alias + '">' + item.ProductName + '</div>';
32896                                    html += '<div class="price">'
32897                                    if (item.Price != item.PriceBase) {
32898                                        html += '<a class="s15 cl-red400 sibold600" href="' + item.Alias + '">' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a>&nbsp;<span class="sale s13 cl-gregray550 regular400">' + lib3p_helper.utility.formatMoney(item.PriceBase) + 'đ</span>';
32899                                    }
32900                                    else {
32901                                        html += '<a class="s15 cl-dakgreen800 sibold600" href="' + item.Alias + '">
32901' + lib3p_helper.utility.formatMoney(item.Price) + 'đ</a>';
32902                                    }
32903                                    html += '</div>';
32904                                    html += '<div class="soluong s14 cl-gregray900 regular400">x&nbsp;' + item.Quantity + '</div>';
32905                                    html += '</div>';
32906
32907                                    html += '</div>';
32908                                }
32909                                html += '<div class="NoOfItem s14 cl-gregray900 regular400">Tổng cộng: ' + c.NoOfItem + ' đơn vị sản phẩm</div>';
32910                                html += '<div class="Payment s15 cl-gregray750 bold700"><span>Tổng thanh toán </span><span class="cl-dakgreen650">' + lib3p_helper.utility.formatMoney(c.Payment) + 'đ</span></div>';
32911
32912                                html += '<div class="line b-gregray200">&nbsp;</div>';
32913                                if (c.StatusID == 2 || c.StatusID == 4) {
32914                                    if (c.AllowRepay == true) {
32915                                        html += '<div class="act s12 regular400">';
32916                                        html += '<button type="button" aria-label="hachihachi" class="b-red300 cl-white" onclick="lib3p.pageOrderHistory.onOrderRepay_Click(this,' + c.Code + ')">Thanh toán lại</button>';
32917                                        html += '<button type="button" aria-label="hachihachi" onclick="lib3p.pageOrderHistory.onOrderDetail_Click(this,' + c.OrderTypeID + ',' + c.Code + ')" class="b-gregray200 cl-gregray900">Xem chi tiết</button>';
32918                                        html += '<button type="button" aria-label="hachihachi" onclick="lib3p.pageOrderHistory.onOrderDelete_Click(this,' + c.Code + ')" class="b-gregray200 cl-gregray900">Hủy đơn hàng</button>';
32919                                        html += '</div>';
32920                                    }
32921                                    else {
32922                                        html += '<div class="act s12 regular400"><button type="button" aria-label="hachihachi" class="b-gregray200 cl-gregray900">Thanh toán lại</button><button type="button" aria-label="hachihachi" onclick="lib3p.pageOrderHistory.onOrderDetail_Click(this,' + c.OrderTypeID + ',' + c.Code + ')" class="b-gregray200 cl-gregray900">Xem chi tiết</button></div>';
32923                                    }
32924                                }
32925                                else {
32926                                    html += '<div class="act s12 regular400"><button type="button" aria-label="hachihachi" class="b-dakgreen650 cl-white" onclick="lib3p.pageOrderHistory.onOrderBuy_Click(this,' + c.Code + ')">Mua lại đơn</button><button type="button" aria-label="hachihachi" onclick="lib3p.pageOrderHistory.onOrderDetail_Click(this,' + c.OrderTypeID + ',' + c.Code + ')" class="b-gregray200 cl-gregray900">Xem chi tiết</button></div>';
32927                                }
32928
32929                                //html += '<div class="act s12 cl-gregray900 regular400"><button type="button" aria-label="hachihachi" class="b-dakgreen650 cl-white" onclick="lib3p.pageOrderHistory.onOrderBuy_Click(this,' + c.Code + ')">Mua lại đơn</button><button type="button" aria-label="hachihachi" onclick="lib3p.pageOrderHistory.onOrderDetail_Click(this,' + c.OrderTypeID + ',' + c.Code + ')" class="b-gregray200">Xem chi tiết</button></div>';
32930
32931                                html += '</div>';
32932                            });
32933                            if (!lib3p_helper.utility.hasValueString(html)) {
32934                                html = '<div class="dong empty b-white sl-gregray100"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icon-qldh_empty.svg" /><div class="s18 cl-dakgreen800 medium500">Bạn chưa có đơn hàng</div></div>';
32935                            }
32936                            jQuery('.mobile-order-history .danh-sach').html(html);
32937                        }
32938                        lib3p.common_LoadingHide();
32939                        resolve(false);
32940                    }, function (err) {
32941                        lib3p.common_LoadingHide();
32942                        reject(err);
32943                    });
32944
32945                }, window.pars3p.timeAsync);
32946            });
32947        },
32948        onOrderDelete_Click: function (el, code) {
32949            var find = lib3p.pageOrderHistory.Data.List.find(function (o) { return o.Code == code });
32950            if (lib3p_helper.utility.hasValue(find)) {
32951                window.pars3p.orderID = code;
32952                jQuery('.popup-order-history-delete .OrderNo').html(find.OrderNo);
32953                var query = jQuery('.popup-order-history-delete .hachi-modal');
32954                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
32955                    if (jQuery(query[0]).hasClass("d-none")) {
32956                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
32957                    }
32958                }
32959            }
32960        },
32961        onOrderDelete_Close: function () {
32962            var query = jQuery('.popup-order-history-delete .hachi-modal');
32963            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
32964                if (jQuery(query[0]).hasClass("d-block")) {
32965                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
32966                }
32967            }
32968        },
32969        onOrderDelete_Ok: function () {
32970            lib3p.common_AuthPostURL(window.pars3p.api.auth.OrderHistory_Delete, { code: window.pars3p.orderID }, function (res) {
32971                lib3p.pageOrderHistory.onOrderDelete_Close();
32972                if (res == true) {
32973                }
32974                else {
32975                    alert('Hủy đơn hàng thất bại');
32976                }
32977                lib3p.pageOrderHistory.LoadOrders();
32978            }, function (err) {
32979                lib3p.pageOrderHistory.onOrderDelete_Close();
32980                throw err;
32981            });
32982        },
32983        onOrderDetail_Click: function (el, type, code) {
32984            if (type > 0 && code > 0) {
32985                var find = lib3p.pageOrderHistory.Data.List.find(function (o) { return o.Code == code });
32986                if (lib3p_helper.utility.hasValue(find)) {
32987                    var url = lib3p_helper.utility.stringFormat('/chi-tiet-don-hang?type=49&ordertypeid={0}&orderid={1}', type, find.OrderNo);
32988                    window.location.href = url;
32989                }
32990            }
32991        },
32992        onOrderBuy_Click: function (el, code) {
32993            if (code > 0) {
32994                window.pars3p.orderID = code;
32995                window.pars3p.listdetailID = [];
32996                lib3p.common_AuthPostURL(window.pars3p.api.auth.OrderHistory_BuyCheck, { code: window.pars3p.orderID }, function (res) {
32997                    if (lib3p_helper.utility.hasValue(res) && res.Code == code && lib3p_helper.utility.hasListValue(res.CartDetails)) {
32998                        var lstBuy = res.CartDetails.filter(function (o) { return o.LSProduct_Quantity > 0 && o.LSProduct_QuantityWithOrder > 0 });
32999                        var lstEmpty = res.CartDetails.filter(function (o) { return !(o.LSProduct_Quantity > 0 && o.LSProduct_QuantityWithOrder > 0) });
33000                        if (lstBuy.length > 0) {
33001                            window.pars3p.listdetailID = lstBuy.map(function (o) { return o.Code; });
33002                            jQuery('.popup-order-history-buy .hachi-modal .modal-footer .giohang').show();
33003                            jQuery('.popup-order-history-buy .hachi-modal .modal-footer .dong').hide();
33004                            jQuery('.popup-order-history-buy .hachi-modal .noidung').html('');
33005                            if (lstEmpty.length > 0) {
33006                                jQuery('.popup-order-history-buy .hachi-modal .tieude').html('Các sản phẩm sau đây đã hết hàng.<br/>Bạn có thể chọn sản phẩm tương tự tại trang chi tiết sản phẩm');
33007                                var str = '';
33008                                lstEmpty.forEach(function (o) {
33009                                    str += '<div class="item-outline">&nbsp;<span class="s18">&#8226;</span>&nbsp;<a href="' + o.Alias + '" class="item s14 cl-gregray900 regular400">' + o.ProductName + '</a></div>';
33010                                });
33011                                lstEmpty.forEach(function (o) {
33012                                    str += '<div class="item-outline">&nbsp;<span class="s18">&#8226;</span>&nbsp;<a href="' + o.Alias + '" class="item s14 cl-gregray900 regular400">' + o.ProductName + '</a></div>';
33013                                });
33014                                str += '<br/><span class="s15 cl-dakgreen650 medium500">Các sản phẩm còn lại đã được thêm vào giỏ hàng</span>';
33015                                jQuery('.popup-order-history-buy .hachi-modal .noidung').html(str);
33016                                jQuery('.popup-order-history-buy .hachi-modal .modal-footer .giohang').html('Tiếp tục');
33017                                lib3p.pageOrderHistory.onOrderBuy_Open();
33018                            }
33019                            else {
33020                                jQuery('.popup-order-history-buy .hachi-modal .tieude').html('Các sản phẩm được cho vào giỏ hàng!');
33021                                jQuery('.popup-order-history-buy .hachi-modal .modal-footer .giohang').html('Xem giỏ hàng');
33022                                lib3p.pageOrderHistory.onOrderBuy_Open();
33023                            }
33024                        }
33025                        else {
33026                            lib3p.pageOrderHistory.onOrderBuy_Open();
33027                            jQuery('.popup-order-history-buy .hachi-modal .tieude').html('Các sản phẩm trong đơn đã hết hàng.<br/>Bạn có thể chọn sản phẩm tương tự tại trang chi tiết sản phẩm');
33028                            jQuery('.popup-order-history-buy .hachi-modal .modal-footer .giohang').hide();
33029                            jQuery('.popup-order-history-buy .hachi-modal .modal-footer .dong').show();
33030                        }
33031                    }
33032                    else {
33033                        alert('Mua lại thất bại');
33034                    }
33035                }, function (err) {
33036                    throw err;
33037                });
33038
33039
33040                /* var find = lib3p.pageOrderHistory.Data.List.find(function(o) { return o.Code == code; });
33041                if(lib3p_helper.utility.hasValue(find)) {
33042                    jQuery('.popup-order-history-buy .OrderNo').html(find.OrderNo);
33043                }
33044                lib3p.pageOrderHistory.onOrderBuy_Open(); */
33045            }
33046        },
33047        onOrderBuy_Open: function () {
33048            var query = jQuery('.popup-order-history-buy .hachi-modal');
33049            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33050                if (jQuery(query[0]).hasClass("d-none")) {
33051                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
33052                }
33053            }
33054        },
33055        onOrderBuy_Close: function () {
33056            var query = jQuery('.popup-order-history-buy .hachi-modal');
33057            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33058                if (jQuery(query[0]).hasClass("d-block")) {
33059                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
33060                }
33061            }
33062        },
33063        onOrderBuy_Ok: function () {
33064            lib3p.pageOrderHistory.onOrderBuy_Close();
33065            lib3p.common_AuthPostURL(window.pars3p.api.auth.OrderHistory_Buy, { code: window.pars3p.orderID, lst: window.pars3p.listdetailID }, function (res) {
33066                if (res == true) {
33067                    window.location.href = window.pars3p.urlCart;
33068                }
33069                else {
33070                    alert('Mua lại thất bại');
33071                }
33072            }, function (err) {
33073                throw err;
33074            });
33075        },
33076        onOrderRepay_Click: function (el, code) {
33077            if (code > 0) {
33078                window.pars3p.orderID = code;
33079                var find = lib3p.pageOrderHistory.Data.List.find(function (o) { return o.Code == code; });
33080                if (lib3p_helper.utility.hasValue(find)) {
33081                    jQuery('.popup-order-history-repay .OrderNo').html(find.OrderNo);
33082                }
33083                lib3p.pageOrderHistory.onOrderRepay_Open();
33084            }
33085        },
33086        onOrderRepay_Open: function () {
33087            var query = jQuery('.popup-order-history-repay .hachi-modal');
33088            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33089                if (jQuery(query[0]).hasClass("d-none")) {
33090                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
33091                }
33092            }
33093        },
33094        onOrderRepay_Close: function () {
33095            var query = jQuery('.popup-order-history-repay .hachi-modal');
33096            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33097                if (jQuery(query[0]).hasClass("d-block")) {
33098                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
33099                }
33100            }
33101        },
33102        onOrderRepay_Ok: function () {
33103            lib3p.pageOrderHistory.onOrderRepay_Close();
33104            lib3p.common_AuthPostURL(window.pars3p.api.auth.OrderHistory_Repay, { code: window.pars3p.orderID }, function (res) {
33105                if (lib3p_helper.utility.hasValue(res)) {
33106                    if (res.StatusCode == 0) {
33107                        if (lib3p_helper.utility.hasValue(res.ObjectReturn) && lib3p_helper.utility.hasValueString(res.ObjectReturn.URLRedirect)) {
33108                            window.location.href = res.ObjectReturn.URLRedirect;
33109                        }
33110                    }
33111                    else {
33112                        alert(res.ErrorString);
33113                    }
33114                }
33115            }, function (err) {
33116                throw err;
33117            });
33118        },
33119    },
33120
33121    pageOrderHistoryDetail: {
33122        Data: {
33123            id: '',
33124        },
33125        init: function () {
33126            var query = jQuery('.page-order-history-detail');
33127            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33128                lib3p.pageOrderHistoryDetail.Data.id = jQuery(query[0]).data('id');
33129                lib3p.pageOrderHistoryDetail.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
33130            }
33131        },
33132        init_async: function () {
33133            return new Promise(function (resolve, reject) {
33134                setTimeout(function () {
33135                    if (lib3p.header.MustLogin()) {
33136                        lib3p.header.UserManager_Load();
33137
33138                        //window.pars3p.api.auth.OrderHistory_Details
33139                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Tracking_OrderV2, { OrderNo: lib3p.pageOrderHistoryDetail.Data.id, TypeData: 1 }, function (res) {
33140                            if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn)) {
33141                                var cart = res.ObjectReturn;
33142                                cart.OrderDate = lib3p_helper.utility.dateGet(cart.OrderDate);
33143                                cart.StepDate = lib3p_helper.utility.dateGet(cart.StepDate);
33144                                cart.EstDelivery = lib3p_helper.utility.dateGet(cart.EstDelivery);
33145                                cart.DeliveriedDate = lib3p_helper.utility.dateGet(cart.DeliveriedDate);
33146                                lib3p.pageOrderHistoryDetail.DoiTrangThai(cart);
33147                                if (lib3p_helper.utility.hasListValue(cart.CartDetails)) {
33148                                    var html = '';
33149                                    if (lib3p_helper.utility.hasListValue(cart.CartDetails)) {
33150                                        cart.TotalItemQuantity = 0;
33151                                        cart.TotalItemQuantityChoose = 0;
33152                                        cart.CartDetails.forEach(function (c, cidx) {
33153                                            if (c.OrderQuantity > 0) {
33154                                                cart.TotalItemQuantity += c.OrderQuantity;
33155                                                cart.TotalItemQuantityChoose += c.OrderQuantity;
33156
33157                                                html += '<div class="product">';
33158                                                html += '<div class="name"><div class="image"><a href="' + c.Alias + '"><img src="' + c.ImageSetting + '" /></a></div><div class="text s14 cl-gregray900 regular400"><a href="' + c.Alias + '">' + c.ProductName + '</a><br/>' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</div></div>';
33159                                                html += '<div class="soluong s14 cl-gregray900 medium500">' + c.OrderQuantity + '</div>';
33160                                                html += '<div class="thanhtien s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatMoney(c.OrderQuantity * c.UnitPrice) + 'đ</div>';
33161                                                html += '</div>';
33162
33163                                                if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
33164                                                    var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID == c.Code; });
33165                                                    if (lib3p_helper.utility.hasListValue(lstGift)) {
33166                                                        html += '<div class="product-gift">';
33167                                                        html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" class="s14 cl-gregray900 medium500" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Quà tặng kèm sản phẩm</button></div>';
33168                                                        html += '<div class="product-gift-data sl-gregray200">';
33169                                                        lstGift.forEach(function (g) {
33170                                                            html += '<div class="dong">';
33171                                                            html += '<div class="name"><div class="image"><img src="' + g.ImageThumb + '" /></div><div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div></div>';
33172                                                            html += '<div class="soluong s14 cl-gregray900 medium500">' + g.Quantity + '</div>';
33173                                                            html += '<div class="thanhtien"></div>';
33174                                                            html += '</div>';
33175                                                        });
33176                                                        html += '</div>';
33177                                                        html += '</div>';
33178                                                    }
33179                                                }
33180                                            }
33181                                        });
33182                                        if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
33183                                            var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID > 0 != true; });
33184                                            if (lib3p_helper.utility.hasListValue(lstGift)) {
33185                                                html += '<div class="product-gift hienthi"><div class="line b-gregray200">&nbsp;</div>';
33186                                                html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" class="s14 cl-gregray900 medium500" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Quà tặng kèm đơn hàng</button></div>';
33187                                                html += '<div class="product-gift-data sl-gregray200">';
33188                                                lstGift.forEach(function (g) {
33189                                                    html += '<div class="dong">';
33190                                                    html += '<div class="name"><div class="image"><img src="' + g.ImageThumb + '" /></div><div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div></div>';
33191                                                    html += '<div class="soluong s14 cl-gregray900 medium500">' + g.Quantity + '</div>';
33192                                                    html += '<div class="thanhtien"></div>';
33193                                                    html += '</div>';
33194                                                });
33195                                                html += '</div>';
33196                                                html += '</div>';
33197                                            }
33198                                        }
33199                                        if (cart.CartDetails.length == 1) {
33200                                            jQuery('.page-order-history-detail .san-pham.anchitiet').removeClass('anchitiet');
33201                                            jQuery('.page-order-history-detail .san-pham .xem-them').hide();
33202                                            jQuery('.mobile-order-history-detail .san-pham.anchitiet').removeClass('anchitiet');
33203                                            jQuery('.mobile-order-history-detail .san-pham .xem-them').hide();
33204                                        }
33205                                    }
33206                                    jQuery('.page-order-history-detail .san-pham .chi-tiet').html(html);
33207                                    html = '';
33208                                    if (lib3p_helper.utility.hasListValue(cart.CartDetails)) {
33209                                        cart.TotalItemQuantity = 0;
33210                                        cart.TotalItemQuantityChoose = 0;
33211                                        cart.CartDetails.forEach(function (c, cidx) {
33212                                            if (c.OrderQuantity > 0) {
33213                                                cart.TotalItemQuantity += c.OrderQuantity;
33214                                                cart.TotalItemQuantityChoose += c.OrderQuantity;
33215
33216                                                html += '<div class="product">';
33217                                                html += '<div class="image"><a href="' + c.Alias + '"><img src="' + c.ImageSetting + '" /></a></div>';
33218                                                html += '<div class="name">';
33219                                                html += '<div class="text s14 cl-gregray900 regular400"><a href="' + c.Alias + '">' + c.ProductName + '</a></div>';
33220                                                html += '<div class="text-2"><div class="s14 cl-gregray900 sibold600">' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</div><div class="soluong s14 cl-gregray900 medium500">x&nbsp;' + c.OrderQuantity + '</div></div>';
33221                                                html += '</div>';
33222                                                html += '</div>';
33223
33224                                                if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
33225                                                    var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID == c.Code; });
33226                                                    if (lib3p_helper.utility.hasListValue(lstGift)) {
33227                                                        html += '<div class="product-gift">';
33228                                                        html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" class="s14 cl-gregray900 medium500" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Quà tặng kèm sản phẩm</button></div>';
33229                                                        html += '<div class="product-gift-data sl-gregray200">';
33230                                                        lstGift.forEach(function (g) {
33231                                                            html += '<div class="dong">';
33232                                                            html += '<div class="image"><img src="' + g.ImageThumb + '" /></div>';
33233                                                            html += '<div class="name">';
33234                                                            html += '<div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div>';
33235                                                            html += '<div class="text-2"><div class="s14 cl-gregray900 sibold600"></div><div class="soluong s14 cl-gregray900 medium500">x&nbsp;' + g.Quantity + '</div></div>';
33236                                                            html += '</div>';
33237                                                            html += '</div>';
33238                                                        });
33239                                                        html += '</div>';
33240                                                        html += '</div>';
33241                                                    }
33242                                                }
33243                                            }
33244                                        });
33245                                        if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
33246                                            var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID > 0 != true; });
33247                                            if (lib3p_helper.utility.hasListValue(lstGift)) {
33248                                                html += '<div class="product-gift hienthi"><div class="line b-gregray200">&nbsp;</div>';
33249                                                html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" class="s14 cl-gregray900 medium500" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Quà tặng kèm đơn hàng</button></div>';
33250                                                html += '<div class="product-gift-data sl-gregray200">';
33251                                                lstGift.forEach(function (g) {
33252                                                    html += '<div class="dong">';
33253                                                    html += '<div class="image"><img src="' + g.ImageThumb + '" /></div>';
33254                                                    html += '<div class="name">';
33255                                                    html += '<div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div>';
33256                                                    html += '<div class="text-2"><div class="s14 cl-gregray900 sibold600"></div><div class="soluong s14 cl-gregray900 medium500">x&nbsp;' + g.Quantity + '</div></div>';
33257                                                    html += '</div>';
33258                                                    html += '</div>';
33259                                                });
33260                                                html += '</div>';
33261                                                html += '</div>';
33262                                            }
33263                                        }
33264                                    }
33265                                    jQuery('.mobile-order-history-detail .san-pham .chi-tiet').html(html);
33266
33267                                    jQuery('.page-order-history-detail .Order
33267No').html(cart.OrderNo);
33268                                    jQuery('.page-order-history-detail .EstDelivery').html(lib3p_helper.utility.formatDateDDMMYYYYHHmm(cart.EstDelivery));
33269                                    jQuery('.page-order-history-detail .ReceivedBy').html(cart.ReceivedBy);
33270                                    jQuery('.page-order-history-detail .Address').html(cart.Address);
33271                                    jQuery('.page-order-history-detail .Cellphone').html(cart.Cellphone);
33272                                    jQuery('.page-order-history-detail .TransportName').html(cart.TransportName);
33273                                    jQuery('.page-order-history-detail .PaymentMethod').html(cart.PaymentMethod);
33274                                    jQuery('.page-order-history-detail .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
33275                                    jQuery('.page-order-history-detail .TotalItemQuantityChoose').html('(' + cart.TotalItemQuantityChoose + ' sản phẩm)');
33276
33277                                    jQuery('.mobile-order-history-detail .OrderNo').html(cart.OrderNo);
33278                                    jQuery('.mobile-order-history-detail .EstDelivery').html(lib3p_helper.utility.formatDateDDMMYYYYHHmm(cart.EstDelivery));
33279                                    jQuery('.mobile-order-history-detail .ReceivedBy').html(cart.ReceivedBy);
33280                                    jQuery('.mobile-order-history-detail .Address').html(cart.Address);
33281                                    jQuery('.mobile-order-history-detail .Cellphone').html(cart.Cellphone);
33282                                    jQuery('.mobile-order-history-detail .TransportName').html(cart.TransportName);
33283                                    jQuery('.mobile-order-history-detail .PaymentMethod').html(cart.PaymentMethod);
33284                                    jQuery('.mobile-order-history-detail .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
33285                                    jQuery('.mobile-order-history-detail .TotalItemQuantityChoose').html('(' + cart.TotalItemQuantityChoose + ' sản phẩm)');
33286
33287                                    if (cart.IsVAT == true) {
33288                                        if (!lib3p_helper.utility.hasValueString(cart.VATCode)) cart.VATCode = "";
33289                                        if (!lib3p_helper.utility.hasValueString(cart.VATDVQHNS)) cart.VATDVQHNS = "";
33290                                        if (!lib3p_helper.utility.hasValueString(cart.VATIdentityNo)) cart.VATIdentityNo = "";
33291                                        if (!lib3p_helper.utility.hasValueString(cart.VATPassportNo)) cart.VATPassportNo = "";
33292                                        if (!lib3p_helper.utility.hasValueString(cart.VATBuyerName)) cart.VATBuyerName = "";
33293                                        if (!lib3p_helper.utility.hasValueString(cart.VATAddress)) cart.VATAddress = "";
33294                                        if (!lib3p_helper.utility.hasValueString(cart.VATEmail)) cart.VATEmail = "";
33295                                        if (!lib3p_helper.utility.hasValueString(cart.VATPhone)) cart.VATPhone = "";
33296                                        if (!lib3p_helper.utility.hasValueString(cart.VATContactName)) cart.VATContactName = "";
33297
33298                                        jQuery('.page-order-history-detail .vat .chon-1').hide();
33299                                        jQuery('.page-order-history-detail .vat .chon-2').hide();
33300                                        jQuery('.page-order-history-detail .vat .chon-3').hide();
33301                                        jQuery('.mobile-order-history-detail .vat .chon-1').hide();
33302                                        jQuery('.mobile-order-history-detail .vat .chon-2').hide();
33303                                        jQuery('.mobile-order-history-detail .vat .chon-3').hide();
33304                                        if (cart.VATType > 0) {
33305                                            jQuery('.page-order-history-detail .vat .chon-' + cart.VATType).show();
33306                                            jQuery('.mobile-order-history-detail .vat .chon-' + cart.VATType).show();
33307                                        }
33308                                        jQuery('.page-order-history-detail .don-hang .tong-ket .VATCode').html('Mã số thuế: ' + cart.VATCode);
33309                                        jQuery('.page-order-history-detail .don-hang .tong-ket .VATDVQHNS').html('Mã ĐVQHNS: ' + cart.VATDVQHNS);
33310                                        jQuery('.page-order-history-detail .don-hang .tong-ket .VATIdentityNo').html('Số định danh: ' + cart.VATIdentityNo);
33311                                        jQuery('.page-order-history-detail .don-hang .tong-ket .VATPassportNo').html('Số hộ chiếu: ' + cart.VATPassportNo);
33312                                        jQuery('.page-order-history-detail .don-hang .tong-ket .VATBuyerName').html('Tên người mua hàng: ' + cart.VATBuyerName);
33313                                        jQuery('.page-order-history-detail .don-hang .tong-ket .VATCompany').html('Tên Công ty/Tổ chức/HKD: ' + cart.VATCompany);
33314                                        jQuery('.page-order-history-detail .don-hang .tong-ket .VATAddress').html('Địa chỉ: ' + cart.VATAddress);
33315                                        jQuery('.page-order-history-detail .don-hang .tong-ket .VATEmail').html('Email nhận hóa đơn: ' + cart.VATEmail);
33316                                        jQuery('.page-order-history-detail .don-hang .tong-ket .VATPhone').html('Số điện thoại liên hệ: ' + cart.VATPhone);
33317                                        jQuery('.page-order-history-detail .don-hang .tong-ket .VATContactName').html('Tên người liên hệ: ' + cart.VATContactName);
33318
33319                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .VATCode').html('Mã số thuế: ' + cart.VATCode);
33320                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .VATDVQHNS').html('Mã ĐVQHNS: ' + cart.VATDVQHNS);
33321                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .VATIdentityNo').html('Số định danh: ' + cart.VATIdentityNo);
33322                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .VATPassportNo').html('Số hộ chiếu: ' + cart.VATPassportNo);
33323                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .VATBuyerName').html('Tên người mua hàng: ' + cart.VATBuyerName);
33324                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .VATCompany').html('Tên Công ty/Tổ chức/HKD: ' + cart.VATCompany);
33325                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .VATAddress').html('Địa chỉ: ' + cart.VATAddress);
33326                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .VATEmail').html('Email nhận hóa đơn: ' + cart.VATEmail);
33327                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .VATPhone').html('Số điện thoại liên hệ: ' + cart.VATPhone);
33328                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .VATContactName').html('Tên người liên hệ: ' + cart.VATContactName);
33329                                    }
33330                                    else {
33331                                        jQuery('.page-order-history-detail .don-hang .tong-ket .vat').html('');
33332                                        if (lib3p_helper.utility.hasValueString(cart.RemarkClient)) {
33333                                            jQuery('.page-order-history-detail .don-hang .tong-ket .vat').hide();
33334                                            jQuery('.page-order-history-detail .don-hang .tong-ket .cot-trai .ghichu').addClass('first');
33335                                        }
33336                                        else {
33337                                            jQuery('.page-order-history-detail .don-hang .tong-ket .vat').css('opacity', '0');
33338                                        }
33339                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .vat').html('');
33340                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .vat').hide();
33341                                    }
33342                                    if (lib3p_helper.utility.hasValueString(cart.RemarkClient)) {
33343                                        jQuery('.page-order-history-detail .don-hang .tong-ket .RemarkClient').html(cart.RemarkClient);
33344                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .RemarkClient').html(cart.RemarkClient);
33345                                    }
33346                                    else {
33347                                        jQuery('.page-order-history-detail .don-hang .tong-ket .ghichu').html('');
33348                                        jQuery('.page-order-history-detail .don-hang .tong-ket .ghichu').hide();
33349                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .ghichu').html('');
33350                                        jQuery('.mobile-order-history-detail .don-hang .tong-ket .ghichu').hide();
33351                                    }
33352
33353                                    var TotalSub = 0;
33354                                    var TotalWithShip = 0;
33355                                    jQuery('.page-order-history-detail .TotalAmountShipping-sub').hide();
33356                                    jQuery('.mobile-order-history-detail .TotalAmountShipping-sub').hide();
33357                                    if (cart.TotalAmount > 0 && cart.ShippingFee > 0) {
33358                                        var temp = cart.TotalAmount + cart.ShippingFee;
33359                                        if (cart.ShippingDiscount > 0) {
33360                                            temp -= cart.ShippingDiscount;
33361                                        }
33362                                        TotalWithShip = temp;
33363                                        jQuery('.page-order-history-detail .TotalAmountShipping').html(lib3p_helper.utility.formatMoney(temp) + 'đ');
33364                                        jQuery('.mobile-order-history-detail .TotalAmountShipping').html(lib3p_helper.utility.formatMoney(temp) + 'đ');
33365                                        jQuery('.page-order-history-detail .TotalAmountShipping-sub').show();
33366                                        jQuery('.mobile-order-history-detail .TotalAmountShipping-sub').show();
33367                                    }
33368
33369                                    jQuery('.page-order-history-detail .don-hang .PolicyMembership-sub').hide();
33370                                    jQuery('.page-order-history-detail .don-hang .TotalAmountKHTT-sub').hide();
33371                                    jQuery('.mobile-order-history-detail .don-hang .PolicyMembership-sub').hide();
33372                                    jQuery('.mobile-order-history-detail .don-hang .TotalAmountKHTT-sub').hide();
33373                                    if (cart.TotalAmount > 0 && cart.PolicyMembership > 0) {
33374                                        jQuery('.page-order-history-detail .don-hang .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(cart.PolicyMembership) + 'đ');
33375                                        jQuery('.page-order-history-detail .don-hang .PolicyMembership-sub').show();
33376                                        jQuery('.page-order-history-detail .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(TotalWithShip - cart.PolicyMembership - cart.CouponOrder) + 'đ');
33377                                        jQuery('.page-order-history-detail .TotalAmountKHTT-sub').show();
33378                                        jQuery('.mobile-order-history-detail .don-hang .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(cart.PolicyMembership) + 'đ');
33379                                        jQuery('.mobile-order-history-detail .don-hang .PolicyMembership-sub').show();
33380                                        jQuery('.mobile-order-history-detail .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(TotalWithShip - cart.PolicyMembership - cart.CouponOrder) + 'đ');
33381                                        jQuery('.mobile-order-history-detail .TotalAmountKHTT-sub').show();
33382                                        TotalSub += cart.PolicyMembership;
33383                                    }
33384                                    jQuery('.page-order-history-detail .CouponOrder-sub').hide();
33385                                    jQuery('.mobile-order-history-detail .CouponOrder-sub').hide();
33386                                    if (cart.CouponOrder > 0) {
33387                                        jQuery('.page-order-history-detail .don-hang .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(cart.CouponOrder) + 'đ');
33388                                        jQuery('.page-order-history-detail .don-hang .CouponOrder-sub').show();
33389                                        jQuery('.mobile-order-history-detail .don-hang .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(cart.CouponOrder) + 'đ');
33390                                        jQuery('.mobile-order-history-detail .don-hang .CouponOrder-sub').show();
33391                                        TotalSub += cart.CouponOrder;
33392                                    }
33393                                    jQuery('.page-order-history-detail .don-hang .TotalAmount').html(lib3p_helper.utility.formatMoney(cart.TotalAmount) + 'đ');
33394                                    jQuery('.page-order-history-detail .don-hang .CouponPaid-sub').hide();
33395                                    jQuery('.mobile-order-history-detail .don-hang .TotalAmount').html(lib3p_helper.utility.formatMoney(cart.TotalAmount) + 'đ');
33396                                    jQuery('.mobile-order-history-detail .don-hang .CouponPaid-sub').hide();
33397                                    if (cart.CouponPaid > 0) {
33398                                        jQuery('.page-order-history-detail .don-hang .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(cart.CouponPaid) + 'đ');
33399                                        jQuery('.page-order-history-detail .don-hang .CouponPaid-sub').show();
33400                                        jQuery('.mobile-order-history-detail .don-hang .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(cart.CouponPaid) + 'đ');
33401                                        jQuery('.mobile-order-history-detail .don-hang .CouponPaid-sub').show();
33402                                        TotalSub += cart.CouponPaid;
33403                                    }
33404                                    jQuery('.page-order-history-detail .don-hang .ShippingFee').html('chưa xác định');
33405                                    jQuery('.mobile-order-history-detail .don-hang .ShippingFee').html('chưa xác định');
33406                                    if (cart.ShippingFee > 0) {
33407                                        jQuery('.page-order-history-detail .don-hang .ShippingFee').html(lib3p_helper.utility.formatMoney(cart.ShippingFee) + 'đ');
33408                                        jQuery('.mobile-order-history-detail .don-hang .ShippingFee').html(lib3p_helper.utility.formatMoney(cart.ShippingFee) + 'đ');
33409                                    }
33410                                    jQuery('.page-order-history-detail .don-hang .ShippingDiscount-sub').hide();
33411                                    jQuery('.mobile-order-history-detail .don-hang .ShippingDiscount-sub').hide();
33412                                    if (cart.ShippingDiscount > 0) {
33413                                        jQuery('.page-order-history-detail .don-hang .ShippingDiscount').html(lib3p_helper.utility.formatMoney('-' + cart.ShippingDiscount) + 'đ');
33414                                        jQuery('.page-order-history-detail .don-hang .ShippingDiscount-sub').show();
33415                                        jQuery('.mobile-order-hi
33415story-detail .don-hang .ShippingDiscount').html(lib3p_helper.utility.formatMoney('-' + cart.ShippingDiscount) + 'đ');
33416                                        jQuery('.mobile-order-history-detail .don-hang .ShippingDiscount-sub').show();
33417                                        TotalSub += cart.ShippingDiscount;
33418                                    }
33419                                    if (TotalSub > 0) {
33420                                        jQuery('.page-order-history-detail .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
33421                                        jQuery('.mobile-order-history-detail .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
33422                                    }
33423                                    else {
33424                                        jQuery('.page-order-history-detail .TotalSub').html('');
33425                                        jQuery('.mobile-order-history-detail .TotalSub').html('');
33426                                    }
33427                                    jQuery('.page-order-history-detail .don-hang .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
33428                                    jQuery('.mobile-order-history-detail .don-hang .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
33429
33430                                }
33431
33432                            }
33433                        }, function (err) {
33434                            throw err;
33435                        });
33436                    }
33437                }, window.pars3p.timeAsync);
33438            });
33439        },
33440        DoiTrangThai: function (cart) {
33441            jQuery('.page-order-history-detail .OrderNo').html(cart.OrderNo);
33442            jQuery('.mobile-order-history-detail .OrderNo').html(cart.OrderNo);
33443            jQuery('.page-order-history-detail .trang-thai .noi-dung').each(function () {
33444                var el = this;
33445                var status = 6;
33446                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33447                status = 7;
33448                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33449                status = 10;
33450                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33451                status = 11;
33452                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33453                status = 12;
33454                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33455                if (cart.StatusID < status) {
33456                    if (lib3p_helper.utility.hasValue(cart.EstDelivery)) {
33457                        var dt = new Date(cart.EstDelivery);
33458                        jQuery(el).find('.txt-' + status + ' .ngay').html(lib3p_helper.utility.formatDateDDMMYYYY(dt));
33459                    }
33460                }
33461            });
33462            jQuery('.mobile-order-history-detail .trang-thai .noi-dung').each(function () {
33463                var el = this;
33464                var status = 6;
33465                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33466                status = 7;
33467                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33468                status = 10;
33469                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33470                status = 11;
33471                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33472                status = 12;
33473                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33474                if (cart.StatusID < status) {
33475                    if (lib3p_helper.utility.hasValue(cart.EstDelivery)) {
33476                        var dt = new Date(cart.EstDelivery);
33477                        jQuery(el).find('.txt-' + status + ' .ngay').html(lib3p_helper.utility.formatDateDDMMYYYY(dt));
33478                    }
33479                }
33480            });
33481            if (cart.StatusID == 12) {
33482                jQuery('.page-order-history-detail .trang-thai .noi-dung .txt-12 .chuoi').html('Hoàn tất<br/>giao hàng');
33483                jQuery('.page-order-history-detail .trang-thai .noi-dung .txt-12 .ngay').html(lib3p_helper.utility.formatDateDDMMYYYY(cart.DeliveriedDate));
33484                jQuery('.mobile-order-history-detail .trang-thai .noi-dung .txt-12 .chuoi').html('Hoàn tất giao hàng');
33485                jQuery('.mobile-order-history-detail .trang-thai .noi-dung .txt-12 .ngay').html(lib3p_helper.utility.formatDateDDMMYYYY(cart.DeliveriedDate));
33486            }
33487        },
33488        DoiTrangThai_Child: function (el, cart, status) {
33489            if (cart.StatusID > status) {
33490                jQuery(el).find('.step-' + status).addClass('cho
33490ose');
33491                jQuery(el).find('.step-' + status).next().addClass('choose');
33492            }
33493            else if (cart.StatusID == status) {
33494                jQuery(el).find('.step-' + status).addClass('active');
33495            }
33496            if (lib3p_helper.utility.hasListValue(cart.ListStatus)) {
33497                var find = cart.ListStatus.find(function (o) { return o.StatusID == status; });
33498                if (lib3p_helper.utility.hasValue(find) && lib3p_helper.utility.hasValue(find.StatusDate)) {
33499                    var dt = new Date(find.StatusDate);
33500                    jQuery(el).find('.txt-' + status + ' .ngay').html(lib3p_helper.utility.formatDateDDMMYYYY(dt));
33501                }
33502            }
33503        },
33504    },
33505    pageOrderHistoryDetail_old: {
33506        Data: {
33507            id: '',
33508        },
33509        init: function () {
33510            var query = jQuery('.page-order-history-detail');
33511            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33512                lib3p.pageOrderHistoryDetail.Data.id = jQuery(query[0]).data('id');
33513                lib3p.pageOrderHistoryDetail.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
33514            }
33515        },
33516        init_async: function () {
33517            return new Promise(function (resolve, reject) {
33518                setTimeout(function () {
33519                    if (lib3p.header.MustLogin()) {
33520                        lib3p.header.UserManager_Load();
33521
33522                        //window.pars3p.api.auth.OrderHistory_Details
33523                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Tracking_Order, { OrderNo: lib3p.pageOrderHistoryDetail.Data.id }, function (res) {
33524                            if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn)) {
33525                                var cart = res.ObjectReturn;
33526                                lib3p.pageOrderHistoryDetail.DoiTrangThai(cart);
33527                                if (lib3p_helper.utility.hasListValue(cart.CartDetails)) {
33528                                    if (lib3p_helper.utility.hasValueString(cart.ReceivedBy)) {
33529                                        jQuery('.page-order-history-detail .ReceivedBy').html(cart.ReceivedBy);
33530                                        jQuery('.mobile-order-history-detail .ReceivedBy').html(cart.ReceivedBy);
33531                                    }
33532                                    if (lib3p_helper.utility.hasValueString(cart.FullAddress)) {
33533                                        jQuery('.page-order-history-detail .FullAddress').html(cart.FullAddress);
33534                                        jQuery('.mobile-order-history-detail .FullAddress').html(cart.FullAddress);
33535                                    }
33536                                    if (lib3p_helper.utility.hasValueString(cart.Cellphone)) {
33537                                        jQuery('.page-order-history-detail .Cellphone').html('Điện thoại: ' + cart.Cellphone);
33538                                        jQuery('.mobile-order-history-detail .Cellphone').html('Điện thoại: ' + cart.Cellphone);
33539                                    }
33540                                    if (cart.IsHachi24 == true) {
33541                                        jQuery('.page-order-history-detail .IsHachi24').html('Giao hàng 3h');
33542                                        jQuery('.mobile-order-history-detail .IsHachi24').html('Giao hàng 3h');
33543                                    }
33544                                    else {
33545                                        jQuery('.page-order-history-detail .IsHachi24').html('Giao hàng tiêu chuẩn');
33546                                        jQuery('.mobile-order-history-detail .IsHachi24').html('Giao hàng tiêu chuẩn');
33547                                    }
33548                                    if (lib3p_helper.utility.hasValueString(cart.PaymentMethod)) {
33549                                        jQuery('.page-order-history-detail .PaymentMethod').html(cart.PaymentMethod);
33550                                        jQuery('.mobile-order-history-detail .PaymentMethod').html(cart.PaymentMethod);
33551                                    }
33552                                    if (lib3p_helper.utility.hasValue(cart.EstDelivery)) {
33553                                        var dt = new Date(cart.EstDelivery);
33554                                        jQuery('.page-order-history-detail .EstDelivery').html('Dự kiến giao hàng ngày ' + lib3p_helper.utility.formatDateDDMMYYYY(dt));
33555                                        jQuery('.mobile-order-history-detail .EstDelivery').html('Dự kiến giao hàng ngày ' + lib3p_helper.utility.formatDateDDMMYYYY(dt));
33556                                    }
33557                                    if (cart.Payment > 0) {
33558                                        jQuery('.page-order-history-detail .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
33559                                        jQuery('.mobile-order-history-detail .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
33560                                    }
33561                                    var TotalSP = 0;
33562                                    var carthtml = "";
33563                                    cart.CartDetails.forEach(function (c, cidx) {
33564                                        TotalSP += c.OrderQuantity;
33565                                        carthtml += '<div class="dong">';
33566                                        carthtml += '<div class="hinh"><img src="' + c.ImageSetting + '" /></div>';
33567
33568                                        carthtml += '<div class="ten-sp">';
33569                                        carthtml += '<div class="s14 cl-gregray900 regular400">' + c.ProductName + '</div>';
33570                                        carthtml += '<div class="s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</div>';
33571                                        carthtml += '</div>';
33572
33573                                        carthtml += '<div class="soluong cl-gregray900 regular400">' + c.OrderQuantity + '</div>';
33574                                        carthtml += '<div class="thanhtien cl-gregray600 sibold600">' + lib3p_helper.utility.formatMoney(c.UnitPrice * c.OrderQuantity) + 'đ</div>';
33575
33576                                        carthtml += '</div>';
33577                                    });
33578                                    jQuery('.page-order-history-detail .chi-tiet-don-hang .danhsach').html(carthtml);
33579                                    jQuery('.page-order-history-detail .TotalSP').html('(' + TotalSP + ' sản phẩm)');
33580                                    carthtml = "";
33581                                    cart.CartDetails.forEach(function (c, cidx) {
33582                                        //TotalSP += c.OrderQuantity;
33583                                        carthtml += '<div class="dong">';
33584                                        carthtml += '<div class="hinh"><img src="' + c.ImageSetting + '" /></div>';
33585
33586                                        carthtml += '<div class="ten-sp">';
33587                                        carthtml += '<div class="s14 cl-gregray900 regular400">' + c.ProductName + '</div>';
33588                                        carthtml += '<div class="gia">';
33589                                        carthtml += '<div class="s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</div>';
33590                                        carthtml += '<div class="soluong cl-gregray900 regular400">x&nbsp;' + c.OrderQuantity + '</div>';
33591                                        carthtml += '</div>';
33592                                        carthtml += '</div>';
33593
33594                                        carthtml += '</div>';
33595                                    });
33596                                    jQuery('.mobile-order-history-detail .chi-tiet-don-hang .danhsach').html(carthtml);
33597                                    jQuery('.mobile-order-history-detail .TotalSP').html('(' + TotalSP + ' sản phẩm)');
33598
33599                                    if (cart.IsVAT == true) {
33600                                        jQuery('.page-order-history-detail .vat .VATCompany').html(cart.VATCompany);
33601                                        jQuery('.page-order-history-detail .vat .VATCode').html('Mã số thuế: ' + cart.VATCode);
33602                                        jQuery('.page-order-history-detail .vat .VATAddress').html(cart.VATAddress);
33603                                        jQuery('.page-order-history-detail .vat .VATEmail').html('Email: ' + cart.VATEmail);
33604                                        jQuery('.mobile-order-history-detail .vat .VATCompany').html(cart.VATCompany);
33605                                        jQuery('.mobile-order-history-detail .vat .VATCode').html('Mã số thuế: ' + cart.VATCode);
33606                                        jQuery('.mobile-order-history-detail .vat .VATAddress').html(cart.VATAddress);
33607                                        jQuery('.mobile-order-history-detail .vat .VATEmail').html('Email: ' + cart.VATEmail);
33608                                    }
33609                                    else {
33610                                        jQuery('.page-order-history-detail .vat').html('');
33611                                        jQuery('.page-order-history-detail .vat').css('opacity', '0');
33612                                        jQuery('.mobile-order-history-detail .vat').html('');
33613                                        jQuery('.mobile-order-history-detail .vat').hide();
33614                                    }
33615
33616                                    var TotalSub = 0;
33617                                    cart.CouponOrder = cart.CouponOrder > 0 ? cart.CouponOrder : 0;
33618                                    cart.PolicyMembership = cart.PolicyMembership > 0 ? cart.PolicyMembership : 0;
33619                                    jQuery('.page-order-history-detail .PolicyMembership-sub').hide();
33620                                    jQuery('.page-order-history-detail .TotalAmountKHTT-sub').hide();
33621                                    jQuery('.mobile-order-history-detail .PolicyMembership-sub').hide();
33622                                    jQuery('.mobile-order-history-detail .TotalAmountKHTT-sub').hide();
33623                                    if (cart.TotalAmount > 0 && cart.PolicyMembership > 0) {
33624                                        jQuery('.page-order-history-detail .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(cart.PolicyMembership) + 'đ');
33625                                        jQuery('.page-order-history-detail .PolicyMembership-sub').show();
33626                                        jQuery('.page-order-history-detail .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(cart.TotalAmount - cart.PolicyMembership - cart.CouponOrder) + 'đ');
33627                                        jQuery('.page-order-history-detail .TotalAmountKHTT-sub').show();
33628                                        jQuery('.mobile-order-history-detail .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(cart.PolicyMembership) + 'đ');
33629                                        jQuery('.mobile-order-history-detail .PolicyMembership-sub').show();
33630                                        jQuery('.mobile-order-history-detail .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(cart.TotalAmount - cart.PolicyMembership - cart.CouponOrder) + 'đ');
33631                                        jQuery('.mobile-order-history-detail .TotalAmountKHTT-sub').show();
33632                                        TotalSub += cart.PolicyMembership;
33633                                    }
33634                                    jQuery('.page-order-history-detail .CouponOrder-sub').hide();
33635                                    jQuery('.mobile-order-history-detail .CouponOrder-sub').hide();
33636                                    if (cart.CouponOrder > 0) {
33637                                        jQuery('.page-order-history-detail .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(cart.CouponOrder) + 'đ');
33638                                        jQuery('.page-order-history-detail .CouponOrder-sub').show();
33639                                        jQuery('.mobile-order-history-detail .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(cart.CouponOrder) + 'đ');
33640                                        jQuery('.mobile-order-history-detail .CouponOrder-sub').show();
33641                                        TotalSub += cart.CouponOrder;
33642                                    }
33643                                    jQuery('.page-order-history-detail .TotalAmount').html(lib3p_helper.utility.formatMoney(cart.TotalAmount) + 'đ');
33644                                    jQuery('.page-order-history-detail .CouponPaid-sub').hide();
33645                                    jQuery('.mobile-order-history-detail .TotalAmount').html(lib3p_helper.utility.formatMoney(cart.TotalAmount) + 'đ');
33646                                    jQuery('.mobile-order-history-detail .CouponPaid-sub').hide();
33647                                    if (cart.CouponPaid > 0) {
33648                                        jQuery('.page-order-history-detail .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(cart.CouponPaid) + 'đ');
33649                                        jQuery('.page-order-history-detail .CouponPaid-sub').show();
33650                                        jQuery('.mobile-order-history-detail .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(cart.CouponPaid) + 'đ');
33651                                        jQuery('.mobile-order-history-detail .CouponPaid-sub').show();
33652                                        TotalSub += cart.CouponPaid;
33653                                    }
33654                                    jQuery('.page-order-history-detail .ShippingFee').html('chưa xác định');
33655                                    jQuery('.mobile-order-history-detail .ShippingFee').html('chưa xác định');
33656                                    if (cart.ShippingFee > 0) {
33657                                        jQuery('.page-order-history-detail .ShippingFee').html(lib3p_helper.utility.formatMoney(cart.ShippingFee) + 'đ');
33658                                        jQuery('.mobile-order-history-detail .ShippingFee').html(lib3p_helper.utility.formatMoney(cart.ShippingFee) + 'đ');
33659                                    }
33660                                    jQuery('.page-order-history-detail .ShippingDiscount-sub').hide();
33661                                    jQuery('.mobile-order-history-detail .ShippingDiscount-sub').hide();
33662                                    if (cart.ShippingDiscount > 0) {
33663                                        jQuery('.page-order-history-detail .ShippingDiscount').html('-' + lib3p_helper.utility.formatMoney(cart.ShippingDiscount) + 'đ');
33664                                        jQuery('.page-order-history-detail .ShippingDiscount-sub').show();
33665                                        jQuery('.mobile-order-history-detail .ShippingDiscount').html('-' + lib3p_helper.utility.formatMoney(cart.ShippingDiscount) + 'đ');
33666                                        jQuery('.mobile-order-history-detail .ShippingDiscount-sub').show();
33667                                        TotalSub += cart.ShippingDiscount;
33668                                    }
33669                                    if (TotalSub > 0) {
33670                                        jQuery('.page-order-history-detail .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
33671                                        jQuery('.mobile-order-history-detail .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
33672                                    }
33673                                    else {
33674                                        jQuery('.page-order-history-detail .TotalSub').html('');
33675                                        jQuery('.mobile-order-history-detail .TotalSub').html('');
33676                                    }
33677
33678                                    jQuery('.page-order-history-detail .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
33679                                    jQuery('.page-order-history-detail .TotalItemQuantityChoose').html('(' + TotalSP + ' sản phẩm)');
33680                                    jQuery('.mobile-order-history-detail .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
33681                                    jQuery('.mobile-order-history-detail .TotalItemQuantityChoose').html('(' + TotalSP + ' sản phẩm)');
33682
33683                                }
33684
33685                            }
33686                        }, function (err) {
33687                            throw err;
33688                        });
33689                    }
33690                }, window.pars3p.timeAsync);
33691            });
33692        },
33693        DoiTrangThai: function (cart) {
33694            jQuery('.page-order-history-detail .OrderNo').html(cart.OrderNo);
33695            jQuery('.mobile-order-history-detail .OrderNo').html(cart.OrderNo);
33696            jQuery('.page-order-history-detail .trang-thai .noi-dung').each(function () {
33697                var el = this;
33698                var status = 6;
33699                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33700                status = 7;
33701                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33702                status = 10;
33703                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33704                status = 11;
33705                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33706                status = 12;
33707                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33708                if (cart.StatusID < status) {
33709                    if (lib3p_helper.utility.hasValue(cart.EstDelivery)) {
33710                        var dt = new Date(cart.EstDelivery);
33711                        jQuery(el).find('.txt-' + status + ' .ngay').html(lib3p_helper.utility.formatDateDDMMYYYY(dt));
33712                    }
33713                }
33714            });
33715            jQuery('.mobile-order-history-detail .trang-thai .noi-dung').each(function () {
33716                var el = this;
33717                var status = 6;
33718                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33719                status = 7;
33720                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33721                status = 10;
33722                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33723                status = 11;
33724                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33725                status = 12;
33726                lib3p.pageOrderHistoryDetail.DoiTrangThai_Child(el, cart, status);
33727                if (cart.StatusID < status) {
33728                    if (lib3p_helper.utility.hasValue(cart.EstDelivery)) {
33729                        var dt = new Date(cart.EstDelivery);
33730                        jQuery(el).find('.txt-' + status + ' .ngay').html(lib3p_helper.utility.formatDateDDMMYYYY(dt));
33731                    }
33732                }
33733            });
33734        },
33735        DoiTrangThai_Child: function (el, cart, status) {
33736            if (cart.StatusID > status) {
33737                jQuery(el).find('.step-' + status).addClass('choose');
33738                jQuery(el).find('.step-' + status).next().addClass('choose');
33739            }
33740            else if (cart.StatusID == status) {
33741                jQuery(el).find('.step-' + status).addClass('active');
33742            }
33743            if (lib3p_helper.utility.hasListValue(cart.ListStatus)) {
33744                var find = cart.ListStatus.find(function (o) { return o.StatusID == status; });
33745                if (lib3p_helper.utility.hasValue(find) && lib3p_helper.utility.hasValue(find.StatusDate)) {
33746                    var dt = new Date(find.StatusDate);
33747                    jQuery(el).find('.txt-' + status + ' .ngay').html(lib3p_helper.utility.formatDateDDMMYYYY(dt));
33748                }
33749            }
33750        },
33751    },
33752
33753    pageUserProfile: {
33754        init: function () {
33755            var query = jQuery('.page-user-profile');
33756            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33757                lib3p.pageUserProfile.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
33758            }
33759        },
33760        init_async: function () {
33761            return new Promise(function (resolve, reject) {
33762                setTimeout(function () {
33763                    if (lib3p.header.MustLogin()) {
33764                        lib3p.header.UserManager_Load();
33765
33766                        /* var query = jQuery('.page-user-profile .nhaplieu form.thong-tin .Birthday .DayBirth');
33767                        var query_m = jQuery('.mobile-user-profile .nhaplieu form.thong-tin .Birthday .DayBirth');
33768                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33769                            query.append('<option value="-1"></option>');
33770                            query_m.append('<option value="-1"></option>');
33771                            for (var i = 1; i <= 31; i++) {
33772                                query.append('<option value="' + i + '">' + i + '</option>');
33773                                query_m.append('<option value="' + i + '">' + i + '</option>');
33774                            }
33775                        }
33776                        query = jQuery('.page-user-profile .nhaplieu form.thong-tin .Birthday .MonthBirth');
33777                        query_m = jQuery('.mobile-user-profile .nhaplieu form.thong-tin .Birthday .MonthBirth');
33778                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33779                            query.append('<option value="-1"></option>');
33780                            query_m.append('<option value="-1"></option>');
33781                            for (var i = 1; i <= 12; i++) {
33782                                query.append('<option value="' + i + '">' + i + '</option>');
33783                                query_m.append('<option value="' + i + '">' + i + '</option>');
33784                            }
33785                        }
33786                        query = jQuery('.page-user-profile .nhaplieu form.thong-tin .Birthday .YearBirth');
33787                        query_m = jQuery('.mobile-user-profile .nhaplieu form.thong-tin .Birthday .YearBirth');
33788                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33789                            query.append('<option value="-1"></option>');
33790                            query_m.append('<option value="-1"></option>');
33791                            for (var i = 1920; i <= (new Date()).getFullYear() - 10; i++) {
33792                                query.append('<option value="' + i + '">' + i + '</option>');
33793                                query_m.append('<option value="' + i + '">' + i + '</option>');
33794                            }
33795                        }
33796
33797                        query = jQuery('.page-user-profile .nhaplieu form.thong-tin');
33798                        query_m = jQuery('.mobile-user-profile .nhaplieu form.thong-tin');
33799                        if (!jQuery(query[0]).hasClass('haserror')) {
33800                            jQuery(query[0]).addClass('haserror');
33801                            jQuery(query_m[0]).addClass('haserror');
33802                        }
33803                        var queryDMK = jQuery('.page-user-profile .nhaplieu form.doi-mat-khau');
33804                        if(!jQuery(queryDMK[0]).hasClass('haserror')) {
33805                            jQuery(queryDMK[0]).addClass('haserror');
33806                            jQuery(jQuery('.mobile-user-profile .nhaplieu form.doi-mat-khau')[0]).addClass('haserror');
33807                        } */
33808
33809                        lib3p.common_AuthPostURL(window.pars3p.api.auth.Header_GetInfo, {}, function (resGet) {
33810                            if (lib3p_helper.utility.hasValue(resGet) && lib3p_helper.utility.hasValueString(resGet.UserName)) {
33811                                var query = jQuery('.page-user-profile .nhaplieu form.thong-tin');
33812                                var query_m = jQuery('.mobile-user-profile .nhaplieu form.thong-tin');
33813                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33814                                    var Gender = resGet.Gender == 1 ? 'Nam' : resGet.Gender == 2 ? 'Nữ' : resGet.Gender == 3 ? 'Khác' : '';
33815
33816                                    var frm = query[0];
33817                                    frm.FullName.value = resGet.FullName;
33818                                    frm.CardNo.value = resGet.CardNo;
33819                                    frm.Cellphone.value = resGet.Cellphone;
33820                                    frm.DayBirth.value = resGet.DayBirth;
33821                                    frm.MonthBirth.value = resGet.MonthBirth;
33822                                    frm.YearBirth.value = resGet.YearBirth;
33823                                    frm.Email.value = resGet.Email;
33824                                    frm.Gender.value = Gender;
33825                                    frm.Ads.checked = resGet.IsReceiveAds == true;
33826
33827                                    frm = query_m[0];
33828                                    frm.FullName.value = resGet.FullName;
33829                                    frm.CardNo.value = resGet.CardNo;
33830                                    frm.Cellphone.value = resGet.Cellphone;
33831                                    frm.DayBirth.value = resGet.DayBirth;
33832                                    frm.MonthBirth.value = resGet.MonthBirth;
33833                                    frm.YearBirth.value = resGet.YearBirth;
33834                                    frm.Email.value = resGet.Email;
33835                                    frm.Gender.value = Gender;
33836                                    frm.Ads.checked = resGet.IsReceiveAds == true;
33837
33838                                    window.pars3p.itemTemp = resGet;
33839                                    //jQuery(query[0]).removeClass('haserror');
33840                                    //jQuery(queryDMK[0]).removeClass('haserror');
33841
33842                                    //jQuery(query_m[0]).removeClass('haserror');
33843                                    //jQuery(jQuery('.mobile-user-profile .nhaplieu form.doi-mat-khau')[0]).removeClass('haserror');
33844                                }
33845                            }                       
33846                            else {
33847                                
33848                            }
33849                        }, function (errGet) {
33850                            lib3p.log(errGet);
33851                        });
33852                        /* lib3p.common_AuthPostURL(window.pars3p.api.auth.GetCard, {}, function (res) {
33853                            if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValue(res.ObjectReturn) && res.StatusCode == 0) {
33854                                query = jQuery('.page-user-profile .nhaplieu form.thong-tin');
33855                                query_m = jQuery('.mobile-user-profile .nhaplieu form.thong-tin');
33856                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33857                                    var frm = query[0];
33858                                    frm.FullName.value = res.ObjectReturn.FullName;
33859                                    frm.CardNo.value = res.ObjectReturn.CardNo;
33860                                    frm.Cellphone.value = res.ObjectReturn.Cellphone;
33861                                    frm.DayBirth.value = res.ObjectReturn.DayBirth;
33862                                    frm.MonthBirth.value = res.ObjectReturn.MonthBirth;
33863                                    frm.YearBirth.value = res.ObjectReturn.YearBirth;
33864                                    frm.Email.value = res.ObjectReturn.Email;
33865
33866                                    frm = query_m[0];
33867                                    frm.FullName.value = res.ObjectReturn.FullName;
33868                                    frm.CardNo.value = res.ObjectReturn.CardNo;
33869                                    frm.Cellphone.value = res.ObjectReturn.Cellphone;
33870                                    frm.DayBirth.value = res.ObjectReturn.DayBirth;
33871                                    frm.MonthBirth.value = res.ObjectReturn.MonthBirth;
33872                                    frm.YearBirth.value = res.ObjectReturn.YearBirth;
33873                                    frm.Email.value = res.ObjectReturn.Email;
33874
33875                                    window.pars3p.itemTemp = res.ObjectReturn;
33876                                    jQuery(query[0]).removeClass('haserror');
33877                                    //jQuery(queryDMK[0]).removeClass('haserror');
33878
33879                                    jQuery(query_m[0]).removeClass('haserror');
33880                                    jQuery(jQuery('.mobile-user-profile .nhaplieu form.doi-mat-khau')[0]).removeClass('haserror');
33881                                }
33882                            }
33883                        }, function (err) {
33884                            lib3p.log(err);
33885                        }); */
33886                    }
33887                }, window.pars3p.timeAsync);
33888            });
33889        },
33890        onProfile_Submit: function (event) {
33891            var data = {                
33892                IsReceiveAds: null,
33893            };
33894            var ctr = event.target.Ads;
33895            data.IsReceiveAds = ctr.checked == true;
33896
33897            if(window.pars3p.itemTemp.IsReceiveAds != data.IsReceiveAds) {
33898                lib3p.common_AuthPostURL(window.pars3p.api.auth.Profile_Update, { item: data }, function (res) {
33899                    if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0) {
33900                        query = jQuery(event.target).find('div.thongbao');
33901                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33902                            if (!query.hasClass('show')) {
33903                                query.addClass('show');
33904                                setTimeout(function () {
33905                                    query.removeClass('show');
33906                                }, 2000);
33907                            }
33908                        }
33909                    }
33910                }, function (err) {
33911                    throw err;
33912                });
33913            }
33914            
33915            event.preventDefault();
33916        },
33917        onGui_KeyDown: function (event, el) {
33918            var query = jQuery(el).closest('form');
33919            setTimeout(function () {
33920                //var query = jQuery('.page-contact form.nhaplieu');
33921                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33922                    var flag = true;
33923                    var ctr = query[0].Password;
33924                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
33925                        flag = false;
33926                    }
33927                    ctr = query[0].NewPassword;
33928                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
33929                        flag = false;
33930                    }
33931                    ctr = query[0].RePassword;
33932                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
33933                        flag = false;
33934                    }
33935                    if (flag == true) {
33936                        jQuery(query[0]).removeClass('haserror');
33937                    }
33938                    else {
33939                        if (!jQuery(query[0]).hasClass('haserror')) {
33940                            jQuery(query[0]).addClass('haserror');
33941                        }
33942                    }
33943                }
33944            }, 100);
33945        },
33946        onHienMatKhau_Click: function (el) {
33947            var query = jQuery(el).closest('.input');
33948            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33949                var el = query[0];
33950                var query = jQuery(el).children('input');
33951                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
33952                    var input = query[0];
33953                    if (jQuery(el).hasClass('hide')) {
33954                        jQuery(el).removeClass('hide');
33955                        jQuery(input).attr('type', 'password');
33956                    }
33957                    else {
33958                        jQuery(el).addClass('hide');
33959                        jQuery(input).attr('type', 'text');
33960                    }
33961                }
33962            }
33963        },
33964        onDoiMatKhau_Submit: function (event) {
33965            if (!jQuery(event.target).hasClass('haserror')) {
33966                jQuery(event.target).find('div.error').html('');
33967                jQuery(event.target).find('.input input').removeClass('error');
33968                var data = {
33969                    Password: '',
33970                    NewPassword: '',
33971                    RePassword: '',
33972                };
33973                var flag = true;
33974
33975                var ctr = event.target.Password;
33976                data.Password = ctr.value;
33977                if (!lib3p_helper.utility.hasValueString(
33977ctr.value)) {
33978                    flag = false;
33979                    if (!jQuery(ctr).hasClass('error')) {
33980                        jQuery(ctr).addClass('error');
33981                    }
33982                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
33983                }
33984                ctr = event.target.NewPassword;
33985                data.NewPassword = ctr.value;
33986                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
33987                    flag = false;
33988                    if (!jQuery(ctr).hasClass('error')) {
33989                        jQuery(ctr).addClass('error');
33990                    }
33991                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
33992                }
33993                ctr = event.target.RePassword;
33994                data.RePassword = ctr.value;
33995                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
33996                    flag = false;
33997                    if (!jQuery(ctr).hasClass('error')) {
33998                        jQuery(ctr).addClass('error');
33999                    }
34000                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
34001                }
34002                else if (data.NewPassword != data.RePassword) {
34003                    flag = false;
34004                    if (!jQuery(ctr).hasClass('error')) {
34005                        jQuery(ctr).addClass('error');
34006                    }
34007                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mật khẩu nhập lại sai</span>');
34008                }
34009
34010                if (flag == true) {
34011                    lib3p.common_AuthPostURL(window.pars3p.api.auth.User_ChangePass, { "passold": data.Password, "passnew": data.NewPassword }, function (res) {
34012                        if(res.Succeeded == true) {
34013                            event.target.Password.value = '';
34014                            event.target.NewPassword.value = '';
34015                            event.target.RePassword.value = '';
34016                            if (!jQuery(event.target).hasClass('haserror')) {
34017                                jQuery(event.target).addClass('haserror');
34018                            }
34019                            lib3p.pageUserProfile.onChangePassSuccess_Show();
34020                            setTimeout(function () {
34021                                lib3p.pageUserProfile.onChangePassSuccess_Close();
34022                            }, 1500);
34023                        }
34024                        else {
34025                            ctr = event.target.Password;
34026                            if (!jQuery(ctr).hasClass('error')) {
34027                                jQuery(ctr).addClass('error');
34028                            }
34029                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Nhập sai mật khẩu</span>');
34030                        }                    
34031                    }, function (err) {
34032                        if (err.status == 200) {
34033                            event.target.Password.value = '';
34034                            event.target.NewPassword.value = '';
34035                            event.target.RePassword.value = '';
34036                            if (!jQuery(event.target).hasClass('haserror')) {
34037                                jQuery(event.target).addClass('haserror');
34038                            }
34039                            lib3p.pageUserProfile.onChangePassSuccess_Show();
34040                            setTimeout(function () {
34041                                lib3p.pageUserProfile.onChangePassSuccess_Close();
34042                            }, 1500);
34043                        }
34044                    });
34045                    /* lib3p.common_AuthPostURL(window.pars3p.api.auth.changepassword, { "Password": data.Password, "NewPassword": data.NewPassword }, function (res) {
34046                        event.target.Password.value = '';
34047                        event.target.NewPassword.value = '';
34048                        event.target.RePassword.value = '';
34049                        if (!jQuery(event.target).hasClass('haserror')) {
34050                            jQuery(event.target).addClass('haserror');
34051                        }
34052                        lib3p.pageUserProfile.onChangePassSuccess_Show();
34053                        setTimeout(function () {
34054                            lib3p.pageUserProfile.onChangePassSuccess_Close();
34055                        }, 1500);
34056                    }, function (err) {
34057                        if (err.status == 200) {
34058                            event.target.Password.value = '';
34059                            event.target.NewPassword.value = '';
34060                            event.target.RePassword.value = '';
34061                            if (!jQuery(event.target).hasClass('haserror')) {
34062                                jQuery(event.target).addClass('haserror');
34063                            }
34064                            lib3p.pageUserProfile.onChangePassSuccess_Show();
34065                            setTimeout(function () {
34066                                lib3p.pageUserProfile.onChangePassSuccess_Close();
34067                            }, 1500);
34068                        }
34069                    }); */
34070                }
34071            }
34072            event.preventDefault();
34073        },
34074        onChangePassSuccess_Close: function () {
34075            var query = jQuery('.popup-change-pass-success .hachi-modal');
34076            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34077                if (jQuery(query[0]).hasClass("d-block")) {
34078                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
34079                }
34080            }
34081        },
34082        onChangePassSuccess_Show: function () {
34083            var query = jQuery('.popup-change-pass-success .hachi-modal');
34084            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34085                if (jQuery(query[0]).hasClass("d-none")) {
34086                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
34087                }
34088            }
34089        },
34090    },
34091
34092    pageUserCard: {
34093        Data: {
34094            YearCurrent: 2024,
34095            Year: 2024,
34096            IsOnline: true
34097        },
34098        init: function () {
34099            var query = jQuery('.page-user-card');
34100            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34101                lib3p.common_LoadingShow();
34102                lib3p.pageUserCard.Data.Year = (new Date()).getFullYear();
34103                lib3p.pageUserCard.Data.YearCurrent = (new Date()).getFullYear();
34104                lib3p.pageUserCard.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
34105            }
34106        },
34107        init_async: function () {
34108            return new Promise(function (resolve, reject) {
34109                setTimeout(function () {
34110                    if (lib3p.header.MustLogin()) {
34111                        lib3p.header.UserManager_Load();
34112
34113                        var html = '';
34114                        for (var i = 0; i < 2; i++) {
34115                            var year = lib3p.pageUserCard.Data.YearCurrent - i;
34116                            if (year == lib3p.pageUserCard.Data.YearCurrent) {
34117                                html = html + '<button type="button" aria-label="hachihachi" class="active s14 cl-gregray900 sibold600" onclick="lib3p.pageUserCard.onChangeYear(this,' + year + ')">' + year + '</button>';
34118                            }
34119                            else {
34120                                html = html + '<button type="button" aria-label="hachihachi" class="s14 cl-gregray900 sibold600" onclick="lib3p.pageUserCard.onChangeYear(this,' + year + ')">' + year + '</button>';
34121                            }
34122                        }
34123                        jQuery('.page-user-card .tieu-de-nam .dropdown-menu').html(html);
34124                        jQuery('.mobile-user-card .tieu-de-nam .dropdown-menu').html(html);
34125
34126                        lib3p.pageUserCard.ChangeYear();
34127                        jQuery('.page-user-card .danh-sach-tieude.isonline').show();
34128                        jQuery('.page-user-card .danh-sach-tieude.isoffline').hide();
34129                        lib3p.pageUserCard.LoadTransaction();
34130                    }
34131                }, window.pars3p.timeAsync);
34132            });
34133        },
34134        onChangeYear: function (el, year) {
34135            if (year > 0) {
34136                jQuery('.page-user-card .tieu-de-nam .dropdown-menu button.active').removeClass('active');
34137                jQuery('.mobile-user-card .tieu-de-nam .dropdown-menu button.active').removeClass('active');
34138                jQuery(el).addClass('active');
34139                lib3p.pageUserCard.Data.Year = year;
34140                lib3p.pageUserCard.ChangeYear();
34141                lib3p.pageUserCard.LoadTransaction();
34142            }
34143        },
34144        ChangeYear: function () {
34145            jQuery('.page-user-card .diem .tieu-de-diem .txt').html('');
34146            jQuery('.mobile-user-card .diem .tieu-de-diem .txt').html('');
34147            lib3p.common_AuthPostURL(window.pars3p.api.auth.UserCard_PointByYear, { year: lib3p.pageUserCard.Data.Year }, function (res) {
34148                if (lib3p_helper.utility.hasValue(res)) {
34149                    if (lib3p_helper.utility.hasValue(res.Current)) {
34150                        var dt = new Date(res.Current);
34151                        var str = lib3p_helper.utility.formatDateDDMMYYYY(dt);
34152                        jQuery('.page-user-card .hientai .Current').html(str);
34153                        jQuery('.mobile-user-card .hientai .Current').html(str);
34154                    }
34155                    if (lib3p.pageUserCard.Data.Year == lib3p.pageUserCard.Data.YearCurrent) {
34156                        jQuery('.page-user-card .hientai.InYear').show();
34157                        jQuery('.page-user-card .hientai.OutYear').hide();
34158                        jQuery('.mobile-user-card .hientai.InYear').show();
34159                        jQuery('.mobile-user-card .hientai.OutYear').hide();
34160                    }
34161                    else {
34162                        /* jQuery('.page-user-card .hientai.InYear').hide();
34163                        jQuery('.page-user-card .hientai.OutYear').show();
34164                        jQuery('.mobile-user-card .hientai.InYear').hide();
34165                        jQuery('.mobile-user-card .hientai.OutYear').show(); */
34166                        jQuery('.page-user-card .hientai.InYear').hide();
34167                        jQuery('.page-user-card .hientai.OutYear').hide();
34168                        jQuery('.mobile-user-card .hientai.InYear').hide();
34169                        jQuery('.mobile-user-card .hientai.OutYear').hide();
34170                    }
34171
34172                    var point = 0;
34173                    if (res.YearOnline > 0 && lib3p.pageUserCard.Data.Year == lib3p.pageUserCard.Data.YearCurrent) {
34174                        point += res.YearOnline;
34175                    }
34176                    if (res.YearOffline > 0) {
34177                        point += res.YearOffline;
34178                    }
34179
34180                    var per = 0;
34181                    var CurrentPoint = 0;
34182                    var MorePoint = 0;
34183                    var NextPoint = 0;
34184                    jQuery('.page-user-card .diem .tieu-de').removeClass('max-1').removeClass('max-2');
34185                    jQuery('.page-user-card .diem .nen').removeClass('max-1').removeClass('max-2');
34186                    jQuery('.page-user-card .diem .nen .lvl').removeClass('pass');
34187                    jQuery('.mobile-user-card .diem .tieu-de').removeClass('max-1').removeClass('max-2');
34188                    jQuery('.mobile-user-card .diem .nen').removeClass('max-1').removeClass('max-2');
34189                    jQuery('.mobile-user-card .diem .nen .lvl').removeClass('pass');
34190                    if (point > 0) {
34191                        per = Math.round((100 / 600) * point);
34192                        CurrentPoint = point;
34193                        if (CurrentPoint >= 600) {
34194                            NextPoint = 600;
34195                            jQuery('.page-user-card .diem .nen .lvl-2.lvl').addClass('pass');
34196                            jQuery('.page-user-card .diem .nen .lvl-3.lvl').addClass('pass');
34197                            jQuery('.page-user-card .diem .nen .lvl-4.lvl').addClass('pass');
34198                            jQuery('.mobile-user-card .diem .nen .lvl-2.lvl').addClass('pass');
34199                            jQuery('.mobile-user-card .diem .nen .lvl-3.lvl').addClass('pass');
34200                            jQuery('.mobile-user-card .diem .nen .lvl-4.lvl').addClass('pass');
34201                        }
34202                        else if (CurrentPoint >= 300) {
34203                            NextPoint = 600;
34204                            jQuery('.page-user-card .diem .nen .lvl-2.lvl').addClass('pass');
34205                            jQuery('.page-user-card .diem .nen .lvl-3.lvl').addClass('pass');
34206                            jQuery('.mobile-user-card .diem .nen .lvl-2.lvl').addClass('pass');
34207                            jQuery('.mobile-user-card .diem .nen .lvl-3.lvl').addClass('pass');
34208                        }
34209                        else if (CurrentPoint >= 200) {
34210                            NextPoint = 300;
34211                            jQuery('.page-user-card .diem .nen .lvl-2.lvl').addClass('pass');
34212                            jQuery('.mobile-user-card .diem .nen .lvl-2.lvl').addClass('pass');
34213                        }
34214                        else {
34215                            NextPoint = 200;
34216                        }
34217                        MorePoint = NextPoint - CurrentPoint;
34218                        if (CurrentPoint >= 600) {
34219                            MorePoint = 0;
34220                            per = 100;
34221                            jQuery('.page-user-card .diem .tieu-de .lvl-more').html(CurrentPoint);
34222                            jQuery('.mobile-user-card .diem .tieu-de .lvl-more').html(CurrentPoint);
34223                            if (CurrentPoint >= 600 + 200) {
34224                                jQuery('.page-user-card .diem .tieu-de').addClass('max-2');
34225                                jQuery('.page-user-card .diem .nen').addClass('max-2');
34226                                jQuery('.mobile-user-card .diem .tieu-de').addClass('max-2');
34227                                jQuery('.mobile-user-card .diem .nen').addClass('max-2');
34228                            }
34229                            else {
34230                                jQuery('.page-user-card .diem .tieu-de').addClass('max-1');
34231                                jQuery('.page-user-card .diem .nen').addClass('max-1');
34232                                jQuery('.mobile-user-card .diem .tieu-de').addClass('max-1');
34233                                jQuery('.mobile-user-card .diem .nen').addClass('max-1');
34234                            }
34235                        }
34236                        CurrentPoint = Math.round(CurrentPoint);
34237                        MorePoint = Math.round(MorePoint);
34238                    }
34239                    jQuery('.page-user-card .nen .nen-active').css('width', per + '%');
34240                    if (per > 5) {
34241                        jQuery('.page-user-card .diem .tieu-de-diem .txt').css('left', 'calc(' + per + '% - 20px)');
34242                    }
34243                    else {
34244                        jQuery('.page-user-card .diem .tieu-de-diem .txt').css('left', 'calc(' + per + '%)');
34245                    }
34246           
34246         jQuery('.page-user-card .diem .tieu-de-diem .txt').html(CurrentPoint);
34247                    jQuery('.page-user-card .CurrentPoint').html(CurrentPoint);
34248                    jQuery('.mobile-user-card .nen .nen-active').css('width', per + '%');
34249                    if (per > 5) {
34250                        jQuery('.mobile-user-card .diem .tieu-de-diem .txt').css('left', 'calc(' + per + '% - 20px)');
34251                    }
34252                    else {
34253                        jQuery('.mobile-user-card .diem .tieu-de-diem .txt').css('left', 'calc(' + per + '%)');
34254                    }
34255                    jQuery('.mobile-user-card .diem .tieu-de-diem .txt').html(CurrentPoint);
34256                    jQuery('.mobile-user-card .CurrentPoint').html(CurrentPoint);
34257                    //jQuery('.page-user-card .NextPoint').html(NextPoint);
34258                    //jQuery('.page-user-card .MorePoint').html(MorePoint);
34259
34260                    jQuery('.page-user-card .Year').html(lib3p.pageUserCard.Data.Year);
34261                    jQuery('.mobile-user-card .Year').html(lib3p.pageUserCard.Data.Year);
34262                }
34263            }, function (err) {
34264                throw err;
34265            });
34266        },
34267        onTab_Click: function (el, isonline) {
34268            jQuery('.page-user-card .thongtin .product-top ul.tabs li.item.active').removeClass('active');
34269            jQuery(el).closest('li.item').addClass('active');
34270            jQuery('.page-user-card .danh-sach').html('');
34271            if (isonline == true) {
34272                lib3p.pageUserCard.Data.IsOnline = true;
34273                jQuery('.page-user-card .danh-sach-tieude.isonline').show();
34274                jQuery('.page-user-card .danh-sach-tieude.isoffline').hide();
34275                lib3p.pageUserCard.LoadTransaction();
34276            }
34277            else {
34278                lib3p.pageUserCard.Data.IsOnline = false;
34279                jQuery('.page-user-card .danh-sach-tieude.isonline').hide();
34280                jQuery('.page-user-card .danh-sach-tieude.isoffline').show();
34281                lib3p.pageUserCard.LoadTransaction();
34282            }
34283        },
34284        onTabMobile_Click: function (el, isonline) {
34285            jQuery('.mobile-user-card .thongtin .product-top ul.tabs li.item.active').removeClass('active');
34286            jQuery(el).closest('li.item').addClass('active');
34287            jQuery('.mobile-user-card .danh-sach').html('');
34288            if (isonline == true) {
34289                lib3p.pageUserCard.Data.IsOnline = true;
34290                lib3p.pageUserCard.LoadTransaction();
34291            }
34292            else {
34293                lib3p.pageUserCard.Data.IsOnline = false;
34294                lib3p.pageUserCard.LoadTransaction();
34295            }
34296        },
34297        LoadTransaction: function () {
34298            lib3p.common_LoadingShow();
34299            lib3p.pageUserCard.LoadTransaction_async().then(function (data) { }, function (err) { lib3p.log(err); });
34300        },
34301        LoadTransaction_async: function () {
34302            return new Promise(function (resolve, reject) {
34303                setTimeout(function () {
34304
34305                    lib3p.common_AuthPostURL(window.pars3p.api.auth.UserCard_Transaction, { isonline: lib3p.pageUserCard.Data.IsOnline, year: lib3p.pageUserCard.Data.Year, page: 0, pagesize: 50 }, function (res) {
34306                        if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValue(res.ObjectReturn) && res.StatusCode == 0) {
34307                            if (lib3p.pageUserCard.Data.IsOnline == true) {
34308                                var html = '';
34309                                res.ObjectReturn.forEach(function (c, cidx) {
34310                                    if (lib3p_helper.utility.hasValue(c.TransactionDate)) {
34311                                        c.TransactionDate = new Date(c.TransactionDate);
34312                                    }
34313                                    else {
34314                                        c.TransactionDate = null;
34315                                    }
34316
34317                                    html += '<div class="dong">';
34318                                    var url = lib3p_helper.utility.stringFormat('/chi-tiet-don-hang?type=49&ordertypeid={0}&orderid={1}', c.OrderTypeID, c.TransactionNo);
34319                                    if (c.CardPoint >= 0) {
34320                                        html += '<div class="TransactionNo s12 cl-gregray900 sibold600"><a target="_blank" href="' + url + '">' + c.TransactionNo + '</a></div>';
34321                                    }
34322                                    else {
34323                                        html += '<div class="TransactionNo s12 cl-red500 sibold600"><a target="_blank" href="' + url + '">' + c.TransactionNo + '</a></div>';
34324                                    }
34325                                    html += '<div class="TransactionDate s12 cl-gregray900 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.TransactionDate) + '</div>';
34326                                    html += '<div class="StoreName s12 cl-gregray900 regular400">' + c.StoreName + '</div>';
34327                                    if (c.CardPoint > 0) {
34328                                        html += '<div class="Amou
34328nt s12 cl-gregray900 regular400">' + lib3p_helper.utility.formatMoney(c.Amount) + '</div>';
34329                                        html += '<div class="CardPoint s12 cl-gregray900 sibold600">+' + (parseFloat(c.CardPoint).toFixed(2) + '').replace(".", ",") + '</div>';
34330                                    }
34331                                    else if (c.CardPoint == 0) {
34332                                        html += '<div class="Amount s12 cl-gregray900 regular400">' + lib3p_helper.utility.formatMoney(c.Amount) + '</div>';
34333                                        html += '<div class="CardPoint s12 cl-gregray900 sibold600">&nbsp;</div>';
34334                                    }
34335                                    else {
34336                                        html += '<div class="Amount s12 cl-red500 regular400">-' + lib3p_helper.utility.formatMoney(c.Amount) + '</div>';
34337                                        html += '<div class="CardPoint s12 cl-red500 sibold600">' + (parseFloat(c.CardPoint).toFixed(2) + '').replace(".", ",") + '</div>';
34338                                    }
34339                                    html += '</div>';
34340                                    html += '<div class="line b-gregray200">&nbsp;</div>';
34341                                });
34342                                jQuery('.page-user-card .danh-sach').html(html);
34343
34344                                html = '';
34345                                res.ObjectReturn.forEach(function (c, cidx) {
34346                                    if (lib3p_helper.utility.hasValue(c.TransactionDate)) {
34347                                        c.TransactionDate = new Date(c.TransactionDate);
34348                                    }
34349                                    else {
34350                                        c.TransactionDate = null;
34351                                    }
34352
34353                                    html += '<div class="dong b-white sl-gregray70">';
34354                                    var url = lib3p_helper.utility.stringFormat('/chi-tiet-don-hang?type=49&ordertypeid={0}&orderid={1}', c.OrderTypeID, c.TransactionNo);
34355                                    html += '<div class="text-top"><div class="left">';
34356                                    html += '<span class="s14 cl-gregray900 regular400">Điểm tích lũy</span>&nbsp;&nbsp;';
34357                                    if (c.CardPoint > 0) {
34358                                        html += '<span class="CardPoint s18 cl-dakgreen800 sibold600">+' + (parseFloat(c.CardPoint).toFixed(2) + '').replace(".", ",") + '</span>';
34359                                    }
34360                                    else if (c.CardPoint == 0) {
34361                                        html += '<span class="CardPoint s18 cl-dakgreen800 sibold600">&nbsp;</span>';
34362                                    }
34363                                    else {
34364                                        html += '<span class="CardPoint s18 cl-red500 sibold600">' + (parseFloat(c.CardPoint).toFixed(2) + '').replace(".", ",") + '</span>';
34365                                    }
34366                                    html += '</div>';
34367                                    html += '<div class="right"><a class="b-gregray200" target="_blank" href="' + url + '"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right.svg" /></a></div>';
34368                                    html += '</div>';
34369                                    html += '<div class="line b-gregray200">&nbsp;</div>';
34370
34371                                    html += '<div class="text-col">';
34372                                    html += '<div class="s12 cl-gregray550 regular400">Ngày đặt</div>';
34373                                    html += '<div class="TransactionDate s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.TransactionDate) + '</div>';
34374                                    html += '</div>';
34375                                    html += '<div class="text-col">';
34376                                    html += '<div class="s12 cl-gregray550 regular400">Tổng tiền</div>';
34377                                    if (c.CardPoint >= 0) {
34378                                        html += '<div class="Amou
34378nt s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatMoney(c.Amount) + '</div>';
34379                                    }
34380                                    else {
34381                                        html += '<div class="Amount s14 cl-red500 regular400">-' + lib3p_helper.utility.formatMoney(c.Amount) + '</div>';
34382                                    }
34383                                    html += '</div>';
34384                                    html += '<div class="text-col">';
34385                                    html += '<div class="s12 cl-gregray550 regular400">Sản phẩm</div>';
34386                                    html += '<div class="StoreName s14 cl-gregray900 regular400">' + c.StoreName + '</div>';
34387                                    html += '</div>';
34388
34389                                    html += '</div>';
34390
34391                                });
34392                                jQuery('.mobile-user-card .danh-sach').html(html);
34393                            }
34394                            else {
34395                                var html = '';
34396                                res.ObjectReturn.forEach(function (c, cidx) {
34397                                    if (lib3p_helper.utility.hasValue(c.TransactionDate)) {
34398                                        c.TransactionDate = new Date(c.TransactionDate);
34399                                    }
34400                                    else {
34401                                        c.TransactionDate = null;
34402                                    }
34403
34404                                    html += '<div class="dong">';
34405                                    if (c.CardPoint >= 0) {
34406                                        html += '<div class="TransactionNo s12 cl-gregray900 sibold600">' + c.TransactionNo + '</div>';
34407                                    }
34408                                    else {
34409                                        html += '<div class="TransactionNo s12 cl-red500 sibold600">' + c.TransactionNo + '</div>';
34410                                    }
34411                                    html += '<div class="TransactionDate s12 cl-gregray900 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.TransactionDate) + '</div>';
34412                                    html += '<div class="StoreName s12 cl-gregray900 regular400">' + c.StoreName + '</div>';
34413                                    if (c.CardPoint > 0) {
34414                                        html += '<div class="Amount s12 cl-gregray900 regular400">' + lib3p_helper.utility.formatMoney(c.Amount) + '</div>';
34415                                        html += '<div class="CardPoint s12 cl-gregray900 sibold600">+' + (parseFloat(c.CardPoint).toFixed(2) + '').replace(".", ",") + '</div>';
34416                                    }
34417                                    else if (c.CardPoint == 0) {
34418                                        html += '<div class="Amount s12 cl-red500 regular400">' + lib3p_helper.utility.formatMoney(c.Amount) + '</div>';
34419                                        html += '<div class="CardPoint s12 cl-gregray900 sibold600">&nbsp;</div>';
34420                                    }
34421                                    else {
34422                                        html += '<div class="Amount s12 cl-gregray900 regular400">-' + lib3p_helper.utility.formatMoney(c.Amount) + '</div>';
34423                                        html += '<div class="CardPoint s12 cl-red500 sibold600">' + (parseFloat(c.CardPoint).toFixed(2) + '').replace(".", ",") + '</div>';
34424                                    }
34425                                    html += '</div>';
34426                                    html += '<div class="line b-gregray200">&nbsp;</div>';
34427                                });
34428                                jQuery('.page-user-card .danh-sach').html(html);
34429
34430                                html = '';
34431                                res.ObjectReturn.forEach(function (c, cidx) {
34432                                    if (lib3p_helper.utility.hasValue(c.TransactionDate)) {
34433                                        c.TransactionDate = new Date(c.TransactionDate);
34434                                    }
34435                                    else {
34436                                        c.TransactionDate = null;
34437                                    }
34438
34439                                    html += '<div class="dong b-white sl-gregray70">';
34440                                    html += '<span class="s14 cl-gregray900 regular400">Điểm tích lũy</span>&nbsp;&nbsp;';
34441                                    if (c.CardPoint > 0) {
34442                                        html += '<span class="CardPoint s18 cl-dakgreen800 sibold600">+' + (parseFloat(c.CardPoint).toFixed(2) + '').replace(".", ",") + '</span>';
34443                                    }
34444                                    else if (c.CardPoint == 0) {
34445                                        html += '<span class="CardPoint s18 cl-dakgreen800 sibold600">&nbsp;</span>';
34446                                    }
34447                                    else {
34448                                        html += '<span class="CardPoint s18 cl-red500 sibold600">' + (parseFloat(c.CardPoint).toFixed(2) + '').replace(".", ",") + '</span>';
34449                                    }
34450                                    html += '<div class="line b-gregray200">&nbsp;</div>';
34451
34452                                    html += '<div class="text-col">';
34453                                    html += '<div class="s12 cl-gregray550 regular400">Ngày đặt</div>';
34454                                    html += '<div class="TransactionDate s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatDateDDMMYYYY(c.TransactionDate) + '</div>';
34455                                    html += '</div>';
34456                                    html += '<div class="text-col">';
34457                                    html += '<div class="s12 cl-gregray550 regular400">Tổng tiền</div>';
34458                                    if (c.CardPoint >= 0) {
34459                                        html += '<div class="Amou
34459nt s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatMoney(c.Amount) + '</div>';
34460                                    }
34461                                    else {
34462                                        html += '<div class="Amount s14 cl-red500 regular400">-' + lib3p_helper.utility.formatMoney(c.Amount) + '</div>';
34463                                    }
34464                                    html += '</div>';
34465                                    html += '<div class="text-col">';
34466                                    html += '<div class="s12 cl-gregray550 regular400">Sản phẩm</div>';
34467                                    html += '<div class="StoreName s14 cl-gregray900 regular400">' + c.StoreName + '</div>';
34468                                    html += '</div>';
34469
34470                                    html += '</div>';
34471
34472                                });
34473                                jQuery('.mobile-user-card .danh-sach').html(html);
34474                            }
34475                        }
34476                        lib3p.common_LoadingHide();
34477                        resolve(true);
34478                    }, function (err) {
34479                        lib3p.common_LoadingHide();
34480                        reject(err);
34481                    });
34482
34483                }, window.pars3p.timeAsync);
34484            });
34485        },
34486    },
34487
34488    pageQA: {
34489        init: function () {
34490            var query = jQuery('.page-qa');
34491            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34492                lib3p.pageQA.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
34493            }
34494        },
34495        init_async: function () {
34496            return new Promise(function (resolve, reject) {
34497                setTimeout(function () {
34498                    lib3p.pageCart.OtherPage();
34499
34500                    var query = jQuery('.page-qa .danhsach .item .top a');
34501                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34502                        //jQuery(query[0]).toggleClass('show');
34503                        lib3p.pageQA.onMenu_Click(query[0]);
34504                        var id = jQuery(query[0]).data('id');
34505                        query = jQuery('.mobile-qa .danhsach .item a.mobile-' + id);
34506                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34507                            lib3p.pageQA.onMenuMobile_Click(query[0]);
34508                        }
34509                    }
34510
34511                    query = jQuery('.mode-mobile .mobile-qa .tabs.owl-carousel');
34512                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34513                        query.owlCarousel({
34514                            autoplay: false,
34515                            autoplayHoverPause: false,
34516                            loop: false,
34517                            nav: false,
34518                            dots: false,
34519                            autoWidth: true,
34520                            margin: 0,
34521                        });
34522                        jQuery('.mode-mobile .mobile-qa .tabs.owl-carousel .item').each(function (cix) {
34523                            var el = this;
34524                            if (jQuery(el).hasClass('active')) {
34525                                query.trigger('to.owl.carousel', cix);
34526                            }
34527                        });
34528                    }
34529                }, window.pars3p.timeAsync);
34530            });
34531        },
34532        onMenu_Click: function (el) {
34533            if (!jQuery(jQuery(el).closest('div.item')).hasClass('show')) {
34534                var query = jQuery('.page-qa .danhsach .item.show');
34535                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34536                    query.removeClass('show');
34537                }
34538            }
34539            jQuery(el).closest('div.item').toggleClass('show');
34540            window.scrollTo(0, 0);
34541        },
34542        onMenuMobile_Click: function (el) {
34543            if (!jQuery(jQuery(el).closest('div.item')).hasClass('show')) {
34544                var query = jQuery('.mobile-qa .danhsach .item.show');
34545                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34546                    query.removeClass('show');
34547                }
34548            }
34549            jQuery(el).closest('div.item').toggleClass('show');
34550            window.scrollTo(0, 0);
34551
34552            var id = jQuery(el).data('id');
34553            query = jQuery('.page-qa .danhsach .item a.pc-' + id);
34554            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34555                lib3p.pageQA.onMenu_Click(query[0]);
34556            }
34557        },
34558    },
34559
34560    pageStore: {
34561        init: function () {
34562            var query = jQuery('.page-store');
34563            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34564                lib3p.pageStore.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
34565            }
34566        },
34567        init_async: function () {
34568            return new Promise(function (resolve, reject) {
34569                setTimeout(function () {
34570                    lib3p.pageCart.OtherPage();
34571                    
34572                }, window.pars3p.timeAsync);
34573            });
34574        },
34575        onMap_Click: function (el) {
34576            var query = jQuery(el).closest('li');
34577            var id = jQuery(el).data('id');
34578            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34579                var map = jQuery(query[0]).attr('map');
34580                if (lib3p_helper.utility.hasValueString(map)) {
34581                    var html = '<iframe src=" ' + map + '" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>';
34582                    jQuery('.page-store .noidung .right').html(html);
34583
34584                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34585                        if (!jQuery(query[0]).hasClass('active')) {
34586                            jQuery(el).closest('ul').children('li.active').removeClass('active');
34587                            jQuery(query[0]).addClass('active');
34588                        }
34589                    }
34590                }
34591            }
34592            query = jQuery('.mobile-store .action .dropdown .dropdown-menu a.mobile-' + id);
34593            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34594                lib3p.pageStore.onMapMobile_Click(query[0]);
34595            }
34596        },
34597        onMapMobile_Click: function (el) {
34598            jQuery('.mobile-store .thong-tin-outline').removeClass('hide');
34599
34600            var id = jQuery(el).data('id');
34601            var map = jQuery(el).data('map');
34602            var address = jQuery(el).data('address');
34603            var phone = jQuery(el).data('phone');
34604            var name = jQuery(el).data('name');
34605            var fax = jQuery(el).data('fax');
34606            var zalo = jQuery(el).data('zalo');
34607            if (lib3p_helper.utility.hasValueString(map)) {
34608                var html = '<iframe src=" ' + map + '" allowfullscreen="" loading="lazy" referrerpolicy="no-referrer-when-downgrade"></iframe>';
34609                jQuery('.mobile-store .map').html(html);
34610            }
34611            jQuery('.mobile-store .action .dropdown > button > span').html(name);
34612            jQuery('.mobile-store .thong-tin .name').html(name);
34613            jQuery('.mobile-store .thong-tin .address').html(address);
34614            jQuery('.mobile-store .thong-tin .phone').html(phone);
34615
34616            var html = '<a class="callphone" href="tel:' + fax + '"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/buton-call.svg" /></a>';
34617            html += '<a class="callzalo" href="' + zalo + '"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/zalo.svg" /></a>';
34618            jQuery('.mobile-store .thong-tin > .action').html(html);
34619
34620            query = jQuery('.page-store .noidung .left ul > li .hinhanh > a.pc-' + id);
34621            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34622                lib3p.pageStore.onMap_Click(query[0]);
34623            }
34624        },
34625    },
34626
34627    pageHachiStar: {
34628        init: function () {
34629            var query = jQuery('.hachi-star');
34630            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34631                lib3p.pageHachiStar.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
34632            }
34633        },
34634        init_async: function () {
34635            return new Promise(function (resolve, reject) {
34636                setTimeout(function () {
34637                    lib3p.pageCart.OtherPage();
34638                    lib3p.common_urllastSet(window.location.href);
34639                    //lib3p.header.LoadFlashSale();
34640                    //lib3p.header.LoadTotalChip();
34641                }, window.pars3p.timeAsync);
34642            });
34643        },
34644    },
34645
34646    pageHachiGioiThieu: {
34647        init: function () {
34648            var query = jQuery('.hachi-gioithieu');
34649            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34650                lib3p.pageHachiGioiThieu.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
34651            }
34652        },
34653        init_async: function () {
34654            return new Promise(function (resolve, reject) {
34655                setTimeout(function () {
34656                    lib3p.pageCart.OtherPage();
34657                    lib3p.common_urllastSet(window.location.href);
34658                    //lib3p.header.LoadFlashSale();
34659                    //lib3p.header.LoadTotalChip();
34660                }, window.pars3p.timeAsync);
34661            });
34662        },
34663    },
34664
34665    pageGiftset: {
34666        Sort: {},
34667        init: function () {
34668            var query = jQuery('.page-giftset');
34669            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34670                lib3p.pageGiftset.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
34671            }
34672        },
34673        init_async: function () {
34674            return new Promise(function (resolve, reject) {
34675                setTimeout(function () {
34676                    lib3p.pageCart.OtherPage();
34677                    lib3p.common_urllastSet(window.location.href);
34678                    //lib3p.header.LoadTotalChip();
34679
34680                    var query = jQuery('.page-giftset .danh-sach .item');
34681                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34682                        //jQuery('#cboWard_itemedit').html('<option value>Select one...</option>');
34683                        query.each(function () {
34684                            var id = jQuery(this).data('id');
34685                            if (lib3p_helper.utility.hasValueString(id)) {
34686                                lib3p.pageGiftset.Sort[id] = '';
34687                                lib3p.pageGiftset.LoadData(id, []);
34688                            }
34689                            //jQuery('#cboWard_itemedit').append('<option value="' + c.Code +'">' + c.WardName + '</option>');
34690                        });
34691                    }
34692                }, window.pars3p.timeAsync);
34693            });
34694        },
34695        LoadData: function (id, lst) {
34696            var sort = lib3p.pageGiftset.Sort[id];
34697            if (!lib3p_helper.utility.hasValueString(sort)) {
34698                sort = '';
34699            }
34700            lib3p.common_PostURL(window.pars3p.api.public.Giftset_GetList, { id: id, sort: sort, lst: lst }, function (res) {
34701                if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.ListProduct)) {
34702                    var html = '';
34703                    var html_m = '';
34704                    res.ListProduct.forEach(function (c, cidx) {
34705                        html += '<div class="col-lg-3">';
34706                        html += lib3p_helper.product.parseHTML(c);
34707                        html += '</div>';
34708                        html_m += lib3p_helper.product.parseHTML(c);
34709                    });
34710                    if (lib3p_helper.utility.hasListValue(res.ListIDNext)) {
34711                        jQuery('.page-giftset .danh-sach .item-' + id + ' .product-list').html(html);
34712                        jQuery('.mobile-giftset .danh-sach .item-' + id + ' .product-list').html(html_m);
34713                    }
34714                    else {
34715                        jQuery('.page-giftset .danh-sach .item-' + id + ' .product-list').append(html);
34716                        jQuery('.mobile-giftset .danh-sach .item-' + id + ' .product-list').append(html_m);
34717                    }
34718
34719                    var query = jQuery('.page-giftset .danh-sach .item-' + id + ' .xemthem > a');
34720                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34721                        if (lib3p_helper.utility.hasListValue(res.ListIDNext)) {
34722                            query.show();
34723                            jQuery(query[0]).data('lst', res.ListIDNext);
34724                            jQuery('.mobile-giftset .danh-sach .item-' + id + ' .xemthem > a').data('lst', res.ListIDNext);
34725                        }
34726                        else {
34727                            query.hide();
34728                        }
34729                    }
34730                }
34731            }, function (err) {
34732                throw err;
34733            });
34734        },
34735        onSapXep_Click: function (el) {
34736            var items = jQuery(el).closest('.item');
34737            if (lib3p_helper.utility.hasValue(item) && items.length > 0) {
34738                var id = jQuery(items[0]).data('id');
34739
34740                var html = jQuery(el).html();
34741                var sort = jQuery(el).data('sort');
34742                if (lib3p_helper.utility.hasValueString(html) && lib3p_helper.utility.hasValueString(sort)) {
34743                    var query = jQuery(el).closest('div.dropdown');
34744                    query.find('span.txt-sort').html(html);
34745                    lib3p.pageGiftset.Sort[id] = sort;
34746                    lib3p.pageGiftset.LoadData(id, []);
34747                }
34748            }
34749        },
34750        onXemThem_Click: function (el) {
34751            var items = jQuery(el).closest('.item');
34752            if (lib3p_helper.utility.hasValue(items) && items.length > 0) {
34753                var id = jQuery(items[0]).data('id');
34754
34755                var lst = jQuery(el).data('lst');
34756                if (lib3p_helper.utility.hasListValue(lst)) {
34757                    lib3p.pageGiftset.LoadData(id, lst);
34758                    jQuery(el).data('lst', []);
34759                    jQuery(el).hide();
34760                }
34761            }
34762
34763        },
34764    },
34765
34766    pageCombo: {
34767        init: function () {
34768            var query = jQuery('.page-combo');
34769            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34770                lib3p.pageCombo.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
34771            }
34772        },
34773        init_async: function () {
34774            return new Promise(function (resolve, reject) {
34775                setTimeout(function () {
34776                    lib3p.pageCart.OtherPage();
34777                    lib3p.common_urllastSet(window.location.href);
34778                    //lib3p.header.LoadTotalChip();
34779
34780                }, window.pars3p.timeAsync);
34781            });
34782        },
34783    },
34784
34785    pageTracking: {
34786        init: function () {
34787            var query = jQuery('.page-tracking');
34788            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34789                lib3p.pageTracking.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
34790            }
34791        },
34792        init_async: function () {
34793            return new Promise(function (resolve, reject) {
34794                setTimeout(function () {
34795                    lib3p.pageCart.OtherPage();
34796
34797                    var query = jQuery('.page-tracking .tim-kiem .nhap-lieu form');
34798                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
34799                        var flag = true;
34800                        var data = {
34801                            orderid: '',
34802                        };
34803
34804                        var ctr = query[0].orderid;
34805                        data.orderid = ctr.value;
34806                        if (!lib3p_helper.utility.hasValueString(ctr.value)) {
34807                            flag = false;
34808                        }
34809
34810                        if (flag == true) {
34811                            if (window.pars3p.auth.isLogin == true) {
34812                                lib3p.common_AuthPostURL(window.pars3p.api.auth.Tracking_OrderV2, { OrderNo: data.orderid, TypeData: 2 }, function (res) {
34813                                    if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn)) {
34814                                        var cart = res.ObjectReturn;
34815                                        cart.OrderDate = lib3p_helper.utility.dateGet(cart.OrderDate);
34816                                        cart.StepDate = lib3p_helper.utility.dateGet(cart.StepDate);
34817                                        cart.EstDelivery = lib3p_helper.utility.dateGet(cart.EstDelivery);
34818                                        cart.DeliveriedDate = lib3p_helper.utility.dateGet(cart.DeliveriedDate);
34819                                        lib3p.pageTracking.DoiTrangThai(cart);
34820                                        window.pars3p.tempID = cart.Code;
34821
34822                                        lib3p.pageTracking.LoadCart(cart);
34823                                        /* jQuery('.page-tracking').addClass('kq-auth');
34824                                        jQuery('.mobile-tracking').addClass('kq-auth');
34825
34826                                        var html = '';
34827                                        if (lib3p_helper.utility.hasListValue(cart.CartDetails)) {
34828                                            cart.TotalItemQuantity = 0;
34829                                            cart.TotalItemQuantityChoose = 0;
34830                                            cart.CartDetails.forEac
34830h(function (c, cidx) {
34831                                                if (c.OrderQuantity > 0) {
34832                                                    cart.TotalItemQuantity += c.OrderQuantity;
34833                                                    cart.TotalItemQuantityChoose += c.OrderQuantity;
34834
34835                                                    html += '<div class="product">';
34836                                                    html += '<div class="name"><div class="image"><a href="' + c.Alias + '"><img src="' + c.ImageSetting + '" /></a></div><div class="text s14 cl-gregray900 regular400"><a href="' + c.Alias + '">' + c.ProductName + '</a><br/>' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</div></div>';
34837                                                    html += '<div class="soluong s14 cl-gregray900 medium500">' + c.OrderQuantity + '</div>';
34838                                                    html += '<div class="thanhtien s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatMoney(c.OrderQuantity * c.UnitPrice) + 'đ</div>';
34839                                                    html += '</div>';
34840
34841                                                    if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
34842                                                        var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID == c.Code; });
34843                                                        if (lib3p_helper.utility.hasListValue(lstGift)) {
34844                                                            html += '<div class="product-gift">';
34845                                                            html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" class="s14 cl-gregray900 medium500" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Quà tặng kèm sản phẩm</button></div>';
34846                                                            html += '<div class="product-gift-data sl-gregray200">';
34847                                                            lstGift.forEach(function (g) {
34848                                                                html += '<div class="dong">';
34849                                                                html += '<div class="name"><div class="image"><img src="' + g.ImageThumb + '" /></div><div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div></div>';
34850                                                                html += '<div class="soluong s14 cl-gregray900 medium500">' + g.Quantity + '</div>';
34851                                                                html += '<div class="thanhtien"></div>';
34852                                                                html += '</div>';
34853                                                            });
34854                                                            html += '</div>';
34855                                                            html += '</div>';
34856                                                        }
34857                                                    }
34858                                                }
34859                                            });
34860                                            if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
34861                                                var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID > 0 != true; });
34862                                                if (lib3p_helper.utility.hasListValue(lstGift)) {
34863                                                    html += '<div class="product-gift hienthi"><div class="line b-gregray200">&nbsp;</div>';
34864                                                    html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" class="s14 cl-gregray900 medium500" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Quà tặng kèm đơn hàng</button></div>';
34865                                                    html += '<div class="product-gift-data sl-gregray200">';
34866                                                    lstGift.forEach(function (g) {
34867                                                        html += '<div class="dong">';
34868                                                        html += '<div class="name"><div class="image"><img src="' + g.ImageThumb + '" /></div><div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div></div>';
34869                                                        html += '<div class="soluong s14 cl-gregray900 medium500">' + g.Quantity + '</div>';
34870                                                        html += '<div class="thanhtien"></div>';
34871                                                        html += '</div>';
34872                                                    });
34873                                                    html += '</div>';
34874                                                    html += '</div>';
34875                                                }
34876                                            }
34877                                            if (cart.CartDetails.length == 1) {
34878                                                jQuery('.page-order-history-detail .san-pham.anchitiet').removeClass('anchitiet');
34879                                                jQuery('.page-order-history-detail .san-pham .xem-them').hide();
34880                                                jQuery('.mobile-order-history-detail .san-pham.anchitiet').removeClass('anchitiet');
34881                                                jQuery('.mobile-order-history-detail .san-pham .xem-them').hide();
34882                                            }
34883                                            jQuery('.page-tracking .san-pham .chi-tiet').html(html);
34884                                            html = '';
34885                                            cart.TotalItemQuantity = 0;
34886                                            cart.TotalItemQuantityChoose = 0;
34887                                            cart.CartDetails.forEac
34887h(function (c, cidx) {
34888                                                if (c.OrderQuantity > 0) {
34889                                                    cart.TotalItemQuantity += c.OrderQuantity;
34890                                                    cart.TotalItemQuantityChoose += c.OrderQuantity;
34891
34892                                                    html += '<div class="product">';
34893                                                    html += '<div class="image"><a href="' + c.Alias + '"><img src="' + c.ImageSetting + '" /></a></div>';
34894                                                    html += '<div class="name">';
34895                                                    html += '<div class="text s14 cl-gregray900 regular400"><a href="' + c.Alias + '">' + c.ProductName + '</a></div>';
34896                                                    html += '<div class="text-2"><div class="s14 cl-gregray900 sibold600">' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</div><div class="soluong s14 cl-gregray900 medium500">x&nbsp;' + c.OrderQuantity + '</div></div>';
34897                                                    html += '</div>';
34898                                                    html += '</div>';
34899
34900                                                    if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
34901                                                        var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID == c.Code; });
34902                                                        if (lib3p_helper.utility.hasListValue(lstGift)) {
34903                                                            html += '<div class="product-gift">';
34904                                                            html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" class="s14 cl-gregray900 medium500" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Quà tặng kèm sản phẩm</button></div>';
34905                                                            html += '<div class="product-gift-data sl-gregray200">';
34906                                                            lstGift.forEach(function (g) {
34907                                                                html += '<div class="dong">';
34908                                                                html += '<div class="image"><img src="' + g.ImageThumb + '" /></div>';
34909                                                                html += '<div class="name">';
34910                                                                html += '<div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div>';
34911                                                                html += '<div class="text-2"><div class="s14 cl-gregray900 sibold600"></div><div class="soluong s14 cl-gregray900 medium500">x&nbsp;' + g.Quantity + '</div></div>';
34912                                                                html += '</div>';
34913                                                                html += '</div>';
34914                                                            });
34915                                                            html += '</div>';
34916                                                            html += '</div>';
34917                                                        }
34918                                                    }
34919                                                }
34920                                            });
34921                                            if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
34922                                                var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID > 0 != true; });
34923                                                if (lib3p_helper.utility.hasListValue(lstGift)) {
34924                                                    html += '<div class="product-gift hienthi"><div class="line b-gregray200">&nbsp;</div>';
34925                                                    html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" class="s14 cl-gregray900 medium500" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Quà tặng kèm đơn hàng</button></div>';
34926                                                    html += '<div class="product-gift-data sl-gregray200">';
34927                                                    lstGift.forEach(function (g) {
34928                                                        html += '<div class="dong">';
34929                                                        html += '<div class="image"><img src="' + g.ImageThumb + '" /></div>';
34930                                                        html += '<div class="name">';
34931                                                        html += '<div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div>';
34932                                                        html += '<div class="text-2"><div class="s14 cl-gregray900 sibold600"></div><div class="soluong s14 cl-gregray900 medium500">x&nbsp;' + g.Quantity + '</div></div>';
34933                                                        html += '</div>';
34934                                                        html += '</div>';
34935                                                    });
34936                                                    html += '</div>';
34937                                                    html += '</div>';
34938                                                }
34939                                            }
34940                                            jQuery('.mobile-tracking .san-pham .chi-tiet').html(html);
34941
34942                                            jQuery('.page-tracking .OrderNo').html(cart.OrderNo);
34943                                            jQuery('.page-tracking .EstDelivery').html(lib3p_helper.utility.formatDateDDMMYYYYHHmm(cart.EstDelivery));
34944                                            jQuery('.page-tracking .ReceivedBy').html(cart.ReceivedBy);
34945                                            jQuery('.page-tracking .Address').html(cart.Address);
34946                                            jQuery('.page-tracking .Cellphone').html(cart.Cellphone);
34947                                            jQuery('.page-tracking .TransportName').html(cart.TransportName);
34948                                            jQuery('.page-tracking .PaymentMethod').html(cart.PaymentMethod);
34949                                            jQuery('.page-tracking .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
34950                                            jQuery('.page-tracking .TotalItemQuantityChoose').html('(' + cart.TotalItemQuantityChoose + ' sản phẩm)');
34951
34952                                            jQuery('.mobile-tracking .OrderNo').html(cart.OrderNo);
34953                                            jQuery('.mobile-tracking .EstDelivery').html(lib3p_helper.utility.formatDateDDMMYYYYHHmm(cart.EstDelivery));
34954                                            jQuery('.mobile-tracking .ReceivedBy').html(cart.ReceivedBy);
34955                                            jQuery('.mobile-tracking .Address').html(cart.Address);
34956                                            jQuery('.mobile-tracking .Cellphone').html(cart.Cellphone);
34957                                            jQuery('.mobile-tracking .TransportName').html(cart.TransportName);
34958                                            jQuery('.mobile-tracking .PaymentMethod').html(cart.PaymentMethod);
34959                                            jQuery('.mobile-tracking .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
34960                                            jQuery('.mobile-tracking .TotalItemQuantityChoose').html('(' + cart.TotalItemQuantityChoose + ' sản phẩm)');
34961
34962                                            if (cart.IsVAT == true) {
34963                                                if (!lib3p_helper.utility.hasValueString(cart.VATCode)) cart.VATCode = "";
34964                                                if (!lib3p_helper.utility.hasValueString(cart.VATDVQHNS)) cart.VATDVQHNS = "";
34965                                                if (!lib3p_helper.utility.hasValueString(cart.VATIdentityNo)) cart.VATIdentityNo = "";
34966                                                if (!lib3p_helper.utility.hasValueString(cart.VATPassportNo)) cart.VATPassportNo = "";
34967                                                if (!lib3p_helper.utility.hasValueString(cart.VATBuyerName)) cart.VATBuyerName = "";
34968                                                if (!lib3p_helper.utility.hasValueString(cart.VATAddress)) cart.VATAddress = "";
34969                                                if (!lib3p_helper.utility.hasValueString(cart.VATEmail)) cart.VATEmail = "";
34970                                                if (!lib3p_helper.utility.hasValueString(cart.VATPhone)) cart.VATPhone = "";
34971                                                if (!lib3p_helper.utility.hasValueString(cart.VATContactName)) cart.VATContactName = "";
34972
34973                                                jQuery('.page-tracking .vat .chon-1').hide();
34974                                                jQuery('.page-tracking .vat .chon-2').hide();
34975                                                jQuery('.page-tracking .vat .chon-3').hide();
34976                                                jQuery('.mobile-tracking .vat .chon-1').hide();
34977                                                jQuery('.mobile-tracking .vat .chon-2').hide();
34978                                                jQuery('.mobile-tracking .vat .chon-3').hide();
34979                                                if (cart.VATType > 0) {
34980                                                    jQuery('.page-tracking .vat .chon-' + cart.VATType).show();
34981                                                    jQuery('.mobile-tracking .vat .chon-' + cart.VATType).show();
34982                                                }
34983                                                jQuery('.page-tracking .don-hang .tong-ket .VATCode').html('Mã số thuế: ' + cart.VATCode);
34984                                                jQuery('.page-tracking .don-hang .tong-ket .VATDVQHNS').html('Mã ĐVQHNS: ' + cart.VATDVQHNS);
34985                                                jQuery('.page-tracking .don-hang .tong-ket .VATIdentityNo').html('Số định danh: ' + cart.VATIdentityNo);
34986                                                jQuery('.page-tracking .don-hang .tong-ket .VATPassportNo').html('Số hộ chiếu: ' + cart.VATPassportNo);
34987                                                jQuery('.page-tracking .don-hang .tong-ket .VATBuyerName').html('Tên người mua hàng: ' + cart.VATBuyerName);
34988                                                jQuery('.page-tracking .don-hang .tong-ket .VATCompany').html('Tên Công ty/Tổ chức/HKD: ' + cart.VATCompany);
34989                                                jQuery('.page-tracking .don-hang .tong-ket .VATAddress').html('Địa chỉ: ' + cart.VATAddress);
34990                                                jQuery('.page-tracking .don-hang .tong-ket .VATEmail').html('Email nhận hóa đơn: ' + cart.VATEmail);
34991                                                jQuery('.page-tracking .don-hang .tong-ket .VATPhone').html('Số điện thoại liên hệ: ' + cart.VATPhone);
34992                                                jQuery('.page-tracking .don-hang .tong-ket .VATContactName').html('Tên người liên hệ: ' + cart.VATContactName);
34993
34994                                                jQuery('.mobile-tracking .don-hang .tong-ket .VATCode').html('Mã số thuế: ' + cart.VATCode);
34995                                                jQuery('.mobile-tracking .don-hang .tong-ket .VATDVQHNS').html('Mã ĐVQHNS: ' + cart.VATDVQHNS);
34996                                                jQuery('.mobile-tracking .don-hang .tong-ket .VATIdentityNo').html('Số định danh: ' + cart.VATIdentityNo);
34997                                                jQuery('.mobile-tracking .don-hang .tong-ket .VATPassportNo').html('Số hộ chiếu: ' + cart.VATPassportNo);
34998                                                jQuery('.mobile-tracking .don-hang .tong-ket .VATBuyerName').html('Tên người mua hàng: ' + cart.VATBuyerName);
34999                                                jQuery('.mobile-tracking .don-hang .tong-ket .VATCompany').html('Tên Công ty/Tổ chức/HKD: ' + cart.VATCompany);
35000                                                jQuery('.mobile-tracking .don-hang .tong-ket .VATAddress').html('Địa chỉ: ' + cart.VATAddress);
35001                                                jQuery('.mobile-tracking .don-hang .tong-ket .VATEmail').html('Email nhận hóa đơn: ' + cart.VATEmail);
35002                                                jQuery('.mobile-tracking .don-hang .tong-ket .VATPhone').html('Số điện thoại liên hệ: ' + cart.VATPhone);
35003                                                jQuery('.mobile-tracking .don-hang .tong-ket .VATContactName').html('Tên người liên hệ: ' + cart.VATContactName);
35004                                            }
35005                                            else {
35006                                                jQuery('.page-tracking .don-hang .tong-ket .vat').html('');
35007                                                if (lib3p_helper.utility.hasValueString(cart.RemarkClient)) {
35008                                                    jQuery('.page-tracking .don-hang .tong-ket .vat').hide();
35009                                                    jQuery('.page-tracking .don-hang .tong-ket .cot-trai .ghichu').addClass('first');
35010                                                }
35011                                                else {
35012                                                    jQuery('.page-tracking .don-hang .tong-ket .vat').css('opacity', '0');
35013                                                }
35014                                                jQuery('.mobile-tracking .don-hang .tong-ket .vat').html('');
35015                                                jQuery('.mobile-tracking .don-hang .tong-ket .vat').hide();
35016                                            }
35017                                            if (lib3p_helper.utility.hasValueString(cart.RemarkClient)) {
35018                                                jQuery('.page-tracking .don-hang .tong-ket .RemarkClient').html(cart.RemarkClient);
35019                                                jQuery('.mobile-tracking .don-hang .tong-ket .RemarkClient').html(cart.RemarkClient);
35020                                            }
35021                                            else {
35022                                                jQuery('.page-tracking .don-hang .tong-ket .ghichu').html('');
35023                                                jQuery('.page-tracking .don-hang .tong-ket .ghichu').hide();
35024                                                jQuery('.mobile-tracking .don-hang .tong-ket .ghichu').html('');
35025                                                jQuery('.mobile-tracking .don-hang .tong-ket .ghichu').hide();
35026                                            }
35027
35028                                            var TotalSub = 0;
35029                                            var TotalWithShip = 0;
35030                                            jQuery('.page-tracking .TotalAmountShipping-sub').hide();
35031                                            jQuery('.mobile-tracking .TotalAmountShipping-sub').hide();
35032                                            if (cart.TotalAmount > 0 && cart.ShippingFee > 0) {
35033                                                var temp = cart.TotalAmount + cart.ShippingFee;
35034                                                if (cart.ShippingDiscount > 0) {
35035                                                    temp -= cart.ShippingDiscount;
35036                                                }
35037                                                TotalWithShip = temp;
35038                                                jQuery('.page-tracking .TotalAmountShipping').html(lib3p_helper.utility.formatMoney(temp) + 'đ
35038');
35039                                                jQuery('.mobile-tracking .TotalAmountShipping').html(lib3p_helper.utility.formatMoney(temp) + 'đ');
35040                                                jQuery('.page-tracking .TotalAmountShipping-sub').show();
35041                                                jQuery('.mobile-tracking .TotalAmountShipping-sub').show();
35042                                            }
35043                                            jQuery('.page-tracking .don-hang .PolicyMembership-sub').hide();
35044                                            jQuery('.page-tracking .don-hang .TotalAmountKHTT-sub').hide();
35045                                            jQuery('.mobile-tracking .don-hang .PolicyMembership-sub').hide();
35046                                            jQuery('.mobile-tracking .don-hang .TotalAmountKHTT-sub').hide();
35047                                            if (cart.TotalAmount > 0 && cart.PolicyMembership > 0) {
35048                                                jQuery('.page-tracking .don-hang .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(cart.PolicyMembership) + 'đ');
35049                                                jQuery('.page-tracking .don-hang .PolicyMembership-sub').show();
35050                                                jQuery('.page-tracking .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(TotalWithShip - cart.PolicyMembership - cart.CouponOrder) + 'đ');
35051                                                jQuery('.page-tracking .TotalAmountKHTT-sub').show();
35052                                                jQuery('.mobile-tracking .don-hang .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(cart.PolicyMembership) + 'đ');
35053                                                jQuery('.mobile-tracking .don-hang .PolicyMembership-sub').show();
35054                                                jQuery('.mobile-tracking .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(TotalWithShip - cart.PolicyMembership - cart.CouponOrder) + 'đ');
35055                                                jQuery('.mobile-tracking .TotalAmountKHTT-sub').show();
35056                                                TotalSub += cart.PolicyMembership;
35057                                            }
35058                                            jQuery('.page-tracking .CouponOrder-sub').hide();
35059                                            jQuery('.mobile-tracking .CouponOrder-sub').hide();
35060                                            if (cart.CouponOrder > 0) {
35061                                                jQuery('.page-tracking .don-hang .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(cart.CouponOrder) + 'đ');
35062                                                jQuery('.page-tracking .don-hang .CouponOrder-sub').show();
35063                                                jQuery('.mobile-tracking .don-hang .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(cart.CouponOrder) + 'đ');
35064                                                jQuery('.mobile-tracking .don-hang .CouponOrder-sub').show();
35065                                                TotalSub += cart.CouponOrder;
35066                                            }
35067                                            jQuery('.page-tracking .don-hang .TotalAmount').html(lib3p_helper.utility.formatMoney(cart.TotalAmount) + 'đ');
35068                                            jQuery('.page-tracking .don-hang .CouponPaid-sub').hide();
35069                                            jQuery('.mobile-tracking .don-hang .TotalAmount').html(lib3p_helper.utility.formatMoney(cart.TotalAmount) + 'đ');
35070                                            jQuery('.mobile-tracking .don-hang .CouponPaid-sub').hide();
35071                                            if (cart.CouponPaid > 0) {
35072                                                jQuery('.page-tracking .don-hang .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(cart.CouponPaid) + 'đ');
35073                                                jQuery('.page-tracking .don-hang .CouponPaid-sub').show();
35074                                                jQuery('.mobile-tracking .don-hang .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(cart.CouponPaid) + 'đ');
35075                                                jQuery('.mobile-tracking .don-hang .CouponPaid-sub').show();
35076                                                TotalSub += cart.CouponPaid;
35077                                            }
35078                                            jQuery('.page-tracking .don-hang .ShippingFee').html('chưa xác định');
35079                                            jQuery('.mobile-tracking .don-hang .ShippingFee').html('chưa xác định');
35080                                            if (cart.ShippingFee > 0) {
35081                                                jQuery('.page-tracking .don-hang .ShippingFee').html(lib3p_helper.utility.formatMoney(cart.ShippingFee) + 'đ');
35082                                                jQuery('.mobile-tracking .don-hang .ShippingFee').html(lib3p_helper.utility.formatMoney(cart.ShippingFee) + 'đ');
35083                                            }
35084                                            jQuery('.page-tracking .don-hang .ShippingDiscount-sub').hide();
35085                                            jQuery('.mobile-tracking .don-hang .ShippingDiscount-sub').hide();
35086                                            if (cart.ShippingDiscount > 0) {
35087                                                jQuery('.page-tracking .don-hang .ShippingDiscount').html(lib3p_helper.utility.formatMoney('-' + cart.ShippingDiscount) + 'đ');
35088                                                jQuery('.page-tracking .don-hang .ShippingDiscount-sub').show();
35089                                                jQuery('.mobile-tracking .don-hang .ShippingDiscount').html(lib3p_helper.utility.formatMoney('-' + cart.ShippingDiscount) + 'đ');
35090                                                jQuery('.mobile-tracking .don-hang .ShippingDiscount-sub').show();
35091                                                TotalSub += cart.ShippingDiscount;
35092                                            }
35093                                            if (TotalSub > 0) {
35094                                                jQuery('.page-tracking .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
35095                                                jQuery('.mobile-tracking .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
35096                                            }
35097                                            else {
35098                                                jQuery('.page-tracking .TotalSub').html('');
35099                                                jQuery('.mobile-tracking .TotalSub').html('');
35100                                            }
35101                                            jQuery('.page-tracking .don-hang .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
35102                                            jQuery('.mobile-tracking .don-hang .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
35103                                        }
35104                                        else {
35105                                            jQuery('.page-tracking .ket-qua-auth .don-hang').hide();
35106                                            jQuery('.mobile-tracking .ket-qua-auth .don-hang').hide();
35107                                        } */
35108                                    }
35109                                    else {
35110                                        if (!jQuery('.page-tracking .tim-kiem .nhap-lieu form .input input').hasClass('error')) {
35111                                            jQuery('.page-tracking .tim-kiem .nhap-lieu form .input input').addClass('error');
35112                                            jQuery('.mobile-tracking .tim-kiem .nhap-lieu form .input input').addClass('error');
35113                                        }
35114                                        jQuery('.page-tracking .tim-kiem .nhap-lieu form div.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng kiểm tra lại mã đơn hàng thuộc các đơn mà tài khoản bạn đã đặt trong vòng 30 ngày gần đây.</span>');
35115                                        jQuery('.mobile-tracking .tim-kiem .nhap-lieu form div.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng kiểm tra lại mã đơn hàng thuộc các đơn mà tài khoản bạn đã đặt trong vòng 30 ngày gần đây.</span>');
35116                                    }
35117                                }, function (err) {
35118                                    throw err;
35119                                });
35120                            }
35121                            else {
35122                                lib3p.common_cartGet().then(function (resCart) {
35123                                    window.pars3p.cart = resCart;
35124                                    
35125                                    var OrderPhone = '';
35126                                    var OrderPhoneOTP = '';
35127                                    if(lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhone)) {
35128                                        OrderPhone = window.pars3p.cart.OrderPhone;
35129                                    }
35130                                    if(lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP)) {
35131                                        OrderPhoneOTP = window.pars3p.cart.OrderPhoneOTP;
35132                                    }
35133                                    lib3p.common_PostURL(window.pars3p.api.public.Tracking_OrderV2, { OrderNo:data.orderid, OrderPhone:OrderPhone, OrderPhoneOTP:OrderPhoneOTP }, function (res) {
35134                                        if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn) && lib3p_helper.utility.hasValueString(res.ObjectReturn.OrderNo)) {                                            
35135                                            var cart = res.ObjectReturn;
35136                                            if (lib3p_helper.utility.hasListValue(cart.CartDetails)) {
35137                                                cart.OrderDate = lib3p_helper.utility.dateGet(cart.OrderDate);
35138                                                cart.StepDate = lib3p_helper.utility.dateGet(cart.StepDate);
35139                                                cart.EstDelivery = lib3p_helper.utility.dateGet(cart.EstDelivery);
35140                                                cart.DeliveriedDate = lib3p_helper.utility.dateGet(cart.DeliveriedDate);
35141                                                lib3p.pageTracking.LoadCart(cart);
35142                                                window.pars3p.tempID = cart.Code;
35143                                            }    
35144                                            else {
35145                                                jQuery('.page-tracking').addClass('kq');
35146                                                jQuery('.mobile-tracking').addClass('kq');
35147                                                lib3p.pageTracking.DoiTrangThai(cart);
35148                                            }                                        
35149                                            /* if(res.ObjectReturn.IsAnonymous != true) {
35150                                                jQuery('.page-tracking .thong-tin-don-hang .tieu-de-dangnhap').show();
35151                                                jQuery('.mobile-tracking .thong-tin-don-hang .tieu-de-dangnhap').show();
35152                                            } */
35153                                        }
35154                                        else {
35155                                            if (!jQuery('.page-tracking .tim-kiem .nhap-lieu form .input input').hasClass('error')) {
35156                                                jQuery('.page-tracking .tim-kiem .nhap-lieu form .input input').addClass('error');
35157                                                jQuery('.mobile-tracking .tim-kiem .nhap-lieu form .input input').addClass('error');
35158                                            }
35159                                            jQuery('.page-tracking .tim-kiem .nhap-lieu form div.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng kiểm tra lại mã đơn hàng thuộc các đơn mà tài khoản bạn đã đặt trong vòng 30 ngày gần đây.</span>');
35160                                            jQuery('.mobile-tracking .tim-kiem .nhap-lieu form div.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng kiểm tra lại mã đơn hàng thuộc các đơn mà tài khoản bạn đã đặt trong vòng 30 ngày gần đây.</span>');
35161                                        }
35162                                    }, function (err) {
35163                                        throw err;
35164                                    });
35165                                });
35166                                
35167                            }
35168                        }
35169                    }
35170
35171                }, window.pars3p.timeAsync);
35172            });
35173        },
35174        LoadCart: function(cart) {
35175            jQuery('.page-tracking').addClass('kq-auth');
35176            jQuery('.mobile-tracking').addClass('kq-auth');
35177
35178            var html = '';
35179            if (lib3p_helper.utility.hasListValue(cart.CartDetails)) {
35180                if(cart.IsGift == true && lib3p_helper.utility.hasValue(cart.GiftBeforeTime)) {
35181                    jQuery('.ket-qua-auth .thong-tin-don-hang .nhanqua').show();
35182                }
35183                if(lib3p_helper.utility.hasValue(cart.SendPaymentDate) && (cart.StatusID == 2 || cart.StatusID == 4)) {
35184                    jQuery('.ket-qua-auth .thong-tin-don-hang .thanhtoan').show();
35185                }
35186                cart.TotalItemQuantity = 0;
35187                cart.TotalItemQuantityChoose = 0;
35188                cart.CartDetails.forEach(function (c, cidx) {
35189                    if (c.OrderQuantity > 0) {
35190                        cart.TotalItemQuantity += c.OrderQuantity;
35191                        cart.TotalItemQuantityChoose += c.OrderQuantity;
35192
35193                        html += '<div class="product">';
35194                        html += '<div class="name"><div class="image"><a href="' + c.Alias + '"><img src="' + c.ImageSetting + '" /></a></div><div class="text s14 cl-gregray900 regular400"><a href="' + c.Alias + '">' + c.ProductName + '</a><br/>' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</div></div>';
35195                        html += '<div class="soluong s14 cl-gregray900 medium500">' + c.OrderQuantity + '</div>';
35196                        html += '<div class="thanhtien s14 cl-gregray900 regular400">' + lib3p_helper.utility.formatMoney(c.OrderQuantity * c.UnitPrice) + 'đ</div>';
35197                        html += '</div>';
35198
35199                        if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
35200                            var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID == c.Code; });
35201                            if (lib3p_helper.utility.hasListValue(lstGift)) {
35202                                html += '<div class="product-gift">';
35203                                html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" class="s14 cl-gregray900 medium500" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Quà tặng kèm sản phẩm</button></div>';
35204                                html += '<div class="product-gift-data sl-gregray200">';
35205                                lstGift.forEach(function (g) {
35206                                    html += '<div class="dong">';
35207                                    html += '<div class="name"><div class="image"><img src="' + g.ImageThumb + '" /></div><div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div></div>';
35208                                    html += '<div class="soluong s14 cl-gregray900 medium500">' + g.Quantity + '</div>';
35209                                    html += '<div class="thanhtien"></div>';
35210                                    html += '</div>';
35211                                });
35212                                html += '</div>';
35213                                html += '</div>';
35214                            }
35215                        }
35216                    }
35217                });
35218                if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
35219                    var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID > 0 != true; });
35220                    if (lib3p_helper.utility.hasListValue(lstGift)) {
35221                        html += '<div class="product-gift hienthi"><div class="line b-gregray200">&nbsp;</div>';
35222                        html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" class="s14 cl-gregray900 medium500" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Quà tặng kèm đơn hàng</button></div>';
35223                        html += '<div class="product-gift-data sl-gregray200">';
35224                        lstGift.forEach(function (g) {
35225                            html += '<div class="dong">';
35226                            html += '<div class="name"><div class="image"><img src="' + g.ImageThumb + '" /></div><div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div></div>';
35227                            html += '<div class="soluong s14 cl-gregray900 medium500">' + g.Quantity + '</div>';
35228                            html += '<div class="thanhtien"></div>';
35229                            html += '</div>';
35230                        });
35231                        html += '</div>';
35232                        html += '</div>';
35233                    }
35234                }
35235                if (cart.CartDetails.length == 1) {
35236                    jQuery('.page-order-history-detail .san-pham.anchitiet').removeClass('anchitiet');
35237                    jQuery('.page-order-history-detail .san-pham .xem-them').hide();
35238                    jQuery('.mobile-order-history-detail .san-pham.anchitiet').removeClass('anchitiet');
35239                    jQuery('.mobile-order-history-detail .san-pham .xem-them').hide();
35240                }
35241                jQuery('.page-tracking .san-pham .chi-tiet').html(html);
35242                html = '';
35243                cart.TotalItemQuantity = 0;
35244                cart.TotalItemQuantityChoose = 0;
35245                cart.CartDetails.forEach(function (c, cidx) {
35246                    if (c.OrderQuantity > 0) {
35247                        cart.TotalItemQuantity += c.OrderQuantity;
35248                        cart.TotalItemQuantityChoose += c.OrderQuantity;
35249
35250                        html += '<div class="product">';
35251                        html += '<div class="image"><a href="' + c.Alias + '"><img src="' + c.ImageSetting + '" /></a></div>';
35252                        html += '<div class="name">';
35253                        html += '<div class="text s14 cl-gregray900 regular400"><a href="' + c.Alias + '">' + c.ProductName + '</a></div>';
35254                        html += '<div class="text-2"><div class="s14 cl-gregray900 sibold600">' + lib3p_helper.utility.formatMoney(c.UnitPrice) + 'đ</div><div class="soluong s14 cl-gregray900 medium500">x&nbsp;' + c.OrderQuantity + '</div></div>';
35255                        html += '</div>';
35256                        html += '</div>';
35257
35258                        if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
35259                            var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID == c.Code; });
35260                            if (lib3p_helper.utility.hasListValue(lstGift)) {
35261                                html += '<div class="product-gift">';
35262                                html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" class="s14 cl-gregray900 medium500" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Quà tặng kèm sản phẩm</button></div>';
35263                                html += '<div class="product-gift-data sl-gregray200">';
35264                                lstGift.forEach(function (g) {
35265                                    html += '<div class="dong">';
35266                                    html += '<div class="image"><img src="' + g.ImageThumb + '" /></div>';
35267                                    html += '<div class="name">';
35268                                    html += '<div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div>';
35269                                    html += '<div class="text-2"><div class="s14 cl-gregray900 sibold600"></div><div class="soluong s14 cl-gregray900 medium500">x&nbsp;' + g.Quantity + '</div></div>';
35270                                    html += '</div>';
35271                                    html += '</div>';
35272                                });
35273                                html += '</div>';
35274                                html += '</div>';
35275                            }
35276                        }
35277                    }
35278                });
35279                if (lib3p_helper.utility.hasListValue(cart.ListGift)) {
35280                    var lstGift = cart.ListGift.filter(function (g) { return g.CategoryID > 0 != true; });
35281                    if (lib3p_helper.utility.hasListValue(lstGift)) {
35282                        html += '<div class="product-gift hienthi"><div class="line b-gregray200">&nbsp;</div>';
35283                        html += '<div class="product-gift-title"><button type="button" aria-label="hachihachi" class="s14 cl-gregray900 medium500" onclick="lib3p.pageCartThanks.onGiftToggle_Click(this)"><img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/cart_03.png" /> Quà tặng kèm đơn hàng</button></div>';
35284                        html += '<div class="product-gift-data sl-gregray200">';
35285                        lstGift.forEach(function (g) {
35286                            html += '<div class="dong">';
35287                            html += '<div class="image"><img src="' + g.ImageThumb + '" /></div>';
35288                            html += '<div class="name">';
35289                            html += '<div class="text s14 cl-gregray900 regular400">' + g.ProductName + '</div>';
35290                            html += '<div class="text-2"><div class="s14 cl-gregray900 sibold600"></div><div class="soluong s14 cl-gregray900 medium500">x&nbsp;' + g.Quantity + '</div></div>';
35291                            html += '</div>';
35292                            html += '</div>';
35293                        });
35294                        html += '</div>';
35295                        html += '</div>';
35296                    }
35297                }
35298                jQuery('.mobile-tracking .san-pham .chi-tiet').html(html);
35299
35300                jQuery('.page-tracking .OrderNo').html(cart.OrderNo);
35301                jQuery('.page-tracking .EstDelivery').html(lib3p_helper.utility.formatDateDDMMYYYYHHmm(cart.EstDelivery));
35302                jQuery('.page-tracking .ReceivedBy').html(cart.ReceivedBy);
35303                jQuery('.page-tracking .Address').html(cart.Address);
35304                jQuery('.page-tracking .Cellphone').html(cart.Cellphone);
35305                jQuery('.page-tracking .TransportName').html(cart.TransportName);
35306                jQuery('.page-tracking .PaymentMethod').html(cart.PaymentMethod);
35307                jQuery('.page-tracking .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
35308                jQuery('.page-tracking .TotalItemQuantityChoose').html('(' + cart.TotalItemQuantityChoose + ' sản phẩm)');
35309
35310                jQuery('.mobile-tracking .OrderNo').html(cart.OrderNo);
35311                jQuery('.mobile-tracking .EstDelivery').html(lib3p_helper.utility.formatDateDDMMYYYYHHmm(cart.EstDelivery));
35312                jQuery('.mobile-tracking .ReceivedBy').html(cart.ReceivedBy);
35313                jQuery('.mobile-tracking .Address').html(cart.Address);
35314                jQuery('.mobile-tracking .Cellphone').html(cart.Cellphone);
35315                jQuery('.mobile-tracking .TransportName').html(cart.TransportName);
35316                jQuery('.mobile-tracking .PaymentMethod').html(cart.PaymentMethod);
35317                jQuery('.mobile-tracking .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
35318                jQuery('.mobile-tracking .TotalItemQuantityChoose').html('(' + cart.TotalItemQuantityChoose + ' sản phẩm)');
35319
35320                if (cart.IsVAT == true) {
35321                    if (!lib3p_helper.utility.hasValueString(cart.VATCode)) cart.VATCode = "";
35322                    if (!lib3p_helper.utility.hasValueString(cart.VATDVQHNS)) cart.VATDVQHNS = "";
35323                    if (!lib3p_helper.utility.hasValueString(cart.VATIdentityNo)) cart.VATIdentityNo = "";
35324                    if (!lib3p_helper.utility.hasValueString(cart.VATPassportNo)) cart.VATPassportNo = "";
35325                    if (!lib3p_helper.utility.hasValueString(cart.VATBuyerName)) cart.VATBuyerName = "";
35326                    if (!lib3p_helper.utility.hasValueString(cart.VATAddress)) cart.VATAddress = "";
35327                    if (!lib3p_helper.utility.hasValueString(cart.VATEmail)) cart.VATEmail = "";
35328                    if (!lib3p_helper.utility.hasValueString(cart.VATPhone)) cart.VATPhone = "";
35329                    if (!lib3p_helper.utility.hasValueString(cart.VATContactName)) cart.VATContactName = "";
35330
35331                    jQuery('.page-tracking .vat .chon-1').hide();
35332                    jQuery('.page-tracking .vat .chon-2').hide();
35333                    jQuery('.page-tracking .vat .chon-3').hide();
35334                    jQuery('.mobile-tracking .vat .chon-1').hide();
35335                    jQuery('.mobile-tracking .vat .chon-2').hide();
35336                    jQuery('.mobile-tracking .vat .chon-3').hide();
35337                    if (cart.VATType > 0) {
35338                        jQuery('.page-tracking .vat .chon-' + cart.VATType).show();
35339                        jQuery('.mobile-tracking .vat .chon-' + cart.VATType).show();
35340                    }
35341                    jQuery('.page-tracking .don-hang .tong-ket .VATCode').html('Mã số thuế: ' + cart.VATCode);
35342                    jQuery('.page-tracking .don-hang .tong-ket .VATDVQHNS').html('Mã ĐVQHNS: ' + cart.VATDVQHNS);
35343                    jQuery('.page-tracking .don-hang .tong-ket .VATIdentityNo').html('Số định danh: ' + cart.VATIdentityNo);
35344                    jQuery('.page-tracking .don-hang .tong-ket .VATPassportNo').html('Số hộ chiếu: ' + cart.VATPassportNo);
35345                    jQuery('.page-tracking .don-hang .tong-ket .VATBuyerName').html('Tên người mua hàng: ' + cart.VATBuyerName);
35346                    jQuery('.page-tracking .don-hang .tong-ket .VATCompany').html('Tên Công ty/Tổ chức/HKD: ' + cart.VATCompany);
35347                    jQuery('.page-tracking .don-hang .tong-ket .VATAddress').html('Địa chỉ: ' + cart.VATAddress);
35348                    jQuery('.page-tracking .don-hang .tong-ket .VATEmail').html('Email nhận hóa đơn: ' + cart.VATEmail);
35349                    jQuery('.page-tracking .don-hang .tong-ket .VATPhone').html('Số điện thoại liên hệ: ' + cart.VATPhone);
35350                    jQuery('.page-tracking .don-hang .tong-ket .VATContactName').html('Tên người liên hệ: ' + cart.VATContactName);
35351
35352                    jQuery('.mobile-tracking .don-hang .tong-ket .VATCode').html('Mã số thuế: ' + cart.VATCode);
35353                    jQuery('.mobile-tracking .don-hang .tong-ket .VATDVQHNS').html('Mã ĐVQHNS: ' + cart.VATDVQHNS);
35354                    jQuery('.mobile-tracking .don-hang .tong-ket .VATIdentityNo').html('Số định danh: ' + cart.VATIdentityNo);
35355                    jQuery('.mobile-tracking .don-hang .tong-ket .VATPassportNo').html('Số hộ chiếu: ' + cart.VATPassportNo);
35356                    jQuery('.mobile-tracking .don-hang .tong-ket .VATBuyerName').html('Tên người mua hàng: ' + cart.VATBuyerName);
35357                    jQuery('.mobile-tracking .don-hang .tong-ket .VATCompany').html('Tên Công ty/Tổ chức/HKD: ' + cart.VATCompany);
35358                    jQuery('.mobile-tracking .don-hang .tong-ket .VATAddress').html('Địa chỉ: ' + cart.VATAddress);
35359                    jQuery('.mobile-tracking .don-hang .tong-ket .VATEmail').html('Email nhận hóa đơn: ' + cart.VATEmail);
35360                    jQuery('.mobile-tracking .don-hang .tong-ket .VATPhone').html('Số điện thoại liên hệ: ' + cart.VATPhone);
35361                    jQuery('.mobile-tracking .don-hang .tong-ket .VATContactName').html('Tên người liên hệ: ' + cart.VATContactName);
35362                }
35363                else {
35364                    jQuery('.page-tracking .don-hang .tong-ket .vat').html('');
35365                    if (lib3p_helper.utility.hasValueString(cart.RemarkClient)) {
35366                        jQuery('.page-tracking .don-hang .tong-ket .vat').hide();
35367                        jQuery('.page-tracking .don-hang .tong-ket .cot-trai .ghichu').addClass('first');
35368                    }
35369                    else {
35370                        jQuery('.page-tracking .don-hang .tong-ket .vat').css('opacity', '0');
35371                    }
35372                    jQuery('.mobile-tracking .don-hang .tong-ket .vat').html('');
35373                    jQuery('.mobile-tracking .don-hang .tong-ket .vat').hide();
35374                }
35375                if (lib3p_helper.utility.hasValueString(cart.RemarkClient)) {
35376                    jQuery('.page-tracking .don-hang .tong-ket .RemarkClient').html(cart.RemarkClient);
35377                    jQuery('.mobile-tracking .don-hang .tong-ket .RemarkClient').html(cart.RemarkClient);
35378                }
35379                else {
35380                    jQuery('.page-tracking .don-hang .tong-ket .ghichu').html('');
35381                    jQuery('.page-tracking .don-hang .tong-ket .ghichu').hide();
35382                    jQuery('.mobile-tracking .don-hang .tong-ket .ghichu').html('');
35383                    jQuery('.mobile-tracking .don-hang .tong-ket .ghichu').hide();
35384                }
35385
35386                var TotalSub = 0;
35387                var TotalWithShip = 0;
35388                jQuery('.page-tracking .TotalAmountShipping-sub').hide();
35389                jQuery('.mobile-tracking .TotalAmountShipping-sub').hide();
35390                if (cart.TotalAmount > 0 && cart.ShippingFee > 0) {
35391                    var temp = cart.TotalAmount + cart.ShippingFee;
35392                    if (cart.ShippingDiscount > 0) {
35393                        temp -= cart.ShippingDiscount;
35394                    }
35395                    TotalWithShip = temp;
35396                    jQuery('.page-tracking .TotalAmountShipping').html(lib3p_helper.utility.formatMoney(temp) + 'đ');
35397                    jQuery('.mobile-tracking .TotalAmountShipping').html(lib3p_helper.utility.formatMoney(temp) + 'đ');
35398                    jQuery('.page-tracking .TotalAmountShipping-sub').show();
35399                    jQuery('.mobile-tracking .TotalAmountShipping-sub').show();
35400                }
35401                jQuery('.page-tracking .don-hang .PolicyMembership-sub').hide();
35402                jQuery('.page-tracking .don-hang .TotalAmountKHTT-sub').hide();
35403                jQuery('.mobile-tracking .don-hang .PolicyMembership-sub').hide();
35404                jQuery('.mobile-tracking .don-hang .TotalAmountKHTT-sub').hide();
35405                if (cart.TotalAmount > 0 && cart.PolicyMembership > 0) {
35406                    jQuery('.page-tracking .don-hang .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(cart.PolicyMembership) + 'đ');
35407                    jQuery('.page-tracking .don-hang .PolicyMembership-sub').show();
35408                    jQuery('.page-tracking .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(TotalWithShip - cart.PolicyMembership - cart.CouponOrder) + 'đ');
35409                    jQuery('.page-tracking .TotalAmountKHTT-sub').show();
35410                    jQuery('.mobile-tracking .don-hang .PolicyMembership').html('-' + lib3p_helper.utility.formatMoney(cart.PolicyMembership) + 'đ');
35411                    jQuery('.mobile-tracking .don-hang .PolicyMembership-sub').show();
35412                    jQuery('.mobile-tracking .TotalAmountKHTT').html(lib3p_helper.utility.formatMoney(TotalWithShip - cart.PolicyMembership - cart.CouponOrder) + 'đ');
35413                    jQuery('.mobile-tracking .TotalAmountKHTT-sub').show();
35414                    TotalSub += cart.PolicyMembership;
35415                }
35416                jQuery('.page-tracking .CouponOrder-sub').hide();
35417                jQuery('.mobile-tracking .CouponOrder-sub').hide();
35418                if (cart.CouponOrder > 0) {
35419                    jQuery('.page-tracking .don-hang .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(cart.CouponOrder) + 'đ');
35420                    jQuery('.page-tracking .don-hang .CouponOrder-sub').show();
35421                    jQuery('.mobile-tracking .don-hang .CouponOrder').html('-' + lib3p_helper.utility.formatMoney(cart.CouponOrder) + 'đ');
35422                    jQuery('.mobile-tracking .don-hang .CouponOrder-sub').show();
35423                    TotalSub += cart.CouponOrder;
35424                }
35425                jQuery('.page-tracking .don-hang .TotalAmount').html(lib3p_helper.utility.formatMoney(cart.TotalAmount) + 'đ');
35426                jQuery('.page-tracking .don-hang .CouponPaid-sub').hide();
35427                jQuery('.mobile-tracking .don-hang .TotalAmount').html(lib3p_helper.utility.formatMoney(cart.TotalAmount) + 'đ');
35428                jQuery('.mobile-tracking .don-hang .CouponPaid-sub').hide();
35429                if (cart.CouponPaid > 0) {
35430                    jQuery('.page-tracking .don-hang .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(cart.CouponPaid) + 'đ');
35431                    jQuery('.page-tracking .don-hang .CouponPaid-sub').show();
35432                    jQuery('.mobile-tracking .don-hang .CouponPaid').html('-' + lib3p_helper.utility.formatMoney(cart.CouponPaid) + 'đ');
35433                    jQuery('.mobile-tracking .don-hang .CouponPaid-sub').show();
35434                    TotalSub += cart.CouponPaid;
35435                }
35436                jQuery('.page-tracking .don-hang .ShippingFee').html('chưa xác định');
35437                jQuery('.mobile-tracking .don-hang .ShippingFee').html('chưa xác định');
35438                if (cart.ShippingFee > 0) {
35439                    jQuery('.page-tracking .don-hang .ShippingFee').html(lib3p_helper.utility.formatMoney(cart.ShippingFee) + 'đ');
35440                    jQuery('.mobile-tracking .don-hang .ShippingFee').html(lib3p_helper.utility.formatMoney(cart.ShippingFee) + 'đ');
35441                }
35442                jQuery('.p
35442age-tracking .don-hang .ShippingDiscount-sub').hide();
35443                jQuery('.mobile-tracking .don-hang .ShippingDiscount-sub').hide();
35444                if (cart.ShippingDiscount > 0) {
35445                    jQuery('.page-tracking .don-hang .ShippingDiscount').html(lib3p_helper.utility.formatMoney('-' + cart.ShippingDiscount) + 'đ');
35446                    jQuery('.page-tracking .don-hang .ShippingDiscount-sub').show();
35447                    jQuery('.mobile-tracking .don-hang .ShippingDiscount').html(lib3p_helper.utility.formatMoney('-' + cart.ShippingDiscount) + 'đ');
35448                    jQuery('.mobile-tracking .don-hang .ShippingDiscount-sub').show();
35449                    TotalSub += cart.ShippingDiscount;
35450                }
35451                if (TotalSub > 0) {
35452                    jQuery('.page-tracking .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
35453                    jQuery('.mobile-tracking .TotalSub').html('-' + lib3p_helper.utility.formatMoney(TotalSub) + 'đ');
35454                }
35455                else {
35456                    jQuery('.page-tracking .TotalSub').html('');
35457                    jQuery('.mobile-tracking .TotalSub').html('');
35458                }
35459                jQuery('.page-tracking .don-hang .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
35460                jQuery('.mobile-tracking .don-hang .Payment').html(lib3p_helper.utility.formatMoney(cart.Payment) + 'đ');
35461            }
35462            else {
35463                jQuery('.page-tracking .ket-qua-auth .don-hang').hide();
35464                jQuery('.mobile-tracking .ket-qua-auth .don-hang').hide();
35465            }
35466        },
35467        DoiTrangThai: function (cart) {
35468            jQuery('.page-tracking .OrderNo').html(cart.OrderNo);
35469            jQuery('.mobile-tracking .OrderNo').html(cart.OrderNo);
35470            jQuery('.page-tracking .trang-thai .noi-dung').each(function () {
35471                var el = this;
35472                var status = 6;
35473                lib3p.pageTracking.DoiTrangThai_Child(el, cart, status);
35474                status = 7;
35475                lib3p.pageTracking.DoiTrangThai_Child(el, cart, status);
35476                status = 10;
35477                lib3p.pageTracking.DoiTrangThai_Child(el, cart, status);
35478                status = 11;
35479                lib3p.pageTracking.DoiTrangThai_Child(el, cart, status);
35480                status = 12;
35481                lib3p.pageTracking.DoiTrangThai_Child(el, cart, status);
35482                if (cart.StatusID < status) {
35483                    if (lib3p_helper.utility.hasValue(cart.EstDelivery)) {
35484                        var dt = new Date(cart.EstDelivery);
35485                        jQuery(el).find('.txt-' + status + ' .ngay').html(lib3p_helper.utility.formatDateDDMMYYYY(dt));
35486                    }
35487                }
35488            });
35489            jQuery('.mobile-tracking .trang-thai .noi-dung').each(function () {
35490                var el = this;
35491                var status = 6;
35492                lib3p.pageTracking.DoiTrangThai_Child(el, cart, status);
35493                status = 7;
35494                lib3p.pageTracking.DoiTrangThai_Child(el, cart, status);
35495                status = 10;
35496                lib3p.pageTracking.DoiTrangThai_Child(el, cart, status);
35497                status = 11;
35498                lib3p.pageTracking.DoiTrangThai_Child(el, cart, status);
35499                status = 12;
35500                lib3p.pageTracking.DoiTrangThai_Child(el, cart, status);
35501                if (cart.StatusID < status) {
35502                    if (lib3p_helper.utility.hasValue(cart.EstDelivery)) {
35503                        var dt = new Date(cart.EstDelivery);
35504                        jQuery(el).find('.txt-' + status + ' .ngay').html(lib3p_helper.utility.formatDateDDMMYYYY(dt));
35505                    }
35506                }
35507            });
35508            if (cart.StatusID == 12) {
35509                jQuery('.page-tracking .trang-thai .noi-dung .txt-12 .chuoi').html('Hoàn tất<br/>giao hàng');
35510                jQuery('.page-tracking .trang-thai .noi-dung .txt-12 .ngay').html(lib3p_helper.utility.formatDateDDMMYYYY(cart.DeliveriedDate));
35511                jQuery('.mobile-tracking .trang-thai .noi-dung .txt-12 .chuoi').html('Hoàn tất giao hàng');
35512                jQuery('.mobile-tracking .trang-thai .noi-dung .txt-12 .ngay').html(lib3p_helper.utility.formatDateDDMMYYYY(cart.DeliveriedDate));
35513            }
35514        },
35515        DoiTrangThai_Child: function (el, cart, status) {
35516            if (cart.StatusID > status) {
35517                jQuery(el).find('.step-' + status).addClass('cho
35517ose');
35518                jQuery(el).find('.step-' + status).next().addClass('choose');
35519            }
35520            else if (cart.StatusID == status) {
35521                jQuery(el).find('.step-' + status).addClass('active');
35522            }
35523            if (lib3p_helper.utility.hasListValue(cart.ListStatus)) {
35524                var find = cart.ListStatus.find(function (o) { return o.StatusID == status; });
35525                if (lib3p_helper.utility.hasValue(find) && lib3p_helper.utility.hasValue(find.StatusDate)) {
35526                    var dt = new Date(find.StatusDate);
35527                    jQuery(el).find('.txt-' + status + ' .ngay').html(lib3p_helper.utility.formatDateDDMMYYYY(dt));
35528                }
35529            }
35530        },
35531        onTimKiem_KeyDown: function (event, el) {
35532            var query = jQuery(el).closest('form');
35533            setTimeout(function () {
35534                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
35535                    /* var flag = true;
35536                    var ctr = query[0].orderid;
35537                    if(!lib3p_helper.utility.hasValueString(ctr.value)) {
35538                        flag = false;
35539                    }            
35540                    if(flag == true) {
35541                        jQuery(query[0]).removeClass('haserror');
35542                    }
35543                    else {
35544                        if(!jQuery(query[0]).hasClass('haserror')) {
35545                            jQuery(query[0]).addClass('haserror');
35546                        }
35547                    } */
35548                }
35549            }, 100);
35550        },
35551        onTimKiem_Submit: function (event, str) {
35552            /* if (!jQuery(event.target).hasClass('haserror')) {
35553                jQuery(event.target).find('div.error').html('');
35554                jQuery(event.target).find('.input input').removeClass('error');
35555
35556                var flag = true;
35557                var data = {
35558                    orderid: '',
35559                };
35560
35561                var ctr = event.target.orderid;
35562                data.orderid = ctr.value;
35563                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
35564                    flag = false;
35565                    if (!jQuery(ctr).hasClass('error')) {
35566                        jQuery(ctr).addClass('error');
35567                    }
35568                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng nhập thông tin</span>');
35569                }
35570
35571                if (flag == true) {
35572                    var url = lib3p_helper.utility.stringFormat(str, data.orderid);
35573                    window.location.href = url;
35574                }
35575            } */
35576            var data = { orderid: '' };
35577            var ctr = event.target.orderid;
35578            data.orderid = ctr.value;
35579            if (lib3p_helper.utility.hasValueString(ctr.value)) {
35580                var url = lib3p_helper.utility.stringFormat(str, data.orderid);
35581                window.location.href = url;
35582            }
35583            else {
35584                if (window.pars3p.auth.isLogin == true) {
35585                    lib3p.common_AuthPostURL(window.pars3p.api.auth.Tracking_OrderLast, { }, function (res) {
35586                        if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn)) {
35587                            if(lib3p_helper.utility.hasValueString(res.ObjectReturn.OrderNo)) {
35588                                var url = lib3p_helper.utility.stringFormat(str, res.ObjectReturn.OrderNo);
35589                                window.location.href = url;
35590                            }
35591                        }
35592                    }, function (err) {
35593                        throw err;
35594                    });
35595
35596                }
35597                else {
35598                    var OrderPhone = '';
35599                    var OrderPhoneOTP = '';
35600                    if(lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhone)) {
35601                        OrderPhone = window.pars3p.cart.OrderPhone;
35602                    }
35603                    if(lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP)) {
35604                        OrderPhoneOTP = window.pars3p.cart.OrderPhoneOTP;
35605                    }
35606                    lib3p.common_PostURL(window.pars3p.api.public.Tracking_OrderLast, { OrderPhone:OrderPhone, OrderPhoneOTP:OrderPhoneOTP }, function (res) {
35607                        if (lib3p_helper.utility.hasValue(res) && res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn)) {
35608                            if(lib3p_helper.utility.hasValueString(res.ObjectReturn.OrderNo)) {
35609                                var url = lib3p_helper.utility.stringFormat(str, res.ObjectReturn.OrderNo);
35610                                window.location.href = url;
35611                            }
35612                        }
35613                    }, function (err) {
35614                        throw err;
35615                    });
35616
35617                }
35618            }
35619
35620            event.preventDefault();
35621            return false;
35622        },
35623        onGift_Click: function() {
35624            if (window.pars3p.auth.isLogin == true) {
35625                lib3p.common_AuthPostURL(window.pars3p.api.auth.Tracking_OrderGift, { Code:window.pars3p.tempID }, function (res) {
35626                    if(lib3p_helper.utility.hasValueString(res)) {
35627                        window.location.href = res;
35628                    }
35629                    else {
35630                        window.location.reload();
35631                    }
35632                }, function (err) {
35633                    throw err;
35634                });
35635            }
35636            else {
35637                var OrderPhone = '';
35638                var OrderPhoneOTP = '';
35639                if(lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhone)) {
35640                    OrderPhone = window.pars3p.cart.OrderPhone;
35641                }
35642                if(lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP)) {
35643                    OrderPhoneOTP = window.pars3p.cart.OrderPhoneOTP;
35644                }
35645                lib3p.common_PostURL(window.pars3p.api.public.Tracking_OrderGift, { Code:window.pars3p.tempID, OrderPhone:OrderPhone, OrderPhoneOTP:OrderPhoneOTP }, function (res) {
35646                    if(lib3p_helper.utility.hasValueString(res)) {
35647                        window.location.href = res;
35648                    }
35649                    else {
35650                        window.location.reload();
35651                    }
35652                }, function (err) {
35653                    throw err;
35654                });
35655            }
35656
35657            return false;
35658        },
35659        onRepay_Click: function() {
35660            if (window.pars3p.auth.isLogin == true) {
35661                lib3p.common_AuthPostURL(window.pars3p.api.auth.Tracking_OrderRepayCheck, { Code:window.pars3p.tempID }, function (res) {
35662                    if (lib3p_helper.utility.hasValue(res) && res.Code > 0) {
35663                        if(res.AllowRepay == true) {
35664                            var query = jQuery('.popup-tracking-order-repay .hachi-modal');
35665                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
35666                                if (jQuery(query[0]).hasClass("d-none")) {
35667                                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
35668                                }
35669                            }
35670                        }
35671                        else if(res.AllowRepay == false) {
35672                            if (lib3p_helper.utility.hasValueString(res.StatusName)) {
35673                                var query = jQuery('.popup-tracking-order-repay-success .hachi-modal');
35674                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
35675                                    if (jQuery(query[0]).hasClass("d-none")) {
35676                                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
35677                                    }
35678                                }
35679                                setTimeout(function() {
35680                                    window.location.href = res.StatusName;
35681                                }, 3000);                                
35682                            }
35683                            else {
35684                                window.location.reload();
35685                            }
35686                        }
35687                    }
35688                }, function (err) {
35689                    throw err;
35690                });
35691            }
35692            else {
35693                var OrderPhone = '';
35694                var OrderPhoneOTP = '';
35695                if(lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhone)) {
35696                    OrderPhone = window.pars3p.cart.OrderPhone;
35697                }
35698                if(lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP)) {
35699                    OrderPhoneOTP = window.pars3p.cart.OrderPhoneOTP;
35700                }
35701                lib3p.common_PostURL(window.pars3p.api.public.Tracking_OrderRepayCheck, { Code:window.pars3p.tempID, OrderPhone:OrderPhone, OrderPhoneOTP:OrderPhoneOTP }, function (res) {
35702                    if (lib3p_helper.utility.hasValue(res) && res.Code > 0) {
35703                        if(res.AllowRepay == true) {
35704                            var query = jQuery('.popup-tracking-order-repay .hachi-modal');
35705                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
35706                                if (jQuery(query[0]).hasClass("d-none")) {
35707                                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
35708                                }
35709                            }
35710                        }
35711                        else if(res.AllowRepay == false) {
35712                            if (lib3p_helper.utility.hasValueString(res.StatusName)) {
35713                                var query = jQuery('.popup-tracking-order-repay-success .hachi-modal');
35714                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
35715                                    if (jQuery(query[0]).hasClass("d-none")) {
35716                                        jQuery(query[0]).removeClass("d-none").addClass("d-block");
35717                                    }
35718                                }
35719                                setTimeout(function() {
35720                                    window.location.href = res.StatusName;
35721                                }, 3000);                                
35722                            }
35723                            else {
35724                                window.location.reload();
35725                            }
35726                        }
35727                    }
35728                }, function (err) {
35729                    throw err;
35730                });
35731            }
35732
35733            return false;
35734        },
35735        onPopupRepay_Close: function () {
35736            var query = jQuery('.popup-tracking-order-repay .hachi-modal');
35737            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
35738                if (jQuery(query[0]).hasClass("d-block")) {
35739                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
35740                }
35741            }
35742            return false;
35743        },
35744        onPopupRepay_Ok: function () {
35745            if (window.pars3p.auth.isLogin == true) {
35746                lib3p.common_AuthPostURL(window.pars3p.api.auth.Tracking_OrderRepayGet, { Code:window.pars3p.tempID }, function (res) {
35747                    if(lib3p_helper.utility.hasValueString(res)) {
35748                        window.location.href = res;
35749                    }
35750                    else {
35751                        window.location.reload();
35752                    }
35753                }, function (err) {
35754                    throw err;
35755                });
35756            }
35757            else {
35758                var OrderPhone = '';
35759                var OrderPhoneOTP = '';
35760                if(lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhone)) {
35761                    OrderPhone = window.pars3p.cart.OrderPhone;
35762                }
35763                if(lib3p_helper.utility.hasValueString(window.pars3p.cart.OrderPhoneOTP)) {
35764                    OrderPhoneOTP = window.pars3p.cart.OrderPhoneOTP;
35765                }
35766                lib3p.common_PostURL(window.pars3p.api.public.Tracking_OrderRepayGet, { Code:window.pars3p.tempID, OrderPhone:OrderPhone, OrderPhoneOTP:OrderPhoneOTP }, function (res) {
35767                    if(lib3p_helper.utility.hasValueString(res)) {
35768                        window.location.href = res;
35769                    }
35770                    else {
35771                        window.location.reload();
35772                    }
35773                }, function (err) {
35774                    throw err;
35775                });
35776            }
35777            return false;
35778        },
35779        onPopupRepaySuccess_Close: function () {
35780            var query = jQuery('.popup-tracking-order-repay-success .hachi-modal');
35781            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
35782                if (jQuery(query[0]).hasClass("d-block")) {
35783                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
35784                }
35785            }
35786            return false;
35787        },
35788
35789    },
35790
35791    pageDangKyKHTT: {
35792        HasAccountType: {
35793            ChuaDangNhap: 1,
35794            TrungTaiKhoan: 2,
35795            KhacTaiKhoan: 3
35796        },
35797
35798        init: function () {
35799            var query = jQuery('.page-dangky-khtt');
35800            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
35801                window.pars3p.dangkykhtt.ID = jQuery(query[0]).data('id');
35802                window.pars3p.dangkykhtt.Code = jQuery(query[0]).data('code');
35803                window.pars3p.dangkykhtt.StoreID = jQuery(query[0]).data('storeid');
35804                window.pars3p.dangkykhtt.URL = jQuery(query[0]).data('k');
35805                window.pars3p.dangkykhtt.TransactionNo = jQuery(query[0]).data('no');
35806                window.pars3p.dangkykhtt.Ngay = jQuery(query[0]).data('ngay');
35807                window.pars3p.dangkykhtt.Thang = jQuery(query[0]).data('thang');
35808                window.pars3p.dangkykhtt.Nam = jQuery(query[0]).data('nam');
35809                window.pars3p.dangkykhtt.Province = jQuery(query[0]).data('province');
35810                window.pars3p.dangkykhtt.District = jQuery(query[0]).data('district');
35811
35812                if (lib3p_helper.utility.hasValueString(window.pars3p.dangkykhtt.URL) && lib3p_helper.utility.hasValueString(window.pars3p.dangkykhtt.TransactionNo)) {
35813                    lib3p.pageDangKyKHTT.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
35814                }
35815            }
35816        },
35817        init_async: function () {
35818            return new Promise(function (resolve, reject) {
35819                setTimeout(function () {
35820                    lib3p.pageDangKyKHTT.onCaptcha_Click();
35821                    var CouponExpired = lib3p_helper.utility.dateAddDay(new Date(), 90);
35822                    jQuery('.CouponExpired').html(lib3p_helper.utility.formatDateDDMMYYYY(CouponExpired));
35823
35824                    jQuery('.page-dangky-khtt form').removeClass('haserror');
35825                    jQuery('.mobile-dangky-khtt form').removeClass('haserror');
35826                    var browserW = lib3p.common_GetWidthBrowser();
35827                    /* 
35828                    if (browserW >= 800) {
35829                        var query = jQuery('.page-dangky-khtt form');
35830                        if(lib3p_helper.utility.hasValue(query) && query.length > 0) {
35831                            jQuery(query[0].FirstName).prop("disabled", true);
35832                            jQuery(query[0].LastName).prop("disabled", true);
35833                            jQuery(query[0].Captcha).prop("disabled", true);
35834                            jQuery(query[0].Cellphone).focus();
35835                        }                    
35836                        jQuery("#cboProvince_iteme
35836dit").prop("disabled", true);
35837                        jQuery("#cboDistrict_itemedit").prop("disabled", true);
35838                        jQuery("#cboNam_itemedit").prop("disabled", true);
35839                        jQuery("#cboThang_itemedit").prop("disabled", true);
35840                        jQuery("#cboNgay_itemedit").prop("disabled", true);
35841                    }
35842                    else {
35843                        var query = jQuery('.mobile-dangky-khtt form');
35844                        if(lib3p_helper.utility.hasValue(query) && query.length > 0) {
35845                            jQuery(query[0].FirstName).prop("disabled", true);
35846                            jQuery(query[0].LastName).prop("disabled", true);
35847                            jQuery(query[0].Captcha).prop("disabled", true);
35848                            jQuery(query[0].Cellphone).focus();
35849                        }
35850                        jQuery("#cboProvince_itemedit_m").prop("disabled", true);
35851                        jQuery("#cboDistrict_itemedit_m").prop("disabled", true);
35852                        jQuery("#cboNam_itemedit_m").prop("disabled", true);
35853                        jQuery("#cboThang_itemedit_m").prop("disabled", true);
35854                        jQuery("#cboNgay_itemedit_m").prop("disabled", true);
35855                    } */
35856
35857                    lib3p.common_PostURL(window.pars3p.api.public.Delivery_GetLocation, {}, function (res) {
35858                        if (lib3p_helper.utility.hasValue(res)) {
35859                            window.pars3p.location = res;
35860                            if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListProvince)) {
35861                                jQuery('select.cboProvince').html('<option value="-1"></option>');
35862                                window.pars3p.location.ListProvince.forEach(function (c, cidx) {
35863                                    jQuery('select.cboProvince').append('<option value="' + c.Code + '">' + c.ProvinceName + '</option>');
35864                                });
35865                            }
35866                        }
35867                    }, function (err) {
35868                        lib3p.log(err);
35869                    });
35870                    var year = (new Date()).getFullYear() - 10;
35871                    var i = 0;
35872                    jQuery('select.cboNam').append('<option value="-1"></option>');
35873                    jQuery('select.cboThang').append('<option value="-1"></option>');
35874                    jQuery('select.cboNgay').append('<option value="-1"></option>');
35875                    for (i = 0; i < 100; i++) {
35876                        jQuery('select.cboNam').append('<option value="' + (year - i) + '">' + (year - i) + '</option>');
35877                    }
35878                    for (i = 1; i <= 12; i++) {
35879                        jQuery('select.cboThang').append('<option value="' + i + '">' + i + '</option>');
35880                    }
35881                    for (i = 1; i <= 31; i++) {
35882                        jQuery('select.cboNgay').append('<option value="' + i + '">' + i + '</option>');
35883                    }
35884
35885                    if (browserW >= 800) {
35886                        jQuery("#cboProvince_itemedit").combobox({ change: function (opt) { lib3p.pageDangKyKHTT.onProvince_Change(opt, '#cboDistrict_itemedit') } });
35887                        jQuery("#cboDistrict_itemedit").combobox({ change: function (opt) { } });
35888                        jQuery("#cboNam_itemedit").combobox({ change: function (opt) { lib3p.pageDangKyKHTT.onCboNam_Change(opt) } });
35889                        jQuery("#cboThang_itemedit").combobox({ change: function (opt) { lib3p.pageDangKyKHTT.onCboThang_Change(opt) } });
35890                        jQuery("#cboNgay_itemedit").combobox({ change: function (opt) { lib3p.pageDangKyKHTT.onCboNgay_Change(opt) } });
35891
35892                        jQuery('.page-dangky-khtt .hasaccount').hide();
35893                        jQuery('.page-dangky-khtt .noaccount').hide();
35894
35895                    }
35896                    else {
35897                        jQuery("#cboProvince_itemedit_m").combobox({ change: function (opt) { lib3p.pageDangKyKHTT.onProvince_Change(opt, '#cboDistrict_itemedit_m') } });
35898                        jQuery("#cboDistrict_itemedit_m").combobox({ change: function (opt) { } });
35899                        jQuery("#cboNam_itemedit_m").combobox({ change: function (opt) { lib3p.pageDangKyKHTT.onCboNam_Change(opt) } });
35900                        jQuery("#cboThang_itemedit_m").combobox({ change: function (opt) { lib3p.pageDangKyKHTT.onCboThang_Change(opt) } });
35901                        jQuery("#cboNgay_itemedit_m").combobox({ change: function (opt) { lib3p.pageDangKyKHTT.onCboNgay_Change(opt) } });
35902
35903                        jQuery('.mobile-dangky-khtt .hasaccount').hide();
35904                        jQuery('.mobile-dangky-khtt .noaccount').hide();
35905
35906                    }
35907
35908                }, window.pars3p.timeAsync);
35909            });
35910        },
35911        onProvince_Change: function (opt, iddistrict) {
35912            if (lib3p_helper.utility.hasValueString(opt.value)) {
35913                if (lib3p_helper.utility.hasListValue(window.pars3p.location.ListDistrict)) {
35914                    var lstTemp = window.pars3p.location.ListDistrict.filter(function (c) { return c.ProvinceID == opt.value; });
35915                    jQuery(iddistrict).html('<option value="-1"></option>');
35916                    lstTemp.forEach(function (c, cidx) {
35917                        jQuery(iddistrict).append('<option value="' + c.Code + '">' + c.DistrictName + '</option>');
35918                    });
35919                }
35920            }
35921        },
35922        onCboNgay_Change: function (opt) {
35923            var query = jQuery(opt).closest('form');
35924            setTimeout(function () {
35925                lib3p.pageDangKyKHTT.Check(query);
35926            }, 100);
35927        },
35928        onCboThang_Change: function (opt) {
35929            var query = jQuery(opt).closest('form');
35930            setTimeout(function () {
35931                lib3p.pageDangKyKHTT.Check(query);
35932            }, 100);
35933        },
35934        onCboNam_Change: function (opt) {
35935            var query = jQuery(opt).closest('form');
35936            setTimeout(function () {
35937                lib3p.pageDangKyKHTT.Check(query);
35938            }, 100);
35939        },
35940        onCaptcha_Click: function () {
35941            window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
35942            jQuery('.captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
35943            jQuery('.captcha').attr('key', window.pars3p.KeyView);
35944            return false;
35945        },
35946        onKeyDown: function (event, el) {
35947            var query = jQuery(el).closest('form');
35948            var isphone = jQuery(el).attr('name') == 'Cellphone';
35949            setTimeout(function () {
35950                lib3p.pageDangKyKHTT.Check(query, isphone);
35951            }, 100);
35952        },
35953        onKeyDown_Mobile: function (event, el) {
35954            window.pars3p.MobileClick = true;
35955            var query = jQuery(el).closest('form');
35956            var isphone = jQuery(el).attr('name') == 'Cellphone';
35957            setTimeout(function () {
35958                lib3p.pageDangKyKHTT.Check(query, isphone);
35959            }, 100);
35960        },
35961        onCheck: function (el) {
35962            var query = jQuery(el).closest('form');
35963            setTimeout(function () {
35964                lib3p.pageDangKyKHTT.Check(query);
35965            }, 100);
35966        },
35967        onCheck_Mobile: function (el) {
35968            window.pars3p.MobileClick = true;
35969            var query = jQuery(el).closest('form');
35970            setTimeout(function () {
35971                lib3p.pageDangKyKHTT.Check(query);
35972            }, 100);
35973        },
35974        Check: function (query, isphone) {
35975            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
35976                var flag = true;
35977                var ctr = query[0].Cellphone;
35978                var PhoneNumber = ctr.value;
35979                var flagPhone = true;
35980                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
35981                    //lib3p.pageDangKyKHTT.Check_Disabled(query);
35982                    flag = false;
35983                    flagPhone = false;
35984                    window.pars3p.PhoneNumber_last = null;
35985                }
35986                else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
35987                    //lib3p.pageDangKyKHTT.Check_Disabled(query);
35988                    flag = false;
35989                    flagPhone = false;
35990                    window.pars3p.PhoneNumber_last = null;
35991                    if (!jQuery(ctr).hasClass('error')) {
35992                        jQuery(ctr).addClass('error');
35993                    }
35994                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
35994<span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
35995                }
35996                else {
35997                    jQuery(ctr).removeClass('error');
35998                    jQuery(ctr).parent().next().html('');
35999                }
36000                ctr = query[0].FirstName;
36001                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36002                    flag = false;
36003                }
36004                else if (ctr.value.length > 200) {
36005                    flag = false;
36006                    if (!jQuery(ctr).hasClass('error')) {
36007                        jQuery(ctr).addClass('error');
36008                    }
36009                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Họ và tên lót nhập quá 200 ký tự</span>');
36010                }
36011                else {
36012                    jQuery(ctr).removeClass('error');
36013                    jQuery(ctr).parent().next().html('');
36014                }
36015                ctr = query[0].LastName;
36016                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36017                    flag = false;
36018                }
36019                else if (ctr.value.length > 50) {
36020                    flag = false;
36021                    if (!jQuery(ctr).hasClass('error')) {
36022                        jQuery(ctr).addClass('error');
36023                    }
36024                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Tên nhập quá 50 ký tự</span>');
36025                }
36026                else {
36027                    jQuery(ctr).removeClass('error');
36028                    jQuery(ctr).parent().next().html('');
36029                }
36030                var ngay = -1;
36031                var thang = -1;
36032                var nam = -1;
36033                if (window.pars3p.MobileClick == true) {
36034                    ctr = document.getElementById('cboNgay_itemedit_m');
36035                    ngay = parseInt(ctr.value);
36036                    ctr = document.getElementById('cboThang_itemedit_m');
36037                    thang = parseInt(ctr.value);
36038                    ctr = document.getElementById('cboNam_itemedit_m');
36039                    nam = parseInt(ctr.value);
36040                }
36041                else {
36042                    ctr = document.getElementById('cboNgay_itemedit');
36043                    ngay = parseInt(ctr.value);
36044                    ctr = document.getElementById('cboThang_itemedit');
36045                    thang = parseInt(ctr.value);
36046                    ctr = document.getElementById('cboNam_itemedit');
36047                    nam = parseInt(ctr.value);
36048                }
36049                if (!(ngay > 0 && thang > 0 && nam > 0)) {
36050                    flag = false;
36051                }
36052                else if (!lib3p_helper.utility.dateIsValid(ngay, thang, nam)) {
36053                    flag = false;
36054                    jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập sai ngày, tháng, năm</span>');
36055                }
36056                else {
36057                    jQuery(ctr).closest('.input').next().html('');
36058                }
36059                ctr = query[0].Captcha;
36060                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36061                    flag = false;
36062                }
36063                ctr = query[0].Chon;
36064                if (ctr.checked != true) {
36065                    flag = false;
36066                }
36067                if (flagPhone == true && isphone == true && window.pars3p.PhoneNumber_last != PhoneNumber) {
36068                    lib3p.pageDangKyKHTT.Check_Phone(PhoneNumber, query).then(function (data) { }, function (err) { lib3p.log(err); });
36069                }
36070            }
36071        },
36072        Check_Disabled: function (query) {
36073            /*
36074            jQuery(query[0].FirstName).prop("disabled", true);
36075            jQuery(query[0].LastName).prop("disabled", true);
36076            jQuery(query[0].Captcha).prop("disabled", true);
36077            if(window.pars3p.MobileClick == true) {
36078                jQuery("#cboProvince_itemedit_m").prop("disabled", true);
36079                jQuery("#cboProvince_itemedit_m").next().children().prop("disabled", true);
36080                jQuery("#cboDistrict_itemedit_m").prop("disabled", true);
36081                jQuery("#cboDistrict_itemedit_m").next().children().prop("disabled", true);
36082                jQuery("#cboNam_itemedit_m").prop("disabled", true);
36083                jQuery("#cboNam_itemedit_m").next().children().prop("disabled", true);
36084                jQuery("#cboThang_itemedit_m").prop("disabled", true);
36085                jQuery("#cboThang_itemedit_m").next().children().prop("disabled", true);
36086                jQuery("#cboNgay_itemedit_m").prop("disabled", true);
36087                jQuery("#cboNgay_itemedit_m").next().children().prop("disabled", true);
36088            }
36089            else {
36090                jQuery("#cboProvince_itemedit").prop("disabled", true);
36091                jQuery("#cboProvince_itemedit").next().children().prop("disabled", true);
36092                jQuery("#cboDistrict_itemedit").prop("disabled", true);
36093                jQuery("#cboDistrict_itemedit").next().children().prop("disabled", true);
36094                jQuery("#cboNam_itemedit").prop("disabled", true);
36095                jQuery("#cboNam_itemedit").next().children().prop("disabled", true);
36096                jQuery("#cboThang_itemedit").prop("disabled", true);
36097                jQuery("#cboThang_itemedit").next().children().prop("disabled", true);
36098                jQuery("#cboNgay_itemedit").prop("disabled", true);
36099                jQuery("#cboNgay_itemedit").next().children().prop("disabled", true);
36100            }
36101            */
36102        },
36103        Check_Enabled: function (query) {
36104            /* 
36105            jQuery(query[0].FirstName).prop("disabled", false);
36106            jQuery(query[0].LastName).prop("disabled", false);
36107            jQuery(query[0].Captcha).prop("disabled", false);
36108            if(window.pars3p.MobileClick == true) {
36109                jQuery("#cboProvince_itemedit_m").prop("disabled", false);
36110                jQuery("#cboProvince_itemedit_m").next().children().prop("disabled", false);
36111                jQuery("#cboDistrict_itemedit_m").prop("disabled", false);
36112                jQuery("#cboDistrict_itemedit_m").next().children().prop("disabled", false);
36113                jQuery("#cboNam_itemedit_m").prop("disabled", false);
36114                jQuery("#cboNam_itemedit_m").next().children().prop("disabled", false);
36115                jQuery("#cboThang_itemedit_m").prop("disabled", false);
36116                jQuery("#cboThang_itemedit_m").next().children().prop("disabled", false);
36117                jQuery("#cboNgay_itemedit_m").prop("disabled", false);
36118                jQuery("#cboNgay_itemedit_m").next().children().prop("disabled", false);
36119            }
36120            else {
36121                jQuery("#cboProvince_itemedit").prop("disabled", false);
36122                jQuery("#cboProvince_itemedit").next().children().prop("disabled", false);
36123                jQuery("#cboDistrict_itemedit").prop("disabled", false);
36124                jQuery("#cboDistrict_itemedit").next().children().prop("disabled", false);
36125                jQuery("#cboNam_itemedit").prop("disabled", false);
36126                jQuery("#cboNam_itemedit").next().children().prop("disabled", false);
36127                jQuery("#cboThang_itemedit").prop("disabled", false);
36128                jQuery("#cboThang_itemedit").next().children().prop("disabled", false);
36129                jQuery("#cboNgay_itemedit").prop("disabled", false);
36130                jQuery("#cboNgay_itemedit").next().children().prop("disabled", false);
36131            }
36132            */
36133        },
36134        Check_Phone: function (PhoneNumber, frm) {
36135            lib3p.common_LoadingShow();
36136            return new Promise(function (resolve, reject) {
36137                setTimeout(function () {
36138                    window.pars3p.PhoneNumber_last = PhoneNumber;
36139                    
36140                    lib3p.common_GetURL(window.pars3p.api.public.Header_GetByPhone + '?phone=' + PhoneNumber, function (res) {
36141                        lib3p.common_LoadingHide();
36142
36143                        if (res.HasAccount == true) {
36144                            jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.ChuaDangNhap).show();
36145                            jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.TrungTaiKhoan).show();
36146                            jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.KhacTaiKhoan).show();
36147
36148                            var query = jQuery('.popup-khtt-has-account .hachi-modal');
36149                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36150                                if (jQuery(query[0]).hasClass("d-none")) {
36151                                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
36152                                }
36153                            }
36154                            query = jQuery('.popup-forget-pass form');
36155                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36156                                query[0].phone.value = PhoneNumber;
36157                            }
36158                            var str = PhoneNumber;
36159                            jQuery('.popup-khtt-has-account .sodienthoai').html(str);
36160                            if (window.pars3p.auth.isLogin == true && lib3p_helper.utility.hasValueString(window.pars3p.auth.phoneNumber)) {
36161                                jQuery('.popup-khtt-has-account .sodienthoai_old').html(window.pars3p.auth.phoneNumber);
36162                            }
36163                            if (window.pars3p.auth.isLogin != true) {
36164                                jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.TrungTaiKhoan).hide();
36165                                jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.KhacTaiKhoan).hide();
36166                            }
36167                            else if (window.pars3p.auth.phoneNumber == PhoneNumber) {
36168                                jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.ChuaDangNhap).hide();
36169                                jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.KhacTaiKhoan).hide();
36170                            }
36171                            else {
36172                                jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.ChuaDangNhap).hide();
36173                                jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.TrungTaiKhoan).hide();
36174                            }
36175                        }
36176                        else {
36177                            window.pars3p.PhoneNumber_last = null;
36178                            if (res.StatusCode == 0 && lib3p_helper.utility.hasValue(res.ObjectReturn)) {
36179                                if (res.ObjectReturn.Cellphone != PhoneNumber) {
36180                                    alert('Số điện thoại bạn vừa nhập được đăng ký cho mã KHTT ' + res.ObjectReturn.CardNo + ' tại Cửa hàng, nhưng tại web, mã KHTT này đang lưu với số điện thoại ' + res.ObjectReturn.Cellphone + '. Vui lòng liên hệ Hachi Hachi để được hỗ trợ.');
36181                                }
36182                                else {
36183                                    window.pars3p.auth_last = {
36184                                        isLogin: window.pars3p.auth.isLogin,
36185                                        access_token: window.pars3p.auth.access_token,
36186                                        refresh_token: window.pars3p.auth.refresh_token,
36187                                        fullName: window.pars3p.auth.fullName,
36188                                        phoneNumber: window.pars3p.auth.phoneNumber,
36189                                        email: window.pars3p.auth.email,
36190                                        memberID: window.pars3p.auth.memberID,
36191                                        userName: window.pars3p.auth.userName
36192                                    };
36193                                    res.ObjectReturn.Cellphone = PhoneNumber;
36194                                    window.pars3p.dangkykhtt.IsChangePass = false;
36195                                    var str = PhoneNumber.substr(0, 3) + "****" + PhoneNumber.substr(-3);
36196                                    jQuery('.page-dangky-khtt .thanh-cong .dienthoai').html(str);
36197                                    jQuery('.popup-register-pass .data').html(str);
36198                                    jQuery('.mobile-dangky-khtt .thanh-cong .dienthoai').html(str);
36199                                    lib3p.header.onKTTT_Show(res.ObjectReturn, lib3p.header.TypeKTTT.Account, function () {
36200                                        var req = {
36201                                            HistoryCardID: res.ObjectReturn.ID,
36202                                            CardNo: res.ObjectReturn.CardNo,
36203                                            Email: "",
36204                                            UserName: window.pars3p.khtt.Cellphone,
36205                                            Password: new Date().getTime(),
36206                                            PhoneNumber: window.pars3p.khtt.Cellphone,
36207                                            FirstName: window.pars3p.khtt.FirstName,
36208                                            LastName: window.pars3p.khtt.LastName,
36209                                            FullName: window.pars3p.khtt.FullName,
36210                                            Store: window.pars3p.dangkykhtt.StoreID,
36211                                            POMaster: window.pars3p.dangkykhtt.TransactionNo,
36212                                            SendType: window.pars3p.otp.SendType
36213                                        };
36214                                        window.pars3p.dangkykhtt.Cellphone = window.pars3p.khtt.Cellphone;
36215                                        window.pars3p.dangkykhtt.CardNo = res.ObjectReturn.CardNo;
36216                                        window.pars3p.dangkykhtt.HistoryCardID = res.ObjectReturn.ID;
36217                                        window.pars3p.dangkykhtt.FirstName = res.ObjectReturn.FirstName;
36218                                        window.pars3p.dangkykhtt.L
36218astName = res.ObjectReturn.LastName;
36219                                        window.pars3p.dangkykhtt.FullName = res.ObjectReturn.FullName;
36220                                        lib3p.common_PostURL(window.pars3p.api.public.UserRegisterKHTT, req, function (res3) {
36221                                            if (lib3p_helper.utility.hasValue(res3)) {
36222                                                if (res3.StatusID == 0 && lib3p_helper.utility.hasValueString(res3.CardNo)) {
36223                                                    window.pars3p.dangkykhtt.IsSend = res3.IsSentRabbit;
36224                                                    lib3p.header.ConnectAuth(window.pars3p.khtt.Cellphone, res3.Password, function () {
36225                                                        window.pars3p.password.PasswordOld = res3.Password;
36226                                                        lib3p.pageDangKyKHTT.onRegisterPass_Open();
36227                                                    }, function (errConnect) {
36228                                                        jQuery(frm[0].Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">' + errConnect + '</span>');
36229                                                    });
36230                                                }
36231                                                else {
36232                                                    jQuery(frm[0].Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Lỗi dữ liệu</span>');
36233                                                }
36234                                            }
36235                                        }, function (err3) {
36236                                            lib3p.log(err3);
36237                                        });
36238                                    }, function () {
36239                                        if (window.pars3p.MobileClick == true) {
36240                                            query = jQuery('.mobile-dangky-khtt form');
36241                                        }
36242                                        else {
36243                                            query = jQuery('.page-dangky-khtt form');
36244                                        }
36245                                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36246                                            ctr = query[0].Cellphone;
36247                                            ctr.value = '';
36248                                            ctr.focus();
36249                                        }
36250                                    }, function (resReturn) {
36251                                        window.pars3p.dangkykhtt.Cellphone = PhoneNumber;
36252                                        window.pars3p.dangkykhtt.CardNo = resReturn.CardNo;
36253                                        window.pars3p.dangkykhtt.HistoryCardID = resReturn.ID;
36254                                        lib3p.pageDangKyKHTT.UpdateData();
36255                                    });
36256                                }
36257
36258                            }
36259                        }
36260
36261                    }, function (err) {
36262                        lib3p.log(err);
36263                        lib3p.common_LoadingHide();
36264                    });
36265
36266                }, window.pars3p.timeAsync);
36267            });
36268        },
36269        Check_Phone_Test: function (PhoneNumber, frm) {
36270            lib3p.common_LoadingShow();
36271            return new Promise(function (resolve, reject) {
36272                setTimeout(function () {
36273                    /* if(!jQuery(frm[0]).hasClass('haserror')) {
36274                        jQuery(frm[0]).addClass('haserror');
36275                    } */
36276                    window.pars3p.PhoneNumber_last = PhoneNumber;
36277                    lib3p.common_PostURL(window.pars3p.api.public.checkuser, { "PhoneNumber": PhoneNumber }, function (res) {
36278                        if (res == true) {
36279                            lib3p.common_LoadingHide();
36280
36281                            jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.ChuaDangNhap).show();
36282                            jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.TrungTaiKhoan).show();
36283                            jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.KhacTaiKhoan).show();
36284
36285                            var query = jQuery('.popup-khtt-has-account .hachi-modal');
36286                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36287                                if (jQuery(query[0]).hasClass("d-none")) {
36288                                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
36289                                }
36290                            }
36291                            query = jQuery('.popup-forget-pass form');
36292                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36293                                query[0].phone.value = PhoneNumber;
36294                            }
36295                            var str = PhoneNumber;
36296                            jQuery('.popup-khtt-has-account .sodienthoai').html(str);
36297                            if (window.pars3p.auth.isLogin == true && lib3p_helper.utility.hasValueString(window.pars3p.auth.phoneNumber)) {
36298                                jQuery('.popup-khtt-has-account .sodienthoai_old').html(window.pars3p.auth.phoneNumber);
36299                            }
36300                            if (window.pars3p.auth.isLogin != true) {
36301                                jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.TrungTaiKhoan).hide();
36302                                jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.KhacTaiKhoan).hide();
36303                            }
36304                            else if (window.pars3p.auth.phoneNumber == PhoneNumber) {
36305                                jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.ChuaDangNhap).hide();
36306                                jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.KhacTaiKhoan).hide();
36307                            }
36308                            else {
36309                                jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.ChuaDangNhap).hide();
36310                                jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.TrungTaiKhoan).hide();
36311                            }
36312                        }
36313                        else {
36314                            lib3p.common_PostURL(window.pars3p.api.public.GetCardByStaff, { "CellPhone": PhoneNumber }, function (res2) {
36315                                lib3p.common_LoadingHide();
36316
36317                                window.pars3p.PhoneNumber_last = null;
36318                                if (lib3p_helper.utility.hasValue(res2) && res2.StatusCode == 0 && lib3p_helper.utility.hasValue(res2.ObjectReturn)) {
36319                                    if (res2.ObjectReturn.Cellphone != PhoneNumber) {
36320                                        alert('Số điện thoại bạn vừa nhập được đăng ký cho mã KHTT ' + res2.ObjectReturn.CardNo + ' tại Cửa hàng, nhưng tại web, mã KHTT này đang lưu với số điện thoại ' + res2.ObjectReturn.Cellphone + '. Vui lòng liên hệ Hachi Hachi để được hỗ trợ.');
36321                                    }
36322                                    else {
36323                                        window.pars3p.auth_last = {
36324                                            isLogin: window.pars3p.auth.isLogin,
36325                                            access_token: window.pars3p.auth.access_token,
36326                                            refresh_token: window.pars3p.auth.refresh_token,
36327                                            fullName: window.pars3p.auth.fullName,
36328                                            phoneNumber: window.pars3p.auth.phoneNumber,
36329                                            email: window.pars3p.auth.email,
36330                                            memberID: window.pars3p.auth.memberID,
36331                                            userName: window.pars3p.auth.userName
36332                                        };
36333                                        res2.ObjectReturn.Cellphone = PhoneNumber;
36334                                        window.pars3p.dangkykhtt.IsChangePass = false;
36335                                        var str = PhoneNumber.substr(0, 3) + "****" + PhoneNumber.substr(-3);
36336                                        jQuery('.page-dangky-khtt .thanh-cong .dienthoai').html(str);
36337                                        jQuery('.popup-register-pass .data').html(str);
36338                                        jQuery('.mobile-dangky-khtt .thanh-cong .dienthoai').html(str);
36339                                        lib3p.header.onKTTT_Show(res2.ObjectReturn, lib3p.header.TypeKTTT.Account, function () {
36340                                            var req = {
36341                                                Email: "",
36342                                                UserName: window.pars3p.khtt.Cellphone,
36343                                                Password: new Date().getTime(),
36344                                                PhoneNumber: window.pars3p.khtt.Cellphone,
36345                                                FirstName: window.pars3p.khtt.FirstName,
36346                                                LastName: window.pars3p.khtt.LastName,
36347                                                FullName: window.pars3p.khtt.FullName,
36348                                                Store: window.pars3p.dangkykhtt.StoreID,
36349                                                POMaster: window.pars3p.dangkykhtt.TransactionNo,
36350                                                SendType: window.pars3p.otp.SendType
36351                                            };
36352                                            window.pars3p.dangkykhtt.Cellphone = window.pars3p.khtt.Cellphone;
36353                                            window.pars3p.dangkykhtt.CardNo = res2.ObjectReturn.CardNo;
36354                                            window.pars3p.dangkykhtt.HistoryCardID = res2.ObjectReturn.ID;
36355                                            window.pars3p.dangkykhtt.FirstName = res2.ObjectReturn.FirstName;
36356                                            window.pars3p.dangkykhtt.L
36356astName = res2.ObjectReturn.LastName;
36357                                            window.pars3p.dangkykhtt.FullName = res2.ObjectReturn.FullName;
36358                                            lib3p.common_PostURL(window.pars3p.api.public.UserRegisterKHTT, req, function (res3) {
36359                                                if (lib3p_helper.utility.hasValue(res3)) {
36360                                                    if (res3.StatusID == 0 && lib3p_helper.utility.hasValueString(res3.CardNo)) {
36361                                                        window.pars3p.dangkykhtt.IsSend = res3.IsSentRabbit;
36362                                                        lib3p.header.ConnectAuth(window.pars3p.khtt.Cellphone, res3.Password, function () {
36363                                                            window.pars3p.password.PasswordOld = res3.Password;
36364                                                            lib3p.pageDangKyKHTT.onRegisterPass_Open();
36365                                                        }, function (errConnect) {
36366                                                            jQuery(frm[0].Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">' + errConnect + '</span>');
36367                                                        });
36368                                                    }
36369                                                    else {
36370                                                        jQuery(frm[0].Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Lỗi dữ liệu</span>');
36371                                                    }
36372                                                }
36373                                            }, function (err3) {
36374                                                lib3p.log(err3);
36375                                            });
36376                                        }, function () {
36377                                            if (window.pars3p.MobileClick == true) {
36378                                                query = jQuery('.mobile-dangky-khtt form');
36379                                            }
36380                                            else {
36381                                                query = jQuery('.page-dangky-khtt form');
36382                                            }
36383                                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36384                                                ctr = query[0].Cellphone;
36385                                                ctr.value = '';
36386                                                ctr.focus();
36387                                            }
36388                                        }, function (resReturn) {
36389                                            window.pars3p.dangkykhtt.Cellphone = PhoneNumber;
36390                                            window.pars3p.dangkykhtt.CardNo = resReturn.CardNo;
36391                                            window.pars3p.dangkykhtt.HistoryCardID = resReturn.ID;
36392                                            lib3p.pageDangKyKHTT.UpdateData();
36393                                        });
36394                                    }
36395                                }
36396                                else {
36397                                    jQuery(frm[0]).removeClass('haserror');
36398                                    //lib3p.pageDangKyKHTT.Check_Enabled(frm);
36399                                }
36400                            }, function (err2) {
36401                                lib3p.log(err2);
36402                                lib3p.common_LoadingHide();
36403                            });
36404                        }
36405                    }, function (err) {
36406                        lib3p.log(err);
36407                        lib3p.common_LoadingHide();
36408                    });
36409
36410                }, window.pars3p.timeAsync);
36411            });
36412        },
36413        onSubmit_Mobile: function (event) {
36414            window.pars3p.MobileClick = true;
36415            lib3p.pageDangKyKHTT.onSubmit(event);
36416            event.preventDefault();
36417        },
36418        onSubmit: function (event) {
36419            if (!jQuery(event.target).hasClass('haserror')) {
36420                jQuery(event.target).find('div.error').html('');
36421                jQuery(event.target).find('.input input').removeClass('error');
36422
36423                var flag = true;
36424                var data = {
36425                    Cellphone: '',
36426                    FirstName: '',
36427                    LastName: '',
36428                    Email: '',
36429                    Chon: false,
36430                    Captcha: '',
36431                };
36432
36433                var ctr = event.target.Cellphone;
36434                data.Cellphone = ctr.value;
36435                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36436                    flag = false;
36437                    if (!jQuery(ctr).hasClass('error')) {
36438                        jQuery(ctr).addClass('error');
36439                    }
36440                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
36440<span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
36441                }
36442                else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
36443                    flag = false;
36444                    if (!jQuery(ctr).hasClass('error')) {
36445                        jQuery(ctr).addClass('error');
36446                    }
36447                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
36448                }
36449                ctr = event.target.FirstName;
36450                data.FirstName = ctr.value;
36451                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36452                    flag = false;
36453                    if (!jQuery(ctr).hasClass('error')) {
36454                        jQuery(ctr).addClass('error');
36455                    }
36456                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
36457                }
36458                else if (ctr.value.length > 200) {
36459                    flag = false;
36460                    if (!jQuery(ctr).hasClass('error')) {
36461                        jQuery(ctr).addClass('error');
36462                    }
36463                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Họ và tên lót nhập quá 200 ký tự</span>');
36464                }
36465                ctr = event.target.LastName;
36466                data.LastName = ctr.value;
36467                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36468                    flag = false;
36469                    if (!jQuery(ctr).hasClass('error')) {
36470                        jQuery(ctr).addClass('error');
36471                    }
36472                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
36473                }
36474                else if (ctr.value.length > 50) {
36475                    flag = false;
36476                    if (!jQuery(ctr).hasClass('error')) {
36477                        jQuery(ctr).addClass('error');
36478                    }
36479                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Tên nhập quá 50 ký tự</span>');
36480                }
36481                var ngay = -1;
36482                var thang = -1;
36483                var nam = -1;
36484                if (window.pars3p.MobileClick == true) {
36485                    ctr = document.getElementById('cboNgay_itemedit_m');
36486                    ngay = parseInt(ctr.value);
36487                    ctr = document.getElementById('cboThang_itemedit_m');
36488                    thang = parseInt(ctr.value);
36489                    ctr = document.getElementById('cboNam_itemedit_m');
36490                    nam = parseInt(ctr.value);
36491                }
36492                else {
36493                    ctr = document.getElementById('cboNgay_itemedit');
36494                    ngay = parseInt(ctr.value);
36495                    ctr = document.getElementById('cboThang_itemedit');
36496                    thang = parseInt(ctr.value);
36497                    ctr = document.getElementById('cboNam_itemedit');
36498                    nam = parseInt(ctr.value);
36499                }
36500                if (!(ngay > 0 && thang > 0 && nam > 0)) {
36501                    flag = false;
36502                    jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
36502<span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
36503                }
36504                else if (!lib3p_helper.utility.dateIsValid(ngay, thang, nam)) {
36505                    flag = false;
36506                    if (!jQuery(ctr).hasClass('error')) {
36507                        jQuery(ctr).addClass('error');
36508                    }
36509                    jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập sai ngày, tháng, năm</span>');
36510                }
36511                else {
36512                    jQuery(ctr).removeClass('error');
36513                    jQuery(ctr).closest('.input').next().html('');
36514                }
36515                var province = -1;
36516                var district = -1;
36517                if (window.pars3p.MobileClick == true) {
36518                    ctr = document.getElementById('cboProvince_itemedit_m');
36519                    province = parseInt(ctr.value);
36520                    ctr = document.getElementById('cboDistrict_itemedit_m');
36521                    district = parseInt(ctr.value);
36522                }
36523                else {
36524                    ctr = document.getElementById('cboProvince_itemedit');
36525                    province = parseInt(ctr.value);
36526                    ctr = document.getElementById('cboDistrict_itemedit');
36527                    district = parseInt(ctr.value);
36528                }
36529                if (!(province > 0 && district > 0)) {
36530                    flag = false;
36531                    jQuery(ctr).closest('.input').next('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
36532                }
36533                ctr = event.target.Captcha;
36534                data.Captcha = ctr.value;
36535                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36536                    flag = false;
36537                    if (!jQuery(ctr).hasClass('error')) {
36538                        jQuery(ctr).addClass('error');
36539                    }
36540                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
36541                }
36542                ctr = event.target.Chon;
36543                if (ctr.checked != true) {
36544                    flag = false;
36545                    jQuery(ctr).closest('.chinhsach').find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng đồng ý với Chính sách bán hàng và Chính sách bảo mật để tiếp tục</span>');
36546                }
36547                ctr = event.target.Ads;
36548                data.Ads = ctr.checked == true;
36549
36550                if (flag == true) {
36551                    window.pars3p.dangkykhtt.Cellphone = data.Cellphone;
36552                    window.pars3p.dangkykhtt.FirstName = data.FirstName;
36553                    window.pars3p.dangkykhtt.LastName = data.LastName;
36554                    window.pars3p.dangkykhtt.Birthday = new Date(nam, thang - 1, ngay);
36555                    window.pars3p.dangkykhtt.Province = province;
36556                    window.pars3p.dangkykhtt.District = district;
36557                    window.pars3p.dangkykhtt.IsReceiveAds = data.Ads == true;
36558
36559                    window.pars3p.KeyCaptcha = data.Captcha;
36560                    lib3p.common_PostURL(window.pars3p.api.public.All_CheckCaptcha + '?key=' + window.pars3p.KeyView + '&captcha=' + window.pars3p.KeyCaptcha, {}, function (resCap) {
36561                        if (resCap == true) {
36562                            lib3p.common_GetURL(window.pars3p.api.public.Header_GetByPhone + '?phone=' + data.Cellphone, function (res) {
36563                                lib3p.common_LoadingHide();
36564        
36565                                if (res.HasAccount == true) {
36566                                    var query = jQuery('.popup-khtt-has-account .hachi-modal');
36567                                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36568                                        if (jQuery(query[0]).hasClass("d-none")) {
36569                                            jQuery(query[0]).removeClass("d-none").addClass("d-block");
36570                                        }
36571                                    }
36572                                    var str = PhoneNumber.substr(0, 3) + "****" + PhoneNumber.substr(-3);
36573                                    jQuery('.popup-khtt-has-account .sodienthoai').html(str);
36574                                    if (window.pars3p.auth.isLogin == true && lib3p_helper.utility.hasValueString(window.pars3p.auth.phoneNumber)) {
36575                                        str = window.pars3p.auth.phoneNumber + "****" + window.pars3p.auth.phoneNumber.substr(-3);
36576                                        jQuery('.popup-khtt-has-account .sodienthoai_old').html(str);
36577                                    }
36578                                    if (window.pars3p.auth.isLogin != true) {
36579                                        jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.TrungTaiKhoan).hide();
36580                                        jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.KhacTaiKhoan).hide();
36581                                    }
36582                                    else if (window.pars3p.auth.phoneNumber == data.Cellphone) {
36583                                        jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.ChuaDangNhap).hide();
36584                                        jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.KhacTaiKhoan).hide();
36585                                    }
36586                                    else {
36587                                        jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.ChuaDangNhap).hide();
36588                                        jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.TrungTaiKhoan).hide();
36589                                    }
36590                                }
36591                                else {
36592                                    lib3p.pageDangKyKHTT.onRegister_Submit_Next(event.target, data);
36593                                }
36594
36595                            }, function (err) {
36596                                lib3p.log(err);
36597                                lib3p.common_LoadingHide();
36598                            });
36599
36600                        }
36601                        else {
36602                            jQuery(event.target.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">
36602Nhập sai mã captcha</span>');
36603                        }
36604
36605                    }, function (errCap) {
36606                        jQuery(event.target.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Nhập sai mã captcha</span>');
36607                        lib3p.log(err);
36608                    });
36609                    
36610                }
36611
36612            }
36613
36614            event.preventDefault();
36615        },
36616        onSubmit_old: function (event) {
36617            if (!jQuery(event.target).hasClass('haserror')) {
36618                jQuery(event.target).find('div.error').html('');
36619                jQuery(event.target).find('.input input').removeClass('error');
36620
36621                var flag = true;
36622                var data = {
36623                    Cellphone: '',
36624                    FirstName: '',
36625                    LastName: '',
36626                    Email: '',
36627                    Chon: false,
36628                    Captcha: '',
36629                };
36630
36631                var ctr = event.target.Cellphone;
36632                data.Cellphone = ctr.value;
36633                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36634                    flag = false;
36635                    if (!jQuery(ctr).hasClass('error')) {
36636                        jQuery(ctr).addClass('error');
36637                    }
36638                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
36639                }
36640                else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
36641                    flag = false;
36642                    if (!jQuery(ctr).hasClass('error')) {
36643                        jQuery(ctr).addClass('error');
36644                    }
36645                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
36646                }
36647                ctr = event.target.FirstName;
36648                data.FirstName = ctr.value;
36649                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36650                    flag = false;
36651                    if (!jQuery(ctr).hasClass('error')) {
36652                        jQuery(ctr).addClass('error');
36653                    }
36654                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
36655                }
36656                else if (ctr.value.length > 200) {
36657                    flag = false;
36658                    if (!jQuery(ctr).hasClass('error')) {
36659                        jQuery(ctr).addClass('error');
36660                    }
36661                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Họ và tên lót nhập quá 200 ký tự</span>');
36662                }
36663                ctr = event.target.LastName;
36664                data.LastName = ctr.value;
36665                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36666                    flag = false;
36667                    if (!jQuery(ctr).hasClass('error')) {
36668                        jQuery(ctr).addClass('error');
36669                    }
36670                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
36671                }
36672                else if (ctr.value.length > 50) {
36673                    flag = false;
36674                    if (!jQuery(ctr).hasClass('error')) {
36675                        jQuery(ctr).addClass('error');
36676                    }
36677                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
36677<span class="s13 cl-gregray600 regular400">Tên nhập quá 50 ký tự</span>');
36678                }
36679                var ngay = -1;
36680                var thang = -1;
36681                var nam = -1;
36682                if (window.pars3p.MobileClick == true) {
36683                    ctr = document.getElementById('cboNgay_itemedit_m');
36684                    ngay = parseInt(ctr.value);
36685                    ctr = document.getElementById('cboThang_itemedit_m');
36686                    thang = parseInt(ctr.value);
36687                    ctr = document.getElementById('cboNam_itemedit_m');
36688                    nam = parseInt(ctr.value);
36689                }
36690                else {
36691                    ctr = document.getElementById('cboNgay_itemedit');
36692                    ngay = parseInt(ctr.value);
36693                    ctr = document.getElementById('cboThang_itemedit');
36694                    thang = parseInt(ctr.value);
36695                    ctr = document.getElementById('cboNam_itemedit');
36696                    nam = parseInt(ctr.value);
36697                }
36698                if (!(ngay > 0 && thang > 0 && nam > 0)) {
36699                    flag = false;
36700                    jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
36701                }
36702                else if (!lib3p_helper.utility.dateIsValid(ngay, thang, nam)) {
36703                    flag = false;
36704                    if (!jQuery(ctr).hasClass('error')) {
36705                        jQuery(ctr).addClass('error');
36706                    }
36707                    jQuery(ctr).closest('.input').next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập sai ngày, tháng, năm</span>');
36708                }
36709                else {
36710                    jQuery(ctr).removeClass('error');
36711                    jQuery(ctr).closest('.input').next().html('');
36712                }
36713                var province = -1;
36714                var district = -1;
36715                if (window.pars3p.MobileClick == true) {
36716                    ctr = document.getElementById('cboProvince_itemedit_m');
36717                    province = parseInt(ctr.value);
36718                    ctr = document.getElementById('cboDistrict_itemedit_m');
36719                    district = parseInt(ctr.value);
36720                }
36721                else {
36722                    ctr = document.getElementById('cboProvince_itemedit');
36723                    province = parseInt(ctr.value);
36724                    ctr = document.getElementById('cboDistrict_itemedit');
36725                    district = parseInt(ctr.value);
36726                }
36727                if (!(province > 0 && district > 0)) {
36728                    flag = false;
36729                    jQuery(ctr).closest('.input').next('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
36730                }
36731                ctr = event.target.Captcha;
36732                data.Captcha = ctr.value;
36733                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36734                    flag = false;
36735                    if (!jQuery(ctr).hasClass('error')) {
36736                        jQuery(ctr).addClass('error');
36737                    }
36738                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
36739                }
36740                ctr = event.target.Chon;
36741                if (ctr.checked != true) {
36742                    flag = false;
36743                    jQuery(ctr).closest('.chinhsach').find('.error').html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
36743<span class="s13 cl-gregray600 regular400">Vui lòng đồng ý với Chính sách bán hàng và Chính sách bảo mật để tiếp tục</span>');
36744                }
36745                ctr = event.target.Ads;
36746                data.Ads = ctr.checked == true;
36747
36748                if (flag == true) {
36749                    window.pars3p.dangkykhtt.Cellphone = data.Cellphone;
36750                    window.pars3p.dangkykhtt.FirstName = data.FirstName;
36751                    window.pars3p.dangkykhtt.LastName = data.LastName;
36752                    window.pars3p.dangkykhtt.Birthday = new Date(nam, thang - 1, ngay);
36753                    window.pars3p.dangkykhtt.Province = province;
36754                    window.pars3p.dangkykhtt.District = district;
36755                    window.pars3p.dangkykhtt.IsReceiveAds = data.Ads == true;
36756
36757                    window.pars3p.KeyCaptcha = data.Captcha;
36758                    lib3p.common_PostURL(window.pars3p.api.public.All_CheckCaptcha + '?key=' + window.pars3p.KeyView + '&captcha=' + window.pars3p.KeyCaptcha, {}, function (resCap) {
36759                        if (resCap == true) {
36760                            lib3p.common_PostURL(window.pars3p.api.public.checkuser, { "PhoneNumber": data.Cellphone }, function (res) {
36761                                if (res == true) {
36762                                    /* var query = jQuery('.page-register form.dang-ky');
36763                                    if(lib3p_helper.utility.hasValue(query) && query.length > 0) {
36764                                        ctr = event.target.Cellphone;
36765                                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại bạn vừa nhập đã có tài khoản tại Hachi Hachi</span>');
36766                                    } */
36767                                    //jQuery('#js-hachi-register-form').find('.form-group > .text-wanring').first().html('Số điện thoại quý khách vừa nhập đã có tài khoản tại Hachi Hachi. Vui lòng chọn Đăng nhập hoặc Quên mật khẩu nếu quý khách không nhớ thông tin đăng nhập.');
36768
36769                                    var query = jQuery('.popup-khtt-has-account .hachi-modal');
36770                                    if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36771                                        if (jQuery(query[0]).hasClass("d-none")) {
36772                                            jQuery(query[0]).removeClass("d-none").addClass("d-block");
36773                                        }
36774                                    }
36775                                    var str = PhoneNumber.substr(0, 3) + "****" + PhoneNumber.substr(-3);
36776                                    jQuery('.popup-khtt-has-account .sodienthoai').html(str);
36777                                    if (window.pars3p.auth.isLogin == true && lib3p_helper.utility.hasValueString(window.pars3p.auth.phoneNumber)) {
36778                                        str = window.pars3p.auth.phoneNumber + "****" + window.pars3p.auth.phoneNumber.substr(-3);
36779                                        jQuery('.popup-khtt-has-account .sodienthoai_old').html(str);
36780                                    }
36781                                    if (window.pars3p.auth.isLogin != true) {
36782                                        jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.TrungTaiKhoan).hide();
36783                                        jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.KhacTaiKhoan).hide();
36784                                    }
36785                                    else if (window.pars3p.auth.phoneNumber == data.Cellphone) {
36786                                        jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.ChuaDangNhap).hide();
36787                                        jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.KhacTaiKhoan).hide();
36788                                    }
36789                                    else {
36790                                        jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.ChuaDangNhap).hide();
36791                                        jQuery('.popup-khtt-has-account .type' + lib3p.pageDangKyKHTT.HasAccountType.TrungTaiKhoan).hide();
36792                                    }
36793                                }
36794                                else {
36795                                    lib3p.pageDangKyKHTT.onRegister_Submit_Next(event.target, data);
36796                                }
36797                            }, function (err) {
36798                                lib3p.log(err);
36799                            });
36800                        }
36801                        else {
36802                            jQuery(event.target.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">
36802Nhập sai mã captcha</span>');
36803                        }
36804                    }, function (errCap) {
36805                        jQuery(event.target.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Nhập sai mã captcha</span>');
36806                        //lib3p.log(err);
36807                    });
36808                }
36809
36810            }
36811
36812            event.preventDefault();
36813        },
36814        onRegister_Submit_Next: function (query, data) {
36815            window.pars3p.auth_last = {
36816                isLogin: window.pars3p.auth.isLogin,
36817                access_token: window.pars3p.auth.access_token,
36818                refresh_token: window.pars3p.auth.refresh_token,
36819                fullName: window.pars3p.auth.fullName,
36820                phoneNumber: window.pars3p.auth.phoneNumber,
36821                email: window.pars3p.auth.email,
36822                memberID: window.pars3p.auth.memberID,
36823                userName: window.pars3p.auth.userName
36824            };
36825            var req = {
36826                Email: "",
36827                UserName: data.Cellphone,
36828                Password: new Date().getTime(),
36829                PhoneNumber: data.Cellphone,
36830                FirstName: data.FirstName,
36831                LastName: data.LastName,
36832                Birthday: window.pars3p.dangkykhtt.Birthday,
36833                Province: window.pars3p.dangkykhtt.Province,
36834                District: window.pars3p.dangkykhtt.District,
36835                Store: window.pars3p.dangkykhtt.StoreID,
36836                POMaster: window.pars3p.dangkykhtt.TransactionNo,
36837                IsReceiveAds: window.pars3p.dangkykhtt.IsReceiveAds,
36838                SendType: window.pars3p.otp.SendType
36839            };
36840            var str = data.Cellphone.substr(0, 3) + "****" + data.Cellphone.substr(-3);
36841            jQuery('.page-dangky-khtt .thanh-cong .dienthoai').html(str);
36842            jQuery('.popup-register-pass .data').html(str);
36843            jQuery('.mobile-dangky-khtt .thanh-cong .dienthoai').html(str);
36844            lib3p.header.onOTPType_ShowDelivery(data.Cellphone, function () {
36845                lib3p.common_PostURL(window.pars3p.api.public.UserRegisterKHTT, req, function (res) {
36846                    if (lib3p_helper.utility.hasValue(res)) {
36847                        if (res.StatusID == 0 && lib3p_helper.utility.hasValueString(res.CardNo)) {
36848                            window.pars3p.dangkykhtt.HistoryCardID = res.ID;
36849                            window.pars3p.dangkykhtt.CardNo = res.CardNo;
36850                            window.pars3p.dangkykhtt.IsSend = res.IsSentRabbit;
36851                            lib3p.header.ConnectAuth(data.Cellphone, res.Password, function () {
36852                                window.pars3p.password.PasswordOld = res.Password;
36853                                lib3p.pageDangKyKHTT.onRegisterPass_Open();
36854                            }, function (errConnect) {
36855                                jQuery(query.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">' + errConnect + '</span>');
36856                            });
36857                        }
36858                        else {
36859                            jQuery(query.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Lỗi dữ liệu</span>');
36860                        }
36861                    }
36862                }, function (err) {
36863                    lib3p.log(err);
36864                });
36865            }, function () {
36866
36867            });
36868        },
36869        onPopupHasAccount_Close: function () {
36870            var query = jQuery('.popup-khtt-has-account .hachi-modal');
36871            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36872                if (jQuery(query[0]).hasClass("d-block")) {
36873                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
36874                }
36875            }
36876            if (window.pars3p.MobileClick == true) {
36877                query = jQuery('.mobile-dangky-khtt form');
36878            }
36879            else {
36880                query = jQuery('.page-dangky-khtt form');
36881            }
36882            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36883                ctr = query[0].Cellphone;
36884                ctr.value = '';
36885                ctr.focus();
36886                window.pars3p.PhoneNumber_last = '';
36887            }
36888        },
36889        onPopupHasAccount_Login: function () {
36890            window.location.href = window.pars3p.urlLogin;
36891        },
36892        onPopupHasAccount_Pass: function () {
36893            var query = jQuery('.popup-khtt-has-account .hachi-modal');
36894            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36895                if (jQuery(query[0]).hasClass("d-block")) {
36896                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
36897                }
36898            }
36899            query = jQuery('.popup-forget-pass .hachi-modal');
36900            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36901                if (jQuery(query[0]).hasClass("d-none")) {
36902                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
36903                }
36904            }
36905            setTimeout(function () {
36906                query = jQuery('.popup-forget-pass form');
36907                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36908                    query[0].Captcha.focus();
36909                }
36910            }, 100);
36911        },
36912        onQuenMatKhau_KeyDown: function (event, el) {
36913            var query = jQuery(el).closest('form');
36914            setTimeout(function () {
36915                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36916                    var flag = true;
36917                    var ctr = query[0].phone;
36918                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36919                        flag = false;
36920                    }
36921                    ctr = query[0].Captcha;
36922                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36923                        flag = false;
36924                    }
36925                    if (flag == true) {
36926                        jQuery(query[0]).removeClass('haserror');
36927                    }
36928                    else {
36929                        if (!jQuery(query[0]).hasClass('haserror')) {
36930                            jQuery(query[0]).addClass('haserror');
36931                        }
36932                    }
36933                }
36934            }, 100);
36935        },
36936        onQuenMatKhau_Close: function () {
36937            var query = jQuery('.popup-forget-pass .hachi-modal');
36938            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36939                if (jQuery(query[0]).hasClass("d-block")) {
36940                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
36941                }
36942            }
36943            if (window.pars3p.MobileClick == true) {
36944                query = jQuery('.mobile-dangky-khtt form');
36945            }
36946            else {
36947                query = jQuery('.page-dangky-khtt form');
36948            }
36949            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
36950                ctr = query[0].Cellphone;
36951                ctr.value = '';
36952                ctr.focus();
36953                window.pars3p.PhoneNumber_last = '';
36954            }
36955        },
36956        onQuenMatKhau_Submit: function (event) {
36957            if (!jQuery(event.target).hasClass('haserror')) {
36958                jQuery(event.target).find('div.error').html('');
36959                jQuery(event.target).find('.input input').removeClass('error');
36960
36961                var flag = true;
36962                var data = {
36963                    phone: '',
36964                    Captcha: '',
36965                };
36966
36967                var ctr = event.target.phone;
36968                data.phone = ctr.value;
36969                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36970                    flag = false;
36971                    if (!jQuery(ctr).hasClass('error')) {
36972                        jQuery(ctr).addClass('error');
36973                    }
36974                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" />
36974<span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
36975                }
36976                ctr = event.target.Captcha;
36977                data.Captcha = ctr.value;
36978                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
36979                    flag = false;
36980                    if (!jQuery(ctr).hasClass('error')) {
36981                        jQuery(ctr).addClass('error');
36982                    }
36983                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
36984                }
36985                if (flag == true) {
36986                    window.pars3p.KeyCaptcha = data.Captcha;
36987                    lib3p.common_PostURL(window.pars3p.api.public.userchangepass + '?key=' + window.pars3p.KeyView + '&captcha=' + window.pars3p.KeyCaptcha, { "PhoneNumber": data.phone }, function (res) {
36988                        if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasValue(res.phoneNumber)) {
36989                            var str = data.phone.substr(0, 3) + "****" + data.phone.substr(-3);
36990                            jQuery('.popup-change-pass .modal-body .data').html(str);
36991                            jQuery('.popup-change-success .modal-body .data').html(str);
36992
36993                            window.pars3p.dangkykhtt.IsChangePass = true;
36994                            window.pars3p.otp.PhoneNumber = res.phoneNumber;
36995                            lib3p.pageDangKyKHTT.onQuenMatKhau_Close();
36996                            lib3p.header.onOTPType_Show(res.phoneNumber, lib3p.header.TypeOTP.Account, function () {
36997                                window.pars3p.password.PasswordOld = window.pars3p.otp.Password;
36998                                lib3p.pageDangKyKHTT.onRegisterPass_Open();
36999                            }, function () {
37000                                lib3p.pageLogin.onPopupHasAccount_Pass();
37001                            });
37002                        }
37003                        else {
37004                            jQuery(event.target.phone).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Mã Khách Hàng Thân Thiết (KHTT) hoặc số điện thoại bạn vừa nhập chưa có trong hệ thống Hachi Hachi </span>');
37005                        }
37006                    }, function (err) {
37007                        jQuery(event.target.Captcha).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" loading="lazy" /><span class="s13 cl-gregray600 regular400">Nhập sai mã captcha</span>');
37008                    });
37009                }
37010            }
37011
37012            event.preventDefault();
37013        },
37014        onPopupHasAccount_Start: function () {
37015            window.location.href = "/";
37016        },
37017        onPopupHasAccount_Logout: function () {
37018            lib3p.common_tokenSet('');
37019            lib3p.common_cartSet('');
37020            window.pars3p.auth = {
37021                isLogin: false,
37022                access_token: '',
37023                refresh_token: '',
37024                fullName: '',
37025                phoneNumber: '',
37026            };
37027            window.pars3p.cart = {};
37028            window.location.href = window.pars3p.urlLogin;
37029        },
37030        UpdateData: function () {
37031            lib3p.common_PostURL(window.pars3p.api.public.PageKHTT_Update, { "item": window.pars3p.dangkykhtt }, function (res) {
37032                if (res == true) {
37033
37034                }
37035            }, function (err) {
37036                lib3p.log(err);
37037            });
37038        },
37039        OPT_Submit_Info: function (isopenpass) {
37040            jQuery('.page-dangky-khtt .dang-ky').hide();
37041            jQuery('.page-dangky-khtt .thanh-cong').show();
37042            jQuery('.page-dangky-khtt .col-auto.left').hide();
37043            jQuery('.mobile-dangky-khtt .dang-ky').hide();
37044            jQuery('.mobile-dangky-khtt .thanh-cong').show();
37045            jQuery('.mobile-dangky-khtt .banner-top').hide();
37046            if (lib3p_helper.utility.hasValue(window.pars3p.auth_last) && lib3p_helper.utility.hasValueString(window.pars3p.auth_last.access_token)) {
37047                jQuery('.page-dangky-khtt .hasaccount').show();
37048                jQuery('.mobile-dangky-khtt .hasaccount').show();
37049                var str = window.pars3p.auth_last.phoneNumber.substr(0, 3) + "****" + window.pars3p.auth_last.phoneNumber.substr(-3);
37050                jQuery('.page-dangky-khtt .thanh-cong .sodienthoai_old').html(str);
37051                jQuery('.mobile-dangky-khtt .thanh-cong .sodienthoai_old').html(str);
37052            }
37053            else {
37054                jQuery('.page-dangky-khtt .noaccount').show();
37055                jQuery('.mobile-dangky-khtt .noaccount').show();
37056            }
37057
37058            lib3p.common_AuthPostURL(window.pars3p.api.auth.Header_GetInfo, {}, function (resGet) {
37059                if (lib3p_helper.utility.hasValue(resGet) && lib3p_helper.utility.hasValueString(resGet.UserName)) {
37060                    window.pars3p.auth.fullName = resGet.FullName;
37061                    window.pars3p.auth.phoneNumber = resGet.Cellphone;
37062                    window.pars3p.auth.email = resGet.Email;
37063                    window.pars3p.auth.memberID = resGet.CardNo;
37064                    window.pars3p.auth.userName = resGet.UserName;
37065                    window.pars3p.auth.isLogin = true;
37066
37067                    window.pars3p.auth_new = {
37068                        isLogin: window.pars3p.auth.isLogin,
37069                        access_token: window.pars3p.auth.access_token,
37070                        refresh_token: window.pars3p.auth.refresh_token,
37071                        fullName: window.pars3p.auth.fullName,
37072                        phoneNumber: window.pars3p.auth.phoneNumber,
37073                        email: window.pars3p.auth.email,
37074                        memberID: window.pars3p.auth.memberID,
37075                        userName: window.pars3p.auth.userName
37076                    };
37077
37078                    if (isopenpass != true) {
37079                        if (lib3p_helper.utility.hasValue(window.pars3p.auth_last) && lib3p_helper.utility.hasValueString(window.pars3p.auth_last.access_token)) {
37080                            window.pars3p.auth = {
37081                                isLogin: window.pars3p.auth_last.isLogin,
37082                                access_token: window.pars3p.auth_last.access_token,
37083                                refresh_token: window.pars3p.auth_last.refresh_token,
37084                                fullName: window.pars3p.auth_last.fullName,
37085                                phoneNumber: window.pars3p.auth_last.phoneNumber,
37086                                email: window.pars3p.auth_last.email,
37087                                memberID: window.pars3p.auth_last.memberID,
37088                                userName: window.pars3p.auth_last.userName
37089                            };
37090                            lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
37091                            lib3p.common_cartSet('');
37092                            window.pars3p.cart = {};
37093                        }
37094                    }
37095
37096                    if (lib3p_helper.utility.hasValueString(resGet.CardNo)) {
37097                        var str = resGet.CardNo;
37098                        jQuery('.page-dangky-khtt .thanh-cong .memberID').html(str);
37099                        jQuery('.mobile-dangky-khtt .thanh-cong .memberID').html(str);
37100                    }
37101                }
37102            }, function (err) {
37103                lib3p.log(err);
37104            });
37105        },
37106        /* OPT_Submit_Info: function (isopenpass) {
37107            jQuery('.page-dangky-khtt .dang-ky').hide();
37108            jQuery('.page-dangky-khtt .thanh-cong').show();
37109            jQuery('.page-dangky-khtt .col-auto.left').hide();
37110            jQuery('.mobile-dangky-khtt .dang-ky').hide();
37111            jQuery('.mobile-dangky-khtt .thanh-cong').show();
37112            jQuery('.mobile-dangky-khtt .banner-top').hide();
37113            if (lib3p_helper.utility.hasValue(window.pars3p.auth_last) && lib3p_helper.utility.hasValueString(window.pars3p.auth_last.access_token)) {
37114                jQuery('.page-dangky-khtt .hasaccount').show();
37115                jQuery('.mobile-dangky-khtt .hasaccount').show();
37116                var str = window.pars3p.auth_last.phoneNumber.substr(0, 3) + "****" + window.pars3p.auth_last.phoneNumber.substr(-3);
37117                jQuery('.page-dangky-khtt .thanh-cong .sodienthoai_old').html(str);
37118                jQuery('.mobile-dangky-khtt .thanh-cong .sodienthoai_old').html(str);
37119            }
37120            else {
37121                jQuery('.page-dangky-khtt .noaccount').show();
37122                jQuery('.mobile-dangky-khtt .noaccount').show();
37123            }
37124            lib3p.common_AuthGetURL(window.pars3p.api.auth.getuserinfo, function (res) {
37125                window.pars3p.auth.fullName = res.fullName;
37126                window.pars3p.auth.phoneNumber = res.phoneNumber;
37127                window.pars3p.auth.email = res.email;
37128                window.pars3p.auth.memberID = res.memberID;
37129                window.pars3p.auth.userName = res.userName;
37130                window.pars3p.auth.isLogin = true;
37131
37132                window.pars3p.auth_new = {
37133                    isLogin: window.pars3p.auth.isLogin,
37134                    access_token: window.pars3p.auth.access_token,
37135                    refresh_token: window.pars3p.auth.refresh_token,
37136                    fullName: window.pars3p.auth.fullName,
37137                    phoneNumber: window.pars3p.auth.phoneNumber,
37138                    email: window.pars3p.auth.email,
37139                    memberID: window.pars3p.auth.memberID,
37140                    userName: window.pars3p.auth.userName
37141                };
37142
37143                if (isopenpass != true) {
37144                    if (lib3p_helper.utility.hasValue(window.pars3p.auth_last) && lib3p_helper.utility.hasValueString(window.pars3p.auth_last.access_token)) {
37145                        window.pars3p.auth = {
37146                            isLogin: window.pars3p.auth_last.isLogin,
37147                            access_token: window.pars3p.auth_last.access_token,
37148                            refresh_token: window.pars3p.auth_last.refresh_token,
37149                            fullName: window.pars3p.auth_last.fullName,
37150                            phoneNumber: window.pars3p.auth_last.phoneNumber,
37151                            email: window.pars3p.auth_last.email,
37152                            memberID: window.pars3p.auth_last.memberID,
37153                            userName: window.pars3p.auth_last.userName
37154                        };
37155                        lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
37156                        lib3p.common_cartSet('');
37157                        window.pars3p.cart = {};
37158                    }
37159                }
37160
37161                if (lib3p_helper.utility.hasValueString(res.memberID)) {
37162                    var str = res.memberID;
37163                    jQuery('.page-dangky-khtt .thanh-cong .memberID').html(str);
37164                    jQuery('.mobile-dangky-khtt .thanh-cong .memberID').html(str);
37165                }
37166            }, function (err) {
37167                lib3p.log(err);
37168            });
37169        }, */
37170        onRegisterPass_Open: function () {
37171            var query = jQuery('.popup-register-pass .hachi-modal');
37172            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
37173                if (jQuery(query[0]).hasClass("d-none")) {
37174                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
37175                }
37176            }
37177            if (window.pars3p.dangkykhtt.IsChangePass != true) {
37178                lib3p.pageDangKyKHTT.OPT_Submit_Info(true);
37179            }
37180            if (window.pars3p.dangkykhtt.IsChangePass != true && lib3p_helper.utility.hasValueString(window.pars3p.dangkykhtt) && lib3p_helper.utility.hasValueString(window.pars3p.dangkykhtt.URL) && lib3p_helper.utility.hasValueString(window.pars3p.dangkykhtt.TransactionNo)) {
37181                lib3p.common_AuthPostURL(window.pars3p.api.auth.PageKHTT_Send, { "item": window.pars3p.dangkykhtt }, function (res) {
37182                    if (res == true) {
37183
37184                    }
37185                }, function (err) {
37186                    lib3p.log(err);
37187                });
37188            }
37189        },
37190        onRegisterPass_Close: function () {
37191            var query = jQuery('.popup-register-pass .hachi-modal');
37192            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
37193                if (jQuery(query[0]).hasClass("d-block")) {
37194                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
37195                }
37196            }
37197        },
37198        onRegisterPassHien_Click: function (el) {
37199            var query = jQuery(el).closest('.input');
37200            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
37201                var el = query[0];
37202                var query = jQuery(el).children('input');
37203                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
37204                    var input = query[0];
37205                    if (jQuery(el).hasClass('hide')) {
37206                        jQuery(el).removeClass('hide');
37207                        jQuery(input).attr('type', 'password');
37208                    }
37209                    else {
37210                        jQuery(el).addClass('hide');
37211                        jQuery(input).attr('type', 'text');
37212                    }
37213                }
37214            }
37215        },
37216        onRegisterPass_KeyDown: function (event, el) {
37217            var query = jQuery(el).closest('form');
37218            setTimeout(function () {
37219                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
37220                    var flag = true;
37221                    var ctr = query[0].pass;
37222                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
37223                        flag = false;
37224                    }
37225                    ctr = query[0].passre;
37226                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
37227                        flag = false;
37228                    }
37229                    /* if(flag == true) {
37230                        jQuery(query[0]).removeClass('haserror');
37231                    }
37232                    else {
37233                        if(!jQuery(query[0]).hasClass('haserror')) {
37234                            jQuery(query[0]).addClass('haserror');
37235                        }
37236                    } */
37237                }
37238            }, 100);
37239        },
37240        onRegisterPass_Submit: function (event) {
37241            if (!jQuery(event.target).hasClass('haserror')) {
37242                jQuery(event.target).find('div.error').html('');
37243                jQuery(event.target).find('.input input').removeClass('error');
37244
37245                var flag = true;
37246                var data = {
37247                    pass: '',
37248                    passre: '',
37249                };
37250
37251                var ctr = event.target.pass;
37252                data.pass = ctr.value;
37253                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
37254                    flag = false;
37255                    if (!jQuery(ctr).hasClass('error')) {
37256                        jQuery(ctr).addClass('error');
37257                    }
37258                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mật khẩu không đủ 6 kí tự, vui lòng nhập lại</span>');
37259                }
37260                else if (ctr.value.length < 6) {
37261                    flag = false;
37262                    if (!jQuery(ctr).hasClass('error')) {
37263                        jQuery(ctr).addClass('error');
37264                    }
37265                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/tr
37265iangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mật khẩu ít nhất 6 kí tự</span>');
37266                }
37267                ctr = event.target.passre;
37268                data.passre = ctr.value;
37269                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
37270                    flag = false;
37271                    if (!jQuery(ctr).hasClass('error')) {
37272                        jQuery(ctr).addClass('error');
37273                    }
37274                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Vui lòng điền đầy đủ thông tin</span>');
37275                }
37276                if (flag != false && data.passre != data.pass) {
37277                    flag = false;
37278                    if (!jQuery(ctr).hasClass('error')) {
37279                        jQuery(ctr).addClass('error');
37280                    }
37281                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mật khẩu không khớp nhau, vui lòng nhập lại</span>');
37282                }
37283
37284                if (flag == true) {
37285                    lib3p.common_AuthPostURL(window.pars3p.api.auth.User_ChangePass, { "passold": window.pars3p.password.PasswordOld, "passnew": data.pass }, function (res) {
37286                        if(res.Succeeded == true) {
37287                            lib3p.pageDangKyKHTT.onRegisterPass_Close();
37288                            if (window.pars3p.dangkykhtt.IsChangePass == true) {
37289                                window.location.href = '/';
37290                            }
37291                            else {
37292                                lib3p.pageDangKyKHTT.OPT_Submit_Info(false);
37293                            }
37294                        }
37295                        else {
37296                            ctr = event.target.pass;
37297                            if (!jQuery(ctr).hasClass('error')) {
37298                                jQuery(ctr).addClass('error');
37299                            }
37300                            jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Nhập sai mật khẩu</span>');
37301                        }
37302                    }, function (err) {
37303                        if (err.status == 200) {
37304                            lib3p.pageDangKyKHTT.onRegisterPass_Close();
37305                            lib3p.pageDangKyKHTT.OPT_Submit_Info(false);
37306                        }
37307                    });
37308                    /* lib3p.common_AuthPostURL(window.pars3p.api.auth.changepassword, { "Password": window.pars3p.password.PasswordOld, "NewPassword": data.pass }, function (res) {
37309                        lib3p.pageDangKyKHTT.onRegisterPass_Close();
37310                        if (window.pars3p.dangkykhtt.IsChangePass == true) {
37311                            window.location.href = '/';
37312                        }
37313                        else {
37314                            lib3p.pageDangKyKHTT.OPT_Submit_Info(false);
37315                        }
37316                    }, function (err) {
37317                        if (err.status == 200) {
37318                            lib3p.pageDangKyKHTT.onRegisterPass_Close();
37319                            lib3p.pageDangKyKHTT.OPT_Submit_Info(false);
37320                        }
37321                    }); */
37322                }
37323            }
37324
37325            event.preventDefault();
37326        },
37327        onAccountOk_Click: function () {
37328            window.pars3p.auth = {
37329                isLogin: window.pars3p.auth_new.isLogin,
37330                access_token: window.pars3p.auth_new.access_token,
37331                refresh_token: window.pars3p.auth_new.refresh_token,
37332                fullName: window.pars3p.auth_new.fullName,
37333                phoneNumber: window.pars3p.auth_new.phoneNumber,
37334                email: window.pars3p.auth_new.email,
37335                memberID: window.pars3p.auth_new.memberID,
37336                userName: window.pars3p.auth_new.userName
37337            };
37338            lib3p.common_tokenSet(JSON.stringify(window.pars3p.auth));
37339            window.location.href = '/';
37340        },
37341        onAccountCancel_Click: function () {
37342            window.location.href = '/';
37343        },
37344
37345    },
37346
37347    eventJapanMall2024: {
37348        id: -1,
37349        theoLoai: '',
37350        sapXep: {
37351            KhuyenMai: ''
37352        },
37353        lstThuongHieu: [
37354            { Code: -1, BrandName: "BC-Link", width: "250px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_BC-LINK.jpg" },
37355            { Code: -1, BrandName: "Be Worth Style", width: "250px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_be-worth-style.jpg" },
37356            { Code: 391, BrandName: "Hikari Miso", width: "300px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Hikari-Miso.jpg" },
37357            { Code: 165, BrandName: "Japan Gals", width: "250px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Jap
37357an-Gals.jpg" },
37358            { Code: -1, BrandName: "Kajitani Shokuhin", width: "270px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Kajitani-Shokuhin.jpg" },
37359            { Code: 703, BrandName: "Kinon", width: "300px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Kinon.jpg" },
37360            { Code: -1, BrandName: "Livewell", width: "200px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Livewell.jpg" },
37361            { Code: -1, BrandName: "Loman", width: "250px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Loman.jpg" },
37362            { Code: 335, BrandName: "Nagainori", width: "300px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Nagainori.jpg" },
37363            { Code: 298, BrandName: "Nakamura", width: "340px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Nakamura.jpg" },
37364            { Code: -1, BrandName: "Nakayamafuku", width: "150px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Nakayamafuku.jpg" },
37365            { Code: 742, BrandName: "Subaru", width: "200px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Subaru.jpg" },
37366            { Code: 370, BrandName: "Tanaka Shokuhin", width: "300px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Tanaka-Shokuhin.jpg" },
37367            { Code: -1, BrandName: "Toyo nuts", width: "300px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Toyo-nuts.jpg" },
37368            { Code: 518, BrandName: "Wahei Freiz", width: "300px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Wahei-Freiz.jpg" },
37369            { Code: -1, BrandName: "Winnow", width: "300px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Winnow.jpg" },
37370            { Code: 398, BrandName: "Yamagen Jouzou", width: "300px", img: "https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event_japan_mall_2024/brand_Yamagen-Jouzou.jpg" },
37371        ],
37372        init: function () {
37373            var query = jQuery('.event-japanmall-2024');
37374            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
37375                var str = jQuery(query[0]).data('id');
37376                if (lib3p_helper.utility.hasValueString(str)) {
37377                    lib3p.eventJapanMall2024.id = parseInt(str);
37378                }
37379                if (lib3p.eventJapanMall2024.id > 0) {
37380                    lib3p.eventJapanMall2024.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
37381                }
37382            }
37383        },
37384        init_async: function () {
37385            return new Promise(function (resolve, reject) {
37386                setTimeout(function () {
37387                    lib3p.pageCart.OtherPage();
37388
37389                    if (!lib3p_helper.utility.hasValue(window.pars3p.browser)) {
37390                        window.pars3p.browser = lib3p.common_Browser();
37391                    }
37392                    if (window.pars3p.browser.IsMobile == true) {
37393                        lib3p.eventJapanMall2024.LoadSanPhamKhuyenMaiMobile([]);
37394                    }
37395                    else {
37396                        lib3p.eventJapanMall2024.LoadSanPhamKhuyenMai([]);
37397                    }
37398
37399                    if (lib3p_helper.utility.hasListValue(lib3p.eventJapanMall2024.lstThuongHieu)) {
37400                        var html_h = '';
37401                        var html = '';
37402                        var html_m = '';
37403                        var cidx = 0;
37404                        lib3p.eventJapanMall2024.lstThuongHieu.forEach(function (c) {
37405                            if (c.Code > 0) {
37406                                if (cidx == 0) {
37407                                    html += '<div class="active item item-' + c.Code + '">';
37408                                    lib3p.eventJapanMall2024.LoadSanPhamThuongHieu(c.Code);
37409                                }
37410                                else {
37411                                    html += '<div class="item item-' + c.Code + '">';
37412                                }
37413                                html += '<button type="button" aria-label="hachihachi" onclick="lib3p.eventJapanMall2024.onThuongHieu_Click(this,' + c.Code + ')"><span class="text s22 cl-event1 sibold600">' + c.BrandName + '</span></button></div>';
37414                                cidx++;
37415
37416                                html_h += '<div class="item" style="width:' + c.width + '"><a href="#bookmark_sanphamthuonghieu" class="img" onclick="lib3p.eventJapanMall2024.onThuongHieuImage_Click(this,' + c.Code + ')"><img src="' + c.img + '" /></a><a href="#bookmark_sanphamthuonghieu" class="text s14 cl-event2 medium500" onclick="lib3p.eventJapanMall2024.onThuongHieuImage_Click(this,' + c.Code + ')">' + c.BrandName + '</a>';
37417                            }
37418                            else {
37419                                html_h += '<div class="item" style="width:' + c.width + '"><a class="img" onclick="lib3p.eventJapanMall2024.onThuongHieuImage_Click(this,' + c.Code + ')"><img src="' + c.img + '" /></a><a class="text s14 cl-event2 medium500" onclick="lib3p.eventJapanMall2024.onThuongHieuImage_Click(this,' + c.Code + ')">' + c.BrandName + '</a>';
37420                            }
37421                            html_h += '</div>';
37422                            html_m += '<div class="item"><a class="img" onclick="lib3p.eventJapanMall2024.onThuongHieu_Click(this,' + c.Code + ')"><img src="' + c.img + '" /></a><a class="text s14 cl-event2 medium500" onclick="lib3p.eventJapanMall2024.onThuongHieu_Click(this,' + c.Code + ')">' + c.BrandName + '</a>';
37423                            html_m += '</div>';
37424                        });
37425                        jQuery('.event-japanmall-2024 .thuonghieu .danhsach').html(html_h);
37426                        jQuery('.event-japanmall-2024 .sanphamthuonghieu .product-tabs').html(html);
37427                        jQuery('.event-japanmall-2024 .sanphamthuonghieu .product-tabs.owl-carousel').owlCarousel({
37428                            autoplay: false,
37429                            autoplayHoverPause: false,
37430                            loop: false,
37431                            nav: false,
37432                            dots: false,
37433                            autoWidth: true,
37434                            margin: 10
37435                        });
37436                        jQuery('.mobile-japanmall-2024 .thuonghieu .danhsach').html('<div class="owl-carousel">' + html_m + '</div>');
37437                        jQuery('.mobile-japanmall-2024 .thuonghieu .danhsach .owl-carousel').owlCarousel({
37438                            autoplay: false,
37439                            autoplayHoverPause: false,
37440                            loop: false,
37441                            nav: false,
37442                            dots: false,
37443                            autoWidth: true,
37444                            margin: 10
37445                        });
37446                        jQuery('.mobile-japanmall-2024 .sanphamthuonghieu .product-tabs').html(html);
37447                        jQuery('.mobile-japanmall-2024 .sanphamthuonghieu .product-tabs.owl-carousel').owlCarousel({
37448                            autoplay: false,
37449                            autoplayHoverPause: false,
37450                            loop: false,
37451                            nav: false,
37452                            dots: false,
37453                            autoWidth: true,
37454                            margin: 10
37455                        });
37456
37457                        var query = jQuery('.event-japanmall-2024 .sanphamthuonghieu .product-tabs.owl-carousel .owl-stage');
37458                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
37459                            var w = jQuery(query[0]).css('width');
37460                            if (w.indexOf('px') > 0) {
37461                                w = w.substr(0, w.indexOf('px'));
37462                                w = parseInt(w) + 30;
37463                                jQuery(query[0]).css('width', w + 'px');
37464                            }
37465                        }
37466                    }
37467
37468                    lib3p.common_PostURL(window.pars3p.api.public.Event_SanPhamHot, { eventid: lib3p.eventJapanMall2024.id }, function (res) {
37469                        if (lib3p_helper.utility.hasListValue(res)) {
37470                            var html = '<div class="owl-carousel">';
37471                            var total = res.length;
37472                            res.forEach(function (c, cidx) {
37473                                html += '<div class="item">';
37474                                html += '<img src="' + c.BannerCard + '" />';
37475                                html += '<a class="cart-fast" data-code="' + c.Code + '" data-name="' + c.ProductName + '" data-img="' + c.ImageThumb + '" data-price="' + c.Price + '" data-pricebase="' + c.PriceBase + '" data-hachi24="' + c.IsHachi24h + '" data-barcode="' + c.Barcode + '" onclick="lib3p.header.onProductMuaNgay_Click(this)">&nbsp;</a>';
37476                                html += '<div class="sapxep-bg b-gregray40">&nbsp;</div>';
37477                                html += '<div class="sapxep s13 cl-gregray600 sibold600">' + (cidx + 1) + '/' + total + '</div>';
37478                                html += '</div>';
37479                            });
37480                            html += '</div>';
37481                            jQuery('.event-japanmall-2024 .sanphamhot .danhsach').html(html);
37482                            jQuery('.mobile-japanmall-2024 .sanphamhot .danhsach').html(html);
37483                            jQuery('.event-japanmall-2024 .sanphamhot .danhsach .owl-carousel').owlCarousel({
37484                                autoplay: false,
37485                                autoplayTimeout: 3000,
37486                                autoplayHoverPause: true,
37487                                autoWidth: true,
37488                                loop: true,
37489                                nav: false,
37490                                dots: false,
37491                                margin: 12,
37492                            });
37493                            jQuery('.mobile-japanmall-2024 .sanphamhot .danhsach .owl-carousel').owlCarousel({
37494                                autoplay: false,
37495                                autoplayHoverPause: false,
37496                                autoWidth: true,
37497                                loop: true,
37498                                nav: false,
37499                                dots: false,
37500                                margin: 12,
37501                            });
37502                        }
37503                        else {
37504                            jQuery('.event-japanmall-2024 .sanphamhot').hide();
37505                            jQuery('.mobile-japanmall-2024 .sanphamhot').hide();
37506                        }
37507                    }, function (err) {
37508                        throw err;
37509                    });
37510
37511                    lib3p.common_PostURL(window.pars3p.api.public.Event_SanPhamCombo, { eventid: lib3p.eventJapanMall2024.id }, function (res) {
37512                        if (lib3p_helper.utility.hasListValue(res)) {
37513                            var html = '<div class="owl-carousel">';
37514                            var total = res.length;
37515                            res.forEach(function (c, cidx) {
37516                                html += '<div class="item">';
37517                                //html += '<img src="' + c.BannerCard + '" />';
37518                                html += '<img src="/Uploads/_6/productbannerchude/L03-4560121432686.jpg" />';
37519                                html += '<a class="cart-fast" data-code="' + c.Code + '" data-name="' + c.ProductName + '" data-img="' + c.ImageThumb + '" data-price="' + c.Price + '" data-pricebase="' + c.PriceBase + '" data-hachi24="' + c.IsHachi24h + '" data-barcode="' + c.Barcode + '" onclick="lib3p.header.onProductMuaNgay_Click(this)">&nbsp;</a>';
37520                                html += '<div class="sapxep-bg b-gregray200">&nbsp;</div>';
37521                                html += '<div class="sapxep s16 cl-gregray750 regular400">' + (cidx + 1) + '/' + total + '</div>';
37522                                html += '</div>';
37523                            });
37524                            html += '</div>';
37525                            jQuery('.event-japanmall-2024 .sanphamcombo .danhsach').html(html);
37526                            jQuery('.event-japanmall-2024 .sanphamcombo .danhsach .owl-carousel').owlCarousel({
37527                                autoplay: false,
37528                                autoplayTimeout: 3000,
37529                                autoplayHoverPause: true,
37530                                autoWidth: false,
37531                                loop: false,
37532                                nav: true,
37533                                dots: false,
37534                                items: 1,
37535                                navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
37536                                navElement: 'div'
37537                            });
37538                            jQuery('.mobile-japanmall-2024 .sanphamcombo .danhsach').html(html);
37539                            jQuery('.mobile-japanmall-2024 .sanphamcombo .danhsach .owl-carousel').owlCarousel({
37540                                autoplay: false,
37541                                autoplayTimeout: 3000,
37542                                autoplayHoverPause: true,
37543                                autoWidth: false,
37544                                loop: true,
37545                                nav: false,
37546                                dots: false,
37547                                items: 1
37548                            });
37549                        }
37550                        else {
37551                            jQuery('.event-japanmall-2024 .sanphamcombo').hide();
37552                            jQuery('.mobile-japanmall-2024 .sanphamcombo').hide();
37553                        }
37554                    }, function (err) {
37555                        throw err;
37556                    });
37557
37558                    lib3p.common_PostURL(window.pars3p.api.public.Event_Kind, { eventid: lib3p.eventJapanMall2024.id }, function (res) {
37559                        if (lib3p_helper.utility.hasListValue(res)) {
37560                            var html = '';
37561                            var html_m = '';
37562                            res.forEach(function (c, cidx) {
37563                                if (cidx == 0) {
37564                                    html += '<div class="active item">';
37565                                    html_m += '<div class="active item">';
37566                                    lib3p.eventJapanMall2024.theoLoai = c;
37567                                    if (window.pars3p.browser.IsMobile == true) {
37568                                        lib3p.eventJapanMall2024.LoadSanPhamByKindMobile([]);
37569                                    }
37570                                    else {
37571                                        lib3p.eventJapanMall2024.LoadSanPhamByKind([]);
37572                                    }
37573                                }
37574                                else {
37575                                    html += '<div class="item">';
37576                                    html_m += '<div class="item">';
37577                                }
37578                                html += '<button type="button" aria-label="hachihachi" class="s22 sibold600" onclick="lib3p.eventJapanMall2024.onTheoLoai_Click(this)" data-kind="' + c + '">' + c + '</button></div>';
37579                                html_m += '<button type="button" aria-label="hachihachi" class="s14 cl-event1 sibold600" onclick="lib3p.eventJapanMall2024.onTheoLoaiMobile_Click(this)" data-kind="' + c + '">' + c + '</button></div>';
37580                            });
37581                            jQuery('.event-japanmall-2024 .sanphamdanhmuc .product-tabs').html(html);
37582                            jQuery('.event-japanmall-2024 .sanphamdanhmuc .product-tabs.owl-carousel').owlCarousel({
37583                                autoplay: false,
37584                                autoplayHoverPause: false,
37585                                loop: false,
37586                                nav: false,
37587                                dots: false,
37588                                autoWidth: true,
37589                                margin: 10
37590                            });
37591                            jQuery('.mobile-japanmall-2024 .sanphamdanhmuc .product-tabs').html(html_m);
37592                            jQuery('.mobile-japanmall-2024 .sanphamdanhmuc .product-tabs.owl-carousel').owlCarousel({
37593                                autoplay: false,
37594                                autoplayHoverPause: false,
37595                                loop: false,
37596                                nav: false,
37597                                dots: false,
37598                                autoWidth: true,
37599                                margin: 10
37600                            });
37601
37602                            var query = jQuery('.event-japanmall-2024 .sanphamdanhmuc .product-tabs.owl-carousel .owl-stage');
37603                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
37604                                var w = jQuery(query[0]).css('width');
37605                                if (w.indexOf('px') > 0) {
37606                                    w = w.substr(0, w.indexOf('px'));
37607                                    w = parseInt(w) + 40;
37608                                    jQuery(query[0]).css('width', w + 'px');
37609                                }
37610                            }
37611                        }
37612                        else {
37613
37614                        }
37615                    }, function (err) {
37616                        throw err;
37617                    });
37618
37619                }, window.pars3p.timeAsync);
37620            });
37621        },
37622        onTinTucXemThem_Click: function (el) {
37623            var query = jQuery(el).closest('.chitiet-outline').find('.chitiet');
37624            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
37625                if (jQuery(query[0]).hasClass("anchitiet")) {
37626                    jQuery(query[0]).removeClass("anchitiet");
37627                    jQuery(el).html('Thu gọn');
37628                    jQuery(query[0]).find(".gradient").hide();
37629                }
37630                else {
37631                    jQuery(query[0]).addClass("anchitiet");
37632                    jQuery(el).html('Xem thêm');
37633                    jQuery(query[0]).find(".gradient").show();
37634                }
37635            }
37636        },
37637        LoadSanPhamThuongHieu: function (brandid) {
37638            if (brandid > 0) {
37639                lib3p.common_PostURL(window.pars3p.api.public.Event_SanPhamThuongHieu, { eventid: lib3p.eventJapanMall2024.id, brandid: brandid }, function (res) {
37640                    if (lib3p_helper.utility.hasListValue(res)) {
37641                        var html = '<div class="owl-carousel">';
37642                        res.forEach(function (c, cidx) {
37643                            html += lib3p_helper.product.parseHTML(c);
37644                        });
37645                        html += '</div>';
37646                        jQuery('.event-japanmall-2024 .sanphamthuonghieu .product-list').html(html);
37647                        jQuery('.event-japanmall-2024 .sanphamthuonghieu .product-list .owl-carousel').owlCarousel({
37648                            autoplay: false,
37649                            autoplayTimeout: 3000,
37650                            autoplayHoverPause: true,
37651                            autoWidth: true,
37652                            loop: false,
37653                            nav: true,
37654                            dots: false,
37655                            margin: 12,
37656                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
37657                            navElement: 'div'
37658                        });
37659                        jQuery('.mobile-japanmall-2024 .sanphamthuonghieu .product-list').html(html);
37660                        jQuery('.mobile-japanmall-2024 .sanphamthuonghieu .product-list .owl-carousel').owlCarousel({
37661                            autoplay: false,
37662                            autoplayTimeout: 3000,
37663                            autoplayHoverPause: true,
37664                            autoWidth: true,
37665                            loop: false,
37666                            nav: false,
37667                            dots: false,
37668                            margin: 12,
37669                        });
37670                    }
37671                    else {
37672                        jQuery('.event-japanmall-2024 .sanphamthuonghieu .product-list').html('');
37673                        jQuery('.mobile-japanmall-2024 .sanphamthuonghieu .product-list').html('');
37674                    }
37675                }, function (err) {
37676                    throw err;
37677                });
37678            }
37679        },
37680        onThuongHieu_Click: function (el, code) {
37681            if (code > 0) {
37682                if (lib3p_helper.utility.hasValue(el)) {
37683                    jQuery('.event-japanmall-2024 .sanphamthuonghieu .product-tabs .item.active').removeClass('active');
37684                    jQuery('.event-japanmall-2024 .sanphamthuonghieu .product-tabs .item-' + code).addClass('active');
37685                }
37686                lib3p.eventJapanMall2024.LoadSanPhamThuongHieu(code);
37687            }
37688        },
37689        onThuongHieuImage_Click: function (el, code) {
37690            if (code > 0) {
37691                jQuery('.event-japanmall-2024 .sanphamthuonghieu .product-tabs .item-' + code + ' button').trigger('click');
37692            }
37693        },
37694        LoadSanPhamKhuyenMai: function (lst) {
37695            lib3p.common_PostURL(window.pars3p.api.public.Event_SanPhamKhuyenMai, { eventid: lib3p.eventJapanMall2024.id, sort: lib3p.eventJapanMall2024.sapXep.KhuyenMai, lst: lst }, function (res) {
37696                if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.ListProduct)) {
37697                    var html = '';
37698                    res.ListProduct.forEach(function (c, cidx) {
37699                        html += '<div class="product-item-outline">';
37700                        html += lib3p_helper.product.parseHTML(c);
37701                        html += '</div>';
37702                    });
37703                    if (!lib3p_helper.utility.hasListValue(lst)) {
37704                        jQuery('.event-japanmall-2024 .sanphamkhuyenmai .product-list').html(html);
37705                        var query = jQuery('.event-japanmall-2024 .sanphamkhuyenmai .xemthem > a');
37706                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
37707                            if (lib3p_helper.utility.hasListValue(res.ListIDNext)) {
37708                                query.show();
37709                                jQuery('.event-japanmall-2024 .sanphamkhuyenmai .xemthem > a').show();
37710                                jQuery(query[0]).data('lst', res.ListIDNext);
37711                            }
37712                            else {
37713                                query.hide();
37714                                jQuery('.event-japanmall-2024 .sanphamkhuyenmai .xemthem > a').hide();
37715                            }
37716                        }
37717                    }
37718                    else {
37719                        jQuery('.event-japanmall-2024 .sanphamkhuyenmai .product-list').append(html);
37720                    }
37721                }
37722                else {
37723                    jQuery('.event-japanmall-2024 .sanphamkhuyenmai').hide();
37724                }
37725            }, function (err) {
37726                throw err;
37727            });
37728        },
37729        LoadSanPhamKhuyenMaiMobile: function (lst) {
37730            lib3p.common_PostURL(window.pars3p.api.public.Event_SanPhamKhuyenMaiMobile, { eventid: lib3p.eventJapanMall2024.id, sort: '', lst: lst }, function (res) {
37731                if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.ListProduct)) {
37732                    var html = '';
37733                    res.ListProduct.forEach(function (c, cidx) {
37734                        html += '<div class="product-item-outline">';
37735                        html += lib3p_helper.product.parseHTML(c);
37736                        html += '</div>';
37737                    });
37738                    if (!lib3p_helper.utility.hasListValue(lst)) {
37739                        jQuery('.mobile-japanmall-2024 .sanphamkhuyenmai .product-list').html(html);
37740                        var query = jQuery('.mobile-japanmall-2024 .sanphamkhuyenmai .xemthem > a');
37741                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
37742                            if (lib3p_helper.utility.hasListValue(res.ListIDNext)) {
37743                                query.show();
37744                                jQuery('.mobile-japanmall-2024 .sanphamkhuyenmai .xemthem > a').show();
37745                                jQuery(query[0]).data('lst', res.ListIDNext);
37746                            }
37747                            else {
37748                                query.hide();
37749                                jQuery('.mobile-japanmall-2024 .sanphamkhuyenmai .xemthem > a').hide();
37750                            }
37751                        }
37752                    }
37753                    else {
37754                        jQuery('.mobile-japanmall-2024 .sanphamkhuyenmai .product-list').append(html);
37755                    }
37756                }
37757                else {
37758                    jQuery('.mobile-japanmall-2024 .sanphamkhuyenmai').hide();
37759                }
37760            }, function (err) {
37761                throw err;
37762            });
37763        },
37764        onXemThemKhuyenMai_Click: function (el) {
37765            var lst = jQuery(el).data('lst');
37766            if (lib3p_helper.utility.hasListValue(lst)) {
37767                lib3p.eventJapanMall2024.LoadSanPhamKhuyenMai(lst);
37768                jQuery(el).data('lst', []);
37769                jQuery(el).hide();
37770            }
37771        },
37772        onXemThemKhuyenMaiMobile_Click: function (el) {
37773            var lst = jQuery(el).data('lst');
37774            if (lib3p_helper.utility.hasListValue(lst)) {
37775                lib3p.eventJapanMall2024.LoadSanPhamKhuyenMaiMobile(lst);
37776                jQuery(el).data('lst', []);
37777                jQuery(el).hide();
37778            }
37779        },
37780        onSapXepKhuyenMai_Click: function (el) {
37781            var sort = lib3p.eventJapanMall2024.SapXepGet(el);
37782            if (lib3p_helper.utility.hasValueString(sort)) {
37783                lib3p.eventJapanMall2024.sapXep.KhuyenMai = sort;
37784                lib3p.eventJapanMall2024.LoadSanPhamKhuyenMai([]);
37785            }
37786        },
37787        onSapXepKhuyenMaiMobile_Click: function (el) {
37788            var sort = lib3p.eventJapanMall2024.SapXepGet(el);
37789            if (lib3p_helper.utility.hasValueString(sort)) {
37790                lib3p.eventJapanMall2024.sapXep.KhuyenMai = sort;
37791                lib3p.eventJapanMall2024.LoadSanPhamKhuyenMaiMobile([]);
37792            }
37793        },
37794        SapXepGet: function (el) {
37795            var html = jQuery(el).html();
37796            var sort = jQuery(el).data('sort');
37797            if (lib3p_helper.utility.hasValueString(html) && lib3p_helper.utility.hasValueString(sort)) {
37798                var query = jQuery(el).closest('div.dropdown');
37799                query.find('span.txt-sort').html(html);
37800                return sort;
37801            }
37802            else {
37803                return null;
37804            }
37805        },
37806        onXemThemKind_Click: function (el) {
37807            var lst = jQuery(el).data('lst');
37808            if (lib3p_helper.utility.hasListValue(lst)) {
37809                lib3p.eventJapanMall2024.LoadSanPhamByKind(lst);
37810                jQuery(el).data('lst', []);
37811                jQuery(el).hide();
37812            }
37813        },
37814        onXemThemKindMobile_Click: function (el) {
37815            var lst = jQuery(el).data('lst');
37816            if (lib3p_helper.utility.hasListValue(lst)) {
37817                lib3p.eventJapanMall2024.LoadSanPhamByKindMobile(lst);
37818                jQuery(el).data('lst', []);
37819                jQuery(el).hide();
37820            }
37821        },
37822        LoadSanPhamByKind: function (lst) {
37823            lib3p.common_PostURL(window.pars3p.api.public.Event_SanPhamByKind, { eventid: lib3p.eventJapanMall2024.id, kind: lib3p.eventJapanMall2024.theoLoai, sort: '', lst: lst }, function (res) {
37824                if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.ListProduct)) {
37825                    var html = '';
37826                    res.ListProduct.forEach(function (c, cidx) {
37827                        html += '<div class="product-item-outline">';
37828                        html += lib3p_helper.product.parseHTML(c);
37829                        html += '</div>';
37830                    });
37831                    if (!lib3p_helper.utility.hasListValue(lst)) {
37832                        jQuery('.event-japanmall-2024 .sanphamdanhmuc .product-list').html(html);
37833                        var query = jQuery('.event-japanmall-2024 .sanphamdanhmuc .xemthem > a');
37834                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
37835                            if (lib3p_helper.utility.hasListValue(res.ListIDNext)) {
37836                                query.show();
37837                                jQuery('.event-japanmall-2024 .sanphamdanhmuc .xemthem > a').show();
37838                                jQuery(query[0]).data('lst', res.ListIDNext);
37839                            }
37840                            else {
37841                                query.hide();
37842                                jQuery('.event-japanmall-2024 .sanphamdanhmuc .xemthem > a').hide();
37843                            }
37844                        }
37845                    }
37846                    else {
37847                        jQuery('.event-japanmall-2024 .sanphamdanhmuc .product-list').append(html);
37848                    }
37849                }
37850                else {
37851                    jQuery('.event-japanmall-2024 .sanphamdanhmuc .product-list').html('');
37852                    jQuery('.event-japanmall-2024 .sanphamdanhmuc .xemthem > a').hide();
37853                }
37854            }, function (err) {
37855                throw err;
37856            });
37857        },
37858        LoadSanPhamByKindMobile: function (lst) {
37859            lib3p.common_PostURL(window.pars3p.api.public.Event_SanPhamByKindMobile, { eventid: lib3p.eventJapanMall2024.id, kind: lib3p.eventJapanMall2024.theoLoai, sort: '', lst: lst }, function (res) {
37860                if (lib3p_helper.utility.hasValue(res) && lib3p_helper.utility.hasListValue(res.ListProduct)) {
37861                    var html = '';
37862                    res.ListProduct.forEach(function (c, cidx) {
37863                        html += '<div class="product-item-outline">';
37864                        html += lib3p_helper.product.parseHTML(c);
37865                        html += '</div>';
37866                    });
37867                    if (!lib3p_helper.utility.hasListValue(lst)) {
37868                        jQuery('.mobile-japanmall-2024 .sanphamdanhmuc .product-list').html(html);
37869                        var query = jQuery('.mobile-japanmall-2024 .sanphamdanhmuc .xemthem > a');
37870                        if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
37871                            if (lib3p_helper.utility.hasListValue(res.ListIDNext)) {
37872                                query.show();
37873                                jQuery('.mobile-japanmall-2024 .sanphamdanhmuc .xemthem > a').show();
37874                                jQuery(query[0]).data('lst', res.ListIDNext);
37875                            }
37876                            else {
37877                                query.hide();
37878                                jQuery('.mobile-japanmall-2024 .sanphamdanhmuc .xemthem > a').hide();
37879                            }
37880                        }
37881                    }
37882                    else {
37883                        jQuery('.mobile-japanmall-2024 .sanphamdanhmuc .product-list').append(html);
37884                    }
37885                }
37886                else {
37887                    jQuery('.mobile-japanmall-2024 .sanphamdanhmuc .product-list').html('');
37888                    jQuery('.mobile-japanmall-2024 .sanphamdanhmuc .xemthem > a').hide();
37889                }
37890            }, function (err) {
37891                throw err;
37892            });
37893        },
37894        onTheoLoai_Click: function (el) {
37895            lib3p.eventJapanMall2024.theoLoai = jQuery(el).data('kind');
37896            lib3p.eventJapanMall2024.LoadSanPhamByKind([]);
37897            jQuery('.event-japanmall-2024 .sanphamdanhmuc .product-tabs .item.active').removeClass('active');
37898            jQuery('.event-japanmall-2024 .sanphamdanhmuc .product-tabs .item > button').each(function () {
37899                var btn = this;
37900                if (jQuery(btn).data('kind') == lib3p.eventJapanMall2024.theoLoai) {
37901                    jQuery(btn).closest('.item').addClass('active');
37902                }
37903            });
37904        },
37905        onTheoLoaiMobile_Click: function (el) {
37906            lib3p.eventJapanMall2024.theoLoai = jQuery(el).data('kind');
37907            lib3p.eventJapanMall2024.LoadSanPhamByKindMobile([]);
37908            jQuery('.mobile-japanmall-2024 .sanphamdanhmuc .product-tabs .item.active').removeClass('active');
37909            jQuery('.mobile-japanmall-2024 .sanphamdanhmuc .product-tabs .item > button').each(function () {
37910                var btn = this;
37911                if (jQuery(btn).data('kind') == lib3p.eventJapanMall2024.theoLoai) {
37912                    jQuery(btn).closest('.item').addClass('active');
37913                }
37914            });
37915        },
37916    },
37917    eventJapanMall2025: {
37918        init: function () {
37919            var query = jQuery('.event-japanmall-2025');
37920            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
37921                lib3p.eventJapanMall2025.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
37922            }
37923        },
37924        init_async: function () {
37925            return new Promise(function (resolve, reject) {
37926                setTimeout(function () {
37927                    lib3p.pageCart.OtherPage();
37928
37929                    if (jQuery('.event-japanmall-2025 div[type="product"]').length > 0) {
37930                        var lstid = [];
37931                        jQuery('.event-japanmall-2025 div[type="product"]').each(function () {
37932                            var code = jQuery(this).data('code');
37933                            lstid.push(code);
37934                        });
37935                        lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: lstid }, function (res) {
37936                            if (lib3p_helper.utility.hasListValue(res)) {
37937                                jQuery('.event-japanmall-2025 div[type="product"]').each(function () {
37938                                    var code = jQuery(this).data('code');
37939                                    var find = res.find(function (o) { return o.Code == code; });
37940                                    if (lib3p_helper.utility.hasValue(find)) {
37941                                        var html = lib3p_helper.product.parseHTML6(find, true);�
37941
37942                                        jQuery(this).html(html);
37943                                    }
37944                                });
37945                                jQuery('.event-japanmall-2025-mobile div[type="product"]').each(function () {
37946                                    var code = jQuery(this).data('code');
37947                                    var find = res.find(function (o) { return o.Code == code; });
37948                                    if (lib3p_helper.utility.hasValue(find)) {
37949                                        var html = lib3p_helper.product.parseHTML6(find, true);
37950                                        jQuery(this).html(html);
37951                                    }
37952                                });
37953                            }
37954                        }, function (err) {
37955                            lib3p.log(err);
37956                        });
37957                    }
37958                    if (jQuery('.event-japanmall-2025 img[type="product"]').length > 0) {
37959                        var lstid = [];
37960                        jQuery('.event-japanmall-2025 img[type="product"]').each(function () {
37961                            var code = jQuery(this).data('code');
37962                            lstid.push(code);
37963                        });
37964                        lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: lstid }, function (res) {
37965                            if (lib3p_helper.utility.hasListValue(res)) {
37966                                var lst = [];
37967                                jQuery('.event-japanmall-2025 img[type="product"]').each(function () {
37968                                    var code = jQuery(this).data('code');
37969                                    var find = res.find(function (o) { return o.Code == code; });
37970                                    if (lib3p_helper.utility.hasValue(find)) {
37971                                        var html = lib3p_helper.product.parseHTML6(find, true);
37972                                        jQuery(this).after(html);
37973                                        lst.push(this);
37974                                    }
37975                                });
37976                                jQuery('.event-japanmall-2025-mobile img[type="product"]').each(function () {
37977                                    var code = jQuery(this).data('code');
37978                                    var find = res.find(function (o) { return o.Code == code; });
37979                                    if (lib3p_helper.utility.hasValue(find)) {
37980                                        var html = lib3p_helper.product.parseHTML6(find, true);
37981                                        jQuery(this).after(html);
37982                                        lst.push(this);
37983                                    }
37984                                });
37985                                lst.forEach(function (o) {
37986                                    jQuery(o).remove();
37987                                });
37988                            }
37989                        }, function (err) {
37990                            lib3p.log(err);
37991                        });
37992                    }
37993
37994                    var browserW = lib3p.common_GetWidthBrowser();
37995                    if (browserW >= 800) {
37996                        jQuery('.event-japanmall-2025 .banner-2 .danhsach.owl-carousel').owlCarousel({
37997                            autoplay: true,
37998                            autoplayTimeout: 3000,
37999                            autoplayHoverPause: true,
38000                            autoWidth: false,
38001                            loop: true,
38002                            nav: true,
38003                            items: 1,
38004                            dots: false,
38005                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
38006                            navElement: 'div'
38007                        });
38008                        jQuery('.event-japanmall-2025 .flashsale .danhsach .owl-carousel').owlCarousel({
38009                            autoplay: true,
38010                            autoplayTimeout: 3000,
38011                            autoplayHoverPause: true,
38012                            autoWidth: false,
38013                            loop: true,
38014                            nav: true,
38015                            dots: false,
38016                            items: 2.6,
38017                            margin: 12,
38018                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
38019                            navElement: 'div'
38020                        });
38021                        jQuery('.event-japanmall-2025 .sanphamthuonghieu .danhmuc .danhmuc-data.owl-carousel').owlCarousel({
38022                            autoplay: false,
38023                            autoplayTimeout: 3000,
38024                            autoplayHoverPause: true,
38025                            autoWidth: true,
38026                            loop: false,
38027                            nav: true,
38028                            dots: false,
38029                            margin: 20,
38030                            navText: ['<button type="button" aria-label="hachihachi" class="icon-left"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>', '<button type="button" aria-label="hachihachi" class="icon-right"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>'],
38031                            navElement: 'div'
38032                        });
38033                        jQuery('.event-japanmall-2025 .sanphamthuonghieu .danhmuc-product .owl-carousel').owlCarousel({
38034                            autoplay: false,
38035                            autoplayTimeout: 3000,
38036                            autoplayHoverPause: true,
38037                            autoWidth: true,
38038                            loop: false,
38039                            nav: true,
38040                            dots: false,
38041                            margin: 20,
38042                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
38043                            navElement: 'div'
38044                        });
38045                        jQuery('.event-japanmall-2025 .sanphamdanhmuc .danhmuc .danhmuc-data.owl-carousel').owlCarousel({
38046                            autoplay: false,
38047                            autoplayTimeout: 3000,
38048                            autoplayHoverPause: true,
38049                            autoWidth: true,
38050                            loop: false,
38051                            nav: false,
38052                            dots: false,
38053                            margin: 20,
38054                        });
38055
38056                        jQuery('.event-japanmall-2025 .combo-tiet-kiem .danh-sach.owl-carousel').owlCarousel({
38057                            autoplay: false,
38058                            autoplayTimeout: 3000,
38059                            autoplayHoverPause: true,
38060                            autoWidth: false,
38061                            loop: false,
38062                            nav: true,
38063                            dots: false,
38064                            items: 1,
38065                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
38066                            navElement: 'div'
38067                        });
38068
38069                        jQuery('.event-japanmall-2025 .emptydata').each(function () {
38070                            var count = jQuery(this).data('count');
38071                            if (count > 0) {
38072                                jQuery(this).hide();
38073                            }
38074                        });
38075
38076                    }
38077                    else {
38078                        jQuery('.event-japanmall-2025-mobile .banner-2 .danhsach.owl-carousel').owlCarousel({
38079                            autoplay: true,
38080                            autoplayTimeout: 3000,
38081                            autoplayHoverPause: true,
38082                            autoWidth: false,
38083                            loop: true,
38084                            nav: false,
38085                            dots: false,
38086                            items: 1,
38087                        });
38088                        jQuery('.event-japanmall-2025-mobile .thuonghieu .danh-sach.owl-carousel').owlCarousel({
38089                            autoplay: false,
38090                            autoplayTimeout: 3000,
38091                            autoplayHoverPause: true,
38092                            autoWidth: true,
38093                            loop: false,
38094                            //nav: true,
38095                            dots: false,
38096                            margin: 5,
38097                            //navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
38098                            //navElement: 'div'
38099                        });
38100                        jQuery('.event-japanmall-2025-mobile .flashsale-mobile .danhsach .owl-carousel').owlCarousel({
38101                            autoplay: true,
38102                            autoplayTimeout: 3000,
38103                            autoplayHoverPause: true,
38104                            autoWidth: false,
38105                            loop: true,
38106                            nav: false,
38107                            dots: false,
38108                            items: 1,
38109                        });
38110                        jQuery('.event-japanmall-2025-mobile .sanphamthuonghieu .danhmuc .danhmuc-data.owl-carousel').owlCarousel({
38111                            autoplay: false,
38112                            autoplayTimeout: 3000,
38113                            autoplayHoverPause: true,
38114                            autoWidth: true,
38115                            loop: false,
38116                            nav: false,
38117                            dots: false,
38118                            margin: 20
38119                        });
38120                        jQuery('.event-japanmall-2025-mobile .sanphamdanhmuc .danhmuc .danhmuc-data.owl-carousel').owlCarousel({
38121                            autoplay: false,
38122                            autoplayTimeout: 3000,
38123                            autoplayHoverPause: true,
38124                            autoWidth: true,
38125                            loop: true,
38126                            nav: false,
38127                            dots: false,
38128                            margin: 20
38129                        });
38130                        jQuery('.event-japanmall-2025-mobile .combo-tiet-kiem .danh-sach.owl-carousel').owlCarousel({
38131                            autoplay: false,
38132                            autoplayTimeout: 3000,
38133                            autoplayHoverPause: true,
38134                            autoWidth: false,
38135                            loop: true,
38136                            nav: true,
38137                            dots: false,
38138                            items: 1,
38139                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
38140                            navElement: 'div'
38141                        });
38142                        jQuery('.event-japanmall-2025-mobile .coupon .danh-sach.owl-carousel').owlCarousel({
38143                            autoplay: false,
38144                            autoplayTimeout: 3000,
38145                            autoplayHoverPause: true,
38146                            autoWidth: true,
38147                            loop: true,
38148                            //nav: true,
38149                            dots: false,
38150                            margin: 1,
38151                            //navText: ['<button type="button" aria-label="hachihachi" class="icon-left"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-left-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>', '<button type="button" aria-label="hachihachi" class="icon-right"><img class="show" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26.svg" alt="hachihachi" loading="lazy" /><img class="hide" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/angle-right-circle-26-sel.svg" alt="hachihachi" loading="lazy" /></button>'],
38152                            //navElement: 'div'
38153                        });
38154
38155                        jQuery('.event-japanmall-2025-mobile .danhmuc-product .xemthem').each(function () {
38156                            var count = jQuery(this).data('count');
38157                            if (!(count > 4)) {
38158                                jQuery(this).hide();
38159                            }
38160                        });
38161                        jQuery('.event-japanmall-2025-mobile .khuyen-mai .danh-sach .xemthem').each(function () {
38162                            var count = jQuery(this).data('count');
38163                            if (!(count > 4)) {
38164                                jQuery(this).hide();
38165                            }
38166                        });
38167                        jQuery('.event-japanmall-2025-mobile .emptydata').each(function () {
38168                            var count = jQuery(this).data('count');
38169                            if (count > 0) {
38170                                jQuery(this).hide();
38171                            }
38172                        });
38173
38174                    }
38175                }, window.pars3p.timeAsync);
38176            });
38177        },
38178        onTinTucXemThem_Click: function (el) {
38179            var query = jQuery(el).closest('.tin-tuc-outline').find('.noidung');
38180            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38181                if (jQuery(query[0]).hasClass("anchitiet")) {
38182                    jQuery(query[0]).removeClass("anchitiet");
38183                    jQuery(el).html('Thu gọn');
38184                    jQuery(query[0]).find(".gradient").hide();
38185                }
38186                else {
38187                    jQuery(query[0]).addClass("anchitiet");
38188                    jQuery(el).html('Xem thêm');
38189                    jQuery(query[0]).find(".gradient").show();
38190                }
38191            }
38192        },
38193        onCategoryXemThem_Click: function (el) {
38194            var query = jQuery(el).closest('.danhmuc-product');
38195            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38196                jQuery(query[0]).find('.product-list .product-item.ansp').removeClass('ansp');
38197                jQuery(el).closest('.xemthem').hide();
38198            }
38199            query = jQuery(el).closest('.danh-sach');
38200            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38201                jQuery(query[0]).find('.product-list .product-item.ansp').removeClass('ansp');
38202                jQuery(el).closest('.xemthem').hide();
38203            }
38204        },
38205        onThuongHieu_Click: function (el, code) {
38206            if (code > 0) {
38207                var query = jQuery('.event-japanmall-2025 .sanphamthuonghieu .danhmuc .danhmuc-data .item-' + code + ' button');
38208                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38209                    var el = jQuery(jQuery('.event-japanmall-2025 .sanphamthuonghieu .danhmuc .danhmuc-data .item-' + code).closest('.owl-item')).index();
38210                    jQuery('.event-japanmall-2025 .sanphamthuonghieu .danhmuc .danhmuc-data.owl-carousel').trigger('to.owl.carousel', el);
38211                    jQuery(query[0]).trigger('click');
38212                }
38213            }
38214            return true;
38215        },
38216        onThuongHieuMobile_Click: function (el, code) {
38217            if (code > 0) {
38218           
38218     var query = jQuery('.event-japanmall-2025-mobile .sanphamthuonghieu .danhmuc .danhmuc-data .item-' + code + ' button');
38219                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38220                    var el = jQuery(jQuery('.event-japanmall-2025-mobile .sanphamthuonghieu .danhmuc .danhmuc-data .item-' + code).closest('.owl-item')).index();
38221                    jQuery('.event-japanmall-2025-mobile .sanphamthuonghieu .danhmuc .danhmuc-data.owl-carousel').trigger('to.owl.carousel', el);
38222                    jQuery(query[0]).trigger('click');
38223                }
38224            }
38225            return true;
38226        },
38227        onCategory_Change: function (el, id) {
38228            var query = jQuery(el).closest('.danhmuc-outline');
38229            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38230                var ids = [];
38231                var str = jQuery(el).data('ids');
38232                if (lib3p_helper.utility.hasValueString(str)) {
38233                    (str + '').split(',').forEach(function (c) {
38234                        ids.push(parseInt(c));
38235                    });
38236                }
38237                var gtm = jQuery(el).data('gtm');
38238                var device = jQuery(el).data('device');
38239                var group = jQuery(el).data('group');
38240                lib3p.eventJapanMall2025.Product_async(query[0], id, ids, gtm, device, group);
38241            }
38242        },
38243        Product_async: function (query, id, ids, gtm, device, group) {
38244            return new Promise(function (resolve, reject) {
38245                setTimeout(function () {
38246                    jQuery(query).find('.danhmuc-data .item').removeClass('active');
38247                    jQuery(query).find('.danhmuc-data .item.item-' + id).addClass('active');
38248                    jQuery(query).find('.danhmuc-product .emptydata').show();
38249                    jQuery(query).find('.danhmuc-product .product-list.owl-carousel').owlCarousel('destroy');
38250                    jQuery(query).find('.danhmuc-product .product-list.owl-carousel').html('');
38251                    if (ids.length > 0) {
38252                        lib3p.common_PostURL(window.pars3p.api.public.Home_GetProductNew, { ListID: ids }, function (res) {
38253                            if (lib3p_helper.utility.hasListValue(res)) {
38254                                var html = '';
38255                                res.forEach(function (c, cidx) {
38256                                    html += lib3p_helper.product.parseWithGTM(c, gtm, device, group);
38257                                });
38258                                jQuery(query).find('.danhmuc-product .product-list.owl-carousel').html(html);
38259                                jQuery(query).find('.danhmuc-product .product-list.owl-carousel').owlCarousel({
38260                                    autoplay: false,
38261                                    autoplayTimeout: 3000,
38262                                    autoplayHoverPause: true,
38263                                    autoWidth: true,
38264                                    loop: false,
38265                                    nav: true,
38266                                    dots: false,
38267                                    margin: 20,
38268                                    navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
38269                                    navElement: 'div'
38270                                });
38271                                jQuery(query).find('.danhmuc-product .emptydata').hide();
38272                            }
38273                        }, function (err) {
38274                            console.log(err);
38275                        });
38276                    }
38277
38278                }, window.pars3p.timeAsync);
38279            });
38280        },
38281        onCategoryMobile_Change: function (el, id) {
38282            var query = jQuery(el).closest('.danhmuc-outline');
38283            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38284                var ids = [];
38285                var str = jQuery(el).data('ids');
38286                if (lib3p_helper.utility.hasValueString(str)) {
38287                    (str + '').split(',').forEach(function (c) {
38288                        ids.push(parseInt(c));
38289                    });
38290                }
38291                var gtm = jQuery(el).data('gtm');
38292                var device = jQuery(el).data('device');
38293                var group = jQuery(el).data('group');
38294                lib3p.eventJapanMall2025.ProductMobile_async(query[0], id, ids, gtm, device, group);
38295            }
38296        },
38297        ProductMobile_async: function (query, id, ids, gtm, device, group) {
38298            return new Promise(function (resolve, reject) {
38299                setTimeout(function () {
38300                    jQuery(query).find('.danhmuc-data .item').removeClass('active');
38301                    jQuery(query).find('.danhmuc-data .item.item-' + id).addClass('active');
38302                    jQuery(query).find('.danhmuc-product .emptydata').show();
38303                    jQuery(query).find('.danhmuc-product .product-list').html('');
38304                    jQuery(query).find('.danhmuc-product .xemthem').hide();
38305                    if (ids.length > 0) {
38306                        lib3p.common_PostURL(window.pars3p.api.public.Home_GetProductNew, { ListID: ids }, function (res) {
38307                            if (lib3p_helper.utility.hasListValue(res)) {
38308                                var html_m = '';
38309                                res.forEach(function (c, cidx) {
38310                                    if (cidx < 4) {
38311                                        html_m += lib3p_helper.product.parseWithGTM(c, gtm, device, group);
38312                                    }
38313                                    else {
38314                                        html_m += lib3p_helper.product.parseWithGTM(c, gtm, device, group, 'ansp');
38315                                    }
38316                                });
38317                                jQuery(query).find('.danhmuc-product .product-list').html(html_m);
38318                                if (res.length > 4) {
38319                                    jQuery(query).find('.danhmuc-product .xemthem').show();
38320                                }
38321                                jQuery(query).find('.danhmuc-product .emptydata').hide();
38322                            }
38323                        }, function (err) {
38324                            console.log(err);
38325                        });
38326                    }
38327
38328                }, window.pars3p.timeAsync);
38329            });
38330        },
38331        onCategory2_Change: function (el, id) {
38332            var query = jQuery(el).closest('.danhmuc-outline');
38333            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38334                var ids = [];
38335                var str = jQuery(el).data('ids');
38336                if (lib3p_helper.utility.hasValueString(str)) {
38337                    (str + '').split(',').forEach(function (c) {
38338                        ids.push(parseInt(c));
38339                    });
38340                }
38341                var gtm = jQuery(el).data('gtm');
38342                var device = jQuery(el).data('device');
38343                var group = jQuery(el).data('group');
38344                lib3p.eventJapanMall2025.Product2_async(query[0], id, ids, gtm, device, group);
38345            }
38346        },
38347        Product2_async: function (query, id, ids, gtm, device, group) {
38348            return new Promise(function (resolve, reject) {
38349                setTimeout(function () {
38350                    jQuery(query).find('.san-pham').removeClass('show');
38351                    jQuery(query).find('.danhmuc-data .item').removeClass('active');
38352                    jQuery(query).find('.danhmuc-data .item.item-' + id).addClass('active');
38353                    if (ids.length > 0) {
38354                        lib3p.common_PostURL(window.pars3p.api.public.Home_GetProductNew, { ListID: ids }, function (res) {
38355                            if (lib3p_helper.utility.hasValue(res)) {
38356                                var html = '';
38357                                res.forEach(function (c, cidx) {
38358                                    if (cidx < 8) {
38359                                        html += '<div class="col-lg-3">';
38360                                        html += lib3p_helper.product.parseWithGTM(c, gtm, device, group);
38361                                        html += '</div>';
38362                                    }
38363                                    else {
38364                                        html += '<div class="col-lg-3 hide">';
38365                                        html += lib3p_helper.product.parseWithGTM(c, gtm, device, group);
38366                                        html += '</div>';
38367                                    }
38368                                });
38369                                jQuery(query).find('.danh-sach.product-list').html(html);
38370                                if (res.length < 8) {
38371                                    jQuery(query).find('.san-pham').addClass('show');
38372                                }
38373                            }
38374                        }, function (err) {
38375                            console.log(err);
38376                        });
38377                    }
38378
38379                }, window.pars3p.timeAsync);
38380            });
38381        },
38382        onXemThem_Click: function (el) {
38383            var query = jQuery(el).closest('.san-pham');
38384            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38385                if (!query.hasClass('show')) {
38386                    query.addClass('show');
38387                }
38388            }
38389        },
38390        onKhuyenMaiSapXep_Click: function (el) {
38391            var gtm = jQuery(el).data('gtm');
38392            var device = jQuery(el).data('device');
38393            var group = jQuery(el).data('group');
38394            var name = jQuery(el).data('name');
38395            var sort = jQuery(el).data('sort');
38396            var lst = [];
38397            var str = jQuery(el).data('lst');
38398            if (lib3p_helper.utility.hasValueString(str)) {
38399                (str + '').split(',').forEach(function (c) {
38400                    lst.push(parseInt(c));
38401                });
38402            }
38403            jQuery(el).closest('.dropdown').find('.sortname').html(name);
38404            jQuery('.event-japanmall-2025 .san-pham.khuyen-mai').removeClass('show');
38405            jQuery('.event-japanmall-2025 .san-pham.khuyen-mai').find('.danh-sach.product-list').html('');
38406            lib3p.common_PostURL(window.pars3p.api.public.Event_DanhSachSanPhamSort, { lst: lst, typedata: 1, sort: sort }, function (res) {
38407                if (lib3p_helper.utility.hasListValue(res)) {
38408                    var html = '';
38409                    res.forEach(function (c, cidx) {
38410                        if (cidx < 8) {
38411                            html += '<div class="col-lg-3">';
38412                            html += lib3p_helper.product.parseWithGTM(c, gtm, device, group);
38413                            html += '</div>';
38414                        }
38415                        else {
38416                            html += '<div class="col-lg-3 hide">';
38417                            html += lib3p_helper.product.parseWithGTM(c, gtm, device, group);
38418                            html += '</div>';
38419                        }
38420                    });
38421                    jQuery('.event-japanmall-2025 .san-pham.khuyen-mai').find('.danh-sach.product-list').html(html);
38422                    if (res.length < 8) {
38423                        jQuery('.event-japanmall-2025 .san-pham.khuyen-mai').addClass('show');
38424                    }
38425                }
38426            }, function (err) {
38427                console.log(err);
38428            });
38429        },
38430        onKhuyenMaiSapXepMobile_Click: function (el) {
38431            var gtm = jQuery(el).data('gtm');
38432            var device = jQuery(el).data('device');
38433            var group = jQuery(el).data('group');
38434            var name = jQuery(el).data('name');
38435            var sort = jQuery(el).data('sort');
38436            var lst = [];
38437            var str = jQuery(el).data('lst');
38438            if (lib3p_helper.utility.hasValueString(str)) {
38439                (str + '').split(',').forEach(function (c) {
38440                    lst.push(parseInt(c));
38441                });
38442            }
38443            jQuery(el).closest('.dropdown').find('.sortname').html(name);
38444            jQuery('.event-japanmall-2025-mobile .khuyen-mai').find('.danh-sach .product-list').html('');
38445            jQuery('.event-japanmall-2025-mobile .khuyen-mai').find('.xemthem').hide();
38446            lib3p.common_PostURL(window.pars3p.api.public.Event_DanhSachSanPhamSort, { lst: lst, typedata: 1, sort: sort }, function (res) {
38447                if (lib3p_helper.utility.hasListValue(res)) {
38448                    var html_m = '';
38449                    res.forEach(function (c, cidx) {
38450                        if (cidx < 4) {
38451                            html_m += lib3p_helper.product.parseWithGTM(c, gtm, device, group);
38452                        }
38453                        else {
38454                            html_m += lib3p_helper.product.parseWithGTM(c, gtm, device, group, 'ansp');
38455                        }
38456                    });
38457                    jQuery('.event-japanmall-2025-mobile .khuyen-mai').find('.danh-sach .product-list').html(html_m);
38458                    if (res.length > 4) {
38459                        jQuery('.event-japanmall-2025-mobile .khuyen-mai').find('.xemthem').show();
38460                    }
38461                }
38462            }, function (err) {
38463                console.log(err);
38464            });
38465        },
38466    },
38467    eventHamperTet2025: {
38468        init: function () {
38469            var query = jQuery('.event-hamper-tet-2025');
38470            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38471                var btnCatalog = jQuery('.btn-catalog');
38472
38473                if (lib3p_helper.utility.hasValue(btnCatalog) && btnCatalog.length > 0) {
38474                    btnCatalog.on("click", function (e) {
38475                        var windowW = jQuery(window).width();
38476                        const element = document.getElementById(windowW > 375 ? "catalog" : "catalogMob");
38477                        element.scrollIntoView({ behavior: "smooth", block: "center", inline: "center" });
38478                    });
38479                }
38480
38481                jQuery(".event-hamper-tet-2025-popup-catalog .close").on("click", function (e) {
38482                    var popup = jQuery(".event-hamper-tet-2025-popup-catalog .hachi-modal");
38483                    if (lib3p_helper.utility.hasValue(popup) && popup.length > 0) {
38484                        jQuery(popup[0]).removeClass("d-block").addClass("d-none");
38485                    }
38486                });
38487
38488                lib3p.eventHamperTet2025.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
38489            }
38490        },
38491        init_async: function () {
38492            return new Promise(function (resolve, reject) {
38493                setTimeout(function () {
38494                    try {
38495                        lib3p.pageCart.OtherPage();
38496
38497                        if (!lib3p_helper.utility.hasValue(window.pars3p.browser)) {
38498                            window.pars3p.browser = lib3p.common_Browser();
38499                        }
38500                    } catch (e) {
38501                    }
38502                    window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
38503                    jQuery('.event-hamper-tet-2025 form .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
38504                    jQuery('.event-hamper-tet-2025 form .captcha').attr('key', window.pars3p.KeyView);
38505                }, window.pars3p.timeAsync);
38506            });
38507        },
38508        onTinTucXemThem_Click: function (el) {
38509            var query = jQuery(el).closest('.chitiet-outline').find('.chitiet');
38510            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38511
38512                if (jQuery(query[0]).hasClass("anchitiet")) {
38513                    jQuery(query[0]).removeClass("anchitiet");
38514                    jQuery(el).html('Thu gọn');
38515                    jQuery(query[0]).find(".gradient").hide();
38516                    jQuery(query[0]).css('height', 100 + '%');
38517                }
38518                else {
38519                    jQuery(query[0]).addClass("anchitiet");
38520                    jQuery(el).html('Xem thêm');
38521                    jQuery(query[0]).find(".gradient").show();
38522
38523                    var h = query.attr('data-height');
38524                    console.log(h)
38525                    if (lib3p_helper.utility.hasValue(h))
38526                        jQuery(query[0]).css('height', h + 'px');
38527                }
38528            }
38529        },
38530        onGui_KeyDown: function (event, el) {
38531            var query = jQuery(el).closest('form');
38532            setTimeout(function () {
38533                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38534                    var flag = true;
38535                    var ctr = query[0].ContactName;
38536                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38537                        flag = false;
38538                    }
38539                    ctr = query[0].PhoneNumber;
38540                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38541                        flag = false;
38542                    }
38543                    ctr = query[0].Email;
38544                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38545                        flag = false;
38546                    }
38547                    ctr = query[0].Comments;
38548                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38549                        flag = false;
38550                    }
38551                    ctr = query[0].Captcha;
38552                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38553                        flag = false;
38554                    }
38555                    if (flag == true) {
38556                        jQuery(query[0]).removeClass('haserror');
38557                    }
38558                    else {
38559                        if (!jQuery(query[0]).hasClass('haserror')) {
38560                            jQuery(query[0]).addClass('haserror');
38561                        }
38562                    }
38563                }
38564            }, 100);
38565        },
38566        onCaptcha_Click: function () {
38567            window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
38568            jQuery('.event-hamper-tet-2025 form .captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
38569            jQuery('.event-hamper-tet-2025 form .captcha').attr('key', window.pars3p.KeyView);
38570        },
38571        onGui_Submit: function (event) {
38572            if (!jQuery(event.target).hasClass('haserror')) {
38573                jQuery(event.target).find('div.error').html('');
38574                jQuery(event.target).find('.input input').removeClass('error');
38575
38576                var flag = true;
38577                var data = {
38578                    ContactName: '',
38579                    PhoneNumber: '',
38580                    Email: '',
38581                    Comments: '',
38582                    Captcha: '',
38583                };
38584
38585                var ctr = event.target.ContactName;
38586                data.ContactName = ctr.value;
38587                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38588                    flag = false;
38589                    if (!jQuery(ctr).hasClass('error')) {
38590                        jQuery(ctr).addClass('error');
38591                    }
38592                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Bạn chưa nhập họ tên</span>');
38593                }
38594
38595                ctr = event.target.PhoneNumber;
38596                data.PhoneNumber = ctr.value;
38597                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38598                    flag = false;
38599                    if (!jQuery(ctr).hasClass('error')) {
38600                        jQuery(ctr).addClass('error');
38601                    }
38602                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Bạn chưa nhập số điện thoại</span>');
38603                }
38604                else if (/[0-9()\+]+/.test(ctr.value) != true || ctr.value.length < 10 || ctr.value.length > 20) {
38605                    flag = false;
38606                    if (!jQuery(ctr).hasClass('error')) {
38607                        jQuery(ctr).addClass('error');
38608                    }
38609                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng định dạng 10 kí tự số</span>');
38610                }
38611
38612                ctr = event.target.Email;
38613                data.Email = ctr.value;
38614                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38615                    flag = false;
38616                    if (!jQuery(ctr).hasClass('error')) {
38617                        jQuery(ctr).addClass('error');
38618                    }
38619                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Email chưa có @ ví duÌ£ [email protected]</span>');
38620                }
38621                else if (!lib3p_helper.utility.isEmail(ctr.value)) {
38622                    flag = false;
38623                    if (!jQuery(ctr).hasClass('error')) {
38624                        jQuery(ctr).addClass('error');
38625                    }
38626                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Email chưa đúng định dạng ví dụ [email protected]</span>');
38627                }
38628
38629                ctr = event.target.Comments;
38630                data.Comments = ctr.value;
38631                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38632                    flag = false;
38633                    if (!jQuery(ctr).hasClass('error')) {
38634                        jQuery(ctr).addClass('error');
38635                    }
38636                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Bạn chưa nhập nội dung</span>');
38637                }
38638
38639                ctr = event.target.Captcha;
38640                data.Captcha = ctr.value;
38641                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38642                    flag = false;
38643                    if (!jQuery(ctr).hasClass('error')) {
38644                        jQuery(ctr).addClass('error');
38645                    }
38646                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mã kiểm tra chưa đúng</span>');
38647                }
38648
38649                if (flag == true) {
38650                    window.pars3p.KeyCaptcha = data.Captcha;
38651                    lib3p.common_PostURL(window.pars3p.api.public.Hamper_Send + '?key=' + window.pars3p.KeyView + '&captcha=' + window.pars3p.KeyCaptcha, { "request": { "Email": data.Email, "PhoneNumber": data.PhoneNumber, "Comments": data.Comments, "ContactName": data.ContactName }, "Key": window.pars3p.KeyView }, function (res) {
38652                        if (lib3p_helper.utility.hasValue(res)) {
38653                            if (res.StatusCode == 0) {
38654                                var popup = jQuery(".event-hamper-tet-2025-popup-catalog .hachi-modal");
38655                                jQuery(popup[0]).removeClass("d-none").addClass("d-block");
38656
38657                                if (!jQuery(ctr).hasClass('show')) {
38658                                    jQuery(ctr).addClass('show');
38659                                    setTimeout(function () {
38660                                        jQuery(ctr).removeClass('show');
38661                                    }, 3000);
38662                                }
38663                                event.target.ContactName.value = '';
38664                                event.target.PhoneNumber.value = '';
38665                                event.target.Email.value = '';
38666                                event.target.Comments.value = '';
38667                                event.target.Captcha.value = '';
38668                            }
38669                            else {
38670                                lib3p.log(res.ErrorString);
38671                            }
38672                        }
38673                        else {
38674                            lib3p.log("Lỗi gửi thông tin catalog hamper 2025");
38675                        }
38676                    }, function (err) {
38677                        //lib3p.log(err);
38678                        ctr = event.target.Captcha;
38679                        if (!jQuery(ctr).hasClass('error')) {
38680                            jQuery(ctr).addClass('error');
38681                        }
38682                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Bạn nhập sai mã kiểm tra</span>');
38683                    });
38684                }
38685            }
38686
38687            event.preventDefault();
38688        },
38689    },
38690    eventHamperTet2026: {
38691        init: function () {
38692            var query = jQuery('.event-hamper-tet-2026');
38693            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38694                lib3p.eventHamperTet2026.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
38695            }
38696        },
38697        init_async: function () {
38698            return new Promise(function (resolve, reject) {
38699                setTimeout(function () {
38700                    lib3p.eventHamperTet2026.onCaptcha_Click();
38701                    //lib3p.header.onSocialNetwork_Close();
38702
38703                    jQuery('.product-loai').each(function () {
38704                        if (jQuery(this).find('.danhsach .item.hide').length == 0) {
38705                            jQuery(this).find('.xemthem').hide();
38706                        }
38707                    });
38708
38709                    if (jQuery('.event-hamper-tet-2026 div[type="product"]').length > 0) {
38710                        var lstid = [];
38711                        jQuery('.event-hamper-tet-2026 div[type="product"]').each(function () {
38712                            var code = jQuery(this).data('code'
38712);
38713                            lstid.push(code);
38714                        });
38715                        lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: lstid }, function (res) {
38716                            if (lib3p_helper.utility.hasListValue(res)) {
38717                                jQuery('.event-hamper-tet-2026 div[type="product"]').each(function () {
38718                                    var code = jQuery(this).data('code');
38719                                    var find = res.find(function (o) { return o.Code == code; });
38720                                    if (lib3p_helper.utility.hasValue(find)) {
38721                                        var html = lib3p_helper.product.parseHTML6(find, true);
38722                                        jQuery(this).html(html);
38723                                    }
38724                                });
38725                                jQuery('.event-hamper-tet-2026-mobile div[type="product"]').each(function () {
38726                                    var code = jQuery(this).data('code');
38727                                    var find = res.find(function (o) { return o.Code == code; });
38728                                    if (lib3p_helper.utility.hasValue(find)) {
38729                                        var html = lib3p_helper.product.parseHTML6(find, true);
38730                                        jQuery(this).html(html);
38731                                    }
38732                                });
38733                            }
38734                        }, function (err) {
38735                            lib3p.log(err);
38736                        });
38737                    }
38738                    if (jQuery('.event-hamper-tet-2026 img[type="product"]').length > 0) {
38739                        var lstid = [];
38740                        jQuery('.event-hamper-tet-2026 img[type="product"]').each(function () {
38741                            var code = jQuery(this).data('code');
38742                            lstid.push(code);
38743                        });
38744                        lib3p.common_PostURL(window.pars3p.api.public.All_GetProductRawByID, { ListID: lstid }, function (res) {
38745                            if (lib3p_helper.utility.hasListValue(res)) {
38746                                var lst = [];
38747                                jQuery('.event-hamper-tet-2026 img[type="product"]').each(function () {
38748                                    var code = jQuery(this).data('code');
38749                                    var find = res.find(function (o) { return o.Code == code; });
38750                                    if (lib3p_helper.utility.hasValue(find)) {
38751                                        var html = lib3p_helper.product.parseHTML6(find, true);
38752                                        jQuery(this).after(html);
38753                                        lst.push(this);
38754                                    }
38755                                });
38756                                jQuery('.event-hamper-tet-2026-mobile img[type="product"]').each(function () {
38757                                    var code = jQuery(this).data('code');
38758                                    var find = res.find(function (o) { return o.Code == code; });
38759                                    if (lib3p_helper.utility.hasValue(find)) {
38760                                        var html = lib3p_helper.product.parseHTML6(find, true);
38761                                        jQuery(this).after(html);
38762                                        lst.push(this);
38763                                    }
38764                                });
38765                                lst.forEach(function (o) {
38766                                    jQuery(o).remove();
38767                                });
38768                            }
38769                        }, function (err) {
38770                            lib3p.log(err);
38771                        });
38772                    }
38773
38774                    var browserW = lib3p.common_GetWidthBrowser();
38775                    if (browserW >= 800) {
38776
38777                    }
38778                    else {
38779
38780                    }
38781
38782                }, window.pars3p.timeAsync);
38783            });
38784        },
38785        onLoaiXemThem: function (el) {
38786            var query = jQuery(el).closest('.product-loai');
38787            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38788                jQuery(query[0]).find('.danhsach .item.hide').removeClass('hide');
38789                jQuery(el).closest('.xemthem').hide();
38790            }
38791        },
38792        onTinTucXemThem_Click: function (el) {
38793            var query = jQuery(el).closest('.tin-tuc-outline').find('.noidung');
38794            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38795                if (jQuery(query[0]).hasClass("anchitiet")) {
38796                    jQuery(query[0]).removeClass("anchitiet");
38797                    jQuery(el).html('Thu gọn');
38798                    jQuery(query[0]).find(".gradient").hide();
38799                }
38800                else {
38801                    jQuery(query[0]).addClass("anchitiet");
38802                    jQuery(el).html('Xem thêm');
38803                    jQuery(query[0]).find(".gradient").show();
38804                }
38805            }
38806        },
38807        onCaptcha_Click: function () {
38808            window.pars3p.KeyView = lib3p_helper.utility.uuidv4();
38809            jQuery('.captcha').attr('src', window.pars3p.api.public.All_Captcha + '?key=' + window.pars3p.KeyView);
38810            jQuery('.captcha').attr('key', window.pars3p.KeyView);
38811            return false;
38812        },
38813        onGui_KeyDown: function (event, ctr) {
38814            var name = jQuery(ctr).attr('name');
38815            setTimeout(function () {
38816                jQuery(ctr).removeClass('error');
38817                jQuery(ctr).parent().next().html('');
38818
38819                if (name == "ContactName") {
38820                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38821                        if (!jQuery(ctr).hasClass('error')) {
38822                            jQuery(ctr).addClass('error');
38823                        }
38824                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Bạn chưa nhập họ tên</span>');
38825                    }
38826                }
38827                if (name == "PhoneNumber") {
38828                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38829                        flag = false;
38830                        if (!jQuery(ctr).hasClass('error')) {
38831                            jQuery(ctr).addClass('error');
38832                        }
38833                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Bạn chưa nhập số điện thoại</span>');
38834                    }
38835                    else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
38836                        flag = false;
38837                        if (!jQuery(ctr).hasClass('error')) {
38838                            jQuery(ctr).addClass('error');
38839                        }
38840                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
38841                    }
38842                }
38843                if (name == "Email") {
38844                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38845                        flag = false;
38846                        if (!jQuery(ctr).hasClass('error')) {
38847                            jQuery(ctr).addClass('error');
38848                        }
38849                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Email chưa có @ ví duÌ£ [email protected]</span>');
38850                    }
38851                    else if (!lib3p_helper.utility.isEmail(ctr.value)) {
38852                        flag = false;
38853                        if (!jQuery(ctr).hasClass('error')) {
38854                            jQuery(ctr).addClass('error');
38855                        }
38856                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Email chưa đúng định dạng ví dụ [email protected]</span>');
38857                    }
38858                }
38859                if (name == "Comments") {
38860                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38861                        flag = false;
38862                        if (!jQuery(ctr).hasClass('error')) {
38863                            jQuery(ctr).addClass('error');
38864                        }
38865                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Bạn chưa nhập nội dung</span>');
38866                    }
38867                }
38868                if (name == "Captcha") {
38869                    if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38870                        flag = false;
38871                        if (!jQuery(ctr).hasClass('error')) {
38872                            jQuery(ctr).addClass('error');
38873                        }
38874                        jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mã kiểm tra chưa đúng</span>');
38875                    }
38876                }
38877
38878            }, 100);
38879        },
38880        onGui_Submit: function (event) {
38881            if (!jQuery(event.target).hasClass('haserror')) {
38882                jQuery(event.target).find('div.error').html('');
38883                jQuery(event.target).find('.input input').removeClass('error');
38884
38885                var flag = true;
38886                var data = {
38887                    ContactName: '',
38888                    PhoneNumber: '',
38889                    Email: '',
38890                    Comments: '',
38891                    Captcha: '',
38892                };
38893
38894                var ctr = event.target.ContactName;
38895                data.ContactName = ctr.value;
38896                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38897                    flag = false;
38898                    if (!jQuery(ctr).hasClass('error')) {
38899                        jQuery(ctr).addClass('error');
38900                    }
38901                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Bạn chưa nhập họ tên</span>');
38902                }
38903
38904                ctr = event.target.PhoneNumber;
38905                data.PhoneNumber = ctr.value;
38906                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38907                    flag = false;
38908                    if (!jQuery(ctr).hasClass('error')) {
38909                        jQuery(ctr).addClass('error');
38910                    }
38911                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Bạn chưa nhập số điện thoại</span>');
38912                }
38913                else if (/^[0-9]+$/.test(ctr.value) != true || ctr.value.length != 10) {
38914                    flag = false;
38915                    if (!jQuery(ctr).hasClass('error')) {
38916                        jQuery(ctr).addClass('error');
38917                    }
38918                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Số điện thoại chưa đúng. VD: 0901234567 hoặc 1234567890</span>');
38919                }
38920
38921                ctr = event.target.Email;
38922                data.Email = ctr.value;
38923                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38924                    flag = false;
38925                    if (!jQuery(ctr).hasClass('error')) {
38926                        jQuery(ctr).addClass('error');
38927                    }
38928                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Email chưa có @ ví duÌ£ [email protected]</span>');
38929                }
38930                else if (!lib3p_helper.utility.isEmail(ctr.value)) {
38931                    flag = false;
38932                    if (!jQuery(ctr).hasClass('error')) {
38933                        jQuery(ctr).addClass('error');
38934                    }
38935                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Email chưa đúng định dạng ví dụ [email protected]</span>');
38936                }
38937
38938                ctr = event.target.Comments;
38939                data.Comments = ctr.value;
38940                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38941                    flag = false;
38942                    if (!jQuery(ctr).hasClass('error')) {
38943                        jQuery(ctr).addClass('error');
38944                    }
38945                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Bạn chưa nhập nội dung</span>');
38946                }
38947
38948                ctr = event.target.Captcha;
38949                data.Captcha = ctr.value;
38950                if (!lib3p_helper.utility.hasValueString(ctr.value)) {
38951                    flag = false;
38952                    if (!jQuery(ctr).hasClass('error')) {
38953                        jQuery(ctr).addClass('error');
38954                    }
38955                    jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Mã kiểm tra chưa đúng</span>');
38956                }
38957
38958                if (flag == true) {
38959                    window.pars3p.KeyCaptcha = data.Captcha;
38960                    lib3p.common_PostURL(window.pars3p.api.public.Hamper_Send + '?key=' + window.pars3p.KeyView + '&captcha=' + window.pars3p.KeyCaptcha, { "request": { "Email": data.Email, "PhoneNumber": data.PhoneNumber, "Comments": data.Comments, "ContactName": data.ContactName }, "Key": window.pars3p.KeyView }, function (res) {
38961                        if (lib3p_helper.utility.hasValue(res)) {
38962                            if (res.StatusCode == 0) {
38963                                lib3p.eventHamperTet2026.onPopupSendSuccess_Open();
38964
38965                                event.target.ContactName.value = '';
38966                                event.target.PhoneNumber.value = '';
38967                                event.target.Email.value = '';
38968                                event.target.Comments.value = '';
38969                                event.target.Captcha.value = '';
38970                            }
38971                            else {
38972                                lib3p.log(res.ErrorString);
38973                            }
38974                        }
38975                        else {
38976                            lib3p.log("Lỗi gửi thông tin catalog hamper");
38977                        }
38978                    }, function (err) {
38979                        //lib3p.log(err);
38980                        ctr = event.target.Captcha;
38981                        if (!jQuery(ctr).hasClass('error')) {
38982                            jQuery(ctr).addClass('error');
38983                        }
38984   
38984                     jQuery(ctr).parent().next().html('<img src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/icomoon/triangle-exclamation.svg" alt="Home" /><span class="s13 cl-gregray600 regular400">Bạn nhập sai mã kiểm tra</span>');
38985                    });
38986                }
38987            }
38988
38989            event.preventDefault();
38990        },
38991        onPopupSendSuccess_Close: function () {
38992            var query = jQuery('.event-hamper-tet-2026-send-success .hachi-modal');
38993            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
38994                if (jQuery(query[0]).hasClass("d-block")) {
38995                    jQuery(query[0]).removeClass("d-block").addClass("d-none");
38996                }
38997            }
38998        },
38999        onPopupSendSuccess_Open: function () {
39000            var query = jQuery('.event-hamper-tet-2026-send-success .hachi-modal');
39001            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
39002                if (jQuery(query[0]).hasClass("d-none")) {
39003                    jQuery(query[0]).removeClass("d-none").addClass("d-block");
39004                }
39005            }
39006        },
39007    },
39008    eventTraXanh2025: {
39009        init: function () {
39010            var query = jQuery('.event-tra-xanh-2025');
39011            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
39012                lib3p.eventTraXanh2025.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
39013            }
39014        },
39015        init_async: function () {
39016            return new Promise(function (resolve, reject) {
39017                setTimeout(function () {
39018                    lib3p.pageCart.OtherPage();
39019
39020                    var browserW = lib3p.common_GetWidthBrowser();
39021                    if (browserW >= 800) {
39022                        jQuery('.event-tra-xanh-2025 .flashsale .danhsach .owl-carousel').owlCarousel({
39023                            autoplay: true,
39024                            autoplayTimeout: 3000,
39025                            autoplayHoverPause: true,
39026                            autoWidth: false,
39027                            loop: true,
39028                            nav: true,
39029                            dots: false,
39030                            items: 2.6,
39031                            margin: 12,
39032                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
39033                            navElement: 'div'
39034                        });
39035                        jQuery('.event-tra-xanh-2025 .mua-cang-nhieu .danh-sach.owl-carousel').owlCarousel({
39036                            autoplay: false,
39037                            autoplayTimeout: 3000,
39038                            autoplayHoverPause: true,
39039                            autoWidth: false,
39040                            loop: false,
39041                            nav: true,
39042                            dots: false,
39043                            items: 1,
39044                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
39045                            navElement: 'div'
39046                        });
39047
39048                        jQuery('.event-tra-xanh-2025 .banner-4 .danh-sach.owl-carousel').owlCarousel({
39049                            autoplay: true,
39050                            autoplayTimeout: 3000,
39051                            autoplayHoverPause: true,
39052                            autoWidth: true,
39053                            loop: true,
39054                            nav: true,
39055                            dots: false,
39056                            margin: 10,
39057                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
39058                            navElement: 'div'
39059                        });
39060
39061                        try {
39062                            var query = jQuery('.event-tra-xanh-2025 .kham-pha .video-outline .danh-sach .item button.img');
39063                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
39064                                lib3p.eventTraXanh2025.onVideo_Click(query[0]);
39065                            }
39066                        }
39067                        catch { }
39068
39069                    }
39070                    else {
39071                        jQuery('.flashsale-mobile .danhsach .owl-carousel').owlCarousel({
39072                            autoplay: true,
39073                            autoplayTimeout: 3000,
39074                            autoplayHoverPause: true,
39075                            autoWidth: false,
39076                            loop: true,
39077                            nav: false,
39078                            dots: false,
39079                            items: 1,
39080                        });
39081
39082                        jQuery('.event-tra-xanh-2025-mobile .kham-pha .video-outline .danh-sach.owl-carousel').owlCarousel({
39083                            autoplay: false,
39084                            autoplayTimeout: 3000,
39085                            autoplayHoverPause: false,
39086                            autoWidth: true,
39087                            loop: true,
39088                            nav: false,
39089                            dots: false,
39090                            margin: 10,
39091                        });
39092
39093                        jQuery('.event-tra-xanh-2025-mobile .mua-cang-nhieu .danh-sach.owl-carousel').owlCarousel({
39094                            autoplay: false,
39095                            autoplayTimeout: 3000,
39096                            autoplayHoverPause: true,
39097                            autoWidth: false,
39098                            loop: false,
39099                            nav: false,
39100                            dots: false,
39101                            items: 1,
39102                        });
39103
39104                        jQuery('.event-tra-xanh-2025-mobile .banner-4 .danh-sach.owl-carousel').owlCarousel({
39105                            autoplay: false,
39106                            autoplayTimeout: 3000,
39107                            autoplayHoverPause: true,
39108                            autoWidth: true,
39109                            loop: true,
39110                            nav: false,
39111                            dots: false
39112                        });
39113
39114                        jQuery('.event-tra-xanh-2025-mobile .cam-nhan .danh-sach.owl-carousel').owlCarousel({
39115                            autoplay: false,
39116                            autoplayTimeout: 3000,
39117                            autoplayHoverPause: true,
39118                            autoWidth: false,
39119                            loop: true,
39120                            nav: false,
39121                            dots: false,
39122                            items: 1,
39123                        });
39124
39125                        setTimeout(function () {
39126                            try {
39127                                var query = jQuery('.event-tra-xanh-2025-mobile .kham-pha .video-outline .danh-sach .item button.img');
39128                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
39129                                    lib3p.eventTraXanh2025.onVideoMobile_Click(query[0]);
39130                                }
39131                            }
39132                            catch { }
39133                        }, 2000);
39134
39135                    }
39136                }, window.pars3p.timeAsync);
39137            });
39138        },
39139        onXemThem_Click: function (el) {
39140            var query = jQuery(el).closest('.san-pham');
39141            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
39142                if (!query.hasClass('show')) {
39143                    query.addClass('show');
39144                }
39145            }
39146        },
39147        onVideo_Click: function (el) {
39148            try {
39149                var link = jQuery(el).data('link');
39150                var name = jQuery(el).data('name');
39151                /* var strs = link.split('/');
39152                var id = '';
39153                if(strs.length > 0) {
39154                    id = strs[strs.length - 1];
39155                    if(!lib3p_helper.utility.hasValueString(id) && strs.length > 1) {
39156                        id = strs[strs.length - 2];
39157                    }
39158                }
39159                var query = jQuery('.event-tra-xanh-2025 .kham-pha .video-outline .video');
39160                if(lib3p_helper.utility.hasValueString(id)) {
39161                    if(lib3p_helper.utility.hasValue(query) && query.length > 0) {
39162                        query.html('<blockquote class="tiktok-embed" cite="' + link + '" data-video-id="' + id + '" data-embed-from="embed_page" style="max-width:605px; min-width:325px;"> <section>
39162 <a target="_blank" title="@hachihachishop" href="https://www.tiktok.com/@hachihachishop?refer=embed">@hachihachishop</a> <p>🔥 Hàng Nhật đồng giá 29K, chỉ 29K hàng Nhật giá hời, chất lượng Nhật Bản <a title="hachihachi" target="_blank" href="https://www.tiktok.com/tag/hachihachi?refer=embed">#hachihachi</a> <a title="hangnhatdonggia29k" target="_blank" href="https://www.tiktok.com/tag/hangnhatdonggia29k?refer=embed">#hangnhatdonggia29K</a> <a title="donggia29k" target="_blank" href="https://www.tiktok.com/tag/donggia29k?refer=embed">#donggia29k</a> <a title="hachihachijapanshop" target="_blank" href="https://www.tiktok.com/tag/hachihachijapanshop?refer=embed">#hachihachijapanshop</a> </p> </section> </blockquote> <script async src="https://www.tiktok.com/embed.js"></script>');
39163                    
39164                    }
39165                } */
39166                jQuery('.event-tra-xanh-2025 .kham-pha .danh-sach .item').removeClass('active');
39167                var query = jQuery(el).closest('.item');
39168                if (!query.hasClass('active')) {
39169                    query.addClass('active');
39170                }
39171                query = jQuery('.event-tra-xanh-2025 .kham-pha .video-outline .video .video-bg');
39172                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
39173                    query.html('<iframe src="' + link + '?autoplay=1&mute=1"></iframe>');
39174                }
39175            }
39176            catch { }
39177        },
39178        onVideoMobile_Click: function (el) {
39179            try {
39180                var link = jQuery(el).data('link');
39181                var name = jQuery(el).data('name');
39182                /* var strs = link.split('/');
39183                var id = '';
39184                if(strs.length > 0) {
39185                    id = strs[strs.length - 1];
39186                    if(!lib3p_helper.utility.hasValueString(id) && strs.length > 1) {
39187                        id = strs[strs.length - 2];
39188                    }
39189                }
39190                var query = jQuery('.event-tra-xanh-2025-mobile .kham-pha .video-outline .video');
39191                if(lib3p_helper.utility.hasValueString(id)) {
39192                    if(lib3p_helper.utility.hasValue(query) && query.length > 0) {
39193                        query.html('<blockquote class="tiktok-embed" cite="' + link + '" data-video-id="' + id + '" data-embed-from="embed_page" style="max-width:605px; min-width:325px;"> <section> <a target="_blank" title="@hachihachishop" href="https://www.tiktok.com/@hachihachishop?refer=embed">@hachihachishop</a> <p>🔥 Hàng Nhật đồng giá 29K, chỉ 29K hàng Nhật giá hời, chất lượng Nhật Bản <a title="hachihachi" target="_blank" href="https://www.tiktok.com/tag/hachihachi?refer=embed">#hachihachi</a> <a title="hangnhatdonggia29k" target="_blank" href="https://www.tiktok.com/tag/hangnhatdonggia29k?refer=embed">#hangnhatdonggia29K</a> <a title="donggia29k" target="_blank" href="https://www.tiktok.com/tag/donggia29k?refer=embed">#donggia29k</a> <a title="hachihachijapanshop" target="_blank" href="https://www.tiktok.com/tag/hachihachijapanshop?refer=embed">#hachihachijapanshop</a> </p> </section> </blockquote> <script async src="https://www.tiktok.com/embed.js"></script>');
39194                    
39195                    }
39196                } */
39197                var query = jQuery('.event-tra-xanh-2025-mobile .kham-pha .video-outline .video .video-bg');
39198                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
39199                    query.html('<iframe src="' + link + '?autoplay=1&mute=1"></iframe>');
39200                }
39201            }
39202            catch { }
39203        },
39204    },
39205    eventKenkogen2025: {
39206        init: function () {
39207            var query = jQuery('.event-kenkogen-2025');
39208            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
39209                lib3p.eventKenkogen2025.init_async().then(function (data) { }, function (err) { lib3p.log(err); });
39210            }
39211        },
39212        init_async: function () {
39213            return new Promise(function (resolve, reject) {
39214                setTimeout(function () {
39215                    lib3p.pageCart.OtherPage();
39216
39217                    var browserW = lib3p.common_GetWidthBrowser();
39218                    if (browserW >= 800) {
39219                        jQuery('.event-kenkogen-2025 .mua-cang-nhieu .danh-sach.owl-carousel').owlCarousel({
39220                            autoplay: false,
39221                            autoplayTimeout: 3000,
39222                            autoplayHoverPause: true,
39223                            autoWidth: false,
39224                            loop: false,
39225                            nav: true,
39226                            dots: false,
39227                            items: 1,
39228                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
39229                            navElement: 'div'
39230                        });
39231
39232                        jQuery('.event-kenkogen-2025 .ecoupon .danh-sach.owl-carousel').owlCarousel({
39233                            autoplay: true,
39234                            autoplayTimeout: 3000,
39235                            autoplayHoverPause: true,
39236                            autoWidth: false,
39237                            loop: true,
39238                            nav: false,
39239                            dots: false,
39240                            margin: 0
39241                        });
39242
39243                        jQuery('.event-kenkogen-2025 .banner-9 .danh-sach.owl-carousel').owlCarousel({
39244                            autoplay: false,
39245                            autoplayTimeout: 3000,
39246                            autoplayHoverPause: false,
39247                            autoWidth: true,
39248                            loop: false,
39249                            nav: true,
39250                            dots: false,
39251                            margin: 5,
39252                            navText: [
39253                                '<img class="icon-left" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event-kenkogen-2025/icon-kenkogen-left.svg" alt="banner_kohaku" />',
39254                                '<img class="icon-right" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event-kenkogen-2025/icon-kenkogen-right.svg" alt="banner_kohaku" />'],
39255                            navElement: 'div'
39256                        });
39257                        setTimeout(function () {
39258                            jQuery('.event-kenkogen-2025 .banner-9 .danh-sach.owl-carousel .owl-nav img.icon-left').hover(function () {
39259                                jQuery(this).attr('src', 'https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event-kenkogen-2025/icon-kenkogen-left-selected.svg');
39260                            }, function () {
39261                                jQuery(this).attr('src', 'https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event-kenkogen-2025/icon-kenkogen-left.svg');
39262                            });
39263                            jQuery('.event-kenkogen-2025 .banner-9 .danh-sach.owl-carousel .owl-nav img.icon-right').hover(function () {
39264                                jQuery(this).attr('src', 'https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event-kenkogen-2025/icon-kenkogen-right-selected.svg');
39265                            }, function () {
39266                                jQuery(this).attr('src', 'https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event-kenkogen-2025/icon-kenkogen-right.svg');
39267                            });
39268                        }, 3000);
39269
39270
39271                        try {
39272                            query = jQuery('.event-kenkogen-2025 .kham-pha .video-outline .danh-sach .item button.img');
39273                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
39274                                lib3p.eventKenkogen2025.onVideo_Click(query[0]);
39275                            }
39276                            query = jQuery('.event-kenkogen-2025 .cau-hoi .danh-sach .item button');
39277                            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
39278                                jQuery(query[0]).trigger('click');
39279                            }
39280                        }
39281                        catch { }
39282                    }
39283                    else {
39284                        jQuery('.event-kenkogen-2025-mobile .ecoupon .danh-sach.owl-carousel').owlCarousel({
39285                            autoplay: true,
39286                            autoplayTimeout: 3000,
39287                            autoplayHoverPause: true,
39288                            autoWidth: true,
39289                            loop: true,
39290                            nav: false,
39291                            dots: false,
39292                            margin: 0
39293                        });
39294
39295                        jQuery('.event-kenkogen-2025-mobile .comment .danh-sach.owl-carousel').owlCarousel({
39296                            autoplay: false,
39297                            autoplayTimeout: 3000,
39298                            autoplayHoverPause: true,
39299                            autoWidth: true,
39300                            loop: true,
39301                            nav: false,
39302                            dots: false,
39303                            margin: 10
39304                        });
39305
39306                        jQuery('.event-kenkogen-2025-mobile .mua-cang-nhieu .danh-sach.owl-carousel').owlCarousel({
39307                            autoplay: false,
39308                            autoplayTimeout: 3000,
39309                            autoplayHoverPause: true,
39310                            autoWidth: false,
39311                            loop: false,
39312                            nav: true,
39313                            dots: false,
39314                            items: 1,
39315                            navText: ['<span class="hachi-icon-left"></span>', '<span class="hachi-icon-right"></span>'],
39316                            navElement: 'div'
39317                        });
39318
39319                        jQuery('.event-kenkogen-2025-mobile .banner-9 .danh-sach.owl-carousel').owlCarousel({
39320                            autoplay: false,
39321                            autoplayTimeout: 3000,
39322                            autoplayHoverPause: false,
39323                            autoWidth: true,
39324                            loop: false,
39325                            nav: true,
39326                            dots: false,
39327                            margin: 10,
39328                            navText: ['<img class="icon-left" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event-kenkogen-2025/icon-kenkogen-left.svg" alt="banner_kohaku" />', '<img class="icon-right" src="https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event-kenkogen-2025/icon-kenkogen-right.svg" alt="banner_kohaku" />'],
39329                            navElement: 'div'
39330                        });
39331                        setTimeout(function () {
39332                            jQuery('.event-kenkogen-2025-mobile .banner-9 .danh-sach.owl-carousel .owl-nav img.icon-left').hover(function () {
39333                                jQuery(this).attr('src', 'https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event-kenkogen-2025/icon-kenkogen-left-selected.svg');
39334                            }, function () {
39335                                jQuery(this).attr('src', 'https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event-kenkogen-2025/icon-kenkogen-left.svg');
39336                            });
39337                            jQuery('.event-kenkogen-2025-mobile .banner-9 .danh-sach.owl-carousel .owl-nav img.icon-right').hover(function () {
39338                                jQuery(this).attr('src', 'https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event-kenkogen-2025/icon-kenkogen-right-selected.svg');
39339                            }, function () {
39340                                jQuery(this).attr('src', 'https://cdn.hachihachi.com.vn/v2/Sources/assets/css/images/event-kenkogen-2025/icon-kenkogen-right.svg');
39341                            });
39342                        }, 3000);
39343
39344                        jQuery('.event-kenkogen-2025-mobile .kham-pha .video-outline .danh-sach.owl-carousel').owlCarousel({
39345                            autoplay: false,
39346                            autoplayTimeout: 3000,
39347                            autoplayHoverPause: false,
39348                            autoWidth: true,
39349                            loop: true,
39350                            nav: false,
39351                            dots: false,
39352                            margin: 10,
39353                        });
39354                        setTimeout(function () {
39355                            try {
39356                                var query = jQuery('.event-kenkogen-2025-mobile .kham-pha .video-outline .danh-sach .owl-item.active .item button.img');
39357                                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
39358                                    lib3p.eventKenkogen2025.onVideoMobile_Click(query[0]);
39359                                }
39360                            }
39361                            catch { }
39362                        }, 2000);
39363
39364                    }
39365
39366                }, window.pars3p.timeAsync);
39367            });
39368        },
39369        onCauHoi_Click: function (el) {
39370            var query = jQuery(el).closest('.item');
39371            if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
39372                if (jQuery(query[0]).hasClass('show')) {
39373                    jQuery(query[0]).removeClass('show');
39374                }
39375                else {
39376                    jQuery(jQuery(el).closest('.danh-sach')[0]).find('.item.show').removeClass('show');
39377                    jQuery(query[0]).addClass('show');
39378                }
39379            }
39380        },
39381        onVideo_Click: function (el) {
39382            try {
39383                var link = jQuery(el).data('link');
39384                var name = jQuery(el).data('name');
39385                jQuery('.event-kenkogen-2025 .kham-pha .danh-sach .item').removeClass('active');
39386                var query = jQuery(el).closest('.item');
39387                if (!query.hasClass('active')) {
39388                    query.addClass('active');
39389                }
39390                query = jQuery('.event-kenkogen-2025 .kham-pha .video-outline .video .video-bg');
39391                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
39392                    query.html('<iframe src="' + link + '?autoplay=1&mute=1"></iframe>');
39393                }
39394            }
39395            catch { }
39396        },
39397        onVideoMobile_Click: function (el) {
39398            try {
39399                /* var link = jQuery(el).data('link');
39400                var name = jQuery(el).data('name');
39401
39402                var query = jQuery('.event-kenkogen-2025-mobile .kham-pha .video-outline .video .video-bg');
39403                if(lib3p_helper.utility.hasValue(query) && query.length > 0) {
39404                    query.html('<iframe src="' + link + '?autoplay=1&mute=1"></iframe>');
39405                } */
39406                var link = jQuery(el).data('link');
39407                var name = jQuery(el).data('name');
39408                jQuery('.event-kenkogen-2025-mobile .kham-pha .danh-sach .item').removeClass('active');
39409                var query = jQuery(el).closest('.item');
39410                if (!query.hasClass('active')) {
39411                    query.addClass('active');
39412                }
39413                query = jQuery('.event-kenkogen-2025-mobile .kham-pha .video-outline .video .video-bg');
39414                if (lib3p_helper.utility.hasValue(query) && query.length > 0) {
39415                    query.html('<iframe src="' + link + '?autoplay=1&mute=1"></iframe>');
39416                }
39417            }
39418            catch { }
39419        },
39420    },
39421
39422    //#endregion
39423}
39424
39425
39426jQuery(function () {
39427    jQuery.widget("custom.combobox", {
39428        _create: function () {
39429            this.wrapper = jQuery("<span>").addClass("custom-combobox").insertAfter(this.element);
39430            this.element.hide();
39431            this._createAutocomplete();
39432            this._createShowAllButton();
39433        },
39434        _createAutocomplete: function () {
39435            var selected = this.element.children(":selected"),
39436                value = selected.val() ? selected.text() : "";
39437
39438            var placeholder = jQuery(this.element).attr('placeholder');
39439            var isdiabled = jQuery(this.element).prop("disabled");
39440            var that = this;
39441            if (isdiabled == true) {
39442                this.input = jQuery('<input disabled placeholder="' + placeholder + '" />').appendTo(this.wrapper).val(value).attr("title", "").addClass("custom-combobox-input ui-widget ui-widget-content ui-state-default ui-corner-left").autocomplete({
39443                    delay: 0,
39444                    minLength: 0,
39445                    source: this._source.bind(this),
39446                    select: function (event, ui) {
39447                        if (that.options && that.options.change) {
39448                            that.options.change(ui.item.option);
39449                        }
39450                    }
39451                }).on('keydown', function (event) {
39452                    setTimeout(function () {
39453                        if (jQuery(that.input).val() == '') {
39454                            if (that.options && that.options.change) {
39455                                var queryfrm = jQuery(that.element).closest('form');
39456                                if (lib3p_helper.utility.hasValue(queryfrm) && queryfrm.length > 0) {
39457                                    that.options.change({ form: queryfrm[0] });
39458                                }
39459                                else {
39460                                    that.options.change({});
39461                                }
39462                            }
39463                            that.element.children("option").each(function () {
39464                                this.selected = false;
39465                            });
39466                        }
39467                    }, 100);
39468                }).on('focus', function () {
39469                    if (!jQuery(that.input).closest('.ui-widget.select').hasClass('focus')) {
39470                        jQuery(that.input).closest('.ui-widget.select').addClass('focus');
39471                    }
39472                }).on("focusout", function () {
39473                    jQuery(that.input).closest('.ui-widget.select').removeClass('focus');
39474                });
39475            }
39476            else {
39477                this.input = jQuery('<input placeholder="' + placeholder + '" />').appendTo(this.wrapper).val(value).attr("title", "").addClass("custom-combobox-input ui-widget ui-widget-content ui-state-default ui-corner-left").autocomplete({
39478                    delay: 0,
39479                    minLength: 0,
39480                    source: this._source.bind(this),
39481                    select: function (event, ui) {
39482                        if (that.options && that.options.change) {
39483                            that.options.change(ui.item.option);
39484                        }
39485                    }
39486                }).on('keydown', function (event) {
39487                    setTimeout(function () {
39488                        if (jQuery(that.input).val() == '') {
39489                            if (that.options && that.options.change) {
39490                                var queryfrm = jQuery(that.element).closest('form');
39491                                if (lib3p_helper.utility.hasValue(queryfrm) && queryfrm.length > 0) {
39492                                    that.options.change({ form: queryfrm[0] });
39493                                }
39494                                else {
39495                                    that.options.change({});
39496                                }
39497                            }
39498                            that.element.children("option").each(function () {
39499                                this.selected = false;
39500                            });
39501                        }
39502                    }, 100);
39503                }).on('focus', function () {
39504                    if (!jQuery(that.input).closest('.ui-widget.select').hasClass('focus')) {
39505                        jQuery(that.input).closest('.ui-widget.select').addClass('focus');
39506                    }
39507                }).on("focusout", function () {
39508                    jQuery(that.input).closest('.ui-widget.select').removeClass('focus');
39509                });
39510            }
39511            this._on(this.input, {
39512                autocompleteselect: function (event, ui) {
39513                    ui.item.option.selected = true;
39514                    this._trigger("select", event, { item: ui.item.option });
39515                },
39516                autocompletechange: "_removeIfInvalid"
39517            });
39518        },
39519        _createShowAllButton: function () {
39520            var input = this.input,
39521                wasOpen = false;
39522            var isdiabled = jQuery(input).prop("disabled");
39523            var el = jQuery('<a tabIndex="-1" title="Show All Items" class="ui-button ui-widget ui-button-icon-only custom-combobox-toggle ui-corner-right"><span class="ui-button-icon ui-icon ui-icon-triangle-1-s"></span></a>').appendTo(this.wrapper).on("mousedown", function () {
39524                if (jQuery(this).prop("disabled") != true) {
39525                    wasOpen = input.autocomplete("widget").is(":visible");
39526                }
39527                else {
39528                    return false;
39529                }
39530            }).on("click", function () {
39531                if (jQuery(this).prop("disabled") != true) {
39532                    input.trigger("focus");
39533                    if (wasOpen) {
39534                        return;
39535                    }
39536                    input.autocomplete("search", "");
39537                }
39538                return false;
39539            });
39540            if (isdiabled == true) {
39541                el.prop("disabled", true);
39542            }
39543        },
39544        _source: function (request, response) {
39545            var matcher = new RegExp(jQuery.ui.autocomplete.escapeRegex(request.term), "i");
39546            response(this.element.children("option").map(function () {
39547                var text = jQuery(this).text();
39548                if (this.value && (!request.term || matcher.test(text)))
39549                    return {
39550                        label: text,
39551                        value: text,
39552                        option: this
39553                    };
39554            }));
39555        },
39556        _removeIfInvalid: function (event, ui) {
39557            var that = this;
39558
39559            if (ui.item) {
39560                return;
39561            }
39562
39563            var value = this.input.val(), valueLowerCase = value.toLowerCase(), valid = false;
39564            this.element.children("option").each(function () {
39565                if (jQuery(this).text().toLowerCase() === valueLowerCase) {
39566                    this.selected = valid = true;
39567                    return false;
39568                }
39569            });
39570
39571            if (valid) {
39572                return;
39573            }
39574
39575            this.input.val("");
39576            this.element.val("");
39577            this.input.autocomplete("instance").term = "";
39578            if (that.options && that.options.change) {
39579                var queryfrm = jQuery(that.element).closest('form');
39580                if (lib3p_helper.utility.hasValue(queryfrm) && queryfrm.length > 0) {
39581                    that.options.change({ form: queryfrm[0] });
39582                }
39583                else {
39584                    that.options.change({});
39585                }
39586            }
39587        },
39588        _destroy: function () {
39589            this.wrapper.remove();
39590            this.element.show();
39591        }
39592    });
39593});
39594
39595//https://api.jqueryui.com/autocomplete/
39596jQuery(function () {
39597    jQuery.widget("custom.multiselect", {
39598        _create: function () {
39599            this.wrapper = jQuery("<span>").addClass("custom-multiselect").insertAfter(this.element);
39600            this.element.hide();
39601            this._createAutocomplete();
39602            this._createShowAllButton();
39603            var that = this;
39604            this.reload = function (lst) {
39605                if (that.options) {
39606                    that.options.data = [];
39607                }
39608                jQuery(that.multi).children().remove();
39609                jQuery(that.input).show();
39610                if (lst === undefined || lst === null || lst.length == 0) {
39611                    jQuery(that.multi).hide();
39612                }
39613                else {
39614                    lst.forEach(function (c) {
39615                        that._createAutoData(that, c);
39616                    });
39617                }
39618            };
39619            jQuery(this.element).data('multiselect', this);
39620        },
39621
39622        _createAutocomplete: function () {
39623            var selected = this.element.children(":selected"),
39624                value = selected.val() ? selected.text() : "";
39625
39626            var placeholder = jQuery(this.element).attr('placeholder');
39627            var isdiabled = jQuery(this.element).prop("disabled");
39628            var that = this;
39629            this.multi = jQuery('<div></div>').appendTo(this.wrapper).addClass('custom-multiselect-data').hide();
39630            if (isdiabled == true) {
39631                this.input = jQuery('<input disabled placeholder="' + placeholder + '" />').appendTo(this.wrapper).val(value).attr("title", "").addClass("custom-multiselect-input ui-widget ui-widget-content ui-state-default ui-corner-left").autocomplete({
39632                    delay: 0,
39633                    minLength: 0,
39634                    source: this._source.bind(this),
39635                    select: function (event, ui) {
39636                        that._createAutoData(that, ui.item.option);
39637                        if (that.options && that.options.change) {
39638                            that.options.change(ui.item.option, that.options.data);
39639                        }
39640                        setTimeout(function () { jQuery(that.input).val(''); }, 100);
39641                    }
39642                });
39643            }
39644            else {
39645                this.input = jQuery('<input placeholder="' + placeholder + '" />').appendTo(this.wrapper).val(value).attr("title", "").addClass("custom-multiselect-input ui-widget ui-widget-content ui-state-default ui-corner-left").autocomplete({
39646                    delay: 0,
39647                    minLength: 0,
39648                    source: this._source.bind(this),
39649                    select: function (event, ui) {
39650                        that._createAutoData(that, ui.item.option);
39651                        if (that.options && that.options.change) {
39652                            that.options.change(ui.item.option, that.options.data);
39653                        }
39654                        setTimeout(function () { jQuery(that.input).val(''); }, 100);
39655                    }
39656                });
39657            }
39658            this._on(this.input, {
39659                autocompleteselect: function (event, ui) {
39660                    ui.item.option.selected = true;
39661                    this._trigger("select", event, { item: ui.item.option });
39662                },
39663                autocompletechange: "_removeIfInvalid"
39664            });
39665        },
39666
39667        _createShowAllButton: function () {
39668            var input = this.input,
39669                wasOpen = false;
39670            var isdiabled = jQuery(input).prop("disabled");
39671            var el = jQuery('<a tabIndex="-1" title="Show All Items" class="ui-button ui-widget ui-button-icon-only custom-multiselect-toggle ui-corner-right"><span class="ui-button-icon ui-icon ui-icon-triangle-1-s"></span></a>').appendTo(this.wrapper).on("mousedown", function () {
39672                if (jQuery(this).prop("disabled") != true) {
39673                    wasOpen = input.autocomplete("widget").is(":visible");
39674                }
39675                else {
39676                    return false;
39677                }
39678            }).on("click", function () {
39679                if (jQuery(this).prop("disabled") != true) {
39680                    input.trigger("focus");
39681                    if (wasOpen) {
39682                        return;
39683                    }
39684                    input.autocomplete("search", "");
39685                }
39686                return false;
39687            });
39688            if (isdiabled == true) {
39689                el.prop("disabled", true);
39690            }
39691        },
39692
39693        _createAutoData: function (el, option) {
39694            if (el.options) {
39695                if (el.options.data == undefined || el.options.data == null) {
39696                    el.options.data = [];
39697                }
39698                option.ix = el.options.data.length;
39699                el.options.data.push(option);
39700            }
39701            el.multi.show();
39702            if (el.options.data.length > 2) {
39703                jQuery(el.input).hide();
39704            }
39705            else {
39706                jQuery(el.input).show();
39707                setTimeout(function () {
39708                    jQuery(el.input).focus();
39709                }, 100);
39710            }
39711            var div = jQuery('<div class="item"></div>');
39712            el.multi.append(div);
39713            if (el.options.buttonFull == true) {
39714                div.append('<button class="btn-full">' + option.label + '</a>').on("click", function () {
39715                    if (option.ix == 0) {
39716                        el.options.data = [];
39717                        jQuery(el.multi).children().remove();
39718                        el.multi.hide();
39719                    }
39720                    else if (option.ix == 1) {
39721                        el.options.data = el.options.data.splice(0, 1);
39722                        var lst = [];
39723                        jQuery(el.multi).children().each(function (ix, c) {
39724                            if (ix > 0) {
39725                                lst.push(c);
39726                            }
39727                        });
39728                        lst.forEach(function (c) {
39729                            jQuery(c).remove();
39730                        });
39731                    }
39732                    else if (option.ix == 2) {
39733                        el.options.data = el.options.data.splice(0, 2);
39734                        jQuery(jQuery(el.multi).children()[jQuery(el.multi).children().length - 1]).remove();
39735                    }
39736                    if (el.options && el.options.change) {
39737                        el.options.change(option, el.options.data);
39738                    }
39739                    jQuery(el.input).show();
39740                    setTimeout(function () {
39741                        jQuery(el.input).focus();
39742                    }, 100);
39743                });
39744            }
39745            else {
39746                div.append('<span class="btn-text">' + option.label + '</span>');
39747                div.append('<a class="btn-close">x</a>').on("click", function () {
39748                    if (option.ix == 0) {
39749                        el.options.data = [];
39750                        jQuery(el.multi).children().remove();
39751                        el.multi.hide();
39752                    }
39753                    else if (option.ix == 1) {
39754                        el.options.data = el.options.data.splice(0, 1);
39755                        var lst = [];
39756                        jQuery(el.multi).children().each(function (ix, c) {
39757                            if (ix > 0) {
39758                                lst.push(c);
39759                            }
39760                        });
39761                        lst.forEach(function (c) {
39762                            jQuery(c).remove();
39763                        });
39764                    }
39765                    else if (option.ix == 2) {
39766                        el.options.data = el.options.data.splice(0, 2);
39767                        jQuery(jQuery(el.multi).children()[jQuery(el.multi).children().length - 1]).remove();
39768                    }
39769                    if (el.options && el.options.change) {
39770                        el.options.change(option, el.options.data);
39771                    }
39772                    jQuery(el.input).show();
39773                });
39774            }
39775        },
39776
39777        _source: function (request, response) {
39778            var matcher = new RegExp(jQuery.ui.autocomplete.escapeRegex(request.term), "i");
39779            response(this.element.children("option").map(function () {
39780                var text = jQuery(this).text();
39781                if (this.value && (!request.term || matcher.test(text)))
39782                    return {
39783                        label: text,
39784                        value: text,
39785                        option: this
39786                    };
39787            }));
39788        },
39789
39790        _removeIfInvalid: function (event, ui) {
39791
39792            if (ui.item) {
39793                return;
39794            }
39795
39796            var value = this.input.val(),
39797                valueLowerCase = value.toLowerCase(),
39798                valid = false;
39799            this.element.children("option").each(function () {
39800                if (jQuery(this).text().toLowerCase() === valueLowerCase) {
39801                    this.selected = valid = true;
39802                    return false;
39803                }
39804            });
39805
39806            if (valid) {
39807                return;
39808            }
39809
39810            this.input.val("");
39811            this.element.val("");
39812            this.input.autocomplete("instance").term = "";
39813        },
39814
39815        _destroy: function () {
39816            this.wrapper.remove();
39817            this.element.show();
39818        }
39819    });
39820});
39821
39822///
39823///--------------
39824///
39825
39826jQuery(document).ready(function () {
39827    lib3p.init();
39828});
39829jQuery(window).on("pageshow", function (event) {
39830    if (event.originalEvent.persisted) {
39831        lib3p.init();
39832    }
39833});

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.