/*
	jQuery Coda-Slider v2.0 - http://www.ndoherty.biz/coda-slider
	Copyright (c) 2009 Niall Doherty
	This plugin available for use in all personal or commercial projects under both MIT and GPL licenses.
*/

var sliderCount = 1;

$.fn.codaSlider = function(settings) {

	settings = $.extend({
		autoSlide: true,
		autoSlideInterval: 4000,
		autoSlideStopWhenClicked: false,
		dynamicTabs: false,
		dynamicTabsAlign: "center",
		dynamicTabsPosition: "top",
		firstPanelToLoad: 1,
		slideEaseDuration: 1500,
		slideEaseFunction: "easeOutExpo"
	}, settings);
	
	return this.each(function(){
		// Uncomment the line below to test your preloader
		// alert("Testing preloader");
		var slider = $(this);
		var panelHeight = slider.find(".panel").width();
		var panelCount = slider.find(".panel").size();
		
		var panelContainerHeight = panelHeight*panelCount;
		//var navClicks = 0; // Used if autoSlideStopWhenClicked = true
		// Surround the collection of panel divs with a container div (wide enough for all panels to be lined up end-to-end)
		$('.panel', slider).wrapAll('<div class="panel-container"></div>');
		$('.panel-container', slider).css({ width: panelHeight*panelCount });

		if (settings.firstPanelToLoad != 1 && settings.firstPanelToLoad <= panelCount) { 
			var currentPanel = settings.firstPanelToLoad;
			var offset = - (panelHeight*(currentPanel - 1));
			$('.panel-container', slider).css({ marginTop: offset });
		// Otherwise, we'll just set the current panel to 1...
		} else { 
			var currentPanel = 1;
		};
		
		
		
		// Left arrow click
		$("#coda-nav-left").click(function(){
			if (currentPanel == 1) {
				offset = - (panelHeight*(panelCount - 1));
				currentPanel = panelCount;
			} else {
				currentPanel -= 1;
				offset = - (panelHeight*(currentPanel - 1));
			};
			$('.w1').removeClass('current').parents('.sw_tab').find('td:eq(' + (currentPanel-1) + ') .w1').addClass('current');
			$('.panel-container', slider).stop();
				slider.setCurrentPanel();
			
		});
			
		// Right arrow click
		$('#coda-nav-right').click(function(){
			
			if (currentPanel == panelCount) {
				offset = 0;
				currentPanel = 1;
			} else {
				offset = - (panelHeight*currentPanel);
				currentPanel += 1;
				offset = - (panelHeight*(currentPanel - 1));
			};
			$('.w1').removeClass('current').parents('.sw_tab').find('td:eq(' + (currentPanel-1) + ') .w1').addClass('current');
			$('.panel-container', slider).stop();
				slider.setCurrentPanel();
			if (settings.crossLinking) { location.hash = currentPanel }; // Change the URL hash (cross-linking)
			return false;
		});
		
		slider.setCurrentPanel = function() {
		  $('.panel', slider).removeClass("current").css("display","none").css('filter', 'alpha(opacity=100)').css("opacity","100");
		  $('.panel:eq(' + (currentPanel-1) + ')', slider).stop().css('filter', 'alpha(opacity=100)').fadeIn(1000).addClass('current');
		}
		
		function autoSlide() {
			
			if (!settings.autoSlideStopWhenClicked) {
			
				if (currentPanel == panelCount) {
					var offset = 0;
					currentPanel = 1;
				} else {
					var offset = - (panelHeight*currentPanel);
					currentPanel += 1;
				};
				
				//Switch the current tab:
				$(".sw_slider1").find('.item').removeClass('act').parents('.sw_slider1').find('td:eq(' + (currentPanel-1) + ') .item').addClass('act');
				$(".sw_slider2").find('.item').removeClass('act').parents('.sw_slider2').find('td:eq(' + (currentPanel-1) + ') .item').addClass('act');
				
				//Slide:
				slider.setCurrentPanel();
				var timer = setTimeout(autoSlide,settings.autoSlideInterval);
				
				$('#coda-nav-left').click(function(){
					clearTimeout(timer);
				});
				
				$('#coda-nav-right').click(function(){
					clearTimeout(timer);
				});
				
				$('#coda-nav-stop').click(function(){
					clearTimeout(timer);
				});
				
				$('.sw_slider1 td').find(".item").each(function(z) {
					$(this).hover(function() {
						clearTimeout(timer);
						});
				});
				
				$('.sw_slider2 td').find(".item").each(function(z) {
					$(this).hover(function() {
						clearTimeout(timer);
						});
				});
			};
		};
		
		//Trigger autoSlide
		if (settings.autoSlide) {
			slider.ready(function() {
				 timer = setTimeout(autoSlide,settings.autoSlideInterval);
			});
		};
		
		//Переключатель кнопками
		$('.sw_slider1 td').find(".item").each(function(z) {
			
			$(this).hover(function() {
				clearTimeout(timer);
				if (!$(this).hasClass("act")) {
					$('.item').removeClass('act');
					$(this).addClass('act');
					offset = - (panelHeight*z);
					currentPanel = z + 1;
					slider.setCurrentPanel();
					
					$(".sw_slider2").find('.item').removeClass('act').parents('.sw_slider2').find('td:eq(' + (currentPanel-1) + ') .item').addClass('act');
					}
				}
			);
		});
		
		$('.sw_slider2 td').find(".item").each(function(z) {
			
			$(this).hover(function() {
				clearTimeout(timer);
				if (!$(this).hasClass("act")) {
				$('.item').removeClass('act');
				$(this).addClass('act');
				offset = - (panelHeight*z);
				currentPanel = z + 1;
				slider.setCurrentPanel();
				$(".sw_slider1").find('.item').removeClass('act').parents('.sw_slider1').find('td:eq(' + (currentPanel-1) + ') .item').addClass('act');
				}}
			);
		});
				
	});
};
