PageSourceSearch

https://www.eraled.sk/catalog/view/javascript/prodoptimg.js

js eraled.sk collected 2026-10-06 13:15:45 UTC 6,395 bytes, 151 lines download raw bytes

1var prodoptimg_route = '';
2var prodoptimg_pageurl = window.location.href;
3var prodoptimg_req_pending = false;
4var prodoptimgJson = '';
5var prodoptimg = {
6	'swapimg': function(smallimg, popimage) {
7		$('.targetprodoptimg').find('img').fadeOut('fast',function(){
8			$(this).attr('src', smallimg).fadeIn('fast');
9			$(this).attr('data-zoom-image', popimage).fadeIn('fast');
10			$('.zoomWindowContainer div').stop().css("background-image","url("+ JSON.stringify(String(popimage)) +")");
11		}); 
12		$('.targetprodoptimg').attr('href', popimage);
13	},
14	'resetimg': function(product_option_id) {
15		$('#input-option'+product_option_id).find('.act').removeClass('act');
16		prodoptimg.swapimg($('.targetprodoptimg_src').val(), $('.targetprodoptimg_src').attr('popimg'));
17	},
18	'getprodhtml': function(json, rs) {
19		var html = '';
20		$.each(rs, function( product_option_id, optval ) {
21			var valhtml = '';
22			var req = '';
23			var option_name = '';
24			var sort_order = 1;
25			var _chck=1;
26			$.each(optval, function( product_option_value_id, v ) { // console.log(v);
27				//console.log( "Key: " + product_option_value_id + ", Value: " + v );
28				valhtml += '<div class="radio prodoptimgradio">';
29				var sq = (json['style'] == 2) ? 'prodoptimg_sq' : '';
30				if(v['prodoptimg_color']) { 
31 					valhtml += '<label data-toggle="tooltip" title="'+v['option_value_name']+'" class="'+ (_chck==1 ? 'act' : '') +' prodoptimg '+sq+'" style="background:'+v['prodoptimg_color']+';">';
32				} else {
33 					valhtml += '<label data-toggle="tooltip" title="'+v['option_value_name']+'" class="'+ (_chck==1 ? 'act' : '') +' prodoptimg prodoptimg_bg '+sq+'" style="background-image:url(\'/image/'+v['option_image']+'\');">';
34				}
35				valhtml += '<input type="radio" '+ (_chck==1 ? 'checked' : '') +' data-price_prefix="'+(typeof v['price_prefix']!='undefined' ? v['price_prefix'] : '')+'" data-price="'+(typeof v['price']!='undefined' ? v['price'] : '')+'" class="prodoptimg_hide" name="option['+product_option_id+']" value="'+product_option_value_id+'" />';
36				if (v['prodoptimg_prod']) {
37					valhtml += '<input type="hidden" class="swapimg" value="'+v['prodoptimg_prod']+'" popimg="'+v['prodoptimg_prodpop']+'" />';
38				}
39				/*valhtml += '<input type="hidden" value="'+product_option_id+'" />';*/
40				valhtml += '</label>';
41				valhtml += '</div>';
42				
43				req = (v['required']) ? ' required' : '';
44				option_name = v['option_name'];
45				sort_order = v['sort_order'];
46				_chck = 0;
47			});
48			
49			html += '<div class="col-md-6 form-group' + req +'">';
50			if(json['resetbtntext']) { 
51				html += '<label class="control-label"> '+ option_name +' &nbsp; <span onclick="prodoptimg.resetimg('+product_option_id+');" class="label label-danger btnclear_prodoptimg">'+json['resetbtntext']+'</span> </label>';
52			}
53			html += '<div id="input-option'+product_option_id+'">';
54			
55			html += valhtml; 
56			
57			html += '<div style="clear:both"></div>';
58			html += '</div>';
59			html += '</div>';
60		});	
61		return html;
62	},
63	'prodpage': function(json) {
64		if(prodoptimg_route.indexOf('product/product') != -1) {
65			var product_id= $("input[name='product_id']").val();
66			if (typeof product_id !== 'undefined') {
67				var optiondata = json['optiondata'][product_id];
68				if(optiondata) {
69					htmlresp = prodoptimg.getprodhtml(json, optiondata);
70					
71					$('#product').find('div.form-group:eq(0)').before(htmlresp);
72					$('#product').before('<input type="hidden" class="targetprodoptimg_src"/>');
73			
74					$('ul.thumbnails li:first-child a').addClass('targetprodoptimg');
75					$('.prodoptimg').each(function() {
76						$(this).click(function() {
77							$(this).parent().parent().find('.act').removeClass('act');
78							$(this).addClass('act'); 
79							prodoptimg.swapimg($(this).find('.swapimg').val(), $(this).find('.swapimg').attr('popimg'));
80						});
81					});
82					$('.targetprodoptimg_src').val($('.targetprodoptimg').find('img').attr('src')).attr('popimg', $('.targetprodoptimg').attr('href'));
83					$("[data-price]:checked").trigger('change');
84				}
85			}
86		}
87	},
88	'getgridhtml': function(json, rs) {
89		var html = '<div class="gridoptimg">';
90		$.each(rs, function( product_option_id, optval ) {
91			var valhtml = '';
92 			$.each(optval, function( product_option_value_id, v ) {
93				//console.log( "Key: " + product_option_value_id + ", Value: " + v );
94				valhtml += '<div class="radio prodoptimgradio">';
95				var sq = (json['style'] == 2) ? 'prodoptimg_sq' : '';
96				if(v['prodoptimg_color']) { 
97 					valhtml += '<label data-toggle="tooltip" title="'+v['option_value_name']+'" class="prodoptimg '+sq+'" style="background:'+v['prodoptimg_color']+';">';
98				} else {
99 					valhtml += '<label data-toggle="tooltip" title="'+v['option_value_name']+'" class="prodoptimg prodoptimg_bg '+sq+'" style="background-image:url(\''+v['option_image']+'\');">';
100				}
101				if (v['prodoptimg_grid']) {
102					valhtml += '<input type="hidden" class="swapimg" value="'+v['prodoptimg_grid']+'" />';
103				}
104				valhtml += '</label>';
105				valhtml += '</div>';
106				
107				req = (v['required']) ? ' required' : '';
108				option_name = v['option_name'];
109				sort_order = v['sort_order'];
110			});
111  			html += valhtml; 
112  		});	
113		html += '<div style="clear:both"></div>';
114		return html;
115	},
116	'applyingrid': function(json) {
117		$("[onclick*='cart.add']").each(function() {
118			var htmlresp = '';
119			var product_id = $(this).attr('onclick').match(/[0-9]+/);
120			var optiondata = json['optiondata'][product_id];
121			if(optiondata) {
122				htmlresp = prodoptimg.getgridhtml(json, optiondata);
123				$(this).parent().parent().find('.price').after(htmlresp);
124			}
125		});	
126		$('.prodoptimg').each(function() {
127			$(this).click(function() {
128				$(this).parent().parent().find('.act').removeClass('act');
129				$(this).addClass('act'); 
130				// $(this).closest('.product-thumb').find('img').attr('src', $(this).find('.swapimg').val()).fadeIn();
131				$('a[href=\'' + $(this).find('.swapimg').val() + '\'].sub-image').trigger('click');
132			});
133		});		
134	},
135	'initjson': function() {
136		$.ajax({
137			url: 'index.php?route=extension/prodoptimg/getcache',
138			dataType: 'json',
139			cache: true,
140			success: function(json) {
141				prodoptimgJson = json;
142				prodoptimg_route = json['prodoptimg_route'];
143				prodoptimg.prodpage(json);
144				prodoptimg.applyingrid(json);
145				//console.log(prodoptimgJson);
146			}
147		});
148	}
149}
150prodoptimg.initjson();	
151/*setTimeout(function(){ console.log(prodoptimgJson); }, 500);*/

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.