(function(jQuery) {var $elements;jQuery.fn.diaporama=function(action,param,value) {$elements=this;switch(action) {case'destroy':return destroy();case'disable':return disable();case'option':param={param:value};case'options':return set(param);default:return construct(action);};return this;};jQuery.fn.diaporama.compliance='diaporama';jQuery.fn.diaporama.defaults={'buttonDisplay':'simple','diaporamaClassName':'diaporama','buttonsClassName':'diaporama-buttons','prevLabel':'Précédent','nextLabel':'Suivant','timeInterval':4000,'transitionDuration':1000,'eventType':'diaporama','eventNamespace':'diaporama'};jQuery.fn.diaporama.makeSimpleButtons=function($diaporama) {return $diaporama.each(function() {var $this=jQuery(this),settings=$this.data(jQuery.fn.diaporama.compliance),eventType='click.'+settings.eventNamespace,eventTypeUserIn='mouseenter.'+settings.eventNamespace,eventTypeUserOut='mouseleave.'+settings.eventNamespace,buttons='
';buttons+='
';buttons+='';buttons+=''+settings.prevLabel+'
';buttons+='
';buttons+='';buttons+=''+settings.nextLabel+'
';var $buttons=$this.after(buttons).next().bind(eventTypeUserIn,{'diaporama':$this},hoverButtonsHandler).bind(eventTypeUserOut,{'diaporama':$this},hoverButtonsHandler);$buttons.children('.'+settings.buttonsClassName+'-next').bind (eventType,{'diaporama':$this,'direction':'next'},simpleButtonsHandler);$buttons.children('.'+settings.buttonsClassName+'-previous').bind (eventType,{'diaporama':$this,'direction':'previous'},simpleButtonsHandler);});};jQuery.fn.diaporama.removeSimpleButtons=function($diaporama) {return $diaporama.each(function() {var $this=jQuery(this),settings=$this.data(jQuery.fn.diaporama.compliance),eventType='click.'+settings.eventNamespace,$buttons=$this.next();$buttons.remove();});};function simpleButtonsHandler(event) {var $this=event.data.diaporama,settings=$this.data(jQuery.fn.diaporama.compliance),$allDiapositives=$this.children(),$current=$allDiapositives.filter(':visible'),eventType=settings.eventType+'.'+settings.eventNamespace;if(event.data.direction=='next') {var $next=$current.next();if(!$next.length) $next=$allDiapositives.filter(':first');$next.trigger(eventType);} else {var $prev=$current.prev();if(!$prev.length) $prev=$allDiapositives.filter(':last');$prev.trigger(eventType);} return false;};jQuery.fn.diaporama.makeNumberedButtons=function() {throw new Error('Boutons numérotés non implémentés');};function numberedButtonsHandler(event) {};jQuery.fn.diaporama.changeDiapositive=function($diapositiveToShow,$diapositiveToHide,duration) {$diapositiveToHide.fadeTo(duration,0).queue(function() {$diapositiveToHide.css('display','none').dequeue();});$diapositiveToShow.show().fadeTo(duration,1);};function construct(options) {return $elements.each(function() {var $this=jQuery(this),oldSettings=$this.data(jQuery.fn.diaporama.compliance),settings=!oldSettings?jQuery.extend({},jQuery.fn.diaporama.defaults,options):jQuery.extend({},oldSettings,options);jQuery.extend(settings,{'timerEnable':(settings.timeInterval!=0)});if(!settings.enabled) {var $diapositives=$this.children().hide().fadeTo(0,0),eventType=settings.eventType+'.'+settings.eventNamespace,eventTypeUserIn='mouseenter.'+settings.eventNamespace,eventTypeUserOut='mouseleave.'+settings.eventNamespace;$diapositives.bind(eventTypeUserIn,{'diaporama':$this},hoverButtonsHandler).bind(eventTypeUserOut,{'diaporama':$this},hoverButtonsHandler);$this.data(jQuery.fn.diaporama.compliance,jQuery.extend(settings,{'enabled':true})).addClass(settings.diaporamaClassName).bind(eventType,diapositiveHandler);switch(settings.buttonDisplay) {case'both':break;case'numbered':jQuery.fn.diaporama.makeNumberedButtons($this);break;case'simple':default:jQuery.fn.diaporama.makeSimpleButtons($this);break;} $diapositives.filter(':first').trigger(eventType);}});};function hoverButtonsHandler(event) {var $this=event.data.diaporama,movement=(event.type=='mouseenter'),settings=$this.data(jQuery.fn.diaporama.compliance),eventType=settings.eventType+'.'+settings.eventNamespace,timerEnable=settings.timerEnable;window.clearTimeout(settings.timeoutID);$this.children().stop(false,false);if(movement) $this.data(jQuery.fn.diaporama.compliance,jQuery.extend(settings,{'timerEnable':false}));else $this.data(jQuery.fn.diaporama.compliance,jQuery.extend(settings,{'timerEnable':true}));jQuery(this).trigger(eventType);} function diapositiveHandler(event) {jQuery(event.target).each(function() {var $diapositive=jQuery(this),$this=$diapositive.parent(),settings=$this.data(jQuery.fn.diaporama.compliance),$allDiapositives=$this.children(),$prev=$diapositive.siblings(':visible');window.clearTimeout(settings.timeoutID);$allDiapositives.stop(false,true);jQuery.fn.diaporama.changeDiapositive($diapositive,$prev,settings.transitionDuration);if(settings.timerEnable) {$this.data(jQuery.fn.diaporama.compliance,jQuery.extend(settings,{'timeoutID':window.setTimeout(function() {var $next=$diapositive.next();if(!$next.length) $next=$allDiapositives.filter(':first');var eventType=settings.eventType+'.'+settings.eventNamespace;$next.trigger(eventType);},settings.timeInterval)}));}});};function destroy() {disable();return $elements.each(function() {jQuery(this).data(jQuery.fn.diaporama.compliance,null);});};function disable() {return $elements.each(function() {var $this=jQuery(this),settings=$this.data(jQuery.fn.diaporama.compliance),eventType=settings.eventType+'.'+settings.eventNamespace;jQuery.fn.diaporama.removeSimpleButtons($this);$this.data(jQuery.fn.diaporama.compliance,jQuery.extend(settings,{'enabled':false})).unbind(eventType).children().stop(true,true).show().fadeTo(0,1).end().removeClass(settings.diaporamaClassName);});};function set(options) {return $elements.each(function() {var $this=jQuery(this),settings=jQuery.extend({},$this.data(jQuery.fn.diaporama.compliance),options);$this.data(jQuery.fn.diaporama.compliance,settings);});};})(jQuery);