$.fn.slideshow = function(repeat){
  var currentPosition = 0;
  var slideWidth = 180;
  var right_disabled= false;
  var left_disabled = false;
  var container = jQuery(this);
  var slides =  container.find('div.slide');
  var numberOfSlides = slides.length;
  var clicked = false;
  
  var pete = (repeat != null) ? true : false;
  
  return this.each(function(){

  // Remove scrollbar in JS
  $('.slidesContainer').css('overflow', 'hidden');

  // Wrap all .slides with #slideInner div
  slides
    .wrapAll('<div class="slideInner"></div>')
    // Float left to display horizontally, readjust .slides width
	.css({
      'float' : 'left',
      'width' : slideWidth,
	  'padding-bottom': '100px'
    });

  // Set #slideInner width equal to total width of all slides
  //$('.slideInner').css('width', slideWidth * numberOfSlides);
    
  // Hide left arrow control on first load
  manageControls(currentPosition);
  
  // Create event listeners for .controls clicks
  container.find('input.rightControl')
    .bind('click', function(){
    // Determine new position
	clicked = true;
	currentPosition = (!right_disabled) ? currentPosition+ 1 : currentPosition;  
	
	// Hide / show controls
    manageControls(currentPosition);
    // Move slideInner using margin-left
    container.find('div.slideInner').animate({
      'marginLeft' : slideWidth*(-currentPosition)
    });
	
  });

   container.find('input.leftControl')
    .bind('click', function(){
    // Determine new position
	clicked = true;
	currentPosition = (!left_disabled) ? currentPosition - 1 : currentPosition;  
	
	// Hide / show controls
    manageControls(currentPosition);
    // Move slideInner using margin-left
    container.find('div.slideInner').animate({
      'marginLeft' : slideWidth*(-currentPosition)
    });
  });
  if(pete){
	//repeat
	setInterval(do_cycle, 3000);
  
  }
  function do_cycle(){
	if(!clicked){
	
		currentPosition = (!right_disabled) ? currentPosition+ 1 : currentPosition;
		 if(currentPosition <=numberOfSlides-2){
			container.find('div.slideInner').animate({'marginLeft' : slideWidth*(-currentPosition)  });
			manageControls(currentPosition);
		}
	}else clearInterval();		
  }
  
  // manageControls: Hides and Shows controls depending on currentPosition
  function manageControls(position){
    // Hide left arrow if position is first slide
	if(position==0){
	
		container.find('input.leftControl').attr("src", "includes/templates/BetterProductsOnline/buttons/left-disabled.jpg"); 
		
		left_disabled=true; 
		
	} else{ 
	
		container.find('input.leftControl').attr("src", "includes/templates/BetterProductsOnline/buttons/left.jpg"); 
		
		left_disabled=false; 
	
	}
	// Hide right arrow if position is last slide
    if(position==numberOfSlides-1){
		
		container.find('input.rightControl').attr("src", "includes/templates/BetterProductsOnline/buttons/right-disabled.jpg"); 
		
		right_disabled=true; 
		
	} else{ 
			
			container.find('input.rightControl').attr("src", "includes/templates/BetterProductsOnline/buttons/right.jpg"); 
		
			right_disabled=false; 
		
	}
  }	
  });
}