(function( $ ){
	$.fn.cycle2 = function() {
		var cycleTime = 7000;
		var offsetTime = 1000;

		var slider = this;
		slider.find('.left').first().addClass('current').css('top', '0px');
		slider.find('.right').first().addClass('current').css('top', '0px');

		var easingVal = 'easeInOutQuart';

		setTimeout(function(){
			var currentLeft = slider.find('.left.current');
			currentLeft.animate({'top': '390px'}, {duration: 1000, easing: easingVal}).removeClass('current');
			currentLeft.parent()
					   .find('.left')
					   .not(currentLeft)
					   .first()
					   .addClass('current')
					   .css('top', '-390px')
					   .animate({'top': '0px'}, {duration: 1000, easing: easingVal});

			startLeftCycle();

			setTimeout(function(){
				var currentRight = slider.find('.right.current');
				currentRight.animate({'top': '390px'}, {duration: 1000, easing: easingVal}).removeClass('current');
				currentRight.parent()
						   .find('.right')
						   .not(currentRight)
						   .first()
						   .addClass('current')
						   .css('top', '-390px')
						   .animate({'top': '0px'}, {duration: 1000, easing: easingVal});

				startRightCycle();
				}, offsetTime)
		}, cycleTime);

		function startLeftCycle(){
			setInterval(function(){
				var currentLeft = slider.find('.left.current');
				currentLeft.animate({'top': '390px'}, {duration: 1000, easing: easingVal}).removeClass('current');
				var nextLeft = currentLeft.next().next()
				if(nextLeft.length > 0){
					nextLeft.addClass('current')
	 					    .css('top', '-390px')
					   		.animate({'top': '0px'}, {duration: 1000, easing: easingVal});
				}else{
					slider.find('.left')
						  .first()
						  .addClass('current')
						  .css('top', '-390px')
						  .animate({'top': '0px'}, {duration: 1000, easing: easingVal});
				}
			}, cycleTime);
		}

		function startRightCycle(){
			setInterval(function(){
				var currentRight = slider.find('.right.current');
				currentRight.animate({'top': '390px'}, {duration: 1000, easing: easingVal}).removeClass('current');
				var nextRight = currentRight.next().next()
				if(nextRight.length > 0){
					nextRight.addClass('current')
	 					    .css('top', '-390px')
					   		.animate({'top': '0px'}, {duration: 1000, easing: easingVal});
				}else{
					slider.find('.right')
						  .first()
						  .addClass('current')
						  .css('top', '-390px')
						  .animate({'top': '0px'}, {duration: 1000, easing: easingVal});
				}
			}, cycleTime + 1000);
		}
	};
})( jQuery );
