function() { try { $(function() { try { var e, t, n, r, o, a, l, s, u, c, d; return a = window.plp_page_id || window.plp.page_id, e = window.plp_content_id || window.plp.content_id, d = $.cookie("visit_id"), s = 0, l = 2500, n = { ru: { error: "Не удалось отправить форму!", validate: "Неправильно заполнены поля:", interval: "Пожалуйста, повторите отправку через пару секунд.", required: "Поле «%field%» обязательно для заполнения.", email: "Поле «%field%» должно содержать ваш настоящий e-mail адрес.", phone: "Поле «%field%» должно содержать правильный номер телефона.", number: "Поле «%field%» должно быть правильным числом." }, am: { error: "Հայտն ուղարկված չէ, խնդրում ենք կրկին փորձել", validate: "Տողերը սխալ են լրացված", interval: "Տողերը սխալ են մուտքագրված: Խնդրում ենք կրկին փորձել մի քանի վարկյանից", required: "Խնդրում ենք լրացրեք «%field%» տողը, այն պարտադիր է", email: "Խնդրում ենք «%field%» տողում գրանցել Ձեր իրական էլ. փոստի հասցեն", phone: "Խնդրում ենք «%field%» տողում գրանցել Ձեր ճիշտ հեռախոսահամարը", number: "Խնդրում ենք «%field%» տողում գրանցել ճիշտ ամսաթիվ" }, bg: { error: "Неуспешно изпращане на заявката!", validate: "Грешно запълнени полета:", interval: "Моля, изпратете отново заявката след няколко секунди.", required: "Полето «%field%» е задължително за запълване.", email: "Полето «%field%» трябва да съдържа истинският Ви имейл адрес.", phone: "Полето «%field%» задължително трябва да съдържа правилният Ви телефонен номер.", number: "Полето «%field%» трябва да съдържа правилно изписано число." }, uk: { error: "Не вдалося відправити форму!", validate: "Неправильно заповнені поля:", interval: "Будь ласка, повторіть відправку через пару секунд", required: "Поле «%field%» обов'язково для заповнення.", email: "Поле «%field%» повинно містити ваш справжній e-mail адресу.", phone: "Поле «%field%» повинно містити правильний номер телефону.", number: "Поле «%field%» має бути правильним числом." }, md: { error: "Не удалось отправить форму!", validate: "Неправильно заполнены поля:", interval: "Пожалуйста, повторите отправку через пару секунд.", required: "Поле «%field%» обязательно для заполнения.", email: "Поле «%field%» должно содержать ваш настоящий e-mail адрес.", phone: "Поле «%field%» должно содержать правильный номер телефона.", number: "Поле «%field%» должно быть правильным числом." }, en: { error: "Error sending form!", validate: "Fields are not filled corectly:", interval: "Pleasy try again in a few seconds.", required: "The field «%field%» is required.", email: "The field «%field%» must contain you real email address.", phone: "The field «%field%» must contain you real phone number.", number: "The field «%field%» must be a number." }, es: { error: "No es posible enviar el formulario!", validate: "Los campos rellenados de forma incorrecta:", interval: "Por favor, inténtelo de nuevo después de unos segundos.", required: "Campo «%field%» rellenar obligatorio.", email: "Campo «%field%» debe contener su dirección electrónica actual.", phone: "Campo «%field%» debe contener el numero de teléfono en el formato adecuado.", number: "Campo «%field%» debe ser el numero correcto." }, it: { error: "Il form non è stato inviato!", validate: "I campi richiesti sono stati compilati in modo errato:", interval: "Per favore riprova l'invio tra qualche istante.", required: "«%field%» Campo obbligatorio.", email: "Il campo «%field%» deve contenere un indirizzo e-mail valido.", phone: "Il campo «%field%» deve contenere un numero di telefono valido.", number: "Il campo «%field%» deve avere un numero corretto." }, fr: { error: "Impossible d'envoyer le formulaire!", validate: "Ne pas correctement rempli les champs:", interval: "Se il vous plaît essayez d'envoyer un couple de secondes", required: "Le champ «%field%» est nécessaire.", email: "Le champ «%field%» doit contenir votre adresse e-mail réelle.", phone: "Le champ «%field%» doit contenir un numéro de téléphone valide.", number: "Le champ «%field%» doit être un nombre valide." }, de: { error: "Die form konnte nicht gesendet!", validate: "Sei nicht korrekt ausgefüllt Felder:", interval: "Versuchen Sie, ein paar Sekunden zu senden.", required: "Das Feld «%field%» ist nicht erforderlich.", email: "Das Feld «%field%» muss auf Ihren eigenen E-Mail Adresse enthalten.", phone: "Das Feld «%field%» muss eine gültige Telefonnummer enthalten.", number: "Das Feld «%field%» muss eine gültige Zahl sein." }, "pt-BR": { error: "Não foi possível enviar o formulário!", validate: "Não campos preenchidos corretamente:", interval: "Por favor, tente enviar um par de segundos", required: "O campo «%field%» é necessário.", email: "O campo «%field%» deve conter o seu endereço de e-mail real.", phone: "O campo «%field%» deve conter um número de telefone válido.", number: "O campo «%field%» deve ser um número válido." }, cs: { error: "Nepodařilo se odeslat formulář!", validate: "Nesprávně vyplněné pole:", interval: "Prosím zopakujte odeslání za pár vteřin.", required: "Pole «%field%» nutné k vyplnění.", email: "Pole «%field%» musí obsahovat vaši správnou e-mail adresu.", phone: "Pole «%field%» musí obsahovat vaše správné telefonní číslo.", number: "Pole «%field%» musí být prvočislem." }, el: { error: "Η φόρμα δεν στάλθηκε!", validate: "Τα πεδία δεν συμπληρώθηκαν σωστά:", interval: "Παρακαλώ, προσπαθήστε ξανά σε μερικά δευτερόλεπτα.", required: "Το πεδίο «%field%» απαιτείται.", email: "Το πεδίο «%field%» πρέπει να περιλαμβάνει την πραγματική διεύθυνση e-mail σας.", phone: "Το πεδίο «%field%» πρέπει να περιέχει τον σωστό αριθμό τηλεφώνου.", number: "Το πεδίο «%field%» θα πρέπει να είναι ο σωστός αριθμός." }, lt: { error: "Nepasisekė nusiųsti formą!", validate: "Neteisingai užpildyti laukai:", interval: "Prašome pakartoti siuntimą po keletą sekundžių.", required: "Laukas «%field%» būtinas užpildymui.", email: "Laukas «%field%» turi būti nurodytas jūsų esamas email adresas.", phone: "Laukas «%field%» turi būti teisingai nurodytas telefono numeris.", number: "Laukas «%field%» turu būti nurodytas teisingas skaičius." }, pl: { error: "Nie udało się wysłać formularz", validate: "Nieprawidłowo wpisałeś dane", interval: "Proszę powtórzyć za parę sekund", required: 'Informacja "%field%" musi być wypełniona', email: "Nieprawidłowy adres e-mail", phone: "Nieprawidłowy numer telefonu", number: "Wpisałeś nieprawidłowe dane" }, kz: { error: "Формаңыз жіберілмеді!", validate: "Қате толтырылған:", interval: "Өтінеміз, бірнеше секундтан соң тағы қайталап байқап көріңіз.", required: '"%field%" толтыруыңыз міндетті.', email: '"%field%" сіздің e-mail адресіңіз шын болуы тиіс.', phone: '"%field%" телефон номеріңізді дұрыстап жазуыңызды сұранамыз.', number: '"%field%" санды дұрыстап жазуыңызды сұранамыз.' }, "zh-CN": { error: "填好的表格发不了", validate: "这些字段填写无法", interval: "请稍等再发送", required: "该“%field%” 字段必须填好", email: "该“%field%” 字段必须含真实的电子邮件", phone: "该“%field%” 字段必须填写有效手机号码", number: "该“%field%” 字段必须填写正确的号码" }, ge: { error: "ფორმა არ გაიგზავნა!", validate: "შემდეგი ველები არასწორად არის შევსებული:", interval: "გაიმეორეთ გაგზავნის", required: "ამ ველის «%field%» შევსება აუცილებელია.", email: "ეს ველი «%field%» უნდა შეიცავდეს თქვენი ნამდვილი ელ-ფოსტის მისამართს.", phone: "ეს ველი «%field%» უნდა შეიცავდეს რეალურად არსებულ ტელეფონის ნომერს.", number: "ამ ველში «%field%» უნდა იყოს სწორი რიცხვი." }, ro: { error: "Formularul nu a fost trimis!", validate: "Câmp completat incorect:", interval: "Vă rugăm să încercați peste câteva secunde.", required: "Câmp «%field%» obligator.", email: "Câmpul «%field%» trebuie să conțină adresa Dvs. e-mail veridică.", phone: "Câmpul «%field%» trebuie să conțină numărul Dvs. de telefon veridic.", number: "Câmpul «%field%»trebuie să conțină o dată veridică." }, lv: { error: "Jūsu ziņojums netika nosūtīts!", validate: "Lauks nav aizpildīts vai ir aizpildīts nepareizi:", interval: "Lūdzu, nosūtiet atkārtoti pēc dažām sekundēm.", required: "Lauks «%field%» jāaizpilda obligāti.", email: "Laukā «%field%» jābūt Jūsu īstai e-pasta adresei.", phone: "Laukā «%field%» jānorāda īstais telefona numurs.", number: "Laukā «%field%» jānorāda tikai cipari." }, he: { error: "תופס נשלח ללא הצלחה", validate: "השדות ממולאים לא נכון", interval: "אנא לשלוח שוב בעוד כמה שניות", required: 'חייב למלאות שדה "%field%"', email: 'שדה "%field%" חייב לכלול את כתובת הדואר האלקטרוני האמיתית שלך', phone: 'שדה "%field%" חייב לכלול מספר טלפון נכון', number: 'שדה "%field%" צריך להיות המספר הנכון' } }, t = n[window.plp_lang || window.plp.lang || "ru"], c = "Да", u = "Нет", r = function(e, t, n) { try { var r; return "xs" === plp.screen ? (r = e, t && (r += "\n" + t), alert(r), void(n && n())) : Modernizr.cssanimations ? swal({ title: e, text: t || null, type: "error" }, n) : swal({ title: e, text: t || null, imageUrl: "//s.platformalp.ru/swal/error.png" }, n) } catch (i) { error_handler(i, "red libs 2", arguments.callee) } }, o = function(e, t, n) { try { var r; return "xs" === plp.screen ? (r = e, t && (r += "\n" + t), alert(r), void(n && n())) : Modernizr.cssanimations ? swal({ title: e, text: t || null, type: "success" }, n) : swal({ title: e, text: t || null, imageUrl: "//s.platformalp.ru/swal/success.png" }, n) } catch (i) { error_handler(i, "red libs 3", arguments.callee) } }, $("[data-ym_goal]").each(function() { try { var e; if (e = $(this), e.closest("form.form").length) return; return e.on("click", function() { try { var t; if (t = e.data("ym_goal"), window.yaCounter) return yaCounter.reachGoal(t) } catch (n) { error_handler(n, "red libs 5", arguments.callee) } }) } catch (t) { error_handler(t, "red libs 4", arguments.callee) } }), $("[data-ga_category]").each(function() { try { var e; if (e = $(this), e.closest("form.form").length) return; return e.on("click", function() { try { var t, n; if (n = e.data("ga_category"), t = e.data("ga_action"), window.ga) return ga("send", "event", n, t) } catch (r) { error_handler(r, "red libs 7", arguments.callee) } }) } catch (t) { error_handler(t, "red libs 6", arguments.callee) } }), $("form.form").each(function() { try { var n, f, p, h, m, y, g, v; return p = $(this), m = p.data("form"), y = p.closest("[data-item]").data("item") || [], g = p.closest('[data-modal="cart"]').length ? plp.cart.list : [], h = p.data("fields"), v = { hit: { page_id: a, ab_id: e, visit_id: d }, form: m, item: y, items: g, fields: h }, f = p.find(".field").each(function(e) { try { var t, n, o; if (t = $(this), o = v.fields[e], "radio-list" === o.type && t.find("input").prop("name", _.uniqueId("radio")), "textarea" === o.type && t.find("textarea").val(function(e, t) { try { return $.trim(t) } catch (n) { error_handler(n, "red libs 10", arguments.callee) } }), "file" === o.type) return (n = function() { try { return t.find(":file").on("change", function() { try { var e, o; for (o = t.find(":file").closest(".pseudo"), o.clone().insertAfter(o), e = $("
"), i = 0, attributes = o[0].attributes; i < attributes.length; i++) e.attr(attributes[i].name, attributes[i].value); return e.append(o.children()), e.appendTo("body").hide(), o.remove(), e.ajaxSubmit({ beforeSend: function() { try { return t.find("span.state").text("Загрузка...") } catch (e) { error_handler(e, "red libs 13", arguments.callee) } }, uploadProgress: function(e, n, r, i) { try { return t.find("span.state").text("Загрузка... " + i + "%") } catch (o) { error_handler(o, "red libs 14", arguments.callee) } }, success: function(r) { try { return t.data("result", r), t.find("span.state").text("Файл загружен"), e.remove(), n() } catch (i) { error_handler(i, "red libs 15", arguments.callee) } }, error: function(i) { try { return r("Ошибка загрузки!", 400 === i.status ? i.responseText : null), t.find("span.state").text("Выберите файл..."), t.data("result", null), e.remove(), n() } catch (o) { error_handler(o, "red libs 16", arguments.callee) } }, dataType: "json" }) } catch (a) { error_handler(a, "red libs 12", arguments.callee) } }) } catch (e) { error_handler(e, "red libs 11", arguments.callee) } })() } catch (a) { error_handler(a, "red libs 9", arguments.callee) } }), p.find("[data-placeholder]").each(function() { try { var e, t; if (e = $(this), !e.val()) return; return e.data("placeholder", !0), t = e.val(), e.on("focus", function(t) { try { if (e.data("placeholder")) return e.val("").data("placeholder", !1) } catch (n) { error_handler(n, "red libs 18", arguments.callee) } }), e.on("blur", function(n) { try { if ("" === e.val()) return e.val(t).data("placeholder", !0) } catch (r) { error_handler(r, "red libs 19", arguments.callee) } }) } catch (n) { error_handler(n, "red libs 17", arguments.callee) } }), n = p.find(".submit"), p.on("submit", function(e) { try { var i, a, d, h, y, b; return e.preventDefault(), $.now() - l < s ? void r(t.error, t.interval) : (d = [], f.each(function(e) { try { var n; if ("checkbox-input" === v.fields[e].type ? v.fields[e].value = $(this).find("input").prop("checked") ? c : u : "radio-list" === v.fields[e].type ? v.fields[e].value = $(this).find("[type=radio]:checked").val() || "" : "select-menu" === v.fields[e].type ? v.fields[e].value = $(this).find("select").val() : "hidden" === v.fields[e].type ? (v.fields[e].name = v.fields[e].id, v.fields[e].value = $(this).find("input").val()) : "file" === v.fields[e].type ? v.fields[e].value = $(this).data("result") || "" : (n = $(this).find(".form-control").data("placeholder"), v.fields[e].value = n ? "" : $(this).find(".form-control").val()), v.fields[e].required && "" === v.fields[e].value && d.push(t.required.replace("%field%", v.fields[e].name)), "" === v.fields[e].value) return; if ("email" !== v.fields[e].type || /.+@.+\..+/.test(v.fields[e].value) || d.push(t.email.replace("%field%", v.fields[e].name)), "phone" === v.fields[e].type && !/.*\d.*\d.*\d.*\d.*/.test(v.fields[e].value)) return d.push(t.phone.replace("%field%", v.fields[e].name)) } catch (r) { error_handler(r, "red libs 21", arguments.callee) } }), "checkbox" === m.privacy && (i = p.closest(".body").find(".agreement-checkbox input").prop("checked"), h = m.privacy_checkbox.replace(/[<>]/g, ""), i === !1 && d.push(t.required.replace("%field%", h))), d.length > 0 ? void r(t.validate, d.join("\n")) : (b = { name: "", phone: "", email: "", count: "", fields: {}, item: {}, send: v, items: [] }, _.each(v.fields, function(e) { try { var t; if ("" === b[e.type] && (b[t = e.type] || (b[t] = e.value)), !b.fields[e.name]) return b.fields[e.name] = e.value } catch (n) { error_handler(n, "red libs 22", arguments.callee) } }), _.each(v.item, function(e) { try { var t, n; return (t = b.item)[n = e.type] || (t[n] = _.escape(e.value)) } catch (r) { error_handler(r, "red libs 23", arguments.callee) } }), _.each(v.items, function(e, t) { try { return b.items[t] = {}, _.each(e, function(e) { try { var n, r, i, o; "amount" === e.type || "photo" === e.type ? (n = b.items[t])[i = e.type] || (n[i] = e.value) : (r = b.items[t])[o = e.type] || (r[o] = _.escape(e.value)) } catch (a) { error_handler(a, "red libs 25", arguments.callee) } }) } catch (n) { error_handler(n, "red libs 24", arguments.callee) } }), m.payPrice && !b.items.length && b.items.push({ amount: 1, price: m.payPrice, title: m.payTitle }), n.prop("disabled", !0), y = function(e, i, a) { try { var l, u, c, d; return _.defaults(e, b), console.log("Данные формы", { time: e.time, name: e.name, email: e.email, phone: e.phone, count: e.count, fields: e.fields, item: e.item, items: e.items }), n.prop("disabled", !1), 0 === e.result ? r(t.error, e.errors) : 1 === e.result ? (d = n.data("ym_goal"), window.yaCounter && yaCounter.reachGoal(d), u = n.data("ga_category"), l = n.data("ga_action"), window.ga && ga("send", "event", u, l), "msg" === m.after ? o(_.template(m.msg, e), null) : "url" === m.after ? location.href = _.template(m.url, e) : "addhtml" === m.after ? $("body").append(_.template(m.addhtml, e)) : "pay" === m.after ? e.url ? location.href = e.url : e.form && $(e.form).hide().appendTo("body").submit() : "msg+url" === m.after ? o(_.template(m.msg, e), null, function() { try { return location.href = _.template(m.url, e) } catch (t) { error_handler(t, "red libs 27", arguments.callee) } }) : "msg+pay" === m.after ? o(_.template(m.msg, e), null, function() { try { if (e.url) return location.href = e.url; if (e.form) return $(e.form).hide().appendTo("body").submit() } catch (t) { error_handler(t, "red libs 28", arguments.callee) } }) : "msg+addhtml" === m.after ? o(_.template(m.msg, e), null, function() { try { return $("body").append(_.template(m.addhtml, e)) } catch (t) { error_handler(t, "red libs 29", arguments.callee) } }) : "js" === m.after && (c = "(function () { var time = <%= time %>; var name = '<%- name %>'; var email = '<%- email %>'; var phone = '<%- phone %>'; var count = '<%- count %>'; var fields = <%= JSON.stringify(fields) %>; var item = <%= JSON.stringify(item) %>; var items = <%= JSON.stringify(items) %>; var send = <%= JSON.stringify(send) %>;" + m.js + "})();", $.globalEval(_.template(c, e)))) : r(t.error, null), p.trigger("reset").find("[data-placeholder]").data("placeholder", !0), g.length && plp.cart.empty(), plp.modal.closeAll(), s = $.now() } catch (f) { error_handler(f, "red libs 26", arguments.callee) } }, a = function(e, i, o) { try { return n.prop("disabled", !1), r(t.error, 400 === e.status ? e.responseText : null), s = $.now() } catch (a) { error_handler(a, "red libs 30", arguments.callee) } }, $.ajax("/app/c", { type: "POST", data: JSON.stringify(v), dataType: "json", contentType: "application/json", processData: !1, success: y, error: y }))) } catch (w) { error_handler(w, "red libs 20", arguments.callee) } }) } catch (b) { error_handler(b, "red libs 8", arguments.callee) } }) } catch (f) { error_handler(f, "red libs 1", arguments.callee) } }) } catch (e) { error_handler(e, "red libs 0", arguments.callee) } }.call(this),