$(document).ready(function() {
	var id = $('#multimedia #media');
	
	if (id.length == 1) {

		var mediaListe = $('.media-liste', id);
		var imageLoaded = null;
		var selectedPosition = 0;
		var tempPosition = 0;
		var mediaListeItemsNb = $('.item', mediaListe).length;
		var mediaListeItemHeight = 87;
		var fullImg = $('<img>');
		$('.media-contenu', id).append(fullImg);
		
		if (tempPosition <= 3) $('.previous', mediaListe).addClass('disabled');
		if (mediaListeItemsNb <= 4) $('.next', mediaListe).addClass('disabled');
		
		/**
		 * DIAPORAMA
		 */
		var diaporama = {selectedSpeed : 1, isPlaying : false, interval : 0, delay : 4000, selectedDelay : 4000};
		diapoStart = function() {
			diaporama.isPlaying = true;
			diapoNext();
			//diaporama.interval = setTimeout('diapoNext()', diaporama.selectedDelay);
		};
		diapoNext = function() {
			if (diaporama.isPlaying == false) return false;
			//diaporama.interval = setTimeout('diapoNext()', diaporama.selectedDelay);
			//if (imageLoaded == false) return false;
			$('#nav-next', id).click();
		};
		diapoStop = function() {
			diaporama.isPlaying = false;
			clearTimeout(diaporama.interval);
		};
		$('#nav-play', id).click(function() {
			if (diaporama.isPlaying == false) {
				diapoStart();
				$(this).attr('title', 'Arrêter le diaporama').find('.bt-play').hide();
			} else {
				diapoStop();
				$(this).attr('title', 'Lancer le diaporama').find('.bt-play').show();
			}
			return false;
		});
		$('.media-controle-speed a', id).click(function() {
			var aListe = $(this).parent().find('a').removeClass('selected');
			$(this).addClass('selected');
			
			diaporama.selectedSpeed = aListe.index(this);
			if (diaporama.selectedSpeed == 0) diaporama.selectedDelay = diaporama.delay + 2000;
			else if (diaporama.selectedSpeed == 2) diaporama.selectedDelay = diaporama.delay - 1000;
			
			if (diaporama.isPlaying == true) {
				diapoStop();
				$('#nav-play', id).click();
			}
			return false;
		});
		$('.media-controle-speed a:eq('+diaporama.selectedSpeed+')', id).click();
		
		
		$('.media-liste-nav', mediaListe).bind('click', function() {
			var action = $(this).hasClass('next') ? 'next' : 'previous';
			//alert(tempPosition);
			if (action == 'previous' && tempPosition > 0) {
				tempPosition = tempPosition - 4 < 0 ? 0 : tempPosition - 4;
			} else if (action == 'next' && tempPosition + 4 <= mediaListeItemsNb - 1) {
				if (tempPosition + 4 > mediaListeItemsNb - 4) tempPosition = mediaListeItemsNb - 4; else tempPosition += 4;
			}
			mediaListeGoTo(tempPosition);
			
			return false;
		});
		
		$('.item a', mediaListe).each(function(i) {
			$(this).click(function() {
				clearTimeout(diaporama.interval);
				if (imageLoaded == false) return false;
				imageLoaded = false;
				selectedPosition = i;
				var miniSrc = $('img', this).attr('src');
				var fullSrc = miniSrc.replace('-mini.jpg', '-full.jpg');
				fullImg.attr('src', fullSrc).hide();
				var imgLoader = new Image();
				$('<img>').load(function(){
					fullImg.fadeIn();
					imageLoaded = true;
					clearTimeout(diaporama.interval);
					diaporama.interval = setTimeout('diapoNext()', diaporama.selectedDelay);
				}).attr('src', fullSrc);
				return false;
			});
		});
		$('.item a:eq('+selectedPosition+')', mediaListe).click();
		
		$('#nav-next, #nav-prev', id).click(function() {
			if (imageLoaded == false) return false;
			var action = $(this).attr('id') == 'nav-next' ? 'next' : 'previous';
			if (action == 'previous') {
				selectedPosition = selectedPosition > 0 ? selectedPosition-1 : mediaListeItemsNb - 1;//OK
			} else if (action == 'next') {
				selectedPosition = selectedPosition < mediaListeItemsNb - 1 ? selectedPosition + 1 : 0;//OK
			}
			$('.item a:eq('+selectedPosition+')', mediaListe).click();
			
			if (selectedPosition - tempPosition >= 4 || selectedPosition - tempPosition < 0) {
				tempPosition = selectedPosition;
				if (tempPosition + 4 > mediaListeItemsNb) tempPosition = mediaListeItemsNb-4;
			}
			mediaListeGoTo(tempPosition);
			return false;
		});
		
		function mediaListeGoTo(position) {
			$('.items>ul', mediaListe).animate({
				marginTop : mediaListeItemHeight*(-position)  
			}, 1000);
			if (position + 4 >= mediaListeItemsNb) $('.next', mediaListe).addClass('disabled'); else $('.next', mediaListe).removeClass('disabled');
			if (position <= 0) $('.previous', mediaListe).addClass('disabled'); else $('.previous', mediaListe).removeClass('disabled');
		}
	}
});