(function($) {
$.fn.s2Slide = function(o) {
    o = $.extend({
        btnPrev: null,
        btnNext: null,
		myMask: null,
		itemW: null
    }, o || {});

    
	this.each(function() {

        var div = $(this);
		var imgs = $("img", div);
		div.totMoves = div.nextMove = 0;
		var li = $("li", div);
		var ii = 0;
		div.totW = 0;
		var visibleWidth = $(o.myMask).width();
		var enableScroll = false;
		var inMoving = false;
	
		if (!o.itemW) {

			for (ii = 0; ii < imgs.size(); ii++) {
				div.totW += imgs[0].width;
			}
			
			if (div.totW > visibleWidth) {
				enableScroll = true;
				// totMoves = Math.round(div.totW / visibleWidth);
				div.totMoves = imgs.size();
			}
		
		} else {
			enableScroll = true;
			div.totMoves = li.size();
		}

		
		if (enableScroll) {
			if (o.btnPrev)
				$(o.btnPrev).click(function() {
					if (!inMoving) {
						inMoving = true;
						div.nextMove--;
						if (div.nextMove < 0) {
							div.nextMove = 0;
							inMoving = false;

						} else {
							if (!o.itemW) {
								div.nextPos = parseInt(div.css("margin-left")) + imgs[div.nextMove + 1].width;
							
							} else {
								div.nextPos = parseInt(div.css("margin-left")) + o.itemW;
							}
							
							go(div.nextPos);
						}

						// div.nextPos = visibleWidth * div.nextMove;
					}					
				});

			
			if (o.btnNext)
				$(o.btnNext).click(function() {
					if (!inMoving) {
						inMoving = true;
						div.nextMove++;
						if (div.nextMove >= div.totMoves) { 
							div.nextMove = div.totMoves - 1;
							inMoving = false;

						} else {
							if (!o.itemW) {
								div.nextPos = parseInt(div.css("margin-left")) - imgs[div.nextMove].width;

							} else {
								div.nextPos = parseInt(div.css("margin-left")) - o.itemW;
							}

							go(div.nextPos);
						}

						// div.nextPos = -(visibleWidth * div.nextMove);
					}

				});
		
		} else {
			$(o.btnPrev).css("visibility", "hidden"); 
			$(o.btnNext).css("visibility", "hidden"); 
		};


        function go(to) {
			div.animate({ 'marginLeft' : to }, function(){ inMoving = false; } );
        };

    });
};


})(jQuery);
