| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309 | 
							- /*
 
-  * jQuery liMarquee v 4.6
 
-  *
 
-  * Copyright 2013, Linnik Yura | LI MASS CODE | http://masscode.ru
 
-  * http://masscode.ru/index.php/k2/item/44-limarquee
 
-  * Free to use
 
-  *
 
-  * Last Update 20.11.2014
 
-  */
 
- (function ($) {
 
- 	var methods = {
 
- 		init: function (options) {
 
- 			var p = {
 
- 				direction: 'left', //Указывает направление движения содержимого контейнера (left | right | up | down)
 
- 				loop: -1, //Задает, сколько раз будет прокручиваться содержимое. "-1" для бесконечного воспроизведения движения
 
- 				scrolldelay: 0, //Величина задержки в миллисекундах между движениями
 
- 				scrollamount: 50, //Скорость движения контента (px/sec)
 
- 				circular: true, //Если "true" - строка непрерывная 
 
- 				drag: true, //Если "true" - включено перетаскивание строки
 
- 				runshort: true, //Если "true" - короткая строка тоже "бегает", "false" - стоит на месте
 
- 				hoverstop: true, //true - строка останавливается при наведении курсора мыши, false - строка не останавливается
 
- 				inverthover: false, //false - стандартное поведение. Если "true" - строка начинает движение только при наведении курсора
 
- 				xml: false //Путь к xml файлу с нужным текстом
 
- 			};
 
- 			if (options) {
 
- 				$.extend(p, options);
 
- 			}
 
- 			return this.each(function () {
 
- 				var enterEvent = 'mouseenter';
 
- 				var leaveEvent = 'mouseleave';
 
- 				if(p.inverthover){
 
- 					enterEvent = 'mouseleave';
 
- 					leaveEvent = 'mouseenter';	
 
- 				}
 
- 				
 
- 								
 
- 				var
 
- 					loop = p.loop,
 
- 					strWrap = $(this).addClass('str_wrap').data({scrollamount:p.scrollamount}),
 
- 					fMove = false;
 
- 					
 
- 				
 
- 				
 
- 				var strWrapStyle = strWrap.attr('style'); 
 
- 				
 
- 				if(strWrapStyle){
 
- 					var wrapStyleArr = strWrapStyle.split(';');
 
- 					var startHeight = false;
 
- 					for(var i=0; i < wrapStyleArr.length; i++){
 
- 						var str = $.trim(wrapStyleArr[i]);					
 
- 						var tested =  str.search(/^height/g);
 
- 						if(tested != -1){
 
- 							startHeight = parseFloat(strWrap.css('height'));
 
- 						}
 
- 					}
 
- 				}
 
- 				var code = function () {
 
- 					
 
- 					strWrap.off('mouseleave');
 
- 					strWrap.off('mouseenter');
 
- 					strWrap.off('mousemove');
 
- 					strWrap.off('mousedown');
 
- 					strWrap.off('mouseup');
 
- 					
 
- 					if(!$('.str_move',strWrap).length){
 
- 						strWrap.wrapInner($('<div>').addClass('str_move'));
 
- 					}
 
- 					
 
- 					var
 
- 					strMove = $('.str_move', strWrap).addClass('str_origin'),
 
- 					strMoveClone = strMove.clone().removeClass('str_origin').addClass('str_move_clone'),
 
- 					time = 0;
 
- 					if (!p.hoverstop) {
 
- 						strWrap.addClass('noStop');
 
- 					}
 
- 					var circCloneHor = function(){
 
- 						strMoveClone.clone().css({
 
- 							left:'100%',
 
- 							right:'auto',							
 
- 							width: strMove.width()
 
- 						}).appendTo(strMove);
 
- 						strMoveClone.css({
 
- 							right: '100%',
 
- 							left:'auto',
 
- 							width: strMove.width()
 
- 						}).appendTo(strMove);
 
- 					}
 
- 					
 
- 					var circCloneVert = function(){
 
- 						strMoveClone.clone().css({
 
- 							top: '100%',
 
- 							bottom:'auto',
 
- 							height: strMove.height()
 
- 						}).appendTo(strMove);
 
- 						strMoveClone.css({
 
- 							bottom: '100%',
 
- 							top:'auto',
 
- 							height:strMove.height()
 
- 						}).appendTo(strMove);
 
- 					}
 
- 					
 
- 					
 
- 					
 
- 					if (p.direction == 'left') {
 
- 						strWrap.height(strMove.outerHeight())
 
- 						if (strMove.width() > strWrap.width()) {
 
- 							var leftPos = -strMove.width();
 
- 							
 
- 							if (p.circular) {
 
- 								
 
- 								if (!p.xml) {
 
- 									circCloneHor()
 
- 									leftPos = -(strMove.width() + (strMove.width() - strWrap.width()));
 
- 								}
 
- 							}
 
- 							if (p.xml) {
 
- 								strMove.css({
 
- 									left:strWrap.width()	
 
- 								})
 
- 							}
 
- 							var
 
- 							strMoveLeft = strWrap.width(),
 
- 								k1 = 0,
 
- 								timeFunc1 = function () {
 
- 									var
 
- 									fullS = Math.abs(leftPos),
 
- 										time = (fullS / strWrap.data('scrollamount')) * 1000;
 
- 									if (parseFloat(strMove.css('left')) != 0) {
 
- 										fullS = (fullS + strWrap.width());
 
- 										time = (fullS - (strWrap.width() - parseFloat(strMove.css('left')))) / strWrap.data('scrollamount') * 1000;
 
- 									}
 
- 									return time;
 
- 								},
 
- 								moveFuncId1 = false,
 
- 								moveFunc1 = function () {
 
- 									if (loop != 0) {
 
- 										strMove.stop(true).animate({
 
- 											left: leftPos
 
- 										}, timeFunc1(), 'linear', function () {
 
- 											$(this).css({
 
- 												left: strWrap.width()
 
- 											});
 
- 											if (loop == -1) {
 
- 												moveFuncId1 = setTimeout(moveFunc1, p.scrolldelay);
 
- 											} else {
 
- 												loop--;
 
- 												moveFuncId1 = setTimeout(moveFunc1, p.scrolldelay);
 
- 											}
 
- 										});
 
- 									}
 
- 								};
 
- 								strWrap.data({
 
- 									moveId: moveFuncId1	,
 
- 									moveF : moveFunc1
 
- 								})
 
- 								if(!p.inverthover){
 
- 									moveFunc1();
 
- 								}
 
- 							
 
- 							if (p.hoverstop) {
 
- 								strWrap.on(enterEvent, function () {
 
- 									$(this).addClass('str_active');
 
- 									clearTimeout(moveFuncId1);
 
- 									strMove.stop(true);
 
- 								}).on(leaveEvent, function () {
 
- 									$(this).removeClass('str_active');
 
- 									$(this).off('mousemove');
 
- 									moveFunc1();
 
- 								});
 
- 								if (p.drag) {
 
- 									strWrap.on('mousedown', function (e) {
 
- 										if(p.inverthover){
 
- 											strMove.stop(true);
 
- 										}
 
- 										//drag
 
- 										var dragLeft;
 
- 										var dir = 1;
 
- 										var newX;
 
- 										var oldX = e.clientX;
 
- 										//drag
 
- 										
 
- 										strMoveLeft = strMove.position().left;
 
- 										k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 										
 
- 										
 
- 										
 
- 										$(this).on('mousemove', function (e) {
 
- 											fMove = true;
 
- 											
 
- 											//drag
 
- 											newX = e.clientX;
 
- 											if(newX > oldX){
 
- 												dir = 1
 
- 											}else{
 
- 												dir = -1
 
- 											}
 
- 											oldX = newX	
 
- 											dragLeft = k1 + (e.clientX - strWrap.offset().left);
 
- 											
 
- 											if (!p.circular) {
 
- 												if(dragLeft < -strMove.width() && dir < 0){
 
- 													dragLeft = strWrap.width();
 
- 													strMoveLeft = strMove.position().left;
 
- 													k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 												}
 
- 												if(dragLeft > strWrap.width() && dir > 0){
 
- 													dragLeft = -strMove.width();
 
- 													strMoveLeft = strMove.position().left;
 
- 													k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 												}
 
- 											}else{
 
- 												if(dragLeft < -strMove.width() && dir < 0){
 
- 													dragLeft = 0;
 
- 													strMoveLeft = strMove.position().left;
 
- 													k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 												}
 
- 												if(dragLeft > 0 && dir > 0){
 
- 													dragLeft = -strMove.width();
 
- 													strMoveLeft = strMove.position().left;
 
- 													k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 												}
 
- 	
 
- 											}
 
- 											
 
- 											
 
- 											strMove.stop(true).css({
 
- 												left: dragLeft
 
- 											});
 
- 											//drag
 
- 											
 
- 										
 
- 											
 
- 										}).on('mouseup', function () {
 
- 											$(this).off('mousemove');
 
- 											if(p.inverthover){
 
- 												strMove.trigger('mouseenter')
 
- 											}
 
- 											setTimeout(function () {                             
 
- 												fMove = false
 
- 											}, 50)
 
- 											
 
- 										});
 
- 										return false;
 
- 									})
 
- 									.on('click', function () {
 
- 										if (fMove) {
 
- 											return false
 
- 										}
 
- 									});
 
- 								} else {
 
- 									strWrap.addClass('no_drag');
 
- 								};
 
- 							}
 
- 						} else {
 
- 							if (p.runshort) {
 
- 								strMove.css({
 
- 									left: strWrap.width()
 
- 								});
 
- 								var
 
- 								strMoveLeft = strWrap.width(),
 
- 									k1 = 0,
 
- 									timeFunc = function () {
 
- 										time = (strMove.width() + strMove.position().left) / strWrap.data('scrollamount') * 1000;
 
- 										return time;
 
- 									};
 
- 								var moveFunc = function () {
 
- 									var leftPos = -strMove.width();
 
- 									strMove.animate({
 
- 										left: leftPos
 
- 									}, timeFunc(), 'linear', function () {
 
- 										$(this).css({
 
- 											left: strWrap.width()
 
- 										});
 
- 										if (loop == -1) {
 
- 											setTimeout(moveFunc, p.scrolldelay);
 
- 										} else {
 
- 											loop--;
 
- 											setTimeout(moveFunc, p.scrolldelay);
 
- 										}
 
- 									});
 
- 								};
 
- 								strWrap.data({
 
- 									moveF : moveFunc
 
- 								})
 
- 								if(!p.inverthover){
 
- 									moveFunc();
 
- 								}
 
- 								if (p.hoverstop) {
 
- 									strWrap.on(enterEvent, function () {
 
- 										$(this).addClass('str_active');
 
- 										strMove.stop(true);
 
- 									}).on(leaveEvent, function () {
 
- 										$(this).removeClass('str_active');
 
- 										$(this).off('mousemove');
 
- 										moveFunc();
 
- 									});
 
- 									if (p.drag) {
 
- 										strWrap.on('mousedown', function (e) {
 
- 											if(p.inverthover){
 
- 												strMove.stop(true);
 
- 											}
 
- 											
 
- 											//drag
 
- 											var dragLeft;
 
- 											var dir = 1;
 
- 											var newX;
 
- 											var oldX = e.clientX;
 
- 											//drag
 
- 											
 
- 											strMoveLeft = strMove.position().left;
 
- 											k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 											$(this).on('mousemove', function (e) {
 
- 												fMove = true;
 
- 												
 
- 												
 
- 												//drag
 
- 												newX = e.clientX;
 
- 												if(newX > oldX){
 
- 													dir = 1
 
- 												}else{
 
- 													dir = -1
 
- 												}
 
- 												oldX = newX	
 
- 												dragLeft = k1 + (e.clientX - strWrap.offset().left);
 
- 												
 
- 												if(dragLeft < -strMove.width() && dir < 0){
 
- 													dragLeft = strWrap.width();
 
- 													strMoveLeft = strMove.position().left;
 
- 													k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 												}
 
- 												if(dragLeft > strWrap.width() && dir > 0){
 
- 													dragLeft = -strMove.width();
 
- 													strMoveLeft = strMove.position().left;
 
- 													k1 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 												}
 
- 												
 
- 												
 
- 												strMove.stop(true).css({
 
- 													left: dragLeft
 
- 												});
 
- 												
 
- 												
 
- 												
 
- 											}).on('mouseup', function () {
 
- 												if(p.inverthover){
 
- 													strMove.trigger('mouseenter')
 
- 												}
 
- 												$(this).off('mousemove');
 
- 												setTimeout(function () {                             
 
- 													fMove = false
 
- 												}, 50)
 
- 											});
 
- 											return false;
 
- 										})
 
- 										.on('click', function () {
 
- 											if (fMove) {
 
- 												return false
 
- 											}
 
- 										});
 
- 									} else {
 
- 										strWrap.addClass('no_drag');
 
- 									};
 
- 								}
 
- 							} else {
 
- 								strWrap.addClass('str_static');
 
- 							}
 
- 						};
 
- 					};
 
- 					if (p.direction == 'right') {
 
- 						strWrap.height(strMove.outerHeight())
 
- 						strWrap.addClass('str_right');
 
- 						strMove.css({
 
- 							left: -strMove.width(),
 
- 							right: 'auto'
 
- 						})
 
- 						
 
- 						if (strMove.width() > strWrap.width()) {
 
- 							var leftPos = strWrap.width();
 
- 							strMove.css({
 
- 								left: 0
 
- 							})
 
- 							if (p.circular) {
 
- 								if (!p.xml) {
 
- 									circCloneHor()
 
- 									//Определяем крайнюю точку
 
- 									leftPos = strMove.width();
 
- 								}
 
- 							}
 
- 							
 
- 							var
 
- 							k2 = 0;
 
- 							timeFunc = function () {
 
- 								var
 
- 								fullS = strWrap.width(), //крайняя точка
 
- 									time = (fullS / strWrap.data('scrollamount')) * 1000; //время
 
- 								if (parseFloat(strMove.css('left')) != 0) {
 
- 									fullS = (strMove.width() + strWrap.width());
 
- 									time = (fullS - (strMove.width() + parseFloat(strMove.css('left')))) / strWrap.data('scrollamount') * 1000;
 
- 								}
 
- 								return time;
 
- 							};
 
- 							var moveFunc = function () {
 
- 								if (loop != 0) {
 
- 									strMove.animate({
 
- 										left: leftPos
 
- 									}, timeFunc(), 'linear', function () {
 
- 										$(this).css({
 
- 											left: -strMove.width()
 
- 										});
 
- 										if (loop == -1) {
 
- 											setTimeout(moveFunc, p.scrolldelay);
 
- 										} else {
 
- 											loop--;
 
- 											setTimeout(moveFunc, p.scrolldelay);
 
- 										};
 
- 									});
 
- 								};
 
- 							};
 
- 							strWrap.data({
 
- 								moveF : moveFunc
 
- 							})
 
- 					
 
- 							if(!p.inverthover){
 
- 								moveFunc();
 
- 							}
 
- 							if (p.hoverstop) {
 
- 								strWrap.on(enterEvent, function () {
 
- 									$(this).addClass('str_active');
 
- 									strMove.stop(true);
 
- 								}).on(leaveEvent, function () {
 
- 									$(this).removeClass('str_active');
 
- 									$(this).off('mousemove');
 
- 									moveFunc();
 
- 								});
 
- 								if (p.drag) {
 
- 									
 
- 									strWrap.on('mousedown', function (e) {
 
- 										if(p.inverthover){
 
- 											strMove.stop(true);
 
- 										}
 
- 										
 
- 										
 
- 										//drag
 
- 										var dragLeft;
 
- 										var dir = 1;
 
- 										var newX;
 
- 										var oldX = e.clientX;
 
- 										//drag
 
- 										
 
- 										strMoveLeft = strMove.position().left;
 
- 										k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 										$(this).on('mousemove', function (e) {
 
- 											
 
- 											fMove = true;
 
- 											
 
- 											//drag
 
- 											newX = e.clientX;
 
- 											if(newX > oldX){
 
- 												dir = 1
 
- 											}else{
 
- 												dir = -1
 
- 											}
 
- 											oldX = newX	
 
- 											dragLeft = k2 + (e.clientX - strWrap.offset().left);
 
- 											if (!p.circular) {
 
- 												if(dragLeft < -strMove.width() && dir < 0){
 
- 													dragLeft = strWrap.width();
 
- 													strMoveLeft = strMove.position().left;
 
- 													k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 												}
 
- 												if(dragLeft > strWrap.width() && dir > 0){
 
- 													dragLeft = -strMove.width();
 
- 													strMoveLeft = strMove.position().left;
 
- 													k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 												}
 
- 											}else{
 
- 												if(dragLeft < -strMove.width() && dir < 0){
 
- 													dragLeft = 0;
 
- 													strMoveLeft = strMove.position().left;
 
- 													k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 												}
 
- 												if(dragLeft > 0 && dir > 0){
 
- 													dragLeft = -strMove.width();
 
- 													strMoveLeft = strMove.position().left;
 
- 													k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 												}
 
- 	
 
- 											}
 
- 											
 
- 											strMove.stop(true).css({
 
- 												left: dragLeft
 
- 											});
 
- 											
 
- 										}).on('mouseup', function () {
 
- 											if(p.inverthover){
 
- 												strMove.trigger('mouseenter')
 
- 											}
 
- 											$(this).off('mousemove');
 
- 											setTimeout(function () {                             
 
- 												fMove = false
 
- 											}, 50)
 
- 										});
 
- 										return false;
 
- 									})
 
- 									.on('click', function () {
 
- 										if (fMove) {
 
- 											return false
 
- 										}
 
- 									});
 
- 								} else {
 
- 									strWrap.addClass('no_drag');
 
- 								};
 
- 							}
 
- 						} else {
 
- 														
 
- 							if (p.runshort) {
 
- 								
 
- 								var k2 = 0;
 
- 								var timeFunc = function () {
 
- 									time = (strWrap.width() - strMove.position().left) / strWrap.data('scrollamount') * 1000;
 
- 									return time;
 
- 								};
 
- 								var moveFunc = function () {
 
- 									var leftPos = strWrap.width();
 
- 									strMove.animate({
 
- 										left: leftPos
 
- 									}, timeFunc(), 'linear', function () {
 
- 										$(this).css({
 
- 											left: -strMove.width()
 
- 										});
 
- 										if (loop == -1) {
 
- 											setTimeout(moveFunc, p.scrolldelay);
 
- 										} else {
 
- 											loop--;
 
- 											setTimeout(moveFunc, p.scrolldelay);
 
- 										};
 
- 									});
 
- 								};
 
- 								strWrap.data({
 
- 									moveF : moveFunc
 
- 								})
 
- 								if(!p.inverthover){
 
- 									moveFunc();
 
- 								}
 
- 								if (p.hoverstop) {
 
- 									strWrap.on(enterEvent, function () {
 
- 										$(this).addClass('str_active');
 
- 										strMove.stop(true);
 
- 									}).on(leaveEvent, function () {
 
- 										$(this).removeClass('str_active');
 
- 										$(this).off('mousemove');
 
- 										moveFunc();
 
- 									});
 
- 									if (p.drag) {
 
- 										strWrap.on('mousedown', function (e) {
 
- 											if(p.inverthover){
 
- 												strMove.stop(true);
 
- 											}
 
- 											
 
- 											//drag
 
- 											var dragLeft;
 
- 											var dir = 1;
 
- 											var newX;
 
- 											var oldX = e.clientX;
 
- 											//drag
 
- 											
 
- 											strMoveLeft = strMove.position().left;
 
- 											k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 											$(this).on('mousemove', function (e) {
 
- 												fMove = true;
 
- 												
 
- 												
 
- 												
 
- 												//drag
 
- 												newX = e.clientX;
 
- 												if(newX > oldX){
 
- 													dir = 1
 
- 												}else{
 
- 													dir = -1
 
- 												}
 
- 												oldX = newX	
 
- 												dragLeft = k2 + (e.clientX - strWrap.offset().left);
 
- 												
 
- 												if(dragLeft < -strMove.width() && dir < 0){
 
- 													dragLeft = strWrap.width();
 
- 													strMoveLeft = strMove.position().left;
 
- 													k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 												}
 
- 												if(dragLeft > strWrap.width() && dir > 0){
 
- 													dragLeft = -strMove.width();
 
- 													strMoveLeft = strMove.position().left;
 
- 													k2 = strMoveLeft - (e.clientX - strWrap.offset().left);
 
- 												}
 
- 												strMove.stop(true).css({
 
- 													left:dragLeft
 
- 												});
 
- 												
 
- 											}).on('mouseup', function () {
 
- 												if(p.inverthover){
 
- 													strMove.trigger('mouseenter')
 
- 												}
 
- 												$(this).off('mousemove');
 
- 												setTimeout(function () {                             
 
- 													fMove = false
 
- 												}, 50)
 
- 											});
 
- 											return false;
 
- 										})
 
- 										.on('click', function () {
 
- 											if (fMove) {
 
- 												return false
 
- 											}
 
- 										});
 
- 									} else {
 
- 										strWrap.addClass('no_drag');
 
- 									};
 
- 								}
 
- 							} else {
 
- 								strWrap.addClass('str_static');
 
- 							}
 
- 						};
 
- 					};
 
- 					if (p.direction == 'up') {
 
- 						strWrap.addClass('str_vertical');
 
- 						
 
- 						if (strMove.height() > strWrap.height()) {
 
- 							var topPos = -strMove.height();
 
- 							if (p.circular) {
 
- 								if (!p.xml) {
 
- 									circCloneVert();									
 
- 									topPos = -(strMove.height() + (strMove.height() - strWrap.height()));
 
- 								}
 
- 							}
 
- 							if (p.xml) {
 
- 								strMove.css({
 
- 									top:strWrap.height()	
 
- 								})
 
- 							}
 
- 							var
 
- 							k2 = 0;
 
- 							timeFunc = function () {
 
- 								var
 
- 								fullS = Math.abs(topPos),
 
- 									time = (fullS / strWrap.data('scrollamount')) * 1000;
 
- 								if (parseFloat(strMove.css('top')) != 0) {
 
- 									fullS = (fullS + strWrap.height());
 
- 									time = (fullS - (strWrap.height() - parseFloat(strMove.css('top')))) / strWrap.data('scrollamount') * 1000;
 
- 								}
 
- 								
 
- 								return time;
 
- 							};
 
- 							var moveFunc = function () {
 
- 								if (loop != 0) {
 
- 									strMove.animate({
 
- 										top: topPos
 
- 									}, timeFunc(), 'linear', function () {
 
- 										$(this).css({
 
- 											top: strWrap.height()
 
- 										});
 
- 										if (loop == -1) {
 
- 											setTimeout(moveFunc, p.scrolldelay);
 
- 										} else {
 
- 											loop--;
 
- 											setTimeout(moveFunc, p.scrolldelay);
 
- 										};
 
- 									});
 
- 								};
 
- 							};
 
- 							
 
- 							strWrap.data({
 
- 								moveF : moveFunc
 
- 							})
 
- 							
 
- 							if(!p.inverthover){
 
- 								moveFunc();
 
- 							}
 
- 							if (p.hoverstop) {
 
- 								strWrap.on(enterEvent, function () {
 
- 									$(this).addClass('str_active');
 
- 									strMove.stop(true);
 
- 								}).on(leaveEvent, function () {
 
- 									$(this).removeClass('str_active');
 
- 									$(this).off('mousemove');
 
- 									moveFunc();
 
- 								});
 
- 								if (p.drag) {
 
- 									strWrap.on('mousedown', function (e) {
 
- 										if(p.inverthover){
 
- 											strMove.stop(true);
 
- 										}
 
- 										
 
- 										//drag
 
- 										var dragTop;
 
- 										var dir = 1;
 
- 										var newY;
 
- 										var oldY = e.clientY;
 
- 										//drag
 
- 										
 
- 										
 
- 										strMoveTop = strMove.position().top;
 
- 										k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 										$(this).on('mousemove', function (e) {
 
- 											
 
- 											fMove = true;
 
- 											//drag
 
- 											newY = e.clientY;
 
- 											if(newY > oldY){
 
- 												dir = 1
 
- 											}else{
 
- 												if(newY < oldY){
 
- 													dir = -1
 
- 												}
 
- 											}
 
- 											oldY = newY	
 
- 											dragTop = k2 + e.clientY - strWrap.offset().top;
 
- 											if (!p.circular){
 
- 												if(dragTop < -strMove.height() && dir < 0){
 
- 													dragTop = strWrap.height();
 
- 													strMoveTop = strMove.position().top;
 
- 													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 												}
 
- 												if(dragTop > strWrap.height() && dir > 0){
 
- 													dragTop = -strMove.height();
 
- 													strMoveTop = strMove.position().top;
 
- 													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 												}	
 
- 											}else{
 
- 												if(dragTop < -strMove.height() && dir < 0){
 
- 													dragTop = 0;
 
- 													strMoveTop = strMove.position().top;
 
- 													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 												}
 
- 												if(dragTop > 0 && dir > 0){
 
- 													dragTop = -strMove.height();
 
- 													strMoveTop = strMove.position().top;
 
- 													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 												}
 
- 											}
 
- 											strMove.stop(true).css({
 
- 												top: dragTop
 
- 											});
 
- 											//drag
 
- 											
 
- 											
 
- 											
 
- 											
 
- 											
 
- 											
 
- 											
 
- 											
 
- 											
 
- 											
 
- 											
 
- 											
 
- 										}).on('mouseup', function () {
 
- 											if(p.inverthover){
 
- 												strMove.trigger('mouseenter')
 
- 											}
 
- 											$(this).off('mousemove');
 
- 											setTimeout(function () {                             
 
- 												fMove = false
 
- 											}, 50)
 
- 										});
 
- 										return false;
 
- 									})
 
- 									.on('click', function () {
 
- 										if (fMove) {
 
- 											return false
 
- 										}
 
- 									});
 
- 								} else {
 
- 									strWrap.addClass('no_drag');
 
- 								};
 
- 							}
 
- 						} else {
 
- 							if (p.runshort) {
 
- 								strMove.css({
 
- 									top: strWrap.height()
 
- 								});
 
- 								var k2 = 0;
 
- 								var timeFunc = function () {
 
- 									
 
- 									time = (strMove.height() + strMove.position().top) / strWrap.data('scrollamount') * 1000;
 
- 									
 
- 									return time;
 
- 								};
 
- 								var moveFunc = function () {
 
- 									var topPos = -strMove.height();
 
- 									strMove.animate({
 
- 										top: topPos
 
- 									}, timeFunc(), 'linear', function () {
 
- 										$(this).css({
 
- 											top: strWrap.height()
 
- 										});
 
- 										if (loop == -1) {
 
- 											setTimeout(moveFunc, p.scrolldelay);
 
- 										} else {
 
- 											loop--;
 
- 											setTimeout(moveFunc, p.scrolldelay);
 
- 										};
 
- 									});
 
- 								};
 
- 								strWrap.data({
 
- 									moveF : moveFunc
 
- 								})
 
- 								if(!p.inverthover){
 
- 									moveFunc();
 
- 								}
 
- 								if (p.hoverstop) {
 
- 									strWrap.on(enterEvent, function () {
 
- 										$(this).addClass('str_active');
 
- 										strMove.stop(true);
 
- 									}).on(leaveEvent, function () {
 
- 										$(this).removeClass('str_active');
 
- 										$(this).off('mousemove');
 
- 										moveFunc();
 
- 									});
 
- 									if (p.drag) {
 
- 										strWrap.on('mousedown', function (e) {
 
- 											if(p.inverthover){
 
- 												strMove.stop(true);
 
- 											}
 
- 											
 
- 											//drag
 
- 											var dragTop;
 
- 											var dir = 1;
 
- 											var newY;
 
- 											var oldY = e.clientY;
 
- 											//drag
 
- 											
 
- 											strMoveTop = strMove.position().top;
 
- 											k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 											$(this).on('mousemove', function (e) {
 
- 												
 
- 												
 
- 												fMove = true;
 
- 												//drag
 
- 												newY = e.clientY;
 
- 												if(newY > oldY){
 
- 													dir = 1
 
- 												}else{
 
- 													if(newY < oldY){
 
- 														dir = -1
 
- 													}
 
- 												}
 
- 												oldY = newY	
 
- 												dragTop = k2 + e.clientY - strWrap.offset().top;
 
- 												
 
- 												if(dragTop < -strMove.height() && dir < 0){
 
- 													dragTop = strWrap.height();
 
- 													strMoveTop = strMove.position().top;
 
- 													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 												}
 
- 												if(dragTop > strWrap.height() && dir > 0){
 
- 													dragTop = -strMove.height();
 
- 													strMoveTop = strMove.position().top;
 
- 													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 												}	
 
- 												//*drag
 
- 												
 
- 												strMove.stop(true).css({
 
- 													top: dragTop
 
- 												});
 
- 												
 
- 												
 
- 											}).on('mouseup', function () {
 
- 												if(p.inverthover){
 
- 													strMove.trigger('mouseenter')
 
- 												}
 
- 												$(this).off('mousemove');
 
- 												setTimeout(function () {                             
 
- 													fMove = false
 
- 												}, 50)
 
- 											});
 
- 											return false;
 
- 										})
 
- 										.on('click', function () {
 
- 											if (fMove) {
 
- 												return false
 
- 											}
 
- 										});
 
- 									} else {
 
- 										strWrap.addClass('no_drag');
 
- 									};
 
- 								}
 
- 							} else {
 
- 								strWrap.addClass('str_static');
 
- 							}
 
- 						};
 
- 					};
 
- 					if (p.direction == 'down') {
 
- 						strWrap.addClass('str_vertical').addClass('str_down');
 
- 						strMove.css({
 
- 							top: -strMove.height(),
 
- 							bottom: 'auto'
 
- 						})
 
- 						if (strMove.height() > strWrap.height()) {
 
- 							var topPos = strWrap.height();
 
- 							if (p.circular) {
 
- 								if (!p.xml) {
 
- 									circCloneVert();									
 
- 									topPos = strMove.height();
 
- 								}
 
- 							}
 
- 							if (p.xml) {
 
- 								strMove.css({
 
- 									top:-strMove.height()
 
- 								})
 
- 							}
 
- 							var
 
- 							k2 = 0;
 
- 							timeFunc = function () {
 
- 								var
 
- 								fullS = strWrap.height(), //крайняя точка
 
- 									time = (fullS / strWrap.data('scrollamount')) * 1000; //время
 
- 								if (parseFloat(strMove.css('top')) != 0) {
 
- 									fullS = (strMove.height() + strWrap.height());
 
- 									time = (fullS - (strMove.height() + parseFloat(strMove.css('top')))) / strWrap.data('scrollamount') * 1000;
 
- 								}
 
- 								return time;
 
- 							};
 
- 							var moveFunc = function () {
 
- 								if (loop != 0) {
 
- 									strMove.animate({
 
- 										top: topPos
 
- 									}, timeFunc(), 'linear', function () {
 
- 										$(this).css({
 
- 											top: -strMove.height()
 
- 										});
 
- 										if (loop == -1) {
 
- 											setTimeout(moveFunc, p.scrolldelay);
 
- 										} else {
 
- 											loop--;
 
- 											setTimeout(moveFunc, p.scrolldelay);
 
- 										};
 
- 									});
 
- 								};
 
- 							};
 
- 							strWrap.data({
 
- 								moveF : moveFunc
 
- 							})
 
- 							if(!p.inverthover){
 
- 								moveFunc();
 
- 							}
 
- 							if (p.hoverstop) {
 
- 								strWrap.on(enterEvent, function () {
 
- 									$(this).addClass('str_active');
 
- 									strMove.stop(true);
 
- 								}).on(leaveEvent, function () {
 
- 									$(this).removeClass('str_active');
 
- 									$(this).off('mousemove');
 
- 									moveFunc();
 
- 								});
 
- 								if (p.drag) {
 
- 									strWrap.on('mousedown', function (e) {
 
- 										if(p.inverthover){
 
- 											strMove.stop(true);
 
- 										}
 
- 										
 
- 										//drag
 
- 										var dragTop;
 
- 										var dir = 1;
 
- 										var newY;
 
- 										var oldY = e.clientY;
 
- 										//drag
 
- 										
 
- 										
 
- 										strMoveTop = strMove.position().top;
 
- 										k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 										$(this).on('mousemove', function (e) {
 
- 											
 
- 											fMove = true;
 
- 											
 
- 											//drag
 
- 											newY = e.clientY;
 
- 											if(newY > oldY){
 
- 												dir = 1
 
- 											}else{
 
- 												if(newY < oldY){
 
- 													dir = -1
 
- 												}
 
- 											}
 
- 											oldY = newY	
 
- 											dragTop = k2 + e.clientY - strWrap.offset().top;
 
- 											if (!p.circular){
 
- 												if(dragTop < -strMove.height() && dir < 0){
 
- 													dragTop = strWrap.height();
 
- 													strMoveTop = strMove.position().top;
 
- 													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 												}
 
- 												if(dragTop > strWrap.height() && dir > 0){
 
- 													dragTop = -strMove.height();
 
- 													strMoveTop = strMove.position().top;
 
- 													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 												}	
 
- 											}else{
 
- 												if(dragTop < -strMove.height() && dir < 0){
 
- 													dragTop = 0;
 
- 													strMoveTop = strMove.position().top;
 
- 													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 												}
 
- 												if(dragTop > 0 && dir > 0){
 
- 													dragTop = -strMove.height();
 
- 													strMoveTop = strMove.position().top;
 
- 													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 												}
 
- 											}
 
- 											strMove.stop(true).css({
 
- 												top: dragTop
 
- 											});
 
- 											//drag
 
- 										}).on('mouseup', function () {
 
- 											if(p.inverthover){
 
- 												strMove.trigger('mouseenter')
 
- 											}
 
- 											$(this).off('mousemove');
 
- 											setTimeout(function () {                             
 
- 												fMove = false
 
- 											}, 50)
 
- 										});
 
- 										return false;
 
- 									})
 
- 									.on('click', function () {
 
- 										if (fMove) {
 
- 											return false
 
- 										}
 
- 									});
 
- 								} else {
 
- 									strWrap.addClass('no_drag');
 
- 								};
 
- 							}
 
- 						} else {
 
- 							if (p.runshort) {
 
- 								var k2 = 0;
 
- 								var timeFunc = function () {
 
- 									time = (strWrap.height() - strMove.position().top) / strWrap.data('scrollamount') * 1000;
 
- 									return time;
 
- 								};
 
- 								var moveFunc = function () {
 
- 									var topPos = strWrap.height();
 
- 									strMove.animate({
 
- 										top: topPos
 
- 									}, timeFunc(), 'linear', function () {
 
- 										$(this).css({
 
- 											top: -strMove.height()
 
- 										});
 
- 										if (loop == -1) {
 
- 											setTimeout(moveFunc, p.scrolldelay);
 
- 										} else {
 
- 											loop--;
 
- 											setTimeout(moveFunc, p.scrolldelay);
 
- 										};
 
- 									});
 
- 								};
 
- 								strWrap.data({
 
- 									moveF : moveFunc
 
- 								})
 
- 								if(!p.inverthover){
 
- 									moveFunc();
 
- 								}
 
- 								if (p.hoverstop) {
 
- 									strWrap.on(enterEvent, function () {
 
- 										$(this).addClass('str_active');
 
- 										strMove.stop(true);
 
- 									}).on(leaveEvent, function () {
 
- 										$(this).removeClass('str_active');
 
- 										$(this).off('mousemove');
 
- 										moveFunc();
 
- 									});
 
- 									if (p.drag) {
 
- 										strWrap.on('mousedown', function (e) {
 
- 											if(p.inverthover){
 
- 												strMove.stop(true);
 
- 											}
 
- 											
 
- 											//drag
 
- 											var dragTop;
 
- 											var dir = 1;
 
- 											var newY;
 
- 											var oldY = e.clientY;
 
- 											//drag
 
- 											
 
- 											strMoveTop = strMove.position().top;
 
- 											k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 											$(this).on('mousemove', function (e) {
 
- 												fMove = true;
 
- 												//drag
 
- 												newY = e.clientY;
 
- 												if(newY > oldY){
 
- 													dir = 1
 
- 												}else{
 
- 													if(newY < oldY){
 
- 														dir = -1
 
- 													}
 
- 												}
 
- 												oldY = newY	
 
- 												dragTop = k2 + e.clientY - strWrap.offset().top;
 
- 	
 
- 	
 
- 												if(dragTop < -strMove.height() && dir < 0){
 
- 													dragTop = strWrap.height();
 
- 													strMoveTop = strMove.position().top;
 
- 													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 												}
 
- 												if(dragTop > strWrap.height() && dir > 0){
 
- 													dragTop = -strMove.height();
 
- 													strMoveTop = strMove.position().top;
 
- 													k2 = strMoveTop - (e.clientY - strWrap.offset().top);
 
- 												}	
 
- 												//*drag
 
- 												
 
- 												strMove.stop(true).css({
 
- 													top: dragTop
 
- 												});
 
- 												
 
- 												
 
- 												
 
- 												
 
- 												
 
- 												
 
- 												
 
- 												
 
- 											}).on('mouseup', function () {
 
- 												if(p.inverthover){
 
- 													strMove.trigger('mouseenter')
 
- 												}
 
- 												$(this).off('mousemove');
 
- 												setTimeout(function () {                             
 
- 													fMove = false
 
- 												}, 50)
 
- 											})
 
- 											return false;
 
- 										})
 
- 										.on('click', function () {
 
- 											if (fMove) {
 
- 												return false
 
- 											}
 
- 										});
 
- 									} else {
 
- 										strWrap.addClass('no_drag');
 
- 									};
 
- 								}
 
- 							} else {
 
- 								strWrap.addClass('str_static');
 
- 							}
 
- 						};
 
- 					};
 
- 					
 
- 					
 
- 					
 
- 					
 
- 				}
 
- 				if (p.xml) {
 
- 					$.ajax({
 
- 						url: p.xml,
 
- 						dataType: "xml",
 
- 						success: function (xml) {
 
- 							var xmlTextEl = $(xml).find('text');
 
- 							var xmlTextLength = xmlTextEl.length;
 
- 							for(var i = 0; i < xmlTextLength; i++){
 
- 								var xmlElActive = xmlTextEl.eq(i);
 
- 								var xmlElContent = xmlElActive.text();
 
- 								var xmlItemEl = $('<span>').text(xmlElContent).appendTo(strWrap);
 
- 								
 
- 								if(p.direction == 'left' || p.direction == 'right'){
 
- 									xmlItemEl.css({display:'inline-block',textAlign:'right'});	
 
- 									if(i > 0){
 
- 										xmlItemEl.css({width:strWrap.width()+xmlItemEl.width()});	
 
- 									}
 
- 								}
 
- 								if(p.direction == 'down' || p.direction == 'up'){
 
- 									xmlItemEl.css({display:'block',textAlign:'left'});	
 
- 										if(i > 0){
 
- 											xmlItemEl.css({paddingTop:strWrap.height()});
 
- 										}
 
- 								}
 
- 								
 
- 							}
 
- 							code();
 
- 						}
 
- 					});
 
- 				} else {
 
- 					code();
 
- 				}
 
- 				strWrap.data({
 
- 					ini:code,
 
- 					startheight: startHeight	
 
- 				})
 
- 				
 
- 				
 
- 				
 
- 				
 
- 			});
 
- 		},
 
- 		update: function () {
 
- 			var el = $(this);
 
- 			var str_origin = $('.str_origin',el);
 
- 			var str_move_clone = $('.str_move_clone',el);
 
- 			str_origin.stop(true);
 
- 			str_move_clone.remove();
 
- 			el.data('ini')();
 
- 		},
 
- 		destroy: function () {
 
- 			
 
- 			var el = $(this);
 
- 			var elMove = $('.str_move',el);
 
- 			var startHeight = el.data('startheight');
 
- 			
 
- 			$('.str_move_clone',el).remove();
 
- 			el.off('mouseenter');
 
- 			el.off('mousedown');
 
- 			el.off('mouseup');
 
- 			el.off('mouseleave');
 
- 			el.off('mousemove');
 
- 			el.removeClass('noStop').removeClass('str_vertical').removeClass('str_active').removeClass('no_drag').removeClass('str_static').removeClass('str_right').removeClass('str_down');
 
- 			
 
- 			var elStyle = el.attr('style'); 
 
- 			if(elStyle){
 
- 				var styleArr = elStyle.split(';');
 
- 				for(var i=0; i < styleArr.length; i++){
 
- 					var str = $.trim(styleArr[i]);
 
- 					var tested =  str.search(/^height/g);
 
- 					if(tested != -1){
 
- 						styleArr[i] = '';	
 
- 					}
 
- 				}
 
- 				var newArr = styleArr.join(';');
 
- 				var newStyle =  newArr.replace(/;+/g,';')
 
- 			
 
- 				if(newStyle == ';'){
 
- 					el.removeAttr('style');	
 
- 				}else{
 
- 					el.attr('style',newStyle);	
 
- 				}
 
- 				
 
- 				if(startHeight){
 
- 					el.css({height:startHeight})	
 
- 				}
 
- 			}
 
- 			elMove.stop(true);
 
- 			if(elMove.length){
 
- 				var context = elMove.html();
 
- 				elMove.remove();
 
- 				el.html(context);
 
- 			}
 
- 	
 
- 		},
 
- 		pause: function(){	
 
- 			var el = $(this);
 
- 			var elMove = $('.str_move',el);
 
- 			elMove.stop(true);
 
- 		}, 
 
- 		play: function(){
 
- 			var el = $(this);
 
- 			$(this).off('mousemove');
 
- 			el.data('moveF')();	
 
- 		}
 
- 		
 
- 	};
 
- 	$.fn.liMarquee = function (method) {
 
- 		if (methods[method]) {
 
- 			return methods[method].apply(this, Array.prototype.slice.call(arguments, 1));
 
- 		} else if (typeof method === 'object' || !method) {
 
- 			return methods.init.apply(this, arguments);
 
- 		} else {
 
- 			$.error('Метод ' + method + ' в jQuery.liMarquee не существует');
 
- 		}
 
- 	};
 
- })(jQuery);
 
 
  |