PageSourceSearch

https://lavicon.ru/booking/

html lavicon.ru collected 2026-10-07 17:39:19 UTC 38,561 bytes, 959 lines download raw bytes

1
2
3<!DOCTYPE html>
4<html lang="ru">
5
6<script type="text/javascript" data-skip-moving="true">(function(w, d) {var v = w.frameCacheVars = {'CACHE_MODE':'HTMLCACHE','storageBlocks':[],'dynamicBlocks':[],'AUTO_UPDATE':true,'AUTO_UPDATE_TTL':'120','version':'2'};var inv = false;if (v.AUTO_UPDATE === false){if (v.AUTO_UPDATE_TTL && v.AUTO_UPDATE_TTL > 0){var lm = Date.parse(d.lastModified);if (!isNaN(lm)){var td = new Date().getTime();if ((lm + v.AUTO_UPDATE_TTL * 1000) >= td){w.frameRequestStart = false;w.preventAutoUpdate = true;return;}inv = true;}}else{w.frameRequestStart = false;w.preventAutoUpdate = true;return;}}var r = w.XMLHttpRequest ? new XMLHttpRequest() : (w.ActiveXObject ? new w.ActiveXObject("Microsoft.XMLHTTP") : null);if (!r) { return; }w.frameRequestStart = true;var m = v.CACHE_MODE; var l = w.location; var x = new Date().getTime();var q = "?bxrand=" + x + (l.search.length > 0 ? "&" + l.search.substring(1) : "");var u = l.protocol + "//" + l.host + l.pathname + q;r.open("GET", u, true);r.setRequestHeader("BX-ACTION-TYPE", "get_dynamic");r.setRequestHeader("X-Bitrix-Composite", "get_dynamic");r.setRequestHeader("BX-CACHE-MODE", m);r.setRequestHeader("BX-CACHE-BLOCKS", v.dynamicBlocks ? JSON.stringify(v.dynamicBlocks) : "");if (inv){r.setRequestHeader("BX-INVALIDATE-CACHE", "Y");}try { r.setRequestHeader("BX-REF", d.referrer || "");} catch(e) {}if (m === "APPCACHE"){r.setRequestHeader("BX-APPCACHE-PARAMS", JSON.stringify(v.PARAMS));r.setRequestHeader("BX-APPCACHE-URL", v.PAGE_URL ? v.PAGE_URL : "");}r.onreadystatechange = function() {if (r.readyState != 4) { return; }var a = r.getResponseHeader("BX-RAND");var b = w.BX && w.BX.frameCache ? w.BX.frameCache : false;if (a != x || !((r.status >= 200 && r.status < 300) || r.status === 304 || r.status === 1223 || r.status === 0)){var f = {error:true, reason:a!=x?"bad_rand":"bad_status", url:u, xhr:r, status:r.status};if (w.BX && w.BX.ready && b){BX.ready(function() {setTimeout(function(){BX.onCustomEvent("onFrameDataRequestFail", [f]);}, 0);});}w.frameRequestFail = f;return;}if (b){b.onFrameDataReceived(r.responseText);if (!w.frameUpdateInvoked){b.update(false);}w.frameUpdateInvoked = true;}else{w.frameDataString = r.responseText;}};r.send();var p = w.performance;if (p && p.addEventListener && p.getEntries && p.setResourceTimingBufferSize){var e = 'resourcetimingbufferfull';var h = function() {if (w.BX && w.BX.frameCache && w.BX.frameCache.frameDataInserted){p.removeEventListener(e, h);}else {p.setResourceTimingBufferSize(p.getEntries().length + 50);}};p.addEventListener(e, h);}})(window, document);</script>
vendor: 1 bytes, line 6
6
7<script type="text/javascript" data-skip-moving="true">(function(w, d, n) {var cl = "bx-core";var ht = d.documentElement;var htc = ht ? ht.className : undefined;if (htc === undefined || htc.indexOf(cl) !== -1){return;}var ua = n.userAgent;if (/(iPad;)|(iPhone;)/i.test(ua)){cl += " bx-ios";}else if (/Windows/i.test(ua)){cl += ' bx-win';}else if (/Macintosh/i.test(ua)){cl += " bx-mac";}else if (/Linux/i.test(ua) && !/Android/i.test(ua)){cl += " bx-linux";}else if (/Android/i.test(ua)){cl += " bx-android";}cl += (/(ipad|iphone|android|mobile|touch)/i.test(ua) ? " bx-touch" : " bx-no-touch");cl += w.devicePixelRatio && w.devicePixelRatio >= 2? " bx-retina": " bx-no-retina";var ieVersion = -1;if (/AppleWebKit/.test(ua)){cl += " bx-chrome";}else if (/Opera/.test(ua)){cl += " bx-opera";}else if (/Firefox/.test(ua)){cl += " bx-firefox";}ht.className = htc ? htc + " " + cl : cl;})(window, document, navigator);</script>
7
8
9
10
11<script type="text/javascript" data-skip-moving="true">function hceLoadFont(a,b,c,d){function e(){if(!window.FontFace)return!1;var a=new FontFace("t",'url("data:application/font-woff2,") format("woff2")',{}),b=a.load();try{b.then(null,function(){})}catch(c){}return"loading"===a.status}var f=navigator.userAgent,g=!window.addEventListener||f.match(/(Android (2|3|4.0|4.1|4.2|4.3))|(Opera (Mini|Mobi))/)&&!f.match(/Chrome/);if(!g){var h={};try{h=localStorage||{}}catch(i){}var j="x-font-"+a,k=j+"url",l=j+"css",m=h[k],n=h[l],o=document.createElement("style");if(o.rel="stylesheet",document.head.appendChild(o),!n||m!==b&&m!==c){var p=c&&e()?c:b,q=new XMLHttpRequest;q.open("GET",p),q.onload=function(){q.status>=200&&q.status<400&&(h[k]=p,h[l]=q.responseText,d||(o.textContent=q.responseText))},q.send()}else o.textContent=n}}</script>
vendor: 1 bytes, line 11
11
12<script type="text/javascript" data-skip-moving="true">hceLoadFont('Opinion Pro', '/local/templates/main/static/fonts/opinion_pro--woff2.min.css')</script>
12
13<meta charset="utf-8" />
14<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1" />
15<meta name="viewport" content="width=device-width" />
16<meta name="SKYPE_TOOLBAR" content="SKYPE_TOOLBAR_PARSER_COMPATIBLE" />
17<link rel="shortcut icon" type="image/x-icon" href="/local/templates/main/static/img/favicon.ico" />
18<meta name="yandex-verification" content="cf602fe4f1021f32" />
19<script type="text/javascript" data-skip-moving="true">
20	var globurl_main_clear = 'lavicon.ru',
21    glob_lang = 'ru',
22    glob_static_cache_version = '1.2.8',
23    glob_gaId = '',
24    glob_ymId = '';
25</script>
25
26
27<link rel="stylesheet" type="text/css" href="/local/templates/main/static/app-styles.css?v=1.0.16" data-skip-moving="true">
28
29<style>
30	</style>
31
32<title>
33    Бронирование</title>
34
35<body class="hce-loading bg-loading ">
36
37   
37<script type="text/javascript" data-skip-moving="true">
38;
39(function(window, document) {
40    'use strict';
41
42    var inline_icons = '/local/templates/main/static/img/app-sprite-icons.svg',
43        colored_icons = '/local/templates/main/static/img/app-sprite-colored-icons.svg',
44        revision = glob_static_cache_version;
45
46    if (!document.createElementNS || !document.createElementNS('http://www.w3.org/2000/svg', 'svg').createSVGRect)
47        return true;
48
49    var isLocalStorage = 'localStorage' in window && window['localStorage'] !== null,
50        request,
51        request_colored,
52        inlineIconsData,
53        coloredIconsData,
54        insertLineIT = function() {
55            document.body.insertAdjacentHTML('afterbegin', inlineIconsData);
56        },
57        insertLine = function() {
58            if (document.body) insertLineIT();
59            else document.addEventListener('DOMContentLoaded', insertLineIT);
60        },
61        insertColoredIT = function() {
62            document.body.insertAdjacentHTML('afterbegin', coloredIconsData);
63        },
64        insertColored = function() {
65            if (document.body) insertColoredIT();
66            else document.addEventListener('DOMContentLoaded', insertColoredIT);
67        };
68
69    if (isLocalStorage && localStorage.getItem('iconsSVGrev') == revision) {
70        inlineIconsData = localStorage.getItem('inlineIconsSVGdata');
71        coloredIconsData = localStorage.getItem('coloredIconsSVGdata');
72        if (inlineIconsData && coloredIconsData) // 
73        {
74            insertLine();
75            insertColored();
76            return true;
77        }
78    }
79    try {
80        request = new XMLHttpRequest();
81        request.open('GET', inline_icons + '?v=' + glob_static_cache_version, true);
82
83        request.onload = function() {
84            if (request.status >= 200 && request.status < 400) {
85
86                inlineIconsData = request.responseText;
87
88                insertLine();
89                if (isLocalStorage) {
90                    localStorage.setItem('inlineIconsSVGdata', inlineIconsData);
91                    localStorage.setItem('iconsSVGrev', revision);
92                }
93            }
94        }
95        request.send();
96
97
98        request_colored = new XMLHttpRequest();
99        request_colored.open('GET', colored_icons + '?v=' + glob_static_cache_version, true);
100
101        request_colored.onload = function() {
102            if (request_colored.status >= 200 && request_colored.status < 400) {
103
104                coloredIconsData = request_colored.responseText;
105
106                insertColored();
107                if (isLocalStorage) {
108                    localStorage.setItem('coloredIconsSVGdata', coloredIconsData);
109                    localStorage.setItem('iconsSVGrev', revision);
110                }
111            }
112        }
113        request_colored.send();
114    } catch (e) {}
115
116}(window, document));
117</script>
117
118
119<svg aria-hidden="true" preserveAspectRatio="none" focusable="false" style="width:0;height:0;position:absolute;">
120    <defs>
121        <linearGradient id="svg_green_gradient">
122            <stop offset="0%" stop-color="#048726"></stop>
123            <stop offset="100%" stop-color="#0cb037"></stop>
124        </linearGradient>
125    </defs>
126</svg>
127   
128<header class="header">
129   <a href="/" class="header__logo" uk-scrollspy="cls:hce-fade-left-xs; delay:800">
130      <svg class="header__logo-icon icon">
131         <use xlink:href="#logo__vertical"></use>
132      </svg>
133      <svg class="header__logo-icon icon header_logo_xs">
134         <use xlink:href="#logo__short--extra"></use>
135      </svg>
136   </a>
137   <div class="header__nav">
138      <a href="https://en.lavicon.ru/booking/" class="header__nav-item header__locale">
139         <span class="header__locale-label">English version</span>
140         <span class="header__locale-label--xs">EN</span>
141      </a>
142   </div>
143
144   <div class="header__mobile-menu">
145      <div class="header__mobile-menu-target">
146         <span class="header__mobile-menu-line"></span>
147         <span class="header__mobile-menu-line"></span>
148      </div>
149   </div>
150</header>
151
152   <section class="site-header-content">
153         </section>
154   <div class="site-main-content" id="main-content">
155<section class="header-block">
156        <div class="header-block__images header_image uk-background-cover" uk-parallax="y: 0,100" style-off="background-image: url(/upload/resize_cache/webp/uf/21c/600_500_2/2vktrhjzuimjb5wh6qso2xphrluhr838.webp)" data-src="/upload/resize_cache/webp/uf/21c/600_500_2/2vktrhjzuimjb5wh6qso2xphrluhr838.webp" data-srcset="/upload/resize_cache/webp/uf/21c/600_500_2/2vktrhjzuimjb5wh6qso2xphrluhr838.webp 768w, /upload/resize_cache/webp/uf/21c/1480_900_2/2vktrhjzuimjb5wh6qso2xphrluhr838.webp 1200w,  /upload/resize_cache/webp/uf/21c/1650_1000_2/2vktrhjzuimjb5wh6qso2xphrluhr838.webp" uk-img>
157    </div>
158    <div class="header-title" uk-scrollspy="cls:hce-fade-in; delay:300">
159        <div class="section-container" uk-parallax="y: 0, -50; opacity: 1,0;">
160            <div class="header-title__wrapper" uk-scrollspy="cls:hce-fade-bottom-xxs; target: > *; delay:300">
161                <h1 class="header-title__text">Бронирование</h1>
162            </div>
163        </div>
164    </div>
165    </section>
166
167<section class="property-navigation-wrapper" uk-sticky="media: 992" uk-scrollspy="cls:hce-fade-in;">
168    <div class="property-navigation section-container" style="padding: 0">
169        <a class="property-navigation__logo" href="/" title="" uk-scrollspy="cls:hce-fade-left-xs; delay:200">
170            <svg class="icon">
171                <use xlink:href="#logo__short--extra"></use>
172            </svg>
173        </a>
174        <nav class="property-navigation__menu">
175            
176<ul class="property-navigation__menu-list">
177      <li class="property-navigation__menu-item">
178              <a itemprop="url" class="property-navigation__menu-link" title="LAVICON HOTEL COLLECTION" href="/">
179          <span itemprop="name">LAVICON HOTEL COLLECTION</span>
180        </a>
181          </li>
182
183      <li class="property-navigation__menu-item">
184              <a itemprop="url" class="property-navigation__menu-link" title="АКЦИИ" href="/specials/">
185          <span itemprop="name">АКЦИИ</span>
186        </a>
187          </li>
188
189      <li class="property-navigation__menu-item">
190              <a itemprop="url" class="property-navigation__menu-link is-active" title="БРОНИРОВАНИЕ" href="/booking/">
191          <span itemprop="name">БРОНИРОВАНИЕ</span>
192        </a>
193          </li>
194
195      <li class="property-navigation__menu-item">
196              <a itemprop="url" class="property-navigation__menu-link" title="Программа лояльности" href="/loyalty_program/">
197          <span itemprop="name">Программа лояльности</span>
198        </a>
199          </li>
200
201      <li class="property-navigation__menu-item">
202              <a itemprop="url" class="property-navigation__menu-link" title="НОВОСТИ" href="/news/">
203          <span itemprop="name">НОВОСТИ</span>
204        </a>
205          </li>
206
207      <li class="property-navigation__menu-item">
208              <a itemprop="url" class="property-navigation__menu-link" title="КОНТАКТЫ" href="/contacts/">
209          <span itemprop="name">КОНТАКТЫ</span>
210        </a>
211          </li>
212
213  </ul>
214        </nav>
215        <div class="search-form-wrapper">
216            <div class="search-form">
217                <div class="search-form__item form_button ">
218                                        <a class="property-navigation__booking-button" href="https://lavicon.management" target="_blank">Управляющая компания</a>
219                                    </div>
220            </div>
221        </div>
222
223    </div>
224</section>
225
226<link rel="stylesheet" type="text/css" href="/local/templates/main/static/travelline-style.css" data-skip-moving="true">
227<section class="section-wrapper section_padding section-container section-wrapper-container">
228	<div>
229		<div class="btn-holder"></div>
230		<select id="tl-hotel-select" style="display: none;"></select>
231	</div>
232	<div id="tl-booking-form">&nbsp;</div>
233	<style>
234		.btn-holder {
235			display: flex;
236			flex-wrap: wrap;
237			justify-content: center;
238		}
239
240	</style>
241	</div>
242
243	
243<script type="text/javascript" data-skip-moving="true">
244		var banner = document.querySelector('.banner-9494');
245		var URLSearchParams = URLSearchParams || function() {
246			"use strict";
247
248			function URLSearchParams(query) {
249				var index, key, value, pairs, i, length, dict = Object.create(null);
250				this[secret] = dict;
251				if (!query) return;
252				if (typeof query === "string") {
253					if (query.charAt(0) === "?") {
254						query = query.slice(1)
255					}
256					for (pairs = query.split("&"), i = 0, length = pairs.length; i < length; i++) {
257						value = pairs[i];
258						index = value.indexOf("=");
259						if (-1 < index) {
260							appendTo(dict, decode(value.slice(0, index)), decode(value.slice(index + 1)))
261						} else if (value.length) {
262							appendTo(dict, decode(value), "")
263						}
264					}
265				} else {
266					if (isArray(query)) {
267						for (i = 0, length = query.length; i < length; i++) {
268							value = query[i];
269							appendTo(dict, value[0], value[1])
270						}
271					} else if (query.forEach) {
272						query.forEach(addEach, dict)
273					} else {
274						for (key in query) {
275							appendTo(dict, key, query[key])
276						}
277					}
278				}
279			}
280			var isArray = Array.isArray,
281				URLSearchParamsProto = URLSearchParams.prototype,
282				find = /[!'\(\)~]|%20|%00/g,
283				plus = /\+/g,
284				replace = {
285					"!": "%21",
286					"'": "%27",
287					"(": "%28",
288					")": "%29",
289					"~": "%7E",
290					"%20": "+",
291					"%00": "\0"
292				},
293				replacer = function(match) {
294					return replace[match]
295				},
296				secret = "__URLSearchParams__:" + Math.random();
297
298			function addEach(value, key) {
299				appendTo(this, key, value)
300			}
301
302			function appendTo(dict, name, value) {
303				var res = isArray(value) ? value.join(",") : value;
304				if (name in dict) dict[name].push(res);
305				else dict[name] = [res]
306			}
307
308			function decode(str) {
309				return decodeURIComponent(str.replace(plus, " "))
310			}
311
312			function encode(str) {
313				return encodeURIComponent(str).replace(find, replacer)
314			}
315			URLSearchParamsProto.append = function append(name, value) {
316				appendTo(this[secret], name, value)
317			};
318			URLSearchParamsProto["delete"] = function del(name) {
319				delete this[secret][name]
320			};
321			URLSearchParamsProto.get = function get(name) {
322				var dict = this[secret];
323				return name in dict ? dict[name][0] : null
324			};
325			URLSearchParamsProto.getAll = function getAll(name) {
326				var dict = this[secret];
327				return name in dict ? dict[name].slice(0) : []
328			};
329			URLSearchParamsProto.has = function has(name) {
330				return name in this[secret]
331			};
332			URLSearchParamsProto.set = function set(name, value) {
333				this[secret][name] = ["" + value]
334			};
335			URLSearchParamsProto.forEach = function forEach(callback, thisArg) {
336				var dict = this[secret];
337				Object.getOwnPropertyNames(dict).forEach(function(name) {
338					dict[name].forEach(function(value) {
339						callback.call(thisArg, value, name, this)
340					}, this)
341				}, this)
342			};
343			URLSearchParamsProto.toJSON = function toJSON() {
344				return {}
345			};
346			URLSearchParamsProto.toString = function toString() {
347				var dict = this[secret],
348					query = [],
349					i, key, name, value;
350				for (key in dict) {
351					name = encode(key);
352					for (i = 0, value = dict[key]; i < value.length; i++) {
353						query.push(name + "=" + encode(value[i]))
354					}
355				}
356				return query.join("&")
357			};
358			var dP = Object.defineProperty,
359				gOPD = Object.getOwnPropertyDescriptor,
360				createSearchParamsPollute = function(search) {
361					function append(name, value) {
362						URLSearchParamsProto.append.call(this, name, value);
363						name = this.toString();
364						search.set.call(this._usp, name ? "?" + name : "")
365					}
366
367					function del(name) {
368						URLSearchParamsProto["delete"].call(this, name);
369						name = this.toString();
370						search.set.call(this._usp, name ? "?" + name : "")
371					}
372
373					function set(name, value) {
374						URLSearchParamsProto.set.call(this, name, value);
375						name = this.toString();
376						search.set.call(this._usp, name ? "?" + name : "")
377					}
378					return function(sp, value) {
379						sp.append = append;
380						sp["delete"] = del;
381						sp.set = set;
382						return dP(sp, "_usp", {
383							configurable: true,
384							writable: true,
385							value: value
386						})
387					}
388				},
389				createSearchParamsCreate = function(polluteSearchParams) {
390					return function(obj, sp) {
391						dP(obj, "_searchParams", {
392							configurable: true,
393							writable: true,
394							value: polluteSearchParams(sp, obj)
395						});
396						return sp
397					}
398				},
399				updateSearchParams = function(sp) {
400					var append = sp.append;
401					sp.append = URLSearchParamsProto.append;
402					URLSearchParams.call(sp, sp._usp.search.slice(1));
403					sp.append = append
404				},
405				verifySearchParams = function(obj, Class) {
406					if (!(obj instanceof Class)) throw new TypeError("'searchParams' accessed on an object that " + "does not implement interface " + Class.name)
407				},
408				upgradeClass = function(Class) {
409					var ClassProto = Class.prototype,
410						searchParams = gOPD(ClassProto, "searchParams"),
411						href = gOPD(ClassProto, "href"),
412						search = gOPD(ClassProto, "search"),
413						createSearchParams;
414					if (!searchParams && search && search.set) {
415						createSearchParams = createSearchParamsCreate(createSearchParamsPollute(search));
416						Object.defineProperties(ClassProto, {
417							href: {
418								get: function() {
419									return href.get.call(this)
420								},
421								set: function(value) {
422									var sp = this._searchParams;
423									href.set.call(this, value);
424									if (sp) updateSearchParams(sp)
425								}
426							},
427							search: {
428								get: function() {
429									return search.get.call(this)
430								},
431								set: function(value) {
432									var sp = this._searchParams;
433									search.set.call(this, value);
434									if (sp) updateSearchParams(sp)
435								}
436							},
437							searchParams: {
438								get: function() {
439									verifySearchParams(this, Class);
440									return this._searchParams || createSearchParams(this, new URLSearchParams(this.search.slice(1)))
441								},
442								set: function(sp) {
443									verifySearchParams(this, Class);
444									createSearchParams(this, sp)
445								}
446							}
447						})
448					}
449				};
450			upgradeClass(HTMLAnchorElement);
451			if (/^function|object$/.test(typeof URL) && URL.prototype) upgradeClass(URL);
452			return URLSearchParams
453		}();
454		(function(URLSearchParamsProto) {
455			var iterable = function() {
456				try {
457					return !!Symbol.iterator
458				} catch (error) {
459					return false
460				}
461			}();
462			if (!("forEach" in URLSearchParamsProto)) {
463				URLSearchParamsProto.forEach = function forEach(callback, thisArg) {
464					var names = Object.create(null);
465					this.toString().replace(/=[\s\S]*?(?:&|$)/g, "=").split("=").forEach(function(name) {
466						if (!name.length || name in names) return;
467						(names[name] = this.getAll(name)).forEach(function(value) {
468							callback.call(thisArg, value, name, this)
469						}, this)
470					}, this)
471				}
472			}
473			if (!("keys" in URLSearchParamsProto)) {
474				URLSearchParamsProto.keys = function keys() {
475					var items = [];
476					this.forEach(function(value, name) {
477						items.push(name)
478					});
479					var iterator = {
480						next: function() {
481							var value = items.shift();
482							return {
483								done: value === undefined,
484								value: value
485							}
486						}
487					};
488					if (iterable) {
489						iterator[Symbol.iterator] = function() {
490							return iterator
491						}
492					}
493					return iterator
494				}
495			}
496			if (!("values" in URLSearchParamsProto)) {
497				URLSearchParamsProto.values = function values() {
498					var items = [];
499					this.forEach(function(value) {
500						items.push(value)
501					});
502					var iterator = {
503						next: function() {
504							var value = items.shift();
505							return {
506								done: value === undefined,
507								value: value
508							}
509						}
510					};
511					if (iterable) {
512						iterator[Symbol.iterator] = function() {
513							return iterator
514						}
515					}
516					return iterator
517				}
518			}
519			if (!("entries" in URLSearchParamsProto)) {
520				URLSearchParamsProto.entries = function entries() {
521					var items = [];
522					this.forEach(function(value, name) {
523						items.push([name, value])
524					});
525					var iterator = {
526						next: function() {
527							var value = items.shift();
528							return {
529								done: value === undefined,
530								value: value
531							}
532						}
533					};
534					if (iterable) {
535						iterator[Symbol.iterator] = function() {
536							return iterator
537						}
538					}
539					return iterator
540				}
541			}
542			if (iterable && !(Symbol.iterator in URLSearchParamsProto)) {
543				URLSearchParamsProto[Symbol.iterator] = URLSearchParamsProto.entries
544			}
545			if (!("sort" in URLSearchParamsProto)) {
546				URLSearchParamsProto.sort = function sort() {
547					var entries = this.entries(),
548						entry = entries.next(),
549						done = entry.done,
550						keys = [],
551						values = Object.create(null),
552						i, key, value;
553					while (!done) {
554						value = entry.value;
555						key = value[0];
556						keys.push(key);
557						if (!(key in values)) {
558							values[key] = []
559						}
560						values[key].push(value[1]);
561						entry = entries.next();
562						done = entry.done
563					}
564					keys.sort();
565					for (i = 0; i < keys.length; i++) {
566						this["delete"](keys[i])
567					}
568					for (i = 0; i < keys.length; i++) {
569						key = keys[i];
570						this.append(key, values[key].shift())
571					}
572				}
573			}
574		})(URLSearchParams.prototype);
575		var SetUrlParam = function(key, value) {
576			var search = new URLSearchParams(location.search);
577			search.set(key, value);
578			// if(key == 'hotel_id'){
579			// 		if(value == '9494'){
580			// 		  banner.style.display = "block";
581			//      }else{
582			// 		  banner.style.display = "none";
583			//      }
584			// }
585			var path = location.pathname + "?" + search.toString();
586			window.history.pushState(false, false, path);
587		}
588		var GetUrlParam = function(key) {
589			var search = new URLSearchParams(location.search);
590			return search.get(key);
591		}
592		var select = document.getElementById("tl-hotel-select");
593
594		select.addEventListener('change', function() {
595			SetUrlParam('hotel_id', this.value);
596		});
597
598		function fireEvent(element, event) {
599			if (document.createEventObject) {
600				var ieEvt = document.createEventObject();
601				return element.fireEvent('on' + event, ieEvt);
602			} else {
603				var evt = document.createEvent("HTMLEvents");
604				evt.initEvent(event, true, true);
605				return !element.dispatchEvent(evt);
606			}
607		}
608
609		function eraseClass() {
610			var btnsProvider = document.querySelectorAll('.btn-provider.active');
611			for (var i = btnsProvider.length - 1; i >= 0; i--) {
612				btnsProvider[i].classList.remove('active');
613			}
614		}
615
616		function changeSelect() {
617			eraseClass();
618			this.classList.add('active');
619			select.value = this.dataset.provider;
620			fireEvent(select, 'change');
621		}
622
623//		if (!GetUrlParam('hotel_id')) {
624//			SetUrlParam('hotel_id', '38146');
625//		}
626
627		// if(GetUrlParam('hotel_id') == '9494'){
628		//    banner.style.display = "none";
629		// }
630
631		select.addEventListener('DOMNodeInserted', function(event) {
632			var option = event.srcElement;
633			var value = option.value;
634			var text = option.innerText;
635			var holder = document.querySelector('.btn-holder');
636			var btn = document.createElement('a');
637			var provider = GetUrlParam('hotel_id');
638			if (provider == option.value) {
639				btn.classList.add('active');
640			} else if ((provider == null) && (option.value == '38146')) {
641				btn.classList.add('active');
642			}
643			console.log('id', option.value);
644			btn.classList.add('btn-provider');
645			btn.innerText = text;
646			btn.dataset.provider = value;
647			btn.addEventListener('click', changeSelect);
648			holder.appendChild(btn);
649		});
650
651		function bookingStepChanged(data) {
652
653			switch (data.step) {
654				case 'search':
655				case 'preview':
656				case 'payment':
657				case 'complete':
658					break;
659				default:
660					return;
661			}
662
663			// Отправка события в GA
664			// gtag('config', 'UA-123318426-1', {
665			// 	'page_title': 'booking-page',
666			// 	'page_path': '/' + data.step
667			// });
668
669			// Отправка события в Yandex
670			window.yaCounter49845070.hit('/' + data.step);
671
672			// Проверка события
673			console.log('TL событие: ' + data.step);
674		};
675
676		function bookingSuccess(data) {
677
678			var label = data.bookingNumber + ' - ' + data.price + ' ' + data.currency;
679
680			// Отправка события в GA
681			// gtag('event', 'complete', {
682			// 	'event_category': 'booking',
683			// 	'event_label': label
684			// });
685
686			// Отправка E-commerce в GA
687			// gtag('event', 'purchase', {
688			// 	"transaction_id": data.bookingNumber,
689			// 	"affiliation": data.providerName,
690			// 	"value": data.price,
691			// 	"currency": data.currency,
692			// 	"shipping": 0,
693			// 	"items": [{
694			// 		"id": data.bookingNumber,
695			// 		"price": data.price
696			// 	}]
697			// });
698
699			// Отправка события в Yandex
700			window.yaCounter49845070.reachGoal('Bron_Travelline', {
701				'order_id': data.bookingNumber,
702				'order_price': data.price,
703				'currency': data.currency
704			});
705
706			// Проверка события
707			console.log('TL событие: booking success');
708		};
709
710		function noAvailableRooms(data) {
711
712			var label = data.now + ', ' + data.guests + ', ' + data.arrivalDate + ' - ' + data.departureDate;
713			// Отправка E-commerce в GA
714			// gtag('event', 'no-rooms', {
715			// 	'event_category': 'booking',
716			// 	'event_label': label
717			// });
718
719			// Проверка события
720			console.log('TL событие: no available rooms');
721
722		};
723
724		(function(w) {
725			var q = [
726				['setContext', 'TL-INT-lavicon-hotelcommerce', 'ru'],
727				['embed', 'booking-form', {
728					container: 'tl-booking-form',
729					onBookingStepChanged: bookingStepChanged,
730					onBookingSuccess: bookingSuccess,
731					onNoAvailableRooms: noAvailableRooms
732				}]
733			];
734			var t = w.travelline = (w.travelline || {}),
735				ti = t.integration = (t.integration || {});
736			ti.__cq = ti.__cq ? ti.__cq.concat(q) : q;
737			if (!ti.__loader) {
738				ti.__loader = true;
739				var d = w.document,
740					p = d.location.protocol,
741					s = d.createElement('script');
742				s.type = 'text/javascript';
743				s.async = true;
744				s.src = (p == 'https:' ? p : 'http:') + '//ibe.tlintegration.com/integration/loader.js';
745				(d.getElementsByTagName('head')[0] || d.getElementsByTagName('body')[0]).appendChild(s);
746			}
747		})(window);
748	</script>
748
749</section>
750
751
752
753						<footer class="footer">
754    <div class="footer-top">
755        <div class="footer-content section-container">
756            <div class="footer-content__top">
757                <div class="footer-content__top-block" style="flex: 1;">
758                    <div class="footer-properties">
759        <div class="footer-properties__item">
760        <a href="/fregat-hotel/" class="footer-nav__item-link" style="text-transform: uppercase; white-space: nowrap;">
761            LAVICON ОТЕЛЬ ФРЕГАТ, АДЛЕР 4*        </a>
762    </div>
763        <div class="footer-properties__item">
764        <a href="/sochi-hotel/" class="footer-nav__item-link" style="text-transform: uppercase; white-space: nowrap;">
765            LAVICON АПАРТ, СОЧИ 4*        </a>
766    </div>
767        <div class="footer-properties__item">
768        <a href="/dom-gordona/" class="footer-nav__item-link" style="text-transform: uppercase; white-space: nowrap;">
769            LAVICON ДОМ ГОРДОНА        </a>
770    </div>
771        <div class="footer-properties__item">
772        <a href="/adler-hotel/" class="footer-nav__item-link" style="text-transform: uppercase; white-space: nowrap;">
773            LAVICON КЛУБНАЯ РЕЗИДЕНЦИЯ 4*        </a>
774    </div>
775        <div class="footer-properties__item">
776        <a href="/dagomys-hotel/" class="footer-nav__item-link" style="text-transform: uppercase; white-space: nowrap;">
777            LAVICON БУТИК ОТЕЛЬ, ДАГОМЫС 4*        </a>
778    </div>
779        <div class="footer-properties__item">
780        <a href="/nebug-hotel-3/" class="footer-nav__item-link" style="text-transform: uppercase; white-space: nowrap;">
781            LAVICON АПАРТ, НЕБУГ 3*        </a>
782    </div>
783        <div class="footer-properties__item">
784        <a href="/agoy-park/" class="footer-nav__item-link" style="text-transform: uppercase; white-space: nowrap;">
785            AGOYPARK by LAVICON        </a>
786    </div>
787        </div>                </div>
788                <div class="footer-content__top-block">
789                    <div class="footer-content__top-connect">
790                        <span class="footer-content__top-connect-text">
791                            </span>
792                    </div>
793                    <div >
794                                                <a class="footer-content__top-connect-link" href="https://t.me/lavicon_hotel" target="_blank">
795                            <svg class="footer-content__top-connect__icon icon">
796                                <use xlink:href="#socials__telegram"></use>
797                            </svg>
798                        </a>
799                        <a class="footer-content__top-connect-link" href="https://vk.com/lavicon.hotel" target="_blank">
800                            <svg class="footer-content__top-connect__icon icon">
801                                <use xlink:href="#socials__vk"></use>
802                            </svg>
803                        </a>
804                         
805                    </div>
806                </div>
807            </div>
808        </div>
809    </div>
810    <div class="footer-middle">
811        <div class="section-container">
812            <div class="footer__upper">
813                <div class="footer__content">
814                    <div class="footer__navigation">
815                        <nav class="footer-nav">
816                            <ul class="footer-nav__list">
817                                
818   <li class="footer-nav__item">
819      <a title="" href="/" class="footer-nav__item-link">
820         Lavicon Hotel Collection      </a>
821   </li>
822
823   <li class="footer-nav__item">
824      <a title="" href="https://lavicon.management/" class="footer-nav__item-link">
825         Управляющая компания      </a>
826   </li>
827
828   <li class="footer-nav__item">
829      <a title="" href="/news/" class="footer-nav__item-link">
830         Новости и события      </a>
831   </li>
832
833   <li class="footer-nav__item">
834      <a title="" href="/booking/" class="footer-nav__item-link">
835         Бронирование      </a>
836   </li>
837
838   <li class="footer-nav__item">
839      <a title="" href="/legal_information/" class="footer-nav__item-link">
840         Правовая информация      </a>
841   </li>
842
843   <li class="footer-nav__item">
844      <a title="" href="/loyalty_program/" class="footer-nav__item-link">
845         Программа лояльности      </a>
846   </li>
847
848   <li class="footer-nav__item">
849      <a title="" href="/contacts/" class="footer-nav__item-link">
850         Контакты      </a>
851   </li>
852                            </ul>
853                        </nav>
854                        <a href="/" class="footer__logo-link">
855                            <svg class="footer__logo icon">
856                                <use xlink:href="#logo_short--extra"></use>
857                            </svg>
858                        </a>
859                    </div>
860                    <div class="footer-content__bottom">
861                        <p class="footer-content__bottom-text">«Lavicon Hotel Collection» ©
862                            2026                                                    </p>
863                        <p class="footer-content__bottom-text"><a class="footer-content__bottom-link" href="https://hotelcommerce.ru" target="_blank">
864                                Разработано Hotel commerce</a></p>
865                    </div>
866                </div>
867            </div>
868        </div>
869    </div>
870</footer>												
871		</div>
872
873	
874<script src="/local/templates/main/static/app-scripts.js?v=1.1.5" async data-skip-moving="true"></script>
874
875
876
877    <a href="tel:+78612057272" class="pulse">
878        <svg class="icon">
879            <use xlink:href="#common__call"></use>
880        </svg>
881    </a>
vendor: 133 bytes, lines 881-884
881
882
883<script data-skip-moving="true" src="https://www.google.com/recaptcha/api.js?hl=ru" async defer data-skip-moving="true"></script>
884
885<!-- Yandex.Metrika counter -->
886<noscript>
887    <div><img src="https://mc.yandex.ru/watch/49845070" style="position:absolute; left:-9999px;" alt="" /></div>
888</noscript>
889<!-- /Yandex.Metrika counter -->
890
891<!-- Top.Mail.Ru counter --> 
892<script data-skip-moving="true" type="text/javascript"> var _tmr = window._tmr || (window._tmr = []); _tmr.push({id: "3259792", type: "pageView", start: (new Date()).getTime(), pid: "USER_ID"}); (function (d, w, id) { if (d.getElementById(id)) return; var ts = d.createElement("script"); ts.type = "text/javascript"; ts.async = true; ts.id = id; ts.src = "https://top-fwz1.mail.ru/js/code.js"; var f = function () {var s = d.getElementsByTagName("script")[0]; s.parentNode.insertBefore(ts, s);}; if (w.opera == "[object Opera]") { d.addEventListener("DOMContentLoaded", f, false); } else { f(); } })(document, window, "tmr-code"); </script>
892 <noscript><div><img src="https://top-fwz1.mail.ru/counter?id=3259792;js=na" style="position:absolute;left:-9999px;" alt="Top.Mail.Ru" /></div></noscript> 
893<!-- /Top.Mail.Ru counter -->
894
895<script data-skip-moving="true" type="text/javascript">!function(){var t=document.createElement("script");t.type="text/javascript",t.async=!0,t.src='https://vk.com/js/api/openapi.js?169',t.onload=function(){VK.Retargeting.Init("VK-RTRG-1493075-i5SqY"),VK.Retargeting.Hit()},document.head.appendChild(t)}();</script>
895
896<noscript><img src="https://vk.com/rtrg?p=VK-RTRG-1493075-i5SqY" style="position:fixed; left:-999px;" alt=""/></noscript>
897
898 
899
900<!-- Pixel Code for https://popup.bz/ -->
901<script data-skip-moving="true" src="https://popup.bz/pixel/myfxavwidwhyeqtvnp70qut9m010sjzi"></script>
901
902<!-- END Pixel Code -->
903
904<!-- Roistat Counter Start -->
905<script data-skip-moving="true" type="text/javascript">
906    (function(w, d, s, h, id) { w.roistatProjectId = id; w.roistatHost = h; var p = d.location.protocol == "https:" ? "https://" : "http://"; var u = /^.roistat_visit=[^;]+(.)?$/.test(d.cookie) ?  "/dist/module.js" :  "/api/site/1.0/"+id+"/init?referrer="+encodeURIComponent(d.location.href); var js = d.createElement(s); js.charset="UTF-8"; js.async = 1;  js.src = p+h+u; var js2 = d.getElementsByTagName(s)[0];  js2.parentNode.insertBefore(js, js2); })(window, document, 'script', 'cloud.roistat.com',  'ad0655cb11f4bc3dbd8cbd9c2e235b8b'); 
907</script>
907
908<!-- Roistat Counter End -->
909
910<style>
911    .altumcode-wrapper, .altumcode-custom-html-content, .altumcode-image-content {
912        padding: 0!important;
913    }
914    .altumcode-custom-html-wrapper {
915        max-width: 100%!important;
916        max-height: 90%!important;
917        margin: auto!important;
918    }
919
920    .altumcode-custom-html-wrapper .altumcode-close {
921        margin: 0!important;
922        width: 2.5rem!important;
923        height: 2.5rem!important;
924        position: absolute!important;
925        right: 20px!important;
926        top: 20px!important;
927        background-color: white!important;
928        opacity: 1!important;
929        border: 1px solid!important;
930    }
931
932    .altumcode-site { 
933        position: fixed!important;
934        left: -9999px;
935    }
936
937    .popup_wrapper {
938        width: 100%; max-width: 40rem;  position: relative; display: flex;
939    }
940</style>
941
942	
942<script src="https://smartcaptcha.cloud.yandex.ru/captcha.js" async defer></script>
942
943
944<script type="text/javascript">(function(window,document,n,project_ids){window.GudokData=n;if(typeof project_ids !== "object"){project_ids = [project_ids]};window[n] = {};window[n]["projects"]=project_ids;config_load(project_ids.join(','));function config_load(cId){var a=document.getElementsByTagName("script")[0],s=document.createElement("script"),i=function(){a.parentNode.insertBefore(s,a)},cMrs='';s.async=true;if(document.location.search&&document.location.search.indexOf('?gudok_check=')===0)cMrs+=document.location.search.replace('?','&');s.src="//mod.gudok.tel/script.js?sid="+cId+cMrs;if(window.opera == "[object Opera]"){document.addEventListener("DOMContentLoaded", i, false)}else{i()}}})(window, document, "gd", "njlkur4hoq");</script>
944
945
946<script type="text/javascript">
vendor: 431 bytes, lines 946-954
946
947    (function(m,e,t,r,i,k,a){
948        m[i]=m[i]||function(){(m[i].a=m[i].a||[]).push(arguments)};
949        m[i].l=1*new Date();
950        for (var j = 0; j < document.scripts.length; j++) {if (document.scripts[j].src === r) { return; }}
951        k=e.createElement(t),a=e.getElementsByTagName(t)[0],k.async=1,k.src=r,a.parentNode.insertBefore(k,a)
952    })(window, document,'script','https://mc.yandex.ru/metrika/tag.js', 'ym');
953
954    ym(
95449845070
vendor: 158 bytes, line 954
954, 'init', {webvisor:true, clickmap:true, ecommerce:"dataLayer", referrer: document.referrer, url: location.href, accurateTrackBounce:true, trackLinks:true});
955</script>
955
956</body>
957
958</html>
959<!--9e8fe3150757693a7f789c548e149a42-->

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.