var Candissime=Class.create({default_language:'fr',language:null,element_to_hide_classname:'toHide',element_to_show_classname:'toShow',menu_timeout:1000,menu_timer:null,menu_animation_in_process:false,menu_default_level:0,menu_current_level:0,menu_id:'menu',menu_container_id:'menu-content',menu_clipping_mask_classname:'content',menu_clipping_mask_width:0,scrolling_container_classname:'scroll',scrollbar_classname:'scrollbar',slider_classname:'slider',scrollbar_knob_classname:'knob',scroller_knob_min_height:30,tooltip_link_classname:'tooltip-link',tooltip_classname:'tooltip',tooltip_fade_duration:0.5,tooltip_fade_delay:0.5,mainslideshow_id:'diaporama',mainslideshow_slide_classname:'slide',mainslideshow_timer:null,mainslideshow_timeout:5000,mainslideshow_current_slide:0,mainslideshow_first_slide:0,mainslideshow_last_slide:0,mainslideshow_slides:null,mainslideshow_fade_duration:2,friezeslideshow_id:'diaporama-etui',friezeslideshow_thumb_number:8,friezeslideshow_thumb_index:null,slideshow_id:'slide',slideshow_images:null,slideshow_first_frame:0,slideshow_current_frame:0,slideshow_last_frame:0,slideshow_start_delay:1000,slideshow_delay:4000,slideshow_fade_duration:2,slideshow_timer:null,slideshow_autoslide:true,slideshow_animation:false,slideshow_zoom:false,slideshow_zoom_duration:0.8,slideshow_image_small_width:'250px',slideshow_image_big_width:'500px',initialize:function(language)
{this.initLanguage(language);this.initCenter();this.initScroller();this.initHideShowCustomElement();this.initMenu();this.initTooltips();},initLanguage:function(language)
{if(language)
{this.language=language;}
else
{this.language=default_language;}},initCenter:function()
{this.centerContainer();Event.observe(document.onresize?document:window,"resize",this.centerContainer);},initScroller:function()
{$$('.'+this.scrolling_container_classname).each(function(element){element.setStyle({overflow:'hidden'});});},initHideShowCustomElement:function()
{$$('.'+this.element_to_hide_classname).each(function(element){element.setStyle({display:'none'});});$$('.'+this.element_to_show_classname).each(function(element){element.setStyle({display:'block'});});},initMenu:function()
{this.menu_clipping_mask_width=$(this.menu_id).down('.'+this.menu_clipping_mask_classname).getWidth();Event.observe($('menu').down('.content'),'mousemove',this.clearMenuTimer.bindAsEventListener(this))
Event.observe($('menu').down('.content'),'mouseover',this.clearMenuTimer.bindAsEventListener(this))
Event.observe($('menu').down('.content'),'mouseout',this.startMenuTimer.bindAsEventListener(this))},initTooltips:function()
{$$('.'+this.tooltip_link_classname).each(this.setToolTips.bind(this));},centerContainer:function()
{var container_height=$('container').getHeight();var viewport_height=document.viewport.getHeight();if(viewport_height>container_height)
{var offset=(viewport_height-container_height)/2;$('container').setStyle({marginTop:offset+'px'});}
else
{$('container').setStyle({marginTop:0});}},initializeMenu:function(level,scroll_offset)
{this.menu_default_level=level;this.menu_current_level=level;this.setScrollBar($(this.menu_id).down('.'+this.scrollbar_classname),$('level-'+level).down('.'+this.scrolling_container_classname),scroll_offset);},startMenuTimer:function(event)
{var px=Event.pointerX(event);var py=Event.pointerY(event);if((px>0&&px<185&&py>0&&py<345)||(this.menu_current_level==this.menu_default_level))
return;this.clearMenuTimer();this.menu_timer=setTimeout(this.menuScrollToDefaultLevel.bind(this),this.menu_timeout);},menuScrollToDefaultLevel:function()
{this.menuScrollToLevel(null,this.menu_default_level).bind(this);},clearMenuTimer:function()
{if(this.menu_timer)
{clearTimeout(this.menu_timer);this.menu_timer=null}},menuScrollToLevel:function(event,level)
{if(event)
Event.stop(event)
if(this.menu_animation_in_process)
return
this.menu_current_level=level;var scroll_offset=this.menu_clipping_mask_width*level;new Effect.Morph(this.menu_container_id,{style:'left: -'+scroll_offset+'px;',duration:0.6,beforeStart:this.menuScrollToLevelBeforeStart.bind(this),afterFinish:this.menuScrollToLevelAfterFinish.bind(this)})},menuScrollToLevelBeforeStart:function()
{this.menu_animation_in_process=true;$(this.menu_id).down('.'+this.scrollbar_classname).hide();},menuScrollToLevelAfterFinish:function()
{this.menu_animation_in_process=false;this.setScrollBar($(this.menu_id).down('.'+this.scrollbar_classname),$('level-'+this.menu_current_level).down('.'+this.scrolling_container_classname));},setScrollBar:function(scrollbar,scrolling_container,scroll_offset){var knob=scrollbar.down('.'+this.scrollbar_knob_classname),scrolling_content=scrolling_container.down(),scrolling_container_height=scrolling_container.getHeight(),max_range=scrolling_content.getHeight()-scrolling_container_height,slider=scrollbar.down('.'+this.slider_classname);if(max_range>0)
{scrollbar.show()
scroll_offset=scroll_offset-scrolling_container_height/2;if(scroll_offset<0)
scroll_offset=0;if(scroll_offset>max_range)
scroll_offset=max_range;if(scroll_offset>0)
scrolling_content.setStyle({'marginTop':'-'+scroll_offset+'px'});var knob_height=slider.getHeight()*slider.getHeight()/scrolling_content.getHeight()
if(knob_height<this.scroller_knob_min_height)
{knob_height=this.scroller_knob_min_height}
knob.setStyle({height:knob_height+'px'})
var controler=new Control.Slider(knob,slider,{range:$R(0,max_range),axis:'vertical',sliderValue:scroll_offset,onSlide:function(value){scrolling_content.setStyle({marginTop:'-'+value+'px'})},onChange:function(value){scrolling_content.setStyle({marginTop:'-'+value+'px'})}});Event.observe(scrollbar.down('.slide-up'),'click',this.slideUp.bind(this,scrolling_content,controler));Event.observe(scrollbar.down('.slide-down'),'click',this.slideDown.bind(this,scrolling_content,controler));}
else
{scrollbar.hide();}},slideUp:function(scrolling_content,controler,event)
{event.stop();var slider_value=scrolling_content.getStyle('marginTop').sub('px','');slider_value=parseInt(slider_value)+10;controler.setValue(slider_value*-1);},slideDown:function(scrolling_content,controler,event)
{event.stop();var slider_value=scrolling_content.getStyle('marginTop').sub('px','');slider_value=parseInt(slider_value)-10;controler.setValue(slider_value*-1);},setToolTips:function(link)
{Event.observe(link,'mouseover',this.showToolTip.bindAsEventListener(this));Event.observe(link,'mouseout',this.hideToolTip.bindAsEventListener(this));},showToolTip:function(event)
{var link=Event.element(event);var tooltip=link.down('.'+this.tooltip_classname);$$('.'+this.tooltip_classname).each(function(elem){elem.hide();});if(tooltip)
tooltip.appear({duration:this.tooltip_fade_duration,delay:this.tooltip_fade_delay});},hideToolTip:function(event)
{var link=Event.element(event);var tooltip=link.down('.'+this.tooltip_classname);if(tooltip)
tooltip.fade({duration:this.tooltip_fade_duration});},initMainSlideShow:function()
{new Ajax.Request('/'+this.language+'/static/ajaxslide.html',{onSuccess:this.initMainSlideShowSlides.bind(this)});},initMainSlideShowSlides:function(request,slide)
{if(!slide.length)
return;slide.each(this.initMainSlideShowSlide.bind(this));this.startMainSlideShow();},initMainSlideShowSlide:function(slide,index)
{var container=$(this.mainslideshow_id);var li=new Element('li',{id:'mainslide_'+index});var div=new Element('div',{'class':this.mainslideshow_slide_classname});var img=new Element('img',{src:'/images/diapo/'+slide.filename,width:'590',height:'485'});if(slide.url!="#")
{var a=new Element('a',{'href':slide.url});a.appendChild(img);div.appendChild(a);}
else
{div.appendChild(img);}
li.appendChild(div);container.appendChild(li);div.hide();},startMainSlideShow:function()
{this.mainslideshow_slides=$$('#'+this.mainslideshow_id+' .'+this.mainslideshow_slide_classname);this.mainslideshow_last_slide=this.mainslideshow_slides.length-1;this.clearMainSlideShowTimer();this.mainslideshow_timer=setTimeout(this.nextMainSlideShowSlide.bind(this),this.mainslideshow_timeout);},clearMainSlideShowTimer:function()
{if(this.mainslideshow_timer)
{clearTimeout(this.mainslideshow_timer);this.mainslideshow_timer=null}},showMainSlideMainSlide:function()
{this.clearMainSlideShowTimer();Effect.Fade(this.mainslideshow_slides[this.mainslideshow_current_slide],{duration:this.mainslideshow_fade_duration});if(this.mainslideshow_current_slide==this.mainslideshow_last_slide)
{this.mainslideshow_current_slide=this.mainslideshow_first_slide;}
else
{this.mainslideshow_current_slide++;}
this.mainslideshow_timer=setTimeout(this.nextMainSlideShowSlide.bind(this),this.mainslideshow_timeout);},nextMainSlideShowSlide:function()
{this.clearMainSlideShowTimer();Effect.Appear(this.mainslideshow_slides[this.mainslideshow_current_slide],{duration:this.mainslideshow_fade_duration});this.mainslideshow_timer=setTimeout(this.showMainSlideMainSlide.bind(this),this.mainslideshow_timeout);},initFriezeSlideShow:function()
{new Ajax.Request('/'+this.language+'/static/ajaxetuis.html',{parameters:{number:this.friezeslideshow_thumb_number},onSuccess:this.initFriezeSlideShowThumbnails.bind(this)});},initFriezeSlideShowThumbnails:function(request,thumbnails)
{this.friezeslideshow_thumb_number=thumbnails.length;thumbnails.each(this.initFriezeSlideShowThumbnail.bind(this));},initFriezeSlideShowThumbnail:function(thumbnail,index)
{var container=$(this.friezeslideshow_id);var li=new Element('li',{id:'diapo_'+index});var div=new Element('div',{'class':'block'});var a=new Element('a',{href:'/'+this.language+'/etui/'+thumbnail.url+'.html'});var img=new Element('img',{src:'/images/etui/'+thumbnail.filename,width:'50',height:'50'});a.appendChild(img);div.appendChild(a);li.appendChild(div);container.appendChild(li);div.hide();var options={delay:'0.'+index};if((index+1)==this.friezeslideshow_thumb_number)
{div.appear({delay:'0.'+index,afterFinish:this.reloadOneFriezeSlideShowThumbnail.bind(this)});}
else
{div.appear({delay:'0.'+index});}},reloadOneFriezeSlideShowThumbnail:function()
{this.getRandomFriezeSlideShowThumbnail();if(this.friezeslideshow_thumb_index==0)
{var li=$(this.friezeslideshow_id).down();}
else
{var li=$(this.friezeslideshow_id).down().next(this.friezeslideshow_thumb_index-1);}
li.down().fade({afterFinish:this.retrieveRandomFriezeSlideShowThumbnail.bind(this)});},getRandomFriezeSlideShowThumbnail:function()
{var newIndex=0;var oldIndex=this.friezeslideshow_thumb_index;do
{newIndex=Math.floor(Math.random()*this.friezeslideshow_thumb_number);}
while(newIndex==oldIndex);this.friezeslideshow_thumb_index=newIndex;},retrieveRandomFriezeSlideShowThumbnail:function()
{new Ajax.Request('/'+this.language+'/static/ajaxrandometui.html',{onSuccess:this.refreshFriezeSlideShowThumbnail.bind(this)});},refreshFriezeSlideShowThumbnail:function(request,json)
{if(this.friezeslideshow_thumb_index==0)
{var li=$(this.friezeslideshow_id).down();}
else
{var li=$(this.friezeslideshow_id).down().next(this.friezeslideshow_thumb_index-1);}
var a=li.down('a');a.setAttribute('href','/'+this.language+'/etui/'+json[0].url+'.html');var img=li.down('img');img.setAttribute('src','/images/etui/'+json[0].filename);li.down().appear({afterFinish:this.reloadOneFriezeSlideShowThumbnail.bind(this)});},initSlideShow:function()
{if(!$(this.slideshow_id))
return;this.slideshow_images=$$('#slide li');this.slideshow_images.each(function(elem){elem.hide();})
this.slideshow_last_frame=this.slideshow_images.length-1;this.slideShowZoomInBinded=this.slideShowZoomIn.bindAsEventListener(this);this.slideShowZoomOutBinded=this.slideShowZoomOut.bindAsEventListener(this);this.slideShowDoNextBinded=this.slideShowDoNext.bindAsEventListener(this);this.slideShowDoPreviousBinded=this.slideShowDoPrevious.bindAsEventListener(this);this.slideShowInsertCmd();this.slideshow_timer=null
this.slideshow_timer=setTimeout(this.slideShowLaunch.bind(this),this.slideshow_start_delay);},slideShowLaunch:function()
{Event.observe(this.slideshow_images[this.slideshow_current_frame].down('a'),'click',this.slideShowZoomInBinded);Event.observe($('zoom'),'click',this.slideShowZoomInBinded);Effect.Appear(this.slideshow_images[this.slideshow_current_frame],{duration:this.slideshow_fade_duration})
this.slideShowStart();},slideShowInsertCmd:function()
{$('slideshow_cmd').update('<ul>'
+'<li><a href="#" id="stop"> </a></li>'
+'<li><a href="#" id="previous"> </a></li>'
+'<li><a href="#" id="next"> </a></li>'
+'</ul>&nbsp;'
+'<a href="#" id="zoom">zoom +</a>');Event.observe('stop','click',this.slideShowDoStop.bindAsEventListener(this));Event.observe('previous','click',this.slideShowDoPreviousBinded);Event.observe('next','click',this.slideShowDoNextBinded);},slideShowStart:function()
{this.slideshow_autoslide=true;if($('start'))
{Event.stopObserving('start','click',this.slideShowDoStop.bindAsEventListener(this));$('start').replace('<a href="#" id="stop"> </a>');}
Event.observe('stop','click',this.slideShowDoStop.bindAsEventListener(this));clearTimeout(this.slideshow_timer);this.slideshow_timer=setTimeout(this.slideShowFadeInOut.bind(this),this.slideshow_delay);},slideShowStop:function()
{if(this.slideshow_autoslide)
{Event.stopObserving('stop','click',this.slideShowDoStop.bindAsEventListener(this));$('stop').replace('<a href="#" id="start"> </a>');Event.observe('start','click',this.slideShowDoStart.bindAsEventListener(this));}
clearTimeout(this.slideshow_timer);this.slideshow_autoslide=false;this.slideshow_animation=false;},slideShowGetRelativeSlide:function(index)
{var new_index=this.slideshow_current_frame+index;while(new_index<this.slideshow_first_frame)
{var i=this.slideshow_first_frame+new_index;new_index=this.slideshow_last_frame+i+1;}
while(new_index>this.slideshow_last_frame)
{var i=new_index-this.slideshow_last_frame;new_index=this.slideshow_first_frame+i-1;}
return new_index;},slideShowDoNext:function(event)
{event.stop();if(this.slideshow_animation)
return;this.slideShowStop();this.slideShowFadeInOut('forward');},slideShowDoPrevious:function(event)
{event.stop();if(this.slideshow_animation)
return;this.slideShowStop();this.slideShowFadeInOut('backward');},slideShowDoStart:function(event)
{event.stop();this.slideShowStart();},slideShowDoStop:function(event)
{event.stop();this.slideShowStop();},slideShowFadeInOut:function(way)
{clearTimeout(this.slideshow_timer);Effect.Fade(this.slideshow_images[this.slideshow_current_frame],{duration:this.slideshow_fade_duration,beforeStart:this.slideShowBeforeFadeOut.bind(this),queue:{position:'front',scope:'fade',limit:2}});var slide=null;switch(way)
{case'backward':slide=this.slideShowGetRelativeSlide(-1);break;case'froward':default:slide=this.slideShowGetRelativeSlide(1);break;}
this.slideshow_current_frame=slide;Effect.Appear(this.slideshow_images[this.slideshow_current_frame],{duration:this.slideshow_fade_duration,beforeStart:this.slideShowBeforeFadeIn.bind(this),queue:{position:'front',scope:'appear',limit:2}});if(this.slideshow_autoslide)
{clearTimeout(this.slideshow_timer);this.slideshow_timer=setTimeout(this.slideShowFadeInOut.bind(this),this.slideshow_delay);}},slideShowBeforeFadeOut:function()
{this.slideshow_animation=true;Event.stopObserving(this.slideshow_images[this.slideshow_current_frame].down('a'),'click',this.slideShowZoomInBinded);Event.stopObserving($('zoom'),'click',this.slideShowZoomInBinded);},slideShowBeforeFadeIn:function()
{this.slideshow_animation=false;Event.observe(this.slideshow_images[this.slideshow_current_frame].down('a'),'click',this.slideShowZoomInBinded);Event.observe($('zoom'),'click',this.slideShowZoomInBinded);},slideShowZoomIn:function(event)
{event.stop();this.slideShowStop();$('zoom').update('zoom -');$('description').fade({duration:0.2});$('bottom').fade({duration:0.2});$('slideshow_cmd').down().fade({duration:0.2});Event.stopObserving($('zoom'),'click',this.slideShowZoomInBinded);Event.stopObserving(this.slideshow_images[this.slideshow_current_frame].down('a'),'click',this.slideShowZoomInBinded);Event.observe($('zoom'),'click',function(e){e.stop();});Event.observe(this.slideshow_images[this.slideshow_current_frame].down('a'),'click',function(e){e.stop();});new Effect.Morph(this.slideshow_images[this.slideshow_current_frame].down('a').down('img'),{style:{width:this.slideshow_image_big_width,height:this.slideshow_image_big_width},duration:this.slideshow_zoom_duration,afterFinish:this.slideShowZoomInAfterFinish.bind(this)});},slideShowZoomInAfterFinish:function()
{Event.stopObserving($('zoom'),'click',function(e){e.stop();});Event.stopObserving(this.slideshow_images[this.slideshow_current_frame].down('a'),'click',function(e){e.stop();});Event.observe($('zoom'),'click',this.slideShowZoomOutBinded);Event.observe(this.slideshow_images[this.slideshow_current_frame].down('a'),'click',this.slideShowZoomOutBinded);},slideShowZoomOut:function(event)
{event.stop();$('zoom').update('zoom +');Event.stopObserving($('zoom'),'click',this.slideShowZoomOutBinded);Event.stopObserving(this.slideshow_images[this.slideshow_current_frame].down('a'),'click',this.slideShowZoomOutBinded);Event.observe($('zoom'),'click',function(e){e.stop();});Event.observe(this.slideshow_images[this.slideshow_current_frame].down('a'),'click',function(e){e.stop();});new Effect.Morph(this.slideshow_images[this.slideshow_current_frame].down('a').down('img'),{style:{width:this.slideshow_image_small_width,height:this.slideshow_image_small_width},duration:this.slideshow_zoom_duration,afterFinish:this.slideShowZoomOutAfterFinish.bind(this)});},slideShowZoomOutAfterFinish:function()
{Event.stopObserving($('zoom'),'click',function(e){e.stop();});Event.stopObserving(this.slideshow_images[this.slideshow_current_frame].down('a'),'click',function(e){e.stop();});Event.observe($('zoom'),'click',this.slideShowZoomInBinded);Event.observe(this.slideshow_images[this.slideshow_current_frame].down('a'),'click',this.slideShowZoomInBinded);$('description').appear({duration:0.2});$('bottom').appear({duration:0.2});$('slideshow_cmd').down().appear({duration:0.2});}});