(function ($) { 
	
	$.fn.slideContainer = function(options) {
		return this.each(function() {
			$.slideContainer(this, options);
		});	
	};
	
	$.slideContainer = (function(container, options) {
		
		var defaults = {
			
			currentPosition : 0,
			slideWidth      : 560,
			slideLeght      : $('.slide').length,
			slides          : $('.slide'),
			slidesContainer : '#slidesContainer',
			slideshow       : '#slideshow',
			speed           : 0,
			showControl     : true,
			leftControl     : 'leftControl',
			rightControl    : 'rightControl',
			control         : 'control',
			wrapDiv         : 'slideInner'
			
		};
		
		if (options) {
			settings = $.extend({}, defaults, options);
		}
		
		if (settings.speed <= 0) {
			alert('Seteaza o valoare la speed mai mare decat 0, asta daca vrei sa ai animatie!');	
		}
		
		var $currentPosition = settings.currentPosition;
		var $slideWidth      = settings.slideWidth;
		var $slides          = settings.slides;
		var $numberOfSlides  = settings.slideLeght;
		var $slidesContainer = settings.slidesContainer;
		var $slideshow       = settings.slideshow;
		var $slideInner      = settings.slideInner
		var $speed           = settings.speed;
		var $showControl     = settings.showControl;
		var $leftControl     = settings.leftControl;
		var $rightControl    = settings.rightControl;
		var $control         = settings.control;
		var $wrap            = settings.wrapDiv;
		
		// Remove scrollbar
		$($slidesContainer).css('overflow', 'hidden');
		// Wrapp all .slides with #slideInner div
		$($slides).wrapAll('<div id="' + $wrap + '"></div>')
		//float left
		.css({
			 'float' : 'left',
			 'width' : $slideWidth
		    });
		// Set #slideInner with equal with total of all slides
		$("#" + $wrap).css('width', $slideWidth * $numberOfSlides);
		// Insert control in the DOM
		$($slideshow)
		  .prepend('<div class="' + $control + '" id="' + $leftControl + '"></div>')//Clicking moves left
		  .append('<div class="' + $control + '" id="' + $rightControl + '"></div>');//Clicking moves right
		  // Hide left arrow control on first load
		  manageControls($currentPosition);
		  // Create event listeners for .controls clicks
		  $("." + $control)
			.bind('click', function() {
				$currentPosition = ($(this).attr('id') == $rightControl ? $currentPosition + 1 : $currentPosition - 1);	
				// Hide / show control
				
				manageControls($currentPosition);
				// Move slideInner using margin-left
				$('#' + $wrap).animate({
				  //'opacity' : 'show',
				  'marginLeft' : $slideWidth * (-$currentPosition)
				}, $speed);
			});
		  
		  function manageControls(position) {
			if (position == 0) {
				$("#" + $leftControl).hide();	
			} else {
				$("#" + $leftControl).show();	
			}
			if (position == $numberOfSlides -1) {
				$("#" + $rightControl).hide();
			} else {
				$("#" + $rightControl).show();	
			}
		  }
		
	
	});
	
})(jQuery);
