PageSourceSearch

https://ta.keahotels.is/login

html keahotels.is collected 2026-09-25 20:49:19 UTC 12,362 bytes, 302 lines download raw bytes

1<!DOCTYPE html>
2<html>
3
4<head>
5    <base href="/" />
6    <title></title>
7    <meta name="viewport" content="width=device-width, initial-scale=1">
8    <meta charset="utf-8" />
9
10    
10<script>
vendor: 454 bytes, lines 10-22
10(function (w, d, s, l, i) {
11      w[l] = w[l] || [];
12      w[l].push({
13        'gtm.start':
14          new Date().getTime(), event: 'gtm.js'
15      });
16      var f = d.getElementsByTagName(s)[0],
17        j = d.createElement(s), dl = l != 'dataLayer' ? '&l=' + l : '';
18      j.async = true;
19      j.src =
20        'https://www.googletagmanager.com/gtm.js?id=' + i + dl;
21      f.parentNode.insertBefore(j, f);
22    })(window, document, 'script', 'dataLayer', '
22GTM-TW8VRTW3
vendor: 3 bytes, line 22
22');
22</script>
22
23
24    <!-- bootstrap css -->
25  <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" integrity="sha384-zCbKRCUGaJDkqS1kPbPd7TveP5iyJE0EjAuZQTgFLD2ylzuqKfdKlfG/eSrtxUkn" crossorigin="anonymous">
26    <link href="../src/app/style.css" rel="stylesheet" type="text/html" />
27
28    <!-- icons -->
29    <link href="//fonts.googleapis.com/icon?family=Material+Icons|Material+Icons+Outlined|" rel="stylesheet">
30    <link rel="stylesheet" type="text/css"
31        href="//maxcdn.bootstrapcdn.com/font-awesome/4.7.0/css/font-awesome.min.css" />
32    <link id="favicon" rel="icon" type="image/x-icon" href="favicon.ico" />
33
34    <style type="text/css">
35        body,
36        html {
37            height: 100%;
38        }
39
40        a {
41            cursor: pointer
42        }
43
44        .app-loading {
45            position: relative;
46            display: flex;
47            flex-direction: column;
48            align-items: center;
49            justify-content: center;
50            height: 100%;
51        }
52
53        .app-loading .spinner {
54            height: 200px;
55            width: 200px;
56            animation: rotate 2s linear infinite;
57            transform-origin: center center;
58            position: absolute;
59            top: 0;
60            bottom: 0;
61            left: 0;
62            right: 0;
63            margin: auto;
64        }
65
66        .app-loading .spinner .path {
67            stroke-dasharray: 1, 200;
68            stroke-dashoffset: 0;
69            animation: dash 1.5s ease-in-out infinite;
70            stroke-linecap: round;
71            stroke: #ddd;
72        }
73
74        @keyframes rotate {
75            100% {
76                transform: rotate(360deg);
77            }
78        }
79
80        @keyframes dash {
81            0% {
82                stroke-dasharray: 1, 200;
83                stroke-dashoffset: 0;
84            }
85
86            50% {
87                stroke-dasharray: 89, 200;
88                stroke-dashoffset: -35px;
89            }
90
91            100% {
92                stroke-dasharray: 89, 200;
93                stroke-dashoffset: -124px;
94            }
95        }
96    </style>
97<link rel="stylesheet" href="styles.4fa8c7fcd4cfdc42440a.css"></head>
98
99<body>
vendor: 79 bytes, lines 99-101
99
100    <noscript>
101      <iframe src="https://www.googletagmanager.com/ns.html?id=
101GTM-TW8VRTW3
vendor: 107 bytes, lines 101-105
101"
102              height="0" width="0" style="display:none;visibility:hidden"></iframe>
103    </noscript>
104
105    
105<app-travia>
106        <div class="app-loading">
107            <div id="loading-logo" class="app-loading-logo">
108            </div>
109            <svg class="spinner" viewBox="25 25 50 50">
110                <circle class="path" cx="50" cy="50" r="20" fill="none" stroke-width="2" stroke-miterlimit="10" />
111            </svg>
112        </div>
113    </app-travia>
114
115    
115<script src="https://accounts.google.com/gsi/client" async defer></script>
115
116    
116<script>
vendor: 460 bytes, lines 116-124
116
117        (function (i, s, o, g, r, a, m) {
118            i['GoogleAnalyticsObject'] = r; i[r] = i[r] || function () {
119                (i[r].q = i[r].q || []).push(arguments)
120            }, i[r].l = 1 * new Date(); a = s.createElement(o),
121                m = s.getElementsByTagName(o)[0]; a.async = 1; a.src = g; m.parentNode.insertBefore(a, m)
122        })(window, document, 'script', 'https://www.google-analytics.com/analytics.js', 'ga');
123
124        ga('create', '
124UA-128896720-1
vendor: 16 bytes, lines 124-125
124', 'auto');
125    
125</script>
125
126    
126<script>
127
128        var xmlHttp = new XMLHttpRequest();
129        var url = "";
130        var tenant = {code: "TRAVIA", applicationName: "Travia"};
131        var key = window.location.hostname;
132
133        let urlMap = new Map([
134          ['localhost', 'http://localhost:8085/'],
135          ['cloudfront.net', 'https://microservices-api.travia.is/'],
136          ['stage-app.travia.is', 'https://stage-api.travia.is/'],
137          ['ta.iborn.io', 'https://stage-api.travia.is/'],
138          ['hi-ib-stage-app.travia.is', 'https://stage-api.travia.is/'],
139          ['heysales-app.travia.is', 'https://heysales-api.travia.is/'],
140          ['performance-pa-app-tenant1.travia.is', 'https://performance-pa-api.travia.is/'],
141          ['agegroups-app.travia.is', 'https://agegroups-api.travia.is/'],
142          ['demo-app.travia.is', 'https://stage-api.travia.is/']
143        ]);
144
145        url = urlMap.get(key) !== undefined ? urlMap.get(key) : 'https://api.travia.is/';
146        function loadScript(i, t) {
147          if(!i.getElementById(t)) {
148            var e = i.createElement("script");
149            e.id = t;
150            e.async = true;
151            e.src = "https://godo-5c6693a8767a79216455996.freshchat.com/js/widget.js";
152            i.head.appendChild(e);
153          }
154        }
155        function addFreshChatListeners(){
156          window.fcWidget.on("widget:loaded", function() {
157            getUser();
158          });
159          window.fcWidget.on("user:created", function(resp) {
160            var status = resp && resp.status,
161              data = resp && resp.data;
162            if (status === 200) {
163              let currentUser = JSON.parse(localStorage.getItem('currentUser'));
164              if (data != null && data.restoreId != null && currentUser != null &&  (currentUser.freshchatRestoreId === null || currentUser.freshchatRestoreId === "")) {
165                var eventData = { restoreId: data.restoreId };
166                var event = new CustomEvent('saveFreschatRestoreId', { detail: eventData });
167                window.dispatchEvent(event);
168              }
169            }
170          });
171        }
172        function initChat(currentUser){
173          window.fcWidget.init({
174            config: {
175              headerProperty: {
176                hideChatButton: false
177              }
178            },
179            widgetUuid: "95aa007b-aefd-4988-a00f-2b5e360d1966",
180            token: "3547e8ac-250c-46a2-9e38-e1233dc4281a",
181            host: "https://godo-5c6693a8767a79216455996.freshchat.com",
182            externalId: currentUser.username,
183            restoreId: currentUser.freshchatRestoreId ? currentUser.freshchatRestoreId: null,
184          });
185        }
186        function removeChat() {
187          window.fcWidget.destroy();
188        }
189        function clearUser(callback) {
190          window.fcWidget.user.clear()
191            .then(() => {})
192            .catch(error => {
193              console.error('Error clearing user information:', error);
194            })
195            .finally(() => {
196              window.fcWidget.user.setProperties({
197                firstName: null,
198                lastName: null,
199                email: null,
200                cf_travia: null
201              });
202              if (typeof callback === 'function') {
203                callback();
204              }
205            });
206        }
207        function initializeFreshChat() {
208            let currentUser = JSON.parse(localStorage.getItem('currentUser'));
209            addFreshChatListeners();
210            initChat(currentUser);
211        }
212        function setUserProperties(){
213          let currentUser = JSON.parse(localStorage.getItem('currentUser'));
214          const email = currentUser.username;
215          const [firstName, ...lastName] = currentUser.fullName.split(" ");
216          window.fcWidget.user.setProperties({
217            firstName: firstName,
218            lastName: lastName.join(" "),
219            email: email,
220            cf_travia: true
221          });
222        }
223        function getUser(){
224          window.fcWidget.user.get(function(resp) {
225            var status = resp && resp.status,data = resp && resp.data;
226            if (status !== 200) {
227              clearUser(setUserProperties);
228            }
229          });
230        }
231        document.addEventListener("hideFreshChat", function () {
232            clearUser(removeChat);
233        });
234        document.addEventListener("showFreshChat", function () {
235            if(window.fcWidget && window.fcWidget.isInitialized() === true){
236              console.log("fcWidget already initialized");
237            } else {
238              initializeFreshChat();
239            }
240        });
241        if (window.location.host === 'app.travia.is' && window.location === window.parent.location) {
242            loadScript(document,"godo-fc-script");
243        }
244
245        xmlHttp.open("GET", url + 'api/v1/tenants/current', false);
246        xmlHttp.send(null);
247
248        if (xmlHttp.response) {
249            tenant = JSON.parse(xmlHttp.response);
250            console.log(tenant);
251        }
252        window.localStorage.setItem('theme', tenant.code + '-theme');
253        window.localStorage.setItem('tenant-name', tenant.applicationName);
254        window.localStorage.setItem('tenant-code', tenant.code);
255
256        if (tenant.code === "TRAVIA") {
257          document.getElementsByTagName('title')[0].innerText = "Travia";
258          document.getElementById('favicon').setAttribute('href', 'favicon.ico');
259          document.getElementById('loading-logo').classList.remove('app-loading-logo');
260          document.getElementById('loading-logo').classList.add('app-loading-logo-travia-theme');
261        }
262
263        if (tenant.code === "KEAHOTELS") {
264            document.getElementsByTagName('title')[0].innerText = "Keahotels TA Portal";
265            document.getElementById('favicon').setAttribute('href', 'kea-favicon.ico');
266            document.getElementById('loading-logo').classList.remove('app-loading-logo');
267            document.getElementById('loading-logo').classList.add('app-loading-logo-kea-theme');
268        }
269
270        if (tenant.code === "STRENGTHEN_ICELAND") {
271            document.getElementsByTagName('title')[0].innerText = "Styrkjum Ísland";
272            document.getElementById('favicon').setAttribute('href', 'STRENGTHEN_ICELAND-theme.ico');
273            document.getElementById('loading-logo').classList.remove('app-loading-logo');
274            document.getElementById('loading-logo').classList.add('app-loading-logo-strengthen-iceland-theme');
275        }
276
277        if (tenant.code === 'HEY_SALES_IB') {
278          document.getElementsByTagName('title')[0].innerText = "Hey Sales";
279          document.getElementById('favicon').setAttribute('href', 'hey-iceland-favicon.ico');
280          document.getElementById('loading-logo').classList.remove('app-loading-logo');
281          document.getElementById('loading-logo').classList.add('app-loading-logo-hey-sales-ib-theme');
282        }
283
284        if (tenant.code === 'HEY_SALES_OB') {
285          document.getElementsByTagName('title')[0].innerText = "Hey Sales OB";
286          document.getElementById('favicon').setAttribute('href', 'hey-iceland-favicon.ico');
287          document.getElementById('loading-logo').classList.remove('app-loading-logo');
288          document.getElementById('loading-logo').classList.add('app-loading-logo-hey-sales-ob-theme');
289        }
290        if (tenant.code === "TRV_DEMO") {
291          document.getElementsByTagName('title')[0].innerText = "Travia";
292          document.getElementById('favicon').setAttribute('href', 'favicon.ico');
293          document.getElementById('loading-logo').classList.remove('app-loading-logo');
294          document.getElementById('loading-logo').classList.add('app-loading-logo-travia-theme');
295          window.localStorage.setItem('theme', "TRAVIA" + '-theme');
296        }
297
298    </script>
298
299    
299<script src="https://www.youtube.com/iframe_api"></script>
vendor: 1 bytes, line 299
299
300<script src="runtime-es2015.9d4ffee40c0853f10632.js" type="module"></script>
300<script src="runtime-es5.9d4ffee40c0853f10632.js" nomodule defer></script>
300<script src="polyfills-es5.4585d350ea4e8b510d54.js" nomodule defer></script>
300<script src="polyfills-es2015.3b9bd5f9592733e0541b.js" type="module"></script>
300<script src="scripts.2440f282982e23955be6.js" defer></script>
300<script src="main-es2015.b9401d9130c6241b1a7e.js" type="module"></script>
300<script src="main-es5.b9401d9130c6241b1a7e.js" nomodule defer></script>
300</body>
301
302</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.