/*
* jQuery.fn.slider( options );
*
* Eternal slide plugin, slide your content for ever.
*
* USAGE:
* $('.element').slider();
* $('.element').slider({
*     direction: 'ltr or rtl', // DEF: ltr
*     vertical: 'true, false', // DEF: false
*     speed: 'in millisec', // DEF: 20000
*     easing: 'require easing plugin', // DEF: linear
* });
*
* Version 0.5.2
* www.labs.skengdon.com/slider/
* www.labs.skengdon.com/slider/js/slider.min.js
*/
;(function($){
	$.fn.slider = function( options ) {
		var animater = function( e, settings ) {
			
			$holder = $(e);
			
			if ( settings.vertical ) {
				var tf = -(settings.cHeight-settings.tHeight);
			} else {
				var tf = -(settings.cWidth-settings.tWidth);
			};
			
			if ( settings.direction == 'ltr' ) {
				if ( settings.vertical ) {
					$holder.css({ top: 0 });
					$holder.animate( { top: tf }, settings.speed, settings.easing, function() { animater( e, settings ); } );
				} else {
					$holder.css({ left: 0 });
					$holder.animate( { left: tf }, settings.speed, settings.easing, function() { animater( e, settings ); } );
				}
			} else {
				if ( settings.vertical ) {
					$holder.css({ top: tf });
					$holder.animate( { top: 0 }, settings.speed, settings.easing, function() { animater( e, settings ); } );
				} else {
					$holder.css({ left: tf });
					$holder.animate( { left: 0 }, settings.speed, settings.easing, function() { animater( e, settings ); } );
				}
			}
		};
		
		return this.each(function() {
			var settings = {
				direction: 'ltr',
				vertical: false,
				speed: 30000,
				easing: 'linear'
			};
			$.extend( settings, options );
		
			settings.tHeight = $(this).height();
			settings.tWidth = $(this).width();
			var $kids = $(this).children();
			
			if ( settings.vertical ) {
				settings.cWidth = settings.tWidth;
				settings.cHeight = settings.tHeight * ($kids.length + 1);
			} else {
				settings.cWidth = settings.tWidth * ($kids.length + 1);
				settings.cHeight = settings.tHeight;
			};
			
			// holder to animation
			$kids.wrapAll('<div></div>');
			var $holder = $(this).find('div:first');
			$holder.css({ position: 'relative' });
			$holder.css({ width: settings.cWidth, height: settings.cHeight });
			
			if (settings.direction == 'ltr') {
				$holder.append( $kids.first().clone() );
			} else {
				$holder.prepend( $kids.last().clone() );
			};
			
			var $kids = $holder.children();
	
			$(this).css({ overflow: 'hidden', whiteSpace: 'nowrap' });
			$(this).css({ width: settings.tWidth, height: settings.tHeight });
			
			$kids.css({ 'float': 'left' });
			$kids.css({ width: settings.tWidth, height: settings.tHeight });
			
			animater( $holder, settings );
		});
	};
}(jQuery));
