PageSourceSearch

https://www.gantuning.ru/modules/kr_cart/js/kr_cart.js

js gantuning.ru collected 2026-10-07 23:02:33 UTC 7,389 bytes, 250 lines download raw bytes

1$(document).ready(function() {
2	KR_Cart.init();
3});
4
5var KR_CartClass = function() {
6	var self = this;
7	
8	this.init = function() {
9		if($('.kr_cart').length > 0) {
10			$('.kr_cart_row_add').click(function() {
11				self.cartAdd(this);
12			});
13			$('.kr_cart_row_sub').click(function() {
14				self.cartSub(this);
15			});
16			$('.kr_cart_row_remove').click(function() {
17				self.cartRemove(this);
18			});
19			$('.kr_cart_promo').unbind("click");
20			$('.kr_cart_promo').bind("click", function() {
21				self.cartPromo(this);
22			});
23		}
24	}
25	
26	this.cartPromo = function(EL) {
27		$('.promo-code .promo-code-error').hide();
28		$('.promo-code .promo-code-success').hide();
29		var promo = $('.kr_cart_promo_val').val();
30		var payment = $(".kupitGAGT_payType li.active").data("payment");
31
32		var delivery = '';
33		if($(".kr_checkout_delivery li.active").data("delivery")) {
34			delivery = $(".kr_checkout_delivery li.active").data("delivery");
35		}
36		if ($(".kr_checkout.ordering").data("site_code") == "RU" && delivery == '') {
37			delivery = 10
38		}
39
40		if(promo==''){
41			$('.promo-code .promo-code-error').show();
42			return false;
43		}
44		$.ajax({
45			url: '/module/kr_cart/ajax',
46			method: 'POST',
47			data:{task:'cart_promo', promo:promo, payment:payment, delivery:delivery},
48			dataType: 'json'
49		}).done(function(answer) {
50			if(answer.status == 'ok') {
51				self.cartRefresh(answer.cart);
52				$('.promo-code .promo-code-success').show();
53			}
54			else
55				$('.promo-code .promo-code-error').show();
56		});
57	}
58	
59	this.cartAdd = function(EL) {
60		var row = $(EL).closest('.kr_cart_row');
61		var product = row.data('product');
62		var payment = $(".kupitGAGT_payType li.active").data("payment");
63
64		var delivery = '';
65		if($(".kr_checkout_delivery li.active").data("delivery")) {
66			delivery = $(".kr_checkout_delivery li.active").data("delivery");
67		}
68		if ($(".kr_checkout.ordering").data("site_code") == "RU" && delivery == '') {
69			delivery = 10
70		}
71
72		$.ajax({
73			url: '/module/kr_cart/ajax',
74			method: 'POST',
75			data:{task:'cart_add', product:product, payment:payment, delivery:delivery},
76			dataType: 'json'
77		}).done(function(answer) {
78			if(answer.status == 'ok') {
79				self.cartRefresh(answer.cart);
80			
81			}
82		});
83	}
84	
85	this.cartSub = function(EL) {
86		var row = $(EL).closest('.kr_cart_row');
87		var product = row.data('product');
88		var payment = $(".kupitGAGT_payType li.active").data("payment");
89
90		var delivery = '';
91		if($(".kr_checkout_delivery li.active").data("delivery")) {
92			delivery = $(".kr_checkout_delivery li.active").data("delivery");
93		}
94		if ($(".kr_checkout.ordering").data("site_code") == "RU" && delivery == '') {
95			delivery = 10
96		}
97		var quantity = $('.kr_cart_row_quantity', row).val();
98		if(quantity > 1) {
99			$.ajax({
100				url: '/module/kr_cart/ajax',
101				method: 'POST',
102				data:{task:'cart_sub', product:product, payment:payment, delivery:delivery},
103				dataType: 'json'
104			}).done(function(answer) {
105				if(answer.status == 'ok') {
106					self.cartRefresh(answer.cart);
107				
108				}
109			});
110		}
111	}
112	
113	this.cartRemove = function(EL) {
114		var row = $(EL).closest('.kr_cart_row');
115		var product = row.data('product');
116
117		var delivery = '';
118		if($(".kr_checkout_delivery li.active").data("delivery")) {
119			delivery = $(".kr_checkout_delivery li.active").data("delivery");
120		}
121		if ($(".kr_checkout.ordering").data("site_code") == "RU" && delivery == '') {
122			delivery = 10
123		}
124
125		$.ajax({
126			url: '/module/kr_cart/ajax',
127			method: 'POST',
128			data:{task:'cart_remove', product:product, delivery:delivery},
129			dataType: 'json'
130		}).done(function(answer) {
131
132			console.log(answer);
133			if( answer.redirect ){
134				window.location.replace( answer.link );
135				// alert( answer.link );
136			} 
137			else if(answer.status == 'ok') {
138				self.cartRefresh(answer.cart);
139			}
140		});
141	}
142	
143	this.cartReload = function() {
144		var product = $('.kr_cart .kr_cart_row').data('product');
145		var payment = $(".kupitGAGT_payType li.active").data("payment");
146		var delivery = '';
147		if($(".kr_checkout_delivery li.active").data("delivery")) {
148			delivery = $(".kr_checkout_delivery li.active").data("delivery");
149		}
150		if ($(".kr_checkout.ordering").data("site_code") == "RU" && delivery == '') {
151			delivery = 10
152		}
153
154		$.ajax({
155			url: '/module/kr_cart/ajax',
156			method: 'POST',
157			data:{task:'cart_reload', product:product, payment:payment, delivery:delivery},
158			dataType: 'json'
159		}).done(function(answer) {
160			if(answer.status == 'ok') {
161				self.cartRefresh(answer.cart);
162			
163			}
164		});
165	}
166	
167	this.cartRefresh = function(DATA) {
168		if ( !DATA ) return;
169
170		console.log("answer", DATA );
171
172		//DISCOUNT
173		if ( DATA.discounts > 0 ){
174			$('.kr_cart_discounts span:eq(0)').html(DATA.discounts)//+ ' ₽'
175			.parent().prev().children(".sale-price-container").html(/*'скидка ' + */DATA.discounts_percent + '%')
176			.parent().parent().show();
177		}
178		else {
179			$('.kr_cart_discounts').parent().hide();
180		}
181
182		//SHIPPING
183		$('.kr_cart_shipping span').html(DATA.shipping);
184		
185		//TOTAL
186		$('.kr_cart_total span').html(DATA.total);
187		
188		//NDS
189		$('.kr_cart_nds span').html(DATA.nds);
190		$('.kr_cart_nds_percent').html(DATA.nds_percent);
191
192		//profit RU
193		if ($(".kr_checkout.ordering").data("site_code") == "RU") {
194			$('.pay__text_action').html('выгоднее на '+DATA.profit+'<span class="ruble"></span>');
195			$('.pay__text_installment .pay__text_action_alt').text('За '+DATA.credit+' Р/месяц на 6 месяцев');
196		}
197		
198		//PRODUCT
199		var quantity = 0;
200		var rows = $('.kr_cart .tovari');
201		for(var i = 0; i < rows.length; i++) {
202			var row = $(rows[i]);
203			var id_product = row.data('product');
204			if(DATA.products[id_product]) {
205				var product = DATA.products[id_product];
206				$('.kr_cart_row_price span', row).html(product.price);
207				$('.kr_cart_row_quantity', row).val(product.quantity);
208				$('.kr_cart_row_quantity_text', row).html(product.quantity);
209				quantity += parseInt(product.quantity);
210			}
211			else {
212				var id_product = row.data('product');
213				row.remove();
214				$('#product_row_' + id_product).remove();
215			}
216		}
217		
218		if (DATA.country == 17) {
219			$('.cart-note').show();
220		} else {
221			$('.cart-note').hide();
222		}
223		//BASKET
224		$(".top-basket__product__count").html(parseInt(quantity));
225
226		//DELIVERYS
227		let deliverys = DATA.deliverys;
228		$('.kr_checkout_delivery li').hide();
229		$('.kr_checkout_delivery li').removeClass('active');
230		$.each(deliverys, function( index, value ) {
231			let element = $("[data-delivery="+value.deliveryID+"]");
232			if(element.length > 0) {
233				if (!value.disable)
234					element.show();
235
236				if (value.active) {
237					element.addClass('active');
238				}
239
240				element.find('.kupitGAGT_delivery_price-mob').html(value.deliveryPrice + ' EUR');
241				let tempText = element.find('.kupitGAGT_delivery_text')[0].firstChild.textContent.replace(/(\d+)(\s+)(-)(\s+)(\d+)(\s+)/, '');
242				element.find('.kupitGAGT_delivery_text')[0].firstChild.textContent = value.deliveryPeriod + ' ' + tempText;
243				element.find('.kupitGAGT_delivery_price-desc').html(value.deliveryPrice + ' EUR');
244				element.find('.kupitGAGT_delivery_price').html(' — ' + value.deliveryPrice + ' EUR');
245			}
246		});
247	}
248	
249}
250var KR_Cart = new KR_CartClass();

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.