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 />âûáåðèòå â êàòàëîãå èíòåðåñóþùèé òîâàð è íàæìèòå êíîïêó «Â êîðçèíó».</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="ÎÎÎ "ÀËÄÆÈÏÀÊ"" title="ÎÎÎ "ÀËÄÆÈÏÀÊ"" /></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="ÎÎÎ "Êîìïëåêñ Ïàê"" title="ÎÎÎ "Êîìïëåêñ Ïàê"" /></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> 1230 1231 <div itemscope itemtype="http://schema.org/WholesaleStore" style="display: none;" > 1232 1233 <div itemprop="name"> 1234 ÎÎÎ "ÎÊÒÀÏÀÊ" </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−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>çà 26 ñåêóíä</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>çà 26 ñåêóíä</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>çà {time} ñåêóíä","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\"> çà {time} ñåêóíä</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.