1(function($) { 2 3 // Navigation scrolls 4 $('.navbar-nav li a').bind('click', function(event) { 5 $('.navbar-nav li').removeClass('active'); 6 $(this).closest('li').addClass('active'); 7 var $anchor = $(this); 8 var nav = $($anchor.attr('href')); 9 10 if (nav.length) { 11 $('html, body').stop().animate({ 12 scrollTop: nav.offset().top - 78 13 }, 1500, 'easeInOutExpo'); 14 15 event.preventDefault(); 16 } 17 }); 18 19 $(".navbar-collapse a").on('click', function() { 20 $(".navbar-collapse.collapse").removeClass('in'); 21 }); 22 23 // Portfolio filter 24 $("#integration-flters li").click(function() { 25 $("#integration-flters li").removeClass('filter-active'); 26 $(this).addClass('filter-active'); 27 28 var selectedFilter = $(this).data("filter"); 29 $("#integration-wrapper").fadeTo(100, 0); 30 31 $(".integration-item").fadeOut().css('transform', 'scale(0)'); 32 33 setTimeout(function() { 34 $(selectedFilter).fadeIn(100).css('transform', 'scale(1)'); 35 $("#integration-wrapper").fadeTo(300, 1); 36 }, 300); 37 }); 38 39})(jQuery); 40 41 42// ======================================= 43// Workflow Tabs Hash Handling 44// ======================================= 45document.addEventListener('DOMContentLoaded', function () { 46 47 // Page load par hash se tab open 48 var hash = window.location.hash.replace('#', '').toLowerCase(); 49 50 if (hash) { 51 var tab = document.getElementById(hash + '-tab'); 52 53 if (tab) { 54 bootstrap.Tab.getOrCreateInstance(tab).show(); 55 } 56 } 57 58 // Tab click par hash add 59 document.querySelectorAll('#workflowTabs .tab-btn').forEach(function(tab) { 60 61 tab.addEventListener('shown.bs.tab', function () { 62 63 var hash = this.id.replace('-tab', ''); 64 hash = hash.charAt(0).toUpperCase() + hash.slice(1); 65 66 history.replaceState(null, null, '#' + hash); 67 68 }); 69 70 }); 71 72 // Workflow tabs ke bahar click par hash remove 73 document.addEventListener('click', function (e) { 74 75 // Agar click workflow tab button par hua hai to kuch mat karo 76 if (e.target.closest('#workflowTabs')) { 77 return; 78 } 79 80 // Hash hai to remove karo 81 if (window.location.hash) { 82 83 history.replaceState( 84 null, 85 null, 86 window.location.pathname + window.location.search 87 ); 88 89 } 90 91 }); 92 93}); 94 95// ======================================= 96// Category integration-flters 97// ======================================= 98 99function showCategory(categoryId, button){ 100 101 document.querySelectorAll('.category-content').forEach(content=>{ 102 content.classList.remove('active'); 103 }); 104 105 document.querySelectorAll('.category-btn').forEach(btn=>{ 106 btn.classList.remove('active'); 107 }); 108 109 document.getElementById(categoryId).classList.add('active'); 110 button.classList.add('active'); 111} 112 113// ======================================= 114// ROI Estimator 115// ======================================= 116 117 function fmt(n) { return n >= 1000 ? '$' + (n/1000).toFixed(1) + 'k' : '$' + Math.round(n); } 118 function fmtNum(n) { return n >= 1000 ? (n/1000).toFixed(1) + 'k' : n; } 119 120 function calc() { 121 var shipments = parseInt(document.getElementById('sldr-shipments').value); 122 var mins = parseInt(document.getElementById('sldr-mins').value); 123 var wage = parseInt(document.getElementById('sldr-wage').value); 124 var cost = parseInt(document.getElementById('sldr-cost').value); 125 126 document.getElementById('val-shipments').textContent = fmtNum(shipments) + '/mo'; 127 document.getElementById('val-mins').textContent = mins + ' min'; 128 document.getElementById('val-wage').textContent = '$' + wage + '/hr'; 129 document.getElementById('val-cost').textContent = '$' + cost; 130 131 var annualShipments = shipments * 12; 132 var laborSavings = Math.round((annualShipments * mins / 60) * wage * 0.85); 133 var carrierSavings = Math.round(annualShipments * cost * 0.18); 134 var total = laborSavings + carrierSavings; 135 136 document.getElementById('res-labor').textContent = fmt(laborSavings); 137 document.getElementById('res-carrier').textContent = fmt(carrierSavings); 138 document.getElementById('res-total').textContent = fmt(total); 139 } 140 141 ['sldr-shipments','sldr-mins','sldr-wage','sldr-cost'].forEach(function(id) { 142 document.getElementById(id).addEventListener('input', calc); 143 }); 144 calc();
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.