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 +' <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.