1// Lazy loads elements with default selector as '.lozad' 2$(function(){ 3 lozad().observe(); 4}) 5// Fancybox default 6$.fancybox.defaults.lang = "ru"; 7$.fancybox.defaults.i18n = { 8 ru: { 9 CLOSE: "ÐакÑÑÑÑ", 10 NEXT: "ÐпеÑÑд", 11 PREV: "Ðазад", 12 ERROR: "ÐонÑÐµÐ½Ñ Ð½Ðµ Ð¼Ð¾Ð¶ÐµÑ Ð±ÑÑÑ Ð·Ð°Ð³ÑÑжен. <br/> ÐожалÑйÑÑÑа попÑобÑйÑе еÑÑ Ñаз.", 13 DOWNLOAD: "СкаÑаÑÑ", 14 SHARE: "ÐоделиÑÑÑÑ", 15 ZOOM: "УвелиÑиÑÑ" 16 } 17}; 18$.fancybox.defaults.wheel = false; 19$.fancybox.defaults.smallBtn = true; 20$.fancybox.defaults.animationEffect = 'fade'; 21$.fancybox.defaults.transitionEffect = false; 22$.fancybox.defaults.hideScrollbar = true; 23$.fancybox.defaults.toolbar = false; 24$.fancybox.defaults.infobar = false; 25$.fancybox.defaults.touch = false; 26$.fancybox.defaults.buttons = [ 27 "close" 28] 29// Noty default 30Noty.overrideDefaults({ 31 layout: "bottomCenter", 32 theme: 'sunset', 33 timeout: "3000", 34 killer: true, 35 progressBar: true, 36 animation: { 37 open: 'animated slideInUp', 38 close: 'animated slideOutDownNew' 39 } 40}); 41// jQuery Validation Plugin 42$(function(){ 43 $.validator.setDefaults({ 44 errorPlacement: function(error, element) { 45 error.insertAfter(element); 46 } 47 }); 48}) 49// Owl carousel default 50var OWL_DEFAULT = { 51 autoWidth: true, 52 smartSpeed: 500, 53 loop: false, 54 lazyLoad: true, 55 margin: 12, 56 dots: false, 57 nav: false, 58 navText: ['<span class="owl-icon-wrap"><svg class="owl-icon owl-prev-icon icon"><use xlink:href="/design/sprite.svg#arrow"></use></svg></span>', '<span class="owl-icon-wrap"><svg class="owl-icon owl-next-icon icon"><use xlink:href="/design/sprite.svg#arrow"></use></svg></span>'], 59 mouseDrag: true, 60 touchDrag: true, 61 pullDrag: true, 62} 63// ÐозвÑаÑÐ°ÐµÑ Ð¿ÑавилÑное оконÑание Ð´Ð»Ñ Ñлова 64function genWordEnd(num, e, m, mm) { 65 // ÐÑли забÑли ÑказаÑÑ Ð¾ÐºÐ¾Ð½ÑÐ°Ð½Ð¸Ñ 66 if(typeof (e) == "undefined") { e = ''; } 67 if(typeof (m) == "undefined") { e = 'а'; } 68 if(typeof (mm) == "undefined"){ e = 'oв'; } 69 // ÐÑли пеÑедали пÑÑÑÑÑ ÑÑÑокÑ, вмеÑÑо ÑиÑÑÑ 70 if(0 == num.length) { num = 0; } 71 // ÐÑевÑаÑаем ÑиÑÑÑ Ð² пÑавилÑнÑй INT 72 num = GetSum(num).toString(); 73 // ÐолÑÑаем поÑледний Ñимвол ÑиÑÑÑ 74 ch1 = num.substring(num.length-1); 75 // ÐолÑÑаем поÑледний Ñимвол ÑиÑÑÑ 76 ch2 = num.length == 1 ? 0 : num.substring(num.length-2, num.length-1); 77 // ÐÑли поÑледнÑÑ ÑиÑÑа - 1, веÑнем единÑÑвенное ÑиÑло 78 if(ch2!=1 && ch1==1) {return e;} 79 // ÐÑли поÑледнÑÑ ÑиÑÑа - Ð¾Ñ 2 до 4Ñ , веÑнем множеÑÑвенное Ñило из маÑÑива Ñ Ð¸Ð½Ð´ÐµÐºÑом 2 80 else if(ch2!=1 && ch1>1 && ch1<=4) {return m;} 81 // ÐÑли поÑледнÑÑ ÑиÑÑа - Ð¾Ñ 5 до 0 , веÑнем множеÑÑвенное Ñило из маÑÑива Ñ Ð¸Ð½Ð´ÐµÐºÑом 3 82 else if(ch2==1 || ch1>4 || ch1==0) {return mm;} 83} 84 85// СÑиÑÐ°ÐµÑ ÑÑÐ¼Ð¼Ñ 33 599,65 + 2000 - 1910-41,6 86function GetSum(val,precision) { 87 if(typeof (precision) == "undefined" || precision < 0) { precision = 0; } 88 // Ðозводим в ÑÑÐµÐ¿ÐµÐ½Ñ ÑоÑноÑÑи 10 Ð´Ð»Ñ Ð¾ÐºÑÑÐ³Ð»ÐµÐ½Ð¸Ñ 89 var p = Math.pow(10,precision); 90 try {return Math.round(parseFloat(eval(val.toString().replace(/\s/gi, "").replace(/,/gi, ".")))*p)/p;} catch (e) {return 0;} 91} 92 93// ФоÑмаÑиÑÑÐµÑ ÑÐµÐ½Ñ 94function number_format(n,e,t,r){var i=n,a=e,o=function(n,e){var t=Math.pow(10,e);return(Math.round(n*t)/t).toString()};i=isFinite(+i)?+i:0,a=isFinite(+a)?Math.abs(a):0;var u,d,f="undefined"==typeof r?",":r,h="undefined"==typeof t?".":t,l=a>0?o(i,a):o(Math.round(i),a),s=o(Math.abs(i),a);s>=1e3?(u=s.split(/\D/),d=u[0].length%3||3,u[0]=l.slice(0,d+(0>i))+u[0].slice(d).replace(/(\d{3})/g,f+"$1"),l=u.join(h)):l=l.replace(".",h);var c=l.indexOf(h);return a>=1&&-1!==c&&l.length-c-1<a?l+=new Array(a-(l.length-c-1)).join(0)+"0":a>=1&&-1===c&&(l+=h+new Array(a).join(0)+"0"),l} 95// ÐобавлÑÐµÑ Ð¿Ñобел 1000 -> 1 000 / 10000 -> 10 000 96function addSpaces(nStr){ 97 if(typeof nStr == 'number'){ 98 nStr = String(nStr); 99 } 100 101 return nStr.replace(/(\d)(?=(\d\d\d)+([^\d]|$))/g, '$1 ') 102} 103// ÐÑовеÑка вводимÑÑ Ð·Ð½Ð°Ñений в колиÑеÑÑве ÑоваÑа 104function keyPress(oToCheckField, oKeyEvent) { 105 return oKeyEvent.charCode === 0 || /\d/.test(String.fromCharCode(oKeyEvent.charCode)); 106} 107 108// ФÑнкÑÐ¸Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ ÑиÑÐ¸Ð½Ñ ÑкÑана полÑзоваÑÐµÐ»Ñ 109function getClientWidth() {return document.compatMode=='CSS1Compat' && !window.opera?document.documentElement.clientWidth:document.body.clientWidth;} 110 111// РабоÑа Ñ cookie Ñайлами.
112// ÐолÑÑение пеÑеменной из cookie 113function getCookie(name) { 114 var matches = document.cookie.match(new RegExp( 115 "(?:^|; )" + name.replace(/([\.$?*|{}\(\)\[\]\\\/\+^])/g, '\\$1') + "=([^;]*)" 116 )); 117 return matches ? decodeURIComponent(matches[1]) : undefined; 118} 119 120// УÑÑановка пеÑеменной в cookie 121function setCookie(name, value, options) { 122 options = options || {}; 123 var expires = options.expires; 124 if (typeof expires == "number" && expires) { 125 var d = new Date(); 126 d.setTime(d.getTime() + expires*1000); 127 expires = options.expires = d; 128 } 129 if (expires && expires.toUTCString) { 130 options.expires = expires.toUTCString(); 131 } 132 value = encodeURIComponent(value); 133 var updatedCookie = name + "=" + value; 134 for(var propName in options) { 135 updatedCookie += "; " + propName; 136 var propValue = options[propName]; 137 if (propValue !== true) { 138 updatedCookie += "=" + propValue; 139 } 140 } 141 document.cookie = updatedCookie; 142} 143 144// Удаление пеÑеменной из cookie 145function deleteCookie(name, options ) { 146 options = options || {}; 147 options.expires = -1; 148 setCookie(name, "", options) 149} 150 151// ÐÑпÑавлÑÐµÑ Ð¾ÑÐ¸Ð±ÐºÑ Ð½Ð° ÑеÑвеÑ, Ð´Ð»Ñ Ñого ÑÑÐ¾Ð±Ñ ÑлÑжба ÑÐµÑ Ð¿Ð¾Ð´Ð´ÐµÑжки могла ÑазобÑаÑÑÑÑ Ð² пÑоблеме как можно бÑÑÑÑее. 152function sendError (desc, page, line) { 153 var img=document.createElement('img'); 154 img.src = 'https://storeland.ru/error/js?desc='+encodeURIComponent(desc)+'&page='+encodeURIComponent(window.location)+'&line=0'; 155 img.style.position = 'absolute'; 156 img.style.top = '-9999px'; 157 try { document.getElementsByTagName('head').appendChild(img) } catch (e){} 158 return false; 159} 160 161// ÐÑевÑаÑÐ°ÐµÑ Ð¿Ð¾Ð»Ðµ паÑÐ¾Ð»Ñ Ð² ÑекÑÑовое поле и обÑаÑно 162// @LinkObject - ÑÑÑлка по коÑоÑой кликнÑли 163// @InputObject - обÑÐµÐºÑ Ñ ÐºÐ¾ÑоÑого нÑжно измениÑÑ Ñип Ð¿Ð¾Ð»Ñ 164function ChangePasswordFieldType (LinkObject, InputObject) { 165 var 166 // СÑÑлка по коÑоÑой кликнÑли 167 LObject = $(LinkObject), 168 // ÐбÑÐµÐºÑ Ñ ÐºÐ¾ÑоÑого изменÑем Ñип Ñ password на text 169 IObject = $(InputObject), 170 // СÑаÑÑй ÑекÑÑ ÑÑÑлки 171 txtOld = LObject.html(), 172 // ÐовÑй ÑекÑÑ ÑÑÑлки 173 txtNew = LObject.attr('rel'); 174 // ÐÑли обÑекÑÑ Ð½Ðµ полÑÑенÑ, завеÑÑим ÑабоÑÑ ÑÑнкÑии 175 if( LObject.length==0 || IObject.length==0 ) { 176 return false; 177 } 178 // ÐзменÑем Ñ ÑÑÑлки ÑекÑÑ Ñо ÑÑаÑого на новÑй 179 LObject.html(txtNew); 180 // СÑаÑÑй ÑекÑÑ ÑÑÑлки ÑÐ¾Ñ ÑанÑем в аÑÑибÑÑе rel 181 LObject.attr('rel', txtOld); 182 // ÐзменÑем Ñип input Ð¿Ð¾Ð»Ñ 183 if(IObject[0].type == 'text') { 184 IObject[0].type = 'password'; 185 } else { 186 IObject[0].type = 'text'; 187 } 188} 189 190// ÐÑÑÑÐ¸Ñ Ð¸Ð·Ð¾Ð±Ñажение пÑи обновлении каÑÑинки заÑиÑÑ Ð¾Ñ ÑобоÑов 191function RefreshImageAction(img,num,cnt) { 192 if(cnt>13) { return false; } 193 $(img).attr('src', $(img).attr('rel') + 'icon/refresh/' + num + '.gif'); 194 num = (num==6)?0:num; 195 setTimeout(function(){RefreshImageAction(img, num+1, cnt+1);}, 50); 196} 197 198// Ðобавление в ÑÑавнение и избÑанное 199function addTo() { 200 // Ðобавление/Ñдаление ÑоваÑа на ÑÑавнение/избÑанное ÑеÑез ajax 201 $('.add-compare').off('click').on('click',function(){ 202 // ÐбÑÐµÐºÑ ÑÑÑлки, по коÑоÑой кликнÑли 203 var 204 a = $(this) 205 ,addUrl = a.attr('data-action-add-url') 206 ,delUrl = a.attr('data-action-delete-url') 207 ,addTitle = a.attr('data-action-add-title') 208 ,delTitle = a.attr('data-action-delete-title') 209 ,isAdd = a.attr('data-action-is-add') 210 ,pName = a.attr('data-prodname') 211 ,pImage = a.attr('data-prodimage') 212 ,pPrice = a.attr('data-mod-id-price') 213 ,pUrl = a.attr('data-produrl') 214 ,pDataid = a.attr('data-id') 215 ,pDataprice = a.attr('data-mod-id') 216 ,pDataGoodsid = a.attr('data-goodsid') 217 ,defText = a.attr('data-default-text') 218 ,addText = a.attr('data-add-text') 219 ,addTooltip = a.attr('data-add-tooltip') 220 ,delTooltip = a.attr('data-del-tooltip') 221 requestUrl = a.attr('href') 222 ; 223 var flag = 0; 224 $('#compare-items li.item').each(function(){ 225 if($(this).attr('data-id') == pDataid){ 226 flag = 1; 227 } 228 if(flag == 1){ 229 $(this).remove(); 230 return false; 231 } 232 return flag; 233 });
234 $('.compare #compare-items .empty').hide(); 235 $('.compare #compare-items .actions').show(); 236 237 // ÐÑли в ÑÑÑлке пÑиÑÑÑÑÑвÑÐµÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑ, коÑоÑÑй Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ ÑзнаÑÑ ÑолÑко вÑÑаÑив его Ñ ÑекÑÑей ÑÑÑаниÑÑ 238 if( /GET_GOODS_MOD_ID_FROM_PAGE/.test(requestUrl)) { 239 requestUrl = requestUrl.replace(new RegExp('GET_GOODS_MOD_ID_FROM_PAGE'), $('.goodsDataMainModificationId').val()); 240 } 241 242 // ÐÑли еÑÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ Ñом какие URL адÑеÑа бÑдÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ, Ñо можено не пеÑегÑÑжаÑÑ ÑÑÑаниÑÑ Ð¸ ÑделаÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ ÑеÑез ajax 243 if(addUrl && delUrl) { 244 $.ajax({ 245 type : "POST", 246 dataType: 'json', 247 cache : false, 248 url : requestUrl, 249 data : { 250 'ajax_q': 1 251 }, 252 success: function(data) { 253 if(flag == 0){ 254 $('#compare-items .compare-items-list').prepend( 255 "<li class=\"item\" data-id=\"" + pDataid + "\">" + 256 "<a data-href=\"" + delUrl + "?id=" + pDataprice + "\" data-goods-mod-id=\"" + pDataprice + "\" class=\"remove item-remove\" title=\"УбÑаÑÑ ÑÐ¾Ð²Ð°Ñ Ð¸Ð· ÑпиÑка ÑÑавнениÑ\" onclick=\"removeFromCompare($(this))\"></a>" + 257 "<a href=\"" + pUrl + "\" title=\"" + pName + "\" class=\"product-image\">" + 258 "<img src=\"" + pImage + "\" alt=\"" + pName + "\" class=\"goods-image-icon\">" + 259 "</a>" + 260 "<div class=\"product-details\">" + 261 "<p class=\"product-name\">" + 262 "<a href=\"" + pUrl + "\" title=\"" + pName + "\">" + pName + "</a>" + 263 "</p>" + 264 "<span class=\"price RUB\" data-price=\"" + pPrice + "\"><span><span class=\"num\">" + addSpaces(String(pPrice)) + " </span></span></span>"+ 265 "</div>"+ 266 "</li>" 267 ); 268 } 269 if('ok' == data.status) { 270 if(isAdd == 1) { 271 var 272 from = addUrl 273 ,to = delUrl 274 ,newIsAddStatus = 0 275 ,newTitle = delTitle ? delTitle : '' 276 ,newTooltip = delTooltip ? delTooltip : '' 277 ; 278 a.addClass('_added'); 279 a.find('span').text(addText) 280 } else { 281 var 282 from = delUrl 283 ,to = addUrl 284 ,newIsAddStatus = 1 285 ,newTitle = addTitle ? addTitle : '' 286 ,newTooltip = addTooltip ? addTooltip : '' 287 ; 288 a.removeClass('_added'); 289 a.find('span').text(defText) 290 } 291 292 // ÐÑли Ñказано, ÑÑо изменилоÑÑ ÑиÑло ÑоваÑов на ÑÑавнении 293 if(typeof(data.compare_goods_count) != 'undefined') { 294 // Ðлок инÑоÑмаÑии о Ñом, ÑÑо еÑÑÑ ÑоваÑÑ Ð½Ð° ÑÑавнении 295 var sidecount = $('.compare-header .compare-header__counter .num'); 296 // ÐÑли на ÑÑавнении болÑÑе Ð½ÐµÑ ÑоваÑов 297 // УказÑваем инÑоÑмаÑÐ¸Ñ Ð¾ новом колиÑеÑÑве ÑоваÑов на ÑÑавнении 298 // Ðлок Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑпиÑка ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð² каÑалога 299 sidecount.animate({opacity: 0,display: "none"},500,function(){ 300 sidecount.text(data.compare_goods_count); 301 if(data.compare_goods_count > 0){ 302 $('.compare').addClass('have-items'); 303 $('.compare #compare-items .empty').hide(); 304 $('.compare #compare-items .actions').show(); 305 }else{ 306 $('.compare').removeClass('have-items'); 307 $('.compare #compare-items .empty').show(); 308 $('.compare #compare-items .actions').hide(); 309 } 310 }).animate({display: "inline",opacity: 1} , 500 ); 311 } 312 313 // ÐбновлÑем ÑÑÑлкÑ, на коÑоÑÑÑ Ð±ÑÐ´ÐµÑ ÑÑ Ð¾Ð´Ð¸ÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð¸ инÑоÑмаÑÐ¸Ñ Ð¾ ней 314 a.attr('href', a.attr('href').replace(new RegExp(from), to)) 315 .attr('title', newTitle) 316 .attr('data-tooltip', newTooltip) 317 .attr('data-action-is-add', newIsAddStatus); 318 } 319 320 var msgType = ('ok' == data.status) ? 'success' : 'error'; 321 var message = ('ok' == data.status) ? data.message.replace('ÑÑавнениÑ', '<a href="/compare" class="underline">ÑÑавнениÑ</a>') : data.message; 322 // ÐÑли еÑÑÑ ÑÑнкÑиÑ, коÑоÑÐ°Ñ Ð¾ÑобÑÐ°Ð¶Ð°ÐµÑ ÑообÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ 323 if(typeof(Noty) == "function") { 324 new Noty({ 325 text: message, 326 type: msgType, 327 timeout: "2000" 328 }).show(); 329 } 330 331 } 332 }); 333 return false; 334 } 335 }); 336 337 // Ðобавление/Ñдаление ÑоваÑа на ÑÑавнение/избÑанное ÑеÑез ajax 338 $('.add-wishlist').off('click').on('click',function(){ 339 // ÐбÑÐµÐºÑ ÑÑÑлки, по коÑоÑой кликнÑли 340 var 341 a = $(this) 342 ,addUrl = a.attr('data-action-add-url') 343 ,delUrl = a.attr('data-action-delete-url') 344 ,addTitle = a.attr('data-action-add-title') 345 ,delTitle = a.attr('data-action-delete-title') 346 ,isAdd = a.attr('data-action-is-add') 347 ,aText = a.parent().find('.add-wishlist') 348 ,pName = a.attr('data-prodname') 349 ,pImage = a.attr('data-prodimage') 350 ,pUrl = a.attr('data-produrl') 351 ,pDataid = a.attr('data-id') 352 ,pDataprice = a.attr('data-mod-id') 353 ,pPrice = a.attr('data-mod-id-price') 354 ,pDataGoodsid = a.attr('data-goodsid') 355 ,defText = a.attr('data-default-text') 356 ,addText = a.attr('data-add-text') 357 ,addTooltip = a.attr('data-add-tooltip') 358 ,delTooltip = a.attr('data-del-tooltip') 359 requestUrl = a.attr('href') 360 ; 361 var flag = 0; 362 $('#favorites-items li').each(function(){ 363 if($(this).attr('data-id') == pDataid){ 364 flag = 1; 365 } 366 if(flag == 1){ 367 $(this).remove(); 368 return false; 369 } 370 return flag; 371 });
372 373 374 // ÐÑли в ÑÑÑлке пÑиÑÑÑÑÑвÑÐµÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑ, коÑоÑÑй Ð¼Ñ Ð¼Ð¾Ð¶ÐµÐ¼ ÑзнаÑÑ ÑолÑко вÑÑаÑив его Ñ ÑекÑÑей ÑÑÑаниÑÑ 375 if( /GET_GOODS_MOD_ID_FROM_PAGE/.test(requestUrl)) { 376 requestUrl = requestUrl.replace(new RegExp('GET_GOODS_MOD_ID_FROM_PAGE'), $('.goodsDataMainModificationId').val()); 377 } 378 379 // ÐÑли еÑÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ Ñом какие URL адÑеÑа бÑдÑÑ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ñ, Ñо можено не пеÑегÑÑжаÑÑ ÑÑÑаниÑÑ Ð¸ ÑделаÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ ÑеÑез ajax 380 if(addUrl && delUrl) { 381 $.ajax({ 382 type : "POST", 383 dataType: 'json', 384 cache : false, 385 url : requestUrl, 386 data : { 387 'ajax_q': 1 388 }, 389 success: function(data) { 390 if(data.status != 'error'){ 391 $('.favorites #favorites-items .empty').hide(); 392 $('.favorites #compare-items .actions').show(); 393 } 394 395 if(flag == 0 && data.status != 'error'){ 396 $('#favorites-items .favorites-items-list').prepend( 397 "<li class=\"item\" data-id=\"" + pDataid + "\">" + 398 "<a data-href=\"" + delUrl + "?id=" + pDataprice + "\" data-goods-mod-id=\"" + pDataprice + "\" class=\"remove item-remove\" title=\"УбÑаÑÑ ÑÐ¾Ð²Ð°Ñ Ð¸Ð· ÑпиÑка ÑÑавнениÑ\" onclick=\"removeFromFavorites($(this))\"></a>"+ 399 "<a href=\"" + pUrl + "\" title=\"" + pName + "\" class=\"product-image\">"+ 400 "<img src=\"" + pImage + "\" alt=\"" + pName + "\" class=\"goods-image-icon\">"+ 401 "</a>"+ 402 "<div class=\"product-details\">"+ 403 "<p class=\"product-name\">"+ 404 "<a href=\"" + pUrl + "\" title=\"" + pName + "\">" + pName + "</a>"+ 405 "</p>"+ 406 "<span class=\"price RUB\" data-price=\"" + pPrice + "\"><span><span class=\"num\">" + addSpaces(String(pPrice)) + " </span></span></span>"+ 407 "</div>"+ 408 "</li>" 409 ); 410 } 411 if('ok' == data.status) { 412 if(isAdd == 1) { 413 var 414 from = addUrl 415 ,to = delUrl 416 ,newIsAddStatus = 0 417 ,newTitle = delTitle ? delTitle : '' 418 ,newTooltip = delTooltip ? delTooltip : '' 419 ; 420 a.addClass('_added'); 421 a.find('span').text(addText) 422 } else { 423 var 424 from = delUrl 425 ,to = addUrl 426 ,newIsAddStatus = 1 427 ,newTitle = addTitle ? addTitle : '' 428 ,newTooltip = addTooltip ? addTooltip : '' 429 ; 430 a.removeClass('_added'); 431 a.find('span').text(defText) 432 } 433 434 // ÐÑли Ñказано, ÑÑо изменилоÑÑ ÑиÑло ÑоваÑов на ÑÑавнении 435 if(typeof(data.favorites_goods_count) != 'undefined') { 436 // Ðлок инÑоÑмаÑии о Ñом, ÑÑо еÑÑÑ ÑоваÑÑ Ð½Ð° ÑÑавнении 437 var sidecount = $('.favorites-header .favorites-header__counter .num'); 438 // ÐÑли на ÑÑавнении болÑÑе Ð½ÐµÑ ÑоваÑов 439 // УказÑваем инÑоÑмаÑÐ¸Ñ Ð¾ новом колиÑеÑÑве ÑоваÑов на ÑÑавнении 440 // Ðлок Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑпиÑка ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð² каÑалога 441 sidecount.animate({opacity: 0,display: "none"},500,function(){ 442 sidecount.text(data.favorites_goods_count); 443 if(data.favorites_goods_count > 0){ 444 $('.favorites').addClass('have-items'); 445 $('.favorites #favorites-items .empty').hide(); 446 $('.favorites #favorites-items .actions').show(); 447 }else{ 448 $('.favorites').removeClass('have-items'); 449 $('.favorites #favorites-items .empty').show(); 450 $('.favorites #favorites-items .actions').hide(); 451 } 452 }).animate({display: "inline",opacity: 1} , 500 ); 453 } 454 455 // ÐбновлÑем ÑÑÑлкÑ, на коÑоÑÑÑ Ð±ÑÐ´ÐµÑ ÑÑ Ð¾Ð´Ð¸ÑÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ð¸ инÑоÑмаÑÐ¸Ñ Ð¾ ней 456 a.attr('href', a.attr('href').replace(new RegExp(from), to)) 457 .attr('title', newTitle) 458 .attr('data-tooltip', newTooltip) 459 .attr('data-action-is-add', newIsAddStatus); 460 } 461 462 var msgType = ('ok' == data.status) ? 'success' : 'error'; 463 var message = ('ok' == data.status) ? data.message.replace('избÑанное', '<a href="/user/favorites" class="underline">избÑанное</a>') : data.message; 464 // ÐÑли еÑÑÑ ÑÑнкÑиÑ, коÑоÑÐ°Ñ Ð¾ÑобÑÐ°Ð¶Ð°ÐµÑ ÑообÑÐµÐ½Ð¸Ñ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ 465 if(typeof(Noty) == "function") { 466 new Noty({ 467 text: message, 468 type: msgType, 469 timeout: "2000" 470 }).show(); 471 } 472 473 } 474 }); 475 return false; 476 } 477 }); 478} 479// СÑавнение ÑоваÑов 480function comparePage(){ 481 // СÑавнение ÑоваÑов. ÐнвеÑÑиÑование ÑвойÑÑв Ð´Ð»Ñ ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ ÑоваÑа 482 $('.CompareCheckbox.invert').on('click',function(){ 483 var checked = true, 484 checkboxes = $('.CompareCheckbox:not(.invert)'); 485 checkboxes.each(function(){ 486 if($(this).attr('checked')) { 487 checked = false; 488 return false; 489 } 490 });
491 checkboxes.each(function(){ 492 $(this).attr('checked', checked); 493 }); 494 $(this).attr('checked', checked); 495 }); 496 497 // СÑавнение ÑоваÑов. СкÑÑÑие Ñ Ð°ÑакÑеÑиÑÑик ÑоваÑа, коÑоÑÑе вÑделил полÑзоваÑÐµÐ»Ñ 498 $('.CompareGoodsHideSelected').on('click',function(){ 499 $('.CompareGoodsTableTbodyComparisonLine').each(function(){ 500 var CheckedCheckbox = $(this).find('.CompareCheckbox:checked:not(.invert)'); 501 if(CheckedCheckbox.length>0) { 502 $(this).hide(); 503 } 504 }); 505 // оÑменÑем вÑделение Ñ Ð°ÑакÑеÑиÑÑик ÑоваÑов 506 $('.CompareCheckbox').attr('checked',false); 507 return false; 508 }); 509 510 // СÑавнение ÑоваÑов. СкÑÑÑие Ñ Ð°ÑакÑеÑиÑÑик ÑоваÑа, коÑоÑÑе вÑделил полÑзоваÑÐµÐ»Ñ 511 $('.CompareGoodsHideSelected').on('click',function(){ 512 $('.CompareGoodsShowAll').show(); 513 $('.CompareGoodsTableTbodyComparisonLine').each(function(){ 514 var CheckedCheckbox = $(this).find('.CompareCheckbox:checked:not(.invert)'); 515 if(CheckedCheckbox.length>0) { 516 $(this).hide(); 517 } 518 }); 519 // оÑменÑем вÑделение Ñ Ð°ÑакÑеÑиÑÑик ÑоваÑов 520 $('.CompareCheckbox').attr('checked',false); 521 return false; 522 }); 523 524 // СÑавнение ÑоваÑов. ÐÑобÑажение ÑкÑÑÑÑÑ Ñ Ð°ÑакÑеÑиÑÑик ÑоваÑа 525 $('.CompareGoodsShowAll').on('click',function(){ 526 $(this).hide(); 527 $('.CompareGoodsTableTbodyComparisonLine:hidden').show(); 528 return false; 529 }); 530 531 // СÑавнение ÑоваÑов. ÐеÑÑ Ð½ÑÑ Ð½Ð°Ð²Ð¸Ð³Ð°ÑÐ¸Ñ Ð¸Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ ÑилÑÑÑа на оÑобÑажение вÑÐµÑ Ñ Ð°ÑакÑеÑиÑÑик ÑоваÑов 532 $('.CompareGoodsTableFilterShowAll').on('click',function(){ 533 $('.CompareGoodsTableFilterSelected').removeClass('CompareGoodsTableFilterSelected'); 534 $('.CompareGoodsTableTbodyComparisonLine:hidden').show(); 535 $(this).addClass('CompareGoodsTableFilterSelected'); 536 return false; 537 }); 538 539 // СÑавнение ÑоваÑов. ФилÑÑÑ Ð² веÑÑ Ð½ÐµÐ¹ навигаÑии. ÐÑобÑажение ÑолÑко ÑазлиÑаÑÑÐ¸Ñ ÑÑ Ñ Ð°ÑакÑеÑиÑÑик ÑоваÑа 540 $('.CompareGoodsTableFilterShowOnlyDifferent').on('click',function(){ 541 $('.CompareGoodsTableFilterSelected').removeClass('CompareGoodsTableFilterSelected'); 542 $('.CompareGoodsTableTbodyComparisonLine:not(.same)').show(); 543 $('.CompareGoodsTableTbodyComparisonLine.same').hide(); 544 $(this).addClass('CompareGoodsTableFilterSelected'); 545 return false; 546 }); 547 548 // ÐÑи клике по ÑÑÑоке вÑделÑем ÑвойÑÑво 549 $('.CompareGoodsTableTbodyComparisonLine td:not(.cell)').on('click',function(){ 550 var CompareCheckbox = $(this).parent().find('.CompareCheckbox'); 551 if(CompareCheckbox.attr('checked')) { 552 CompareCheckbox.attr('checked', false); 553 } else { 554 CompareCheckbox.attr('checked', true); 555 } 556 }); 557 558 function compareGetVars () { 559 return new Array( 560 $('.CompareGoodsTableTbody tr:first td').length - 1, 561 parseInt($('.CompareGoodsTableTbody tr:first td:visible:not(.cell)').attr('class').replace(new RegExp('compare\-td compare\-td\-'), '')), 562 parseInt($('.CompareGoodsTableTbody tr:first td:visible:last').attr('class').replace(new RegExp('compare\-td compare\-td\-'), '')) 563 ); 564 } 565 566 // ÐÑокÑÑÑка ÑпиÑка ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð²Ð¿Ñаво 567 $('.CompareGoodsTableNext').on('click',function(){ 568 // ÐпÑеделÑем иÑполÑзÑемÑе Ð¿Ð¾Ð»Ñ 569 var data = compareGetVars(); 570 // ÐзменÑем Ð¸Ñ ÐµÑли ÑÑо возможно. 571 if(data[0] > data[2]) { 572 $('.compare-td-' + data[1]).hide(); 573 $('.compare-td-' + (data[2] + 1)).show(); 574 if((data[2] + 1) >= data[0]) { 575 $(this).addClass('disable'); 576 } 577 if(data[1] + 1 != 1) { 578 $('.CompareGoodsTablePrev').removeClass('disable'); 579 } 580 } 581 return false; 582 }); 583 584 // ÐÑокÑÑÑка ÑпиÑка ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ Ð²Ð»ÐµÐ²Ð¾ 585 $('.CompareGoodsTablePrev').on('click',function(){ 586 // ÐпÑеделÑем иÑполÑзÑемÑе Ð¿Ð¾Ð»Ñ 587 var data = compareGetVars(); 588 // ÐзменÑем Ð¸Ñ ÐµÑли ÑÑо возможно. 589 if(1 < data[1]) { 590 $('.compare-td-' + (data[1] - 1)).show(); 591 $('.compare-td-' + data[2]).hide(); 592 if((data[1] - 1) <= 1) { 593 $(this).addClass('disable'); 594 } 595 if(data[2] - 1 != data[0]) { 596 $('.CompareGoodsTableNext').removeClass('disable'); 597 } 598 } 599 return false; 600 }); 601} 602 603// ÐоказаÑÑ/ÑкÑÑÑÑ Ð¿Ð°ÑÐ¾Ð»Ñ 604$(function(){ 605 $('.show-password').on('click', function(){ 606 ChangePasswordFieldType(this, $('#sites_client_pass')); 607 return false; 608 }); 609}); 610 611// ÐÑновнÑе ÑÑнкÑии 612function mainFunctions() { 613 // ÐÑзов ÑÑнкÑии бÑÑÑÑого заказа в коÑзине 614 $('#startOrder, #startOrderTab').on('click', function() { 615 startOrder(); 616 return false; 617 }); 618 // ÐалидаÑÐ¸Ñ ÑоÑÐ¼Ñ Ð½Ð° ÑÑÑаниÑе оÑоÑÐ¼Ð»ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ°Ð·Ð°, а Ñак же ÑоÑÐ¼Ñ Ð½Ð° ÑÑÑаниÑÑ ÑвÑзи Ñ Ð°Ð´Ð¼Ð¸Ð½Ð¸ÑÑÑаÑией 619 $("#order-stage-form, .feedback-form, .subscribe-footer__form, .clientForm, .form").validate(); 620 $('.subscribe .subscribe__form').validate() 621 $('.callback-form').validate() 622 $('.offer-form').validate() 623 // ÐозвÑаÑаем полÑзоваÑÐµÐ»Ñ Ð½Ð° ÑÑÑаниÑÑ Ñ ÐºÐ¾ÑоÑой бÑл Ñделан обÑаÑнÑй звонок 624 $('.callbackredirect').val(document.location.href); 625 // ÐÑокÑÑÑка до обÑаÑного звонка 626 $('.callback-link').on('click',function(e){
627 e.preventDefault(); 628 629 $scrollBlock = $('#offer'); 630 631 if($scrollBlock.length){ 632 var offsetTop = $scrollBlock.offset().top 633 634 $('html, body').animate({scrollTop: offsetTop}, 500, function () { 635 setTimeout(function() { 636 $('#offerForm_person').focus(); 637 }, 0) 638 }) 639 } 640 }) 641 // AJAX обÑаÑнÑе звонки 642 $('.subscribe .subscribe__form, .callback-form, .offer-form, .subscribe-footer .subscribe-footer__form').on('submit', function(e){ 643 e.preventDefault(); 644 645 var $form = $(this); 646 var url = $form.prop('action'); 647 var formData = $form.serializeArray(); 648 formData.push({name: 'ajax_q', value: 1}); 649 formData.push({name: 'only_body', value: 1}); 650 651 if($form.valid()){ 652 $.getJSON(url, formData, function(d){ 653 var notyText = (d.status == 'ok') ? d.message : 'ÐÑоизоÑла оÑибка, попÑобÑйÑе еÑÑ Ñаз'; 654 var notyType = (d.status == 'ok') ? 'success' : 'error'; 655 656 new Noty({ 657 text: '<div class="noty_content">'+ notyText +'</div>', 658 type: notyType 659 }).show() 660 661 if(d.status == 'ok'){ 662 $form[0].reset(); 663 } 664 }) 665 } 666 667 }) 668 // Ðобавление ÑоваÑа в коÑÐ·Ð¸Ð½Ñ 669 $(document).on('click', '.button._add-cart:not(.quickview)', function() { 670 var $btn = $(this); 671 $btn.addClass('_loading') 672 if($btn.hasClass('_cart-page')) { 673 return true; 674 } 675 if(!$btn.hasClass('_quick') || $btn.hasClass('_product-view-quick')) { 676 $btn.find('span').html('<span class="lds-ellipsis"><span></span><span></span><span></span><span></span></span>') 677 } 678 if($btn.closest('._min-card').length){ 679 $btn.addClass('_animated') 680 } 681 var form = $(this).closest('form'); 682 if ($(this).hasClass('_quick')) { 683 form.attr('rel', 'quick'); 684 } else { 685 var rel = form.attr('rel'); 686 if (rel) { 687 form.attr('rel', rel.replace('quick', '')); 688 } 689 } 690 form.trigger('submit'); 691 return (false); 692 }) 693 694 // ÐÑпÑавка ÑоÑÐ¼Ñ Ð¿Ð¾ Ctrl+Enter 695 $('form').bind('keypress', function(e){ 696 if((e.ctrlKey) && ((e.which==10)||(e.which==13))) {$(this).submit();} 697 // ÐÑпÑавка даннÑÑ ÑоÑÐ¼Ñ Ð¿Ð¾ нажаÑÐ¸Ñ Ð½Ð° Enter в ÑлÑÑае еÑли кÑÑÑÐ¾Ñ Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð² input полÑÑ (РнекоÑоÑÑÑ Ð±ÑаÑзеÑÐ°Ñ Ð¿Ñи нажаÑии по enter ÑÑабаÑÑÐ²Ð°ÐµÑ ÐºÐ»Ð¸Ðº по пеÑÐ²Ð¾Ð¼Ñ submit полÑ, коÑоÑое ÑвлÑеÑÑÑ ÐºÐ½Ð¾Ð¿ÐºÐ¾Ð¹ назад. ÐÐ»Ñ ÑÑого напиÑан ÑÑÐ¾Ñ ÑикÑ) 698 }).find('input').bind('keypress', function(e){ 699 if(((e.which==10)||(e.which==13))) { try{$(this.form).submit();} catch(e){} return false; } 700 }); 701 // Ðнопки оÑкÑÑваÑÑие Ð¼ÐµÐ½Ñ 702 $('.header .header-mobile__button, .catalog-button').on('click',function(e){ 703 e.preventDefault(); 704 $('.header-content').addClass('_active'); 705 // $('body').addClass('modal-open'); 706 707 var id = $(this).data('target'); 708 if (id){ 709 $('#' + id).addClass('_visible'); 710 $('.header-content__button[data-target="' + id +'"]').addClass('_active') 711 } 712 }) 713// Ðнопки закÑÑваÑÑие Ð¼ÐµÐ½Ñ 714 $('.header .header-content__button-close, .header-content .header-content__overlay').on('click',function(e){ 715 e.preventDefault(); 716 $('.header-content').removeClass('_active'); 717 // $('body').removeClass('modal-open'); 718 $('.header-content__item').removeClass('_visible'); 719 $('.header-content__button').removeClass('_active'); 720 }) 721 $('.header-content__nav').on('click', '.header-content__button', function(){ 722 var $btn = $(this); 723 var id = $btn.data('target'); 724 725 if($btn.hasClass('_active')){ 726 return; 727 } 728 $btn 729 .toggleClass('_active') 730 .siblings('.header-content__button') 731 .removeClass('_active'); 732 733 $btn.closest('.header-content') 734 .find('.header-content__item') 735 .removeClass('_visible') 736 .filter('[id="'+ id +'"]') 737 .addClass('_visible') 738 }) 739 // ÐополниÑелÑнÑе пÑнкÑÑ Ð¼ÐµÐ½Ñ Ð² Ñапке 740 function headerMenu(){ 741 var overMenuExist = $('.overflowMenu li').length; 742 if(overMenuExist){ 743 $('.overflowMenu li').removeClass('mainnav__replaced'); 744 $('.mainnav .mainnav__more').remove(); 745 $('.overflowMenu li').each(function(){ 746 $('.mainnav .header-nav__list').append($(this)); 747 }) 748 } 749 $('.header-nav').addClass('mainnav') 750 menuWidth = $('.mainnav').width(); 751 menuCount = $('.header-nav .header-nav__item').length + 0; 752 var nextCheck = 0; 753 var CurrentWidthCounter = 0; 754 for(var i=1; i < menuCount; i++){ 755 currentWidth = parseInt(Math.ceil($('.header-nav .header-nav__item:nth-child('+i+')').width())) + 16; 756 nextCheck += currentWidth; 757 if(nextCheck > menuWidth){ 758 var a = i; 759 for(a;a < menuCount;a++){ 760 $('.header-nav .header-nav__item:nth-child('+ a +')').addClass('mainnav__replaced'); 761 } 762 $('.mainnav .header-nav__list').append('<li class="header-nav__item mainnav__more dropdown _more-menu"><a class="header-nav__link">ÐÑе...</a></li>'); 763 $('.mainnav__more').append($('<ul>').addClass('overflowMenu dropdown__body')) 764 $('.mainnav .mainnav__replaced').each(function(){ 765 $('.overflowMenu').append($(this)); 766 }); 767 menuMorePosition = parseInt($('.mainnav__more').position().left); 768 $('.mainnav .mainnav__more').on('click',function(){ 769 $(this).hasClass('active') ? $(this).removeClass('active') : $(this).addClass('active'); 770 $('.overflowMenu').hasClass('active') ? $('.overflowMenu').removeClass('active') : $('.overflowMenu').addClass('active'); 771 $('.mainnav .header-nav__list').hasClass('active') ? $('.mainnav .header-nav__list').removeClass('active') : $('.mainnav .header-nav__list').addClass('active'); 772 }); 773 $(function($){ 774 $(document).on('mouseup', function (e){ 775 var div = $(".overflowMenu.active"); 776 var btn = $(".mainnav .mainnav__more"); 777 if (!div.is(e.target) && div.has(e.target).length === 0 && !btn.is(e.target)) { 778 div.removeClass('active'); 779 btn.removeClass('active'); 780 $('.mainnav .header-nav__list').removeClass('active'); 781 } 782 }); 783 }); 784 return false; 785 } 786 } 787 } 788 if(getClientWidth() >= 1200){ 789 headerMenu(); 790 } 791 // ÐÑновной каÑалог в Ñапке 792 function headerCatalog() { 793 var e, 794 $headerCatalog = $(".header-catalog"), 795 $catalogBtn = $(".header-catalogBtn"), 796 $catalogMenu = $(".header-catalog .header-catalogMenu"), 797 $headerSubcatalog = $(".header-subcatalog"), 798 $headerOverlay = $(".header-overlay"); 799 $headerCloseBtn = $('.header-closeBtn'); 800 801 802 $catalogItem = $(".header-sectionsItem.parent"); 803 804 var $catalogMenu = $(".header-catalog .header-catalog__menu"); 805 $catalogMenu.on('click', '.header-catalog__icon', function(evt){ 806 evt.preventDefault() 807 808 var $arrow = $(this); 809 var $link = $arrow.parent(); 810 811 if($arrow.hasClass('_active')){ 812 $arrow.removeClass('_active') 813 $link.removeClass('_active').next('.sub').slideUp(); 814 } else { 815 $arrow.addClass('_active') 816 $link.addClass('_active').next('.sub').slideDown(); 817 } 818 819 }); 820 } 821 headerCatalog(); 822 823 function removeActiveLinks(){ 824 if (getClientWidth() > 992) { 825 var $headerCatalog = $('.header-catalogMenu'); 826 827 $headerCatalog.find('.header-catalogLink, .header-subcatalogTitle, .header-catalogMenu').removeClass('active'); 828 $headerCatalog.find('.header-subcatalog-third, .sub').show(); 829 } 830 } 831 $(window).on('resize', $.debounce(300, removeActiveLinks)) 832 // ÐккоÑдеон в подвале 833 $('.footer-collapse').on('click', '.footer-collapse__title', function(){ 834 if(getClientWidth() <= 576){ 835 $(this).toggleClass('_active').next('.footer-collapse__list').slideToggle(); 836 } 837 }) 838} 839 840// ФÑнкÑии Ð´Ð»Ñ ÐºÐ°Ñалога 841function catalogFunctions() { 842 // ÐаÑÑом ÑÐµÐ»ÐµÐºÑ 843 $(function(){ 844 $('.select').styler(); 845 }) 846 847 $('.filters .filters__btn').on('click', function(e){
848 $(this).parent().toggleClass('_active') 849 }) 850 // ФилÑÑÑ Ð¿Ð¾ Ñенам 851 var 852 // ÐинималÑное знаÑение ÑÐµÐ½Ñ Ð´Ð»Ñ ÑилÑÑÑа 853 priceFilterMinAvailable = parseInt($('.goodsFilterPriceRangePointers .min').text()) 854 // ÐакÑималÑное знаÑение ÑÐµÐ½Ñ Ð´Ð»Ñ ÑилÑÑÑа 855 ,priceFilterMaxAvailable = parseInt($('.goodsFilterPriceRangePointers .max').text()) 856 // ÐакÑималÑное знаÑение ÑÐµÐ½Ñ Ð´Ð»Ñ ÑилÑÑÑа 857 ,priceSliderBlock = $('#goods-filter-price-slider')[0] 858 // Ðоле ввода ÑекÑÑего знаÑÐµÐ½Ð¸Ñ ÑÐµÐ½Ñ "ÐÑ" 859 ,priceInputMin = $( "#goods-filter-min-price" ) 860 // Ðоле ввода ÑекÑÑего знаÑÐµÐ½Ð¸Ñ ÑÐµÐ½Ñ "Ðо" 861 ,priceInputMax = $( "#goods-filter-max-price" ) 862 // Ðлок Ñ ÐºÐ½Ð¾Ð¿ÐºÐ¾Ð¹, коÑоÑÑÑ ÐµÑÑÑ ÑмÑÑл нажимаÑÑ ÑолÑко Ñогда, когда изменÑлÑÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ñен. 863 ,priceSubmitButtonBlock = $( ".goodsFilterPriceSubmit" ); 864 865 // ÐзменÑÐµÑ ÑÐ°Ð·Ð¼ÐµÑ ÑÑеек Ñ Ñеной, Ñ.к. Ñ Ð½Ð¸Ñ Ð½ÐµÑ Ñамок, еÑÑÑ ÑмÑÑл менÑÑÑ ÑазмеÑÑ Ð¿Ð¾Ð»ÐµÐ¹ ввода, ÑÑÐ¾Ð±Ñ Ð¾Ð½Ð¸ вÑглÑдили как ÑекÑÑ 866 function priceInputsChangeWidthByChars() { 867 // ÐÑли еÑÑÑ Ð±Ð»Ð¾Ðº ÑÐºÐ°Ð·Ð°Ð½Ð¸Ñ Ð¼Ð¸Ð½Ð¸Ð¼Ð°Ð»Ñной ÑÐµÐ½Ñ 868 if(priceInputMin.length) { 869 priceInputMin.css('width', (priceInputMin.val().length*7 + 60) + 'px'); 870 priceInputMax.css('width', (priceInputMax.val().length*7 + 60) + 'px'); 871 } 872 } 873 // ÐбновиÑÑ ÑазмеÑÑ Ð¿Ð¾Ð»ÐµÐ¹ ввода диапазона Ñен 874 priceInputsChangeWidthByChars(); 875 876 // СлайдеÑ, коÑоÑÑй иÑполÑзÑеÑÑÑ Ð´Ð»Ñ ÑдобÑÑва вÑбоÑа ÑÐµÐ½Ñ 877 if(priceSliderBlock){ 878 noUiSlider.create(priceSliderBlock, { 879 start: [parseInt($('#goods-filter-min-price').val()), parseInt($('#goods-filter-max-price').val())], 880 connect: true, 881 range: { 882 'min': priceFilterMinAvailable, 883 'max': priceFilterMaxAvailable 884 } 885 }); 886 priceSliderBlock.noUiSlider.on('slide', function (values, handle) { 887 var newVal = parseInt(values[handle]); 888 889 /* 890 * 0 - left handle 891 * 1 - right handle 892 */ 893 if (handle) { 894 priceInputMax.val( newVal ); 895 } else { 896 priceInputMin.val( newVal ); 897 } 898 899 priceInputsChangeWidthByChars(); 900 }); 901 902 priceSliderBlock.noUiSlider.on('end', function (values, handle) { 903 onFiltersChange() 904 }) 905 906 // ÐÑи изменении минималÑного знаÑÐµÐ½Ð¸Ñ ÑÐµÐ½Ñ 907 priceInputMin.keyup(function(){ 908 var newVal = parseInt($(this).val()); 909 if(newVal < priceFilterMinAvailable) { 910 newVal = priceFilterMinAvailable; 911 } 912 priceSliderBlock.noUiSlider.set([newVal, null]); 913 priceInputsChangeWidthByChars(); 914 }); 915 916 // ÐÑи изменении макÑималÑного знаÑÐµÐ½Ð¸Ñ ÑÐµÐ½Ñ 917 priceInputMax.keyup(function(){ 918 var newVal = parseInt($(this).val()); 919 if(newVal > priceFilterMaxAvailable) { 920 newVal = priceFilterMaxAvailable; 921 } 922 priceSliderBlock.noUiSlider.set([null, newVal]); 923 priceInputsChangeWidthByChars(); 924 }); 925 } 926 927 function onFiltersChange(){ 928 // ÐолÑÑаем даннÑе ÑоÑмÑ, коÑоÑÑе бÑдем оÑпÑавлÑÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ 929 var $formData = $('#filters-form').serializeArray(); 930 // СообÑаем ÑеÑвеÑÑ, ÑÑо Ð¼Ñ Ð¿ÑиÑли ÑеÑез ajax запÑÐ¾Ñ 931 $formData.push({name: 'ajax_q', value: 1}); 932 $formData.push({name: 'only_body', value: 1}); 933 934 // ÐÑкÑом добавлÑем ÑÐ¾Ð²Ð°Ñ Ð² коÑÐ·Ð¸Ð½Ñ Ð¸ вÑзÑваем ÑоÑÐ¼Ñ Ð±ÑÑÑÑого заказа ÑоваÑа 935 $.ajax({
936 type: "POST", 937 cache: false, 938 data: $formData, 939 success: function(data) { 940 var $resultsInput = $(data).find('#goods-filters-results'); 941 // ÐÑли еÑÑÑ ÑезÑлÑÑаÑÑ 942 if($resultsInput.length){ 943 var value = $resultsInput.val(); 944 945 $('.filters .filters__results').show(); 946 $('.filters .filters__results-input').val(value) 947 } else { 948 $('.filters .filters__results').hide(); 949 } 950 } 951 }) 952 } 953 // ФилÑÑÑÑ Ð¿Ð¾ ÑоваÑам. ÐÑи нажании на какÑÑ Ð»Ð¸Ð±Ð¾ Ñ Ð°ÑакÑеÑиÑÑÐ¸ÐºÑ Ð¸Ð»Ð¸ ÑвойÑÑво ÑоваÑа пÑоиÑÑ Ð¾Ð´Ð¸Ñ ÑилÑÑÑаÑÐ¸Ñ ÑоваÑов 954 $('.filters-inner__item .filters__input').on('change', function(e){ 955 $(this).attr('checked', $(this).is(':checked') ? 'checked' : false); 956 e.preventDefault(); 957 onFiltersChange(); 958 }); 959 960 // ÐоказаÑÑ/ÑкÑÑÑÑ ÐºÐ°ÑегоÑÐ¸Ñ ÑилÑÑÑа 961 $('.filters').on('click', '.filters__title', function(){ 962 var $title = $(this); 963 964 if($title.hasClass('_active')){ 965 $title.removeClass('_active') 966 $title.next('.filters__inner').slideDown(); 967 } else { 968 $title.addClass('_active') 969 $title.next('.filters__inner').slideUp(); 970 } 971 972 }); 973 974 $('.block.filters, .block.viewed').on('click', '.title', function(){ 975 if( getClientWidth() <= 991) { 976 var $title = $(this); 977 978 $title.next('.content').addClass('_active'); 979 $('.overlay').addClass('_active'); 980 } 981 }) 982 983 $('.overlay, .content-close-btn').off('click').on('click', function(){ 984 $('.overlay').removeClass('_active'); 985 $('.filters .content, .viewed .content').removeClass('_active'); 986 }) 987 988 // ÐоказаÑÑ Ð²Ñе/ÑкÑÑÑÑ 989 $('.block.filters').on('click', '.filter-more', function(){ 990 var $btn = $(this); 991 var offsetTop = $btn.siblings('.title').offset().top 992 993 $btn.prev('.filter-inner').toggleClass('crop'); 994 995 if($btn.hasClass('active')){ 996 $btn.removeClass('active').find('.filter-moreText').text('ÐоказаÑÑ Ð²Ñе'); 997 998 if(getClientWidth() > 992){ 999 $('html, body').animate({scrollTop: offsetTop}) 1000 } 1001 1002 } else { 1003 $btn.addClass('active').find('.filter-moreText').text('СкÑÑÑÑ'); 1004 } 1005 }); 1006 1007 // Ajax вÑвод ÑоваÑов ÑпиÑком/ÑаблиÑей без Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ ÑÑÑаниÑÑ 1008 $('.toolbar').on('click', '.view-mode > a', function(){ 1009 var href = document.location.href; 1010 var dataHref = $(this).data('href').slice(1); 1011 var browser = null; 1012 var qwe = navigator.userAgent; 1013 var separator = (href.indexOf('?') + 1) ? '&' : '?'; 1014 1015 if (qwe.search(/MSIE/) != -1) {browser = 'IE'}; 1016 if (href.indexOf('#page-title') != -1) { href = href.replace('#page-title', '')} 1017 1018 var url = (browser === 'IE') ? encodeURI(href + separator + dataHref) : (href + separator + dataHref); 1019 1020 $('.products-ajax').css('opacity', '.5'); 1021 // $('.products-container').prepend('<span class="content-loading"></span>'); 1022 $.ajax({
1023 url: url, 1024 cache: false, 1025 beforeSend: function(){ 1026 $('.products-container').find('.lds-ellipsis').remove(); 1027 $('.products-container').prepend('<span class="lds-ellipsis pink"><span></span><span></span><span></span><span></span></span>'); 1028 }, 1029 success: function(d){ 1030 $('.products-ajax').parent().html($(d).find('.products-ajax').parent().html()); 1031 lozad().observe(); 1032 $('.view-mode').html($(d).find('.view-mode').html()); 1033 addTo(); 1034 addCart(); 1035 quickView(); 1036 quantity(); 1037 $('.products-ajax').css('opacity', '1'); 1038 } 1039 }); 1040 }); 1041 1042 // Ðоковое Ð¼ÐµÐ½Ñ ÑÐ¾Ñ Ñанение оÑкÑÑÑой вложенноÑÑи 1043 $('.catalog__item._parent .catalog__icon').on('click', function(evt){ 1044 evt.preventDefault() 1045 1046 var $arrow = $(this); 1047 var $link = $arrow.parent(); 1048 1049 if($arrow.hasClass('_active')){ 1050 $arrow.removeClass('_active') 1051 $link.removeClass('_active').next('.sub').slideUp(); 1052 } else { 1053 $arrow.addClass('_active') 1054 $link.addClass('_active').next('.sub').slideDown(); 1055 } 1056 }); 1057 // ÐÑ ÑмоÑÑели 1058 $('.recently-viewed .products-grid').owlCarousel({ 1059 items:1, 1060 lazyLoad: true, 1061 margin: 15 1062 }) 1063 // ÐаÑÑÑÐµÐ»Ñ ÐзбÑанное / СÑавнение 1064 $('.favorites-goods .products-grid, .compare-goods .products-grid').owlCarousel( 1065 $.extend(OWL_DEFAULT, { 1066 items:6, 1067 margin: 9, 1068 lazyLoad: true, 1069 responsive: { 1070 0:{items:1}, 1071 320:{items:2}, 1072 480:{items:3}, 1073 540:{items:3}, 1074 768:{items:5}, 1075 992:{items:5}, 1076 1200:{items:6, nav: true,margin: 15, autoWidth: false} 1077 } 1078 }) 1079 ) 1080} 1081 1082// Ðобавление ÑоваÑа в коÑÐ·Ð¸Ð½Ñ 1083function addCart() { 1084 $('.product-view__form, .product__form, .goodsToCartFromCompareForm, .goodsListForm').off('submit').on('submit', function() { 1085 // ÐÑноÑим ÑÑнкÑии из Ñаблонов 1086 if ($(this).attr('rel') === 'quick') { 1087 quickOrder(this); 1088 return (false); 1089 } 1090 if($(this).hasClass('_in-cart')){ 1091 return (true) 1092 } 1093 // ÐÐ°Ñ Ð¾Ð´Ð¸Ð¼ ÑоÑмÑ, коÑоÑÑÑ Ð¾ÑпÑавлÑем на ÑеÑвеÑ, Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑоваÑа в коÑÐ·Ð¸Ð½Ñ 1094 var formBlock = $($(this).get(0)); 1095 1096 // ÐÑовеÑка на ÑÑÑеÑÑвование ÑоÑÐ¼Ñ Ð¾ÑпÑавки запÑоÑа на добавление ÑоваÑа в коÑÐ·Ð¸Ð½Ñ 1097 if (1 > formBlock.length || formBlock.get(0).tagName != 'FORM') { 1098 alert('Ðе ÑдалоÑÑ Ð½Ð°Ð¹Ñи ÑоÑÐ¼Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑоваÑа в коÑзинÑ'); 1099 return false; 1100 } 1101 1102 // ÐолÑÑаем даннÑе ÑоÑмÑ, коÑоÑÑе бÑдем оÑпÑавлÑÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ 1103 var formData = formBlock.serializeArray(); 1104 // СообÑаем ÑеÑвеÑÑ, ÑÑо Ð¼Ñ Ð¿ÑиÑли ÑеÑез ajax запÑÐ¾Ñ 1105 formData.push({name: 'ajax_q', value: 1}); 1106 // Так же ÑообÑим емÑ, ÑÑо нÑжно ÑÑÐ°Ð·Ñ Ð¾ÑобÑазиÑÑ ÑоÑÐ¼Ñ Ð±ÑÑÑÑого заказа 1107 //formData.push({name: 'fast_order', value: 1}); 1108 // ÐÑкÑом добавлÑем ÑÐ¾Ð²Ð°Ñ Ð² коÑÐ·Ð¸Ð½Ñ Ð¸ вÑзÑваем ÑоÑÐ¼Ñ Ð±ÑÑÑÑого заказа ÑоваÑа 1109 $.ajax({
1110 type: "POST", 1111 cache: false, 1112 url: formBlock.attr('action'), 1113 data: formData, 1114 success: function(data) { 1115 var $btn = $('.button._add-cart._loading').removeClass('_loading _animated'); 1116 1117 var $cartMessage = $(data).filter('#cart-message'); 1118 var type = $cartMessage.data('message-type'); 1119 1120 // ÐÑли ÑÐ¾Ð²Ð°Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½ 1121 if(type === 'success'){ 1122 // $btn.addClass('_added').find('span').html('<i class="fal fa-check-circle"></i>'); 1123 1124 $.fancybox.close() 1125 // ÐклÑÑиÑÑ Ð²ÑклÑÑиÑÑ Ð¿Ð¾ÐºÐ°Ð· окна по кнопке "РкоÑзинÑ" 1126 var fancyboxOn = true; 1127 1128 if(fancyboxOn){ 1129 $.fancybox.open(data,{ 1130 afterShow: function(){ 1131 addTo(); 1132 ajaxCartQty(); 1133 quantity(); 1134 } 1135 }) 1136 } else { 1137 new Noty({ 1138 timeout: "3000", 1139 text: $cartMessage.html(), 1140 type: type, 1141 animation: { 1142 open: null, 1143 close: null 1144 } 1145 }).show(); 1146 } 1147 $('.header .cart-header .cart-header__counter .num').html($(data).filter('#newCartCount').html()); 1148 $('.header .cart-header .cart-header__cart-sum').html($(data).filter('#newCartSum').html()); 1149 } else { 1150 new Noty({ 1151 timeout: "3000", 1152 layout: 'center', 1153 text: $cartMessage.html(), 1154 type: type, 1155 animation: { 1156 open: null, 1157 close: null 1158 } 1159 }).show(); 1160 1161 // $btn.addClass('_added').find('span').html('<i class="fal fa-times-circle"></i>'); 1162 } 1163 1164 $btn.removeClass('_added').find('span').html('РкоÑзинÑ') 1165 } 1166 }); 1167 return false; 1168 }); 1169} 1170// ФÑнкÑÐ¸Ñ Ð¾ÑоÑÐ¼Ð»ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ°Ð·Ð° в коÑзине 1171function startOrder(){ 1172 var globalOrder = $('#globalOrder'); //обÑÐµÐºÑ Ð±Ð»Ð¾ÐºÐ° кÑда бÑÐ´ÐµÑ Ð²ÑводиÑÑÑÑ ÑоÑма бÑÑÑÑого заказа 1173 var closeOrder = $('#closeOrder'); // обÑÐµÐºÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ оÑÐ¼ÐµÐ½Ñ Ð·Ð°ÐºÐ°Ð·Ð° 1174 var cartClear = $('#cart-clear'); // обÑÐµÐºÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ оÑÐ¼ÐµÐ½Ñ Ð·Ð°ÐºÐ°Ð·Ð° 1175 var cartTable = $('#cart-content'); // обÑÐµÐºÑ ÐºÐ¾ÑÐ·Ð¸Ð½Ñ 1176 var confirmOrder = $('#confirmOrder'); // обÑÐµÐºÑ Ð±Ð»Ð¾ÐºÐ° оÑоÑÐ¼Ð»ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ°Ð·Ð° 1177 var cartFast = $('.cart._fast'); 1178 1179 // ÐÑли ÑоÑма Ñже оÑкÑÑÑа Ñо ниÑего не делаем. 1180 if (globalOrder.css('display') != 'none') { 1181 // ÐÑли блок Ñ ÑоÑмой заказа не ÑкÑÑÑ Ñо вÑÑ Ð¾Ð´Ð¸Ð¼ из ÑÑнкÑии 1182 return false; 1183 } 1184 // обÑÐµÐºÑ ÐºÐ½Ð¾Ð¿ÐºÐ¸ "ÐаказаÑÑ" 1185 var buttonStartOrder = $('#startOrder'); 1186 // СкÑÑваем ÐºÐ½Ð¾Ð¿ÐºÑ "ÐÑиÑÑиÑÑ ÐºÐ¾ÑзинÑ" 1187 cartClear.hide(); 1188 // СкÑÑваем ÐºÐ½Ð¾Ð¿ÐºÑ "ÐаказаÑÑ" 1189 buttonStartOrder.hide(); 1190 // СкÑÑваем ÑлеменÑÑ Ð² коÑзине 1191 cartTable.hide(); 1192 // ÐеÑеклÑÑаем ÑÐ°Ð±Ñ 1193 $('.cart-tabs .cart-tab').toggleClass('_disabled').toggleClass('_active'); 1194 // ÐÑклÑÑаем возможноÑÑÑ ÐºÐ»Ð¸ÐºÐ° по неакÑивной кнопке 1195 $('.cart-tab._disabled').prop('disabled', true) 1196 1197 $.ajax({ 1198 type: "POST", 1199 cache: false, 1200 url: '/cart/add', 1201 data: [ 1202 {name: 'ajax_q', value: 1}, 1203 {name: 'fast_order', value: 1} 1204 ], 1205 beforeSend: function(){ 1206 // ÐÑкÑÑваем обÑий, глобалÑнÑй блок 1207 globalOrder.show() 1208 // показÑваем пÑÐµÐ»Ð¾Ð°Ð´ÐµÑ 1209 globalOrder.css('position', 'relative') 1210 globalOrder.css('minHeight', '30px') 1211 globalOrder.html('<div class="preloader"><span class="content-loading"></span></div>') 1212 }, 1213 success: function(data) { 1214 // ÐÑÑавлÑем ÑоÑÐ¼Ñ Ð±ÑÑÑÑого заказа 1215 globalOrder.html($(data).filter('#order-template').html()); 1216 $('html, body').delay(400).animate({scrollTop : jQuery('#globalOrder').offset().top - 100}, 800); 1217 $('.coupon-hidden-input').val($('#quick_form_coupon_code').val()) 1218 cartFast.find('.cart__sum-row.cart__sum--delivery-sum').show(); 1219 cartFast.find('.cart__sum-row.cart__sum--order-sum').show(); 1220 confirmOrder.show(); 1221 closeOrder.show(); 1222 $('.pdt-cart-related-goods').hide(); 1223 // ÐклÑÑаем возможноÑÑÑ ÐºÐ»Ð¸ÐºÐ° по неакÑивной кнопке 1224 $('.cart-tab._disabled').prop('disabled', false) 1225 cartAjaxQty() 1226 quantity() 1227 coupons(); 1228 preloadHide() 1229 $('#closeOrder, #closeOrderTab').off('click').on('click', function() { 1230 // ÐÑли Ñаб Ñже акÑивен вÑÑ Ð¾Ð´Ð¸Ð¼ 1231 if($(this).hasClass('cart-tab') && !$(this).hasClass('_disabled')){ 1232 return; 1233 } 1234 cartFast.find('.cart__sum-row.cart__sum--order-sum').hide(); // СкÑÑваем пÑÐ½ÐºÑ "СÑмма заказа" 1235 //cartFast.find('.cart__sum-row.cart__sum--delivery-sum').hide(); // СкÑÑваем пÑÐ½ÐºÑ "СÑоимоÑÑÑ Ð´Ð¾ÑÑавки" 1236 confirmOrder.hide(); // СкÑÑваем блок "ÐÑоÑмиÑÑ Ð·Ð°ÐºÐ°Ð·" 1237 globalOrder.hide(); // СкÑÑваем блок оÑоÑÐ¼Ð»ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ°Ð·Ð° 1238 closeOrder.hide(); // СкÑÑваем ÐºÐ½Ð¾Ð¿ÐºÑ "ÐÑмениÑÑ" 1239 $('.pdt-cart-related-goods').show(); 1240 $('.cart-tab').toggleClass('_disabled').toggleClass('_active'); 1241 buttonStartOrder.show(); // ÐозвÑаÑаем ÐºÐ½Ð¾Ð¿ÐºÑ "ÐаказаÑÑ" 1242 cartClear.show();
1243 // ÐоказÑваем блок коÑÐ·Ð¸Ð½Ñ 1244 cartTable.show(); 1245 1246 return false; 1247 }); 1248 } 1249 }); 1250 return false; 1251} 1252// ÐÑÑÑÑÑй заказ 1253function quickOrder(formSelector) { 1254 // ÐÐ°Ñ Ð¾Ð´Ð¸Ð¼ ÑоÑмÑ, коÑоÑÑÑ Ð¾ÑпÑавлÑем на ÑеÑвеÑ, Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑоваÑа в коÑÐ·Ð¸Ð½Ñ 1255 var formBlock = $($(formSelector).get(0)); 1256 // ÐÑовеÑка на ÑÑÑеÑÑвование ÑоÑÐ¼Ñ Ð¾ÑпÑавки запÑоÑа на добавление ÑоваÑа в коÑÐ·Ð¸Ð½Ñ 1257 if(1 > formBlock.length || formBlock.get(0).tagName != 'FORM') { 1258 alert('Ðе ÑдалоÑÑ Ð½Ð°Ð¹Ñи ÑоÑÐ¼Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑоваÑа в коÑзинÑ'); 1259 return false; 1260 } 1261 // ÐолÑÑаем даннÑе ÑоÑмÑ, коÑоÑÑе бÑдем оÑпÑавлÑÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ 1262 var formData = formBlock.serializeArray(); 1263 // СообÑаем ÑеÑвеÑÑ, ÑÑо Ð¼Ñ Ð¿ÑиÑли ÑеÑез ajax запÑÐ¾Ñ 1264 formData.push({name: 'ajax_q', value: 1}); 1265 // Так же ÑообÑим емÑ, ÑÑо нÑжно ÑÑÐ°Ð·Ñ Ð¾ÑобÑазиÑÑ ÑоÑÐ¼Ñ Ð±ÑÑÑÑого заказа 1266 formData.push({name: 'fast_order', value: 1}); 1267 // ÐÑкÑом добавлÑем ÑÐ¾Ð²Ð°Ñ Ð² коÑÐ·Ð¸Ð½Ñ Ð¸ вÑзÑваем ÑоÑÐ¼Ñ Ð±ÑÑÑÑого заказа ÑоваÑа 1268 $.ajax({ 1269 type : "POST", 1270 cache : false, 1271 url : formBlock.attr('action'), 1272 data : formData, 1273 success: function(data) { 1274 $.fancybox.close(); 1275 1276 var $fancyContent = $('<div>') 1277 $fancyContent 1278 .append($(data).filter('#order-template')) 1279 .append($(data).filter('#cartFast')) 1280 1281 $.fancybox.open($fancyContent ,{ 1282 baseClass: "quickOrder", 1283 afterShow: function(){ 1284 var $btn = $('.button._add-cart._loading').removeClass('_loading'); 1285 $btn.removeClass('_added') 1286 if($btn.hasClass('_product-view-quick')){ 1287 $btn.find('span').html('ÐÑпиÑÑ Ð² 1 клик'); 1288 } 1289 else if(!$btn.closest('.product._list')){ 1290 $btn.find('span').html('ÐÑпиÑÑ <br> в 1 клик'); 1291 } 1292 // ÐоказÑваем блок иÑоговой ÑÑÐ¼Ð¼Ñ 1293 $('#cartFast').show(); 1294 // ÐÑпон 1295 coupons(); 1296 // ÐбновлÑем ÑÑÑÑÑики 1297 $('.header .cart-header .cart-header__counter .num').html($(data).filter('#newCartCount').html()); 1298 $('.header .cart-header .cart-header__cart-sum').html($(data).filter('#newCartSum').html()); 1299 } 1300 }); 1301 } 1302 }); 1303 1304 return false; 1305} 1306// CкÑипÑÑ Ð´Ð»Ñ Ð±ÑÑÑÑого заказа 1307function orderScripts(){ 1308 // ÐаÑÑом ÑÐµÐ»ÐµÐºÑ 1309 if($.fn.styler){ 1310 $('#quickDeliveryCountry').styler(); 1311 $('.quickform .quickform__select-convenient').styler(); 1312 } 1313 // ÐÑÐ±Ð¾Ñ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½Ð° вÑемени доÑÑавки 1314 // ЧÑÐ¾Ð±Ñ Ð¸Ð·Ð¼ÐµÐ½ÑÑÑ Ð´Ð¸Ð°Ð¿Ð°Ð·Ð¾Ð½ Ñо ÑÑоÑÐ¾Ð½Ñ Ð¸ÑполÑзÑйÑе $('.quickform .quickform__select-convenient._period').val('0-2').trigger('refresh') 1315 $('.quickform select.quickform__select-convenient._period').on('change', function(){ 1316 var convenientArr = $(this).val().split('-') 1317 1318 if(convenientArr.length){ 1319 $('input[name="form[delivery][convenient_time_from]"]').val(convenientArr[0]) 1320 $('input[name="form[delivery][convenient_time_to]"]').val(convenientArr[1]) 1321 } 1322 }) 1323 // ФоÑма ÑегиÑÑÑаÑии нового полÑзоваÑелÑ, пÑи оÑоÑмлении заказа 1324 $('.show-password').on('click', function(){ 1325 ChangePasswordFieldType(this, $('#contactPassWord')); 1326 }); 1327 // ÐÑи оÑоÑмлении заказа дадим возможноÑÑÑ Ð·Ð°ÑегиÑÑÑиÑоваÑÑÑÑ Ð¿Ð¾Ð»ÑзоваÑÐµÐ»Ñ 1328 $('#contactWantRegister').on('change', function(){ 1329 if($(this).prop("checked")) { 1330 $('.quickform__item._password, .contactRegisterNeedElement').show(); 1331 $('#contactEmail, #contactPassWord').addClass('required'); 1332 } else { 1333 $('.quickform__item._password, .contactRegisterNeedElement').hide(); 1334 $('#contactEmail, #contactPassWord').removeClass('required'); 1335 } 1336 }); 1337 1338 // ÐÑÐ±Ð¾Ñ Ð´Ð°ÑÑ Ð´Ð¾ÑÑавки 1339 // ÐокÑменÑаÑÐ¸Ñ Ðº Ð¿Ð»Ð°Ð³Ð¸Ð½Ñ //t1m0n.name/air-datepicker/docs/index-ru.html 1340 $("#deliveryConvenientDate").datepicker({ 1341 // ÐÑли true, Ñо пÑи акÑиваÑии даÑÑ, календаÑÑ Ð·Ð°ÐºÑоеÑÑÑ. 1342 autoClose: true, 1343 // Ðожно вÑбÑаÑÑ ÑолÑко даÑÑ, идÑÑие за ÑегоднÑÑним днем, вклÑÑÐ°Ñ ÑÐµÐ³Ð¾Ð´Ð½Ñ 1344 minDate: new Date() 1345 }) 1346 1347 // Разделение поле адÑÐµÑ Ð½Ð° УлиÑа, Ðом, ÐваÑÑиÑа 1348 $(function () { 1349 $('#quickform .button, #confirmOrder .button').off('click').on('click', function(){ 1350 var $quickDeliveryAddress = $('#quickDeliveryAddress'), 1351 quickDeliveryAddressStreetValue = $('#quickDeliveryAddressStreet').val(), 1352 quickDeliveryAddressHomeValue = $('#quickDeliveryAddressHome').val(), 1353 quickDeliveryAddressFlatValue = $('#quickDeliveryAddressFlat').val(); 1354 1355 if($quickDeliveryAddress.length && (quickDeliveryAddressStreetValue !='' || quickDeliveryAddressHomeValue !='' || quickDeliveryAddressFlatValue !='')){ 1356 $quickDeliveryAddress.val('УлиÑа: ' + quickDeliveryAddressStreetValue + ', Ðом/ÐоÑпÑÑ: ' + quickDeliveryAddressHomeValue + ', ÐваÑÑиÑа: ' + quickDeliveryAddressFlatValue); 1357 } 1358 $('#quickform').submit() 1359 return false; 1360 }); 1361 }) 1362 // ÐалидаÑÐ¸Ñ ÑоÑÐ¼Ñ Ð½Ð° ÑÑÑаниÑе оÑоÑÐ¼Ð»ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ°Ð·Ð° 1363 $("#quickform").on('submit', function(){ 1364 // ÐÑли ÑоÑма невалидна не оÑпÑавлÑем ÐµÑ Ð½Ð° ÑеÑвеÑ
1365 if(!$(this).valid()) { 1366 return false; 1367 } 1368 // ÐолÑÑаем даннÑе ÑоÑмÑ, коÑоÑÑе бÑдем оÑпÑавлÑÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ 1369 var formData = $(this).serializeArray(); 1370 // СообÑаем ÑеÑвеÑÑ, ÑÑо Ð¼Ñ Ð¿ÑиÑли ÑеÑез ajax запÑÐ¾Ñ 1371 formData.push({name: 'ajax_q', value: 1}); 1372 var $orderBtns = $("#confirmOrder .button") 1373 // ÐÑкÑом оÑоÑмлÑем заказ 1374 $.ajax({ 1375 type : "POST", 1376 dataType: 'json', 1377 cache : false, 1378 url : $(this).attr('action'), 1379 data : formData, 1380 timeout: 10000, 1381 beforeSend: function () { 1382 preloadButton($('#confirmOrder .button')); 1383 $orderBtns.addClass('_disabled') 1384 }, 1385 success: function(data) { 1386 // ÐÑли заказ бÑл ÑÑпеÑно Ñоздан 1387 if( data.status == 'ok' ) { 1388 window.location = data.location; 1389 } else if( data.status == 'error' ) { 1390 new Noty({ 1391 timeout: "7000", 1392 text: data.message, 1393 type: "error", 1394 animation: { 1395 open: null, 1396 close: null 1397 } 1398 }).show() 1399 $orderBtns.removeClass('_disabled').html('ÐÑоÑмиÑÑ Ð·Ð°ÐºÐ°Ð·'); 1400 } else { 1401 alert('Ðо вÑÐµÐ¼Ñ Ð¾ÑоÑÐ¼Ð»ÐµÐ½Ð¸Ñ Ð·Ð°ÐºÐ°Ð·Ð° возникла неизвеÑÑÐ½Ð°Ñ Ð¾Ñибка. ÐожалÑйÑÑа, обÑаÑиÑеÑÑ Ð² ÑлÑÐ¶Ð±Ñ ÑÐµÑ Ð½Ð¸ÑеÑкой поддеÑжки.'); 1402 $orderBtns.removeClass('_disabled').html('ÐÑоÑмиÑÑ Ð·Ð°ÐºÐ°Ð·'); 1403 } 1404 1405 }, 1406 error: function(){ 1407 $orderBtns.removeClass('_disabled').html('ÐÑоÑмиÑÑ Ð·Ð°ÐºÐ°Ð·') 1408 } 1409 }); 1410 return false; 1411 }).validate(); 1412} 1413 1414// РаÑÑÑÑ Ð´Ð¾ÑÑавки и ÑÑÐ¼Ð¼Ñ Ð·Ð°ÐºÐ°Ð·Ð° 1415(function() { 1416 var CURRENT_DELIVERY; 1417 1418 function init(ORDER_DELIVERY, DELIVERY_TYPE) { 1419 if (typeof ORDER_DELIVERY == "undefined") { 1420 console.error('Ðе пеÑедан маÑÑив доÑÑавок'); 1421 1422 return; 1423 } 1424 CURRENT_DELIVERY = ORDER_DELIVERY[0]; 1425 1426 changeCartSum(); 1427 1428 if(DELIVERY_TYPE === 'select') { 1429 $('.delivery-select').on('change', function() { 1430 var deliveryId = $(this).val(); 1431 1432 CURRENT_DELIVERY = getCurrentDelivery(deliveryId); 1433 1434 // ÐÑли еÑÑÑ Ð²Ð°ÑианÑÑ Ð¾Ð¿Ð»Ð°ÑÑ Ð´Ð»Ñ ÑекÑÑей доÑÑавки 1435 if (CURRENT_DELIVERY.availablePaymentList.length) { 1436 renderPaymentSelect(); 1437 } else { 1438 renderPaymentSelect(true); 1439 } 1440 // ÐÑли Ð½ÐµÑ Ð·Ð¾Ð½ Ñ ÑекÑÑего ваÑианÑа доÑÑавки 1441 if (CURRENT_DELIVERY.zoneListEmpty) { 1442 renderDeliveryZone(true) 1443 } else { 1444 renderDeliveryZone() 1445 } 1446 1447 changeCartSum(); 1448 }); 1449 $('.delivery-zone-select').on('change',function() { 1450 var deliveryId = $(this).data('delivery-id'); 1451 var zoneId = $(this).val(); 1452 1453 CURRENT_DELIVERY = getCurrentDelivery(deliveryId); 1454 1455 changeCartSum(); 1456 }) 1457 $('.payment-select').on('change',function() { 1458 var deliveryId = $(this).data('delivery-id'); 1459 var paymentId = $(this).val(); 1460 CURRENT_DELIVERY = getCurrentDelivery(deliveryId); 1461 1462 if (CURRENT_DELIVERY.availablePaymentList.length) { 1463 changePaymentSelect(paymentId); 1464 } 1465 }); 1466 } 1467 if(DELIVERY_TYPE === 'radio'){ 1468 function hideDeliveryBlock(name) { 1469 var deliveryName = name; 1470 // ÐаÑÑÑойка СамовÑвоза 1471 if(deliveryName === 'СамовÑвоз' || deliveryName.indexOf('СамовÑвоз') != -1){ 1472 $('.quickform__row.-adress').hide(); 1473 } else { 1474 $('.quickform__row.-adress').show(); 1475 } 1476 } 1477 $('.delivery-radio').on('change',function(){ 1478 1479 var deliveryId = $(this).val(); 1480 var deliveryName = $(this).data('name'); 1481 1482if(deliveryName === 'СамовÑвоз') { 1483 console.log($(".-delivery .input option[selected='selected']").text()); 1484 $(".-adress").hide(); 1485 $("#quickDeliveryCity").val("no"); 1486 $("#quickDeliveryZipCode").val("no"); 1487 $("quickDeliveryAddress").val("no"); 1488 $("#quickDeliveryRegion").val("no"); 1489 $("#quickDeliveryAddressStreet").val("no"); 1490 $("#quickDeliveryAddressHome").val("no"); 1491 $("#quickDeliveryAddressFlat").val("no"); 1492 $("#deliveryConvenientDate").val("none......"); 1493 $(".buttons.quickInputsBlock").hide(); 1494 } else { 1495$(".-adress").show(); 1496 $("#quickDeliveryCity").val(""); 1497 $("#quickDeliveryAddressStreet").val(""); 1498 $("#quickDeliveryAddressHome").val(""); 1499 $("#quickDeliveryZipCode").val(""); 1500 $("quickDeliveryAddress").val(""); 1501 $("#quickDeliveryAddressFlat").val(""); 1502 $("#deliveryConvenientDate").val(""); 1503 $("#quickDeliveryComment").val(""); 1504 $(".buttons.quickInputsBlock").show(); 1505 } 1506 1507 CURRENT_DELIVERY = getCurrentDelivery(deliveryId); 1508 1509 // ÐÑли Ð½ÐµÑ Ð·Ð¾Ð½ Ñ ÑекÑÑего ваÑианÑа доÑÑавки 1510 if (CURRENT_DELIVERY.zoneListEmpty) { 1511 $(this).closest('.quickform-delivery__item').siblings().find('.delivery-zone-radio').prop('checked', false); 1512 } else { 1513 $(this).closest('.quickform-delivery__item').find('.delivery-zone-radio:first').prop('checked', true).trigger('change') 1514 } 1515 1516 // ÐÑли еÑÑÑ Ð²Ð°ÑианÑÑ Ð¾Ð¿Ð»Ð°ÑÑ Ð´Ð»Ñ ÑекÑÑей доÑÑавки 1517 if (CURRENT_DELIVERY.availablePaymentList.length) { 1518 changePaymentRadio(deliveryId); 1519 } else { 1520 changePaymentRadio(); 1521 } 1522 hideDeliveryBlock(deliveryName); 1523 changeCartSum(); 1524 }) 1525 $('.delivery-zone-radio').on('change',function(){ 1526 var deliveryId = $(this).data('delivery-id'); 1527 var deliveryParentName = $(this).data('parent-name'); 1528 hideDeliveryBlock(deliveryParentName); 1529 CURRENT_DELIVERY = getCurrentDelivery(deliveryId); 1530 $(this).closest('.quickform-delivery__item').siblings().find('.delivery-radio').prop('checked', false) 1531 $(this).closest('.quickform-delivery__item').find('.delivery-radio').prop('checked', true) 1532 $(this).closest('.quickform-delivery__item').find('.quickform-delivery__price-default .num').text(addSpaces(getCurrentDeliveryPrice())) 1533 $(this).closest('.quickform-delivery__item').find('.quickform-delivery__price-zone .num').text(addSpaces(getCurrentDeliveryPrice())) 1534 changePaymentRadio(deliveryId); 1535 changeCartSum(); 1536 }) 1537 } 1538 1539 function getCurrentDelivery(id) { 1540 var currentDelivery; 1541 1542 $.each(ORDER_DELIVERY, function(i, item) { 1543 if (String(id) === item.id) { 1544 currentDelivery = item; 1545 } 1546 }) 1547 return currentDelivery; 1548 } 1549 1550 function renderDeliveryZone(clearTemplate) { 1551 var $deliveryZoneSelect = $('.delivery-zone-select'); 1552 var $deliveryZoneWrap = $deliveryZoneSelect.parent(); 1553 1554 $deliveryZoneSelect.data('delivery-id', CURRENT_DELIVERY.id); 1555 $deliveryZoneSelect.show().html(''); 1556 1557 if (clearTemplate) { 1558 $deliveryZoneSelect.hide(); 1559 1560 return; 1561 } else { 1562 $deliveryZoneSelect.show(); 1563 } 1564 1565 $.each(CURRENT_DELIVERY.zoneList, function(i, item) { 1566 var $option = $('<option>').val(item.zoneId).text(item.name); 1567 $deliveryZoneSelect.append($option); 1568 }) 1569 } 1570 1571 function renderPaymentSelect(clearTemplate) { 1572 var $paymentSelect = $('.payment-select'); 1573 var $paymentDescr = $('.payment__desc'); 1574 1575 $paymentSelect.data('delivery-id', CURRENT_DELIVERY.id); 1576 $paymentSelect.html(''); 1577 1578 if (clearTemplate) { 1579 var $option = $('<option>').val('').text('Ðе задан меÑод оплаÑÑ'); 1580 $paymentSelect.append($option); 1581 $paymentSelect.prop('disabled', true) 1582 $paymentDescr.hide(); 1583 } else { 1584 $paymentSelect.prop('disabled', false) 1585 $paymentDescr.show(); 1586 } 1587 1588 if (CURRENT_DELIVERY.availablePaymentList.length) { 1589 $.each(CURRENT_DELIVERY.availablePaymentList, function(i, item) { 1590 var $option = $('<option>').val(item.id).text(item.name); 1591 1592 $paymentSelect.append($option); 1593 1594 if (i == 0) { 1595 $paymentDescr.html(item.message); 1596 } 1597 }); 1598 } 1599 } 1600 1601 function changePaymentSelect(paymentId) { 1602 var $paymentDescrBlock = $('.payment__desc'); 1603 var currentPayment = $.grep(CURRENT_DELIVERY.availablePaymentList, function(item, i) { 1604 return item.id === String(paymentId) 1605 })[0] 1606 1607 $paymentDescrBlock.html(currentPayment.message); 1608 } 1609 function changePaymentRadio(deliveryId) { 1610 if(deliveryId){ 1611 var $currentPaymentBlock = $('.quickform-payment').filter('[data-delivery-id="'+ deliveryId +'"]'); 1612 1613 $currentPaymentBlock.show().siblings('.quickform-payment').hide(); 1614 $currentPaymentBlock.find('[name="form[payment][id]"]:first').prop('checked', true) 1615 } else { 1616 $('.quickform-payment').hide().find('[name="form[payment][id]"]').prop('checked', false) 1617 } 1618 } 1619 } 1620 1621 function changeCartSum() { 1622 var currentPriceWithoutChange = Number($('.cart__sum .total-sum').data('total-sum')); 1623 var deliveryPrice = Number(getCurrentDeliveryPrice()); 1624 var discountPrice = Number($('.cart__sum .cart__sum--discount .cart__sum-text-price').data('discount-value')); 1625 // console.log(currentPriceWithoutChange,deliveryPrice,discountPrice) 1626 // ÐаполнÑем ÑÑоимоÑÑÑ Ð´Ð¾ÑÑавки 1627 $('.cart__sum .cart__sum--delivery-sum .num').text(addSpaces(deliveryPrice)); 1628 $('.delivery__descr .delivery__price .num').text(addSpaces(deliveryPrice)); 1629 // ÐпиÑание доÑÑавки 1630 if (CURRENT_DELIVERY) { 1631 $('.delivery__descr .delivery__text').text(CURRENT_DELIVERY.desc); 1632 } 1633 1634 var priceNow = (currentPriceWithoutChange + deliveryPrice) - discountPrice; 1635 if (priceNow < 0) { 1636 priceNow = 0; 1637 } 1638 $('.cart__sum .total-sum').find('.num').text(addSpaces(Math.ceil(priceNow))); 1639 } 1640 1641 function getCurrentDeliveryPrice() { 1642 function getPriceFromArray(array) { 1643 var cartSumNow = Number($('.cart__sum .total-sum').data('total-sum')) 1644 var deliveryPrice = null; 1645 var maxMorePrice = 0; 1646 1647 $.each(array, function(i, el) { 1648 // ÐÑли ÑÑмма заказа ÑейÑÐ°Ñ >= Ñем задана в пÑавиле && ÑекÑÑее пÑавило болÑÑе по Ñене, Ñем пÑедÑдÑÑее 1649 if (Number(cartSumNow) >= Number(el.sumMorePrice) && Number(maxMorePrice) <= Number(el.sumMorePrice)) { 1650 deliveryPrice = el.price 1651 maxMorePrice = el.sumMorePrice 1652 } 1653 }) 1654 1655 return deliveryPrice; 1656 } 1657 // console.log(CURRENT_DELIVERY) 1658 if (typeof CURRENT_DELIVERY == "undefined") { 1659 return '0'; 1660 } 1661 // ÐÑли Ð½ÐµÑ Ð·Ð¾Ð½ Ñ ÑекÑÑего ваÑианÑа доÑÑавки 1662 if (CURRENT_DELIVERY.zoneListEmpty) { 1663 // ÐÑли Ð½ÐµÑ Ð¿Ñавил ÑаÑÑеÑа ÑÑоимоÑÑи Ð´Ð»Ñ ÑекÑÑего ваÑианÑа доÑÑавки 1664 if (CURRENT_DELIVERY.rulesListEmpty) { 1665 return Math.ceil(CURRENT_DELIVERY.price) 1666 } else { 1667 var priceFromArray = getPriceFromArray(CURRENT_DELIVERY.rulesList); 1668 var deliveryPrice = (priceFromArray !== null) ? priceFromArray : Math.ceil(CURRENT_DELIVERY.price); 1669 1670 return deliveryPrice; 1671 } 1672 } else { 1673 var zoneId; 1674 1675 if($('.delivery-zone-select').length) { 1676 zoneId = $('.delivery-zone-select').val(); 1677 } 1678 if($('.delivery-zone-radio:checked').length){ 1679 zoneId = $('.delivery-zone-radio:checked').val(); 1680 } 1681 //console.log(CURRENT_DELIVERY.zoneList) 1682 var zoneList = $.grep(CURRENT_DELIVERY.zoneList, function(item, i) { 1683 return item.zoneId == zoneId 1684 })[0]; 1685 1686 // console.log(zoneList) 1687 // ÐÑли Ñ ÑÑой Ð·Ð¾Ð½Ñ Ð½ÐµÑ Ð¿Ñавил 1688 if (zoneList.zoneRuleListEmpty) { 1689 return zoneList.price 1690 } else { 1691 // ÐеÑÑм Ð¿Ð¾Ð´Ñ Ð¾Ð´ÑÑÑÑ ÑÑоимоÑÑÑ Ð¸Ð· маÑÑива пÑавил инаÑе ÑÑандаÑÑнÑÑ ÑÐµÐ½Ñ Ð´Ð»Ñ Ð·Ð¾Ð½Ñ 1692 var priceFromArray = getPriceFromArray(zoneList.zoneRuleList); 1693 var deliveryPrice = (priceFromArray !== null) ? priceFromArray : zoneList.price; 1694 // console.log('deliveryPrice',deliveryPrice) 1695 return deliveryPrice; 1696 } 1697 } 1698 } 1699 1700 window.DeliveryModule = { 1701 init: init, 1702 changeCartSum: changeCartSum, 1703 getCurrentDelivery: function() { 1704 return CURRENT_DELIVERY; 1705 } 1706 } 1707})(); 1708 1709// Ðини коÑзина в окне AJAX Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑоваÑа 1710function ajaxCartQty(){ 1711 $(function(){ 1712 $('.cart-ajax-input-qty').off('change').on('change', 1713 $.debounce(300, function(){ 1714 var $qtyInput = $(this); 1715 var id = $qtyInput.data('goods-mod-id'); 1716 var qtyInputVal = $qtyInput.val(); 1717 1718 if(qtyInputVal < 1) { 1719 $qtyInput.val(1) 1720 } 1721 var formData = $('#cart-ajax-form').serializeArray(); 1722 formData.push({name: 'only_body', value: 1}); 1723 1724 $.ajax({
1725 url: '/cart', 1726 data: formData, 1727 cache: false, 1728 beforeSend: function(){ 1729 preloadShow($('.cart-ajax__product .preloader')) 1730 }, 1731 success: function(data) { 1732 var $data = $(data); 1733 var newQtyInputVal = $data.find('[data-id="' + id + '"] .qty__input').val(); 1734 1735 if(qtyInputVal > newQtyInputVal){ 1736 var newQtyInputVal = $data.find('[data-id="' + id + '"] .qty__input').val(); 1737 $qtyInput.val(newQtyInputVal) 1738 1739 var $cartMessage = $data.filter('#cart-message'); 1740 var type = $cartMessage.data('message-type'); 1741 1742 new Noty({ 1743 timeout: "3000", 1744 layout: 'center', 1745 text: $cartMessage.html(), 1746 type: type, 1747 animation: { 1748 open: null, 1749 close: null 1750 } 1751 }).show() 1752 1753 return; 1754 } 1755 /* ÐбновлÑем ÑÑÑÑÑики */ 1756 $('.header .cart-header .cart-header__counter .num').html($data.filter('#newCartCount').html()); 1757 $('.header .cart-header .cart-header__cart-sum').html($data.filter('#newCartSum').html()); 1758 /**/ 1759 var newPrice = $data.find('[data-id="' + id + '"]').find('.cart__product-ajax-price').html(); 1760 $('#cart-ajax-form').find('.cart-ajax__product-price').html(newPrice); 1761 /**/ 1762 preloadHide($('.cart-ajax__product .preloader')) 1763 } 1764 }) 1765 }) 1766 ); 1767 }) 1768} 1769 1770// С ÑÑим ÑоваÑом покÑпаÑÑ 1771function cartRelatedGoods() { 1772 $(function () { 1773 $(".pdt-cart-related-goods .products-grid").owlCarousel( 1774 $.extend(OWL_DEFAULT, 1775 { 1776 items: 4, 1777 responsive: { 1778 0:{items:1}, 1779 320:{items:1}, 1780 480:{items:1}, 1781 540:{items:2}, 1782 768:{items:3}, 1783 992:{items:4}, 1784 1200:{items:4, nav: true, margin: 15, autoWidth: false} 1785 } 1786 } 1787 )); 1788 }) 1789} 1790// ÐоÑзина 1791function cartAjaxQty(){ 1792 $(function(){ 1793 $('.qty__input').off('change').on('change', 1794 $.debounce(300, function(){ 1795 var $qtyInput = $(this); 1796 var id = $qtyInput.closest('.cart__table-row').data('id'); 1797 var qtyInputVal = $qtyInput.val(); 1798 1799 if(qtyInputVal < 1) { 1800 $qtyInput.val(1) 1801 } 1802 var formData = $('#cart-content').serializeArray(); 1803 formData.push({name: 'only_body', value: 1}); 1804 1805 $.ajax({
1806 url: '/cart', 1807 data: formData, 1808 cache: false, 1809 beforeSend: function(){ 1810 preloadShow($('#cart-content .preloader')) 1811 }, 1812 success: function(data){ 1813 // var $data = $(data).find('#cart-content'); 1814 var $data = $(data); 1815 var count = 0; 1816 $data.find('.qty__input').each(function(){ 1817 count += Number($(this).val()) 1818 }) 1819 $('.cart-header .cart-header__counter .num').html(count); 1820 1821 var newQtyInputVal = $data.find('[data-id="' + id + '"] .qty__input').val(); 1822 1823 $qtyInput.val(newQtyInputVal) 1824 1825 var $tableRow = $('[data-id="' + id + '"]'); 1826 var newItemPrice = $data.find('[data-id="' + id + '"] .cart__product-ajax-price').html(); 1827 $tableRow.find('.cart__product-ajax-price').html(newItemPrice); 1828 1829 $('.cart__sum').html($data.find('.cart__sum').html()); 1830 $('.cart-list').html($data.find('.cart-list').html()); 1831 1832 var cartSum = $data.find('.total-sum').data('total-sum') || "0"; 1833 $('.cart-header .cart-header__cart-sum .num').text(addSpaces(cartSum)); 1834 1835 if ($('#quick_form_coupon_code').val()){ 1836 $('#quick_form_coupon_code, .coupon-hidden-input').trigger('change') 1837 } 1838 1839 DeliveryModule.changeCartSum(); 1840 1841 var $deliveryPriceBlock = $('.cart__sum-row.cart__sum--delivery-sum'); 1842 var deliveryPrice = Number($deliveryPriceBlock.find('.num').text()); 1843 1844 if (deliveryPrice != 0){ 1845 $('.cart__sum-row.cart__sum--delivery-sum').show(); 1846 } 1847 1848 var newQtyInputVal = $data.find('[data-id="' + id + '"] .qty__input').val(); 1849 if(Number(qtyInputVal) > Number(newQtyInputVal)){ 1850 var $cartMessage = $data.filter('#cart-message'); 1851 var type = $cartMessage.data('message-type'); 1852 1853 new Noty({ 1854 timeout: "3000", 1855 layout: 'center', 1856 text: $cartMessage.html(), 1857 type: type, 1858 animation: { 1859 open: null, 1860 close: null 1861 } 1862 }).show() 1863 } 1864 preloadHide($('#cart-content .preloader'), true) 1865 } 1866 }) 1867 }) 1868 ) 1869 }) 1870} 1871 1872// ÐÑиÑÑиÑÑ ÐºÐ¾ÑÐ·Ð¸Ð½Ñ 1873function cartClear() { 1874 $(function(){ 1875 $('#cart-clear').on('click',function(e){ 1876 e.preventDefault(); 1877 preloadShow($('#cart-content .preloader')); 1878 1879 $.post('/cart/truncate/', function() { 1880 $('.header .cart-header .cart-header__cart-sum .num').text("0"); 1881 $('.header .cart-header .cart-header__counter .num').text("0"); 1882 1883 $('.quick-order,.cart-info .cart-info__wrap').hide(); 1884 $('.pdt-cart-related-goods').hide(); 1885 $('#empty-cart').show(); 1886 }); 1887 }) 1888 }) 1889} 1890// Удаление ÑоваÑа из коÑÐ·Ð¸Ð½Ñ 1891function cartDeleteItem(){ 1892 $(function(){ 1893 $('.cart__delete').off('click').on('click', function(e){ 1894 e.preventDefault(); 1895 1896 var $cartDeleteLink = $(this); 1897 var url = $cartDeleteLink.attr('href'); 1898 1899 $.ajax({
1900 url: url, 1901 cache: false, 1902 beforeSend: function(){ 1903 $cartDeleteLink.closest('.cart__table-row').append($('<div class="preloader _opacity"><span class="content-loading"></span></div>')) 1904 }, 1905 success: function(data){ 1906 var $data = $(data); 1907 var count = 0; 1908 1909 $data.find('.qty__input').each(function(){ 1910 count += Number($(this).val()) 1911 }) 1912 // ÐÑли коÑзина пÑÑÑа 1913 if(!count){ 1914 $('.quick-order,.cart-info .cart-info__wrap').hide(); 1915 $('#empty-cart').show(); 1916 } 1917 $cartDeleteLink.closest('.cart__table-row').remove(); 1918 $('.header .cart-header .cart-header__counter .num').html(count); 1919 1920 $('.cart__sum').html($data.find('.cart__sum').html()); 1921 $('.cart-list').html($data.find('.cart-list').html()); 1922 1923 var cartSum = $data.find('.total-sum').data('total-sum') || "0"; 1924 $('.cart-header .cart-header__cart-sum .num').text(addSpaces(cartSum)); 1925 if($('#quick_form_coupon_code').val()){ 1926 $('#quick_form_coupon_code, .coupon-hidden-input').trigger('change') 1927 } 1928 1929 DeliveryModule.changeCartSum(); 1930 preloadHide($('#cart-content .preloader'), true) 1931 } 1932 }) 1933 }) 1934 }) 1935} 1936 1937// ÐÑпÑавка кÑпона пÑи оÑоÑмлении заказа 1938function coupons() { 1939 var $submitBtn = $('.coupon .coupon__btn'); 1940 var $cuponInput = $('#quick_form_coupon_code'); 1941 var $resetBtn = $('.coupon .coupon__clear'); 1942 1943 $submitBtn.on('click',function(){ 1944 var val = $cuponInput.val(); 1945 if(!val){ 1946 return; 1947 } 1948 1949 ajaxCouponCheck(); 1950 }); 1951 1952 function ajaxCouponCheck(isResetBtn){ 1953 var val = $cuponInput.val(); 1954 1955 var orderSumDefault = Number($('.cart__sum .total-sum').data('total-sum')); 1956 1957 // ÐолÑÑаем даннÑе ÑоÑмÑ, коÑоÑÑе бÑдем оÑпÑавлÑÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ 1958 var formData = $('#order-stage-form').serializeArray(); 1959 formData.push({name: 'ajax_q', value: 1}); 1960 formData.push({name: 'only_body', value: 1}); 1961 formData.push({name: 'form[coupon_code]', value: val}); 1962 1963 $.ajax({
1964 type: "POST", 1965 cache: false, 1966 url: '/order/stage/confirm', 1967 data: formData, 1968 beforeSend: function(){ 1969 $submitBtn.find('.coupon__btn-icon').remove(); 1970 $submitBtn.addClass('_loading').append('<span class="coupon__btn-icon"><i class="fal fa-circle-notch fa-spin"></i></span>'); 1971 $cuponInput.attr("placeholder", "") 1972 }, 1973 success: function(data) { 1974 var $discountBlock = $(data).closest('#order-stage-form').find('tr.discount'); 1975 var discountName = $discountBlock.find('td.name').text(); 1976 var discountPercent = $discountBlock.find('td.percent').html(); 1977 var discountType = $discountBlock.data('discount-type') 1978 // console.log('discountType', discountType) 1979 1980 function getDiscountType(type){ 1981 switch (type) { 1982 case 'sum': 1983 return 'по ÑÑмме заказа'; 1984 break; 1985 case 'cumulative': 1986 return 'накопиÑелÑнаÑ'; 1987 break; 1988 case 'coupon': 1989 return 'по кÑпонÑ'; 1990 break; 1991 default: 1992 return ''; 1993 } 1994 } 1995 if(!discountPercent){ 1996 discountPercent = '0' 1997 } 1998 // ÐапиÑÑваем название и ÑÐ°Ð·Ð¼ÐµÑ Ñкидки по кÑÐ¿Ð¾Ð½Ñ 1999 // $('.cart__sum-row.cart__sum--discount .cart__sum-label').html(discountName); 2000 $('.cart__sum-row.cart__sum--discount .cart__sum-text-price').html(discountPercent); 2001 $('.cart__sum-row.cart__sum--discount .discount-type').html(getDiscountType(discountType)); 2002 2003 // ÐолÑÑаем новÑÑ Ð¸ÑоговÑÑ ÑÑоимоÑÑÑ Ð·Ð°ÐºÐ°Ð·Ð° 2004 var $totalBlock = $(data).closest('#order-stage-form').find('tr.total'); 2005 2006 var discount = $totalBlock.find('td.total-sum').data('discount'); 2007 2008 // СÑиÑаем ÑÐ°Ð·Ð¼ÐµÑ Ñкидки 2009 var discountRub = String(Math.floor(orderSumDefault) - Math.floor(discount)); 2010 2011 $('.cart__sum-row.cart__sum--discount .cart__sum-text-price').data('discount-value', discountRub); 2012 2013 if(discountRub > 0) { 2014 $('.cart__sum-row.cart__sum--discount').show(); 2015 if(discountType === 'coupon'){ 2016 $submitBtn.addClass('_added').find('.coupon__btn-icon').html('<i class="fal fa-check-circle"></i>'); 2017 $cuponInput.removeClass('error') 2018 } else { 2019 // ÐÑо не клик по кнопке reset 2020 if(!isResetBtn){ 2021 $submitBtn.addClass('_not-add').find('.coupon__btn-icon').html('<i class="fal fa-times-circle"></i>'); 2022 $cuponInput.addClass('error'); 2023 2024 return; 2025 } 2026 notAddBtn(); 2027 } 2028 $cuponInput.parent().addClass('_active') 2029 $submitBtn.removeClass('_loading') 2030 } else { 2031 $('.cart__sum-row.cart__sum--discount').hide(); 2032 // ÐÑо не клик по кнопке reset 2033 if(!isResetBtn){ 2034 $submitBtn.addClass('_not-add').find('.coupon__btn-icon').html('<i class="fal fa-times-circle"></i>'); 2035 $cuponInput.addClass('error'); 2036 2037 return; 2038 } 2039 notAddBtn(); 2040 } 2041 function notAddBtn(){ 2042 $submitBtn.removeClass('_loading _added'); 2043 $submitBtn.find('.coupon__btn-icon').remove(); 2044 $cuponInput.parent().removeClass('_active'); 2045 $cuponInput.attr("placeholder", "ÐÑпон оÑиÑен"); 2046 $cuponInput.removeClass('error') 2047 } 2048 // ÐеÑеÑÑиÑÑваем иÑоговÑÑ ÑÑÐ¼Ð¼Ñ Ð·Ð°ÐºÐ°Ð·Ð° 2049 DeliveryModule.changeCartSum(); 2050 }, 2051 error: function(){ 2052 console.log("Ðозникла оÑибка: Ðевозможно оÑпÑавиÑÑ ÑоÑÐ¼Ñ ÐºÑпона."); 2053 } 2054 }); 2055 } 2056 2057 $cuponInput.on('change', function(){ 2058 var $input = $(this); 2059 $('.coupon-hidden-input').val($input.val()) 2060 2061 if($input.val()) { 2062 $input.next('.coupon__clear').addClass('_active') 2063 } else { 2064 $input.next('.coupon__clear').removeClass('_active') 2065 } 2066 2067 ajaxCouponCheck() 2068 } 2069 ) 2070 $resetBtn.on('click', function(){ 2071 $(this).toggleClass('_active') 2072 $cuponInput.parent().removeClass('_active'); 2073 $cuponInput.val('') 2074 $('.coupon-hidden-input').val('') 2075 ajaxCouponCheck(true) 2076 }) 2077} 2078 2079// ÐолÑÑение ÑенÑÑалÑной ÑазмеÑки ÑÑÑаниÑÑ (Ð´Ð»Ñ Ð±ÑÑÑÑого пÑоÑмоÑÑа) 2080$.fn.getColumnContent = function() { 2081 var $block = ($(this).length && $(this).hasClass('product-wrap') ? $(this).filter('.product-wrap') : $('div.product-wrap:eq(0)')); 2082 $block.find('.fancybox-close-small').show(); 2083 return $block; 2084} 2085// ФÑнкÑÐ¸Ñ ÐÑÑÑÑого пÑоÑмоÑÑа ÑоваÑа 2086function quickView() { 2087 2088// ÐÑÑÑÑÑй пÑоÑмоÑÑ ÑоваÑа 2089$(function(){ 2090 // ÐÑи наведении на блок ÑоваÑа загÑÑжаем конÑÐµÐ½Ñ ÑÑого ÑоваÑа, коÑоÑÑй бÑÐ´ÐµÑ Ð¸ÑполÑзоваÑÑÑÑ Ð´Ð»Ñ Ð±ÑÑÑÑого пÑоÑмоÑÑа, ÑÑÐ¾Ð±Ñ Ð·Ð°Ð³ÑÑзка пÑоиÑÑ Ð¾Ð´Ð¸Ð»Ð° бÑÑÑÑее. 2091 $('.products-grid .product').mouseover(function() { 2092 // ÐÑли в блоке Ð½ÐµÑ ÑÑÑлки на бÑÑÑÑÑй пÑоÑмоÑÑ, Ñо не подгÑÑжаем Ð½Ð¸ÐºÐ°ÐºÐ¸Ñ Ð´Ð°Ð½Ð½ÑÑ 2093 var link = $(this).find('a.quickview'); 2094 if(link.length < 1) { 2095 return true; 2096 } 2097 // ÐÑли маÑÑив Ñ Ð¿Ð¾Ð´Ð³ÑÑженнÑми заÑанее каÑÑоÑками ÑоваÑа Ð´Ð»Ñ Ð±ÑÑÑÑого пÑоÑмоÑÑа еÑÑ Ð½Ðµ Ñоздан - Ñоздадим его. 2098 if(typeof(document.quickviewPreload) == 'undefined') { 2099 document.quickviewPreload = []; 2100 } 2101 var href = link.attr('href'); 2102 href += (false !== href.indexOf('?') ? '&' : '?') + 'only_body=1'; 2103 // ÐÑли конÑÐµÐ½Ñ Ð¿Ð¾ данной ÑÑÑлке еÑÑ Ð½Ðµ загÑÑжен 2104 if(typeof(document.quickviewPreload[href]) == 'undefined') { 2105 // СÑавим оÑмеÑÐºÑ Ð¾ Ñом, ÑÑо Ð¼Ñ Ð½Ð°Ñали загÑÑÐ·ÐºÑ ÑÑÑаниÑÑ ÑоваÑа 2106 document.quickviewPreload[href] = 1; 2107 // Ðелаем запÑÐ¾Ñ Ð½Ð° загÑÑÐ·ÐºÑ ÑÑÑаниÑÑ ÑоваÑа 2108 $.get(href, function(content) { 2109 // Ð¡Ð¾Ñ ÑанÑем конÑенÑ, Ð½ÐµÐ¾Ð±Ñ Ð¾Ð´Ð¸Ð¼Ñй Ð´Ð»Ñ Ð±ÑÑÑÑого пÑоÑмоÑÑа в ÑпеÑиалÑно ÑозданнÑй Ð´Ð»Ñ ÑÑого маÑÑив 2110 document.quickviewPreload[href] = $(content).getColumnContent(); 2111 }) 2112 // ÐÑли загÑÑзиÑÑ ÑÑÑаниÑÑ Ð½Ðµ ÑдалоÑÑ, ÑдалÑем оÑмеÑÐºÑ Ð¾ Ñом, ÑÑо Ð¼Ñ Ð¿Ð¾Ð´Ð³ÑÑзили ÑÑÑ ÑÑÑаниÑÑ 2113 .fail(function() { 2114 delete document.quickviewPreload[href]; 2115 }); 2116 } 2117 }); 2118}); 2119} 2120// ÐейÑÑвие пÑи нажаÑии на ÐºÐ½Ð¾Ð¿ÐºÑ Ð±ÑÑÑÑого пÑоÑмоÑÑа. 2121$(function(){ 2122 $(document).on('click', 'a.quickview', function() { 2123 var $link = $(this); 2124 $link.find('span').html('<span class="lds-ellipsis"><span></span><span></span><span></span><span></span></span>') 2125 var href = $(this).attr('href'); 2126 href += (false !== href.indexOf('?') ? '&' : '?') + 'only_body=1'; 2127 2128 quickViewShow(href, $link); 2129 return false; 2130 }); 2131}); 2132// ÐÑÑÑÑÑй пÑоÑмоÑÑ ÑоваÑа 2133function quickViewShow(href, $link) { 2134 $.get(href, function(content) { 2135 $.fancybox.close(); 2136 fancyboxShow($(content).getColumnContent()) 2137 }) 2138 .fail(function() { 2139 alert("Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð±ÑÑÑÑÑй пÑоÑмоÑÑ"); 2140 }) 2141 .always(function(){ 2142 $link.find('span').html('ÐÑÑÑÑÑй пÑоÑмоÑÑ') 2143 }) 2144 function fancyboxShow(content){ 2145 $.fancybox.open(content, { 2146 baseClass: 'quickView', 2147 beforeShow: function(){ 2148 goodsImage() 2149 }, 2150 afterShow: function() { 2151 goodsImage(); 2152 goodsMods(true); 2153 addCart(); 2154 quantity();
2155 initTabs(); 2156 goodspage(); 2157 addTo(); 2158 lozad().observe(); 2159 } 2160 }) 2161 } 2162} 2163// ФÑнкÑÐ¸Ñ ÐÑÑÑÑого пÑоÑмоÑÑа ÑоваÑа c модиÑикаÑией 2164function quickViewMod() { 2165 // ÐейÑÑвие пÑи нажаÑии на ÐºÐ½Ð¾Ð¿ÐºÑ Ð² коÑÐ·Ð¸Ð½Ñ ÑоваÑа c модиÑикаÑией 2166 $(document).ready(function() { 2167 $(document).on('click', 'a._quickviewmod', function() { 2168 if ($(this).closest('.product._min-card').length){ 2169 $(this).addClass('_animated') 2170 } 2171 $(this).find('span').html('<span class="lds-ellipsis"><span></span><span></span><span></span><span></span></span>') 2172 var href = $(this).attr('href'); 2173 href += (false !== href.indexOf('?') ? '&' : '?') + 'only_body=1'; 2174 quickViewShowMod(href, $(this)); 2175 return false; 2176 }); 2177 }); 2178} 2179// ÐÑÑÑÑÑй пÑоÑмоÑÑ ÑоваÑа Ñ Ð¼Ð¾Ð´Ð¸ÑикаÑией 2180function quickViewShowMod(href, $el) { 2181 $.get(href, function(content) { 2182 $.fancybox.close(); 2183 fancyboxShow($(content).find('.product-view__order-wrap')) 2184 }) 2185 .fail(function() { 2186 alert("Ðе ÑдалоÑÑ Ð·Ð°Ð³ÑÑзиÑÑ Ð²ÑÐ±Ð¾Ñ Ð¼Ð¾Ð´Ð¸ÑикаÑий"); 2187 }) 2188 .always(function(){ 2189 $el.removeClass('_animated').find('span').html('РкоÑзинÑ') 2190 }) 2191 function fancyboxShow(content){ 2192 $.fancybox.open(content, { 2193 baseClass: 'quickViewMod product-view', 2194 beforeShow: function(){ 2195 $('.product-modifications select[id^="select-mod"]').hide(); 2196 }, 2197 afterShow: function() { 2198 $('.quickViewMod').addClass('_showed') 2199 if ($el.hasClass('_cart-page')) { 2200 $('.product-view__form').addClass('_in-cart') 2201 } 2202 goodspage(); 2203 goodsMods(true); 2204 addCart(); 2205 quantity(); 2206 } 2207 }) 2208 } 2209} 2210 2211// ФÑнкÑÐ¸Ñ + - Ð´Ð»Ñ ÑоваÑов 2212function quantity() { 2213 $('.qty__btn.qty__btn--plus').off('click').on('click',function(){ 2214 var 2215 quantity = $(this).parent().find('.qty__input'), 2216 currentVal = parseInt(quantity.val()); 2217 if (!isNaN(currentVal)){ 2218 quantity.val(currentVal + 1); 2219 quantity.trigger('change'); 2220 } 2221 return false; 2222 }); 2223 $('.qty__btn.qty__btn--minus').off('click').on('click',function(){ 2224 var 2225 quantity = $(this).parent().find('.qty__input'), 2226 currentVal = parseInt(quantity.val()); 2227 if (!isNaN(currentVal) && !(currentVal <= 1) ){ 2228 quantity.val(currentVal - 1); 2229 quantity.trigger('change'); 2230 } 2231 return false; 2232 }); 2233 // ÐÑли вводÑÑ 0 Ñо заменÑем на 1 2234 $('.qty .qty__input').off('change').on('change',function(){ 2235 if($(this).val() < 1){ 2236 $(this).val(1); 2237 } 2238 }); 2239} 2240 2241// CÑÑÑÑик Ñкидки(в каÑÑоÑке ÑоваÑа) ÑÑаÑой и новой ÑÐµÐ½Ñ 2242function calcDiscount(){ 2243 function getDiscountObj (priceNow, priceOld){ 2244 if(priceOld) { 2245 return { 2246 price: Math.ceil(priceOld - priceNow), 2247 percent: Math.ceil((priceNow * 100) / priceOld) 2248 } 2249 } 2250 } 2251 var $discountBlock = $('.discount-block'); 2252 var priceNow = $discountBlock.data('now-price'); 2253 var priceOld = $discountBlock.data('old-price'); 2254 var discountObj = getDiscountObj(priceNow, priceOld); 2255 2256 if(discountObj){ 2257 $discountBlock.find('.discount-block__percent-num').text(discountObj.percent); 2258 $discountBlock.find('.discount-block__price-num').text(discountObj.price); 2259 $discountBlock.fadeIn(); 2260 } else { 2261 $discountBlock.fadeOut(); 2262 $discountBlock.find('.discount-block__percent-num').text(0); 2263 $discountBlock.find('.discount-block__price-num').text(0); 2264 } 2265} 2266/* СкÑипÑÑ Ð´Ð»Ñ ÐºÐ°ÑÑоÑки ÑоваÑа */ 2267function goodspage() { 2268 // ÐодиÑикаÑÐ¸Ñ ÑелекÑов 2269 $('.product-modifications select[id^="select-mod"]').styler({ 2270 onFormStyled: function () { 2271 $('.product-modifications select[id^="select-mod"]').addClass('_visible') 2272 } 2273 }); 2274 // ÐалидаÑÐ¸Ñ Ð¾ÑзÑвов 2275 $('.goods-opinion-form').validate(); 2276 2277 // Ðобавление оÑзÑва о ÑоваÑе. РейÑинг 2278 if(typeof($('.goods-opinion-form__rating').rating) == "function" ) { 2279 $('.goods-opinion-form__rating input').rating({ 2280 split: 2, 2281 required: true 2282 });
2283 } 2284 2285 // Ðконка Ð´Ð»Ñ Ð¾Ð±Ð½Ð¾Ð²Ð»ÐµÐ½Ð¸Ñ Ð¸Ð·Ð¾Ð±Ñажение капÑи 2286 $('.goods-opinion-form__captcha-refresh-button').on('click',function(){ 2287 RefreshImageAction(this,1,1); 2288 $('.goods-opinion-form__captcha-img').attr('src',$('.goods-opinion-form__captcha-img').attr('src') + '&rand' + Math.random(0,10000)); 2289 return false; 2290 }); 2291 2292 // AJAX оÑпÑавка оÑзÑва 2293 $('.goods-opinion-form__submit-button').on('click',function(){ 2294 var $btn = $(this); 2295 // ÐÐ°Ñ Ð¾Ð´Ð¸Ð¼ ÑоÑмÑ, коÑоÑÑÑ Ð¾ÑпÑавлÑем на ÑеÑвеÑ, Ð´Ð»Ñ Ð´Ð¾Ð±Ð°Ð²Ð»ÐµÐ½Ð¸Ñ ÑоваÑа в коÑÐ·Ð¸Ð½Ñ 2296 var $form = $('.goods-opinion-form'); 2297 // return; 2298 if($form.valid()){ 2299 // ÐолÑÑаем даннÑе ÑоÑмÑ, коÑоÑÑе бÑдем оÑпÑавлÑÑÑ Ð½Ð° ÑеÑÐ²ÐµÑ 2300 var formData = $form.serializeArray(); 2301 // СообÑаем ÑеÑвеÑÑ, ÑÑо Ð¼Ñ Ð¿ÑиÑли ÑеÑез ajax запÑÐ¾Ñ 2302 formData.push({name: 'ajax_q', value: 1}); 2303 2304 $.ajax({
2305 type: "POST", 2306 cache: false, 2307 url: $form.attr('action'), 2308 data: formData, 2309 beforeSend: function(){ 2310 $btn.addClass('_loading').html('<span class="lds-ellipsis pink"><span></span><span></span><span></span><span></span></span>'); 2311 }, 2312 success: function(data) { 2313 var REVIEWS_INDEX = 5; 2314 var $noticeBlock = $(data).find('#goods-opinion-notice'); 2315 2316 if($noticeBlock.data('opinion-type') === 'success') { 2317 $('.goods-opinion .goods-opinion__body').show() 2318 $('.product-view__rating').html($(data).find('.product-view__rating').html()) 2319 $('.goods-opinion-counter').html($(data).find('.goods-opinion-counter').html()) 2320 $('.goods-opinion-list').html($(data).find('.goods-opinion-list').html()) 2321 var opinionsCount = $('.goods-opinion-list').find('.opinion-item').length; 2322 if(opinionsCount > REVIEWS_INDEX){ 2323 $('#goods-opinion__more-button').show(); 2324 } 2325 2326 $form.trigger('reset') 2327 } else { 2328 $('.goods-opinion-form__captcha-refresh-button').trigger('click'); 2329 } 2330 new Noty({ 2331 timeout: "7000", 2332 text: '<div class="noty_content">' + $noticeBlock.text() +'</div>', 2333 type: $noticeBlock.data('opinion-type') 2334 }).show() 2335 2336 $btn.removeClass('_loading').html($btn.data('default-text')); 2337 } 2338 }); 2339 2340 return false 2341 } 2342 }) 2343 // ÐоказаÑÑ Ð±Ð¾Ð»ÑÑе оÑзÑвов 2344 $('#goods-opinion__more-button').on('click',function(){ 2345 var REVIEWS_INDEX = 5; 2346 var opinionsCount = $('.opinion-item').length; 2347 $('.opinion-item').not(':visible').slice(0, REVIEWS_INDEX).show(); 2348 var opinionVisibleCountNow = $('.opinion-item').not(':visible').length; 2349 2350 if(!opinionVisibleCountNow) { 2351 $(this).hide() 2352 } 2353 return false; 2354 }) 2355 // ÐоÑÑавка кнопка "ÐодÑобнее" 2356 $('.goods-delivery .goods-delivery__title').on('click',function(){ 2357 var $btn = $(this).find('.goods-delivery__more-btn'); 2358 2359 $(this).parent().find('.goods-delivery__content').toggle(); 2360 2361 if($btn.hasClass('_active')){ 2362 $btn.html('<svg class="icon"><use xlink:href="/design/sprite.svg#plus-icon"></use></svg>').removeClass('_active'); 2363 return; 2364 } 2365 2366 $btn.addClass('_active').html('<svg class="icon"><use xlink:href="/design/sprite.svg#minus-icon"></use></svg>') 2367 }) 2368 2369 // СопÑÑÑÑвÑÑÑие | С ÑÑим ÑоваÑом ÑмоÑÑÑÑ 2370 $(".pdt-related-views .products-grid, .pdt-related .products-grid").owlCarousel( 2371 $.extend(OWL_DEFAULT, 2372 { 2373 items: 4, 2374 responsive: { 2375 0:{items:1}, 2376 320:{items:1}, 2377 480:{items:1}, 2378 540:{items:2}, 2379 768:{items:3}, 2380 992:{items:4}, 2381 1200:{items:4, nav: true, margin: 15, autoWidth: false} 2382 } 2383 } 2384 )); 2385} 2386 2387// СкÑипÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑии ÑоваÑа 2388function goodsMods(inFancybox){ 2389 // ФÑнкÑÐ¸Ñ ÑобиÑÐ°ÐµÑ ÑвойÑÑва в ÑÑÑокÑ, Ð´Ð»Ñ Ð¾Ð¿ÑÐµÐ´ÐµÐ»ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð´Ð¸ÑикаÑии ÑоваÑа 2390 function getSlugFromGoodsDataFormModificationsProperties(obj) { 2391 var properties = new Array(); 2392 $(obj).each(function(i){ 2393 properties[i] = parseInt($(this).val()); 2394 }); 2395 return properties.sort(function(a,b){return a - b}).join('_'); 2396 } 2397 2398 var 2399 // Ðапоминаем Ð¿Ð¾Ð»Ñ Ð²ÑбоÑа ÑвойÑÑв, Ð´Ð»Ñ ÑÑкоÑÐµÐ½Ð¸Ñ ÑабоÑÑ Ñо знаÑениÑми ÑвойÑÑв 2400 goodsDataProperties = (inFancybox) ? $('.fancybox-content form.product-view__form select[name="form[properties][]"]') : $('form.product-view__form select[name="form[properties][]"]'), 2401 // Ðапоминаем блоки Ñ Ð¸Ð½ÑоÑмаÑией по модиÑикаÑиÑм, Ð´Ð»Ñ ÑÑкоÑÐµÐ½Ð¸Ñ ÑабоÑÑ 2402 goodsDataModifications = (inFancybox) ? $('.fancybox-content div.product-modifications__list') : $('div.product-modifications__list'); 2403 2404 // ÐбновлÑÐµÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð²ÑбоÑа ÑвойÑÑв модиÑикаÑии, Ð´Ð»Ñ Ð¾ÑклÑÑÐµÐ½Ð¸Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи вÑбоÑа по Ñ Ð°ÑакÑеÑиÑÑикам модиÑикаÑии коÑоÑой не ÑÑÑеÑÑвÑеÑ. 2405 function updateVisibility (y) { 2406 // ÐÑовеÑÑем в каждом ÑоÑеднем поле вÑбоÑа модиÑикаÑий, возможно ли подобÑаÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑÐ¸Ñ Ð´Ð»Ñ ÑказаннÑÑ ÑвойÑÑв 2407 goodsDataProperties.each(function(j){ 2408 // ÐÑли Ð¼Ñ ÑÑавниваем знаÑÐµÐ½Ð¸Ñ ÑвойÑÑва не Ñ Ñамим Ñобой, а Ñ Ð´ÑÑгим ÑпиÑком знаÑений ÑвойÑÑв 2409 if( j != y ) { 2410 // ÐÑÐ¾Ñ Ð¾Ð´Ð¸Ð¼ по вÑем знаÑениÑм ÑекÑÑего ÑвойÑÑва модиÑикаÑии ÑоваÑа 2411 $(this).find('option').each(function(){ 2412 // ÐапиÑÑваем вÑеменнÑй маÑÑив ÑвойÑÑв, коÑоÑÑе бÑдем иÑполÑзоваÑÑ Ð´Ð»Ñ Ð¿ÑовеÑки ÑÑÑеÑÑÐ²Ð¾Ð²Ð°Ð½Ð¸Ñ Ð¼Ð¾Ð´Ð¸ÑикаÑии 2413 var checkProperties = new Array(); 2414 $(goodsDataProperties).each(function(i){ 2415 checkProperties[i] = parseInt($(this).val()); 2416 }); 2417 // ÐÑÑаемÑÑ Ð½Ð°Ð¹Ñи модиÑикаÑÐ¸Ñ ÑооÑвеÑÑÑвÑÑÑÑÑ Ð²ÑбÑаннÑм знаÑениÑм ÑвойÑÑв 2418 checkProperties[j] = parseInt($(this).attr('value')); 2419 // СобиÑаем Ñ ÑÑ Ð¾Ð¿ÑеделÑÑÑий модиÑикаÑÐ¸Ñ Ð¿Ð¾ ÑвойÑÑвам 2420 slug = checkProperties.sort(function(a,b){return a - b}).join('_'); 2421 // ÐÑем модиÑикаÑÐ¸Ñ Ð¿Ð¾ вÑем вÑбÑаннÑм знаÑениÑм ÑвойÑÑв ÑоваÑа. ÐÑли модиÑикаÑии Ð½ÐµÑ Ð² возможном вÑбоÑе, оÑмеÑаем поÑенÑиалÑное знаÑение вÑбоÑа как не доÑÑÑпное Ð´Ð»Ñ Ð²ÑбоÑа, Ñ.к. Ñакой модиÑикаÑии неÑ. 2422 if(!goodsDataModifications.filter('[rel="'+slug+'"]').length) { 2423 $(this).attr('disabled', true); 2424 // ÐÑли вÑбÑав данное знаÑение ÑвойÑÑва ÑоваÑа можно подобÑаÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑиÑ, Ñо вÑделÑем ваÑÐ¸Ð°Ð½Ñ Ð²ÑбоÑа как доÑÑÑпнÑй. 2425 } else { 2426 $(this).attr('disabled', false); 2427 } 2428 }); 2429 } 2430 });
2431 } 2432 // ÐбновлÑем возможноÑÑÑ Ð²ÑбоÑа модиÑикаÑии ÑоваÑа по ÑвойÑÑвам. ÐÐ»Ñ ÑÐµÑ ÑвойÑÑв, вÑÐ±Ð¾Ñ Ð¿Ð¾ коÑоÑÑм не возможен, оÑклÑÑаем ÑакÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ. 2433 // ÐÑовеÑÑем возможноÑÑÑ Ð²ÑбоÑа на вÑÐµÑ Ð¿Ð¾Ð»ÑÑ ÐºÑоме пеÑвого, ÑÑÐ¾Ð±Ñ Ð¾ÑклÑÑиÑÑ Ð²Ð¾ вÑÐµÑ Ð¾ÑÑалÑнÑÑ Ð²Ð°ÑианÑÑ, коÑоÑÑе не возможно вÑбÑаÑÑ 2434 updateVisibility (0); 2435 // ÐÑовеÑÑем возможноÑÑÑ Ð²ÑбоÑа на вÑÐµÑ Ð¿Ð¾Ð»ÑÑ ÐºÑоме вÑоÑого, ÑÑÐ¾Ð±Ñ Ð² пеÑвом поле Ñак же оÑклÑÑилаÑÑ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑÑ Ð²ÑбоÑа не ÑÑÑеÑÑвÑÑÑÐ¸Ñ Ð¼Ð¾Ð´Ð¸ÑикаÑий 2436 updateVisibility (1); 2437 2438 // Ðзменение ÑÐµÐ½Ñ ÑоваÑа пÑи изменении Ñ ÑоваÑа ÑвойÑÑва Ð´Ð»Ñ Ð¼Ð¾Ð´Ð¸ÑикаÑии 2439 goodsDataProperties.each(function(){ 2440 $(this).on('change', function(){ 2441 var slug = getSlugFromGoodsDataFormModificationsProperties(goodsDataProperties), 2442 modificationBlock = $('.product-modifications__list[rel="'+slug+'"]'), 2443 modificationId = parseInt(modificationBlock.find('[name="id"]').val()), 2444 modificationArtNumber = modificationBlock.find('[name="art_number"]').val(), 2445 modificationPriceNow = parseInt(modificationBlock.find('[name="price_now"]').val()), 2446 modificationPriceNowFormated = modificationBlock.find('.price_now_formated').html(), 2447 modificationPriceOld = parseInt(modificationBlock.find('[name="price_old"]').val()), 2448 modificationPriceOldFormated = modificationBlock.find('.price_old_formated').html(), 2449 modificationRestValue = parseFloat(modificationBlock.find('[name="rest_value"]').val()), 2450 modificationDescription = modificationBlock.find('.description').html(), 2451 modificationMeasureId = parseInt(modificationBlock.find('[name="measure_id"]').val()), 2452 modificationMeasureName = modificationBlock.find('[name="measure_name"]').val(), 2453 modificationMeasureDesc = modificationBlock.find('[name="measure_desc"]').val(), 2454 modificationMeasurePrecision = modificationBlock.find('[name="measure_precision"]').val(), 2455 modificationIsHasInCompareList= modificationBlock.find('[name="is_has_in_compare_list"]').val(), 2456 modificationGoodsModImageId = modificationBlock.find('[name="goods_mod_image_id"]').val(), 2457 goodsModificationId = $('.goodsDataMainModificationId'), 2458 goodsPriceNow = $('.goodsDataMainModificationPriceNow'), 2459 goodsPriceOld = $('.goodsDataMainModificationPriceOld'), 2460 goodsAvailable = $('.product-view__available'), 2461 goodsAvailableTrue = goodsAvailable.find('.product-view__available-item').filter('._available'), 2462 goodsAvailableFalse = goodsAvailable.find('.product-view__available-item').filter('._not-available'), 2463 goodsAvailableAddCart = $('.product-view__actions._add-to-form .product-view__add-buttons'), 2464 goodsArtNumberBlock = $('.product-view__art-number'), 2465 goodsArtNumber = goodsArtNumberBlock.find('span'), 2466 goodsCompareAddButton = $('.goodsDataCompareButton.add'), 2467 goodsCompareDeleteButton = $('.goodsDataCompareButton.delete'), 2468 goodsModDescriptionBlock = $('.product-modifications__description'), 2469 goodsModEmpty = $('.product-view__mod-empty'); 2470 2471 // ÐзменÑем даннÑе ÑоваÑа Ð´Ð»Ñ Ð²ÑбÑаннÑÑ Ð¿Ð°ÑамеÑÑов. ÐÑли наÑлаÑÑ Ð²ÑбÑÐ°Ð½Ð½Ð°Ñ Ð¼Ð¾Ð´Ð¸ÑикаÑÐ¸Ñ 2472 if(modificationBlock.length) { 2473 // Цена ÑоваÑа 2474 goodsPriceNow.html(modificationPriceNowFormated); 2475 $('.discount-block').data('now-price', modificationPriceNow); 2476 // СÑаÑÐ°Ñ Ñена ÑоваÑа 2477 if(modificationPriceOld > modificationPriceNow) { 2478 goodsPriceOld.show().html(modificationPriceOldFormated); 2479 $('.discount-block').data('old-price', modificationPriceOld); 2480 } else { 2481 goodsPriceOld.hide().html(''); 2482 $('.discount-block').data('old-price', 0); 2483 } 2484 // СÑиÑаем ÑÐºÐ¸Ð´ÐºÑ Ð² блоке 2485 calcDiscount(); 2486 // ÐÑÑÑ Ð»Ð¸ ÑÐ¾Ð²Ð°Ñ ÐµÑÑÑ Ð² налиÑии 2487 if(modificationRestValue>0) { 2488 goodsAvailableTrue.show(); 2489 goodsAvailableFalse.hide(); 2490 goodsAvailableAddCart.show(); 2491 goodsModEmpty.hide(); 2492 // ÐÑли ÑоваÑа Ð½ÐµÑ Ð² налиÑии 2493 } else { 2494 goodsAvailableTrue.hide(); 2495 goodsAvailableFalse.show(); 2496 goodsAvailableAddCart.hide(); 2497 goodsModEmpty.show(); 2498 } 2499 // ÐÑли ÑÐ¾Ð²Ð°Ñ ÐµÑÑÑ Ð² ÑпиÑке ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ 2500 if(modificationIsHasInCompareList>0) { 2501 goodsCompareAddButton.hide(); 2502 goodsCompareDeleteButton.show(); 2503 // ÐÑли ÑоваÑа Ð½ÐµÑ Ð² ÑпиÑке ÑÑÐ°Ð²Ð½ÐµÐ½Ð¸Ñ 2504 } else { 2505 goodsCompareAddButton.show(); 2506 goodsCompareDeleteButton.hide(); 2507 } 2508 // Ðокажем аÑÑикÑл модиÑикаÑии ÑоваÑа, еÑли он Ñказан 2509 if(modificationArtNumber.length>0) { 2510 goodsArtNumberBlock.show(); 2511 goodsArtNumber.html(modificationArtNumber); 2512 // СкÑоем аÑÑикÑл модиÑикаÑии ÑоваÑа, еÑли он не Ñказан 2513 } else { 2514 goodsArtNumberBlock.hide(); 2515 goodsArtNumber.html(''); 2516 } 2517 // ÐпиÑание модиÑикаÑии ÑоваÑа. Ðокажем еÑли оно еÑÑÑ, ÑпÑÑÑем еÑли его Ñ Ð¼Ð¾Ð´Ð¸ÑикаÑии Ð½ÐµÑ 2518 if(modificationDescription.length > 0) { 2519 goodsModDescriptionBlock.show().html('<div>' + modificationDescription + '</div>'); 2520 } else { 2521 goodsModDescriptionBlock.hide().html(); 2522 } 2523 // ÐденÑиÑикаÑÐ¾Ñ ÑоваÑной модиÑикаÑии 2524 goodsModificationId.val(modificationId); 2525 // ÐенÑÐµÑ Ð³Ð»Ð°Ð²Ð½Ð¾Ðµ изобÑажение ÑоваÑа на изобÑажение Ñ Ð¸Ð´ÐµÐ½ÑиÑикаÑоÑом goods_mod_image_id 2526 function changePrimaryGoodsImage(goods_mod_image_id) { 2527 // ÐÑли не Ñказан иденÑиÑикаÑÐ¾Ñ Ð¼Ð¾Ð´Ð¸ÑикаÑии ÑоваÑа, знаÑÐ¸Ñ Ð½Ð¸Ñего менÑÑÑ Ð½Ðµ нÑжно. 2528 if(1 > goods_mod_image_id) { 2529 return true; 2530 } 2531 var 2532 // Ðлок Ñ Ð¸Ð·Ð¾Ð±Ñажением вÑбÑанной модиÑикаÑии ÑоваÑа 2533 goodsModImageBlock = $('.image-list [data-id="' + parseInt(goods_mod_image_id) + '"'), 2534 // Ðлок, в коÑоÑом Ð½Ð°Ñ Ð¾Ð´Ð¸ÑÑÑ Ð³Ð»Ð°Ð²Ð½Ð¾Ðµ изобÑажение ÑоваÑа 2535 MainImageBlock = $('.product-view__main-image'), 2536 // ÐзобÑажение модиÑикаÑии ÑоваÑа, на коÑоÑое нÑжно бÑÐ´ÐµÑ Ð¸Ð·Ð¼ÐµÐ½Ð¸ÑÑ Ð³Ð»Ð°Ð²Ð½Ð¾Ðµ изобÑажение ÑоваÑа. 2537 MediumImageUrl = goodsModImageBlock.find('a').attr('href'), 2538 // Ðлавное изобÑажение, в коÑоÑое бÑдем вÑÑавлÑÑÑ Ð½Ð¾Ð²Ð¾Ðµ изобÑажение 2539 MainImage = MainImageBlock.find('img'), 2540 // Ð ÑÑом обÑекÑе Ñ ÑаниÑÑÑ Ð¸Ð´ÐµÐ½ÑиÑикаÑÐ¾Ñ ÐºÐ°ÑÑинки главного изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð´Ð»Ñ ÐºÐ¾ÑекÑной ÑабоÑÑ Ð³Ð°Ð»ÐµÑеи изобÑажений 2541 MainImageIdObject = MainImageBlock.attr('data-id') 2542 ; 2543 2544 // ÐÑли изобÑажение модиÑикаÑии ÑоваÑа найдено - изменÑем главное изобÑажение 2545 MainImage.attr('src', MediumImageUrl); 2546 MainImageBlock.find('a').attr('href', MediumImageUrl); 2547 // ÐзменÑем иденÑиÑикаÑÐ¾Ñ Ð³Ð»Ð°Ð²Ð½Ð¾Ð³Ð¾ изобÑÐ°Ð¶ÐµÐ½Ð¸Ñ 2548 MainImageBlock.attr("data-id", parseInt(goods_mod_image_id)); 2549 return true; 2550 } 2551 // ÐбновлÑем изобÑажние модиÑикаÑии ÑоваÑа, еÑли оно Ñказано 2552 changePrimaryGoodsImage(modificationGoodsModImageId); 2553 } else { 2554 // ÐÑпÑавим запиÑÑ Ð¾Ð± оÑибке на ÑеÑÐ²ÐµÑ 2555 sendError('no modification by slug '+slug); 2556 alert('Ð ÑÐ¾Ð¶Ð°Ð»ÐµÐ½Ð¸Ñ ÑейÑÐ°Ñ Ð½Ðµ полÑÑаеÑÑÑ Ð¿Ð¾Ð´Ð¾Ð±ÑаÑÑ Ð¼Ð¾Ð´Ð¸ÑикаÑÐ¸Ñ ÑооÑвеÑÑÑвÑÑÑÑÑ Ð²ÑбÑаннÑм паÑамеÑÑам.'); 2557 } 2558 });
2559 }); 2560} 2561// СкÑипÑÑ Ð´Ð»Ñ Ð¸Ð·Ð¾Ð±ÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑоваÑа 2562function goodsImage() { 2563 // ÐзобÑÐ°Ð¶ÐµÐ½Ð¸Ñ ÑоваÑа 2564 $(function(){ 2565 $('.image-list').not('.slick-initialized').slick({ 2566 slidesToShow: 3, 2567 slidesToScroll: 3, 2568 dots: false, 2569 arrows: false, 2570 vertical: true, 2571 verticalSwiping: true, 2572 // centerMode: false, 2573 focusOnSelect: true, 2574 infinite: false 2575 }); 2576 }) 2577} 2578// ÐниÑиализаÑÐ¸Ñ Ñабов на ÑÑÑаниÑе ÑоваÑа 2579function initTabs() { 2580 // Ðлок в коÑоÑом Ð½Ð°Ñ Ð¾Ð´ÑÑÑÑ ÑÐ°Ð±Ñ 2581 var tabBlock = $('.product-tabs'); 2582 if(!tabBlock.length) { 2583 return false; 2584 } 2585 // Ðо ÑмолÑÐ°Ð½Ð¸Ñ Ð´ÐµÐ»Ð°ÐµÐ¼ оÑмеÑÐºÑ Ð¾ Ñом ÑÑо акÑивного Ñаба не найдено 2586 var isFind = 0; 2587 tabBlock.find('.tabs-list__item-link').each(function(i){ 2588 // ÐÑли наÑÑлÑÑ Ð°ÐºÑивнÑй Ñам 2589 if($(this).hasClass('_active')) { 2590 // ÐниÑиализиÑÑем найденнÑй Ñаб 2591 $(this).click(); 2592 // СÑавим оÑмеÑкÑ, о Ñом ÑÑо не нÑжно иниÑиализиÑоваÑÑ Ð¿ÐµÑвÑй Ñаб на ÑÑÑаниÑе 2593 isFind = 1; 2594 } 2595 }); 2596 2597 // ÐÑли не найдено ни одного Ñаба Ñ Ð¾ÑмеÑкой о Ñом ÑÑо он акÑивен 2598 if(!isFind) { 2599 // СÑавим акÑивнÑм пеÑвÑй Ñаб на ÑÑÑаниÑе. 2600 var tab = $('.tabs-list .tabs-list__item .tabs-list__item-link').attr('id').slice(-1); 2601 tabSwitch(tab, true); 2602 } 2603 // ÐÑовеÑÑÐµÑ Ñ ÑÑ Ð¸ еÑли по Ð½ÐµÐ¼Ñ Ð±Ñла оÑкÑÑÑа вкладка, Ñо ÑÑа ÑÑнкÑÐ¸Ñ Ð°Ð²ÑомаÑиÑеÑки оÑкÑÐ¾ÐµÑ ÐµÑ. 2604 checkTabHash(); 2605 // Ðиндим изменение Ñ ÑÑа - пÑовеÑка какой Ñаб нÑжно оÑкÑÑÑÑ. 2606 $(window).bind('hashchange', function() { checkTabHash(); }); 2607} 2608 2609// ÐÑовеÑÑÐµÑ Ñ ÑÑ, пеÑеданÑй полÑзоваÑелем и оÑкÑÑÐ²Ð°ÐµÑ ÑооÑвеÑÑÑвÑÑÑий Ñаздел 2610function checkTabHash() { 2611 // ÐпÑеделÑем ÑекÑÑий Ñ ÑÑ ÑÑÑаниÑÑ 2612 var hash = window.location.hash.substr(1); 2613 if(hash == 'goodsDataOpinionAdd') { 2614 hash = 'show_tab_4'; 2615 } 2616 if(!hash.length || hash.indexOf('show_tab_') == -1) { 2617 return false; 2618 } 2619 // ÐÑкÑÑваем ÑÐ¾Ñ Ñаб, коÑоÑÑй бÑл Ñказан в hash-е 2620 tabSwitch(hash.replace("show_tab_", '')) 2621} 2622 2623// ÐÑÐ±Ð¾Ñ Ð²ÐºÐ»Ð°Ð´ÐºÐ¸ на ÑÑÑаниÑе ÑоваÑа 2624function tabSwitch(nb, noScroll) { 2625 var tabBlock = $('.product-tabs'); 2626 tabBlock.find('.tabs-list__item-link').removeClass('_active'); 2627 tabBlock.find('.tabs-content__item').hide(); 2628 $('#tab_' + nb).addClass('_active'); 2629 $('#content_' + nb).show(); 2630 if('#goodsDataOpinionAdd' != document.location.hash && !noScroll) { 2631 // ÐапиÑÑваем в Ñ ÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ Ð¾ Ñом какой Ñаб ÑейÑÐ°Ñ Ð¾ÑкÑÑÑ, Ð´Ð»Ñ Ð²Ð¾Ð·Ð¼Ð¾Ð¶Ð½Ð¾ÑÑи ÑкопиÑоваÑÑ Ð¸ пеÑедаÑÑ ÑÑÑÐ»ÐºÑ Ñ Ð¾ÑкÑÑÑÑм нÑжнÑм Ñабом 2632 document.location.hash = "#show_tab_" + nb; 2633 } 2634} 2635/* END каÑÑоÑка ÑоваÑа */ 2636 2637// ФÑнкÑии Ð´Ð»Ñ Ð³Ð»Ð°Ð²Ð½Ð¾Ð¹ ÑÑÑаниÑÑ 2638function indexPage() { 2639 // Ð¡Ð»Ð°Ð¹Ð´ÐµÑ Ð½Ð° главной 2640 var $slideshow = $('#slideshow .slideshow__container'); 2641 2642 $slideshow.owlCarousel({ 2643 items: 1, 2644 smartSpeed: 500, 2645 autoplay: true, 2646 loop:true, 2647 lazyLoad: true, 2648 dots: true, 2649 mouseDrag: true, 2650 touchDrag: true, 2651 pullDrag: true, 2652 animateOut: 'fadeOut', 2653 }); 2654 // Ð¡Ð»Ð°Ð¹Ð´ÐµÑ ÐºÐ°ÑегоÑий на главной 2655 var $categories = $('.categories-list'); 2656 2657 $categories.owlCarousel( 2658 $.extend(OWL_DEFAULT, 2659 { 2660 animateOut: 'fadeOut', 2661 onInitialized: function(event){ 2662 var colorsArray = ['#e2d4c4','#e2d4c4','#e2d4c4','#e2d4c4','#e2d4c4','#e2d4c4'] 2663 var element = event.target; 2664 var items = event.item.count; 2665 2666 for(var i = 0; i <= items; i++ ){ 2667 var currentColor = (i >= colorsArray.length) ? colorsArray[Math.abs(colorsArray.length - i)] : colorsArray[i]; 2668 2669 $(element).find('.owl-item').eq(i).find('.categories-list__item').css('background', currentColor) 2670 } 2671 }, 2672 responsive: { 2673 0:{items:1}, 2674 320:{items:2}, 2675 480:{items:3}, 2676 540:{items:3}, 2677 768:{items:5}, 2678 992:{items:5}, 2679 1200:{items:6, nav: true,margin: 15, autoWidth: false} 2680 } 2681 })); 2682 2683 2684 // ТоваÑÑ Ð½Ð° главной | ХиÑÑ | Ðовинки |РаÑпÑодажа 2685 $(".pdt-index .products-grid, .pdt-favorites .products-grid, .pdt-new .products-grid, .pdt-sale .products-grid").owlCarousel( 2686 $.extend(OWL_DEFAULT, 2687 { 2688 items: 4, 2689 responsive: { 2690 0:{items:1}, 2691 320:{items:1}, 2692 480:{items:1}, 2693 540:{items:2}, 2694 768:{items:3}, 2695 992:{items:4}, 2696 1200:{items:4, nav: true, margin: 15, autoWidth: false} 2697 } 2698 } 2699 )); 2700 // ÐаннеÑÑ Ð½Ð° главной 2701 $(function(){ 2702 var $bannersMobile = $('.banners-mobile'); 2703 $('#banners').find('.banner').each(function(i, el){ 2704 var $banner = $(el).clone().addClass('_mobile'); 2705 2706 if(i % 2 === 0){ 2707 var $row = $('<div>').addClass('banners-mobile__row') 2708 $bannersMobile.append($row) 2709 } 2710 $bannersMobile.find('.banners-mobile__row:last').append($banner); 2711 $bannersMobile.find('.banner').each(function(){ 2712 var $bannerLink = $(this).find('a'); 2713 $bannerLink.attr('data-background-image', $bannerLink.attr('data-mobile-bg')) 2714 }) 2715 lozad().observe(); 2716 }) 2717 2718 function bannersSlider() { 2719 if(getClientWidth() <= 375){ 2720 $bannersMobile.addClass('owl-carousel').owlCarousel({ 2721 items: 1, 2722 margin: 15 2723 }) 2724 } else { 2725 $bannersMobile.trigger('destroy.owl.carousel') 2726 } 2727 } 2728 bannersSlider(); 2729 2730 $(window).resize(function(){ 2731 bannersSlider(); 2732 }) 2733 }) 2734 2735 // ÐÑеимÑÑеÑÑва 2736 $(".our-features-list").owlCarousel( 2737 $.extend(OWL_DEFAULT, 2738 { 2739 items: 4, 2740 animateOut: 'fadeOut', 2741 onInitialized: function(event){ 2742 var colorsArray = ['#f5f7f7','#f5f7f7','#f5f7f7','#f5f7f7'] 2743 var element = event.target; 2744 var items = event.item.count; 2745 2746 for(var i = 0; i <= items; i++ ){ 2747 var currentColor = (i >= colorsArray.length) ? colorsArray[Math.abs(colorsArray.length - i)] : colorsArray[i]; 2748 2749 $(element).find('.owl-item').eq(i).find('.our-features-list__item').css('background', currentColor) 2750 } 2751 }, 2752 responsive: { 2753 0:{items:1}, 2754 320:{items:1}, 2755 480:{items:1}, 2756 540:{items:2}, 2757 768:{items:4}, 2758 992:{items:4}, 2759 1200:{items:4, nav: true, margin: 15, autoWidth: false} 2760 } 2761 } 2762 )); 2763 2764 // Ð¡Ð»Ð°Ð¹Ð´ÐµÑ Ð½Ð¾Ð²Ð¾ÑÑей (вÑе новоÑÑи без гÑÑппиÑовки) 2765 $(".news .news__list").owlCarousel( 2766 $.extend(OWL_DEFAULT, 2767 { 2768 items: 2, 2769 onInitialized: function(event){ 2770 var colorsArray = ['#ef7b4f', '#ef7b4f'] 2771 var element = event.target; 2772 var items = event.item.count; 2773 2774 for(var i = 0; i <= items; i++ ){ 2775 var currentColor = (i >= colorsArray.length) ? colorsArray[Math.abs(colorsArray.length - i)] : colorsArray[i]; 2776 2777 $(element).find('.owl-item').eq(i).find('.news__item').css('border-color', currentColor) 2778 } 2779 }, 2780 responsive:{ 2781 0:{items:1}, 2782 576:{items:2}, 2783 992:{items:2}, 2784 1199:{items:2, nav: true,margin: 15, autoWidth: false} 2785 } 2786 })); 2787 // СÑÑÑÑик даÑÑ Ð² акÑиÑÑ 2788 $(function(){counterDate()}) 2789} 2790 2791// ÐÑедзагÑÑзÑик 2792function preloadHide(currentPreloader, nodelay) { 2793 var $preloader = currentPreloader || $('.preloader'), 2794 $spinner = $preloader.find('.content-loading'); 2795 $spinner.fadeOut(); 2796 $preloader.delay(nodelay || 500).fadeOut('slow'); 2797} 2798 2799function preloadShow(currentPreloader) { 2800 var $preloader = currentPreloader || $('.preloader'), 2801 $spinner = $preloader.find('.content-loading'); 2802 $spinner.show(); 2803 $preloader.show(); 2804} 2805function preloadButton($button) { 2806 $button.html('<span class="lds-ellipsis"><span></span><span></span><span></span><span></span></span>') 2807} 2808 2809// ÐагÑÑзка оÑновнÑÑ ÑÑнкÑий Ñаблона 2810$(function(){ 2811 mainFunctions(); 2812 addCart(); 2813 quantity();
2814 quickView(); 2815 quickViewMod(); 2816 // ÐапÑÑк ÐзбÑанное & СÑавнение 2817 addTo(); 2818}); 2819 2820// ÐапÑÑк оÑновнÑÑ ÑÑнкÑий Ð´Ð»Ñ ÑазнÑÑ ÑазÑеÑений ÑкÑана 2821$(function(){ 2822 if(getClientWidth() > 767){ 2823 2824 } 2825 // ÐапÑÑк ÑÑнкÑий пÑи изменении ÑкÑана 2826 $(window).resize(function(){ 2827 if(getClientWidth() > 767){ 2828 2829 } 2830 }); 2831}); 2832 2833// ÐавеÑÑ 2834$(function(){ 2835 // fade in #back-top 2836 var $topBtn = $('#back-top'); 2837 2838 $(window).scroll(function () { 2839 if ($(this).scrollTop() > 100) { 2840 $topBtn.addClass('_active'); 2841 } else { 2842 $topBtn.removeClass('_active'); 2843 } 2844 }); 2845 2846 $topBtn.on('click',function () { 2847 $('body, html').animate({ 2848 scrollTop: 0 2849 }, 800); 2850 return false; 2851 }); 2852}); 2853// ÐодалÑное окно 2854$(function(){ 2855 function modal() { 2856 if(!$.cookie('modal')){ 2857 // ÐÑли cookie не ÑÑÑановлено поÑвиÑÑÑ Ð¾ÐºÐ½Ð¾ Ñ Ð·Ð°Ð´ÐµÑжкой 3 ÑекÑÐ½Ð´Ñ 2858 var delay = 3000; 2859 var data = $("#fancybox-popup").html(); 2860 setTimeout(function(){ 2861 $.fancybox.open(data,{ 2862 autoSize: true, 2863 maxWidth: 700, 2864 padding: 15, 2865 content: data 2866 }); 2867 }, delay) 2868 2869 // Ðапоминаем в кÑÐºÐ°Ñ , ÑÑо поÑеÑиÑÐµÐ»Ñ Ñже Ð·Ð°Ñ Ð¾Ð´Ð¸Ð» 2870 $.cookie('modal', true, { 2871 // ÐÑÐµÐ¼Ñ Ñ ÑÐ°Ð½ÐµÐ½Ð¸Ñ cookie в днÑÑ 2872 expires: 1, 2873 path: '/' 2874 }); 2875 } 2876 } 2877 // УбеÑиÑе комменÑаÑии // Ñо ÑÑÑоÑек ниже Ð´Ð»Ñ Ð·Ð°Ð¿ÑÑка 2878 // modal(); 2879}) 2880 2881// ÐÑÑÑÐµÑ Ð´Ð°ÑÑ Ð´Ð¾ оконÑÐ°Ð½Ð¸Ñ Ð°ÐºÑии 2882function counterDate() { 2883 // УÑÑанавливаем даÑÑ Ð¾Ð±ÑаÑного оÑÑÑеÑа ÐÐ-ÐÐ-ÐÐ 2884 $('.ico._sale-counter').each(function(i, el){ 2885 var end = $(el).attr('end'); 2886 var countDownDate = new Date(end).getTime(); 2887 // Ðбновление ÑÑеÑÑика каждÑÑ ÑекÑÐ½Ð´Ñ 2888 var x = setInterval(function() { 2889 var now = new Date().getTime(); 2890 var distance = countDownDate - now; 2891 var days = Math.floor(distance / (1000 * 60 * 60 * 24)); 2892 var hours = Math.floor((distance % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60)); 2893 var minutes = Math.floor((distance % (1000 * 60 * 60)) / (1000 * 60)); 2894 var seconds = Math.floor((distance % (1000 * 60)) / 1000); 2895 // ÐÑвод 2896 $(el).find('.days span').text(days); 2897 $(el).find('.hours span').text(hours); 2898 $(el).find('.minutes span').text(minutes); 2899 $(el).find('.seconds span').text(seconds); 2900 // СÑеÑÑик завеÑÑен 2901 if (distance < 0) { 2902 clearInterval(x); 2903 $(el).find('span').text("0"); 2904 } 2905 }, 1000); 2906 }) 2907} 2908// ФоÑма поиÑка ( СÑÐ°Ð·Ñ Ð¶Ðµ помеÑаем обÑÐµÐºÑ Ð¿Ð¾Ð¸Ñка, как иниÑиализиÑованнÑй, ÑÑÐ¾Ð±Ñ ÑлÑÑайно не иниÑиализиÑоваÑÑ ÐµÐ³Ð¾ дваждÑ.) 2909function SearchFieldInit(obj) { 2910 // Ðлок в коÑоÑом Ð»ÐµÐ¶Ð¸Ñ Ð¿Ð¾Ð»Ðµ поиÑка 2911 obj.f_search = obj.find('.search__form'); 2912 // ÐÑли Ð¿Ð¾Ð»Ñ Ð¿Ð¾Ð¸Ñка не наÑлоÑÑ, завеÑÑаем ÑабоÑÑ, ниÑего ÑÑÑаÑного. 2913 if(0 == obj.f_search.length) { 2914 return false; 2915 } 2916 // Ðоле поиÑка ÑоваÑа 2917 obj.s_search = obj.f_search.find('.search__input'); 2918 // ÐбнÑление даннÑÑ Ð² ÑоÑме поиÑка 2919 obj.s_reset = obj.f_search.find('.search__form-reset-btn'); 2920 // ÐÑовеÑка на ÑÑÑеÑÑвование ÑÑнкÑии пÑовеÑки Ð¿Ð¾Ð»Ñ Ð¸ дейÑÑвий Ñ Ð½Ð¸Ð¼ 2921 if(typeof(obj.SearchFieldCheck) != 'function') { 2922 console.log('function SearchFieldCheck is not found in object for SearchFieldInit', {status: 'error'}); 2923 return false; 2924 // ÐÑовеÑка, ÑколÑко полей поиÑка нам подÑÑнÑли за Ñаз на иниÑиализаÑÐ¸Ñ 2925 } else if(1 < obj.f_search.length) { 2926 console.log('function SearchFieldInit must have only one search object', {status: 'error'}); 2927 return false; 2928 } 2929 // СоздаÑм ÑÑнкÑÐ¸Ñ ÐºÐ¾ÑоÑÐ°Ñ Ð±ÑÐ´ÐµÑ Ð¾ÑвеÑаÑÑ Ð·Ð° оÑновнÑе дейÑÑÐ²Ð¸Ñ Ñ Ð¿Ð¾Ð»ÐµÐ¼ поиÑка 2930 obj.__SearchFieldCheck = function (isAfter) { 2931 // ÐÑли в поле ÑекÑÑа еÑÑÑ Ð²Ð±Ð¸ÑÑе даннÑе 2932 if(obj.s_search.val().length) { 2933 obj.f_search.addClass('search__filled'); 2934 $('.catalog-button').addClass('search__filled'); 2935 } else { 2936 obj.f_search.removeClass('search__filled'); 2937 $('.catalog-button').removeClass('search__filled'); 2938 } 2939 // ÐÑи нажаÑии клавиÑи даннÑÑ Ð²Ð½ÑÑÑи Ð¿Ð¾Ð»Ñ ÐµÑÑ Ð½ÐµÑ, Ñак ÑÑо пÑовеÑки веÑнÑÑ Ð¸Ð½ÑоÑмаÑÐ¸Ñ ÑÑо менÑÑÑ Ð¿Ð¾Ð»Ðµ не нÑжно, Ñ Ð¾ÑÑ ÐºÐ°Ðº ÑолÑко опеÑаÑÐ¸Ñ Ð±ÑÐ´ÐµÑ Ð·Ð°Ð²ÐµÑÑена даннÑе в поле поÑвÑÑÑÑ. ÐоÑÑÐ¾Ð¼Ñ Ð¿ÑоизведÑм вÑоÑÑÑ Ð¿ÑовеÑÐºÑ ÑпÑÑÑÑ 2 ÑоÑÑÑ ÑекÑндÑ. 2940 if(typeof( isAfter ) == "undefined" || !isAfter) { 2941 setTimeout(function() { obj.__SearchFieldCheck(1); },20); 2942 }else{ 2943 return obj.SearchFieldCheck(); 2944 } 2945 } 2946 // ÐейÑÑÐ²Ð¸Ñ Ñ Ð¸Ð½Ð¿ÑÑ Ð¿Ð¾Ð»ÐµÐ¼ поиÑка 2947 obj.s_search.click(function(){ 2948 obj.__SearchFieldCheck(); 2949 }).focus(function(){ 2950 obj.f_search.addClass('search__focused'); 2951 obj.__SearchFieldCheck(); 2952 }).blur(function(){ 2953 obj.f_search.removeClass('search__focused'); 2954 obj.__SearchFieldCheck(); 2955 }).keyup(function(I){ 2956 switch(I.keyCode) { 2957 // игноÑиÑÑем нажаÑÐ¸Ñ Ð½Ð° ÑÑи клавиÑÑ 2958 case 13: // enter 2959 case 27: // escape 2960 case 38: // ÑÑÑелка ввеÑÑ 2961 case 40: // ÑÑÑелка вниз 2962 break; 2963 2964 default: 2965 obj.f_search.removeClass('search__focused'); 2966 obj.__SearchFieldCheck(); 2967 break; 2968 } 2969 }).bind('paste', function(e){
2970 obj.__SearchFieldCheck(); 2971 setTimeout(function() { obj.__SearchFieldCheck(); },20); 2972 }).bind('cut', function(e){ 2973 $('#search-result').hide(); 2974 $('#search-result .search__result-inner .result-item').remove(); 2975 obj.__SearchFieldCheck(); 2976 }); 2977 //СÑиÑÑваем нажаÑие клавиÑ, Ñже поÑле вÑвода подÑказки 2978 var suggestCount; 2979 var suggestSelected = 0; 2980 2981 function keyActivate(n){ 2982 var $links = $('#search-result .result-item a'); 2983 $links.eq(suggestSelected-1).removeClass('_active'); 2984 2985 if(n == 1 && suggestSelected < suggestCount){ 2986 suggestSelected++; 2987 }else if(n == -1 && suggestSelected > 0){ 2988 suggestSelected--; 2989 } 2990 if( suggestSelected > 0){ 2991 $links.eq(suggestSelected-1).addClass('_active'); 2992 } 2993 } 2994 obj.s_search.keydown(function(I){ 2995 switch(I.keyCode) { 2996 // Ðо нажаÑÐ¸Ñ ÐºÐ»Ð°Ð²Ð¸Ñ Ð¿ÑÑÑем подÑÐºÐ°Ð·ÐºÑ 2997 case 27: // escape 2998 $('#search-result').hide(); 2999 return false; 3000 break; 3001 // ÐажаÑие enter пÑи вÑделенном пÑнкÑе из поиÑка 3002 case 13: // enter 3003 if(suggestSelected){ 3004 var $link = $('#search-result .result-item').eq(suggestSelected - 1).find('a'); 3005 var href = $link.attr('href'); 3006 if(href){ 3007 document.location = href 3008 } else { 3009 $link.trigger('click') 3010 } 3011 return false; 3012 } 3013 break; 3014 // делаем пеÑÐµÑ Ð¾Ð´ по подÑказке ÑÑÑелоÑками клавиаÑÑÑÑ 3015 case 38: // ÑÑÑелка ввеÑÑ 3016 case 40: // ÑÑÑелка вниз 3017 I.preventDefault(); 3018 suggestCount = $('#search-result .result-item').length 3019 if(suggestCount){ 3020 //делаем вÑделение пÑнкÑов в Ñлое, пеÑÐµÑ Ð¾Ð´ по ÑÑÑелоÑкам 3021 keyActivate(I.keyCode-39); 3022 } 3023 break; 3024 default: 3025 suggestSelected = 0; 3026 break; 3027 } 3028 }); 3029 3030 // Ðнопка обнÑÐ»ÐµÐ½Ð¸Ñ Ð´Ð°Ð½Ð½ÑÑ Ð² ÑоÑме поиÑка 3031 obj.s_reset.click(function(){ 3032 obj.s_search.val('').focus(); 3033 $('#search-result').hide(); 3034 $('#search-result .search__result-inner .result-item').remove(); 3035 }) 3036 // ÐÑовеÑка даннÑÑ Ð² ÑоÑме поÑле иниÑиализаÑии ÑÑнкÑионала. Ðозможно бÑаÑÐ·ÐµÑ Ð²ÑÑавил ÑÑда какой-либо ÑекÑÑ, нÑжно обÑабоÑаÑÑ Ð¸ Ñакой ваÑÐ¸Ð°Ð½Ñ 3037 obj.__SearchFieldCheck(); 3038 } 3039// Ðналог php ÑÑнкÑии. 3040function htmlspecialchars(text) { 3041 return text 3042 .replace(/&/g, "&") 3043 .replace(/</g, "<") 3044 .replace(/>/g, ">") 3045 .replace(/"/g, """) 3046 .replace(/'/g, "'"); 3047} 3048function substr(str,start,len){str+='';var end=str.length;if(start<0){start+=end;}end=typeof len==='undefined'?end:(len<0?len+end:len+start);return start>=str.length||start<0||start>end?!1:str.slice(start,end);} 3049function md5(str){var xl;var rotateLeft=function(lValue,iShiftBits){return(lValue<<iShiftBits)|(lValue>>>(32-iShiftBits));};var addUnsigned=function(lX,lY){var lX4,lY4,lX8,lY8,lResult;lX8=(lX&0x80000000);lY8=(lY&0x80000000);lX4=(lX&0x40000000);lY4=(lY&0x40000000);lResult=(lX&0x3FFFFFFF)+(lY&0x3FFFFFFF);if(lX4&lY4){return(lResult^0x80000000^lX8^lY8);} 3050if(lX4|lY4){if(lResult&0x40000000){return(lResult^0xC0000000^lX8^lY8);}else{return(lResult^0x40000000^lX8^lY8);}}else{return(lResult^lX8^lY8);}};var _F=function(x,y,z){return(x&y)|((~x)&z);};var _G=function(x,y,z){return(x&z)|(y&(~z));};var _H=function(x,y,z){return(x^y^z);};var _I=function(x,y,z){return(y^(x|(~z)));};var _FF=function(a,b,c,d,x,s,ac){a=addUnsigned(a,addUnsigned(addUnsigned(_F(b,c,d),x),ac));return addUnsigned(rotateLeft(a,s),b);};var _GG=function(a,b,c,d,x,s,ac){a=addUnsigned(a,addUnsigned(addUnsigned(_G(b,c,d),x),ac));return addUnsigned(rotateLeft(a,s),b);};var _HH=function(a,b,c,d,x,s,ac){a=addUnsigned(a,addUnsigned(addUnsigned(_H(b,c,d),x),ac));return addUnsigned(rotateLeft(a,s),b);};var _II=function(a,b,c,d,x,s,ac){a=addUnsigned(a,addUnsigned(addUnsigned(_I(b,c,d),x),ac));return addUnsigned(rotateLeft(a,s),b);};var convertToWordArray=function(str){var lWordCount;var lMessageLength=str.length;var lNumberOfWords_temp1=lMessageLength+8;var lNumberOfWords_temp2=(lNumberOfWords_temp1-(lNumberOfWords_temp1%64))/64;var lNumberOfWords=(lNumberOfWords_temp2+1)*16;var lWordArray=new Array(lNumberOfWords-1);var lBytePosition=0;var lByteCount=0;while(lByteCount<lMessageLength){lWordCount=(lByteCount-(lByteCount%4))/4;lBytePosition=(lByteCount%4)*8;lWordArray[lWordCount]=(lWordArray[lWordCount]|(str.charCodeAt(lByteCount)<<lBytePosition));lByteCount++;} 3051lWordCount=(lByteCount-(lByteCount%4))/4;lBytePosition=(lByteCount%4)*8;lWordArray[lWordCount]=lWordArray[lWordCount]|(0x80<<lBytePosition);lWordArray[lNumberOfWords-2]=lMessageLength<<3;lWordArray[lNumberOfWords-1]=lMessageLength>>>29;return lWordArray;};var wordToHex=function(lValue){var wordToHexValue="",wordToHexValue_temp="",lByte,lCount;for(lCount=0;lCount<=3;lCount++){lByte=(lValue>>>(lCount*8))&255;wordToHexValue_temp="0"+lByte.toString(16);wordToHexValue=wordToHexValue+wordToHexValue_temp.substr(wordToHexValue_temp.length-2,2);} 3052return wordToHexValue;};var x=[],k,AA,BB,CC,DD,a,b,c,d,S11=7,S12=12,S13=17,S14=22,S21=5,S22=9,S23=14,S24=20,S31=4,S32=11,S33=16,S34=23,S41=6,S42=10,S43=15,S44=21;str=this.utf8_encode(str);x=convertToWordArray(str);a=0x67452301;b=0xEFCDAB89;c=0x98BADCFE;d=0x10325476;xl=x.length;for(k=0;k<xl;k+=16){AA=a;BB=b;CC=c;DD=d;a=_FF(a,b,c,d,x[k+0],S11,0xD76AA478);d=_FF(d,a,b,c,x[k+1],S12,0xE8C7B756);c=_FF(c,d,a,b,x[k+2],S13,0x242070DB);b=_FF(b,c,d,a,x[k+3],S14,0xC1BDCEEE);a=_FF(a,b,c,d,x[k+4],S11,0xF57C0FAF);d=_FF(d,a,b,c,x[k+5],S12,0x4787C62A);c=_FF(c,d,a,b,x[k+6],S13,0xA8304613);b=_FF(b,c,d,a,x[k+7],S14,0xFD469501);a=_FF(a,b,c,d,x[k+8],S11,0x698098D8);d=_FF(d,a,b,c,x[k+9],S12,0x8B44F7AF);c=_FF(c,d,a,b,x[k+10],S13,0xFFFF5BB1);b=_FF(b,c,d,a,x[k+11],S14,0x895CD7BE);a=_FF(a,b,c,d,x[k+12],S11,0x6B901122);d=_FF(d,a,b,c,x[k+13],S12,0xFD987193);c=_FF(c,d,a,b,x[k+14],S13,0xA679438E);b=_FF(b,c,d,a,x[k+15],S14,0x49B40821);a=_GG(a,b,c,d,x[k+1],S21,0xF61E2562);d=_GG(d,a,b,c,x[k+6],S22,0xC040B340);c=_GG(c,d,a,b,x[k+11],S23,0x265E5A51);b=_GG(b,c,d,a,x[k+0],S24,0xE9B6C7AA);a=_GG(a,b,c,d,x[k+5],S21,0xD62F105D);d=_GG(d,a,b,c,x[k+10],S22,0x2441453);c=_GG(c,d,a,b,x[k+15],S23,0xD8A1E681);b=_GG(b,c,d,a,x[k+4],S24,0xE7D3FBC8);a=_GG(a,b,c,d,x[k+9],S21,0x21E1CDE6);d=_GG(d,a,b,c,x[k+14],S22,0xC33707D6);c=_GG(c,d,a,b,x[k+3],S23,0xF4D50D87);b=_GG(b,c,d,a,x[k+8],S24,0x455A14ED);a=_GG(a,b,c,d,x[k+13],S21,0xA9E3E905);d=_GG(d,a,b,c,x[k+2],S22,0xFCEFA3F8);c=_GG(c,d,a,b,x[k+7],S23,0x676F02D9);b=_GG(b,c,d,a,x[k+12],S24,0x8D2A4C8A);a=_HH(a,b,c,d,x[k+5],S31,0xFFFA3942);d=_HH(d,a,b,c,x[k+8],S32,0x8771F681);c=_HH(c,d,a,b,x[k+11],S33,0x6D9D6122);b=_HH(b,c,d,a,x[k+14],S34,0xFDE5380C);a=_HH(a,b,c,d,x[k+1],S31,0xA4BEEA44);d=_HH(d,a,b,c,x[k+4],S32,0x4BDECFA9);c=_HH(c,d,a,b,x[k+7],S33,0xF6BB4B60);b=_HH(b,c,d,a,x[k+10],S34,0xBEBFBC70);a=_HH(a,b,c,d,x[k+13],S31,0x289B7EC6);d=_HH(d,a,b,c,x[k+0],S32,0xEAA127FA);c=_HH(c,d,a,b,x[k+3],S33,0xD4EF3085);b=_HH(b,c,d,a,x[k+6],S34,0x4881D05);a=_HH(a,b,c,d,x[k+9],S31,0xD9D4D039);d=_HH(d,a,b,c,x[k+12],S32,0xE6DB99E5);c=_HH(c,d,a,b,x[k+15],S33,0x1FA27CF8);b=_HH(b,c,d,a,x[k+2],S34,0xC4AC5665);a=_II(a,b,c,d,x[k+0],S41,0xF4292244);d=_II(d,a,b,c,x[k+7],S42,0x432AFF97);c=_II(c,d,a,b,x[k+14],S43,0xAB9423A7);b=_II(b,c,d,a,x[k+5],S44,0xFC93A039);a=_II(a,b,c,d,x[k+12],S41,0x655B59C3);d=_II(d,a,b,c,x[k+3],S42,0x8F0CCC92);c=_II(c,d,a,b,x[k+10],S43,0xFFEFF47D);b=_II(b,c,d,a,x[k+1],S44,0x85845DD1);a=_II(a,b,c,d,x[k+8],S41,0x6FA87E4F);d=_II(d,a,b,c,x[k+15],S42,0xFE2CE6E0);c=_II(c,d,a,b,x[k+6],S43,0xA3014314);b=_II(b,c,d,a,x[k+13],S44,0x4E0811A1);a=_II(a,b,c,d,x[k+4],S41,0xF7537E82);d=_II(d,a,b,c,x[k+11],S42,0xBD3AF235);c=_II(c,d,a,b,x[k+2],S43,0x2AD7D2BB);b=_II(b,c,d,a,x[k+9],S44,0xEB86D391);a=addUnsigned(a,AA);b=addUnsigned(b,BB);c=addUnsigned(c,CC);d=addUnsigned(d,DD);} 3053var temp=wordToHex(a)+wordToHex(b)+wordToHex(c)+wordToHex(d);return temp.toLowerCase();} 3054function utf8_encode(argString){var string=(argString+'');var utftext="";var start,end;var stringl=0;start=end=0;stringl=string.length;for(var n=0;n<stringl;n++){var c1=string.charCodeAt(n);var enc=null;if(c1<128){end++;}else if(c1>127&&c1<2048){enc=String.fromCharCode((c1>>6)|192)+String.fromCharCode((c1&63)|128);}else{enc=String.fromCharCode((c1>>12)|224)+String.fromCharCode(((c1>>6)&63)|128)+String.fromCharCode((c1&63)|128);} 3055if(enc!==null){if(end>
3055start){utftext+=string.substring(start,end);} 3056utftext+=enc;start=end=n+1;}} 3057if(end>start){utftext+=string.substring(start,string.length);} 3058return utftext;} 3059function rand(min,max){var argc=arguments.length;if(argc===0){min=0;max=2147483647;}else if(argc===1){throw new Error('Warning: rand() expects exactly 2 parameters, 1 given');}return Math.floor(Math.random()*(max-min+1))+min;} 3060// ÐолÑÑиÑÑ md5 Ñ ÑÑ 3061function GenMd5Hash () { 3062 return substr(md5(parseInt(new Date().getTime() / 1000, 10)),rand(0,24),8); 3063} 3064// Ðивой поиÑк 3065$(function() { 3066 // ÐавигаÑÐ¸Ð¾Ð½Ð½Ð°Ñ ÑаблиÑа над ÑаблиÑей Ñ Ð´Ð°Ð½Ð½Ñми 3067 var searchBlock = $('.search'); 3068 var options = { 3069 target: 'form.store_ajax_catalog', 3070 url: '/admin/store_catalog', 3071 items_target: '#goods', 3072 last_search_query: '', 3073 }; 3074 // Ðо ÑÑÐ¾Ð¼Ñ Ñ ÑÑÑ Ð±Ñдем обÑаÑаÑÑÑÑ Ðº обÑекÑÑ Ð¸Ð·Ð²Ð½Ðµ 3075 var randHash = GenMd5Hash(); 3076 // ÐÑли обÑекÑа Ñо ÑпиÑком ajax ÑÑнкÑий не ÑÑÑеÑÑвÑеÑ, ÑоздаÑм ÐµÑ 3077 if(typeof(document.SearchInCatalogAjaxQuerySender) == 'undefined') { 3078 document.SearchInCatalogAjaxQuerySender = {}; 3079 } 3080 // Ðоле поиÑка обновилоÑÑ, внÑÑÑи него можно вÑполнÑÑÑ Ð»ÑбÑе дейÑÑÐ²Ð¸Ñ 3081 searchBlock.SearchFieldCheck = function () { 3082 // ÐÑменÑем вÑполнение поÑледнего запÑÑенного ÑеÑез ÑаймаÑÑ ÑкÑипÑа, еÑли Ñаковой бÑл. 3083 if(typeof(document.lastTimeoutId) != 'undefined') { 3084 clearTimeout(document.lastTimeoutId); 3085 } 3086 document.lastTimeoutId = setTimeout("document.SearchInCatalogAjaxQuerySender['" + randHash + "']('" + htmlspecialchars(searchBlock.s_search.val()) + "');", 300); 3087 } 3088 // ÐÑпÑавлÑÐµÑ Ð·Ð°Ð¿ÑÐ¾Ñ Ðº ÑеÑвеÑÑ Ñ Ð·Ð°Ð´Ð°Ñей поиÑка ÑоваÑов 3089 document.SearchInCatalogAjaxQuerySender[randHash] = function (old_val) { 3090 var last_search_query_array = []; 3091 3092 // sessionStorage is available 3093 if (typeof sessionStorage !== 'undefined') { 3094 try { 3095 if(sessionStorage.getItem('lastSearchQueryArray')){ 3096 last_search_query_array = JSON.parse(sessionStorage.getItem('lastSearchQueryArray')); 3097 3098 // ÐÐ°Ñ Ð¾Ð´Ð¸Ð¼ ÑооÑвеÑÑÑвие ÑекÑÑего запÑоÑа Ñ sessionStorage 3099 var currentSearch = $.grep(last_search_query_array, function (item){ 3100 return item.search_query == old_val 3101 })[0] 3102 3103 if(currentSearch){ 3104 showDropdownSearch(JSON.parse(currentSearch.content)); 3105 3106 return; 3107 } 3108 } else { 3109 sessionStorage.setItem('lastSearchQueryArray', '[]') 3110 } 3111 } catch(e) { 3112 // sessionStorage is disabled 3113 } 3114 } 3115 3116 // ÐÑли ÑекÑÑее знаÑение не изменилоÑÑ ÑпÑÑÑÑ 300 ÑоÑÑÑ ÑекÑÐ½Ð´Ñ Ð¸ ÑÑо знаÑение не Ñо по коÑоÑÐ¾Ð¼Ñ Ð¼Ñ Ð¸Ñкали ÑоваÑÑ Ð¿Ñи поÑледнем запÑоÑе 3117 if(htmlspecialchars(searchBlock.s_search.val()) == old_val && searchBlock.s_search.val().length > 1) { 3118 // Ðапоминаем ÑÑÐ¾Ñ Ð·Ð°Ð¿ÑоÑ, коÑоÑÑй Ð¼Ñ Ð¸Ñем, ÑÑÐ¾Ð±Ñ Ð½Ðµ пÑоизвводиÑÑ Ð¿Ð¾Ð²ÑоÑного поиÑка 3119 options['last_search_query'] = old_val; 3120 // ÐобавлÑем наÑей ÑоÑме поиÑка поле загÑÑзки 3121 searchBlock.f_search.addClass('search__loading'); 3122 // СобиÑаем паÑамеÑÑÑ Ð´Ð»Ñ Ajax запÑоÑа 3123 var 3124 params = { 3125 'ajax_q' : 1, 3126 'goods_search_field_id' : 0, 3127 'q' : options['last_search_query'], 3128 }, 3129 // ÐбÑÐµÐºÑ Ñо знаÑением коÑоÑого бÑдем в поÑледÑÑвии пÑовеÑÑÑÑ Ð¿Ð¾Ð»ÑÑеннÑе Ð¾Ñ ÑеÑвеÑа даннÑе 3130 search_field_obj = searchBlock.s_search; 3131 // ÐÑкÑом оÑпÑавлÑем запÑÐ¾Ñ Ð½Ð° поиÑк нÑжнÑÑ ÑоваÑов и каÑегоÑий 3132 $.ajax({
3133 type: "POST", 3134 cache: false, 3135 url: searchBlock.f_search.attr('action'), 3136 data: params, 3137 dataType: 'json', 3138 beforeSend: function(){ 3139 searchBlock.find('.search-submit .header-searchIcon').html('<i class="fal fa-circle-notch fa-spin"></i>') 3140 }, 3141 success: function(data) { 3142 // ÐÑли набÑаннÑй запÑÐ¾Ñ Ð½Ðµ ÑооÑвеÑÑÑвÑÐµÑ Ð¿Ð¾Ð»ÑÑеннÑм даннÑм, видимо запÑÐ¾Ñ Ð¿ÑиÑÑл не вовÑемÑ, оÑменÑем его. 3143 if(search_field_obj.val() != old_val) { 3144 return false; 3145 } 3146 3147 // ÐапиÑÑваем в sessionStorage 3148 if (typeof sessionStorage !== 'undefined') { 3149 try { 3150 sessionStorage.setItem('lastSearchQueryArray', JSON.stringify(last_search_query_array)) 3151 3152 // ÐÐ°Ñ Ð¾Ð´Ð¸Ð¼ ÑооÑвеÑÑÑвие ÑекÑÑего запÑоÑа Ñ sessionStorage 3153 var currentSearch = $.grep(last_search_query_array, function (item){ 3154 return item.search_query == old_val 3155 })[0] 3156 //ÐÑли Ñакого запÑоÑа еÑÑ Ð½Ðµ бÑло запиÑем его в sessionStorage 3157 if(typeof currentSearch == 'undefined'){ 3158 // ÐобавлÑем в маÑÑив поÑÐ»ÐµÐ´Ð½Ð¸Ñ Ð·Ð°Ð¿ÑоÑов даннÑе по ÑекÑÑÐµÐ¼Ñ Ð·Ð°Ð¿ÑоÑÑ 3159 last_search_query_array.push({ 3160 search_query: old_val, 3161 content: JSON.stringify(data) 3162 }) 3163 sessionStorage.setItem('lastSearchQueryArray', JSON.stringify(last_search_query_array)) 3164 } 3165 } catch(e) { 3166 // sessionStorage is disabled 3167 } 3168 } 3169 // ÐоказÑваем ÑезÑлÑÑаÑÑ Ð½Ð° оÑнове пÑиÑедÑÐ¸Ñ Ð´Ð°Ð½Ð½ÑÑ 3170 showDropdownSearch(data); 3171 3172 // УбиÑаем инÑоÑмаÑÐ¸Ñ Ð¾ Ñом ÑÑо запÑÐ¾Ñ Ð³ÑÑзиÑÑÑ. 3173 searchBlock.f_search.removeClass("search__loading"); 3174 searchBlock.find('.search-submit .header-searchIcon').html('<i class="fal fa-search"></i>') 3175 // console.log('andAJAX') 3176 } 3177 }); 3178 }else{ 3179 $("#search-result").removeClass('_active').hide(); 3180 } 3181 3182 function showDropdownSearch(data){ 3183 // ÐÑобÑажение каÑегоÑий в поиÑке 3184 if(data.category.length!=undefined && data.category.length>0){ 3185 $(".result-category .result-item").remove(); 3186 $("#search-result").removeClass('_active').hide(); 3187 $("#search-result .search__result-inner .result-category").find('.result__title').remove(); 3188 $("#search-result .search__result-inner .result-category").append('<h3 class="result__title">ÐаÑегоÑии</h3>'); 3189 3190 for(Ñ=0; Ñ < data.category.length; Ñ++){ 3191 // ÐÑовеÑка налиÑÐ¸Ñ Ð¸Ð·Ð¾Ð±ÑÐ°Ð¶ÐµÐ½Ð¸Ñ 3192 if (data.category[Ñ].image_icon == null) { 3193 data.category[Ñ].image_icon = '/design/no-photo-icon.png' 3194 } else { 3195 data.category[Ñ].image_icon = data.category[Ñ].image_icon; 3196 } 3197 // ÐÑобÑажаем ÑезÑлÑÑÐ°Ñ Ð¿Ð¾Ð¸Ñка 3198 $("#search-result").addClass('_active').show(); 3199 $("#search-result .search__result-inner .result-category").append('<div class="result-item" data-id="'+ data.category[Ñ].goods_cat_id +'"><a href="'+ data.category[Ñ].url +'"><img src="'+ data.category[Ñ].image_icon +'" class="goods-image-icon" /><span>'+ data.category[Ñ].goods_cat_name +'</span></a></div>'); 3200 } 3201 }else{ 3202 $(".result-category .result-item").remove(); 3203 $("#search-result").removeClass('_active').hide(); 3204 } 3205 // ÐÑобÑажение ÑоваÑов в поиÑке 3206 if(data.goods.length!=undefined && data.goods.length>0){ 3207 $(".result-goods .result-item").remove(); 3208 $("#search-result").removeClass('_active').hide(); 3209 3210 $("#search-result .search__result-inner .result-goods").find('.result__title').remove(); 3211 $("#search-result .search__result-inner .result-goods").append('<h3 class="result__title">ТоваÑÑ</h3>'); 3212 3213 for(i=0; i < data.goods.length; i++){ 3214 // ÐÑовеÑка налиÑÐ¸Ñ Ð¸Ð·Ð¾Ð±ÑÐ°Ð¶ÐµÐ½Ð¸Ñ 3215 if (data.goods[i].image_icon == null) { 3216 data.goods[i].image_icon = '/design/no-photo-icon.png' 3217 } else { 3218 data.goods[i].image_icon = data.goods[i].image_icon; 3219 } 3220 // ÐÑобÑажаем ÑезÑлÑÑÐ°Ñ Ð¿Ð¾Ð¸Ñка 3221 $("#search-result").addClass('_active').show(); 3222 if(i <= 4 ){ 3223 $("#search-result .search__result-inner .result-goods").append('<div class="result-item" data-id="'+ data.goods[i].goods_id +'"><a href="'+ data.goods[i].url +'"><img src="'+ data.goods[i].image_icon +'" class="goods-image-icon" /><span>'+ data.goods[i].goods_name +'</span></a></div>'); 3224 } 3225 3226 // ÐÑли поÑледнÑÑ Ð¸ÑеÑаÑÐ¸Ñ Ñикла вÑÑавим ÐºÐ½Ð¾Ð¿ÐºÑ "показаÑÑ Ð²Ñе" 3227 if(i == data.goods.length - 1){ 3228 $("#search-result .search__result-inner #show-wrap").remove(); 3229 3230 var $showAllBtn = $('<a>').text('ÐÑе ÑезÑлÑÑаÑÑ').addClass('show-all').on('click', function(){$('.
3230search__form').submit();}) 3231 var $showAllWrap = $('<div>').attr('id', 'show-wrap').addClass('result-item').append($showAllBtn) 3232 3233 $("#search-result .search__result-inner .result-goods").append($showAllWrap) 3234 } 3235 } 3236 }else{ 3237 $(".result-goods .result-item").remove(); 3238 $("#search-result").removeClass('_active').hide(); 3239 } 3240 // СкÑÑваем ÑезÑлÑÑаÑÑ Ð¿Ð¾Ð¸Ñка еÑли ниÑего не найдено 3241 if((data.category.length + data.goods.length) > 0){ 3242 $("#search-result").addClass('_active').show(); 3243 // console.log("show"); 3244 }else{ 3245 $("#search-result").removeClass('_active').hide(); 3246 // console.log("hide"); 3247 } 3248 3249 if((data.category.length) > 0){ 3250 $(".result-category").show().addClass('_visible'); 3251 }else{ 3252 $(".result-category").hide().removeClass('_visible'); 3253 } 3254 3255 if((data.goods.length) > 0){ 3256 $(".result-goods").show(); 3257 }else{ 3258 $(".result-goods").hide(); 3259 } 3260 } 3261 } 3262 SearchFieldInit(searchBlock); 3263 3264});
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.