// newSlide - jQuery SlideShow Plugin
//
// Version 0.1
//
// Fernando José La Calle Prada
// 15 Octubre 2011
//
// Uso:
// 
// HLog:
//
//		0.1 - Released (15 Octubre 2011)
//
// License:
// 
// GNU General Public License
// 
( function($) {

	$.newSlide 		= { nsVersion: '0.1' };
	$.fn.newSlide 	= function( nsOptions ){
		
		nsOptions 	= jQuery.extend({
			nInterval:			300
			,classButtons:		'slide-navigation'
			,classArrows:		'slide-flecha'
			,classArrowIZQ:		'izquierda'
			,classArrowDER:		'derecha'
			,classContainer:	'slide-wrapper'
			,classContent:		'slide-container'
			,navigation:		false
			,arrows:			true
		} , nsOptions );	
		
		
		var nsCount 	= 0;
		var nsTotal 	= $( "." + nsOptions.classContent + " > *" , this ).size();
		var nsWidth 	= $( "." + nsOptions.classContainer , this ).width();
		var nsObject 	= $(this);
		
		if( nsTotal > 1 ) {
			if( nsOptions.navigation ) {
				for( var i = 0 ; i < nsTotal ; i++ ) {	
					if( i == 0)
						$( "." + nsOptions.classButtons , this ).append('<li><a href="#" title="Diapositiva ' + i + '" class="active">' + i + '</a></li>');
					else
						$( "." + nsOptions.classButtons , this ).append('<li><a href="#" title="Diapositiva ' + i + '">' + i + '</a></li>');
				}
			}
		} else {
			if( nsOptions.arrows ) {
				nsObject.find( "." + nsOptions.classArrowIZQ ).hide();	
				nsObject.find( "." + nsOptions.classArrowDER ).hide();
			}
		}
		
		if( nsOptions.arrows ) {
			$( "." + nsOptions.classArrows , this ).click( function( ) {
				
				if( $( this ).hasClass( nsOptions.classArrowIZQ ) )
					nsCount = ( nsCount == 0 ) ? nsTotal-1 : nsCount - 1;
				else
					nsCount = ( nsCount == nsTotal-1 ) ? 0 : nsCount + 1;
				
				if( nsOptions.navigation ) {
					nsObject.find("." + nsOptions.classButtons + " *").removeClass('active');
					nsObject.find( "." + nsOptions.classButtons + " li" ).each(function(){
						if( parseInt( $(this).find('a').text() ) == nsCount ) {
							$(this).find('a').addClass('active'); 
							return;
						}
					});
				}
				
				nsObject.find( "." + nsOptions.classContent ).animate( { left : '-' + ( nsWidth * nsCount ) + 'px' } , nsOptions.nInterval , 'easeOutSine' );
				return false;
				
			});
		}
		
		if( nsOptions.navigation ) {
			$("." + nsOptions.classButtons + " a" , this ).click( function() {										
				
				nsObject.find("." + nsOptions.classButtons + " *").removeClass('active');
				$(this).addClass('active');
				
				nsCount = parseInt( $(this).text() );
	
				nsObject.find( "." + nsOptions.classContent ).animate( { left : '-' + ( nsWidth * nsCount ) + 'px' } , nsOptions.nInterval , 'easeOutSine' );
				
				return false;
			});
		}
	
	};
	
} )(jQuery);
