PageSourceSearch

https://kartridgesale.ru/bitrix/components/altop/catalog.top/templates/discount/script.js?156745800019200

js kartridgesale.ru collected 2026-10-05 03:15:27 UTC 19,200 bytes, 610 lines download raw bytes

1(function (window) {
2
3	if(!!window.JCCatalogSectionDisc) {
4		return;
5	}
6
7	window.JCCatalogSectionDisc = function (arParams) {
8		this.productType = 0;
9		this.visual = {
10			ID: '',
11			PICT_ID: '',
12			PRICE_ID: '',
13			BUY_ID: '',
14		};
15		this.product = {
16			name: '',
17			id: 0,
18		};
19
20		this.offersView = null;
21		this.offers = [];
22		this.offerNum = 0;
23		this.treeProps = [];
24		this.obTreeRows = [];
25		this.selectedValues = {};
26		this.selectProps = [];
27		this.obSelectRows = [];
28
29		this.obProduct = null;
30		this.obPict = null;
31		this.obPrice = null;
32		this.obBuy = null;
33		this.obTree = null;
34		this.obSelect = null;
35			
36		this.errorCode = 0;
37
38		if('object' === typeof arParams) {
39			this.productType = parseInt(arParams.PRODUCT_TYPE, 10);
40			this.visual = arParams.VISUAL;
41
42			switch (this.productType) {
43				case 1://product
44				case 2://set
45					if(!!arParams.PRODUCT && 'object' === typeof(arParams.PRODUCT)) {
46						this.product.name = arParams.PRODUCT.NAME;
47						this.product.id = arParams.PRODUCT.ID;
48						if(!!arParams.SELECT_PROPS) {
49							this.selectProps = arParams.SELECT_PROPS;
50						}
51					} else {
52						this.errorCode = -1;
53					}
54					break;
55				case 3://sku
56					if(!!arParams.OFFERS && BX.type.isArray(arParams.OFFERS)) {
57						if(!!arParams.PRODUCT && 'object' === typeof(arParams.PRODUCT)) {
58							this.product.name = arParams.PRODUCT.NAME;
59							this.product.id = arParams.PRODUCT.ID;
60							if(!!arParams.SELECT_PROPS) {
61								this.selectProps = arParams.SELECT_PROPS;
62							}
63						}
64						if(!!arParams.OFFERS_VIEW) {
65							this.offersView = arParams.OFFERS_VIEW;
66						}
67						this.offers = arParams.OFFERS;
68						this.offerNum = 0;
69						if(!!arParams.OFFER_SELECTED) {
70							this.offerNum = parseInt(arParams.OFFER_SELECTED, 10);
71						}
72						if(isNaN(this.offerNum)) {
73							this.offerNum = 0;
74						}
75						if(!!arParams.TREE_PROPS) {
76							this.treeProps = arParams.TREE_PROPS;
77						}
78					} else {
79						this.errorCode = -1;
80					}
81					break;
82				default:
83					this.errorCode = -1;
84			}
85		}
86		if(0 === this.errorCode) {
87			BX.ready(BX.delegate(this.Init,this));
88		}
89	};
90
91	window.JCCatalogSectionDisc.prototype.Init = function() {
92		var i = 0,
93		strPrefix = '',
94		selPrefix = '',
95		TreeItems = null,
96		SelectItems = null;
97
98		this.obProduct = BX(this.visual.ID);
99		if(!this.obProduct) {
100			this.errorCode = -1;
101		}
102		
103		if(3 === this.productType) {
104			if("LIST" !== this.offersView) {
105				this.obPict = BX(this.visual.PICT_ID);
106				if(!this.obPict) {
107					this.errorCode = -16;
108				}
109
110				this.obPrice = BX(this.visual.PRICE_ID);
111				if(!this.obPrice) {
112					this.errorCode = -16;
113				}
114
115				this.obBuy = BX(this.visual.BUY_ID);
116				if(!this.obBuy) {
117					this.errorCode = -16;
118				}
119
120				if(!!this.visual.TREE_ID) {
121					this.obTree = BX(this.visual.TREE_ID);
122					if(!this.obTree) {
123						this.errorCode = -256;
124					}
125					strPrefix = this.visual.TREE_ITEM_ID;
126					for(i = 0; i < this.treeProps.length; i++) {
127						this.obTreeRows[i] = {
128							LIST: BX(strPrefix+this.treeProps[i].ID+'_list'),
129							CONT: BX(strPrefix+this.treeProps[i].ID+'_cont')
130						};
131						if(!this.obTreeRows[i].LIST || !this.obTreeRows[i].CONT) {
132							this.errorCode = -512;
133							break;
134						}
135					}
136				}
137			}
138		}
139
140		if(!!this.visual.SELECT_PROP_ID) {
141			this.obSelect = BX(this.visual.SELECT_PROP_ID);
142			if(!this.obSelect) {
143				this.errorCode = -256;
144			}
145			selPrefix = this.visual.SELECT_PROP_ITEM_ID;
146			for(i = 0; i < this.selectProps.length; i++) {
147				this.obSelectRows[i] = BX(selPrefix+this.selectProps[i].ID);
148				if(!this.obSelectRows[i]) {
149					this.errorCode = -512;
150					break;
151				}
152			}
153		}
154
155		if(0 === this.errorCode) {
156			switch (this.productType) {
157				case 1://product
158					if(!!this.obSelect) {
159						SelectItems = BX.findChildren(this.obSelect, {tagName: 'li'}, true);
160						if(!!SelectItems && 0 < SelectItems.length) {
161							for(i = 0; i < SelectItems.length; i++) {
162								BX.bind(SelectItems[i], 'click', BX.delegate(this.SelectProp, this));
163							}
164							this.SetSelectCurrent();
165						}
166					}
167					break;
168				case 3://sku
169					if("LIST" !== this.offersView) {
170						TreeItems = BX.findChildren(this.obTree, {tagName: 'li'}, true);
171						if(!!TreeItems && 0 < TreeItems.length) {
172							for(i = 0; i < TreeItems.length; i++) {
173								BX.bind(TreeItems[i], 'click', BX.delegate(this.SelectOfferProp, this));
174							}
175						}
176						this.SetCurrent();
177					}
178
179					if(!!this.obSelect) {
180						SelectItems = BX.findChildren(this.obSelect, {tagName: 'li'}, true);
181						if(!!SelectItems && 0 < SelectItems.length) {
182							for(i = 0; i < SelectItems.length; i++) {
183								BX.bind(SelectItems[i], 'click', BX.delegate(this.SelectProp, this));
184							}
185							this.SetSelectCurrent();
186						}					
187					}
188					break;
189			}
190		}
191	};
192
193	window.JCCatalogSectionDisc.prototype.SelectProp = function() {
194		var i = 0,
195		RowItems = null,
196		ActiveItems = null,
197		selPropValueArr = [],
198		SelectName = null,
199		SelectValue = null,		
200		selAskOrderValueArr = [],
201		selPropValue = null,		
202		selAskOrderValue = null,
203		MinselDelayOnclick = null,
204		MinselDelayOnclickArr = [],
205		MinselDelayOnclickNew = null,
206		selDelayOnclick = null,
207		selDelayOnclickArr = [],
208		selDelayOnclickNew = null,
209		target = BX.proxy_context;
210
211		if(!!target && target.hasAttribute('data-select-onevalue')) {
212			RowItems = BX.findChildren(target.parentNode, {tagName: 'li'}, false);
213			if(!!RowItems && 0 < RowItems.length) {
214				for(i = 0; i < RowItems.length; i++) {
215					BX.removeClass(RowItems[i], 'active');
216				}
217			}
218			BX.addClass(target, 'active');
219		}
220
221		ActiveItems = BX.findChildren(this.obSelect, {tagName: 'li', className: 'active'}, true);
222		if(!!ActiveItems && 0 < ActiveItems.length) {
223			for(i = 0; i < ActiveItems.length; i++) {
224				selPropValueArr[i] = ActiveItems[i].getAttribute('data-select-onevalue');
225				/*ASK_ORDER*/
226				SelectName = BX.findChildren(ActiveItems[i].parentNode.parentNode.parentNode, {className: 'h3'}, true);
227				SelectValue = BX.findChildren(ActiveItems[i], {tagName: 'span'}, true);
228				if((!!SelectName && 0 < SelectName.length) && (!!SelectValue && 0 < SelectValue.length)) {					
229					selAskOrderValueArr[i] = SelectName[0].innerHTML+': '+SelectValue[0].innerHTML;
230				}
231			}
232		}
233
234		selPropValue = selPropValueArr.join('||');		
235		selAskOrderValue = selAskOrderValueArr.join('; ');
236		
237		if(!!this.offers && 0 < this.offers.length) {
238			for(i = 0; i < this.offers.length; i++) {
239				/*CART*/
240				if(!!BX('select_props_disc_'+this.offers[i].ID))
241					BX('select_props_disc_'+this.offers[i].ID).value = selPropValue;
242				/*MIN_DELAY*/
243				if(!!BX('catalog-item-delay-disc-min-'+this.offers[i].ID)) {
244					MinselDelayOnclick = BX('catalog-item-delay-disc-min-'+this.offers[i].ID).getAttribute('onclick');
245					MinselDelayOnclickArr = MinselDelayOnclick.split("',");
246					MinselDelayOnclickArr[3] = " '"+selPropValue;
247					MinselDelayOnclickNew = MinselDelayOnclickArr.join("',");
248					BX('catalog-item-delay-disc-min-'+this.offers[i].ID).setAttribute('onclick', MinselDelayOnclickNew);					
249				}
250				/*DELAY*/
251				if(!!BX('catalog-item-delay-disc-'+this.offers[i].ID)) {
252					selDelayOnclick = BX('catalog-item-delay-disc-'+this.offers[i].ID).getAttribute('onclick');
253					selDelayOnclickArr = selDelayOnclick.split("',");
254					selDelayOnclickArr[3] = " '"+selPropValue;
255					selDelayOnclickNew = selDelayOnclickArr.join("',");
256					BX('catalog-item-delay-disc-'+this.offers[i].ID).setAttribute('onclick', selDelayOnclickNew);
257				}
258				/*BOC*/
259				if(!!BX('boc_element_select_props_disc_'+this.offers[i].ID))
260					BX('boc_element_select_props_disc_'+this.offers[i].ID).value = selPropValue;
261				/*ASK_PRICE*/
262				if(!!BX('ask_price_message_disc_'+this.offers[i].ID))
263					BX('ask_price_message_disc_'+this.offers[i].ID).innerHTML = this.AskPriceMessageNew[i]+'; '+selAskOrderValue+')';
264				/*ORDER*/
265				if(!!BX('order_message_disc_'+this.offers[i].ID))
266					BX('order_message_disc_'+this.offers[i].ID).innerHTML = this.OrderMessageNew[i]+'; '+selAskOrderValue+')';
267			}
268		} else {
269			/*CART*/
270			if(!!BX('select_props_disc_'+this.product.id))
271				BX('select_props_disc_'+this.product.id).value = selPropValue;
272			/*DELAY*/
273			if(!!BX('catalog-item-delay-disc-'+this.product.id)) {
274				selDelayOnclick = BX('catalog-item-delay-disc-'+this.product.id).getAttribute('onclick');
275				selDelayOnclickArr = selDelayOnclick.split("',");
276				selDelayOnclickArr[3] = " '"+selPropValue;
277				selDelayOnclickNew = selDelayOnclickArr.join("',");
278				BX('catalog-item-delay-disc-'+this.product.id).setAttribute('onclick', selDelayOnclickNew);
279			}
280		}
281	}
282
283	window.JCCatalogSectionDisc.prototype.SelectOfferProp = function() {
284		var i = 0,
285		value = '',
286		strTreeValue = '',
287		arTreeItem = [],
288		RowItems = null,
289		target = BX.proxy_context;
290
291		if(!!target && target.hasAttribute('data-treevalue')) {
292			strTreeValue = target.getAttribute('data-treevalue');
293			arTreeItem = strTreeValue.split('_');
294			if(this.SearchOfferPropIndex(arTreeItem[0], arTreeItem[1])) {
295				RowItems = BX.findChildren(target.parentNode, {tagName: 'li'}, false);
296				if(!!RowItems && 0 < RowItems.length) {
297					for(i = 0; i < RowItems.length; i++) {
298						value = RowItems[i].getAttribute('data-onevalue');
299						if(value === arTreeItem[1]) {
300							BX.addClass(RowItems[i], 'active');
301						} else {
302							BX.removeClass(RowItems[i], 'active');
303						}
304					}
305				}
306			}
307		}
308	};
309
310	window.JCCatalogSectionDisc.prototype.SearchOfferPropIndex = function(strPropID, strPropValue) {
311		var strName = '',
312		arShowValues = false,
313		i, j,
314		arCanBuyValues = [],
315		index = -1,
316		arFilter = {};
317		
318		for(i = 0; i < this.treeProps.length; i++) {
319			if(this.treeProps[i].ID === strPropID) {
320				index = i;
321				break;
322			}
323		}
324
325		if(-1 < index) {
326			for(i = 0; i < index; i++) {
327				strName = 'PROP_'+this.treeProps[i].ID;
328				arFilter[strName] = this.selectedValues[strName];
329			}
330			strName = 'PROP_'+this.treeProps[index].ID;
331			arShowValues = this.GetRowValues(arFilter, strName);
332			if(!arShowValues) {
333				return false;
334			}
335			if(!BX.util.in_array(strPropValue, arShowValues)) {
336				return false;
337			}
338			arFilter[strName] = strPropValue;
339			for(i = index+1; i < this.treeProps.length; i++) {
340				strName = 'PROP_'+this.treeProps[i].ID;
341				arShowValues = this.GetRowValues(arFilter, strName);
342				if(!arShowValues) {
343					return false;
344				}
345				arCanBuyValues = arShowValues;
346				if(!!this.selectedValues[strName] && BX.util.in_array(this.selectedValues[strName], arCanBuyValues)) {
347					arFilter[strName] = this.selectedValues[strName];
348				} else {
349					arFilter[strName] = arCanBuyValues[0];
350				}
351				this.UpdateRow(i, arFilter[strName], arShowValues, arCanBuyValues);
352			}
353			this.selectedValues = arFilter;
354			this.ChangeInfo();
355		}
356		return true;
357	};
358
359	window.JCCatalogSectionDisc.prototype.UpdateRow = function(intNumber, activeID, showID, canBuyID) {
360		var i = 0,
361		showI = 0,
362		value = '',
363		obData = {},
364		isCurrent = false,
365		selectIndex = 0,
366		RowItems = null;
367
368		if(-1 < intNumber && intNumber < this.obTreeRows.length) {
369			RowItems = BX.findChildren(this.obTreeRows[intNumber].LIST, {tagName: 'li'}, false);
370			if(!!RowItems && 0 < RowItems.length) {
371				obData = {
372					props: { className: '' },
373					style: {}
374				};
375				for(i = 0; i < RowItems.length; i++) {
376					value = RowItems[i].getAttribute('data-onevalue');
377					isCurrent = (value === activeID);
378					if(BX.util.in_array(value, canBuyID)) {
379						obData.props.className = (isCurrent ? 'active' : '');
380					} else {
381						obData.props.className = (isCurrent ? 'active hidden' : 'hidden');
382					}
383					obData.style.display = 'none';
384					if(BX.util.in_array(value, showID)) {
385						obData.style.display = '';
386						if(isCurrent) {
387							selectIndex = showI;
388						}
389						showI++;
390					}
391					BX.adjust(RowItems[i], obData);
392				}
393
394				obData = {
395					style: {}
396				};
397				
398				BX.adjust(this.obTreeRows[intNumber].LIST, obData);
399			}
400		}
401	};
402
403	window.JCCatalogSectionDisc.prototype.GetRowValues = function(arFilter, index) {
404		var i = 0,
405		j,
406		arValues = [],
407		boolSearch = false,
408		boolOneSearch = true;
409
410		if(0 === arFilter.length) {
411			for(i = 0; i < this.offers.length; i++) {
412				if(!BX.util.in_array(this.offers[i].TREE[index], arValues)) {
413					arValues[arValues.length] = this.offers[i].TREE[index];
414				}
415			}
416			boolSearch = true;
417		} else {
418			for(i = 0; i < this.offers.length; i++) {
419				boolOneSearch = true;
420				for(j in arFilter) {
421					if(arFilter[j] !== this.offers[i].TREE[j]) {
422						boolOneSearch = false;
423						break;
424					}
425				}
426				if(boolOneSearch) {
427					if(!BX.util.in_array(this.offers[i].TREE[index], arValues)) {
428						arValues[arValues.length] = this.offers[i].TREE[index];
429					}
430					boolSearch = true;
431				}
432			}
433		}
434		return (boolSearch ? arValues : false);
435	};
436
437	window.JCCatalogSectionDisc.prototype.SetSelectCurrent = function() {
438		var i = 0,
439		SelectItems = null,
440		selPropValueArr = [],
441		SelectName = null,
442		SelectValue = null,		
443		selAskOrderValueArr = [],
444		selPropValue = null,		
445		selAskOrderValue = null,
446		MinselDelayOnclick = null,
447		MinselDelayOnclickArr = [],
448		MinselDelayOnclickNew = null,
449		selDelayOnclick = null,
450		selDelayOnclickArr = [],
451		selDelayOnclickNew = null;
452		this.AskPriceMessageNew = [];
453		this.OrderMessageNew = [];
454		
455		for(i = 0; i < this.obSelectRows.length; i++) {
456			SelectItems = BX.findChildren(this.obSelectRows[i], {tagName: 'li'}, true);
457			if(!!SelectItems && 0 < SelectItems.length) {
458				BX.addClass(SelectItems[0], 'active');
459				selPropValueArr[i] = SelectItems[0].getAttribute('data-select-onevalue');
460			}
461			/*ASK_ORDER*/
462			SelectName = BX.findChildren(this.obSelectRows[i], {className: 'h3'}, true);
463			SelectValue = BX.findChildren(SelectItems[0], {tagName: 'span'}, true);
464			if((!!SelectName && 0 < SelectName.length) && (!!SelectValue && 0 < SelectValue.length)) {				
465				selAskOrderValueArr[i] = SelectName[0].innerHTML+': '+SelectValue[0].innerHTML;
466			}
467		}
468
469		selPropValue = selPropValueArr.join('||');		
470		selAskOrderValue = selAskOrderValueArr.join('; ');
471		
472		if(!!this.offers && 0 < this.offers.length) {
473			for(i = 0; i < this.offers.length; i++) {
474				/*CART*/
475				if(!!BX('select_props_disc_'+this.offers[i].ID))
476					BX('select_props_disc_'+this.offers[i].ID).value = selPropValue;
477				/*MIN_DELAY*/
478				if(!!BX('catalog-item-delay-disc-min-'+this.offers[i].ID)) {
479					MinselDelayOnclick = BX('catalog-item-delay-disc-min-'+this.offers[i].ID).getAttribute('onclick');
480					MinselDelayOnclickArr = MinselDelayOnclick.split("',");
481					MinselDelayOnclickArr[3] = " '"+selPropValue;
482					MinselDelayOnclickNew = MinselDelayOnclickArr.join("',");
483					BX('catalog-item-delay-disc-min-'+this.offers[i].ID).setAttribute('onclick', MinselDelayOnclickNew);					
484				}
485				/*DELAY*/
486				if(!!BX('catalog-item-delay-disc-'+this.offers[i].ID)) {
487					selDelayOnclick = BX('catalog-item-delay-disc-'+this.offers[i].ID).getAttribute('onclick');
488					selDelayOnclickArr = selDelayOnclick.split("',");
489					selDelayOnclickArr[3] = " '"+selPropValue;
490					selDelayOnclickNew = selDelayOnclickArr.join("',");
491					BX('catalog-item-delay-disc-'+this.offers[i].ID).setAttribute('onclick', selDelayOnclickNew);
492				}
493				/*BOC*/
494				if(!!BX('boc_element_select_props_disc_'+this.offers[i].ID))
495					BX('boc_element_select_props_disc_'+this.offers[i].ID).value = selPropValue;
496				/*ASK_PRICE*/
497				if(!!BX('ask_price_message_disc_'+this.offers[i].ID)) {
498					this.AskPriceMessage = BX('ask_price_message_disc_'+this.offers[i].ID).innerHTML;
499					this.AskPriceMessageArr = this.AskPriceMessage.split(')');
500					this.AskPriceMessageNew[i] = this.AskPriceMessageArr[0];
501					BX('ask_price_message_disc_'+this.offers[i].ID).innerHTML = this.AskPriceMessageNew[i]+'; '+selAskOrderValue+')';
502				}
503				/*ORDER*/
504				if(!!BX('order_message_disc_'+this.offers[i].ID)) {
505					this.OrderMessage = BX('order_message_disc_'+this.offers[i].ID).innerHTML;
506					this.OrderMessageArr = this.OrderMessage.split(')');
507					this.OrderMessageNew[i] = this.OrderMessageArr[0];
508					BX('order_message_disc_'+this.offers[i].ID).innerHTML = this.OrderMessageNew[i]+'; '+selAskOrderValue+')';
509				}
510			}
511		} else {
512			/*CART*/
513			if(!!BX('select_props_disc_'+this.product.id))
514				BX('select_props_disc_'+this.product.id).value = selPropValue;
515			/*DELAY*/
516			if(!!BX('catalog-item-delay-disc-'+this.product.id)) {
517				selDelayOnclick = BX('catalog-item-delay-disc-'+this.product.id).getAttribute('onclick');
518				selDelayOnclickArr = selDelayOnclick.split("',");
519				selDelayOnclickArr[3] = " '"+selPropValue;
520				selDelayOnclickNew = selDelayOnclickArr.join("',");
521				BX('catalog-item-delay-disc-'+this.product.id).setAttribute('onclick', selDelayOnclickNew);
522			}
523		}
524	}
525
526	window.JCCatalogSectionDisc.prototype.SetCurrent = function() {
527		var i = 0,
528		j = 0,
529		arCanBuyValues = [],
530		strName = '',
531		arShowValues = false,
532		arFilter = {},
533		current = this.offers[this.offerNum].TREE;
534
535		for(i = 0; i < this.treeProps.length; i++) {
536			strName = 'PROP_'+this.treeProps[i].ID;
537			arShowValues = this.GetRowValues(arFilter, strName);
538			if(!arShowValues) {
539				break;
540			}
541			if(BX.util.in_array(current[strName], arShowValues)) {
542				arFilter[strName] = current[strName];
543			} else {
544				arFilter[strName] = arShowValues[0];
545				this.offerNum = 0;
546			}
547			arCanBuyValues = arShowValues;
548			this.UpdateRow(i, arFilter[strName], arShowValues, arCanBuyValues);
549		}
550		this.selectedValues = arFilter;
551		this.ChangeInfo();
552	};
553
554	window.JCCatalogSectionDisc.prototype.ChangeInfo = function() {
555		var i = 0,
556		j,
557		index = -1,
558		boolOneSearch = true;
559
560		for(i = 0; i < this.offers.length; i++) {
561			boolOneSearch = true;
562			for(j in this.selectedValues) {
563				if(this.selectedValues[j] !== this.offers[i].TREE[j]) {
564					boolOneSearch = false;
565					break;
566				}
567			}
568			if(boolOneSearch) {
569				index = i;
570				break;
571			}
572		}
573		if(-1 < index) {
574			this.setPict(this.product.id, this.offers[index].ID);
575			this.setPrice(this.product.id, this.offers[index].ID);
576			this.setBuy(this.product.id, this.offers[index].ID);
577			this.offerNum = index;
578		}
579	};
580
581	window.JCCatalogSectionDisc.prototype.setPict = function(item_id, offer_id) {
582		PictItems = BX.findChildren(this.obPict, {className: 'img'}, true);
583		if(!!PictItems && 0 < PictItems.length) {
584			for(i = 0; i < PictItems.length; i++) {
585				BX.addClass(PictItems[i], 'hidden');
586			}
587		}
588		BX.removeClass(BX('img_disc_'+item_id+'_'+offer_id), 'hidden');
589	};
590
591	window.JCCatalogSectionDisc.prototype.setPrice = function(item_id, offer_id) {
592		PriceItems = BX.findChildren(this.obPrice, {className: 'price'}, true);
593		if(!!PriceItems && 0 < PriceItems.length) {
594			for(i = 0; i < PriceItems.length; i++) {
595				BX.addClass(PriceItems[i], 'hidden');
596			}
597		}
598		BX.removeClass(BX('price_disc_'+item_id+'_'+offer_id), 'hidden');
599	};
600
601	window.JCCatalogSectionDisc.prototype.setBuy = function(item_id, offer_id) {
602		BuyItems = BX.findChildren(this.obBuy, {className: 'buy_more'}, true);
603		if(!!BuyItems && 0 < BuyItems.length) {
604			for(i = 0; i < BuyItems.length; i++) {
605				BX.addClass(BuyItems[i], 'hidden');
606			}
607		}
608		BX.removeClass(BX('buy_more_disc_'+item_id+'_'+offer_id), 'hidden');
609	};
610})(window);

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.