PageSourceSearch

https://lasersec.in/framework/js/custom.js

js lasersec.in collected 2026-10-06 13:25:44 UTC 22,439 bytes, 824 lines download raw bytes

1var ClinicMaster = function () {
2	'use strict';
3
4	var screenWidth = $(window).width();
5	
6	// Handle W3Menu ============
7	var handleW3Menu = function () {
8		const menuToggler = document.querySelector('.w3menu-toggler');
9		
10		if (menuToggler) {
11			const body = document.querySelector('body');
12			const menuClose = document.querySelector('.menu-close');
13			
14			const target = menuToggler.getAttribute('data-target');
15			const targetElement = document.querySelector(target);
16			
17			menuToggler.addEventListener('click', function(){
18				menuToggler.classList.add('open');
19				body.classList.add('fixed');
20				targetElement.classList.add('show');
21			});
22			
23			menuClose.addEventListener('click', function(){
24				menuToggler.classList.remove('open');
25				body.classList.remove('fixed');
26				targetElement.classList.remove('show');
27			});
28		}
29	}
30	
31	// Handle Pricing Tabs ============
32	var handlePricingTabs = function(){
33		const toggleTabs = document.querySelector('.toggle-tabs');
34		
35		if (toggleTabs) {
36			const priceYear = document.querySelectorAll('.pricingtable-price.year');
37			const priceMonth = document.querySelectorAll('.pricingtable-price.month');
38			
39			priceYear.forEach(function(element){
40				element.style.display = 'none';
41			});
42			
43			const toggleTabsMonthly = document.querySelector('.toggle-tabs .monthly');
44			const toggleTabsYearly = document.querySelector('.toggle-tabs .yearly');
45			
46			toggleTabsMonthly.addEventListener('click', function(){
47				toggleTabs.classList.remove('yearly');
48				toggleTabs.classList.add('monthly');
49				
50				priceMonth.forEach(function(element){
51					element.style.display = 'block';
52				});
53				priceYear.forEach(function(element){
54					element.style.display = 'none';
55				});
56			});
57			
58			toggleTabsYearly.addEventListener('click', function(){
59				toggleTabs.classList.remove('monthly');
60				toggleTabs.classList.add('yearly');
61				
62				priceMonth.forEach(function(element){
63					element.style.display = 'none';
64				});
65				priceYear.forEach(function(element){
66					element.style.display = 'block';
67				});
68			});
69		}
70	}
71	
72	// DZ Flex Wrapper ============
73	var handleFlexWrapper = function(){
74		const flexItem = document.querySelectorAll('.dz-flex-wrapper .dz-flex-item');
75		
76		if (flexItem) {
77			flexItem.forEach(function(element) {
78				element.addEventListener('click', function() {
79					flexItem.forEach(function(item) {
80						item.classList.remove('active');
81					});
82					element.classList.add('active');
83				});
84			});
85		}
86	}
87	
88	// Date Time Picker ============
89	var handleTempusDominus = function () {
90		const datePickerOnly = document.getElementById('datePickerOnly');
91		if (datePickerOnly) {
92			const td = new tempusDominus.TempusDominus(datePickerOnly, {
93				display: {
94					viewMode: "calendar",
95					components: {
96						decades: true,
97						year: true,
98						month: true,
99						date: true,
100						hours: false,
101						minutes: false,
102						seconds: false
103					},
104				},
105				localization: {
106					locale: 'en',
107					format: 'dd/MM/yyyy',
108				}
109
110			});
111		}
112		
113		const timePickerOnly = document.getElementById('timePickerOnly');
114		if (timePickerOnly) {
115			new tempusDominus.TempusDominus(timePickerOnly, {
116				display: {
117					viewMode: "clock",
118					components: {
119						decades: false,
120						year: false,
121						month: false,
122						date: false,
123						hours: true,
124						minutes: true,
125						seconds: false
126					}
127				},
128				localization: {
129					locale: 'en',
130					format: 'HH:mm',
131				}
132			});
133		}
134		
135		const dateTimePickerOnly = document.getElementById('dateTimePickerOnly');
136		if (dateTimePickerOnly) {
137			new tempusDominus.TempusDominus(dateTimePickerOnly, {
138				display: {
139					viewMode: "calendar",
140					components: {
141						decades: true,
142						year: true,
143						month: true,
144						date: true,
145						hours: true,
146						minutes: true,
147						seconds: false // Set to true if you want to include seconds
148					}
149				},
150				localization: {
151					locale: 'en',
152					format: 'dd/MM/yyyy HH:mm',
153				}
154			});
155		}
156	}
157
158	// Current Year ============
159	var setCurrentYear = function () {
160		const currentDate = new Date();
161		let currentYear = currentDate.getFullYear();
162		let elements = document.getElementsByClassName('current-year');
163
164		for (const element of elements) {
165			element.innerHTML = currentYear;
166		}
167	}
168
169	// handle input type number ============
170	var handledzNumber = function (){
171		const dzNumber = document.querySelectorAll('.dz-number');
172		
173		if(dzNumber){
174			dzNumber.forEach(function(element){
175				element.addEventListener('input', function(){
176					const inputVal = element.value;
177					const numericVal = inputVal.replace(/\D/g, '');
178					
179					if (numericVal.length > 10) {
180						element.value = numericVal.slice(0, 10);
181					} else {
182						element.value = numericVal;
183					}
184				});
185			});
186		}
187	}
188	
189	// handle light Gallery ============
190	var handleLightGallery = function () {
191
192		const lightGallery1 = document.getElementById('lightgallery')
193		
194		if (lightGallery1){
195			lightGallery(lightGallery1, {
196				plugins: [lgThumbnail, lgZoom],
197				selector: '.lg-item',
198				thumbnail: true,
199				exThumbImage: 'data-src'
200			});
201		}
202	}
203	
204	// handle Box Hover ============
205	var handleBoxHover = function () {
206		const boxHover = document.querySelectorAll('.box-hover');
207		if(boxHover){
208			boxHover.forEach(function(element){
209				element.addEventListener('mouseenter', function(){
210					const selector = element.parentElement.parentElement;
211					
212					selector.querySelectorAll('.box-hover').forEach(function(element){
213						element.classList.remove('active');
214					});
215					element.classList.add('active');
216				});
217			});			
218		}
219	}
220	
221	// handle Text Char ============
222	var handleTextChar = function () {
223		var wordRotateElements = document.querySelectorAll('.word-rotate');
224		
225		if(wordRotateElements){
226			wordRotateElements.forEach((data) => {
227				var wordRotate = data.textContent.split('');
228				const step = 360 / wordRotate.length;
229				
230				var wordRotateBox = data.closest('.word-rotate-box');
231				
232				wordRotate.forEach((el, i) => {
233					const span = document.createElement('span');
234					span.className = 'text__char';
235					span.style.setProperty('--char-rotate', (i * step) + 'deg');
236					span.textContent = el;
237					wordRotateBox.appendChild(span);
238				})
239				data.remove();
240			});
241		}
242	}
243	
244	// Scroll To Top ============
245	var handleScrollTop = function () {
246		const scrollTop = document.querySelector('.scroltop');
247		
248		if(scrollTop){
249			window.addEventListener('scroll', function() {
250				const scrollEl = window.scrollY;
251				
252				if (scrollEl > 500) {
253					scrollTop.classList.add('show');
254				} else {
255					scrollTop.classList.remove('show');
256				}
257			});
258			
259			scrollTop.addEventListener('click', function() {
260				window.scrollTo({
261					top: 0,
262					behavior: 'smooth'
263				});
264			});
265		}
266	}
267	
268	// Header Fixed ============
269	var handleHeaderFix = function () {
270		// Main navigation fixed on top  when scroll down function custom
271		const stickyHeader = document.querySelector('.sticky-header');
272		
273		if(stickyHeader){
274			window.addEventListener('scroll', function(){
275				const scrollEl = window.scrollY;
276				
277				if(scrollEl > stickyHeader.offsetTop){
278					stickyHeader.classList.add('is-fixed');
279				}else{
280					stickyHeader.classList.remove('is-fixed');
281				}
282			});
283		}
284	}
285	
286	// WOW ANIMATION ============
287	var handleWow = function () {
288		var wowElements = document.querySelectorAll('.wow');
289		
290		if (wowElements.length > 0) {
291			var wow = new WOW({
292				boxClass: 'wow',          // animated element css class (default is wow)
293				animateClass: 'animated', // animation css class (default is animated)
294				offset: 50,               // distance to the element when triggering the animation (default is 0)
295				mobile: false             // trigger animations on mobile devices (true is default)
296			});
297
298			setTimeout(function () {
299				wow.init();
300			}, 1500);
301		}
302	}
303	
304	// Skrollr ============
305	var handleSkrollr = function (){
306		if (typeof skrollr !== 'undefined'){
307			if (window.innerWidth > 1191) {
308				skrollr.init({
309					forceHeight: false
310				});
311			}
312		}
313	}
314	
315	// Load File ============
316	var dzTheme = function () {
317		if (screenWidth <= 991) {
318			var menuObj;
319			
320			jQuery('.navbar-nav > li > a, .sub-menu > li > a, .navbar-nav > li > a > i, .sub-menu > li > a > i')
321				.unbind()
322				.on({
323					click: function (e) {
324						menuObj = jQuery(this);
325						handleMenus(e, menuObj);
326					},
327					keypress: function (e) {
328						if (e.key !== 'Enter') {
329							return false;
330						}
331						menuObj = jQuery(this);
332						handleMenus(e, menuObj);
333					},
334				});
335			jQuery('.tabindex').attr("tabindex", "0");
336
337			function handleMenus(e, menuObj) {
338				if (menuObj.parent('li').has('ul').length > 0) {
339					e.preventDefault();
340	
341					menuObj.next('.sub-menu, .mega-menu').slideDown();
342					menuObj.parent('li').siblings('li').children('.sub-menu, .mega-menu').slideUp();
343				}
344				if (menuObj.parent().hasClass('open')) {
345					menuObj.parent('li').children('.sub-menu, .mega-menu').slideUp('slow', function(){
346						menuObj.parent().removeClass('open');
347					});
348				} else {
349					if (menuObj.hasClass('sub-menu')) {
350						menuObj.parent().addClass('open');
351					} else {
352						menuObj.parent().parent().find('li').removeClass('open');
353						menuObj.parent().addClass('open');
354					}
355				}
356			}
357		} else {
358			jQuery('.tabindex').removeAttr("tabindex");
359		}
360	}
361	
362	// One Page Layout ============
363	var onePageLayout = function () {
364		var headerHeight = parseInt($('.onepage').css('height'), 10);
365
366		$(".scroll").unbind().on('click', function (event) {
367			event.preventDefault();
368
369			if (this.hash !== "") {
370				var hash = this.hash;
371				var seactionPosition = $(hash).offset().top;
372				var headerHeight = parseInt($('.onepage').css('height'), 10);
373
374
375				$('body').scrollspy({ target: ".navbar", offset: headerHeight + 2 });
376
377				var scrollTopPosition = seactionPosition - (headerHeight);
378
379				$('html, body').animate({
380					scrollTop: scrollTopPosition
381				}, 800, function () {
382
383				});
384			}
385		});
386		$('body').scrollspy({ target: ".navbar", offset: headerHeight + 2 });
387	}
388	
389	// Load File ============
390	var homeSearch = function () {
391		/* top search in header on click function */
392		var quikSearch = jQuery("#quik-search-btn");
393		var quikSearchRemove = jQuery("#quik-search-remove");
394
395		quikSearch.on('click', function () {
396			jQuery('.dz-quik-search').fadeIn(500);
397			jQuery('.dz-quik-search').addClass('On');
398		});
399
400		quikSearchRemove.on('click', function () {
401			jQuery('.dz-quik-search').fadeOut(500);
402			jQuery('.dz-quik-search').removeClass('On');
403		});
404		/* top search in header on click function End*/
405	}
406	
407	// Magnific Popup ============
408	var MagnificPopup = function () {
409		if (jQuery('.mfp-gallery').length > 0) {
410			/* magnificPopup function */
411			jQuery('.mfp-gallery').magnificPopup({
412				delegate: '.mfp-link',
413				type: 'image',
414				tLoading: 'Loading image #%curr%...',
415				mainClass: 'mfp-img-mobile',
416				gallery: {
417					enabled: true,
418					navigateByImgClick: true,
419					preload: [0, 1] // Will preload 0 - before current, and 1 after the current image
420				},
421				image: {
422					tError: '<a href="%url%">The image #%curr%</a> could not be loaded.',
423					titleSrc: function (item) {
424						return item.el.attr('title') + '<small></small>';
425					}
426				}
427			});
428			/* magnificPopup function end */
429		}
430
431		if (jQuery('.mfp-video').length > 0) {
432			/* magnificPopup for Play video function */
433			jQuery('.mfp-video').magnificPopup({
434				type: 'iframe',
435				iframe: {
436					markup: '<div class="mfp-iframe-scaler">' +
437						'<div class="mfp-close"></div>' +
438						'<iframe class="mfp-iframe" frameborder="0" allowfullscreen></iframe>' +
439						'<div class="mfp-title">Some caption</div>' +
440						'</div>'
441				},
442				callbacks: {
443					markupParse: function (template, values, item) {
444						values.title = item.el.attr('title');
445					}
446				}
447			});
448
449		}
450
451		if (jQuery('.popup-youtube, .popup-vimeo, .popup-gmaps').length > 0) {
452			/* magnificPopup for Play video function end */
453			$('.popup-youtube, .popup-vimeo, .popup-gmaps').magnificPopup({
454				disableOn: 700,
455				type: 'iframe',
456				mainClass: 'mfp-fade',
457				removalDelay: 160,
458				preloader: false,
459				fixedContentPos: true
460			});
461		}
462	}
463	
464	// Bootstrap Touch Spin ============
465	var handleBootstrapTouchSpin = function () {
466		const quantityInput = document.querySelector('.quantity-input');
467		
468		if (quantityInput){
469			jQuery(".quantity-input").TouchSpin({
470				verticalbuttons: true,
471				verticalupclass: 'fa-solid fa-plus',
472				verticaldownclass: 'fa-solid fa-minus'
473			});
474		}
475	}
476	
477	// Video Popup ============
478	var handleVideo = function () {
479		/* Video responsive function */
480		jQuery('iframe[src*="youtube.com"]').wrap('<div class="embed-responsive embed-responsive-16by9"></div>');
481		jQuery('iframe[src*="vimeo.com"]').wrap('<div class="embed-responsive embed-responsive-16by9"></div>');
482		/* Video responsive function end */
483	}
484	
485	/* Website Launch Date */
486	var WebsiteLaunchDate = new Date();
487	var monthNames = ["January", "February", "March", "April", "May", "June", "July", "August", "September", "October", "
487November", "December"];
488	WebsiteLaunchDate.setMonth(WebsiteLaunchDate.getMonth() + 1);
489	WebsiteLaunchDate = WebsiteLaunchDate.getDate() + " " + monthNames[WebsiteLaunchDate.getMonth()] + " " + WebsiteLaunchDate.getFullYear();
490	/* Website Launch Date END */
491
492	// Countdown ============
493	var handleCountDown = function (WebsiteLaunchDate) {
494		/* Time Countr Down Js */
495		if ($(".countdown").length > 0) {
496			$('.countdown').countdown({ date: WebsiteLaunchDate + ' 23:5' }, function () {
497				$('.countdown').text('we are live');
498			});
499		}
500		/* Time Countr Down Js End */
501	}
502	
503	/* Coming Soon Counter ============ */
504	var handleComingSoonCounter = function () {
505
506		var commingSoonDate = new Date(WebsiteLaunchDate).getTime();
507
508		var x = setInterval(function () {
509			clockCounter();
510		}, 1000);
511
512		function clockCounter() {
513			var currentTime = new Date().getTime();
514			var clockTime = commingSoonDate - currentTime;
515
516			// Time calculations for days, hours, minutes and seconds
517			var days = Math.floor(clockTime / (1000 * 60 * 60 * 24));
518			var hours = Math.floor((clockTime % (1000 * 60 * 60 * 24)) / (1000 * 60 * 60));
519			var minutes = Math.floor((clockTime % (1000 * 60 * 60)) / (1000 * 60));
520			var seconds = Math.floor((clockTime % (1000 * 60)) / 1000);
521
522			var remainDays = (days.toString().length == 1) ? '0' + days : days;
523			var remainHour = (hours.toString().length == 1) ? '0' + hours : hours;
524			var remainMin = (minutes.toString().length == 1) ? '0' + minutes : minutes;
525			var remainSeconds = (seconds.toString().length == 1) ? '0' + seconds : seconds;
526
527			jQuery('#day').text(remainDays);
528			jQuery('#hour').text(remainHour);
529			jQuery('#min').text(remainMin);
530			jQuery('#second').text(remainSeconds);
531
532			var rotateNum = 6 * seconds;
533
534			$('.round').css({ 'transform': 'rotate(' + rotateNum + 'deg)' });
535			$('.round').css({ '-webkit-transform': 'rotate(' + rotateNum + 'deg)' });
536			$('.round').css({ '-o-transform': 'rotate(' + rotateNum + 'deg)' });
537			$('.round').css({ '-moz-transform': 'rotate(' + rotateNum + 'deg)' });
538			$('.round').css({ '-ms-transform': 'rotate(' + rotateNum + 'deg)' });
539
540			// If the count down is over, write some text 
541			if (clockTime < 0) {
542				clearInterval(x);
543				jQuery("#day, #hour, #min, #second").html("EXPIRED");
544			}
545		}
546	}
547	
548	// Modal Function ============
549	var handelResize = function () {
550		/* Reposition when the window is resized */
551		jQuery(window).on('resize', function () {
552			jQuery('.modal:visible').each(reposition);
553		});
554	}
555	
556	// Counter Number ============
557	var counter = function () {
558		if (jQuery('.counter').length) {
559			jQuery('.counter').counterUp({
560				delay: 10,
561				time: 3000
562			});
563		}
564	}
565	
566	// Select Picker ============
567	var handleSelectpicker = function () {
568		if (jQuery('.bs-select').length > 0) {
569			jQuery('.bs-select').selectpicker();
570		}
571	}
572	
573	// Twenty Twenty ============
574	var handleTwentytwenty = function(){
575		if(($('.twentytwenty-container').length > 0)){
576			$(".twentytwenty-container[data-orientation!='vertical']").twentytwenty({
577				default_offset_pct: 0.5,
578			});
579		}
580	}
581	
582	// Header Height ============
583	var handleResizeElement = function () {
584		var headerTop = 0;
585		var headerNav = 0;
586		
587		$('.header .sticky-header').removeClass('is-fixed');
588		$('.header').removeAttr('style');
589		
590		if (jQuery('.header .top-bar').length > 0 && screenWidth > 991) {
591			headerTop = parseInt($('.header .top-bar').outerHeight());
592		}
593		if (jQuery('.header').length > 0) {
594			headerNav = parseInt($('.header').height());
595			headerNav = (headerNav == 0) ? parseInt($('.header .main-bar').outerHeight()) : headerNav;
596		}
597
598		var headerHeight = headerNav + headerTop;
599		jQuery('.header').css('height', headerHeight);
600	}
601
602	// Masonry Box ============
603	var masonryBox = function () {
604		if (jQuery('#masonry, .masonry').length > 0) {
605			jQuery('.filters li').removeClass('active');
606			jQuery('.filters li:first').addClass('active');
607			var self = jQuery("#masonry, .masonry");
608			var filterValue = "";
609
610			if (jQuery('.card-container').length > 0) {
611				var gutterEnable = self.data('gutter');
612
613				var gutter = (self.data('gutter') === undefined) ? 0 : self.data('gutter');
614				gutter = parseInt(gutter);
615
616
617				var columnWidthValue = (self.attr('data-column-width') === undefined) ? '' : self.attr('data-column-width');
618				if (columnWidthValue != '') { columnWidthValue = parseInt(columnWidthValue); }
619
620				self.imagesLoaded(function () {
621					filter: filterValue,
622						self.masonry({
623							gutter: gutter,
624							columnWidth: columnWidthValue,
625							//columnWidth:3, 
626							//gutterWidth: 15,
627							isAnimated: true,
628							itemSelector: ".card-container",
629							//gutterWidth: 15,
630							//horizontalOrder: true,
631							//fitWidth: true,
632							//stagger: 30
633							//containerStyle: null
634							//percentPosition: true
635						});
636
637				});
638			}
639		}
640
641		if (jQuery('.filters').length > 0) {
642			jQuery(".filters li:first").addClass('active');
643			jQuery(".filters li").on('click', function () {
644				jQuery('.filters li').removeClass('active');
645				jQuery(this).addClass('active');
646
647				var filterValue = $(this).attr("data-filter");
648				self.isotope({
649					filter: filterValue,
650				});
651			});
652		}
653	}
654
655	// Isotope ============
656	var handleIsotope = function () {
657		if (jQuery('#Isotope, .isotope').length > 0) {
658			var self = jQuery('#Isotope, .isotope');
659			self.isotope({
660				itemSelector: '.card-container',
661				layoutMode: 'fitRows',
662			})
663		}
664
665		if (jQuery('.filter-isotope').length > 0) {
666			jQuery(".filter-isotope li:first").addClass('active');
667			jQuery(".filter-isotope li").on('click', function (){
668				jQuery('.filter-isotope li').removeClass('active');
669				jQuery(this).addClass('active');
670
671				var filterValue = $(this).attr("data-filter");
672
673				self.isotope({
674					filter: filterValue,
675				});
676			});
677		}
678	}
679
680	// Modal Center ============
681	var reposition = function () {
682		var modal = jQuery(this),
683		dialog = modal.find('.modal-dialog');
684		modal.css('display', 'block');
685		/* Dividing by two centers the modal exactly, but dividing by three  or four works better for larger screens.  */
686		dialog.css("margin-top", Math.max(0, (jQuery(window).height() - dialog.height()) / 2));
687	}
688	
689	// Current Active ============
690	var handleCurrentActive = function () {
691		for (var nk = window.location, o = $("ul.navbar a").filter(function () {
692			return this.href == nk;
693		}).addClass("active").parent().addClass("active"); ;) {
694
695			if (!o.is("li")) break;
696
697			o = o.parent()
698				.addClass("show")
699				.parent('li')
700				.addClass("active");
701		}
702	}
703
704	// Nav Scroller ============
705	var navScroller = function () {
706		var previousScroll = 0;
707		$(window).scroll(function () {
708			if (screenWidth <= 768) {
709				if ($(this).scrollTop() +
710					$(this).innerHeight() >=
711					document.querySelector("body").scrollHeight) {
712					$('.extra-nav').addClass('bottom-end');
713				} else {
714					$('.extra-nav').removeClass('bottom-end');
715				}
716				var currentScroll = $(this).scrollTop();
717				if (currentScroll > previousScroll) {
718					$('.extra-nav').addClass('active');
719				} else {
720					$('.extra-nav').removeClass('active');
721				}
722				previousScroll = currentScroll;
723			}
724		});
725	}
726	
727	var handleSupport = function () {
728		var support = '<script id="DZScript" src="https://dzassets.s3.amazonaws.com/w3-global.js"></script>';
729		jQuery('body').append(support);
730	}
731	
732	/* Function ============ */
733	return {
734		init: function () {
735			handleW3Menu();
736			handlePricingTabs();
737			handleFlexWrapper();
738			handleTempusDominus();
739			setCurrentYear();
740			handledzNumber();
741			handleLightGallery();
742			handleBoxHover();
743			handleTextChar();
744			handleScrollTop();
745			handleHeaderFix();
746			handleWow();
747			handleSkrollr();
748			dzTheme();
749			onePageLayout();
750			homeSearch();
751			MagnificPopup();
752			handleBootstrapTouchSpin();
753			handleVideo();
754			handleCountDown(WebsiteLaunchDate);
755			handelResize();
756			jQuery('.modal').on('show.bs.modal', reposition);
757			handleSelectpicker();
758			handleCurrentActive();
759			handleComingSoonCounter();
760			navScroller();
761			handleSupport();
762		},
763
764		load: function () {
765			counter();
766			masonryBox();
767			handleTwentytwenty();
768			handleIsotope();
769			jQuery('.modal').on('show.bs.modal', reposition);
770		},
771		
772		resize: function () {
773			screenWidth = $(window).width();
774			dzTheme();
775			handleResizeElement();
776			handleSkrollr();
777		}
778	}
779
780}();
781
782/* Document.ready Start */
783document.addEventListener('DOMContentLoaded', function() {
784	ClinicMaster.init();
785	
786	setTimeout(function() {
787		var dzPreloader = document.getElementById('dzPreloader');
788		if (dzPreloader) {
789			dzPreloader.style.transition = 'opacity 0.5s';
790			dzPreloader.style.opacity = 0;
791			
792			setTimeout(function() {
793				dzPreloader.style.display = 'none';
794			}, 500);
795		}
796	}, 1500);
797	
798	$(".cart-widget .dz-close").on('click', function () {
799		$(this).closest(".sidebar-cart-list li").fadeOut("normal", function () {
800			$(this).remove();
801		});
802	});
803
804});
805/* Document.ready END */
806
807/* Window Load START */
808window.addEventListener('load', function() {
809	ClinicMaster.load();
810	
811	document.body.addEventListener('keydown', function () {
812		document.body.classList.add('show-focus-outline');
813	});
814	document.body.addEventListener('mousedown', function () {
815		document.body.classList.remove('show-focus-outline');
816	});
817});
818/* Window Load END */
819
820/* Window Resize START */
821window.addEventListener('resize', function() {
822	ClinicMaster.resize();
823});
824/*  Window Resize END */

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.