PageSourceSearch

https://www.colteneacademy.com/en/webinar/format/live/

html colteneacademy.com collected 2026-09-26 05:34:06 UTC 28,008 bytes, 606 lines download raw bytes

1<!DOCTYPE html>
2<html lang="en">
3
4<head>
5    <meta charset="UTF-8">
6    <meta name="viewport" content="width=device-width, initial-scale=1">
7    
8    <title>Coltene Academy</title>
9    <meta name="description" content="Coltene Academy offers dental education, courses, and resources for professionals. Enhance your knowledge and skills with our expert-led programs.">
10
11    <link rel="apple-touch-icon" sizes="57x57" href="/site/www.colteneacademy.com/images/favicon/apple-icon-57x57.png">
12    <link rel="apple-touch-icon" sizes="60x60" href="/site/www.colteneacademy.com/images/favicon/apple-icon-60x60.png">
13    <link rel="apple-touch-icon" sizes="72x72" href="/site/www.colteneacademy.com/images/favicon/apple-icon-72x72.png">
14    <link rel="apple-touch-icon" sizes="76x76" href="/site/www.colteneacademy.com/images/favicon/apple-icon-76x76.png">
15    <link rel="apple-touch-icon" sizes="114x114" href="/site/www.colteneacademy.com/images/favicon/apple-icon-114x114.png">
16    <link rel="apple-touch-icon" sizes="120x120" href="/site/www.colteneacademy.com/images/favicon/apple-icon-120x120.png">
17    <link rel="apple-touch-icon" sizes="144x144" href="/site/www.colteneacademy.com/images/favicon/apple-icon-144x144.png">
18    <link rel="apple-touch-icon" sizes="152x152" href="/site/www.colteneacademy.com/images/favicon/apple-icon-152x152.png">
19    <link rel="apple-touch-icon" sizes="180x180" href="/site/www.colteneacademy.com/images/favicon/apple-icon-180x180.png">
20    <link rel="icon" type="image/png" sizes="192x192" href="/site/www.colteneacademy.com/images/favicon/android-icon-192x192.png">
21    <link rel="icon" type="image/png" sizes="32x32" href="/site/www.colteneacademy.com/images/favicon/favicon-32x32.png">
22    <link rel="icon" type="image/png" sizes="96x96" href="/site/www.colteneacademy.com/images/favicon/favicon-96x96.png">
23    <link rel="icon" type="image/png" sizes="16x16" href="/site/www.colteneacademy.com/images/favicon/favicon-16x16.png">
24    <link rel="manifest" href="/site/www.colteneacademy.com/images/favicon/manifest.json">
25    <meta name="msapplication-TileColor" content="#07A0E1">
26    <meta name="msapplication-TileImage" content="/site/www.colteneacademy.com/images/favicon/ms-icon-144x144.png"> 
27    <meta name="theme-color" content="#07A0E1">
28
29
30
31
32    
32<script src="https://code.jquery.com/jquery-3.7.1.min.js" integrity="sha256-/JqT3SQfawRcv/BIHPThkBvs0OEvtFFmqPF/lYI/Cxo=" crossorigin="anonymous"></script>
32
33    
33<script src="https://kit.fontawesome.com/b1db3f6deb.js" crossorigin="anonymous"></script>
33
34    
34<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/js/bootstrap.bundle.min.js" integrity="sha384-ka7Sk0Gln4gmtz2MlQnikT1wXgYsOg+OMhuP+IlRH9sENBO0LRn5q+8nbTov4+1p" crossorigin="anonymous"></script>
34
35
36
37    <link href="https://cdn.jsdelivr.net/npm/[email protected]/dist/css/bootstrap.min.css" rel="stylesheet" integrity="sha384-1BmE4kWBq78iYhFldvKuhfTAU6auU8tT94WrHftjDbrCEXSU1oBoqyl2QvZ6jIW3" crossorigin="anonymous">
38    
39     
40    
41    
42    <link href="/res/css/certificates.css?v=1770277677" rel="stylesheet">
43    <link href="/res/css/comments.css?v=1770277686" rel="stylesheet">
44    <link href="/res/css/companies.css?v=1784017420" rel="stylesheet">
45    <link href="/res/css/countdown.css?v=1773402599" rel="stylesheet">
46    <link href="/res/css/faq.css?v=1770277710" rel="stylesheet">
47    <link href="/res/css/filters.css?v=1770277718" rel="stylesheet">
48    <link href="/res/css/footer.css?v=1785152562" rel="stylesheet">
49    <link href="/res/css/header.css?v=1788510711" rel="stylesheet">
50    <link href="/res/css/layout.css?v=1782808037" rel="stylesheet">
51    <link href="/res/css/misc.css?v=1771841096" rel="stylesheet">
52    <link href="/res/css/modal.css?v=1772193081" rel="stylesheet">
53    <link href="/res/css/paging.css?v=1770277841" rel="stylesheet">
54    <link href="/res/css/quiz.css?v=1774457861" rel="stylesheet">
55    <link href="/res/css/speakers.css?v=1772194530" rel="stylesheet">
56    <link href="/res/css/sso.css?v=1770277849" rel="stylesheet">
57    <link href="/res/css/sidebar.css?v=1774251698" rel="stylesheet">
58    <link href="/res/css/survey.css?v=1770277816" rel="stylesheet">
59    <link href="/res/css/tabs.css?v=1772085847" rel="stylesheet">
60    <link href="/res/css/404.css?v=1770040230" rel="stylesheet">
61    <link href="/res/css/search.css?v=1779774165" rel="stylesheet">
62    <link href="/res/css/admin/banners.css?v=1771826687" rel="stylesheet">
63    <link href="/res/css/admin/registrations.css?v=1770277871" rel="stylesheet">
64
65
66
67    
68
69
70
71
72    
73
74
75    <link href="/res/js/owl-carousel/owl.carousel.css?v=1759487859" rel="stylesheet">
76
77    <link href="/site/www.colteneacademy.com/css/styles.css?v=1776165688" rel="stylesheet">
78    <link href="/site/www.colteneacademy.com/css/videojs.css?v=1775455575" rel="stylesheet">
79
80    <link href="/site/www.colteneacademy.com/css/article.css?v=1789984849" rel="stylesheet">
81    <link href="/site/www.colteneacademy.com/css/overwrite.css?v=1788511729" rel="stylesheet">
82
83
84    
85    <link href="https://vjs.zencdn.net/7.21.5/video-js.css" rel="stylesheet" />
86    
87    
87<script src="https://vjs.zencdn.net/7.21.5/video.min.js"></script>
87
88
89    
90    <link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/[email protected]/dist/videojs-http-source-selector.css" />
91    
92    
92<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/videojs-http-source-selector.min.js"></script>
92
93
94    
95    
95<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/videojs-contrib-quality-levels.min.js"></script>
95
96
97
98</head>
99
100<body  class="not-logged-in archive webinar">
101<div id="page">
102    <div id="page-header" class="header">
103        
104
105
106
107
108
109
110        <div class="content">
111            <a href="/en/" class="logo"><img src="/site/www.colteneacademy.com/images/logo.png" alt=""></a>
112            <div class="menus">
113                <div class="main-menu">
114                    <ul class="menu">
115                        <li><a href="/en/webinar/format/live/">Live Webinars</a></li>
116                        <li><a href="/en/webinar/format/on-demand/">On-demand Webinars</a></li>
117                        
118
119                                               <li><a href="/en/speaker/">Dental Experts</a></li>
120                    </ul>
121                </div>
122
123                <div class="top-menu">
124
125                                            <div class="actions">
126                            <a href="/en/register/" class="btn create-account">Create account</a>
127                            <a href="/en/login/" class="btn login">Login</a>
128                        </div>
129                    
130                    <div class="search-container">
131                        <div class="search">
132                            <input type="text" id="search-input" placeholder="Search..." autocomplete="off">
133                            <div id="search-results"></div>
134                        </div>
135                        <button class="search-trigger"><i class="fa-light fa-magnifying-glass"></i></button>
136                    </div>
137
138                    
139<div class="account elem">
140    <div class="trigger"><a href="/en/login/"><i class="fa-light fa-user"></i></a></div>
141</div>
142
143                    
144
145
146                    <div class="menuTrigger">
147                        <div><span></span><span></span><span></span></div>
148                    </div>
149
150                </div>
151
152            </div>
153
154        </div>
155
156    </div>
157<main>
158    <div class="content">
159        <div class="page-header">
160            <h1>Webinars</h1>
161        </div>
162
163        <div class="facet-filters-wrapper"><div class="facet-filter"><div class='facet-toggle' data-label='Language'>Language</div><div class='facet-dropdown'><input type='text' class='facet-search' placeholder='Search...'><div class='facet-clear-container'><a href='#' class='facet-clear'>Clear all</a></div><div class='facet-options'><label>
164                    <input type='checkbox' name='filter[language][]' value='en'> 
165                    English (3)
166                </label></div></div></div><div class="facet-filter"><div class='facet-toggle' data-label='Speaker'>Speaker</div><div class='facet-dropdown'><input type='text' class='facet-search' placeholder='Search...'><div class='facet-clear-container'><a href='#' class='facet-clear'>Clear all</a></div><div class='facet-options'><label>
167                    <input type='checkbox' name='filter[speaker][]' value='francesco-iacono'> 
168                    Dr. Francesco Iacono (2)
169                </label><label>
170                    <input type='checkbox' name='filter[speaker][]' value='dhiraj-arora'> 
171                    Dr. Dhiraj Arora (1)
172                </label><label>
173                    <input type='checkbox' name='filter[speaker][]' value='chiara-pirani'> 
174                    Dr. Chiara Pirani (1)
175                </label></div></div></div><div class="facet-filter"><div class='facet-toggle' data-label='Format'>Format</div><div class='facet-dropdown'><input type='text' class='facet-search' placeholder='Search...'><div class='facet-clear-container'><a href='#' class='facet-clear'>Clear all</a></div><div class='facet-options'><label>
176                    <input type='checkbox' name='filter[format][]' value='live'> 
177                    Live (1)
178                </label><label>
179                    <input type='checkbox' name='filter[format][]' value='on-demand'> 
180                    On-Demand (2)
181                </label></div></div></div><div class='facet-global-clear-container'><a href='#' class='facet-global-clear'>Clear all filters</a></div></div>            <div class="listing" data-columns="2">
182
183                 
184
185<div class="item webinar upcoming" data-slug="bioceramics-in-endo
185dontics-form-scientific-evidence-to-clinical-practice">
186    <div class="text">
187        <div class="top">
188            <p class="credits "><strong>1</strong>CE</p>            <div class="meta">
189                <div class="type">Live webinar</div>
190                                    <div class="date momentjs ol" data-webinar-id="120688">2027-02-09 16:00:00</div>
191                            </div>
192        </div>
193
194        <div class="extra-details">
195                        <div class="languages"><i class="fa-solid fa-volume"></i><span class="lang en">EN</span></div> 
196        </div>
197        <div class="webinar-name">
198            <a href="/en/webinar/bioceramics-in-endodontics-form-scientific-evidence-to-clinical-practice/" class="name">Bioceramics in endodontics: form scientific evidence to clinical practice</a>
199        </div>
200 
201        <div class="speaker-wrap">
202            <div class="photo"><img src="/img/d3AtY29udGVudC91cGxvYWRzLzIwMjYvMDU-2d5b0c/francesco-iacono-thumbnail__.jpg" alt="Francesco Iacono" class="speaker-thumbnail"><img src="/img/d3AtY29udGVudC91cGxvYWRzLzIwMjYvMDg-5027ad/chiara-pirani-thumbnail__.jpg" alt="Chiara Pirani" class="speaker-thumbnail"></div>
203            <p class="speaker"><span class="name"><span class="title">Dr.</span> Francesco Iacono</span><span class="separator">, </span><span class="name"><span class="title">Dr.</span> Chiara Pirani</span></p>
204        </div>
205
206        <div class="actions">
207            <a  href="/en/login/" class="btn login" id="webinar_register_120688"><span>Login to access</span><i id="webinar_register_120688_icon" class=""></i></a>
207            <a href="/en/webinar/bioceramics-in-endodontics-form-scientific-evidence-to-clinical-practice/" class="btn details">more details</a>
208        </div>  
209
210    </div>
211    <a href="/en/webinar/bioceramics-in-endodontics-form-scientific-evidence-to-clinical-practice/" class="photo"><img src="/img/d3AtY29udGVudC91cGxvYWRzLzIwMjYvMDU-ba3bec/francesco-iacono-right__500.png" alt="Francesco Iacono" class="speaker-thumbnail"><img src="/img/d3AtY29udGVudC91cGxvYWRzLzIwMjYvMDg-409b04/chiara-pirani-right__500.png" alt="Chiara Pirani" class="speaker-thumbnail"></a>
212
213    </div>            </div>
214
215
216 
217        
218
219        
220    </div>
221</main>
222<div class="footer">
223    <div class="content">
224        <div class="top">
225            <ul class="logos">
226                <li><a class="logo" href="/"><img src="/site/www.colteneacademy.com/images/logo.png" alt=""></a></li>
227                <li><a href="https://www.dental-tribune.com" target="_blank"><img alt="" src="/res/images/dti.png"></a></li>
228                <li><a href="https://www.dtstudyclub.com/" target="_blank"><img alt="" src="/res/images/dtsc.png"></a></li>
229                <li><a href="https://www.tribunegroup.com" target="_blank"><img alt="" src="/res/images/tribune_group.png"></a></li>
230            </ul>
231
232            <ul class="menu">
233                <li><a href="https://www.coltene.com/information/general-terms-conditions/" target="_blank">Terms and conditions</a></li>
234                <li><a href="https://www.coltene.com/information/data-protection/" target="_blank">Privacy policy</a></li>
235                <li><a href="https://www.coltene.com/information/imprint/" target="_blank">Imprint</a></li>
236                <li><a href="/en/faq/" target="_blank">FAQ</a></li>
237                <li><a href="#" target="_blank">Contact</a></li>
238            </ul>
239
240        </div>
241
242
243        <div class="disclaimer">
244            <div class="elem agd_pace">
245    <a href="https://www.agd.org/" target="_blank"><img alt="" src="/res/images/agd_pace.png"></a>
246    <p>Tribune Group GmbH Inc.<br> Nationally Approved PACE Program<br> Provider for FAGD/MAGD credit.<br> Approval does not imply acceptance by<br> any regulatory authority or AGD endorsement.<br> 7/1/2024 - 6/30/2028.<br> Provider ID# 355051 </p>
247</div>        </div>
248
249        <div class="copy">All rights reserved. 2026 Dental Tribune International GmbH.</div>
250
251
252    </div>
253</div>
254</div>
255
256
257
258
259
260
261<script>
262    var upcoming_webinars = [{"slug":"contemporary-direct-composite-approaches-for-the-restoration-of-tooth-wear","start_date_timestamp":1780938000,"end_date_timestamp":1780941600,"link":"\/en\/webinar\/contemporary-direct-composite-approaches-for-the-restoration-of-tooth-wear\/"},{"slug":"niti-alloys-and-root-canal-anatomy-shaping-the-future-of-endodontics","start_date_timestamp":1782831600,"end_date_timestamp":1782835200,"link":"\/en\/webinar\/niti-alloys-and-root-canal-anatomy-shaping-the-future-of-endodontics\/"},{"slug":"simplifying-the-delivery-of-full-arch-solutions","start_date_timestamp":1796173200,"end_date_timestamp":1796176800,"link":"\/en\/webinar\/simplifying-the-delivery-of-full-arch-solutions\/"},{"slug":"creating-predictable-esthetic-implant-supported-restorations-moving-from-analog-to-digital-solutions-using-evidence-based-concepts","start_date_timestamp":1793750400,"end_date_timestamp":1793754000,"link":"\/en\/webinar\/creating-predictable-esthetic-implant-supported-restorations-moving-from-analog-to-digital-solutions-using-evidence-based-concepts\/"},{"slug":"esthetical-and-accuracy-parameters-in-full-arch-rehabilitations","start_date_timestamp":1789452000,"end_date_timestamp":1789455600,"link":"\/en\/webinar\/esthetical-and-accuracy-parameters-in-full-arch-rehabilitations\/"},{"slug":"full-arch-implant-supported-restoration-simplified-the-3-appointment-full-arch-restoration","start_date_timestamp":1788390000,"end_date_timestamp":1788393600,"link":"\/en\/webinar\/full-arch-implant-supported-restoration-simplified-the-3-appointment-full-arch-restoration\/"},{"slug":"implementing-digital-technology-in-private-practice-strategies-for-a-smooth-transition","start_date_timestamp":1782172800,"end_date_timestamp":1782176400,"link":"\/en\/webinar\/implementing-digital-technology-in-private-practice-strategies-for-a-smooth-transition\/"},{"slug":"the-endodontic-precision-protocol-simple-predictable-repeatable","start_date_timestamp":1790175600,"end_date_timestamp":1790179200,"link":"\/en\/webinar\/the-endodontic-precision-protocol-simple-predictable-repeatable\/"}
262,{"slug":"bioceramics-in-endodontics-form-scientific-evidence-to-clinical-practice","start_date_timestamp":1802188800,"end_date_timestamp":1802192400,"link":"\/en\/webinar\/bioceramics-in-endodontics-form-scientific-evidence-to-clinical-practice\/"}];
263</script>
vendor: 1 bytes, line 263
263
264<script>
265    (function($) {
266        'use strict';
267
268        const TEN_MINUTES_MS = 40 * 60 * 1000; // Changed from 30 to 10 minutes
269        const CHECK_INTERVAL_MS = 60000; // 60 seconds
270
271        function updateWebinarStates() {
272            console.log('=== WEBINAR STATE UPDATE ===');
273            console.log('Current timestamp (ms):', Date.now());
274            console.log('Current date:', new Date());
275
276            if (!upcoming_webinars || !Array.isArray(upcoming_webinars)) {
277                console.error('❌ upcoming_webinars is not available or not an array');
278                return;
279            }
280
281            console.log('Total webinars in array:', upcoming_webinars.length);
282
283            const now = Date.now();
284            const liveWebinars = [];
285
286            // Find all currently live webinars
287            upcoming_webinars.forEach(function(webinar, index) {
288                const startTimestamp = webinar.start_date_timestamp * 1000;
289                const endTimestamp = webinar.end_date_timestamp * 1000;
290                const liveStartTime = startTimestamp - TEN_MINUTES_MS; // 10 minutes before start
291
292                console.log(`\nWebinar #${index + 1}: ${webinar.slug}`);
293                console.log('  Start timestamp:', webinar.start_date_timestamp, '→', new Date(startTimestamp));
294                console.log('  End timestamp:', webinar.end_date_timestamp, '→', new Date(endTimestamp));
295                console.log('  Live window start (10min early):', new Date(liveStartTime));
296                console.log('  Is Live?', now >= liveStartTime && now <= endTimestamp);
297                console.log('  Time until live window:', ((liveStartTime - now) / 1000 / 60).toFixed(2), 'minutes');
298                console.log('  Time until end:', ((endTimestamp - now) / 1000 / 60).toFixed(2), 'minutes');
299
300                if (now >= liveStartTime && now <= endTimestamp) {
301                    console.log('  ✅ This webinar IS LIVE');
302                    liveWebinars.push({
303                        ...webinar,
304                        startTimestamp: startTimestamp,
305                        endTimestamp: endTimestamp
306                    });
307                } else if (now > endTimestamp) {
308                    console.log('  ⏹️ This webinar has ENDED');
309                } else {
310                    console.log('  ⏰ This webinar is UPCOMING');
311                }
312            });
313
314            console.log('\n📊 Summary:');
315            console.log('Live webinars found:', liveWebinars.length);
316
317            // Sort live webinars by start time (earliest first)
318            liveWebinars.sort((a, b) => a.startTimestamp - b.startTimestamp);
319
320            if (liveWebinars.length > 0) {
321                console.log('First live webinar:', liveWebinars[0].slug);
322            }
323
324            // Handle header banner
325            updateHeaderBanner(liveWebinars);
326
327            // Handle individual webinar items on page
328            updateWebinarItems(now, liveWebinars);
329
330            console.log('=== END UPDATE ===\n');
331        }
332
333        function updateHeaderBanner(liveWebinars) {
334            console.log('\n🎯 Header Banner Update:');
335
336            const $header = $('#page-header');
337            console.log('  #page-header found?', $header.length > 0);
338
339            if (!$header.length) {
340                console.warn('  ⚠️ #page-header element not found on page');
341                return;
342            }
343
344            const $existingBanner = $header.find('.now-live-banner');
345            console.log('  Existing banner found?', $existingBanner.length > 0);
346
347            if (liveWebinars.length > 0) {
348                const firstLive = liveWebinars[0];
349                console.log('  Action: Show banner for', firstLive.slug);
350                console.log('  Link:', firstLive.link);
351
352                if ($existingBanner.length) {
353                    console.log('  → Updating existing banner');
354                    $existingBanner.find('.btn').attr('href', firstLive.link);
355                } else {
356                    console.log('  → Injecting new banner');
357                    const bannerHtml = `
358                    <div class="now-live-banner">
359                        <a href="${firstLive.link}" class="btn">The webinar is live now - Join us!</a>
360                    </div>
361                `;
362                    $header.prepend(bannerHtml);
363                    console.log('  ✅ Banner injected');
364                }
365            } else {
366                console.log('  Action: Remove banner (no live webinars)');
367                if ($existingBanner.length) {
368                    $existingBanner.remove();
369                    console.log('  ✅ Banner removed');
370                } else {
371                    console.log('  → No banner to remove');
372                }
373            }
374        }
375
376        function updateWebinarItems(now, liveWebinars) {
377            console.log('\n📋 Webinar Items Update:');
378
379            // Create a map of live webinar slugs for quick lookup
380            const liveSlugMap = {};
381            liveWebinars.forEach(function(webinar) {
382                liveSlugMap[webinar.slug] = true;
383            });
384
385            console.log('  Live slug map:', Object.keys(liveSlugMap));
386
387            // Process all webinars in the data structure
388            upcoming_webinars.forEach(function(webinar, index) {
389                const selector = `.item.webinar.upcoming[data-slug="${webinar.slug}"]`;
390                const $webinarItem = $(selector);
391
392                console.log(`\n  Webinar item #${index + 1}: ${webinar.slug}`);
393                console.log('    Selector:', selector);
394                console.log('    Found on page?', $webinarItem.length > 0);
395
396                // Skip if this webinar item doesn't exist on current page
397                if (!$webinarItem.length) {
398                    console.log('    → Skipping (not on current page)');
399                    return;
400                }
401
402                const $actionsDiv = $webinarItem.find('.actions');
403                const $detailsBtn = $webinarItem.find('.btn.details');
404
405                console.log('    .actions found?', $actionsDiv.length > 0);
406                console.log('    .btn.details found?', $detailsBtn.length > 0);
407
408                if (!$actionsDiv.length || !$detailsBtn.length) {
409                    console.warn('    ⚠️ Missing required elements');
410                    return;
411                }
412
413                const startTimestamp = webinar.start_date_timestamp * 1000;
414                const endTimestamp = webinar.end_date_timestamp * 1000;
415
416                // Determine state
417                if (liveSlugMap[webinar.slug]) {
418                    console.log('    State: LIVE 🔴');
419                    // State: LIVE
420                    $actionsDiv.children().not('.btn.details').hide();
421
422                    $detailsBtn
423                        .text('NOW LIVE')
424                        .addClass('live')
425                        .removeClass('details end');
426
427                    $webinarItem
428                        .addClass('live')
429                        .removeClass('end');
430
431                } else if (now > endTimestamp) {
432                    console.log('    State: ENDED ⏹️');
433                    // State: ENDED
434                    $actionsDiv.children().not('.btn.details').hide();
435
436                    $detailsBtn
437                        .text('Webinar has ended')
438                        .addClass('end')
439                        .removeClass('live details');
440
441                    $webinarItem
442                        .addClass('end')
443                        .removeClass('live');
444
445                } else {
446                    console.log('    State: UPCOMING ⏰');
447                    // State: UPCOMING
448                    $actionsDiv.children().show();
449
450                    $detailsBtn
451                        .text('More details')
452                        .removeClass('live end')
453                        .addClass('details');
454
455                    $webinarItem.removeClass('live end');
456                }
457            });
458        }
459
460        // Run immediately on page load
461        console.log('🚀 Webinar state checker initialized');
462        updateWebinarStates();
463
464        // Run every 60 seconds
465        setInterval(updateWebinarStates, CHECK_INTERVAL_MS);
466        console.log('⏱️ Update interval set to', CHECK_INTERVAL_MS / 1000, 'seconds');
467
468    })(jQuery);
469</script>
469
470
471
472
473
474
475
476
477
478
479
480<div class="modal fade" id="modal" tabindex="-1" aria-labelledby="modalLabel" aria-hidden="true">
481  <div class="modal-dialog modal-dialog-centered">
482    <div class="modal-content">
483      <div class="modal-header">
484        <button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"><i class="fa-regular fa-xmark"></i></button>
485      </div>
486      <div class="modal-body">adfgadfg
487      </div>
488    </div>
489  </div>
490</div><div id="loader" class="loader-container">
491    <div class="loader"></div>
492</div>
493
494
495
496<script src="/site/www.colteneacademy.com/js/scripts.js?v=1775455575" defer></script>
vendor: 1 bytes, line 496
496
497<script src="/res/js/filter.js?v=1759676487" defer></script>
vendor: 1 bytes, line 497
497
498<script src="/res/js/do_ajax.js?v=1772542460" defer></script>
vendor: 1 bytes, line 498
498
499<script src="/res/js/admin.js?v=1769691332" defer></script>
vendor: 1 bytes, line 499
499
500<script src="/res/js/menu.js?v=1788509646" defer></script>
vendor: 1 bytes, line 500
500
501<script src="/res/js/comments.js?v=1766036248" defer></script>
vendor: 1 bytes, line 501
501
502<script src="/res/js/general.js?v=1783584275" defer></script>
502
503
504<script>
505    // Define configuration for TypesenseInstantSearch
506    window.TYPESENSE_CONFIG = {
507        searchEndpoint: 'https://www.colteneacademy.com/en/s/search/',
508        perPage: 10,
509        minChars: 2
510    };
511</script>
vendor: 1 bytes, line 511
511
512<script src="/res/js/search.js?v=1770902048" defer></script>
512
513
514
515
516<script src="/res/js/imagesloaded/imagesloaded.pkgd.min.js?v=1759487859"></script>
vendor: 1 bytes, line 516
516
517<script src="/res/js/visible/jquery.visible.min.js?v=1759493391"></script>
vendor: 1 bytes, line 517
517
518<script src="/res/js/counteverest/jquery.counteverest.min.js?v=.php?lang=en"></script>
vendor: 1 bytes, line 518
518
519<script src="/res/js/textfill/jquery.textfill.min.js?v=1760429445" defer></script>
519
520
521<link href="/res/js/owl-carousel/owl.carousel.css?v=1759487859" rel="stylesheet">
522<script src="/res/js/owl-carousel/owl.carousel.min.js?v=1759487859"></script>
vendor: 1 bytes, line 522
522
523<script src="/res/js/owl-carousel/owl.carousel2.thumbs.min.js?v=1759487859"></script>
523
524
525
526<link href="/res/js/select2/select2.min.css?v=1759493681" rel="stylesheet" />
527<script src="/res/js/select2/select2.min.js?v=1759493665"></script>
527
528
529
530
531 
531<script src="/res/js/momentjs/moment-with-locales.min.js?v=1759493795"></script>
531
532 
532<script src="/res/js/momentjs/moment-timezone-with-data.min.js?v=1759493777"></script>
532
533
534
535
536
537    
538    
538<script src="https://cdn.jsdelivr.net/npm/[email protected]/Sortable.min.js"></script>
538
539
540
541 
542
543<script>
544window.addEventListener('message', function (event) {
545
546  const allowedOrigins = [
547    'https://accounts.dental-tribune.com',
548    'https://www.colteneacademy.com'
549  ];
550
551  if (!allowedOrigins.includes(event.origin)) {
552    return;
553  }
554
555  if (event.data && event.data.iframeHeight) {
556    $('#sso_login_iframe').css(
557      'height',
558      (event.data.iframeHeight + 10) + 'px'
559    );
560  }
561
562});
563</script>
563
564
565
566<script>
567    const LANG = "en";
568</script>
568
569
570<script>
571const userTimeZone = Intl.DateTimeFormat().resolvedOptions().timeZone;
572const formats ={"full":"LLLL","ol":"ddd., D MMM. YYYY ||| HH:mm A","tl":"ddd., D MMM. YYYY || HH:mm A","sm":"D MMM, HH:mm"};
573
574
575</script>
575
576
577<script>
578
579    
580
581</script>
581
582
583
584
585
586<script>
587$(document).ready(function($) {
588    $('.select2-filter').select2({
589        placeholder: "Select options",
590        closeOnSelect: false, // allow multiple selections without closing
591        allowClear: true
592    });
593});
594
595</script>
595
596
597<style>
598.facet-toggle:hover { background: #eee; }
599.facet-clear, .facet-global-clear { cursor: pointer; text-decoration: underline; }
600.facet-clear:hover, .facet-global-clear:hover { color: #d00; }
601 </style>
602
603</body>
604
605</html>
606

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.