PageSourceSearch

https://loja.fpr.pt/template_base/loja/js/store.js

js fpr.pt collected 2026-10-02 04:42:19 UTC 34,391 bytes, 940 lines download raw bytes

1
2var cart_opened = false;
3function toggle_cart(){
4    
5    if(cart_opened){
6        cart_opened = false;
7    }else{
8        cart_opened = true;
9    }
10    
11
12    //prevent vody scrolling
13    if(cart_opened){
14        $('html, body').disableScroll();
15    }else{
16        $('html, body').enableScroll();
17    }
18
19    //open cart body
20    $('.cart_body').toggleClass("cart_body_opened");
21    
22    //switch cart and close icons
23    $('.cart_icon').toggleClass("cart_icon_hide");
24    $('.cart_close_icon').toggleClass("cart_icon_hide");
25
26    //blackout background
27    $('.cart_blackout').toggleClass("cart_blackout_on");
28
29
30    //toggle list
31    $('.cart_item_list').toggleClass("cart_item_list_opened");
32    //toggle checkout
33    $('.cart_checkout_row').toggleClass("cart_checkout_row_open");
34    
35    
36    if(cart_opened){
37
38        $(".cart_animate").delay(500).each(function(i) {
39            
40            $(this).clearQueue();
41            $(this).delay(100 * i).queue(function() {
42                $(this).addClass("cart_animate_show");
43            })
44
45        })
46
47    }else{
48
49        $('.cart_animate').each(function(){
50            $(this).removeClass('cart_animate_show');
51        });
52    }
53}
54
55function reload_cart_data(){
56
57    try {
58
59        var formData = new FormData();
60        formData.append('reload', 1);
61        $.ajax({
62            url : 'template_base/loja/scripts/store_cart_get_rows.php',
63            type : 'POST',
64            data : formData,
65            processData: false,
66            contentType: false,
67            beforeSend: function() {
68            },
69            success : function(data) {
70                var response_obj = jQuery.parseJSON(data);
71                if (response_obj.return_code == '200'){
72                    
73                    $(".cart_item_list").html(response_obj.return_rows);
74                    $(".cartvalholder").html(response_obj.return_totals);
75                    $(".cartqtnumberholder").html(response_obj.return_totals_qt);
76                    $(".cart_list_item_row").addClass("cart_animate_show");
77
78                }else{
79
80                    modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), response_obj.return_data);
81                }
82
83            },
84            error: function(e) {
85                modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO'));        
86            } 
87        });
88
89    }catch(err) {
90        modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO]'));
91    }
92
93}
94
95
96function reload_checkout_rows(){
97
98    try {
99
100        var formData = new FormData();
101        formData.append('reload', 1);
102        $.ajax({
103            url : 'template_base/loja/scripts/store_checkout_get_rows.php',
104            type : 'POST',
105            data : formData,
106            processData: false,
107            contentType: false,
108            beforeSend: function() {
109            },
110            success : function(data) {
111                var response_obj = jQuery.parseJSON(data);
112                if (response_obj.return_code == '200'){
113
114                    $(".desktop_cart_rows").html(response_obj.return_desktop_rows);
115                    $(".desktop_cart_rows_total").html(response_obj.return_desktop_totals);
116                    $(".mobile_cart_rows").html(response_obj.return_mobile_rows);
117                    $(".mobile_cart_rows_total").html(response_obj.return_mobile_rows_totals);
118
119                }else{
120
121                    modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), response_obj.return_data);
122                }
123
124            },
125            error: function(e) {
126                modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO'));        
127            } 
128        });
129
130    }catch(err) {
131        modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO]'));
132    }
133
134}
135
136function goto_payments(){
137
138    try {
139
140        var bill_address = $("select[name='bill_address']").val();
141        var ship_address = $("select[name='ship_address']").val();
142
143        var formData = new FormData();
144        formData.append('addresssubmit', 1);
145        formData.append('bill_address', bill_address);
146        formData.append('ship_address', ship_address);
147        $.ajax({
148            url : 'template_base/loja/scripts/store_checkout_address_submit.php',
149            type : 'POST',
150            data : formData,
151            processData: false,
152            contentType: false,
153            beforeSend: function() {
154            },
155            success : function(data) {
156                var response_obj = jQuery.parseJSON(data);
157                if (response_obj.return_code == '200'){
158                    $(location).attr('href','loja/checkout/payments')
159                }else{
160                    modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), response_obj.return_data);
161                }
162
163            },
164            error: function(e) {
165                modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO'));        
166            } 
167        });
168
169    }catch(err) {
170        modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO]'));
171    }
172
173}
174
175function submit_checkout(){
176
177    try {
178
179        var formData = new FormData();
180        formData.append('checkoutsubmit', 1);
181        $.ajax({
182            url : 'template_base/loja/scripts/store_checkout_submit.php',
183            type : 'POST',
184            data : formData,
185            processData: false,
186            contentType: false,
187            beforeSend: function() {
188            },
189            success : function(data) {
190                var response_obj = jQuery.parseJSON(data);
191                if (response_obj.return_code == '200'){
192                    $(location).attr('href','loja/checkout/address')
193                }else{
194                    modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), response_obj.return_data);
195                    reload_checkout_rows();
196                }
197
198            },
199            error: function(e) {
200                modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO'));        
201            } 
202        });
203
204    }catch(err) {
205        modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO]'));
206    }
207
208}
209
210$(function() {
211
212    $('.attributes_control').each(function(){
213        reload_attributes(".attributes_control", $(this).find('input').first().attr('name'));
214    });
215
216    $('body').on('click', '.checkoutsubmit', function() {
217        submit_checkout();
218    });
219
220    $('body').on('click', '.goto_payments', function() {
221        goto_payments();
222    });
223
224    $("body").on("change", "select[name='bill_address']", function() {
225        var new_address = $(this).val();
226        
227        try {
228
229            var formData = new FormData();
230            formData.append('new_address', new_address);
231            formData.append('type', 1);
232
233            $.ajax({
234                url : 'template_base/loja/scripts/store_checkout_address_reload.php',
235                type : 'POST',
236                data : formData,
237                processData: false,
238                contentType: false,
239                beforeSend: function() {
240                },
241                success : function(data) {
242
243                    var response_obj = jQuery.parseJSON(data);
244                    if (response_obj.return_code == '200'){
245
246                        $(".bill_address_data").addClass('animated bounceOutLeft');
247
248                        setTimeout(
249                        function() 
250                        {
251                            $(".bill_address_data").html(response_obj.return_data);
252                            $(".bill_address_data").removeClass('bounceOutLeft');
253                            $(".bill_address_data").addClass('animated bounceInLeft');
254                        }, 500);
255
256                    }
257                    
258                },
259                error: function(e) {
260                    modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO'));        
261                } 
262            });
263
264        }catch(err) {
265            modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO]'));
266            
267        }
268
269    });
270    
271    $("body").on("change", "select[name='ship_address']", function() {
272        var new_address = $(this).val();
273        
274        try {
275
276            var formData = new FormData();
277            formData.append('new_address', new_address);
278            formData.append('type', 2);
279
280            $.ajax({
281                url : 'template_base/loja/scripts/store_checkout_address_reload.php',
282                type : 'POST',
283                data : formData,
284                processData: false,
285                contentType: false,
286                beforeSend: function() {
287                },
288                success : function(data) {
289
290                    var response_obj = jQuery.parseJSON(data);
291                    if (response_obj.return_code == '200'){
292
293                        $(".ship_address_data").addClass('animated bounceOutRight');
294
295                        setTimeout(
296                        function() 
297                        {
298                            $(".ship_address_data").html(response_obj.return_data);
299                            $(".ship_address_data").removeClass('bounceOutRight');
300                            $(".ship_address_data").addClass('bounceInRight');
301
302                        }, 500);
303
304                    }
305
306                },
307                error: function(e) {
308                    modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO'));        
309                } 
310            });
311
312        }catch(err) {
313            modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO]'));
314            
315        }
316
317    });
318
319    $('body').on('change', '.checkoutprodquantity', function() {
320
321        var new_qt = $(this).val();
322        var line_id = $(this).attr("prod");
323
324        try {
325
326            var formData = new FormData();
327            formData.append('prod_line_id', line_id);
328            formData.append('prod_new_qt', new_qt);
329            $.ajax({
330                url : 'template_base/loja/scripts/store_checkout_qt_change.php',
331                type : 'POST',
332                data : formData,
333                processData: false,
334                contentType: false,
335                beforeSend: function() {
336                },
337                success : function(data) {
338                    var response_obj = jQuery.parseJSON(data);
339                    if (response_obj.return_code == '200'){
340
341                        reload_checkout_rows();
342
343                    }else{
344
345                        modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), response_obj.return_data);
346                    }
347
348                },
349                error: function(e) {
350                    modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO'));        
351                } 
352            });
353
354        }catch(err) {
355            modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO]'));
356        }
357        
358
359    });
360    
361    
362    $('body').on('click', '.removeprodfromcartcheckout', function() {
363        
364        var prod_line_id = $(this).attr('prod');        
365        remove_from_cart(prod_line_id, 1);        
366
367    });
368
369    $('body').on('click', '.removeprodfromcart', function() {
370        
371        var prod_line_id = $(this).attr('prod');        
372        remove_from_cart(prod_line_id);        
373
374    });
375    
376
377    $('body').on('click', '.addtoprodcart', function() {
378
379        // VERIFICAR SE TODOS OS ATRIBUTOS ESTAO SELECCIONADOS
380        var check = true;
381        $(".attributes_control input:radio").each(function(){
382            var name = $(this).attr("name");
383            if($("input:radio[name="+name+"]:checked").length == 0){
384                check = false;
385            }
386        }); 
387        
388        if(check){
389
390            var prod_slug_name = $(this).attr('prodname');
391            //var prod_quantity = $(this).closest(".product_summary").find(".input_prod_quantity").val();
392            var prod_quantity = $(this).closest(".product_detail_holder").find(".input_prod_quantity").val();
393            add_to_cart(prod_slug_name, prod_quantity);
394            animateCSS('.cart_positioner', 'jello');
395
396        }else{
397            
398            modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_TEM_DE_SELECCIONAR_TODOS_OS_ATRIBUTOS'));        
399            
400
401        }
402        
403    });
404
405    function reload_checkout_totals(){
406
407    }
408
409    function reload_prod_data(loading=false){
410        
411        try {
412
413            var prod = $('.addtoprodcart').attr('prodname');
414            var formData = new FormData();
415            formData.append('prodname', prod);
416
417            $.ajax({
418                url : 'template_base/loja/scripts/product_info_reload.php',
419                type : 'POST',
420                data : formData,
421                processData: false,
422                contentType: false,
423                beforeSend: function() {
424                    if (loading){
425                        $('.loadingwrapper').fadeIn(500);
426                    }
427                },
428                success : function(data) {
429                    if (loading){
430                        $('.loadingwrapper').fadeOut(500);
431                    }
432
433                    var response_obj = jQuery.parseJSON(data);
434                    if (response_obj.return_code == '200'){
435
436                        $( ".product_summary" ).html("");
437                        $( ".product_description" ).html("");
438                        $( ".product_summary" ).html( response_obj.return_data_summary );
439                        $( ".product_description" ).html( response_obj.return_data_description );
440
441                        //IR PARA AS FOTOS DO PRODUTO
442                        var slideno = $(".store_product_slider .prod_item img[prodparent='"+ prod +"']:first").attr('slidenum');
443                        if(typeof(slideno) != "undefined" && slideno !== null) {
444                            $('.store_product_slider_nav').slick('slickGoTo', slideno);
445                        }else{
446
447                            // LER IMAGENS ADICIONAIS
448                            var slidformData = new FormData();
449                            slidformData.append('slugprodname', prod);
450                            $.ajax({
451                                url : 'template_base/loja/scripts/product_additional_slider_get.php',
452                                type : 'POST',
453                                data : slidformData,
454                                processData: false,
455                                contentType: false,
456                                success : function(data) {
457
458                                    var response_add_obj = jQuery.parseJSON(data);
459                                    if (response_add_obj.return_code == '200'){
460                                        var addslideno = $(".store_product_slider .prod_item img[prodparent='"+ response_add_obj.return_data +"']:first").attr('slidenum');
461                                        if(typeof(addslideno) != "undefined" && addslideno !== null) {
462                                            $('.store_product_slider_nav').slick('slickGoTo', addslideno);
463                                        }
464
465                                    }
466                                    
467                                },
468                                error: function(e) {
469
470                                }
471                            }); 
472
473                        }
474                        
475                    }else{
476                        modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), response_obj.return_data);
477                    }
478
479                },
480                error: function(e) {
481                    if (loading){
482                        $('.loadingwrapper').fadeOut(500);
483                    }
484                    modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO'));        
485                }
486            }); 
487
488        }catch(err) {
489            if (loading){
490                $('.loadingwrapper').fadeOut(500);
491            }
492            modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO]'));
493            
494        }
495
496
497    }
498
499    $('body').on('change', '.product_atributes_radios input', function() {
500        
501        try {
502
503            var changed_attr = $(this).attr("name");
504
505            // VERIFICAR SE TODOS OS ATRIBUTOS ESTAO SELECCIONADOS
506            var check = true;
507            $(".attributes_control input:radio").each(function(){
508                var name = $(this).attr("name");
509                if($("input:radio[name="+name+"]:checked").length == 0){
510                    check = false;
511                }
512            });
513            
514           // if(check){
515
516                var formData = new FormData();
517                
518                $(".attributes_control input:radio:checked").each(function(){
519                    var name = $(this).attr("name");
520                    if($("input:radio[name="+name+"]:checked").length > 0){
521                        var radio_val = $("input:radio[name="+name+"]:checked").val();
522                        formData.append(name, radio_val);
523                    }
524                });
525                
526                formData.append('prodmaster', $('.addtoprodcart').attr('prodmaster'));
527                
528                $.ajax({
529                    url : 'template_base/loja/scripts/attribute_change.php',
530                    type : 'POST',
531                    data : formData,
532                    processData: false,
533                    contentType: false,
534                    beforeSend: function() {
535                        $('.loadingwrapper').fadeIn(500);
536                    },
537                    success : function(data) {
538                        $('.loadingwrapper').fadeOut(500);
539
540                        var response_obj = jQuery.parseJSON(data);
541                        if (response_obj.return_code == '200'){
542                            
543                            $('.addtoprodcart').attr('prodname', response_obj.return_data_slug);
544
545                            var new_slugg = response_obj.return_data_slug;
546                            var sPageURL = window.location.pathname;
547                            var sURLVariables = sPageURL.split('/');
548                            var origin   = window.location.origin;   
549
550                            var new_url = "";
551                            for (var i = 0; i < sURLVariables.length-1; i++){
552                                if (i == 0){
553                                    new_url = new_url + sURLVariables[i];
554                                }else{
555                                    new_url = new_url + '/' + sURLVariables[i];
556                                }
557                            }
558                            new_url = new_url + '/' + new_slugg;
559                            changeURL(origin+new_url);
560                            reload_attributes(".attributes_control", changed_attr);
561                            reload_prod_data();
562
563                            //$.when( reload_prod_data()).done(function( a1 ) {
564                              //  reload_attributes(".attributes_control", changed_attr);
565                            //});
566                            
567
568                        }else if(response_obj.return_code == '250'){
569                            
570                            reload_attributes(".attributes_control", changed_attr);
571                            reload_prod_data();
572
573                            //$.when( reload_prod_data()).done(function( a1 ) {
574                              //  reload_attributes(".attributes_control", changed_attr);
575                            //});
576
577                        }else{
578
579                            modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), response_obj.return_data);
580                        }
581
582                    },
583                    error: function(e) {
584                        $('.loadingwrapper').fadeOut(500);
585                        modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO'));        
586                    } 
587                });
588            //}else{
589
590           //     reload_attributes(".attributes_control", changed_attr, true);
591
592           // }
593
594        }catch(err) {
595            $('.loadingwrapper').fadeOut(500);
596            modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO]'));
597            
598        }
599
600
601    });
602    
603    function reload_attributes (html_selector, changed_attribute=null, loading=false){
604
605        try {
606
607            var sel_opts = [];
608            $(html_selector+" :input:radio[name!='" + changed_attribute + "']:checked").each(function(){
609                sel_opts[$(this).attr('name')] = $(this).val(); 
610            });
611
612            var formData = new FormData();
613            formData.append("attr", changed_attribute);
614            formData.append("attrval", $("input:radio[name="+changed_attribute+"]:checked").val());
615            formData.append("prodname", $('.addtoprodcart').attr('prodname'));
616
617            $.ajax({
618                url : 'template_base/loja/scripts/attributes_reload.php',
619                type : 'POST',
620                data : formData,
621                processData: false,
622                contentType: false,
623                beforeSend: function() {
624                    if (loading == true){
625                        $('.loadingwrapper').fadeIn(500);
626                    }
627                },
628                success : function(data) {
629                    if (loading == true){
630                        $('.loadingwrapper').fadeOut(500);
631                    }
632
633                    var response_obj = jQuery.parseJSON(data);
634                    if (response_obj.return_code == '200'){
635                        
636                        var allowed_items = $.parseJSON(response_obj.return_data_array);
637
638                        $(html_selector+" :input[name!='" + changed_attribute + "']").each(function(){
639
640                            var current_element = $(this).attr('name');
641                            var current_element_cnt = parseInt($(this).attr('cnt'));
642                            var change_element_cnt = parseInt($(html_selector+" :input[name='" + changed_attribute + "']").attr('cnt'));
643                            
644                            if (
645                                current_element_cnt > change_element_cnt
646                            ){
647
648                                $(html_selector+" :input[name='" + $(this).attr('name') + "']").prop('checked', false);
649                                $(html_selector+" :input[name='" + $(this).attr('name') + "']").attr('disabled', true);
650                                $(html_selector+" label[for='" + $(this).attr('id') + "']").addClass('notavaliableitem');
651                                
652                            }
653                            
654                        });
655                        
656                        $.each(allowed_items, function() {
657
658                            var current_element_cnt = parseInt($(html_selector+" :input[name='" + this.name + "']").attr('cnt'));
659                            var change_element_cnt = parseInt($(html_selector+" :input[name='" + changed_attribute + "']").attr('cnt'));
660                            if (current_element_cnt > change_element_cnt){
661                                
662                                $(html_selector+" :input[name='" + this.name + "'][value='" + this.val + "']").attr('disabled', false);
663
664                                var get_label_ctr = $(html_selector+" :input[name='" + this.name + "'][value='" + this.val + "']").attr("id");
665                                $(html_selector+" label[for='" + get_label_ctr + "']").removeClass('notavaliableitem');
666
667                                var have_one_checked = false;
668                                if(typeof(sel_opts[this.name]) != "undefined" && sel_opts[this.name] !== null) {
669                                    var have_one_checked = true;
670                                    if (sel_opts[this.name] == this.val){
671                                        $(html_selector+" :input[name='" + this.name + "'][value='" + this.val + "']").prop('checked', true);
672                                    }
673                                }
674
675                                if (have_one_checked == false && $(html_selector+" :input[name='" + this.name + "'][value='" + this.val + "']").length == 1){
676                                    //$(html_selector+" :input[name='" + this.name + "'][value='" + this.val + "']").prop('checked', true);
677                                }
678
679                            }
680                                
681                        });
682
683
684                    }else{
685                        if (loading == true){
686                            $('.loadingwrapper').fadeOut(500);
687                        }
688                        modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), response_obj.return_data);
689                    }
690                },
691                error: function(e) {
692                    if (loading == true){
693                        $('.loadingwrapper').fadeOut(500);
694                    }
695                    modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO'));        
696                } 
697            });
698
699
700        }catch(err) {
701            $('.loadingwrapper').fadeOut(500);
702            modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO]'));
703        }
704
705    }
706
707    function load_product_image_slider(){
708
709        var nav_slider_count = $('.store_product_slider_nav .prod_item').length;
710
711        // MAIN SLIDER 
712        $('.store_product_slider').slick({
713            slidesToShow: 1,
714            slidesToScroll: 1,
715            arrows: false,
716            fade: true,
717            asNavFor: '.store_product_slider_nav',
718            adaptiveHeight: true
719        });
720
721        // NAV SLIDER
722        $('.store_product_slider_nav').slick({
723            slidesToShow: 4,
724            slidesToScroll: 1,
725            asNavFor: '.store_product_slider',
726            dots: false,
727            centerMode: true,
728            focusOnSelect: true,
729            prevArrow: '<a class="item_valign" href="#slider_next" style="position: absolute;left: -1%;z-index:4;" role="button" data-slide="prev"><span class="fa fa-angle-left color_colorfirst" id="banner-arrow" style="font-size: 60px;margin: 0px;padding: 10px;line-height: 20px;"></span><span class="sr-only"><</span></a>',
730            nextArrow: '<a class="item_valign" href="#slider_last" style="position: absolute;right: 7%;z-index:4;" role="button" data-slide="next"><span class="fa fa-angle-right color_colorfirst" id="banner-arrow"  style="font-size: 60px;margin: 0px;padding: 10px;line-height: 20px;"></span><span class="sr-only">></span></a>'
731        });
732
733        if (nav_slider_count < 5){
734            $(".slick-slider").addClass('center_slider_items');            
735        }
736
737    }
738
739    load_product_image_slider();
740
741    function remove_from_cart(prod_line_id, from_checkout=0){
742
743        try {
744
745            var formData = new FormData();
746            formData.append('prod_line_id', prod_line_id);
747
748            $.ajax({
749                url : 'template_base/loja/scripts/store_remove_from_cart.php',
750                type : 'POST',
751                data : formData,
752                processData: false,
753                contentType: false,
754                beforeSend: function() {
755                    //$('.loadingwrapper').fadeIn(500);
756                },
757                success : function(data) {
758                    //$('.loadingwrapper').fadeOut(500);
759
760                    var response_obj = jQuery.parseJSON(data);
761                    if (response_obj.return_code == '200'){
762
763                        if (from_checkout == 1){
764
765                            var row_desktop = $("div[lineid='"+prod_line_id+"']"),
766                            row_mobile = $("tr[lineid='"+prod_line_id+"']");
767
768                            row_desktop.addClass('animated zoomOutRight');
769                            row_mobile.addClass('animated zoomOutRight');
770
771                            setTimeout(
772                            function() 
773                            {
774                                $("div[lineid='"+prod_line_id+"']" ).remove();
775                                $("tr[lineid='"+prod_line_id+"']" ).remove();
776                                reload_checkout_rows();    
777                                reload_cart_data();                        
778                            }, 500);
779
780                        }else{
781
782                            var row_desktop = $(".cart_list_item_row[lineid='"+prod_line_id+"']");
783
784                            row_desktop.addClass('animated zoomOutRight');
785                            setTimeout(
786                            function() 
787                            {
788                                $(".cart_list_item_row[lineid='"+prod_line_id+"']" ).remove();                                
789                                reload_cart_data();
790
791                            }, 500);
792
793                        }
794
795                    }else{
796
797                        modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), response_obj.return_data);
798                    }
799
800                },
801                error: function(e) {
802                    //$('.loadingwrapper').fadeOut(500);
803                    modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO'));        
804                } 
805            });
806
807        }catch(err) {
808            //$('.loadingwrapper').fadeOut(500);
809            modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO]'));
810            
811        }
812        
813    }
814
815    function add_to_cart(product_slug, prod_quantity){
816                
817        try {
818
819            var formData = new FormData();
820            formData.append('product_to_add', product_slug);
821            formData.append('product_quantity', prod_quantity);
822
823            $.ajax({
824                url : 'template_base/loja/scripts/store_add_to_cart.php',
825                type : 'POST',
826                data : formData,
827                processData: false,
828                contentType: false,
829                beforeSend: function() {
830                    //$('.loadingwrapper').fadeIn(500);
831                },
832                success : function(data) {
833                    //$('.loadingwrapper').fadeOut(500);
834
835                    var response_obj = jQuery.parseJSON(data);
836                    if (response_obj.return_code == '200'){
837                        
838                        //modal_show(get_text_from_var("TEXTO_MODAL_SUCESS"), get_text_from_var('LOJA_PRODUTO_ADICIONADO_COM_SUCESSO'));                        
839                        reload_cart_data();
840
841                    }else{
842
843                        modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), response_obj.return_data);
844                    }
845
846                },
847                error: function(e) {
848                    //$('.loadingwrapper').fadeOut(500);
849                    modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO'));        
850                } 
851            });
852
853        }catch(err) {
854            //$('.loadingwrapper').fadeOut(500);
855            modal_show(get_text_from_var("TEXTO_MODAL_ERROR"), get_text_from_var('TEXTO_ERRO_DESCONHECIDO]'));
856            
857        }
858        
859    
860    }
861
862});
863
864// BACK BTN
865
866$(document).on('click','.store_back_btn',function(){
867    store_go_back();
868});
869
870function store_go_back(){
871    var curr_url = window.location.href;
872    var curr_url_split = curr_url.split('/');
873    curr_url_split.pop();
874    window.location.href = curr_url_split.join('/');
875}
876
877// END BACK BTN
878
879
880// PRODUCT FAVORITE BTN
881
882$(document).on('mouseenter','.prod_fav_toggle',function(){
883    if($(this).hasClass('prod_fav_active')){
884        $(this).removeClass('fas');
885        $(this).addClass('far');
886    }else{
887        $(this).removeClass('far');
888        $(this).addClass('fas');
889    }
890});
891$(document).on('mouseleave','.prod_fav_toggle',function(){
892    if($(this).hasClass('prod_fav_active')){
893        $(this).removeClass('far');
894        $(this).addClass('fas');
895    }else{
896        $(this).removeClass('fas');
897        $(this).addClass('far');
898    }
899});
900
901$(document).on('click','.prod_fav_toggle',function(e){
902    e.preventDefault();
903    // $(this).toggleClass('prod_fav_active');
904
905    var clicked_heart = $(this);
906    
907
908    var formData = new FormData();
909        formData.append('toggle_fav_prod_id', $(this).attr('prod_id'));
910
911        $.ajax({
912            url : 'template_base/loja/scripts/product_toggle_favorite.php',
913            type : 'POST',
914            data : formData,
915            processData: false,
916            contentType: false,
917            success : function(data) {
918                var response_obj = jQuery.parseJSON(data);
919                
920                if (response_obj.return_code === '200'){
921                    if(response_obj.return_action == 'added'){
922                        clicked_heart.removeClass('far');
923                        clicked_heart.addClass('fas');
924                        clicked_heart.removeClass('far');
925                        clicked_heart.addClass('prod_fav_active');
926                        animateCSS('.prod_fav_toggle[prod_id="'+clicked_heart.attr('prod_id')+'"]', 'rubberBand');
927                    }else if(response_obj.return_action == 'removed'){
928                        clicked_heart.removeClass('fas');
929                        clicked_heart.addClass('far');
930                        clicked_heart.removeClass('prod_fav_active');
931                        animateCSS('.prod_fav_toggle[prod_id="'+clicked_heart.attr('prod_id')+'"]', 'bounceIn');
932                    }
933                }
934                
935            }
936        });
937});
938
939
940// END PRODUCT FAVORITE BTN

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.