PageSourceSearch

https://www.octapack.ru/contacts/dealers/

html octapack.ru collected 2026-10-05 00:03:33 UTC 149,149 bytes, 3,010 lines download raw bytes

1<!DOCTYPE html>
2<html xml:lang='ru' lang='ru' xmlns="http://www.w3.org/1999/xhtml" >
3<head>
4	<title>Äèëåðû - Octapack</title>
5	<meta name="viewport" content="user-scalable=no, initial-scale=1.0, maximum-scale=1.0, width=device-width" />
6	<meta name="HandheldFriendly" content="true" />
7	<meta name="yes" content="yes" />
8	<meta name="apple-mobile-web-app-status-bar-style" content="black" />
9	<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" />
10	<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
11<meta name="keywords" content="èíòåðíåò-ìàãàçèí, çàêàçàòü, êóïèòü" />
12<meta name="description" content="Óíèâåðñàëüíûé èíòåðíåò-ìàãàçèí" />
13<link href="/bitrix/cache/css/s1/aspro_mshop/kernel_main/kernel_main.css?177857646426347" type="text/css"  rel="stylesheet" />
14<link href="/bitrix/cache/css/s1/aspro_mshop/default_02c00053c496eb81b2fd6a89bb0656dc/default_02c00053c496eb81b2fd6a89bb0656dc.css?17464607833572" type="text/css"  rel="stylesheet" />
15<link href="/bitrix/cache/css/s1/aspro_mshop/template_ff8b6ace39b58af47891059a5ff50d83/template_ff8b6ace39b58af47891059a5ff50d83.css?1746460783525552" type="text/css"  data-template-style="true"  rel="stylesheet" />
16<script type="text/javascript">if(!window.BX)window.BX={};if(!window.BX.message)window.BX.message=function(mess){if(typeof mess=='object') for(var i in mess) BX.message[i]=mess[i]; return true;};</script>
vendor: 1 bytes, line 16
16
17<script type="text/javascript">(window.BX||top.BX).message({'JS_CORE_LOADING':'Çàãðóçêà...','JS_CORE_NO_DATA':'- Íåò äàííûõ -','JS_CORE_WINDOW_CLOSE':'Çàêðûòü','JS_CORE_WINDOW_EXPAND':'Ðàçâåðíóòü','JS_CORE_WINDOW_NARROW':'Ñâåðíóòü â îêíî','JS_CORE_WINDOW_SAVE':'Ñîõðàíèòü','JS_CORE_WINDOW_CANCEL':'Îòìåíèòü','JS_CORE_WINDOW_CONTINUE':'Ïðîäîëæèòü','JS_CORE_H':'÷','JS_CORE_M':'ì','JS_CORE_S':'ñ','JSADM_AI_HIDE_EXTRA':'Ñêðûòü ëèøíèå','JSADM_AI_ALL_NOTIF':'Ïîêàçàòü âñå','JSADM_AUTH_REQ':'Òðåáóåòñÿ àâòîðèçàöèÿ!','JS_CORE_WINDOW_AUTH':'Âîéòè','JS_CORE_IMAGE_FULL':'Ïîëíûé ðàçìåð'});</script>
vendor: 1 bytes, line 17
17
18<script type="text/javascript">(window.BX||top.BX).message({'LANGUAGE_ID':'ru','FORMAT_DATE':'DD.MM.YYYY','FORMAT_DATETIME':'DD.MM.YYYY HH:MI:SS','COOKIE_PREFIX':'BITRIX_SM','SERVER_TZ_OFFSET':'10800','SITE_ID':'s1','SITE_DIR':'/','USER_ID':'','SERVER_TIME':'1791158612','USER_TZ_OFFSET':'0','USER_TZ_AUTO':'Y','bitrix_sessid':'67dc3ab8f5c977fee5bef078c263dd74'});</script>
18
19
20
21<script type="text/javascript" src="/bitrix/cache/js/s1/aspro_mshop/kernel_main/kernel_main.js?1778576464293028"></script>
vendor: 1 bytes, line 21
21
22<script type="text/javascript" src="/bitrix/js/main/core/core_db.min.js?14989943258699"></script>
vendor: 1 bytes, line 22
22
23<script type="text/javascript" src="/bitrix/js/main/core/core_frame_cache.min.js?147264266111191"></script>
vendor: 1 bytes, line 23
23
24<script type="text/javascript" src="/bitrix/js/main/jquery/jquery-1.8.3.min.js?147264266193636"></script>
vendor: 1 bytes, line 24
24
25<script type="text/javascript" src="/bitrix/js/main/ajax.min.js?147264266122194"></script>
vendor: 1 bytes, line 25
25
26<script type="text/javascript" src="/bitrix/cache/js/s1/aspro_mshop/kernel_currency/kernel_currency.js?17464607831875"></script>
vendor: 1 bytes, line 26
26
27<script type="text/javascript">BX.setJSList(['/bitrix/js/main/core/core.js','/bitrix/js/main/core/core_ajax.js','/bitrix/js/main/json/json2.min.js','/bitrix/js/main/core/core_ls.js','/bitrix/js/main/core/core_fx.js','/bitrix/js/main/core/core_popup.js','/bitrix/js/main/core/core_window.js','/bitrix/js/main/session.js','/bitrix/js/main/core/core_date.js','/bitrix/js/main/utils.js','/bitrix/js/currency/core_currency.js','/bitrix/templates/aspro_mshop/js/jquery.actual.min.js','/bitrix/templates/aspro_mshop/js/jqModal.js','/bitrix/templates/aspro_mshop/js/jquery.fancybox.js','/bitrix/templates/aspro_mshop/js/jquery.history.js','/bitrix/templates/aspro_mshop/js/jquery.flexslider.js','/bitrix/templates/aspro_mshop/js/jquery.validate.min.js','/bitrix/templates/aspro_mshop/js/jquery.inputmask.bundle.min.js','/bitrix/templates/aspro_mshop/js/jquery.easing.1.3.js','/bitrix/templates/aspro_mshop/js/equalize.min.js','/bitrix/templates/aspro_mshop/js/jquery.alphanumeric.js','/bitrix/templates/aspro_mshop/js/jquery.cookie.js','/bitrix/templates/aspro_mshop/js/jquery.plugin.min.js','/bitrix/templates/aspro_mshop/js/jquery.countdown.min.js','/bitrix/templates/aspro_mshop/js/jquery.countdown-ru.js','/bitrix/templates/aspro_mshop/js/jquery.ikSelect.js','/bitrix/templates/aspro_mshop/js/sly.js','/bitrix/templates/aspro_mshop/js/equalize_ext.js','/bitrix/templates/aspro_mshop/js/main.js','/bitrix/components/bitrix/search.title/script.js','/bitrix/templates/aspro_mshop/js/custom.js','/bitrix/templates/aspro_mshop/components/bitrix/map.google.view/map/markerclustererplus.js','/bitrix/templates/aspro_mshop/components/bitrix/map.google.view/map/infobox.js','/bitrix/templates/aspro_mshop/components/bitrix/sale.basket.basket.line/normal/script.js']); </script>
vendor: 1 bytes, line 27
27
28<script type="text/javascript">BX.setCSSList(['/bitrix/js/main/core/css/core.css','/bitrix/js/main/core/css/core_popup.css','/bitrix/js/main/core/css/core_date.css','/bitrix/templates/aspro_mshop/css/jquery.fancybox.css','/bitrix/templates/aspro_mshop/css/styles.css','/bitrix/templates/aspro_mshop/ajax/ajax.css','/bitrix/components/bitrix/breadcrumb/templates/coffeediz.data-vocabulary.org/style.css','/bitrix/templates/aspro_mshop/styles.css','/bitrix/templates/aspro_mshop/template_styles.css','/bitrix/templates/aspro_mshop/themes/custom_s1/theme.css','/bitrix/templates/aspro_mshop/css/media.min.css','/bitrix/templates/aspro_mshop/css/custom.css','/bitrix/templates/aspro_mshop/components/bitrix/sale.basket.basket.line/normal/style.css']); </script>
vendor: 1 bytes, line 28
28
29<script>
30	(function(w,d,u){
31		var s=d.createElement('script');s.async=true;s.src=u+'?'+(Date.now()/60000|0);
32		var h=d.getElementsByTagName('script')[0];h.parentNode.insertBefore(s,h);
33	})(window,document,'https://cdn.bitrix24.ru/b6663893/crm/site_button/loader_2_k51bss.js');
34</script>
34
35
36<!--'start_frame_cache_TVwM3R'--><!-- Bitrix24.LiveChat external config -->
37<script type="text/javascript">
38	window.BxLiveChatInit = function() {
39		var config = {'user':{'hash':'6781d3683040f5e91e87c6f8acad72fa','name':'Ãîñòü','lastName':'','email':''},'firstMessage':'[b]Ïîëüçîâàòåëü[/b]: Ãîñòü[br][br][b]Ñàéò[/b]: #VAR_HOST#[br][b]Ñòðàíèöà ñàéòà[/b]: #VAR_PAGE#'};
40		config.firstMessage = config.firstMessage.replace('#VAR_HOST#', location.hostname).replace('#VAR_PAGE#', '[url='+location.href+']'+(document.title || location.href)+'[/url]');
41		BX.LiveChat.setCookie('LIVECHAT_HASH', '6781d3683040f5e91e87c6f8acad72fa', {expires: 600000});
42		return config;
43	};
44	</script>
44
45<!-- /Bitrix24.LiveChat external config -->
46<!--'end_frame_cache_TVwM3R'-->
47<script type="text/javascript">
48					(function () {
49						"use strict";
50
51						var counter = function ()
52						{
53							var cookie = (function (name) {
54								var parts = ("; " + document.cookie).split("; " + name + "=");
55								if (parts.length == 2) {
56									try {return JSON.parse(decodeURIComponent(parts.pop().split(";").shift()));}
57									catch (e) {}
58								}
59							})("BITRIX_CONVERSION_CONTEXT_s1");
60
61							if (cookie && cookie.EXPIRE >= BX.message("SERVER_TIME"))
62								return;
63
64							var request = new XMLHttpRequest();
65							request.open("POST", "/bitrix/tools/conversion/ajax_counter.php", true);
66							request.setRequestHeader("Content-type", "application/x-www-form-urlencoded");
67							request.send(
68								"SITE_ID="+encodeURIComponent("s1")+
69								"&sessid="+encodeURIComponent(BX.bitrix_sessid())+
70								"&HTTP_REFERER="+encodeURIComponent(document.referrer)
71							);
72						};
73
74						if (window.frameRequestStart === true)
75							BX.addCustomEvent("onFrameDataReceived", counter);
76						else
77							BX.ready(counter);
78					})();
79				</script>
vendor: 1 bytes, line 79
79
80<script>BX.message({'PHONE':'Òåëåôîí','SOCIAL':'Ñîöèàëüíûå ñåòè','DESCRIPTION':'Îïèñàíèå ìàãàçèíà','ITEMS':'Òîâàðû','LOGO':'Ëîãîòèï','REGISTER_INCLUDE_AREA':'Òåêñò î ðåãèñòðàöèè','AUTH_INCLUDE_AREA':'Òåêñò îá àâòîðèçàöèè','FRONT_IMG':'Èçîáðàæåíèå êîìïàíèè','EMPTY_CART':'ïóñòà','CATALOG_VIEW_MORE':'... Ïîêàçàòü âñå','CATALOG_VIEW_LESS':'... Ñâåðíóòü','JS_REQUIRED':'Çàïîëíèòå ýòî ïîëå!','JS_FORMAT':'Íåâåðíûé ôîðìàò!','JS_FILE_EXT':'Íåäîïóñòèìîå ðàñøèðåíèå ôàéëà!','JS_PASSWORD_COPY':'Ïàðîëè íå ñîâïàäàþò!','JS_PASSWORD_LENGTH':'Ìèíèìóì 6 ñèìâîëîâ!','JS_ERROR':'Íåâåðíî çàïîëíåíî ïîëå!','JS_FILE_SIZE':'Ìàêñèìàëüíûé ðàçìåð 5ìá!','JS_FILE_BUTTON_NAME':'Âûáåðèòå ôàéë','JS_FILE_DEFAULT':'Ôàéë íå íàéäåí','JS_DATE':'Íåêîððåêòíàÿ äàòà!','JS_REQUIRED_LICENSES':'Ñîãëàñèòåñü ñ óñëîâèÿìè!','LICENSE_PROP':'Ñîãëàñèå ñ óñëîâèÿìè','FANCY_CLOSE':'Çàêðûòü','FANCY_NEXT':'Ñëåäóþùèé','FANCY_PREV':'Ïðåäûäóùèé','TOP_AUTH_REGISTER':'Ðåãèñòðàöèÿ','CALLBACK':'Çàêàçàòü çâîíîê','UNTIL_AKC':'Äî êîíöà àêöèè','TITLE_QUANTITY_BLOCK':'Îñòàòîê','TITLE_QUANTITY':'øòóê','COUNTDOWN_SEC':'ñåê.','COUNTDOWN_MIN':'ìèí.','COUNTDOWN_HOUR':'÷àñ.','COUNTDOWN_DAY0':'äíåé','COUNTDOWN_DAY1':'äåíü','COUNTDOWN_DAY2':'äíÿ','COUNTDOWN_WEAK0':'Íåäåëü','COUNTDOWN_WEAK1':'Íåäåëÿ','COUNTDOWN_WEAK2':'Íåäåëè','COUNTDOWN_MONTH0':'Ìåñÿöåâ','COUNTDOWN_MONTH1':'Ìåñÿö','COUNTDOWN_MONTH2':'Ìåñÿöà','COUNTDOWN_YEAR0':'Ëåò','COUNTDOWN_YEAR1':'Ãîä','COUNTDOWN_YEAR2':'Ãîäà','CATALOG_PARTIAL_BASKET_PROPERTIES_ERROR':'Çàïîëíåíû íå âñå ñâîéñòâà ó äîáàâëÿåìîãî òîâàðà','CATALOG_EMPTY_BASKET_PROPERTIES_ERROR':'Âûáåðèòå ñâîéñòâà òîâàðà, äîáàâëÿåìûå â êîðçèíó â ïàðàìåòðàõ êîìïîíåíòà','CATALOG_ELEMENT_NOT_FOUND':'Ýëåìåíò íå íàéäåí','ERROR_ADD2BASKET':'Îøèáêà äîáàâëåíèÿ òîâàðà â êîðçèíó','CATALOG_SUCCESSFUL_ADD_TO_BASKET':'Óñïåøíîå äîáàâëåíèå òîâàðà â êîðçèíó','ERROR_BASKET_TITLE':'Îøèáêà êîðçèíû','ERROR_BASKET_PROP_TITLE':'Âûáåðèòå ñâîéñòâà, äîáàâëÿåìûå â êîðçèíó','ERROR_BASKET_BUTTON':'Âûáðàòü','BASKET_TOP':'Êîðçèíà â øàïêå','ERROR_ADD_DELAY_ITEM':'Îøèáêà îòëîæåííîé êîðçèíû','VIEWED_TITLE':'Ðàíåå âû ñìîòðåëè','VIEWED_BEFORE':'Ðàíåå âû ñìîòðåëè','BEST_TITLE':'Ëó÷øèå ïðåäëîæåíèÿ','FROM':'îò','TITLE_BLOCK_VIEWED_NAME':'Ðàíåå âû ñìîòðåëè','BASKET_CHANGE_TITLE':'Âàø çàêàç','BASKET_CHANGE_LINK':'Èçìåíèòü','FULL_ORDER':'Îôîðìëåíèå îáû÷íîãî çàêàçà','BASKET_PRINT_BUTTON':'Ðàñïå÷àòàòü çàêàç','BASKET_CLEAR_ALL_BUTTON':'Î÷èñòèòü','BASKET_QUICK_ORDER_BUTTON':'Áûñòðûé çàêàç','BASKET_CONTINUE_BUTTON':'Ïðîäîëæèòü ïîêóïêè','BASKET_ORDER_BUTTON':'Îôîðìèòü çàêàç','FRONT_STORES':'Çàãîëîâîê ñî ñïèñêîì ýëåìåíòîâ','TOTAL_SUMM_ITEM':'Îáùàÿ ñòîèìîñòü ','ITEM_ECONOMY':'Ýêîíîìèÿ '})</script>
80
81<link rel="shortcut icon" href="/favicon.ico?1471250406" type="image/x-icon" />
82<link rel="apple-touch-icon" sizes="57x57" href="/upload/aspro.mshop/405/4058cfe6299cb44214f5eabf94b72719.png" />
83<link rel="apple-touch-icon" sizes="72x72" href="/upload/aspro.mshop/a51/a51190c638df691f31a9cc6081210ecc.png" />
84<script src="https://maps.google.com/maps/api/js?key=&language=ru" charset="utf-8"></script>
84
85<meta property="og:title" content="Äèëåðû - Octapack" />
86<meta property="og:type" content="article" />
87<meta property="og:image" content="/logo.png" />
88<link rel="image_src" href="/logo.png"  />
89<meta property="og:url" content="/contacts/dealers/" />
90<meta property="og:description" content="Óíèâåðñàëüíûé èíòåðíåò-ìàãàçèí" />
91
92
93
94<script type="text/javascript" src="/bitrix/cache/js/s1/aspro_mshop/template_207eff6e54396e9497f298b5732239c8/template_207eff6e54396e9497f298b5732239c8.js?1746462619378575"></script>
vendor: 1 bytes, line 94
94
95<script type="text/javascript" src="/bitrix/cache/js/s1/aspro_mshop/default_98ea29daf44ea015f1c3d7e9a1751c8d/default_98ea29daf44ea015f1c3d7e9a1751c8d.js?17464607834474"></script>
vendor: 1 bytes, line 95
95
96<script type="text/javascript">var _ba = _ba || []; _ba.push(["aid", "a175dfb2213976fd5eed28e778cc7226"]); _ba.push(["host", "www.octapack.ru"]); (function() {var ba = document.createElement("script"); ba.type = "text/javascript"; ba.async = true;ba.src = (document.location.protocol == "https:" ? "https://" : "http://") + "bitrix.info/ba.js";var s = document.getElementsByTagName("script")[0];s.parentNode.insertBefore(ba, s);})();</script>
96
97
98
99			<!--[if gte IE 9]><style type="text/css">.basket_button, .button30, .icon {filter: none;}</style><![endif]-->
100	<link href='https://fonts.googleapis.com/css?family=Ubuntu:400,500,700,400italic&subset=latin,cyrillic' rel='stylesheet' type='text/css'>
101</head>
102	<body id="main">
103		<div id="panel"></div>
104								
104<script type="text/javascript">
105		var arMShopOptions = {};
106
107		BX.message({'MIN_ORDER_PRICE_TEXT':'<b>Ìèíèìàëüíàÿ ñóììà çàêàçà #PRICE#<\/b><br/>\nÏîæàëóéñòà, äîáàâüòå åùå òîâàðîâ â êîðçèíó ','LICENSES_TEXT':'ß ñîãëàñåí íà <a href=\"/include/licenses_detail.php\" target=\"_blank\">îáðàáîòêó ïåðñîíàëüíûõ äàííûõ<\/a>'});
108		</script>
108
109		<!--'start_frame_cache_options-block'-->		
109<script>
110			var arBasketAspro = {'BASKET':[],'DELAY':[],'SUBSCRIBE':[],'COMPARE':[]};
111			$(document).ready(function() {
112				setBasketAspro();
113			});
114		</script>
114
115		<!--'end_frame_cache_options-block'-->
116		
116<script type="text/javascript">
117		var arMShopOptions = ({
118			"SITE_ID" : "s1",
119			"SITE_DIR" : "/",
120			"FORM" : ({
121				"ASK_FORM_ID" : "ASK",
122				"SERVICES_FORM_ID" : "SERVICES",
123				"FEEDBACK_FORM_ID" : "FEEDBACK",
124				"CALLBACK_FORM_ID" : "CALLBACK",
125				"RESUME_FORM_ID" : "RESUME",
126				"TOORDER_FORM_ID" : "TOORDER"
127			}),
128			"PAGES" : ({
129				"FRONT_PAGE" : "",
130				"BASKET_PAGE" : "",
131				"ORDER_PAGE" : "",
132				"PERSONAL_PAGE" : "",
133				"CATALOG_PAGE" : ""
134			}),
135			"PRICES" : ({
136				"MIN_PRICE" : "1",
137			}),
138			"THEME" : ({
139				"THEME_SWITCHER" : "n",
140				"COLOR_THEME" : "custom",
141				"CUSTOM_COLOR_THEME" : "437ab3",
142				"LOGO_IMAGE" : "/upload/aspro.mshop/262/262d9499b0699c5979fb40789bc37615.jpg",
143				"FAVICON_IMAGE" : "/favicon.ico?1471250406",
144				"APPLE_TOUCH_ICON_57_IMAGE" : "/upload/aspro.mshop/405/4058cfe6299cb44214f5eabf94b72719.png",
145				"APPLE_TOUCH_ICON_72_IMAGE" : "/upload/aspro.mshop/a51/a51190c638df691f31a9cc6081210ecc.png",
146				"BANNER_WIDTH" : "auto",
147				"BANNER_ANIMATIONTYPE" : "SLIDE_HORIZONTAL",
148				"BANNER_SLIDESSHOWSPEED" : "5000",
149				"BANNER_ANIMATIONSPEED" : "600",
150				"HEAD" : ({
151					"VALUE" : "type_1",
152					"MENU" : "type_1",
153					"MENU_COLOR" : "none",
154					"HEAD_COLOR" : "white",
155				}),
156				"BASKET" : "normal",
157				"STORES" : "light",
158				"STORES_SOURCE" : "iblock",
159				"TYPE_SKU" : "type_1",
160				"TYPE_VIEW_FILTER" : "vertical",
161				"SHOW_BASKET_ONADDTOCART" : "Y",
162				"SHOW_ONECLICKBUY_ON_BASKET_PAGE" : "N",
163				"SHOW_BASKET_PRINT" : "Y",
164				"PHONE_MASK" : "+7 (999) 999-99-99",
165				"VALIDATE_PHONE_MASK" : "^[+][7] [(][0-9]{3}[)] [0-9]{3}[-][0-9]{2}[-][0-9]{2}$",
166				"SCROLLTOTOP_TYPE" : "ROUND_COLOR",
167				"SCROLLTOTOP_POSITION" : "PADDING",
168				"SHOW_LICENCE" : "Y",
169				"LICENCE_CHECKED" : "N",
170				"SHOW_TOTAL_SUMM" : "N",
171				"CHANGE_TITLE_ITEM" : "Y",
172			}),
173			"COUNTERS":({
174				"USE_YA_COUNTER" : "Y",
175				"YANDEX_COUNTER" : "630",
176				"YA_COUNTER_ID" : "33127063",
177				"YANDEX_ECOMERCE" : "N",
178				"USE_FORMS_GOALS" : "COMMON",
179				"USE_BASKET_GOALS" : "Y",
180				"USE_1CLICK_GOALS" : "Y",
181				"USE_FASTORDER_GOALS" : "Y",
182				"USE_FULLORDER_GOALS" : "Y",
183				"USE_DEBUG_GOALS" : "N",
184				"GOOGLE_COUNTER" : "0",
185				"GOOGLE_ECOMERCE" : "N",
186				"TYPE":{
187					"ONE_CLICK":"Ïîêóïêà â 1 êëèê",
188					"QUICK_ORDER":"Áûñòðûé çàêàç",
189				},
190				"GOOGLE_EVENTS":{
191					"ADD2BASKET": "addToCart",
192					"REMOVE_BASKET": "removeFromCart",
193					"CHECKOUT_ORDER": "checkout",
194				}
195				/*
196				"GOALS" : {
197					"TO_BASKET": "TO_BASKET",
198					"ORDER_START": "ORDER_START",
199					"ORDER_SUCCESS": "ORDER_SUCCESS",
200					"QUICK_ORDER_SUCCESS": "QUICK_ORDER_SUCCESS",
201					"ONE_CLICK_BUY_SUCCESS": "ONE_CLICK_BUY_SUCCESS",
202				}
203				*/
204			}),
205			"JS_ITEM_CLICK":({
206				"precision" : 6,
207				"precisionFactor" : Math.pow(10,6)
208			})
209		});
210
211		$(document).ready(function(){
212			$.extend( $.validator.messages, {
213				required: BX.message('JS_REQUIRED'),
214				email: BX.message('JS_FORMAT'),
215				equalTo: BX.message('JS_PASSWORD_COPY'),
216				minlength: BX.message('JS_PASSWORD_LENGTH'),
217				remote: BX.message('JS_ERROR')
218			});
219
220			$.validator.addMethod(
221				'regexp', function( value, element, regexp ){
222					var re = new RegExp( regexp );
223					return this.optional( element ) || re.test( value );
224				},
225				BX.message('JS_FORMAT')
226			);
227
228			$.validator.addMethod(
229				'filesize', function( value, element, param ){
230					return this.optional( element ) || ( element.files[0].size <= param )
231				},
232				BX.message('JS_FILE_SIZE')
233			);
234
235			$.validator.addMethod(
236				'date', function( value, element, param ) {
237					var status = false;
238					if(!value || value.length <= 0){
239						status = false;
240					}
241					else{
242						// html5 date allways yyyy-mm-dd
243						var re = new RegExp('^([0-9]{4})(.)([0-9]{2})(.)([0-9]{2})$');
244						var matches = re.exec(value);
245						if(matches){
246							var composedDate = new Date(matches[1], (matches[3] - 1), matches[5]);
247							status = ((composedDate.getMonth() == (matches[3] - 1)) && (composedDate.getDate() == matches[5]) && (composedDate.getFullYear() == matches[1]));
248						}
249						else{
250							// firefox
251							var re = new RegExp('^([0-9]{2})(.)([0-9]{2})(.)([0-9]{4})$');
252							var matches = re.exec(value);
253							if(matches){
254								var composedDate = new Date(matches[5], (matches[3] - 1), matches[1]);
255								status = ((composedDate.getMonth() == (matches[3] - 1)) && (composedDate.getDate() == matches[1]) && (composedDate.getFullYear() == matches[5]));
256							}
257						}
258					}
259					return status;
260				}, BX.message('JS_DATE')
261			);
262
263			$.validator.addMethod(
264				'extension', function(value, element, param){
265					param = typeof param === 'string' ? param.replace(/,/g, '|') : 'png|jpe?g|gif';
266					return this.optional(element) || value.match(new RegExp('.(' + param + ')$', 'i'));
267				}, BX.message('JS_FILE_EXT')
268			);
269
270			$.validator.addMethod(
271				'captcha', function( value, element, params ){
272					return $.validator.methods.remote.call(this, value, element,{
273						url: arMShopOptions['SITE_DIR'] + 'ajax/check-captcha.php',
274						type: 'post',
275						data:{
276							captcha_word: value,
277							captcha_sid: function(){
278								return $(element).closest('form').find('input[name="captcha_sid"]').val();
279							}
280						}
281					});
282				},
283				BX.message('JS_ERROR')
284			);
285
286			$.validator.addClassRules({
287				'phone':{
288					regexp: arMShopOptions['THEME']['VALIDATE_PHONE_MASK']
289				},
290				'confirm_password':{
291					equalTo: 'input[name="REGISTER\[PASSWORD\]"]',
292					minlength: 6
293				},
294				'password':{
295					minlength: 6
296				},
297				'inputfile':{
298					extension: arMShopOptions['THEME']['VALIDATE_FILE_EXT'],
299					filesize: 5000000
300				},
301				'captcha':{
302					captcha: ''
303				}
304			});
305
306			if(arMShopOptions['THEME']['PHONE_MASK']){
307				$('input.phone').inputmask('mask', {'mask': arMShopOptions['THEME']['PHONE_MASK']});
308			}
309
310			jqmEd('feedback', arMShopOptions['FORM']['FEEDBACK_FORM_ID']);
311			jqmEd('ask', arMShopOptions['FORM']['ASK_FORM_ID'], '.ask_btn');
312			jqmEd('services', arMShopOptions['FORM']['SERVICES_FORM_ID'], '.services_btn','','.services_btn');
313			if($('.resume_send').length){
314				$('.resume_send').live('click', function(e){
315					$("body").append("<span class='resume_send_wr' style='display:none;'></span>");
316					jqmEd('resume', arMShopOptions['FORM']['RESUME_FORM_ID'], '.resume_send_wr','', this);
317					$("body .resume_send_wr").click();
318					$("body .resume_send_wr").remove();
319				})
320			}
321			jqmEd('callback', arMShopOptions['FORM']['CALLBACK_FORM_ID'], '.callback_btn');
322		});
323		</script>
323
324
325															
325<script type="text/javascript">
326				function jsPriceFormat(_number){
327					BX.Currency.setCurrencyFormat('EUR', {'CURRENCY':'EUR','LID':'ru','FORMAT_STRING':'# EUR','FULL_NAME':'Åâðî','DEC_POINT':',','THOUSANDS_SEP':' ','DECIMALS':'2','THOUSANDS_VARIANT':'S','HIDE_ZERO':'Y','CREATED_BY':'','DATE_CREATE':'2016-06-07 01:10:24','MODIFIED_BY':'4','TIMESTAMP_X':'2017-02-07 16:58:37'});
328					return BX.Currency.currencyFormat(_number, 'EUR', true);
329				}
330				</script>
330
331					
332												<div class="wrapper  h_color_white m_color_none  basket_normal head_type_1 banner_auto">
333			<div class="header_wrap ">
334				<div class="top-h-row">
335					<div class="wrapper_inner">
336						<div class="content_menu">
337								<ul class="menu">
338					<li  >
339				<a href="/help/payment/"><span>Îïëàòà</span></a>
340			</li>
341					<li  >
342				<a href="/help/delivery/"><span>Äîñòàâêà</span></a>
343			</li>
344					<li  >
345				<a href="/help/warranty/"><span>Ñåðâèñ</span></a>
346			</li>
347					<li  class="current" >
348				<a href="/contacts/dealers/"><span>Äèëåðû</span></a>
349			</li>
350					<li  >
351				<a href="/info/partners/"><span>Ïàðòíåðû</span></a>
352			</li>
353					<li  >
354				<a href="/info/faq/"><span>Âîïðîñû è îòâåòû</span></a>
355			</li>
356					<li  >
357				<a href="/help/ask-main/"><span>Çàäàòü âîïðîñ</span></a>
358			</li>
359			</ul>
360	
360<script>
361		$(".content_menu .menu > li:not(.current) > a").click(function()
362		{
363			$(this).parents("li").siblings().removeClass("current");
364			$(this).parents("li").addClass("current");
365		});
366	</script>
366
367						</div>
368						<div class="phones">
369							<span class="phone_wrap">
370								<span class="icons"></span>
371								<span class="phone_text">
372									<a rel="nofollow" href="tel:+7 495 150 08 70"><span style="font-size: 12pt;"><b><span style="font-size: 11pt; color: #004a80;">+7 (495) 150-08-70</span></b></span></a>								</span>
373							</span>
374							<span class="order_wrap_btn">
375															<span class="callback_btn">Çàêàçàòü çâîíîê</span>
376														</span>
377						</div>
378						<div class="h-user-block" id="personal_block">
379							<div class="form_mobile_block"><div class="search_middle_block">	<div id="title-search3" class="stitle_form">
380		<form action="/catalog/">
381			<div class="form-control1 bg">
382				<input id="title-search-input3" type="text" name="q" value="" size="40" class="text small_block" maxlength="50" autocomplete="off" placeholder="Ïîèñê ïî ñàéòó" /><input name="s" type="submit" value="Ïîèñê" class="button icon" />
383			</div>
384		</form>
385	</div>
386<script type="text/javascript">
387var jsControl = new JCTitleSearch({
388	//'WAIT_IMAGE': '/bitrix/themes/.default/images/wait.gif',
389	'AJAX_PAGE' : '/contacts/dealers/',
390	'CONTAINER_ID': 'title-search3',
391	'INPUT_ID': 'title-search-input3',
392	'MIN_QUERY_LEN': 2
393});
394$("#title-search-input3").focus(function() { $(this).parents("form").find("button[type='submit']").addClass("hover"); });
395$("#title-search-input3").blur(function() { $(this).parents("form").find("button[type='submit']").removeClass("hover"); });
396</script>
396
397</div></div>
398													</div>
399						<div class="clearfix"></div>
400					</div>
401				</div>
402				<header id="header">
403					<div class="wrapper_inner">	
404						<table class="middle-h-row"><tr>
405							<td class="logo_wrapp">
406								<div class="logo">
407											<a href="/"><img src="/upload/aspro.mshop/262/262d9499b0699c5979fb40789bc37615.jpg" alt="Octapack" title="Octapack" /></a>
408		<a href="/" class="print_img"><img src="/upload/aspro.mshop/262/262d9499b0699c5979fb40789bc37615.jpg" alt="Octapack" title="Octapack" /></a>
409										</div>
410							</td>
411							<td  class="center_block">
412								<div class="main-nav">
413										<ul class="menu adaptive">
414		<li class="menu_opener"><a>Ìåíþ</a><i class="icon"></i></li>
415	</ul>
416	<ul class="menu full">
417					<li class="menu_item_l1 ">
418				<a href="/services/">
419					<span>Óñëóãè</span>
420				</a>
421											</li>
422					<li class="menu_item_l1  catalog">
423				<a href="/catalog/">
424					<span>Ðåøåíèÿ</span>
425				</a>
426													<div class="child cat_menu">
427	<div class="child_wrapp">
428												<ul >
429				<li class="menu_title"><a href="/catalog/airplus/">Âîçäóøíàÿ çàùèòíàÿ óïàêîâêà</a></li>
430																				<li  class="menu_item"><a href="/catalog/airplus/airplus_mini/" >AIRplus® Mini</a></li>
431																	<li  class="menu_item"><a href="/catalog/airplus/airmove2/" >AIRmove2® ÍÎÂÈÍÊÀ 2017</a></li>
432																	<li  class="menu_item"><a href="/catalog/airplus/airplus_mini_cushion/" >AIRplus® Mini Cushion</a></li>
433																	<li  class="menu_item"><a href="/catalog/airplus/airplus_bubble/" >AIRplus® GTI XL</a></li>
434																							</ul>
435								<ul >
436				<li class="menu_title"><a href="/catalog/paperplus/">Áóìàæíàÿ çàùèòíàÿ óïàêîâêà</a></li>
437																				<li  class="menu_item"><a href="/catalog/paperplus/paperplus_classic/" >PAPERplus® Classic</a></li>
438																	<li  class="menu_item"><a href="/catalog/paperplus/paperplus_chevron/" >PAPERplus® Chevron</a></li>
439																							</ul>
440								<ul class="last">
441				<li class="menu_title"><a href="/catalog/foamplus/">Ïåííàÿ çàùèòíàÿ óïàêîâêà</a></li>
442																				<li  class="menu_item"><a href="/catalog/foamplus/foamplus_bagpacker/" >FOAMplus Bagpacker</a></li>
443																	<li  class="menu_item"><a href="/catalog/foamplus/foamplus_handpacker/" >FOAMplus Handpacker</a></li>
444																							</ul>
445			</div>
446</div>
447							</li>
448					<li class="menu_item_l1 ">
449				<a href="/integration/">
450					<span>Èíòåãðàöèÿ</span>
451				</a>
452											</li>
453					<li class="menu_item_l1 ">
454				<a href="/company/">
455					<span>Î êîìïàíèè</span>
456				</a>
457									<div class="child submenu line">
458						<div class="child_wrapp">
459															<a class="" href="/company/">Î êîìïàíèè</a>
460															<a class="" href="/company/news/">Íîâîñòè</a>
461															<a class="" href="/company/jobs/">Âàêàíñèè</a>
462													</div>
463					</div>
464											</li>
465					<li class="menu_item_l1  current">
466				<a href="/contacts/">
467					<span>Êîíòàêòû</span>
468				</a>
469											</li>
470				<li class="stretch"></li>
471		<li class="search_row">
472			<form action="/catalog/" class="search1">
473	<input id="title-search-input4" class="search_field1" type="text" name="q" placeholder="Ïîèñê ïî ñàéòó" autocomplete="off" />
474	<button id="search-submit-button" type="submit" class="submit"><i></i></button>
475			<div id="title-search4"></div>
476		
476<script type="text/javascript">
477var jsControl = new JCTitleSearch({
478	//'WAIT_IMAGE': '/bitrix/themes/.default/images/wait.gif',
479	'AJAX_PAGE' : '/contacts/dealers/',
480	'CONTAINER_ID': 'title-search4',
481	'INPUT_ID': 'title-search-input4',
482	'MIN_QUERY_LEN': 2
483});
484$("#title-search-input4").focus(function() { $(this).parents("form").find("button[type='submit']").addClass("hover"); });
485$("#title-search-input4").blur(function() { $(this).parents("form").find("button[type='submit']").removeClass("hover"); });
486</script>
486
487	</form>		</li>
488	</ul>
489		<div class="search_middle_block">
490			<div id="title-search2" class="middle_form">
491	<form action="/catalog/">
492		<div class="form-control1 bg">
493			<input id="title-search-input2" type="text" name="q" value="" size="40" class="text big" maxlength="50" autocomplete="off" placeholder="Ïîèñê ïî ñàéòó" /><input name="s" type="submit" value="Ïîèñê" class="button noborder" />
494		</div>
495	</form>
496	</div>
497<script type="text/javascript">
498var jsControl = new JCTitleSearch({
499	//'WAIT_IMAGE': '/bitrix/themes/.default/images/wait.gif',
500	'AJAX_PAGE' : '/contacts/dealers/',
501	'CONTAINER_ID': 'title-search2',
502	'INPUT_ID': 'title-search-input2',
503	'MIN_QUERY_LEN': 2
504});
505$("#title-search-input2").focus(function() { $(this).parents("form").find("button[type='submit']").addClass("hover"); });
506$("#title-search-input2").blur(function() { $(this).parents("form").find("button[type='submit']").removeClass("hover"); });
507</script>
507
508	</div>
509	<div class="search_block">
510		<span class="icon"></span>
511	</div>
512	
512<script type="text/javascript">
513	$(document).ready(function() {
514		
515		
516		$(".main-nav .menu > li:not(.current):not(.menu_opener) > a").click(function(){
517			$(this).parents("li").siblings().removeClass("current");
518			$(this).parents("li").addClass("current");
519		});
520		
521		$(".main-nav .menu .child_wrapp a").click(function(){
522			$(this).siblings().removeClass("current");
523			$(this).addClass("current");
524		});
525	});
526	</script>
526
527								</div>
528								
529								<div class="middle_phone">
530									<div class="phones">
531										<span class="phone_wrap">
532											<span class="icons"></span>
533											<span class="phone_text">
534												<a rel="nofollow" href="tel:+7 495 150 08 70"><span style="font-size: 12pt;"><b><span style="font-size: 11pt; color: #004a80;">+7 (495) 150-08-70</span></b></span></a>											</span>
535										</span>
536										<span class="order_wrap_btn">
537																		<span class="callback_btn">Çàêàçàòü çâîíîê</span>
538																	</span>
539									</div>
540								</div>
541								<div class="search">
542										<div id="title-search" class="stitle_form">
543		<form action="/catalog/">
544			<div class="form-control1 bg">
545				<input id="title-search-input" type="text" name="q" value="" size="40" class="text small_block" maxlength="50" autocomplete="off" placeholder="Ïîèñê ïî ñàéòó" /><input name="s" type="submit" value="Ïîèñê" class="button icon" />
546			</div>
547		</form>
548	</div>
549<script type="text/javascript">
550var jsControl = new JCTitleSearch({
551	//'WAIT_IMAGE': '/bitrix/themes/.default/images/wait.gif',
552	'AJAX_PAGE' : '/contacts/dealers/',
553	'CONTAINER_ID': 'title-search',
554	'INPUT_ID': 'title-search-input',
555	'MIN_QUERY_LEN': 2
556});
557$("#title-search-input").focus(function() { $(this).parents("form").find("button[type='submit']").addClass("hover"); });
558$("#title-search-input").blur(function() { $(this).parents("form").find("button[type='submit']").removeClass("hover"); });
559</script>
559
560								</div>
561							</td>
562							<td class="basket_wrapp custom_basket_class ">
563								<div class="wrapp_all_icons">
564										<div class="header-compare-block icon_block iblock" id="compare_line">
565											<!--'start_frame_cache_header-compare-block'--><!--'end_frame_cache_header-compare-block'-->										</div>
566										<div class="header-cart" id="basket_line">
567											<!--'start_frame_cache_header-cart'-->																																		
568<div class="basket_normal cart  empty_cart   ">
569	<!--noindex-->
570		<div class="wraps_icon_block delay ndelay">
571			<a href="/basket/#tab_DelDelCanBuy" class="link" style="display: none;" title="Ñïèñîê îòëîæåííûõ òîâàðîâ"></a>
572			<div class="count">
573				<span>
574					<span class="items">
575						<span class="text">0</span>
576					</span>
577				</span>
578			</div>
579		</div>
580		<div class="basket_block f-left">
581			<a href="/basket/" class="link" title="Ñïèñîê òîâàðîâ â êîðçèíå"></a>
582			<div class="wraps_icon_block basket">
583				<a href="/basket/" class="link" title="Ñïèñîê òîâàðîâ â êîðçèíå"></a>
584				<div class="count">
585					<span>
586						<span class="items">
587							<a href="/basket/">0</a>
588						</span>
589					</span>
590				</div>
591			</div>
592			<div class="text f-left">
593				<div class="title">Êîðçèíà</div>
594				<div class="value">
595											ïóñòà									</div>
596			</div>
597			<div class="card_popup_frame popup">
598				<div class="basket_popup_wrapper">
599					<div class="basket_popup_wrapp" >
600						<div class="cart_wrapper" >
601							<table class="cart_shell">
602								<tbody>
603																	</tbody>
604							</table>
605						</div>
606						<div class="basket_empty clearfix">
607							<table>
608								<tr>
609									<td class="image"><div></div></td>
610									<td class="description"><div class="basket_empty_subtitle">Ê ñîæàëåíèþ, âàøà êîðçèíà ïóñòà.</div><div class="basket_empty_description">Èñïðàâèòü ýòî íåäîðàçóìåíèå î÷åíü ïðîñòî:<br />âûáåðèòå â êàòàëîãå èíòåðåñóþùèé òîâàð è íàæìèòå êíîïêó &laquo; êîðçèíó&raquo;.</div></td>
611								</tr>
612							</table>
613						</div>
614						<div class="total_wrapp clearfix">
615							<div class="total"><span>Îáùàÿ ñóììà:</span><span class="price">0 EUR</span><div class="clearfix"></div></div>
616							<input type="hidden" name="total_price" value="0" />
617							<input type="hidden" name="total_count" value="0" />
618							<input type="hidden" name="delay_count" value="0" />
619							<div class="but_row1">
620								<a href="/basket/" class="button short"><span class="text">Ïåðåéòè â êîðçèíó</span></a>
621							</div>
622						</div>
623												<input id="top_basket_params" type="hidden" name="PARAMS" value='a%3A49%3A%7Bs%3A14%3A%22PATH_TO_BASKET%22%3Bs%3A8%3A%22%2Fbasket%2F%22%3Bs%3A13%3A%22PATH_TO_ORDER%22%3Bs%3A7%3A%22%2Forder%2F%22%3Bs%3A10%3A%22SHOW_DELAY%22%3Bs%3A1%3A%22Y%22%3Bs%3A13%3A%22SHOW_PRODUCTS%22%3Bs%3A1%3A%22Y%22%3Bs%3A17%3A%22SHOW_EMPTY_VALUES%22%3Bs%3A1%3A%22Y%22%3Bs%3A13%3A%22SHOW_NOTAVAIL%22%3Bs%3A1%3A%22N%22%3Bs%3A14%3A%22SHOW_SUBSCRIBE%22%3Bs%3A1%3A%22N%22%3Bs%3A10%3A%22SHOW_IMAGE%22%3Bs%3A1%3A%22Y%22%3Bs%3A10%3A%22SHOW_PRICE%22%3Bs%3A1%3A%22Y%22%3Bs%3A12%3A%22SHOW_SUMMARY%22%3Bs%3A1%3A%22Y%22%3Bs%3A17%3A%22SHOW_NUM_PRODUCTS%22%3Bs%3A1%3A%22Y%22%3Bs%3A16%3A%22SHOW_TOTAL_PRICE%22%3Bs%3A1%3A%22Y%22%3Bs%3A10%3A%22CACHE_TYPE%22%3Bs%3A1%3A%22A%22%3Bs%3A20%3A%22HIDE_ON_BASKET_PAGES%22%3Bs%3A1%3A%22Y%22%3Bs%3A18%3A%22SHOW_PERSONAL_LINK%22%3Bs%3A1%3A%22N%22%3Bs%3A16%3A%22PATH_TO_PERSONAL%22%3Bs%3A10%3A%22%2Fpersonal%2F%22%3Bs%3A11%3A%22SHOW_AUTHOR%22%3Bs%3A1%3A%22N%22%3Bs%3A16%3A%22PATH_TO_REGISTER%22%3Bs%3A7%3A%22%2Flogin%2F%22%3Bs%3A17%3A%22PATH_TO_AUTHORIZE%22%3Bs%3A7%3A%22%2Flogin%2F%22%3Bs%3A15%3A%22PATH_TO_PROFILE%22%3Bs%3A10%3A%22%2Fpersonal%2F%22%3Bs%3A14%3A%22POSITION_FIXED%22%3Bs%3A1%3A%22N%22%3Bs%3A17%3A%22POSITION_VERTICAL%22%3Bs%3A3%3A%22top%22%3Bs%3A19%3A%22POSITION_HORIZONTAL%22%3Bs%3A5%3A%22right%22%3Bs%3A4%3A%22AJAX%22%3Bs%3A1%3A%22N%22%3Bs%3A15%3A%22%7EPATH_TO_BASKET%22%3Bs%3A8%3A%22%2Fbasket%2F%22%3Bs%3A14%3A%22%7EPATH_TO_ORDER%22%3Bs%3A7%3A%22%2Forder%2F%22%3Bs%3A11%3A%22%7ESHOW_DELAY%22%3Bs%3A1%3A%22Y%22%3Bs%3A14%3A%22%7ESHOW_PRODUCTS%22%3Bs%3A1%3A%22Y%22%3Bs%3A18%3A%22%7ESHOW_EMPTY_VALUES%22%3Bs%3A1%3A%22Y%22%3Bs%3A14%3A%22%7ESHOW_NOTAVAIL%22%3Bs%3A1%3A%22N%22%3Bs%3A15%3A%22%7ESHOW_SUBSCRIBE%22%3Bs%3A1%3A%22N%22%3Bs%3A11%3A%22%7ESHOW_IMAGE%22%3Bs%3A1%3A%22Y%22%3Bs%3A11%3A%22%7ESHOW_PRICE%22%3Bs%3A1%3A%22Y%22%3Bs%3A13%3A%22%7ESHOW_SUMMARY%22%3Bs%3A1%3A%22Y%22%3Bs%3A18%3A%22%7ESHOW_NUM_PRODUCTS%22%3Bs%3A1%3A%22Y%22%3Bs%3A17%3A%22%7ESHOW_TOTAL_PRICE%22%3Bs%3A1%3A%22Y%22%3Bs%3A11%3A%22%7ECACHE_TYPE%22%3Bs%3A1%3A%22A%22%3Bs%3A21%3A%22%7EHIDE_ON_BASKET_PAGES%22%3Bs%3A1%3A%22Y%22%3Bs%3A19%3A%22%7ESHOW_PERSONAL_LINK%22%3Bs%3A1%3A%22N%22%3Bs%3A17%3A%22%7EPATH_TO_PERSONAL%22%3Bs%3A10%3A%22%2Fpersonal%2F%22%3Bs%3A12%3A%22%7ESHOW_AUTHOR%22%3Bs%3A1%3A%22N%22%3Bs%3A17%3A%22%7EPATH_TO_REGISTER%22%3Bs%3A7%3A%22%2Flogin%2F%22%3Bs%3A18%3A%22%7EPATH_TO_AUTHORIZE%22%3Bs%3A7%3A%22%2Flogin%2F%22%3Bs%3A16%3A%22%7EPATH_TO_PROFILE%22%3Bs%3A10%3A%22%2Fpersonal%2F%22%3Bs%3A15%3A%22%7EPOSITION_FIXED%22%3Bs%3A1%3A%22N%22%3Bs%3A18%3A%22%7EPOSITION_VERTICAL%22%3Bs%3A3%3A%22top%22%3Bs%3A20%3A%22%7EPOSITION_HORIZONTAL%22%3Bs%3A5%3A%22right%22%3Bs%3A5%3A%22%7EAJAX%22%3Bs%3A1%3A%22N%22%3Bs%3A6%3A%22cartId%22%3Bs%3A10%3A%22bx_basket1%22%3B%7D' />
624					</div>
625				</div>
626			</div>
627		</div>
628	
628<script type="text/javascript">
629	$('.card_popup_frame').ready(function(){
630		$('.card_popup_frame span.remove').click(function(e){
631			e.preventDefault();
632			if(!$(this).is(".disabled")){
633				var row = $(this).parents("tr").first();
634				row.fadeTo(100 , 0.05, function() {});
635				delFromBasketCounter($(this).closest('tr').attr('catalog-product-id'));
636				reloadTopBasket('del', $('#basket_line'), 200, 2000, 'N', $(this));
637				markProductRemoveBasket($(this).closest('.catalog_item').attr('catalog-product-id'));
638			}
639		});
640	});
641	</script>
641
642</div>
643
644																						<!--'end_frame_cache_header-cart'-->										</div>
645									</div>
646									<div class="clearfix"></div>
647							</td>
648						</tr></table>
649					</div>
650					<div class="catalog_menu">
651						<div class="wrapper_inner">
652							<div class="wrapper_middle_menu">
653									<ul class="menu bottom">
654									<li class="menu_item_l1  first">
655					<a class="" href="/catalog/airplus/">Âîçäóøíàÿ çàùèòíàÿ óïàêîâêà</a>
656											<div class="child submenu">
657							<div class="child_wrapp">
658																											<a class="" href="/catalog/airplus/airplus_mini/">AIRplus® Mini</a>
659																																				<a class="" href="/catalog/airplus/airmove2/">AIRmove2® ÍÎÂÈÍÊÀ 2017</a>
660																																				<a class="" href="/catalog/airplus/airplus_mini_cushion/">AIRplus® Mini Cushion</a>
661																																				<a class="" href="/catalog/airplus/airplus_bubble/">AIRplus® GTI XL</a>
662																																</div>
663						</div>
664									</li>
665												<li class="menu_item_l1 ">
666					<a class="" href="/catalog/paperplus/">Áóìàæíàÿ çàùèòíàÿ óïàêîâêà</a>
667											<div class="child submenu">
668							<div class="child_wrapp">
669																											<a class="" href="/catalog/paperplus/paperplus_classic/">PAPERplus® Classic</a>
670																																				<a class="" href="/catalog/paperplus/paperplus_chevron/">PAPERplus® Chevron</a>
671																																</div>
672						</div>
673									</li>
674												<li class="menu_item_l1 ">
675					<a class="" href="/catalog/foamplus/">Ïåííàÿ çàùèòíàÿ óïàêîâêà</a>
676											<div class="child submenu">
677							<div class="child_wrapp">
678																											<a class="" href="/catalog/foamplus/foamplus_bagpacker/">FOAMplus Bagpacker</a>
679																																				<a class="" href="/catalog/foamplus/foamplus_handpacker/">FOAMplus Handpacker</a>
680																																</div>
681						</div>
682									</li>
683												<li class="menu_item_l1 ">
684					<a class="" href="/arenda/">Àðåíäà</a>
685									</li>
686												<li class="menu_item_l1 ">
687					<a class="" href="/integration/">Èíòåãðàöèÿ</a>
688									</li>
689							<li class="more menu_item_l1">
690			<a>Åùå<i></i></a>
691			<div class="child cat_menu">
692				<div class="child_wrapp">
693									</div>
694			</div>
695		</li>
696		<li class="stretch"></li>
697	</ul>
698	
698<script type="text/javascript">
699	// menu block
700	var nodeCatalogMenu = document.querySelector('.catalog_menu .menu')
701	// last menu width when it was calculated
702	nodeCatalogMenu.lastCalculatedWidth = false
703
704	// menu item MORE
705	var nodeMore = nodeCatalogMenu.querySelector('li.more')
706	// and it`s width
707	var moreWidth = nodeMore.offsetWidth
708	// and it`s submenu with childs
709	var nodeMoreSubmenu = nodeMore.querySelector('.child_wrapp')
710
711	var reCalculateMenu = function(){
712		// get current menu width
713		var menuWidth = nodeCatalogMenu.offsetWidth
714		// and compare wth last width when it was calculated
715		if(menuWidth !== nodeCatalogMenu.lastCalculatedWidth){
716			nodeCatalogMenu.lastCalculatedWidth = menuWidth
717
718			// clear menu item MORE submenu
719						nodeMoreSubmenu.innerHTML = ''
720			nodeMore.classList.remove('visible')
721						// and hide this item
722			// show all root items of menu which was hided at last calculate
723			Array.prototype.slice.call(document.querySelectorAll('.catalog_menu .menu > li:not(.stretch)')).forEach(function(node){
724				node.style.display = 'inline-block'
725			})
726			nodeCatalogMenu.style.display = 'block'
727
728			// last index of root items of menu without items MORE & STRETCH
729			var lastIndex = $('.catalog_menu .menu > li:not(.more):not(.stretch)').length - 1
730			// count of items that cloned to item`s MORE submenu
731			var cntItemsInMore = 0;
732			var cntMinItemsInMore = cntItemsInMore
733			// get all root items of menu without items MORE & STRETCH and do something
734			Array.prototype.slice.call(document.querySelectorAll('.catalog_menu .menu > li:not(.more):not(.stretch)')).forEach(function(node, i){
735				// is it last root item of menu?
736				var bLast = lastIndex === i
737				// it`s width
738				var itemWidth = node.offsetWidth
739				// if item MORE submenu is not empty OR overflow than clone item
740				if((cntItemsInMore > cntMinItemsInMore) || (node.offsetLeft + itemWidth + (bLast ? 0 : moreWidth) > menuWidth)){
741					// show item MORE if it was empty
742					if(!cntItemsInMore++){
743						nodeMore.classList.add('visible')
744						nodeMore.style.display = 'inline-block'
745					}
746
747					// clone item
748					var nodeClone = node.cloneNode(true)
749					// and hide it
750					node.style.display = 'none'
751
752					// wrap cloned item
753					var nodeWrap = document.createElement('div')
754					nodeWrap.appendChild(nodeClone)
755					delete node
756					node = nodeWrap.querySelector('.menu_item_l1')
757
758					// replace cloned item childs structure
759					var nodeLink = nodeWrap.querySelector('.menu_item_l1 > a')
760					if(nodeLink){
761						var hrefLink = nodeLink.getAttribute('href')
762						var textLink = nodeLink.innerText
763						var p = nodeLink.parentNode
764						nodeLink.parentNode.removeChild(nodeLink)
765					}
766					Array.prototype.slice.call(nodeClone.querySelectorAll('.depth3 a:not(.title)')).forEach(function(_node){
767						_node.parentNode.removeChild(_node)
768					})
769					$(node).wrapInner('<ul class="cloned"></ul>')
770					var nodeUL = node.querySelector('ul')
771					var nodeLI = document.createElement('li')
772					var addClass = node.className.replace('menu_item_l1', '').trim()
773					nodeLI.classList.add('menu_title')
774					if(addClass.length){
775						nodeLI.classList.add(addClass)
776					}
777					nodeLI.innerHTML = '<a href="' + (hrefLink && hrefLink.trim().length ? hrefLink : '') + '">' + textLink + '</a>'
778					if(nodeUL.childNodes.length){
779						nodeUL.insertBefore(nodeLI, nodeUL.childNodes[0])
780					}
781					else{
782						nodeUL.appendChild(nodeLI)
783					}
784					Array.prototype.slice.call(node.querySelectorAll('.child_wrapp > a,.child_wrapp >
784 .depth3 a.title')).forEach(function(_node){
785						$(_node).wrap('<li class="menu_item"></li>')
786					})
787					Array.prototype.slice.call(node.querySelectorAll('li.menu_item')).forEach(function(_node){
788						if(nodeUL){
789							var $a = $(_node).find('> a')
790							if($a.length){
791								var nodeA = $a[0]
792								var classA = nodeA.className
793								var styleA = nodeA.getAttribute('style')
794								nodeUL.innerHTML = nodeUL.innerHTML + '<li class="menu_item' + ((classA && classA.trim().length) ? ' ' + classA.trim() : '') + '"' + ((styleA && styleA.trim().length) ? 'style="' + styleA.trim() + '"' : '') + '>' + _node.innerHTML + '</li>'
795							}
796						}
797					})
798					Array.prototype.slice.call(node.querySelectorAll('.child.submenu')).forEach(function(_node){
799						_node.parentNode.removeChild(_node)
800					})
801
802					// append cloned item html to item MORE submenu
803											nodeMoreSubmenu.appendChild(nodeUL)
804									}
805				else{
806					// align child menu of root items
807					if(i){
808						var nodesSubmenu = node.getElementsByClassName('submenu')
809						if(nodesSubmenu.length){
810							nodesSubmenu[0].style.marginLeft = (itemWidth - $(nodesSubmenu[0]).outerWidth()) / 2 + 'px'
811						}
812					}
813
814					// show this item
815					node.style.display = 'inline-block'
816					// remove left border
817					if(bLast){
818						node.style.borderLeftWidth = '0px'
819					}
820				}
821			});
822
823			// hide item MORE if it`s submenu is empty
824			if(!cntItemsInMore){
825				nodeMore.style.display = 'none'
826			}
827			else{
828				// or set class "last" for even 3 item in submenu
829				Array.prototype.slice.call(nodeMoreSubmenu.querySelectorAll('ul')).forEac
829h(function(node, i){
830					if(i % 3){
831						node.classList.remove('last')
832					}
833					else{
834						node.classList.add('last')
835					}
836				})
837			}
838
839			// I don`t know what is it
840			Array.prototype.slice.call(nodeMore.querySelectorAll('.see_more a.see_more')).forEach(function(node){
841				node.classList.remove('see_more')
842			})
843			Array.prototype.slice.call(nodeMore.querySelectorAll('li.menu_item a')).forEach(function(node){
844				node.classList.remove('d')
845			})
846			Array.prototype.slice.call(nodeMore.querySelectorAll('li.menu_item a')).forEach(function(node){
847				node.removeAttribute('style')
848			})
849		}
850	}
851
852	$(document).ready(function() {
853		if($(window).outerWidth() > 600){
854			reCalculateMenu()
855		}
856	});
857	</script>
857
858							</div>
859						</div>
860					</div>
861				</header>
862			</div>
863							<div class="wrapper_inner">				
864					<section class="middle">
865						<div class="container">
866							<div class="breadcrumbs" id="navigation" itemscope="" itemtype="http://schema.org/BreadcrumbList"><div class="bx-breadcrumb-item" id="bx_breadcrumb_0" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a href="/" title="Ãëàâíàÿ" itemprop="item"><span itemprop="name">Ãëàâíàÿ</span><meta itemprop="position" content="1"></a></div><span class="separator">-</span><div class="bx-breadcrumb-item" id="bx_breadcrumb_1" itemprop="itemListElement" itemscope itemtype="http://schema.org/ListItem"><a href="/contacts/" title="Äèëåðû" itemprop="item"><span itemprop="name">Äèëåðû</span><meta itemprop="position" content="2"></a></div><span class="separator">-</span><span>Äèëåðû</span></div>							<h1 id="pagetitle">Äèëåðû</h1>
867										</div>
868					</section>
869				</div>
870																					<div class="contacts_map">
871							<!--'start_frame_cache_LFmCcO'-->	<div class="module-map">
872		<div class="map-wr module-contacts-map-layout">
873							<div class="controls right center">
874					<div class="z zoomIn">+</div>
875					<div class="z zoomOut">-</div>
876				</div>
877						
878<script type="text/javascript">
879	if (!window.GLOBAL_arMapObjects)
880		window.GLOBAL_arMapObjects = {};
881
882	function initCustomControls(map){
883		$('.map-wr').each(function(){
884			var zoomIn = $(this).find('.zoomIn'),
885				zoomOut = $(this).find('.zoomOut');
886			zoomIn.on('click', function(){
887				map.setZoom(map.getZoom() + 1);
888			});
889			zoomOut.on('click', function() {
890				map.setZoom(map.getZoom() - 1);
891			});
892		});
893	}
894
895	function init_MAP_PxWcPa(){
896		if (!window.google && !window.google.maps)
897			return;
898
899		var opts = {
900			zoom: 15,
901			center: new google.maps.LatLng(57.196957559983, 35.223832246033),
902					scrollwheel: false,
903		disableDoubleClickZoom: false,
904		draggable: true,
905		keyboardShortcuts: false,
906		mapTypeControl: false,
907		zoomControl: false,
908		scaleControl: false,
909			mapTypeId: google.maps.MapTypeId.ROADMAP,
910			streetViewControl: false,
911			panControl : false,
912
913		};
914		
915		window.GLOBAL_arMapObjects['MAP_PxWcPa'] = new window.google.maps.Map(BX("BX_GMAP_MAP_PxWcPa"), opts);
916		initCustomControls(window.GLOBAL_arMapObjects['MAP_PxWcPa']);
917		
918		google.maps.event.addDomListener(window, "resize", function() {
919		   var center = window.GLOBAL_arMapObjects['MAP_PxWcPa'].getCenter();
920		   google.maps.event.trigger(window.GLOBAL_arMapObjects['MAP_PxWcPa'], "resize");
921		   window.GLOBAL_arMapObjects['MAP_PxWcPa'].setCenter(center); 
922		});
923
924			}
925
926			BX.ready(init_MAP_PxWcPa);
927	
928	/* if map inits in hidden block (display:none),
929	*  after the block showed,
930	*  for properly showing map this function must be called
931	*/
932	function BXMapGoogleAfterShow(mapId){
933		if(google.maps !== undefined && window.GLOBAL_arMapObjects[mapId] !== undefined)
934			google.maps.event.trigger(window.GLOBAL_arMapObjects[mapId],'resize');
935	}
936</script>
936
937<div id="BX_GMAP_MAP_PxWcPa" class="bx-google-map" style="height: 400px; width: 100%;"></div>		</div>
938	</div>
939<script>
940	if (!window.BX_GMapAddPlacemark_){
941		window.BX_GMapAddPlacemark_ = function(markers, bounds, arPlacemark, map_id, clickable){
942			var map = GLOBAL_arMapObjects[map_id];
943			if (null == map) {
944				return false;
945			}
946			if (!arPlacemark.LAT || !arPlacemark.LON) {
947				return false;
948			}
949			var root = '/bitrix/templates/aspro_mshop'+'/images/map_marker.png';
950			var image = new google.maps.MarkerImage(root,
951				new google.maps.Size(45, 57),
952				new google.maps.Point(0, 0),
953				new google.maps.Point(23, 57)
954			);
955			var pt = new google.maps.LatLng(arPlacemark.LAT, arPlacemark.LON);
956            bounds.extend(pt);
957			
958			var obPlacemark = new google.maps.Marker({
959				'position': pt,
960				'map': map,
961				'icon': image,
962				'clickable': (clickable == "Y" ? true : false),
963				'title': arPlacemark.TEXT,
964				'zIndex': 5,
965				'html': arPlacemark.HTML
966			});
967			markers.push(obPlacemark);
968			
969			var boxText = document.createElement('div');
970			boxText.className  = 'inner';
971			boxText.innerHTML = (typeof(obPlacemark.html) !== 'undefined' ? (obPlacemark.html.length ? obPlacemark.html : '') : (typeof(obPlacemark.title) !== 'undefined' ? (obPlacemark.title.length ? obPlacemark.title : '') : ''));
972			if (boxText.innerHTML.length) {
973				boxText.innerHTML = '<div class="wrap-big">' + boxText.innerHTML + '</div>';
974			}
975
976			var myOptions = {
977				content: boxText,
978				disableAutoPan: false,
979				maxWidth: 0,
980				alignBottom: true,
981				pixelOffset: new google.maps.Size(-140, -7),
982				zIndex: 99999,
983				boxStyle:{minwidth: '294px', background: '#fff'},
984				closeBoxMargin: '0',
985				infoBoxClearance: new google.maps.Size(1, 1),
986				isHidden: false,
987				pane: 'floatPane',
988				enableEventPropagation: false,
989				position: obPlacemark.position
990				
991			};
992			if( clickable && boxText.innerHTML.length){
993				ib = new InfoBox();
994				google.maps.event.addListener(obPlacemark, 'click', function (e){
995					if (null != window['__bx_google_infowin_opened_' + map_id]){
996						window['__bx_google_infowin_opened_' + map_id].close();
997					}
998					ib.setOptions(myOptions);
999					ib.open(this.map, this);
1000					window['__bx_google_infowin_opened_' + map_id] = ib;
1001				});
1002				
1003				/*custom close*/
1004				var oldClose = ib.close;
1005				ib.close = function(){
1006					$(ib.div_).fadeOut('100');
1007					var th = this;
1008					oldClose.apply(th);
1009				}
1010				
1011				/*custom draw*/
1012				var oldDraw = ib.draw;
1013				ib.draw = function(){
1014					oldDraw.apply(this);
1015					$(ib.div_).hide();
1016					$(ib.div_).fadeIn('100');
1017				}
1018			}
1019			google.maps.event.addListener(map, "click", function() {
1020				ib.close(); 
1021			});
1022			var icon = '/bitrix/templates/aspro_mshop/images/map_marker.png';
1023			var iconHover = '/bitrix/templates/aspro_mshop/images/map_marker.png';
1024			google.maps.event.addListener(obPlacemark, 'mouseover', function() {
1025				obPlacemark.set("opacity","0.9");
1026			});
1027			google.maps.event.addListener(obPlacemark, 'mouseout', function() {
1028				obPlacemark.set("opacity","1");
1029			});
1030			if (BX.type.isNotEmptyString(arPlacemark.TEXT)){
1031				obPlacemark.infowin = new google.maps.InfoWindow({
1032					content: "Loading..."
1033				});
1034				
1035			}
1036			return obPlacemark;
1037		}
1038	}
1039
1040	if (null == window.BXWaitForMap_view){
1041		function BXWaitForMap_view(map_id){
1042			if (null == window.GLOBAL_arMapObjects)
1043				return;
1044		
1045			if (window.GLOBAL_arMapObjects[map_id])
1046				window['BX_SetPlacemarks_' + map_id]();
1047			else
1048				setTimeout('BXWaitForMap_view(\'' + map_id + '\')', 300);
1049		}
1050	}
1051</script>
1051
1052	
1052<script type="text/javascript">
1053		function BX_SetPlacemarks_MAP_PxWcPa(){
1054			var markers = [];
1055			var bounds = new google.maps.LatLngBounds();
1056							BX_GMapAddPlacemark_(markers, bounds, {'ID':'100','LAT':'55.646909','LON':'37.543677','TEXT':'ÎÎÎ \"ÀËÄÆÈÏÀÊ\"','HTML':'<div class=\"title\"><a href=\"/contacts/dealers/100/\">ÎÎÎ \"ÀËÄÆÈÏÀÊ\", Ìîñêâà, óë. Ââåäåíñêîãî, äîì 8<\/a><\/div><div class=\"info-content\"><div class=\"metro\"><i><\/i>Áåëÿåâî<\/div><div class=\"schedule\">Ïí - Ïò: 9.00 - 18.00<br>\nÑá - Âñ: âûõîäíûå<\/div><div class=\"phone\"><a rel=\"nofollow\" href=\"tel:+7 (495) 968-28-01\">+7 (495) 968-28-01<\/a><\/div><div class=\"email\"><a rel=\"nofollow\" href=\"mailto:[email protected] \">[email protected] <\/a><\/div><\/div><a rel=\"nofollow\" class=\"button\" href=\"/contacts/dealers/100/\"><span>ÏÎÄÐÎÁÍÎÑÒÈ<\/span><\/a>'}, 'MAP_PxWcPa', 'Y');
1057							BX_GMapAddPlacemark_(markers, bounds, {'ID':'103','LAT':'55.82024767995','LON':'37.617573738098','TEXT':'ÎÎÎ \"Êîìïëåêñ Ïàê\"','HTML':'<div class=\"title\"><a href=\"/contacts/dealers/103/\">ÎÎÎ \"Êîìïëåêñ Ïàê\", ã. Ìîñêâà, óë. Àêàäåìèêà Êîðîëåâà, ä.13, ñòð.1<\/a><\/div><div class=\"info-content\"><div class=\"metro\"><i><\/i>ÂÄÍÕ<\/div><div class=\"schedule\">Ïí - Ïò: 9.00 - 18.00<br/>Ñá - Âñ: âûõîäíûå<\/div><div class=\"phone\"><a rel=\"nofollow\" href=\"tel:+7 (495) 723-08-27\">+7 (495) 723-08-27<\/a><\/div><\/div><a rel=\"nofollow\" class=\"button\" href=\"/contacts/dealers/103/\"><span>ÏÎÄÐÎÁÍÎÑÒÈ<\/span><\/a>'}, 'MAP_PxWcPa', 'Y');
1058							BX_GMapAddPlacemark_(markers, bounds, {'ID':'353','LAT':'60.123716','LON':'30.510246','TEXT':'PackAir.ru','HTML':'<div class=\"title\"><a href=\"/contacts/dealers/353/\">PackAir.ru, Êåäðîâûé ïðîåçä, 14 êîòòåäæíûé ïîñ¸ëîê Íåáî, ïîñ¸ëîê ãîðîäñêîãî òèïà Êóçüìîëîâñêèé, Âñåâîëîæñêèé ðàéîí, Ëåíèíãðàäñêàÿ îáëàñòü, Ðîññèÿ<\/a><\/div><div class=\"info-content\"><div class=\"schedule\">×àñû ðàáîòû:\náóäíè ñ 9 äî 18<\/div><div class=\"phone\"><a rel=\"nofollow\" href=\"tel:+7 (812) 677-52-46\">+7 (812) 677-52-46<\/a><\/div><div class=\"email\"><a rel=\"nofollow\" href=\"mailto:[email protected]\">[email protected]<\/a><\/div><\/div><a rel=\"nofollow\" class=\"button\" href=\"/contacts/dealers/353/\"><span>ÏÎÄÐÎÁÍÎÑÒÈ<\/span><\/a>'}, 'MAP_PxWcPa', 'Y');
1059										/*cluster icon*/
1060				var map = window.GLOBAL_arMapObjects['MAP_PxWcPa'];
1061				var clusterOptions = {
1062					zoomOnClick: true,
1063					averageCenter: true,
1064					clusterClass: 'test',
1065					styles: [{
1066						url: '/bitrix/templates/aspro_mshop'+'/images/map_cluster.png',
1067						height: 53, 
1068						width: 53,
1069						textColor: '#383838',
1070						textSize: 12,
1071						fontFamily: 'Ubuntu'
1072					}]
1073				}
1074				var markerCluster = new MarkerClusterer(map, markers, clusterOptions);
1075				var clusterIcons = '/bitrix/templates/aspro_mshop/images/map_cluster.png';
1076				var clusterIconsHover = '/bitrix/templates/aspro_mshop/images/map_cluster.png';
1077				google.maps.event.addListener(markerCluster, "mouseout", function (c) {
1078				  c.clusterIcon_.div_.firstChild.src = clusterIcons;
1079				});
1080				google.maps.event.addListener(markerCluster, "mouseover", function (c) {
1081				  c.clusterIcon_.div_.firstChild.src = clusterIconsHover;
1082				});
1083			
1084				center = bounds.getCenter();
1085									map.fitBounds(bounds);
1086										
1087			/*reinit map*/
1088			//google.maps.event.trigger(map,'resize');
1089		}
1090
1091		function BXShowMap_MAP_PxWcPa() {
1092			BXWaitForMap_view('MAP_PxWcPa');
1093		}
1094
1095		BX.ready(BXShowMap_MAP_PxWcPa);
1096	</script>
1096
1097<!--'end_frame_cache_LFmCcO'-->					</div>
1098					
1099											<div class="wrapper_inner">
1100					<div class="shops list">
1101						<div class="items">
1102															<div class="item " data-ID="100">
1103									<div class="image">
1104																																	<a href="/contacts/dealers/100/"><img src="/upload/iblock/e99/e99cd374d0c557e619dd64497b9907c2.jpg" alt="ÎÎÎ &quot;ÀËÄÆÈÏÀÊ&quot;" title="ÎÎÎ &quot;ÀËÄÆÈÏÀÊ&quot;" /></a>
1105																														</div>
1106									<div class="rubber">
1107										<div class="title_metro">
1108																																				<a href="/contacts/dealers/100/"><div class="title">ÎÎÎ "ÀËÄÆÈÏÀÊ"</div></a>
1109																																																											<div class="metro"><i></i>Áåëÿåâî</div>
1110																																	</div>
1111										<div class="schedule_phone_email">
1112											<div class="schedule">Ïí - Ïò: 9.00 - 18.00<br>
1113Ñá - Âñ: âûõîäíûå</div>
1114											<div class="phone_email">
1115																									<div class="phone"><a rel="nofollow" href="tel:+7(495)968-28-01">+7 (495) 968-28-01</a></div>
1116																																					<div class="email"><a rel="nofollow" href="mailto:[email protected] ">[email protected] </a></div>
1117																							</div>
1118										</div>
1119									</div>
1120								</div>
1121															<div class="item " data-ID="103">
1122									<div class="image">
1123																																	<a href="/contacts/dealers/103/"><img src="/upload/iblock/63b/63b78e8abcd3d93d27f2a57484a5edcb.jpg" alt="ÎÎÎ &quot;Êîìïëåêñ Ïàê&quot;" title="ÎÎÎ &quot;Êîìïëåêñ Ïàê&quot;" /></a>
1124																														</div>
1125									<div class="rubber">
1126										<div class="title_metro">
1127																																				<a href="/contacts/dealers/103/"><div class="title">ÎÎÎ "Êîìïëåêñ Ïàê"</div></a>
1128																																																											<div class="metro"><i></i>ÂÄÍÕ</div>
1129																																	</div>
1130										<div class="schedule_phone_email">
1131											<div class="schedule">Ïí - Ïò: 9.00 - 18.00<br/>Ñá - Âñ: âûõîäíûå</div>
1132											<div class="phone_email">
1133																									<div class="phone"><a rel="nofollow" href="tel:+7(495)723-08-27">+7 (495) 723-08-27</a></div>
1134																																			</div>
1135										</div>
1136									</div>
1137								</div>
1138															<div class="item " data-ID="353">
1139									<div class="image">
1140																																	<a href="/contacts/dealers/353/"><img src="/upload/iblock/ead/ead9605c9d2b744a7d6113b47ab6572f.jpg" alt="PackAir.ru" title="PackAir.ru" /></a>
1141																														</div>
1142									<div class="rubber">
1143										<div class="title_metro">
1144																																				<a href="/contacts/dealers/353/"><div class="title">PackAir.ru</div></a>
1145																																												</div>
1146										<div class="schedule_phone_email">
1147											<div class="schedule">×àñû ðàáîòû:
1148áóäíè ñ 9 äî 18</div>
1149											<div class="phone_email">
1150																									<div class="phone"><a rel="nofollow" href="tel:+7(812)677-52-46">+7 (812) 677-52-46</a></div>
1151																																					<div class="email"><a rel="nofollow" href="mailto:[email protected]">[email protected]</a></div>
1152																							</div>
1153										</div>
1154									</div>
1155								</div>
1156													</div>
1157					</div>
1158				</div>
1159				<div class="clearboth"></div>
1160																																		</div>		<footer id="footer" >
1161			<div class="footer_inner">
1162				<div class="wrapper_inner">
1163					<div class="footer_top">
1164						<div class="wrap_md">
1165							<div class="iblock sblock">
1166								<!--'start_frame_cache_IzufVt'--><div class="subscribe-form_footer"  id="subscribe-form_footer">
1167	<div class="wrap_md">
1168		<div class="wrap_bg iblock">
1169			<div class="wrap_text">
1170				<div class="wrap_icon iblock">
1171					
1172				</div>
1173				<div class="wrap_more_text iblock">
1174					Ïîäïèñûâàéòåñü<br/> íà íîâîñòè è àêöèè				</div>
1175			</div>
1176		</div>
1177		<div class="forms iblock">
1178			
1179				<form action="/personal/subscribe/" class="sform_footer box-sizing">
1180											<label class="hidden">
1181							<input type="checkbox" name="sf_RUB_ID[]" value="1" checked /> Íîâîñòè ìàãàçèíà						</label>
1182										<div class="wrap_md">
1183						<div class="email_wrap form-control iblock">
1184							<input type="email" name="sf_EMAIL" class="grey medium" required size="20" value="" placeholder="Îñòàâüòå ñâîé e-mail" />
1185						</div>
1186						<div class="button_wrap iblock">
1187							<input type="submit" name="OK" class="button medium" value="Ïîäïèñàòüñÿ" />
1188						</div>
1189					</div>
1190				</form>
1191		</div>
1192	</div>
1193</div>
1194<script>
1195	$(document).ready(function(){
1196		$("form.sform_footer").validate({
1197			rules:{ "sf_EMAIL": {email: true} }
1198		});
1199	})
1200</script>
1200
1201<!--'end_frame_cache_IzufVt'-->							</div>
1202							<div class="iblock phones">
1203								<div class="wrap_md">
1204									<div class="empty_block iblock"></div>
1205									<div class="phone_block iblock">
1206										<span class="phone_wrap">
1207											<span class="icons"></span>
1208											<span><a rel="nofollow" href="tel:+7 495 150 08 70"><span style="font-size: 12pt;"><b><span style="font-size: 11pt; color: #004a80;">+7 (495) 150-08-70</span></b></span></a></span>
1209										</span>
1210										<span class="order_wrap_btn">
1211											<span class="callback_btn">Çàêàçàòü çâîíîê</span>
1212										</span>
1213									</div>
1214								</div>
1215							</div>
1216						</div>
1217					</div>
1218					<div class="footer_bottom">
1219						<div class="wrap_md">
1220							<div class="iblock menu_block">
1221								<div class="wrap_md">
1222									<div class="iblock copy_block">
1223										<div class="copyright">
1224											2012-2026 © OCTAPACK îôèöèàëüíûé ïðåäñòàâèòåëü STOROpack â ÐÔ. Âñå ïðàâà çàùèùåíû.<br>
1225 
1226<div class="bx_breadcrumbs" style="display: none;">
1227
1228<ul><li id="breadcrumb-0" itemscope itemtype="http://data-vocabulary.org/Breadcrumb" itemref="breadcrumb-1" ><a href="/" title="Ãëàâíàÿ" itemprop="url"><span itemprop="title">Ãëàâíàÿ</span></a></li><li id="breadcrumb-1" itemscope itemtype="http://data-vocabulary.org/Breadcrumb" itemref="breadcrumb-2" itemprop="child"><a href="/contacts/" title="Äèëåðû" itemprop="url"><span itemprop="title">Äèëåðû</span></a></li><li id="breadcrumb-2" itemscope itemtype="http://data-vocabulary.org/Breadcrumb" itemprop="child"><a href="/contacts/dealers/" title="Äèëåðû" itemprop="url"><span itemprop="title">Äèëåðû</span></a></li></ul>
1229</div>&nbsp;
1230
1231	<div itemscope itemtype="http://schema.org/WholesaleStore" style="display: none;" >
1232
1233			<div itemprop="name">
1234			ÎÎÎ &quot;ÎÊÒÀÏÀÊ&quot;		</div>
1235	
1236			<div itemprop="description">
1237			Êîìïàíèÿ Storopack ðàçðàáàòûâàåò âûñîêèå òåõíîëîãèè â îáëàñòè çàùèòíîé óïàêîâêè.
1238Ýòî âîçäóøíàÿ óïàêîâêà, áóìàæíàÿ óïàêîâêà è ïåííàÿ óïàêîâêà.
1239Êàæäûé âèä óïàêîâêè — âáèðàåò â ñåáÿ ìíîæåñòâî âîçìîæíîñòåé è âàðèàíòîâ ïðèìåíåíèÿ.
1240Ïðîäóêöèÿ ïðåäñòàâëåíà äëÿ òàêèõ îòðàñëåé, êàê ïðîèçâîäñòâåííûå êîìïàíèè, ñòàíêîñòðîåíèå, ôàðìàöåâòèêà, ñêëàäñêèå è ëîãèñòè÷åñêèå êîìïàíèè, èíòåðíåò-êîììåðöèÿ è ìíîãèå äðóãèå ñôåðû áèçíåñà.		</div>
1241	
1242		<div itemprop="address" itemscope itemtype="http://schema.org/PostalAddress">
1243		 			 <div itemprop="postalCode">141700</div>
1244		 		 			 <div itemprop="addressCountry">ÐÔ</div>
1245		 		 			 <div itemprop="addressRegion">Ìîñêîâñêàÿ îáëàñòü</div>
1246		 	   		   <div itemprop="addressLocality">Äîëãîïðóäíûé</div>
1247	   	   		  <div itemprop="streetAddress">Ëèõà÷åâñêèé ïðîñï., ä.46, ñòð.1</div>
1248	   	 </div>
1249		
1250		 <div>
1251		 			 			<span itemprop="telephone">+7 (495) 150-08-70</span>
1252		 	 </div>
1253		
1254		
1255			<div>
1256											<a itemprop="email" href="mailto:[email protected]">[email protected]</a>
1257					</div>
1258	
1259			<div>
1260			<a href="http://octapack.ru" itemprop="url">octapack.ru</a>
1261		</div>
1262	
1263	
1264            <div>
1265                            
1266
1267<div itemscope itemtype="http://schema.org/ImageObject" itemprop="photo" >
1268
1269			<img src="https://octapack.ru/upload/aspro.mshop/262/262d9499b0699c5979fb40789bc37615.jpg" itemprop="contentUrl" alt="" />
1270	
1271	<div >
1272
1273        						
1274				
1275		
1276		
1277		
1278
1279	</div>
1280
1281</div>
1282
1283
1284
1285                            
1286			<p><b style='color: red;'>ÎØÈÁÊÀ: Íå çàäàí URL êàðòèíêè</b> (çàïîëíèòå ñâîéñòâî <u>Ññûëêà íà êàðòèíêó</u> èëè <u>Ññûëêà íà ìèíèàòþðó</u>)</p>
1287	
1288
1289                    </div>
1290    
1291	
1292	<div>
1293		 			 			<time itemprop="openingHours" datetime="Mo-Fr 9:00&#8722;20:00">Ñ Ïîíåäåëüíèêà ïî Ïÿòíèöó 9-18</time>
1294		 			 , 			<time itemprop="openingHours" datetime="St,Sn">Ñóááîòà, Âîñêðåñåíüå âûõîäíûå</time>
1295		 	</div>
1296		
1297	
1298	
1299	
1300
1301	</div>
1302
1303
1304
1305<br>										</div>
1306										<span class="pay_system_icons">
1307											<i alt="MasterCard" title="MasterCard" class="mastercard"></i>
1308<i alt="Visa" title="Visa" class="visa"></i>
1309<i alt="ßíäåêñ.Äåíüãè" title="ßíäåêñ.Äåíüãè" class="yandex_money"></i>										</span>
1310									</div>
1311									<div class="iblock all_menu_block">
1312										<div class="wrap_md submenu_top">
1313				<div class="menu_item iblock"><a href="/company/">Êîìïàíèÿ</a></div>
1314			<div class="menu_item iblock"><a href="">Èíôîðìàöèÿ</a></div>
1315			<div class="menu_item iblock"><a href="/help/">Ïîìîùü</a></div>
1316		</div>										<div class="wrap_md">
1317											<div class="iblock submenu_block">
1318												<ul class="submenu">
1319				<li class="menu_item"><a href="/company/">Î êîìïàíèè</a></li>
1320					<li class="menu_item"><a href="/company/news/">Íîâîñòè</a></li>
1321					<li class="menu_item"><a href="/company/staff/">Ñîòðóäíèêè</a></li>
1322					<li class="menu_item"><a href="/company/jobs/">Âàêàíñèè</a></li>
1323					<li class="menu_item selected"><a href="/contacts/dealers/">Äèëåðû</a></li>
1324				</ul>
1325<script>
1326	$(".bottom_submenu ul.submenu li").click(function()
1327	{
1328		$(".bottom_submenu ul.submenu li").removeClass("selected");
1329		$(this).addClass("selected");
1330	});
1331</script>
1331											</div>
1332											<div class="iblock submenu_block">
1333												<ul class="submenu">
1334				<li class="menu_item"><a href="/help/payment/">Óñëîâèÿ îïëàòû</a></li>
1335					<li class="menu_item"><a href="/help/delivery/">Óñëîâèÿ äîñòàâêè</a></li>
1336					<li class="menu_item"><a href="/help/warranty/">Ãàðàíòèÿ íà òîâàð</a></li>
1337				</ul>
1338<script>
1339	$(".bottom_submenu ul.submenu li").click(function()
1340	{
1341		$(".bottom_submenu ul.submenu li").removeClass("selected");
1342		$(this).addClass("selected");
1343	});
1344</script>
1344											</div>
1345											<div class="iblock submenu_block">
1346												<ul class="submenu">
1347				<li class="menu_item"><a href="/info/faq/">×àñòî çàäàâàåìûå âîïðîñû</a></li>
1348				</ul>
1349<script>
1350	$(".bottom_submenu ul.submenu li").click(function()
1351	{
1352		$(".bottom_submenu ul.submenu li").removeClass("selected");
1353		$(this).addClass("selected");
1354	});
1355</script>
1355											</div>
1356										</div>
1357									</div>
1358								</div>
1359							</div>
1360							<div class="iblock social_block">
1361								<div class="wrap_md">
1362									<div class="empty_block iblock"></div>
1363									<div class="social_wrapper iblock">
1364										<div class="social">
1365												<a href="https://vk.com/octapackrus" target="_blank" >
1366		<img src="/bitrix/components/aspro/social.info.mshop/images/vk.png" alt="ÂÊîíòàêòå" title="ÂÊîíòàêòå" />
1367	</a>
1368	<a href="https://www.facebook.com/octapackrus" target="_blank">
1369		<img src="/bitrix/components/aspro/social.info.mshop/images/facebook.png" alt="Facebook" title="Facebook" />
1370	</a>
1371	<a href="https://www.youtube.com/channel/UCTErOiEfOykUjST7nDshoSQ/featured" target="_blank">
1372		<img src="/bitrix/components/aspro/social.info.mshop/images/youtube.png" alt="Youtube" title="Youtube" /> 
1373	</a>
1374 
1375
1376<div style = "width:100%; display: inline-block;">
1377	<div style = "display: inline-block;">
1378		
1378<script language="JavaScript" src="https://dunsregistered.dnb.com" type="text/javascript"></script>
1378
1379	</div>
1380	<div style = "display: inline-block; overflow: hidden; position: relative; top: -13px;">
1381		<img style = "width:155px;" src = '/include/Logo-storopack260-80.png'>
1382	</div>
1383</div>										</div>
1384									</div>
1385								</div>
1386								<div id="bx-composite-banner"></div>
1387							</div>
1388						</div>
1389					</div>
1390					
1390<script>
vendor: 334 bytes, lines 1390-1395
1390
1391(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
1392(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
1393m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
1394})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
1395ga('create', '
1395UA-84471455-1
vendor: 36 bytes, lines 1395-1396
1395', 'auto');
1396ga('send', 'pageview');
1397</script>
1397
1398
1399<!-- Yandex.Metrika counter -->
1400<script type="text/javascript">
1401    (function (d, w, c) {
1402        (w[c] = w[c] || []).push(function() {
1403            try {
1404                w.yaCounter33127063 = new Ya.Metrika({
1405                    id:33127063,
1406                    clickmap:true,
1407                    trackLinks:true,
1408                    accurateTrackBounce:true,
1409                    webvisor:true,
1410                    ecommerce:"dataLayer"
1411                });
1412            } catch(e) { }
1413        });
1414
1415        var n = d.getElementsByTagName("script")[0],
1416            s = d.createElement("script"),
1417            f = function () { n.parentNode.insertBefore(s, n); };
1418        s.type = "text/javascript";
1419        s.async = true;
1420        s.src = "https://mc.yandex.ru/metrika/watch.js";
1421
1422        if (w.opera == "[object Opera]") {
1423            d.addEventListener("DOMContentLoaded", f, false);
1424        } else { f(); }
1425    })(document, window, "yandex_metrika_callbacks");
1426</script>
1426
1427<noscript><div><img src="https://mc.yandex.ru/watch/33837009" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
1428<!-- /Yandex.Metrika counter -->
1429
1430<!-- [email protected] counter -->
1431<script type="text/javascript">
1432var _tmr = window._tmr || (window._tmr = []);
1433_tmr.push({id: "2822986", type: "pageView", start: (new Date()).getTime()});
1434(function (d, w, id) {
1435  if (d.getElementById(id)) return;
1436  var ts = d.createElement("script"); ts.type = "text/javascript"; ts.async = true; ts.id = id;
1437  ts.src = (d.location.protocol == "https:" ? "https:" : "http:") + "//top-fwz1.mail.ru/js/code.js";
1438  var f = function () {var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ts, s);};
1439  if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); }
1440})(document, window, "topmailru-code");
1441</script>
1441<noscript><div style="position:absolute;left:-10000px;">
1442<img src="//top-fwz1.mail.ru/counter?id=2822986;js=na" style="border:0;" height="1" width="1" alt="Ðåéòèíã@Mail.ru" />
1443</div></noscript>
1444<!-- //[email protected] counter -->
1445
1446									</div>					
1447			</div>	
1448		</footer>		
1449				<div id="content_new"></div>
1450			
1451<!-- Yandex.Metrika counter --> 
1452	
1452<script type="text/javascript" >
vendor: 299 bytes, lines 1452-1456
1452 
1453		(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; 
1454		m[i].l=1*new Date();
1455		k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) (window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); 
1456		ym(
145633127063
vendor: 90 bytes, lines 1456-1457
1456, "init", { clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); 
1457	
1457</script>
1457 
1458	<noscript>
1459		<div>
1460			<img src="https://mc.yandex.ru/watch/33127063" style="position:absolute; left:-9999px;" alt="" />
1461		</div>
1462	</noscript>
1463<!-- /Yandex.Metrika counter -->
1464
1465<!-- Callback Megafon -->
1466	
1466<script type="text/javascript" async>
1467	(function (d) {
1468
1469    var cfg = {
1470        uid: '938a47e8-d016-41e5-b02d-57eadb520294',
1471domain: 'oktapack.megapbx.ru',
1472mediaPath: 'https://oktapack.megapbx.ru',
1473wsHost: 'oktapack.megapbx.ru',
1474enabled: true,
1475widgetcode: '1',
1476callbutton: 'bottom-right',
1477colors: '{"button":"#4B0D96","text":"#FFFFFF","popup":"#4A565C"}',
1478calldirection: '["ru"]',
1479targetOfftime: 'false',
1480timerseconds: 26,
1481html: '<noindex><div class="itlcb-call-btn" id="itlcb-call-btn"></div><div id="itlcb-bg-fill" class="itlcb-background-fill"></div><div class="itlcb-widget-body" id="itlcb-step2">   <button class="itlcb-close-cross" type="btn" id="itlcb-close-btn"></button>   <div class="itlcb-widget-align">       <div class="itlcb-top-panel"><div>Ïåðåçâîíèì áåñïëàòíî</br>çà&nbsp;26&nbsp;ñåêóíä</div>       </div>       <div class="itlcs-call-time-block" id="itlcb-postpone-common-msg">           <span id="itlcb-postpone-common-span-msg"></span>       </div>       <div class="itlcb-main-call-panell">           <div class="itlcb-panell-text" id="itlcb-postpone-msg"><span id="itlcb-postpone-msg-span">Ïåðåçâîíèì áåñïëàòíî</br>çà&nbsp;26&nbsp;ñåêóíä</span>           </div>           <div class="itlcb-panell-body">               <div class="itlcb-input-block">               <div id="itlcb-flags-wrapper" class="itlcb-flags">                   <div tabindex="10" id="itlcb-flag-selected-wrapper" class="itlcb-selected-flag">                       <div id="itlcb-flag-selected" class="itlcb-flag"></div>                   </div>               </div>                   <input type="tel" class="itlcb-phone-input" id="itlcb-input" name="phone"/>                   <ul tabindex="11" id="itlcb-flags-list" class="itlcb-flags-list"></ul>               </div>               <div class="itlcb-button-block">                   <button class="itlcb-form-call-btn itlcb-btn-disabled" type="button" id="itlcb-do-call">                       <span class="itlcb-form-call-btn-text">ÆÄÓ ÇÂÎÍÊÀ</span>                   </button>               </div>           </div>       </div>       <div class="itlcb-bottom-txt"><span>Âèäæåò</span> <a href="https://vats.megafon.ru?utm_source=vats&utm_medium=callback&utm_campaign=customerwebsite" target="_blank" rel="noopener noreferrer nofollow">Âèðòóàëüíîé ÀÒÑ ÌåãàÔîí</a></div>   </div>   <noindex><div class="itlcb-bottom-txt-block"><span>Âèäæåò</span> <a href="https://vats.megafon.ru?utm_source=vats&utm_medium=callback&utm_campaign=customerwebsite" target="_blank" rel="noopener noreferrer nofollow">Âèðòóàëüíîé ÀÒÑ ÌåãàÔîí</a></div></noindex></div><div class="itlcb-call-info-block" id="itlcb-step3">   <button class="itlcb-close-cross" type="btn" id="itlcb-close-btn2"></button>   <div class="itlcb-widget-align">       <div class="itlcb-message-block" id="itlcb-info">           <div class="itlcb-message-warn">Ìû óæå çâîíèì âàì!</div>           <div class="itlcb-message-timer" id="itlcb-timer"></div>       </div>       <div class="itlcb-bottom-txt"><span>Âèäæåò</span> <a href="https://vats.megafon.ru?utm_source=vats&utm_medium=callback&utm_campaign=customerwebsite" target="_blank" rel="noopener noreferrer nofollow">Âèðòóàëüíîé ÀÒÑ ÌåãàÔîí</a></div>   </div>   <div class="itlcb-bottom-txt-block"><span>Âèäæåò</span> <a href="https://vats.megafon.ru?utm_source=vats&utm_medium=callback&utm_campaign=customerwebsite" target="_blank" rel="noopener noreferrer nofollow">Âèðòóàëüíîé ÀÒÑ ÌåãàÔîí</a></div></div><div class="itlcb-call-info-block" id="itlcb-step4">   <button class="itlcb-close-cross" type="btn" id="itlcb-close-btn3"></button>   <div class="itlcb-widget-align" id="itlcb-msg-wrap">       <div class="itlcb-message-image" id="itlcb-msg-image"></div>       <div class="itlcb-message-data" id="itlcb-info-msg"></div>       <div class="itlcb-bottom-txt"><span>Âèäæåò</span> <a href="https://vats.megafon.ru?utm_source=vats&utm_medium=callback&utm_campaign=customerwebsite" target="_blank" rel="noopener noreferrer nofollow">Âèðòóàëüíîé ÀÒÑ ÌåãàÔîí</a></div>   </div>   <div class="itlcb-bottom-txt-block"><span>Âèäæåò</span> <a href="https://vats.megafon.ru?utm_source=vats&utm_medium=callback&utm_campaign=customerwebsite" target="_blank" rel="noopener noreferrer">Âèðòóàëüíîé ÀÒÑ ÌåãàÔîí</a></div></div></noindex>',
1482selectedCountryCode: 'ru',
1483phonePattern: '+7(___)___-__-__',
1484countriesList: [{"regionCode":"150","region":"europe","countries":[{"isoCode":"ad","phoneCode":"376","phonePattern":"+376-___-___"},{"isoCode":"al","phoneCode":"355","phonePattern":"+355(___)___-___"},{"isoCode":"at","phoneCode":"43","phonePattern":"+43(___)___-____"},{"isoCode":"ba","phoneCode":"387","phonePattern":"+387-__-____"},{"isoCode":"be","phoneCode":"32","phonePattern":"+32(___)___-___"},{"isoCode":"bg","phoneCode":"359","phonePattern":"+359(___)___-___"},{"isoCode":"by","phoneCode":"375","phonePattern":"+375(__)___-__-__"},{"isoCode":"ch","phoneCode":"41","phonePattern":"+41-__-___-____"},{"isoCode":"cz","phoneCode":"420","phonePattern":"+420(___)___-___"},{"isoCode":"de","phoneCode":"49","phonePattern":"+49-___-___"},{"isoCode":"dk","phoneCode":"45","phonePattern":"+45-__-__-__-__"},{"isoCode":"ee","phoneCode":"372","phonePattern":"+372-___-____"},{"isoCode":"es","phoneCode":"34","phonePattern":"+34(___)___-___"},{"isoCode":"fi","phoneCode":"358","phonePattern":"+358(___)___-__-__"},{"isoCode":"fr","phoneCode":"33","phonePattern":"+33(___)___-___"},{"isoCode":"fr","phoneCode":"262","phonePattern":"+262-_____-____"},{"isoCode":"fr","phoneCode":"508","phonePattern":"+508-__-____"},{"isoCode":"fr","phoneCode":"590","phonePattern":"+590(___)___-___"},{"isoCode":"gr","phoneCode":"30","phonePattern":"+30(___)___-____"},{"isoCode":"hr","phoneCode":"385","phonePattern":"+385-__-___-___"},{"isoCode":"hu","phoneCode":"36","phonePattern":"+36(___)___-___"},{"isoCode":"ie","phoneCode":"353","phonePattern":"+353(___)___-___"},{"isoCode":"is","phoneCode":"354","phonePattern":"+354-___-____"},{"isoCode":"it","phoneCode":"39","phonePattern":"+39(___)____-___"},{"isoCode":"li","phoneCode":"423","phonePattern":"+423(___)___-____"},{"isoCode":"lt","phoneCode":"370","phonePattern":"+370(___)__-___"},{"isoCode":"lu","phoneCode":"352","phonePattern":"+352(___)___-___"},{"isoCode":"lv","phoneCode":"371","phonePattern":"+371-__-___-___"},{"isoCode":"mc","phoneCode":"377","phonePattern":"+377-__-___-___"},{"isoCode":"md","phoneCode":"373","phonePattern":"+373-____-____"},{"isoCode":"me","phoneCode":"382","phonePattern":"+382-__-___-___"},{"isoCode":"mk","phoneCode":"389","phonePattern":"+389-__-___-___"},{"isoCode":"mt","phoneCode":"356","phonePattern":"+356-____-____"},{"isoCode":"nl","phoneCode":"31","phonePattern":"+31-__-___-____"},{"isoCode":"no","phoneCode":"47","phonePattern":"+47(___)__-___"},{"isoCode":"pl","phoneCode":"48","phonePattern":"+48(___)___-___"},{"isoCode":"pt","phoneCode":"351","phonePattern":"+351-__-___-____"},{"isoCode":"ro","phoneCode":"40","phonePattern":"+40-__-___-____"},{"isoCode":"rs","phoneCode":"381","phonePattern":"+381-__-___-____"},{"isoCode":"ru","phoneCode":"7","phonePattern":"+7(___)___-__-__"},{"isoCode":"se","phoneCode":"46","phonePattern":"+46-__-___-____"},{"isoCode":"si","phoneCode":"386","phonePattern":"+386-__-___-___"},{"isoCode":"sk","phoneCode":"421","phonePattern":"+421(___)___-___"},{"isoCode":"sm","phoneCode":"378","phonePattern":"+378-____-______"},{"isoCode":"ua","phoneCode":"380","phonePattern":"+380(__)___-__-__"},{"isoCode":"gb","phoneCode":"44","phonePattern":"+44-__-____-____"}
1484,{"isoCode":"va","phoneCode":"396698","phonePattern":"+39-6-698-_____"}]},{"regionCode":"142","region":"asia","countries":[{"isoCode":"ae","phoneCode":"971","phonePattern":"+971-_-___-____"},{"isoCode":"af","phoneCode":"93","phonePattern":"+93-__-___-____"},{"isoCode":"am","phoneCode":"374","phonePattern":"+374-__-___-___"},{"isoCode":"az","phoneCode":"994","phonePattern":"+994-__-___-__-__"},{"isoCode":"bd","phoneCode":"880","phonePattern":"+880-__-___-___"},{"isoCode":"bh","phoneCode":"973","phonePattern":"+973-____-____"},{"isoCode":"bn","phoneCode":"673","phonePattern":"+673-___-____"},{"isoCode":"bt","phoneCode":"975","phonePattern":"+975-_-___-___"},{"isoCode":"cn","phoneCode":"86","phonePattern":"+86(___)____-___"},{"isoCode":"cy","phoneCode":"357","phonePattern":"+357-__-___-___"},{"isoCode":"ge","phoneCode":"995","phonePattern":"+995(___)___-___"},{"isoCode":"id","phoneCode":"62","phonePattern":"+62-__-___-__"},{"isoCode":"il","phoneCode":"972","phonePattern":"+972-_-___-____"},{"isoCode":"in","phoneCode":"91","phonePattern":"+91(____)___-___"},{"isoCode":"iq","phoneCode":"964","phonePattern":"+964(___)___-____"},{"isoCode":"ir","phoneCode":"98","phonePattern":"+98(___)___-____"},{"isoCode":"jo","phoneCode":"962","phonePattern":"+962-_-____-____"},{"isoCode":"jp","phoneCode":"81","phonePattern":"+81(___)___-___"},{"isoCode":"kg","phoneCode":"996","phonePattern":"+996(___)___-___"},{"isoCode":"kh","phoneCode":"855","phonePattern":"+855-__-___-___"},{"isoCode":"kp","phoneCode":"850","phonePattern":"+850-___-___"},{"isoCode":"kr","phoneCode":"82","phonePattern":"+82-__-___-____"},{"isoCode":"kw","phoneCode":"965","phonePattern":"+965-____-____"},{"isoCode":"kz","phoneCode":"77","phonePattern":"+7(7__)___-__-__"},{"isoCode":"kz","phoneCode":"76","phonePattern":"+7(6__)___-__-__"},{"isoCode":"la","phoneCode":"856","phonePattern":"+856-__-___-___"},{"isoCode":"lb","phoneCode":"961","phonePattern":"+961-_-___-___"},{"isoCode":"lk","phoneCode":"94","phonePattern":"+94-__-___-____"},{"isoCode":"mm","phoneCode":"95","phonePattern":"+95-___-___"},{"isoCode":"mn","phoneCode":"976","phonePattern":"+976-__-__-____"},{"isoCode":"mv","phoneCode":"960","phonePattern":"+960-___-____"},{"isoCode":"my","phoneCode":"60","phonePattern":"+60-_-___-___"},{"isoCode":"np","phoneCode":"977","phonePattern":"+977-__-___-___"},{"isoCode":"om","phoneCode":"968","phonePattern":"+968-__-___-___"},{"isoCode":"ph","phoneCode":"63","phonePattern":"+63(___)___-____"},{"isoCode":"pk","phoneCode":"92","phonePattern":"+92(___)___-____"},{"isoCode":"ps","phoneCode":"970","phonePattern":"+970-__-___-____"},{"isoCode":"qa","phoneCode":"974","phonePattern":"+974-____-____"},{"isoCode":"sa","phoneCode":"966","phonePattern":"+966-_-___-____"},{"isoCode":"sg","phoneCode":"65","phonePattern":"+65-____-____"},{"isoCode":"sy","phoneCode":"963","phonePattern":"+963-__-____-___"},{"isoCode":"th","phoneCode":"66","phonePattern":"+66-__-___-___"},{"isoCode":"tj","phoneCode":"992","phonePattern":"+992-__-___-____"},{"isoCode":"tl","phoneCode":"670","phonePattern":"+670-___-____"},{"isoCode":"tm","phoneCode":"993","phonePattern":"+993-_-___-____"},{"isoCode":"tr","phoneCode":"90","phonePattern":"+90(___)___-____"},{"isoCode":"tw","phoneCode":"886","phonePattern":"+886-____-____"},{"isoCode":"uz","phoneCode":"998","phonePattern":"+998-__-___-____"},{"isoCode":"vn","phoneCode":"84","phonePattern":"+84-__-____-___"},{"isoCode":"ye","phoneCode":"967","phonePattern":"+967-_-___-___"}]},{"regionCode":"019","region":"north_america","countries":[{"isoCode":"ag","phoneCode":"1268","phonePattern":"+1(268)___-____"},{"isoCode":"bb","phoneCode":"1246","phonePattern":"+1(246)___-____"},{"isoCode":"tt","phoneCode":"1868","phonePattern":"+1(868)___-____"},{"isoCode":"bs","phoneCode":"1242","phonePattern":"+1(242)___-____"},{"isoCode":"bz","phoneCode":"501","phonePattern":"+501-___-____"},{"isoCode":"cr","phoneCode":"506","phonePattern":"+506-____-____"},{"isoCode":"cu","phoneCode":"53","phonePattern":"+53-_-___-____"},{"isoCode":"dm","phoneCode":"1767","phonePattern":"+1(767)___-____"},{"isoCode":"do","phoneCode":"1809","phonePattern":"+1(809)___-____"},{"isoCode":"do","phoneCode":"1829","phonePattern":"+1(829)___-____"},{"isoCode":"do","phoneCode":"1849","phonePattern":"+1(849)___-____"},{"isoCode":"gd","phoneCode":"1473","phonePattern":"+1(473)___-____"},{"isoCode":"gt","phoneCode":"502","phonePattern":"+502-_-___-____"},{"isoCode":"hn","phoneCode":"504","phonePattern":"+504-____-____"},{"isoCode":"ht","phoneCode":"509","phonePattern":"+509-__-__-____"},{"isoCode":"jm","phoneCode":"1876","phonePattern":"+1(876)___-____"},{"isoCode":"kn","phoneCode":"1869","phonePattern":"+1(869)___-____"},{"isoCode":"lc","phoneCode":"1758","phonePattern":"+1(758)___-____"},{"isoCode":"mx","phoneCode":"52","phonePattern":"+52-__-__-____"},{"isoCode":"ni","phoneCode":"505","phonePattern":"+505-____-____"},{"isoCode":"pa","phoneCode":"507","phonePattern":"+507-___-____"},{"isoCode":"sv","phoneCode":"503","phonePattern":"+503-__-__-____"},{"isoCode":"vc","phoneCode":"1784","phonePattern":"+1(784)___-____"},{"isoCode":"us","phoneCode":"1","phonePattern":"+1(___)___-____"},{"isoCode":"ca","phonePattern":"+1(___)___-____"}]},{"regionCode":"419","region":"south_america","countries":[{"isoCode":"ar","phoneCode":"54","phonePattern":"+54(___)___-____"},{"isoCode":"br","phoneCode":"55","phonePattern":"+55-__-____-____"},{"isoCode":"ve","phoneCode":"58","phonePattern":"+58(___)___-____"},{"isoCode":"co","phoneCode":"57","phonePattern":"+57(___)___-____"},{"isoCode":"cl","phoneCode":"56","phonePattern":"+56-_-____-____"},{"isoCode":"py","phoneCode":"595","phonePattern":"+595(___)___-___"},{"isoCode":"sr","phoneCode":"597","phonePattern":"+597-___-___"},{"isoCode":"bo","phoneCode":"591","phonePattern":"+591-_-___-____"},{"isoCode":"ec","phoneCode":"593","phonePattern":"+593-_-___-____"},{"isoCode":"gy","phoneCode":"592","phonePattern":"+592-___-____"},{"isoCode":"pe","phoneCode":"51","phonePattern":"+51(___)___-___"},{"isoCode":"uy","phoneCode":"598","phonePattern":"+598-_-___-__-__"}]}
1484,{"regionCode":"002","region":"africa","countries":[{"isoCode":"ao","phoneCode":"244","phonePattern":"+244(___)___-___"},{"isoCode":"bf","phoneCode":"226","phonePattern":"+226-__-__-____"},{"isoCode":"bi","phoneCode":"257","phonePattern":"+257-__-__-____"},{"isoCode":"bj","phoneCode":"229","phonePattern":"+229-__-__-____"},{"isoCode":"bw","phoneCode":"267","phonePattern":"+267-__-___-___"},{"isoCode":"cd","phoneCode":"243","phonePattern":"+243(___)___-___"},{"isoCode":"cf","phoneCode":"236","phonePattern":"+236-__-__-____"},{"isoCode":"cg","phoneCode":"242","phonePattern":"+242-__-___-____"},{"isoCode":"ci","phoneCode":"225","phonePattern":"+225-__-___-___"},{"isoCode":"cm","phoneCode":"237","phonePattern":"+237-____-____"},{"isoCode":"cv","phoneCode":"238","phonePattern":"+238(___)__-__"},{"isoCode":"dj","phoneCode":"253","phonePattern":"+253-__-__-__-__"},{"isoCode":"dz","phoneCode":"213","phonePattern":"+213-__-___-____"},{"isoCode":"eg","phoneCode":"20","phonePattern":"+20(___)___-____"},{"isoCode":"er","phoneCode":"291","phonePattern":"+291-_-___-___"},{"isoCode":"et","phoneCode":"251","phonePattern":"+251-__-___-____"},{"isoCode":"ga","phoneCode":"241","phonePattern":"+241-_-__-__-__"},{"isoCode":"gh","phoneCode":"233","phonePattern":"+233(___)___-___"},{"isoCode":"gm","phoneCode":"220","phonePattern":"+220(___)__-__"},{"isoCode":"gn","phoneCode":"224","phonePattern":"+224-__-___-___"},{"isoCode":"gq","phoneCode":"240","phonePattern":"+240-__-___-____"},{"isoCode":"gw","phoneCode":"245","phonePattern":"+245-_-______"},{"isoCode":"ke","phoneCode":"254","phonePattern":"+254-___-______"},{"isoCode":"km","phoneCode":"269","phonePattern":"+269-__-_____"},{"isoCode":"lr","phoneCode":"231","phonePattern":"+231-__-___-___"},{"isoCode":"ls","phoneCode":"266","phonePattern":"+266-_-___-____"},{"isoCode":"ly","phoneCode":"218","phonePattern":"+218-__-___-___"},{"isoCode":"ma","phoneCode":"212","phonePattern":"+212-__-____-___"},{"isoCode":"mg","phoneCode":"261","phonePattern":"+261-__-__-_____"},{"isoCode":"ml","phoneCode":"223","phonePattern":"+223-__-__-____"},{"isoCode":"mr","phoneCode":"222","phonePattern":"+222-__-__-____"},{"isoCode":"mu","phoneCode":"230","phonePattern":"+230-___-____"},{"isoCode":"mw","phoneCode":"265","phonePattern":"+265-_-____-____"},{"isoCode":"mz","phoneCode":"258","phonePattern":"+258-__-___-___"},{"isoCode":"na","phoneCode":"264","phonePattern":"+264-__-___-____"},{"isoCode":"ne","phoneCode":"227","phonePattern":"+227-__-__-____"},{"isoCode":"ng","phoneCode":"234","phonePattern":"+234-__-___-__"},{"isoCode":"rw","phoneCode":"250","phonePattern":"+250(___)___-___"},{"isoCode":"sc","phoneCode":"248","phonePattern":"+248-_-___-___"},{"isoCode":"sd","phoneCode":"249","phonePattern":"+249-__-___-____"},{"isoCode":"sl","phoneCode":"232","phonePattern":"+232-__-______"},{"isoCode":"sn","phoneCode":"221","phonePattern":"+221-__-___-____"},{"isoCode":"so","phoneCode":"252","phonePattern":"+252-_-___-___"},{"isoCode":"ss","phoneCode":"211","phonePattern":"+211-__-___-____"},{"isoCode":"st","phoneCode":"239","phonePattern":"+239-__-_____"},{"isoCode":"sz","phoneCode":"268","phonePattern":"+268-__-__-____"},{"isoCode":"td","phoneCode":"235","phonePattern":"+235-__-__-__-__"},{"isoCode":"tg","phoneCode":"228","phonePattern":"+228-__-___-___"},{"isoCode":"tn","phoneCode":"216","phonePattern":"+216-__-___-___"},{"isoCode":"tz","phoneCode":"255","phonePattern":"+255-__-___-____"},{"isoCode":"ug","phoneCode":"256","phonePattern":"+256(___)___-___"},{"isoCode":"za","phoneCode":"27","phonePattern":"+27-__-___-____"},{"isoCode":"zm","phoneCode":"260","phonePattern":"+260-__-___-____"},{"isoCode":"zw","phoneCode":"263","phonePattern":"+263-_-______"}]},{"regionCode":"009","region":"oceania","countries":[{"isoCode":"au","phoneCode":"61","phonePattern":"+61-_-____-____"},{"isoCode":"fj","phoneCode":"679","phonePattern":"+679-__-_____"},{"isoCode":"fm","phoneCode":"691","phonePattern":"+691-___-____"},{"isoCode":"ki","phoneCode":"686","phonePattern":"+686-__-___"},{"isoCode":"mh","phoneCode":"692","phonePattern":"+692-___-____"},{"isoCode":"nr","phoneCode":"674","phonePattern":"+674-___-____"},{"isoCode":"nz","phoneCode":"64","phonePattern":"+64-__-___-___"},{"isoCode":"pg","phoneCode":"675","phonePattern":"+675(___)__-___"},{"isoCode":"pw","phoneCode":"680","phonePattern":"+680-___-____"},{"isoCode":"sb","phoneCode":"677","phonePattern":"+677-_____"},{"isoCode":"to","phoneCode":"676","phonePattern":"+676-_____"},{"isoCode":"tv","phoneCode":"688","phonePattern":"+688-_____"},{"isoCode":"vu","phoneCode":"678","phonePattern":"+678-_____"},{"isoCode":"ws","phoneCode":"685","phonePattern":"+685-__-____"}]}],
1485lang: 'ru',
1486mc: {"regions":{"europe":"Åâðîïà","asia":"Àçèÿ","north_america":"Ñåâåðíàÿ Àìåðèêà","south_america":"Þæíàÿ Àìåðèêà","africa":"Àôðèêà","oceania":"Îêåàíèÿ"},"countries":{"ad":"Àíäîððà","ae":"Àðàáñêèå Ýìèðàòû","af":"Àôãàíèñòàí","ag":"Àíòèãóà è Áàðáóäà","al":"Àëáàíèÿ","am":"Àðìåíèÿ","ao":"Àíã
1486îëà","ar":"Àðãåíòèíà","at":"Àâñòðèÿ","au":"Àâñòðàëèÿ","az":"Àçåðáàéäæàí","ba":"Áîñíèÿ è Ãåðöåãîâèíà","bb":"Áàðáàäîñ","bd":"Áàíãëàäåø","be":"Áåëüãèÿ","bf":"Áóðêèíà Ôàñî","bg":"Áîëãàðèÿ","bh":"Áàõðåéí","bi":"Áóðóíäè","bj":"Áåíèí","bn":"Áðóíåé-Äàðóññàëàì","bo":"Áîëèâèÿ","br":"Áðàçèëèÿ","bs":"Áàãàìñêèå Îñòðîâà","bt":"Áóòàí","bw":"Áîòñâàíà","by":"Áåëîðóññèÿ","bz":"Áåëèç","cd":"Êîíãî (Êèíøàñà)","cf":"Öåíòðàëüíîàôðèêàíñêàÿ Ðåñïóáëèêà","cg":"Êîíãî (Áðàççàâèëü)","ch":"Øâåéöàðèÿ","ci":"Êîò-ä’Èâóàð","cl":"×èëè","cm":"Êàìåðóí","cn":"Êèòàé","co":"Êîëóìáèÿ","cr":"Êîñòà-Ðèêà","cu":"Êóáà","cv":"Êàáî-Âåðäå","cy":"Êèïð","cz":"×åõèÿ","de":"Ãåðìàíèÿ","dj":"Äæèáóòè","dk":"Äàíèÿ","dm":"Äîìèíèêà","do":"Äîìèíèêàíñêàÿ Ðåñïóáëèêà","dz":"Àëæèð","ec":"Ýêâàäîð","ee":"Ýñòîíèÿ","eg":"Åãèïåò","er":"Ýðèòðåÿ","es":"Èñïàíèÿ","et":"Ýôèîïèÿ","fi":"Ôèíëÿíäèÿ","fj":"Ôèäæè","fm":"Ô.Ø. Ìèêðîíåçèè","fr":"Ôðàíöèÿ","ga":"Ãàáîí","gd":"Ãðåíàäà","ge":"Ãðóçèÿ","gh":"Ãàíà","gm":"Ãàìáèÿ","gn":"Ãâèíåÿ","gq":"Ýêâàòîðèàëüíàÿ Ãâèíåÿ","gr":"Ãðåöèÿ","gt":"Ãâàòåìàëà","gw":"Ãâèíåÿ-Áèñàó","gy":"Ãàéàíà","hn":"Ãîíäóðàñ","hr":"Õîðâàòèÿ","ht":"Ãàèòè","hu":"Âåíãðèÿ","id":"Èíäîíåçèÿ","ie":"Èðëàíäèÿ","il":"Èçðàèëü","in":"Èíäèÿ","iq"
1486:"Èðàê","ir":"Èðàí","is":"Èñëàíäèÿ","it":"Èòàëèÿ","jm":"ßìàéêà","jo":"Èîðäàíèÿ","jp":"ßïîíèÿ","ke":"Êåíèÿ","kg":"Êèðãèçèÿ","kh":"Êàìáîäæà","ki":"Êèðèáàòè","km":"Êîìîðû","kn":"Ñåíò-Êèòñ è Íåâèñ","kp":"Êîðåéñêàÿ ÍÄÐ","kr":"Ðåñï. Êîðåÿ","kw":"Êóâåéò","kz":"Êàçàõñòàí","la":"Ëàîñ","lb":"Ëèâàí","lc":"Ñåíò-Ëþñèÿ","li":"Ëèõòåíøòåéí","lk":"Øðè-Ëàíêà","lr":"Ëèáåðèÿ","ls":"Ëåñîòî","lt":"Ëèòâà","lu":"Ëþêñåìáóðã","lv":"Ëàòâèÿ","ly":"Ëèâèÿ","ma":"Ìàðîêêî","mc":"Ìîíàêî","md":"Ìîëäîâà","me":"×åðíîãîðèÿ","mg":"Ìàäàãàñêàð","mh":"Ìàðøàëëîâû Îñòðîâà","mk":"Ðåñï. Ìàêåäîíèÿ","ml":"Ìàëè","mm":"Áèðìà (Ìüÿíìà)","mn":"Ìîíãîëèÿ","mr":"Ìàâðèòàíèÿ","mt":"Ìàëüòà","mu":"Ìàâðèêèé","mv":"Ìàëüäèâñêèå îñòðîâà","mw":"Ìàëàâè","mx":"Ìåêñèêà","my":"Ìàëàéçèÿ","mz":"Ìîçàìáèê","na":"Íàìèáèÿ","ne":"Íèãåð","ng":"Íèãåðèÿ","ni":"Íèêàðàãóà","nl":"Íèäåðëàíäû","no":"Íîðâåãèÿ","np":"Íåïàë","nr":"Íàóðó","nz":"Íîâàÿ Çåëàíäèÿ","om":"Îìàí","pa":"Ïàíàìà","pe":"Ïåðó","pg":"Ïàïóà-Íîâàÿ Ãâèíåÿ","ph":"Ôèëèïïèíû","pk":"Ïàêèñòàí","pl":"Ïîëüøà","ps":"Ïàëåñòèíà","pt":"Ïîðòóãàëèÿ","pw":"Ïàëàó","py":"Ïàðàãâàé","qa":"Êàòàð","ro":"Ðóìûíèÿ","rs":"Ñåðáèÿ","ru":"Ðîññèÿ","rw":"Ðóàíäà","sa":"Ñàóäîâñêàÿ Àðàâèÿ","sb":"Ñîëîìîíîâû Îñòðîâà","sc":"Ñåéøåëû","sd":"Ñóäàí","se":"Øâåöèÿ","sg":"Ñèíãàïóð","si":"Ñëîâåíèÿ","sk":"Ñëîâàêèÿ","sl":"Ñüåððà-Ëåîíå","sm":"Ñàí-Ìàðèíî","sn":"Ñåíåãàë","so":"Ñîìàëè","sr":"Ñóðèíàì","ss":"Þæíûé Ñóäàí","st":"Ñàí-Òîìå è Ïðèíñèïè","sv":"Ñàëüâàäîð","sy":"Ñèðèéñêàÿ àðàáñêàÿ ðåñïóáëèêà","sz":"Ñâàçèëåíä","td":"×àä","tg":"Òîãî","th":"Òàèëàíä","tj":"Òàäæèêèñòàí","tl":"Âîñòî÷íûé Òèìîð","tm":"Òóðêìåíèñòàí","tn":"Òóíèñ","to":"Òîíãà","tr":"Òóðöèÿ","tt":"Òðèíèäàä è Òîáàãî","tv":"Òóâàëó","tw":"Òàéâàíü","tz":"Òàíçàíèÿ","ua":"Óêðàèíà","ug":"Óãàíäà","gb":"Âåëèêîáðèòàíèÿ","uy":"Óðóãâàé","uz":"Óçáåêèñòàí","va":"Âàòèêàí","vc":"Ñåíò-Âèíñåíò è Ãðåíàäèíû","ve":"Âåíåñóýëà","vn":"Âüåòíàì","vu":"Âàíóàòó","ws":"Ñàìîà","ye":"Éåìåí","za":"Þæíî-Àôðèêàíñêàÿ Ðåñï.","zm":"Çàìáèÿ","zw":"Çèìáàáâå","us":"Ñîåäèíåííûå Øòàòû","ca":"Êàíàäà"},"widget":{"internalError":"Âíóòðåííÿÿ îøèáêà. Ïîïðîáóéòå ïîçæå","incorrectWebsite":"Çâîíîê çàïðîøåí ñ íåâåðíîãî ñàéòà.","callbackIsPlaned":"Çâîíîê íà âàø íîìåð óæå</br>çàïëàíèðîâàí.","callbackIsAlready":"Íà äàííûé íîìåð óæå îñóùåñòâëÿåòñÿ çâîíîê.","tooManyRequestNumber":"Ñëèøêîì ìíîãî çâîíêîâ</br>ñ âàøåãî íîìåðà. Ïîïðîáóéòå</br>ïîâòîðèòü ïîçæå.","tooManyRequestIp":"Ñëèøêîì ìíîãî çâîíêîâ</br>ñ âàøåãî IP àäðåñà. Ïîïðîáóéòå</br>ïîâòîðèòü ïîçæå","countryDisabled":"Ê ñîæàëåíèþ, ìû íå ìîæåì ïîçâîíèòü â ýòó ñòðàíó.","acceptRequest":"Âàøà çàÿâêà ïðèíÿòà </br> Ñïàñèáî çà îáðàùåíèå â íàøó êîìïàíèþ!</br> Ìû ñêîðî ñâÿæåìñÿ ñ âàìè.","thankYouWorkingTime":"Ñïàñèáî çà îáðàùåíèå â íàøó êîìïàíèþ!</br> Ìû ñâÿæåìñÿ ñ âàìè â ðàáî÷åå âðåìÿ.","thankYou":"Ñïàñèáî çà îáðàùåíèå</br> â íàøó êîìïàíèþ!","workdayEnd":"Ê ñîæàëåíèþ, ìû óæå</br> íå ðàáîòàåì. ","requestCallback":"Îñòàâèòü çàÿâêó <br> íà îáðàòíûé çâîíîê","callbackTime":"Ïåðåçâîíèì áåñïëàòíî</br>çà&nbsp;{time}&nbsp;ñåêóíä","callbackNotWorkingTime":"Ìåíåäæåð ñâÿæåòñÿ ñ âàìè â {time}","callingProcess":"Ìû óæå çâîíèì âàì!","callMe":"ÆÄÓ ÇÂÎÍÊÀ","widget":"Âèäæåò"},"widget_v2":{"incorrectWebsite":"Çâîíîê çàïðîøåí ñ íåâåðíîãî ñàéòà.","callbackIsPlaned":"Çâîíîê íà âàø íîìåð óæå çàïëàíèðîâàí.","callbackIsAlready":"Íà äàííûé íîìåð óæå îñóùåñòâëÿåòñÿ çâîíîê.","tooManyRequestNumber":"Ñëèøêîì ìíîãî çâîíêîâ ñ âàøåãî íîìåðà.</br>Ïîïðîáóéòå ïîâòîðèòü ïîçæå.","tooManyRequestIp":"Ñëèøêîì ìíîãî çâîíêîâ ñ âàøåãî IP</br>àäðåñà. Ïîïðîáóéòå ïîâòîðèòü ïîçæå.","countryDisabled":"Ê ñîæàëåíèþ, ìû íå ìîæåì ïîçâîíèòü â ýòó ñòðàíó.","acceptRequest":"Âàøà çàÿâêà ïðèíÿòà </br> Ñïàñèáî çà îáðàùåíèå â íàøó êîìïàíèþ! </br> Ìû ñêîðî ñâÿæåìñÿ ñ âàìè.","thankYouWorkingTime":"Ñïàñèáî çà îáðàùåíèå â íàøó êîìïàíèþ!</br> Ìû ñâÿæåìñÿ ñ âàìè â ðàáî÷åå âðåìÿ.","thankYou":"Ñïàñèáî çà îáðàùåíèå</br> â íàøó êîìïàíèþ!","workdayEnd":"Ê ñîæàëåíèþ, ìû óæå íå ðàáîòàåì. ","requestCallback":"Îñòàâèòü çàÿâêó <br> íà îáðàòíûé çâîíîê","callbackTime":"Ïåðåçâîíèì áåñïëàòíî <br><b style=\"white-space:nowrap\"> çà&nbsp;{time}&nbsp;ñåêóíä</b>","callbackNotWorkingTime":"</br>Ìåíåäæåð ñâÿæåòñÿ ñ âàìè â {time}"},"widget_v3":{"incorrectWebsite":"Çâîíîê çàïðîøåí ñ íåâåðíîãî ñàéòà.","callbackIsPlaned":"Çâîíîê íà âàø íîìåð óæå</br>çàïëàíèðîâàí.","callbackIsAlready":"Íà äàííûé íîìåð óæå îñóùåñòâëÿåòñÿ çâîíîê.","tooManyRequestNumber":"Ñëèøêîì ìíîãî çâîíêîâ</br>ñ âàøåãî íîìåðà. Ïîïðîáóéòå</br>ïîâòîðèòü ïîçæå.","tooManyRequestIp":"Ñëèøêîì ìíîãî çâîíêîâ</br>ñ âàøåãî IP àäðåñà. Ïîïðîáóéòå</br>ïîâòîðèòü ïîçæå","countryDisabled":"Ê ñîæàëåíèþ, ìû íå ìîæåì ïîçâîíèòü â ýòó ñòðàíó.","acceptRequest":"Âàøà çàÿâêà ïðèíÿòà </br> Ñïàñèáî çà îáðàùåíèå â íàøó êîìïàíèþ!</br> Ìû ñêîðî ñâÿæåìñÿ ñ âàìè.","thankYouWorkingTime":"Ñïàñèáî çà îáðàùåíèå â íàøó êîìïàíèþ!</br> Ìû ñâÿæåìñÿ ñ âàìè â ðàáî÷åå âðåìÿ.","thankYou":"Ñïàñèáî çà îáðàùåíèå</br>â íàøó êîìïàíèþ!","workdayEnd":"Ê ñîæàëåíèþ, ìû óæå</br> íå ðàáîòàåì. ","requestCallback":"Îñòàâèòü çàÿâêó <br>
1486 íà îáðàòíûé çâîíîê","callbackTime":"Ïåðåçâîíèì áåñïëàòíî","callbackNotWorkingTime":"</br>Ìåíåäæåð ñâÿæåòñÿ ñ âàìè</br>â {time}"}},
1487leadpolicytimespent: 15,
1488leadpolicypagesviewed: 3,
1489leadpolicyleft: true,
1490wsProtocol: 'wss://'
1491    };
1492
1493    var mcData = cfg.mc || {},
1494        calldirections = [],
1495        countriesList = cfg.countriesList || [],
1496        countryNames = mcData.countries || {countries: {}};
1497
1498    if (cfg.calldirection) {
1499        calldirections = JSON.parse(cfg.calldirection.toLowerCase());
1500    }
1501
1502    // óäàëÿåì ãðóïïèðîâêó ñòðàí ïî êîíòèíåíòàì
1503    countriesList = countriesList.reduce(function (acc, x) {
1504        return acc.concat(x.countries);
1505    }, []);
1506
1507    var _conn, metrika;
1508
1509    var $selectedCountryWrapper = null,
1510        $selectedCountry = null,
1511        $list = null,
1512        selectedCountryCode = cfg.selectedCountryCode,
1513        sortedCountries = [],
1514        currentCountryDisabled = false;
1515
1516    var mc = function(path, params) {
1517        if (path.includes("widget_v") && !getMcData(path)) {
1518            path = path.replace(/widget_v(\d)./g, "widget.");
1519        }
1520        var mcData = getMcData(path);
1521        if (params && mcData) {
1522            return mcData.replace("{"+Object.keys(params)+"}", Object.values(params));
1523        } else {
1524            return mcData;
1525        }
1526    }
1527
1528    var getMcData = function(path) {
1529        var value = mcData,
1530            keysArr = path.split(".");
1531
1532        keysArr.forEach(function (key) {
1533            if (value[key]) {
1534                value = value[key]
1535            } else {
1536                value = undefined;
1537            }
1538        });
1539
1540        return value
1541    }
1542
1543    var APIConnection = function(url, hello) {
1544        var conn, seq = 0, ack = 0, lastSentAck = 0, sid, reqSeq = 0, reqCallbacks = {};
1545
1546        var self = this;
1547
1548        var unackedMessages;
1549
1550        function sendMessage(m) {
1551            if (conn) {
1552                var s = JSON.stringify(m);
1553                if (self.debugOut) {
1554                    self.debugOut(m);
1555                }
1556                conn.send(s);
1557            }
1558        }
1559        function onOpen(event) {
1560            var h;
1561            if (sid) {
1562                h = {
1563                    sid: sid,
1564                    ack: ack
1565                };
1566                if (unackedMessages && unackedMessages.length > 0) {
1567                    h.seq = unackedMessages[0].seq;
1568                    var payloads = [];
1569                    for (var i = 0; i < unackedMessages.length; i++) {
1570                        payloads.push(unackedMessages[i].payload);
1571                    }
1572                    h.payloads = payloads;
1573                }
1574            } else {
1575                h = hello;
1576            }
1577            sendMessage(h);
1578        }
1579        function onClose(event) {
1580            if (sid && self.ondisconnect) {
1581                self.ondisconnect();
1582            }
1583            conn = undefined;
1584        }
1585        function onError(event) {
1586            if (self.onError) {
1587                self.onError(event);
1588            }
1589        }
1590        function receivePayload(d) {
1591            removeAcked(d.ack);
1592            if (d.payloads) {
1593                var curSeq = d.seq;
1594                for (var i = 0; i < d.payloads.length; i++) {
1595                    if (curSeq > ack) {
1596                        processPayload(d.payloads[i]);
1597                        ack = curSeq;
1598                        curSeq++;
1599                    }
1600                }
1601            } else {
1602                if (d.seq > ack) {
1603                    if (d.payload) {
1604                        processPayload(d.payload);
1605                    }
1606                    ack = d.seq;
1607                }
1608            }
1609            if (ack - lastSentAck > 4) {
1610                sendMessage({ack: ack});
1611                lastSentAck = ack;
1612            }
1613
1614        }
1615        function processPayload(p) {
1616            if (!p) return;
1617            switch(p.What) {
1618            case "request":
1619                if (self.onrequest) {
1620                    var resp = self.onrequest(p[""]);
1621                    self.send({What: "response", id: p.id, "": resp});
1622                }
1623                break;
1624            case "response":
1625                if (p.id != null) {
1626                    var cb = reqCallbacks[p.id];
1627                    if (cb) {
1628                        cb(p[""]);
1629                        delete reqCallbacks[p.id];
1630                    }
1631                }
1632                break;
1633            default:
1634                if (self.onMessage) {
1635                    self.onMessage(p);
1636                }
1637                break;
1638            }
1639        }
1640        function handleMessage(event) {
1641            if (self.debugIn) {
1642                self.debugIn(event.data);
1643            }
1644            var d = JSON.parse(event.data);
1645            if (d.bye) {
1646                sid = undefined;
1647                ack = 0;
1648                seq = 0;
1649                lastSentAck = 0;
1650                unackedMessages = undefined;
1651                if (self.onClose) {
1652                    self.onClose();
1653                }
1654            } else {
1655                receivePayload(d)
1656            }
1657        }
1658        function handleHelloResponse(event) {
1659            if (self.debugIn) {
1660                self.debugIn(event.data);
1661            }
1662            var d = JSON.parse(event.data);
1663            if (d.status === "ok") {
1664                if (self.onConnected) {
1665                    self.onConnected();
1666                }
1667                if (d.sid) {
1668                    sid = d.sid;
1669                } else {
1670                    receivePayload(d);
1671                }
1672                conn.onmessage = handleMessage;
1673            } else if (d.status === "error" && d.error === "Invalid session") {
1674                sid = null;
1675                if (hello && hello.sid) {
1676                    delete hello.sid;
1677                }
1678                setTimeout(self.connect, 200)
1679            }
1680        }
1681        function removeAcked(ack) {
1682            if (unackedMessages && unackedMessages.length > 0) {
1683                if (unackedMessages[unackedMessages.length - 1].seq <= ack) {
1684                    unackedMessages = undefined;
1685                } else {
1686                    while (unackedMessages.length > 0 && unackedMessages[0].seq <= ack) {
1687                        unackedMessages.shift();
1688                    }
1689                }
1690            }
1691        }
1692        self.connect = function() {
1693            try {
1694                if (!conn) {
1695                    conn = new WebSocket(url);
1696                    conn.onopen = onOpen;
1697                    conn.onmessage = handleHelloResponse;
1698                    conn.onclose = onClose;
1699                    conn.onerror = onError;
1700                }
1701            } catch (e) {
1702                onError(e)
1703            }
1704        };
1705        self.send = function(payload) {
1706            seq++;
1707            var m = {
1708                seq: seq,
1709                ack: ack,
1710                payload: payload
1711            };
1712            lastSentAck = ack;
1713            if (unackedMessages) {
1714                unackedMessages.push(m);
1715            } else {
1716                unackedMessages = [ m ];
1717            }
1718            sendMessage(m);
1719        };
1720        self.sendRequest = function(request, callback) {
1721            if (typeof(callback) === "function") {
1722                var reqId = reqSeq++;
1723                var payload = {What: "request", id: reqId, "": request};
1724                reqCallbacks[reqId] = callback;
1725                self.send(payload);
1726            } else {
1727                self.send(request);
1728            }
1729        };
1730        self.disconnect = function() {
1731            conn.close();
1732            conn = undefined;
1733        }
1734    };
1735
1736    var icaret = {
1737        caret : function(input, begin, end) {
1738            if (typeof begin === 'number') {
1739                end = (typeof end === 'number') ? end : begin;
1740
1741                if (input.setSelectionRange) {
1742                    input.setSelectionRange(begin, end)
1743                } else if (input.createTextRange) {
1744                    var range = input.createTextRange()
1745                    range.collapse(true);
1746                    range.moveEnd('character', end);
1747                    range.moveStart('character', begin);
1748                    range.select();
1749                }
1750                return
1751            }
1752
1753            if (input.setSelectionRange) {
1754                begin = input.selectionStart;
1755                end = input.selectionEnd;
1756            } else if (d.selection && d.selection.createRange) {
1757                var range = d.selection.createRange();
1758                begin = 0 - range.duplicate().moveStart('character', -100000);
1759                end = begin + range.text.length;
1760            }
1761            return  { begin: begin, end: end }
1762        },
1763
1764
1765        shiftR : function(pos) {
1766            var i, c, j, t
1767
1768            c = this.getPlaceHolder(pos)
1769            for (i = pos; i < this.len; i++) {
1770                if (!this.tests[i])
1771                    continue
1772
1773                j = this.seekNext(i)
1774                t = this.buffer[i]
1775
1776                this.buffer[i] = c
1777                if (j < this.len && this.tests[j].test(t)) {
1778                    c = t
1779                } else {
1780                    break
1781                }
1782            }
1783        },
1784
1785        clearBuffer : function(start, end) {
1786            var i
1787
1788            if (!start || !end) {
1789                this.buffer = []
1790            } else {
1791                for (i = start; i < end && i < this.len; i++) {
1792                    if (!this.tests[i])
1793                        continue
1794
1795                    this.buffer[i] = Number(this.getPlaceHolder(i)) >= 0 ? '' : this.getPlaceHolder(i)
1796                }
1797            }
1798        },
1799
1800        shiftL : function(begin, end) {
1801            var i, j
1802
1803            if (begin < 0)
1804                return
1805
1806            j = this.seekNext(end)
1807            for (i = begin; i < this.len; i++) {
1808                if (!this.tests[i])
1809                    continue
1810
1811                if (j < this.len && this.tests[i].test(this.buffer[j])) {
1812                    this.buffer[i] = this.buffer[j]
1813                    this.buffer[j] = Number(this.getPlaceHolder(j)) ? '' : this.getPlaceHolder(j)
1814                } else {
1815                    break
1816                }
1817
1818                j = this.seekNext(j)
1819            }
1820
1821            this.writeBuffer()
1822        },
1823
1824        initBuffer : function() {
1825            this.len = this.placeHolder.length
1826            this.rx = new RegExp('[0-9]')
1827            this.tests = []
1828
1829            var dgts = this.placeHolder.split('')
1830            for (var x in dgts)  {
1831                if (dgts[x] == '_' || Number(dgts[x]) >= 0) {
1832                    this.tests.push(new RegExp('[0-9]'))
1833                    if (this.firstNonMaskPos === null)
1834                        this.firstNonMaskPos = x
1835                } else {
1836                    this.tests.push(null)
1837                }
1838
1839                this.buffer[x] = this.getPlaceHolder(x)
1840            }
1841        },
1842
1843        seekNext : function(pos) {
1844            while (++pos < this.len && !this.tests[pos]);
1845            return pos;
1846        },
1847
1848        seekPrev : function(pos) {
1849            while (--pos >= 0 && !this.tests[pos]);
1850            return pos;
1851        },
1852
1853        getPlaceHolder : function(i) {
1854            if (i < this.placeHolder.length)
1855                return this.placeHolder.charAt(i)
1856
1857            return this.placeHolder.charAt(0)
1858        },
1859
1860        checkVal : function(input, allow) {
1861            var test = input.value
1862            var lastMatch = -1
1863            var i, c, pos
1864
1865            for (i = 0, pos = 0; i < this.len; i++) {
1866                if (this.tests[i]) {
1867                    this.buffer[i] = this.getPlaceHolder(i)
1868                    while (pos++ < test.length) {
1869                        c = test.charAt(pos - 1)
1870                        if (this.tests[i].test(c)) {
1871                            this.buffer[i] = c
1872                            lastMatch = i
1873                            break
1874                        }
1875                    }
1876
1877                    if (pos > test.length) {
1878                        this.clearBuffer(i + 1, this.len)
1879                        break
1880                    }
1881                } else {
1882                    if (this.buffer[i] === test.charAt(pos))
1883                        pos++
1884
1885                    if (i < this.len)
1886                        lastMatch = i
1887                }
1888            }
1889
1890            if (allow) {
1891                this.writeBuffer()
1892            } else if (lastMatch + 1 < this.len) {
1893                if (input.value)
1894                    input.value = ''
1895
1896                this.clearBuffer(0, this.len)
1897            } else {
1898                this.writeBuffer()
1899                input.value = input.value.substring(0, lastMatch + 1)
1900            }
1901
1902            return i
1903        },
1904
1905        buffer : [],
1906
1907        writeBuffer : function() {
1908            var inp = f.getElement('itlcb-input');
1909            currentCountryDisabled = $selectedCountry.classList.contains('disabled');
1910
1911            inp.value = this.buffer.join('');
1912
1913            if (this.isValidValue(inp) && !currentCountryDisabled)
1914                f.enableCallButton();
1915            else
1916                f.disableCallButton();
1917        },
1918
1919        isValidValue: function(input) {
1920            var rex;
1921
1922            rex = cfg.phonePattern.replace(/_/g, '\\d');
1923            rex = rex.replace('(', '\\(');
1924            rex = rex.replace(')', '\\)');
1925            rex = rex.replace('+', '\\+');
1926            rex = new RegExp('^' + rex + '$');
1927
1928            return rex.test(input.value);
1929        },
1930
1931        placeHolder: cfg.phonePattern,
1932        firstNonMaskPos: null,
1933        len : -1,
1934        oldVal : ''
1935    };
1936
1937    var Metrika = function() {
1938        var yandex = (function() {
1939            var array = [], counters;
1940            if (typeof ym === 'function') {
1941                for (var i in ym.a) {
1942                    counters = ym.a[i];
1943                    if (counters[1] === 'init') {
1944                        array.push(counters[0]);
1945                    }
1946                }
1947                return function(name) {
1948                    for (var i in array)
1949                        ym(array[i], 'reachGoal', String(name));
1950                };
1951            }
1952            return;
1953        })();
1954        var google = (function() {
1955            var category = 'Callback';
1956            if (typeof gtag === 'function') {
1957                return function(name) {
1958                    gtag('event', String(name), {'event_category': category});
1959                };
1960            } else if (typeof ga === 'function') {
1961                return function(name) {
1962                    ga('send', 'event', category, String(name));
1963                };
1964            }
1965            return;
1966        })();
1967
1968        this.addGoal = function(name) {
1969            if (typeof yandex === 'function') {
1970                yandex(name);
1971            }
1972            if (typeof google === 'function') {
1973                google(name);
1974            }
1975        };
1976    };
1977
1978    var f = {
1979
1980        ua : '',
1981
1982        isAndroid : false,
1983        isChrome : false,
1984        isIe: false,
1985
1986        callTimer: null,
1987
1988        timeSpent : 0,
1989        pagesViewed : 0,
1990
1991        left: false,
1992        step: 1,
1993        typeAnimation: null,
1994
1995        appendStyle : function() {
1996            /*  https://kb.itoolabs.com/pages/viewpage.action?pageId=65177102  */
1997            var style = document.createElement("style");
1998            style.type = "text/css";
1999            style.innerHTML = "" +
2000                "@font-face {\n" +
2001                "  font-family: 'cb-icons';\n" +
2002                "  src: url('" + cfg.mediaPath + "/cb-icons.ttf') format('truetype');\n" +
2003                "}";
2004            document.getElementsByTagName("head")[0].appendChild(style);
2005
2006            var countryList = d.createElement('link');
2007            countryList.type = 'text/css';
2008            countryList.rel = 'stylesheet';
2009            countryList.media = 'all';
2010            countryList.href = cfg.mediaPath + '/media/callback/css/country-selectbox.css';
2011            d.body.insertBefore(countryList, d.body.lastChild);
2012
2013            var e = d.createElement('link');
2014            e.type = 'text/css';
2015            e.rel = 'stylesheet';
2016            e.media = 'all';
2017            e.href = cfg.mediaPath + '/media/callback/css/widget' + cfg.widgetcode + '.css';
2018            d.body.insertBefore(e, d.body.lastChild);
2019        },
2020
2021        getElement : function(id) {
2022            return d.getElementById(id)
2023        },
2024
2025        removeClass: function(mobj, classes) {
2026            var i;
2027            var cArray = classes.split(/[\s]+/);
2028
2029            for (i = 0; i < cArray.length; i ++) {
2030                if (mobj.classList) {
2031                    mobj.classList.remove(cArray[i]);
2032                } else {
2033                    var rx = new RegExp('(^|\\b)' + cArray[i].split(' ').join('|') + '(\\b|$)', 'gi');
2034                    mobj.className = mobj.className.replace(rx, ' ');
2035                }
2036            }
2037        },
2038
2039        addClass: function(mobj, classes) {
2040            var i;
2041            var cArray = classes.split(/[\s]+/);
2042
2043            for (i = 0; i < cArray.length; i++) {
2044                if (f.hasClass(mobj, cArray[i]))
2045                    continue;
2046
2047                if (mobj.classList) {
2048                    mobj.classList.add(cArray[i]);
2049                } else {
2050                    mobj.className += ' ' + cArray[i];
2051                }
2052            }
2053
2054        },
2055
2056        hasClass: function(mobj, className) {
2057            if (mobj.classList)
2058                return mobj.classList.contains(className)
2059
2060            var rx = new RegExp('(^| )' + className + '( |$)', 'gi');
2061
2062            return rx.test(mobj.className)
2063        },
2064
2065        on: function(el, myevent, func) {
2066            if (el.addEventListener) {
2067                el.addEventListener(myevent, func);
2068            } else {
2069                el.attachEvent('on' + myevent, func);
2070            }
2071        },
2072
2073        trigger: function(el, myevent, evobj, data) {
2074            var c, e;
2075
2076            if (d.dispatchEvent) {
2077                switch (myevent) {
2078                case 'click':
2079                case 'mousedown':
2080                case 'mouseup':
2081                    e = 'MouseEvents';
2082                    break;
2083                case 'keyup':
2084                    e = 'KeyboardEvent';
2085                    break;
2086                case 'focus':
2087                case 'change':
2088                case 'blur':
2089                case 'select':
2090                default:
2091                    e = 'HTMLEvents';
2092                }
2093
2094                if (!evobj) {
2095                    c = d.createEvent(e);
2096
2097                    c.initEvent(myevent, myevent != 'change', true);
2098                    c.synthetic = true;
2099                    c.view = window;
2100                    c.altKey = false;
2101                    c.ctrlKey = false;
2102                    c.shiftKey = false;
2103                    c.metaKey = false;
2104                    c.keyCode = data.charCodeAt(0)
2105                } else
2106                    c = evobj;
2107
2108                el.dispatchEvent(c, true, true);
2109            }
2110        },
2111
2112        getOptionForAnimation: function(settings) {
2113            var option = "", side = "";
2114            if (settings && settings.positionButton && settings.positionWidget) {
2115                side = settings.positionButton.match(/(right|left)/)[0];
2116                settings = String(settings.positionWidget) + "-" + side;
2117            }
2118
2119            if (settings === "1-left" || settings === "1-right") {
2120                option = "bottom";
2121            } else if (settings === "2") {
2122                option = "opacity";
2123            } else if (settings === "3-right") {
2124                option = "right";
2125            } else if (settings === "3-left") {
2126                option = "left";
2127            }
2128
2129            return option;
2130        },
2131
2132        hide: function(elemId) {
2133            var el = this.getElement(elemId);
2134
2135            var animation = function(settings) {
2136                var option = f.getOptionForAnimation(settings);
2137
2138                el.style.transition = "all 100ms linear";
2139                if (option === "opacity") {
2140                    el.style.opacity = 0;
2141                    el.style.visibility = "hidden";
2142                } else if (option === "right") {
2143                    el.style.right = "-" + el.offsetWidth + "px";
2144                    el.style.visibility = "hidden";
2145                } else if (option === "left") {
2146                    el.style.left = "-" + el.offsetWidth + "px";
2147                    el.style.visibility = "hidden";
2148                } else if (option === "bottom") {
2149                    el.style.bottom = "-" + el.offsetHeight + "px";
2150                    el.style.visibility = "hidden";
2151                } else {
2152                    el.style.transition = "";
2153                    el.style.visibility = "hidden";
2154                }
2155            };
2156            animation();
2157            return { animation: animation };
2158        },
2159        show: function(elemId) {
2160            var el = this.getElement(elemId);
2161            el.style.visibility = "visible";
2162
2163            var animation = function(settings) {
2164                var option = f.getOptionForAnimation(settings);
2165
2166                el.style.transition = "all 100ms linear";
2167                if (option === "opacity") {
2168                    el.style.opacity = 1;
2169                } else if (option === "right") {
2170                    el.style.right = "0px";
2171                } else if (option === "left") {
2172                    el.style.left = "0px";
2173                } else if (option === "bottom") {
2174                    el.style.bottom = "20px";
2175                }
2176            };
2177            return { animation: animation };
2178        },
2179
2180        trim: function(val) {
2181            return val.replace(/^[\s\uFEFF]+|[\s\uFEFF]+$/g, 'qqq')
2182        },
2183
2184        setCookie: function(name, value, seconds) {
2185            var expires = '';
2186            if (seconds) {
2187                var date = new Date();
2188                date.setTime(date.getTime() + (seconds * 1000));
2189                expires = '; expires=' + date.toUTCString();
2190            }
2191
2192            document.cookie = name + '=' + (value || '')  + expires + '; path=/';
2193        },
2194
2195        getCookie: function(name) {
2196            var nameEQ = name + '=';
2197            var ca = document.cookie.split(';');
2198
2199            for (var i=0; i < ca.length; i++) {
2200                var c = ca[i];
2201                while (c.charAt(0)==' ')
2202                    c = c.substring(1, c.length);
2203
2204                if (c.indexOf(nameEQ) == 0)
2205                    return c.substring(nameEQ.length, c.length);
2206            }
2207
2208            return null;
2209        },
2210
2211        setPositionCallback: function(position) {
2212            var elStyle = this.getElement('itlcb-call-btn').style;
2213            switch (position) {
2214            case "bottom-right":
2215                elStyle.cssText = 'right: 0px; bottom: 0px;';
2216                break;
2217            case "bottom-left":
2218                elStyle.cssText = 'left: 0px; bottom: 0px;';
2219                break;
2220            case "top-right":
2221                elStyle.cssText = 'right: 0px; top: 0px;';
2222                break;
2223            case "top-left":
2224                elStyle.cssText = 'left: 0px; top: 0px;';
2225                break;
2226            default:
2227                elStyle.cssText = 'right: 0px; bottom: 0px;';
2228            }
2229        },
2230        setColors: function() {
2231            var colors = JSON.parse(cfg.colors) || {};
2232            var $btn = this.getElement("itlcb-call-btn");
2233            var $btnCall = this.getElement("itlcb-do-call");
2234            this.addClass($btnCall, cfg.lang);
2235            var $popup = document.querySelectorAll(".itlcb-widget-body, .itlcb-call-info-block, .itlcb-close-cross");
2236            var $text = document.querySelectorAll(".itlcb-widget-body *:not(.itlcb-phone-input), .itlcb-call-info-block *");
2237            var shadeColor2 = function(color, percent) {
2238                var f=parseInt(color.slice(1),16),t=percent<0?0:255,p=percent<0?percent*-1:percent,R=f>>16,G=f>>8&0x00FF,B=f&0x0000FF;
2239                return "#"+(0x1000000+(Math.round((t-R)*p)+R)*0x10000+(Math.round((t-G)*p)+G)*0x100+(Math.round((t-B)*p)+B)).toString(16).slice(1);
2240            };
2241
2242            var style = document.createElement("style"),
2243                iconCloseStyle = parseInt(cfg.widgetcode) === 1 ? "background-color" : "color";
2244            style.type = "text/css";
2245
2246            style.innerHTML =
2247                "#itlcb-wrapper.itlcb-opened .itlcb-call-btn.background-callback  { background-color: " + colors.button + "; } \n" +
2248                "#itlcb-wrapper.itlcb-opened .itlcb-form-call-btn.itlcb-btn-disabled.background-callback  { background-color: " + shadeColor2(colors.button, -0.1) + "; box-shadow: 0 2px 0 0 " + shadeColor2(colors.button, -0.3) + ";} \n" +
2249                "#itlcb-wrapper.itlcb-opened .itlcb-form-call-btn.background-callback { background-color: " + colors.button + "; box-shadow: 0 2px 0 0 " + shadeColor2(colors.button, -0.3) + "; } \n" +
2250                "#itlcb-wrapper.itlcb-opened #itlcb-do-call.background-callback:not(.itlcb-btn-disabled):hover { box-shadow: 0 2px 0 0 " + shadeColor2(colors.button, -0.3) + "; } \n" +
2251                "#itlcb-wrapper.itlcb-opened #itlcb-do-call.background-callback:not(.itlcb-btn-disabled):active { background-color: " + colors.button + "; box-shadow: 0 -2px 0 0 " + shadeColor2(colors.button, -0.3) + "; } \n" +
2252                "#itlcb-wrapper.itlcb-opened .itlcb-close-cross:hover  { " + iconCloseStyle + ": " + colors.button + "!important; } \n";
2253
2254
2255            document.getElementsByTagName("head")[0].appendChild(style);
2256
2257            if (colors.button) {
2258                this.addClass($btn, "background-callback");
2259                this.addClass($btnCall, "background-callback");
2260            }
2261            if (colors.popup && colors.text) {
2262                for (var i = 0; i < $popup.length; i++) {
2263                    $popup[i].style.backgroundColor = colors.popup;
2264                }
2265                for (var i = 0; i < $text.length; i++) {
2266                    $text[i].style.color = colors.text;
2267                }
2268            }
2269        },
2270        setPositionWidget: function(positionButton) {
2271            var elStep2 = this.getElement('itlcb-step2'),
2272                elStep3 = this.getElement('itlcb-step3'),
2273                elStep4 = this.getElement('itlcb-step4'),
2274                side = positionButton.match(/(right|left)/)[0] || "right";
2275            if (side === "left") {
2276                this.addClass(elStep2, "left");
2277                this.addClass(elStep3, "left");
2278                this.addClass(elStep4, "left");
2279            }
2280        },
2281        initWidget : function() {
2282            if (!cfg.enabled) return;
2283            this.ua = navigator.userAgent;
2284            this.isAndroid = /android/i.test(this.ua);
2285            this.isChrome = /chrome/i.test(this.ua);
2286            this.isIe = /MSIE/i.test(this.ua) || /NT/i.test(this.ua);
2287            this.isSafari = /safari/i.test(this.ua);
2288            this.isMobile = /mobile/i.test(this.ua);
2289            this.left = false;
2290            this.typeAnimation = { positionButton: cfg.callbutton, positionWidget: cfg.widgetcode };
2291
2292            metrika = new Metrika();
2293
2294            var handleChangeRegion = function (e) {
2295                changeCountry(e.currentTarget.dataset)
2296                f.removeClass($list, 'active');
2297            };
2298
2299            var changeCountry = function (country) {
2300                var validPattern = !input.value.replace(/\D/g,'').indexOf(cfg.phonePattern.replace(/\D/g,''));
2301
2302                if (!country && !validPattern) {
2303                    if (selectedCountryCode) {
2304                        f.removeClass($selectedCountry, selectedCountryCode);
2305                    }
2306                    f.removeClass($selectedCountry, 'disabled');
2307                    f.removeClass($selectedCountry.parentElement, 'disabled');
2308
2309                    f.addClass($selectedCountry, 'not-found');
2310                    f.addClass($selectedCountry.parentElement, 'not-found');
2311                    $selectedCountry.parentElement.removeAttribute('data-before');
2312                } else if (country.phonePattern) {
2313                    icaret.placeHolder = country.phonePattern;
2314                    cfg.phonePattern = country.phonePattern;
2315                    icaret.clearBuffer();
2316                    icaret.initBuffer();
2317                    icaret.writeBuffer();
2318
2319                    if ($selectedCountry.classList.contains('not-found')) {
2320                        f.removeClass($selectedCountry.parentElement, 'not-found');
2321                        f.removeClass($selectedCountry, 'not-found');
2322                    }
2323
2324                    if (selectedCountryCode) {
2325                        // åñëè ðàííåå óæå áûëà âûáðàíà ñòðàíà, äåëàåì åå íåàêòèâíîé
2326                        setCountryListElementStatus(selectedCountryCode, true);
2327                        f.removeClass($selectedCountry, selectedCountryCode);
2328                    }
2329
2330                    selectedCountryCode = country.isoCode;
2331                    f.addClass($selectedCountry, selectedCountryCode);
2332                    if (country.disabled) {
2333                        f.addClass($selectedCountry, 'disabled');
2334                        f.addClass($selectedCountry.parentElement, 'disabled');
2335                        $selectedCountry.parentElement.setAttribute('data-before', mc("widget.countryDisabled"));
2336                    } else {
2337                        f.removeClass($selectedCountry, 'disabled');
2338                        f.removeClass($selectedCountry.parentElement, 'disabled');
2339                        $selectedCountry.parentElement.setAttribute('data-before', countryNames[country.isoCode]);
2340                        fillListDirections(countriesList, true);
2341                        setCountryListElementStatus(country.isoCode);
2342                    }
2343                }
2344            }
2345
2346            var findFirstCountry = function (inputValue) {
2347                var searchRegExp = /_/g;
2348                var countryCode = inputValue.split(' ')[0];
2349                countryCode = countryCode.replace(searchRegExp, "");
2350
2351                if (countryCode.length < 1) return false;
2352
2353                var resultList = countriesList.filter(function (item) {
2354                    return item.phoneCode === inputValue.replace(/\D/g,'');
2355                }).sort(function (a,b) { return a.phoneCode.length - b.phoneCode.length });
2356
2357                return resultList[0] ? resultList[0] : false;
2358            }
2359
2360            var fillListDirections = function (redraw) {
2361                var listAcc = [];
2362                sortedCountries = countriesList.sort(function ( a, b ) {
2363                    if (countryNames[a.isoCode]) {
2364                        return countryNames[a.isoCode].localeCompare(countryNames[b.isoCode]);
2365                    }
2366                    return 0;
2367                });
2368                if (redraw) {
2369                    while ($list.firstChild) {
2370                        $list.removeChild($list.firstChild)
2371                    }
2372                }
2373                sortedCountries.forEach(function (item, i) {
2374                    var isCountryNotAvailable = !calldirections.filter(function (isoCode) {
2375                        return item.isoCode === isoCode;
2376                    }).length;
2377
2378                    if (isCountryNotAvailable) {
2379                        sortedCountries[i].disabled = true;
2380                        return;
2381                    }
2382
2383                    var foundedDuplicates = !!listAcc.filter(function (accItem) {
2384                        // íå îòðèñîâûâàåì äóáëè ñòðàí ñ îäèíàêîâûìè êîäàìè, íî ðàçíûìè ìàñêàìè
2385                        return accItem.isoCode === item.isoCode
2386                    }).length;
2387                    if (foundedDuplicates) return;
2388
2389                    var li = d.createElement('li'),
2390                        icon = d.createElement('i'),
2391                        name = d.createElement('span');
2392
2393                    name.innerHTML = countryNames[item.isoCode];
2394
2395                    f.addClass(li, "itlcb-list-element");
2396                    f.addClass(icon, "itlcb-flag " + item.isoCode);
2397                    f.addClass(name, "itlcb-name");
2398
2399                    li.setAttribute('data-iso-code', item.isoCode);
2400                    li.setAttribute('data-phone-pattern', item.phonePattern);
2401                    li.appendChild(icon);
2402                    li.appendChild(name);
2403                    this.on(li, 'click', handleChangeRegion);
2404                    $list.appendChild(li);
2405
2406                    listAcc.push(item);
2407                }.bind(this));
2408
2409                $selectedCountry.parentElement.setAttribute('data-before', countryNames[selectedCountryCode]);
2410                setCountryListElementStatus(selectedCountryCode);
2411            }.bind(this);
2412
2413            var setCountryListElementStatus = function(selectedCountryCode, remove) {
2414                var $listElement = $list.querySelector('.itlcb-list-element[data-iso-code="'+ selectedCountryCode + '"]');
2415                if (!$listElement) return;
2416
2417                if (remove) {
2418                    f.removeClass($listElement, 'active');
2419                } else {
2420                    $list.insertAdjacentElement('afterbegin', $listElement);
2421                    // ñêðîëë ê âûáðàííîìó âåðõíåìó ýëåìåíòó
2422                    $list.scrollTo(0, 0);
2423                    f.addClass($listElement, 'active');
2424                }
2425            }
2426
2427            var staleDiv = this.getElement('itlcb-wrapper');
2428            if (staleDiv != null)
2429                d.body.removeChild(staleDiv);
2430
2431            var div = d.createElement('div');
2432
2433            div.setAttribute('id', 'itlcb-wrapper');
2434            this.addClass(div, 'itlcb-opened');
2435
2436            div.insertAdjacentHTML('beforeend', cfg.html);
2437            d.body.appendChild(div);
2438
2439            this.setPositionCallback(cfg.callbutton);
2440            this.setPositionWidget(cfg.callbutton);
2441
2442            $selectedCountryWrapper = this.getElement('itlcb-flag-selected-wrapper');
2443            $selectedCountry = this.getElement('itlcb-flag-selected');
2444            $list = this.getElement('itlcb-flags-list');
2445
2446            if (this.isIe) {
2447                f.addClass($selectedCountryWrapper, 'agent-ie');
2448            }
2449
2450            this.setColors();
2451            this.on(this.getElement('itlcb-call-btn'), 'click', function (e) {
2452                f.showStep(2);
2453                input.focus();
2454                metrika.addGoal("ITL_CALLBACK_OPEN");
2455            });
2456            this.on(this.getElement('itlcb-input'), 'click', function () {
2457                metrika.addGoal("ITL_CALLBACK_FILL");
2458            });
2459
2460            var closeBtnClick = function () {
2461                if (f.callTimer) f.callTimer.stop();
2462                f.showStep(1);
2463                metrika.addGoal("ITL_CALLBACK_CLOSE");
2464            };
2465
2466            f.addClass(this.getElement('itlcb-flag-selected'), selectedCountryCode);
2467
2468            this.on(this.getElement('itlcb-close-btn'), 'click', function() {closeBtnClick()});
2469            this.on(this.getElement('itlcb-close-btn2'), 'click', function() {closeBtnClick()});
2470            this.on(this.getElement('itlcb-close-btn3'), 'click', function() {closeBtnClick()});
2471            this.on(this.getElement('itlcb-bg-fill'), 'click', function (e) {closeBtnClick()});
2472
2473            var input = this.getElement('itlcb-input');
2474            icaret.initBuffer();
2475
2476            this.on(this.getElement('itlcb-do-call'), 'click', function (e) {
2477                if (!icaret.isValidValue(input)) return;
2478                if (currentCountryDisabled) return;
2479                metrika.addGoal("ITL_CALLBACK_CALL");
2480                f.initCall();
2481            });
2482
2483            this.on($selectedCountryWrapper, 'click', function () {
2484                if ($list.classList.contains('active')) {
2485                    f.removeClass($list, 'active');
2486                } else {
2487                    f.addClass($list, 'active');
2488                    $list.focus();
2489                }
2490            });
2491
2492            this.on($list, 'blur', function () {
2493                if ($list.classList.contains('active')) {
2494                    setTimeout(function () {
2495                        f.removeClass($list, 'active');
2496                    }, 200)
2497                }
2498            });
2499
2500            this.showStep(1);
2501
2502            // çàïîëíÿåì è îòðèñîâûâàåì ñïèñîê ñòðàí â äðîïäàóíå ïîñëå îòðèñîâêè ñàìîãî âèäæåòà
2503            fillListDirections(countriesList);
2504            // óñòàíîâèòü ïàòòåðí òåêóùåé ñòðàíû ïî-óìîë÷àíèþ
2505            cfg.phonePattern = sortedCountries.filter(function (x) {
2506                return x.isoCode === selectedCountryCode
2507            })[0].phonePattern || cfg.phonePattern;
2508            icaret.placeHolder = cfg.phonePattern;
2509            icaret.clearBuffer();
2510            icaret.initBuffer();
2511
2512            this.on(input, 'paste', function(e) {
2513                setTimeout(function() {
2514                    var pos = icaret.checkVal(input, true);
2515                    icaret.caret(input, pos)
2516                }, 10)
2517            });
2518
2519            this.on(input, 'keypress', function(e) {
2520                var k = e.which || e.keyCode;
2521                var p, c, next;
2522
2523                if (e.ctrlKey || e.altKey || e.metaKey || k < 32)
2524                    return;
2525
2526                if (k === 13 || !k)
2527                    return;
2528
2529                var pos = icaret.caret(input);
2530
2531                if (pos.begin < 1) {
2532                    // íåëüçÿ óäàëÿòü èëè ïåðåçàïèñûâàòü åäèíñòâåííûé ñèìâîë +
2533                    pos.begin = 1
2534                }
2535
2536                if (pos.end - pos.begin !== 0) {
2537                    icaret.clearBuffer(pos.begin, pos.end);
2538                    icaret.shiftL(pos.begin, pos.end - 1);
2539                    icaret.caret(input, Math.max(icaret.firstNonMaskPos, pos.begin))
2540                }
2541
2542
2543                p = icaret.seekNext(pos.begin - 1);
2544                if (p < icaret.len) {
2545                    c = String.fromCharCode(k);
2546
2547                    if (icaret.tests[p].test(c)) {
2548                        icaret.shiftR(p);
2549                        icaret.buffer[p] = c;
2550
2551                        icaret.writeBuffer();
2552                        next = icaret.seekNext(p);
2553
2554                        var foundedCountry = findFirstCountry(input.value);
2555
2556                        if (foundedCountry) {
2557                            var defaultPattern = foundedCountry.phonePattern;
2558                            var digits = parseInt(input.value);
2559                            foundedCountry.phonePattern = defaultPattern.replace(/_/g,function(m,o) {return digits[o] || "_";});
2560                        }
2561                        changeCountry(foundedCountry, input.value)
2562                        icaret.caret(input, next)
2563                    }
2564                }
2565
2566                e.preventDefault()
2567            });
2568
2569            this.on(input, 'focus', function(e) {
2570                icaret.to = setTimeout(function() {
2571                    for (var i = 0; i < icaret.len; i++) {
2572                        if (icaret.buffer[i] === '_')
2573                            break;
2574                    }
2575
2576                    var pos = icaret.seekNext(i - 1);
2577                    icaret.caret(input, pos, pos)
2578                }, 60);
2579            });
2580
2581            this.on(input, 'click', function(e) {
2582                icaret.to = setTimeout(function() {
2583                    for (var i = 0; i < icaret.len; i++) {
2584                        if (icaret.buffer[i] == '_')
2585                            break;
2586                    }
2587
2588                    var pos = icaret.seekNext(i - 1)
2589                    icaret.caret(input, pos, pos)
2590                }, 60);
2591            });
2592
2593            this.on(input, 'blur', function(e) {
2594                clearTimeout(icaret.to)
2595            });
2596
2597            this.on(input, 'keydown', function(e) {
2598                var pos, begin, end;
2599                var evt = e || window.event;
2600                var keyCode = evt.keyCode;
2601                var curVal = input.value;
2602
2603                icaret.oldVal = curVal;
2604
2605                if (begin < 1) {
2606                    // íåëüçÿ óäàëÿòü åäèíñòâåííûé ñèìâîë +
2607                    begin = 1
2608                }
2609
2610                // left, right
2611                if (keyCode == 37 || keyCode == 39) {
2612                    e.preventDefault()
2613                }
2614                // bs, delete
2615                if (keyCode === 8 || keyCode === 46 || keyCode === 127) {
2616                    pos = icaret.caret(input);
2617
2618                    begin = pos.begin;
2619                    end = pos.end;
2620
2621                    if (begin < 1) {
2622                        // íåëüçÿ óäàëÿòü åäèíñòâåííûé ñèìâîë +
2623                        begin = 1
2624                    }
2625
2626                    if (end - begin === 0) {
2627                        begin = keyCode !== 46 ? icaret.seekPrev(begin) : (end = icaret.seekNext(begin - 1));
2628                        end = keyCode === 46 ? icaret.seekNext(end) : end
2629                    }
2630
2631                    icaret.clearBuffer(begin, end);
2632                    icaret.shiftL(begin, end - 1);
2633                    icaret.caret(input, Math.max(icaret.firstNonMaskPos, begin));
2634                    e.preventDefault();
2635                } else if (keyCode === 13) { // enter
2636                    if (!icaret.isValidValue(input)) return;
2637                    f.initCall();
2638                } else if (keyCode === 27) { //esc
2639                    f.showStep(1);
2640
2641                    e.preventDefault()
2642                }
2643            });
2644
2645            if ((this.isAndroid && this.isChrome) || (this.isMobile && this.isSafari)) {
2646                this.on(input, 'input', function(e) {
2647                    var curVal = input.value;
2648                    var pos = icaret.caret(input);
2649                    var p = pos.begin;
2650
2651                    if (icaret.oldVal && icaret.oldVal.length && icaret.oldVal.length > curVal.length) {
2652                        icaret.checkVal(input, true);
2653
2654                        while (p > 0 && !icaret.tests[p - 1]) {
2655                            p--;
2656                        }
2657
2658                        if (p === 0) {
2659                            while (p < icaret.firstNonMaskPos && !icaret.tests[p]) {
2660                                p++;
2661                            }
2662                        }
2663                    } else {
2664                        var lastEnteredValue = curVal.charAt(p);
2665                        icaret.checkVal(input, true);
2666                        if (p < icaret.len) {
2667                            if (!icaret.tests[p]) {
2668                                p = icaret.seekNext(p)
2669                            }
2670                            if (icaret.tests[p].test(lastEnteredValue)) {
2671                                p = icaret.seekNext(p)
2672                            }
2673                        }
2674                    }
2675
2676                    setTimeout(function () {
2677                        icaret.caret(input, p, p)
2678                    }, 10)
2679                })
2680            }
2681
2682            icaret.writeBuffer();
2683
2684            var cookie = f.getCookie('itl-cb-pages');
2685            if (!cookie) {
2686                f.setCookie('itl-cb-pages', '0', 0);
2687            } else {
2688                f.pagesViewed = parseInt(cookie);
2689            }
2690
2691            if (cfg.leadpolicytimespent > 0) {
2692                f.timeSpent = 0;
2693                var interVal = setInterval(function() {
2694                    f.timeSpent += 1;
2695                    if (f.timeSpent >= cfg.leadpolicytimespent) {
2696                        clearInterval(interVal);
2697                        if (f.step === 1) {
2698                            f.showStep(2);
2699                            metrika.addGoal("ITL_CALLBACK_SHOW");
2700                        }
2701                    }
2702                }, 1000)
2703            }
2704
2705            if (cfg.leadpolicypagesviewed > 0) {
2706                f.pagesViewed++;
2707                if (f.pagesViewed % cfg.leadpolicypagesviewed === 0) {
2708                    if (f.step === 1) {
2709                        f.showStep(2);
2710                        metrika.addGoal("ITL_CALLBACK_SHOW");
2711                    }
2712                }
2713                f.saveState();
2714            }
2715
2716            if (cfg.leadpolicyleft) {
2717                var mohandler = document.onmouseout;
2718                document.onmouseout = function(e) {
2719                    if (mohandler) mohandler(e);
2720                    if (f.left) return;
2721
2722                    var offset = window.pageYOffset;
2723                    var y = e.pageY;
2724
2725                    if (y < offset) {
2726                        if (f.step === 1) {
2727                            f.showStep(2);
2728                            f.left = true;
2729                            metrika.addGoal("ITL_CALLBACK_SHOW");
2730                        }
2731                    }
2732                }
2733            }
2734        },
2735
2736        saveState : function() {
2737            f.setCookie('itl-cb-pages', f.pagesViewed, 0);
2738        },
2739
2740        enableCallButton: function() {
2741            var button = f.getElement('itlcb-do-call');
2742
2743            f.removeClass(button, 'itlcb-btn-disabled');
2744        },
2745
2746        disableCallButton: function() {
2747            var button = f.getElement('itlcb-do-call');
2748
2749            f.addClass(button, 'itlcb-btn-disabled');
2750        },
2751
2752        setInfoMessage: function(msg) {
2753            var msgBlock = f.getElement('itlcb-info-msg');
2754
2755            msgBlock.innerHTML = msg;
2756        },
2757
2758        Timer: function(seconds, el) {
2759            var that = {
2760                el: el,
2761                seconds: seconds,
2762                totalTime: (seconds * 100) + 50,
2763                usedTime: 0,
2764                startTime: +new Date(),
2765                timer: null
2766            };
2767
2768            that.count = function() {
2769                that.usedTime = Math.floor((+new Date() - that.startTime) / 10);
2770
2771                var tt = that.totalTime - that.usedTime, mi, ss;
2772                if (tt <= 0) {
2773                    that.el.innerHTML = '00:00';
2774                    clearInterval(that.timer);
2775                    f.showStep(4);
2776                } else {
2777                    mi = Math.floor(tt / (60 * 100));
2778                    ss = Math.floor((tt - mi * 60 * 100) / 100);
2779                    that.el.innerHTML = that.fillZero(mi) + ':' + that.fillZero(ss);
2780                }
2781            };
2782            that.init = function() {
2783                if (that.timer) {
2784                    clearInterval(that.timer);
2785                    that.el.innerHTML = '00:' + seconds;
2786                    that.totalTime = seconds * 100;
2787                    that.usedTime = 0;
2788                    that.startTime = +new Date();
2789                    that.timer = null;
2790                }
2791            };
2792            that.start = function() {
2793                if (!that.timer) that.timer = setInterval(that.count, 50);
2794            };
2795            that.stop = function() {
2796                if (that.timer) clearInterval(that.timer);
2797            };
2798            that.fillZero = function(num) {
2799                return num < 10 ? '0' + num : num;
2800            };
2801
2802            return that;
2803        },
2804
2805        showTimer: function() {
2806            f.callTimer = new f.Timer(cfg.timerseconds||26, f.getElement('itlcb-timer'));
2807            f.callTimer.start();
2808        },
2809
2810        sendCallRequest: function(tn) {
2811            if (!_conn) return;
2812            var params = {
2813                '':       'callback_start',
2814                tn:       tn,
2815                uid:      cfg.uid,
2816                site:     window.location.origin,
2817                tzOffset: new Date().getTimezoneOffset(),
2818                visit_id: f.getRoistatVisitId(),
2819            };
2820            _conn.sendRequest(params, function(msg) {
2821                if (msg && msg.error) {
2822                    f.showStep(4, msg);
2823                } else if (msg && msg.email) {
2824                    f.showStep(4, msg);
2825                } else {
2826                    f.showStep(3);
2827                    f.showTimer();
2828                }
2829            });
2830        },
2831
2832        getRoistatVisitId: function () {
2833            var roistatVisit = f.getCookie('roistat_visit');
2834            return roistatVisit ? roistatVisit : '';
2835        },
2836
2837        initCall: function() {
2838            var val = f.getElement('itlcb-input').value;
2839            val = val.replace(/[^0-9\.]+/g, '');
2840
2841            if (!_conn) {
2842                var wsProtocol;
2843                if (cfg.wsProtocol) {
2844                    wsProtocol = cfg.wsProtocol;
2845                } else {
2846                    wsProtocol = window.location.protocol === 'https:' ? 'wss://' : 'ws://';
2847                }
2848                _conn = new APIConnection(wsProtocol + cfg.wsHost + '/ws', {task: 'Main', useragent: window.navigator.userAgent,
2849                    params: {
2850                        platform: window.navigator.platform,
2851                        appId: "Callback"
2852                    }});
2853                _conn.onConnected = function() {
2854                    f.sendCallRequest(val)
2855                };
2856                _conn.onError = function() {
2857                    f.showStep(4, {error: 'INTERNAL_ERROR'})
2858                };
2859                _conn.connect()
2860            } else {
2861                f.sendCallRequest(val);
2862            }
2863        },
2864
2865        getMessage: function(data) {
2866            var errors, email, schedule, msg;
2867            if (!data) data = {};
2868            if (cfg.widgetcode === "1") {
2869                errors = {
2870                    'INCORRECT_WEBSITE': mc("widget.incorrectWebsite"),
2871                    'CALL_ALREADY_SCHEDULED': mc("widget.callbackIsPlaned"),
2872                    'CALL_ALREADY_STARTED': mc("widget.callbackIsAlready"),
2873                    'CALLS_LIMIT_NUMBER': mc("widget.tooManyRequestNumber"),
2874                    'CALLS_LIMIT_IP': mc("widget.tooManyRequestIp")
2875                };
2876                email = mc("widget.acceptRequest");
2877                if (cfg.targetOfftime === "true") {
2878                    schedule = mc("widget.thankYouWorkingTime");
2879                } else {
2880                    schedule = mc("widget.workdayEnd") + (data.date ? mc("widget.callbackNotWorkingTime", {time: data.date}) : '');
2881                }
2882                msg = mc("widget.thankYou");
2883            } else if (cfg.widgetcode === "2") {
2884                errors = {
2885                    'INCORRECT_WEBSITE': mc("widget_v2.incorrectWebsite"),
2886                    'CALL_ALREADY_SCHEDULED': mc("widget_v2.callbackIsPlaned"),
2887                    'CALL_ALREADY_STARTED': mc("widget_v2.callbackIsAlready"),
2888                    'CALLS_LIMIT_NUMBER': mc("widget_v2.tooManyRequestNumber"),
2889                    'CALLS_LIMIT_IP': mc("widget_v2.tooManyRequestIp")
2890                };
2891                email = mc("widget_v2.acceptRequest");
2892                if (cfg.targetOfftime === "true") {
2893                    schedule = mc("widget_v2.thankYouWorkingTime");
2894                } else {
2895                    schedule = mc("widget_v2.workdayEnd") + (data.date ? mc("widget_v2.callbackNotWorkingTime", {time: (data.email ? '</br>' : '') + data.date}) : '');
2896                }
2897                msg = mc("widget_v2.thankYou");
2898            } else {
2899                errors = {
2900                    'INCORRECT_WEBSITE': mc("widget_v3.incorrectWebsite"),
2901                    'CALL_ALREADY_SCHEDULED': mc("widget_v3.callbackIsPlaned"),
2902                    'CALL_ALREADY_STARTED': mc("widget_v3.callbackIsAlready"),
2903                    'CALLS_LIMIT_NUMBER': mc("widget_v3.callbackIsAlready"),
2904                    'CALLS_LIMIT_IP': mc("widget_v3.tooManyRequestNumber")
2905                };
2906                email = mc("widget_v3.acceptRequest");
2907                if (cfg.targetOfftime === "true") {
2908                    schedule = mc("widget_v3.thankYouWorkingTime");
2909                } else {
2910                    schedule = mc("widget_v3.workdayEnd") + (data.date ? mc("widget_v3.callbackNotWorkingTime", {time: data.date}) : '');
2911                }
2912                msg = mc("widget_v3.thankYou");
2913            }
2914            if (data.error) {
2915                return errors[data.error] ? errors[data.error] : mc("widget.internalError");
2916            } else if (data.schedule) {
2917                return schedule;
2918            } else if (data.email) {
2919                return email;
2920            } else {
2921                return msg;
2922            }
2923        },
2924
2925        showStep: function(step, data) {
2926            f.step = step;
2927            if (step === 1) {
2928                f.show('itlcb-call-btn');
2929
2930                f.hide('itlcb-bg-fill');
2931                f.hide('itlcb-step2').animation(f.typeAnimation);
2932                f.hide('itlcb-step3');
2933                f.hide('itlcb-step4');
2934            } else if (step === 2) {
2935                f.show('itlcb-bg-fill');
2936                f.show('itlcb-step2').animation(f.typeAnimation);
2937
2938                f.hide('itlcb-step3');
2939                f.hide('itlcb-step4');
2940                f.hide('itlcb-call-btn');
2941            } else if (step === 3) {
2942                f.show('itlcb-bg-fill');
2943                f.show('itlcb-step3');
2944
2945                f.hide('itlcb-step2');
2946                f.hide('itlcb-step4');
2947                f.hide('itlcb-call-btn');
2948            } else if (step === 4) {
2949                f.show('itlcb-bg-fill');
2950                f.show('itlcb-step4');
2951
2952                f.hide('itlcb-step2');
2953                f.hide('itlcb-step3');
2954                f.hide('itlcb-call-btn');
2955                var msgBlock = f.getElement('itlcb-msg-wrap');
2956                f.removeClass(msgBlock, 'itlcb-error');
2957                f.removeClass(msgBlock, 'itlcb-not-working');
2958                if (f.callTimer) f.callTimer.stop();
2959                if (data && data.error) {
2960                    if (data.error === 'NOT_WORKING_TIME') {
2961                        this.setInfoMessage(this.getMessage({ schedule: true, date: data.date, email: data.email }));
2962                        f.addClass(msgBlock, 'itlcb-not-working');
2963                    } else {
2964                        this.setInfoMessage(this.getMessage({ error: data.error }));
2965                        f.addClass(msgBlock, 'itlcb-error');
2966                    }
2967                } else if (data && data.email) {
2968                    this.setInfoMessage(this.getMessage({ email: data.email }));
2969                } else {
2970                    this.setInfoMessage(this.getMessage());
2971                }
2972            }
2973        }
2974    };
2975
2976    if (cfg.enabled) {
2977        f.appendStyle();
2978        f.initWidget()
2979    }
2980
2981})(document);
2982	</script>
2982
2983<!-- /Callback megafon -->
2984
2985
2986<script>
2987	var yandexEvents = new function(){
2988		var myWatchers = new Array();
2989		this.addEventListener = function( watcher ){
2990			myWatchers.push( watcher );
2991		};
2992
2993		this.raiseEvents = function( eventId ){
2994			for( var thisEventIndex in myWatchers ){
2995				myWatchers[thisEventIndex]( eventId );
2996			}
2997		};
2998	};
2999	window.onload=function(){
3000		window.dataLayer = window.dataLayer || [];
3001	}
3002</script>
3002
3003<!-- Yandex.Metrika counter --> 
3003<script type="text/javascript" >
vendor: 293 bytes, lines 3003-3006
3003 
3004(function(m,e,t,r,i,k,a){m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)}; 
3005m[i].l=1*new Date();k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)}) 
3006(window, document, "script", "https://mc.yandex.ru/metrika/tag.js", "ym"); ym(
300633127063
vendor: 92 bytes, lines 3006-3007
3006, "init", 
3007{ clickmap:true, trackLinks:true, accurateTrackBounce:true, webvisor:true }); 
3008</script>
3008 <noscript><div><img src="https://mc.yandex.ru/watch/33127063" style="position:absolute; left:-9999px;" alt="" /></div></noscript>
3009<!-- /Yandex.Metrika counter --></body>
3010</html>

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.