(function($) {                                          // Compliant with jquery.noConflict()
$.fn.myHorizontalSlider = function(o) {
    o = $.extend({
        width: 960,
		interval: 4000,
		speed: 500,
		pagesClass: 'image',
		slideClass: 'images-inner',
		naviClass: 'navi',
		hideClass: 'hidden'
    }, o || {});
    return this.each(function() {                           // Returns the element collection. Chainable.

		var selected = 0;
		var div = $(this), slideDiv = jQuery('.'+o.slideClass, div);
		var kierunek = 'right';
        var pages, next, offset;
		var	arrowR = jQuery(div).find('.'+o.naviClass+' .right');
		var	arrowL = jQuery(div).find('.'+o.naviClass+' .left');
		var myInterval = false, running = false;
		
        jQuery(arrowR).click(function() {
			przesun('right');
		});
        jQuery(arrowL).click(function() {
			przesun('left');
		});
		
		function przesun(kierunek) {
			if (!running) {
				running = true;
				clearInter();
				if (kierunek == 'right') {
					selected += 1;
					if (selected>=pages) {
						left = 0+"px";
						slideDiv.css('left', left);
						selected = 0;
					}
					leftCSS = '-='+o.width;
				} else {
					selected -= 1;
					if (selected<=-1) {
						left = "-"+((pages+1) * o.width)+"px";
						slideDiv.css('left', left);
						selected = pages - 1;
					}
					leftCSS = '+='+o.width;
				}
				
				jQuery(slideDiv).animate({left: leftCSS}, o.speed, function() {
					setInter();
					running = false;
				});
			}
		}
		
		function ustawienia() {
			offset = jQuery(div).css('left');
			pagesList = jQuery(div).find('.'+o.pagesClass);
			pages = jQuery(pagesList).size();
            slideDiv.prepend(jQuery(pagesList).slice(pages-1).clone())
              .append(jQuery(pagesList).slice(0,1).clone())
			  .css("left", "-"+o.width+"px");
		}
		
		function startuj() {
			if (pages>1)
				setInter();
		}
		
		function setInter() {
			myInterval = setTimeout(function() {
				przesun('right');
			}, o.interval);
		}
		
		function clearInter() {
			clearTimeout(myInterval);
		}
		
		ustawienia();
		startuj();
    });
};
})(jQuery);
