// classe principale pour contrôler le diaporama

// diaporamaDom permet d'accéder/modifier les différents éléments de l'interface html
function Diaporama_Control(diaporamaDom) {
	this.diaporamaDom = diaporamaDom;
	this.autoplayVar = false;
}

Diaporama_Control.prototype = {
	
	// permet d'initialiser l'objet qui sera utile tout le long : Diaporama_Counter
	calculCounter : function ()
	{
		var tabLi = this.diaporamaDom.getTabLi();
		var tabWidth = Array();
		var nb = tabLi.length;
		for(var i=0; i<nb ; i++) {
			tabWidth[i] = $(tabLi[i]).width();
		}
		
		this.diaporamaCounter = new Diaporama_Counter(tabWidth);	
	},
	
	// le bouton suivant (trouvé par l'objet this.diaporamaDom) devient prêt à réaliser son action
	clickNext : function () {
		var obj = this;
		this.diaporamaDom.getNextButton().click(
			function () {
				obj.autoplayVar = false;
				if (obj.diaporamaCounter.canAdd()) {
					obj.diaporamaCounter.add();
					var widthC = obj.diaporamaCounter.getWidth();
					obj.diaporamaDom.decalImages(-widthC);
				}
			}
		);
	},
	// le bouton précédent (trouvé par l'objet this.diaporamaDom) devient prêt à réaliser son action
	clickPrev: function () {
		var obj = this;
		this.diaporamaDom.getPrevButton().click(
			function () {
				obj.autoplayVar = false;
				if (obj.diaporamaCounter.canRemove()) {
					obj.diaporamaCounter.remove();
					var widthC = obj.diaporamaCounter.getWidth();
					obj.diaporamaDom.decalImages(-widthC);
				}
			}
		);
	},
	
	// réalise un autoplay du diaporama
	autoPlay: function () {
		this.autoplayVar = true;
		this.autoPlayRecursive();
	},
	
	
	autoPlayRecursive: function () {
		var obj = this;
		setTimeout(function () {
			if (obj.diaporamaCounter.canAdd() && obj.autoplayVar) {
				obj.diaporamaCounter.add();
				var widthC = obj.diaporamaCounter.getWidth();
				obj.diaporamaDom.decalImages(-widthC);
				obj.autoPlayRecursive();
			} else obj.autoplayVar = false;
		},6000);		
	}

}
