(function() {
 
    jQuery.fn.slider = function(settings) 
    {
        jQuery.slider.init(settings);
    }
 
    $.slider = 
    {
    	num: -1,
		cur: null,
		cr: [],
		al: null,
		at: 10*1000,
		ar: true,
		
		settings: {
			slideItems: null,
			navigationItems: null
		},
		
		init:function(options) 
		{
			$.slider.settings.panelItems = options.panelItems;
			$.slider.settings.navigationItems = options.navigationItems;
			$.slider.settings.container = options.container;
			var $navigationItems = $($.slider.settings.navigationItems);
			var $panelItems = $($.slider.settings.panelItems);
			
			var size = $panelItems.size();
			if(size == 0) return;
			
			var pos = Math.floor(Math.random()*1);
			var i = 0;
			
			$.slider.num = size;
			
			var i = 0;
			var panelWidth = $panelItems[0].offsetWidth;
			$panelItems.each(function() 
			{				
				$(this).css({
					'float' : 'left',
					'position' : 'absolute',
					'left' : (i*panelWidth)
				});
				i++;
			});
			/*
			$panelItems.css({
				'float' : 'left',
				'position' : 'absolute',
				'left' : ((i++-pos)*panelWidth))
			});
			*/
			$($.slider.settings.container).css('width', panelWidth * $panelItems.length);

			var _self = this;
			
			//$navigationItems.click(selectNav);
			$navigationItems.bind("click", function(e){ $.slider.navigationItemClicking(this);  return false; } );
		},
		
		navigationItemClicking: function(navigationItem)
		{
			//ajout la classe 'selected' au boutton courrant de navigation 
			$(navigationItem)
				.parents('ul:first')
					.find('a')
						.removeClass('selected')
					.end()
				.end()
				.addClass('selected');
				
			//deplacement des panneaux
			$.slider.slide(navigationItem);
		},
		
        slide:function(navigationItem)
		{
			var id = navigationItem.hash.substr(1);
			
			var $panelItems = $($.slider.settings.panelItems);
			var pos = 0;
			$panelItems.each(function() {
				if (this.id == id)
					return false;
				pos++;
			});
			var i = 0;
			var panelWidth = $panelItems[0].offsetWidth;
			//alert(pos + '  - ' + id + ' - ' + ((i-pos)*panelWidth));
			$panelItems.each(function() 
			{
				$(this).stop().animate({left:((i-pos)*panelWidth)},1000,'swing');
				i++;
			});
		},
		
		on:function(pos)
		{
			$('#slide-nav a').removeClass('on');
			$('#slide-nav a#slide-link-'+pos).addClass('on');
		},
		
		text:function(img)
		{
			this.cr['a'] = $(img).attr('alt');
			this.cr['b'] = $(img).attr('longdesc');
			this.ticker('#slide-client span', $(img).attr('alt'), 0, 'a');
			this.ticker('#slide-desc', $(img).attr('longdesc'), 0, 'b');
		},
		
		ticker:function(el, text, pos, unique)
		{
			if(this.cr[unique] != text)
				return false;
				
			ctext = text.substring(0,pos)+(pos%2?'-':'_');
			$(el).html(ctext);
			
			if(pos==text.length)
				$(el).html(text);
			else
				window.setTimeout('$.slider.ticker("'+el+'","'+text+'",'+(pos+1)+',"'+unique+'");',30);
		}
    }
 
})(jQuery);

