(function($){
		$.fn.slide = function(options){
			var defaults = {
				slideWidth: 932,
				autoplay: true,
				duration: 15000,
				showSlideIndex: false
			};
			var options = $.extend(defaults, options);
			return this.each(function(){
			  	var slideshow = $(this);
				var o = options;
				var currentPosition = 0;
				var slides = $('.titular');
				var numberOfSlides = slides.length;
				var nextTitular = true;
				  
				// Remove scrollbar in JS
				$('#featurewrapContainer').css('overflow', 'hidden');
	
				// Wrap all .slides with #slideInner div
				slides.wrapAll('<div id="slideInner"></div>')
				
				// Float left to display horizontally, readjust .slides width
				.css({
					/* 'float' : 'left',
					 'width' : o.slideWidth*/
				});
			
				// Insert a clone of first slide 
				$('.titular:first').clone().appendTo('#slideInner');
				  
				// Set #slideInner width equal to total width of all slides
				//$('#slideInner').css('width', o.slideWidth * (numberOfSlides+1));
	
				// Insert controls in the DOM
		/*		slideshow
				.prepend('<span id="prev-slide">Anterior</span>')
				.append('<span id="next-slide">Siguiente</span>');		*/
	
				// Insert slides index
				if(o.showSlideIndex==true)
				{
					/*slideshow.append('<div id="slide-paginator"></div>');
					$('#slide-paginator').append('<div class="paginator">');*/
					
					slideshow.append('<div class="paginator">');
					
					for(var i=1; i<= numberOfSlides; i++)
					{
						$('.paginator').append('<span id="slide-' + i + '" class="thumb">' + i + '</span>' );
					}
					$('.thumb').click(function(){ 
						if(nextTitular){
							goto( ($(this).attr('id')).replace('slide-','') - 1, false)
						}
					});
				}
	
	
				// Create event listeners for .controls clicks
				$('#prev-slide').click(function(){ prev()});
				$('#next-slide').click(function(){ next()});
			  
				// Start
				init();
				
				//Init function
				function init()
				{
					$('.titular .featurewrapimg:eq(0)').css('display','block');
					$('.titular div:eq(0)').css('display','block');
					
					$('.titular:eq(0)').css('display','block');
					
					manageControls(currentPosition);
					if(o.autoplay==true){
						setNextTimeOut(o.duration);
						//setInterval("next()",o.duration);
					}
				}
				
				// Next
				function next()
				{
					
					if(currentPosition>=5){
						$('.titular:eq('+(currentPosition)+')').animate({'marginLeft' : '0px'},500, '', function(){	
								//$(this).find('div:eq('+currentPosition+')').fadeIn(500);
								$(this).find('.featurewrapimg:eq('+(currentPosition)+')').fadeOut();
							}
						)
						currentPosition=0;
							
					}
					$('.titular .featurewrapimg:eq('+(currentPosition)+')').fadeOut("fast",function(){
						$('.titular:eq('+(currentPosition)+')').animate({'marginLeft' : -o.slideWidth},500, '', function(){
							$(this).fadeOut();
							currentPosition++;
							slideTo(currentPosition, true);
						});
					});
					
					
					/*$('.titular .featurewrapimg:eq('+(currentPosition)+')').fadeOut("fast",function(){
						currentPosition++;
						if(currentPosition >= numberOfSlides) currentPosition=0;
						slideTo(currentPosition, true);
					});*/
				}
			  
				// Previous
				function prev()
				{	
					$('.titular .featurewrapimg:eq('+(currentPosition)+')').fadeOut("fast",function(){
						$('.titular:eq('+(currentPosition)+')').animate({'marginLeft' : -o.slideWidth},500, '', function(){
							$(this).fadeOut();
							currentPosition--;
							slideTo(currentPosition, false);
						});
					});
					/*$('.titular .featurewrapimg:eq('+(currentPosition)+')').fadeOut("fast",function(){
						currentPosition--;
						if(currentPosition <0) currentPosition=numberOfSlides-1;
						slideTo(currentPosition, false);
					});*/
				}
				
				// Go to a slide 
				function goto(position)
				{
					nextTitular = false;
					$('.titular .featurewrapimg:eq('+(currentPosition)+')').fadeOut("fast",function(){
						$('.titular:eq('+(currentPosition)+')').animate({'marginLeft' : -o.slideWidth},500, '', function(){
							$(this).fadeOut();
							currentPosition=position;
							slideTo(currentPosition, true);
						});
					});
				}
				
				// Set time out for next slide
				function setNextTimeOut(time)
				{
					$('#featurewrapContainer').stop();
					// Just a crap animation to get timer, I got problem with setTimeout
					$('#featurewrapContainer').animate({optical: 1}, time, '', function(){next();});
				}
			  	
				// Slide
				function slideTo(position, continuously){
					
					$('#slideInner').stop();
					//$('.titular div').fadeOut("fast");
					$('.titular:eq('+position+')').fadeIn();
					$('.titular:eq('+position+')').css({marginLeft:o.slideWidth});
					
						// usual cases
						if(continuously==false || o.autoplay==false || position!=0 ){
							//$('#slideInner').animate({'marginLeft' : o.slideWidth*(-position)},1000, '', 
							//	function(){
							$('.titular:eq('+(position)+')').animate({'marginLeft' : '0px'},500, '', function(){
									manageControls(position);
									if(o.autoplay==true) setNextTimeOut(o.duration);
									
									$(this).find('div:eq('+position+')').fadeIn(500);
									$(this).find('.featurewrapimg').fadeIn();
									nextTitular = true;
								}
							)
						}
						// autoplay: slide from last to first one continuously
						else{
							$('.titular:eq('+(position)+')').animate({'marginLeft' : '0px'},500, '', function(){
									manageControls(position);
									if(o.autoplay==true) setNextTimeOut(o.duration);
									
									$(this).find('div:eq('+position+')').fadeIn(500);
									$(this).find('.featurewrapimg').fadeIn();
									nextTitular = true;
								}
							)
							// slide to the 'fake' first slide (actually at the last)
							/*$('#slideInner').animate({'marginLeft' : o.slideWidth*(-numberOfSlides)},500, '', 
								function(){ 
									//immediately change to the 'true' first slide
									
									manageControls(position)
									if(o.autoplay==true) setNextTimeOut(o.duration);
									$(this).find('.titular .featurewrapimg').fadeIn(function(){
										$('#slideInner').css('marginLeft',0);
										
										$('.titular .featurewrapimg:eq('+position+')').css('opacity','1');
									});
								}
							)*/
						}
					//});
				}
			
				// manageControls: Hides and Shows controls depending on currentPosition
				function manageControls(position)
				{
					// Hide left arrow if position is first slide
					if(position==0){ $('#prev-slide').show() } else{ $('#prev-slide').show() };
					// Hide right arrow if position is last slide
					if(position==(numberOfSlides-1)){ $('#next-slide').show() } else{ $('#next-slide').show() };
					// Hilight the current page
					if(o.showSlideIndex==true)
					{
						if(position>=5){
							// remove active class from all pages
							$('.thumb').removeClass("active");
							// add only to the current page
							$('#slide-1').addClass("active");
						}else{
							// remove active class from all pages
							$('.thumb').removeClass("active");
							// add only to the current page
							$('#slide-' + (position +1)).addClass("active");
						}
						
					}
				}
			});
		};
})(jQuery);
