(function($) {
	$.fn.idwebSlider = function (settings) {
		var idSl=this;

		if($(idSl).size()==0)
			return false;

		options={
			duree : 1000,
			largeur : 50,
			gauche : '&lt;',
			droite : '&gt;',
			effet: 'swing',
			loop: false,
			auto: false
		}
		
		var options = $.extend(options, settings);

		//index de l'element a recopier
		//idSl.elmnts=$('.idwebSliderObject', idSl).clone();
		idSl.elmnts=$('.idwebSliderObject', idSl);
		idSl.indexCopie=0;

		//si boucle, defilement automatique
		if(options.loop){
			options.auto=true;
			options.effet='linear';
		}
		
		//flag si mouvement en cours
		idSl.idwebSliderBouge=0;

		//ajoute les fleches
		idSl.idwebSliderFleches=function(){
			idSl.prepend('<a class="idwebSliderFleche idwebSliderFlecheGauche" href="">'+options.gauche+'</a>');
			idSl.append('<a class="idwebSliderFleche idwebSliderFlecheDroite" href="">'+options.droite+'</a>');
		}

		//clique sur fleches
		idSl.idwebSliderAnimate = function (){
			//fleche gauche
			$('.idwebSliderFlecheDroite', idSl).click(function(){
				if(idSl.idwebSliderBouge==0 || options.loop)
					idSl.idwebSliderDeplacement('-='+options.largeur);
				return false;
			});
			
			//fleche droite
			$('.idwebSliderFlecheGauche', idSl).click(function(){
				if(idSl.idwebSliderBouge==0 || options.loop)
					idSl.idwebSliderDeplacement('+='+options.largeur);
				return false;
			});
		}
	
		//cache ou affiche les fleches
		idSl.idwebSliderAfficheFleches=function(){
			idSl.idwebSliderBouge=0;
			
			if(options.loop){
				for(i=0; i<Math.round(options.largeur/idSl.largeElt); i++){
					//$('.idwebSliderContenu', idSl).append($(idSl.elmnts).clone(idSl.indexCopie).remove());
	
					$('.idwebSliderContenu', idSl).append($(idSl.elmnts[idSl.indexCopie]).clone().remove());

					idSl.indexCopie++;
					if(idSl.nbElts==idSl.indexCopie)
						idSl.indexCopie=0;
					
					idSl.large+=idSl.largeElt;
					idSl.idwebSliderFixeLargeConteneur();
				}
			}
			else{
				if(parseFloat($('.idwebSliderContenu', idSl).css('left'))+idSl.large<parseFloat(idSl.css('width')))
					$('.idwebSliderFlecheDroite', idSl).hide();
				else
					$('.idwebSliderFlecheDroite', idSl).show();
	
				if(parseFloat($('.idwebSliderContenu', idSl).css('left'))>=0){
					$('.idwebSliderFlecheGauche', idSl).hide();
					//idSl.idwebSliderDeplacement('0');
				}
				else
					$('.idwebSliderFlecheGauche', idSl).show();
			}
		}

		//deplacement
		idSl.idwebSliderDeplacement=function(val){
			idSl.idwebSliderBouge=1
			$('.idwebSliderContenu', idSl).animate({left: val}, options.duree, options.effet, idSl.idwebSliderAfficheFleches);
		}

		//fixe la largeur du conteneur d'element
		idSl.idwebSliderFixeLargeConteneur=function(){
			$('.idwebSliderContenu', idSl).css('width', idSl.large+'px');
		}

		//animation automatique
		idSl.animeAuto=function(){
			idSl.idwebSliderDeplacement('+='+options.largeur);
		};

		idSl.idwebSliderDefileDroite=function(){
			$('.idwebSliderFlecheDroite', idSl).click();
			setTimeout(idSl.idwebSliderDefileDroite, options.duree);
		}

		//largeur des elements a caler (largeur + marge + padding + epaisseur bordure)
		idSl.nbElts=$('.idwebSliderObject', idSl).size();
		idSl.largeElt=parseFloat($('.idwebSliderObject', idSl).css('width'))+parseFloat($('.idwebSliderObject', idSl).css('marginLeft'))+parseFloat($('.idwebSliderObject', idSl).css('marginRight'))+parseFloat($('.idwebSliderObject', idSl).css('paddingLeft'))+parseFloat($('.idwebSliderObject', idSl).css('paddingRight'))+parseFloat($('.idwebSliderObject', idSl).css('borderLeftWidth'))+parseFloat($('.idwebSliderObject', idSl).css('borderRightWidth'))+1;

		idSl.large=(idSl.largeElt)*idSl.nbElts;
		
		//large du conteneur d'elements
		idSl.idwebSliderFixeLargeConteneur();

		//si plus large, ajoute les fleche
		if(idSl.large>parseFloat(idSl.css('width'))){
			idSl.idwebSliderFleches();

			//cache la fleche gauche
			$('.idwebSliderFlecheGauche', idSl).css('display', 'none');
			
			if($('.current', idSl).size() && options.loop==false){
				moitie=(($(idSl).width()/idSl.largeElt)/2)-0.5;
				index=parseInt($('.idwebSliderObject',idSl).index($('.current')));
				
				if(index>moitie)
					idSl.idwebSliderDeplacement('-='+(idSl.largeElt*(index-moitie)));
			}
		}

		//action sur les fleches
		idSl.idwebSliderAnimate();

		//si defilement auto
		if(options.auto){
			idSl.idwebSliderDefileDroite();
			$('.idwebSliderFlecheDroite', idSl).css('display', 'none');
		}
	};
})(jQuery);
