1 2 3var size_selector_timeout = null; 4 5function show_good_size_selector_popup(in_options) 6{ 7 if(size_selector_timeout) 8 return; 9 10 size_selector_timeout = setTimeout(function() 11 { 12 size_selector_loading = false; 13 size_selector_timeout = null; 14 }, 10000); 15 16 var options = $.extend({idgood: 0, size:0, modal_callback:0, 17 input: 0, size_span: 0, select_callback: 0, extra_params: 0, 18 ajax_url: '/shop/good_ajax.php'}, in_options); 19 20 function show_grouped_colors_loader(modal_id) 21 { 22 var loader = $(modal_id); 23 24 if(loader.length) 25 loader.remove(); 26 27 var src = '<div class="modal fade vp-modal vp-color-select-dialog" id="' + modal_id.replace('#', '') + '" tabindex="-1" role="dialog">' + 28 '<div class="modal-dialog" role="document">' + 29 '<div class="modal-content">' + 30 '<div class="modal-body" style="text-align: center; padding: 20px 0">' + 31 '<img src="/i/catalog-spinner.svg" />' + 32 '</div>' + 33 '</div>' + 34 '</div>' + 35 '</div>'; 36 37 $('body').append(src); 38 39 loader = $(modal_id); 40 41 loader.modal_bring_to_front(); 42 43 $(loader).on('hidden.bs.modal', function() { 44 $(loader).remove(); 45 }); 46 47 return loader; 48 } 49 50 if(!options.size && options.input) 51 options.size = $(options.input).val(); 52 53 var data = {'id': options.idgood, 'sizes': options.size, 'popup': true }; 54 55 if(options.extra_params) 56 data = $.extend(options.extra_params, data); 57 58 if(location.search.indexOf('cache-disabled') > 0) 59 data['cache-disabled'] = true; 60 61 var modal_id = '#good-size-selector-modal'; 62 63 var loader_modal = show_grouped_colors_loader(modal_id); 64 65 function on_size_select_click(event) 66 { 67 var target = $(this); 68 69 var modal = $(target).closest('#good-size-selector-modal'); 70 71 var value = target.attr('value'); 72 var name = target.attr('data-size'); 73 74 if(options.input) 75 $(options.input).val(value); 76 77 if(options.size_span) 78 $(options.size_span).html(name); 79 80 if(typeof(options.select_callback) === 'function') 81 options.select_callback(target, modal, event); 82 83 modal.modal('hide'); 84 } 85 86 $.get(options.ajax_url, data, function(res) 87 { 88 if(size_selector_timeout) 89 { 90 clearTimeout(size_selector_timeout); 91 size_selector_timeout = null; 92 } 93 94 var modal = loader_modal; 95 96 $('.modal-dialog', modal).replaceWith(res); 97 98 $('.popup-size-item', modal).click(on_size_select_click); 99 100 if(typeof(options.modal_callback) === 'function') 101 options.modal_callback(modal); 102 }); 103 104 window.cat_size_popup_modal = loader_modal; 105} 106 107function show_catalog_size_popup() 108{ 109 show_good_size_selector_popup({ajax_url: location, extra_params: {size_popup: true}, select_callback: function(target, modal, event) 110 { 111 var href = target.attr('href'); 112 113 if(href) 114 { 115 var query = $('#search-form input').not('[name="size"]').serialize(); 116 117 if(query) 118 { 119 event.preventDefault(); 120 location = href + (href.indexOf('?') !== -1 ? '&' : '?') + query; 121 } 122 } 123 }}); 124} 125 126function show_catalog_good_size_popup() 127{ 128 var sender = $(this); 129 130 function good_dropdown_set_value(parent, target, selector_type) 131 { 132 var data = $(target).attr('data'); 133 134 if(data) 135 good_dropdown_set_size(parent, JSON.parse(data)); 136 } 137 138 var good = $(sender).closest('.good-layout'); 139 var size = good.find('input[name=size]').val(); 140 var id = good.find('input[name=id]').val(); 141 142 show_good_size_selector_popup({idgood: id, size: size, 143 modal_callback: function(modal) { 144 modal.data('good', good); 145 }, 146 select_callback: function(target, modal) { 147 good_dropdown_set_value(modal.data('good'), target, 'size'); 148 } 149 }); 150} 151 152function show_listorder_size_popup(sender, oi_id) 153{ 154 var size_input = $(sender).find('input'); 155 156 var id = $(sender).attr('data-idgood'); 157 158 show_good_size_selector_popup({idgood: id, size: size_input.val(), 159 modal_callback: function(modal) { 160 161 }, 162 select_callback: function(target, modal) 163 { 164 var data = JSON.parse(target.attr('data')); 165 166 size_input.val(data.idsize); 167 168 $(sender).closest('.lo-good-row') 169 .find('.lo-size-name').html(data.size); 170 171 loUpdateOrderItem(oi_id); 172 } 173 }); 174} 175 176function show_listcart_size_popup(oi_id, id, size) 177{ 178 show_good_size_selector_popup({idgood: id, size: size, 179 select_callback: function(target, modal) 180 { 181 var data = JSON.parse(target.attr('data')); 182 ItemChangeSize(oi_id, data.idsize); 183 } 184 }); 185}
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.