
var timers=new Array(); //array global pels timers

var Carousel = function(num, prefix, interval, paginator) {
	//inicialització
	this.num = num;
	this.prefix = prefix;
	this.interval = interval;
	this.paginator = paginator;
	//variables privades
	var debug = 0;
	var num_act = 1;
	var num_seg = 2;
	var id_act = this.prefix+num_act;
	var id_seg = this.prefix+num_seg;
	var timer;
	var _this = this;
	
	this.play = function() {
		//informar
		if(debug) console.info("play "+this.prefix);
		//programar timer
		this.timer = setTimeout(_this.next, interval);
		timers[prefix] = this.timer;
	}
	
	this.stop = function() {
		//informar
		if(debug) console.info("stop");
		//parar timer
		clearTimeout(timers[prefix]);
	}
	
	this.next = function() {
		//informar
		if(debug) console.info("next "+prefix);
		//determinar proper
		num_seg = num_act+1;
		if (num_seg==num+1) num_seg = 1;
		//fer el canvi
		lets();
		//programar timer
		this.timer = setTimeout(_this.next, interval);
		timers[prefix] = this.timer;
	}
	
	this.prev = function() {
		//informar
		if(debug) console.info("prev");
	}
	
	this.goto = function(el) {
		//informar
		if(debug) console.info("goto "+el);
		//parar
		this.stop();
		//seguent
		num_seg = el;
		//fer el canvi
		lets();
		//programar timer
		this.timer = setTimeout(_this.next, interval);
		timers[prefix] = this.timer;
	}
	
	var lets = function() {		
		//----go
		id_seg = prefix+num_seg;
		//fades
		$(id_act).fadeOut("slow");
		$(id_seg).fadeIn("slow");
		//paginator
		if(paginator) {
			$(prefix+'pag'+num_act).removeClass('actiu');
			$(prefix+'pag'+num_seg).addClass('actiu');
		}
		//informar
		if(debug) console.info("--- canvi "+prefix+": act:"+num_act+"("+id_act+")"+" / seg:"+num_seg+"("+id_seg+")");
		num_act = num_seg;
		id_act = id_seg;
		//----go
	}
	
}

