/**
 * @author	Derk Gommers <ik@derkgommers.eu>
 */
var slideMe = (function() { 

	var c,
		count,
		current,
		interval,
		progress;
	
	return {
		
		init: function (cTmp) {
			
			c = cTmp,
			count = c.images.length,
			holder = c.images.parent();
			current = $('.active', holder).index();
			
			if(c.groupBy) { c.groupBy--; } else { c.groupBy = 0; }
			if(!c.leftSpace) { c.leftSpace = 0; }
			
			c.btnNext.click(slideMe.triggerNext);
			c.btnPrev.click(slideMe.triggerPrev);
		
			if (c.aInterval) {
				interval = setInterval(slideMe.triggerNext, c.aInterval, true);
			}
		
		},
		
		triggerNext: function (i) {
			if (!progress) {
				if (current == count-1-c.groupBy) {
					slideMe.image(0);
				} else {
					slideMe.image(current+1);
				}	
				slideMe.resetInterval(i);
			}
			return false;
		},
		
		resetInterval: function (i) {
			if (typeof i !== 'boolean') {
				clearInterval(interval);
				interval = setInterval(slideMe.triggerNext, c.aInterval);
			}
		},
		
		triggerPrev: function (i) {
			if (!progress) {
				if (current == 0) {
					slideMe.image(count-1-c.groupBy);
				} else {
					slideMe.image(current-1);
				}
				slideMe.resetInterval(i);
			}
			return false;
		},
		
		image: function(e){
			progress = true;
			holder.animate({
				left: -c.images.eq(e).position().left+c.leftSpace
			}, c.aSpeed, function () {
				progress = false;
				current = e;
			});
		}
	};

})();
