
function owrotator(spec, my) {
	var that = {};
	
	my = my || {};
	spec = spec || {};
	
	my.current = spec.startAt || 0;
	
	if(!spec.elements) {
		throw "'elements' must be specified in the spec";
	} else {
		my.elements = spec.elements;
		my.elements.removeClass('js-hidden').hide();
		my.elements.eq(my.current).show();
	}
	
	my.interval = spec.interval || 10000;
	my.isActive = false;
	
	that.start = function() {
		my.isActive = true;
		
		setTimeout(function() { 
			my.rotate(); 
		}, my.interval);
	};
	
	that.stop = function() {
		my.isActive = false;
	}
	
	my.rotate = function() {
		if(!my.isActive) {
			return;
		}
		
		my.elements.eq(my.current).fadeOut(500, function() {
			my.current += 1;
			if(my.current >= my.elements.length) {
				my.current = 0;
			}
			my.elements.eq(my.current).fadeIn(500);
		});
		
		setTimeout(function() { 
			my.rotate(); 
		}, my.interval);
	}
	
	
	return that;
}
