1/*****************************************************/ 2function isBreketInBasket( $elem ) 3{ 4 var $breket = $elem.data('breket'); 5 var $jaw = $elem.data('jaw'); 6 var $teeth = $elem.data('teeth'); 7 var $tork = $elem.find(':selected').data('tork'); 8 var $torque = $elem.val(); 9 var $slot = $('#slot').val(); 10 11 $('span[id^="'+'qty_' + $slot + '_' + $jaw + '_' + $teeth+'"]').each(function (i, el) { 12 $(this).hide(); 13 }); 14 15 var $json = JSON.parse(window.localStorage.getItem('basketLines')); 16 $( $json).each(function (i, val) 17 { 18 var re = new RegExp('^([0-9\.\,]+)\/(ts_.+)\/(.+)$', 'ig'); 19 var $valMatch = re.exec( val.raw_comment ); 20 21 if ($valMatch) 22 { 23 re = new RegExp('ts_([t,b])_([0-9]+)', 'i'); 24 var $match = re.exec($valMatch[2]); 25 26 if ($slot==$valMatch[1] && $breket==val.id && $jaw==$match[1] && $teeth==$match[2] && $torque==$valMatch[3]) { 27 var $name = 'qty_' + $slot + '_' + $jaw + '_' + $teeth + '_' + $tork; 28 var $elm = $("#"+$name); 29 $elm.text( val.count ).show(); 30 } 31 } 32 }); 33 34 return false; 35} 36/*****************************************************/ 37function isLockInBasket( $elem ) 38{ 39 var $lock = $elem.data('lock'); 40 var $jaw = $elem.data('jaw'); 41 var $teeth = $elem.data('teeth'); 42 var $slot = $('#slot').val(); 43 44 $('span[id^="'+'qty_' + $slot + '_' + $jaw + '_' + $teeth+'"]').each(function (i, el) { 45 $(this).hide(); 46 }); 47 48 if ($elem.is(':checked')) 49 { 50 var $json = JSON.parse(window.localStorage.getItem('basketLines')) 51 $($json).each(function (i, val) 52 { 53 var re = new RegExp('^([0-9\.\,]+)\/(.+)\/(ts_.+)$', 'ig'); 54 var $valMatch = re.exec(val.raw_comment); 55 56 if ($valMatch) { 57 re = new RegExp('ts_([t,b])_([0-9]+)', 'i'); 58 var $match = re.exec($valMatch[3]); 59 60 if ($slot == $valMatch[1] && $lock == val.id && $jaw == $match[1] && $teeth == $match[2]) { 61 var $name = 'qty_' + $slot + '_' + $jaw + '_' + $teeth; 62 var $elm = $("#" + $name); 63 $elm.text(val.count).show(); 64 } 65 } 66 67 }); 68 } 69 return false; 70} 71/***************************************************** 72function goodsInBasket( ) 73{ 74 $('.btn-cart').each(function (i, el) { 75 goodInBasket( $(this) ); 76 }); 77} 78/***************************************************** 79function goodInBasket( $elem ) 80{ 81 var $good = $elem.data('good'); 82 var $param = $elem.data('param'); 83 //var $count = parseInt( $elem.data('count') ); 84 var $comm = decodeURI($elem.data('comm')); 85 86 $('span[id^="'+'qty_' + $good + '_' + '"]').each(function (i, el) { $(this).text('0').hide(); }); 87 88 var $json = localStorage.getObj('basket') || $basket; 89 $( $json).each(function (i, val) 90 { 91 if ( $good==val.id && $comm==decodeURI(val.param)) showCountHint( $good, $param, val.count); 92 }); 93 94 return false; 95} 96/*****************************************************/ 97function showCountHint( $good, $param, $count ) 98{ 99 var $name = 'qty_' + $good + '_' + $param ; 100 var $elm = $('#'+$name); 101 102 $('#basket_btn_' + $good + '_' + $param).attr('data-count', $count).data('count', $count ); 103 104 $elm.text( $count ).show(); 105} 106/***************************************************** 107function addToBasket( $elm ) { 108 109 var price = parseFloat( $elm.data('cost') ); 110 var good_id = $elm.data('good'); 111 var oldCount = parseInt( $elm.data('count') ); 112 113 var $param = $elm.data('param'); 114 var $comm = decodeURIComponent($elm.data('comm')); 115 116 if (good_id && price) { 117 118 $.ajax({
119 type: "POST", 120 url: "/ajax/basket/add_good", 121 data: {'good_id': good_id, 'price': price, 'comment': $comm, '_token': _token()}, 122 dataType: 'json', 123 success: function(data) { 124 if (data.success) { 125 setCart(); 126 showCountHint( good_id, $param, oldCount+1); 127 basketDialog('Ð¢Ð¾Ð²Ð°Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½ в коÑзинÑ.<br/>ÐолиÑеÑÑво заказÑваемой пÑодÑкÑии ÐÑ Ð¼Ð¾Ð¶ÐµÑе поменÑÑÑ Ð² коÑзине'); 128 dataLayer.push({ 'ecommerce': JSON.parse( $('#ecommerce-input-'+good_id).val() )}); 129 }else{ 130 showError( data.message); 131 } 132 return false; 133 } 134 }); 135 } 136 return false; 137} 138/***************************************************** 139function addToCart(tbl, good_id, comment, token) { 140 141 var pElem = $('form[name="+good_id+"] input[name=pr]'); 142 var price = pElem.val().replace(/\,/, '.'); 143 price = parseFloat(price); 144 145 if (tbl && good_id && price) { 146 147 $.ajax({
148 type: "POST", 149 url: "/ajax/basket/add_good", 150 headers: {'X-CSRF-TOKEN': _token()}, 151 data: {'tbl': tbl, 'good_id': good_id, 'price': price, 'comment': comment, '_token': _token()}, 152 dataType: 'json', 153 success: function(data) { 154 if (data.success) { 155 setCart(); 156 goodsInBasket(); 157 basketDialog('Ð¢Ð¾Ð²Ð°Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½ в коÑзинÑ.<br/>ÐолиÑеÑÑво заказÑваемой пÑодÑкÑии ÐÑ Ð¼Ð¾Ð¶ÐµÑе поменÑÑÑ Ð² коÑзине'); 158 }else{ 159 showError( data.message); 160 } 161 } 162 }); 163 } 164} 165 166/***** Breket Form Routines ********/ 167/***************************************************** 168function successBreket() 169{ 170 $('#brekets-jaw select option:selected').each(function () { 171 $(this).prop('selected', false).trigger('change'); 172 }); 173 waiting_close(); 174} 175/***************************************************** 176function validBreket() { 177 var flag = false; 178 $("select[name^=ts]").each(function() { 179 if ( $(this).val() ) { flag = true; } 180 }); 181 if (!flag) { showError('ÐиÑего не вÑбÑано'); return false; } 182 return true; 183} 184/*****************************************************/ 185function validCircle() { 186 var flag = false; 187 $("input[type='checkbox'][name^=ts]").each(function() { 188 if ( $(this).is(':checked') ) { flag = true; } 189 }); 190 if (!flag) { showError('ÐиÑего не вÑбÑано'); return false; } 191 return true; 192} 193/*****************************************************/ 194function successCircle() { 195 $('.product-jaw').find('input').each(function () { 196 $(this).prop('checked', false).trigger('change'); 197 }); 198 waiting_close(); 199} 200/*****************************************************/ 201function _setSelectorData($btn, $opt, $id, $val) 202{ 203 $btn.removeAttr('id').prop('id', $id); 204 $btn.attr('data-param', $opt.data('section')).data('param', $opt.data('section')); 205 $btn.attr('data-comm', $val).data('comm', $val); 206 $btn.attr('data-count', 0).data('count', 0); 207 goodInBasket($('#' + $id)); 208} 209 210 211/*****************************************************/ 212$().ready(function() { 213/* 214 $("#brakets-jaw").ajaxForm ({ 215 target: null, 216 beforeSubmit: validBreket, 217 success: successBreket, 218 url: "/ajax/basket/breket_order", 219 type: 'post' , 220 dataType: 'json' 221 }); 222 223 $("#circles-jaw").ajaxForm ({ 224 target: null, 225 beforeSubmit: validBreket, 226 success: successCircle, 227 url: "/ajax/basket/circle_order", 228 type: 'post' , 229 dataType: 'json' 230 }); 231*/ 232 $('.section-selector').on('change', function() 233 { 234 var $opt = $("option:selected", this); 235 var $btn = $('a.btn-cart'); 236 var $id = 'basket_btn_' + $opt.data('good') + '_' + $opt.data('section'); 237 _setSelectorData($btn, $opt, $id, $(this).val()); 238 return false; 239 }); 240 241 $('.section-selectors').each( function() 242 { 243 var $elm = $(this); 244 var $tr = $elm.closest('tr'); 245 246 $elm.bind('change', function() 247 { 248 var $opt = $elm.children("option:selected"); 249 var $btn = $tr.find('a.btn-cart'); 250 var $id = 'basket_btn_' + $opt.data('good') + '_' + $opt.data('section'); 251 _setSelectorData($btn, $opt, $id, $(this).val()); 252 return false; 253 }); 254 }); 255 256 257 $(document).on('click', "#breket-nabor-btn", function() { 258 //showWaiter(); 259 $('#brekets-jaw select > option:nth-child(2)').each(function () { 260 $(this).prop('selected', true).trigger('change'); 261 }); 262 //waiting_close(); 263 return false 264 }); 265 266 //if (/(catalog\/item)/i.test(window.location.href)==true) goodsInBasket(); 267 //if (/(catalog\/arcs)\/(.*?)/i.test(window.location.href)==true) goodsInBasket(); 268 //if (/(catalog\/arcs\/(.*?)\/([0-9]+))/i.test(window.location.href)==true) goodsInBasket(); 269 270 $(document).on('click', '.order-not-available', function(){ 271 orderNotAvailable( $(this).data('good') ); 272 return false; 273 });
274 275});
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.