(function($) {  
  $.fn.slideshow = function(options) {  
 
    options = $.extend({}, $.fn.slideshow.defaultOptions, options);
    
    this.each(function() {
      var element = $(this);
      //Manipulate element here ...        
	  var currentPosition = 0;
	//  alert(this.class);
	  var slides = $('.'+options.item_class, element);
 	  var numberOfSlides = slides.length;
	  
	  $('.'+options.container,element).css('overflow', 'hidden');
	  slides
		.wrapAll('<div class="slideInner"></div>')
		// Float left to display horizontally, readjust .slides width
		.css({
		  'float' : 'left',
		  'width' : options.slideWidth
		});
	   $('.slideInner', element).css('width', options.slideWidth * numberOfSlides);

	  // Insert controls in the DOM
	  $(element)
		.prepend('<span class="control leftControl">Clicking moves left</span>')
		.append('<span class="control rightControl">Clicking moves right</span>');
	
	  // Hide left arrow control on first load
	  //alert(options.currentPosition);
	  manageControls(currentPosition);
	
	  // Create event listeners for .controls clicks
	  
  $('.control', element)
    .bind('click', function(){
    // Determine new position
	currentPosition = ($(this).attr('class').replace('control ', '')=='rightControl') ? currentPosition+1 : currentPosition-1;
    //alert($(this).attr('class'));
	// Hide / show controls
    manageControls(currentPosition);
    // Move slideInner using margin-left
    $('.slideInner', element).animate({
      'marginLeft' : options.slideWidth*(-currentPosition)
    });
  });
	
	
	  // manageControls: Hides and Shows controls depending on currentPosition
	  function manageControls(position){
		 // alert(position);
		// Hide left arrow if position is first slide
		if(position==0){ $('.leftControl', element).hide() } else{ $('.leftControl', element).show() }
		// Hide right arrow if position is last slide
		if(position==numberOfSlides-1){ $('.rightControl', element).hide() } else{ $('.rightControl', element).show() }
	  }
	  //alert(numberOfSlides);

    });        
    
    return this;
  };
  
  //Public Function
  
  
  
  
  $.fn.slideshow.defaultOptions = {
    slideWidth: 560,
	item_class: 'slide',
	container: 'slidesContainer'
  }
})(jQuery);
