1$(function () { 2 3 //Ñоздание Ñаблона Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ множеÑÑвенного Ð¿Ð¾Ð»Ñ 4 $(".jsCalc__input_multi").each(function () { 5 var _this = $(this); 6 _this.clone().addClass(_this.attr('data-class-pattern')).insertBefore(_this); 7 }); 8 9 //клик по пÑÑÑой облаÑÑи Ð´Ð»Ñ Ð·Ð°ÐºÑÑÑÐ¸Ñ Ð²ÑпадаÑÑего ÑпиÑка 10 $(document).click(function (e) { 11 if (!$(e.target).hasClass('jsCalc__select-option')) { 12 var inputValue = $('.jsCalc__input-value').eq(0); 13 $('.jsCalc__select-value').css('display', 'none'); 14 $('.jsCalc__input-value').removeClass(inputValue.attr('data-class-open')); 15 } 16 }); 17 18 //оÑкÑÑÑÑ\ÑкÑÑÑÑ Ð²ÑпадаÑÑий ÑпиÑок 19 $(document).on('click', '.jsCalc__select', function (e) { 20 e.preventDefault(); 21 var _this = $(this); 22 var parent = _this.parents(e.handleObj.selector.split('__')[0]).eq(0); 23 var inputValue = _this.parents('.jsCalc__input-value').eq(0); 24 var selectValue = $('.jsCalc__select-value', inputValue).eq(0); 25 26 $('.jsCalc__select-value').not(selectValue).css('display', 'none'); 27 $('.jsCalc__input-value').not(inputValue).removeClass(inputValue.attr('data-class-open')); 28 selectValue.slideToggle(); 29 inputValue.toggleClass(inputValue.attr('data-class-open')); 30 31 return false; 32 }); 33 34 //вÑбÑаÑÑ ÑÐ»ÐµÐ¼ÐµÐ½Ñ Ð² вÑпадаÑÑем ÑпиÑке 35 $(document).on('click', '.jsCalc__select-option', function (e) { 36 e.preventDefault(); 37 var _this = $(this); 38 var parent = _this.parents(e.handleObj.selector.split('__')[0]).eq(0); 39 var input = _this.parents('.jsCalc__input').eq(0); 40 var inputValue = _this.parents('.jsCalc__input-value').eq(0); 41 var select = $('.jsCalc__select', inputValue).eq(0); 42 var selectValue = $('.jsCalc__select-value', inputValue).eq(0); 43 44 $('.jsCalc__select-value').css('display', 'none'); 45 $('.jsCalc__input-value').removeClass(inputValue.attr('data-class-open')); 46 47 var price = _this.attr('data-price') || 0; 48 var value = _this.attr('data-value') || 0; 49 50 select.removeClass(select.attr('data-class-error')); 51 select.text(_this.text()); 52 select.attr('data-price', price); 53 select.attr('data-value', value); 54 55 var sum = jsCalcGetInputSum(input); 56 $(".jsCalc__price", input).attr('data-price', sum).text(priceFormat(sum)); 57 if (sum > 0) { 58 input.addClass(input.attr('data-class-active')); 59 inputValue.addClass(inputValue.attr('data-class-active')); 60 } else { 61 input.removeClass(input.attr('data-class-active')); 62 inputValue.removeClass(inputValue.attr('data-class-active')); 63 } 64 65 var total = jsCalcGetTotalSum(parent); 66 $(".jsCalc__total", parent).attr('data-price', total).text(priceFormat(total)); 67 68 return false; 69 }); 70 71 //добавиÑÑ Ð²Ð°ÑÐ¸Ð°Ð½Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑвенного Ð¿Ð¾Ð»Ñ 72 $(document).on('click', '.jsCalc__btn-add', function (e) { 73 e.preventDefault(); 74 var _this = $(this); 75 var parent = _this.parents(e.handleObj.selector.split('__')[0]).eq(0); 76 var input = _this.parents('.jsCalc__input').eq(0); 77 var inputValue = _this.parents('.jsCalc__input-value').eq(0); 78 var newValue = inputValue.clone() 79 80 $(".jsCalc__select", newValue).text('не вÑбÑан'); 81 newValue.removeClass(newValue.attr('data-class-pattern')); 82 newValue.insertAfter(inputValue); 83 84 jsCalcButtonManage(input); 85 return false; 86 }); 87 88 //ÑдалиÑÑ Ð²Ð°ÑÐ¸Ð°Ð½Ñ Ð¼Ð½Ð¾Ð¶ÐµÑÑвенного Ð¿Ð¾Ð»Ñ 89 $(document).on('click', '.jsCalc__btn-remove', function (e) { 90 e.preventDefault(); 91 var _this = $(this); 92 var parent = _this.parents(e.handleObj.selector.split('__')[0]).eq(0); 93 var input = _this.parents('.jsCalc__input').eq(0); 94 var inputValue = _this.parents('.jsCalc__input-value').eq(0); 95 inputValue.remove(); 96 jsCalcButtonManage(input); 97 98 var sum = jsCalcGetInputSum(input); 99 $(".jsCalc__price", input).attr('data-price', sum).text(priceFormat(sum)); 100 101 var total = jsCalcGetTotalSum(parent); 102 $(".jsCalc__total", parent).attr('data-price', total).text(priceFormat(total)); 103 104 return false; 105 }); 106 107 108 //валидаÑиÑ, оÑообÑÐ°Ð¶ÐµÐ½Ð¸Ñ Ð²ÑплÑваÑÑего Ð¿Ð¾Ð»Ñ 109 $(document).on('click', '.jsCalc__order', function (e) { 110 e.preventDefault(); 111 var _this = $(this); 112 var parent = _this.parents(e.handleObj.selector.split('__')[0]).eq(0); 113 var hasError = false;
114 $(".jsCalc__input_required .jsCalc__price", parent).each(function () { 115 var __this = $(this); 116 var _parent = __this.parents('.jsCalc__input').eq(0); 117 if (!_parent.hasClass(_parent.attr('data-class-pattern'))) { 118 var price = parseInt(__this.attr('data-price')) || 0; 119 if (price == 0) { 120 if (!hasError) { 121 hasError = $('.jsCalc__select', _parent).eq(0); 122 } 123 $('.jsCalc__select', _parent).addClass($('.jsCalc__select', _parent).eq(0).attr('data-class-error')); 124 } else { 125 $('.jsCalc__select', _parent).removeClass($('.jsCalc__select', _parent).eq(0).attr('data-class-error')); 126 } 127 } 128 }); 129 130 if (!hasError) { 131 $.fancybox.open({ 132 src: '#calc' + parent.attr('data-id'), 133 type: 'inline', 134 opts: { 135 touch: false, 136 parentEl: '[data-id=' + parent.attr('data-id') + '] .jsCalc__form', 137 afterShow: function (instance, current) { 138 $('.jsCalc__phone').inputmask('+7 (999) 999-99-99'); 139 } 140 } 141 }); 142 } else { 143 $('body, html').animate({ 144 scrollTop: hasError.offset().top - 256 145 }, 500); 146 } 147 return false; 148 }); 149 150 $(document).on('submit', '.jsCalc__form', function (e) { 151 e.preventDefault(); 152 var _this = $(this); 153 var parent = _this.parents(e.handleObj.selector.split('__')[0]).eq(0); 154 var popup = $(".jsCalc__popup", parent); 155 var canSubmit = true; 156 $(".jsField", popup).each(function () { 157 if (!jsFieldValide($(this))) { 158 canSubmit = false; 159 } 160 }); 161 162 if (canSubmit) { 163 var post = _this.serializeArray(); 164 post.push({ 165 name: 'sessid', 166 value: SESSID, 167 }); 168 $(".jsCalc__select", parent).each(function () { 169 var input = $(this).parents('.jsCalc__input').eq(0); 170 if (!input.hasClass(input.attr('data-class-pattern'))) { 171 post.push({ 172 name: $(this).attr('data-name'), 173 value: $(this).attr('data-value'), 174 }) 175 } 176 }); 177 178 $.post(_this.attr('action'), post, function (data) { 179 if (data.status == true) { 180 $.fancybox.close(); 181 alert(data.message.join()); 182 location.reload(); 183 } else { 184 alert(data.message.join()); 185 } 186 }, 'json'); 187 } 188 return false; 189 }); 190 191 $(".jsCalc__input").each(function () { 192 jsCalcButtonManage($(this)); 193 }); 194 195 196 197 // ------ÐÐÐÐÐÐÐРЬ------- 198 199 if ($('.jsCalendar').length != 0) { 200 201 $('.jsCalc__select-option').click(function () { 202 203 if ($('.jsCalc__select-option').hasClass('calc__select-option_disable')) { 204 $('.jsCalc__select-option').removeClass('calc__select-option_disable') 205 } 206 207 if ($(this).is("[data-month]")) { 208 $('.jsCalc__select-month').attr('data-month', this.getAttribute('data-month')); 209 } 210 211 212 if ($(this).is("[data-date]")) { 213 $('.jsCalc__select-date').attr('data-date', this.getAttribute('data-date')); 214 } 215 216 var date = $('.jsCalc__select-date').attr('data-date'); 217 var month = $('.jsCalc__select-month').attr('data-month'); 218 month = +month; 219 date = +date; 220 221 if ((date == undefined && month == undefined) || 222 (month == 2 && date == 30) || 223 (month == 2 && date == 31) || 224 (month == 4 && date == 31) || 225 (month == 6 && date == 31) || 226 (month == 9 && date == 31) || 227 (month == 11 && date == 31)) {} else { 228 229 $('.jsCalendarList').addClass('calendar__list_preloader') 230 231/* $.post( 232 "/calendar/", { 233 ajax: 'Y', 234 day: date, 235 month: month, 236 }, 237 onAjaxSuccess, 238 "json" 239 ); 240 */ 241 function onAjaxSuccess(data) { 242 $('.jsCalendarList').removeClass('calendar__list_preloader'); 243 var content = data.data.html; 244 $('.jsCalendarList').html(content); 245 if ($('.calendar__item ').length == 0) { 246 $('.jsCalc__select-value').css('position', 'relative') 247 } else { 248 $('.jsCalc__select-value').css('position', 'absolute') 249 } 250 }; 251 }; 252 location.href='/calendar/'+month+'/'+date+'/'; 253 return false; 254 }); 255 256 $('.jsCalcDate .jsCalc__select-option').click(function () { 257 $('.jsCalcDate .jsCalc__select-option').removeClass('calc__select-option_active'); 258 $(this).addClass('calc__select-option_active'); 259 }); 260 261 $('.jsCalcMonth .jsCalc__select-option').click(function () { 262 $('.jsCalcMonth .jsCalc__select-option').removeClass('calc__select-option_active'); 263 $(this).addClass('calc__select-option_active'); 264 }); 265 266 function dateFilter() { 267 var a = $('.jsCalc__select-month').attr('data-month'); 268 var b = $('.jsCalc__select-date').attr('data-date'); 269
270 if (a == 2 || a == 4 || a == 6 || a == 9 || a == 11) { 271 $('.jsCalcDate .jsCalc__select-option').eq(-1).addClass('calc__select-option_disable'); 272 } 273 274 if (b == 31 && (a == 2 || a == 4 || a == 6 || a == 9 || a == 11)) { 275 $('.jsCalc__select-date').text('1') 276 } 277 278 if (a == 2) { 279 $('.jsCalcDate .jsCalc__select-option').eq(-2).addClass('calc__select-option_disable'); 280 } 281 if (b == 30 && (a == 2)) { 282 $('.jsCalc__select-date').text('1') 283 } 284 } 285 286 dateFilter(); 287 288 289 $('.jsCalc__select-option').click(function () { 290 dateFilter() 291 }); 292 } 293}); 294 295 296 297function jsCalcButtonManage(input) { 298 $(".jsCalc__btn-add", input).css('display', 'none'); 299 $(".jsCalc__btn-remove", input).css('display', 'inline-block'); 300 301 $(".jsCalc__btn-remove", input).eq(0).css('display', 'none'); 302 $(".jsCalc__btn-add:last", input).css('display', 'inline-block'); 303} 304 305function jsCalcGetInputSum(input) { 306 var sum = 0; 307 $(".jsCalc__select", input).each(function () { 308 sum += parseInt($(this).attr('data-price')) || 0; 309 }) 310 return sum; 311} 312 313function jsCalcGetTotalSum(calc) { 314 var sum = 0; 315 $(".jsCalc__price", calc).each(function () { 316 sum += parseInt($(this).attr('data-price')) || 0; 317 }) 318 return sum; 319}
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.