/* zpSlider : Slider horizontal
 * 		Structure HTML :
 * 			<div id="slider">
 * 				<div id="slider_prev"></div>
 * 				<div id="slider_next"></div>
 * 				
 * 				<div id="slider_moove">
 * 					<div class="slider_element">
 * 						...
 * 					</div>
 * 					<div class="slider_element">
 * 						...
 * 					</div>
 * 					....
 * 				</div>
 * 			</div>
 * 		
 * 		Variable :
 * 			bt_prev_id: 'slider_prev', 
 *			bt_next_id: 'slider_next', 
 *			blc_moove_id: 'slider_moove', 
 *			elements_class: 'slider_element', 
 *			elements_width: 0, 
 *			slide_speed: 500,
 *			slider_auto: false,
 *			slider_auto_time: 3000
 */
(function($) {
	$.fn.zpSlider = function(params) {
		p = $.extend( {
			bt_prev_id: 'slider_prev', 
			bt_next_id: 'slider_next', 
			blc_moove_id: 'slider_moove', 
			elements_class: 'slider_element', 
			elements_width: 0, 
			slide_speed: 500,
			slider_auto: false,
			slider_auto_time: 3000
		}, params);
		
		var t = $(this);
		var bt_prev = $('#'+p.bt_prev_id);
		var bt_next = $('#'+p.bt_next_id);
		var blc_moove = $('#'+p.blc_moove_id);
		var elements_cnt = $('.'+p.elements_class).size();
		var current_pos = 0;
		if(p.elements_width == 0)
			p.elements_width = t.width();
		var slide_auto_var = -1;
		
		if(p.slider_auto)
		{
			slide_auto_var = window.setInterval("zp_slider_auto('"+p.bt_next_id+"', '"+p.bt_prev_id+"')", p.slider_auto_time);
		}
		
		//Initalisation du bouton Next
		bt_next.click(function(){
			blc_moove.stop(true, true);
			//if($(this).is(':hover'))
			//	clearInterval(slide_auto_var);

			if(current_pos < elements_cnt - 1)
			{
				$('.slider_element.slider_element_on').removeClass('slider_element_on'); $('.slider_element:eq('+(current_pos + 1)+')').addClass('slider_element_on');
				blc_moove.animate({left: '-='+p.elements_width}, p.slide_speed, function(){ current_pos ++; $('.slider_element.slider_element_on').removeClass('slider_element_on'); $('.slider_element:eq('+current_pos+')').addClass('slider_element_on'); });
			}
			else
			{
				$('.slider_element.slider_element_on').removeClass('slider_element_on'); $('.slider_element:eq(0)').addClass('slider_element_on');
				blc_moove.animate({left: '0'}, p.slide_speed, function(){ current_pos = 0; $('.slider_element.slider_element_on').removeClass('slider_element_on'); $('.slider_element:eq('+current_pos+')').addClass('slider_element_on'); });
			}
		});
		
		//Initalisation du bouton Previous
		bt_prev.click(function(){
			blc_moove.stop(true, true);
			//~ if($(this).is(':hover'))
			// clearInterval(slide_auto_var);
				
			if(current_pos > 0)
			{
				$('.slider_element.slider_element_on').removeClass('slider_element_on'); $('.slider_element:eq('+(current_pos - 1)+')').addClass('slider_element_on');
				blc_moove.animate({left: '+='+p.elements_width}, p.slide_speed, function(){ current_pos --; });
			}
			else
			{
				$('.slider_element.slider_element_on').removeClass('slider_element_on'); $('.slider_element:eq('+(elements_cnt - 1)+')').addClass('slider_element_on');
				blc_moove.animate({left: '-' + p.elements_width * (elements_cnt - 1)}, p.slide_speed, function(){ current_pos = elements_cnt - 1; $('.slider_element.slider_element_on').removeClass('slider_element_on'); $('.slider_element:eq('+current_pos+')').addClass('slider_element_on'); });
			}
		});
		
	}
})(jQuery);
function zp_slider_auto(next, prev)
{
	$('#'+next).click();
}

