
	

	$.fn.DemixGallery = function(set) {
							   
//=== global settings === //
	set = $.extend({
		dslideWindow : false,		// наличие окна для просмотра фото
		dslideNavbut : false,		// наличие навигационных кнопок
		dslideHorizontal : true,	// горизонтальный или вертикальный
		dsliderAuto : false,		// автопрокрутка слайдера 
		dsliderCycle : false,		// Скролить бесконечно
		dsliderInterval : 2500,		// Задержка автоскролла не менее 2500 (рекомендуется)
		dslideOut : 300,			// время исчезновения предыдущей картинки
		dslideIn : 800,				// время появления следующей картикни
		dslideSee : 4,				// количество картинок, видимых в слайдере
		dsliderSpeed : 1500,		// скорость анимации слайдера
		//dsliderStart : false,		// false - с середины. true - с первого слайда
		dsliderPosition : 0			// 
		
		
	}, set);  

		
		
	return this.each(function(){
		
//=== patch ===//
		var d_gallary = $(this);										// roditel
		var d_slide = d_gallary.find(".items .cnt");					//
		if(set.dslideWindow == true){									// esli nado bol'shoe okno prosmotra fotok
			var slideItem = d_gallary.find(".pictures img");			//
			d_gallary.find(".item").click(view_pic);
		}

//=== function width cnt ===//
		if(set.dslideHorizontal == true){
			var item_wh = 'width'; }
		else{
			if(set.dslideHorizontal == false){
			var item_wh = 'height'; }
		}
			var w = parseInt(d_gallary.find(".item").css(item_wh)); 		// нашли ширину итема 
			var dslidesLength = (d_gallary.find(".item").length); 			// посчитали все итемы
			var allw = dslidesLength*w;										// все итемы умножили на ширину.
			d_gallary.find(".items .cnt").css(item_wh, allw); 				// задали ширину общего блока
		
//=== навигационные кнопки ===//		
		if(set.dslideNavbut == true){
			var but_w = parseInt(d_gallary.find(".b_wrap").css('width'));// нашли ширину кнопки
			var button_w = dslidesLength*but_w;							// все кнопки умножили на ширину.
			d_gallary.find(".nav_button").css('width', button_w); 		// задали ширину кнопочного блока
		
			for(i=0; i<dslidesLength-1; i++){
				d_gallary.find(".nav_button").append('<div class="b_wrap"><div class="first"><div class="second"></div></div></div>');
			}
			d_gallary.find(".nav_button").append('<div class="cl"></div>');
			
			function navButtonActive (){
				removeClass('active');
			}
		}
		
//=== start autoscroll ===//
		var dSliderFlagAuto = 0;
		var timeoutId = 0;
		function dtimeout(){
			timeoutId = setTimeout(dAutoScroll, set.dsliderInterval);
			return timeoutId;
		}
		
		if (set.dsliderAuto == true){											// esli autoscroll, to budet prokruchivat'
			dSliderFlagAuto = 1;
			dtimeout();
		}

//=== view pictures ===//
		function view_pic (event){
			event.preventDefault();					 
			var LargePath = $(this).find('img').attr("src");
			slideItem.fadeOut(set.dslideOut, function (){slideItem.attr({src: LargePath})});
			slideItem.fadeIn(set.dslideIn);
			return false;
		}
				
//=== cycle slider ===//
		function dcycleSlider (){
			if (set.dsliderCycle == true){
				var dmoveItem = d_gallary.find(".cnt .item").first().remove();
				var leftPos = parseInt(d_gallary.find(".cnt").css('left'));
				var sdvig = leftPos+w;
				d_gallary.find(".cnt").css('left', sdvig+"px");
				set.dsliderPosition = 0;
				if(set.dslideWindow == true){
					$(dmoveItem).appendTo(d_gallary.find('.cnt')).click(view_pic);
					var dsecondHref = d_gallary.find(".cnt .item").first().find('img').attr("src");
					slideItem.fadeOut(set.dslideOut, function (){slideItem.attr({src: dsecondHref})});
					slideItem.fadeIn(set.dslideIn);
				}
				else{
					$(dmoveItem).appendTo(d_gallary.find('.cnt'));
				}
			}
		}
	
//=== scroll ===//		
		d_gallary.find(".slider .next").click(dAutoScroll);
		
		d_gallary.find(".slider .prew").click(function(){
			if (set.dsliderCycle == true){
				return false;
			}
			else{
				if(set.dsliderPosition > 0){
					if(set.dslideHorizontal == true){
						d_slide.animate({ left : '+='+w }, set.dsliderSpeed); }
					if(set.dslideHorizontal == false){
						d_slide.animate({ top : '+='+w }, set.dsliderSpeed);}
					--set.dsliderPosition;		
					return false;
				}
			}
		});
		
//=== AutoScroll && ClickPrew ===//
		function dAutoScroll (){
			if(set.dsliderPosition > dslidesLength-set.dslideSee-1 && set.dsliderCycle == false){
				/*if(set.dslideHorizontal){
					d_slide.animate({'left': 0}, set.dsliderSpeed);}
				if(set.dslideHorizontal == false){
					d_slide.css('top', 0);}
					set.dsliderPosition = 0;*/
				return false;
			}
			
			if(set.dslideHorizontal == true){
				d_slide.animate({ left : '-='+w }, set.dsliderSpeed, dcycleSlider); }
			if(set.dslideHorizontal == false){
				d_slide.animate({ top : '-='+w }, set.dsliderSpeed, dcycleSlider);}
			if(set.dsliderPosition >= dslidesLength){
				set.dsliderPosition = 0;}
			else {
				++set.dsliderPosition;}
			if (set.dsliderAuto == true){
				dtimeout();
			}
			else {return false;}
			
		}
		
//=== Mouse move slider stop
		d_gallary.hover(
			function(){
				if(dSliderFlagAuto == 1){
					MouseHover(0);
					clearTimeout(timeoutId);
				}
			},
			function(){
				if(dSliderFlagAuto == 0){
					MouseHover(0);
					clearTimeout(timeoutId);
				}
				else{if(dSliderFlagAuto == 1){
					MouseHover(1);
					dtimeout();}
				}
			}
		);

		function MouseHover(move){
			//alert("move");
			set.dsliderAuto = move;
			set.dsliderCycle = move;
		}
		
		
		

	});
};


