(function( $ ){	$.fn.EfSlider2 = function( options ) {		if( /template\.asp/.test(document.URL) ) return false;			var settings = {			'scrollspeed'		: 3,		//future			'width'				: 0,			'height'			: 0,			'scale'				: true,		//future			'startPosition'		: 1			//future		};				/**		*	These variables must be defined inside the 'each' loop if 		*	we want to have multiple galleries on the page		**/		var imageList	= [];		var curPosition	= 1;		var isMoving	= false;		var images		= [];				var $singleSlide		= null;		var $slideLine			= null;		var singleSlideImage	= null;				return this.each(function() {			if ( options ) { 				$.extend( settings, options );			}						var $img = $('#efslider2-slide-1 img').first();						settings.width = settings.width || $img.width();			settings.height = settings.height || $img.height();						$('#efslider2-position-info').addClass('efslider2-loader');				$('#efslider2-content').css({				width: settings.width			});						$('#efslider2-slide-wrap, #efslider2-slide-1').css({				width: settings.width,				height: settings.height			});							init();					});						function init() {			var firstImage = $('#efslider2-slide-1 img')[0];			var src = firstImage.src;						images[settings.startPosition] = firstImage;						var exclude = '';			var matches = /^http:\/\/[^\/]+(\/.*)\/([^\/]+)$/.exec(src);						if(matches[1])				imageDir = matches[1];						if(matches[2])				exclude = matches[2];						$slideLine = $('#efslider2-slide-line');			//$('<div id="efslider2-single-slide"></div>').prependTo()			$slideLine.before('<div id="efslider2-single-slide">'+ $('#efslider2-slide-1').html() +'</div>');			//$slideLine.hide();			//instead of hide			$slideLine.css('top', settings.height);						$singleSlide = $('#efslider2-single-slide');			$singleSlide.css({				height: settings.height,				width: settings.width			});						singleSlideImage = $('#efslider2-single-slide img')[0];			$(singleSlideImage).css({				height: settings.height,				width: settings.width			});						//$('#efslider2-single-slide').html(firstImage.clone());						$.ajax({				type: 'post',				url: '/listdir.asp',				dataType: 'text',				//data: {dir: settings.imageDir},				data: {'dir': imageDir, 'exclude': exclude},				success: function (text) {					onImageListLoadComplete(text);				}			});												 		}							function onImageListLoadComplete(text) {						imageList = text.split('|');						if(text.indexOf('$er$') == 0 || imageList.length == 0) return false;						$slideLine.css({				height: settings.height,				width: settings.width * 2			});						$('#efslider2-position-info').removeClass('efslider2-loader');						updateInfo();						initControls();						initStartPosition();						manageControls();					}				function initStartPosition() {			if(settings.startPosition < 1 || settings.startPosition > imageList.length)				settings.startPosition = 1;						settings.startPosition = parseInt(settings.startPosition);		}				function initControls() {			$('#efslider2-control-prev').click(prev);			$('#efslider2-control-next').click(next);						$(document).keydown(function(ev) {				keyboardAction(ev);			});		}				function keyboardAction(ev) {			// To ie			if ( ev == null ) {				keycode = event.keyCode;				escapeKey = 27;			// To Mozilla			} else {				keycode = ev.keyCode;				escapeKey = ev.DOM_VK_ESCAPE;			}						if(keycode == 37)				prev();			else if(keycode == 39)				next();		}				function manageControls() {						if(imageList.length <= 1) {				$('#efslider2-control-prev, #efslider2-control-next').hide();				return true;			}										if(curPosition == 1) {				$('#efslider2-control-prev').hide();			} else {				$('#efslider2-control-prev').show();			}						if(curPosition == imageList.length) {				$('#efslider2-control-next').hide();			} else {				$('#efslider2-control-next').show();			}		}				function getNextImgSrc(direction) {			if(direction == 1) {				return imageList[curPosition - 2] || false;			} else {				return imageList[curPosition - 3] || false;			}		}				function next() {						if(isMoving || curPosition == imageList.length)				return false;						isMoving = true;						show(1);		}				function prev() {						if(isMoving || curPosition == 1)				return false;						isMoving = true;						show(-1);		}				function show(direction) {			var imgSrc, imgLoader, slideContent, slideBlock;			var slideIndex = curPosition + direction;			var newId = 'efslider2-slide-'+ slideIndex;			var $newSlide = null;			var slideLineLeft = 0;						$('#efslider2-position-info').addClass('efslider2-loader');						slideBlock = '<div id="'+ newId +'" class="efslider2-slide"></div>';						if(direction == 1) {				$(slideBlock).appendTo( $slideLine );			} else {				$slideLine.prepend( slideBlock );				slideLineLeft = -1 * settings.width;			}						$slideLine.css('left', slideLineLeft + 'px')						$newSlide = $('#'+ newId);			$newSlide.css({				width: settings.width,				height: settings.height			});						//$slideLine						curPosition += direction;									if(!images[slideIndex]) {								imgSrc = getNextImgSrc(direction);				imgLoader = new ImageLoader(imgSrc, function(img) {										if(!img) {						slideContent = '<p class="error">Не удалось загрузить изображение.</p>';						slideContent += '<p><a target="_blank" href="'+ imgSrc +'">Открыть изображение в новом окне</a></p>';					} else {						img.id = 'efslider2-image-'+ slideIndex;						$(img).css({							width: settings.width,							height: settings.height						});						slideContent = img;												images[slideIndex] = img;					}										//$(slideContent).appendTo( $newSlide );										$newSlide.append(slideContent);																				//$newSlide.show();					onImageLoadComplete((direction == 1) ? '-' : '+');									}).load();							} else {				$newSlide.append(images[slideIndex]);				//$newSlide.find('img')				//$newSlide.show();				onImageLoadComplete((direction == 1) ? '-' : '+');			}						manageControls();		}				function onImageLoadComplete(dirSign) {			$('#efslider2-position-info').removeClass('efslider2-loader');						//$slideLine.show();			//instead of show			$('img', $slideLine).css({				height: settings.height,				width: settings.width			});						$slideLine.css('top', 0);									//$singleSlide.hide();			var destX = 0;			if(dirSign == '-') {				destX = -1 * settings.width			}						singleSlideImage.src = images[curPosition].src;						$slideLine.animate({				left: destX			}, 300			, null			, onMoveComplete);		}				function onMoveComplete() {			$slideLine.stop();						//$singleSlide.show();			//singleSlideImage.src = images[curPosition].src;						//instead of hide			$slideLine.css('top', settings.height);						$slideLine.children().each(function(index, el) {				if(el.id != 'efslider2-slide-'+curPosition) {					$(el).remove();				}			});						updateInfo();			isMoving = false;		}				function updateInfo() {			$('#efslider2-position-info').html('Изображение '+ curPosition +' из '+ imageList.length);		}				function pause(ms) {			var date = new Date(); 			curDate = null;			do { var curDate = new Date(); }			while ( curDate - date < ms);		 };			}				})( jQuery );/*$(document).ready(function(){	$('#efslider2-wrap').EfSlider2({		'width'				: 500,		'height'			: 102	});});*/
