PageSourceSearch

https://www.gtt.net/wp-content/themes/gtt/assets/js/script.js?ver=1.2.0

js gtt.net collected 2026-09-24 08:29:50 UTC 11,819 bytes, 277 lines download raw bytes

1function copylink(){
2    var clink = jQuery('[data-gttaction=copy] a');
3    var copyclipboard = jQuery('#gtt-current-link');
4    copyclipboard.focus();
5    copyclipboard.select();
6    try {
7        var stext = document.execCommand('copy');
8        var mtext = stext ? 'Copied' : 'Not copied';
9    } catch (err) {
10        mtext = 'Unable to copy';
11    }
12    jQuery('.gttactionmsg').remove();
13    
14    var litem = jQuery( '<div />');
15    litem.attr( 'class', 'elementor-icon-list-item elementor-inline-item gttactionmsg' );
16    litem.text( mtext );
17    clink.parent().parent().append(litem);
18    setTimeout(function(){
19        jQuery('.gttactionmsg').remove();
20    },2000); 
21}
22jQuery( document ).ready(function($) {
23    //Change Language Switcher Icon
24    $('.gtt-language-switcher .trp-ls-shortcode-current-language a').html('<span class="gtt-globe-icon"></span>');
25    
26    var slink = jQuery('[data-gttaction=send] a');
27    if(typeof slink !== 'undefined' && slink !== false){
28        var sendlink = 'mailto:?subject=';
29        sendlink = sendlink + jQuery('title').text();
30        sendlink = sendlink + '&body=';
31        sendlink = sendlink + jQuery(location).attr('href');
32        slink.attr('href',sendlink);
33    }
34    var clink = jQuery('[data-gttaction=copy] a');
35    clink.click(function(event){
36        event.preventDefault();
37    }); 
38    if(typeof clink !== 'undefined' && clink !== false){
39        clink.attr('onclick','javascript:copylink();');
40        var lint = jQuery( '<input />');
41        lint.attr( 'type', 'text' );
42        lint.attr( 'id', 'gtt-current-link' );
43        lint.attr( 'value', jQuery(location).attr('href') );
44        lint.attr( 'aria-label', jQuery('title').text() );
45        lint.attr( 'tabindex', '-1' );
46        lint.attr( 'autocomplete', 'off' );
47        lint.attr( 'style', 'position: absolute; top: -9999px; left: -9999px;' );
48        clink.parent().parent().append(lint);
49    }
50    
51    // Equal Height for Services card inner elements
52    $('body').find('.gtt-services-cards').each(function(wrap){
53        var maxImg = maxTitle = maxDesc = maxCTA = 0;
54        $(this).find('.elementor-column').each(function(col){
55            var currentImg = $(this).find('.elementor-image-box-img img').height();
56            var currentTitle = $(this).find('.elementor-image-box-title').height();
57            var currentDesc = $(this).find('.elementor-image-box-description').height();
58            var currentCTA = $(this).find('.elementor-widget-button').height();
59            if( maxImg < currentImg){
60                maxImg = currentImg;
61            }
62            if( maxTitle < currentTitle){
63                maxTitle = currentTitle;
64            }
65            if( maxDesc < currentDesc){
66                maxDesc = currentDesc;
67            }
68            if( maxCTA < currentCTA){
69                maxCTA = currentCTA;
70            }
71        });
72        $(this).find('.elementor-column').each(function(e){
73            $(this).find('.elementor-image-box-img img').height(maxImg);
74            $(this).find('.elementor-image-box-img').width('auto');
75            if ( $(window).width() > 768 ) {
76                $(this).find('.elementor-image-box-title').height(maxTitle);
77                $(this).find('.elementor-image-box-description').height(maxDesc);
78                $(this).find('.elementor-widget-button').height(maxCTA);
79            }
80        });
81    } );    
82    
83
84    /* TOGGLING NESTED ul */
85    jQuery(".gtt-sort-field .gtt-dropdown .gtt-default-option").click(function() {
86        jQuery(".gtt-sort-field .gtt-dropdown ul").toggle();
87    });
88    /* SELECT OPTIONS AND HIDE OPTION AFTER SELECTION */
89    jQuery(".gtt-sort-field .gtt-dropdown ul li").click(function() {
90        var text = jQuery(this).text();
91        jQuery(".gtt-sort-field .gtt-dropdown .gtt-default-option").text( text );
92        jQuery(".gtt-sort-field .gtt-dropdown ul").hide();
93    });
94    jQuery(".gtt-sort-field .gtt-dropdown ul li input[type=radio][name=sortby]").on('change', function() {
95        var pageid = jQuery(this).attr('data-id');
96        location.href = jQuery(pageid).attr('href');
97    }); 
98    /* HIDE OPTIONS IF CLICKED ANYWHERE ELSE ON PAGE */
99    jQuery(document).bind('click', function(e) {
100        var $clicked = jQuery(e.target);
101        if (! $clicked.parents().hasClass("gtt-dropdown"))
102            jQuery(".gtt-sort-field .gtt-dropdown ul").hide();
103    });
104    /* GET PARAMETER FROM URL AND MAKE CHECKED RADIO */
105    const gttparams = new URL(location.href).searchParams;
106        if(typeof(gttparams.get('order')) !== "undefined") {
107            if (gttparams.get('order')!==null) {
108                var dataid =  gttparams.get('order').toUpperCase();
109                var data_title = '';
110                
111                if(dataid == 'OLDEST'){
112                    
113                    jQuery("input[value='Oldest']").each(function( index ) {
114                        jQuery(this).prop('checked', true);
115                        jQuery(this).addClass('checked');
116                });
117                    //jQuery("input[value='Oldest']").prop('checked', true);
118                    data_title = jQuery("input[value='Oldest']").eq( 1 ).attr("data-title");
119                }
120                else if(dataid == 'NEWEST'){
121    
122                    jQuery("input[value='Newest']").each(function( index ) {
123                        jQuery(this).prop('checked', true);
124                        jQuery(this).addClass('checked');
125                    });
126                    
127                    data_title = jQuery("input[value='Newest']").eq( 1 ).attr("data-title");
128                }
129                jQuery('.gtt-sort-field .gtt-dropdown .gtt-default-option').text( data_title );
130            }else{
131                jQuery('.gtt-sort-field .gtt-dropdown #newest').prop('checked', true);
132                jQuery('.gtt-sort-field .gtt-dropdown #newest').addClass('checked');
133            }
134        }
135        else{
136            jQuery('.gtt-sort-field .gtt-dropdown #newest').prop('checked', true);
137            jQuery('.gtt-sort-field .gtt-dropdown #newest').addClass('checked');
138        }
139
140
141    /*search filter customized */
142  jQuery('input[name="_sf_custom_sort_order"]').on("change",
143      function(){ 
144          var current_value = this.value;
145          jQuery("input[name='_sf_sort_order[]']:checked").removeAttr("checked");
146            //jQuery("input[name='_sf_sort_order[]'][value='" + current_value + "']").attr("checked", "checked");
147            jQuery("input[name='_sf_sort_order[]'][value='" + current_value + "']").prop( "checked", true );
148            jQuery("input[name='_sf_sort_order[]']").trigger("change"); 
149          });
150    
151    
152    /* search filter toggle */
153    jQuery(document).on("click",".searchandfilter ul li h4", function () {
154        
155        jQuery(this).toggleClass('collapse');
156        jQuery(this).next().slideToggle();
157    });
158
159
160    jQuery(".searchandfilter ul li h4").slice(1).slice(1).each(function(argument) {
161        jQuery(this).next().slideToggle();
162    });
163
164
165    /* SIDEBAR TOGGLES */
166    jQuery(".gtt-filter-open-btn a").on("click", function (e) {
167        e.preventDefault();
168        jQuery(".gtt-sidebar-filters").addClass("gtt-sidebar-opened");
169        jQuery("body").addClass("filter-opened");
170    });
171    jQuery(".gtt-filter-close-btn a").on("click", function (e) {
172        e.preventDefault();
173        jQuery(".gtt-sidebar-filters").removeClass("gtt-sidebar-opened");
174        jQuery("body").removeClass("filter-opened");    
175    });
176    jQuery(document).on("click", function (e) {
177        if (jQuery(e.target).closest(".gtt-sidebar-opened").length === 0 && jQuery(e.target).closest(".gtt-filter-open-btn a").length === 0) {
178            jQuery(".gtt-sidebar-filters").removeClass("gtt-sidebar-opened");
179            jQuery("body").removeClass("filter-opened");
180        }
181    });
182
183
184    /* SET DATA LAYER */
185    if(typeof gtt_tracking_fields !== 'undefined' && typeof gtt_tracking_fields.page_type_text_website_form_id !== 'undefined' && gtt_tracking_fields.page_type_text_website_form_id !== ""){
186        jQuery("body").prepend(gtt_tracking_fields.page_type_text_website_form_id);
187    }
188    if(typeof gtt_tracking_fields !== 'undefined' && typeof gtt_tracking_fields.acronym !== 'undefined' && gtt_tracking_fields.acronym !== ""){
189        jQuery("body").prepend(gtt_tracking_fields.acronym);
190    }
191    if(typeof gtt_tracking_fields !== 'undefined' && typeof gtt_tracking_fields.content_type !== 'undefined' && gtt_tracking_fields.content_type !== ""){
192        jQuery("body").prepend(gtt_tracking_fields.content_type);
193    }
194
195    //Lazy Load images fix for Ajax Load
196    $( document ).ajaxComplete(function( event, xhr, settings ) {
197        if(settings.url.indexOf("/?sf_data=results") <= 1 ){
198            return;
199        }
200        $('.jetpack-lazy-image').each(function() {
201            e = $(this);
202            // if (!(e instanceof HTMLImageElement)) return;
203            const i = e.data("lazy-srcset"),
204            o = e.data("lazy-sizes");
205            e.removeAttr("data-lazy-srcset"), e.removeAttr("data-lazy-sizes"), e.removeAttr("data-lazy-src"), e.addClass("jetpack-lazy-image--handled"), e.data("lazy-loaded", 1), o && e.attr("sizes", o), i ? e.attr("srcset", i) : e.removeAttr("srcset"), e.attr("loading", "eager");
206        });
207    });
208
209    /* Disable Single Page of Awards Analysts */
210    if(jQuery(".post-type-archive-awards-analysts .archive_list .elementor-post__thumbnail__link").length>0){
211        jQuery(".post-type-archive-awards-analysts .archive_list .elementor-post__thumbnail__link").removeAttr("href"); 
212    }
213    if(jQuery(".post-type-archive-awards-analysts .archive_list .elementor-post__title a").length>0){
214        jQuery(".post-type-archive-awards-analysts .archive_list .elementor-post__title a").removeAttr("href"); 
215    }
216
217    /* Target on lets talk form section */
218    jQuery(document).on("click","a[href='#lets-talk-section']",function(e) {
219        e.preventDefault();
220        jQuery("body, html").animate({ scrollTop: jQuery('#letstalk').offset().top - 100 }, 1000);
221    });
222    jQuery(document).on("click","a[href='#letstalk']",function(e) {
223        e.preventDefault();
224        jQuery("body, html").animate({ scrollTop: jQuery('#letstalk').offset().top - 100 }, 1000);
225    });
226    jQuery(document).on("click","#gtt-lets-talk-btn",function(e) {
227        e.preventDefault();
228        jQuery("body, html").animate({ scrollTop: jQuery('#letstalk').offset().top - 100 }, 1000);
229    });
230});
231
232//Marketo MSQL form feature to submit the form when the form is hidden because it was already submitted before
233document.addEventListener('DOMContentLoaded', function() {
234	const form = document.querySelector('form.mktoForm');
235	if(form){
236		const inputs = form.querySelectorAll('input');
237		const downloadButton = document.getElementById('downloadButton');
238
239		// Function to save input values to localStorage
240		function saveInputValues() {
241				inputs.forEach(input => {
242						localStorage.setItem(input.name, input.value);
243				});
244		}
245
246		// Function to load input values from localStorage
247		function loadInputValues() {
248				inputs.forEach(input => {
249						if (localStorage.getItem(input.name)) {
250								input.value = localStorage.getItem(input.name);
251						}
252				});
253		}
254
255		// Load input values when the page is loaded
256		loadInputValues();
257
258		// Save input values when the form is submitted
259		form.addEventListener('submit', function(event) {
260				saveInputValues();
261		});
262
263		// Submit the form when the download button is clicked
264		downloadButton.addEventListener('click', function(event) {
265				event.preventDefault();
266
267				//Load input values again before submission
268				loadInputValues();
269
270				const submitButton = document.querySelector('div.mktoButtonRow > span > button');
271
272				if (submitButton) {
273						submitButton.click();
274				} 
275		});
276	}
277});

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.