! function(n) {
  function t(e) {
    this.options = n.extend({
      holder: null,
      orderForm: "#order-form",
      labelFullName: '[for="OrderForm_fullName"]',
      labelFullNameExample: ".OrderForm_fullNameExample",
      labeladdressExample: ".OrderCityExample",
      recalculateLink: ".coupon__link",
      deliveryBlocks: ".fancy-radio.delivery-radio > .holder",
      paymentField: "#OrderForm_payment",
      chosenDelivery: "#js-chosen-delivery",
      chosenDeliveryPrice: "#js-chosen-delivery-price",
      deliveryInputs: '[name="delivery"]',
      deliveryLabels: '[name="delivery"] + label',
      paymentInputs: '[name="payment"]',
      paymentLabels: '[name="payment"] + label',
      paymentBlock: "#js-order-form-payment",
      tableBlock: "#js-order-form-table",
      orderTexts: ".order-total__text",
      fieldsBlock: "#js-order-form-fields",
      paymentBlocks: ".fancy-radio.payment-radio",
      product: ".product"
    }, e), this.options.holder && (this.holder = n(this.options.holder), this.totalPrice = 0);
    var r = this;
    this.init = function() {
      this.orderHelper = new OrderHelper, this.orderHelper.init(), this.findElements(), this.setEqualHeight(this.deliveryLabels), this.attachEvents()
    }, this.findElements = function() {
      this.orderForm = this.holder.find(this.options.orderForm), this.chosenDelivery = this.holder.find(this.options.chosenDelivery), this.chosenDeliveryPrice = this.holder.find(this.options.chosenDeliveryPrice), this.labelFullName = this.holder.find(this.options.labelFullName), this.labelFullNameExample = this.holder.find(this.options.labelFullNameExample), this.labeladdressExample = this.holder.find(this.options.labeladdressExample), this.recalculateLink = this.holder.find(this.options.recalculateLink), this.deliveryLabels = this.holder.find(this.options.deliveryLabels), this.deliveryInputs = this.holder.find(this.options.deliveryInputs), this.paymentInputs = this.holder.find(this.options.paymentInputs), this.paymentLabels = this.holder.find(this.options.paymentLabels), this.paymentField = this.holder.find(this.options.paymentField), this.fieldsBlock = this.holder.find(this.options.fieldsBlock), this.tableBlock = this.holder.find(this.options.tableBlock), this.paymentBlock = this.holder.find(this.options.paymentBlock), this.deliveryBlocks = this.holder.find(this.options.deliveryBlocks), this.paymentBlocks = this.paymentBlock.find(this.options.paymentBlocks), this.product = this.tableBlock.find("tr.product"), this.orderTexts = this.tableBlock.find(this.options.orderTexts)
    }, this.attachEvents = function() {
      n.each(this.deliveryBlocks, function(e) {
        n(this).bind("click", function() {
          var e, t, l, i, o = n(this),
            s = o.find("label");
          r.orderHelper.validatePhone() && (s.hasClass("fancy-radio__label--checked") || (r.deliveryLabels.removeClass("fancy-radio__label--checked"), s.addClass("fancy-radio__label--checked"), setTimeout(function() {
            var e = n("#js-order-form-payment"),
              t = n(e).offset().top;
            n("body,html").animate({
              scrollTop: t
            }, 500)
          }, 100), e = o.index(), t = parseInt(o.data("type")) - 1, (i = (l = r.fieldsBlock.find("#OrderForm_cityRegion")).parent()).hasClass("jq-selectbox") && (i.after(l), i.remove(), r.fieldsBlock.find('[class*="jq-selectbox"]').remove()), r.orderHelper.switchDelivery(o), r.orderHelper.cityRegionField.is("select") ? r.fieldsBlock.find("select#OrderForm_cityRegion").styler({
            selectSearch: !1
          }) : r.orderHelper.cityRegionField.addClass("form__input"), r.orderHelper.addressField.addClass("form__input"), 1 == t ? (r.holder.find(".post").hide(), r.labelFullName.text(r.labelFullName.text().replace("Полное ФИО", "Имя")), r.labeladdressExample.hide(), r.labelFullNameExample.text(r.labelFullNameExample.text().replace("Например, Иванов Аркадий Дмитриевич", "Например, Аркадий"))) : (r.holder.find(".post").show(), r.labelFullName.text(r.labelFullName.text().replace("Имя", "Полное ФИО")), r.labeladdressExample.show(), r.labelFullNameExample.text(r.labelFullNameExample.text().replace("Например, Аркадий", "Например, Иванов Аркадий Дмитриевич"))), r.paymentBlock.slideDown(), r.paymentBlocks.hide(), r.paymentBlocks.eq(e).slideDown(), r.setEqualHeight(r.paymentBlocks.eq(e).find("label")), r.fieldsBlock.slideUp(), r.tableBlock.slideUp(), r.chosenDelivery.text(o.data("name")), r.chosenDeliveryPrice.text(o.data("price")), r.orderHelper.clearErrors(t), r.orderTexts.addClass("l-hidden"), r.orderTexts.filter('[data-type="' + t + '"]').removeClass("l-hidden"), r.countCart()))
        })
      }), n.each(this.paymentLabels, function() {
        n(this).bind("click", function() {
          var e = n(this);
          e.hasClass("fancy-radio__label--checked") || (r.paymentLabels.removeClass("fancy-radio__label--checked"), n(this).addClass("fancy-radio__label--checked"), setTimeout(function() {
            var e = n("#step-3"),
              t = n(e).offset().top + 35;
            n("body,html").animate({
              scrollTop: t
            }, 500)
          }, 100), r.tableBlock.slideDown(), r.fieldsBlock.slideDown(), r.paymentField.val(e.data("id")))
        })
      }), this.recalculateLink.on("click", function(e) {
        var t = n(".coupon");
        t.find(".error").hide(), n.post(linkOptions.base + "/order/getPromo", n.extend(ajaxParams, {
          promo: t.find("#OrderForm_promo").val()
        }), function(e) {
          r.tableBlock.find("tr.discount,tr.promo").remove(), e.status ? r.tableBlock.find("tr:last-child()").after(e.content) : t.find(".error").text("Такая скидка не найдена.").show(), r.discountRow = r.tableBlock.find("tr.discount"), r.countCart()
        }, "json"), e.preventDefault()
      })
    }, this.countCart = function() {
      var e, t, l = 0,
        i = 0;
      i += parseInt(r.chosenDeliveryPrice.text()), n.each(r.tableBlock.find(".product"), function() {
        var e = parseInt(n(this).find(".i-table-big-price .sum").text());
        isNaN(e) || (l += e)
      }), i += l, r.hasOwnProperty("discountRow") && r.discountRow.length && (e = parseInt(r.discountRow.find("span.percent").text()), i += -1 * (t = Math.round(l * e / 100)), r.discountRow.find(".sum").text(t)), r.tableBlock.find(".order-total__title .sum").text(i), r.tableBlock.find(".order-total__text .sum").text(Math.round(1.05 * i))
    }, this.setEqualHeight = function(e) {
      var t = 0;
      e.each(function() {
        currentHeight = n(this).height(), currentHeight > t && (t = currentHeight)
      }), e.height(t)
    }
  }
  n.fn.orderProcess = function(e) {
    return this.each(function() {
      new t(n.extend(e, {
        holder: n(this)
      })).init()
    })
  }
}(jQuery);
function txtaresize()
  {
let textareas = document.querySelectorAll('.txta'),
    hiddenDiv = document.createElement('div'),
    content = null;
for (let j of textareas) {
  j.classList.add('txtstuff');
}
hiddenDiv.classList.add('txta');
hiddenDiv.style.display = 'none';
hiddenDiv.style.whiteSpace = 'pre-wrap';
hiddenDiv.style.wordWrap = 'break-word';
for(let i of textareas) {
  (function(i) {
    i.addEventListener('input', function() {
      i.parentNode.appendChild(hiddenDiv);
      i.style.resize = 'none';
      i.style.overflow = 'hidden';
      content = i.value;
      content = content.replace(/\n/g, '<br>');
      hiddenDiv.innerHTML = content + '<br style="line-height: 3px;">';
      hiddenDiv.style.visibility = 'hidden';
      hiddenDiv.style.display = 'block';
      i.style.height = hiddenDiv.offsetHeight + 'px';
      hiddenDiv.style.visibility = 'visible';
      hiddenDiv.style.display = 'none';
    });
  })(i);
}
}
txtaresize();