PageSourceSearch

https://medjugorje.com.ua/templates/city-news-blue/js/jquery.liMarquee.js

js medjugorje.com.ua collected 2026-10-03 00:44:09 UTC 35,317 bytes, 1,282 lines download raw bytes

1/*
2 * jQuery liMarquee v 4.4
3 *
4 * Copyright 2013, Linnik Yura | LI MASS CODE | http://masscode.ru
5 * http://masscode.ru/index.php/k2/item/44-limarquee
6 * Free to use
7 *
8 * Last Update 27.04.2014
9 */
10(function ($) {
11	var methods = {
12		init: function (options) {
13			var p = {
14				direction: 'left', //Указывает направление движения содержимого контейнера (left | right | up | down)
15				loop: -1, //Задает, сколько раз будет прокручиваться содержимое. "-1" для бесконечного воспроизведения движения
16				scrolldelay: 0, //Величина задержки в миллисекундах между движениями
17				scrollamount: 50, //Скорость движения контента (px/sec)
18				circular: true, //Если "true" - строка непрерывная 
19				drag: true, //Если "true" - включено перетаскивание строки
20				runshort: true, //Если "true" - короткая строка тоже "бегает", "false" - стоит на месте
21				hoverstop: true, //true - строка останавливается при наведении курсора мыши, false - строка не останавливается
22				inverthover: false, //false - стандартное поведение. Если "true" - строка начинает движение только при наведении курсора
23				xml: false //Путь к xml файлу с нужным текстом
24			};
25			if (options) {
26				$.extend(p, options);
27			}
28
29			return this.each(function () {
30				var enterEvent = 'mouseenter';
31				var leaveEvent = 'mouseleave';
32				if(p.inverthover){
33					enterEvent = 'mouseleave';
34					leaveEvent = 'mouseenter';	
35				}
36				
37								
38				var
39					loop = p.loop,
40					strWrap = $(this).addClass('str_wrap'),
41					fMove = false;
42					
43				
44				
45				var strWrapStyle = strWrap.attr('style'); 
46				
47				if(strWrapStyle){
48					var wrapStyleArr = strWrapStyle.split(';');
49					var startHeight = false;
50					for(var i=0; i < wrapStyleArr.length; i++){
51						var str = $.trim(wrapStyleArr[i]);					
52						var tested =  str.search(/^height/g);
53						if(tested != -1){
54							startHeight = parseFloat(strWrap.css('height'));
55						}
56					}
57				}
58					
59					
60					
61				var code = function () {
62					
63					
64					strWrap.off('mouseleave');
65					strWrap.off('mouseenter');
66					strWrap.off('mousemove');
67					strWrap.off('mousedown');
68					strWrap.off('mouseup');
69					
70					
71					
72					
73					
74					
75					
76					
77					
78					if(!$('.str_move',strWrap).length){
79						strWrap.wrapInner($('<div>').addClass('str_move'));
80					}
81					
82					var
83					strMove = $('.str_move', strWrap).addClass('str_origin'),
84					strMoveClone = strMove.clone().removeClass('str_origin').addClass('str_move_clone'),
85					time = 0;
86					
87					
88					
89					if (!p.hoverstop) {
90						strWrap.addClass('noStop');
91					}
92
93					var circCloneHor = function(){
94						strMoveClone.clone().css({
95							left:'100%',
96							right:'auto',							
97							width: strMove.width()
98						}).appendTo(strMove);
99						strMoveClone.css({
100							right: '100%',
101							left:'auto',
102							width: strMove.width()
103						}).appendTo(strMove);
104					}
105					
106					var circCloneVert = function(){
107						strMoveClone.clone().css({
108							top: '100%',
109							bottom:'auto',
110							height: strMove.height()
111						}).appendTo(strMove);
112						strMoveClone.css({
113							bottom: '100%',
114							top:'auto',
115							height:strMove.height()
116						}).appendTo(strMove);
117					}
118					
119					
120					
121					if (p.direction == 'left') {
122						strWrap.height(strMove.outerHeight())
123						if (strMove.width() > strWrap.width()) {
124							var leftPos = -strMove.width();
125							
126							if (p.circular) {
127								
128								if (!p.xml) {
129									circCloneHor()
130									leftPos = -(strMove.width() + (strMove.width() - strWrap.width()));
131								}
132							}
133							if (p.xml) {
134								strMove.css({
135									left:strWrap.width()	
136								})
137							}
138							var
139							strMoveLeft = strWrap.width(),
140								k1 = 0,
141								timeFunc1 = function () {
142									var
143									fullS = Math.abs(leftPos),
144										time = (fullS / p.scrollamount) * 1000;
145									if (parseFloat(strMove.css('left')) != 0) {
146										fullS = (fullS + strWrap.width());
147										time = (fullS - (strWrap.width() - parseFloat(strMove.css('left')))) / p.scrollamount * 1000;
148									}
149									return time;
150								},
151								moveFuncId1 = false,
152								moveFunc1 = function () {
153									if (loop != 0) {
154										strMove.stop(true).animate({
155											left: leftPos
156										}, timeFunc1(), 'linear', function () {
157											$(this).css({
158												left: strWrap.width()
159											});
160											if (loop == -1) {
161												moveFuncId1 = setTimeout(moveFunc1, p.scrolldelay);
162											} else {
163												loop--;
164												moveFuncId1 = setTimeout(moveFunc1, p.scrolldelay);
165											}
166										});
167									}
168								};
169								if(!p.inverthover){
170									moveFunc1();
171								}
172							
173							if (p.hoverstop) {
174								strWrap.on(enterEvent, function () {
175									$(this).addClass('str_active');
176									clearTimeout(moveFuncId1);
177									strMove.stop(true);
178								}).on(leaveEvent, function () {
179									$(this).removeClass('str_active');
180									$(this).off('mousemove');
181									moveFunc1();
182								});
183
184								if (p.drag) {
185									strWrap.on('mousedown', function (e) {
186										if(p.inverthover){
187											strMove.stop(true);
188										}
189										//drag
190										var dragLeft;
191										var dir = 1;
192										var newX;
193										var oldX = e.clientX;
194										//drag
195										
196										strMoveLeft = strMove.position().left;
197										k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
198										
199										
200										
201										$(this).on('mousemove', function (e) {
202											fMove = true;
203											
204											//drag
205											newX = e.clientX;
206											if(newX > oldX){
207												dir = 1
208											}else{
209												dir = -1
210											}
211											oldX = newX	
212											dragLeft = k1 + (e.clientX - strWrap.offset().left);
213											
214											if (!p.circular) {
215												if(dragLeft < -strMove.width() && dir < 0){
216													dragLeft = strWrap.width();
217													strMoveLeft = strMove.position().left;
218													k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
219												}
220												if(dragLeft > strWrap.width() && dir > 0){
221													dragLeft = -strMove.width();
222													strMoveLeft = strMove.position().left;
223													k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
224												}
225											}else{
226												if(dragLeft < -strMove.width() && dir < 0){
227													dragLeft = 0;
228													strMoveLeft = strMove.position().left;
229													k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
230												}
231												if(dragLeft > 0 && dir > 0){
232													dragLeft = -strMove.width();
233													strMoveLeft = strMove.position().left;
234													k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
235												}
236	
237											}
238											
239											
240											strMove.stop(true).css({
241												left: dragLeft
242											});
243											//drag
244											
245										
246											
247										}).on('mouseup', function () {
248											$(this).off('mousemove');
249											if(p.inverthover){
250												strMove.trigger('mouseenter')
251											}
252											setTimeout(function () {                             
253												fMove = false
254											}, 50)
255											
256										});
257										return false;
258									})
259									.on('click', function () {
260										if (fMove) {
261											return false
262										}
263									});
264								} else {
265									strWrap.addClass('no_drag');
266								};
267							}
268						} else {
269							if (p.runshort) {
270								strMove.css({
271									left: strWrap.width()
272								});
273								var
274								strMoveLeft = strWrap.width(),
275									k1 = 0,
276									timeFunc = function () {
277										time = (strMove.width() + strMove.position().left) / p.scrollamount * 1000;
278										return time;
279									};
280								var moveFunc = function () {
281									var leftPos = -strMove.width();
282									strMove.animate({
283										left: leftPos
284									}, timeFunc(), 'linear', function () {
285										$(this).css({
286											left: strWrap.width()
287										});
288										if (loop == -1) {
289											setTimeout(moveFunc, p.scrolldelay);
290										} else {
291											loop--;
292											setTimeout(moveFunc, p.scrolldelay);
293										}
294									});
295								};
296								if(!p.inverthover){
297									moveFunc();
298								}
299								if (p.hoverstop) {
300									strWrap.on(enterEvent, function () {
301										$(this).addClass('str_active');
302										strMove.stop(true);
303									}).on(leaveEvent, function () {
304										$(this).removeClass('str_active');
305										$(this).off('mousemove');
306										moveFunc();
307									});
308
309									if (p.drag) {
310										strWrap.on('mousedown', function (e) {
311											if(p.inverthover){
312												strMove.stop(true);
313											}
314											
315											//drag
316											var dragLeft;
317											var dir = 1;
318											var newX;
319											var oldX = e.clientX;
320											//drag
321											
322											strMoveLeft = strMove.position().left;
323											k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
324											$(this).on('mousemove', function (e) {
325												fMove = true;
326												
327												
328												//drag
329												newX = e.clientX;
330												if(newX > oldX){
331													dir = 1
332												}else{
333													dir = -1
334												}
335												oldX = newX	
336												dragLeft = k1 + (e.clientX - strWrap.offset().left);
337												
338												if(dragLeft < -strMove.width() && dir < 0){
339													dragLeft = strWrap.width();
340													strMoveLeft = strMove.position().left;
341													k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
342												}
343												if(dragLeft > strWrap.width() && dir > 0){
344													dragLeft = -strMove.width();
345													strMoveLeft = strMove.position().left;
346													k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
347												}
348												
349												
350												strMove.stop(true).css({
351													left: dragLeft
352												});
353												
354												
355												
356											}).on('mouseup', function () {
357												if(p.inverthover){
358													strMove.trigger('mouseenter')
359												}
360												$(this).off('mousemove');
361												setTimeout(function () {                             
362													fMove = false
363												}, 50)
364											});
365											return false;
366										})
367										.on('click', function () {
368											if (fMove) {
369												return false
370											}
371										});
372									} else {
373										strWrap.addClass('no_drag');
374									};
375								}
376							} else {
377								strWrap.addClass('str_static');
378							}
379						};
380					};
381					if (p.direction == 'right') {
382						strWrap.height(strMove.outerHeight())
383						strWrap.addClass('str_right');
384						strMove.css({
385							left: -strMove.width(),
386							right: 'auto'
387						})
388						
389						if (strMove.width() > strWrap.width()) {
390							var leftPos = strWrap.width();
391							strMove.css({
392								left: 0
393							})
394							if (p.circular) {
395								if (!p.xml) {
396									circCloneHor()
397									//Определяем крайнюю точку
398									leftPos = strMove.width();
399								}
400							}
401							
402							var
403							k2 = 0;
404							timeFunc = function () {
405								var
406								fullS = strWrap.width(), //крайняя точка
407									time = (fullS / p.scrollamount) * 1000; //время
408								if (parseFloat(strMove.css('left')) != 0) {
409									fullS = (strMove.width() + strWrap.width());
410									time = (fullS - (strMove.width() + parseFloat(strMove.css('left')))) / p.scrollamount * 1000;
411								}
412								return time;
413							};
414							var moveFunc = function () {
415
416								if (loop != 0) {
417									strMove.animate({
418										left: leftPos
419									}, timeFunc(), 'linear', function () {
420										$(this).css({
421											left: -strMove.width()
422										});
423										if (loop == -1) {
424											setTimeout(moveFunc, p.scrolldelay);
425										} else {
426											loop--;
427											setTimeout(moveFunc, p.scrolldelay);
428										};
429									});
430								};
431							};
432					
433							if(!p.inverthover){
434								moveFunc();
435							}
436							if (p.hoverstop) {
437								strWrap.on(enterEvent, function () {
438									$(this).addClass('str_active');
439									strMove.stop(true);
440								}).on(leaveEvent, function () {
441									$(this).removeClass('str_active');
442									$(this).off('mousemove');
443									moveFunc();
444								});
445
446								if (p.drag) {
447									
448									strWrap.on('mousedown', function (e) {
449										if(p.inverthover){
450											strMove.stop(true);
451										}
452										
453										
454										//drag
455										var dragLeft;
456										var dir = 1;
457										var newX;
458										var oldX = e.clientX;
459										//drag
460										
461										strMoveLeft = strMove.position().left;
462										k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
463										$(this).on('mousemove', function (e) {
464											
465											fMove = true;
466											
467											//drag
468											newX = e.clientX;
469											if(newX > oldX){
470												dir = 1
471											}else{
472												dir = -1
473											}
474											oldX = newX	
475											dragLeft = k2 + (e.clientX - strWrap.offset().left);
476
477
478											if (!p.circular) {
479
480												if(dragLeft < -strMove.width() && dir < 0){
481													dragLeft = strWrap.width();
482													strMoveLeft = strMove.position().left;
483													k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
484												}
485												if(dragLeft > strWrap.width() && dir > 0){
486													dragLeft = -strMove.width();
487													strMoveLeft = strMove.position().left;
488													k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
489												}
490											}else{
491												if(dragLeft < -strMove.width() && dir < 0){
492													dragLeft = 0;
493													strMoveLeft = strMove.position().left;
494													k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
495												}
496												if(dragLeft > 0 && dir > 0){
497													dragLeft = -strMove.width();
498													strMoveLeft = strMove.position().left;
499													k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
500												}
501	
502											}
503											
504											strMove.stop(true).css({
505												left: dragLeft
506											});
507											
508
509										}).on('mouseup', function () {
510											if(p.inverthover){
511												strMove.trigger('mouseenter')
512											}
513											$(this).off('mousemove');
514											setTimeout(function () {                             
515												fMove = false
516											}, 50)
517										});
518										return false;
519									})
520									.on('click', function () {
521										if (fMove) {
522											return false
523										}
524									});
525								} else {
526									strWrap.addClass('no_drag');
527								};
528							}
529						} else {
530														
531							if (p.runshort) {
532								
533								var k2 = 0;
534								var timeFunc = function () {
535									time = (strWrap.width() - strMove.position().left) / p.scrollamount * 1000;
536									return time;
537								};
538								var moveFunc = function () {
539									var leftPos = strWrap.width();
540									strMove.animate({
541										left: leftPos
542									}, timeFunc(), 'linear', function () {
543										$(this).css({
544											left: -strMove.width()
545										});
546										if (loop == -1) {
547											setTimeout(moveFunc, p.scrolldelay);
548										} else {
549											loop--;
550											setTimeout(moveFunc, p.scrolldelay);
551										};
552									});
553								};
554
555								if(!p.inverthover){
556									moveFunc();
557								}
558								if (p.hoverstop) {
559									strWrap.on(enterEvent, function () {
560										$(this).addClass('str_active');
561										strMove.stop(true);
562									}).on(leaveEvent, function () {
563										$(this).removeClass('str_active');
564										$(this).off('mousemove');
565										moveFunc();
566									});
567
568									if (p.drag) {
569										strWrap.on('mousedown', function (e) {
570											if(p.inverthover){
571												strMove.stop(true);
572											}
573											
574											//drag
575											var dragLeft;
576											var dir = 1;
577											var newX;
578											var oldX = e.clientX;
579											//drag
580											
581											strMoveLeft = strMove.position().left;
582											k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
583											$(this).on('mousemove', function (e) {
584												fMove = true;
585												
586												
587												
588												//drag
589												newX = e.clientX;
590												if(newX > oldX){
591													dir = 1
592												}else{
593													dir = -1
594												}
595												oldX = newX	
596												dragLeft = k2 + (e.clientX - strWrap.offset().left);
597												
598												if(dragLeft < -strMove.width() && dir < 0){
599													dragLeft = strWrap.width();
600													strMoveLeft = strMove.position().left;
601													k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
602												}
603												if(dragLeft > strWrap.width() && dir > 0){
604													dragLeft = -strMove.width();
605													strMoveLeft = strMove.position().left;
606													k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
607												}
608
609												strMove.stop(true).css({
610													left:dragLeft
611												});
612												
613											}).on('mouseup', function () {
614												if(p.inverthover){
615													strMove.trigger('mouseenter')
616												}
617												$(this).off('mousemove');
618												setTimeout(function () {                             
619													fMove = false
620												}, 50)
621											});
622											return false;
623										})
624										.on('click', function () {
625											if (fMove) {
626												return false
627											}
628										});
629									} else {
630										strWrap.addClass('no_drag');
631									};
632								}
633							} else {
634								strWrap.addClass('str_static');
635							}
636						};
637					};
638					if (p.direction == 'up') {
639						strWrap.addClass('str_vertical');
640						
641						if (strMove.height() > strWrap.height()) {
642							var topPos = -strMove.height();
643							if (p.circular) {
644								if (!p.xml) {
645									circCloneVert();									
646									topPos = -(strMove.height() + (strMove.height() - strWrap.height()));
647								}
648							}
649							if (p.xml) {
650								strMove.css({
651									top:strWrap.height()	
652								})
653							}
654							var
655							k2 = 0;
656							timeFunc = function () {
657								var
658								fullS = Math.abs(topPos),
659									time = (fullS / p.scrollamount) * 1000;
660								if (parseFloat(strMove.css('top')) != 0) {
661									fullS = (fullS + strWrap.height());
662									time = (fullS - (strWrap.height() - parseFloat(strMove.css('top')))) / p.scrollamount * 1000;
663								}
664								
665								return time;
666							};
667							var moveFunc = function () {
668								if (loop != 0) {
669									strMove.animate({
670										top: topPos
671									}, timeFunc(), 'linear', function () {
672										$(this).css({
673											top: strWrap.height()
674										});
675										if (loop == -1) {
676											setTimeout(moveFunc, p.scrolldelay);
677										} else {
678											loop--;
679											setTimeout(moveFunc, p.scrolldelay);
680										};
681									});
682								};
683							};
684							if(!p.inverthover){
685								moveFunc();
686							}
687							if (p.hoverstop) {
688								strWrap.on(enterEvent, function () {
689									$(this).addClass('str_active');
690									strMove.stop(true);
691								}).on(leaveEvent, function () {
692									$(this).removeClass('str_active');
693									$(this).off('mousemove');
694									moveFunc();
695								});
696
697								if (p.drag) {
698									strWrap.on('mousedown', function (e) {
699										if(p.inverthover){
700											strMove.stop(true);
701										}
702										
703										//drag
704										var dragTop;
705										var dir = 1;
706										var newY;
707										var oldY = e.clientY;
708										//drag
709										
710										
711										strMoveTop = strMove.position().top;
712										k2 = strMoveTop - (e.clientY - strWrap.offset().top);
713										$(this).on('mousemove', function (e) {
714											
715											fMove = true;
716
717											//drag
718											newY = e.clientY;
719											if(newY > oldY){
720												dir = 1
721											}else{
722												if(newY < oldY){
723													dir = -1
724												}
725											}
726											oldY = newY	
727											dragTop = k2 + e.clientY - strWrap.offset().top;
728
729
730											if (!p.circular){
731												if(dragTop < -strMove.height() && dir < 0){
732													dragTop = strWrap.height();
733													strMoveTop = strMove.position().top;
734													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
735												}
736												if(dragTop > strWrap.height() && dir > 0){
737													dragTop = -strMove.height();
738													strMoveTop = strMove.position().top;
739													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
740												}	
741											}else{
742												if(dragTop < -strMove.height() && dir < 0){
743													dragTop = 0;
744													strMoveTop = strMove.position().top;
745													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
746												}
747												if(dragTop > 0 && dir > 0){
748													dragTop = -strMove.height();
749													strMoveTop = strMove.position().top;
750													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
751												}
752											}
753
754
755											strMove.stop(true).css({
756												top: dragTop
757											});
758											//drag
759											
760											
761											
762											
763											
764											
765											
766											
767											
768											
769											
770											
771										}).on('mouseup', function () {
772											if(p.inverthover){
773												strMove.trigger('mouseenter')
774											}
775											$(this).off('mousemove');
776											setTimeout(function () {                             
777												fMove = false
778											}, 50)
779										});
780										return false;
781									})
782									.on('click', function () {
783										if (fMove) {
784											return false
785										}
786									});
787								} else {
788									strWrap.addClass('no_drag');
789								};
790							}
791						} else {
792							if (p.runshort) {
793								strMove.css({
794									top: strWrap.height()
795								});
796								var k2 = 0;
797								var timeFunc = function () {
798									
799									time = (strMove.height() + strMove.position().top) / p.scrollamount * 1000;
800									
801									return time;
802								};
803								var moveFunc = function () {
804									var topPos = -strMove.height();
805									strMove.animate({
806										top: topPos
807									}, timeFunc(), 'linear', function () {
808										$(this).css({
809											top: strWrap.height()
810										});
811										if (loop == -1) {
812											setTimeout(moveFunc, p.scrolldelay);
813										} else {
814											loop--;
815											setTimeout(moveFunc, p.scrolldelay);
816										};
817									});
818								};
819								if(!p.inverthover){
820									moveFunc();
821								}
822								if (p.hoverstop) {
823									strWrap.on(enterEvent, function () {
824										$(this).addClass('str_active');
825										strMove.stop(true);
826									}).on(leaveEvent, function () {
827										$(this).removeClass('str_active');
828										$(this).off('mousemove');
829										moveFunc();
830									});
831
832									if (p.drag) {
833										strWrap.on('mousedown', function (e) {
834											if(p.inverthover){
835												strMove.stop(true);
836											}
837											
838											//drag
839											var dragTop;
840											var dir = 1;
841											var newY;
842											var oldY = e.clientY;
843											//drag
844											
845											strMoveTop = strMove.position().top;
846											k2 = strMoveTop - (e.clientY - strWrap.offset().top);
847											$(this).on('mousemove', function (e) {
848												
849												
850												fMove = true;
851
852												//drag
853												newY = e.clientY;
854												if(newY > oldY){
855													dir = 1
856												}else{
857													if(newY < oldY){
858														dir = -1
859													}
860												}
861												oldY = newY	
862												dragTop = k2 + e.clientY - strWrap.offset().top;
863												
864												if(dragTop < -strMove.height() && dir < 0){
865													dragTop = strWrap.height();
866													strMoveTop = strMove.position().top;
867													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
868												}
869												if(dragTop > strWrap.height() && dir > 0){
870													dragTop = -strMove.height();
871													strMoveTop = strMove.position().top;
872													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
873												}	
874												//*drag
875												
876												strMove.stop(true).css({
877													top: dragTop
878												});
879												
880												
881											}).on('mouseup', function () {
882												if(p.inverthover){
883													strMove.trigger('mouseenter')
884												}
885												$(this).off('mousemove');
886												setTimeout(function () {                             
887													fMove = false
888												}, 50)
889											});
890											return false;
891										})
892										.on('click', function () {
893											if (fMove) {
894												return false
895											}
896										});
897									} else {
898										strWrap.addClass('no_drag');
899									};
900								}
901							} else {
902								strWrap.addClass('str_static');
903							}
904						};
905					};
906					if (p.direction == 'down') {
907
908						strWrap.addClass('str_vertical').addClass('str_down');
909						strMove.css({
910							top: -strMove.height(),
911							bottom: 'auto'
912						})
913						if (strMove.height() > strWrap.height()) {
914							var topPos = strWrap.height();
915							if (p.circular) {
916								if (!p.xml) {
917									circCloneVert();									
918									topPos = strMove.height();
919								}
920							}
921							if (p.xml) {
922								strMove.css({
923									top:-strMove.height()
924								})
925							}
926							var
927							k2 = 0;
928							timeFunc = function () {
929								var
930								fullS = strWrap.height(), //крайняя точка
931									time = (fullS / p.scrollamount) * 1000; //время
932
933								if (parseFloat(strMove.css('top')) != 0) {
934									fullS = (strMove.height() + strWrap.height());
935									time = (fullS - (strMove.height() + parseFloat(strMove.css('top')))) / p.scrollamount * 1000;
936								}
937								return time;
938							};
939							var moveFunc = function () {
940
941								if (loop != 0) {
942									strMove.animate({
943										top: topPos
944									}, timeFunc(), 'linear', function () {
945										$(this).css({
946											top: -strMove.height()
947										});
948										if (loop == -1) {
949
950											setTimeout(moveFunc, p.scrolldelay);
951										} else {
952											loop--;
953											setTimeout(moveFunc, p.scrolldelay);
954										};
955									});
956								};
957							};
958							if(!p.inverthover){
959								moveFunc();
960							}
961							if (p.hoverstop) {
962								strWrap.on(enterEvent, function () {
963									$(this).addClass('str_active');
964									strMove.stop(true);
965								}).on(leaveEvent, function () {
966									$(this).removeClass('str_active');
967									$(this).off('mousemove');
968									moveFunc();
969								});
970
971								if (p.drag) {
972									strWrap.on('mousedown', function (e) {
973										if(p.inverthover){
974											strMove.stop(true);
975										}
976										
977										//drag
978										var dragTop;
979										var dir = 1;
980										var newY;
981										var oldY = e.clientY;
982										//drag
983										
984										
985										strMoveTop = strMove.position().top;
986										k2 = strMoveTop - (e.clientY - strWrap.offset().top);
987										$(this).on('mousemove', function (e) {
988											
989											fMove = true;
990											
991											//drag
992											newY = e.clientY;
993											if(newY > oldY){
994												dir = 1
995											}else{
996												if(newY < oldY){
997													dir = -1
998												}
999											}
1000											oldY = newY	
1001											dragTop = k2 + e.clientY - strWrap.offset().top;
1002
1003
1004											if (!p.circular){
1005												if(dragTop < -strMove.height() && dir < 0){
1006													dragTop = strWrap.height();
1007													strMoveTop = strMove.position().top;
1008													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
1009												}
1010												if(dragTop > strWrap.height() && dir > 0){
1011													dragTop = -strMove.height();
1012													strMoveTop = strMove.position().top;
1013													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
1014												}	
1015											}else{
1016												if(dragTop < -strMove.height() && dir < 0){
1017													dragTop = 0;
1018													strMoveTop = strMove.position().top;
1019													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
1020												}
1021												if(dragTop > 0 && dir > 0){
1022													dragTop = -strMove.height();
1023													strMoveTop = strMove.position().top;
1024													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
1025												}
1026											}
1027
1028
1029											strMove.stop(true).css({
1030												top: dragTop
1031											});
1032											//drag
1033
1034
1035
1036										}).on('mouseup', function () {
1037											if(p.inverthover){
1038												strMove.trigger('mouseenter')
1039											}
1040											$(this).off('mousemove');
1041											setTimeout(function () {                             
1042												fMove = false
1043											}, 50)
1044										});
1045										return false;
1046									})
1047									.on('click', function () {
1048										if (fMove) {
1049											return false
1050										}
1051									});
1052								} else {
1053									strWrap.addClass('no_drag');
1054								};
1055							}
1056						} else {
1057							if (p.runshort) {
1058								var k2 = 0;
1059								var timeFunc = function () {
1060									time = (strWrap.height() - strMove.position().top) / p.scrollamount * 1000;
1061									return time;
1062								};
1063								var moveFunc = function () {
1064									var topPos = strWrap.height();
1065									strMove.animate({
1066										top: topPos
1067									}, timeFunc(), 'linear', function () {
1068										$(this).css({
1069											top: -strMove.height()
1070										});
1071										if (loop == -1) {
1072											setTimeout(moveFunc, p.scrolldelay);
1073										} else {
1074											loop--;
1075											setTimeout(moveFunc, p.scrolldelay);
1076										};
1077									});
1078								};
1079								if(!p.inverthover){
1080									moveFunc();
1081								}
1082								if (p.hoverstop) {
1083									strWrap.on(enterEvent, function () {
1084										$(this).addClass('str_active');
1085										strMove.stop(true);
1086									}).on(leaveEvent, function () {
1087										$(this).removeClass('str_active');
1088										$(this).off('mousemove');
1089										moveFunc();
1090									});
1091
1092									if (p.drag) {
1093										strWrap.on('mousedown', function (e) {
1094											if(p.inverthover){
1095												strMove.stop(true);
1096											}
1097											
1098											//drag
1099											var dragTop;
1100											var dir = 1;
1101											var newY;
1102											var oldY = e.clientY;
1103											//drag
1104											
1105											strMoveTop = strMove.position().top;
1106											k2 = strMoveTop - (e.clientY - strWrap.offset().top);
1107											$(this).on('mousemove', function (e) {
1108												fMove = true;
1109
1110												//drag
1111												newY = e.clientY;
1112												if(newY > oldY){
1113													dir = 1
1114												}else{
1115													if(newY < oldY){
1116														dir = -1
1117													}
1118												}
1119												oldY = newY	
1120												dragTop = k2 + e.clientY - strWrap.offset().top;
1121	
1122	
1123												if(dragTop < -strMove.height() && dir < 0){
1124													dragTop = strWrap.height();
1125													strMoveTop = strMove.position().top;
1126													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
1127												}
1128												if(dragTop > strWrap.height() && dir > 0){
1129													dragTop = -strMove.height();
1130													strMoveTop = strMove.position().top;
1131													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
1132												}	
1133												//*drag
1134												
1135												strMove.stop(true).css({
1136													top: dragTop
1137												});
1138												
1139												
1140												
1141												
1142												
1143												
1144												
1145												
1146											}).on('mouseup', function () {
1147												if(p.inverthover){
1148													strMove.trigger('mouseenter')
1149												}
1150												$(this).off('mousemove');
1151												setTimeout(function () {                             
1152													fMove = false
1153												}, 50)
1154											})
1155											return false;
1156										})
1157										.on('click', function () {
1158											if (fMove) {
1159												return false
1160											}
1161										});
1162									} else {
1163										strWrap.addClass('no_drag');
1164									};
1165								}
1166							} else {
1167								strWrap.addClass('str_static');
1168							}
1169						};
1170					};
1171					
1172					
1173					
1174					
1175				}
1176				if (p.xml) {
1177					$.ajax({
1178						url: p.xml,
1179						dataType: "xml",
1180						success: function (xml) {
1181							var xmlTextEl = $(xml).find('text');
1182							var xmlTextLength = xmlTextEl.length;
1183							for(var i = 0; i < xmlTextLength; i++){
1184								var xmlElActive = xmlTextEl.eq(i);
1185								var xmlElContent = xmlElActive.text();
1186								var xmlItemEl = $('<span>').text(xmlElContent).appendTo(strWrap);
1187								
1188								if(p.direction == 'left' || p.direction == 'right'){
1189									xmlItemEl.css({display:'inline-block',textAlign:'right'});	
1190									if(i > 0){
1191										xmlItemEl.css({width:strWrap.width()+xmlItemEl.width()});	
1192									}
1193								}
1194								if(p.direction == 'down' || p.direction == 'up'){
1195									xmlItemEl.css({display:'block',textAlign:'left'});	
1196										if(i > 0){
1197											xmlItemEl.css({paddingTop:strWrap.height()});
1198										}
1199								}
1200								
1201							}
1202							code();
1203						}
1204					});
1205				} else {
1206					code();
1207				}
1208				strWrap.data({
1209					ini:code,
1210					startheight: startHeight	
1211				})
1212				
1213				
1214				
1215				
1216			});
1217		},
1218		update: function () {
1219			var el = $(this);
1220			var str_origin = $('.str_origin',el);
1221			var str_move_clone = $('.str_move_clone',el);
1222			str_origin.stop(true);
1223			str_move_clone.remove();
1224			el.data('ini')();
1225		},
1226		destroy: function () {
1227			
1228			var el = $(this);
1229			var elMove = $('.str_move',el);
1230			var startHeight = el.data('startheight');
1231			
1232			$('.str_move_clone',el).remove();
1233			el.off('mouseenter');
1234			el.off('mousedown');
1235			el.off('mouseup');
1236			el.off('mouseleave');
1237			el.off('mousemove');
1238			el.removeClass('noStop').removeClass('str_vertical').removeClass('str_active').removeClass('no_drag').removeClass('str_static').removeClass('str_right').removeClass('str_down');
1239			
1240			var elStyle = el.attr('style'); 
1241			if(elStyle){
1242				var styleArr = elStyle.split(';');
1243				for(var i=0; i < styleArr.length; i++){
1244					var str = $.trim(styleArr[i]);
1245					var tested =  str.search(/^height/g);
1246					if(tested != -1){
1247						styleArr[i] = '';	
1248					}
1249				}
1250				var newArr = styleArr.join(';');
1251				var newStyle =  newArr.replace(/;+/g,';')
1252			
1253				if(newStyle == ';'){
1254					el.removeAttr('style');	
1255				}else{
1256					el.attr('style',newStyle);	
1257				}
1258				
1259				if(startHeight){
1260					el.css({height:startHeight})	
1261				}
1262			}
1263			elMove.stop(true);
1264
1265			if(elMove.length){
1266				var context = elMove.html();
1267				elMove.remove();
1268				el.html(context);
1269			}
1270	
1271		}
1272	};
1273	$.fn.liMarquee = function (method) {
1274		if (methods[method]) {
1275			return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
1276		} else if (typeof method === 'object' || !method) {
1277			return methods.init.apply(this, arguments);
1278		} else {
1279			$.error('Метод ' + method + ' в jQuery.liMarquee не существует');
1280		}
1281	};
1282})(jQuery);

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.