PageSourceSearch

https://www.tsijournals.com/assets/js/app.js

js tsijournals.com collected 2026-10-02 04:48:34 UTC 12,778 bytes, 323 lines download raw bytes

1// Core Javascript Initialization
2var App = function() {
3    'use strict';
4
5    // Bootstra Components
6    var handleBootstrapComponents = function() {
7        // Bootstrap Carousel
8        $('.carousel').carousel({
9            interval: 5000,
10            pause: 'hover'
11        });
12
13        // Tooltips
14        $('.tooltips').tooltip();
15        $('.tooltips-show').tooltip('show');
16        $('.tooltips-hide').tooltip('hide');
17        $('.tooltips-toggle').tooltip('toggle');
18        $('.tooltips-destroy').tooltip('destroy');
19
20        // Popovers
21        $('.popovers').popover();
22        $('.popovers-show').popover('show');
23        $('.popovers-hide').popover('hide');
24        $('.popovers-toggle').popover('toggle');
25        $('.popovers-destroy').popover('destroy');
26    }
27
28    // Bootstrap Navbar Trigger
29    var handleNavbarToggle = function() {
30        $('.navbar-toggle').on('click', function(event) {
31            if ($('.toggle-icon').hasClass('is-clicked')) {
32                $('.toggle-icon').removeClass('is-clicked');
33            } else {
34                $('.toggle-icon').addClass('is-clicked');
35            }
36        });
37    }
38
39    // Handle Sidebar Menu
40    var handleSidebarMenu = function() {
41        $(document).ready(function($) {
42            var $sidebar_trigger = $('.sidebar-trigger'),
43                $sidebar_content_overlay = $('.sidebar-content-overlay');
44
45            // open-close sidebar menu clicking on the menu icon
46            $sidebar_trigger.on('click', function(event){
47                event.preventDefault();
48
49                $sidebar_trigger.toggleClass('is-clicked');
50                $sidebar_content_overlay.toggleClass('sidebar-menu-is-open').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend');
51                $('.sidebar-nav').toggleClass('sidebar-menu-is-open');
52
53                // check if transitions are not supported - i.e. in IE9
54                if($('html').hasClass('no-csstransitions')) {
55                    $('body').toggleClass('overflow-hidden');
56                }
57            });
58
59            // close lateral menu clicking outside the menu itself
60            $sidebar_content_overlay.on('click', function(event){
61                if( !$(event.target).is('.sidebar-trigger') ) {
62                    $sidebar_trigger.removeClass('is-clicked');
63                    $sidebar_content_overlay.removeClass('sidebar-menu-is-open').one('webkitTransitionEnd otransitionend oTransitionEnd msTransitionEnd transitionend', function(){
64                        $('body').removeClass('overflow-hidden');
65                    });
66                    $('.sidebar-nav').removeClass('sidebar-menu-is-open');
67                    // check if transitions are not supported
68                    if($('html').hasClass('no-csstransitions')) {
69                        $('body').removeClass('overflow-hidden');
70                    }
71
72                }
73            });
74
75            // close sidebar menu scrolling on the content
76            $(window).scroll(function() {
77                if ($(this).scrollTop() > 200) {
78                    $('.sidebar-content-overlay, .sidebar-nav').removeClass('sidebar-menu-is-open');
79                    $('.sidebar-trigger').removeClass('is-clicked');
80                }
81            });
82        });
83    }
84
85    // Services v1 Collapse
86    var handleServicesV7 = function() {
87        $('.services-v7-collapsed').hide();
88        $('.services-v7').on('hover', function() {
89            $(this).find('.services-v7-collapsed').slideToggle(300);
90        });
91    }
92
93    // Work v1 Collapse
94    var handleWorkV1 = function() {
95        $('.work-v1-collapse').hide();
96        $('.work-v1').on('hover', function() {
97            $(this).find('.work-v1-collapse').slideToggle(400);
98        });
99    }
100
101    // Topbar Transparent Dropdown
102    var handleTopbarTDropdown = function() {
103        $('.topbar-t-dropdown-menu').hide();
104        $('.topbar-t-list-item').on('click', function() {
105            $(this).find('.topbar-t-dropdown-menu').slideToggle(400);
106        });
107    }
108
109    // Topbar transparent Shopping Dropdown
110    var handleTopbarTShoppingDropdown = function() {
111        $('.topbar-t-dropdown-menu').hide();
112        $('.topbar-t-shopping-window').on('click', function() {
113            $(this).find('.topbar-t-dropdown-menu').slideToggle(400);
114        });
115    }
116
117    // Topbar e-Commerce Dropdown
118    var handleTopbarEDropdown = function() {
119        $('.topbar-e-dropdown-menu').hide();
120        $('.topbar-e-list-item').on('click', function() {
121            $(this).find('.topbar-e-dropdown-menu').slideToggle(400);
122        });
123    }
124
125    // Topbar e-Commerce Shopping Dropdown
126    var handleTopbarEShoppingDropdown = function() {
127        $('.topbar-e-dropdown-menu').hide();
128        $('.topbar-e-shopping-window').on('click', function() {
129            $(this).find('.topbar-e-dropdown-menu').slideToggle(400);
130        });
131    }
132
133    // Footer Toggle Expand
134    var handleFooterToggleExpand = function() {
135        $('.footer-toggle-collapse').hide();
136        $('.footer-toggle-trigger').on('click', function(event) {
137            event.preventDefault();
138
139            $(this).toggleClass('is-open');
140            $('.footer-toggle-collapse').slideToggle(500);
141
142            $('html, body').animate({
143                scrollTop: $(document).height()
144            }, 500);
145        });
146    }
147
148    // Scroll To Section
149    var handleScrollToSection = function() {
150        $(function() {
151            $('a[href*=#scroll_]:not([href=#scroll_])').on('click', function() {
152                if (location.pathname.replace(/^\//, '') == this.pathname.replace(/^\//, '') && location.hostname == this.hostname) {
153
154                    var target = $(this.hash);
155                    target = target.length ? target : $('[name=' + this.hash.slice(1) + ']');
156                    if (target.length) {
157                        $('html,body').animate({
158                            scrollTop: target.offset().top - 70
159                        }, 1000);
160                        return false;
161                    }
162                }
163            });
164        });
165    }
166
167    // Handle Equal Height Interactive Banner
168    var handleEqualIBannerBg = function() {
169        $('.equal-height-ib-bg-img').each(function() {
170            $(this).css('background-image', 'url(' + $(this).children('img').attr('src') + ')');
171            $(this).children('img').hide();
172        });
173    }
174
175    // Fullheight
176    var handleFullheight = function() {
177        var WindowHeight = $(window).height(),
178            HeaderHeight;
179
180        if ($(document.body).hasClass('promo-top-offset')) {
181            HeaderHeight = $('.fullheight-header-offset').height();
182        } else {
183            HeaderHeight = 0;
184        }
185
186        $('.fullheight').css('height', WindowHeight - HeaderHeight);
187
188        $(window).resize(function() {
189            var WindowHeight = $(window).height();
190            $('.fullheight').css('height', WindowHeight - HeaderHeight);
191        });
192    }
193
194    // Vertical Center Aligned
195    // Note! This works only with promo block and background image via CSS.
196    var handleVerticalCenterAligned = function() {
197        $('.vertical-center-aligned').each(function() {
198            $(this).css('padding-top', $(this).parent().height() / 2 - $(this).height() / 2);
199        });
200        $(window).resize(function() {
201            $('.vertical-center-aligned').each(function() {
202                $(this).css('padding-top', $(this).parent().height() / 2 - $(this).height() / 2);
203            });
204        });
205    }
206
207    // Handle Toggle Collapse Box
208    var handleToggleCollapseBox = function() {
209        $('.theme-toggle-trigger').on('click', function(event) {
210            $(this).toggleClass('.theme-toggle-content').hide();
211            $(this).toggleClass('is-open').show();
212            $('.theme-toggle-content').slideToggle(400);
213        });
214    }
215
216    // Handle Header Fullscreen Navigation Overlay
217    var handleHeaderFullscreenOverlay = function() {
218        var overlay = $('.header-fullscreen-nav-bg-overlay'),
219            close = $('.header-fullscreen-nav-close'),
220            trigger = $('.header-fullscreen-nav-trigger'),
221            HeaderNavigation = $('.header-fullscreen-nav-overlay');
222
223        trigger.on('click', function() {
224            HeaderNavigation.removeClass('header-fullscreen-nav-overlay-show');
225            HeaderNavigation.addClass('header-fullscreen-nav-overlay-show');
226        });
227
228        close.on('click', function(e) {
229            e.stopPropagation();
230            HeaderNavigation.removeClass('header-fullscreen-nav-overlay-show');
231        });
232    }
233
234    // Handle Search
235    var handleSearch = function() {
236        var SearchTrigger = $('.search-btn');
237        SearchTrigger.on('click', function() {
238            SearchTrigger.toggleClass('is-clicked');
239            $('.search-field').fadeToggle(400);
240        });
241    }
242
243    // Handle Search Classic
244    var handleSearchClassic = function() {
245        var SearchTrigger = $('.search-classic-btn');
246        SearchTrigger.on('click', function() {
247            SearchTrigger.toggleClass('is-clicked');
248            $('.search-classic-field').fadeToggle(400);
249        });
250    }
251
252    // Handle Search Fullscreen
253    var handleSearchFullscreen = function() {
254        var overlay = $('.search-fullscreen-bg-overlay'),
255            close = $('.search-fullscreen-close'),
256            trigger = $('.search-fullscreen-trigger'),
257            SearchFullscreen = $('.search-fullscreen-overlay');
258
259        trigger.on('click', function() {
260            SearchFullscreen.removeClass('search-fullscreen-overlay-show');
261            SearchFullscreen.addClass('search-fullscreen-overlay-show');
262        });
263
264        close.on('click', function(e) {
265            e.stopPropagation();
266            SearchFullscreen.removeClass('search-fullscreen-overlay-show');
267        });
268    }
269
270    // Handle Search On Header
271    var handleSearchOnHeader = function() {
272        var SearchTrigger = $('.search-on-header-btn');
273        SearchTrigger.on('click', function() {
274            SearchTrigger.toggleClass('is-clicked');
275            $('.search-on-header-field').fadeToggle(400);
276        });
277    }
278
279    // Handle Search Push
280    var handleSearchPush = function() {
281        var SearchPushTrigger = $('.search-push-btn');
282        SearchPushTrigger.on('click', function() {
283            SearchPushTrigger.toggleClass('is-clicked');    
284            $('.search-push-open').slideToggle(400);
285        });
286
287        $(window).scroll(function(){
288            if ($(this).scrollTop() > 1) $('.search-push-open').slideUp(); {
289                SearchPushTrigger.removeClass('is-clicked');    
290            };
291        });
292    }
293
294    return {
295        init: function() {
296            handleBootstrapComponents(); // initial setup for bootstrap components
297            handleNavbarToggle(); // initial setup for navbar toggle
298            handleSidebarMenu(); // initial setup for sidebar menu
299            handleServicesV7(); // initial setup for services v7 collapse
300            handleWorkV1(); // initial setup for work v1
301            handleTopbarTDropdown(); // initial setup for topbar transparent dropdown
302            handleTopbarTShoppingDropdown(); // initial setup for topbar transparent shopping dropdown
303            handleTopbarEDropdown(); // initial setup for topbar e-commerce dropdown
304            handleTopbarEShoppingDropdown(); // initial setup for topbar e-commerce shopping dropdown
305            handleFooterToggleExpand(); // initial setup for footer toggle expand
306            handleScrollToSection(); // initial setup for scroll to section
307            handleEqualIBannerBg(); // initial setup for equal height interactive banner
308            handleFullheight(); // initial setup for fullheight
309            handleVerticalCenterAligned(); // initial setup for vertical center aligned
310            handleToggleCollapseBox(); // initial setup for toggle collapse box
311            handleHeaderFullscreenOverlay(); // initial setup for header fullscreen navigation overlay
312            handleSearch(); // initial setup for search
313            handleSearchClassic(); // initial setup for search classic
314            handleSearchFullscreen(); // initial setup for search fullscreen
315            handleSearchOnHeader(); // initial setup for search on header
316            handleSearchPush(); // initial setup for search push
317        }
318    }
319}();
320
321$(document).ready(function() {
322    App.init();
323});

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.