PageSourceSearch

https://mankatolife.com/wp-content/plugins/eventon-daily-view/assets/dv_script.js?ver=2.1.12

js mankatolife.com collected 2026-10-02 13:14:55 UTC 20,778 bytes, 684 lines download raw bytes

1/**
2 * Javascript: Eventon Daily View
3 * @version 2.1.11
4 * @license EventON JavaScript Assets 
5 * Copyright (C) 2014-2025 Ashan Jay, AshanJay Designs LLC.
6 * 
7 * PROPRIETARY LICENSE - All Rights Reserved
8 * 
9 * Permission granted solely for personal use with valid EventON license.
10 * YOU MAY NOT: redistribute, resell, sublicense, or publish these Assets.
11 * 
12 * Trademark: "EventON" is a trademark of AshanJay Designs LLC.
13 * Contact: [email protected]
14 * 
15 * PROVIDED "AS IS" WITHOUT WARRANTY. VIOLATION MAY RESULT IN LEGAL ACTION.
16 */
17
18jQuery(document).ready(function($){
19
20	var current_date;
21	var current_day;
22	var current_events;
23	var SC;
24
25	// INIT AJAX - success
26		$('body').on('evo_init_ajax_success_each_cal', function(event, data, calid, v){
27			CAL = $('body').find('#'+ calid);
28
29			if(!CAL.hasClass('evoDV')) return;
30
31			draw_grid( CAL, v );
32			set_daily_strip_sizes( CAL );
33		});
34
35		$('body').on('evo_init_ajax_success',function(event, data){
36			$('body').find('.ajde_evcal_calendar.noiajx.evoDV').each(function(){
37				draw_grid( $(this) );
38				set_daily_strip_sizes( $(this) );
39			});
40		});
41	// AJAX
42		// COMPLETE
43		$('body').on('evo_main_ajax_complete', function(event, CAL, ajaxtype, data , data_arg){		
44			var SC = data_arg.shortcode;
45			if(  SC.calendar_type == 'daily'){
46
47				// reset dv scroll type value
48				CAL.evo_update_cal_sc({	F:'dv_scroll_type', V:''});
49
50				D = {};
51				D['json'] = data.json;
52				D['sc'] = SC;
53
54				var this_section_days = CAL.find('.eventon_daily_list');
55				this_section_days.slideDown('slow');	
56
57				draw_grid( CAL, D, 'replace');
58
59				set_daily_strip_sizes( CAL );		
60			}
61		});	
62
63	// DRAW u2.1.3
64		function draw_grid(CAL, data, type){
65			
66			var BUS = $('#evo_global_data').data('d');
67			var eJSON = data? data.json: CAL.find('.evo_cal_events').data('events');
68			var SC = CAL.evo_shortcode_data();
69			var days_list = {};
70			const cal_tz = CAL.evo_get_global({S1:'cal_def',S2:'cal_tz'}); 
71
72			days_in_month = CAL.evo_day_in_month({M: SC.fixed_month, Y: SC.fixed_year});
73			fixed_day_name_index = CAL.evo_get_day_name_index({M: SC.fixed_month, Y: SC.fixed_year, D: SC.fixed_day});
74
75			// time now
76			var cal_now = moment().tz( cal_tz ).startOf('day');
77
78			// fixed day unix
79			var _fx_su ='';
80			var _fx_eu ='';
81
82			// with day strip
83			if( SC.dv_view_style != 'oneday'){
84
85				// Set initial date - date values
86					var SU = parseInt( SC.focus_start_date_range);	var EU = '';
87					var M = moment.unix( SU ).tz( cal_tz ).startOf('day');
88
89					//console.log( SU );
90					//console.log( M.day() +' '+ M.date() +' '+ M.format('dddd') );
91				
92				// each day of month
93				for(var x=1; x<= days_in_month; x++){
94					
95					days_list[x] = {};
96					days_list[x]['dn'] = M.day();
97					days_list[x]['su'] = M.unix();
98					
99					days_list[x]['e'] = {};
100
101					// class additions
102					var _class_adds = '';
103
104					// focused day
105					if( SC.fixed_day == x){
106						_class_adds += 'on_focus';
107						_fx_su = M.unix();
108					} 
109					if( cal_now.format('YYYY M D') == M.format('YYYY M D') )
110						_class_adds += ' today';
111
112
113					days_list[x]['evo_dv_day_classes'] = _class_adds;				
114
115					M.add(1,'d').startOf('day');
116
117					days_list[x]['eu'] = M.unix() - 1;
118
119					if( SC.fixed_day == x) _fx_eu = M.unix();
120				}
121
122			}else{
123				days_list[SC.fixed_day] = {};
124				days_list[SC.fixed_day]['e'] = eJSON;
125			}
126
127			var template_data = {};
128
129			template_data['fixed_day_name'] = BUS.dms.d[ fixed_day_name_index ];
130			template_data['fixed_day'] = parseInt(SC.fixed_day);
131			template_data['cal_def'] = BUS.cal_def;
132			template_data['days'] = days_list;
133			template_data['calid'] = CAL.attr('id');
134			template_data['width'] = days_in_month *(80)+130;
135			template_data['marginLeft'] = SC.fixed_day *(-60)+130;
136			template_data['dv_view_style'] = SC.dv_view_style;
137			template_data['su'] = SU;
138			template_data['eu'] = parseInt( SC.focus_end_date_range);
139			template_data['fxsu'] = _fx_su;
140			template_data['fxeu'] = _fx_eu;
141
142
143			var fixed_day_start_unix =  (SC.dv_view_style == 'oneday') ?
144				parseInt(SC.focus_start_date_range):
145				parseInt(SC.focus_start_date_range) + ( (parseInt(SC.fixed_day) - 1) * 86400 );
146
147			CAL.find('.evo_bottom').attr('data-fixed_unix', fixed_day_start_unix).data('fixed_unix', fixed_day_start_unix);
148
149			var list_html = cd_html = '';
150
151			//console.log( template_data);
152
153			// day box html
154			if( SC.dv_view_style == 'def'|| SC.dv_view_style =='onedayplus') 
155				cd_html = CAL.evo_HB_process_template({TD: template_data,part: 'evodv_cd'});
156			
157			// month strip html
158			if( SC.dv_view_style != 'oneday' && SC.dv_view_style != 'onedayplus') 
159				list_html = CAL.evo_HB_process_template({TD: template_data , part:'evodv_list'});
160
161			if(type == 'replace'){
162				CAL.find('.evodv_current_day').replaceWith( cd_html );
163				if( SC.dv_view_style != 'oneday') CAL.find('.eventon_daily_list').replaceWith( list_html );
164			}else{
165				ELM = CAL.find('#eventon_loadbar_section');
166				if( SC.dv_view_style != 'oneday') ELM.after( list_html );
167				ELM.after( cd_html );
168			}
169
170			// appearance animation
171			if(type != 'replace'){
172				CAL.find('.evodv_current_day').fadeIn();
173				CAL.find('.eventon_daily_list').delay(300).fadeIn(function(){
174					set_daily_strip_sizes( CAL );
175				});
176			}else{				
177				CAL.find('.evodv_current_day').show();
178				CAL.find('.eventon_daily_list').show();
179			}
180
181			// POPULATE with events
182			populate_with_events(CAL);
183
184			_scroll_interaction(CAL);
185
186			// show correct events in event list
187			load_correct_events(CAL);	
188
189			// swiping interaction
190			touch_swiping_interaction( CAL );
191
192			// remove pre laoder section
193			CAL.find('.evodv_pre_loader').remove();		
194			CAL.find('.evodv_pre_loader_days').remove();		
195		}
196
197		// populate the day boxes with events information - + 2.0
198		function populate_with_events(CAL){
199			var cal_events = CAL.find('.eventon_list_event');
200			SC = CAL.evo_shortcode_data();
201			var _txt_events = CAL.evo_get_txt({V:'events'});
202			
203			CAL.find('.evo_dv_day').each(function(){
204				var SU = parseInt($(this).data('su'));
205				var EU = parseInt($(this).data('eu'));
206				
207				var EC = 0;
208				var html = '';
209				cal_events.each(function(index, elm){
210					ED = $(elm).evo_cal_get_basic_eventdata();
211					if( !ED) return;
212
213					var inrange = CAL.evo_is_in_range({
214						'S': SU,	'E': EU,	'start': ED.unix_start,	'end':ED.unix_end
215					});
216
217					if(!inrange) return;
218
219					EC++;
220					html += "<em class='evodv_spot' data-title='"+ ED.event_title +"' data-eid='"+ ED.ID+"' style='background-color:"+ ED.hex_color+"'></em>";
221
222				});
223
224				// if more than 3 events in the date
225				if( EC >3){
226					html = "<em class='evodv_spot more' data-title='"+EC+" "+_txt_events+"'></em>";
227				}
228
229				if( html != ''){
230					$(this).find('.evoday_events').html( html );
231				}
232
233			});
234		}
235	
236
237	// show correct events for the day -- when triggered 2.1.5
238		function load_correct_events(CAL, load_events_count){
239
240			const SC = CAL.evo_shortcode_data();
241			const OD = CAL.evo_get_OD();
242			time_format = CAL.evo_get_global({S1:'cal_def',S2:'wp_time_format'});
243			const cal_tz = CAL.evo_get_global({S1:'cal_def',S2:'cal_tz'});
244			
245
246			// get start and end unix for current focus day 
247				fixed_day = SC.fixed_day;
248				fixed_month = SC.fixed_month;
249				fixed_year = SC.fixed_year;
250
251				_m1 = moment().set({'year': fixed_year, 'month': (fixed_month-1), 'date':fixed_day }).tz( cal_tz);
252				_m1.startOf('day');
253
254				SU = _m1.unix();
255				_m1.endOf('day');
256				EU = _m1.unix();
257				
258			
259			// run thru each event in calendar month
260			show = 0;
261			CAL.find('.eventon_list_event').each(function(){
262				const O = $(this); var _time = __su = '';
263
264				// fetch event data from event HTML
265				var ED = O.evo_cal_get_basic_eventdata();
266				if(!ED) return;
267
268				ESU = ED.unix_start; EEU = ED.unix_end;
269				
270				O.removeClass('dayevent');	O.hide();	
271
272
273				var inrange = CAL.evo_is_in_range({
274					'S': SU,	'E': EU,	'start': ESU ,'end': EEU
275				});					
276
277				// if event is not in range --> skip
278				if(!inrange) return;
279				
280				O.addClass('dayevent');
281
282
283				if( SC.show_limit == 'yes' && show == SC.event_count) return;
284
285				// update event times
286					// all day
287					if( ( ESU <= SU || EEU <= SU +1) && EU <= EEU  ){
288						_time = CAL.evo_get_txt({V:'all_day'});
289					}else{
290						m = moment.unix( ESU ).tz( cal_tz );
291						me = moment.unix( EEU ).tz( cal_tz );
292
293						var ss = ''; var ee = '';
294
295						// if event start smaller than SU
296						if( ESU < SU){
297							month_name = CAL.evo_get_dms_vals({type:'m3',V: m.month()+1 });
298							ss = '('+ month_name +' ' + m.get('date') +') ' + m.format( time_format );
299						}else{
300							ss = m.format( time_format );
301						}
302
303						// if show end time
304						if( ED.hide_et == 'n' ){
305							if( EEU > EU){
306								month_name = CAL.evo_get_dms_vals({type:'m3',V: me.month()+1 });
307								ee = ' - ('+ month_name + ' '+ me.get('date') +') ' + me.format( time_format);
308							}else{
309								ee = ' - ' + me.format( time_format);
310							}
311						}					
312
313						_time = ss + ee;
314					}
315
316				O.show();	show++;	
317
318				O.find('.evo_start').closest('.evoet_cx').hide();
319				O.find('.evo_end').hide();
320
321				// hide default event time
322				O.find('.evoet_time_expand').hide();
323
324				if( O.find('.evodv_time').length > 0 ){
325					O.find('.evodv_time').html(  _time );
326				}else{
327					const _html = "<span class='evodv_time'><i class='fa fa-clock-o evomarr5'></i> "+ _time +"</span>";
328					O.find('.evoet_time_expand').before( _html );
329				}
330						
331
332				O._evo_cal_eventcard_interactions( O , true);		
333				
334			});
335
336			// hide empty div for tiles with details below
337			if( SC.tile_bg == '1' && SC.tile_style == '1'){
338				CAL.find('.ev_ftImg').closest('.evoet_cx').hide();
339			}
340
341			CAL.evo_run_eventcard_map_load();
342
343
344			// Showing the events
345				if(show == 0){
346					eList = CAL.find('#evcal_list');
347
348					if(eList.has('.no_events.eventon_list_event').length){
349						eList.find('.no_events.eventon_list_event').show();
350					}else{
351						eList.append("<div class='eventon_list_event no_events'><p class='no_events' >"+ OD.lang_no_events +"</p></div>");
352					}
353					
354				}else{
355					CAL.find('.eventon_list_event.no_events').remove();
356				}
357
358			// Update current day no events
359				var numevents = show;
360				if(numevents!=='' && numevents!==false && numevents !== undefined ){
361					BUS = $('#evo_global_data').data('d');
362					ITM = CAL.find('.evodv_current_day .evodv_events');
363					(numevents>1 || numevents == 0)? 
364						ITM.html('<span>'+numevents+'</span>'+ BUS.txt.events) : 
365						ITM.html('<span>'+numevents+'</span>'+ BUS.txt.event);
366					ITM.show();
367				}
368
369			// show all events
370			CAL.find('#evcal_list').removeClass('evo_hide');
371		}
372	
373	// change the dates within month
374		function changin_dates_within_month(CAL, type, ajax){
375			SC = CAL.evo_shortcode_data();
376			BUS = $('#evo_global_data').data('d');
377
378			// focus adjust for current day strip
379				CAL.find('.evodv_current_fixed_day').html( SC.fixed_day );
380				DD = new Date( SC.fixed_year, SC.fixed_month-1, SC.fixed_day);
381				CAL.find('.evodv_dayname').html( BUS.dms.d[ DD.getDay() ] );
382
383			// focus adjust for strip
384				STRIP = CAL.find('.eventon_daily_in');
385				STRIP.find('.evo_day').removeClass('on_focus');
386				STRIP.find('.evo_day[data-date="'+ SC.fixed_day +'"]').addClass('on_focus');
387			
388			if(ajax){	
389				$('body').trigger('evo_run_cal_ajax', [CAL.attr('id'), 'none', 'dv_newday']);
390			}else{
391				load_correct_events(CAL);
392			}
393		}
394	
395	// ALL Calendar actions
396		$('body')	
397			// calendar view switching v2.1.8
398			.on('evo_vSW_clicked_before_ajax',function(event, O, CAL, DD, reload_cal_data){
399				if(!(O.hasClass('evodv'))) return;
400				var SC = CAL.evo_shortcode_data();
401
402				CAL.evo_update_cal_sc({F:'calendar_type', V: 'daily'});
403				CAL.evo_update_cal_sc({F:'fixed_day', V: SC.fixed_day });
404				CAL.evo_update_cal_sc({F:'dv_view_style', V: 'def'});
405
406			})
407			.on('evo_vSW_clicked',function(event, OBJ, CAL, DD){
408				if(!(OBJ.hasClass('evodv'))) return;
409							
410				draw_grid( CAL);
411
412			})
413			// day stripe interaction
414			.on('click', '.evodv_action',function(event){
415				if( $(this).hasClass('scroll') ){
416					eventon_daily_in = $(this).siblings('.eventon_daily_in');
417					if($(this).hasClass('prev')){
418						swiping('swiperight', eventon_daily_in);
419					}else{// next
420						swiping('swipeleft', eventon_daily_in);
421					}
422				// switch months
423				}else{
424					classN = ($(this).hasClass('next'))? 'evcal_btn_next':'evcal_btn_prev';
425					calendar = $(this).closest('.ajde_evcal_calendar');
426					
427					calendar.find('.'+classN).trigger('click');
428				}				
429			})
430			// use current day arrows to switch days
431			.on('click', '.evodv_daynum_switch', function(){
432
433				OBJ = $(this);
434				var dir = OBJ.attr('data-dir');
435				CAL = OBJ.closest('.ajde_evcal_calendar');
436				SC = CAL.evo_shortcode_data();
437
438				var runajax = SC.dv_view_style == 'def'? false:true;
439
440				var daysinmonth = CAL.evo_day_in_month({Y: SC.fixed_year, M: SC.fixed_month});
441
442				// remove disable class
443				OBJ.parent().find('span').removeClass('disable');				
444
445				if(dir == 'next'){
446					if(SC.fixed_day == daysinmonth){	
447						CAL.evo_update_cal_sc({	F:'dv_scroll_type', V:'arrow'	});
448						CAL.find('.evcal_btn_next').trigger('click');
449					}else{
450						
451						m_date = SC.fixed_year+'-'+ SC.fixed_month +'-'+SC.fixed_day;
452						DD = moment( m_date, 'YYYY-M-D');
453						DD.add( 1 ,'days');	
454
455						CAL.evo_update_cal_sc({F:'fixed_day', V:DD.date() });
456						changin_dates_within_month(CAL, 'days', runajax);
457					}					
458				}else{ // previous
459					if(SC.fixed_day == 1){
460						CAL.evo_update_cal_sc({	F:'dv_scroll_type', V:'arrow'	});
461						CAL.find('.evcal_btn_prev').trigger('click');
462					}else{
463
464						m_date = SC.fixed_year+'-'+ SC.fixed_month +'-'+SC.fixed_day;
465						DD = moment( m_date, 'YYYY-M-D');
466						DD.subtract( 1 ,'days');	
467
468						CAL.evo_update_cal_sc({F:'fixed_day', V:DD.date() });
469						changin_dates_within_month(CAL, 'days', runajax);
470					}
471				}			
472
473			})
474			// click on a day from strip
475			.on( 'click','.evo_day',function(){
476				var new_day = $(this).find('.evo_day_num').html();
477				var CAL = $(this).closest('.ajde_evcal_calendar');
478				
479				var daysinmonth = CAL.find('.eventon_daily_in .evo_day').length;
480				var thisday = parseInt($(this).find('.evo_day_num').html());
481				var arrows =  CAL.find('.evodv_daynum');
482				arrows.find('span').removeClass('disable'); // remove disable class
483
484				// add disable class to side arrows
485				if(thisday==1 ) arrows.find('.prev').addClass('disable');
486				if(thisday==daysinmonth) arrows.find('.next').addClass('disable');
487
488				// Update CAL SC with new date
489				CAL.evo_update_cal_sc({F:'fixed_day', V:new_day });
490
491				changin_dates_within_month(CAL, 'strip', false);
492			})
493			// tooltip
494			.on('mouseover','.evodv_spot',function(){
495				OBJ = $(this);
496				
497				PAR = OBJ.closest('.eventon_daily_list');
498
499				p = OBJ.offset();
500				t = PAR.offset();
501				w = PAR.width();
502				xleft = p.left - t.left;
503				xtop = p.top - t.top;
504
505				TITLE = OBJ.data('title');
506
507				// adjust side of the tooltip
508				if((w/2) > xleft){
509					HTML = "<em class='evodv_tooltip' style='top:"+(xtop-40)+"px;left:"+(xleft+5)+"px;'>"+TITLE+"</em>";
510				}else{
511					xright = w - xleft;
512					HTML = "<em class='evodv_tooltip left' style='top:"+(xtop-40)+"px;right:"+(xright-5)+"px;'>"+TITLE+"</em>";
513				}
514				
515				PAR.append(HTML);
516
517			})
518			.on('mouseout','.evodv_spot',function(){
519				OBJ = $(this);
520				OBJ.closest('.eventon_daily_list').find('.evodv_tooltip').remove();
521
522			})
523		;
524		
525
526	// touch function
527		function touch_swiping_interaction(CAL){
528			var slide_area = CAL.find('.eventon_daily_in');
529			slide_area.on('swipeleft', function(event){					
530				if( !$(event.currentTarget).hasClass('eventon_daily_in')) return;
531				event.stopImmediatePropagation();	
532				event.preventDefault();		
533
534				console.log('eed');
535
536				swiping('swipeleft', $(this));
537			});
538			slide_area.on('swiperight', function(event){				
539				swiping('swiperight', $(this));
540				event.preventDefault();
541			});
542		}
543		
544
545		function swiping(direction, OBJ){
546			var leftNow = parseInt(OBJ.css('marginLeft'));
547			var Pwid = OBJ.parent().width();
548			var width = parseInt(OBJ.css('width') );
549			one_day_width = parseInt(OBJ.find('.evo_day:gt(20)').outerWidth());
550			maxMLEFT = (width-Pwid)*(-1);
551
552			STRIP = OBJ.closest('.eventon_dv_outter');
553			STRIP_Width = STRIP.width();
554			ARROW_Width = STRIP.find('span.prev').width() + STRIP.find('span.next').width();
555
556			swipeMove = (one_day_width*5);
557
558			if( (swipeMove + ARROW_Width) > STRIP_Width ){
559				swipeMove = (one_day_width*2);
560			}
561			
562			if(direction =='swipeleft'){
563				var newLEFT = ( leftNow - swipeMove );	
564				// /console.log(newLEFT);
565
566				if( newLEFT*(-1) < (width) ){
567					newLEFT = ( newLEFT <maxMLEFT)? maxMLEFT: newLEFT;
568					OBJ.stop().animate({'margin-left': newLEFT },function(){
569						scroll_o_switch( OBJ.parent() );
570					});
571				}
572			}else{
573				var newLEFT = ( leftNow + swipeMove );	
574				// /console.log(newLEFT);
575
576				newLEFT = ( newLEFT >0 )? 0: newLEFT;
577				OBJ.stop().animate({'margin-left': newLEFT },function(){
578					scroll_o_switch( OBJ.parent() );
579				});
580			}
581		}
582	// adjust margin left when window resized
583		$(window).on('resize', function(){
584			$('.eventon_daily_list').each(function(){
585				adjust_days_width( $(this));				
586			});
587		});
588	
589	// daily list sliders	
590		function set_daily_strip_sizes(cal){
591			if(cal === undefined) return;
592
593			var holder = cal.find('.eventon_daily_list');
594			adjust_days_width(holder);
595			scroll_o_switch(holder);
596		}
597
598			function adjust_days_width(holder){
599				CAL = holder.closest('.ajde_evcal_calendar');
600				SC = CAL.evo_shortcode_data();
601
602				if(SC === undefined) return;
603
604				var day_holder = holder.find('.eventon_daily_in');
605				var days = day_holder.children('.evo_day');	
606				var day_width = parseInt(day_holder.find('.evo_day:gt(20)').outerWidth());
607				OUTTERWidth = parseInt(day_holder.parent().width());
608
609				wALLDAYS = (parseInt(days.length)+2 )* (day_width);
610													
611
612				FOCUSday = parseInt( SC.fixed_day );
613				LEFTwidth = (FOCUSday-1) * day_width;
614				RIGHTwidth = wALLDAYS - LEFTwidth;
615
616				LEFTmargin = ( RIGHTwidth > OUTTERWidth ) ? LEFTwidth: wALLDAYS-OUTTERWidth;
617				LEFTmargin = -1* LEFTmargin;
618
619				day_holder.css({'width':wALLDAYS, 'margin-left':LEFTmargin});
620
621				// /console.log(OUTTERWidth+' '+wALLDAYS+' '+LEFTmargin+' '+LEFTwidth+' '+RIGHTwidth);
622
623				//console.log(LEFTmargin);
624			}
625		
626		// scroll or switch months
627			function scroll_o_switch(list){
628				holder = list.find('.eventon_daily_in');
629				current_marginleft = parseInt(holder.css('marginLeft'));
630				max_marginleft = parseInt(holder.parent().width()) - parseInt(holder.width());
631				
632
633				// set default
634				holder.siblings('.next').attr({'class':'evodv_action next scroll'});
635				holder.siblings('.prev').attr({'class':'evodv_action prev scroll'});
636
637								
638				if( current_marginleft <= max_marginleft){
639					holder.siblings('.next').removeClass('scroll').addClass('switch');
640					holder.siblings('.prev').removeClass('switch').addClass('scroll');
641				}
642
643				if(current_marginleft >= 0){
644					holder.siblings('.next').removeClass('switch').addClass('scroll');
645					holder.siblings('.prev').removeClass('scroll').addClass('switch');
646				}
647				
648
649			}
650
651	// DEP
652		function _scroll_interaction(CAL){
653			CAL.find('.eventon_daily_in').mousewheel(function(e, delta) {
654				//$(this).scrollLeft -= (delta * 40);
655				OBJ = $(this);
656
657				var cur_mleft = parseInt(OBJ.css('marginLeft')),
658					width = parseInt(OBJ.css('width') ),
659					Pwid = OBJ.parent().width();
660				maxMLEFT = (width-Pwid)*(-1);
661
662				
663				if( cur_mleft<=0){
664					
665					var new_marl = (cur_mleft+ (delta * 500));					
666					if(new_marl>0){ new_marl=0;}
667					
668					// moving to left
669					if(delta <0 && ( (new_marl*(-1))< (width -200)) ){
670						new_marl = ( new_marl < maxMLEFT)? maxMLEFT: new_marl;
671						OBJ.stop().animate({'margin-left': new_marl },function(){
672							scroll_o_switch( OBJ.parent().parent() );
673						});
674					
675					}else if(delta >0){
676						OBJ.stop().animate({'margin-left': new_marl },function(){
677							scroll_o_switch( OBJ.parent().parent() );
678						});
679					}
680				}
681				e.preventDefault();
682			});
683		}
684});

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.