/*
Plugin slideShow for jQuery

DECOTTE Jérémy (jeremy.decotte@solving-macadam.com)
23/06/09

Version 1.1
*/

(function($) {
	var s;
	$.fn.extend({		
		slider: function(options) {
			s = new slideShow(this,options);
			return this;
		},
		selectSlide: function(n) {
			s.select(n);
			return this;
		},
		nextSlide: function(n) {
			s.selectNext();
			return this;
		},
		previousSlide: function(n) {
			s.selectPrevious();
			return this;
		}
	});
	
	function slideShow(obj,options) {
		this.init(obj,options);
	}
	slideShow.prototype = {
		init: function(obj,options) {
			this.params = $.extend({
				'firstSlide': 1,
				'currentSlide': 1,
				'numberOfSlide': $("img",obj).size(),
				'duration': 5000,
				'fadeInDuration': 700,
				'numberContainer': $("ul",obj),
				'classNumber': 'header-slideshow-number',
				'classNumberHover': 'header-slideshow-number-hover'
			},options);
			this.obj = obj;
			this.t = "";
			
			this.params.numberContainer.html('');
			this.params.numberContainer.append('<li><a class="header-slideshow-number" onclick="javascript:$(this).previousSlide();" href="javascript:void(0);">&#060;</a></li>');
			this.params.numberContainer.append('<li><a class="header-slideshow-number" onclick="javascript:$(this).nextSlide();" href="javascript:void(0);">&#062;</a></li>');

			for (i = 1;i <= this.params.numberOfSlide;i++) {
				this.params.numberContainer.append('<li><a class="header-slideshow-number" onclick="javascript:$(this).selectSlide('+i+');" href="javascript:void(0);">'+i+'</a></li>');
			}
			this.first();
		},
		first: function() {
			this.params.currentSlide = this.params.firstSlide;
			this.select(this.params.firstSlide);
		},
		select: function(n) {
			clearTimeout(this.t);
			if (n)
				this.params.currentSlide = n;				
			if (this.params.currentSlide > this.params.numberOfSlide)
				this.params.currentSlide = this.params.firstSlide;
			var $$ = this;
			$('img:visible',this.obj).fadeOut(0,function() {
				$('> img:eq('+($$.params.currentSlide - 1)+')',$$.obj).fadeIn($$.params.fadeInDuration);
				$('> li a',$$.params.numberContainer).removeClass($$.params.classNumberHover).addClass($$.params.classNumber);
				$('> li:eq('+($$.params.currentSlide + 1)+') a',$$.params.numberContainer).addClass($$.params.classNumberHover);
				$$.t = window.setTimeout(function() { $$.timer(); },$$.params.duration);
				$$.params.currentSlide++;
			});		
		},
		selectNext: function() {
			this.select();
		},
		selectPrevious: function() {
			if ((this.params.currentSlide - 1) == this.params.firstSlide)
				this.params.currentSlide = this.params.numberOfSlide
			else
				this.params.currentSlide = this.params.currentSlide - 2;
			this.select();
		},
		timer: function() {
			this.select();
		}
	}
})(jQuery);	









		