(function(e, t) { if (typeof exports === "object" && exports) { t(exports) } else if (typeof define === "function" && define.amd) { define(["exports"], t) } else { t(e.Mustache = {}) } })(this, function(e) { function r(e) { return typeof e === "function" } function i(e) { return e.replace(/[\-\[\]{}()*+?.,\\\^$|#\s]/g, "\\$&") } function o(e, t) { return s.call(e, t) } function a(e) { return !o(u, e) } function l(e) { return String(e).replace(/[&"'\/]/g, function(e) { return f[e] }) } function m(t, r) { function m() { if (f && !l) { while (u.length) delete o[u.pop()] } else { u = [] } f = false; l = false } function x(e) { if (typeof e === "string") e = e.split(h, 2); if (!n(e) || e.length !== 2) throw new Error("Invalid tags: " + e); w = new RegExp(i(e[0]) + "\\s*"); E = new RegExp("\\s*" + i(e[1])); S = new RegExp("\\s*" + i("}" + e[1])) } if (!t) return []; var s = []; var o = []; var u = []; var f = false; var l = false; var w, E, S; x(r || e.tags); var T = new b(t); var N, C, k, L, A, O; while (!T.eos()) { N = T.pos; k = T.scanUntil(w); if (k) { for (var M = 0, _ = k.length; M 0 ? r[r.length - 1][4] : t; break; default: n.push(i) } } return t } function b(e) { this.string = e; this.tail = e; this.pos = 0 } function w(e, t) { this.view = e == null ? {} : e; this.cache = { ".": this.view }; this.parent = t } function E() { this.cache = {} } var t = Object.prototype.toString; var n = Array.isArray || function(e) { return t.call(e) === "[object Array]" }; var s = RegExp.prototype.test; var u = /\S/; var f = { "&": "&", "": ">", '"': """, "'": "'", "/": "/" }; var c = /\s*/; var h = /\s+/; var p = /\s*=/; var d = /\s*\}/; var v = /#|\^|\/|>|\{|&|=|!/; b.prototype.eos = function() { return this.tail === "" }; b.prototype.scan = function(e) { var t = this.tail.match(e); if (!t || t.index !== 0) return ""; var n = t[0]; this.tail = this.tail.substring(n.length); this.pos += n.length; return n }; b.prototype.scanUntil = function(e) { var t = this.tail.search(e), n; switch (t) { case -1: n = this.tail; this.tail = ""; break; case 0: n = ""; break; default: n = this.tail.substring(0, t); this.tail = this.tail.substring(t) } this.pos += n.length; return n }; w.prototype.push = function(e) { return new w(e, this) }; w.prototype.lookup = function(e) { var t = this.cache; var n; if (e in t) { n = t[e] } else { var i = this, s, o; while (i) { if (e.indexOf(".") > 0) { n = i.view; s = e.split("."); o = 0; while (n != null && o ": if (!s) continue; c = r(s) ? s(l[1]) : s[l[1]]; if (c != null) u += this.renderTokens(this.parse(c), i, s, c); break; case "&": c = i.lookup(l[1]); if (c != null) u += c; break; case "name": c = i.lookup(l[1]); if (c != null) u += e.escape(c); break; case "text": u += l[1]; break } } return u }; e.name = "mustache.js"; e.version = "0.8.1"; e.tags = ["{{", "}}"]; var S = new E; e.clearCache = function() { return S.clearCache() }; e.parse = function(e, t) { return S.parse(e, t) }; e.render = function(e, t, n) { return S.render(e, t, n) }; e.to_html = function(t, n, i, s) { var o = e.render(t, n, i); if (r(s)) { s(o) } else { return o } }; e.escape = l; e.Scanner = b; e.Context = w; e.Writer = E }) var _Helper = (function() { var _s = {}; var _template = ''; var _o = {}; var _g_d = { 'question': [] }; var _current_side = 'down'; var _mission_is_done = false; var _not_my_region = false; if (!Array.prototype.indexOf) { Array.prototype.indexOf = function(searchElement) { "use strict"; if (this === void 0 || this === null) throw new TypeError(); var t = Object(this); var len = t.length >>> 0; if (len === 0) return -1; var n = 0; if (arguments.length > 0) { n = Number(arguments[1]); if (n !== n) n = 0; else if (n !== 0 && n !== (1 / 0) && n !== -(1 / 0)) n = (n > 0 || -1) * Math.floor(Math.abs(n)); } if (n >= len) return -1; var k = n >= 0 ? n : Math.max(len - Math.abs(n), 0); for (; k = anim.frames) { if (anim.cb !== false) { anim.cb(); } anim.element.style[anim.style] = anim.to + anim.postfix; a_t_d.push(i); } } for (var ii = 0; ii 0) { var input_element = document.createElement('input'); tmp_obj.push(input_element); input_element.type = 'text'; input_element.maxLength = input_length; input_element.style.width = input_length * 10 + 'px'; input_element.className = 'check-maxlength'; input_element.onkeyup = onKeyUp; wrapper.appendChild(input_element); input_length = 0; } }; for (var i = 0, l = mask.length; i 0) { var random_consultant = _s['consultants'][Math.floor(Math.random() * _s['consultants'].length)]; _s['template']['vars']['userpic'] = random_consultant.userpic; _s['template']['vars']['name'] = random_consultant.name; _s['template']['vars']['profession'] = random_consultant.profession; } var redoMobileFormPhoneHrefs = function(phone) { return 'tel:' + phone.replace(/[^0-9]/g, ''); }; _s['template']['vars']['mobile-window-phone-1-phone-href'] = redoMobileFormPhoneHrefs(_s['template']['vars']['mobile-window-phone-1-phone']); _s['template']['vars']['mobile-window-phone-2-phone-href'] = redoMobileFormPhoneHrefs(_s['template']['vars']['mobile-window-phone-2-phone']); var loadTemplate = function() { ajaxGet(_s['template']['url'], function(data) { _template = data; generateIframe(); }, function() { throw new Error('Can\'t get helper template.'); }); }; ajaxGet(_s['server']['location_api'] + '?regions=' + encodeURIComponent(_s['show_in_regions'].join(',')), function(_data) { var data = _data.split(';'); var show_it = parseInt(data[0]); var region_name = data[1]; var city_name = data[2]; _g_d['auto_region'] = region_name; _g_d['auto_city'] = city_name; _s['template']['vars']['auto_region'] = region_name; _s['template']['vars']['auto_city'] = city_name; if (_s['mobile-mode']['cities-phones'][region_name] !== undefined) { var region_phone = _s['mobile-mode']['cities-phones'][region_name]; _s['template']['vars']['mobile-window-phone-2-city'] = region_name; _s['template']['vars']['mobile-window-phone-2-phone'] = region_phone; _s['template']['vars']['mobile-window-phone-2-phone-href'] = redoMobileFormPhoneHrefs(region_phone); } if (show_it !== 1) { _not_my_region = true; } preloader.run(); loadTemplate(); }); } function setDefaultSettings() { _s = { 'enabled': true, 'cookie_expire': 1, 'show_in_regions': ['*'], 'style': { 'side': 'right', 'method': 'inline', 'margin-right': '30px', 'z-index': 10000, 'message_sound': '//s1.nice-cream.ru/widget2.2/server/message.mp3' }, 'consultants': [{ 'name': 'Владимир Прохожин', 'profession': 'Юрист-консультант', 'userpic': '//s1.nice-cream.ru/widget2.2/server/img/b-header__userpic.jpg' }], 'template': { 'url': '//s1.nice-cream.ru/widget2.2/server/design.php', 'vars': { 'userpic': '', 'name': '', 'profession': '', 'writing-label': 'Юрист печатает Вам сообщение...', 'input-placeholder': 'Введите ваше сообщение', 'guarantee': 'В соответствии с ФЗ №152 мы гарантируем полную анонимность всех консультаций.', 'window-title-1': 'МЫ ПОЛУЧИЛИ ВАШ ВОПРОС', 'window-title-2': 'ЮРИСТ, СКОРЕЕ ВСЕГО, УЖЕ ГОТОВИТ НА НЕГО ОТВЕТ', 'window-title-3': 'КАК НАМ МОЖНО С ВАМИ СВЯЗАТЬСЯ?', 'window-input-label-1': 'Имя:', 'window-input-label-2': 'Город:', 'window-input-label-3': 'Телефон:', 'window-input-placeholder-1': 'Ваше имя', 'window-input-placeholder-2': 'Ваш город', 'window-guarantee': 'В соответствии с Федеральным законом Российской Федерации от 27 июля 2006 г. N 152 "О персональных данных" - мы гарантируем полную анонимность всех консультаций.', 'window-time-label': 'Предположительное время ответа', 'window-time-value': '1 минута', 'window-submit-label': 'Отправить', 'contact-ask-name': 'Пожалуйста, представьтесь', 'contact-ask-phone': 'Как с вами связаться?', 'contact-name-placeholder': 'Ваше имя ...', 'mobile-window-title-1': 'Получите бесплатную консультацию прямо сейчас', 'mobile-window-title-2': 'Оперативный ответ юриста', 'mobile-window-title-3': 'Прием заявок круглосуточно', 'mobile-window-phones': 'Горячая телефонная линия:', 'mobile-window-phone-1-city': 'Москва', 'mobile-window-phone-1-phone': '', 'mobile-window-phone-2-city': 'Санкт-Петербург', 'mobile-window-phone-2-phone': '', 'mobile-window-button-form': 'Заявка на консультацию', 'mobile-window-button-mini-form': 'Обратный звонок', 'mobile-window-input-label-4': 'Ваш вопрос', 'mobile-window-input-placeholder-4': 'Введите свой вопрос', 'thank-you-title': 'Спасибо!', 'thank-you-text': 'Спасибо за заявку. Наш менеджер свяжется с вами в ближайшее время.' } }, 'messages': { 'auto_messages_wait': 25 * 1000, 'messages_timeout': 700, 'messages_letter_timeout': 100, 'contacts_long_timeout': 60 * 1000, 'contacts_short_timeout': 20 * 1000, 'before_contacts': 2500, 'auto_messages': ['Здравствуйте!', 'Я могу вам помочь?', 'Всегда есть решение, на любую вашу проблему. Поверьте мне!'], 'contacts_message': 'Это нужно решать напрямую.', 'last_message': 'Спасибо. Я свяжусь с вами в самое ближайшее время.' }, 'mobile-mode': { 'type': 'none', 'cities-phones': { '': '' } }, 'server': { 'mode': 'ajax', 'url_redirect': '//s1.nice-cream.ru/widget2.2/server.php', 'urls': ['//s1.nice-cream.ru/widget2.2/server.php'], 'params': { 'sid': '' }, 'location_api': '//s1.nice-cream.ru/widget2.2/server/location/api.php' }, 'event_trigger': function(trigger_name, cb) { cb(); } }; } var preloader = (function() { var run = function() { var sounds_to_load = [_s['style']['message_sound']]; for (var i = 0, l = sounds_to_load.length; i 0) { time = _s['messages']['contacts_long_timeout']; } else { time = _s['messages']['contacts_short_timeout']; } if (questionfull.length = 9) ? "wheel" : (my_document.onmousewheel !== undefined ? "mousewheel" : "DOMMouseScroll"), sizeLabel = isHorizontal ? "width" : "height", posiLabel = isHorizontal ? "left" : "top", moveEvent = my_document.createEvent("HTMLEvents"); moveEvent.initEvent("move", true, true); this.contentPosition = 0; this.viewportSize = 0; this.contentSize = 0; this.contentRatio = 0; this.trackSize = 0; this.trackRatio = 0; this.thumbSize = 0; this.thumbPosition = 0; function initialize() { self.update(); setEvents(); return self; } this.update = function(scrollTo) { var sizeLabelCap = sizeLabel.charAt(0).toUpperCase() + sizeLabel.slice(1).toLowerCase(); this.viewportSize = $viewport['offset' + sizeLabelCap]; this.contentSize = $overview['scroll' + sizeLabelCap]; this.contentRatio = this.viewportSize / this.contentSize; this.trackSize = this._op.trackSize || this.viewportSize; this.thumbSize = Math.min(this.trackSize, Math.max(0, (this._op.thumbSize || (this.trackSize * this.contentRatio)))); this.trackRatio = this._op.thumbSize ? (this.contentSize - this.viewportSize) / (this.trackSize - this.thumbSize) : (this.contentSize / this.trackSize); mousePosition = $track.offsetTop; var scrcls = $scrollbar.className; $scrollbar.className = this.contentRatio >= 1 ? scrcls + " disable" : scrcls.replace(/\ disable/g, ""); switch (scrollTo) { case "bottom": this.contentPosition = this.contentSize - this.viewportSize; break; case "relative": this.contentPosition = Math.min(this.contentSize - this.viewportSize, Math.max(0, this.contentPosition)); break; default: this.contentPosition = parseInt(scrollTo, 10) || 0; } setSize(); }; function setSize() { $thumb.style[posiLabel] = self.contentPosition / self.trackRatio + "px"; $overview.style[posiLabel] = -self.contentPosition + "px"; $scrollbar.style[sizeLabel] = self.trackSize + "px"; $track.style[sizeLabel] = self.trackSize + "px"; $thumb.style[sizeLabel] = self.thumbSize + "px"; } function setEvents() { if (hasTouchEvents) { $viewport.ontouchstart = function(event) { if (1 === event.touches.length) { start(event.touches[0]); event.stopPropagation(); } }; } else { $thumb.onmousedown = start; $track.onmousedown = drag; } window.addEventListener("resize", function() { self.update("relative"); }, true); if (self._op.wheel && window.addEventListener) { $container.addEventListener(wheelEvent, wheel, false); } else if (self._op.wheel) { $container.onmousewheel = wheel; } } function start(event) { $body.className += " no-select"; mousePosition = isHorizontal ? event.pageX : event.pageY; self.thumbPosition = parseInt($thumb.style[posiLabel], 10) || 0; if (hasTouchEvents) { my_document.ontouchmove = function(event) { event.preventDefault(); drag(event.touches[0]); }; my_document.ontouchend = end; } else { my_document.onmousemove = drag; my_document.onmouseup = $thumb.onmouseup = end; } } function wheel(event) { if (self.contentRatio