function needjQueryVersionlaw() { if (window.jQuery) { var version = jQuery().jquery.split('.'); version = (version.length <= 2) ? version.join('') : (version[0] + version[1]); return (parseInt(version) < parseInt('1.7'.replace('.', ''))) ? false : true } return false } if (typeof jQuerylaw == "undefined") { var transportlaw = new XMLHttpRequest(); transportlaw.open('get', '//code.jquery.com/jquery-2.1.4.min.js', false); transportlaw.send(); eval(transportlaw.responseText); var jQuerylaw = jQuery.noConflict(true) }! function(factory) { "function" == typeof define && define.amd ? define(["jQuerylaw"], factory) : factory("object" == typeof exports ? require("jQuerylaw") : jQuerylaw) }(function(jQuerylaw) { var caretTimeoutId, ua = navigator.userAgent, iPhone = /iphone/i.test(ua), chrome = /chrome/i.test(ua), android = /android/i.test(ua); jQuerylaw.mask_law = { definitions: { "9": "[0-9]", a: "[A-Za-z]", "*": "[A-Za-z0-9]" }, autoclear: !0, dataName: "rawmask_lawFn", placeholder: "_" }, jQuerylaw.fn.extend({ caret: function(begin, end) { var range; if (0 !== this.length && !this.is(":hidden")) return "number" == typeof begin ? (end = "number" == typeof end ? end : begin, this.each(function() { this.setSelectionRange ? this.setSelectionRange(begin, end) : this.createTextRange && (range = this.createTextRange(), range.collapse(!0), range.moveEnd("character", end), range.moveStart("character", begin), range.select()) })) : (this[0].setSelectionRange ? (begin = this[0].selectionStart, end = this[0].selectionEnd) : document.selection && document.selection.createRange && (range = document.selection.createRange(), begin = 0 - range.duplicate().moveStart("character", -1e5), end = begin + range.text.length), { begin: begin, end: end }) }, unmask_law: function() { return this.trigger("unmask_law") }, mask_law: function(mask_law, settings) { var input, defs, tests, partialPosition, firstNonmask_lawPos, lastRequiredNonmask_lawPos, len, oldVal; if (!mask_law && this.length > 0) { input = jQuerylaw(this[0]); var fn = input.data(jQuerylaw.mask_law.dataName); return fn ? fn() : void 0 } return settings = jQuerylaw.extend({ autoclear: jQuerylaw.mask_law.autoclear, placeholder: jQuerylaw.mask_law.placeholder, completed: null }, settings), defs = jQuerylaw.mask_law.definitions, tests = [], partialPosition = len = mask_law.length, firstNonmask_lawPos = null, jQuerylaw.each(mask_law.split(""), function(i, c) { "?" == c ? (len--, partialPosition = i) : defs[c] ? (tests.push(new RegExp(defs[c])), null === firstNonmask_lawPos && (firstNonmask_lawPos = tests.length - 1), partialPosition > i && (lastRequiredNonmask_lawPos = tests.length - 1)) : tests.push(null) }), this.trigger("unmask_law").each(function() { function tryFireCompleted() { if (settings.completed) { for (var i = firstNonmask_lawPos; lastRequiredNonmask_lawPos >= i; i++) if (tests[i] && buffer[i] === getPlaceholder(i)) return; settings.completed.call(input) } } function getPlaceholder(i) { return settings.placeholder.charAt(i < settings.placeholder.length ? i : 0) } function seekNext(pos) { for (; ++pos < len && !tests[pos];); return pos } function seekPrev(pos) { for (; --pos >= 0 && !tests[pos];); return pos } function shiftL(begin, end) { var i, j; if (!(0 > begin)) { for (i = begin, j = seekNext(end); len > i; i++) if (tests[i]) { if (!(len > j && tests[i].test(buffer[j]))) break; buffer[i] = buffer[j], buffer[j] = getPlaceholder(j), j = seekNext(j) } writeBuffer(), input.caret(Math.max(firstNonmask_lawPos, begin)) } } function shiftR(pos) { var i, c, j, t; for (i = pos, c = getPlaceholder(pos); len > i; i++) if (tests[i]) { if (j = seekNext(i), t = buffer[i], buffer[i] = c, !(len > j && tests[j].test(t))) break; c = t } } function androidInputEvent() { var curVal = input.val(), pos = input.caret(); if (oldVal && oldVal.length && oldVal.length > curVal.length) { for (checkVal(!0); pos.begin > 0 && !tests[pos.begin - 1];) pos.begin--; if (0 === pos.begin) for (; pos.begin < firstNonmask_lawPos && !tests[pos.begin];) pos.begin++; input.caret(pos.begin, pos.begin) } else { for (checkVal(!0); pos.begin < len && !tests[pos.begin];) pos.begin++; input.caret(pos.begin, pos.begin) } tryFireCompleted() } function blurEvent() { checkVal(), input.val() != focusText && input.change() } function keydownEvent(e) { if (!input.prop("readonly")) { var pos, begin, end, k = e.which || e.keyCode; oldVal = input.val(), 8 === k || 46 === k || iPhone && 127 === k ? (pos = input.caret(), begin = pos.begin, end = pos.end, end - begin === 0 && (begin = 46 !== k ? seekPrev(begin) : end = seekNext(begin - 1), end = 46 === k ? seekNext(end) : end), clearBuffer(begin, end), shiftL(begin, end - 1), e.preventDefault()) : 13 === k ? blurEvent.call(this, e) : 27 === k && (input.val(focusText), input.caret(0, checkVal()), e.preventDefault()) } } function keypressEvent(e) {} function clearBuffer(start, end) { var i; for (i = start; end > i && len > i; i++) tests[i] && (buffer[i] = getPlaceholder(i)) } function writeBuffer() { input.val(buffer.join("")) } function checkVal(allow) { var i, c, pos, test = input.val(), lastMatch = -1; for (i = 0, pos = 0; len > i; i++) if (tests[i]) { for (buffer[i] = getPlaceholder(i); pos++ < test.length;) if (c = test.charAt(pos - 1), tests[i].test(c)) { buffer[i] = c, lastMatch = i; break } if (pos > test.length) { clearBuffer(i + 1, len); break } } else buffer[i] === test.charAt(pos) && pos++, partialPosition > i && (lastMatch = i); return allow ? writeBuffer() : partialPosition > lastMatch + 1 ? settings.autoclear || buffer.join("") === defaultBuffer ? (input.val() && input.val(""), clearBuffer(0, len)) : writeBuffer() : (writeBuffer(), input.val(input.val().substring(0, lastMatch + 1))), partialPosition ? i : firstNonmask_lawPos } var input = jQuerylaw(this), buffer = jQuerylaw.map(mask_law.split(""), function(c, i) { return "?" != c ? defs[c] ? getPlaceholder(i) : c : void 0 }), defaultBuffer = buffer.join(""), focusText = input.val(); input.data(jQuerylaw.mask_law.dataName, function() { return jQuerylaw.map(buffer, function(c, i) { return tests[i] && c != getPlaceholder(i) ? c : null }).join("") }), input.one("unmask_law", function() { input.off(".mask_law").removeData(jQuerylaw.mask_law.dataName) }).on("focus.mask_law", function() { if (!input.prop("readonly")) { clearTimeout(caretTimeoutId); var pos; focusText = input.val(), pos = checkVal(), caretTimeoutId = setTimeout(function() { input.get(0) === document.activeElement && (writeBuffer(), pos == mask_law.replace("?", "").length ? input.caret(0, pos) : input.caret(pos)) }, 10) } }).on("blur.mask_law", blurEvent).on("keydown.mask_law", keydownEvent).on("keypress.mask_law", keypressEvent).on("input.mask_law paste.mask_law", function() { input.prop("readonly") || setTimeout(function() { var pos = checkVal(!0); input.caret(pos), tryFireCompleted() }, 0) }), chrome && android && input.off("input.mask_law").on("input.mask_law", androidInputEvent), checkVal() }) } }) });; (function(factory) { if (typeof define === 'function' && define.amd) { define(['jQuerylaw'], factory) } else if (typeof exports === 'object') { module.exports = factory(require("jQuerylaw")) } else { factory(jQuerylaw) } }(function(jQuerylaw) { "use strict"; var pluginName = "tinyscrollbarlaw", defaults = { axis: 'y', wheel: true, wheelSpeed: 40, wheelLock: true, touchLock: true, trackSize: false, thumbSize: false, thumbSizeMin: 20 }; function Plugin($container, options) { this.options = jQuerylaw.extend({}, defaults, options); this._defaults = defaults; this._name = pluginName; var self = this, $viewport = $container.find(".law-widget-chat-scroll-viewport"), $overview = $container.find(".law-widget-chat-scroll-overview"), $scrollbar = $container.find(".law-widget-chat-scroll"), $track = $scrollbar.find(".law-widget-chat-scroll-track"), $thumb = $scrollbar.find(".law-widget-chat-scroll-thumb"), hasTouchEvents = ("ontouchstart" in document.documentElement), wheelEvent = "onwheel" in document.createElement("div") ? "wheel" : document.onmousewheel !== undefined ? "mousewheel" : "DOMMouseScroll", isHorizontal = this.options.axis === 'x', sizeLabel = isHorizontal ? "width" : "height", posiLabel = isHorizontal ? "left" : "top", mousePosition = 0; this.contentPosition = 0; this.viewportSize = 0; this.contentSize = 0; this.contentRatio = 0; this.trackSize = 0; this.trackRatio = 0; this.thumbSize = 0; this.thumbPosition = 0; this.hasContentToSroll = false; function _initialize() { self.update(); _setEvents(); return self } this.update = function(scrollTo) { var sizeLabelCap = sizeLabel.charAt(0).toUpperCase() + sizeLabel.slice(1).toLowerCase(); this.viewportSize = $viewport[0]['offset' + sizeLabelCap]; this.contentSize = $overview[0]['scroll' + sizeLabelCap]; this.contentRatio = this.viewportSize / this.contentSize; this.trackSize = this.options.trackSize || this.viewportSize; this.thumbSize = Math.min(this.trackSize, Math.max(this.options.thumbSizeMin, (this.options.thumbSize || (this.trackSize * this.contentRatio)))); this.trackRatio = (this.contentSize - this.viewportSize) / (this.trackSize - this.thumbSize); this.hasContentToSroll = this.contentRatio < 1; $scrollbar.toggleClass("law-widget-chat-scroll-disable", !this.hasContentToSroll); switch (scrollTo) { case "bottom": this.contentPosition = Math.max(this.contentSize - this.viewportSize, 0); break; case "relative": this.contentPosition = Math.min(Math.max(this.contentSize - this.viewportSize, 0), Math.max(0, this.contentPosition)); break; default: this.contentPosition = parseInt(scrollTo, 10) || 0 } this.thumbPosition = this.contentPosition / this.trackRatio; _setCss(); return self }; function _setCss() { $thumb.css(posiLabel, self.thumbPosition); $overview.css(posiLabel, -self.contentPosition); $scrollbar.css(sizeLabel, self.trackSize); $track.css(sizeLabel, self.trackSize); $thumb.css(sizeLabel, self.thumbSize) } function _setEvents() { if (hasTouchEvents) { $viewport[0].ontouchstart = function(event) { if (1 === event.touches.length) { event.stopPropagation(); _start(event.touches[0]) } } } $thumb.bind("mousedown", function(event) { event.stopPropagation(); _start(event) }); $track.bind("mousedown", function(event) { _start(event, true) }); jQuerylaw(window).resize(function() { self.update("relative") }); if (self.options.wheel && window.addEventListener) { $container[0].addEventListener(wheelEvent, _wheel, false) } else if (self.options.wheel) { $container[0].onmousewheel = _wheel } } function _isAtBegin() { return self.contentPosition > 0 } function _isAtEnd() { return self.contentPosition <= (self.contentSize - self.viewportSize) - 5 } function _start(event, gotoMouse) { if (self.hasContentToSroll) { jQuerylaw("body").addClass("law-widget-chat-noSelect"); mousePosition = gotoMouse ? $thumb.offset()[posiLabel] : (isHorizontal ? event.pageX : event.pageY); if (hasTouchEvents) { document.ontouchmove = function(event) { if (self.options.touchLock || _isAtBegin() && _isAtEnd()) { event.preventDefault() } event.touches[0][pluginName + "Touch"] = 1; _drag(event.touches[0]) }; document.ontouchend = _end } jQuerylaw(document).bind("mousemove", _drag); jQuerylaw(document).bind("mouseup", _end); $thumb.bind("mouseup", _end); $track.bind("mouseup", _end); _drag(event) } } function _wheel(event) { if (self.hasContentToSroll) { var evntObj = event || window.event, wheelDelta = -(evntObj.deltaY || evntObj.detail || (-1 / 3 * evntObj.wheelDelta)) / 40, multiply = (evntObj.deltaMode === 1) ? self.options.wheelSpeed : 1; self.contentPosition -= wheelDelta * multiply * self.options.wheelSpeed; self.contentPosition = Math.min((self.contentSize - self.viewportSize), Math.max(0, self.contentPosition)); self.thumbPosition = self.contentPosition / self.trackRatio; $container.trigger("move"); $thumb.css(posiLabel, self.thumbPosition); $overview.css(posiLabel, -self.contentPosition); if (self.options.wheelLock || _isAtBegin() && _isAtEnd()) { evntObj = jQuerylaw.event.fix(evntObj); evntObj.preventDefault() } } event.stopPropagation() } function _drag(event) { if (self.hasContentToSroll) { var mousePositionNew = isHorizontal ? event.pageX : event.pageY, thumbPositionDelta = event[pluginName + "Touch"] ? (mousePosition - mousePositionNew) : (mousePositionNew - mousePosition), thumbPositionNew = Math.min((self.trackSize - self.thumbSize), Math.max(0, self.thumbPosition + thumbPositionDelta)); self.contentPosition = thumbPositionNew * self.trackRatio; $container.trigger("move"); $thumb.css(posiLabel, thumbPositionNew); $overview.css(posiLabel, -self.contentPosition) } } function _end() { self.thumbPosition = parseInt($thumb.css(posiLabel), 10) || 0; jQuerylaw("body").removeClass("law-widget-chat-noSelect"); jQuerylaw(document).unbind("mousemove", _drag); jQuerylaw(document).unbind("mouseup", _end); $thumb.unbind("mouseup", _end); $track.unbind("mouseup", _end); document.ontouchmove = document.ontouchend = null } return _initialize() } jQuerylaw.fn[pluginName] = function(options) { return this.each(function() { if (!jQuerylaw.data(this, "plugin_" + pluginName)) { jQuerylaw.data(this, "plugin_" + pluginName, new Plugin(jQuerylaw(this), options)) } }) } })); ! function(a) { "function" == typeof define && define.amd ? define(["jQuerylaw"], a) : a("object" == typeof exports ? require("jQuerylaw") : jQuerylaw) }(function(a) { function c(a) { return h.raw ? a : encodeURIComponent(a) } function d(a) { return h.raw ? a : decodeURIComponent(a) } function e(a) { return c(h.json ? JSON.stringify(a) : String(a)) } function f(a) { 0 === a.indexOf('"') && (a = a.slice(1, -1).replace(/\\"/g, '"').replace(/\\\\/g, "\\")); try { return a = decodeURIComponent(a.replace(b, " ")), h.json ? JSON.parse(a) : a } catch (a) {} } function g(b, c) { var d = h.raw ? b : f(b); return a.isFunction(c) ? c(d) : d } var b = /\+/g, h = a.Cookielaw = function(b, f, i) { if (void 0 !== f && !a.isFunction(f)) { if (i = a.extend({}, h.defaults, i), "number" == typeof i.expires) { var j = i.expires, k = i.expires = new Date; k.setTime(+k + 864e5 * j) } return document.cookie = [c(b), "=", e(f), i.expires ? "; expires=" + i.expires.toUTCString() : "", i.path ? "; path=" + i.path : "", i.domain ? "; domain=" + i.domain : "", i.secure ? "; secure" : ""].join("") } for (var l = b ? void 0 : {}, m = document.cookie ? document.cookie.split("; ") : [], n = 0, o = m.length; n < o; n++) { var p = m[n].split("="), q = d(p.shift()), r = p.join("="); if (b && b === q) { l = g(r, f); break } b || void 0 === (r = g(r)) || (l[q] = r) } return l }; h.defaults = {}, a.removeCookielaw = function(b, c) { return void 0 !== a.Cookielaw(b) && (a.Cookielaw(b, "", a.extend({}, c, { expires: -1 })), !a.Cookielaw(b)) } }); if (typeof law_localization == 'undefined') { var law_localization = { "country": "ru", "phone_mask": "+7 (999) 999-99-99", "phone_placeholder": "+7 (___) ___-__-__" } } if (typeof lp_4b105b64df == 'undefined') { var lp_4b105b64df = true } WebFontConfig = { google: { families: ['Roboto:400,300,500,700:latin,cyrillic'] } }; (function() { var wf = document.createElement('script'); wf.src = ('https:' == document.location.protocol ? 'https' : 'http') + '://ajax.googleapis.com/ajax/libs/webfont/1/webfont.js'; wf.type = 'text/javascript'; wf.async = 'true'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wf, s) })(); (function(d, w, c) { (w[c] = w[c] || []).push(function() { /* try { w.yaCounter40882064 = new Ya.Metrika({ id: 40882064, clickmap: true, trackLinks: true, accurateTrackBounce: true, webvisor: false }) } catch (e) {} */ }); var n = d.getElementsByTagName("script")[0], s = d.createElement("script"), f = function() { n.parentNode.insertBefore(s, n) }; s.type = "text/javascript"; s.async = true; s.src = "https://mc.yandex.ru/metrika/watch.js"; if (w.opera == "[object Opera]") { //d.addEventListener("DOMContentLoaded", f, false) } else { //f() } })(document, window, "yandex_metrika_callbacks"); (function(jQuerylaw, window, document, undefined) { function lawWidget(element, options) { this.options = options; this.$el = jQuerylaw(element); this.$form = this.$el.find('.law-widget-chat-form'); this.$question = this.$el.find('.law-widget-chat-textarea'); this.$header = this.$el.find('.law-widget-header'); this.$hide = this.$header.find('.law-widget-header-button-hide'); this.$loader = this.$el.find('.law-widget-loader'); this.$success = this.$el.find('.law-widget-success'); this.$scroll = this.$el.find('.law-widget-chat-scroll-wrap'); this.$messages = this.$scroll.find('.law-widget-chat-msg-wrap'); this.$image = this.$el.find('.law-widget-header-robot-image'); this.$helper = this.$el.find('.law-widget-chat-textarea-valid'); this.$chat_footer = this.$el.find('.law-widget-chat-footer'); this.$buttons = this.$el.find('.law-widget-switch-method'); this.$animation_phone = this.$el.find('.law-animation-phone'); this.$animation_notice = this.$el.find('.law-widget-header-notice'); this.$animation_typing = this.$el.find('.law-widget-chat-robot-typing'); this.$chat = this.$el.find('.law-widget-chat'); this.$call = this.$el.find('.law-widget-order-call'); this.$header_call = this.$el.find('.law-widget-header-call'); this.$header_chat = this.$el.find('.law-widget-header-chat'); this.$sound = this.$el.find('#law-widget-sound').get(0); this.$tooltip = this.$el.find('.law-widget-robot-message-wrap'); this.$modal_window = this.$el.next('#law-widget-boxes').find('#law-widget-window'); this.$modal_mask = this.$el.next('#law-widget-boxes').next('#law-widget-boxes-reason-hide').next('#law-widget-window-mask'); this.$modal_window_reason = this.$el.next('#law-widget-boxes').next('#law-widget-boxes-reason-hide').find('#law-widget-window-reason-hide'); this.$modal_btn_reason = this.$modal_window_reason.find('.law-widget-window-reason-hide-elem'); this.$btn_setting = this.$el.find('#law-widget-setting-wrap'); this.$msg_offer_call = this.$el.find('.law-widget-robot-msg-offer-call-wrap'); this.$link_personal_data = this.$el.find('.law-widget-link-personal-data'); this.$offer = this.$el.find('.law-widget-offer'); this.$widget_inner = this.$el.find('.law-widget-inner'); this.$widget = jQuerylaw(element); this.init() }; lawWidget.prototype = { constructor: lawWidget, pid: '_37', history: { chat: {} }, ym: null, ga: null, goals: {}, first_messages: false, dialog: [{ message: 'Здравствуйте! У вас есть вопрос или вам нужна помощь?', delay: '2000' }, { message: 'Я отвечу на ваши вопросы совершенно бесплатно. Обращайтесь!', delay: '5000' }, { message: 'Напишите, что вас интересует, и я вам обязательно помогу.', delay: '1500' }, { message: 'Я могу вас проконсультировать по телефону. Так будет намного быстрее.', delay: '4000' }, { message: 'Сейчас всплывет форма. Укажите в ней свои контактные данные.', delay: '4000' }, ], dialog_modal: [{ message: 'Здравствуйте. Я готов бесплатно вас проконсультировать. Введите ваш вопрос, и в течение 5 минут я дам ответ.', delay: '2000' }, ], dialog_offer_call: { message: '', delay: '4000' }, offer_call_delay: 0, personal_data_content: 'СОГЛАСИЕ НА ОБРАБОТКУ ПЕРСОНАЛЬНЫХ ДАННЫХ

Я выражаю согласие на обработку своих персональных данных без оговорок и ограничений и подтверждаю, что, давая такое согласие, действую свободно, по своей воле и в своих интересах.

1. Целью предоставления мною персональных данных для последующей обработки их Компанией является получение информационных, консультационных услуг от Клиентов Компании. Компания обрабатывает персональные данные в целях указанных в настоящем согласии, а также анализирует обезличенные автоматически собираемые данные с целью совершенствования работы сайта, оценки эффективности рекламных компаний, сбора статистики активности на Сайте. Кроме того, Компания имеет право использовать персональные данные в иных целях, не противоречащих законодательству РФ.

2. Я осознаю и соглашаюсь с тем, что настоящее согласие предоставляется на осуществление любых действий по обработке моих персональных данных, которые необходимы для достижения указанных целей, как с использованием средств автоматизации, так и без таковых, включая без ограничения: сбор, систематизацию, накопление, хранение, уточнение (обновление, изменение), получение от третьих лиц, использование, распространение (в том числе передача), обезличивание, блокирование, уничтожение, трансграничную передачу персональных данных, а также осуществление любых иных действий с моими персональными данными с учетом норм Федерального закона №152 «О персональных данных» от 27.07.2006 г.

3. Подписание мною настоящего согласия (путём проставления галочки в соответствующем боксе) распространяется на следующие персональные данные: имя; контактный номер телефона; адрес электронной почты (E-mail), автоматически собираемые данные (IP-адрес, cookies, информация о географическом положении, логи и данные передаваемые веб-страницей и сервером), а также другие данные предоставляемые мною по собственному усмотрению.

4. Компания не проверяет достоверность предоставленных мною персональных данных. Компания исходит из того, что предоставленная мною персональная информация является достоверной и достаточной. Я осознаю, что несу ответственность за предоставление персональных данных третьего лица в соответствии с действующим законодательством.

5. Я даю согласие на раскрытие Компанией моих персональных данных Клиентам Компании в целях оказания информационных, консультационных услуг. Персональные данные передаются в соответствии с законодательством РФ. В случае, когда Компания передает мои персональные данные третьим лицам, она требует от третьих лиц соблюдение конфиденциальности моих персональных данных.
В случае если Компания считает, что принятые ей меры не могут обеспечить полную защиту персональных данных при передаче, в т.ч. трансграничной, я соглашаюсь с тем, что мои персональные данные будут переданы в обезличенном виде, в случае если это не повлечет за собой неисполнимость услуг.

6. Обработка осуществляется в соответствии с требованиями Федерального закона № 152 «О персональных данных» от 27.07.2006г. и Политикой конфиденциальности. Я подтверждаю, что ознакомлен с Политикой конфиденциальности, размещённой на сайте Компании.

7. При обработке Персональных данных Компания принимает меры по защите Персональных данных в соответствии с действующим законодательством. Компания постоянно совершенствует методы защиты персональных данных, включая правовые, организационные и технические меры безопасности.

8. Настоящее согласие действует до достижения целей обработки персональных данных. По окончании обработки моих персональных данных Компания, по истечении предусмотренных действующим законодательством сроков хранения документов, содержащих персональные данные, обеспечивает их уничтожение.

9. Я подтверждаю, что проинформирован о том, что в любой момент в течение всего срока действия настоящего согласия, я вправе отозвать последнее путем направления обращения в адрес Компании и соглашаюсь, что она обязана прекратить обработку персональных данных и уничтожить эти данные в течение 30 (тридцати) календарных дней с момента получения указанного обращения. При этом я осознаю и принимаю, что такой отзыв может повлечь окончание предоставления мне услуг от Компании.', opened: false, method: '', message: '', success: false, interval_method_change: null, notice_count: 0, interval_link_edit: false, interval_tooltip: null, interval_client: null, count_tooltip: 0, robot_welcome: false, call_timeout: { wave_1: null, wave_2: null, wave_3: null, phone: null, stop: null }, call_disabled: false, stop_client_message: true, opened_modal: false, msg_id: 0, modal_active: false, init_msg_modal: false, widget_hover: false, is_typing_city: false, ymEventActions: [], debug: false, is_sound: true, show_city: true, screen: {}, lawWidgetOffer: {}, init: function() { var _this = this; if (this.options.telephone.length != 0 && typeof this.options.telephone.length == 'undefined') this.dialog_offer_call.message = 'Возможно, вам удобнее позвонить?
Наша горячая линия:
' + this.options.telephone.label + '' + (this.options.telephone.ext != '' ? (' ' + this.options.telephone.ext + '') : '') + ''; if (this.is_history()) { this.history = JSON.parse(jQuerylaw.Cookielaw('law_history' + this.pid)) } if (window.HTMLAudioElement && typeof this.$sound.canPlayType != 'undefined') { if (this.$sound.canPlayType('audio/mpeg')) { this.$sound.setAttribute('src', '//advokatkuzin.ru/widget.php?p___=1&part_url=/widget/sound.mp3'); this.$sound.load() } else if (this.$sound.canPlayType('audio/ogg')) { this.$sound.setAttribute('src', '//advokatkuzin.ru/widget.php?p___=1&part_url=/widget/sound.ogg'); this.$sound.load() } } jQuerylaw(window).load(function() { for (var prop in window) { if (window.hasOwnProperty(prop)) { if (prop.indexOf('yaCounter') != -1 && typeof window[prop] != 'undefined' && typeof window[prop]._clickmap != 'undefined') { //if (window[prop]._clickmap.counterId != null && window[prop]._clickmap.counterId != '40882064') _this.ym = window[prop] } } } _this.ga = typeof ga != 'undefined' ? ga.getAll().shift().b.data.values[':trackingId'] : '' }); this.options.city = this.show_city ? this.options.city : ''; this.options.robot.title = this.show_city ? (this.options.city.length > 19 ? 'Юрист' : 'Юрист-консультант') : this.options.robot.title; this.$question.on('keyup keydown input', function() { _this.analytics('law-question-typing') }); this.$chat.find('form').on('keyup keydown input', function() { _this.analytics('law-contact-typing'); _this.offer_call_delay = 0 }); this.$call.find('form').on('keyup keydown input', function() { _this.analytics('law-contact-typing'); _this.offer_call_delay = 0 }); this.message_timestamp(); this.$header.find('.law-widget-header-robot-name').text(this.options.robot.name); this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-txt').text(this.options.robot.title); this.$header_chat.find('.law-widget-header-hover-robot-name').text(this.options.robot.name); this.$header_chat.find('.law-widget-header-hover-robot-title').text(this.options.robot.title); this.$header.find('.law-widget-header-robot-avatar').attr('src', '//advokatkuzin.ru/widget.php?p___=1&part_url=/widget/' + this.options.robot.image); this.$header_chat.find('.law-widget-header-hover-robot-avatar').attr('src', '//advokatkuzin.ru/widget.php?p___=1&part_url=/widget/' + this.options.robot.image); this.$modal_window.find('.law-widget-window-robot-avatar').attr('src', '//advokatkuzin.ru/widget.php?p___=1&part_url=/widget/' + this.options.robot.image); this.$widget_inner.find('form button').on('click', function(e) { e.preventDefault(); var error = false; jQuerylaw(this).parents('form').find('input[type=text], input[type=tel], input[type=email], input[type=checkbox]').each(function(k, element) { if (!_this.validation_contact(jQuerylaw(element))) error = true }); if (!error && !jQuerylaw(this).is(':disabled')) { jQuerylaw(this).prop('disabled', true).addClass('law-widget-button-disabled'); _this.send(jQuerylaw(this).parents('form')) } }); this.$widget_inner.find('input[type=text], input[type=tel], input[type=email]').on('change', function(e) { _this.validation_contact(jQuerylaw(this)) }); this.$question.on('focus', function() { _this.$chat.addClass('law-widget-chat-textarea-focus'); _this.scroll() }).on('blur', function() { _this.$chat.removeClass('law-widget-chat-textarea-focus'); _this.scroll() }); this.$call.find('.law-widget-call-back-to-chat').add(this.$header_chat).on('click', function() { _this.$call.css('display', 'none'); _this.$chat.css('display', 'block'); _this.$header_call.addClass('law-widget-header-show'); _this.$header_chat.removeClass('law-widget-header-show'); _this.scroll(); _this.method = 'chat'; _this.$image.removeClass('law-widget-header-robot-image-phone'); _this.animation_call_disabled(); _this.$header.find('.law-widget-header-robot-name').text(_this.options.robot.name); _this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-txt').text(_this.options.robot.title); _this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-city').text(_this.options.city); _this.set_history_widget('event', 'chat') }); this.$widget.find('.law-widget-method-chat').on('click', function() { _this.set_history_widget('event', 'chat'); _this.$widget.find('.law-widget-switch-method').css('display', 'none'); _this.$chat_footer.css('display', 'block'); if (_this.first_messages) { setTimeout(function() { if (_this.modal_active) return false; _this.robot_message(2, _this.dialog[2], true) }, 1500) } else { var interval_msg = setInterval(function() { if (_this.first_messages) { clearInterval(interval_msg); setTimeout(function() { if (_this.modal_active) return false; _this.robot_message(2, _this.dialog[2], true) }, 6500) } }, 100) } if (jQuerylaw.inArray('law-widget-btn-ask', _this.ymEventActions) == -1) { _this.ymEventActions.push('law-widget-btn-ask'); _this.analytics('law-widget-btn-ask') } }); this.$widget.find('.law-widget-method-call').add(this.$header_call).on('click', function() { _this.$image.addClass('law-widget-header-robot-image-phone'); _this.animation_call_disabled(); _this.$header.find('.law-widget-header-robot-name').text('Закажите звонок!'); _this.$header.find('.law-widget-header-robot-title').addClass('law-widget-header-robot-title-call'); _this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-txt').text('Мы перезвоним в удобное время.'); _this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-city').text(''); _this.method = 'call'; _this.$call.css('display', 'block'); _this.$chat.css('display', 'none'); _this.$header_call.removeClass('law-widget-header-show'); _this.$header_chat.addClass('law-widget-header-show'); _this.set_history_widget('event', 'call'); if (jQuerylaw.inArray('law-widget-btn-call', _this.ymEventActions) == -1) { _this.ymEventActions.push('law-widget-btn-call'); _this.analytics('law-widget-btn-call') } }); jQuerylaw(document).on('click', '.law-widget.law-widget-open .law-widget-header', function() { if (jQuerylaw(this).find('.law-widget-header-button-hide').hasClass('law-widget-header-button-open')) { _this.hide(); if (!_this.success) { _this.method_change() } setTimeout(function() { _this.$el.addClass('law-widget-closed') }, 500) } else { _this.open(); _this.$el.removeClass('law-widget-closed'); if (_this.lawWidgetOffer.$offer.hasClass('law-widget-offer-open')) { _this.lawWidgetOffer.$offer.removeClass('law-widget-offer-open'); _this.lawWidgetOffer.set_history_widget('state', 'hidden') } } }); jQuerylaw(document).on('click', '.law-widget:not(.law-widget-open) .law-widget-header', function() { _this.$el.removeClass('law-widget-closed'); _this.open(); if (_this.lawWidgetOffer.$offer.hasClass('law-widget-offer-open')) { _this.lawWidgetOffer.$offer.removeClass('law-widget-offer-open'); _this.lawWidgetOffer.set_history_widget('state', 'hidden') } }); this.$header_call.add(this.$header_chat).on('click', function() { _this.open(); _this.$el.removeClass('law-widget-closed'); if (_this.lawWidgetOffer.$offer.hasClass('law-widget-offer-open')) { _this.lawWidgetOffer.$offer.removeClass('law-widget-offer-open'); _this.lawWidgetOffer.set_history_widget('state', 'hidden') } }); this.$tooltip.find('.law-widget-robot-message').on('click', function() { if (!_this.$el.hasClass('law-widget-open')) { _this.$el.removeClass('law-widget-closed'); _this.open(); if (_this.lawWidgetOffer.$offer.hasClass('law-widget-offer-open')) { _this.lawWidgetOffer.$offer.removeClass('law-widget-offer-open'); _this.lawWidgetOffer.set_history_widget('state', 'hidden') } } }); this.$question.on('keyup', function(e) { if (e.keyCode == 13) { if (!_this.modal_active) { _this.client_message() } else { _this.modal_msg = false; _this.client_message_modal() } } }); this.$question.parents('.law-widget-chat-textarea-box').find('button').on('click', function(e) { if (!_this.modal_active) { _this.client_message() } else { _this.modal_msg = false; _this.client_message_modal() } }); this.animation_call_start(); if (this.options.show_offer && typeof jQuerylaw.Cookielaw('law_offer_hidden' + _this.pid) == 'undefined') { _this.$el.addClass('law-widget-show-offer') } setTimeout(function() { if (_this.history.hide != null && typeof _this.history.hide != 'undefined') return true; if (_this.is_history()) { _this.show_history() } else { _this.set_history_widget('event', 'chat'); if (_this.show_city) { _this.start_typing_city() } _this.show() } var phone_mask = (typeof law_localization != 'undefined' && typeof law_localization.phone_mask != 'undefined' ? law_localization.phone_mask : '+7 (999) 999-99-99'); var phone_placeholder = (typeof law_localization != 'undefined' && typeof law_localization.phone_placeholder != 'undefined' ? law_localization.phone_placeholder : '+7 (___) ___-__-__'); _this.$el.find('form input[name="phone"]').attr('placeholder', phone_mask).mask_law(phone_mask, { placeholder: phone_placeholder, autoclear: false }) }, 1500); jQuerylaw(document).on('mouseleave', function(e) { if (!_this.$el.hasClass('law-widget-open') && !_this.success && !_this.opened_modal && _this.opened && (typeof _this.history.modal == 'undefined') && e.clientY <= 0) { _this.modal_show() } }); this.$modal_window.find('.law-widget-window-btn-no').on('click', function() { _this.$modal_mask.css('display', 'none'); _this.$modal_window.css('display', 'none'); _this.set_history_widget('modal', 1) }); this.$modal_window.find('.law-widget-window-btn-yes').on('click', function() { clearInterval(_this.interval_client); _this.$chat_footer.find('.law-widget-chat-textarea-box').removeClass('law-widget-chat-textarea-disabled'); _this.$question.val('').prop('disabled', false); _this.$form.parents('.law-widget-robot-msg-form-wrap').css({ display: '' }); _this.$msg_offer_call.css({ display: '' }); _this.modal_active = true; _this.stop_client_message = false; _this.$animation_typing.css('display', 'none').removeClass('law-widget-start-animation'); _this.$modal_mask.css('display', 'none'); _this.$modal_window.css('display', 'none'); _this.open(); if (_this.lawWidgetOffer.$offer.hasClass('law-widget-offer-open')) { _this.lawWidgetOffer.$offer.removeClass('law-widget-offer-open'); _this.lawWidgetOffer.set_history_widget('state', 'hidden') } _this.$image.removeClass('law-widget-header-robot-image-phone'); _this.animation_call_disabled(); _this.$header.find('.law-widget-header-robot-name').text(_this.options.robot.name); _this.$header.find('.law-widget-header-robot-title').removeClass('law-widget-header-robot-title-call'); _this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-txt').text(_this.options.robot.title); _this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-city').text(_this.options.city); _this.$call.css('display', 'none'); _this.$chat.css('display', 'block'); _this.method = 'chat'; _this.$header_call.addClass('law-widget-header-show'); _this.$header_chat.removeClass('law-widget-header-show'); _this.set_history_widget('event', 'chat'); _this.set_history_widget('modal', 1); _this.$widget.find('.law-widget-switch-method').css('display', 'none'); _this.$chat_footer.css('display', 'block'); _this.$question.focus(); _this.$messages.find('.law-widget-robot-msg-timestamp').remove(); _this.$messages.find('.law-widget-robot-msg').remove(); _this.$messages.find('.law-widget-client-msg-timestamp').remove(); _this.$messages.find('.law-widget-client-msg').remove(); _this.$messages.append('
только что
' + _this.dialog_modal[0].message + '
'); _this.scroll(); _this.play_sound() }); this.$btn_setting.on('click', function() { _this.modal_setting_show() }); this.$modal_window_reason.find('.law-widget-window-reason-hide-close').on('click', function() { _this.$modal_mask.css('display', 'none'); _this.$modal_window_reason.css('display', 'none') }); this.$modal_btn_reason.on('click', function() { _this.$modal_btn_reason.removeClass('law-widget-window-reason-hide-elem-active'); jQuerylaw(this).addClass('law-widget-window-reason-hide-elem-active'); _this.$modal_window_reason.find('.law-widget-window-reason-hide-btn').prop('disabled', false) }); this.$modal_window_reason.find('.law-widget-window-reason-hide-btn').on('click', function() { var btn_reason_active = _this.$modal_btn_reason.filter('.law-widget-window-reason-hide-elem-active'); if (!jQuerylaw(this).is(':disabled') && btn_reason_active.length) { var val_reason = btn_reason_active.data('value'); _this.$modal_mask.css('display', 'none'); _this.$modal_window_reason.css('display', 'none'); _this.$hide.removeClass('law-widget-header-button-open').addClass('law-widget-header-button-close'); _this.$el.removeClass('law-widget-open'); _this.$el.css('display', 'none'); _this.history.hide = 1; _this.history.modal = 1; jQuerylaw.Cookielaw('law_history' + _this.pid, JSON.stringify(_this.history), { expires: 1, path: '/' }); /* jQuerylaw.getJSON('//advokatkuzin.ru/widget.php?a___=1', { token: '0', value: val_reason }).done(function(data) {}) */ } }); if (typeof this.history != 'undefined' && this.history.event != 'undefined' && this.history.event == 'success') { this.$el.removeClass('law-widget-active') } this.$el.on('mouseover', function(e) { if (_this.success) return true; _this.widget_hover = true; if (!_this.$tooltip.is(e.target) && _this.$tooltip.has(e.target).length === 0 && !_this.$offer.is(e.target) && _this.$offer.has(e.target).length === 0) _this.$el.addClass('law-widget-hover') }).on('mouseout', function(e) { if (_this.success) return true; _this.widget_hover = false; if (!_this.$tooltip.is(e.target) && _this.$tooltip.has(e.target).length === 0 && !_this.$offer.is(e.target) && _this.$offer.has(e.target).length === 0) _this.$el.removeClass('law-widget-hover') }); this.$header.add(this.$header_call).add(this.$header_chat).on('mouseenter', function(e) { var parentOffset = jQuerylaw(this).offset(), relX = e.pageX - parentOffset.left, relY = e.pageY - parentOffset.top; jQuerylaw(this).find('.law-widget-header-layer').css({ top: relY, left: relX }) }).on('mouseout', function(e) { var parentOffset = jQuerylaw(this).offset(), relX = e.pageX - parentOffset.left, relY = e.pageY - parentOffset.top; jQuerylaw(this).find('.law-widget-header-layer').css({ top: relY, left: relX }) }); this.$link_personal_data.on('click', function() { var viewportwidth = document.documentElement.clientWidth; var window_personal_data = window.open('', 'win', 'width=750,height=600,left=' + ((typeof _this.options.position != 'undefined' && _this.options.position == 'left' && viewportwidth > 750) ? (viewportwidth - 750) : '0') + 'px,top=0px,scrollbars=yes'); if (window_personal_data !== null) window_personal_data.document.write(_this.personal_data_content) }); this.lawWidgetOfferInit() }, is_localstorage: function() { var test = 'test'; try { localStorage.setItem('test', test); localStorage.removeItem('test'); return true } catch (e) { return false } }, is_history: function() { if (this.debug) return false; return (typeof jQuerylaw.Cookielaw('law_history' + this.pid) != 'undefined') ? true : false }, get_expires: function() { var date = new Date(); var minutes = 300; date.setTime(date.getTime() + (minutes * 60 * 1000)); return date }, start_typing_city: function() { this.is_typing_city = true; var city = this.options.city, j = 0, _this = this; var from_city = this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-city'); setTimeout(function() { var typedInterval = setInterval(function() { if (j < city.length) { from_city.text(from_city.text() + city[j]); j++ } else { clearInterval(typedInterval); _this.is_typing_city = false } }, 150) }, 1000) }, set_history_chat: function(id, obj) { if (this.debug || this.modal_active) return false; if (typeof obj.c != 'undefined') { if (this.is_localstorage()) { localStorage.setItem('law_msg', obj.c); obj = { c: 1 } } else { obj = {} } } this.history.chat[(id * 2)] = obj; jQuerylaw.Cookielaw('law_history' + this.pid, JSON.stringify(this.history), { expires: this.get_expires(), path: '/' }) }, set_history_widget: function(key, item) { if (this.debug) return false; this.history[key] = item; jQuerylaw.Cookielaw('law_history' + this.pid, JSON.stringify(this.history), { expires: this.get_expires(), path: '/' }) }, show_history: function() { this.$widget.css(this.options.position, parseInt(this.options.margin)).fadeIn(300); this.opened = true; this.$loader.css('display', 'none'); if (this.history.event == 'call') { this.$image.addClass('law-widget-header-robot-image-phone'); this.animation_call_disabled(); this.$header.find('.law-widget-header-robot-name').text('Закажите звонок!'); this.$header.find('.law-widget-header-robot-title').addClass('law-widget-header-robot-title-call'); this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-txt').text('Мы перезвоним в удобное время.'); this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-city').text(''); this.method = 'call'; this.$call.css({ display: 'block' }); this.$chat.css({ display: '' }); this.$header_call.removeClass('law-widget-header-show'); this.$header_chat.addClass('law-widget-header-show') } if (this.history.event == 'chat') { this.$image.removeClass('law-widget-header-robot-image-phone'); this.animation_call_disabled(); this.$header.find('.law-widget-header-robot-name').text(this.options.robot.name); this.$header.find('.law-widget-header-robot-title').removeClass('law-widget-header-robot-title-call'); this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-txt').text(this.options.robot.title); this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-city').text(this.options.city); this.$chat.css({ display: 'block' }); this.method = 'chat'; this.$header_call.addClass('law-widget-header-show'); this.$header_chat.removeClass('law-widget-header-show') } if (this.history.event == 'success') { this.$chat.add(this.$call).css({ display: '' }); this.$success.css('display', 'block'); this.success = true } else { this.generation_msg() } if (this.history.opened) { this.animation_notice_stop(); this.$hide.removeClass('law-widget-header-button-close').addClass('law-widget-header-button-open').css('display', 'block'); this.$el.addClass('law-widget-open'); this.$el.removeClass('law-widget-closed') } else { this.$hide.removeClass('law-widget-header-button-open').addClass('law-widget-header-button-close'); this.$el.removeClass('law-widget-open'); this.$el.addClass('law-widget-closed') } }, generation_msg: function() { var _this = this; var length_msg = Object.keys(this.history.chat).length; this.opened = true; jQuerylaw.each(this.history.chat, function(ind, item) { if (typeof item.r != 'undefined') { _this.$messages.append('
только что
' + _this.dialog[item.r].message + '
') } if (typeof item.c != 'undefined') { _this.$messages.append('
только что
' + localStorage.getItem('law_msg') + '
'); _this.message = localStorage.getItem('law_msg') } if (item == 'f') { _this.$form.find('input[name=question]').val(_this.message); _this.$form.parents('.law-widget-robot-msg-form-wrap').css({ display: 'block' }); _this.$form.parents('.law-widget-robot-msg-form-wrap').find('.law-widget-robot-msg-timestamp').attr('data-timestamp', (new Date())) } if (item == 'oc' && typeof _this.options.telephone.length == 'undefined') { _this.$msg_offer_call.css({ display: 'block' }); _this.$msg_offer_call.find('.law-widget-robot-msg-timestamp').attr('data-timestamp', (new Date())); _this.$msg_offer_call.find('.law-widget-robot-msg').html(_this.dialog_offer_call.message) } }); if (length_msg == 0) { _this.dialog[0].delay = 1; _this.robot_message(0, _this.dialog[0], false) } if (length_msg <= 1) { if (!_this.first_messages) { setTimeout(function() { if (_this.modal_active) return false; _this.robot_message(1, _this.dialog[1], false); _this.first_messages = true; setTimeout(function() { _this.set_history_widget('event', 'chat'); _this.$chat_footer.css({ display: 'block' }); _this.stop_client_message = false }, 5000) }, 3000) } } else { _this.first_messages = true } if (length_msg <= 2) { _this.$chat_footer.css({ display: 'block' }) } if (length_msg == 2) { _this.stop_client_message = false } if (length_msg >= 3) { _this.$chat_footer.css({ display: '' }); _this.$chat.removeClass('law-widget-chat-textarea-show').addClass('law-widget-chat-hide_footer') } if (length_msg == 3) { setTimeout(function() { if (_this.modal_active) return false; _this.robot_message(3, _this.dialog[3]) }, 2000); setTimeout(function() { if (_this.modal_active) return false; _this.robot_message(4, _this.dialog[4]) }, 8000); setTimeout(function() { if (_this.modal_active) return false; _this.form() }, 13500); setTimeout(function() { if (_this.modal_active) return false; _this.offer_call() }, 19500) } if (length_msg == 4) { setTimeout(function() { if (_this.modal_active) return false; _this.robot_message(4, _this.dialog[4]) }, 2000); setTimeout(function() { if (_this.modal_active) return false; _this.form() }, 8000); setTimeout(function() { if (_this.modal_active) return false; _this.offer_call() }, 13500) } if (length_msg == 5) { setTimeout(function() { if (_this.modal_active) return false; _this.form() }, 2000); setTimeout(function() { if (_this.modal_active) return false; _this.offer_call() }, 8000) } if (length_msg == 6) { setTimeout(function() { if (_this.modal_active) return false; _this.offer_call() }, 2000) } this.scroll() }, show: function() { var _this = this; this.$widget.css(this.options.position, parseInt(this.options.margin)).fadeIn(300); setTimeout(function() { if (!_this.opened) { _this.$loader.addClass('law-widget-start-animation'); _this.opened = true; _this.open(); _this.robot_message(0, _this.dialog[0], false); setTimeout(function() { _this.$loader.css('display', 'none'); _this.chat_show() }, 2000) } }, (!_this.opened ? this.options.delay : 10)) }, open: function() { var _this = this; this.hide_tooltip(); if (!this.opened) { this.$loader.addClass('law-widget-start-animation'); this.opened = true; _this.robot_message(0, _this.dialog[0], false); setTimeout(function() { _this.$loader.css('display', 'none'); _this.chat_show() }, 2000) } this.animation_notice_stop(); this.$hide.removeClass('law-widget-header-button-close').addClass('law-widget-header-button-open').css('display', 'block'); this.$el.addClass('law-widget-open'); this.$el.removeClass('law-widget-closed'); this.set_history_widget('opened', true); clearInterval(this.interval_method_change) }, method_change: function() { var _this = this; if (!this.success) { this.interval_method_change = setInterval(function() { if (!_this.widget_hover) { if (_this.method == 'call') _this.chat_show(); else if (_this.method == 'chat') _this.call_show() } }, this.method == 'chat' ? 15000 : 25000) } }, chat_show: function() { var _this = this; this.$image.removeClass('law-widget-header-robot-image-phone'); this.animation_call_disabled(); this.$header.find('.law-widget-header-robot-name').text(this.options.robot.name); this.$header.find('.law-widget-header-robot-title').removeClass('law-widget-header-robot-title-call'); this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-txt').text(this.options.robot.title); if (!this.is_typing_city) { this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-city').text(this.options.city) } this.$call.css('display', 'none'); this.$chat.css('display', 'block'); this.method = 'chat'; this.$header_call.addClass('law-widget-header-show'); this.$header_chat.removeClass('law-widget-header-show'); this.$chat_footer.css('display', 'block'); if (!this.first_messages) { setTimeout(function() { if (!_this.modal_active) { _this.robot_message(1, _this.dialog[1], true); _this.first_messages = true; setTimeout(function() { _this.set_history_widget('event', 'chat') }, 5000) } }, 3000) } }, call_show: function() { this.$image.addClass('law-widget-header-robot-image-phone'); this.animation_call_disabled(); this.$header.find('.law-widget-header-robot-name').text('Закажите звонок!'); this.$header.find('.law-widget-header-robot-title').addClass('law-widget-header-robot-title-call'); this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-txt').text('Мы перезвоним в удобное время.'); this.$header.find('.law-widget-header-robot-title').find('.law-widget-header-robot-title-city').text(''); this.$call.css('display', 'block'); this.$chat.css('display', 'none'); this.method = 'call'; this.$header_call.removeClass('law-widget-header-show'); this.$header_chat.addClass('law-widget-header-show'); this.animation_notice_start() }, hide: function() { var _this = this; this.$hide.removeClass('law-widget-header-button-open').addClass('law-widget-header-button-close'); this.$el.removeClass('law-widget-open'); setTimeout(function() { _this.$el.addClass('law-widget-closed') }, 500); this.set_history_widget('opened', false); setTimeout(function() { _this.show_tooltip() }, 200) }, robot_message: function(n, data, stop) { var _this = this; if (this.modal_active && !this.init_msg_modal) return false; this.$animation_typing.css('display', 'block').addClass('law-widget-start-animation'); this.scroll(); setTimeout(function() { if (_this.modal_active && !_this.init_msg_modal) return false; _this.notice_count++; _this.$animation_typing.css('display', 'none').removeClass('law-widget-start-animation'); _this.$messages.append('
только что
' + data.message + '
'); _this.set_history_chat(n, { r: n }); _this.scroll(); _this.play_sound(); _this.stop_client_message = (stop) ? false : true }, data.delay) }, play_sound: function() { if (this.is_sound && window.HTMLAudioElement && typeof this.$sound.canPlayType != 'undefined') { this.$sound.play() } }, show_tooltip: function() { var _this = this; if (this.method == 'chat' && !this.success) { this.count_tooltip = 0; this.$tooltip.addClass('law-widget-robot-message-wrap-show'); this.interval_tooltip = setInterval(function() { _this.count_tooltip++; if (_this.count_tooltip == 8) { clearInterval(_this.interval_tooltip); _this.$tooltip.removeClass('law-widget-robot-message-wrap-show') } }, 1000) } }, hide_tooltip: function() { clearInterval(this.interval_tooltip); this.$tooltip.removeClass('law-widget-robot-message-wrap-show') }, client_message: function() { var _this = this; if (jQuerylaw.trim(this.$question.val().replace(/\r\n|\r|\n/, '')) != '') { if (!this.stop_client_message) { this.message = String(this.$question.val()).replace(/&/g, '&').replace(//g, '>'); this.$widget.find('.law-widget-chat-msg-wrap').append('
только что
' + this.message + '
'); this.set_history_chat(2.5, { c: this.message }); this.$question.val('').trigger('blur'); this.$chat_footer.css('display', 'none'); this.$chat.removeClass('law-widget-chat-textarea-show').addClass('law-widget-chat-hide_footer'); this.scroll(); setTimeout(function() { _this.robot_message(3, _this.dialog[3]) }, 3000); setTimeout(function() { _this.robot_message(4, _this.dialog[4]) }, 9000); setTimeout(function() { _this.form() }, 14500); setTimeout(function() { _this.offer_call() }, 20000) } else { this.$chat_footer.find('.law-widget-chat-textarea-box').addClass('law-widget-chat-textarea-disabled'); this.$question.prop('disabled', true); this.$chat.removeClass('law-widget-chat-textarea-focus'); this.scroll(); this.interval_client = setInterval(function() { if (!_this.stop_client_message) { clearInterval(_this.interval_client); _this.$chat_footer.find('.law-widget-chat-textarea-box').addClass('law-widget-chat-textarea-disabled'); _this.stop_client_message = false; _this.message = String(_this.$question.val()).replace(/&/g, '&').replace(//g, '>'); _this.$widget.find('.law-widget-chat-msg-wrap').append('
только что
' + _this.message + '
'); _this.set_history_chat(2.5, { c: _this.message }); _this.$question.val('').trigger('blur'); _this.$chat_footer.css('display', 'none'); _this.$chat.removeClass('law-widget-chat-textarea-show').addClass('law-widget-chat-hide_footer'); _this.scroll(); setTimeout(function() { if (_this.modal_active) return false; _this.robot_message(3, _this.dialog[3]) }, 3000); setTimeout(function() { if (_this.modal_active) return false; _this.robot_message(4, _this.dialog[4]) }, 9000); setTimeout(function() { if (_this.modal_active) return false; _this.form() }, 17000); setTimeout(function() { if (_this.modal_active) return false; _this.offer_call() }, 25000) } }, 400) } } else { this.$question.val(''); this.$widget.find('.law-widget-chat-footer > .law-widget-chat-textarea-box').addClass('law-widget-chat-textarea-moving'); setTimeout(function() { _this.$widget.find('.law-widget-chat-footer > .law-widget-chat-textarea-box').removeClass('law-widget-chat-textarea-moving') }, 400); this.$widget.find('.law-widget-chat-footer').find('.law-widget-chat-textarea-wrap').addClass('law-widget-chat-textarea-wrap-error') } }, client_message_modal: function() { _this = this; this.init_msg_modal = true; if (jQuerylaw.trim(this.$question.val().replace(/\r\n|\r|\n/, '')) != '') { this.message = String(this.$question.val()).replace(/&/g, '&').replace(//g, '>'); this.$widget.find('.law-widget-chat-msg-wrap').append('
только что
' + this.message + '
'); this.set_history_chat(2.5, { c: this.message }); this.$question.val('').trigger('blur'); this.$chat_footer.css('display', 'none'); this.$chat.removeClass('law-widget-chat-textarea-show').addClass('law-widget-chat-hide_footer'); this.scroll(); setTimeout(function() { _this.robot_message(3, _this.dialog[3]) }, 2000); setTimeout(function() { _this.robot_message(4, _this.dialog[4]) }, 8000); setTimeout(function() { _this.form() }, 13500); setTimeout(function() { _this.offer_call() }, 19000) } else { this.$question.val(''); this.$widget.find('.law-widget-chat-footer > .law-widget-chat-textarea-box').addClass('law-widget-chat-textarea-moving'); setTimeout(function() { _this.$widget.find('.law-widget-chat-footer > .law-widget-chat-textarea-box').removeClass('law-widget-chat-textarea-moving') }, 400); this.$widget.find('.law-widget-chat-footer').find('.law-widget-chat-textarea-wrap').addClass('law-widget-chat-textarea-wrap-error') } }, form: function() { var _this = this; setTimeout(function() { _this.$form.parents('.law-widget-robot-msg-form-wrap').css({ display: 'block' }); _this.$form.parents('.law-widget-robot-msg-form-wrap').find('.law-widget-robot-msg-timestamp').attr('data-timestamp', (new Date())); _this.$form.find('input[name=question]').val(_this.message); _this.$question.blur(); _this.scroll(); _this.set_history_chat(5, 'f') }, 1000) }, offer_call: function() { var _this = this; if ((this.modal_active && !this.init_msg_modal) || (typeof this.options.telephone.length != 'undefined' && this.options.telephone.length == 0)) return false; var interval_call_delay = setInterval(function() { if (_this.offer_call_delay == 20) { _this.$animation_typing.css('display', 'block').addClass('law-widget-start-animation'); _this.scroll(); clearInterval(interval_call_delay); setTimeout(function() { if ((_this.modal_active && !_this.init_msg_modal) || _this.success == true) return false; /* _this.notice_count++; */ _this.$animation_typing.css('display', 'none').removeClass('law-widget-start-animation'); _this.$msg_offer_call.css({ display: 'block' }); _this.$msg_offer_call.find('.law-widget-robot-msg-timestamp').attr('data-timestamp', (new Date())); _this.$msg_offer_call.find('.law-widget-robot-msg').html(_this.dialog_offer_call.message); _this.set_history_chat(6, 'oc'); _this.scroll(); _this.play_sound(); _this.offer_call_delay = 0; /* _this.stop_client_message = (stop) ? false : true; */ }, _this.dialog_offer_call.delay) } _this.offer_call_delay++ }, 1000) }, send: function(form) { var _this = this; this.analytics('law-contact-send'); this.analytics((this.method == 'call' ? 'law-contact-send-call' : 'law-contact-send-ask')); jQuerylaw.post(form.attr('action'), form.serialize()).done(function() { _this.$chat.add(_this.$call).css('display', 'none'); _this.$success.css('display', 'block'); _this.success = true; _this.$el.removeClass('law-widget-active'); _this.set_history_widget('event', 'success') }) }, scroll: function() { var scroll_wrap = jQuerylaw('div.law-widget-chat-scroll-wrap'); scroll_wrap.tinyscrollbarlaw(); var scroll = scroll_wrap.data("plugin_tinyscrollbarlaw"); scroll.update('bottom') }, animation_call_start: function() { var _this = this; this.$animation_phone.addClass('law-animation-phone-start'); this.call_timeout.wave_1 = setTimeout(function() { _this.$animation_phone.find('.law-animation-phone-wave-1').addClass('law-animation-phone-wave-show') }, 1000); this.call_timeout.wave_2 = setTimeout(function() { _this.$animation_phone.find('.law-animation-phone-wave-2').addClass('law-animation-phone-wave-show') }, 1100); this.call_timeout.wave_3 = setTimeout(function() { _this.$animation_phone.find('.law-animation-phone-wave-3').addClass('law-animation-phone-wave-show') }, 1200); this.call_timeout.phone = setTimeout(function() { _this.animation_call_stop() }, 4000) }, animation_call_stop: function() { var _this = this; this.$animation_phone.removeClass('law-animation-phone-start'); this.$animation_phone.find('.law-animation-phone-wave-1, .law-animation-phone-wave-2, .law-animation-phone-wave-3').removeClass('law-animation-phone-wave-show'); this.call_timeout.stop = setTimeout(function() { _this.animation_call_start() }, 50) }, animation_call_disabled: function() { var _this = this; this.animation_call_stop(); clearTimeout(this.call_timeout.wave_1); clearTimeout(this.call_timeout.wave_2); clearTimeout(this.call_timeout.wave_3); clearTimeout(this.call_timeout.phone); clearTimeout(this.call_timeout.stop); if (!this.call_disabled) { this.call_disabled = true; setTimeout(function() { _this.call_disabled = false; _this.animation_call_start() }, 700) } }, animation_notice_start: function() { var _this = this; if (_this.notice_count > 0) { _this.$animation_notice.addClass('law-widget-header-notice-show').find('.law-widget-header-notice-quantity').text(_this.notice_count); _this.$hide.css('display', 'none') } }, modal_show: function() { this.opened_modal = true; this.$modal_mask.css({ width: jQuerylaw(document).width(), height: jQuerylaw(document).height() }).fadeIn(300).fadeTo("slow", 0.6); this.$modal_window.fadeIn(500) }, modal_setting_show: function() { this.$modal_mask.css({ width: jQuerylaw(document).width(), height: jQuerylaw(document).height() }).fadeIn(300).fadeTo("slow", 0.6); this.$modal_window_reason.fadeIn(500) }, animation_notice_stop: function() { clearInterval(this.animation_notice_interval); this.$animation_notice.removeClass('law-widget-header-notice-show') }, validation_contact: function(input) { var error = true; if (input.val() == '') { input.addClass('law-widget-valid-error'); error = false } else { input.removeClass('law-widget-valid-error') } if (input.prop('name') == 'email' && input.val() != '' && !input.val().match(/^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i)) { input.addClass('law-widget-valid-error'); error = false } else if (input.prop('name') == 'email' && input.val().match(/^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i)) { input.removeClass('law-widget-valid-error') } if (input.prop('name') == 'phone' && input.val().replace(/\D/g, '').length != 11 && input.val().replace(/\D/g, '').substring(0, 1) == '7') { input.addClass('law-widget-valid-error'); error = false } else if (input.prop('name') == 'phone' && input.val().replace(/\D/g, '').length == 11 && input.val().replace(/\D/g, '').substring(0, 1) == '7') { if (input.val().replace(/\D/g, '').substring(0, 3) != '789') { input.removeClass('law-widget-valid-error') } else { input.addClass('law-widget-valid-error'); error = false } } if (input.prop('name') == 'phone' && input.val().replace(/\D/g, '').length != 12 && input.val().replace(/\D/g, '').substring(0, 2) == '38') { input.addClass('law-widget-valid-error'); error = false } else if (input.prop('name') == 'phone' && input.val().replace(/\D/g, '').length == 12 && input.val().replace(/\D/g, '').substring(0, 2) == '38') { input.removeClass('law-widget-valid-error') } return error }, analytics: function(goal) { var _this = this; if (_this.goals[goal] == true) return; _this.goals[goal] = true; if (typeof ga != 'undefined') { ga('send', 'event', { eventCategory: 'law-widget-1a2b3c4f', eventAction: goal, hitCallback: function() { ga(function(tracker) { tracker.set('eventAction', goal) }) } }) } else { console.log("ga not found") } /* if (_this.ym != null && (typeof _this.ym._clickmap != 'undefined') && window['yaCounter' + _this.ym._clickmap.counterId] != null) window['yaCounter' + _this.ym._clickmap.counterId].reachGoal(goal, function() { console.log('ym send [' + goal + ']') }); if (typeof window.yaCounter40882064 != 'undefined') window.yaCounter40882064.reachGoal(goal, function() { console.log('ym send [' + goal + ']') }) */ }, add_zero_timestamp: function(n) { if (n < 10) { n = "0" + n } return n }, message_timestamp: function() { var _this = this; setInterval(function() { _this.$widget.find('[data-timestamp!=""]').each(function() { var timestamp = new Date(jQuerylaw(this).data('timestamp')); var date = new Date(); if (interval = Math.round((date.getTime() - timestamp.getTime()) / 60000)) { if (interval < 5 && interval > 1) { jQuerylaw(this).html(interval + ' минуты назад') } else if (interval == 1) { jQuerylaw(this).html(interval + ' минуту назад') } else { jQuerylaw(this).html(_this.add_zero_timestamp(timestamp.getHours()) + ':' + _this.add_zero_timestamp(timestamp.getMinutes())) } } else { if (Math.round((timestamp.getTime() - date.getTime()) / 30000)) { jQuerylaw(this).text('30 секунд назад') } } }) }, 10000) }, /*Offer*/ lawWidgetOfferInit: function() { this.lawWidgetOffer = { history: {}, init: function(thisParent) { this.$parent = thisParent; this.$offer = this.$parent.$el.find('.law-widget-offer'); this.$header = this.$offer.find('.law-widget-offer-header'); this.$body = this.$offer.find('.law-widget-offer-body'); this.$header_title = this.$offer.find('.law-widget-offer-header-title'); this.$btn_hide = this.$offer.find('.law-widget-offer-header-hide'); this.$choice = this.$offer.find('.law-widget-offer-choice'); this.$form = this.$offer.find('.law-widget-offer-form'); this.$success = this.$offer.find('.law-widget-offer-success'); this.$btn_close = this.$offer.find('.law-widget-offer-close'); this.$vacancy = this.$offer.find('.law-widget-offer-choice-element'); this.$btn_back = this.$offer.find('.law-widget-offer-form-back'); this.$btn_success_ok = this.$offer.find('.law-widget-offer-success-ok-btn'); this.$question_input = this.$offer.find('input[name="question"]'); this.initOffer() }, initOffer: function() { var _this = this; if (this.is_history()) { this.history = JSON.parse(jQuerylaw.Cookielaw('law_offer_history' + this.$parent.pid)) } this.$header.add(this.$btn_success_ok).on('click', function(e) { if (!_this.$btn_close.is(e.target) && _this.$btn_close.has(e.target).length === 0) { if (_this.$offer.hasClass('law-widget-offer-open')) { _this.$offer.removeClass('law-widget-offer-open'); _this.set_history_widget('state', 'hidden'); _this.$parent.$el.removeClass('open-law-offer') } else { _this.$offer.addClass('law-widget-offer-open'); _this.set_history_widget('state', 'opened'); _this.$parent.$el.removeClass('open-law-widget').addClass('open-law-offer') } } }); this.$vacancy.on('click', function() { _this.$vacancy.each(function(index, element) { jQuerylaw(element).removeClass('law-widget-offer-choice-element-checked').find('input[name="vacancy"]').prop('checked', false) }); jQuerylaw(this).addClass('law-widget-offer-choice-element-checked').find('input[name="vacancy"]').prop('checked', true); _this.$question_input.val('Выбрана вакансия:  ' + jQuerylaw(this).find('.law-widget-offer-choice-title').text() + ' ' + jQuerylaw(this).find('.law-widget-offer-choice-price').text()); _this.$choice.removeClass('law-widget-offer-box-show'); _this.$form.addClass('law-widget-offer-box-show'); _this.set_history_widget('step', 'form'); _this.set_history_widget('vacancy', jQuerylaw(this).attr('data-choice')); _this.$header_title.text('Ваши контакты') }); this.$btn_back.on('click', function() { _this.$form.removeClass('law-widget-offer-box-show'); _this.$choice.addClass('law-widget-offer-box-show'); _this.set_history_widget('step', 'choice'); _this.$header_title.text('Выберите вакансию') }); this.$offer.find('form button').on('click', function(e) { e.preventDefault(); var error = false; jQuerylaw(this).parents('form').find('input[type=text], input[type=tel], input[type=email], input[type=checkbox]').each(function(k, element) { if (!_this.validation_contact(jQuerylaw(element))) error = true }); if (!error && !jQuerylaw(this).is(':disabled')) { jQuerylaw(this).prop('disabled', true).addClass('law-widget-button-disabled'); _this.send(jQuerylaw(this).parents('form')) } }); this.$offer.find('input[type=text], input[type=tel], input[type=email], input[type=radio]').on('change', function(e) { _this.validation_contact(jQuerylaw(this)) }); this.$btn_close.on('click', function() { _this.$parent.$el.removeClass('law-widget-show-offer'); jQuerylaw.Cookielaw('law_offer_hidden' + _this.$parent.pid, 1, { expires: 1, path: '/' }) }); if (_this.is_history()) { this.show_history() } }, validation_contact: function(input) { var error = true; if (input.val() == '') { input.addClass('law-widget-valid-error'); error = false } else { input.removeClass('law-widget-valid-error') } if (input.prop('name') == 'email' && input.val() != '' && !input.val().match(/^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i)) { input.addClass('law-widget-valid-error'); error = false } else if (input.prop('name') == 'email' && input.val().match(/^([a-z0-9_\.-])+@[a-z0-9-]+\.([a-z]{2,4}\.)?[a-z]{2,4}$/i)) { input.removeClass('law-widget-valid-error') } if (input.prop('name') == 'phone' && input.val().replace(/\D/g, '').length != 11 && input.val().replace(/\D/g, '').substring(0, 1) == '7') { input.addClass('law-widget-valid-error'); error = false } else if (input.prop('name') == 'phone' && input.val().replace(/\D/g, '').length == 11 && input.val().replace(/\D/g, '').substring(0, 1) == '7') { if (input.val().replace(/\D/g, '').substring(0, 3) != '789') { input.removeClass('law-widget-valid-error') } else { input.addClass('law-widget-valid-error'); error = false } } if (input.prop('name') == 'phone' && input.val().replace(/\D/g, '').length != 12 && input.val().replace(/\D/g, '').substring(0, 2) == '38') { input.addClass('law-widget-valid-error'); error = false } else if (input.prop('name') == 'phone' && input.val().replace(/\D/g, '').length == 12 && input.val().replace(/\D/g, '').substring(0, 2) == '38') { input.removeClass('law-widget-valid-error') } return error }, send: function(form) { var _this = this; this.$parent.analytics('law-offer-contact-send'); jQuerylaw.post(form.attr('action'), form.serialize()).done(function() { _this.$form.removeClass('law-widget-offer-box-show'); _this.$success.addClass('law-widget-offer-box-show'); _this.set_history_widget('step', 'success'); _this.$header_title.text('ГОТОВО!') }) }, is_history: function() { if (this.$parent.debug) return false; return (typeof jQuerylaw.Cookielaw('law_offer_history' + this.$parent.pid) != 'undefined') ? true : false }, set_history_widget: function(key, item) { if (this.$parent.debug) return false; this.history[key] = item; jQuerylaw.Cookielaw('law_offer_history' + this.$parent.pid, JSON.stringify(this.history), { expires: this.get_expires(), path: '/' }) }, get_expires: function() { var date = new Date(); var minutes = 300; date.setTime(date.getTime() + (minutes * 60 * 1000)); return date }, show_history: function() { var _this = this; if (this.history.state == 'opened') { this.$offer.addClass('law-widget-offer-open'); this.$parent.$el.addClass('open-law-offer') } else { this.$offer.removeClass('law-widget-offer-open') } if (this.history.step == 'form') { this.$choice.add(this.$success).removeClass('law-widget-offer-box-show'); this.$form.addClass('law-widget-offer-box-show'); this.$header_title.text('Ваши контакты') } if (this.history.step == 'choice') { this.$form.add(this.$success).removeClass('law-widget-offer-box-show'); this.$choice.addClass('law-widget-offer-box-show'); this.$header_title.text('Выберите вакансию') } if (this.history.step == 'success') { this.$form.add(this.$choice).removeClass('law-widget-offer-box-show'); this.$success.addClass('law-widget-offer-box-show'); this.$header_title.text('ГОТОВО!') } if (typeof this.history.vacancy != 'undefined') { this.$vacancy.each(function(index, element) { if (jQuerylaw(element).attr('data-choice') == _this.history.vacancy) { jQuerylaw(element).addClass('law-widget-offer-choice-element-checked').find('input[name="vacancy"]').prop('checked', true); _this.$question_input.val('Выбрана вакансия:  ' + jQuerylaw(element).find('.law-widget-offer-choice-title').text() + ' ' + jQuerylaw(element).find('.law-widget-offer-choice-price').text()) } else { jQuerylaw(element).removeClass('law-widget-offer-choice-element-checked').find('input[name="vacancy"]').prop('checked', false) } }) } } }; this.lawWidgetOffer.init(this) } }; jQuerylaw.fn.lawWidget = function(options) { var args = arguments; if (options === undefined || typeof options === 'object') { var res = this.each(function() { if (!jQuerylaw.data(this, 'plugin_widget')) { jQuerylaw.data(this, 'plugin_widget', new lawWidget(this, options)) } }); return res } } })(jQuerylaw, window, document); function is_adblock_law() { var detect_ad_promo = jQuerylaw('#detect_ad_promo_law').get(0); if (detect_ad_promo.style.display == "none" || detect_ad_promo.style.display == "hidden" || detect_ad_promo.style.visibility == "hidden" || detect_ad_promo.offsetHeight == 0) { return true } return false } jQuerylaw(document).ready(function() { var lawWidgetHTML1a2b3c4f = '
'; var lawWidgetShowIsAdblock1a2b3c4f = false; var debug = ''; var pid = '_37'; if (jQuerylaw('.text-ad').length == 0) { jQuerylaw('
', { class: 'text-ad', id: 'detect_ad_promo_law' }).css({ height: 1, width: 1, position: 'absolute', left: 0, bottom: 0, border: 'none', opacity: 0, background: 'none' }).appendTo('body') } if (typeof jQuerylaw.Cookielaw('law_history' + pid) != 'undefined' && jQuerylaw.Cookielaw('law_history' + pid) != null && typeof JSON.parse(jQuerylaw.Cookielaw('law_history' + pid)).hide != 'undefined') {} else { if (!lawWidgetShowIsAdblock1a2b3c4f || (lawWidgetShowIsAdblock1a2b3c4f && is_adblock_law())) { jQuerylaw('body').append(lawWidgetHTML1a2b3c4f); jQuerylaw('#law-widget-1a2b3c4f').lawWidget({ delay: 5000, robot: { "name": "\u0413\u0435\u043e\u0440\u0433\u0438\u0439 \u0420\u043e\u0441\u0442\u043e\u0432", "title": "\u042e\u0440\u0438\u0441\u0442-\u043a\u043e\u043d\u0441\u0443\u043b\u044c\u0442\u0430\u043d\u0442", "image": "face1.png" }, position: 'right', margin: '20 px', city: '', telephone: [], show_offer: false }); /* if (debug != '1') { jQuerylaw.getJSON('//advokatkuzin.ru/widget.php?a___=1', { token: '0' }).done(function(data) {}) } */ } } //jQuerylaw('body').append('') }); window.law_ga_transliterate = { letters: { shch: 'щ', ya: 'я', yu: 'ю', ch: 'ч', sh: 'ш', zh: 'ж', a: 'а', b: 'б', v: 'в', g: 'г', d: 'д', e: 'е', z: 'з', i: 'и', j: 'й', k: 'к', l: 'л', m: 'м', n: 'н', o: 'о', p: 'п', r: 'р', s: 'с', t: 'т', u: 'у', f: 'ф', h: 'х', c: 'ц', y: 'ы', '`': 'ь', '\'': 'ъ' }, translate: function(word) { var _this = this; word = word.toLowerCase(); for (var prop in _this.letters) { var reg = new RegExp(prop, "g"); word = word.replace(reg, _this.letters[prop]) } return word } }; window.law_regions_autocomplete = { "к": [{ "m": "Крым", "s": "Автономная Республика Крым" }, { "m": "Керчь", "s": "Республика Крым" }, { "m": "Красноперекопск", "s": "Республика Крым" }, { "m": "Куйбышево", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Казанки", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Кировский", "s": "Республика Крым" }, { "m": "Кировское", "s": "Кировский р-н, Республика Крым" }, { "m": "Красногвардейский", "s": "Республика Крым" }, { "m": "Красногвардейское", "s": "Красногвардейский р-н, Республика Крым" }, { "m": "Красноперекопский", "s": "Республика Крым" }, { "m": "Красная Зорька", "s": "Симферопольский р-н, Республика Крым" }, { "m": "Ключевое", "s": "Симферопольский р-н, Республика Крым" }], "с": [{ "m": "Симферополь", "s": "Республика Крым" }, { "m": "Саки", "s": "Республика Крым" }, { "m": "Судак", "s": "Республика Крым" }, { "m": "Самохвалово", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Севастьяновка", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Стальное", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Старый Крым", "s": "Кировский р-н, Республика Крым" }, { "m": "Северное", "s": "Раздольненский р-н, Республика Крым" }, { "m": "Сакский", "s": "Республика Крым" }, { "m": "Симферопольский", "s": "Республика Крым" }, { "m": "Софиевка", "s": "Симферопольский р-н, Республика Крым" }, { "m": "Солнечное", "s": "Симферопольский р-н, Республика Крым" }, { "m": "Советский", "s": "Республика Крым" }, { "m": "Советский", "s": "Советский р-н, Республика Крым" }], "а": [{ "m": "Алушта", "s": "Республика Крым" }, { "m": "Армянск", "s": "Республика Крым" }, { "m": "Азовское", "s": "Джанкойский р-н, Республика Крым" }, { "m": "Александровка", "s": "Симферопольский р-н, Республика Крым" }], "д": [{ "m": "Джанкой", "s": "Республика Крым" }, { "m": "Джанкойский", "s": "Республика Крым" }], "е": [{ "m": "Евпатория", "s": "Республика Крым" }], "ф": [{ "m": "Феодосия", "s": "Республика Крым" }], "я": [{ "m": "Ялта", "s": "Республика Крым" }], "б": [{ "m": "Бахчисарайский", "s": "Республика Крым" }, { "m": "Бахчисарай", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Большое Садовое", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Белогорский", "s": "Республика Крым" }, { "m": "Белогорск", "s": "Белогорский р-н, Республика Крым" }, { "m": "Баланово", "s": "Белогорский р-н, Республика Крым" }, { "m": "Барабаново", "s": "Белогорский р-н, Республика Крым" }, { "m": "Багерово", "s": "Ленинский р-н, Республика Крым" }], "н": [{ "m": "Научный", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Новоульяновка", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Нововасильевка", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Новопавловка", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Нижние Орешники", "s": "Белогорский р-н, Республика Крым" }, { "m": "Нижнегорский", "s": "Республика Крым" }, { "m": "Нижнегорский", "s": "Нижнегорский р-н, Республика Крым" }, { "m": "Новоселовское", "s": "Раздольненский р-н, Республика Крым" }, { "m": "Новофедоровка", "s": "Сакский р-н, Республика Крым" }, { "m": "Новый Сад", "s": "Симферопольский р-н, Республика Крым" }, { "m": "Николаевка", "s": "Симферопольский р-н, Республика Крым" }], "в": [{ "m": "Высокое", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Верхние Орешники", "s": "Белогорский р-н, Республика Крым" }, { "m": "Владимировка", "s": "Белогорский р-н, Республика Крым" }, { "m": "Вольное", "s": "Джанкойский р-н, Республика Крым" }, { "m": "Видное", "s": "Красногвардейский р-н, Республика Крым" }, { "m": "Винницкое", "s": "Симферопольский р-н, Республика Крым" }], "м": [{ "m": "Малое Садовое", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Малиновка", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Макаровка", "s": "Первомайский р-н, Республика Крым" }, { "m": "Маленькое", "s": "Симферопольский р-н, Республика Крым" }, { "m": "Молодежное", "s": "Симферопольский р-н, Республика Крым" }], "т": [{ "m": "Танковое", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Тополи", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Тепловка", "s": "Симферопольский р-н, Республика Крым" }], "п": [{ "m": "Почтовое", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Приятное Свидание", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Петрово", "s": "Белогорский р-н, Республика Крым" }, { "m": "Первомайский", "s": "Республика Крым" }, { "m": "Первомайское", "s": "Первомайский р-н, Республика Крым" }, { "m": "Пшеничное", "s": "Первомайский р-н, Республика Крым" }, { "m": "Петровка", "s": "Симферопольский р-н, Республика Крым" }], "з": [{ "m": "Заветное", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Зубакино", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Зуя", "s": "Белогорский р-н, Республика Крым" }, { "m": "Зеленое", "s": "Нижнегорский р-н, Республика Крым" }], "р": [{ "m": "Растущее", "s": "Бахчисарайский р-н, Республика Крым" }, { "m": "Раздольненский", "s": "Республика Крым" }, { "m": "Раздольное", "s": "Раздольненский р-н, Республика Крым" }, { "m": "Раздолье", "s": "Симферопольский р-н, Республика Крым" }], "л": [{ "m": "Литвиненково", "s": "Белогорский р-н, Республика Крым" }, { "m": "Ленинский", "s": "Республика Крым" }, { "m": "Ленино", "s": "Ленинский р-н, Республика Крым" }, { "m": "Линейное", "s": "Нижнегорский р-н, Республика Крым" }], "у": [{ "m": "Украинка", "s": "Белогорский р-н, Республика Крым" }, { "m": "Упорное", "s": "Первомайский р-н, Республика Крым" }], "о": [{ "m": "Октябрьское", "s": "Красногвардейский р-н, Республика Крым" }], "щ": [{ "m": "Щелкино", "s": "Ленинский р-н, Республика Крым" }], "и": [{ "m": "Ивановка", "s": "Ленинский р-н, Республика Крым" }], "г": [{ "m": "Гвардейское", "s": "Симферопольский р-н, Республика Крым" }], "ч": [{ "m": "Черноморский", "s": "Республика Крым" }, { "m": "Черноморское", "s": "Черноморский р-н, Республика Крым" }] }; if (typeof law_google_autocomplete == 'undefined') { var law_google_autocomplete = function() { var law_google_autocomplete_search; var law_google_autocomplete_service = new google.maps.places.AutocompleteService(); var law_google_autocomplete_predictions = function(predictions, status) { predictions = predictions != null ? predictions : []; if (window.law_google_autocomplete_search_value.trim().length >= 3) { var search_region = window.law_regions_autocomplete[window.law_google_autocomplete_search_value.trim().toLowerCase().substring(0, 1)]; law_regions_main = []; var h = 0; if (typeof search_region != 'undefined') { for (var i in search_region) { if ((search_region[i].m + ', ' + search_region[i].s).toLowerCase().indexOf(window.law_google_autocomplete_search_value.trim().toLowerCase().replace(/\s+/gi, ' ')) == 0) { law_regions_main[h] = { structured_formatting: { main_text: search_region[i].m, secondary_text: search_region[i].s } }; h++ } } predictions = law_regions_main.concat(predictions); predictions = predictions.splice(0, 5) } } if (typeof law_google_autocomplete_search != 'undefined' && (status == google.maps.places.PlacesServiceStatus.OK || (typeof law_regions_main != 'undefined' && law_regions_main.length > 0))) { var law_google_autocomplete_container = law_google_autocomplete_search.next('.law-google-autocomplete-container').html(''); jQuerylaw.each(predictions, function(index, element) { law_google_autocomplete_container.append('
  • ' + '
    ' + element.structured_formatting.main_text + '
    ' + (typeof element.structured_formatting.secondary_text != 'undefined' && element.structured_formatting.secondary_text != '' ? ('
    ,
    ' + element.structured_formatting.secondary_text + '
    ') : '') + '
  • ') }); law_google_autocomplete_search.parents('.law-google-autocomplete').addClass('law-google-autocomplete-open'); if (law_google_autocomplete_search.hasClass('law-google-autocomplete-top')) { law_google_autocomplete_container.css({ top: -(law_google_autocomplete_container.outerHeight() - 2) }) } else { law_google_autocomplete_container.css({ top: law_google_autocomplete_search.outerHeight() }) } } else { if (typeof law_google_autocomplete_search != 'undefined') { law_google_autocomplete_search.parents('.law-google-autocomplete').removeClass('law-google-autocomplete-open').find('.law-google-autocomplete-container').html('') } } }; jQuerylaw('.law-google-autocomplete-search').each(function(index, element) { if (!jQuerylaw(element).parent('.law-google-autocomplete').length) jQuerylaw(element).wrap('
    ').after('') }); jQuerylaw(document).on('focus keyup keydown input', '.law-google-autocomplete-search', function() { law_google_autocomplete_search = jQuerylaw(this); if (typeof law_google_autocomplete_search != 'undefined' && law_google_autocomplete_search.val().length >= 1) { window.law_google_autocomplete_search_value = law_google_autocomplete_search.val(); var search_value = law_google_autocomplete_search.val(); search_value = (/[A-Za-z]/.test(search_value)) ? law_ga_transliterate.translate(search_value) : search_value; law_google_autocomplete_service.getPlacePredictions({ input: search_value, types: ['(cities)'], componentRestrictions: { country: (typeof law_localization != 'undefined' && typeof law_localization.country != 'undefined' && law_localization.country == 'ua' ? 'ua' : 'ru') } }, law_google_autocomplete_predictions) } else { law_google_autocomplete_search.parents('.law-google-autocomplete').removeClass('law-google-autocomplete-open').find('.law-google-autocomplete-container').html('') } }); jQuerylaw(document).on('click', '.law-google-autocomplete-container > li', function() { jQuerylaw(this).parents('.law-google-autocomplete').find('input.law-google-autocomplete-search').val(jQuerylaw(this).text()); jQuerylaw(this).parents('.law-google-autocomplete').removeClass('law-google-autocomplete-open').find('.law-google-autocomplete-container').html('') }); jQuerylaw(document).click(function(e) { var el1 = jQuerylaw(".law-google-autocomplete-container > li"); var el2 = jQuerylaw(".law-google-autocomplete-search"); if (!el1.is(e.target) && el1.has(e.target).length === 0 && !el2.is(e.target) && el2.has(e.target).length === 0) jQuerylaw('.law-google-autocomplete').removeClass('law-google-autocomplete-open') }) }; jQuerylaw(window).load(function() { if (typeof google == 'undefined' || typeof google.maps == 'undefined' || typeof google.maps.places == 'undefined') { var google_autocomplete_key = 'AIzaSyCsIh81aTZ2FDgVtfAG95tbNnHcbnqhgJM'; var wf = document.createElement('script'); wf.src = ('https:' == document.location.protocol ? 'https' : 'http') + '://maps.googleapis.com/maps/api/js?key=' + google_autocomplete_key + '&signed_in=true&libraries=places&language=ru-RU&callback=law_google_autocomplete'; wf.type = 'text/javascript'; wf.async = 'true'; var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wf, s) } else { law_google_autocomplete() } }) } else { if (typeof google != 'undefined') { law_google_autocomplete() } }