function Zoom ()
{
}

Zoom.list = [];
Zoom.nextButton = null;
Zoom.backButton = null;
Zoom.imageArea = null;
Zoom.currentImg = -1;
Zoom.link_zoom = null;
Zoom.link_zomm_ref = null;
Zoom.init_img = 0;

Zoom.registerImage = function (imageUrl)
{
	Zoom.list.push(imageUrl);
}

Zoom.init = function ()
{
	var self = Zoom;
	self.nextButtonEnabled = $('btnNext_enabled');
	self.nextButtonDisabled = $('btnNext_disabled');
	connect(self.nextButtonEnabled, 'onclick', partial(self.jumpToDirection, 'next'));
	self.backButtonEnabled = $('btnBack_enabled');
	self.backButtonDisabled = $('btnBack_disabled');
	connect(self.backButtonEnabled, 'onclick', partial(self.jumpToDirection, 'back'));
	self.imageArea = $('imageArea');
	self.link_zoom = $('link_zoom');
	if (self.link_zoom != null) {
		self.link_zomm_ref = self.link_zoom.href;
	}
	self.changeImage(self.init_img);
}

Zoom.jumpToDirection = function (dir)
{
	var self = Zoom;
	switch(dir) {
		case 'next':
			if (self.currentImg != self.list.length-1) {
				self.changeImage(self.currentImg+1);
			} else {
        self.changeImage(0);
      }
		break;
		case 'back':
			if (self.currentImg != 0) {
				self.changeImage(self.currentImg-1);
			} else {
        self.changeImage(self.list.length-1);
      }
		break;
	}
}

Zoom.setStateButton = function (button, enable)
{
	var self = Zoom;
	switch(button) {
		case 'next':
			if (enable) {
				showElement(self.nextButtonEnabled);
				hideElement(self.nextButtonDisabled);
			} else {
				showElement(self.nextButtonDisabled);
				hideElement(self.nextButtonEnabled);
			}
		break;
		case 'back':
			if (enable) {
				showElement(self.backButtonEnabled);
				hideElement(self.backButtonDisabled);
			} else {
				showElement(self.backButtonDisabled);
				hideElement(self.backButtonEnabled);
			}
		break;
	}
}

Zoom.changeImage = function (position)
{
	var self = Zoom;
	if (position != self.currentImg && position >= 0 && position < self.list.length) {
		switch(position) {
			/*case 0:
				self.setStateButton('back', false);
				if (self.list.length != 1) {
					self.setStateButton('next', true);
				} else {
					self.setStateButton('next', false);
				}
			break;
			case (self.list.length - 1):
				self.setStateButton('back', true);
				self.setStateButton('next', false);
			break;*/
			default:
				self.setStateButton('back', true);
				self.setStateButton('next', true);
			break;
		}
		// Cadre des miniatures
		if (self.currentImg >= 0) {
			var miniature_pre = $('miniature_'+self.currentImg);
			removeElementClass(miniature_pre, 'selected');
		}
		var miniature_new = $('miniature_'+position);
		addElementClass(miniature_new, 'selected');
		self.currentImg = position;
		self.imageArea.src = self.list[position];
		if (self.link_zoom != null) {
			self.link_zoom.href = self.link_zomm_ref + position;
		}
	}
}

addLoadEvent(Zoom.init);
